From 6bb1e2a3e3df9915dcf6c092f5a94cfe4e85d51a Mon Sep 17 00:00:00 2001 From: vizhur Date: Mon, 16 Sep 2019 23:21:57 +0000 Subject: [PATCH] update samples from Release-146 as a part of 1.0.62 SDK release --- configuration.ipynb | 2 +- .../automated-machine-learning/automl_env.yml | 1 + .../automl_env_mac.yml | 1 + ...uto-ml-classification-bank-marketing.ipynb | 22 +- ...-ml-classification-credit-card-fraud.ipynb | 24 +- ...to-ml-classification-with-deployment.ipynb | 9 +- .../auto-ml-classification-with-onnx.ipynb | 14 +- ...-ml-classification-with-whitelisting.ipynb | 8 +- .../auto-ml-classification.ipynb | 4 +- .../auto-ml-dataset-remote-execution.ipynb | 4 - .../dataset/auto-ml-dataset.ipynb | 3 - .../auto-ml-forecasting-bike-share.ipynb | 7 +- .../auto-ml-forecasting-energy-demand.ipynb | 100 +- .../auto-ml-forecasting-energy-demand.yml | 1 + ...to-ml-forecasting-orange-juice-sales.ipynb | 5 - ...ing-data-blacklist-early-termination.ipynb | 8 +- .../auto-ml-model-explanation.ipynb | 186 ++- .../auto-ml-model-explanation.yml | 1 + ...auto-ml-regression-concrete-strength.ipynb | 23 +- ...o-ml-regression-hardware-performance.ipynb | 25 +- .../regression/auto-ml-regression.ipynb | 10 +- .../accelerated-models-quickstart.ipynb | 2 +- .../explain-model-on-amlcompute.ipynb | 20 +- .../remote-explanation/train_explain.py | 3 +- ...ve-retrieve-explanations-run-history.ipynb | 20 +- .../scoring-time/score_local_explain.py | 33 + .../scoring-time/score_remote_explain.py | 33 + ...ain-explain-model-locally-and-deploy.ipynb | 5 +- ...plain-model-on-amlcompute-and-deploy.ipynb | 4 +- .../scoring-time/train_explain.py | 3 +- ...eature-transformations-explain-local.ipynb | 18 +- .../explain-binary-classification-local.ipynb | 18 +- ...lain-multiclass-classification-local.ipynb | 18 +- .../explain-regression-local.ipynb | 18 +- ...eature-transformations-explain-local.ipynb | 18 +- .../machine-learning-pipelines/README.md | 3 +- .../intro-to-pipelines/README.md | 3 +- ...nes-parameter-tuning-with-hyperdrive.ipynb | 184 +-- ...lines-parameter-tuning-with-hyperdrive.yml | 8 + ...etup-schedule-for-a-published-pipeline.yml | 5 + ...s-setup-versioned-pipeline-endpoints.ipynb | 12 +- ...nes-setup-versioned-pipeline-endpoints.yml | 6 + ...asing-datapath-and-pipelineparameter.ipynb | 479 ++++++ ...wcasing-datapath-and-pipelineparameter.yml | 5 + ...pipelines-with-data-dependency-steps.ipynb | 2 +- ...-taxi-data-regression-model-building.ipynb | 2 +- .../chainer_mnist.py | 139 ++ .../chainer_score.py | 45 + ...erparameter-tune-deploy-with-chainer.ipynb | 725 ++++++++ ...yperparameter-tune-deploy-with-chainer.yml | 12 + .../distributed-chainer.ipynb | 320 ++++ .../distributed-chainer.yml | 5 + .../distributed-chainer/train_mnist.py | 125 ++ .../pytorch_score.py | 31 + .../pytorch_train.py | 206 +++ .../test_img.jpg | Bin 0 -> 1729434 bytes ...erparameter-tune-deploy-with-pytorch.ipynb | 715 ++++++++ ...yperparameter-tune-deploy-with-pytorch.yml | 9 + .../distributed-pytorch-with-horovod.ipynb | 340 ++++ .../distributed-pytorch-with-horovod.yml | 5 + .../pytorch_horovod_mnist.py | 170 ++ .../distributed-pytorch-with-nccl-gloo.ipynb | 382 +++++ .../distributed-pytorch-with-nccl-gloo.yml | 5 + .../pytorch_mnist.py | 209 +++ ...erparameter-tune-deploy-with-sklearn.ipynb | 568 +++++++ ...yperparameter-tune-deploy-with-sklearn.yml | 6 + .../train_iris.py | 60 + .../nn.png | Bin 0 -> 121768 bytes .../tf_mnist.py | 106 ++ ...arameter-tune-deploy-with-tensorflow.ipynb | 1145 +++++++++++++ ...rparameter-tune-deploy-with-tensorflow.yml | 8 + .../utils.py | 27 + .../distributed-tensorflow-with-horovod.ipynb | 409 +++++ .../distributed-tensorflow-with-horovod.yml | 5 + .../tf_horovod_word2vec.py | 259 +++ ...ted-tensorflow-with-parameter-server.ipynb | 321 ++++ ...buted-tensorflow-with-parameter-server.yml | 5 + .../tf_mnist_replica.py | 271 +++ .../tf_mnist_with_checkpoint.py | 123 ++ .../train-tensorflow-resume-training.ipynb | 487 ++++++ .../train-tensorflow-resume-training.yml | 5 + .../train-tensorflow-resume-training/utils.py | 27 + .../logging-api/logging-api.ipynb | 2 +- .../training-with-deep-learning/README.md | 16 +- .../keras_mnist.py | 13 +- ...yperparameter-tune-deploy-with-keras.ipynb | 246 ++- how-to-use-azureml/training/README.md | 2 +- .../work-with-data/datasets/README.md | 5 +- .../datasets-diff/datasets-diff.ipynb | 796 +++++++++ .../file-dataset-img-classification.ipynb | 2 +- ...tabular-timeseries-dataset-filtering.ipynb | 1082 ++++++------ .../train-with-datasets.ipynb | 620 +++++++ index.md | 656 ++++++-- setup-environment/configuration.ipynb | 2 +- .../img-classification-part1-training.ipynb | 112 +- ...ipeline-batch-scoring-classification.ipynb | 1458 +++++++++-------- 96 files changed, 11640 insertions(+), 2027 deletions(-) create mode 100644 how-to-use-azureml/explain-model/azure-integration/scoring-time/score_local_explain.py create mode 100644 how-to-use-azureml/explain-model/azure-integration/scoring-time/score_remote_explain.py create mode 100644 how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.yml create mode 100644 how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-schedule-for-a-published-pipeline.yml create mode 100644 how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.yml create mode 100644 how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-showcasing-datapath-and-pipelineparameter.ipynb create mode 100644 how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-showcasing-datapath-and-pipelineparameter.yml create mode 100644 how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/chainer_mnist.py create mode 100644 how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/chainer_score.py create mode 100644 how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.yml create mode 100644 how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.yml create mode 100644 how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/train_mnist.py create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/pytorch_score.py create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/pytorch_train.py create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/test_img.jpg create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.yml create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.yml create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/pytorch_horovod_mnist.py create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/distributed-pytorch-with-nccl-gloo.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/distributed-pytorch-with-nccl-gloo.yml create mode 100644 how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/pytorch_mnist.py create mode 100644 how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.yml create mode 100644 how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train_iris.py create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/nn.png create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/tf_mnist.py create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.yml create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/utils.py create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.yml create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/tf_horovod_word2vec.py create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.yml create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/tf_mnist_replica.py create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/tf_mnist_with_checkpoint.py create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.ipynb create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.yml create mode 100644 how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/utils.py create mode 100644 how-to-use-azureml/work-with-data/datasets/datasets-diff/datasets-diff.ipynb create mode 100644 how-to-use-azureml/work-with-data/datasets/datasets-tutorial/train-with-datasets.ipynb diff --git a/configuration.ipynb b/configuration.ipynb index cd34ebf9..555b0c73 100644 --- a/configuration.ipynb +++ b/configuration.ipynb @@ -103,7 +103,7 @@ "source": [ "import azureml.core\n", "\n", - "print(\"This notebook was created using version 1.0.60 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.0.62 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/automl_env.yml b/how-to-use-azureml/automated-machine-learning/automl_env.yml index 5e280f0c..8114c9d8 100644 --- a/how-to-use-azureml/automated-machine-learning/automl_env.yml +++ b/how-to-use-azureml/automated-machine-learning/automl_env.yml @@ -21,5 +21,6 @@ dependencies: - azureml-train-automl - azureml-widgets - azureml-explain-model + - azureml-contrib-explain-model - pandas_ml diff --git a/how-to-use-azureml/automated-machine-learning/automl_env_mac.yml b/how-to-use-azureml/automated-machine-learning/automl_env_mac.yml index 3a2c2498..36114400 100644 --- a/how-to-use-azureml/automated-machine-learning/automl_env_mac.yml +++ b/how-to-use-azureml/automated-machine-learning/automl_env_mac.yml @@ -22,5 +22,6 @@ dependencies: - azureml-train-automl - azureml-widgets - azureml-explain-model + - azureml-contrib-explain-model - pandas_ml diff --git a/how-to-use-azureml/automated-machine-learning/classification-bank-marketing/auto-ml-classification-bank-marketing.ipynb b/how-to-use-azureml/automated-machine-learning/classification-bank-marketing/auto-ml-classification-bank-marketing.ipynb index 64750a56..d13b3bb2 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-bank-marketing/auto-ml-classification-bank-marketing.ipynb +++ b/how-to-use-azureml/automated-machine-learning/classification-bank-marketing/auto-ml-classification-bank-marketing.ipynb @@ -92,8 +92,6 @@ "\n", "# choose a name for experiment\n", "experiment_name = 'automl-classification-bmarketing'\n", - "# project folder\n", - "project_folder = './sample_projects/automl-classification-bankmarketing'\n", "\n", "experiment=Experiment(ws, experiment_name)\n", "\n", @@ -103,7 +101,6 @@ "output['Workspace'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -164,20 +161,7 @@ "source": [ "# Data\n", "\n", - "Here load the data in the get_data() script to be utilized in azure compute. To do this first load all the necessary libraries and dependencies to set up paths for the data and to create the conda_Run_config." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if not os.path.isdir('data'):\n", - " os.mkdir('data')\n", - " \n", - "if not os.path.exists(project_folder):\n", - " os.makedirs(project_folder)" + "Create a run configuration for the remote run." ] }, { @@ -207,7 +191,7 @@ "source": [ "### Load Data\n", "\n", - "Here we create the script to be run in azure comput for loading the data, we load the bank marketing dataset into X_train and y_train. Next X_train and y_train is returned for training the model." + "Load the bank marketing dataset into X_train and y_train. X_train contains the training features, which are inputs to the model. y_train contains the training labels, which are the expected output of the model." ] }, { @@ -240,7 +224,6 @@ "|**n_cross_validations**|Number of cross validation splits.|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", "|**y**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|\n", "\n", "**_You can find more information about primary metrics_** [here](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-configure-auto-train#primary-metric)" ] @@ -263,7 +246,6 @@ "\n", "automl_config = AutoMLConfig(task = 'classification',\n", " debug_log = 'automl_errors.log',\n", - " path = project_folder,\n", " run_configuration=conda_run_config,\n", " X = X_train,\n", " y = y_train,\n", diff --git a/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb b/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb index 952e9de4..ffcf6261 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb +++ b/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb @@ -92,8 +92,6 @@ "\n", "# choose a name for experiment\n", "experiment_name = 'automl-classification-ccard'\n", - "# project folder\n", - "project_folder = './sample_projects/automl-classification-creditcard'\n", "\n", "experiment=Experiment(ws, experiment_name)\n", "\n", @@ -103,7 +101,6 @@ "output['Workspace'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -164,20 +161,7 @@ "source": [ "# Data\n", "\n", - "Here load the data in the get_data script to be utilized in azure compute. To do this, first load all the necessary libraries and dependencies to set up paths for the data and to create the conda_run_config." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if not os.path.isdir('data'):\n", - " os.mkdir('data')\n", - " \n", - "if not os.path.exists(project_folder):\n", - " os.makedirs(project_folder)" + "Create a run configuration for the remote run." ] }, { @@ -207,7 +191,7 @@ "source": [ "### Load Data\n", "\n", - "Here create the script to be run in azure compute for loading the data, load the credit card dataset into cards and store the Class column (y) in the y variable and store the remaining data in the x variable. Next split the data using random_split and return X_train and y_train for training the model." + "Load the credit card dataset into X and y. X contains the features, which are inputs to the model. y contains the labels, which are the expected output of the model. Next split the data using random_split and return X_train and y_train for training the model." ] }, { @@ -241,7 +225,6 @@ "|**n_cross_validations**|Number of cross validation splits.|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", "|**y**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|\n", "\n", "**_You can find more information about primary metrics_** [here](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-configure-auto-train#primary-metric)" ] @@ -270,8 +253,7 @@ "}\n", "\n", "automl_config = AutoMLConfig(task = 'classification',\n", - " debug_log = 'automl_errors_20190417.log',\n", - " path = project_folder,\n", + " debug_log = 'automl_errors.log',\n", " run_configuration=conda_run_config,\n", " X = X_train,\n", " y = y_train,\n", diff --git a/how-to-use-azureml/automated-machine-learning/classification-with-deployment/auto-ml-classification-with-deployment.ipynb b/how-to-use-azureml/automated-machine-learning/classification-with-deployment/auto-ml-classification-with-deployment.ipynb index 3dd3b13f..930fb4f1 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-with-deployment/auto-ml-classification-with-deployment.ipynb +++ b/how-to-use-azureml/automated-machine-learning/classification-with-deployment/auto-ml-classification-with-deployment.ipynb @@ -92,8 +92,6 @@ "\n", "# choose a name for experiment\n", "experiment_name = 'automl-classification-deployment'\n", - "# project folder\n", - "project_folder = './sample_projects/automl-classification-deployment'\n", "\n", "experiment=Experiment(ws, experiment_name)\n", "\n", @@ -103,7 +101,6 @@ "output['Workspace'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -126,8 +123,7 @@ "|**iterations**|Number of iterations. In each iteration AutoML trains a specific pipeline with the data.|\n", "|**n_cross_validations**|Number of cross validation splits.|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", - "|**y**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|" + "|**y**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|" ] }, { @@ -148,8 +144,7 @@ " iterations = 10,\n", " verbosity = logging.INFO,\n", " X = X_train, \n", - " y = y_train,\n", - " path = project_folder)" + " y = y_train)" ] }, { diff --git a/how-to-use-azureml/automated-machine-learning/classification-with-onnx/auto-ml-classification-with-onnx.ipynb b/how-to-use-azureml/automated-machine-learning/classification-with-onnx/auto-ml-classification-with-onnx.ipynb index 63b71c31..464e4e9d 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-with-onnx/auto-ml-classification-with-onnx.ipynb +++ b/how-to-use-azureml/automated-machine-learning/classification-with-onnx/auto-ml-classification-with-onnx.ipynb @@ -89,9 +89,8 @@ "source": [ "ws = Workspace.from_config()\n", "\n", - "# Choose a name for the experiment and specify the project folder.\n", + "# Choose a name for the experiment.\n", "experiment_name = 'automl-classification-onnx'\n", - "project_folder = './sample_projects/automl-classification-onnx'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -101,7 +100,6 @@ "output['Workspace Name'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -127,9 +125,7 @@ "X_train, X_test, y_train, y_test = train_test_split(iris.data, \n", " iris.target, \n", " test_size=0.2, \n", - " random_state=0)\n", - "\n", - "\n" + " random_state=0)" ] }, { @@ -170,8 +166,7 @@ "|**iterations**|Number of iterations. In each iteration AutoML trains a specific pipeline with the data.|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", "|**y**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|\n", - "|**enable_onnx_compatible_models**|Enable the ONNX compatible models in the experiment.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|" + "|**enable_onnx_compatible_models**|Enable the ONNX compatible models in the experiment.|" ] }, { @@ -196,8 +191,7 @@ " X = X_train, \n", " y = y_train,\n", " preprocess=True,\n", - " enable_onnx_compatible_models=True,\n", - " path = project_folder)" + " enable_onnx_compatible_models=True)" ] }, { diff --git a/how-to-use-azureml/automated-machine-learning/classification-with-whitelisting/auto-ml-classification-with-whitelisting.ipynb b/how-to-use-azureml/automated-machine-learning/classification-with-whitelisting/auto-ml-classification-with-whitelisting.ipynb index 59d6d57e..2f841c92 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-with-whitelisting/auto-ml-classification-with-whitelisting.ipynb +++ b/how-to-use-azureml/automated-machine-learning/classification-with-whitelisting/auto-ml-classification-with-whitelisting.ipynb @@ -100,9 +100,8 @@ "source": [ "ws = Workspace.from_config()\n", "\n", - "# Choose a name for the experiment and specify the project folder.\n", + "# Choose a name for the experiment.\n", "experiment_name = 'automl-local-whitelist'\n", - "project_folder = './sample_projects/automl-local-whitelist'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -112,7 +111,6 @@ "output['Workspace Name'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -158,7 +156,6 @@ "|**n_cross_validations**|Number of cross validation splits.|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", "|**y**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|\n", "|**whitelist_models**|List of models that AutoML should use. The possible values are listed [here](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-configure-auto-train#configure-your-experiment-settings).|" ] }, @@ -177,8 +174,7 @@ " X = X_train, \n", " y = y_train,\n", " enable_tf=True,\n", - " whitelist_models=whitelist_models,\n", - " path = project_folder)" + " whitelist_models=whitelist_models)" ] }, { diff --git a/how-to-use-azureml/automated-machine-learning/classification/auto-ml-classification.ipynb b/how-to-use-azureml/automated-machine-learning/classification/auto-ml-classification.ipynb index 38a02b26..34a6bf37 100644 --- a/how-to-use-azureml/automated-machine-learning/classification/auto-ml-classification.ipynb +++ b/how-to-use-azureml/automated-machine-learning/classification/auto-ml-classification.ipynb @@ -113,9 +113,8 @@ "source": [ "ws = Workspace.from_config()\n", "\n", - "# Choose a name for the experiment and specify the project folder.\n", + "# Choose a name for the experiment.\n", "experiment_name = 'automl-classification'\n", - "project_folder = './sample_projects/automl-classification'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -125,7 +124,6 @@ "output['Workspace Name'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", diff --git a/how-to-use-azureml/automated-machine-learning/dataset-remote-execution/auto-ml-dataset-remote-execution.ipynb b/how-to-use-azureml/automated-machine-learning/dataset-remote-execution/auto-ml-dataset-remote-execution.ipynb index 39742e9b..2dd27e1f 100644 --- a/how-to-use-azureml/automated-machine-learning/dataset-remote-execution/auto-ml-dataset-remote-execution.ipynb +++ b/how-to-use-azureml/automated-machine-learning/dataset-remote-execution/auto-ml-dataset-remote-execution.ipynb @@ -87,8 +87,6 @@ "\n", "# choose a name for experiment\n", "experiment_name = 'automl-dataset-remote-bai'\n", - "# project folder\n", - "project_folder = './sample_projects/automl-dataprep-remote-bai'\n", " \n", "experiment = Experiment(ws, experiment_name)\n", " \n", @@ -98,7 +96,6 @@ "output['Workspace Name'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -253,7 +250,6 @@ "source": [ "automl_config = AutoMLConfig(task = 'classification',\n", " debug_log = 'automl_errors.log',\n", - " path = project_folder,\n", " run_configuration=conda_run_config,\n", " X = X,\n", " y = y,\n", diff --git a/how-to-use-azureml/automated-machine-learning/dataset/auto-ml-dataset.ipynb b/how-to-use-azureml/automated-machine-learning/dataset/auto-ml-dataset.ipynb index 03499dad..89ac30d8 100644 --- a/how-to-use-azureml/automated-machine-learning/dataset/auto-ml-dataset.ipynb +++ b/how-to-use-azureml/automated-machine-learning/dataset/auto-ml-dataset.ipynb @@ -87,8 +87,6 @@ " \n", "# choose a name for experiment\n", "experiment_name = 'automl-dataset-local'\n", - "# project folder\n", - "project_folder = './sample_projects/automl-dataset-local'\n", " \n", "experiment = Experiment(ws, experiment_name)\n", " \n", @@ -98,7 +96,6 @@ "output['Workspace Name'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb b/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb index 46d8fdbc..e15f87cd 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb +++ b/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb @@ -97,8 +97,6 @@ "\n", "# choose a name for the run history container in the workspace\n", "experiment_name = 'automl-bikeshareforecasting'\n", - "# project folder\n", - "project_folder = './sample_projects/automl-local-bikeshareforecasting'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -108,7 +106,6 @@ "output['Workspace'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Run History Name'] = experiment_name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -225,7 +222,6 @@ "|**y**|(sparse) array-like, shape = [n_samples, ], targets values.|\n", "|**n_cross_validations**|Number of cross validation splits.|\n", "|**country_or_region**|The country/region used to generate holiday features. These should be ISO 3166 two-letter country/region codes (i.e. 'US', 'GB').|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder. \n", "\n", "This notebook uses the blacklist_models parameter to exclude some models that take a longer time to train on this dataset. You can choose to remove models from the blacklist_models list but you may need to increase the iteration_timeout_minutes parameter value to get results." ] @@ -253,8 +249,7 @@ " iteration_timeout_minutes=5,\n", " X=X_train,\n", " y=y_train,\n", - " n_cross_validations=3, \n", - " path=project_folder,\n", + " n_cross_validations=3,\n", " verbosity=logging.INFO,\n", " **automl_settings)" ] diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb b/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb index 958bbd96..bf7764e5 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb +++ b/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb @@ -93,8 +93,6 @@ "\n", "# choose a name for the run history container in the workspace\n", "experiment_name = 'automl-energydemandforecasting'\n", - "# project folder\n", - "project_folder = './sample_projects/automl-local-energydemandforecasting'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -104,7 +102,6 @@ "output['Workspace'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Run History Name'] = experiment_name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -213,8 +210,7 @@ "|**iteration_timeout_minutes**|Time limit in minutes for each iteration.|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", "|**y**|(sparse) array-like, shape = [n_samples, ], targets values.|\n", - "|**n_cross_validations**|Number of cross validation splits. Rolling Origin Validation is used to split time-series in a temporally consistent way.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder. " + "|**n_cross_validations**|Number of cross validation splits. Rolling Origin Validation is used to split time-series in a temporally consistent way.|" ] }, { @@ -237,7 +233,6 @@ " X=X_train,\n", " y=y_train,\n", " n_cross_validations=3,\n", - " path=project_folder,\n", " verbosity = logging.INFO,\n", " **time_series_settings)" ] @@ -490,7 +485,6 @@ " X=X_train,\n", " y=y_train,\n", " n_cross_validations=3,\n", - " path=project_folder,\n", " verbosity=logging.INFO,\n", " **time_series_settings_with_lags)" ] @@ -558,7 +552,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### What features matter for the forecast?" + "### What features matter for the forecast?\n", + "The following steps will allow you to compute and visualize engineered feature importance based on your test data for forecasting. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Setup the model explanations for AutoML models\n", + "The *fitted_model* can generate the following which will be used for getting the engineered and raw feature explanations using *automl_setup_model_explanations*:-\n", + "1. Featurized data from train samples/test samples \n", + "2. Gather engineered and raw feature name lists\n", + "3. Find the classes in your labeled column in classification scenarios\n", + "\n", + "The *automl_explainer_setup_obj* contains all the structures from above list. " ] }, { @@ -567,14 +575,74 @@ "metadata": {}, "outputs": [], "source": [ - "from azureml.train.automl.automlexplainer import explain_model\n", - "\n", - "# feature names are everything in the transformed data except the target\n", - "features = X_trans_lags.columns[:-1]\n", - "expl = explain_model(fitted_model_lags, X_train.copy(), X_test.copy(), features=features, best_run=best_run_lags, y_train=y_train)\n", - "# unpack the tuple\n", - "shap_values, expected_values, feat_overall_imp, feat_names, per_class_summary, per_class_imp = expl\n", - "best_run_lags" + "from azureml.train.automl.automl_explain_utilities import AutoMLExplainerSetupClass, automl_setup_model_explanations\n", + "automl_explainer_setup_obj = automl_setup_model_explanations(fitted_model, X=X_train.copy(), \n", + " X_test=X_test.copy(), y=y_train, \n", + " task='forecasting')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Initialize the Mimic Explainer for feature importance\n", + "For explaining the AutoML models, use the *MimicWrapper* from *azureml.explain.model* package. The *MimicWrapper* can be initialized with fields in *automl_explainer_setup_obj*, your workspace and a LightGBM model which acts as a surrogate model to explain the AutoML model (*fitted_model* here). The *MimicWrapper* also takes the *best_run* object where the raw and engineered explanations will be uploaded." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.explain.model.mimic.models.lightgbm_model import LGBMExplainableModel\n", + "from azureml.explain.model.mimic_wrapper import MimicWrapper\n", + "explainer = MimicWrapper(ws, automl_explainer_setup_obj.automl_estimator, LGBMExplainableModel, \n", + " init_dataset=automl_explainer_setup_obj.X_transform, run=best_run,\n", + " features=automl_explainer_setup_obj.engineered_feature_names, \n", + " feature_maps=[automl_explainer_setup_obj.feature_map])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Use Mimic Explainer for computing and visualizing engineered feature importance\n", + "The *explain()* method in *MimicWrapper* can be called with the transformed test samples to get the feature importance for the generated engineered features. You can also use *ExplanationDashboard* to view the dash board visualization of the feature importance values of the generated engineered features by AutoML featurizers." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "engineered_explanations = explainer.explain(['local', 'global'], eval_dataset=automl_explainer_setup_obj.X_test_transform)\n", + "print(engineered_explanations.get_feature_importance_dict())\n", + "from azureml.contrib.explain.model.visualize import ExplanationDashboard\n", + "ExplanationDashboard(engineered_explanations, automl_explainer_setup_obj.automl_estimator, automl_explainer_setup_obj.X_test_transform)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Use Mimic Explainer for computing and visualizing raw feature importance\n", + "The *explain()* method in *MimicWrapper* can be again called with the transformed test samples and setting *get_raw* to *True* to get the feature importance for the raw features. You can also use *ExplanationDashboard* to view the dash board visualization of the feature importance values of the raw features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "raw_explanations = explainer.explain(['local', 'global'], get_raw=True, \n", + " raw_feature_names=automl_explainer_setup_obj.raw_feature_names,\n", + " eval_dataset=automl_explainer_setup_obj.X_test_transform)\n", + "print(raw_explanations.get_feature_importance_dict())\n", + "from azureml.contrib.explain.model.visualize import ExplanationDashboard\n", + "ExplanationDashboard(raw_explanations, automl_explainer_setup_obj.automl_pipeline, automl_explainer_setup_obj.X_test_raw)" ] }, { diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.yml b/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.yml index 5a2fda3d..693b5f4d 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.yml +++ b/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.yml @@ -8,3 +8,4 @@ dependencies: - pandas_ml - statsmodels - azureml-explain-model + - azureml-contrib-explain-model diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb b/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb index 23c13fc9..eec96f7f 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb +++ b/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb @@ -89,8 +89,6 @@ "\n", "# choose a name for the run history container in the workspace\n", "experiment_name = 'automl-ojforecasting'\n", - "# project folder\n", - "project_folder = './sample_projects/automl-local-ojforecasting'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -100,7 +98,6 @@ "output['Workspace'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Run History Name'] = experiment_name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -247,7 +244,6 @@ "|**enable_voting_ensemble**|Allow AutoML to create a Voting ensemble of the best performing models\n", "|**enable_stack_ensemble**|Allow AutoML to create a Stack ensemble of the best performing models\n", "|**debug_log**|Log file path for writing debugging information\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|\n", "|**time_column_name**|Name of the datetime column in the input data|\n", "|**grain_column_names**|Name(s) of the columns defining individual series in the input data|\n", "|**drop_column_names**|Name(s) of columns to drop prior to modeling|\n", @@ -276,7 +272,6 @@ " n_cross_validations=3,\n", " enable_voting_ensemble=False,\n", " enable_stack_ensemble=False,\n", - " path=project_folder,\n", " verbosity=logging.INFO,\n", " **time_series_settings)" ] diff --git a/how-to-use-azureml/automated-machine-learning/missing-data-blacklist-early-termination/auto-ml-missing-data-blacklist-early-termination.ipynb b/how-to-use-azureml/automated-machine-learning/missing-data-blacklist-early-termination/auto-ml-missing-data-blacklist-early-termination.ipynb index d407d90f..2fee05c3 100644 --- a/how-to-use-azureml/automated-machine-learning/missing-data-blacklist-early-termination/auto-ml-missing-data-blacklist-early-termination.ipynb +++ b/how-to-use-azureml/automated-machine-learning/missing-data-blacklist-early-termination/auto-ml-missing-data-blacklist-early-termination.ipynb @@ -93,7 +93,6 @@ "\n", "# Choose a name for the experiment.\n", "experiment_name = 'automl-local-missing-data'\n", - "project_folder = './sample_projects/automl-local-missing-data'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -103,7 +102,6 @@ "output['Workspace'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -166,8 +164,7 @@ "|**experiment_exit_score**|*double* value indicating the target for *primary_metric*.
Once the target is surpassed the run terminates.|\n", "|**blacklist_models**|*List* of *strings* indicating machine learning algorithms for AutoML to avoid in this run.

Allowed values for **Classification**
LogisticRegression
SGD
MultinomialNaiveBayes
BernoulliNaiveBayes
SVM
LinearSVM
KNN
DecisionTree
RandomForest
ExtremeRandomTrees
LightGBM
GradientBoosting
TensorFlowDNN
TensorFlowLinearClassifier

Allowed values for **Regression**
ElasticNet
GradientBoosting
DecisionTree
KNN
LassoLars
SGD
RandomForest
ExtremeRandomTrees
LightGBM
TensorFlowLinearRegressor
TensorFlowDNN|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", - "|**y**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|" + "|**y**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|" ] }, { @@ -186,8 +183,7 @@ " blacklist_models = ['KNN','LinearSVM'],\n", " verbosity = logging.INFO,\n", " X = X_train, \n", - " y = y_train,\n", - " path = project_folder)" + " y = y_train)" ] }, { diff --git a/how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.ipynb b/how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.ipynb index fff6cc0d..58d00ff6 100644 --- a/how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.ipynb +++ b/how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.ipynb @@ -69,7 +69,8 @@ "import azureml.core\n", "from azureml.core.experiment import Experiment\n", "from azureml.core.workspace import Workspace\n", - "from azureml.train.automl import AutoMLConfig" + "from azureml.train.automl import AutoMLConfig\n", + "from azureml.core.dataset import Dataset" ] }, { @@ -107,29 +108,42 @@ "## Data" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Training Data" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "from sklearn import datasets\n", - "\n", - "iris = datasets.load_iris()\n", - "y = iris.target\n", - "X = iris.data\n", - "\n", - "features = iris.feature_names\n", - "\n", - "from sklearn.model_selection import train_test_split\n", - "X_train, X_test, y_train, y_test = train_test_split(X,\n", - " y,\n", - " test_size=0.1,\n", - " random_state=100,\n", - " stratify=y)\n", - "\n", - "X_train = pd.DataFrame(X_train, columns=features)\n", - "X_test = pd.DataFrame(X_test, columns=features)" + "train_data = \"https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/bankmarketing_train.csv\"\n", + "train_dataset = Dataset.Tabular.from_delimited_files(train_data)\n", + "X_train = train_dataset.drop_columns(columns=['y']).to_pandas_dataframe()\n", + "y_train = train_dataset.keep_columns(columns=['y'], validate=True).to_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Test Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "test_data = \"https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/bankmarketing_validate.csv\"\n", + "test_dataset = Dataset.Tabular.from_delimited_files(test_data)\n", + "X_test = test_dataset.drop_columns(columns=['y']).to_pandas_dataframe()\n", + "y_test = test_dataset.keep_columns(columns=['y'], validate=True).to_pandas_dataframe()" ] }, { @@ -148,8 +162,6 @@ "|**iterations**|Number of iterations. In each iteration Auto ML trains the data with a specific pipeline|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", "|**y**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|\n", - "|**X_valid**|(sparse) array-like, shape = [n_samples, n_features]|\n", - "|**y_valid**|(sparse) array-like, shape = [n_samples, ], Multi-class targets.|\n", "|**model_explainability**|Indicate to explain each trained pipeline or not |\n", "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder. |" ] @@ -166,10 +178,10 @@ " iteration_timeout_minutes = 200,\n", " iterations = 10,\n", " verbosity = logging.INFO,\n", + " preprocess = True,\n", " X = X_train, \n", " y = y_train,\n", - " X_valid = X_test,\n", - " y_valid = y_test,\n", + " n_cross_validations = 5,\n", " model_explainability=True,\n", " path=project_folder)" ] @@ -197,7 +209,7 @@ "metadata": {}, "outputs": [], "source": [ - "local_run" + "best_run, fitted_model = local_run.get_output()" ] }, { @@ -302,19 +314,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Beside retrieve the existed model explanation information, explain the model with different train/test data" + "### Computing model explanations and visualizing the explanations using azureml-explain-model package\n", + "Beside retrieve the existed model explanation information, explain the model with different train/test data. The following steps will allow you to compute and visualize engineered feature importance and raw feature importance based on your test data. " ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "from azureml.train.automl.automlexplainer import explain_model\n", + "#### Setup the model explanations for AutoML models\n", + "The *fitted_model* can generate the following which will be used for getting the engineered and raw feature explanations using *automl_setup_model_explanations*:-\n", + "1. Featurized data from train samples/test samples \n", + "2. Gather engineered and raw feature name lists\n", + "3. Find the classes in your labeled column in classification scenarios\n", "\n", - "shap_values, expected_values, overall_summary, overall_imp, per_class_summary, per_class_imp = \\\n", - " explain_model(fitted_model, X_train, X_test, features=features)" + "The *automl_explainer_setup_obj* contains all the structures from above list. " ] }, { @@ -323,8 +337,116 @@ "metadata": {}, "outputs": [], "source": [ - "print(overall_summary)\n", - "print(overall_imp)" + "from azureml.train.automl.automl_explain_utilities import AutoMLExplainerSetupClass, automl_setup_model_explanations\n", + "\n", + "automl_explainer_setup_obj = automl_setup_model_explanations(fitted_model, X=X_train, \n", + " X_test=X_test, y=y_train, \n", + " task='classification')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Initialize the Mimic Explainer for feature importance\n", + "For explaining the AutoML models, use the *MimicWrapper* from *azureml.explain.model* package. The *MimicWrapper* can be initialized with fields in *automl_explainer_setup_obj*, your workspace and a LightGBM model which acts as a surrogate model to explain the AutoML model (*fitted_model* here). The *MimicWrapper* also takes the *best_run* object where the raw and engineered explanations will be uploaded." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.explain.model.mimic.models.lightgbm_model import LGBMExplainableModel\n", + "from azureml.explain.model.mimic_wrapper import MimicWrapper\n", + "explainer = MimicWrapper(ws, automl_explainer_setup_obj.automl_estimator, LGBMExplainableModel, \n", + " init_dataset=automl_explainer_setup_obj.X_transform, run=best_run,\n", + " features=automl_explainer_setup_obj.engineered_feature_names, \n", + " feature_maps=[automl_explainer_setup_obj.feature_map],\n", + " classes=automl_explainer_setup_obj.classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Use Mimic Explainer for computing and visualizing engineered feature importance\n", + "The *explain()* method in *MimicWrapper* can be called with the transformed test samples to get the feature importance for the generated engineered features. You can also use *ExplanationDashboard* to view the dash board visualization of the feature importance values of the generated engineered features by AutoML featurizers." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "engineered_explanations = explainer.explain(['local', 'global'], eval_dataset=automl_explainer_setup_obj.X_test_transform)\n", + "print(engineered_explanations.get_feature_importance_dict())\n", + "from azureml.contrib.explain.model.visualize import ExplanationDashboard\n", + "ExplanationDashboard(engineered_explanations, automl_explainer_setup_obj.automl_estimator, automl_explainer_setup_obj.X_test_transform)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Use Mimic Explainer for computing and visualizing raw feature importance\n", + "The *explain()* method in *MimicWrapper* can be again called with the transformed test samples and setting *get_raw* to *True* to get the feature importance for the raw features. You can also use *ExplanationDashboard* to view the dash board visualization of the feature importance values of the raw features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "raw_explanations = explainer.explain(['local', 'global'], get_raw=True, \n", + " raw_feature_names=automl_explainer_setup_obj.raw_feature_names,\n", + " eval_dataset=automl_explainer_setup_obj.X_test_transform)\n", + "print(raw_explanations.get_feature_importance_dict())\n", + "from azureml.contrib.explain.model.visualize import ExplanationDashboard\n", + "ExplanationDashboard(raw_explanations, automl_explainer_setup_obj.automl_pipeline, automl_explainer_setup_obj.X_test_raw)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Download engineered feature importance from artifact store\n", + "You can use *ExplanationClient* to download the engineered feature explanations from the artifact store of the *best_run*." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.explain.model._internal.explanation_client import ExplanationClient\n", + "client = ExplanationClient.from_run(best_run)\n", + "engineered_explanations = client.download_model_explanation(raw=False)\n", + "print(engineered_explanations.get_feature_importance_dict())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Download raw feature importance from artifact store\n", + "You can use *ExplanationClient* to download the raw feature explanations from the artifact store of the *best_run*." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.explain.model._internal.explanation_client import ExplanationClient\n", + "client = ExplanationClient.from_run(best_run)\n", + "raw_explanations = client.download_model_explanation(raw=True)\n", + "print(raw_explanations.get_feature_importance_dict())" ] } ], diff --git a/how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.yml b/how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.yml index 1c4e89af..2d0c7623 100644 --- a/how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.yml +++ b/how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.yml @@ -7,3 +7,4 @@ dependencies: - matplotlib - pandas_ml - azureml-explain-model + - azureml-contrib-explain-model diff --git a/how-to-use-azureml/automated-machine-learning/regression-concrete-strength/auto-ml-regression-concrete-strength.ipynb b/how-to-use-azureml/automated-machine-learning/regression-concrete-strength/auto-ml-regression-concrete-strength.ipynb index bdf37d20..832902ae 100644 --- a/how-to-use-azureml/automated-machine-learning/regression-concrete-strength/auto-ml-regression-concrete-strength.ipynb +++ b/how-to-use-azureml/automated-machine-learning/regression-concrete-strength/auto-ml-regression-concrete-strength.ipynb @@ -87,9 +87,8 @@ "source": [ "ws = Workspace.from_config()\n", "\n", - "# Choose a name for the experiment and specify the project folder.\n", + "# Choose a name for the experiment.\n", "experiment_name = 'automl-regression-concrete'\n", - "project_folder = './sample_projects/automl-regression-concrete'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -99,7 +98,6 @@ "output['Workspace Name'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -160,20 +158,7 @@ "source": [ "# Data\n", "\n", - "Here load the data in the get_data script to be utilized in azure compute. To do this, first load all the necessary libraries and dependencies to set up paths for the data and to create the conda_run_config." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if not os.path.isdir('data'):\n", - " os.mkdir('data')\n", - " \n", - "if not os.path.exists(project_folder):\n", - " os.makedirs(project_folder)" + "Create a run configuration for the remote run." ] }, { @@ -203,7 +188,7 @@ "source": [ "### Load Data\n", "\n", - "Here create the script to be run in azure compute for loading the data, load the concrete strength dataset into the X and y variables. Next, split the data using random_split and return X_train and y_train for training the model. Finally, return X_train and y_train for training the model." + "Load the concrete strength dataset into X and y. X contains the training features, which are inputs to the model. y contains the training labels, which are the expected output of the model." ] }, { @@ -238,7 +223,6 @@ "|**n_cross_validations**|Number of cross validation splits.|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", "|**y**|(sparse) array-like, shape = [n_samples, ], targets values.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|\n", "\n", "**_You can find more information about primary metrics_** [here](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-configure-auto-train#primary-metric)" ] @@ -268,7 +252,6 @@ "\n", "automl_config = AutoMLConfig(task = 'regression',\n", " debug_log = 'automl.log',\n", - " path = project_folder,\n", " run_configuration=conda_run_config,\n", " X = X_train,\n", " y = y_train,\n", diff --git a/how-to-use-azureml/automated-machine-learning/regression-hardware-performance/auto-ml-regression-hardware-performance.ipynb b/how-to-use-azureml/automated-machine-learning/regression-hardware-performance/auto-ml-regression-hardware-performance.ipynb index 84d88ed4..13d7581a 100644 --- a/how-to-use-azureml/automated-machine-learning/regression-hardware-performance/auto-ml-regression-hardware-performance.ipynb +++ b/how-to-use-azureml/automated-machine-learning/regression-hardware-performance/auto-ml-regression-hardware-performance.ipynb @@ -87,9 +87,8 @@ "source": [ "ws = Workspace.from_config()\n", "\n", - "# Choose a name for the experiment and specify the project folder.\n", + "# Choose a name for the experiment.\n", "experiment_name = 'automl-regression-hardware'\n", - "project_folder = './sample_projects/automl-remote-regression'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -99,7 +98,6 @@ "output['Workspace Name'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -160,20 +158,7 @@ "source": [ "# Data\n", "\n", - "Here load the data in the get_data script to be utilized in azure compute. To do this, first load all the necessary libraries and dependencies to set up paths for the data and to create the conda_run_config." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if not os.path.isdir('data'):\n", - " os.mkdir('data')\n", - " \n", - "if not os.path.exists(project_folder):\n", - " os.makedirs(project_folder)" + "Create a run configuration for the remote run." ] }, { @@ -203,7 +188,7 @@ "source": [ "### Load Data\n", "\n", - "Here create the script to be run in azure compute for loading the data, load the hardware dataset into the X and y variables. Next split the data using random_split and return X_train and y_train for training the model." + "Load the hardware performance dataset into X and y. X contains the training features, which are inputs to the model. y contains the training labels, which are the expected output of the model." ] }, { @@ -239,7 +224,6 @@ "|**n_cross_validations**|Number of cross validation splits.|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", "|**y**|(sparse) array-like, shape = [n_samples, ], targets values.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|\n", "\n", "**_You can find more information about primary metrics_** [here](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-configure-auto-train#primary-metric)" ] @@ -268,8 +252,7 @@ "}\n", "\n", "automl_config = AutoMLConfig(task = 'regression',\n", - " debug_log = 'automl_errors_20190417.log',\n", - " path = project_folder,\n", + " debug_log = 'automl_errors.log',\n", " run_configuration=conda_run_config,\n", " X = X_train,\n", " y = y_train,\n", diff --git a/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb b/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb index 804e8ff7..56b14d9e 100644 --- a/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb +++ b/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb @@ -84,9 +84,8 @@ "source": [ "ws = Workspace.from_config()\n", "\n", - "# Choose a name for the experiment and specify the project folder.\n", + "# Choose a name for the experiment.\n", "experiment_name = 'automl-local-regression'\n", - "project_folder = './sample_projects/automl-local-regression'\n", "\n", "experiment = Experiment(ws, experiment_name)\n", "\n", @@ -96,7 +95,6 @@ "output['Workspace Name'] = ws.name\n", "output['Resource Group'] = ws.resource_group\n", "output['Location'] = ws.location\n", - "output['Project Directory'] = project_folder\n", "output['Experiment Name'] = experiment.name\n", "pd.set_option('display.max_colwidth', -1)\n", "outputDf = pd.DataFrame(data = output, index = [''])\n", @@ -144,8 +142,7 @@ "|**iterations**|Number of iterations. In each iteration AutoML trains a specific pipeline with the data.|\n", "|**n_cross_validations**|Number of cross validation splits.|\n", "|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n", - "|**y**|(sparse) array-like, shape = [n_samples, ], targets values.|\n", - "|**path**|Relative path to the project folder. AutoML stores configuration files for the experiment under this folder. You can specify a new empty folder.|" + "|**y**|(sparse) array-like, shape = [n_samples, ], targets values.|" ] }, { @@ -162,8 +159,7 @@ " debug_log = 'automl.log',\n", " verbosity = logging.INFO,\n", " X = X_train, \n", - " y = y_train,\n", - " path = project_folder)" + " y = y_train)" ] }, { diff --git a/how-to-use-azureml/deployment/accelerated-models/accelerated-models-quickstart.ipynb b/how-to-use-azureml/deployment/accelerated-models/accelerated-models-quickstart.ipynb index 0f7f20b4..fdac2adf 100644 --- a/how-to-use-azureml/deployment/accelerated-models/accelerated-models-quickstart.ipynb +++ b/how-to-use-azureml/deployment/accelerated-models/accelerated-models-quickstart.ipynb @@ -543,7 +543,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.6" + "version": "3.7.3" } }, "nbformat": 4, diff --git a/how-to-use-azureml/explain-model/azure-integration/remote-explanation/explain-model-on-amlcompute.ipynb b/how-to-use-azureml/explain-model/azure-integration/remote-explanation/explain-model-on-amlcompute.ipynb index 2760c29f..fbec37b1 100644 --- a/how-to-use-azureml/explain-model/azure-integration/remote-explanation/explain-model-on-amlcompute.ipynb +++ b/how-to-use-azureml/explain-model/azure-integration/remote-explanation/explain-model-on-amlcompute.ipynb @@ -70,23 +70,11 @@ "If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, make sure you go through the [configuration notebook](../../../configuration.ipynb) first if you haven't.\n", "\n", "\n", - "You will need to have extensions enabled prior to jupyter kernel starting to see the visualization dashboard.\n", - "```\n", - "(myenv) $ jupyter nbextension install --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "(myenv) $ jupyter nbextension enable --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "```\n", - "Or\n", - "\n", - "```\n", - "(myenv) $ jupyter nbextension install azureml.contrib.explain.model.visualize --user --py\n", - "(myenv) $ jupyter nbextension enable azureml.contrib.explain.model.visualize --user --py\n", - "```\n", - "\n", - "If you are using Jupyter Labs run the following commands instead:\n", + "If you are using Jupyter notebooks, the extensions should be installed automatically with the package.\n", + "If you are using Jupyter Labs run the following command:\n", "```\n", "(myenv) $ jupyter labextension install @jupyter-widgets/jupyterlab-manager\n", - "(myenv) $ jupyter labextension install microsoft-mli-widget\n", - "```" + "```\n" ] }, { @@ -634,7 +622,7 @@ "# retrieve model for visualization and deployment\n", "from azureml.core.model import Model\n", "from sklearn.externals import joblib\n", - "original_model = Model(ws, 'original_model')\n", + "original_model = Model(ws, 'model_explain_model_on_amlcomp')\n", "model_path = original_model.download(exist_ok=True)\n", "original_model = joblib.load(model_path)" ] diff --git a/how-to-use-azureml/explain-model/azure-integration/remote-explanation/train_explain.py b/how-to-use-azureml/explain-model/azure-integration/remote-explanation/train_explain.py index beefff8e..c38839cc 100644 --- a/how-to-use-azureml/explain-model/azure-integration/remote-explanation/train_explain.py +++ b/how-to-use-azureml/explain-model/azure-integration/remote-explanation/train_explain.py @@ -46,7 +46,8 @@ with open(model_file_name, 'wb') as file: # register the model run.upload_file('original_model.pkl', os.path.join('./outputs/', model_file_name)) -original_model = run.register_model(model_name='original_model', model_path='original_model.pkl') +original_model = run.register_model(model_name='model_explain_model_on_amlcomp', + model_path='original_model.pkl') # Explain predictions on your local machine tabular_explainer = TabularExplainer(model, X_train, features=boston_data.feature_names) diff --git a/how-to-use-azureml/explain-model/azure-integration/run-history/save-retrieve-explanations-run-history.ipynb b/how-to-use-azureml/explain-model/azure-integration/run-history/save-retrieve-explanations-run-history.ipynb index 485f8e71..d8fbce8a 100644 --- a/how-to-use-azureml/explain-model/azure-integration/run-history/save-retrieve-explanations-run-history.ipynb +++ b/how-to-use-azureml/explain-model/azure-integration/run-history/save-retrieve-explanations-run-history.ipynb @@ -60,25 +60,11 @@ "2. Run 'explain_model' with AML Run History, which leverages run history service to store and manage the explanation data\n", "---\n", "\n", - "## Setup\n", - "\n", - "You will need to have extensions enabled prior to jupyter kernel starting to see the visualization dashboard.\n", - "```\n", - "(myenv) $ jupyter nbextension install --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "(myenv) $ jupyter nbextension enable --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "```\n", - "Or\n", - "\n", - "```\n", - "(myenv) $ jupyter nbextension install azureml.contrib.explain.model.visualize --user --py\n", - "(myenv) $ jupyter nbextension enable azureml.contrib.explain.model.visualize --user --py\n", - "```\n", - "\n", - "If you are using Jupyter Labs run the following commands instead:\n", + "Setup: If you are using Jupyter notebooks, the extensions should be installed automatically with the package.\n", + "If you are using Jupyter Labs run the following command:\n", "```\n", "(myenv) $ jupyter labextension install @jupyter-widgets/jupyterlab-manager\n", - "(myenv) $ jupyter labextension install microsoft-mli-widget\n", - "```" + "```\n" ] }, { diff --git a/how-to-use-azureml/explain-model/azure-integration/scoring-time/score_local_explain.py b/how-to-use-azureml/explain-model/azure-integration/scoring-time/score_local_explain.py new file mode 100644 index 00000000..c102f909 --- /dev/null +++ b/how-to-use-azureml/explain-model/azure-integration/scoring-time/score_local_explain.py @@ -0,0 +1,33 @@ +import json +import numpy as np +import pandas as pd +import os +import pickle +from sklearn.externals import joblib +from sklearn.linear_model import LogisticRegression +from azureml.core.model import Model + + +def init(): + + global original_model + global scoring_explainer + + # Retrieve the path to the model file using the model name + # Assume original model is named original_prediction_model + original_model_path = Model.get_model_path('local_deploy_model') + scoring_explainer_path = Model.get_model_path('IBM_attrition_explainer') + + original_model = joblib.load(original_model_path) + scoring_explainer = joblib.load(scoring_explainer_path) + + +def run(raw_data): + # Get predictions and explanations for each data point + data = pd.read_json(raw_data) + # Make prediction + predictions = original_model.predict(data) + # Retrieve model explanations + local_importance_values = scoring_explainer.explain(data) + # You can return any data type as long as it is JSON-serializable + return {'predictions': predictions.tolist(), 'local_importance_values': local_importance_values} diff --git a/how-to-use-azureml/explain-model/azure-integration/scoring-time/score_remote_explain.py b/how-to-use-azureml/explain-model/azure-integration/scoring-time/score_remote_explain.py new file mode 100644 index 00000000..7ffc21b3 --- /dev/null +++ b/how-to-use-azureml/explain-model/azure-integration/scoring-time/score_remote_explain.py @@ -0,0 +1,33 @@ +import json +import numpy as np +import pandas as pd +import os +import pickle +from sklearn.externals import joblib +from sklearn.linear_model import LogisticRegression +from azureml.core.model import Model + + +def init(): + + global original_model + global scoring_explainer + + # Retrieve the path to the model file using the model name + # Assume original model is named original_prediction_model + original_model_path = Model.get_model_path('amlcompute_deploy_model') + scoring_explainer_path = Model.get_model_path('IBM_attrition_explainer') + + original_model = joblib.load(original_model_path) + scoring_explainer = joblib.load(scoring_explainer_path) + + +def run(raw_data): + # Get predictions and explanations for each data point + data = pd.read_json(raw_data) + # Make prediction + predictions = original_model.predict(data) + # Retrieve model explanations + local_importance_values = scoring_explainer.explain(data) + # You can return any data type as long as it is JSON-serializable + return {'predictions': predictions.tolist(), 'local_importance_values': local_importance_values} diff --git a/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-locally-and-deploy.ipynb b/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-locally-and-deploy.ipynb index 4c7bdd53..37f41b7f 100644 --- a/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-locally-and-deploy.ipynb +++ b/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-locally-and-deploy.ipynb @@ -268,7 +268,8 @@ "\n", "# Register original model\n", "run.upload_file('original_model.pkl', os.path.join('./outputs/', model_file_name))\n", - "original_model = run.register_model(model_name='original_model', model_path='original_model.pkl')\n", + "original_model = run.register_model(model_name='local_deploy_model', \n", + " model_path='original_model.pkl')\n", "\n", "# Register scoring explainer\n", "run.upload_file('IBM_attrition_explainer.pkl', 'scoring_explainer.pkl')\n", @@ -383,7 +384,7 @@ "from azureml.core.image import ContainerImage\n", "\n", "# Use the custom scoring, docker, and conda files we created above\n", - "image_config = ContainerImage.image_configuration(execution_script=\"score.py\",\n", + "image_config = ContainerImage.image_configuration(execution_script=\"score_local_explain.py\",\n", " docker_file=\"dockerfile\", \n", " runtime=\"python\", \n", " conda_file=\"myenv.yml\")\n", diff --git a/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-on-amlcompute-and-deploy.ipynb b/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-on-amlcompute-and-deploy.ipynb index 4432d4f4..33e5d191 100644 --- a/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-on-amlcompute-and-deploy.ipynb +++ b/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-on-amlcompute-and-deploy.ipynb @@ -309,7 +309,7 @@ "# retrieve model for visualization and deployment\n", "from azureml.core.model import Model\n", "from sklearn.externals import joblib\n", - "original_model = Model(ws, 'original_model')\n", + "original_model = Model(ws, 'amlcompute_deploy_model')\n", "model_path = original_model.download(exist_ok=True)\n", "original_svm_model = joblib.load(model_path)" ] @@ -447,7 +447,7 @@ "from azureml.core.image import ContainerImage\n", "\n", "# Use the custom scoring, docker, and conda files we created above\n", - "image_config = ContainerImage.image_configuration(execution_script=\"score.py\",\n", + "image_config = ContainerImage.image_configuration(execution_script=\"score_remote_explain.py\",\n", " docker_file=\"dockerfile\", \n", " runtime=\"python\", \n", " conda_file=\"myenv.yml\")\n", diff --git a/how-to-use-azureml/explain-model/azure-integration/scoring-time/train_explain.py b/how-to-use-azureml/explain-model/azure-integration/scoring-time/train_explain.py index f46e5ee7..b8fb1bd8 100644 --- a/how-to-use-azureml/explain-model/azure-integration/scoring-time/train_explain.py +++ b/how-to-use-azureml/explain-model/azure-integration/scoring-time/train_explain.py @@ -99,7 +99,8 @@ with open(model_file_name, 'wb') as file: # register the model with the model management service for later use run.upload_file('original_model.pkl', os.path.join(OUTPUT_DIR, model_file_name)) -original_model = run.register_model(model_name='original_model', model_path='original_model.pkl') +original_model = run.register_model(model_name='amlcompute_deploy_model', + model_path='original_model.pkl') # create an explainer to validate or debug the model tabular_explainer = TabularExplainer(model, diff --git a/how-to-use-azureml/explain-model/tabular-data/advanced-feature-transformations-explain-local.ipynb b/how-to-use-azureml/explain-model/tabular-data/advanced-feature-transformations-explain-local.ipynb index 3f3e7469..32364bdb 100644 --- a/how-to-use-azureml/explain-model/tabular-data/advanced-feature-transformations-explain-local.ipynb +++ b/how-to-use-azureml/explain-model/tabular-data/advanced-feature-transformations-explain-local.ipynb @@ -62,24 +62,10 @@ "4. Visualize the global and local explanations with the visualization dashboard.\n", "---\n", "\n", - "## Setup\n", - "\n", - "You will need to have extensions enabled prior to jupyter kernel starting to see the visualization dashboard.\n", - "```\n", - "(myenv) $ jupyter nbextension install --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "(myenv) $ jupyter nbextension enable --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "```\n", - "Or\n", - "\n", - "```\n", - "(myenv) $ jupyter nbextension install azureml.contrib.explain.model.visualize --user --py\n", - "(myenv) $ jupyter nbextension enable azureml.contrib.explain.model.visualize --user --py\n", - "```\n", - "\n", - "If you are using Jupyter Labs run the following commands instead:\n", + "Setup: If you are using Jupyter notebooks, the extensions should be installed automatically with the package.\n", + "If you are using Jupyter Labs run the following command:\n", "```\n", "(myenv) $ jupyter labextension install @jupyter-widgets/jupyterlab-manager\n", - "(myenv) $ jupyter labextension install microsoft-mli-widget\n", "```\n" ] }, diff --git a/how-to-use-azureml/explain-model/tabular-data/explain-binary-classification-local.ipynb b/how-to-use-azureml/explain-model/tabular-data/explain-binary-classification-local.ipynb index 782e348c..ef7003fa 100644 --- a/how-to-use-azureml/explain-model/tabular-data/explain-binary-classification-local.ipynb +++ b/how-to-use-azureml/explain-model/tabular-data/explain-binary-classification-local.ipynb @@ -59,24 +59,10 @@ "3. Visualize the global and local explanations with the visualization dashboard.\n", "---\n", "\n", - "## Setup\n", - "\n", - "You will need to have extensions enabled prior to jupyter kernel starting to see the visualization dashboard.\n", - "```\n", - "(myenv) $ jupyter nbextension install --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "(myenv) $ jupyter nbextension enable --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "```\n", - "Or\n", - "\n", - "```\n", - "(myenv) $ jupyter nbextension install azureml.contrib.explain.model.visualize --user --py\n", - "(myenv) $ jupyter nbextension enable azureml.contrib.explain.model.visualize --user --py\n", - "```\n", - "\n", - "If you are using Jupyter Labs run the following commands instead:\n", + "Setup: If you are using Jupyter notebooks, the extensions should be installed automatically with the package.\n", + "If you are using Jupyter Labs run the following command:\n", "```\n", "(myenv) $ jupyter labextension install @jupyter-widgets/jupyterlab-manager\n", - "(myenv) $ jupyter labextension install microsoft-mli-widget\n", "```\n" ] }, diff --git a/how-to-use-azureml/explain-model/tabular-data/explain-multiclass-classification-local.ipynb b/how-to-use-azureml/explain-model/tabular-data/explain-multiclass-classification-local.ipynb index 51f13324..a5d7e7f9 100644 --- a/how-to-use-azureml/explain-model/tabular-data/explain-multiclass-classification-local.ipynb +++ b/how-to-use-azureml/explain-model/tabular-data/explain-multiclass-classification-local.ipynb @@ -60,24 +60,10 @@ "3. Visualize the global and local explanations with the visualization dashboard.\n", "---\n", "\n", - "## Setup\n", - "\n", - "You will need to have extensions enabled prior to jupyter kernel starting to see the visualization dashboard.\n", - "```\n", - "(myenv) $ jupyter nbextension install --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "(myenv) $ jupyter nbextension enable --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "```\n", - "Or\n", - "\n", - "```\n", - "(myenv) $ jupyter nbextension install azureml.contrib.explain.model.visualize --user --py\n", - "(myenv) $ jupyter nbextension enable azureml.contrib.explain.model.visualize --user --py\n", - "```\n", - "\n", - "If you are using Jupyter Labs run the following commands instead:\n", + "Setup: If you are using Jupyter notebooks, the extensions should be installed automatically with the package.\n", + "If you are using Jupyter Labs run the following command:\n", "```\n", "(myenv) $ jupyter labextension install @jupyter-widgets/jupyterlab-manager\n", - "(myenv) $ jupyter labextension install microsoft-mli-widget\n", "```\n" ] }, diff --git a/how-to-use-azureml/explain-model/tabular-data/explain-regression-local.ipynb b/how-to-use-azureml/explain-model/tabular-data/explain-regression-local.ipynb index da78126f..655c21fe 100644 --- a/how-to-use-azureml/explain-model/tabular-data/explain-regression-local.ipynb +++ b/how-to-use-azureml/explain-model/tabular-data/explain-regression-local.ipynb @@ -59,24 +59,10 @@ "3. Visualize the global and local explanations with the visualization dashboard.\n", "---\n", "\n", - "## Setup\n", - "\n", - "You will need to have extensions enabled prior to jupyter kernel starting to see the visualization dashboard.\n", - "```\n", - "(myenv) $ jupyter nbextension install --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "(myenv) $ jupyter nbextension enable --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "```\n", - "Or\n", - "\n", - "```\n", - "(myenv) $ jupyter nbextension install azureml.contrib.explain.model.visualize --user --py\n", - "(myenv) $ jupyter nbextension enable azureml.contrib.explain.model.visualize --user --py\n", - "```\n", - "\n", - "If you are using Jupyter Labs run the following commands instead:\n", + "Setup: If you are using Jupyter notebooks, the extensions should be installed automatically with the package.\n", + "If you are using Jupyter Labs run the following command:\n", "```\n", "(myenv) $ jupyter labextension install @jupyter-widgets/jupyterlab-manager\n", - "(myenv) $ jupyter labextension install microsoft-mli-widget\n", "```\n" ] }, diff --git a/how-to-use-azureml/explain-model/tabular-data/simple-feature-transformations-explain-local.ipynb b/how-to-use-azureml/explain-model/tabular-data/simple-feature-transformations-explain-local.ipynb index a7ddecdd..6e4b280f 100644 --- a/how-to-use-azureml/explain-model/tabular-data/simple-feature-transformations-explain-local.ipynb +++ b/how-to-use-azureml/explain-model/tabular-data/simple-feature-transformations-explain-local.ipynb @@ -61,24 +61,10 @@ "4. Visualize the global and local explanations with the visualization dashboard.\n", "---\n", "\n", - "## Setup\n", - "\n", - "You will need to have extensions enabled prior to jupyter kernel starting to see the visualization dashboard.\n", - "```\n", - "(myenv) $ jupyter nbextension install --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "(myenv) $ jupyter nbextension enable --py --sys-prefix azureml.contrib.explain.model.visualize\n", - "```\n", - "Or\n", - "\n", - "```\n", - "(myenv) $ jupyter nbextension install azureml.contrib.explain.model.visualize --user --py\n", - "(myenv) $ jupyter nbextension enable azureml.contrib.explain.model.visualize --user --py\n", - "```\n", - "\n", - "If you are using Jupyter Labs run the following commands instead:\n", + "Setup: If you are using Jupyter notebooks, the extensions should be installed automatically with the package.\n", + "If you are using Jupyter Labs run the following command:\n", "```\n", "(myenv) $ jupyter labextension install @jupyter-widgets/jupyterlab-manager\n", - "(myenv) $ jupyter labextension install microsoft-mli-widget\n", "```\n" ] }, diff --git a/how-to-use-azureml/machine-learning-pipelines/README.md b/how-to-use-azureml/machine-learning-pipelines/README.md index 2caedc3c..094b21a1 100644 --- a/how-to-use-azureml/machine-learning-pipelines/README.md +++ b/how-to-use-azureml/machine-learning-pipelines/README.md @@ -36,8 +36,7 @@ Azure Machine Learning Pipelines optimize for simplicity, speed, and efficiency. In this directory, there are two types of notebooks: -* The first type of notebooks will introduce you to core Azure Machine Learning Pipelines features. These notebooks below belong in this category, and are designed to go in sequence; they're all located in the "intro-to-pipelines" folder: -Take a look at [intro-to-pipelines](./intro-to-pipelines/) for the list of notebooks that introduce Azure Machine Learning concepts for you. +* The first type of notebooks will introduce you to core Azure Machine Learning Pipelines features. Notebooks in this category are designed to go in sequence; they're all located in the [intro-to-pipelines](./intro-to-pipelines/) folder. * The second type of notebooks illustrate more sophisticated scenarios, and are independent of each other. These notebooks include: diff --git a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/README.md b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/README.md index 8bb46a69..6437e363 100644 --- a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/README.md +++ b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/README.md @@ -15,6 +15,7 @@ These notebooks below are designed to go in sequence. 10. [aml-pipelines-setup-schedule-for-a-published-pipeline.ipynb](https://aka.ms/pl-schedule): Once you publish a Pipeline, you can schedule it to trigger based on an interval or on data change in a defined datastore. 11. [aml-pipelines-with-automated-machine-learning-step.ipynb](https://aka.ms/pl-automl): AutoMLStep in Pipelines shows how you can do automated machine learning using Pipelines. 12. [aml-pipelines-setup-versioned-pipeline-endpoints.ipynb](https://aka.ms/pl-ver-endpoint): This notebook shows how you can setup PipelineEndpoint and submit a Pipeline using the PipelineEndpoint. - +13. [aml-pipelines-showcasing-datapath-and-pipelineparameter.ipynb](https://aka.ms/pl-datapath): This notebook showcases how to use DataPath and PipelineParameter in AML Pipeline. +14. [aml-pipelines-how-to-use-pipeline-drafts.ipynb](http://aka.ms/pl-pl-draft): This notebook shows how to use Pipeline Drafts. Pipeline Drafts are mutable pipelines which can be used to submit runs and create Published Pipelines. ![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/README.png) diff --git a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb index a0f413dc..2b5139e0 100644 --- a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb +++ b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb @@ -333,7 +333,7 @@ " policy=early_termination_policy,\n", " primary_metric_name='validation_acc', \n", " primary_metric_goal=PrimaryMetricGoal.MAXIMIZE, \n", - " max_total_runs=10,\n", + " max_total_runs=4,\n", " max_concurrent_runs=4)" ] }, @@ -441,8 +441,7 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# pipeline_run.wait_for_completion()" + "pipeline_run.wait_for_completion()" ] }, { @@ -459,9 +458,8 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# metrics_output = pipeline_run.get_pipeline_output(metrics_output_name)\n", - "# num_file_downloaded = metrics_output.download('.', show_progress=True)" + "metrics_output = pipeline_run.get_pipeline_output(metrics_output_name)\n", + "num_file_downloaded = metrics_output.download('.', show_progress=True)" ] }, { @@ -470,15 +468,14 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# import pandas as pd\n", - "# import json\n", - "# with open(metrics_output._path_on_datastore) as f: \n", - "# metrics_output_result = f.read()\n", + "import pandas as pd\n", + "import json\n", + "with open(metrics_output._path_on_datastore) as f: \n", + " metrics_output_result = f.read()\n", " \n", - "# deserialized_metrics_output = json.loads(metrics_output_result)\n", - "# df = pd.DataFrame(deserialized_metrics_output)\n", - "# df" + "deserialized_metrics_output = json.loads(metrics_output_result)\n", + "df = pd.DataFrame(deserialized_metrics_output)\n", + "df" ] }, { @@ -495,10 +492,9 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# hd_step_run = HyperDriveStepRun(step_run=pipeline_run.find_step_run(hd_step_name)[0])\n", - "# best_run = hd_step_run.get_best_run_by_primary_metric()\n", - "# best_run" + "hd_step_run = HyperDriveStepRun(step_run=pipeline_run.find_step_run(hd_step_name)[0])\n", + "best_run = hd_step_run.get_best_run_by_primary_metric()\n", + "best_run" ] }, { @@ -514,8 +510,7 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# print(best_run.get_file_names())" + "print(best_run.get_file_names())" ] }, { @@ -531,8 +526,7 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# model = best_run.register_model(model_name='tf-dnn-mnist', model_path='outputs/model')" + "model = best_run.register_model(model_name='tf-dnn-mnist', model_path='outputs/model')" ] }, { @@ -596,15 +590,14 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# from azureml.core.runconfig import CondaDependencies\n", + "from azureml.core.runconfig import CondaDependencies\n", "\n", - "# cd = CondaDependencies.create()\n", - "# cd.add_conda_package('numpy')\n", - "# cd.add_tensorflow_conda_package()\n", - "# cd.save_to_file(base_directory='./', conda_file_path='myenv.yml')\n", + "cd = CondaDependencies.create()\n", + "cd.add_conda_package('numpy')\n", + "cd.add_tensorflow_conda_package()\n", + "cd.save_to_file(base_directory='./', conda_file_path='myenv.yml')\n", "\n", - "# print(cd.serialize_to_string())" + "print(cd.serialize_to_string())" ] }, { @@ -621,13 +614,12 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# from azureml.core.webservice import AciWebservice\n", + "from azureml.core.webservice import AciWebservice\n", "\n", - "# aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, \n", - "# memory_gb=1, \n", - "# tags={'name':'mnist', 'framework': 'TensorFlow DNN'},\n", - "# description='Tensorflow DNN on MNIST')" + "aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, \n", + " memory_gb=1, \n", + " tags={'name':'mnist', 'framework': 'TensorFlow DNN'},\n", + " description='Tensorflow DNN on MNIST')" ] }, { @@ -652,12 +644,11 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# from azureml.core.image import ContainerImage\n", + "from azureml.core.image import ContainerImage\n", "\n", - "# imgconfig = ContainerImage.image_configuration(execution_script=\"score.py\", \n", - "# runtime=\"python\", \n", - "# conda_file=\"myenv.yml\")" + "imgconfig = ContainerImage.image_configuration(execution_script=\"score.py\", \n", + " runtime=\"python\", \n", + " conda_file=\"myenv.yml\")" ] }, { @@ -666,17 +657,16 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# %%time\n", - "# from azureml.core.webservice import Webservice\n", + "%%time\n", + "from azureml.core.webservice import Webservice\n", "\n", - "# service = Webservice.deploy_from_model(workspace=ws,\n", - "# name='tf-mnist-svc',\n", - "# deployment_config=aciconfig,\n", - "# models=[model],\n", - "# image_config=imgconfig)\n", + "service = Webservice.deploy_from_model(workspace=ws,\n", + " name='tf-mnist-svc',\n", + " deployment_config=aciconfig,\n", + " models=[model],\n", + " image_config=imgconfig)\n", "\n", - "# service.wait_for_deployment(show_output=True)" + "service.wait_for_deployment(show_output=True)" ] }, { @@ -692,8 +682,7 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# print(service.get_logs())" + "print(service.get_logs())" ] }, { @@ -709,8 +698,7 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# print(service.scoring_uri)" + "print(service.scoring_uri)" ] }, { @@ -729,37 +717,36 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# import json\n", + "import json\n", "\n", - "# # find 30 random samples from test set\n", - "# n = 30\n", - "# sample_indices = np.random.permutation(X_test.shape[0])[0:n]\n", + "# find 30 random samples from test set\n", + "n = 30\n", + "sample_indices = np.random.permutation(X_test.shape[0])[0:n]\n", "\n", - "# test_samples = json.dumps({\"data\": X_test[sample_indices].tolist()})\n", - "# test_samples = bytes(test_samples, encoding='utf8')\n", + "test_samples = json.dumps({\"data\": X_test[sample_indices].tolist()})\n", + "test_samples = bytes(test_samples, encoding='utf8')\n", "\n", - "# # predict using the deployed model\n", - "# result = service.run(input_data=test_samples)\n", + "# predict using the deployed model\n", + "result = service.run(input_data=test_samples)\n", "\n", - "# # compare actual value vs. the predicted values:\n", - "# i = 0\n", - "# plt.figure(figsize = (20, 1))\n", + "# compare actual value vs. the predicted values:\n", + "i = 0\n", + "plt.figure(figsize = (20, 1))\n", "\n", - "# for s in sample_indices:\n", - "# plt.subplot(1, n, i + 1)\n", - "# plt.axhline('')\n", - "# plt.axvline('')\n", + "for s in sample_indices:\n", + " plt.subplot(1, n, i + 1)\n", + " plt.axhline('')\n", + " plt.axvline('')\n", " \n", - "# # use different color for misclassified sample\n", - "# font_color = 'red' if y_test[s] != result[i] else 'black'\n", - "# clr_map = plt.cm.gray if y_test[s] != result[i] else plt.cm.Greys\n", + " # use different color for misclassified sample\n", + " font_color = 'red' if y_test[s] != result[i] else 'black'\n", + " clr_map = plt.cm.gray if y_test[s] != result[i] else plt.cm.Greys\n", " \n", - "# plt.text(x=10, y=-10, s=y_hat[s], fontsize=18, color=font_color)\n", - "# plt.imshow(X_test[s].reshape(28, 28), cmap=clr_map)\n", + " plt.text(x=10, y=-10, s=y_hat[s], fontsize=18, color=font_color)\n", + " plt.imshow(X_test[s].reshape(28, 28), cmap=clr_map)\n", " \n", - "# i = i + 1\n", - "# plt.show()" + " i = i + 1\n", + "plt.show()" ] }, { @@ -775,21 +762,20 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# import requests\n", + "import requests\n", "\n", - "# # send a random row from the test set to score\n", - "# random_index = np.random.randint(0, len(X_test)-1)\n", - "# input_data = \"{\\\"data\\\": [\" + str(list(X_test[random_index])) + \"]}\"\n", + "# send a random row from the test set to score\n", + "random_index = np.random.randint(0, len(X_test)-1)\n", + "input_data = \"{\\\"data\\\": [\" + str(list(X_test[random_index])) + \"]}\"\n", "\n", - "# headers = {'Content-Type':'application/json'}\n", + "headers = {'Content-Type':'application/json'}\n", "\n", - "# resp = requests.post(service.scoring_uri, input_data, headers=headers)\n", + "resp = requests.post(service.scoring_uri, input_data, headers=headers)\n", "\n", - "# print(\"POST to url\", service.scoring_uri)\n", - "# print(\"input data:\", input_data)\n", - "# print(\"label:\", y_test[random_index])\n", - "# print(\"prediction:\", resp.text)" + "print(\"POST to url\", service.scoring_uri)\n", + "print(\"input data:\", input_data)\n", + "print(\"label:\", y_test[random_index])\n", + "print(\"prediction:\", resp.text)" ] }, { @@ -808,18 +794,17 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# models = ws.models\n", - "# for name, model in models.items():\n", - "# print(\"Model: {}, ID: {}\".format(name, model.id))\n", + "models = ws.models\n", + "for name, model in models.items():\n", + " print(\"Model: {}, ID: {}\".format(name, model.id))\n", " \n", - "# images = ws.images\n", - "# for name, image in images.items():\n", - "# print(\"Image: {}, location: {}\".format(name, image.image_location))\n", + "images = ws.images\n", + "for name, image in images.items():\n", + " print(\"Image: {}, location: {}\".format(name, image.image_location))\n", " \n", - "# webservices = ws.webservices\n", - "# for name, webservice in webservices.items():\n", - "# print(\"Webservice: {}, scoring URI: {}\".format(name, webservice.scoring_uri))" + "webservices = ws.webservices\n", + "for name, webservice in webservices.items():\n", + " print(\"Webservice: {}, scoring URI: {}\".format(name, webservice.scoring_uri))" ] }, { @@ -836,15 +821,14 @@ "metadata": {}, "outputs": [], "source": [ - "# PUBLISHONLY\n", - "# service.delete()" + "service.delete()" ] } ], "metadata": { "authors": [ { - "name": "sonnyp" + "name": "sanpil" } ], "kernelspec": { diff --git a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.yml b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.yml new file mode 100644 index 00000000..95c1bc95 --- /dev/null +++ b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.yml @@ -0,0 +1,8 @@ +name: aml-pipelines-parameter-tuning-with-hyperdrive +dependencies: +- pip: + - azureml-sdk + - azureml-widgets + - matplotlib + - numpy + - pandas_ml diff --git a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-schedule-for-a-published-pipeline.yml b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-schedule-for-a-published-pipeline.yml new file mode 100644 index 00000000..f35bb648 --- /dev/null +++ b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-schedule-for-a-published-pipeline.yml @@ -0,0 +1,5 @@ +name: aml-pipelines-setup-schedule-for-a-published-pipeline +dependencies: +- pip: + - azureml-sdk + - azureml-widgets diff --git a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.ipynb b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.ipynb index ee0bbb8d..4b956e86 100644 --- a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.ipynb +++ b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.ipynb @@ -21,10 +21,10 @@ "source": [ "\n", "# How to Setup a PipelineEndpoint and Submit a Pipeline Using the PipelineEndpoint.\n", - "In this notebook, we will see how to setup a PipelineEndpoint and run specific pipeline version.\n", + "In this notebook, we will see how to setup a PipelineEndpoint and run a specific pipeline version.\n", "\n", - "PipelineEndpoint can be used to update a published pipeline while maintaining same endpoint.\n", - "PipelineEndpoint, provides a way to keep track of [PublishedPipelines](https://docs.microsoft.com/en-us/python/api/azureml-pipeline-core/azureml.pipeline.core.publishedpipeline) using versions. PipelineEndpoint uses endpoint with version information to trigger underlying published pipeline. Pipeline endpoints are uniquely named within a workspace. \n" + "PipelineEndpoint can be used to update a published pipeline while maintaining the same endpoint.\n", + "PipelineEndpoint provides a way to keep track of [PublishedPipelines](https://docs.microsoft.com/en-us/python/api/azureml-pipeline-core/azureml.pipeline.core.publishedpipeline) using versions. PipelineEndpoint uses endpoint with version information to trigger an underlying published pipeline. Pipeline endpoints are uniquely named within a workspace. \n" ] }, { @@ -433,7 +433,7 @@ "metadata": {}, "outputs": [], "source": [ - "pipeline_endpoint_by_name = PipelineEndpoint.get(workspace=ws, name=\"PipelineEndpointTest\")\n", + "pipeline_endpoint_by_name = PipelineEndpoint.get(workspace=ws, name=\"NewName\")\n", "\n", "# endpoint with id \n", "rest_endpoint_id = pipeline_endpoint_by_name.endpoint\n", @@ -515,11 +515,11 @@ "outputs": [], "source": [ "# submit pipeline with specific version\n", - "run_id = pipeline_endpoint_by_name.submit(\"TestPipelineEndpoint\", pipeline_version=\"0\")\n", + "run_id = pipeline_endpoint_by_name.submit(\"NewName\", pipeline_version=\"0\")\n", "print(run_id)\n", "\n", "# submit pipeline with default version\n", - "run_id = pipeline_endpoint_by_name.submit(\"TestPipelineEndpoint\")\n", + "run_id = pipeline_endpoint_by_name.submit(\"NewName\")\n", "print(run_id)" ] } diff --git a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.yml b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.yml new file mode 100644 index 00000000..aae504eb --- /dev/null +++ b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.yml @@ -0,0 +1,6 @@ +name: aml-pipelines-setup-versioned-pipeline-endpoints +dependencies: +- pip: + - azureml-sdk + - azureml-widgets + - requests diff --git a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-showcasing-datapath-and-pipelineparameter.ipynb b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-showcasing-datapath-and-pipelineparameter.ipynb new file mode 100644 index 00000000..903362cf --- /dev/null +++ b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-showcasing-datapath-and-pipelineparameter.ipynb @@ -0,0 +1,479 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved. \n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-with-data-dependency-steps.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Showcasing DataPath and PipelineParameter\n", + "\n", + "This notebook demonstrateas the use of [**DataPath**](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.data.datapath.datapath?view=azure-ml-py) and [**PipelineParameters**](https://docs.microsoft.com/en-us/python/api/azureml-pipeline-core/azureml.pipeline.core.pipelineparameter?view=azure-ml-py) in AML Pipeline. You will learn how strings and [**DataPath**](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.data.datapath.datapath?view=azure-ml-py) can be parameterized and submitted to AML Pipelines via [**PipelineParameters**](https://docs.microsoft.com/en-us/python/api/azureml-pipeline-core/azureml.pipeline.core.pipelineparameter?view=azure-ml-py).\n", + "To see more about how parameters work between steps, please refer [aml-pipelines-with-data-dependency-steps](https://aka.ms/pl-data-dep).\n", + "\n", + "* [How to create a Pipeline with a DataPath PipelineParameter](#index1)\n", + "* [How to submit a Pipeline with a DataPath PipelineParameter](#index2)\n", + "* [How to submit a Pipeline and change the DataPath PipelineParameter value from the sdk](#index3)\n", + "* [How to submit a Pipeline and change the DataPath PipelineParameter value using a REST call](#index4)\n", + "* [How to create a datastore trigger schedule and use the data_path_parameter_name to get the path of the changed blob in the Pipeline](#index5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Azure Machine Learning and Pipeline SDK-specific imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import azureml.core\n", + "from azureml.core import Workspace, Experiment\n", + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.data.datapath import DataPath, DataPathComputeBinding\n", + "from azureml.widgets import RunDetails\n", + "\n", + "from azureml.pipeline.core import PipelineParameter\n", + "from azureml.pipeline.core import Pipeline, PipelineRun\n", + "from azureml.pipeline.steps import PythonScriptStep\n", + "\n", + "# Check core SDK version number\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize Workspace\n", + "\n", + "Initialize a workspace object from persisted configuration. If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, make sure the config file is present at .\\config.json\n", + "\n", + "If you don't have a config.json file, please go through the configuration Notebook first.\n", + "\n", + "This sets you up with a working config file that has information on your workspace, subscription id, etc." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ws = Workspace.from_config()\n", + "print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep = '\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create an Azure ML experiment\n", + "\n", + "Let's create an experiment named \"automl-classification\" and a folder to hold the training scripts. The script runs will be recorded under the experiment in Azure." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Choose a name for the run history container in the workspace.\n", + "experiment_name = 'showcasing-datapath'\n", + "source_directory = '.'\n", + "\n", + "experiment = Experiment(ws, experiment_name)\n", + "experiment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or Attach an AmlCompute cluster\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for your AutoML run. In this tutorial, you get the default `AmlCompute` as your training compute resource." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Choose a name for your cluster.\n", + "amlcompute_cluster_name = \"cpu-cluster\"\n", + "\n", + "found = False\n", + "# Check if this compute target already exists in the workspace.\n", + "cts = ws.compute_targets\n", + "if amlcompute_cluster_name in cts and cts[amlcompute_cluster_name].type == 'AmlCompute':\n", + " found = True\n", + " print('Found existing compute target.')\n", + " compute_target = cts[amlcompute_cluster_name]\n", + " \n", + "if not found:\n", + " print('Creating a new compute target...')\n", + " provisioning_config = AmlCompute.provisioning_configuration(vm_size = \"STANDARD_D2_V2\", # for GPU, use \"STANDARD_NC6\"\n", + " #vm_priority = 'lowpriority', # optional\n", + " max_nodes = 4)\n", + "\n", + " # Create the cluster.\n", + " compute_target = ComputeTarget.create(ws, amlcompute_cluster_name, provisioning_config)\n", + " \n", + " # Can poll for a minimum number of nodes and for a specific timeout.\n", + " # If no min_node_count is provided, it will use the scale settings for the cluster.\n", + " compute_target.wait_for_completion(show_output = True, timeout_in_minutes = 10)\n", + " \n", + " # For a more detailed view of current AmlCompute status, use get_status()." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Data and arguments setup \n", + "\n", + "We will setup a trining script to run and its arguments to be used. The sample training script below will print the two arguments to show what has been passed to pipeline." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile train_with_datapath.py\n", + "import argparse\n", + "import os\n", + "\n", + "parser = argparse.ArgumentParser(\"train\")\n", + "parser.add_argument(\"--arg1\", type=str, help=\"sample string argument\")\n", + "parser.add_argument(\"--arg2\", type=str, help=\"sample datapath argument\")\n", + "args = parser.parse_args()\n", + "\n", + "print(\"Sample string argument : %s\" % args.arg1)\n", + "print(\"Sample datapath argument: %s\" % args.arg2)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's setup string and DataPath arguments using PipelineParameter. \n", + "\n", + "Note that Pipeline accepts a tuple of the form ([**PipelineParameters**](https://docs.microsoft.com/en-us/python/api/azureml-pipeline-core/azureml.pipeline.core.pipelineparameter?view=azure-ml-py) , [**DataPathComputeBinding**](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.data.datapath.datapathcomputebinding?view=azure-ml-py)) as an input. DataPath defines the location of input data. DataPathComputeBinding defines how the data is consumed during step execution. The DataPath can be modified at pipeline submission time with a DataPath parameter, while the compute binding does not change. For static data inputs, we use [**DataReference**](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.data.data_reference.datareference?view=azure-ml-py) which defines both the data location and compute binding." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def_blob_store = ws.get_default_datastore()\n", + "print(\"Default datastore's name: {}\".format(def_blob_store.name))\n", + "\n", + "data_path = DataPath(datastore=def_blob_store, path_on_datastore='sample_datapath1')\n", + "datapath1_pipeline_param = PipelineParameter(name=\"input_datapath\", default_value=data_path)\n", + "datapath_input = (datapath1_pipeline_param, DataPathComputeBinding(mode='mount'))\n", + "\n", + "string_pipeline_param = PipelineParameter(name=\"input_string\", default_value='sample_string1')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create a Pipeline with a DataPath PipelineParameter\n", + "\n", + "Note that the ```datapath_input``` is specified on both arguments and inputs to create a step." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_step = PythonScriptStep(\n", + " name='train_step',\n", + " script_name=\"train_with_datapath.py\",\n", + " arguments=[\"--arg1\", string_pipeline_param, \"--arg2\", datapath_input],\n", + " inputs=[datapath_input],\n", + " compute_target=compute_target, \n", + " source_directory=source_directory)\n", + "print(\"train_step created\")\n", + "\n", + "pipeline = Pipeline(workspace=ws, steps=[train_step])\n", + "print(\"pipeline with the train_step created\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Submit a Pipeline with a DataPath PipelineParameter\n", + "\n", + "Pipelines can be submitted with default values of PipelineParameters by not specifying any parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline_run = experiment.submit(pipeline)\n", + "print(\"Pipeline is submitted for execution\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "RunDetails(pipeline_run).show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline_run.wait_for_completion()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Submit a Pipeline and change the DataPath PipelineParameter value from the sdk\n", + "\n", + "Or Pipelines can be submitted with values other than default ones by using pipeline_parameters. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline_run_with_params = experiment.submit(pipeline, \\\n", + " pipeline_parameters={'input_datapath': DataPath(datastore=def_blob_store, path_on_datastore='sample_datapath2'),\n", + " 'input_string': 'sample_string2'}) " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "RunDetails(pipeline_run_with_params).show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline_run_with_params.wait_for_completion()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Submit a Pipeline and change the DataPath PipelineParameter value using a REST call\n", + "\n", + "Let's published the pipeline to use the rest endpoint of the published pipeline." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "published_pipeline = pipeline.publish(name=\"DataPath_Pipeline\", description=\"Pipeline to test Datapath\", continue_on_step_failure=True)\n", + "published_pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.authentication import InteractiveLoginAuthentication\n", + "import requests\n", + "\n", + "auth = InteractiveLoginAuthentication()\n", + "aad_token = auth.get_authentication_header()\n", + "\n", + "rest_endpoint = published_pipeline.endpoint\n", + "\n", + "print(\"You can perform HTTP POST on URL {} to trigger this pipeline\".format(rest_endpoint))\n", + "\n", + "# specify the param when running the pipeline\n", + "response = requests.post(rest_endpoint, \n", + " headers=aad_token, \n", + " json={\"ExperimentName\": \"MyRestPipeline\",\n", + " \"RunSource\": \"SDK\",\n", + " \"DataPathAssignments\": {\n", + " \"input_datapath\": { \n", + " \"DataStoreName\": def_blob_store.name,\n", + " \"RelativePath\": 'sample_datapath3'\n", + " }\n", + " },\n", + " \"ParameterAssignments\": {\"input_string\": \"sample_string3\"}\n", + " }\n", + " )\n", + "\n", + "run_id = response.json()[\"Id\"]\n", + "print('Submitted pipeline run: ', run_id)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "published_pipeline_run_via_rest = PipelineRun(ws.experiments[\"MyRestPipeline\"], run_id)\n", + "RunDetails(published_pipeline_run_via_rest).show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "published_pipeline_run_via_rest.wait_for_completion()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create a Datastore trigger schedule and use data path parameter\n", + "\n", + "When the Pipeline is scheduled with DataPath parameter, it will be triggered by the modified or added data in the DataPath. ```path_on_datastore``` should be a folder and the value of the DataPath will be replaced by the path of the modified data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.pipeline.core import Schedule\n", + "\n", + "schedule = Schedule.create(workspace=ws, \n", + " name=\"Datastore_trigger_schedule\",\n", + " pipeline_id=published_pipeline.id, \n", + " experiment_name='Scheduled_Pipeline',\n", + " datastore=def_blob_store,\n", + " wait_for_provisioning=True,\n", + " description=\"Datastore trigger schedule demo\",\n", + " path_on_datastore=\"sample_datapath_for_folder\",\n", + " data_path_parameter_name=\"input_datapath\") #Same name as used above to create PipelineParameter\n", + "\n", + "print(\"Created schedule with id: {}\".format(schedule.id))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schedule.disable()\n", + "schedule" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "sanpil" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-showcasing-datapath-and-pipelineparameter.yml b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-showcasing-datapath-and-pipelineparameter.yml new file mode 100644 index 00000000..0463f025 --- /dev/null +++ b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-showcasing-datapath-and-pipelineparameter.yml @@ -0,0 +1,5 @@ +name: aml-pipelines-showcasing-datapath-and-pipelineparameter +dependencies: +- pip: + - azureml-sdk + - azureml-widgets diff --git a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-with-data-dependency-steps.ipynb b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-with-data-dependency-steps.ipynb index 8131b6e0..3a32e59a 100644 --- a/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-with-data-dependency-steps.ipynb +++ b/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-with-data-dependency-steps.ipynb @@ -20,7 +20,7 @@ "metadata": {}, "source": [ "# Azure Machine Learning Pipelines with Data Dependency\n", - "In this notebook, we will see how we can build a pipeline with implicit data dependancy." + "In this notebook, we will see how we can build a pipeline with implicit data dependency." ] }, { diff --git a/how-to-use-azureml/machine-learning-pipelines/nyc-taxi-data-regression-model-building/nyc-taxi-data-regression-model-building.ipynb b/how-to-use-azureml/machine-learning-pipelines/nyc-taxi-data-regression-model-building/nyc-taxi-data-regression-model-building.ipynb index fa5d1121..371b8411 100644 --- a/how-to-use-azureml/machine-learning-pipelines/nyc-taxi-data-regression-model-building/nyc-taxi-data-regression-model-building.ipynb +++ b/how-to-use-azureml/machine-learning-pipelines/nyc-taxi-data-regression-model-building/nyc-taxi-data-regression-model-building.ipynb @@ -248,7 +248,7 @@ "# Specify CondaDependencies obj, add necessary packages\n", "aml_run_config.environment.python.conda_dependencies = CondaDependencies.create(\n", " conda_packages=['pandas','scikit-learn'], \n", - " pip_packages=['azureml-sdk', 'azureml-dataprep', 'azureml-train-automl==1.0.33'], \n", + " pip_packages=['azureml-sdk', 'azureml-dataprep', 'azureml-train-automl'], \n", " pin_sdk_version=False)\n", "\n", "print (\"Run configuration created.\")" diff --git a/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/chainer_mnist.py b/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/chainer_mnist.py new file mode 100644 index 00000000..df2d6a6e --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/chainer_mnist.py @@ -0,0 +1,139 @@ + +import argparse +import os + +import numpy as np + +import chainer +from chainer import backend +from chainer import backends +from chainer.backends import cuda +from chainer import Function, gradient_check, report, training, utils, Variable +from chainer import datasets, iterators, optimizers, serializers +from chainer import Link, Chain, ChainList +import chainer.functions as F +import chainer.links as L +from chainer.training import extensions +from chainer.dataset import concat_examples +from chainer.backends.cuda import to_cpu + +from azureml.core.run import Run +run = Run.get_context() + + +class MyNetwork(Chain): + + def __init__(self, n_mid_units=100, n_out=10): + super(MyNetwork, self).__init__() + with self.init_scope(): + self.l1 = L.Linear(None, n_mid_units) + self.l2 = L.Linear(n_mid_units, n_mid_units) + self.l3 = L.Linear(n_mid_units, n_out) + + def forward(self, x): + h = F.relu(self.l1(x)) + h = F.relu(self.l2(h)) + return self.l3(h) + + +def main(): + parser = argparse.ArgumentParser(description='Chainer example: MNIST') + parser.add_argument('--batchsize', '-b', type=int, default=100, + help='Number of images in each mini-batch') + parser.add_argument('--epochs', '-e', type=int, default=20, + help='Number of sweeps over the dataset to train') + parser.add_argument('--output_dir', '-o', default='./outputs', + help='Directory to output the result') + parser.add_argument('--gpu_id', '-g', default=0, + help='ID of the GPU to be used. Set to -1 if you use CPU') + args = parser.parse_args() + + # Download the MNIST data if you haven't downloaded it yet + train, test = datasets.mnist.get_mnist(withlabel=True, ndim=1) + + gpu_id = args.gpu_id + batchsize = args.batchsize + epochs = args.epochs + run.log('Batch size', np.int(batchsize)) + run.log('Epochs', np.int(epochs)) + + train_iter = iterators.SerialIterator(train, batchsize) + test_iter = iterators.SerialIterator(test, batchsize, + repeat=False, shuffle=False) + + model = MyNetwork() + + if gpu_id >= 0: + # Make a specified GPU current + chainer.backends.cuda.get_device_from_id(0).use() + model.to_gpu() # Copy the model to the GPU + + # Choose an optimizer algorithm + optimizer = optimizers.MomentumSGD(lr=0.01, momentum=0.9) + + # Give the optimizer a reference to the model so that it + # can locate the model's parameters. + optimizer.setup(model) + + while train_iter.epoch < epochs: + # ---------- One iteration of the training loop ---------- + train_batch = train_iter.next() + image_train, target_train = concat_examples(train_batch, gpu_id) + + # Calculate the prediction of the network + prediction_train = model(image_train) + + # Calculate the loss with softmax_cross_entropy + loss = F.softmax_cross_entropy(prediction_train, target_train) + + # Calculate the gradients in the network + model.cleargrads() + loss.backward() + + # Update all the trainable parameters + optimizer.update() + # --------------------- until here --------------------- + + # Check the validation accuracy of prediction after every epoch + if train_iter.is_new_epoch: # If this iteration is the final iteration of the current epoch + + # Display the training loss + print('epoch:{:02d} train_loss:{:.04f} '.format( + train_iter.epoch, float(to_cpu(loss.array))), end='') + + test_losses = [] + test_accuracies = [] + while True: + test_batch = test_iter.next() + image_test, target_test = concat_examples(test_batch, gpu_id) + + # Forward the test data + prediction_test = model(image_test) + + # Calculate the loss + loss_test = F.softmax_cross_entropy(prediction_test, target_test) + test_losses.append(to_cpu(loss_test.array)) + + # Calculate the accuracy + accuracy = F.accuracy(prediction_test, target_test) + accuracy.to_cpu() + test_accuracies.append(accuracy.array) + + if test_iter.is_new_epoch: + test_iter.epoch = 0 + test_iter.current_position = 0 + test_iter.is_new_epoch = False + test_iter._pushed_position = None + break + + val_accuracy = np.mean(test_accuracies) + print('val_loss:{:.04f} val_accuracy:{:.04f}'.format( + np.mean(test_losses), val_accuracy)) + + run.log("Accuracy", np.float(val_accuracy)) + + serializers.save_npz(os.path.join(args.output_dir, 'model.npz'), model) + + +if __name__ == '__main__': + main() diff --git a/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/chainer_score.py b/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/chainer_score.py new file mode 100644 index 00000000..f6ec3a6c --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/chainer_score.py @@ -0,0 +1,45 @@ +import numpy as np +import os +import json + +from chainer import serializers, using_config, Variable, datasets +import chainer.functions as F +import chainer.links as L +from chainer import Chain + +from azureml.core.model import Model + + +class MyNetwork(Chain): + + def __init__(self, n_mid_units=100, n_out=10): + super(MyNetwork, self).__init__() + with self.init_scope(): + self.l1 = L.Linear(None, n_mid_units) + self.l2 = L.Linear(n_mid_units, n_mid_units) + self.l3 = L.Linear(n_mid_units, n_out) + + def forward(self, x): + h = F.relu(self.l1(x)) + h = F.relu(self.l2(h)) + return self.l3(h) + + +def init(): + global model + + model_root = Model.get_model_path('chainer-dnn-mnist') + + # Load our saved artifacts + model = MyNetwork() + serializers.load_npz(model_root, model) + + +def run(input_data): + i = np.array(json.loads(input_data)['data']) + + _, test = datasets.get_mnist() + x = Variable(np.asarray([test[i][0]])) + y = model(x) + + return np.ndarray.tolist(y.data.argmax(axis=1)) diff --git a/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.ipynb b/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.ipynb new file mode 100644 index 00000000..db24ffee --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.ipynb @@ -0,0 +1,725 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved. \n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Train and hyperparameter tune with Chainer\n", + "\n", + "In this tutorial, we demonstrate how to use the Azure ML Python SDK to train a Convolutional Neural Network (CNN) on a single-node GPU with Chainer to perform handwritten digit recognition on the popular MNIST dataset. We will also demonstrate how to perform hyperparameter tuning of the model using Azure ML's HyperDrive service." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "* If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [Configuration](../../../configuration.ipynb) notebook to install the Azure Machine Learning Python SDK and create an Azure ML `Workspace`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!jupyter nbextension install --py --user azureml.widgets\n", + "!jupyter nbextension enable --py --user azureml.widgets" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics\n", + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "Diagnostics" + ] + }, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace\n", + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep = '\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or Attach existing AmlCompute\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, we use Azure ML managed compute ([AmlCompute](https://docs.microsoft.com/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute)) for our remote training compute resource.\n", + "\n", + "**Creation of AmlCompute takes approximately 5 minutes.** If the AmlCompute with that name is already in your workspace, this code will skip the creation process.\n", + "\n", + "As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read [this article](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-manage-quotas) on the default limits and how to request more quota." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"gpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target.')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6', \n", + " min_nodes=2,\n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " compute_target.wait_for_completion(show_output=True)\n", + "\n", + "# use get_status() to get a detailed status for the current cluster. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code creates a GPU cluster. If you instead want to create a CPU cluster, provide a different VM size to the `vm_size` parameter, such as `STANDARD_D2_V2`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model on the remote compute\n", + "Now that you have your data and training script prepared, you are ready to train on your remote compute cluster. You can take advantage of Azure compute to leverage GPUs to cut down your training time. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a project directory\n", + "Create a directory that will contain all the necessary code from your local machine that you will need access to on the remote resource. This includes the training script and any additional files your training script depends on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "project_folder = './chainer-mnist'\n", + "os.makedirs(project_folder, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare training script\n", + "Now you will need to create your training script. In this tutorial, the training script is already provided for you at `chainer_mnist.py`. In practice, you should be able to take any custom training script as is and run it with Azure ML without having to modify your code.\n", + "\n", + "However, if you would like to use Azure ML's [tracking and metrics](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#metrics) capabilities, you will have to add a small amount of Azure ML code inside your training script. \n", + "\n", + "In `chainer_mnist.py`, we will log some metrics to our Azure ML run. To do so, we will access the Azure ML `Run` object within the script:\n", + "```Python\n", + "from azureml.core.run import Run\n", + "run = Run.get_context()\n", + "```\n", + "Further within `chainer_mnist.py`, we log the batchsize and epochs parameters, and the highest accuracy the model achieves:\n", + "```Python\n", + "run.log('Batch size', np.int(args.batchsize))\n", + "run.log('Epochs', np.int(args.epochs))\n", + "\n", + "run.log('Accuracy', np.float(val_accuracy))\n", + "```\n", + "These run metrics will become particularly important when we begin hyperparameter tuning our model in the \"Tune model hyperparameters\" section." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once your script is ready, copy the training script `chainer_mnist.py` into your project directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "shutil.copy('chainer_mnist.py', project_folder)\n", + "shutil.copy('chainer_score.py', project_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create an experiment\n", + "Create an [Experiment](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#experiment) to track all the runs in your workspace for this Chainer tutorial. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "experiment_name = 'chainer-mnist'\n", + "experiment = Experiment(ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a Chainer estimator\n", + "The Azure ML SDK's Chainer estimator enables you to easily submit Chainer training jobs for both single-node and distributed runs. The following code will define a single-node Chainer job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "dnn-chainer-remarks-sample" + ] + }, + "outputs": [], + "source": [ + "from azureml.train.dnn import Chainer\n", + "\n", + "script_params = {\n", + " '--epochs': 10,\n", + " '--batchsize': 128,\n", + " '--output_dir': './outputs'\n", + "}\n", + "\n", + "estimator = Chainer(source_directory=project_folder, \n", + " script_params=script_params,\n", + " compute_target=compute_target,\n", + " pip_packages=['numpy', 'pytest'],\n", + " entry_script='chainer_mnist.py',\n", + " use_gpu=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `script_params` parameter is a dictionary containing the command-line arguments to your training script `entry_script`. To leverage the Azure VM's GPU for training, we set `use_gpu=True`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job\n", + "Run your experiment by submitting your estimator object. Note that this call is asynchronous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = experiment.submit(estimator)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor your run\n", + "You can monitor the progress of the run with a Jupyter widget. Like the run submission, the widget is asynchronous and provides live updates every 10-15 seconds until the job completes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# to get more details of your run\n", + "print(run.get_details())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tune model hyperparameters\n", + "Now that we've seen how to do a simple Chainer training run using the SDK, let's see if we can further improve the accuracy of our model. We can optimize our model's hyperparameters using Azure Machine Learning's hyperparameter tuning capabilities." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Start a hyperparameter sweep\n", + "First, we will define the hyperparameter space to sweep over. Let's tune the batch size and epochs parameters. In this example we will use random sampling to try different configuration sets of hyperparameters to maximize our primary metric, accuracy.\n", + "\n", + "Then, we specify the early termination policy to use to early terminate poorly performing runs. Here we use the `BanditPolicy`, which will terminate any run that doesn't fall within the slack factor of our primary evaluation metric. In this tutorial, we will apply this policy every epoch (since we report our `Accuracy` metric every epoch and `evaluation_interval=1`). Notice we will delay the first policy evaluation until after the first `3` epochs (`delay_evaluation=3`).\n", + "Refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-tune-hyperparameters#specify-an-early-termination-policy) for more information on the BanditPolicy and other policies available." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.hyperdrive.runconfig import HyperDriveConfig\n", + "from azureml.train.hyperdrive.sampling import RandomParameterSampling\n", + "from azureml.train.hyperdrive.policy import BanditPolicy\n", + "from azureml.train.hyperdrive.run import PrimaryMetricGoal\n", + "from azureml.train.hyperdrive.parameter_expressions import choice\n", + " \n", + "\n", + "param_sampling = RandomParameterSampling( {\n", + " \"--batchsize\": choice(128, 256),\n", + " \"--epochs\": choice(5, 10, 20, 40)\n", + " }\n", + ")\n", + "\n", + "hyperdrive_config = HyperDriveConfig(estimator=estimator,\n", + " hyperparameter_sampling=param_sampling, \n", + " primary_metric_name='Accuracy',\n", + " policy=BanditPolicy(evaluation_interval=1, slack_factor=0.1, delay_evaluation=3),\n", + " primary_metric_goal=PrimaryMetricGoal.MAXIMIZE,\n", + " max_total_runs=8,\n", + " max_concurrent_runs=4)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, lauch the hyperparameter tuning job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# start the HyperDrive run\n", + "hyperdrive_run = experiment.submit(hyperdrive_config)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor HyperDrive runs\n", + "You can monitor the progress of the runs with the following Jupyter widget. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "RunDetails(hyperdrive_run).show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hyperdrive_run.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Find and register best model\n", + "When all jobs finish, we can find out the one that has the highest accuracy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "best_run = hyperdrive_run.get_best_run_by_primary_metric()\n", + "print(best_run.get_details()['runDefinition']['arguments'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's list the model files uploaded during the run." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(best_run.get_file_names())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then register the folder (and all files in it) as a model named `chainer-dnn-mnist` under the workspace for deployment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model = best_run.register_model(model_name='chainer-dnn-mnist', model_path='outputs/model.npz')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploy the model in ACI\n", + "Now, we are ready to deploy the model as a web service running in Azure Container Instance, [ACI](https://azure.microsoft.com/en-us/services/container-instances/). Azure Machine Learning accomplishes this by constructing a Docker image with the scoring logic and model baked in.\n", + "\n", + "### Create scoring script\n", + "First, we will create a scoring script that will be invoked by the web service call.\n", + "+ Now that the scoring script must have two required functions, `init()` and `run(input_data)`.\n", + " + In `init()`, you typically load the model into a global object. This function is executed only once when the Docker contianer is started.\n", + " + In `run(input_data)`, the model is used to predict a value based on the input data. The input and output to `run` uses NPZ as the serialization and de-serialization format because it is the preferred format for Chainer, but you are not limited to it.\n", + " \n", + "Refer to the scoring script `chainer_score.py` for this tutorial. Our web service will use this file to predict. When writing your own scoring script, don't forget to test it locally first before you go and deploy the web service." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "shutil.copy('chainer_score.py', project_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create myenv.yml\n", + "We also need to create an environment file so that Azure Machine Learning can install the necessary packages in the Docker image which are required by your scoring script. In this case, we need to specify conda packages `numpy` and `chainer`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.runconfig import CondaDependencies\n", + "\n", + "cd = CondaDependencies.create()\n", + "cd.add_conda_package('numpy')\n", + "cd.add_conda_package('chainer')\n", + "cd.save_to_file(base_directory='./', conda_file_path='myenv.yml')\n", + "\n", + "print(cd.serialize_to_string())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Deploy to ACI\n", + "We are almost ready to deploy. Create the inference configuration and deployment configuration and deploy to ACI. This cell will run for about 7-8 minutes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.webservice import AciWebservice\n", + "from azureml.core.model import InferenceConfig\n", + "from azureml.core.webservice import Webservice\n", + "from azureml.core.model import Model\n", + "\n", + "inference_config = InferenceConfig(runtime= \"python\", \n", + " entry_script=\"chainer_score.py\",\n", + " conda_file=\"myenv.yml\")\n", + "\n", + "aciconfig = AciWebservice.deploy_configuration(cpu_cores=1,\n", + " auth_enabled=True, # this flag generates API keys to secure access\n", + " memory_gb=1,\n", + " tags={'name': 'mnist', 'framework': 'Chainer'},\n", + " description='Chainer DNN with MNIST')\n", + "\n", + "service = Model.deploy(workspace=ws, \n", + " name='chainer-mnist-1', \n", + " models=[model], \n", + " inference_config=inference_config, \n", + " deployment_config=aciconfig)\n", + "service.wait_for_deployment(True)\n", + "print(service.state)\n", + "print(service.scoring_uri)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Tip: If something goes wrong with the deployment, the first thing to look at is the logs from the service by running the following command:** `print(service.get_logs())`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is the scoring web service endpoint: `print(service.scoring_uri)`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Test the deployed model\n", + "Let's test the deployed model. Pick a random sample from the test set, and send it to the web service hosted in ACI for a prediction. Note, here we are using the an HTTP request to invoke the service.\n", + "\n", + "We can retrieve the API keys used for accessing the HTTP endpoint and construct a raw HTTP request to send to the service. Don't forget to add key to the HTTP header." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# retreive the API keys. two keys were generated.\n", + "key1, Key2 = service.get_keys()\n", + "print(key1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import urllib\n", + "import gzip\n", + "import numpy as np\n", + "import struct\n", + "import requests\n", + "\n", + "\n", + "# load compressed MNIST gz files and return numpy arrays\n", + "def load_data(filename, label=False):\n", + " with gzip.open(filename) as gz:\n", + " struct.unpack('I', gz.read(4))\n", + " n_items = struct.unpack('>I', gz.read(4))\n", + " if not label:\n", + " n_rows = struct.unpack('>I', gz.read(4))[0]\n", + " n_cols = struct.unpack('>I', gz.read(4))[0]\n", + " res = np.frombuffer(gz.read(n_items[0] * n_rows * n_cols), dtype=np.uint8)\n", + " res = res.reshape(n_items[0], n_rows * n_cols)\n", + " else:\n", + " res = np.frombuffer(gz.read(n_items[0]), dtype=np.uint8)\n", + " res = res.reshape(n_items[0], 1)\n", + " return res\n", + "\n", + "os.makedirs('./data/mnist', exist_ok=True)\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz', filename = './data/mnist/test-images.gz')\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz', filename = './data/mnist/test-labels.gz')\n", + "\n", + "X_test = load_data('./data/mnist/test-images.gz', False)\n", + "y_test = load_data('./data/mnist/test-labels.gz', True).reshape(-1)\n", + "\n", + "\n", + "# send a random row from the test set to score\n", + "random_index = np.random.randint(0, len(X_test)-1)\n", + "input_data = \"{\\\"data\\\": [\" + str(random_index) + \"]}\"\n", + "\n", + "headers = {'Content-Type':'application/json', 'Authorization': 'Bearer ' + key1}\n", + "\n", + "# send sample to service for scoring\n", + "resp = requests.post(service.scoring_uri, input_data, headers=headers)\n", + "\n", + "print(\"label:\", y_test[random_index])\n", + "print(\"prediction:\", resp.text[1])\n", + "\n", + "plt.imshow(X_test[random_index].reshape((28,28)), cmap='gray')\n", + "plt.axis('off')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at the workspace after the web service was deployed. You should see\n", + "\n", + " + a registered model named 'chainer-dnn-mnist' and with the id 'chainer-dnn-mnist:1'\n", + " + a webservice called 'chainer-mnist-svc' with some scoring URL" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "models = ws.models\n", + "for name, model in models.items():\n", + " print(\"Model: {}, ID: {}\".format(name, model.id))\n", + " \n", + "webservices = ws.webservices\n", + "for name, webservice in webservices.items():\n", + " print(\"Webservice: {}, scoring URI: {}\".format(name, webservice.scoring_uri))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Clean up" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can delete the ACI deployment with a simple delete API call." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "service.delete()" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "dipeck" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + }, + "msauthor": "dipeck" + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.yml b/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.yml new file mode 100644 index 00000000..6024bba0 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.yml @@ -0,0 +1,12 @@ +name: train-hyperparameter-tune-deploy-with-chainer +dependencies: +- pip: + - azureml-sdk + - azureml-widgets + - numpy + - matplotlib + - json + - urllib + - gzip + - struct + - requests diff --git a/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.ipynb b/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.ipynb new file mode 100644 index 00000000..012cc9d2 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.ipynb @@ -0,0 +1,320 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Distributed Chainer\n", + "In this tutorial, you will run a Chainer training example on the [MNIST](http://yann.lecun.com/exdb/mnist/) dataset using ChainerMN distributed training across a GPU cluster." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "* If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [Configuration](../../../configuration.ipynb) notebook to install the Azure Machine Learning Python SDK and create an Azure ML `Workspace`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics\n", + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "Diagnostics" + ] + }, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace\n", + "\n", + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep = '\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or attach existing AmlCompute\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, we use Azure ML managed compute ([AmlCompute](https://docs.microsoft.com/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute)) for our remote training compute resource. Specifically, the below code creates an `STANDARD_NC6` GPU cluster that autoscales from `0` to `4` nodes.\n", + "\n", + "**Creation of AmlCompute takes approximately 5 minutes.** If the AmlCompute with that name is already in your workspace, this code will skip the creation process.\n", + "\n", + "As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read [this article](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-manage-quotas) on the default limits and how to request more quota." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"gpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target.')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6',\n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " compute_target.wait_for_completion(show_output=True)\n", + "\n", + "# use get_status() to get a detailed status for the current AmlCompute. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code creates GPU compute. If you instead want to create CPU compute, provide a different VM size to the `vm_size` parameter, such as `STANDARD_D2_V2`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model on the remote compute\n", + "Now that we have the AmlCompute ready to go, let's run our distributed training job." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a project directory\n", + "Create a directory that will contain all the necessary code from your local machine that you will need access to on the remote resource. This includes the training script and any additional files your training script depends on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "project_folder = './chainer-distr'\n", + "os.makedirs(project_folder, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare training script\n", + "Now you will need to create your training script. In this tutorial, the script for distributed training of MNIST is already provided for you at `train_mnist.py`. In practice, you should be able to take any custom Chainer training script as is and run it with Azure ML without having to modify your code." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once your script is ready, copy the training script `train_mnist.py` into the project directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "shutil.copy('train_mnist.py', project_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create an experiment\n", + "Create an [Experiment](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#experiment) to track all the runs in your workspace for this distributed Chainer tutorial. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "experiment_name = 'chainer-distr'\n", + "experiment = Experiment(ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a Chainer estimator\n", + "The Azure ML SDK's Chainer estimator enables you to easily submit Chainer training jobs for both single-node and distributed runs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.dnn import Chainer, Mpi\n", + "\n", + "estimator = Chainer(source_directory=project_folder,\n", + " compute_target=compute_target,\n", + " entry_script='train_mnist.py',\n", + " node_count=2,\n", + " distributed_training=Mpi(),\n", + " use_gpu=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code specifies that we will run our training script on `2` nodes, with one worker per node. In order to execute a distributed run using MPI, you must provide the argument `distributed_backend=Mpi()`. To specify `i` workers per node, you must provide the argument `distributed_backend=Mpi(process_count_per_node=i)`.Using this estimator with these settings, Chainer and its dependencies will be installed for you. However, if your script also uses other packages, make sure to install them via the `Chainer` constructor's `pip_packages` or `conda_packages` parameters." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job\n", + "Run your experiment by submitting your estimator object. Note that this call is asynchronous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = experiment.submit(estimator)\n", + "print(run)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor your run\n", + "You can monitor the progress of the run with a Jupyter widget. Like the run submission, the widget is asynchronous and provides live updates every 10-15 seconds until the job completes. You can see that the widget automatically plots and visualizes the loss metric that we logged to the Azure ML run." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.wait_for_completion(show_output=True)" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "ninhu" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.yml b/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.yml new file mode 100644 index 00000000..0c2ef761 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.yml @@ -0,0 +1,5 @@ +name: distributed-chainer +dependencies: +- pip: + - azureml-sdk + - azureml-widgets diff --git a/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/train_mnist.py b/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/train_mnist.py new file mode 100644 index 00000000..29c77f2d --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/train_mnist.py @@ -0,0 +1,125 @@ +# Official ChainerMN example taken from +# https://github.com/chainer/chainer/blob/master/examples/chainermn/mnist/train_mnist.py + +from __future__ import print_function + +import argparse + +import chainer +import chainer.functions as F +import chainer.links as L +from chainer import training +from chainer.training import extensions + +import chainermn + + +class MLP(chainer.Chain): + + def __init__(self, n_units, n_out): + super(MLP, self).__init__( + # the size of the inputs to each layer will be inferred + l1=L.Linear(784, n_units), # n_in -> n_units + l2=L.Linear(n_units, n_units), # n_units -> n_units + l3=L.Linear(n_units, n_out), # n_units -> n_out + ) + + def __call__(self, x): + h1 = F.relu(self.l1(x)) + h2 = F.relu(self.l2(h1)) + return self.l3(h2) + + +def main(): + parser = argparse.ArgumentParser(description='ChainerMN example: MNIST') + parser.add_argument('--batchsize', '-b', type=int, default=100, + help='Number of images in each mini-batch') + parser.add_argument('--communicator', type=str, + default='non_cuda_aware', help='Type of communicator') + parser.add_argument('--epoch', '-e', type=int, default=20, + help='Number of sweeps over the dataset to train') + parser.add_argument('--gpu', '-g', default=True, + help='Use GPU') + parser.add_argument('--out', '-o', default='result', + help='Directory to output the result') + parser.add_argument('--resume', '-r', default='', + help='Resume the training from snapshot') + parser.add_argument('--unit', '-u', type=int, default=1000, + help='Number of units') + args = parser.parse_args() + + # Prepare ChainerMN communicator. + + if args.gpu: + if args.communicator == 'naive': + print("Error: 'naive' communicator does not support GPU.\n") + exit(-1) + comm = chainermn.create_communicator(args.communicator) + device = comm.intra_rank + else: + if args.communicator != 'naive': + print('Warning: using naive communicator ' + 'because only naive supports CPU-only execution') + comm = chainermn.create_communicator('naive') + device = -1 + + if comm.rank == 0: + print('==========================================') + print('Num process (COMM_WORLD): {}'.format(comm.size)) + if args.gpu: + print('Using GPUs') + print('Using {} communicator'.format(args.communicator)) + print('Num unit: {}'.format(args.unit)) + print('Num Minibatch-size: {}'.format(args.batchsize)) + print('Num epoch: {}'.format(args.epoch)) + print('==========================================') + + model = L.Classifier(MLP(args.unit, 10)) + if device >= 0: + chainer.cuda.get_device_from_id(device).use() + model.to_gpu() + + # Create a multi node optimizer from a standard Chainer optimizer. + optimizer = chainermn.create_multi_node_optimizer( + chainer.optimizers.Adam(), comm) + optimizer.setup(model) + + # Split and distribute the dataset. Only worker 0 loads the whole dataset. + # Datasets of worker 0 are evenly split and distributed to all workers. + if comm.rank == 0: + train, test = chainer.datasets.get_mnist() + else: + train, test = None, None + train = chainermn.scatter_dataset(train, comm, shuffle=True) + test = chainermn.scatter_dataset(test, comm, shuffle=True) + + train_iter = chainer.iterators.SerialIterator(train, args.batchsize) + test_iter = chainer.iterators.SerialIterator(test, args.batchsize, + repeat=False, shuffle=False) + + updater = training.StandardUpdater(train_iter, optimizer, device=device) + trainer = training.Trainer(updater, (args.epoch, 'epoch'), out=args.out) + + # Create a multi node evaluator from a standard Chainer evaluator. + evaluator = extensions.Evaluator(test_iter, model, device=device) + evaluator = chainermn.create_multi_node_evaluator(evaluator, comm) + trainer.extend(evaluator) + + # Some display and output extensions are necessary only for one worker. + # (Otherwise, there would just be repeated outputs.) + if comm.rank == 0: + trainer.extend(extensions.dump_graph('main/loss')) + trainer.extend(extensions.LogReport()) + trainer.extend(extensions.PrintReport( + ['epoch', 'main/loss', 'validation/main/loss', + 'main/accuracy', 'validation/main/accuracy', 'elapsed_time'])) + trainer.extend(extensions.ProgressBar()) + + if args.resume: + chainer.serializers.load_npz(args.resume, trainer) + + trainer.run() + + +if __name__ == '__main__': + main() diff --git a/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/pytorch_score.py b/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/pytorch_score.py new file mode 100644 index 00000000..5df2d8dc --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/pytorch_score.py @@ -0,0 +1,31 @@ +# Copyright (c) Microsoft. All rights reserved. +# Licensed under the MIT license. + +import torch +import torch.nn as nn +from torchvision import transforms +import json + +from azureml.core.model import Model + + +def init(): + global model + model_path = Model.get_model_path('pytorch-birds') + model = torch.load(model_path, map_location=lambda storage, loc: storage) + model.eval() + + +def run(input_data): + input_data = torch.tensor(json.loads(input_data)['data']) + + # get prediction + with torch.no_grad(): + output = model(input_data) + classes = ['chicken', 'turkey'] + softmax = nn.Softmax(dim=1) + pred_probs = softmax(output).numpy()[0] + index = torch.argmax(output, 1) + + result = {"label": classes[index], "probability": str(pred_probs[index])} + return result diff --git a/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/pytorch_train.py b/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/pytorch_train.py new file mode 100644 index 00000000..733c9a22 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/pytorch_train.py @@ -0,0 +1,206 @@ +# Copyright (c) 2017, PyTorch contributors +# Modifications copyright (C) Microsoft Corporation +# Licensed under the BSD license +# Adapted from https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html + +from __future__ import print_function, division +import torch +import torch.nn as nn +import torch.optim as optim +from torch.optim import lr_scheduler +from torchvision import datasets, models, transforms +import numpy as np +import time +import os +import copy +import argparse + +from azureml.core.run import Run +# get the Azure ML run object +run = Run.get_context() + + +def load_data(data_dir): + """Load the train/val data.""" + + # Data augmentation and normalization for training + # Just normalization for validation + data_transforms = { + 'train': transforms.Compose([ + transforms.RandomResizedCrop(224), + transforms.RandomHorizontalFlip(), + transforms.ToTensor(), + transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) + ]), + 'val': transforms.Compose([ + transforms.Resize(256), + transforms.CenterCrop(224), + transforms.ToTensor(), + transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) + ]), + } + + image_datasets = {x: datasets.ImageFolder(os.path.join(data_dir, x), + data_transforms[x]) + for x in ['train', 'val']} + dataloaders = {x: torch.utils.data.DataLoader(image_datasets[x], batch_size=4, + shuffle=True, num_workers=4) + for x in ['train', 'val']} + dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'val']} + class_names = image_datasets['train'].classes + + return dataloaders, dataset_sizes, class_names + + +def train_model(model, criterion, optimizer, scheduler, num_epochs, data_dir): + """Train the model.""" + + # load training/validation data + dataloaders, dataset_sizes, class_names = load_data(data_dir) + + device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + + since = time.time() + + best_model_wts = copy.deepcopy(model.state_dict()) + best_acc = 0.0 + + for epoch in range(num_epochs): + print('Epoch {}/{}'.format(epoch, num_epochs - 1)) + print('-' * 10) + + # Each epoch has a training and validation phase + for phase in ['train', 'val']: + if phase == 'train': + scheduler.step() + model.train() # Set model to training mode + else: + model.eval() # Set model to evaluate mode + + running_loss = 0.0 + running_corrects = 0 + + # Iterate over data. + for inputs, labels in dataloaders[phase]: + inputs = inputs.to(device) + labels = labels.to(device) + + # zero the parameter gradients + optimizer.zero_grad() + + # forward + # track history if only in train + with torch.set_grad_enabled(phase == 'train'): + outputs = model(inputs) + _, preds = torch.max(outputs, 1) + loss = criterion(outputs, labels) + + # backward + optimize only if in training phase + if phase == 'train': + loss.backward() + optimizer.step() + + # statistics + running_loss += loss.item() * inputs.size(0) + running_corrects += torch.sum(preds == labels.data) + + epoch_loss = running_loss / dataset_sizes[phase] + epoch_acc = running_corrects.double() / dataset_sizes[phase] + + print('{} Loss: {:.4f} Acc: {:.4f}'.format( + phase, epoch_loss, epoch_acc)) + + # deep copy the model + if phase == 'val' and epoch_acc > best_acc: + best_acc = epoch_acc + best_model_wts = copy.deepcopy(model.state_dict()) + + # log the best val accuracy to AML run + run.log('best_val_acc', np.float(best_acc)) + + print() + + time_elapsed = time.time() - since + print('Training complete in {:.0f}m {:.0f}s'.format( + time_elapsed // 60, time_elapsed % 60)) + print('Best val Acc: {:4f}'.format(best_acc)) + + # load best model weights + model.load_state_dict(best_model_wts) + return model + + +def fine_tune_model(num_epochs, data_dir, learning_rate, momentum): + """Load a pretrained model and reset the final fully connected layer.""" + + # log the hyperparameter metrics to the AML run + run.log('lr', np.float(learning_rate)) + run.log('momentum', np.float(momentum)) + + model_ft = models.resnet18(pretrained=True) + num_ftrs = model_ft.fc.in_features + model_ft.fc = nn.Linear(num_ftrs, 2) # only 2 classes to predict + + device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + model_ft = model_ft.to(device) + + criterion = nn.CrossEntropyLoss() + + # Observe that all parameters are being optimized + optimizer_ft = optim.SGD(model_ft.parameters(), + lr=learning_rate, momentum=momentum) + + # Decay LR by a factor of 0.1 every 7 epochs + exp_lr_scheduler = lr_scheduler.StepLR( + optimizer_ft, step_size=7, gamma=0.1) + + model = train_model(model_ft, criterion, optimizer_ft, + exp_lr_scheduler, num_epochs, data_dir) + + return model + + +def download_data(): + """Download and extract the training data.""" + import urllib + from zipfile import ZipFile + # download data + data_file = './fowl_data.zip' + download_url = 'https://msdocsdatasets.blob.core.windows.net/pytorchfowl/fowl_data.zip' + urllib.request.urlretrieve(download_url, filename=data_file) + + # extract files + with ZipFile(data_file, 'r') as zip: + print('extracting files...') + zip.extractall() + print('finished extracting') + data_dir = zip.namelist()[0] + + # delete zip file + os.remove(data_file) + return data_dir + + +def main(): + print("Torch version:", torch.__version__) + + # get command-line arguments + parser = argparse.ArgumentParser() + parser.add_argument('--num_epochs', type=int, default=25, + help='number of epochs to train') + parser.add_argument('--output_dir', type=str, help='output directory') + parser.add_argument('--learning_rate', type=float, + default=0.001, help='learning rate') + parser.add_argument('--momentum', type=float, default=0.9, help='momentum') + args = parser.parse_args() + + data_dir = download_data() + print("data directory is: " + data_dir) + model = fine_tune_model(args.num_epochs, data_dir, + args.learning_rate, args.momentum) + os.makedirs(args.output_dir, exist_ok=True) + torch.save(model, os.path.join(args.output_dir, 'model.pt')) + + +if __name__ == "__main__": + main() diff --git a/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/test_img.jpg b/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/test_img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f2878b48b39053fdfb6f26935d8f7bc20ddaa55c GIT binary patch literal 1729434 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%0ATPn)kS?%MU5V9yINCB+2= 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

>pp6> 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𝔡eSQSLl9{Yk0VoNt4CjCtK zwtJ?9t8=(%UHB!a;?4zW;y#?OX*#Kr4Hwa#P}i5tk$rl|JTaq?gaW1h5!m>Q#4{Zf z;uUXn^8JX42`+9p)B<>(wE%Vd>-1%qSz{J0AE)_(+TohT;)!O8iqu-3^fd4HW?o%H zM<#lCZMtKn$rh;c1Us6e0ybX~GOStn+`L;C%AcHnmp2#k4Ij#IbDrUgJe33h)g;uA z2KCyxjAB7|LQ&vB{$74g!{k%?M^!P+aJ^63qmk35`}lXwn9IT*TV1HFf_tm$7W2vV zYXYT(OVvi+{{RRZWf?Uj@^$)6G_y*c5#}E;Us_!qHa87FLAJuZJLWuP$Ia-a*?tJO zhI!iAY~_{-8`im*glo_W5nY)h?Zz;z^me+uPz2qN5#Mk?IB z@5w$`x3soPjX{>wy#P^9Q0-b!?hR|dhG#<$5VGm>Yj}2j0J?6MeW5+9N}pbVe|1G1 zizu&MsZ*8DLNdX+Io`GTCHbJ5oKfgn!*QD4Iuvn3$b9?%0G%^Sr^suR>wnAvs%ix;;#H0c@QnuFGeNl>yJnUqQ!KQaILbCd(0tGT067qYPJ3M(aCJbV z;sS(@yn2&P`IJS5%(_Efm&Mwjne`27{LgzoFHy)=ulYx8r}E+@rv{p(W%Q-L8p3BI*4Pd6DGo|^!6Xwm@<{P@`nMppW5Eo`R7(^u_vi(0OJgG zA!rWdj~)A0@4_;1>>L^5;+3=8trts;M3*otIot^cDpSAqX3q^6(LwZ^Mp@|kZM?pkOht)kzZRTpL-4ZC+?q!DNtAK3ZKLA%pFz&O|?p3vTIxY zA5WTFh*g^Hz%IoA0MntU6{zveo)|!G;~c>SsQHCuV{aH7m;x!%pFe8k@@t6NEUgcr z=~C*~0@a*zBAfIy=xO7cZ1_y&W1D6Z#&}B_)bv~XeO%0WEK#9FTF_T&pVyJcr8wop zUGAPH9+AoA-=(fKO;SxKO@*RZ$ugR3#P{Bv&yHk6R7lyy)#!K)mUX6IypEQ|Pws2+ zY(O`#(}M}6T7L9+j=eVe zdS#gM2<_Dngu1>c{{Wns{PowabZgHqc}__Y!7#}*MuY%p-xuI1Pve_?6!^^+Qov;R z*YX1Obd5&iRr4A3C>~Y>gZ4o*soQh&&ZitB0PnC=BgyE0nLnEks$1K=-NcV{$?(}9 zgfAxBZRTDB6>07CQF0u4J9W@hqek+;-`)>-{q~8K#H}7W3cv$$v0v7aHvMT6_;7 zv|5=cNaCb)>?(iHttie*A&`T!=KlaK{%%}Bseg%{MN9i(P-#^Z6yCKTKOcP7#zx$M zkjduWW&F$3JjbXOwOHr8os7<`egbRSgZN~lJ1#dqZ*lys^YpqZT$}qd9BmO}>9MGD zw%$82%!8YNY@Y;6o7B9W`R{qq;F4t`YW zo^{Z?!F&0QYYozB1A;7qr9oe|jnolch}=`ak(nADL}RgN)b?-YIftJ4Tk@As{G9y8 zpUD<8!*!-=5Xr@zM=>0vs4fS{3e)AW%)IguHtY0SY?!CQQ1%{C)qgGYe=&JCNkeh< zJNUH=d81Oww$iCmc$%G$UZbTjVcbx2GC+e&_ws-93t88^t^O#rv@`ySzFRxe6N`FR z2WBI-^#+5E+wrbIk{yGu-&DS`yOU0a-Nc2e#${#V zJOCr<&0bzCVuPWESrbJy^E?vYBv5J+DFT2?$Ykn zBZ&x`Zajxj6j1)J!v>6t-PlTIQQhcT>NwNxV2OEhLI@q|EB%?1n9!u+j~J)IUP@_C zneVOjI1S4*r_mr(4~WozT+qWcmRU3)2iKlo^0QvVFC~aT#1N{rT30r>W;>iHXt;`= zrTJ+sl#Qt)7DZpOO$NuX8xlNnzsni&c0L6Q41dY~covuPX}6zZH{zt8-oq*o@XLgC zd?uN{n&XdNwvfcd({@_+_)cFbiH+7k&EQK4*NUzHfcu=v$yr5*3otV@UkQF#CE4?d z(mdA~G5V_O%}Fis@42qjAdd{h!ay|av^q$RZ`bIptaR-@1=20n5JwUK18*Pm{@m+u zLNFH>Z;u#{CzgI?{##qjV$^NJB*ZH_kF`Ti{WAx(w1XrstB0$JDMpj!m^8B#_NG}% zuf#{{XGc>Mg7xgl|Q5J-6$&LRpR>vyYZkZ3E<865bij+?A;{ zH304Xeeu$I%{D_*TfVNecp|kBB7%f>>UQzYr$#Gc=f^OZx0_9%TS0YkF^vmPMIf(C zjw~WGSz?UEmy>zo&fCe;!*>ylWW6O+fGS(JkMYc{co=<7qbxU|h0%X2+s`+vcd35v z-4GMMQaWb4LD~NRnVq*_(;D6J@8?vO-a_*Xwi-;Hx{rZWKY9x8J9YdsWvkP8QlQs| z2#mK-^8TZ$>h{A|xf4)=IFUsw&`@>h)~7YOGwju$1@8C1%a1W$J)Dx<0+Ghe@HsUf zD)gsphJ+GZF;I&+)xR<0(dM+4H*QkYoxT%Jwcl;CJ6()@ZfrG`v(;?;!F}dCA*wqU z)1e^n8*)1eli#jW9dxG}PFUXM^B*A%;>sMdyE;UTV40CW^|)d((M^RpexvnI-%zl)MNztEDHFbUf{Tp=Krui=v z203zYGW%^fShR{cdy&aLT#5(HkjGmF^_+&ZM@*iloA{9m!tDy)l?1r&R$U`u_kx zz53mRMsUUIT^(1bs2zW<~EA{LP}xe+YPL;Q$K2s031kZ9$Wca5fG`T(%w; zuK6nAS!TCZqV(FWzqf!r^2(aOePN{8U4WnJ#+mPHj04vs+m4HT>WXVPFN9R_k^2*ZKxsA{rk5k8} zKS`}TGba?{4(?6uv*QaJcfZ!{q19wC!z9YG7U%(O&%S2}h(l*97EUPJ^|L|$0Gx2p zBhY5m8YQ_C#wCr^)OMveBl!E}-<9KqxSV`Oo^9qY$}3iZ?ex+j0ab?NpHjPRLtmEE z%_RLBBP8uD@?M9nd4EuYO4NNscaxk_Nm?}p7z+DRzlK=>BhkajrxSfqquui}G{B2~ zWBid$<0#F5;@mjrZfv1+%PW|t7mAeP3}&<-_E1%L9iRwW<{<40Ax@|WJvg-AEYvlCpBIQ=eV4U() zU6}Q+eA?y7VwmYihs}rin${TvcQOtvz$%J-R0I-h@;x(`)<}c048b;EKI?u-({NxlarFSR4Vl!)}#0NJBNR^&q zvbVLl7Z%JK+(*cNl6oALt|Ou&5hMlBO+h1)-{5r|w(d6M4&Cy+SgdT-tI7{Fev@Ns zug6KlG-}mhN-(7KwZ30g(7qQft zm8v<0rB3}x9WuOm2rfpTLMEPBs!H~EZE3 z#7W)t{{WXf&bK;BMKI?LIUp@UJVigPGi9R9QQ6W2V4g?v#F}_E>{*Fb73<%68hc>T!iBu%wgP!JdL^x!ET2)09bP$T z9d-Z^J7vn+$wU6!O2C;hst0z6~4n zF|k@JDc_D;r-&{-Vg}D=(e7oLA({`~M^{Fv2jK2~vt(gXpy1-n2%?$KZas9iwhUsc z06?g%2l2}F7`S$Fez8H0-uccSE=}pZc*@n{0b@ZxSoQ$nI-VX)c=U!P>lQk|*R+>? z7DZ=}e!=Kz(EPJ&rOpU*`&f=$~JTZ=wk8;Z{+ZWEio0ebU zdv%3nT1O!YDX|r=LGl@+)nM@DY_Q-1a`QbW^WNPfD|270BO39b6#8qo--0;y-Neg; zld=;30RD0b?+mcUs5vQ8P*s8Lu_B)_n!QF7dplh&F%i4O?teQqpDkUBxMgI8i3JF# zBitYJ_sonMFA!|sJOW(bKzR%Pa+cp#x0)H_^sXqON*$PYJ64AT^d>yrHlrNzou1X? z{{T2!dAiC;cn)Gp5n3_!Am*Dcn}D}NF_7f;OaB1N?H5qdqt$e@MXX__2dQD!qp`1S z+-a!A&czs!=J`)pzJtlP@o}ir-N;f7EN6sZ-VuETRd-1z3efMISS1~S`|()^>M+r?t*b5K?gN-;+2h`7y?8E@(ys<@OOHSaJMZDY z_UApT#&Mbq@`4%Ojpyra3f2!VaWYRbfl@&GBk4QSdRH^_c?<^bMk&IX92eI5m9N(# zjYNpmWkdFu9)RXL7^Qz}R-HzoXX0heSbjhdIqkuESDIHYQ4(7kApGm~x;5J;XR82gm z%o?on)=o;!;Fm&vAUhIz3iipFNbDU{td1rxH<}Ymhw5-4o!yjHynAkY{n>PJR^_9Q zj6GjL)-Emd$ggdp4(lMG6)L;#DeYWglfvDWDR7;hkNJ;z6~>=!dH{*NH5@uOi0#z< z_%(X2DBIIwh@4-Uo^^uj%sRDg%X(mj2&C6@^2lgm#mqHk96X-6`F)~GaL)`g1dISS zQV42yr(M46%8=kLzFCh#it{#^tZ8vJwK!)Rq;h?#l|2FIH~#={E5(?Q<--||G*_3c z?>y5aG3sVTRtd;{*8M>6-!Zc1vrUtgJw89mI}L3mzp{A+)Io<)T7k8D?c-d*6EZtE zIkRvv%`aBD^2Viar0R~%7wrN*%_+p!r&2R#i&4NgVG+bEzRU90nJg!QD+wozO(+Ex zqNMFX_-1|%7dJ_i%bI;YofXRSkgHVFi52^^G->0J*~^G>eDnFGXb7JsiyGB^hx6VF%{H2+~UDNnsJPlx`eo-?dK1y}*e9<>TVsQ`Bwo24X1+)PJ?TRf-Eep$bUP>2TF`)jLRJYu_4Ean(%xguvyt28C;hEZ1pesN+_a8v(nFECKab>9^o7SS%wJ?%u zamy@I$3wf+6Y{R(8Ne2a=dMhv%io-h43XPvFib8B09+11k7|n6hvk^E)o_Y(vA_uN zKBv<4`0jlzNk50i9mtISth-$TD7o|rDk3`Gk^_gmuho}ien8> zJ3fAQNbWyR-ZG-20~t~AQ|)hGmTECd8iZKBatRW0M-#XtvfQ&aDqK3Q(Brxoczd{b=sXb<=$!e!F_8a8h7aRt*WY(?7_W{`q^GR zKnI1pE-^fBL(ugda`yHsT|9rGIHsdKzaQXYpUz6G`&7-xW zEOW@!Rzp&JI%cQx;yjuqpND70f0%!gI<}E3>Naj#Fgfz4A~JaOVyaDJQgM5ben8iC zeIjqG-rPDzvEZcdK|{B`U6cbIoLsU4)E{7I7T;WqHkU6CNrNMwgo1leZ%}&XCL9Ep zHaf_G=E1)*KR0#l4ruh-xnwIDtCuCcfTL6qml;SJbL9^f7jI+yrSmR<=eu~dG=em| zh*DBORumn7j%8wnwB-UE*th4U`-z36ii2|{33_j^BpthNj%n96cy(MHm}lhYns2mw zskF^{HsA$lD1H;R-Wgmnfz5`ZvT}O%r)6oWPHuFWC08eyU$ax*qcO8gOOvh15C@yB zJg;-F!6%@Bu02jBt-U+^^4xg1_6{hOa$p9a6{$YYzXHO z@=4#TF*K&#EA(bwmLnOW%NE7$zI*dzK3b*Y6cKO)aG|NqPP;b;Cvq|XDe{k>-jl!yNN>kj}XT(Q2@?PbE~6Ic^OF5BBCB zw+x^xxQ9*wL1@|_@~)k0Wf&YS(YZM5zQ(@$_04F@(7fKS>wID7BzUeau48jJj!sJ8 zZAyaO24`TwTdn{}*)jZ|@-4@mb(k)0;^S!x2a(No3-3x$oX-#v|xJD=&3%aWr(*TW?nd~@e7G3&m4j`lluWGFczH9?T~3t#rBn*2Ir zGjemVYRTBV>&qTM)HEAc^Ioi39oX#3Y7HyU_BpfyFb=|S@gl|i&ue`?r3lk^jrj6) z@6Zr?>~{{T{D{o;elox$7@ziJ%JIkIrr+&P+4JSO7t z>1Fdbm|QK2tXFY6Gt#`652Bw&4K(<-c6y%FoTE%)?qAF+4OZAi>O7)OYC7yax_uk| zIdt`Mi>MNgQ2H-h^XHoU&*Z1H^HdEPi;9A8e*l z-Gp-SgynQafw>6^`kh9`gQteW$1FUkqIg(Gnf#!AHlI(rSCU0By8hQnY{Rx;Wi%Ma! zGox-+7(}k~2j#?i&ajvIJZ%grtIY8=VpgYaw5@mW>AneGL$hgs#5QW{%FCr*!($Sx zQclsdgc|n-q>)kgbj$0)by=h09p2Sz<%hVmF0UIH)PTZ->^9%S+PRSoaxp}7-Al`K zYn?P|x4LJTZDNvf7!gk)pg`3vLVc-GL0SrJmEf)_EfdLm1~IGpeqOeg{{YGIG?tu- zwE!!%6wnXjTp0vnc6S&xB!&t3Z|1Xc=Not+Vp8dq9b4ic0r6Ip@4i#1+Q^ zdh*_%2-8-}jS*06JOJ@M&Sm2so=$!V2#S7R{&9KNSdY&V&!jYwn5wG5jVNo|r%v7b z<_vQlEt!lWX5{k^%q>$^)CHuoOxF^~m1!$l9l>7>vnyK@F=f+8oOyQSiu|OS9UoPV zwN(h*s_c4EjVoT??O@QxFcw-nL{A~vm;V6HLfqS(YTowRCwpLt+o|hHW>#UwY%|B4 zV>~6l%U?4UxQs^-hAOCFM;iV<6wG|FE>@!u1Bxi$%{?J?9dUK!_>4-68UbDvS^`JU zHN;Wb!ttw<(X=fZ`&_Y#H%P9g`z6+ejXM7TnALu`fBA(L zp>z5U*5MvlfTu_h@BBG8zZkgl$3(U-KEb%P8e@ab=8+79C^dm~>rA)(tW>0UQKa zm!auF{(nwtvi|Js%5bAkpnS{vH_KKYq9U8P(v0OnVNqHG*Zk@8w>D8HCT1`Te<*b$ zaMv#{!|HzVN6)=|>9$*>iwqe!iYv`aquWJ1)c*iT0n0L)o<80l`{kK92%_JU2rtTS z&Y#T77rpfSz6hN|BRSiq!!b1aYBuX~X@kc6ulb>>Xk|bYfsZ1r%|hMJhw#kom_Zh& zCkc8T<=%;_LT~lC%(oQ|0AGYu)QZ>crfTF3?&iuoLfLJvm#!z#8(-6`);oSp986Rx zEO*<#E5LztpWI#k^FJ|=L1eKLD=ku zZz%bK?&Yo`ZV21ACIjXN8uj_+6s0Vjosf&wJiFvwWI)m}A~R9I5^J|(nVNV@qnCpL z=$84qTdybCHTBFCiDMwK8}Hyw{{W6`vJ(Ni=f#uwUpwfUzN7i0eI}db=Lx1pD{&_L z)rp`00pU}=W8uhh7hW`Smo`(Neosy1hq$|zfTv{$*}4kVDl2G0J)B*e~OBf1Gm5M_;UR$cy}&eXkAczZ)`3+->*LoLLPjp;(xT} z;~qha9lE@5;SYAuJew|?D@}P4lC=t@xP_?uRXxThRB}SY&*~>B&XKnsU5e?R>sP#$ zfNjuJsrlBua}$R7u^LiK>JKb_PTF5-@!ol6b&0(-lCGhNuKxg!hGs)da&mT<^wc+f zQ~7n|4Li!3H2z@Lo7A}kgjVcFQao}eNnWWt4Hk|gcg266pPP5San(na{GNsVA{Iwg zs_tpqxXf&a^B$1k>N4=pXP)W4T(gU(AOo8PBh%wwOWHd zOFX`kd5>Lqzk}v zsK`@ZpAiRlh54dLyqD%k@2nVr-dxi>*#c@h$#!C< zgf~Ds^!eszWyUiew+FOLvT{LrC(F8jlZ}SDlW$qtT5aA{U_9q$(~e1Czq!nhJ;WJ z_Z8{BXP89n7>JTyn|Y_(*;vEnJsxoz$hDQt6al>}PUn5U+rz5K;Eou%7_|FYe8u^V zq*#7i>GLqT^{y{Dkk8hX=sF#a`{t@R!1XxUr97vF^Cy*c8TE_F;02^_N=5{1c3RZt zM-PVY@#%~q&54t7E&0=94&p}OY1@(e_RPE>WN8_^F#AXHr~YxmE->pF=rTKy;y0$i zZ}*SCGNYm5+_2??~pRBqUQ+8V|5wyJv+;6 z)=@95GDc)~BpxHE2l`|(MmUD$kr6&?yutaYrTJ}zgtsd+?I0Xs_=SDRG&z?Dh#;M)CDH4;pPHRyjX%(<$s{I( z?X`BLPk_vQR!%09h>=O2zc}*jOzlA-;?2i$eX48n%xKUJgGfO^{#4vw`Nrzv;&>%k zwv9P-Aa@3vR|cOM$Xvstp!$c(dK7w8vc90)9YAhRN>aTAIvRJ)hA40y+2Oz=>XX2~ zH2nOhRcn0|q4daVJt%yZzqzhlfsS z%h&4Tlv;1*A2R5EMz&jUOuCDps*%fyJBDC8*S2f(;NdQ|6h($d{{T4crOoC$`;Rzk z4ALrsBQ4UUfd?{l+Ec~E=jgFk<@9Ck+O@>D6SzZ0U@2M}bom_IW5jODi>%54eAD^E zt`~vRPiiD+DnnDC1pWK|8LiZUWwV7aC&~Hi=ACW*Rufl~5=bZf$F^p|J2z?c=sAb` zj54ZF%6Nhe4=t)I;6`9%;^K2h2no04evx;md4|^B)tThwyB@-yz~%a^;xVSo5jOoR z(LBGaSXsv)nO4~VGRVW?E$&C-+cjEvnHzW7d?H+*IR19|KIp`ZmsauE-4GbT9Uo#S z2advo{{UR+bT~jZocOpO7-~_^{zC(ERCh=7`6a)>)R-SCXe96X76*q478| z-aU%yGx*Qc-^=ebv>sND=UE0DJvc=Gl0(sk%|qZyo}M|hfuUu_G9YaEhw}&Xbjg1; zo${*1I<##=>Ngf71K3dRMprLVe6a5B8HqSqN))cm`BdFT6Clz~RvCi0|lX%{8!JviB! zl<`6W{g68BeZE!ATyas^?X-GsDA{=5oV?wqd23d){MFHQ2h^`)xcaW4Xv`@ZbE*|m zNud5}4b2#BT-ll-<#mIHCB^EVd-Ju2moGGb&QC2j*ECzP9j>El7#=Z6)X>s}T%C_v zfZGt*Mp2D~w%zLXzC_dftEgRR+5?30kDM&MTXu*q2<}t|i~-bBeuks{U9%#qcE6+C zUorW94PRcLQl9qeOPi}X+9{wUx4;L&{{Y*+wsYFN6UuL+sn%r@7G9C$AzGK;5?+6Bwn->=m`Efuh(kEFxd?a8!UtJk6xEl)vC%wNW4||-oJ+Vfrn5`wstyl zGHhR9T-mMEL{^I3{{XIUWiBYWaKa(UiCXzK!%CRkTEh^UMyX*!-#xP$8d1@sK2vna zF7*gBeluOVs;5#&+val9Q0AT*7V=NcKhANdSQvD8)<%Daop<7Q6#3IKA*d(mW1lYw zr^(koXS%ky7dJ%}q^T~(lq`4NqXuk7eBCLaY`wq9{&RWlKBQbc#Y&y`q1$e~vsIcW z5ZRtRNd6SA$5puU-mosOLp_%=Xv6JvHQT27s-8l5yG=aInclbNZ6nOb>z7iX5p<gOZ~;$d<*IxB}p9xe^=d{ zW}i$XE>28qH5br7lRuXFhnOr|%mBEWPo9Vbexi2Qx04uSe9DI+gzb zm(*ypl@iE>Pm2Re{UaEk0#xhgBXk}Y=B-Cn@*}sJHLHO=voPTeO*)bVPkp-6D3lD? zPb7xHAqi<<4RA`4bBM^bm|QT z`~Lu+e9qJ3B0ISf(@=TOmVYXKudmPMOQmOqDtc_=-?mwYN=f2!v~i;M4RgZ#)3FbBi8eA&-dF^Ueu#1Yx*+T_2dJhU}SWe@wki0!a7`ZG8413ot!R}uxjb&Jgp z1Rj+KHZ%Y>{^$EMlg|yVFFh?^4#nr%{-JNFPGgX;AXQB(%W7Be{duOz5i>={%aZp^ zG|S(rA|)Orsa>O}E4eiVt+rFWyMk>yELI2g6>J8)rkH&*GbNvEu?XUQPLv z=jHO6xpodsSttSR&=H#~ql0kkwK}sCPYUw>pXP5p-lv%Lcu&=V3mSzrr-|%6{BvKb z;?!*BX<%e5y%+Nb^9JL{x>xQb^w_7QMSFox-uN_GrKcNnciD160-vA$T+nYnGQ7n1 zb1|7!!#n(216}_B%w?H1QlB@U%ODND+pzqWTHC9!0oju*D-uHi4&4E7^VHp z9$K<{D@hc(fy#g=QPZdN8Gni~jhf+#g*>NRl6^==eQzp>Eyy7h3Q+rY%d`Ie8zv94 zzb#%3L(5HW(gs45RU22~03U76Q=-NEE%V7kbh|Q1KaiWfl!(ct|jXuue5V+IlKh6IDG3a*|Hxd?!uDDP#0mu`$r+&1q z*;s^OEuMQcd`+J|eokmI`IpQQ7}d6ZY!6#V>)@tNIOT5LSzLY&xr2>*j6{)DEWa89u7TpAd`LS;&+(T)4 z^52RIjy$>wZPV_|oYC3L)Y~ibCaHC;Tt^r_q^dTk0Z0Iz=far`Vk4WajyVBkp6UMp zm)E+MoSNsRIHeChMz!uKPouU+A-+h)IF9c`@{gU9N3oYi)Onc6q;%L;yVT`J1ZB;m zG$j|KXe@xLy?Qr+9S`B}nA(xTc5`&c#^(9w^B+jlweTWRV7q^a$WKkGSnc1YR}o>@_#i$p z*R(;W&gS8Hpd=)UHv9W##|~-~SPWzhpL>2t{&_`Vp}4sE|o&W)}znqyDWA<=H4Ftxa4Nfd=7lgn^->$cU+o|=4H7Bj*EbLB5LNvzlit}Dp$Q{zh4 z!!a^r;V!$hU@^08GtAn@mz(Mqk1V#-6kq^V3_I;lr^hlu5e~aYtdvia=^rF{(XH*G zv)4zclBzd0p#g~LuoNTc8M4sk;`-c)>bM@YEJ~0hmXvE|+>zo)%)L+%7ZwrBX2p&%^Tee=p7YPUlW^m8-#&79bwA8IO-nW4oJ+ zDTtz;++NvCk=sicONdw&P9zcu-0#@sd9!U!9&A9HeHWtYPw2;EE2|?R2s?s0P>*cC z4pJjc`eVXaSD1XO4yPpIWCWOM5ouC=i67G^7P-LBa`4N4Bv|WGx7Sj$LsfKR)CQ+t z5#mSc%cBc$vr19q%q)K;wDeiv;KmbPB>)79e9z&LI$8{)Ga~alpUXS1EZ;+^S@Kxz zhc#y#(zWZ}xv$9r4$ff8BhB=Wko?7QcNe94I5Gmv82uIfS(S^_fv6yCSq1z4kZ-B# z5whFKPBL##r!AH`Y{Mx}n;_FPhLymwj)H(jPT-1lG{cJ>>>P}`dK+_1Ci2vtyIm;; zO^rt2k?q@j$d-t6b&|8OOZBUWF^Tkl-W;^O+8{XQ}RN%^z+Ms95%R?@`^ka&&H7903& z?V8PA2@S*9>2&civJ(%>&naDKS{hAbFEtULRBg9&nSGgM#m(qDJrB#iYKrdGM4YU5 zHq}`R8UiWSxzuR01F>~e0zvXm{Nxs|r|JmrZE}w%7NV&e9qMyi+I%F_Od@UaCzSsH zFTY6Kn~hplOKwz-m8dkRt!bL9(<-`~5V@M=t^Nmp2Zy$gwy4l)utpI)P@^-nYc~e=miMa^ND#)gzuE3GgG`ie;O=FiQ)c1dx+Mb9W z$hBfM3KwCwYWMm!9vM!K1_i>#WF+y8Tg{Mp+D5Y+(%>4EW3eNx38&7PwU#^N*hdU( zz5B?TJU)QadDrsRUp8toTj-H-nsr$o zDsCK_5;ouP%7$|zv%Av%=Wxh>Ek7e>@~zjati(&wsB7H#{{T(1Gafm0bX}z*ns$c# z*Ydg3W^0WU5;*{&R-(Pla|cn2iL**L8}i<%be>s#3(U$z!~`^Q5n77!?@orFM}}n@ zFyV8u10l20Jcq5ztLZ;h4yH(%<9<{mb)|ej&36zEi!3H5PcYQ{*RT0QSTX6-pQ|CO zpd^kp-oD*^y|V2-QV!1l00vM6GCc#&FR7U|Yt#luBZ`w+9rxUC*C(k0X4-WVu3;*M zX?3kx1WwXV%oD?A3VVBf8APYG2UjURlF_uoW2d}JArs10po3cXKXzTXjTa*u%)Hfi zbzp7{EI3;cVAv*_(>l%VzTTg2-t;BRDO^X-t;stizxsw^0wL)S$ zFfS|lW(|K-T|VwciYHRiNxe2Al<+2}DVVb4$^xuDx$+j5Z{$5%J4#D5MoE zDMbRGeSUd%n{TPb)Zr74rH<)(CZ~OO4z3H!1cXsffIYk`mrCSzbeX9)rKWQyAHz*{8xHcVPbjnm%`3Tu*DF{{Xzckv(fdpaD;r%BCYJQ@S95 zv*Ud_OS1PGtigkF0SthE2sQTaOxd%)Z{_QlhLaM!($t;y zKt*bN4r;Q-iXkB*Oy@$@Ww4GNK?!Fh`hXge4JuFc%&B4!HaWQ6p@9pqj(T0`1H%LYYskcNzOn>JmKfNyG+Jy?5yVfPNO%Wnd+Wqvba>!;AKhK2xVdgKh-BU8m-37nrxtRc^rWx+pgKF*li_|CzHec;iPN+QH%7Jn9Vhf4>b$}F!$T_*ZNnNO@xXOR3#Im327(0MV{FvQuJ=qjC>jwxI3X0F`=NxZ$D1`e*X%%=!+wYbTbx&SQ&K zwj5SR0a|sX2VSj8SGHx~5RlA4s833VTE8(_GWZBeZz*z^8bt_9fQ6tqN$iAhH<_Kkg#tR700Nn>-PkfG0Aa-)5cBHZ~9=U${d?lPlIk;Bo+>QG3 z$YYGP65;6U{4oJ5y(f z7G4GR?rYcQgAERDVVRs?cWBm&r`sj1n{wn;DZkk?9djxso_9VlC9~A@eY!oVbk#C-Q=O$p^2;=8HKEo~-`7a<48-do$99-ICIqk{m{(Ahov-8%AWv@!WOlppxP_+d|y=j(8rZ(p9beT*;%s(u=yLF;# z7jkLk?d`48aox{uzala?GLUJfHbao^^e;bZaq6Zh%f=^2>L0kRKc?R-#nxpc&}WYg z@?i0qOCtvKBXuWw?x2sj{PK)flbcNM6EE^$y1JCZrwJvvW(tO+)~!NM^vh$6or8@a zay_rgx?TR6eRrzrP8K-%C=~zzL9Hp?qc$2W62~qsjB?`PH1ZELGF>0Y?hG#5U zmb69!v>#9T^vbo__@(6KX<%Wwd{g`KO{?J9==7el z_dm;BF5AkURkZUgkp`A)ffQ&|4b6Tk_W+E(bK>3B%nYWR&8 z==YSo_oQ6fMH0**PAI<-+>y3aavWlsreab4l)65pH<+y@`puiDQ5!cwQcmaJC#8`F z++5g)M}cbErL4Yf7t90?GL%#V5bf7<)54w^v6e`QII=SVDDzK~=diz){?gn}9NcKE z0cwzIL;amL%nbQQ7RWNJyDCH`pA80fx+jOrqFDRUtBiE;1a z`l*xDVW7)PgT&cKMX}QLy(dnV7}0erBr!Mdp8o(m*y-{@ac4a_f!Tp; zm%28it6TY7P?OWQ1=)vD$w}J2$F^#xj80C|Pn(2MVP0&|G))HL8{IJ)WoZ=%?!D?k zuE)di!;(?OuytCAc+3~`FGX#3NWQAXxi!vuWyz_largCau~*v zUo6{8<@(-SNY3JwFF;WB9X;~lfy0iZz}q#G^9JKjvXfAk)o6MUIh(F9MgIVjEo0X7`Rv$wLMb@0QLz-;`1pMCU8PYVv(sT0vY+P5 z>AGi?O2%;USllN_QN4579XYP7LTsm$*6%kTgc4iw;K(OIvl$}i;h%M2LZCe{{TJw#i)5HA=Wf%ExUX) z0B^ZF5)W!q!|BbQwj&28G8p*F;WYf?)b%ZNU*0ijUuN308LX7NPG!4Mr2uUE7xMoA z&6k4e4K`2T>DMS3Wcyr8b|Ze(%e4C1^p`=XuqdJb0OugQt9Pbpqg2rmOe~?Kbrd6F zSRa?+lhqCpVTPL&M)G{``7!2sF3r!AH3uj!fb`s+jt=!3_WVBVfWvM2vs=TH-@hP# zETPnV!EvjI!4|T5VpZKwA-G=*gfU7+nxIM9`ZcI0=johqo z?tCTrrTKk%u1NRZSPCzAvn^;jDFhnRxb2j9F($(0qMg5_PrJJ!pc}K$mg% z5ly~%8CCA(V2pAPS2WAZQ0wyA+vL=K{#3Sl1X+hyY7$8ON5Z*@sK#T>#~NN9Oux$dWWSbrM0WGYWxlwoS=Xs7 zYw>vT8JDM*gUy7Ai$2pYkOmXw3j0WRNT0!2TJ|Mm$p8&OV_<@OGu4U+5a-zgtq0hArw;8j9>e=|h*! zF>^GN7|ZHk%IgQdzJ~7Y_}p85@oH=EjmSN>r%Z+bU|TiW0eTgeoKnt9+k5BXdpY<5 z_2a#L`{q=$R?dqUF+5LI(KL-gH0wP=P{}9?z|e!!VNY^=GaoRJ7F_InSx(8eqp8d0 zOB<^x<7Hqg$-15CmSW5$8tUgu36M(v04luq7nZK2^1ix3i~+(y*Nthp_O3@os4zaR zOmyTx?)r1jURcxD%TIlx@o7v-QYk>Y*PF;_md|5d4_Y{{STI{M&tVsNcv^ z-_$7(>B+hiwLCICpOcC;)z|A|+{`u4`Ns=AD&9M}zB@!5383Zo({G;t04&SR69DsB zVJRE5CzF5Y8tnCJxbIr#SFuJdBx)&8y#Q{XPvMw2hZ%ClSww92uQ?4bNw8Rv3K zFe(jeO6^*Kx8d!XI5gfDHxr0W@4iX%K=Wnsxwru%NdiQhlH1d#hhMujTn1S;-60`d)5Xj!95>r<%Vp?{2+Bx15lGfGN{`w%_<<^mt57H{j6@E0fwh ziEg@=m7do0mcDqJXw5b>-j%0Ow%*yXj3RbjK@mQe)*q3cYqY=e{8lndP2H&|+)nBN z_-pKQCrmcCU#QgV%Dm(GlX0sEJiBEl1(32*yKU6_X0KbSGM5N$$F4jy#r&J(SfsjL zCqa%mH7Nlz+%V=)H;EtTT*Wy&J%=`oSf!Rs`pf=t^3vN?Yi&kHx-usxcA-3vaC-j$ z48xI^7YQ!LdK!Gy=07Y;`Dy0(<+DbT&CdeVG+%0svtN{fDrv){F+06B{{YRF&l;0@ zgOc*0Vep>>8Dzu4U-(2#Y1> zvzbyN^Uuw$B+>b8)ldMVkm5EXyZpO;IUP>C#8g@Y3`$GoU(7vD9Ykq*ih9CARl?Vp zC!-G3_xtloGnkuqI!$*D#pyqqT7vl-%9l4V5hkH^RYqY#c@3(5SshkGF}rrBObD>} z=gHPu-Nu=9J0XwNPHs}GwJB3U;r@H&T5T~ro^w<{*$d=PJKbp7g4x}%`lm)>I(+;n za-kmrO?X77yWPCasQ&%j@G)*W`H_ z+_H+*SGX-wN%{_9<;%d{0S1{@oHZrTApICWbsR($5%mLLK8ofROysss1Z>r|wPWTO z?2}zqXyoG@g#`g#qkkHA!+`Of-0U;1Z>V%HFxuFlUoYCn1W2GLP&Ny-Td&=l?L4E8 zlaoC~@_1k8U*;Lq?MP{!7D;GY9jn-lss7&Q9bAONuGD5S*@O8GD;-f*;o_uy*|w!N zB$3xOxaK13ghjEB%zw?BeHBHwmIBID)XQJ9LrwfQ+b)KrNNn0L8SGvMpx$bJee()Q zcQZ52e|SrKY){K5I7H6w+Bn8I(0;srPx)dWD|u2oc-R8XjwKY5bG|f@QW^5N8 z5RN`iEYrM&tNEJ!H0WR~4FO^+KzHOx`R2zIEK_HSLI=$rK)KL$Me_BKd!riF_^Bh2 z9X9V@$EH)MkA~e79Gk52N1G+`Hn@_g=3#0QSEYA7Y2Ra*GKY)J$&OAfpQGA;neTk} zpi0&W^?6z^g#hEqt5AO$<@j-Nhjpc$4sXt{Jzi=zTJ!mPmBP*#MpNQ3iuiv~*XYcw zGdRsS`ptI=3(Wpf)I7Z$K3B5_=Tg)ZJB0Xv8-Sm$GW2?mBfA_KWsvN`y!+%iVf_o_ zz>5vzL>lS25~rEvR_|5so6M5{Y+Z&>VmD=)-;gxlDLfCMOBCyC8q0M&W{XgF9u=rN z<#3-LHX=djdQayhK4H+VJeLHe?r$fJkpQp4KGhFmSe>cgHW1iTWMuRA@{($r#K~zh zPOBM(1Ja?_X6fPK`tk=Z>yQZYRr0TsA-|66PSloRKASXeB|aMSG}xZtk<=eynb^P~ z*H4OEl21G97FJS6rCAT%LZq=^3F=R7xm2PLCg_Pp^@sf7pP#Hen?LC-UrAg2H&Z6q z$Ux+THAtbZ#1Y%D2WsX<4C50SXwF`5(3rn9AlG$N@^6#0=(*ps&x$?e|e>RZqZKy)` z338-d+dH=|RNU9GuTKvS*^)1lz-n{ci3yGFo8~_*X#-J-WLiFq;{=Pw~V(cWHLvTATM)0=_-J5sxJr)`MumufNqHhEoEE$t@P zJnKJ|ZLV%@AQE1f$&rIp3jG~cl+IIE&v%~GPDWfYdVl=meXRQKohO@o!BTlLqRGDJ zeY`!hPlh&Zy&q=j;|TE-h$d4LtPi*frct)BwQ9PuI4;%AFxHU^Vt4=Ot3hJhtZYXQtZo@f#(bt@_vd0b> zlTVSnllgi2S6GEEEm}h>)bkq(Y)wb%%}zIK#LlU z!SDTZKNeArK5e>*P^Jy8c^6Z@g|))PB$cWKXZ|3QaH=ZMMmpAmz|-%_Flsm@M7a=zOsKJs%U}7&OMM^B5L`rstz%%th#W~fgGy#* zLUS4p(l~kt)xVi~)}f+F3>sW6@Szk`>BrwM)lOLBvW+37_kWr{qqLJ1#6Fy^oPayh zo;2z5IO6Ri7&wxT0ermi>fUaOdE=Rc9@Uv^nfZx!0`j7Y&$nS!i$+HaYf?3YO#A8iR_X9QHue^cdt>tYbC1Smxl74 zrGkxzj!P2QY6x%Ch}fF3ua8W|)M2CP=GUbF>{*q@t@oeF+lW(6oi@zo*0FPQCOzmQ3%#CbUkO;)6D zL*jo7+UZHnDlR@ja<|dmZ~Vy`6ft>k%BvACL~aA(0k*Ac^nCLtUq1(EyL?*OjR%JQ zVEHcd&Q`F;H0~E>ZR@=&nwaU#w+;@sJelw1m*u^;l3)|T6&h6LNd%e!&ZGYp#A*UhB$MBuLg!6tyZy1RcPqhmKZs2QMU< znDa%){{T4YZ+Nj!>Fh9IknYb5XW(Cj+!yu@h6+S^I@oI zD`%$7BHRE>g{n&t+!4^$hdF*OF-;oW{3Fu&*Gckrt>>WMqvb6XT9qX8q44Y1-z+#d zg@*@Aiq7x2zvmacn`z|>ON~!mV7JK38;~1ur$T=W$I)qtoyqESvKWKu+fU7HIwz7Y zN)-GceX4!kGkJ$oOf?xmVP0VK{{ZO=feZ|#5SqO~si)nQYPIBYbs2I3l75_j2>Mt2 z{j*c~*?p~6{{a8e`GYm<78mdu!oUd!S|0oRX1^pY(QeJ))#VYRLgH9y$RpN(lTsId z9MxsO3x%HvEOX61W1d(7ISk*lC}~P%_;C)6x=dafVfNPEswDkQb~};>%eMJ!r0g>C zdhe4wn{d;9lGK^F9sMv3LLJXul^YDe%1qAApHrzLlie;qFqYcW^jgMaw1eR(w)Fz0 zyHNf4n-Cy3aj{Nv9JW% zs~z-1l&-{z(2f4?o*5qmW#-)&Mm&>M@_dHw;!Q5*SBKOq5LVcQ`}+0+e8JQKi<60| z((!JYTc)M@V#eC~Ci<*_k=dNE2Y(;om0{EncX8#UF%}+Ct!r^pYG;H*lX45A4 zt!^9l%}UX}XMMfC?A7PhNFGkt3}KAWNwr1O#+`8$=oc2ZE?Ff2{3E!pQA&ztW|vST zH*YxvO*{~JJ+7~PG?6}{;E+jLjn7TbhjEt6Ad%U15*6uV9$@l?&V_RdX|81z_?bzl z?^0+oIXy#XUympU)b+p0?Q2uEl4vzR=&wN;J?ZWG^1N|3ZogIl3dTo-_WU)>boS7G?+FB;4-%`4iC|496KMwsm<*|i|E=D~$JlH4Z4TP_z z%Wo8HT}>mWVs#trRfB^g|NdWlv9kXMl*s{x>-lO?I9(zwt;y_7$=Xxoj{4%{%c%`#} ztf|L$(e_#+TzdM7%jzsZmQzlHuNrS%yhu26!_w(Av9g}&mudBJe*?&U83=S*o?Jkt z-aa{l9YF_$+CvB-=^kDD$T9(7Yv?-sEJ+F)od_dh25iQrqrzN6a62-HJmD#VMvRVe zG5y%uweU2`2@&Ma9%C?)pE1R%NF%yDq+%)&>dJd`%sI@>tWM7AdYBh0C6&ay;~bPZ z@u2|b???1F0yjP10)A8KI5p$Flog>xG$h&wvnP8h>*^i4y}m#I7+VbSDYtCraot~mqIg@0?qu1;|^ZZ<5u zdl%I{PW<1CTM*t}@D3GM(%cH~rVUk;S~ zGcZbnIcDM;K6LZl)|+uGhQP)u+?Wb45nk2X`1|IUT4T|8c!JL^$#r*juxOF7y5bwH zSBekX9lR;NQ-JYuPB@>Q05x9AVtsbGI-5apA zj&oiKQsTd|2<^Xr z`L+0N%A0UK5~7^X5mW4I+bPE)H!eO&#F`Ah%ic{l7R{)JRhb!8kvs?ozhhj;!HDEG z8l#JamFoH>$FFXd&&9x|;;O@~2+Z9?Xj7AqIfK(YwP${~CC<&L z;u|uJN71)V1d|~YG^nO*br7Mmu7*wbc{iAJg_U01d{Rlok~&tNJ?Wg*ryY&ja^s`3 z$hC_vNn4E>Xh~DyN}7A^oZRv6vt;2zo6o$7<~SqO<+OC-RFb5&$Bz4tr>9)m=}!sW zr}E?rM0t6VRLWgXtXv$FAXc^<9jiF}0>)HdtNHZ8z0G-`_Y_-4BfX+m2$+KoIU`DNhl&^22A)axQ zy~P12+Li8*`pvzx=)t7)imfTQU@P+Jn6Veh*UknKct7aDqh3ktf}|2e+_&Y@n^R-o zGW7SwMaa|(gX&+(Uoyver%PdTBBb!tDFkovQ2paJ6Nr}1vj$%bJ$K3T$9JkOrUD~E zz;Xkw!*7=KIjR^8GT%ow8pA$MOV{-n^w*l=Xw&%|fAeDUCY9tWN!!Q6Gx2H6MV7OrzG-c(vS?10 z_t2Gi`0`+%3lZCJKKv#iZo?e6;SVX-eCu(cYPPppe239Vc&eX?N}i*{Z`-CuIKgtY z1PJW?Dg3&*I{uI#Q&Q2i%18NB{aHsA{48{&kxvBkkL91~EA@R*KuWt4_wEHm7@gNQMr|Qk#nD7TxmI6nMs$s6ce?`qRKNdwbq1%ena6Wrx zHmG$C6N!|pzG1qK;u-xj%Y=_o%+(a|U-LPx#f>?T9*CU=z#f$Ewqj5&0FMz%KjmXzeQF&qRE=g%Y7gwZW5jL9?cTVJIlbIXMjjoa z`gr-aJy+Dz<`OJws_FDQDccn@q)DYE~MGbbK6z`ji*{oP`L_m1QmGy5k*c7ywG_l5hCvIH6 zl6z(h0i3O-IZSqaDFSKw#fR0y26s?Me%ysl)vsLIWB^8*%};Xqv&?>6(`+@!E}Ac@ zO%$Sqc2@w7;B}^IWzO7;dALOvn0{@^J(i+%eKilO3;K&9n%7~qJ8nN5VPaP7@xmDc z&2PUm?)9gNJ6PRhGzCzGH5+uNkG5rJha0lTJ`ua<&&vHOKRW5MOL!|kt4TwE0H7Pv zoAf=qWdl!cqg9uPvpbI@%cJTrAFI~ZCj=Cr97PXG9^Uzno(3g!nQYN}4yCE-ZDktT zt1PGhsRVWEH|f_WA#w9_vvBfwo{8oSLrK=IZ0_T35;~QvldP~Cp06D)at}d>H{{WTa9;8a4 z(N?8G_o(SywgppgPC8!3UMRR4K!X?er#vCTg zEc3Xr}jN6ZsQDu+Be8U=rxMz|&e06R__paw-UipfK%<>w8-EhZU<=TXw+G!<*tjRAh^~1!N|018FvJ; zka}0Q_03jVj_yv6OCo(wHT=}qVV_g_hZ zTikrDrlzrQ8W2PU6_|rTN_F--<_2L!*Ww0Jde@batZy4bxpVbPnK?p9_*JRVYtzFm z)8e*cFNf)8b9r#-4SOBg4DAyUPyq+1-|oz@rZDvu{jQ%cd5==IySj?b(O;S?`i_FM z6#!SSZ`a!}35?{~Mm&=nJ`vgpWaTV$_ zlgIG{=hNZ_M<0zS56d=MAsC|!d?UN)zswC{+d|N!xx0QclxAx8EGT+rMtrr&o=TC~ z@K=^UH}uuiu9M6$ERZ)58x^4dHs-x6PYQhVPnQ>n<@kI9cerbwWb*F057qpK5Rop` zL#l!pR-Cuo<`!eZXgf~L$_C*xo6FF7V%tH|by&R%NjY2uaYCe@gn)jZ>6x(-j6p6p zXkv~@T7BlLt9Q{Sy|`%If(Z9LMF_8L=r-FfiMIkV5Ht(n>(3{BVl~%o;}b?DWpD|u z+nS%5+cr3C4cAkIL|ApMPrPGQbel0gohCRk{0_1_?VTI;@gYisM5c%mT914@K^Vx2sE zcO&JJ$pbk#<44CGpHJ$ZO}n-Fu+{X6`}nx4!#hG9|EeXF_CldX|Yh+v!&Dhvp;!z8=HEnXJo{gGJ2A1ByF5 zZ}T@?X)a(w<|y6Du>;`-yAnQ(mOoi_vy7x{EBSxUL(2MP=9_tP1&nukN#3fj zL-A1jAdi)I`|~>ZuSo<>JeWv1dvN2Dgpu6mlWx-sLUu1 zA-k;9YHaKkzNQ~rySuag_S%#UxTA^_;n&+3NP^MgaU`0*mrjm-Z7-0TcV>|zI~P3w z>&k_<W#e>U_Z-jUdzo@pj@3XbJ1vF9zI?%m|tfvOg#M*Exn; zXa}pqsXt{603aG~*11%}Zli{+>{^$Yn&KZ$N1>r6q*VN}IWlmHa3QKPM)`gHHA~3{ zDefDF-2e+vNbv*l$Fg#sI&%DQLciwMlauoUPJ_#VjB)~GvhL>(#r;s=PfDpxg0u9g-GZ?;sGX|&UJV)M=WWZLjbS>gML{D}06nXjTEao6sM2<9Nqpm|YEx)*pQ`H6sKuI%9e?Mp+`{LyXb`HI*%bUa*uHXD&s(DtreGRA*X%H@fPpzxhn@^O5j z5!LkhgqF=GB#iD7z0ETpBzSpl;!XsMdOo?U=vrQcvR}l7rh!0mzYzyw1$W%-{c{^G zMbi2U=6}mwZp%;e99LRA2{CyJ1d_C13EQs3bsjXqh#qdt$@Yee=gUttTqc*R!jQ#k z;5=XokC$Q(h{q#$@G*)8DQ6$@flwNq>*1Agc(S!HIX40F z2j^D3s?FwQvWL`R43r|Ls6D^W@yv|XknZFDSjU?*^BlGsmYEgQfWfL-!YZ8!Bo3Q) zu17u)LywYO%wB6~b)y`Yk)tKlW{f(i3sM31{{U+>x|r7{H6U&6mO2HemMkUJv>2X8 zTXonDOwtf4N$x)3hYiKaHIOo|$-m3*@!q{_uIkp098pL;K*`jDxIQEN{4+C6jOLxE zOQ$&w@1%d{AUw^Wc_UAf-p$Zl02VX^008=XQ~Psa+LFhPHPzktBNr#gK2ZGXvGZa} zr8Kd@F$ScXa-ppWIib=-^>I$5UkXdAX*W$8YPx)iWr>T5jzELgar3Ck_z2|S>g8OY zQ+YS@KHE_8=lFY543~U3lE98s_xgV9%hKn#aL=2QgIC=1OW!U*Wq2j9Z%q=iI(F&X z!nNPuDAVLIl?N-t6Xu7}ywbYPr8k#v2PIVmsT*-Sp1#yMk~REhq~m7OfGj;CdzgH; z02*DrZB&E`5}a$;Z__Q*WjKY!*T~-|%72}HU|meD%&^eK%8CsM1$G^F@%yt?9KI}= z;*qL+vBGU$D4J(KzH)&`_xm*8B`Fxm+QS?&MvK!ttqguzf2g${=2a1p2p$?e(>pRH;a3u$T^D`IOTgP@@9PRHd;fravQm~qNnp8o)4tJ>*t!R6g4 z$g0*^NIz?8lR=pg7qhsDFxm27=YN~v({;tt^t;bpBmo(^sD9KPGMu_{T-eO?PW*$W z+S=GH^vn-TJy3zGXI@a&)5|vAh)BIxA8v-U8*G2hw9E{01bL$-zE?rzKbYQjzFAY!nTIfV zrFNo9%0gX*jc0&5b;EA zL{th^oy{x#xo8G|OMwg|$JCzd-OK7Ki!n;FJ7 zbeZA9E!eK7XEvK?H7H>-OjLwwl2u5pNAwi=X0}>$TunImZi-*|N%_$~<>s*@n!Sv& z8>*;zY8alswe9|N%{+LcD?FX{lUWQ~2d{a%^Iy$c#p7yzU$bQ(0YOS|rFw&x=fNYm zbH`}LW|HqP+}&#)T#xkfqU!SUkR>-j1wl2fE88$5rsF&FYtOBWHret;x8+BgywP}N z3doNq9#R4}@#rc(S(}SULD|%2)Cv7BWzqitF6Q!0?XH{VCKonR6+o?0IrS8%0B`NJ zJ+nSh5!kqLjE^**&Kh)omzvZXrja3eCf$%7*OBkJ&0ePs8;e{rm@_{$YjAm!NVd6> z>a5$O2tjST74NwJ05g|ik&ve+kBD&;-^%`8b8j58w2|6`CL;_+`M6$%&Df zw~qd3`Hsg$kl5Wr`_j$8H8`moeLcRMvJ(fJv%q$!uy6TU$!q0i^6W8%XOO?B4I7CY zFUWSvvghJhR8H@Y^-nKqer43-NF#TWM&t0*)~9cn&Ay8)Kz2~i5FeyJ^Ne4V`nQ#J z0U4GclflAJ#-&O4w%h#sbs27?ah1iY8D&G0=Z;6ZLAPReu4uAO zVo;*-?>cK%K2Wuq%G%*0lZgrtig*Bga?cpz)xf@KMf zakp`UJZ!Lxq-Dj?^PlG5=6!~;Ery=#9RmZ%P@2@#LyAr{;ki(wve@~4*? zn$D{uxQS0VSb@pw;6WAt06p?qadAf4Gi3%=_>=P=^GPNJ6TG++vTfoGQxFT2Gu=SM<*LptxbPdhFcgAEyfy> zB~f~xleKL_%3fH5%xhEicUYxDYB=}n(woyGgE@)W>$J4VJng0Vd(4*FZ{~KN7+F(@ znSj_SJC-BE<>Q%IW-<$Nvgu(VZ;-z^zd7uDp{v9G9kPz&QE!XYaZ;d)idVku)izoSKe^eR&89UGDYf4$NR#kaU6B%NUr`JFy)5y98F%bSve#B06TRl zA@b^JA~my-+{pp}In4z=7GgH|k3rA@? z9-9;T^Jl|coY-aI=KFj8arkMHXj!f^BY>aeMWz)FD4QM zG_5*?J5>ATJg|4Y22S5Gj|^U$NgZOOa~_erygDv-k;MlaL0pp zn9rU@S8t>|x&Ht-^gPe`kEPseQ8Zd6v1|3kblp8z=vpFt7;p4u>|g|2ri|ogQe;2# znXPT*-yod=!%Fn+Zm*)Xw302oFF@3uDl1LB`i~Ql&k7qbBo0r^FYqjS)vdOwWFqQP zB4q}r;UP&N4YxmbX!2Z6?!ptT5zUIGuGDlIi&Ngj9 zlxgOW>UxKmjCWpSm%kQ*DvaxMe@P6(+koTp2 z{L$wIV$+LH!MS-gm*%(<$!}#XS;HU)z#jc~_Q~k@onEh1#js*NUDD#zbqBrF*qL3b z2&%u zlhvsXyY6~|du90b0xru(IY{rx??3a8f0WZ`HcPE)@&5p%2IPQNyYKN=?)o#U?9C{j zs!NhI^j|x9=HAvxw7WLtIxiE%&`=JP_wSJHZEzldoN*mqC!}5`uMGN+H8Z(j!?>a8 zy*u^WILxsmTMStMlOXa2hc=ON`t{U`kO=`*EmBGA`m(WPThwXu++RuQnw_1*<5s$( zBuF@N-nIV#F}7vn0GljSsqGmVaP)Jq2$!FEg40)$TABL5Y{xP^p7z%o1;G~Cvzs$97Q@;z|+2DWYa{-qsh~1H3S-acjZ;g zx;@{cMtC_7jE#+V{yBsoaLR+T(ZWPoPCqrGo+;A*07^hissY@J@7A6>pTjYGLkTkC zi-oAg#m(cI<)frYb*O-3a1Bq{+pZW)*8JRW%XoXd+gYCEA4Qn7Txb@QT6L$>QI%we z5pcB`yTV|l4GUml`Ium%5(<3KZb2I*u;f8o(=yCaK@=zrnkZElykgL-Ml?4G-SU%xh(u$tnNY_!pc zN%bE&XqpU3Mdu|5Sn0pF@yiaT5HwlH2n!E6y!^`5^T+k}G^cgu3#|eL)b(j*;OkPqW`}OOd*vB5606<6O%4){^4I6?ojiip$&Ay0KuYci z>(>M|2Cm)S9Dz(^!a2rV zzniK1x@I+(8^kaF)A?fd5?Vt=E%kX6Hxbi()nv=Wc67YATcPVl-r(BEOp(S(Dou7f z>~LkrvkatFqx{@pyk!1H2(m}+6c4)_T!U-QV8*_I(TI2 z+&yku|B+P{Z+tgJ-bNMF65B7J=IO)bf>~ZGwdXv2>TQ4(ehSJFl zGFy6;>^=dw74B=8`0#-$YB@ND&y9aMY?3`*?AjCRM(;?vw(BQrFF4rCF;16CEO>)}e|V0d|~@`-X~Ha3>&Bx`Pg%9i;61woSB0$JOmGOL-R^`MpSK(N)riZ86KEv16WSz@USn}whu zccA)mB3xs4Q>BN5UL9|%UuYL{%>p-~STidhvi*86%oB*2S$6=8gVM@i*8aN$m-cef zV!_%KKVxoy9>*MngXwVz@Xx6m2j*CU0}xZ|@uPAbx^@TY@xmpx?m4M%6es2X0GQhU z09O4Ts6!VtAa6s`yA8%yj$5|m$8oUwdsIe-*{9SNu@HV0>HuD+H?WYcoH#_s>U=f% ztLICFNo_94;%bB86`~q{pU){EN#1EC#x{8T5#DN6sdF7D8j5MVeCb@r1OvM2p-iL7 zmu(cSVSb!Lg8SB-lmI+Cn&h~_G~*pL4j}a?EG{js7HeWkj!ZriMkAo8@IQ}CiNQw0 zjXh6^v(dcS`J;Cwly>sa&WJWpcWQMfy>i^zji@;~5(%R5Nbl}ooAi#aDUEoBD@FwG zwM9A*dgh?OP3S);D`&EPTK;9)>DSRlgNc?;-Z?!(5HjDIvW#q#4d@N>KM5 z2VUp!%uW(eH2q%x0HSJcCktfYEZljq6%`%+{K(TxiBo25ygZraxvIUK*7C@umFY$u zxp?NwSsE6MQSmvw1Iv24Tt*;-pcJ71j@f2{V7BDRTLk|AQ@MiPGj$*aK)?zpHQO_% zF(0Xfqi+}0^?R*CO7RfH+=p5bT+!SGg+WcN<;BsyKR(Rogh#VD)spdfAbdxP}kW1|3U?z=Oz3{4gl z`K{%xV@lIul%HPM02)p;18UU#k6L!GY{uX?%hks)o8lieO19dCt<{)d>Qu{Jwg$By zDrNX$AR2WzM8@yZ-zME@o^SI10O;4Fg|`bGdp8cA<7(zcCJBH3FIv5CKE-%y?W)IT>UL zcs{GI$Tex9x*?-x2&@1Gqrm+9Giic^t%g&_8VsJ!&0=`&EuYegPCUm#wL1U?=WNX; z&4){1Y+rKzTNS5q$}FflS32B9?RQ}>Ot zRj$rS;SSb1a}CSmU3()^L;#kRbH=I^?eQ_HU^3V$5JF=(Dn68C!-x76nsR1D}U zp_F|AcBcOL;e{4hvvHbCp-)ovY~>8mC&lp*UCk+(5yNJjo8yx!*0t+x0@hoOG@pZU zAXkkCkA`$`F~J4~H7CTH-{(su^tSh^jOB<7Sdm_Ybp!Ct25A|WHW>&MQC1#qitRbs zQ|k&t{5yqOeTDGfdY{89oOW^KXuYq?-hI8+Exx&`NXXHFAICtz0oJE&`(6UtuA(WqpZM!O+#^=3Oy)q+BXcOOdDdx{9^Pb*G z$H3r-_>K3aYfbvl{W+DW#Q^I-6u-jbX~~T2skG^&+r^^URPq5-)}=uETli+SSqS9r za%PC!F|ROrc1t_BFD;KUuC4KPJ*Yp9WJX*gW^w{S?D2kY>XO^q`FG6RZY-8MBGhtP zFF#ANYs zPAzl9L*n1ePs>evLGvHhwD;i(N(hiH-k9+o<291W!6pVgFLv^85R_J_^b_> zo{^;A!+UiM5rb;zRf`i;W$V|+G%?Z6_ioLWGT9S*pfezuCFNcC4#iGpn2e7}ZUhc5|m>>bnn56e(IvPodvu6go)WYuVE-!_~+AZfnlweKg- zJ;AxYjVHEZDjZdmld&Ch3oJUhnDKF)*hF8KI&YZZx)$_Qfw)nct;F_P^xXFF%CJae z+0Eea!^Ji4%8Q>aYWAAug=zJOVUS2vj$(k&f+%t5yV#UuC)+qfsgrT$r91*nIy0 zf2hsoXa$CyClHLh!tC`sf_iP5>{IcL2E&kW*<>25Gum1U{Xl~%D2O>bu=nZGpH5{< zPGP%`lP4Ul52F5RX}5+wGA3I&$pMU`aZP~~I}daBW?q*+M;}we9p2lZPb6~s@JI^K zhCM+CrrpQinUc>(Wx6I%HJzjchRlXpb$q?8`L4!mi|?o^bKs=L2H+m2exBP?+~$u6qU3myh_{nz_qvCE2$(inzIf~xj#<*w%;h8gk0yW%k`iOZwE8lM$#BM>O#cARKKXfM(xKL_orJT>(@>wZ0QgAosLh^|7A>bX z5!AB3&5cUmSh-Iv-%J;rZcs0Zfwg~!T*ueu23#Sd1PI;mG#*d8i(O4IqIqDJWsERd z{57GW8+6Mt@}lLOhbGU^f64y<`Nzf4by2UG2(n13BVkIAYrT8^thZ01;+2+h2OAOp z0Gy@PrFo!Gi~tK9YZ?0sU5NG`9ddo6ln+c+22wk`OU>H*9TF`!lS4X%G9CNVxTkNY zHPDfX-N!HyLiuCN@C#F>DhT7bZ&ARZ3d6bYOxp~U9Ej$L6keU=EfUe;xwz9ww$=c4 zSpjd1o!Y&~Bk74fFPci%9z z*?6{bXQ}Z^<^3;5y1$h*3zaNnAPB%URj+Z|>CH@KM%>s-f%Qj`e5XFLEp+!`ZRzq! z8JsGU)KaF^Ea4g^UkpTid(TY+$iJJn)r9iAUMv>R+|}!vco?(yw3h= zlr5a0_?C)*bf-?8zZ}ZRE+;zyj9)vuwW~>Pg^_`%9wwvb+kUx;##u`oWOroxADXXx zuXhyI?s*eZY4(SK-~9cv9(cS@rN)*hy*d8?G4J&aUMu?qF-iG+R@)S#0GCeHjZO zO}5*8jeeZ3E=dT`WN`@|BKk*4jiNz}hdK*Q0ThgRG7 zicNZS_deNX3hL+B5lC-5{{RitO>J|{tK1%yAf4$=$Qx!v@rds0@aYJooCsP!EU_dsExKQayXQQPcOnq|#tILO~7W@tOV^89@h$AZ_y7`esgp z7Yyx`svMaR)a{|4>sqDEQABu-OlV2(KzBW}VXq=w(;1R>PJiWX=xaQB7N2w^l%6ZV z@~cvvx@M4&K9@6#ggpNM^9V!c7)%!KuKn2vs6Hp@+xs&QKA6d)Q7a5j%CXipQG-kTQg0`1(VyWv zn5{+ksaepHk|;eZUZ;MWWjRTK;vAcFk|4L|f6Uzi;@Z~RRewt9fLR)!7bO%QeoIx_ zQIM{$XW5#~w@KyHw2Q4i7PMrQ;9hk-eY*Ciwh88p@z+*b?$qJt#=MnvYv*A;nD;0Q zQppp?T96pfu%>Gx9~9AaSn>>p%Q5qJ<)Uc%G?3{NnXUal-YfMd#2@qU%-ouJVjDBm z>4yf-g8u+BG`staKhlenG!^ua5*V{3> zM^CoTHNfDsdi+A)n2>r1Cmd*wMcA#FYIMDajRZ36-7V=Hv3y<=PwSL7WJ5L3~$8$0MEZR zYMyxWE9r2FjHS$R#0fnK=sm~q`Z=Q`sXOv;HQD0_fN2_brKW0vDa^6liq&@wQ&G6D z@XYAM5a7yDoOpxlKg%!7E7Pjk`8whTm8Oz7%7O77R2z2RFa+c!vyLDov3-I0k>#6h zC_=gug}H(#{X(?su^|4hr^hyZqo;`*b5G?)E=fn1b?ZrOr%UpFv^M^4h|?<2VT{EV zthtC*^4^7Mb9X%UaVWWvmw86Ug^d8;F{PsQTwH;wGaMv68_imDwwhR3nPIn}`$U3i z;as;<3yn5QMtFCAaeip(wzsmpT6~5{5bz`uLUyS?F}Ke(_^=3`AmKwCiFxLSYdpGt z)?OJIZQo^Df<6&l{rhFa1G}4-Pqxor{IK$dq2{ZVyNcbQw~U5)r>#&|+*X(|;^I3x zX_GE*rnRpz+UbzRp=pu<8tl${kSIy_@XV~Sh!o`Me4YpS`K?~)8axl9M<7lw&R`8m z`H!C787w%!b`r!UXum)2bv;X8k#8m~AVNteYMOQcbmCyp`fU2bhY+danT%(nW3NQ^3mg-t%wQoEgj>y&5J2VdZD z^X7o^-k$pIp!OFmBQH|C*Z@^_6#0(1K&8QmfI*k7)gmw{cHfeG11YE!YV zTH<5_y2T#|+E1Z*bM&084Yko#w^00*>IegV`BxQ6+o7xBl|HNdfbyo9`H$uZbbELM z%@m-@=A`jZDo@kXHkx>hv!{G=3CCyYznE>b{{So4{)f|oqFbm8cH773InqZ6#4I#r zkcg+|Pv?i`U9F_jNpmWCWEj;(sks>4`WL0kj6*SOS6VE6KTX=TW``bO{xN96bzO4K^t*eQ}N2i zoC4ry;u5l*Y7b|nLe2uhBnO7nU}?2FQ!^zY5lwh!>UcK2`G=VKEIg2s@^s`Gf6lqo8B&>y&U$24OHOic=X&uJCCo|PTc^o(4v5F?6g4SaVr6{m(} zNJL}eE)-)UDtx>7qvR`XcU>1+k0i8pR$f1C+o`8tr!`pMOr4x(EPDmMQ2zj&e}6Gv zi|t-9XQafSCq6vhlzDpqor9eW99zAgU-BoE{{SyE&#hU&hU~Y)BcL)=bv53V zJ%((sX+|+^I*fe-&Oa@@$*A3ViLXqCD^yB=X~MPGpOE|e6ex-Ri97|VXO*(ky1}!)S z%S`o$F`}Vvm%giOIuK~%WZA%?(~Wu^&cyxs6O3_NV8UW7Fn`P>n(E#u;bxCfm4~9M zv2BHG-n)I1?UI~qSZ;=^gl_qdSkC(Fv2n$u<^K!pgfP{ zjYG^jirQEAX-0Vos0&}ircC1mP-)ca0Ob0P4F)S4Nn+Aif`NlLp#ZIGxF^5Ae7hbo z5l%iko5Q8lH3+S)puC!_UWhw;SH{2Qa|==FcDn$c`ET-`FEClAsjLYN#I5iuQh*(S zr(km22Z(IXG|o6ax$<9^9tw_>`72I+FbQB=(Q(m4Kiy&le zj|hTctX)N~=#8uSxudTk^?1ceH0o*y>C^Ga{!~?#nPd~#rkY>pWu}W^6|>uk1S%8; zU5M?z^xG>rd^16_O^!0%G4i*cq4TMd7PJ8!!Xgn~B%h|EBr;a=W0ruR_X|BT3wuc{ zY^{So1GrEq4{vY7Goexz>cHVPl1-(0S`GGS$TuXo9urK%EuUp(RaFCNy)K%OXeRbt;Vq>t<|gg(SGSJNZD6v zR-z=rj=lluA)yXi^gVTJdWm{WVeXa9z_o-k=%Brb2pK8@rWB!=ikgvDZ{LNVYJw|RhXwE`y+Aq zW?nqpE;ei%-8?%>)%?e$>6bs3_F?0+xVTwmP%}(Sh5;w*C6#A*HTvd^~nR01;fHHju}gJuYt?vTJY44HL@9bzNR%gd>hIsa6Gj&d2^Gl^oH>8a&>kv%4C3 zrFFCEzsujv3x6@{x=n_UXEWO9@&5p&Ocb&pe}c6gE3p}qpwyh3HFoZT8fVVG^Oinp zyScf&(B+IiouG0X<)^pfK zt@~1l_HHb82lZyZTct7N>$MueAxz)NS_Ph|e3!Ap4D6vw1G5gIqr`4Am(PHcZo3|y zG7lg8*1!D|t4(8~Ld2qnDvQa1J%|+i z8WK4J*m!0vq;&_1O-6hYu)seuKQJ$4L7_mqNDkm_#MYa5?bj=bB+=yEtL+2BLHYfz zCB=rLCl--VxhSAgst=Fw{Bva-VgkdBrHpd(eO37?C%c2{?!ce4dGGEwC)@Scu4{Ez z22IP7G?aFIC9hiAMApx4H)LLIN^e83_vyZCYyUYJfY;sF3{dh``VvW@~P|N z_vY`jG($f&T6l2o^#p7caN_c z`)~JW538RX%bAY}Aw$U8O!2M1)?d>gRg{(lu_m=7@7B4CEP#r2)6$sDoqlQRw_?J~ z+Dc=$iMQecngSFJyenV72TFI6JTM!wpCNhB9UgmY>5*ksBb(Bjbo^rSJ9uEh8EA9h=h8F{(oHv1RKvg!W-P)RLRJfCh(oT`2Lk@~x5 zLmZK+cNk^qc&Fy(iKtuKom)dJB{e)_>crBYE}Nd&rqyZXb{v6|hAQ8e{#k2#D0Lq* zM_bv!GIBMb9RU8hu)_n2JW_Bm#7FSn&L+sV>@A|UwsK=0P&FJ`sD7O?_a-*UQ&wO9R~cVKt*UNUdJ%AW#Vq)u=%gg zUTE}SmrX{b$_htH*OfM@$>NESbW+Rep!J`~k1Eo@-P|=Mo|SHdk|--r8WWp-%7CjZ zH82@AWqxJyjh2yPs9xN9Zr+o%C@Mud1K9Wf06J#(PlP}jAjs7h#9mYU)VuPx*0k+8 z3r6nXIVa)(>_F*JQ@(ThxCvXc(tR}hzw#r@Hn&zOtm{%M$ivhDw#1D-wj$RQ~ChRL}rN zU#B(N%{LZH9Gz}bWcneznWkD>okryFNY|3F0)Q`C8g%yGGQTP!ErfKUtiELY!PkFJ z^Mc9}VvCg;l@36l{<%!2+!_Uww#-lRbMnqT38&XJnN!r2jHqex1tz>`cLT(A%5>Nc zNpH!?GoiC3wDW$MXXaBBOiM5vg$Nx;uHFL<9Z1EJgOiI9$URRR{O{8*H63;>Ud}dq zej#W!-j)6*E!OG`%dN|&F_zCPdt0=4TTpa?4%{Q9SbOiW{uzTRZ-_BAIX;)syv?Ke zXHJQY9^-%kg9aeeaY5Mq`8eb~UEH-X;C$ETZ_F3-2DJPED;cE&8j;k~jc zF{sZdO4%-$ZU~C%HTVLt3{ z)cLU$)HkTG7T`q`6G2_5Gf+XdMJvA~rq%?~Cz&Kt@=Cl^)1hP5nK@3wRHJ1uw$a>8 z>dtu%Jd`l%JaUngHR>hY&n#s6tU@@|RQ~`adXM3ZWYL6iBwF31_b^E^x9*X*KJ@)` z%VQfZ!cneDzEJ$En_ts!^~g%JHpO|RcleC~`g035UKwoHEQE4EM*?WFt+7A=ZWSV+ zc;-~{dMGU5ZSDH4vf5}mec~XiozBD>j=x6VeqrF1?CLT|iK2fkzcBv*!&-^9QpVbK zH5CdsJwP5%9cW5PkgYt8a|-9+>h{FDPZhq6x0*HN_4JMEMUsRufv{DG+r(F zu{&yW%X0@GQHkV(;_3EJf7h03a&hx^c;#P9%5*62B1TKF3UXD6Sneyf-!A_EEZ1<; zR$PShdZpi#bqS*|%8eLhswn^yUDT0X#X5Un$Yj-yiL%SQm*pKoCzVwTOh8JV)NftC z&*{u_ke!+}F|%Qx>ALmKfqX4)m-jq^mi>|6kf(-O#$3EOi5sT+)OL?7PF9iJup&YR z!?->G*w!JOg8LBtw>Wo6_xnq|^5Yr67@Wnoo~mvGI{5wSnl4x3JL4kXAxF8h1b z(4X@;ud|7sqEQPJTJb0yg0N-yYhL}x8-4kKka%g& zhFO_?riE{-w+W(PoGHqr{6va&KK(NuQoWsaOftkMGY`veD@mm4Qyb{2$x2DL#l1xh zI)Rw@P0E~{Sx*fYylT%eE9fB=KNl_Ow}I=O7BB>D#m$mZJ3cb}@baSCPGYuF{ObGD zqgQeC{=C4*D{$=ex`P3_H}acQ(ew*Lrt6Rj@T6s^NF}>h_2wi^n=RS3Mq44jG5oP+ zjJm#+$sJE3l@*~r1LgSPk>EBQv7ROr$@J?fH7yPeNL8PbM?vxhsmH`kH{4G!k^94*?aMUSV-dU2$iE^It!XDc42 zBY8hZE`KvEb*(5*qQqn-sHD^if#I3p4jrAgKG6r0 z&(KCu3^IqQ*Y<{Cnex8Bu^AOL#Z z_nB>V5Q5HS^rVmBezY~M23@Gsc+uIGmp=()9z$EEXCkW!Jg69&u>J()S}7Qs450%p z%hgTNUc|Qd3{#WQMK|TKr|Qhyhr~2o_;8(+W6)uBlj}+hk!@G^r4Qqo7<9rh-NT$L zyth-*R_@`WkbwM3qU>w**KE*gFbT=WnFD9ef0=p_N&c}S{`ih0ARW7J+oob2FoAOL zYY7xyL#JEZ86Q&982YyV0N){{Nv7oZp8Jf*GcX%8Mq*OkM^F6p)_k*fBt`v1s8JMy zZTj!m@XWn7ejx7u0F$FAaR=4jQvBex^GB9uvei|icNG2a*bLkJB=)aw_OU06XBQ4r zfG|xL^5;Rh)Z%Smg}0c2@z4*8aY6w6GBJy>!>%(sz1Ks~tvtO=H%(;wP#0HMhh>+QfC*;cO8mmpIy(ERqk+)TC>Oem{#LuD=HtVoNjf)ceR08kEqALHYY!H_t*+8X^ESWbsJ^icCg3NVb0qp|ts((dfsG&V`J2Y%Je@?D7)fSOKG6gcJN7wNVPV!}j~68W0M54(L!k>hDZLw}p{Vv+5!>w=<|Yzj&95Ii zd6$#C;T`<8`bFY_br^0lFg1FA!kX8;2exjsph=dhA|liMaQ$OZZZ1gpf^wj%h3E%~ zr{j^;#+Mo*PML5m+)K0B;G1= z6yi$OqrG}%(HtSSgppRmb+0YTmg{k*1$%%)MwHwYpdSxXDVWFBc5=nWG{LohF-NDk zd)S%_!NdZ;3WA_kt4+b_nV97%G)e&*MiDTTJFI%XF}vQi`zuX$*1c zV{U1Wt>jVp$-IK-9zF@`agbArkVzk?e+-tNQgE7a<|PwPWU;ul)}j~IjINRnWGxL3 zZ}X;Zqam1DILu8k-!DoD7H>g!J&~`tmsaPQOuxgOgCX z(dYFc1fF}K6eUSL{#5bIsb(>8F~f!GHhyZcy0DVwR^u8c#u$!O{@gH^99@Jn_-~b< z^BwcwvGUW2R#^%JP)J?PHm>_@PqtxTi4sm-LCE?}%G&n+*)K#!8^25!R21ks)a}2~ zodhuq(Xx{nLy}2t<`&WK(JogWz{4%veNICovUR7$ zF0C3teHfZL^W(;}I}@7>`2?E*GI_t4zawsZ&3N}Vj3Jo|G*O_X7qG2sx5(zBIh1~f zKL&(l=JXHA{S#Hu?O#vx8IVZ}I+FGMo`4hmnLQ3^NcxkPL*epzuBmkKBF}9Y^+*CC zxcgq-9d`V4e>spgapek4?);xM&y}9lqd#4oI|6IHM@suwY{r}=!sKc2ShLOZO^=g5 zMd}jIt6MtU4~2(~4~;2Lm))AFW02g2!-QR)Y&P=jYQAmLwB0$mA($CTkFpbe@;ZIZ z7gMW^9iLL`4Lpr+ZxG^SLW*nEdVLhmmnbF_5vIvp-!5DEZ&th2rqNV0`dp0}z*0I? z4y~}wDa1kDo@sY71hdwEE|w?c?Waju3N?NfJ|dN;`HJD5Cb?oDTP%a~-uA^F^HB<5 zLBUAhwRRL6``0mZMp61(G3&?_S!b9306sJwbpu>XB$=oR$lO>H+>P?QJX7Y?nsR{R zC_l^(ENMP}us)n|Jb)6Wo2WiN(=X4AMZ<=weIFcN{#t7OQkrpO34 zQ>P=xk$ro(3<*=nuzaEr;cH2AOYE&4UN=1_xW|Ew9ww#Sr!XIsI5dRN{WxXb?cZqst0E$ z7D^9j{J&VOEMb-vSR;lOZ$t`!)ub8PE#Ow8{1{{Zt7^B!BBMoUTK^!buQ zC&b93UrAn-F{F}E0;8vmY2LYRJfxl5#0NLr zP5FlbPtp9stp5NKxEoWh$K~HLr>*eM>T+^n84Cp0e<}4JHeRN^cI$Pgk?;aRU^YEI zV!4HoODwpYta=az%p1*C-cyI3ldeRz#xu0FEDsaZn*Kf+nH&-j0xR_In{7O{aWd!NG=PbvydvS*K(64p+PyaL%#p(`Xof=YPtF-x zwK(_`^x=(9G(8;AXercfzG?N<4o*%f+Y6KP44GQx0>dPf1>4)G0;7MUG`Vwdxv|M2 z9*yO#BJ<3;VQmibR==K3ZbLT}O8r0AGIW`ExiQ2Hiy6{wq_()8>sBs8N$4|4+^M17 zpY7($7H;;Pb}k-ag86=3HXk)yS^3Vk_LDeh6$alKI|KZur^|fG(`6GZbeeeA6YJ{_ z%AYJ7Z_~bAh%qWa1&ak8b_AZelRX4w$+~>6o5lYCHtsHbv!wouvVpy8qE(qzpe;ci ziLcZ0-nomOKbIRf=w>pSJ3dwNZsZ+j9_eeb_3t>_RMT~FJ~)P2t$(* z*Yqo$4^Vq+pk}O(9xRx*|W|MvC@e{VdcxF70 zhp=NjwD+wu@~=$t;>0dlu5ai)IM5C#4^ctVpY7m|LHtf0ZY-Rh(_#5VtND)3P?pjO zI0F*|*gZC{LVfyR%f&yWJ6#WD$d6Yy&E9-#u5%vPP3hLY|YCpdQ`_zlKjv zCmwEgO&^9gNOUhNTY2Uw$=YItotO};#0~38mZ>`vo48Mn=jV&Us~b8uEsyY6{4h&AsiT3lWqO<-T1J}O$=D#L8i;1X# zj9#+45}Vun!2=%6q(Ac55U`kdVMbiFj|@Xj`a(L9@Ru6gDUFkY~GJ6==)ejY<% zzkPtpwOFceLD|^BHu{^*-b2&8$EQOa@de;dHecEYed}DaCK%2x`|`qk-xYt(L-}`2 zwb9O;o|uv#IJfO6HJ}~(jMHX^hFx~I7=WPotMcda{?E-ik<)LS#TXw49f=^V0-NOdbhPbR90TTx=ur3(ObrTa6z`L-nc7 z#-xx9I(TGr$c>AW+4y2Pux$#@O#Hrq^=SyW*5n0boRRSI+^QdHb?^8aF&pIOXQTA8 zs}D0BTE+hWN4&#bmFpSeH%fR@f5+&?dXElVJzO~H@0;iEIr)psrtI13=1N8g_{Z#@ zmqVE{%qJUc5fGIg?l%T zTKw|O7L?{LZHV)Ihj*wU)GYj~Yw5gj{_CH-1Eh-8E?2>hcZ_=qdpNpi&o|m_P>`a~b%v?)-{yX% zY`oK94w{BkmS~8AoVfyek-oy6J@W@v3?;JxsEB<}r5i8Hy&1L3xR7c$M83kbW4Hpp zKEB=?X37RQVZ>1k#PfcC{%v`;QNFxwN?U{KJilZU_DTL5{oS)s;+(wPx!~d!nEp`T zUEbbJMhd91J8?hC0oeBkDa)V|jRvQDg2l@5Q<{ZN?ru-A&=J`|eJIa@OH<*%WU;@(W zLc&6KRRgEfztNg4Mv&>{#2ty0az9T$AbhK*=z0=)vf_eLl^)*?_3-+0f1toC#4g*j zuty&6j(_JMe>6P8-epws?CP*c#xIJL_`B0!evhWP&vurkd2&$XmngpNT3jYV)ts-$dnJ?R_yn^f{0@7L^=<*|DEaaxnVg*-DNa+Eg>II{SB*$$!S``^r)M7FkOJV+nB zG^jl*O4BhVl3BKPG1l=1n%I6(-9vnBwK!H-E=zMN#ffU|$8Xh{F~9_At{G)ByWPBj z&6G^+@QF1$sX?{B{nf-$hCKRlJDu=L5tla1axfb{fxPnMeqr+1)9#bh^&=rR zuHi;(v18#5Otar7#5cc@y0)KjC9SM16tQGtqzaSPzbwB52|Kvj?NQ;O%@Yrij+Hc4 z8jU2I`{PP53*CtX({a-^+RQd~aG|R*=JaDLJVr=dD!{)IZ9ugEP*ZAVzcvCxV4QL# zarvHmc-mN|C6=lkPW#v42D|>Oz!8`(cA5YOig}jC_fo${6Fk8{9N&Gq(D-b32Q%S} zfx41OdUuq(nRk0-EV?zsajN_-+|R>Wj@8)jhA}d6vgP15`V0PXhR4kxmb&(#sp;`7 z=2*;4Ij;(XzZ255@Xgm};yip*=jnS#h*E3k-_5@{O{`q$`h@E-J$0?Ee7K~@z#}Ym z6+JftZNA}6>6Zx^b7;w^;WYg){H^kCo%uzh!=o~Z^;^jOOPL%Bsp~*|1%J$C(U8N> zcVniQt=K-Z=Mm(8Ge&f{mP?rrB}#N+e}>(AjK?`g6^?E()DbO%G1t7csX?br=PgR^ zH)#|x3q!$;C@K$$@W(b8MDe*9^xiye@_K$}+4+}TwDR_*JxE$*i<^8b2{hOrf1Y9; zM5isCcAvBBnqN;6AMpTC&kpFS!0bIYxL(VZoLuz z313Ms8p|L9?J)(3+LYYaE{>{D*d|$gLsEUqALZVWsAzV!S~Mu}Od|x5$KV_CuVdmy z`D}6V?%Z_nh_{q}aQVv4+f}pCzOlkBJAm}!`>C~jDg1lonwyXji>8R9Wsl$fXG5sV z40=2YUKKwZsSU=R2&nusE+#Pnk(mbG!{j-xH9aolRM#EieteL~HdIgv`HJtEI(%kB ziP~b+aRvz8lFu}2iw`W#`XIXT zXwn5g643nocg=2TgUQzKGW2gW`MTcQPD?v><#3^DdJZ6N57U^@;*U1jV~nesOs#mk#bdNpR>Ap{v-qIC)PBh{fx2yiY!!LPSoVTK-+= z2TRkf()ftu;3RhILO|Q)lEp6#$<&iQna#GjqG}Soo#_nJWnJi0j^pRrgE4YyxcRwp z!4fIrde`Ladgi-5-Rb9Pa6Lpa3Vf-Q!Lu$IMl~1A{%O#c>vHIJNGhbMG_K&%zcG`? zh~2vJE%#mI4<;_HsSOKxBoE4BC_s}kw!ji{tyWHfh5>uMlgrvogeEH;THPcQ5kLihYvBjy(=Eq@ zN{LKm!?W0QT?W(3=4oMr(UPF5fyapJ-~7%~tAPh@PO~OjG|YUzsa{?*vD>MVM>Gna z9yQAJ{6w~6!#N8;{%6=+{)*M7{M^%Y1Q-5Wjcz`-9E%}fLqlDvYq=Zvj}Do*#fZQs^9B!>wI9t}`D8|l zI(?-fM-lQS>lSFd82WPYp$Z5UEz_>xeyW_<;?!*Fvf&ezm$+%(eAK*$q$alo!p(1UA-0;$ zk0q0U1Q5L|@eyA8`(TEo#IW39cnLP25< z!`tHSXaPB&Elfypv0wy%UW5MtISKixb#z}O-a~hD8zex&z)s>h6N)CV)Gy|^N*XNjcdnQ@V?#r}2 zv&Er>V}7^)0M0Ys>0gz466oG(l}4p^%1PMMe^a-~M&Ex-=rML@ff^40eWU#JiJ5$X z{{T6!q*`ctq<&`7=9ccmSGD@MbZw$Aki;UBRqfX$u5d(nb=p z>ia@GMe`Ttubr(dqJJ%UZWK39@CwI4u>=uKs%w~8Fnd{?#^F^{eZ@c<{OMn6f%+uO~m!{5R zCE7pc6go(2Yt`gbSK&1xooadt<}RLo8Qr^AmRVCP{{S>W<_kZpq&#X!P|fiJUdL?Q z!eT+y%gMhd`Pxk?_-XRVSEVUU+wR*ia?8OxyF79xFRXNSwbtWVB~a?ZfmnYpYW}as zHX2;RAaZ!>JG}4Cdavlo&84hmq6%n0>GWiKXDvg8)K5}jFG^*i>ap6|tm0ay3L25I zpeOMe&ge~ZF4St}k~^`DUs;8wNnilEV$|bMSkjw&Q!Uhy2~cqkVDL}P4MO`uk#FUk zLbn^xABd0%uHGYYh8Xyqe44Tt6xJypmhODls3?-{z-4A#&f=T&@4jrIQHf5M7a8I! z{D=9}bc+csZA!6Pa9WBXB7(jkcz!uvpDD&Ezcv`&&vUr9y7Nbsr#hVeoVREJE7yrX z5C_}%=KeaG#YLyU;(XWVAIrEbG^U$NLHob8B?%pORXL;Kk=(XIU>*>Z{#^Nv<_2v( z)0e;qJgK_Z-n2d$jAc@%CP0VNeqQ{qxb&vh<(-=9e~h5qFGEe}dW_lW^qeP&%Evov z$-Z&aHJxoNARH`h8-$a7%Tu>ce;hfpS#WY z5_TJ!0(>Y=XvVCGJqKs@Plyw36Ucg$*OBW}Na-qp>JoORQha=JoS2C=9KBv14Ve#} z^}(k>`Yz^GnV52ncMf+H@6$H8p~V_J-hWXEN0a57>8{H@x2Z9W1CWY(0(K|mOr9+r zu)!HfZon?TF(#hj!ZlJe#bau5BgcH4^t9x7W~i!pbIc2=>H>R!0u}(39F2PqmyTO3 z9+tfNaUpM_{JpJ1eo`I;kmVUv(|{n3-M;+hbwI*SuydwO=qH4oc>e%z%Qaj9kBDFY z)%i=vz*Ztj3&xy}UzTg#RN%-hq&GZ?qsXKcHQVm~+{Tz_Fbuse7S@wZAO$~WqcI^9 zCmi7gjB7gFOB=G9Gt+wY08=vHJKMDSVi|^?uC=Csx@#hdCU05Yhr|Uy3s0iEtd#vaS6z|ZAPFw93kN`}8=Q)&u#2Y-CWggS>sIo?Wq{{RN5^()hDCt7?X!?*+e zyvmUd%Pt+ZeGLztcxf?PUP457wmi`Y1L~`I&EHr_so2QX4wNSPqQ?OIX^V*EUfh8 z<9%xhjmqrAARC(YA3mP>Zam&7;AqJL4#{}(XPO|MTi-7Q5XPJ(Q?&>jc^@8>+rDb@ zLs?kS2am(BbnG520TGx|A|CSdONZ+r@tTj3i`f-QvOoXrOMqwKkV=K8vWK z^kXz`bsRbnR=ugxoibC&EM|+O)aZRki;X3;wq=T}th9*JezmD@mult0d`E6hE?5Zj zYew?yc4*q}w85n%nN;pc9fyZbxu2)SXLgSZsCllf=5cpy^C@MxM=SvyQNGCQTI?yA znKe)mpwu+d#(0<>mwOGJ>^kfrNLnYr)iiGb)E@bbht$qf7jLVy4NA)Y0MYdrn1YgP z{M6X{9M|gSW}LZZ65c7qx`b*fP;o+dk^rEt+xN<$9syy+%a@O5k@@RgjOn)vJA5=G zk}Jxsx5)3?D#5H__wYmtJRk-&)dh#6&`>KF5ivH0xRl9@uaKTQ#u1Q|R9> z>1D1`;__FH)%b)oG*j5up$ETw*yJ*SVWEU(cV)krKbD$LnXP`kV=8@WI#xyM$Em2x zW(Gj-r-m>a7t41#-2P3PJv!}Hs{BDC?GDDHrpGX05zM%n(m#do{!r9yb@+wML(?=? z;tc^Hjko%8h~v3fb%2A->65>s6>WziYEISp@4Yi>Po|lGB5C8kW7A{Tyw4t=aTh37 z+;XWRjKFoLk6hGb&SS7=JV3D}{Goy?udKua#|f-x%d(!^Q-8nc%>6zA)xwrS@Sn^B ztXbdHRMg00DM~2$RCK0KQ#gkwNr>h8p2_)FZyaePGoX-j9D|NXqJU5WJ23rJ%Jegh z+iqyl-;+Dlyt5k4tbtxN<+VN_4Gk+!hr=w)eO4R^=>(0j4Pw-4HqvP~5wMffq;e?f z{z#|DV=Bljvc)44Mdp4{@>R{1{iJ%*17_rq%yytOBBGS1zWIZXAts%;6fC~=@>Ydq z6|@msGVzd-cf$cY-v+!dbBoLX2}@>QYZmI-~Fr_+3?f= z-Ob1kGFWW?0GG?E*qf&%m0FRp*@5UsxFaa=2^L*F9y@qOyX5PgBH`|BL#%5dB}&mq z0B#Op#=+UYJgacJ<3+jiUE~RKbfqNt5{8T@y*BMmrv{|>!k9$Z-8b^J^XT`oXczVU z(J=-jZA05{4Ax~5!YRWb#Ji&}xuSNzA0W%ggF*>)Lo+1Zk6*GmoD z7p@gz5--GQPllDJ;au7090uIHG2#rvR@QA~gw1H-*SvOqgN zck?fstu(0;;_5=OFyx@^zhBjyu1wyma5Be^Po6yE=csQ>+`H{5CMttoqoph1T&{ds z3!SFNTa>r*&r`ON=&kA%c~yy(xAjYPC*O0EF)<7^P>4KHdM*C|pTrK-Zey>&9 zFaY>K2fua)#PuH`T(?Q5vsUaeYe|gl`^`dsEU1VssKzH9UXAzCe{IQg*v72ihPRRXDlZ$$RxGFUO zuKkZ}s#0q)pxdP(#iGODOA&;_a7*T8sYcL=%;U;~2K?w_Yy zTE!tM%XC}<3EhQ32ix^+?U~wmj9a=G1Cn$eq2ygwEh6C9>M;5bHCS>7@)K>&+zHi_EAcC%8GeZl{_od zfC(67lZrImnl~DGh3DopH@0;~j7B(!oV8VGdRBvPY>phg9)B*F^(!CG(&}*UCaWF#iBP2mK6hEx<>N zm2Nc#g!bdVzFR&^gD56~P5E{Cqj_sAdS94WHM5VF(Z%!@%~ar&o%mdg~rxr zr<}(;nlz9?$DQ5Nsdp@S6=FgB0sJ#IbEd2kwDZlzS*42IRb)b^V?x}H!h^m?#u9OC zf`{_A9%X|%Y^Rb3p|p4HhGH6 zS(SAg(-+od_ylI7r$eGQsHWM>sktTuKjZ?RJkeB z0Q+Zhk9 z?$0d0Ei~Ud=>iMOfi=y-)u)YtHKyE$O7`i44gr&!kCP`4raaWNJvF?CW%@Sf_wYbT zes^jKUn8{CUiyW#=Ao^Bs+zm-=f|h!k?l z6TNA05IoSn@ztAkxoIk09VseD@u1(%tNR>8ubzodcEO?RELzD z7)0EG9># z?dkvz%y-Nk42ACVJ)jJCi|GAU{6lzdZNcLVJdb)PKZSFn;}q*LPFXg2C!0L;rOPxL zo}Wa&j8SBbfMPn(_paT?>dkJVLm}DO2%J%}klOxX-}#~Dg77S~K@lc~qQA0!&3tGF z)0jCf4Ox3ahY4a{Z1U1sz!W1jw41FC@wVfB#YiTe87R%ixb^1wTUPQOxdiOGcPC#| zl`8ZH=pNe&Ww?d&dK?nRmK-uiT6xpWzEXH}){I`6jL<0F#*pC$)GjK<>i zFD(9fYSCT6X{$nHiZ|rpj?AOlpVuLa1s7SDNx{3;bld24J!ad^IvjCXw5&-*Jc(M4 zK%aBH2>de4kr<`3M8T_lOE;Eg^KFop3JZj8LV}=zdT-eHW@b%4i5pIg%PFApe=jup z2C;Fb&jS#k1}E&$kO`sfT*AZ%*txl;Vo^G+)Vc$UE3)(1NY#o$qxVFb(zN>{@bT@D z$V?c@$VTgWuhwi)nVEvEBr8h%8-P8@8CF`8Tyq$W)7u?IblnLY$60QIf}>+XNfh^? z%H@~C4MQcDoOvhyal+Tno?xF<*X};2r@t;7`jOLb4{VN;Oml8__q`?|$Fs{dU&pzbd~e>^!?@mlw#hOd?f~zTf}` z!nwB6=mmO_gx@w7=Qg|Yoby=d68`|AN<$*lQ5S!^wpE`6A4)Uojt)-_o5&ICS7P^2 zK{FFlt-6+`+ig-k>M+Ad2REM7<~ep|x)+j@NJjKi(t#+vBiIV>zQFz&OtjU>8gVQv zN6xYfd6N3r^O<<6fZb0+gDg6@Ipj>OG_mr1_076!x~rFBLoE$OHrUp=Za5MwHBJET zQmtdllK%2-JhWGFg6gW|D~^;j{aH^D48T1eJvWxMO-ubN%^sP#lHpR`2+eA{cOCYq z0=Z6OV|O=AfSu%vnm;XFY1evmmZ5b~C&5mNsz3*G-kpB#nSq)DLuX+a05@SDml~v= zRn}l@!cxk4OftKCBo59;hreHJ#Kjq7DAP;=_J2R!T8n_%Yl$KERU=3tj0?*YeEDIL8!R%?^i(8@%)Kqw{l8 z^7Ox>Sjg`m!d1-&Ujw%O8MM;s?a_9G4xH3qULAi(^Q=h)+69!MC27cSzTN~K$A|05 z)QIG8@#op(I>+Vcuw!*$$*U(aqjq{4(0FvEb5L|<2WIJN4o+`Hlkzu4^QDUF{$)b9 zl7$Kf!oaOM?NUDfGpFUkI~E>lu-0$EM#i=FSToy1id*3fjfXaKVA$NIL#NL?2R-BHcR={`RRZ8G#g4=AX&i? zxamXOp5GzYGPC9IPYci)jBn5M{M5Ys)Yc4|{l^H}bU>_0*@@T>qknJ0%{&aw?uWIt zv5V^E^8J>Vr8m_gRS=;o#8Rb4Q}5F^-VnzZl*^mM79SpYzetN)5$m?-#o~4os}I>; zr2M;PhI0a2wcyFMvcDx=#dl$Orryg)W`W~XEB3hklk*GSzkXAYSlN7YnADkXk!F@T ze?t1MVYLe5kgK|rwM9IC4w)S^%u77F5dmTKFXb$vd2Sji?<+?`{z)REw)D-seJ zOl>%6IMK-HH`{&s{T0lO7BFRH$A*}l$`fAl^`mN$!=^+eYlbLX4onxs9=-b<#_bWs zI)jlMTq48C{PX2Bxs&u{HiT{JDF6di?NMH!3T6Nj#&>qQX}|;*lsuiQMXJT9Ku}2> zKLliNKtbBHHQV*%HJH3f2?qx@rscET@BaWVv>(iWLgM)ZcLR4yeY$iMsNd=Qcg);4 zg!wqQ@(yxOyvya7yt}0cboE%wYG|WnP^3@~yE-xkJbO49pk*uQ`I_rMe=$PZeB5P{ z;_GGyKpWx*!!qY6<{LHd z9&D1wO19K3(@oZ3jL4vmO@f*ZfRRn=GR!cHg%%+TrG8g=cSF27o|$P1&UfOWR0Z&$ z@ybq$JsXY?@t@2;G^doWNqsrPy%}8>WgUU&KK$2Y#&H)MVG=B>%AQ`czA*k^d6o~1 zLc$Rsr8|N~)I0R9U5xn0jz~Ij4a*MJHQ9Xs0Iju)Gks3m;SnezgKyX4f>ZI23FPC0 zzRYLyOY;81QPcjr6lyM`j4?&0PK1+^&4@?oc3OQvfui}p@}~Mt56p4AsQ&;`VJtEd zJ_QUZT)RzuTpea_5YygtFFNVoPQ8;sxwsb*%IwUf)ni8Zm#;uN4bR<}`LXy?+mlv2 zq-+4-da77*08H#hy}MR{mUhYCp_aEcHEh+)~;4 zFa$9hboxj6@0(#L=QQW`W*JCXOTRk2{{X0dS;anw<@GY#$?*u((}3a**@dpw_+Pt^ zKe6A>D8eoIgXbSSYI?7)socXd%!KhW7UNpiYWQZGgh*ND>0zi7mg+y2znXq;)^#ZK zTL`7NiO27dtwIijmZsGH%(L>+F|fl`j6~RdaD3sdrJ&MY$lOB%5?(F$2d34_^xDr0 zVjL{_B_TzC>E2ep^K6=gx}0qkj!B9!(6>-PJJ!AO8jWWWY{mqQyYl8V)b1woznB0z zg|ER8eyn={4p)o!yxf@P5!viInUl&|QJ&HeDr)clmIug7>MvxpL7b_~b;QRDOJ-z>-oKCZ8Ol(pf5Z zuJom9dV}rZ?}7w55|E<0j&N>at-)YpiwUwQO@zI=aclrFX!7-0_1~_+0ZT|pI z&XDRl*CFv2CQd<`pFeD?QJaidasUL=>`yBBi-wzRBtX5d0n9P47pHG*yHBYkTUJbb zCW9f>t|QdYN{ULkrrkcxIUfwm8O>O5wGlJeyid%2Od6^ip-9~q;UrX@$69VHPi)1P zsl}sQl30A9J+u?r@>Um0IgV5aYvM&uN@UDhu@e)!$@M=Z>Ut;cj4bgUPswUU3GpA- zFmvOTx%jh;ZyeV3S=J+C5M>3y18{fze*CfsZC2e=27 zYx4H@`>(|jIZ$J()5HsYq?znIlcPrzuTBxrf!*8u_C2$%!4ap6fkFbqlR@hpK^cBIe7x-%h8`PYH(5|V3ze=mOcNI4H4($66dM4FL=Yr~pt?Z=PO#D4Kjz`Rl9bR=VUm-<1G`Vgj5G?X3?{ zQP(wxAjWDfnp?@uDnFfGV%BuVx4z_JpZ8&iBE2^NcmDu7=1+$bEw59Lg!6iLl-A=< z^7BJ;N#VOZmyY~?XWzs1W)P0f7?Fv6ulZ3q(EPbI)~G9MZ2)-P&vpRqUkZOr%hABs z5#;URkQl!|yvZh)=51E@QE5v{B&>ZkRs*iYA8L5!J~`g(JP{GQ-Twe9yp^Ks_HBJ= zg{20PJy_7L!@on{Gc>UAj_$T`qKW+M^Ah=%rBW&B`BNQks zE>8*kp7L(5<(*1RYs_}-9i))7fth~J)g63({LtpP^Kzvw0LQgkS^UH1d!2GlX2v-^ zK~9y}gW=b{W@+FiSPmR}mUE-WCZ%yEtEji3Xn~M&H4J71+|FYVIlHn3yw4e&=L#yf2=#{{S;;HViBtW=NDCN*K^n zrrUp?j#H}AiE?KMnDQ^LKPvUREn3dz{>X@#00kKQMS$I^d~5tO5J2N_a_Pie7svV_kNd?uefmBM= zjw`p)Y1cG^4Z8`;!;9lRYW5hp%p=^%R|qILnpAxE%*e;16B~})*=?PMrRM`_r1^H* zszLiILV?(xy?PQWl*E|IoNRc`O_ON+ud3*`YioZAwUu0>sRx611uOQ3{YD*N;oYwk z2n@qm8vctkTD_zN;kP1QTuTZKfjzeHuf7~vj}3(41edV>So!q+XWssRyHYL*=P49W zv>a+_)O`N{u3j>DvZC7#$`jr74!h>BFMd~PtMy+`>nfpHX;N64e;?!1Hm8FWc6RZ? zFvn-h+V`6^i@T)rW~FN5%dttyMIx%>sWk34$YIc&rq3q?o%amS%R2Xze>3l-kITPN zjU+;$T|&sLKni$vCWn8&Hxki6iVsDj5h3ILb^idIa@90%SX%0DcV`jjH>iLRopzz> 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

aS#BK`ftOfxRjy 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 z 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

  • QEukuS%N%V1!_+pv^TD6 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 eNu0`1HzWIKb}hdpwdiM(TPUzpB^P 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 z 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ΜqwsjtM80f0apOJ!#gE#6A~d3jjQ6 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
    D0#%q;W=y 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 YvxAf zsl{s;AQ}!sW7u`4hHSLcCO0RM&sYx(PRS?dA)4dKx}CM0EhWT}sH&Qf0|u|&22-t< zrOeUG)ci;Dc9*DW_u@836Fh*_F7@sA_VCNJ8i-CC7qSD>yY5fOe<%5aN4v7uHMpjD zXP~lp{xyoEs~4q6P%0>C*0m!wy1ar%(&)8Vgf@%mzszqwXr5-WoAT9^sYLie0QEd+zulP_qn$xk&%>Ip?ehBz{o}c6kjV{^&rs$V3O%1Vnz-aVRLfNkA-m>(`Og0UGA+Hf)^(MBq6V5B}hnkH|{1h(P z(`cYbvhDj9886Mo0Fcq_Yqy1SY0>FND@446)8cK78NIx4p;{8G!0pDBq20E{X;qxL zREQH8p$3PM@vrgQ0a{xlZWLCu1Qs3f3IY|`Dg%z^m$|}1wuZBUBXar@P zjzoZ0dQf=e*o8G=BLo|AAP@&^m4z$jCwEVb8iP^2J9o&aD)G@kWKfD%b6WoZZUT}M zeLMXkVH`%Kwi^?^GHV+n1+vK@f#_C;Vlpt@mm3_JSsdF!gNQZQcRefe%Ng+|7U8)F zBp+yQLHqaq8C@_XKDU9G3uI5;Ij9xi+~7168Wvxnzw?MbM7GoJ=kqqVVzb}GtMzYD zL0G7Fb6(?MKeIJi^#Ga=J+IV~YA>>U=j978%xI*r^Bu&@yu%}d@dLF0-=*X zBxDtCpkz9ES=}Y_U*-0f`8#ht?uT_G*O$O7#IFDrGf=C!J8WyW>KUojX=RMqE>^F! zBbGd$pZ@@#K5c^g%$GOTBzlub9f%zpYLBGvnO&SEBW0F=STrAZ+1?#%$=Xi0a6?Ge zut>yp17c6p{4!eHo7O+2aQoioUOT#rxF;q`pYtIEqXlJDror-~?1@9`Ep?grG~VF*S;XEOx6 zGR(D4CY@hS7Pl%H!igoBf!&CyB<)%s4Ao?r#CCekF@|{4=8racF6zUSwsl0ICY1wj zrkT3Xc7TwlU#rsy>>gWoCAW1Uiir5IJE^5JYXT*+t~kjS`p@#u&5-MM0u-Xp8jfVp zRY2=Q+*35&p`pFQv+VtRvFyxsSYx<|dP9;mKpbni9Y@oeL5IV7%o?sZysKIAG?x*5 zS~7_&jqs|dau&7r@TYvrj;Di~XNY8u&l%P~Ebi@}kf2$5)QXB4YzI#a-01sGC!46v z*`3clHZo}UOre{a5ybCMI_;ZGdVx1vmrP>xfB9Sb?w6aCp&!kqr!{_WuAY`6o^CHM8nkx`)(cjEI$h z_(`Fy5B6riCbPslIr#KZ!Y)rezrDI^uhSN1iG-g_ita(JPWgN;BFnFx%&{#;Sk$Dt zd+Vv*S>*W3maR!YuQFkdxj5M}6U`^M)aSnCJ=Bcy1HU8N_5L}OBTYe!>eruJm(z`@ z6#*(c;0QiQS#DBhNQfy;wC_x{G_3?*U0Bgiz^oNlxi!U%woWxWc(m0p#=tQfx681^ zs20YWAmGWvdeHISyW*EIjTKQFiK*Oo73qs0Eg2HIPfeY^BT9k=29048XJ;-fRLs2iFC-|5RDTdJ1F3ry=3y0m9j1pF9&5n44KG$(;?n zM99aj7sQY0k;YqiSk9$*EaWjrK?L$Ubl3`IfHj@cH6;Vg)Z*rdckkaV8!!L`jmkT5 zGJ(LFcO85%fov%p{Y-csqv;&zg9AhwH(Dd z5k;j5_wAFm=mF7@=^s}!q^5~V2Jj^OsgZ91^cR&h%X>*t#mMyCmAI<|_*W>IB<$=k z2*6o;W~1gk8%&KCPt+Tj>G2PYR;&o@Px+iCsmc7$0I;$D066r^C(qr1`M@eg4O0F>QW3PMFP*IQao=5evPN$urm;|xmx z4L9h1kC@EdaNy?R>NQ+kp69B5XnAW^(^5#TkJq^JCZL9H+<~U!C6Ea+)9TJXOfJjw zM^Dm;x|TqJfepop%y>lgcR0IP;^tHBFZ1_Ex|vr{ln7LXcTqw|O4gly>6038T)*^1 z#K`>L`T6BdGTtkXE!{l#6r(9TXnTSF)*QG1H)$idnWivhU*0Gy;)H&u?UkHlHstN7OjuI2{{Wn% zHuDw|F}5wyiE3B2{XYCWG7dJMx4<-6)|3ALIWuKbBohdw1fPb7mekx1zfM!?pEoln zYU7Yeum1q&AZ`u9%8WfSNsw+p9>aXLG9#0TgS9|AvU@MjNMk{F1jSVJ=Rr;T3ebHS zSjjS6+}i9i78uUI{{T4?e$z78$rHriZ+aeII`_%s$simpFKWUjmS}&T+M0;ocOdoJ zv)l0q>& zcJ>v);>sn+$*9LJN)mt0N`CF4w~)fiunNUgZMSX4SaZsnC7uC8PyYa%rqndqMUCal zh}(4t_1~zd+x1}a=NDXaV+ECIU-O!}_m{Onb!~R0Es5B%0Cqkg{W&Z;sasy7E;)s7 zJb%tv!TE&=xYiOW=0XaGT5+$1H`}NlJ@Ogma!Jd_n;tQ<1lK<`JhSGF8|t##ELU;R zb4B7i)qbcoM<$`6dE1XF6Su{&sMz?|GVn{oJ2^unXUx8+^FRFM)4*5D zy3U_#EbKqg?ovTU1EF9y2jtn8JwQDiTzF#>&5GUrdPC-D7fJKorJbY3)sFrKJk@L8 zso&ea^uq~*&2wr113~=0czG1cFU&8?-!KpG#r5n@sS!xc#37;}?hhaVQ(fy(jG-B| z9aWu}-34%G*(a}QCa1Cz1AoRPZ=zw(Bgp;@f0 zE!B%cD2&KtinSE04Y==LVVE8d3$TC_d8&DvQr9k9N4oW5xrF}!qu*K<0qI@$t$Ot7 z-z>m)VIpJ6>)Iq5rv0 zawm5hP^9YG?bsP^h>R)XXgZI^hbkbq;hiPc@~G!=CqPdUdJr<`7OcX~$T)ALN<|CQ z8k4vA?}9;Uf@3U^%69-30FFHl_1tAVEr8MyE*+||uU0L+a$q!=f{lgJQBX*AHKJ|T zuK5Wv5k(uqmGmQR#_V^Y>A#LvEoTZsvdJYCqhhq$riZWgW!9htvD+GxB!3>k2Kx%* z#Z0&@4AGe7{ml!0(H~@Dl6X-Lr5lXLiE;r4rv3KG#ekir8WU-&9mnZLb&|gTPue4? zHOn}yuovqO{QE0P@}2Ij<_pg;TU%agRb3DYof-HTPoW{1I!{Ry%t6-z?P}w{zx?N8)m--oI`GoKBu(I{YRtobN+r88f)HL z(KR?C;$gm)K4>aQc*_z`T2)0U)3#<}!3-wdE^TSmOkXB3{{T1#=N(bCGvr-rcap;D z%4ltpZP6szmx<~+H$&ewnw}ZRfb`ldF^H$=Wd8t?x^}x^9*s0=mikQ4U)W15LA^PU zhElcSc!mRFI(NtNn+oXL4Il>IVgCR*A?BT8@65hX)Ga3>8Ls}Nb!tgy!p~93O)3hy z?OxvbZ*EW033S@cL5%702mI#8mF+ysr|B2aPchVO?{6&{B{fp2BVa(L&A8ke73w=)zw?jR^*F9=9v4YKVFE2mtW`DRN|Vs3CY4c{ zIcEXtw=Xts5y|lv=46)e`MXhBO08-tI}keW+bYu#B1?+_#x43&{{T4I z=T!6Gl4J6gvwv>-<%7JI5fTiZf&o=O?5joVK~YTAYKI+%HXsp9xAQ0Rvg7j;%X+t+ zV!DRb*G9B2a}=ym$hSVDGSpCz7|>N~(|o5xpq5ZfdOE#k0}bAX`6sWpnf$3^st=0t z7|pbTmE|NPfOh_2L-glQrk5Nk)oAwh2de8nezCrq9RpHjiu^=mjYq_&TV`6Gs(dp+ z+GHO~*I?}t82aA@XkV3jcb@gFem!CSt0k$qwwu%ek(5!OlAS@NJ|K4;j%lz|OQF<6 zN>>-c{$+sacfX=lsP?Q;nR*9C>M7WPvF}{jVVQ5!!;72rv+^^~srj|#gwUocHGLu? zq}Th{s1!2~Z?oWjd9~8OOKz?nvki_&!d;hS6f zu!7;FCDaS3%ew)v4b8WprfOxIj#fU`dz&AJkB6!Q{&43^lgid-^D|Ko^^H>T7n^)U z+pCn2osBA4skJFi*m36Y@j$HI7?ldb+$wu^mf{vNeytcJ9cM$xF+GUkp&Yw(b? zrA0h5Q>fF7**u+r#ajS?^Ub{0zIf8~xs)`f-_ceI7#UfV@u970-?sfSrD1z5jnEVbeJ4K{9S9&D*MDrE3?|o%NQ*|WXVxck46z@LO9M^F=s+Xv@0n835gsACkF4zDgVi1FgG1%LLtWNxJnO8h zw1gFb4MN5Ns1!ZBeFJ@lGTd6>gtHqjE7bo0EWE`Yw;j%#Jd$6}F`J4KvRYeAN`c0o z1$W)P*MJ#Z=fNGE)21+&5q7ird*>Z2Ykq3bXE!qWaw7LqABp6Nhzvm+(P()!c>A1$ z4D#~mC1f*`B z%W3(nV@(G}x}H0KF59GbPazd(fKDK{`3y%ErDzX)#?<5{JTB52qmC~<(tNdV75nMB zRKHnUGO@)nxNc#-AbJjzBVkXYFf`FPxjGzx=99?(05WuINOk*_GWV^B#5Ssmo zk=O$u=n33XyX;55MWcuDHe%Co%HsM*@;6cPwwd`gtms<&P($Z0tr+yydU~$S$Ad(p z;%*z7fk92m@0V%e6UE2YtMt35YwkQ9SdX6<&6<3cerJ^>y0f;73(4g8nc0{C&9=v` z`(z<81LW7*(eZKLGWBoEKg}7g;cZhwWuDd?6NCgU$zVtf-^2y}Qzmv@AB|LN4 zkA7hJ;_^AQEqN`Wg8EcjWE;{}l}%5HAbW32)EWA&oV@w`ZhYQ*`2pv-yn(2t#=N|3 zwF#uR;PHZv!ai(TrnLrx;SJQ*nVqA~BP&>Gr4ek)$^Kfq*EJje06ppvtWSG?G`46H zfmq9YI~~T`0b0}Nlxj6&j>DCwxIyRN^OZh%(){`QEv;Zx^A4Er1>~VJT@j0O%{feup~- z2+DMJ`E{A!VTMtkeL<- z`E#ggx;&F=_D=+Nk`5^x98#INR!%Lcq#xj7+|z z#5?f^aG;8H>;`PI<>J|Not@%7jQpI?t-RB3C;Y0Lds%Lj13sgD>PaYaej`8*=DP~7 zKr7oY@WYB!?sVOp2GJii-<&#!oc{nO(&I|i<&yVMz8vAX5%E~6Ys#B~I)UE3>6-0s zqb3>DzHTZ`#e;i0n=hLBTuR^ zHdtzK95J;|D}F>xiVt|T)-)d{+NGua z!bJ=t;1ahZQMdtm{{Ru1?3kl2Xd0dEeW&IeI{JNUOqE*I{vVE@s2kJ*2kOgWV}!Nj z%RHyak9i~WH(R~)G+s;&1MhRoc^PfBUf9iT|lSK=eE^R$>%sK+> zpNL*xNW&QnCwFHIry+X3{Nd)Ge`n`yH&RdtSs!*EW~)kn494v|@gP&Tlz3wMxAULO zs65J=5Ge)cG!1audPvPyV@jG+a4A#UHFAKdpX%urB;QI_6<&h z@yyL;Y-SYZPc>`<<_|A<&qni&y27vMOuVQh0ZHrNO+B+gj$BN2ItYl^Wcp{-G@H1! z86y&elbnK|YibUg9}s^0PoUe0pv@dor`>*9n!{G|+14bTKxmojq`m&&x}l4&(EO&WBhQW*;vb)dZ+3NWrJWPY?#@uiu=uvsz5)$I$^3#6$E} z`}3VYEWDkp=!OTmg5K5b;Sr(z+f#yZ6dZu9O$`AA)|t?0HSxoYh1P524O8S#$$$CD z#PcSce2w{q4>@fVtT#dE#Pd9U9ff{W3)ptec0FXKJxIl=20OB!(t4NuU#9;6j+d|h z07hT$zQ1qVretv*{{S}=hCT29((ImGM~*VEl|GAcQ``bNeZxG$QWWqcnDS*3X_4z1 zeZadwI(lQV{*=mbYDhadIJEvR)bX3|D8QP8dd$*>SmWS`{{Ut-6*~jgwf_Jyn{ln; zX_lNqTQMIr=-RFA?Y^z$ksDlbSi-RYC{eu!LtH#uJGq){f-<7S^{+2^r(U_W(XJvo zZM2Q?$;=K)o0C9xKaby*&soE;c3Pb@CmRf+@5|#yPloPQ;!P!EMs6T(z->*sZ}ZHY z5ji(5su;X2<;j3*EiS)2YZJ8hQV|iNQiIzek|~~Gc|M`?U+B9#OK5Mnz}D1I8(~hB z>ssXT$}-ru;;Az=&=*ica~x>IHAAQe-^2X;b0Ru1kZjqPIEN%WR?>Q+)+Og3AXxMO zkJpq#K`V5+jX{&sw5TG7oz>45NaJRudQ-n)nOQLib9bGcj{Q%Nyz{Et$*4$?aP?y> z)a;|cSE$>6mTI%k`8e9mM+}~OdOovk!bvz9^y^S4OB!Y@CBhs|9~Ms+^B0olmUOwX zZV~fA$w2BwMF(El0jS?+KPEl^h=<71dCuw&E$b5c7pTEvmPOrxB7nD;F}OTZC?HMId%;J8y0ZY04Tis&p(!p`C?O0zr2vyTocAhopB(K ziLH`H0ScHGl^Fb8NZ<7j9Egz{I;~8+P06Nlr+!`eyUdijDj_ov&Ta{fg?8AAl0JEx zhZLvHrg^{*WYa$(wabaqO}f2E%%MnV5`h37E!LSFnj%i@G0aPJl3&Q}A4qAe?llQ6 zC3hsrDGOE=uIhiTAIS)FE!i^x%bN++{EMUMx|OGvv|EOr=Itvxv05T^G$ND-wn*uR zM2zGO-q+-vKHk$;{U32EGr<~~siP<~0-zr14L(>f>E#@$mOy#DoAYBvxAPyIAM~50 zwx4d?8ntr3JrKX+AJ0nu1wj?0y;qeXgPBs=D zq%*_~(?#-ZaYq8_v3~i$B!f~x_oicJnV5AsyF!c9^o=8eh~p0};*q!uPCfvR<7(}i z_{X7ObsRjNEiQvRy6DqmWsT=FsrW!Nso&+B{8`LlPE4a5k+S!F7s=OfMd)f*Ay;Vq zG$DfbAAV{x19srfA_l`#=`!dSuC}g|Mk53=fZUBX0-JA@Kv1TW8#Wo{nfXcPFEU3R z{q#oC&xs;g2L>ygRq8x>OEze`CIbF%T1hH&kCX`3~na=@t4Gc zXtnufUMP;Onp{9iifiX@KjSH`EXtNxjevH192$lw^CkKGBm>uv z>+hLI7l*NH?F})GbOwY|@TP6MLP8PYi@(LD950h>*6PBx+QqqB)TkkV>H(!X1795G<6!RSbNUP0 zKPGgz?!?!32%*D{B#!jle8qEh*?4%RWyaFXPIO;TM3&loW!XolpA(*dFLRv+D2VRv zr4b$9h`;le-f@G^UU8Xh9sLxO(n^|&A>-3Dnev%U&&P}rZxGUS1Y5Mz^wwz_N-Htw zz9(-1m5oWOE)?a&AESSi+Afpizc0ma1S=)f%~#@pIb%Qv^{@MO>GQ;ICqb-{k5z9w zt^WX+ZQ<1P#b~cAzZljIVEAc1P*9M5BbNm&^*;)=C3nwd*nW) ztN;=tBdfhYtt&t~9sDw^SpaCv$X}g}ALd<# zg?FbVj-Jvg$0UvM7aNL>oA%$Z>xT}g8PMe4hbM<2ApH;g!1D^}kPA^L^gbiWE59$1 z{{S(O?JS-Vr?-Zt;vXT;s>i14m)DL7Geo=gpa6XvW|C4jZkIlyjXq-h!}BDKt-*0| z!NZ;krh=3oX!z_qWg6Y1Zoei&F>fUN!t)fGSJgGi!*Qq)o#+Xvsr$y+Mv}4}-A0%k z`*nK1mYsFWSaonpw1^7Scz{n@l-nYxSWO)Fe&a@C#+ zEUcg~B9vMw%T_4KY z!uf*Z%l7wZ4N`XHO4nv0w5ZKjfjud=pv{_mK9`4nVSZw2I(j9onu}W$9+?nO1+KtS zl^;eJX5QT_^3HPI^Tw5;YMx=1OUoN(pPQaige?4x38?~<-n-zO42_38OCJvCTR+N; zSIkx7`$sh9_LSLH7|>b_F2xYKlL{U)4oX4tZV zcL;k|#BbZCX2T$u-Oy&xM=Y#9m;9Ri>af$aiL{&eV@u?JQda<%mcO>??h_R43c zjCOG~*yo5)57%G$#vMsDugiT)%og=!nj43VsHH%t6zSHR=F3TjqDby`zRcY3iRWHh z)mh=N)wQ@{pH{Zz``Kd!(VX@8fgpjgr3FQH6d9$&1m$uYy)Io>g!!-ja(l_sPv#qc z%zZTcbAYn0)F*LIe*JQ-R1O*2g_|hPy8yBBgX_LXyH&C?y`|@>oJ|iI6$1p@ZGor0 zS*n?qJ}A1qFcF^WpOZh5mebjyxS~+ed^wgdB@*#Wn6cq5z!$58p^tv2F94K>mtY`usQ2Zlpz3IMZ zUq?Ar3F2dma@4PU7QmEx!iWU25Nfmo<~t6!cV!fG7RA6Yd?u7NG&DUu_06y z5eIMyAbeX;RQO`HfsLaG%g2%JL0ymZ#gel?<`pbY9ffD@mbjZRcJkb&gQjrU%%PgtEP@kXui#1cF=e&O|1EWrBiViC=#FqjgM1J!TK_x zGEVMHdp6}~li-NFy{vi9R{E}y6qi%G6Cf31Ugn*Ab8iD2LxtRq93yAxzvY#j$H^Lf zt=p?l1O_JK)bL^m`Sjo0FpNaY#^=a#WZ9AHx-;s!9MMf8M_825{=(OZKK*tFFtWpI zbK(p`$MwG<`Gd%5_2;sWQ_!yzC)VRrL>D2znH5t6pXCzSF-r&m;c|FtqaJJ9cAtDPp4{TR(N=kq0PbV7;u}4GG8de4y!JwuS&MIkje1Ef`IS? zU^fE2Yq{L*T;}D5r@~q$c!HnhPvynu=5Ls;{Lf$^TWe{Vhcct$AP}k;ufi%h9|~8f zu68_ft&k>R=`Uik^8Wys-s0m<^L5k&f>Jo30H^@crH04Y1HW9SQ;&;jHe&5R22=|j z^T(5;^3+LZAgdY>uSRzy)}++^1H(0O#BrUT$497+c-eRcx8!JbWRm{sAgqc+aKAr7t+OHUToE+MJ50mL%%k4@F z*y5T*z~0o$Q&wf;SGF9bLna?s@R4Nk!sYKdEqinQsl>JMz%>9dztpBOyY z#}pGJMDk!hI`2WT`Zvt%cOv0SBw}biJIY%AkLB2>)NTUFakr? z9z&_xm`Gcu?Iw}}(k)e$ejk^%NehgoPlP%6X|O#D3Yv+Ah9UL#0w26{&3Y2M4XcC{YJ?qrtj{32b>4E5xS=lmQUr5BL<;3-4;gUP@ zVG1Z4>y~?oW*`OoYAas9b{Gn7lR5IIm)loSe4}`WISJaTzt*{4Nz)QjFEML#YnNXX zO9iM?>8PmK3RG{0gfNavO8%&_MkH{l;pjr_@_PYC1<&h~ z*ZAa9!k`sqJ9ScP$eyF=%K&0*GAj#-F43%@KN#t^;f*yALWRY#h$O;hY-flz~XCPtG^mi+YAaWgrUDhvl%!ygO`$ZK$!k&o+(zKjzC1LUf?WEXw(~50qXj#W z(09tj1+#&@oG)&nm853%Irr-=)k0px;F=T*2-RelXxd_5?7nz(#Q<6aky6Es(bE65h`nxlP1(2A^V1*B9*D@ z^c;zevW(P?%iKQ}V%u_|!Bn!cm|kDKv|)J=#*13?t_~1U86HST?<9_iE3r~RBBq&P z42H;ieQNd@{Ya!LoVbEEz+wwCD&&uUGhRD0EXSPvCkytEpB z70P2C6pX~6wBIr63g%-eMPdk{t#|Or7zV+Zjg{r|2B6Gk_1O@BNIoaO`O_s<|WAzE+0zWZT}LWvN_?fk>3*hZ|fo!h81Bk7>ZsWHq?RNX%@HMT(|&BT%w zG)8u*UvZOcjHI&T^LNZQMi}p|9^oT90(yMO>x6EDGI_m!%l`oLkj-G06yogy>o?7S{)obpK4ln#LIIGWS1fy`l)$UBTWnofT~D@vEzP5HC4h=wt> z0NbjKhy&W4^B6?l&RjA?^-g@R`Mag)I)YhwqT)NfI#N-tqhE?MP@|U~`wFo6=6okd zcM~~?eHgRp`sKF|Ch9iVu*jv7Ii+4(@5B>QM}7WTla?GqW|+!_hlP2QOS*X^)9e@O zSHzM_EfL7AE7;bw+c1ns8#$OW-#4H6dKLBL(BTsoM+SImJ5YLPE}w{JNtWOxo`;v5zj`S4E|_-Shk(2 z4>0N1aoSxU?-^2v!>7kUXm{&P^HV%V1^aCl)tKq5f-%_j!T;fN|5qSM2d($5-K*_^~418PNTdxAKwD3ejkMOI7qgs1kzOt zZnj|Y=)n6QYy?wWcPUU+USc-foyppi>p_sKZkFp2gnzvztxbg}KVC|KVM(2uP8nHf z4Spg|BiHW43Q3J7Hj*Dyl}>CM;h^jHWptUy1#MFFh7r61IcO?Z^`9Iuh%97mHEnzg zsc(uPdzzn>erFn`j8P`)$~j)*rFjB4_3COn$gWrAg7?E#1JCLV} zdGqqQzcTbE^5xN0c;s1OW4TEMdJf>!f-@gnOrz;)h5{cYXnOCKKPzu-h28zVwdIZ4 zhAKcKi&2T8>C|S27AcbMbULzSyYyGipPpJKjeTRK895u>HVeom1NTzLMFf*hpwq98 z#OC))sQ~boeXZ1takqs2X8E$;%@=mpR`5q0Hq8|AvTs(6!-|f_$N1#?TOS@i7n#(4 z_FO}g^Q-=Hy8iaUU2|1Q2oP%8bcn&Ic~500GDp9s)Q=p(_If-(>&txox!tnA*Sld#ljWf=NO+xz)^+pf=dsQeP& zP0g4AK+HvYRAxBCz!>TBcq4b!-ckIe^AF^&nzZYEPf)hfb!o&}j+dxQDw{cDpe+-% zc+r%eK%a?z%Tk2GczjbvgO#S#$06DD=brreXLshEO5Vmri%z?-wmOBZEgZ3W;Xs$t zHR9+%Qmyb72dSlV6IUapl|jbV5jj&H{DJ(%T`$iX-;!g2t-P^+GmSN5;z~agLI~;| zK_Z0vROZJ)I*#rnafnWU*-P`BNuWUwnzU4Ry3%i5F3BgC)!mCm>?zPQ6|YTzIjz*= zvuw3c6WA`&b&W~hAIvBrE2rxgh!k)%l2~~w08df{J|Aq>#t|+CzYOqtx+Rl;&N$ls zYuV}==aJ@(HD{Iwj@Cgy{-+@7u2=v^AF|8Ws|=6ja>sa=eb~~5Xz#M$GX6;UxBhXX z(frA<3pSso!2;d1QW785aIBmeYt;ARzvUjexqvul#V$?VrKK_#7txycm%O+6-Q}xo zOrW^4xr9Bm$+U=nX-#(&B!ayG{C5-K)QjlzCmf)63`6oK@|RZpw$*N-xx9||$*U9G zMjRheCI+gdSQP_(&3g)Fs(N#dec`he4bv|@dBx!KE{)|_V_S#0_2;-(JMoQ62Jore zf%4lb)#U{6qe+*CC6}$-epdN=^NUQ2$ojRwi&uu1Herg8Sx4C@b~OamSQ?GjHQHS` z%{uD#*z)7lMu~XWlk_h%ep2hUpOHRlw{@|`qMz< z6AMTMSy*mWzS5Il4f+yL_*zeqw7rM%7@thC6n#yaG#*!HYCYAzo5FN}~bxK?0(?bhfXQdFWJG z)tBe>ypd~j`4TwouVREOqJ9M?NgIHu1%qyUejq9Bmua;}481*CG05`|oqsw%=N8xU z+soQtoUN`VH#dbou^f~t?;r$vKpO0O&<=uwu4YRFvBvw^Yq5Ay1>^Dgk6Y5EwzAeO zKE37n<%@wRp_+_2pe0B(@3;Fc^Ia?!D79(voPzp2lUBQr$v4IPvYb#vvxulk0gpgy zPmr%bMr$Rflw{kJ7{|H`%pa3BADQZW%=a%f?Dk6}Z5ZFwBB~s0YNu+|ew@z5l6c0= zm>@FCXU{1Qn*RVSwHqx%QVVdpbcO8YU}U8maKLX)R6I`J+vMk|@dXZTI*cbApKAHr z^G8WOQyK=LIF|Fw7FL&{3Kmf(s;tV)pi+XQa-pZ$Ib<-Lf~4J(RpG;ixxEuY@+F^@ zeEoUlJuOvq{{S-Swpx@BxExk!6h|!x?^gtpDm+eE2oWv=$-wY^b~>Sa+4*!*;#hpy zX7Iw3QrcD_l13YWvES(Iet7589D5P7RP;nj%1f&GH$iFR^DXQU#ri*+Tfn3DYQ;w< z->Ebkn)EfyEk+X&W0R9TZF)-@^B3kE8lI1Frf8@4V%hykg;*Ma{4jfVM$7;jBp zIh1z~j4d<^>%A{i^AV9uFv_ftIQwLgPBk5U^E({tXAc%b18DyM&LopSpG5NnbavD< zt7$z(TJe4gr*9pG`OyqwQ2-uox5t57J8v|3t_?p~w<&F7Z}o|%Q%M~gqSvuB+PynhHJzJ}#V)dBKwHQ4 zG}Na*;q5C+D`;gV-H{!bhWjLwy?&peb8k3CJ2qg!<8EI`{!44tpOgAz(Q6jAdbGN{ zkhSDD3F`U*3kuNk1ML!dDCyfQ(_|4ATP3XUPo?*_{NtvTr2bIfd52QbZ9?gq=clM! zsU!D90wj(yH{rNo4@}9?PBED^v$fM}HbMS>YO?v#<4n7nF(Hx6amE4TLbYAJy8Zq+ zt?jss(gDHNY7C`pA70c(rkY=tWK>(o?iM(~px~~%mi83sLzvmI2;&hAdYqm#XuNOD z@lSJf+BcNv`o^%W>WE@xsf_~`97!K&f&30>qo&@2hBQ29W>KSlUtH@}F?okl(%#1A zMPFH@QBu^P1R8zkwo5l>$O|F9T2T?VG{VR7@+~Iit|bc^6=r1EsGzAQ-k&_dI%6|# zHwT7yVIT8{-<5CXJzCfEFI17mz0L5B&1x98qT;nX?ON^O_;nqXpq63lcbYyLu=oe_ zb3~iV9%j`%u_n^lYL_W8joCHAM0{J)@E>Dm+iW9jJDmzL2g z+&?NHale0r4yR$`zH0TDjLV7nzsk#oLcvM=ndE`xpUgXzc39xIzu{pFQ~{x99382# z48LS|`&G?Gs2Gi$scX1~&m8>N^QD)ceDAI3c9+Lb^`|gNcPJ%Q7NEu{T5nQManm+h zI1FRNXu*n7JV@^=eoy&>@?zmU#i7}qN;V+`(}i-)<*m8-cM>t>3LPAnRgdL^~}eXk`>b^Q&Ia zzvW3yb*1^*Cc3{4(OC%CD3UW@PFCYh>ET}!Ou@k-!&+!l(tj+qnRUH7IW zx|)iG9z1*d<@1Ryia15v*gU=GD1R^B>p|3|GU&R3$U%>O5^>o3d-tbf(=t0hRAK2Q zo>}-iJd5%t&+_W?-&jd*5W*uWtI?=7Bj>mIoUkGf>wDJ$l&1S`E&ePuYb#ApYM*pv-kcPm%>{3BL4vY)ASC3XCgx& zb*SP#CEMbyDtva^=+7s@Y;N%K70Hy?)m7uTa3NJZg*K%(Co4G3?Brped&af92vjZQ zyOR{ILm>pvle2HrCo{raLO4yj3nJDqJOs%i0LGNBQaAV8Gx35$i9E*b=0BRASi6SY zdACfsx>mO;j*xeceW|wfJNtZwQe|b^=`{waAfL`rdBaOdwB=yS2v-Dm04e*<{{TGc zv?SKctC*0a+w#{+ON+@aEnE_XXrh3F)}wRZY_n4fH0ohK0{RN`NSr83$hm@kA^|N* ze!Rw(gn@2!GFo$CEV?bK#eE|sp;PH9eYUMW5I&Ciu+q%o6($nKN^5VfL+GPTZNl6x z%&qaTtx03!Uktws&8ZzZUJh=_1K%gCV2O%6T&rz3zGVd_?TGA$qREpYvNFGmhDLj*w z+Y$5k%!urEb-8l!3M@-g{N{Zk;e4&+OE!||f$B)=S-DqpwMieV@65BP5$MAnDFL&~ zZa+D7O)pTnzP`7TTlQt)9E6mNt$Hc(-{0ROjF4=XKPHsOTMzSx=0BSM05@fd%Kbld zni~@;8;C&~)o}*Pa+-Mdczh1)(FYPi?wo5P-+c!;!PM zCSP^=t>ld-{TbRThm2B-7-uK89ug;$C6u@XQS+s z2+>Hqy&s)5nO9iUCb%}eS<5pHJx=3nyDlJ0e6-l%vv-qgI<~AOuxXdkUAU4M1JOr^ z)A;0N9}km08H!5&7@4r$(J$LVxY4dSP+#L9X z$RX!H^O8E1ygKFNW0Z1oWmy6Hzu~*~6vte6jk|peKn3PMm$or#u_?KlIf>*Rq>??p z{i~XM@i(_816B;ByVs+(wl<2vS(O+fDiQl25GX}XYp0Wh?%-zwC!{@3%U)EP*hQ$_ zMqsfc;diQ)ByZNA=S(n{8RX`iToHW#0Op$^run`rQ7KrO@gwC~nXD0ECE> z7w8V3`8{u_X|md*$Ll(RCgnm-)MHMk!`plrw2_>7rw)*iqvWqA+IbI9lH<&Y1@Mhk zqG^vc4i8gKquQCQ(t(atT>N@C;~Y%iUi0+V&FNdBy7)DCBKvR{(mMZzQ3FnL}_MuD8zW0jko^*h01aoHe2C2#8G(XnSAto(C1iCRU`ncgi^Gq z8+QAKYVw~D*mSzROpfL5zmw>6{VgPA<;4ur)467@biI-Q8#wwHo-1Sj0G$5-o7SFB z(eG!TWsT&G(GZ#%k=Ji*$kt}z*gLr8Gkzt$t~LF3O+||s42R=2?sqw<0=F*CG6FRE zU-Iwr$~kO*#IHP-vK~Y`eUPK5ZxG$bhkUD3A;Yt#Gm(9d`BCL~b?9zpz10>XtQG)M zkEypo-0k1*reW!#C9y4-^s&j!m@brjvmNZyI7rlSR=5Ld@9=}QJJ$p-jC|aa*|Wv; z@_8FJwdB7rrk~|mR%<;;eS3djqq7Q?1au(pzhky!Ln(pT#nj`ipF&%{sd-^<<_&h( zTi-&YOBf;P#8eP=s6Df8GjT@CiH8}ApXr-TZo%&oMU#t-snVTmUY{(Z85uWoxUZUF z`5~-9t@)Z;YjP!$7zuK_(yg#3=*&$x^;1rm@nmN|ojQ~n4vT$paO6btl0fS~Yfq;o zuE|lb?lVH)FaBKWR@d>SscaFC8<8WtW?+A~=r`d;EHOYA$cJIped1 zkhundso!(Bsrq~~p~s3b8`Ccr^9O!Uj=wv91MfM3m?$^{#}9$x3M(lC8V@w{C+5rf!_)GWwW=5-k!d3-4n8Um z;47Bm(2QXkO(DhV53@9T#ERAnco705QIZD1c&HQ|k59i32_?hUYVK5CSFdYdUDTzw zuxI#PQB7+>(TzoVp4niPMb&4@0rbAb{I`Qm^45#~Al8(tq$IPFII0e(uEwKpAD&&H z!Uw3ix>?YvO0oP2Iwkx9k%w&O)d^N*>A*S8ButD=TGNesrfB) zE`_Jt#Wl=}@Hr%?jka2#@AS~^wnM}*mk4ajrpfLzP!Oe11} zjeF97?c?}nPlLcXlxPHn&HDcU{{T3<`FW@5o>bC&&M0-ulzWGqvE)Rg@KhLs0n zPT7r%N-~Z!&AUYii9Xu%SLoeaO*$sMBsSyI6l7>V7tsFzIki6~YE%CJ zgr$-_IFZWPk08U{O+M;o+XkG68z*O3r`w;ApP3$D{Ly(Oy3!I07=aIU7%3jz0IzT> z(EPAtH!5|R^k)|*(fYo(Z=u8RNJM~uLYg1zzFC-v>>M+nhnpXn=e^7H)tGE^&Uy@b`?(NmqK^wH_hG|nTrg(XyOze&8mOSAM24wMwfp9D7=p&>9q%AT92ca zTk9grTy?^H!}e4DakRzxb>!U-%TuZ}G3n}V4`w2uw&S5Sr{kNw4sICk=4i7<60ynh zHiP+=o__ORm~_a2gjroOqA44~#L%efD1IM*p4p}ugtG0*+WSv8igtTd-JYAR=~8K$ zilfTgkm95*HY57x$0jId9&H%1@CGyFeH*vX+;6tV z6O*phN<>s&cIp2B^OXAUpDy9jZ1nh|WoAwm(UDaT?-asYmm2 zD_E|y&o9-5*QRf8Utm>VWm0<(1%92YoaP(@7Va*a8IjqJ`G3vpr|Z!so%^d<0wc7b zs}JOXKPndr>>{~}E2dOk)Rpti>EiK^a#+9uB*jBFF zc;S{%IXC9b#4Hzzd5>7qKPoLG@~@FpHQb9!i_&W(hoK4w*$2HoRqIoVW@mR*lO(ds zXSV)D`GGZGC|k;l%2jDnMy}kslS+G6@yjxP?o{it!-7vx)GVI+OelhiRj2^ll5T6Z zT{Tf16W zTEz0&$0Gj#eAMJiP|zB7{ySz2wA^_(x;0N$1M}Eq6c@7 z&xa;F)ImyM^K5^bK4!gbLP+%MZ6{ClXIbRs>Q7o02Wr%k1v)JUahO>&B0|H`=`}ON zcjS`X>UwqO8_h7H0Z_!bVo9JTq*RXqzG*Y)%uPL(pIBrpJWI?PT3^m>EfC7nkXMId z4@%}nlo%RLeQ=1f^q4%gb@@qUXRG;@eK{}MmiB~E#9&mrR+Olv2Zs9!WwIt*+dx0v-kL?A)waulL$DVq#hXh1l*wGt_Qp0h&~mlZDTXm{*7kH0OE z4Ooh-*3(@wFx=1*6XM)_u!(TCo06!qyY&98Za0vU>IfwG6VtvQ5HXwz4^y^V6^_f7 z??>C)aq{=~%!rMgSw^{`62@uRJRpRi1HEg5hy)GMmwI@Mlma8pzi0zaopL5Xrm2VB z*@;0986im|_hW`TBG3})Q^=u_2MSR^>y~(w%Y?TLl(Bp&jaL9{JC57ryhY$C+ye8w$44kB4Q(TzI}xkTkjgl&`g&+`JqNP#@DoM<aYm5%Q>fb_W5kpUk;=CJ0AG>$ zMIZ_|j+N{%@PO7KNGPtPjSNd6^%M}kz;**7Ltr$DxViewKBdhTS5Ul#M=+T1gx~q%E0?M%5r1boL(ED@g#VtfqBat<832I61USWX{rM z5xBPpatSo)zCuM}w^3BPg;GWMikj20$V9WcLFu}D(Gtwn1!@OCDeaaMY1o8Q&Lm_n z(1E=ud2VqH0u)%TrRv8pmDk|_96{s0nwY6W)`_BkRcu3<2Rg*da+ zcn=(hHW9T;nTnKNG;M=zLP+m|5lK5E1GI<}h#WTtpXPALG~F#EDl^EB#F~&s-8*#f z$j6qf^GGuWNSO7!|R!vNU=#}d>^URF||FCnm?{{T8=mfI_4K3kUF*{7P| zbM)aQYf2XFght#luziM^HBJU+I9BV5tiwqO%rCQNCxkAfS~7wlc_lV?j!q3RHu( zOe9K~50Vf8|nW5Yb3FmlNwX% z$yEbmQacQ&i)FY+K;;}Pq;WI=0lh2RzDOwr6=oi3k0C`BBpTq5wzDN0%Z?<&ZVgB^ z{%^koV$KAWT@p72k_sA+gwWS~vx$a8Ub3FQrp|uFN$55iUl$TFi%A~!m1>(RpR_sw z^m|||>van$gwhi@W{vr54}jR5L2Q+y^h;PSEJH%TIqH<5||03?I8epzV_Y-LC(t-yN5c`2=F;&8+?%Ft6GPl7tJ8v{(V zwU9}BN0NNkr|2;W=0$0!YtNw|)KZ&*JVs;B5H4hM@Qs=L{{Zul+Vm5NJi7k?R%O^c zWP*E;d_{XxCSU^?W|2-bk2QIZ&o>P(nKe^y3vS$BfTd|q0bcn<09l;!9bTO;=uZD%ppV?4{7*`tG}|7%jya1Tuwq&1xzuQae*` z9J3T83zv^n1ZnCz-~8mBl?{>6Vh?*L*(Y7dHQT)pUmVEDcG+R87eO2356mllV6?t) zw3bI!{nYJB00n8`(2T^z3p=|=W;L_i6Z0EOzlCfx@I5AAjA_Sigje`dwZ}GLjPQqN zrxY0%n0%|ICY*Im8hM123_`J1+r$ELMm!^mEa!yJn;X$T=PjcAvI(Slf;72_fvB3Q z)gC9NXKA%}v3ai1#Bs`l6Z2R6`@Gl1-{X~{OrFRvz=W}a&sYQG@Jgs#W-lpcrL zxfx6zZpu&uPD;q%X;j#yWVMM(W+OJDNrTF5CYAH_o{`LT@eLmCQs@!5h?f>%Jj~302%| z01V6=8m)HfaGje2G1Igqp52~Mt0R>Jk9>?`iR5GuLvL_}b2HUcpoc{n5_v7-9 z%+2SYDA{UJO21u>HG=Do{9Y}HAAVB|pofsjjNJxcmlrmV5=7K~V4b$7wR`39fIQmg zGaa9RU-Oc%-f171UShGhazE3q3~N#Vjo7qj=|h)j;{#wjofaB{>`(c}@62mI&O2Qr z@}llFI+l~AYPRuQIRv*TeMnV76$Uqrc#z)I%ne3}V?1HIER5sAc|BM1LteV`u8Dka zk)*xS9V3ue;`H9UTAsy7KK*ixd5&GrHxn5Y!v6q0{{SyXnf#%34Vt~h%(r&4x{Y1IX^!ny=N~uezI*Z|)LP_`O>J>#t1MLn{bU*_ zE7xKVS`pVT)DfN(c{^P;yqNJx@_&%OJTzY~d9vH`xnPbBD~j7j(R4}QqK^>U3XX@Z zMoUFM1~hp%dYxI+ZCgIL)a~HYZT|p9p$QYYxVS89@PY9C)vtQfHYRrJwM1fk8{~~m z{{S&O_vSx2TdOs_nu|L(2A~RssO|9pf8e*yQ(7u!K(f%DGi=xM9{A{fWYTUewRO_k zJwiK!b{GK?Dv&`WfK;BNbJm;XI%ynv1e>yxh=Ui~THl*|xB1HW_WpfWJnUMiL ztaMf_#CVbK-!xsJ417FY9ma0ZmI%Hz(L9@@dB@J0SC>C0byis}CHmFCnTr_XKWrVh zLZ@Ir@Et3fY#LFLVi4Syo{p^QXS2vZH-9#K$N636-EZ>G$$En|owebE)G8UGbToBB zN%(7CyRCSGOqQdw29`$4kE#Y!;RT<5SZU4W+q-#u!*ev=X7da};yETIn50al)SlZF z+iz-ZnHo7zqT`=I;TxCK{{Wr3x@f*qx6`6p8@rerl8xGuA))ppQ2SPynV&7fgR_o9 zj8S-(n;${*cjex(`Zn2<%vwyz^~haFke6Vg_T7+z3K6jBm|2L9KQ^h4%xpQam+~|o zLj0lBui%0<)isN8aq3MOSt2n=2wuAyQoRoShf}7}iH1shd9UZQm7($C0@<*Jt9d>gi;Ww6s#XUx4 zt2Y?_AXgM7ZT1XH?J}7_{jB%xXfv9_ZWnCh+#IJ=4oL3qbL*wy?Dc!U&t#7NYu!HHFG6HgEpj=rDgdhZ5Juh= z%zQEYxY^X{;By`+p<(>+^9$-)ev@x@k}d416nvph5pp|Fe_pvPQaMiU^G^~@4ovU! z*T^=Xlm7skN#(@UWxuzQ8*_Ifs0>L2?rL~1!(VX9E1PIw;0}`(ei?A4-g4HV^3H`Ox2!2AOq9!S{LDpofGfDA z22-0D0@$3#lk=O+KbX4YcQN^~Co$dM8H&b)gA7#w8UxX*^p4q~o^KG-ei(4>Ua|iG zIB}%St82RVowa!$OPfn^6mm$_C8lCY74}nKo@{iwYnKpmH+jrjLO$!sW{qwFBVe!Z~k(7 z^3PV)e3zx^-dTa9Yi%1!iIF;?jd_xvGC|wFTIMFJFQUU=X?7g4NJw;ipZP|YmfE$3 zldMZK-86R+gUoW|i$Tk&s_(HsMsr%J_=jzSiTs=43S*v7k4e$I=?&(&V)N*ad>;LX z<{XI$_(wsxsbkYB8A%)(pFH7&fQccR~ZP(Z(;kTAVTNHGKyr8oF^ z_Uvm)W#IgoT&VvkI#Ba-stDl)^x;Ig@ryi$g3rP5&SbRJ_C%{ax+xT zzdxq)RJuo$SIU-=vJ2S(iGd);ED}-cP3yU$^%bsVVVIm~x;Vm8$+suBc@FCL&Kerp z>M<3P14fYiEJsR;jmKhgh|ATpe!E6#mi|uuMd}OZJBQMplT4S>^qilCE7g zTmF1$T6dOp=~_E|7_va|)C0%>d3S14Vbj~bIbd_d4(DkMfHh%rcwg_h ze{w&&@cUhT^9%AhJKB6GzyH+q)|5+F&S6r_j9ozR>Pf{@dt^H$#0r`<7wrc zCT&h)tt%rUAfe?U8xL{qlNp9K!45Z=Xzy{ZdN5UaUJ)VUD??u%ErkiJO+EwhlCb=aeN)n$LJ$u)EvjAneQEby5 z2Zw83N4D~DHZ})~vWYnwo~#K!aj#75J3A8s(BLCsqj;^GTCE}NZVxc#13yh(JTh9GOej}w6?85=_d92{qq1~ z;N8Z<9~kV&e=~2btUSJ!QmIBUvv3=2u_u2H*`(JWv{Aas=0> ze8L$B8$6bB46Gq7Z0)5la(RC7IE5o%Pe$oojWS|;*<+6>2HtC?`C?x#YBB5V42rS| zSORK5H6Yf5wp~27HgaX0WE9Ul;rX4f>Xwsvdd#S`Br8z-K}e_zw&tDx0Ipy3hYVpo z>?`uK^CmCKO;NndXKNMB+>w}gPKv;z9m1_a2X4PdOv8+gyBs+s9!cJ{=1ULG4>Vfa z>Goe!d-;Aifl|h_EJ*`kXm;>4_scWpIb58&$wE7at$CyJYgqC=k1n_6SYx80ZZUjs zzfYs-_RN3G94v4^=Z%-oo?F!6)f_LLZl{KMB>wMlKr6q*b{#urRC32JGS#Tl@bW_W z+sVFNy_6jXS%xsco-#Ez9R_E^6b~ZgX#pI==bInPi~WCAlR$!!T@uWt9C2-yR z)N~c8?OfQ1m12# z@?Mdo=__O8ncC)Aky%8oUPKB4Rt0R2{I9f`{KFb8_0yv( z2If#OsdhbuHw)h*;~uVdeIPu8>0ijGAkp-o_7_I>JBRg5ylBl@7VF?eK49iV9ONIQcj4oE2Ks3eYGY=e}cQ%|@P!MT|~1TKuK_k@E+dI9#V+`Ce_Tw52-lm^lz)KNSr{TVdilc>4^Qn2-}FZpv>{KmV7Q`CbxqXve|58b6aM{+vvUH8F@PvV`Mqmbp<;$QQV zUzS&1O}~dxka2Sw%!NfbkVR|s=4rz$E^)=f8ZTi_i`FhS6mN*>68oHvAON0wj zY2!idOm#9ChR&}Bs$yIvj}J3Q*L*KxEED1ZtHpr#`g2SV5p5d6CsIl8HHr0W)v<+4 za?E+rdJ1j09e$j~%0#73L~?PRpPnC@-eA=1e8qIObF+GKu`CT&?HYC4ZL_BA{WM5+ zxU|AU)QkMQ{{Wnh*0e2B8*M`2UfG_H%b~BsQby#C)h9L?uvaHltL%Xt;Qcf5wx?_6 z%RzAy38HljN|iJxs3(4(F8QxG$5&HwhQvMJ@-y<+L)JCjO5WjFu8~22DFH_y3sb~) zK0k(8ql9uAdY;QM8+Bw~nxB?7{#b%*%WG5@5LQI^L8+$TZMdfU*D-rbOmUZIpGYze zTfT1c2c6o|QGMnXRz`Vajy514g!Ec%E~NVoARsk&03ql zX7w%5g*-{2-iPS~(=cQV&AlgQY4}B!1^H#6+G?7&qpVyk776jn%-m>zj$8i#W=ARL z-JcH@@2<4ZFy3qOE{o-;>7`roR=Ajc=~Q?Q=fC+`smy>F6Uni#~HWP`evi1dHY2d7tklIY6>1=tm>nw2XCXmX3ivLjdgn- z&DD6(viZ}@x-iwWk$%V&{4|ej;m~D04 z1z7D>Rtwj46atyG(Z`Pyr;ewD(RlafZir#An_Kerz|)`z(oBdc9F!fw-lBu<_sw=w z;qrGl0GPDn{&0^=o!?gT1^)m)R#!k|Wgsw&R8Z~Ky=j){WyDD?Mm;oPD-5^(a+~XS zo>!K~MUAGtyPSX&bOausEx+2z^;rNE%TX%b`SWS!Elcw6OyTAIRy3Z~K$&FhkIT05EK%UzUHKK5%a{4PyGw4y_Q_MPO(&cqQ^*C9HO}42t*woNwW*LmV9ISW_P1C<4 zJYI6sG`}QiP@;WZo_qOI?auDoEqD7PYK?&D)STCACq{#Tto_)yzN-Ah@=SC2E(;qN zc}Z?oks|$-19S5K05h05@|xM#>G5&yUc>nlX*I8swD?LlHAYgBZor2$uhJ?%8fLs6 zH*uoCZr(BZ!{;;Q`{38gex(zzRyzqD03WYjdvN0umRWqu$iRXdW^ zBP^b*fx^UV21r}=r}CT33FaLF(qAY|5}SA&4!yG;Mvt^V<}5! z5&r-=2l=)BKc7qdtkOr-@1<(rPN1r#Xb1$*?LphF!@g_vc?NG!Cx5Ec&M|qU-}8&?yl@+=L_MzvA7g_V1l3Hm2 zht;f8?aBz*ob?01cy-?~430s&ox{M$HU9w2T|df^q;{T-ly=epr4#@=74bW5Psc9O zVURmGd2z_@1L_+&^ncB7EWtg*2KFdd*D8jFRU({!v-NG8T-tG%Te8q<}@0of7AEY+sJMJDs=C3(w-ebKMf0nv=mqxL0 zH4Rc&*uhLcQVG&KqD0(s)SH0w`$bp zW->fCCr=wR{KE4`=45_b{M2tSd2>%IqDn=i-iWA`fTKugXb3xx0rsn!&kPxH2O~TP z+&<~@wyN5^NvNjq$rx0j>&R5sYSdPg%!uxGbwYBz)5#|N69kv@D-~AatJkqVt9+E= zG44~08`=4X`P=4wKh9S=?y;<0J+s=t(AY-9`^cJss()vxBEL!Pnw)dIySt2Wv9t1) z?o_$BmRLatnN>YSEB<3U7#eygM}#Hhq+mrE_-blM-{+Fyrpu&480}9hij{6$c;jdW z)se(xGq=KbO4q->Af*nW)V$$MIZ%`ADZjBMxP(a&@Z1)8SX3Rz{{U|aBWQsdk}gGf zC|`=c_4(y&ircmIB&7ST1u4*1CJ`l)%(mpD2jO8&x1$cj=Y>I~J4CjnD5@`u~({CS;%50XXOc%d?OL@9K zDC-mIS1}oQTfYFiZb+f}2XFH_zR(1XomXgY$@MpqwC2|Crt?pkZREYwujGuXA`*!i z*eO4<2HTNOmUDy>D06jKHJ$<85c+qMbx3ua2yT^cBZ;Qt$$*Yk1l5aDwL1Hc|mJil+C`Bh5ZT6!R&@-F8^rn%953I6~%kFLjeVE$UTkwwzodYoB? z;y@OZ`VLvF$7hHmwY0+-eunBkOTV$v7VA*s6{(QA8c-0xP@k4)wK%9+=`fiG#C~Y} z`O!S1quzOc%Njj}-m`Zks`nE@9C&gy9Y=4A<|)=1Z8wN5-(b`nQQ>EQ^N!v_*5~q` zr+w!EB5Bu*jRm7I9G8g<#ed4>wRaTyGjWdN8V;8+jODZ1yy>t0U4BsLdT*J0!)FlG zEaCK`jS*DIA`gR#3Mn9crYqOtBfd{hh;uyLytzjY2oK9`PxH@R^RJoTS5gXHPO+t> zD;lFVz*oY(b7vUvi!B4Qc*RSa3-dGb?(*(gHQhegtTB#KDjJHDx%pJ&VX5IQx;`B_ z;VfJ7v(4Hrg|5RVog$UA=-7!p2IC@Ze#z=6d-m;I+G5HkDZ5*z86#mJ*R|uSYgZb+ zi7bk4rBkG}_i2PY>@rWjD|sF|(3 zdzlG}LRbPps2w}yBOiurIq=GQr8sJG5Kk++QVlaorsfV)zJ z=Ee@Pex$NE_^;K*Q-iB<4VtFNV1 zBn_*+#-GOlkqwibyw>2#(z_avS%%%Hd*)37;{u4#?Uv$Twzg+x5W`$Vn=W=)oWa)%P4g*kz-3&{OMnTeVkK1%(Ny z=synmT+KDfA3p|gX~{sXd)EXDR7JOMA+{c<-PwqvZa2$FM-8J4uF@06cJq zCmBU(F^Okb#Y!&Q@38~=;3=79+8vm&W|wCwOLhjIJgm%eaiy1sk}Fk}CF0R9$6C-H zr2ha+FcrIeXU4@ABz6c%RUC;7debdCwvCoG!7LGbQnctYQ54IGGmI-WB#nx_MSbC$m~oiN~rI*^~Yh&#yJ(8{;yQGe~gn#@7H{V+m<#=V%4u=jjhrCBd`Qi z?Y`MbDFjJY4>syH%&4-mvk_M6cK6>bi0)%(eRItB_s&Jd!xPZ%K>q+geXzvQWM$l& z=rG>u@<(%F&813EZ(hFNLCD>jK(KawcjdO$wCi-#uhvzK3XmivLE5{ipfwprS<#^G zwE2xbuJU!qlCIG&;+|V=O%X)UN)$!UWBal;Bf_-#<#T}Q?)18wFJk`y64*%(=&2@9 z+*jjfs)eszx@DLR>|MrOq9NrUogb50Po4C?uj$f%rG+e|H>-Fb^ZDjZs}PRybXg=b zi!aZAEqO0gve(9objt%Pl>xrU@HvEX8EjofDDY0-c*~}0USG0=Y2KWAj7p@K+mvJh z^!wB2nDaHbdfWg?JH1aw^Ih(S>VOGVLqj$!r=Li z+!+K-!tNCSKHV7YL$>t!fO9CyJzPCTGtuK7cx!!H5k8$#hDNPGAdb}o!k>;pIVr)O zi;3~S=MUs0nvI+JyUP2DnI(uC@!x&CE18&XtyxhY6$ysUwa>Kmcxf6HUGF$7UoWwD3a-WT|Mu+s3^zXeFgt?Mw)7y;IGA?fHkY=W%Pnh#mm{F>EJ_xPKr8LG*cPhrWY zDHtQfe{0geHT==7{$Ku9Mfp(o20^VzE-yp;L^>6bh-y@PL@wP$M|`dmF+2m4pu?J3 zXXO0fZ6Wm=hPRmq2iP?QNIQK0036#4v^RQDJ*+(r_x^Fm&RTYe-f*+Al6^d_Oo+Ag z)E=w`;Cto|=V+%EtP@4ymp1nn(tuEjQ|;H=Z`YYH$RsQ|l}KiaYlde)&IMVizT|k} zl&D%x&$<5q=N^COHT93k4HWrK*UQ>Qr(-)AB>L za>p(q`hQwU`IGtQrv7tzieENqK3}uYCR=o^y|E%P=s_*G>eU@7vX7?+HkvT{c1C?p zOutvzZ_r=)!(YrOb*mfg3+mHB6y;_~c-AgzDK%U9x*Ba?pwn4GCY>fiBRYM3srshzU0~g(sFZ*vknjc^@7lV0w-5(o4ZR z^>!Vbs511vVE+J|R`blCmS32<7n@s>T0?spTsaj1Bw&wD+bKWCGxbp7jXR9P(_#9T z`FE$q`Ca+hsd-{>Q%&;)waY@496|L9s_aVs!Jx104!Nesjv`fb^8PW5xJ%gl$>n>E zJ}EUTgr=W!DfA@c@bX@uc+k_AhE70(PF|l*W;mZ2etZ5#uCZwTdh*0fw@3?KM5-t@ z1TwFEwn0+B`N0X#?t;qT+$G9{EqTY@At z2XzG2Jh`ObTueK1oV6cdNO3F3n+{ry_xk7!m->KU*2Qh%4>i+;LF-Vcs^WpOuu##N|T22Xc2cse7 z8z~h85xof?NT;?_r_JMvE_7wU0F&tr4W#ogkf!rSnnY8@Y}OisDd^Vbu*d=0q);;o z5_ZjxfC#Ya^)WFUa!&sMCjS621Np}P06_BvtgCx-Z5mr#MzxH^3Vd8vfDUBU$f;l# zeU3xMh&1MQR)TpC5#;o{L#JulvgrO`yh}?v%eJ_b$kbASYM^+X$BEv6Wteh_dR(s2 z(f(9FGCaAa&E`Kl!R5;arQOB(jc$cW_@yJ6q3zm~$0WEz9XR60VfxYe!RGrvBl&*o z%sR}iz{VhoF|)`*Q3X63t!wb_T-jsJBL`2~SY;z`4F3R}YVyF+Jf8-qczro_CYI__ zHX#SXpG5^n&pFKS0NXtgmOo6NH~#?6N$XPHJ)PhUEvwBdwN{*V0Ye%dqNG-*uG?ll zpC=rvqn$Z=xVfdjl@~X+I%&P~p_boPvj*Y@Q@=1kF_F>HlmkQ4Zkd^%G@7X4qz_R6 zo@MfXm#(ySRu-B}0z=1(BNSgzO?Rf<508n>mXA#n3J#-L+G98YM*$(vVH2QHpgFXDW^}Ow@d1FA4lG-Wn;wDC4 zvc^*$^xV_0$l`n4HWto5{(trwp1$+fhh|Elckwv08i8T1{&)#IS*Y4g;3Qjim zw6{c2N-BIcpeJKb9=~fa{{Sm{@^fLtIr4sqf6g)K3!{EsF1>WTZZGa-bv?=@5m~-v zTA8=(=xuDZnY}dmEBr8u!{3;-lMq zJ*_IT*P_f0Vr}}>=YKeAnqGmV&2M4#+h)_CHwuZ#(UvviRq8>Z9ey9DIn27L$ z%TmELlvh&EFQp`YnhI7z2wq%iQV!MI#)mPYL>_EvPBTxL{Hf&0{{S>>?)-xt$xEQJ z6eXxCpUvY=--UB;qtC$|oE*7{mGWkv^N*kNj(%wTwDS{cTD9S`w@KsY5GCQdLt21) zo`-Qtcy`Xos~MyL4&ZA>SXWoy-fi<-URm=-on@%FST%U0juq&vVLxP7xmFpO+HnAE z;L1ibcqg2H=O488^BD6UpBoD)*S2MN@?-hPKmXN*{#$;1 z>iS%lW6w5{zzT3i5xpIW+zNwJO!Dl4F#1cwXMv9C{=aW~`MESdRON4^!UN106_E0# z!)>dSN~YrY@|MB$UyyXhvqL(STUcWj@sI!pooIX0rE)O<7cLfgvVBV1>j1-SffNp0 zx`Dq#nKR_vM;9m0-h1-&E@HTjMmG;7B<9qh>NwNBVVyaVw;zUzGSgj!?IcezTT3(8 zgI*?%=sF6Y5t~gGe+cg8$1fkIPnP`o{{T4!soLsLT4|9bu8R||D`)@()D!lPL$Uk! z>zkSCd|iglM6nr0-%4OuW@@MEZ=LjPo#s z2&!&2+v&{wTB&k%dW>fGeHZ14ZT%Q+;e>iE@P*`BN~lg7UJ- z5Ntg2Q&_EJcbSq8hl?{cC;;dyxAxaEA&AeK*BIF;)cnt*T3O5l;_Hijh}a)}&&=jz zw7e0wAHX2)`J>D}Xm~lg8uKBDtwMp*tw&9(OrAM-oZRdhX*_#b*EJdDH<9yHHR1(H zH9a@3ZFIV5yG$4>o9a*b!rv|2`HRixQPjBvw~UTwpm*3B*Ln=c)ZlcD@8$mh%H2W8^Ch*Sp7JVyK|bT+`f~;t zVtTjb*G9H{rTM+&zsqQ}iSN9%cM9Jx!jY_%Q__NzQ(nJ!%QG>NkCAD^t0SA`PbXg6 zc}C9aV5Z|zl&{z$iXc6YP<%XojM_t2w&>PkIVExAnt4acm;V5ny3^|S5w*UL1CNW1 z3)Fvhg1>p_21DvL(sGz=UwHXb%Jv!)qen?4JXVS*LWA(C_1mWV;25|IY&9Fa!~SwJ z^S{e7Y0c#;ND_TPWv#`+(W%62fbG3{`w9%n&4-L^?J;WwJsa{yFH6e$e9M;*;%v$j|x3`|UabuKAzg zzMVmq;&lX~kPQ$JK9lr#QrtQTWZdlRxK4BG2g!g0cAKRv(aEBw=Y=5cMPNf}#BarP)o;&$Nc_r1E zib_%`7$7I0+Mlm6b+G}|2&5>hrt@JnlHS`bt_vIcAba=_K76- z{u$Tdz%hz;z8HYrn?w0Ct5{h`jIjyy%y>UeU?XM^khV87NDThCm)!ZzwDvY)h1N}mD0 zwrsyKYox)>^gqt$z%Y!lW;z z4$Sraucz<&Gao$odARz#ruKcE3)|US#pSII6@t+mJirR_ZH+7RQ`gDGZF$NO@5qV0(Nkt9wPO*wWzf18s^K(s<5K1J%6_(v>y?#ZeOc1 z#v>84xy7s)#RNZ;G|3&_^@6llY4M>OkVgCT_=P^~5XMQ}j39Cw3SL)8bPY=H%ai{A zac?gu!9%*pDhJX04rS=_7|VpZ-BypoDUX|UD^E1(_g-I@k|Rr1;CJE(BlTr^ydqL_ zbh);tuzp8*d3?2|-9T6|p;5?Ef}3sc)}A?$h8!_-bfooo$Nc2I=C2l#nopF07nfwC zw?eUiIZ*a3`l>TgtC1#ym69W?^J`4&q(;1&rR+CfXJ`DWe z@)w@``*$bi1@r>u+Ew<;FyJdV^~aGkrqlH;O3to>gJG4yK)|HvSn- zJTS^AxH!+Mp0ED^IQ6XBYc^L_QrJlmw7QT$WnYF!nDW}bw&0WuaZA3 z?Y%~g!Z)Y(BO9$+n-2`ml!P|NyUk?L@g5kkuRVTXS$RU?{DY&aYFfgwo6F#)MT$@N z%p;*8hV5EcVO)UM3@3zcT6K8ii(vC@Ys$L6o1%_wR_a)xHId|US(pL*i?Af_Pi(@} z3Fa;iEnf#Ws`&%**)D9-9Rh#e3PdG#`%ZdLccnMUPZf=uu}8+-F<&y@x0Lnv^7on& z3)yY!!fSM^#;;9@9y@*2&15l=FH@1Mfy6E>k5jUe{@w39n<_onh=}2o(6g2Je(w*X zGa(}l-9LmfN${7OH2(lN>z-$_gYznRR&QP?B8l7KMP~qUA7_ab-@nf&%d6wr-{Zv? z$9LQp9$C>XtYn%CC}MU}R!R^_G#!4`MSMnMWWpjX(rPsvV}zphI|($;BVXLAIG*q& zoB&iFQtZOM9BO*~G|OQQI9m)5F&;@r<=&qM<%X4SHp>)lvP#ZP3H_?m@bTL=I&33P z9ogZ{BRh-1yx(O10G+;cxz>EMB54*(IjzgNQ0yovLAW(1(HOkWbN)#!Mxn=X0ES*Dy^r(v%kp_IkDdIU?F(Oel1&A9fn2(4@0yBc)L@4=OaCoBZx#Q65-^XJamZjFECT^{Sx(`Qu%6auMI7!@=HXnIi8 zZ$q22t)aplA&l{zxjyCmjPu36o4+aN*L7)?ucEh-*5r@?Spg~>^nbH z482d9zazgXwA-C(9saFe$m~*$to7jFYIo$`0eeq={Q?mp(OU<`*bI# zA+Y>2BPbaoZMcUQC*_y?=O&Y<`5dEJgjUpHqDGVfRSy&RjKPMMvVtAvl8;B_jDf<1 zUxlCI8}_N#Z=D#~*qMPxULWx6|7l7C>2iN)RKQ*7CcG)n*CZejhm2d=)$I*@&wXt4|)=5 zQ2?!XBiMAw1_cI-$d6BpNOm3ocAyxh)owxw4Z0ADKs!^dPxQo;^HGhS9xKE(TkUoG z@;uRLya2%+TnZh5#O#YI%cpwMB<#Q-6f_%D;1gs;r<$BXG)Unr7^tN-tuXO5%-1B> z%RHdFW^w`IiZ?x2kM^>u%V!Hyv1LAY(B8!@?_o+U!iObADj4i{B#-kwH_Tl=qUA_| z5*sGoQqsLyN<998P)N=_wx`I{Wjf8=e6XQ!ss8{iH0^)Rmt)JC9mUnPk&TS<`owcu z?mJSadRP3Kc=Orh2Pd4?>3H`Kc-Q{`AvFD8Od2nit(xP^L=`U)sH)du)ul~3e@f;S z33UycX`FHbTfS@jk@6Ip-?N}s#t9DlkjuFrDs=jDe=ssb&A+uWh)h?_ z^z8ot^NZeDk_)KqZLV%_9yVytI*{OO0Ro>YowEWwRkFjhj84zbtwFWF$xkx=l8QFB zyMkcela1-iYLDxg`eWh>Jl&k@S07h5?52a~i|@_v%XQYInTdE6-ZejDDWd`4K_BPW zFtvY6sL~n2TrbXd^30mfuNJ-J4I=X9!oo;NX(HyYG<HmbjBwhl=GbjcBE3l3r2ZT4wr}*r-Hf~5Vbb@4l9x)KIfUEVEB4&^D(zbLh2xUw2-Ubd$+ zp`wBWYN!K|C%NK00j5_yUmqnsr&6cXdN-XkZz$=y&F`359t5{bPfQxTuDcY9qpAI- z+z%YKIHfUR*7%+*t@+EZ>I8&V z%-&(J(sd0*G^wQHm4c*9PcahMsmXrdU4xECHJL5esro+u;*T|ZD&-u6cA!lReOFt#~3SjqIiY&gF z0Ng+$zjY}QkeUKTYA7l@@0hW{C~oX@`p^ZJ#(MRv`UUj*J=-aGBr16BIRituG^f8z z%Yfo{I(+^tc!F1XtjHq}Ko6w6Xb+8hWrq+hN-=eLriIc5qn*j>Kp6uNQ4>sJD}yY8 z=0faC09V44`|`>S??97ZF+zE7BY*%sfyxdr&L@Q%qwALT@w;3Asa{N@W@f=WJWVpl zkZWFMn^5}|KuKB-v>gCBA&dmZXR1+TjdYVs9>i1aZcTE~Ymzvr0Ft$|oMSv#w&Wdv zJ;=#d5|YleT|!AY$vLLPuZj1}e3hDI>^u+YoM{ueY(x4N!UiHl$y8$BH z-5#I<$tLpB!^TTwR|L^bdv*YI`?Fh&aE;yg)Cmoe`~5MS{Ss)oOIW(_85wB2f3{`u4ifGMx91|QIq5EF=}T}ypra58OwJy z9w+r?^BmoAHo;}H^^ZAFtb=4`AcOChz?O6hUp2W^98W%E7c0;JdU)lAOC*|kgj0a# zfD%P0K=(Nqh89=LaRf+jraq;^5UUt8>5{JH1eRH&>l3tf07-QFA*rNw+u`4?LSos2 zNd~QY=_5l>WY`kjPrY(**``~u`ju})l3CYwru}+XCo5I=Op&s!0rV`_gGm;PSj=#+fw{8KRYy^fF>H=HW15WB z6j8;LZ(V@-;Q@@zBqHQ1mExtSO>35d&cvrqO*cl0k-asTnQP+)k zAFCh(Qy-mL0MUmmKFt?wpAzt(Bbn8Kmb^~DAD7XSW>#HJ(6Z-h_y>Oq*hs6 z766e-dtgMO6Z=cGFvK@#J~?1ai3;#tBr}M(@db9K^{zyKksD4gqAEmeXtgG**kmHa0HG{? zgmH&q>K)W|ruk(O#0pFdhUF+nBT5nAN6RUm?Q;jBUbo`T`UwkEeU|O;@BO)DGl;Oq ze8X-bxp?iLnsO(nxc<2)a&E^f3ezN?P>KmFxvw6dPD7I(sb#5Xq!GE>aZhUHptC!t zx_Ls9cUB+<>(hR@Ak{6Ci+F?1m z*hI6|eaw{E2lCW!fRGe`a9qSp2?=3p0&a%uMr(2JiIw&GnEFZ zM$^q)@{L|Y%YZxgr7M-UPBh;@=^DBj)B-czw_3ILG0Bp)S?cX3n zMnX#>hD44tG`v0o#CD~BhGUpDlWcnWF6Nc4S{#@}MJt9Cmb^&bj4C=G z3S{n^xNQ>lVSj%@7=cm-+w|KH8h9xe4a>r(ooJ$pRCW2~XLel>%XV5-xivJ~eT6YF z;&9J3I|=@~e2P>k4Z4pEw_xN6T5Rsdc9~F!!ET%N>-Tob3|eEkQJYT}4y>%DTrCvW zz;(yz8@5CyEv7Q@SOUu38no@xY_E;HN|WC$>o@*RyIZJY4PEGV2e)d|Eyh4L&zP|L zEArP<*1s_THZt2t+$z>gXiojAN5$N9!8}}M!)}KpiK6#iJIPo2G8FR_iA^zxWw=DE zLfd_+SK;>kp1FxT>K>CGJ`PFMhn6CM$qceXbqf~a@kjxy4T~>YugaN66*>67d9<0& zlRU5bFwC-QGF(S3Ld4&*)Bpglj{g9TUmVA)U*$u|Jo)7bBGeC=EzlXQ)`58L)S)EQ z0bbp5d>nhYSzzL&Hm&l8rRLG2Y7K2Qqr{*Z+Q_7W4|V7T4g zn8IPp&5#m+zw?fbBEFwv11q#`M)s?nMo>0R`A>& zyJlVt`%{TM5XtHfihnV`EF#tB;faH@4dTL3xW^M$~+-Zr4iOz6ga|Z)LCR z%zqb$n}?fM9DLZGx8&Vt%F_)uU$d6lYH#W(UFor*{6DS{s0D;IF`puqS=+lfSef2U zz8$)gO|st*Lw01)ev|(I&N==^S$Q8%Z_f|TSV+_C6kOU`NIuzJ)z~*p>Bhh75zuCz zQ>gI{&Z|+XFgB2B9(C0}=Oh0BG9>f2no0d1rTkWQs6TZKXn%Ja4Tk20k5=8jMp)wk z=Hh2F%N{xNNq;>w{cF#8TrOh{IAyh>uGg&phVAc0uM<-?#!pK@BU-1WXn<|v$&3JpK^cBG=I)p=~_jg{Js3t zfZ5+$a<}zLa!2eIM5f#9cInguQIUv@nzH%_6(fH7zCi2lubfOhR(nTePj2II-IPpvsWQ|2Gb-^ykDwa_&W@wK(P>Kd;rI3bxwscuon zCtm|iw)nb(PFYFTOE;69pEwbGqxqlte?OD82^!G)_O5wG^rpvp9rixipQg=x+D|BImd`hBEKvy>}O9GrQI`;LNzYeT+nzcIo$MlDGL zggj63SMzY+-AUySIzu#faF<$4g&JsqJb5h##svZK%v`y#>W0md#$-21zdF2=4u%`^ zKl1(|eP)$6R?MN3j=}1*I|0_Yq?QAW`8YVUj1uJd=3NpWG+o1~=&*~+2%N3Oq8>6t zjno0T_t_gSl&gB6UskR)KaQz zU$nL4zvT?h89Yok%_mPm_Sc*&e53iTc^Eo~viisXt$GvV@d}#dQ;eW) zEg*>xQvv*)(e)iG%=(|@pPdrtP1E(36ROddksF{;MJj9dk6}U3=Fc9u0Y$`?00!@_ zys4%ym3*mZ`Gu|st~C2}lG+0jsF@TurNy3uXL1&u+NP8_2w^qGcMnh5xduFH8lRDL z4>4QAW9BI#m(4d;s?oyIRpCY)lpy|L+<*z`u*vPT2_J*=KrBZy0`4{l<4u9%Y?X@bt4RRNPp)#KQgX0Eq>F?0D$ z2E)~IXr{f@dJcxaPIR-u062QO{T4}TC1;cC&m~;jA0+4wC=ckHQs|p*VN!mY*EtN) z^*K7o2yT}7SMvVP^8-ZJbT2T3eLCz%=^g77@zj=6wa^kQ;;FeyUA?4F)G;nnEoIXkFg8Ai+w%RuvYlzjPVs9b4t z=<{lK@Y>Ewv4Bk@fU+Y}g-JE9+Na)VhC1dqa545|gtvZ$HGC4mUsC`w)#Jse7)wI$qH((e2U0O+9G&WsY+I-uTl8pW|;zmlcxgg zKUBZxB(LPsKP9xkp-a*S{sDP8B9^=%W&*FI4ZtJrFjqbm_s;a(yp#AWkGQR!6a%Jw_q2r6e`~I%-rXIQ>TWP!#C9x{{T44t6q5* z&N^4-b=|DjR*7(7Vo{hDYKqhY_G?{+-RY4Uh=L{D?eI^+kDK3rKfgXLJo)AgCr`7A zNT9TNX*I~Ctn(4}fFgrowLTN`G{@~7NY5`zftMlA&F_Enj(7G~I?lN#nIbQ4u?3pt z&-ZH4QGO9ZRJBVrD_%9|b1Si6Cn}RHIir9QUl)19QNGtLJjbNo`UD*eT$<0Rrx#3ItlW2zjqg- ze*|wFz^6EF2&isD;-WPOpdQs395}p5aJ&5u9C@*B_$$o!@n{ojpOhb)D$l5Cj>~DN zM@C}HUIgv~#_K{nKG3P#CNR~5&D3YWaL)QYL&{!evD9^4Cht!rV3H{9np4xK#q#$U zK&Km3QkA?j%>MwF^U3BtQp(hDSZ-vNIs@@@H2`>!8^9WKh%! zH*wd09gd4UhQU3puJvs8T{h~^NAjhx(x1}P?JUHPPldU0B&!a`melG#jM!j2TbGU0 zgOu?+d-A`?SN?C;{=Mc2if$+QNK+`O-r(n+^UsQte_CU?^LfA_XeA0#$d}G9#2Py9CG?kC+yFYG?V3z zDd_rD+JsoFVwIw$De6b+k-vd%`5w%f;IioZS|bsl{G;>cs{a6(TDGC6viwur%+Qt} z6*(Rvo&Fkq*^8Sv2H9xI0^U<(^7&%=Jzmx|H?|U_$YoH%s=$h=*n&k!BYydIEk}r5 zhmJ&jEbIPpZ}XmCBYtdHdDG0&6oz}kE+jiGC#tz&;Z~{nX66{<%^C5S zD@ub-{{SzQ1G3>aV+`Xcd5*K?Eg#D_P(;wT)yJt8-vdSpRC4Y*cdyGe+Pw#Z$YB>!xb*%c31o+Um~!Iy9eGk%AsI>~^h3%P!Ku!Zbsr*W&5OrXFJR z-QI)ey)(%%>$iHXx?ILC9m<7b??3=w+5@RO0(Sd5?C{_ckUbq{iZhApPgef`oY^;) zItGR2ojc)uGWJ^3(Y_^J!S(~LZnc==MLGFyat~Gi0GxOH>eGKXbSU)e(o*^r2`VuK zxl)QnJ0Be8vg7cjT%EQYoFa=O{K@>#(*FP`CAy!@CTRU@c+~=}d2m9iE68;lABSz5 zvCZx+PXuVS>SRcMWq-~t`KD{nHr(l@ne8TySyc}}RD;Xs+wROQb`S-uU<^0r_MiF4 z3w=Y(o^ZX=>}D4Bwt^=Cko-<#6sKD3eu|oAnB<~j9X#~5ZRh@9{K50LlnfR(Z9b)= z#Wz2xa%D$qQ*Dh+Is;Mdn>{vSYA2&!C>V+lLH_`i)8+5_vmfq0yZzz*_x<(L{u}Lo zlbbtl@C*Oe>KcZhXz1~3c4;vz3I{>AbK&zDjq>y;(mHAJ?#;j`6{)2G zr?EL%;s%;yAwEw`i%pwOjy*I3>4ZNJAGOr`Z<(GK2y*a))#iS4*Y7l&3GTG-hUye| zJ`2PXxD=@Uc?jgGaFk>e`De*`mB*QNyL;V7P~Ow$e%q#&22DcDk{F((eJB#WH0$V{#Xv)wR00Cd=+b-H7ohJ#&J^3~HZF%N9 zolyw#=~+nH{qEc}_3nJcjerE{E|IJb5Es0`&yCVShPc$(c)g$C{b6k2va zMnq(-olZ<9I|s~Pp1y3cwXu%EA|#Q`T2N|5M&N(4_UbbuK?6DYJ53%a)8^YBul|oZ zgi$!QaK)dC0k-w!)7!^4d4x&fw)x|UD=c-Ji5ThjR_0ffkA>Ezz5b7EiPOd+*_?tr zi`z7>%2TUDZE>sdx3?qX5t@^|PR5{h`?9cQj978;_J|Uv)Zdl1ntzd^7TP>4ku;TQ zA7&s|a(-EWW@ou|x}9N>+4NSSaBppvaXIwfg+)j;{>;dhkWMz&Ec|139=bA4{5RmeqU+zx3`W8ArQc- zC^--S0=4Qp_05bx$H~*{Wdpn8uRH#2`H8J=V$z)=jGf*!B1A*m+cC~gDJBt&$8+Zm z6U$nMn{Um`%OeR`SE~|h{7z)cRpIQ@Jfj}L`oE>{@`sU()4vWDs-nLSRO9$%+DkAe zxxmwlmhXzcFFc>-U(UT+Un==>-HT6g%Hr#)MITN_r8n48q~@cYMi_Q+@LP(2~U)#{HR@g~*oFWB8o6HNr=JV=>x5-C2R5VmnY*YULwND`veM4q0%& zAUxZ5{vo=!loDH+Ze)^8di=9}p@#^!tiu6_aE@%_^4nL@e1{L|dF|q#S(1VlkpnC% z(76X{?eK%tH%|>bh0;=U^hymixa(e=q+4Ev>wR<=AvBHAHj88E2M7AT*WuiS9u90PThZpQ+R2yt3W%Z{}~A z?=_i%YB4kE_S3qACZmxYY6S+sli~+_)ao^SMc8A~gB$MX`&-ICn;vlTIP&1PIg&cl*1ks5sF zo@%?++4ge7r7omDP0@UOIY&hBHG?gw)fp ztpPvRFr|_<-{BZbcb;pukhdg^73RW(Zb7Y2^vh0LcNlm>*S{$AuhDva&b{$7%Ob@D zN4a0y+rX1S_vJYw$IZdlO1BTDe6QuB!8kDnpt)_uPUVU0M{L6&-8#IrFWXLRr;t-FhKyKi1}iD(<{hs10ekpxpQCwrla_l)1b89O!QOXZ~{Y^Adk2M-tcq zE+vbYJ%HuJp8Z8O{@lgOlmkPWa$-3P^O8R?Y5rkR1?=r}uiiTT@v2rJ4R!;m9Z$<@ z4!ay;oLri4cBJE5{Fa-|QdUiLNjf6ECyqn`sj{dht?#$eb0_mYA17s^(qqH8ebxT} zIO(g)wUJO7r6g&3oOwwy6F`EufNch9`pzUq!wI+F^0Kk#TlAZYT-(^2N^HYl% zz9x+wWR62pZq2Ch z<+JLqFa9v1Rkw_yH*6h5;|-T_05d&`YJBV6opZI{h{hhHz z(CZ_PJXT&$KBVL{^J)J8GIbv~YVr9e%b|ljo{LRV2?YE^P;{ZpoYMp8TzXk#WqJFz_gyY;k+_$sQy!jMArY+L(VsOz)>Y_y=ofv~p8jkyd4r0fK_h^P`Oj9Y;{EkD3 zp=E1c>MOCO2Fu)Go-QKYJs^>^@%1e?Q@M-CE)k`+g>KTlc`zXS&t0j93E`IumD7Z! z8kdu;Ji~1+k#-{y6d)5y`!U=0duG!-M8z=E01M&YDER|RwVzs(TAokQmUk@-VO#>m zcLXn59^@XsMRd6F@Dk=~pkx>xp?~H-F(2@+lVY4g?gK3j;I7WsRZ>s`d2H|8P}nS#R+XBr^{Y!eJ0@OTD8%Z zDA>dwsT33n{{ZIQzms8GO-keiQR(~ujyvoHKVQ?EEheNxXJd~)g)S$oTmE9jcQkeq zUOBSWBM8U|40(-!AZ&W{q0EWu_<6ks4No7bF^lr|N%G~d)wC!PG}&A;7}Ns9`1}0p zOc2wIaYn01Gj15q=7x=@T>f9`P-+vXxUw9eMipRMj+R_MZ%5`2{N|_TMZe|;oCT(w{H%2N zmIWidD$UowB065Ikxw;B>UVWjY=%K^BN zA%PF54&M!Zuu}46*BVUroE~_^57_`3(DbPHz+j7GGuaU%NKk{^dw-uym7tnNL8UN^ zsweMAE-AMW?~xJ(jN}maT2#=-7Ns(g9K@K~l&uc?Q|QEyTH}~2L1`QQ_0$qJW6G2r zavU_?H%(&G-tIWzbtz0*lUlFDoam(euA7?U#KR6wA!RkwQ`XdL8wOJA$a~g<_2f9H8*0=><8RQP z`N@CFEepy%Me@$AqB}j@)|9wu7!&FRU5z{muif*`Zyrj^vyG#aZj0r=%1tIcdhPA! zm@6Pj7m?y9I@Z3!HrnuI78=~A8S;HuefhPg`D;%Wx=aJqiTyVa)k&bCC8#z(=i{85 zH1eFcb>1P!XeQoQ{{Wn=PcFwPo;9>F08%SuA)14Bk;(cg^WS{i;nN5T0oCd>IYhlL zmAv!$v2`b%kLIR_TT7W_^@tJdWqb@y(W-9rJe@EdiW3CeLqw=PJD0sqmV{ z@oYdKkCATn4g+Sixw zzbr3xtwYT+eOJpil0267ko+=SxEz8nYLGXl!UajG+cmm8Qi(C>`UZLOU|BR z{L#I-yqU$U7cU)*Y7|jXh~pC1s2g&o>~}e|mZne?>NR>1&PDYHnm;b|pUW>KS$P*h zReehT08zDjxt^S)F@nxX>9qh+zkv6iqZjV&qI!-UiX%|-1+SB|E3@VJ5bEZ_;yat_ za%7GF0A&vRYIb5Nw%s?(Jq|7iZsZ)EA-Cl}n{F`2<6(43^|M2#`h%;hPSkD0Z&Y*SCtuBMXGHWxBQv0qY@uZiL|`gZHS zWHKHaaWd#3IdM}V^8Wzlux(C#LtA$B<+qUxz}3T*qS1-3U606=B&*xSCDevEMOpsVLYCaj~+ZvQhWEtLX;3wNG*!OyjzKS)B)G&$WuNPlIGvgry*0gH0!oZ3Sm^Krrfe| zRgkdjw)HjIxSiOSsQG(QxV5-5K;<~qkANe3W)^IFQERgI{{SuiY_(%Lg0mPvR0TF9 zZ(h{ReDvE>n~O1nC?0vVbe~d|SjFstkpZb79_QuTe8rv%`dsPiB3?zWYcpPxAF3X$ zQcsEBZofX6exC>&+&M>!lLXXkn5ZNkOlqV9#-#7QW{8{FjzR)gCXp(#y};n4aUgHM zO|vZI*{O}*MHjBN5E?093mv-jHSxW0Y6r+u zwpt4lB%<-? z1au!|i12^6OKsvd+@f<@ilOb(2qgrj_P|_1(Od&l)9~+)CKX6IAc{(~ zV~Jh2{dn;<83K+FeN{<%aSKZIuYSiMX4E%JuWk%!7a{RKMm@faaqQoYNN{~gdAS8P zqh*qc&Q_+9tn!AaZ+heR=uu2==JiAUasxRyJ_ zppDdT+NTk+;}nPU0WqvG#>ztPPnUngA~$UXE4PWH0`2G!F%3cZWXgFaT5|^+V_$)q zqmeznp7@=b@@$`K;K6J4l_9{{M_?=An33G094U!OAYhXK(Vl@vN_?{{ZW|JhymouUMu#P_dRd|inLadGs($5$toCktt(HzY=IUSPh@rd`Yar!p($UB zdYbhaOa&qXi7Xe*EDBWA7T8m^UL{P(DYlZbrA$mv5KDFMl}=4_6r5eCy=Ai>?yw!0 zQipE;0De{j819i?a+Xwh{=y0x9>X$YAl(do>IoV|-mEp=gb(3_%G`u&FkT;8bMbxM zKZYI#B%&@XRs~-`)k&$T>OZ$DAtRDcaH8QAc?i^s^*_MmqT?QD-73iu{YsEj0n5g? z<=Kfg$ZncT1#hc2z`~`fXlqK3oe9iX%FA#oY~DG4(k`fo0Tn+k)UH`Q+NY9~6H{0x z94N!3Yq2|Id?dm|rq`1FeE|&AW*Y;t*DE5Nqbk`I<;_O(%a;kM>C+gcQ_J9LPy<48 zambjVPX6`jnYgiro z;QQt@zjj@AaUg6WytDrRIT0V5CWLNDtR$&$dX0$My@;kJ&hEoYo)zZyjc3bN z{(HAwM&fBAzKAJ~M4(~``%hiJu2U>RPTH?@p6kn!X^SKm)+1DjMHcEZ1f71<@*q^5 zs50DRfn`$W@UJ~262mMuHuFOvBBGlSUA#?uWN3~}vLFgdpn}%RPBC3C7@i^@Y5)&T zp2xmjj(5$`XT@iC#NU{@M0#A*w89%S-?Pte+g@Wg*%ScTif9kM47E+%~xb8~xLxBTRt{{WprS^4_T z9a1{*S8x@@efpjE8}-aw+F%`KUdu813+~^@uldIR0556{Y59?^T1#(i52O`c{N;D%2B+p}qw@a%mm(KlTGP#C5VcXJ`#%>Gzop^O z6H~rj0mHH6>-QJu`6_=gUPjOxkkZSz98osh_9XH?AX6#Jkdkf5)l6_u zVc(NdT|C}on^3wcb-RgSn4^3$M@Hl}tw9WXQk@22OFPRCx=_K0wiA z*8IbGwva%wPSTQqQ7AwrfL4_4*SBoj=%OVXkx0}57w6CXxc7jgtjhjgExz`lApHdj7FzY?r|Byxfl?&nBSgWJ(C*Qd z_=m(PL(3|jF(hY|LyBDA5o-Dg*JHZVby!e(pWX%?C_1ZC@yNh|$=7)1BE#d4I(Z*Z z@-CpV+el4_kzHI=3YvEDr&@g(orh6dJO0niGe_0U^*@k*I_<3g05D(9Q(k&@x4L&3 znH$sQ<^|-Zl?U4!>`5Y_TWrDAW4+6jsGW_UdE0r44PVHXADPyWsnyMtvht3c!zD>Z zB9#OIQMFAw=RKDPQ1f}k8!X52Q}a_v{NU2h)MZuG;Q_8~`3iu39#lPzKZjh~L~%!U zoN+Oi5MciRn6ZD(Kh>O%?Gb0g!eKGCf^&{mnPGB7)fd;Jb0 zo*YGQki4_3erEX^<3jwvfo(73lHwTEkz+#)svJu}#*UILcI(swzGE42a&;Y}p%?0W zq;&5z`47xmPK%`L@Za6p%&|jh1dS*P7;-{Drxq2c_AR!@Hh3ay)ar2Q;~8xICYnzr z>qk)YPoK1#f6_lwZ>!54Ss|92o>c~cy4JO&PWb7t!Y6kpQLBtLFN@&wuB+s$uhQ1= zwZ@Rr`d609IRJ$1DviO7$4?L1%wEwP8^zJ&#p7-saru$?TX+$_HU9u2CSzjF>s?wx zNoZP|(LT{mqK3Q=!fGj)IJJ@M$hY=>N$J=p<+i53o_=7q(|p4OcD`WKmPU=yIEj@9 zEyrh8r)qbnA-==F;f=)X?{%8eG1z)OyX4O>X(6qzqBDtsp^B~3a42XutqI#SnWe&B ze+Hsc9;Cm@-d*zrowV?2n(fwz@-dbeEtshF7on4lHa!5Xb1zRQk-Bh!GrK3%KRkah ze3@wkUT6A_wJ3JCf#-^{rFZ4cLip8bQC_)G0#c`CEL>clQ)+*gx~HALDm3j$HAx_r zJ7v`6v5c7FXXHp6MJiT>$3b7CGUbX~Hy%!Gpd*ftH_v*d=jcs)O8mo$MxOjj5x9}J zcKayxJq=fg$36a@X*fsglu(>-PxzE@0|o3^^Je)b4ub z!zkhA-HTH!aFF$TK@>$YorNKEYX zqf|~iA@eu<uq#pTZ_Y7;H3jn&^fo02OGF0={i^!QHy06-;rW){A3sV2>`Dq+JdzJ4d{2EuY9Hw5<7jXq__>=u|J$XU%2yk|kr?jT zrId)WkXU&;%-W^&`fj^rb}eGy>i~qP;)bdfO6~~UH*>yK$Lgvm)bYqLpUhn|UeL7& zEcL{=wEZOQKf@kR(R3>~BIhNf za?dcQ+m(3}UF%BF4Zc}s9?#+y?xm0cNL$bO#qT5;CA+zT;_FbBMxE!9O0jcR<=&M! zIrelRxpBNW*QMp2S@K?ud7x@OVAU>O&F!vaNs%Y?xh1J3NbgW9Qabm;q0`i?Iz3q& zBuKs^*8Im8ntaEtY7QP-IqlvXFJER1#2$3($evC`e$fEF{gThG(5v55bQBN9@Ht$^3PY}y4Anb5y<%C>@>$F=$)io;{ zDd;VO2^nM*RZrQVHTxrR^68h$($kk1&#_y3=PhDeiTtpSEVkhhl!I1|WAUpFMxvX2 zlDp3WjmE=dl}Y zPlV(lkj_S)qf@4aTvj=U#ebH1t!w) zd!QxHA2j+2Eu_*Ec3SdQ08yL7Q)>3ZRN_k=^JBX1forDf7TUFpYbC7IiO&!?NlJn4 z2>NT|mdXLfh~P9H+4*>XMQFOml(febc9L&U8q~=dZl}QQkc=bA+ThDuFeUu9w9|D( z^S$K4d#jkjiiIMe@M;mc*-ppYlbYN(Cj)fftTBkY-Sd~8HN~)oZ9dSH(=F~~W5m^gbypx9UxSZ2U1Jv&B4%`DLnk{z-1UycS7qT?<4Q2V^H=7wr;gYeD+Odc0FI6y;{m z;YOKWkqnwHxIalpAXsIroPnw0K<++u?Y3ZM#t!Zjvkn*69!&oLoQ$;5e=(EIm#F^$ zp{^iJG{DVHFtOfJ1wdd=L0@x&!vlJ8^n6@gPttj>rLmLi8YGJ%IF4Iq`%2)BN_Ma7 z#sGruynhJn@sB@#U?-k`Na>cai%mvI90Yxe+$f=N!ksoN(2snES&W8@i>TFjkBEHf z=btfop6^Z6eED+I-f3YhL!X2QLl8C;8yb>(?_T*{e1nID&}5Xd%9`;M7jmnj~ej_XWf2MnKJf6jg1BwkC=EhMk2CFRR0UVtKvkB)Bg zW8)yW*(F2)&H1nSLHVnD`C+cxYkGXeUN-^b1ksYc2=M;^Ka_QvL70N<%tYf|U$Nhr z+9jv_OrU@#Dkdn!axA7oQZ5+!}<4pbLH{q{fO zpUle26+RQ5@(nzw6s)mPeZx8eBoOgkX1iWyZH{tBy9|I3+hl@~1_c&eon}^4#)0uJR;t zlf<5z_)@2@^vwMpX%oVT%X>K36{m|u;cKt)L$<7tMh`-MY)p3C?soBRT2c`E8e@0rz9XFv(0Moo8o-! z=ReIfyH>TZEd(xxuUb^~;t8cPGQv5RQ*x1cewXA~eD5@Rp0?jt)1e%GCf-UnUj1vC zSf}9%i*7T(Uc2TGIeA~o`b3^o(b5_2rQ;N8MNxO5V0R>s3jH`G2?2dvlP#Gi<^KTX zZMK#d%<>{jG>VNNG$1SPKpksL!N;pIb@S8y%`ff#$;&Q9fz!mtp?^5Lw52 ze2-~iaKWMy5+!j;)PvH$EZJ$Ga}C|55f{sTXx1*ZKg@$=Yb(Z<-n#lcj}TF4zd-x; zrcQWCl{tEhq7Y8}#rZMjKQUNK`Gcz7BWV!H=%{nGM`ZxlZl|tMuh7mhxVpVL@i~`_ z>z-70)2=Oa%TYYjl|bw9Fk*U-ZL^+%o;hyc9HS>Evwm3qPeGtt3*A7gUIb1^wP1wr zQ$hC+Y|q1h<(BL+isa7!06U_&x$?NRwf)_rAB>Skr41B!-#2+9;lYNAV=R&n`NSX1 ztuONPMAd9;;YZYDoRcdWHyQyz)%M>oblRxlvRwSqmLm0!GyZGb`IhaJpHfaBkVz__ zj`ZnF$JO?Pvhs1Kt?@QvPpVjz5#Pe4n2HbqpgukN^voFKi00vm??nk~2AVY}pq>7$ z19Ea1z^E15uEgc|AON!Ehye3H%nKbJ>eBAk2Y@|2P*#L&dLGAb?8~JpG#t!&ZLZ%5 z=-y|K^2f|0%yL3ywNW5sO@SwH2gvvOb8j48JU}VQ0(OfB^WWz!&z`k5zP=n{mx@Ok znk+~cpcJY1uIDVCkGa@rw7vkos9ihquT<3SS6sJA1(byPa&aYG*LA2;0UdWZ27Vo! zEWNNJlZWy5z1#BN@`BsV_K|28kTKPsX8qt(!6HCD(doa^N$Hp})ys;a%T=o1oA3Vs z%Wuj3GxEONTls(YI)%)Cyp+(_$K_AdX@XHR-1Br()EUck(o6kDE0bfX1!yBA36;4Q zJqF#q&rHUiSx0FjDB(5|{{ZlYpXN)LTr@LT+PgHwQ;(`T0(+5B^2}UVMnhrB@eOR5 z`JD!vrpsw;c&y+c08j(;_8l{0AR;Nnh$OwU@^|vi{{Zs~OK&qfH|V(8p@@nfP^AMf ztw{jwQQo3 z`pMfhqfNsqcUri3dpyJP+sX0k>h_nDG%<);c4ZZ(5NHpv?f2%y-E8VHL>X-Kt4~Yv z_sLITY-4MSnM1!nv;iY>H>CmIooP;)f?@-1OeSUXB=b$K+z4#rW9qPsccDE^dj20g zz7e)QCl1f8{{Sz1y3OfXLJN8^szjwlP#xNy6+8a`962B&>GJB#rBwEfL_wy)G%Y=f zUdux*k=dS74;HOY5)S_WMrMWM(hJp544UJ7Z4!P4|0x@jU=as&C z{{WnZySbjmJ#yK&+-TQJIG_Z8J{liwtD2tF7wU6mtS8cq^52^6wfkFrMGrKU74|zR zBvp4E2XXl2STzDsbkm=%pF(*87~{2?#tNi=S(ZQtxCf_(=P@^lAa#0OG~+P&SN?L( z^1%LMUPlFm@1rabDiv;wXiY!2=bEioqCmySIfNe({!?2+`A6o4yLe@!}Og+maL9iDDYzZ5S)#-LQ~$F*}SO_D>OCKx4B z^*+Bpm8%w}(pk?7+8{#wP;ziZSC3u%TfS`ugT?h8PUlga2<(IW$GFq{rKY4%juA+V zOi?K+1(62N{f?n>q)RZ*@=1jV8g?Uq<%*KY2`@z~}{;_3KL zjZW6{!w(VJ^&kA>XZ+*;0F|4_rcqf%?)=U8ishfS^041TCT zNW87B`jN*h(s6k=Q0J*DQ9p>I`K(U2b+(2Rt$oMPncbiJMkviKhR&3X{Iyu9)r zfqSe+ZqMsq%8v2IyoG3>5TKF?>EYWUjG2p$?eg^O0~*r5ICU*TQ)T46F4bRiBM`t1 zx|&jyJqG!K2yr+%tyc(3b(l2`Ur(0zUe%?wxerqfxp0AdP?Jg?p8naHivb+VqdI|* zyk;+`+D|34Gd<1HvJx43*LsHWA9ucF<Gotw;Hc z#D=2H7ZzB24dV50G0QaeYp>}RqUqyhIoKURI6w!d_qyrlvJJVo6@#(&7vgt)`^qPD|5VxRtZ_g=zX6tQZCZOoz9a7Jb zM+?wStRnU|UTikIG7eO4G5^xiC=Dx%Pk&lOH*O!L0Md` z#FOHC14?^k81hOn-L_ccb{HS#Kdr0k_P%KI{IJEQ>JiHmK=e@rGzB(0)OD>nZg!!| zF#&$2CQ}B(^N-B>yxv0dB=;Yemk##o#BxA*vbN+9!iQ=CDMQkky6owQb#o((YU9H< z%l=`!p8oFU`eDdO_2b{KKz@0+8}1$MlK{gCOY|)%wM&<2$s8%L8*lVv+>#!#r1>ZG z%#mo?Tn{DO?ZFXLlFeEQP#(RhgDC+(c}JMErqXWa(d87H63BRvcT+=BHpsy7GCL)f zwrLR#30qu=dJeUB z4>)bsPgTOwiZ()~pgzHWUMHyVJt8VVXUBr2^}- zWjO}r@V}h@052rbwFgAv%B#pp*w?8hoA_;$(rP%xIXZdq4ifWS7Q|WHywkW=N8|;1 z5J?}7XH4-%iW{yNq6r*+N@ct&bne}X3%|;=T93}SWl)SlV`H`Uhl(du6)FT{aiAs_r z_S&R3i6byII({AE9&daz@>ya306354?PQC;UfC@q_&FIxH{O)%P&(3?hIIx#9h`Nr ztENBs+y4MK?W+D;Xi;j{cTwD|grF#m@B~rtogvRV5;E z$q|P_NuW8P$Cg=TL8cO(Sl3o7`5XTLIX&jT@s*CNs9VEpq01s$2%%mo5E`m3z-?X6 zxjpvC$%JC{2E9&_SR=#^;rccI068h;Nj(1mrD?uy(WG7x0`Cjak(q|YhluU-?_8@> z{OF=Ne0cGmVennN8Xu7_EiOFMAhxiQM!A-vtsL;H1SNVA$btnbH=sLaEMjs^5(Ew2 zYpZ$n{O5FZuOy}3v8YVNq`0}MV1bDX5+Ad@Dt0E612$9BNDcWokkUq5$&6^9o!(&l zzl!_I9%HtS>Pw_}c}re!)}6bKwE&Ij+ic3ih#1v5XGs~0f=A{503}=gXnD2>?<7>W zlqn!o1|R?xdebSC4lS9_KZ6=h{{ZJ9tSxlg{V(#{La~cZp3ddqdH8X6Z-$J9tR4WsULf4cfP@ z@JY#OUB`TsQB;Dt1D6n`B-^KQa%3u$Fv}FRo~j7ihwtgrD`aCx-9`Y<9NdErjCTEz z_~Eb_01~qhlCXm0f{Ao(7DH|idgEF!f7k&;8jLa$xVdUPF5U}p54oAArMnt9?qGT!DL z8%u&VU__51fy;_)E7%r2`s8qBJzBE>c|4m~7V<+S)W_q5k?{?f*L{zMXYlbfaJdT9Y@;z}w)J|a8T zl?MrOVkuBv`t_Au2iyRA4xdH<8s@KW!I-q4WDcsp`0w~+Ol@s(5c-R|G9l{+8llRLAEAkc1}KT*&Sb{mQc?~&x96rb8c^VU)bP}^}d+s7*; zHxo>UO|=)YybDsR#jBB&_*)`4nF-VFp^5%Ku)#*=r2N6AM4mRH5V6KBZWaau;vt24 z3jV(ll8E3;XGtcdYjXsz8c0eKDl6BgTpVDsjBk?@)Gj2O_W)L;DdoQP?M#q}MtSW? zVjx~ib5fNQ->1s~jkuJu<`RqWfE040d-WMO?ad-omBn&xpVx6x)ag(F@ZTAWM{b zQLv;HvzC7A3yBL#XMG^u}vBmZ|=ouQa=o3CE@Qy#}med-HMWX9qHqc=Bgf{ z^}ee7n~?DLrUDr7rcyfqV&loyfD_@6kPL2;Jx`mM)Bs%wKS2H%Kxc`#k-KTg!}V#5&+DIr zk;sv@`_nA}AliMRTqv|)cAKF)Z$p(#wdJ6Y>ZHos{3e?L+|$P_gpr6^V`3iW2qSt> z9qaSk?->~^$`e<%^yVu)c#6<__~41AP%3F3J3b+}4^v=%RLKIeG+7pxVk(y;k3~T| zd{4FvytZwS*$1!PIE#kWs?kSn>M}8l2uX}pr6Iuh!5w>0<-D6Oy*mn8Ix#e4si*bG z9gqt=&~5DCu(gtS!%TUqns2#1{i-RHX30Ut%t(4goG6u?jvU1pAOLIyX_!YZh<8LX z0P$UZ=)pU}vH}6`*RSE3_~HO=fhC8g_Z*{tQ-S&HKikVj?ZpzVV-Cd84Gm69g^1mK zs3r!tij}U!_)@sZJlmseCa9|bDOyl)#_qiIpX?OZ8L5s6{F6a>$x$ig~8Fh9!~3Rm(9O z^c!!KOKxoBLON+$=mvTPB<;up@0G?h)MSS;3E0~v_3zMp@dcs~RMQnAh}>O(+)uy= z*n5%RB`Ya8xOPHaYi8_`81$2RaTs`Q&5VHyEU&Ib2&Wy%BvcNkt`QcQ0`#9QYYhr1 zWLaX9sRo?|K6M#Pq7LqM8SuSpM$~mpCH}dgg4WF2R57JaUqc)qdxiu~!cNm36pUU6>oU7eqYpd z>2=Kl@x3&TuC~q@6pDOYMMwG9EisAY=0Z2S$K>)ym%PnkEVAk|G{AkiRB>}kiqeD{ z<=D7p9I3*&yeG{%J)WNvX!fAU=|v3GAP@5$HyMMJfOc`Gh(2ii!t$Exkf7y8iD}_h z>(CE;lrtBb?JX#d;qtBZjBPB6jsZi}yY{6sJ03$PLp_j!+SQM%S{_sY4x_&PG2$UU zB?suo{NjK7;|-Rt>3(7P-rS8o7g=C}PlQWOhKIL_>6%?us#BFk(`t3}U#D6m9$Ngs zTi+<_HybimhLV{GQ#m$>GEVxi{d;T%RU+xAH$mztq~|(H1zI zhIzQEx{dz;W`tAd_Q;S%;G^?=GT|Jajpn~0M`Pvx04eHTU6pQU(;;g|jXnuJs`9fk znjM%iuVLZ`TsdVi8xCf!amx@GPnbV0Znb2*^9GG5NUbDzRizyyS! z?CNI|7_l$QpULez^U_%Sq_-)~?PPX|t5GCsPand9gJZUAqZvqS=k`>L{V#(*GQTcw zzby5swDn01q%yofkU<9B#JWptF=hqC^ItI z$A@c6N;pA$jrqIzo8~6eq5Q4#CDO^PU#g?JlgbosswqkmH#Ohn4n#meHOEsuVWM_= z@8$30=7afZr(0YqCGMkiD>k6!wL4W8r6_v%^vFjkCWDoiEOg_BJF`2EHikng`j&<_ zS~%Decc}2++cG)2OyuNzm*?BL{{Sxa0NPTu#+xcIWhSa(f3%84Kr7S^gl&{e4y^R~ z3^_2XAJ6?K^2=SYIs`W{!6Xay(>nsQQGO;P?2^N-!})ima~m&Y{{R$u_jGn-8AiZ+ zC-@`EK4#bSZ_ZE3>0+~=*GaBzV=NX}$^G(eFc~=6H8F<4gI-%{*KkR9EutS#nxcKBtw1|>tq%3fEVA&}>Gc9e zo=t1yxZ%{Tuk~44_Sz@)id+?C1xXzM-^YKu1T`m!Tbm5r2b=U)%PnWEd2(2EkgaAS zRRS_72OqMv?NCN^wZ#xYb_XYlA02t4$sD~jiAZo9gmpCny+_FO&R0@sx)XGB_(B^J89!bj!^SA>X2 zXe1-;7~i4kUf%nPX7^34j$cgJY2q=9o9Tt}FOl_In@=(78hn3Ql1i+~3vRy|O~JS};|$_+ z;Q{)mq}WBQ`5MMJL3h5hw)8;%0E|F@KhM5q=wLEKcX5{uLG%1xQ_!{91PxUQvlQd04IEx`F(nt{0!}=&30!KFfNMkzX87* zG2GN2@@bVF4;NRW!IBu`v*^qJ0L)!m%NlPzE6WE`pNL~JQ42BXD%EQL0F(y#w1#1h zt~SR!PDt%f%%3{>t5g2~oQ?e4)1S@ybLjRFK@?J2%19{`C8Uw6M#TJ7px@?ly>7f_ z6dey{X(V%TPxP~$XZ~`Xys^V>huiD?XU8c+78U@m3(G5u??eAk6C9Th$ ze9;$}^$P=Srb0fl=?@sw(6v$VQ+gA}rAevpn=BZ7W5ivKEU>^iA*{T!seWPVm%e4U zNpEgsk>*%b62U<{7>=jm?f2uG8OgDBnmjQdyd2&kbF59SU-Q0VL=8$0<=%h~6Z-ec zMgSZ<`A%1)X;VjKXML_LvMhWS-ZL*%cHTp`e*XY39D$Q)!J zcbPO}b!TlnT5aN~{rr3iJ5!0MCvXVde*=@pAtxt3FbAib&EnTv%1L%1m5tGNi=OSs z8YaY6zkXFA!t0|lc0As@=5aQUA%Qd%#Sd6(_f7Fp8f8kw~g3F zTBG3xpnw#06s0N9<);r6oLmr=BkDUOfAgIht>2m~^iRvp2(vYWQeRG-f#hT%6Mr9t zzWmtugHAv$ewGo*lgatXb#BcC>Ir56e|Af54~Kfx(>cu8Vr4<66=LRy{{WnQ(y#R|HbXs&y|9Kk zWM)R80aTv*ZclpV;#me70k2aJ5%eFIy#3{$&8hzY!k?KMWO3`^%vSoHr9(&%o+edL zJ}(xg^apLm5mFZ}PJ<-L6c}&jAN=Enx1_-)vE`DQg_Q|Y39G0FrxCx;F%Dh{ZOPbZ zwL$`m+`s1&zd5CSK3~euIjwpc!?35w~s z1dr4J5TGx0HRMLb_v@J2n3?*b<8Y2Ut)7wQUm$rq%-%=Q{N?4QR`V{8sM@rVMnPs( zbq>a!4Zp}9jlN%}luU20bF`VpMTQ0c06F=0Y<#ihttM6rTbtQB@6i|a*E$@hl{&d& z^@@H*tdYSyi4f!%8nNtr23`rLaTsv(ev^OBB>w=;R%xG>`YgYeK4VE`Tif`gx0zb1 zoPwzbdI}%&11KN6`bR!({{WaDOYV=&&obyR7_2o%|t zpwv>m4%v&^G8u(;IJtnmxv?+KFUjHgov$aDePxZ~2+tKL#T`LBN$5p-`0bj^x<40q zqb?iVzGc?GF8ssf*3~?{Wo0eSfgnO%;tUN4D#nDBp&hoS+k$ftiQ?LuaB2Kai{-!2 zeqjFqmT5YDU!ng1I{rClh#P;9@xTAj>$Vn}kC>cmb_k1~R&9GEk-`F%3~8_+cKvykG9$Z_ zn^qy!@GqM@^%eOsBJgtTBaKGwQ%}abWMeZYO+8N+H-mY;!&kbG>t9!vD1#CR3hOXIbW0$537GKe>Js#HfoUQ(TN||_#>g>LD+3UQ@6j%G#ZTv z$I0il9hJekeSVr2ucBBkp|8mRVnB@}6n<6uYxByYC6Akh`Dm6ep!vGrRt~m?M{wmz zx&YNvxY!Es?O$xphNd#vnbJ!iBsQ=vZKXQqisdf=_>p=@q;IhAmiSSY;jjz(li$mq zFGuE0LOnxMS7NWtBDq>{Vf#ckUtyGKwC5z~{jL{)F`5spEz-^zlIr#SSx|9hCa3`3 zzdsD?G%T-@->CVyLgc37VGOu#4Ibl6dmbG z{{WwcYxo9vY?x`K8BjyTKA_%e)HHYrmeM#?W`>mg@niIwDErMb5<*y~LEj8fi1j>A z&Ax7q7kwX4KANjBk^{%$ZNHk8r8eHa*fVOUTqV^;3T98^p z5Is+J>@qmwBsnzZ)lVs+HhPqLh=?R=QIPHoBons4P=9VFn0R0vlN~zZ19Gmd`_3eh zCr(3Z{{XBr8dyY{cnFo2A?DA^y-&?jyW7kX*u7+OPa>zUg%5^UXH*=+F(JYdU(IhJ zMW|^>XXK=NODiZ*WmxKFo=U_xAD2Gw1NRIQU>PZt-g! zerfdU%Zv9jYOf%P6frafi4+yvY{3~kUTxz}OV|9Fqs`^rB`jrMiR&XT+N_8C{{Y&| z-97<`Fv?6e3>Wh|R*rjCwX~3%g;Hb{`zl7j4xrcDA(V+XV~LR6^;eU>=OT39$v?}O zW7Z?2A{F|CQTFu(X}0}Mewve;eHUmP82DYLgIX|-9*@mm%%3&M=IcwJIqH$0TUEOC zoGGUZc&{Jr~T zT&6(X)_8J(;t0RYNyXgITbUR%q$;HkSD-un$0-p6w`9pKZ%^{S% zm1DL+@j63VxjSuMgbnH8f<(ciB#Di^w&zv0@$rm3dUL8neHYcNuEPqPwst>L6jKnMU-=d{@r5IuafF!2DN7jYg5}}^yVya zoMzD+co$j$1+bReH|onb9j%GHT!FOjXY}F zd4@HA-$^nSR}6P&1aC_88&jyRW=jM>^t$Z2QxN+L$o^OIHHF-l8f@0hcQSKjlmOA8 zJ8%Z1SNlD)9Byc|lR};qsA+y@{L9tL!FE={IfP0Oo+`YlLE5Lkj$a&x>9$zJL-d=- z+GqG{MvF?kxN`-(L)4l^_~j}*NTp3_w!=DXSvVm@!Q&*+c$b;{@|wQ7G<_o4U1IWb zvADJ3$pZ2qElo$m-n~z@bDGUa%PKBz97bD&=lm7ruO#07pPKqfHHMj8WVn%8ZQix0 z2mzrz>9>tCBNQ9#DrlLPSJeJf(sakSd7`toF(?(~ z8o4YhN)ywz<2ISF!@1St*G}j>-cQRB=YPz3<0M*X_NbFi!AL@QkAxqyy#-0|*b|zJ z)9}vkPlpWk5uo~A^xyD>+*V|R0gX&2pV_Zpf1@;dh!ZP{Gxl-Cyq?LSYfE?*DN~Y> z_J@bL{a!hCoh(fApAl=8T33)^ zxthrqIu>S704IK@^?PSHBf@FtwNaLCPo8eCwNK1NcZrtP!Y+lkCY2Q-Nbt;olD1Bl zM?oi($oE!LTip46&*CzSPSyXX4r0W7B^)GnDdYoV4Kj=CvFxZ5RsT zCtrkjs1@n+%t_$t;^okp9iEru{{YMhY}srt32Q}A8OQ9`V7}|trn_L$>O3Oga1pV6 zg{%H!YC5i+W2)biJoc0gA$t0-4VfCf7*f0J$2R%1%3<4R^?sTxPhZzHuOvODyX1CR z^c_{>wz^3_yn-nha^iY{U)k(-=yMx3Y2o@gI}I%fSbnDImgnjUj8vh3aavS;n*RWw zj#Gr0n=fCA#TVw!{N%6Y*w*wJwU@UEd8bIy7>a|%Kgn<9+z>wc9K|v4_i*+21h;%2 z`9dNdWz$X97MZS6C34hN^$#77`8%JWW@Jwh0pm5qLHAeZKb?HL`B8Ikr0P?f+el+u zkqjjXl5Q1JMSdl(*(c%OxE0NpX<>#iDb?bPr7gKWB>cqu*7B#G?ar&F!z?<)lA|B59g8m^`oM{{S@G>7(lwc97e`(our6@Aj6v zsrXMr(9rG5vV=@`3^ejFl|MJU$r7!@EDj5nBW}c;>9mt3HuPpYGM^*)a^~`(M+I}c zoXobnFS@@YJevoWA=E!IwNwHPHW^mc-GEas6UhGnmBo8>sTInyj;=;Mw=d3rGv3EG zqj@>2$n!De+tgRD(~!sMSyD>{m(~wACY?%GVNRQ6;fPh#E#kFe(W$P${Epcgv=WZ6 zwkLx+yA6d@9lmtHBm*97zfZ9-PJu`79Q8eikG2jnl0bbmrD@hi!rxB-BStygPg6pQ zYuM7Jz8PWLn}wG>a(xYX`B7{6x#h@w@%dWjEmFoGP2fX9%@s$(zf<%R-+a*O^#(@X zY8sMqaGsCNk2|H!wy|?-uaV<7WJ4S1VIdk$ofauXNvmjG4&*s zMH{~2zekQ{M0G6XAVcgQAb-w8#pJD4T@y{PTbXX-TU#Q6k}oEq0+rde*m3^=T9vLA zx}LoIW6(L(#IvUOELoT5=ALo>LKRs zIE68rxdp3-L+TFTj-C70?#oY;2n$Md>%fvVPz}#gYDwC?a?ToZj?Cjj^NyjQO82@{ z&kKRkTV|(P)2KOh2{>Au0&lZFE&l*FCj7*TA1z+pNn@%j29Jb1F zr$rJrdA#~bV3ypTiT?mO0p=Oy@?`u?t;eG{WntE7c%fjo`O^)@lXbm6^5;T{QcW!_;b9O^?J)tE zzZ!g8jTgh-ry(3>ayQA&Hz<%_sh^jBm|A?Fmv5r^`d}{Y;z-$)2L0-)kwQ9(kZL<- z0US3OJiZ*G86sStlb@cxXP3+xo6L{M79kW=DuL3K@EMV!mk6@%FrF>?J>&B7>p}kj zoN4m1dDC8htogTE(}cEGK~whvYVc<@sQ5r2d?l;gX4e*8K5aR1nH`@O`IpSszG&B^ z)-^{heSFMkb~NPA)St(;`F0p^J1r(L2vO$uugbqV`G3l~#)E5f32j{J*2Zbr{^?-k z2TJxk)}4oj_!``1XJ(tkF1V+DD8Zgn~h( zdXD`wA4!T_WV^o19C4??I-ToXT+4k5o=huV`M$>w3_B>mM_|RL)ENi_kzM(F{W)(4 zW+I9R#Gxap3=MoTJRuPjZYhjnnOb0gO;&^AbzPdC9qEr1wXw;jb8yaf z18ueh;V}+H+H)W;ZnDX^PJj=m>E9_R;XnrU5rYr4N_b?VSn^*Kt0|}1^u=m=pKOsf zk`R$d@yJ)AIjGyid>~p0M?`|*xiFz2x1j@W*hr+rB5k!fY|RpZYfZO3@bY0e+abLR zc`}=$@VCdg=nrA{V5@40q^k1g(2N^qSmOs}JD-`RG}s9$`aAt@;waqlJ-4W-H0h9# zXDL0WNztH^h|U}=f~-jUU4=X|8z?7}C~o#Wd(L*=P|@YlY{D$D5$Z~<@i8EhqkXDP z3HIxlqXC;_ws@7dnHJjG;(LS6^5h05x|7j&@XUzd9UMc9q5R3J39T*dq;+>yGC)XEj}T6W~Hi|>&Bgc{o^qK zM?<|b&^By@Pc)&XXJ(8FhTVrv>M}*PC2VXWt4J7gJJ)h|?}!N~<&|PXZlD1r2I8P% z4KO>exGx-BsyUNS0bac_u*xx7lbP-K5l4=Pru%ov1SUEn`snUS+|Y;acda}!5@s2l zqp(Hv7N(o8-%r<-nA>0>HaCxIi0}X$P*SwpBP?LDGp)(tJQ zQa!;^D_n$I43)GQ%tYGCej02VlpVTYm}`}l8{0LCZeT0>Q(<1U@yNn<&M~Dlh8I;- zl7hcRTv*6j=7;K$3xeEhOO3)fIQfRR*f_;{Rb2t#>&e5|%!`YB5HVKdrTUasL26Y`QY#!w9FSxMA?;-KNik3|*RM)=f0@fF*%3*+(?u9YW!s4+wcBqDYMS;bzL^^` zHQYz{MRu=4P4cN4M+WHzppg2+OVz+(UkXzv7a$4=uAgf)y|j`<0ZP}WwN6HIaq__^ z)T=tT1swSX9lCYf3}T!p{{SxrxQq$N;vTzu(w}xRWhmNnI>mD=OF#E)+f%Mq3jwnl zzIBSRp*0M`gm(V`F_Rm%M}5P9G`{t|2BzwpdW zKyfn?S%mYtSt>?&xmN4%{5`V_0c}yn@vVIg%&y8l5Cus7YIn`1F|)D5=}4^%a?0gL z88#FqmHV>bDan$(^b)FtP9Y6;6zkApOHUHm8KOV{q?N4=4i0INM?~I=kE{~RpzrhT zks%V9O|;EG2XqJkF`AG&S1Tgg=1>}&lH4u9p;6bZH~zVHFvlLw(|OymXCG_=Lk|v_ z8OfNEGu3zI(#gaPfvMiR_~bZkGYB{xt`))fXr*?g2-|v7@5@9fmAdK#o;6X+Wufi9 z*&1aMN-ECLLkoL?OM*V*zDRD&ntEJ*O*+l7mqv=RMxVTmO-VjET^TShI=Z#`pEz!T zNuoShFyCwuov^z|mJ>XR?Xa)UsmoaivkPRTEfP=^ULYQ|?sFF;sh}imDkIOAdbWKVYhjI4D z!^fy2#ar8aIy}5v9lh>UGv6Ziy)#k0R2LeD`Y9v`nnf=e9q8U0e$HKz1ec=H>a1?a zuQf~CxMsDMAGY)|uJMpN7Ti}U$^Z`cO{*kRD)NrF`Z)TO@9I3X46%O8Hv9gropM<9 zP=TPQ9IDxmnf$Y9uiF3<){fwEuFBhu%M-PIj%4QpAh%PVNCm&z8tMb;HHHFvRh zJjfKFuWt{>HRlPFUx(leewqGNKb7>|Iw`!gO~tjsitH+;l=y)^LEGEkGO&RMFBZ0i zqdeuL>v|J5x1ihF+-a^?lzdl~A9@~?_sPR24>v=r(bqnzU&g!T8)57KO_(y^~ zm>>M%wc`Qi{{YOJzA{Ow-pY*9d_%jpUiESQdt~$Fkf3^Vb{c%12-yMu068G?M|0(E z7e$0!>$i6-ZIKp|F=Bv5gi!oUz>GRvWXJ&1s?2B2j<@Cpzvk=ce52;*rm?!v;dlkK z;F%+Bxm41;N$4v<{{S~0 zBz-;yHIdf%dj_pOBQ8uYP5jOC71B+rNp%#KND8XUZh3-D0Vj|(+rusznR9k{w6*m; z8_3%Jt*Kjt)h*+ec{dUu3III~2VJvcrHRNlby?xVD;$}G773_JE{$g58O;px$GvJc z3*a^(kKLIXfFT+VMj1qI@ZUXtS!=q*lv+D#5-p{*&#UOGHEw8r7I1b9DrwrA(z&h2 z35~;S2%pr*JgfO%uYOg*r2cC87HC^dx0*w8A}7@fl8D?m9EBXzbqC@11oU`uPlt%L zWzFDk2dDo4&QAVN=)akITz{FqT|sdMqXNlrkq}KsQ$e_OHLri3V(TJeIHKoglyw8d ziQW0X`Ag&r?H|t8+Gu)dw;{eGP&lfVAnmgN2>|sy2ZV6yENYw?pODy+C|j?;-I~J@#?d`dfZ2k1)6KUwUR%`eyu8uAr5s_3cc`j-fg?O zVZUE5=@!NAu9zr_4y3W5UNosI;C9K3K%X}<8dH?eecAs2IH4@^d2dwmrmGyb`ks$` zY^RD}v_24OeVK_Lt2bSrzQ^S3u<50TWY5o*SGH{OUqG;2K|3r8tQnpHe%zgC4JZeO z`3}?3i3@S^<1v%re>&TFSIin7qhYCPM$2D{@-!CY7ezuUB;p4mpppq*g1sr2nha5Z zXofj)T|IyDU(bJ+K5o+N{E6ocI@T>mO+>f)!nXSl?-7RJ5-YWQcR9JorWpqAz-GUw zKTv-le7|kw%|7=|(k^AZ(`I2L4J!r;4M9=hJJ9C)vv7D<)!yi*V`qhVi_9&h>i7Ox z^X7_fw7BJHqncQRu{!c0SQ;KD+xtdqwG|oEgRIFZ#%FDqQ2d?ztJL)vrSjw}r0by` zNK7PzWv2CCv-A&`?U>m#Fp=ULGmsevt7cdEUF3~Z$aC97Fbu0 z#Y&Pv2ksu!QHvQ%3EepGjB&f&`Q`cNscR8yT9&!5&2#z-%!vO0SBXH96^aQ0k_YTR zC9h^>G~5la^;*LwjW(WAmlN1OA+I9U{Dlvft>&EDMSXB1Gj71VT)We4st3`UxtknJ zHC9N8Vt@0NpW&Y_Y2I4$ub7q2r#-mT)=PHv9nxKcF=Oz8M;drioif~bavXM%!;V13 z`j7bz(du48^0u=haJO3b z@l9_e@;p~kK{H09l2v3hBD5fibu}HjUF`;#L)Q*XIdqVo@612SjZ@CPZMUCFOS}8q z1-y-(-ZqiyRP0CE;@$_S_RVxaF!b|rvSXn^`gi$rHb`z{3yJMH#P*_Vq=EU-7sCmf_BPcrj%nPdbq>z5XXRGAtNS~p)(t@h$pGzz+@~%Z8-qd|Uqj zIUVK2v$I=IE?ZA*VZ2w=0uxB$butt$)q*iwuO6fY4wFM z$YOGYtq#V7R1vZMnCd4&!@I|hP>%>=^6S?cZP1F@NVpW{&b8cht$X9Ah{?^P!(~2R zy43vPeGio+yIV-_WIUbNs`6nQKfx3~UHl z0R(~k)CaEJa+&8MR9AvIWy2OhqC>4}{z;!ryOrdyw!8YoFrDh`v}3uZ+YX1R>6xQY z2%zC*#$hfLk3{oD^_7|Ow9Mb5CAwK!9z-g#jy$;in$vDvYudD}aWx~3JM(e%n2tdE z63@wP=D#eZ#*S0;jhtMfLI=g%jrxiZJTnqFj%e`pbU9<;@?ai)^OmZ7iyxCMy#?5Ie0)!-hxu2`+Lo_pCzt%g@m|=LxHk^Oyo#$* z32Ku{d*)o`M!~aFp%-EI&*kTu^zS$MJ51I!7-KL^Z}oYixm~$Jc$VTp6xyS2Z0K|| ziH#PC%7rAJR{W^)&XFC>$CPdPM9#lj6Ay&3J5X(~ukh)b9@f$WJ}B~bdSGQ551oHB zzvm*ge=PZfQn%5?wfB~uIINP|>OM&a1>;oWK%k{+cj^h^DT7ThF-e|NF-f2N;_sCs zVXOJZ;g`}AED;qTDvmy@(2_|cP;5Kqew)=lbFH2u0qcCH`JMTJf96j#YP$H3)3)`@ zK^;gd8XhVrO-E0^uK8B07|40K`bvPluQAoFSIjRQmMng_wLY023wIQ${dB>LA=8cB zwwhih&!w#Vnfa|hm80^-?ujMNk#Q099u)>f1Z`dF1v+x++phE(iEaaSvq}!-I{b_L zuJcEdF7-Q|OH7zwt+OS(ER^QQdM$dI44zDc$QtD0nSv?b^NnAY7g2s=PZyl6p3YQ? z=57}#Re+HhMFVaK4cNh}O}x)M8oh=7kI5HUiZ5CtwRkV}@mMPYpCW!1$Di4ebmKFRE}N1H61_zSAG6jg^x}STMmyNei`q{H2(mc{I`qD zc6u(W<#!i4U5Br1(ndj~&%uvQpiqPFTi$? zKQ5oi-fsNi)%DiZrMAdP%}-eA_vJmpAk9nOOxwQ z%-gKOou7*Kv<0*)Iuc`iS{{Vy| zj^5D(lb{PBZ;O&0$ljegW+sj!AZdV<4TgK=%`-y$&P!cJ2-X*sz;#yms(XqWj=$G2 zb$I0i=}FJE7r1JkQ@Xc-JihUT)8ir6koepI)y}|VB@+&8Bd6gHG4t-BZ>GR4t!^GW zv{UJ%ZOHT3fI9$9a(Jh1Eb&H1cg`Be=ZBlLur17?jBaSn5GIGkso&?DOnP|Fla(DX zrf>Oe`MZ1O8>06yDV7n=U=2o?-UTg8{cDC;n zaJVsmplkr42g70ga-4YtPR`FZr^MMI^Ka&6r>`^?x6>DTaYREx4FIcBmCVUw@m+3g za^|0TPs)~-cc)g?q*=W+^*Gnz=nvtRV$&FI)8dX#r7UI9yyK*$yiT&)UHm0!P6c|J zoy9v2zS$rQwrDbj4c{96Y<@*gq)R5FV1`>_T8x8#9sTns9%F^*G}^eBzGS?$xUrPl zvMno9%AkM_~o7LEZDmoxdqeJSKmBHHs|LgIkqwab{fu* zPj)%^Y5A?@pEiSSr_1$;xrJreDudCz^6Z+kjx}x`9?b%FUq*Rj^0Mbjy_fXF@ZR0r zNU}MEo;BmLoq;SnnjFx}9J0%H&2A`x!kPY3N9G+%QS)b(uHku2t+zPiZMcER_xB$@ z)Xc38n8rriu;8(?&3_~R0Oup5{Dkv1rZuZ2yq4kv3=GU`84puRp5w25hiZ(@)8`m6 z6INKx6To<*zrE@nP5k50yyJU!s7WW)?wqu;@5ZI8y=(8|`stY2b9j^ErwduCl%u*w zul`>7XU!%(Z_W4194j005wKTgb5hJs=9Sn|p2skC7)-Y%*ywm8j?3ZSGJam(Y8sT$ z`5yjhVMd@LpeQG9%^{oopf6MJAC-WWi-e0pY06kO?1puh+ zc+hYuGy0f zIhMiP=`qJ4x6gC_Xjyr-2I-yB+uOK>7n^(VvR%RqGtBv4Pyq*CUnZBuhe7$LMOreYbZAJ>; zBTu95%p-)zZp$PgkLi6A`9}?wp`~2Gd2S%pwEN(aFg%MPjYuSpp|?Bq%XC^oOO*_Q zF}8o^4?SuAN4A?#nMBtN7{aE9euH6|dE_Cmaj^?Kz6YPpN#;#Tc?&aM%Pf*g^{(XX zzBB++u47}yPUX8$Mj*#^?L*8ye%EaLk0&W~%SK3$BK?F?0oZIQPip=-d`RS4JRuQl zzcz2-v%Vf%^-5UTLa_R3MGGk3aqUVC{&|^*fZL+O$16OZ9rr@CMjMk+|6bhqmr*eD#8BR$V^Kdm;MB_oPFQv`Z(`x#%v&hR*!oLXE zs08%u*Zr)l4i0V}IPi_wX1jfUx|7fKhqi_}3ac!Jg%!3XdJuQ-T-RlpGTGT_^kQRY zt@%GvxAPlRN+r2NRAMM-39V1cnVXXz6kTTzuZ5O=R(S`^+E%lw>i%JkmOGgQk^QCs z{Xhc0ULv%ir+vPGnH`gkQ8y=WdpMC{^d-i!`gN7n{rKW-W0jeK*Z`+;eYk)g{bwx_qhYRy z+4RIemRg^fSZf}2)hAmy4<>@yj}-*et#@Ni7J$Gnm+K6&of^4Ch6 zM*O|gy%Q=PchV>Z6r}@gzTj7LTGE~KULj@LkTFMw4})L zNyM-f zhEb9>Umt0@J=kBYU%?HntViLNYVvVf>?vA-O}cd7e9grYMY_Fg!1`Y1-}8{tXx544 zuO)hLtV)X;pR{$$r0r1Mf1L*x7yvzx}LJmW%Rz%sU&Uk z{{TLNGx1;%^-G&~fFNy0^SjBqf0FN)R8om>Ac}R31p<=5Q|`f*BkB%FAc}nj9r!0Gxx8 z%SY84MwZ;PcQT^1vQ+S)-hh3f`$y&T%@(^LiQ($x;=m+qb9}s>P4kzS@2+&OA?f!Q zcH%Z=5ywSXsz7$>N{#7Uvj`POa_)4UnkBh=ujFTze6^)b4!h<{tBprqwLXM;WQMV% z-XIN_cLIO|UR9v3RAmzC`(H4_Dt(=;c~eZb(wEFP(Oc;@Axqqe$l!LVrFvGFXOD<$2D@ry@wN0JU~oBd2jip zsc6>XAgg_2I@8kJQdA%ZsGy|}(U{pWcxCK#J*ynB z-R0kzURX=F^9`g@Jdb+`RaR=E5IG7C+x79x6NqG!Zm&^7-;?@p<;R%pywzdloiYzg zR=m56TNMN#Ak?umGy;|B&{rXcFA3lr-Y;A{RL}DV@;lDo;#;5b&A-?08N!EYOBPc~ z0NjE0*dHCbW2ufy;gg?>2#BD?bwA6kd&#pWm;A${!i##PZ3Hxs^KY|WJM21&j~Zph zWDp&0U|?Q_<~>73{I2|_pF@=dcbfD>$gylvMI)0nekuYuiumS!A_%7|v&k~D{EtmE z>e`(k<>|AMSPqMu+yjO*^!X%tzPj>nmjl{c#bs5ynUXcwmNnS@A4k)fG+bHc1ikbA za$|?(U*-LWk}b)O;_|OC+mVmqB$Lz<)amV!%_lbLqLK|oNX!h<-NwlZ zjXvPf{{TG~%-&I-$=cn+4OK2z*12cotrGVqcCUwDqcysS8ApZYHF{41Tu}+9{N$FG z<>c}Qmi0d`+_S{dD$5+QgCTZeYrq<)w4H~8+6wX*G z4}hMOt#`uZ0cpjnx2@?dI0M$6BP@wwmNuMd`h@yD>>8z;w0s;g5O)L|jODiNGt-Qt zes8)w>-pW~pE-F>Ya6y-(;kWq{u;2QdiObiaPb$I$EL}PFD;)0UP&7|war_JssYoF zzHA}0)`@V64@~@@^Naa6&N^S7qly_ul{#Id6N;f|Xy^#}f$dSaIdmievf*l=Ob8tI z``(*ts%l@Ho@Ug%&wB9->Fyrtd7Xd=UAZ%F+PeTfx@NOlXxv(ajtEgZz4Ofl~v}=#7`fK~iSdivIJ|-vMpcJ6nG;+r&$q})9L%&_MZrVpn=x>?RVzclT_4XGS0%0^J2gR8x8Bwf1iBVM-Yc5c(mggwi0fh z>h)ghm~T>~_x8zSsWOyP9ZL6%&2?&D)Kjz9r8ggT44BX{4vceF)o0b7KdneyfJ;== zpMC0nUKnxW5pTteLz12Rs5r+8kQ7jWe`~`okhaP}CCWGpGSG?|?0v8RwpY*|E#iWnWW?3sh)Z|A006Z|+yq2wQ2Aux5A)RT&;gTxTxV+PK9LUy^ znuEv+{5c4KSi}&7)phHwL7L*`M&=k*iKyS_)K@1M(>qHczM6Z0mrhFZlr~m-e!b=(fES2PjKTTMedWEU&`u?7o8$pigWU~e#Y83n>sn>6On{7~6 z^yK0R_u@q>kR>}UWLKn91_q{wps&yMV-mq~NL35UI2ETF_c=B-O0r2Tm0pQT)Yro! zOoD`L>Q$m9k^QReP*1)PN@U9P)fV+(y35k1+ppt*fWjcN7))vs-k`9rLrUc`me%D) z97v$aJcbtgN^A5E)y6xEXW{U&IOc)v#i{_sgyen`NYvD_)rlMJ)9J`$^>S>-8+lfy;LKzUSk#85#C<+cM2qO-CU@L8nfeWbT-lsZBrC*=O06I*R_hsFp=eaFg+S1PE!! ziv2YhKu}TEw{Xo7S*pxQ28Nw$@9&W@rAcl_=>GtY6?R%3$=Fw>P7-AwS0p@Iq@WnC zMTMK+DhKJgH5MYfiWfsT8awS{PcthNl3Ys4S zgfg^B&m4*bVt_AC6HK#{RE4RkHz6V&j>Hb5e1T#jQ)oa4V7P8Ensn+bmCh;Pq+Nxo z2K0j(e7D4I)^Z`QVi3w>w*`~-iO7p>2~2L#mW(MdlUCceZnIk13{9tyIXqDY+<9&S9%Pr?$tS42cF~6kq9S+NvRd6IbbQqnCLUSGcg;* z&;l#Jjsh6uG>(etd6j0NsN%i^k^OSB1~Ca{voW~4Q4%O#R3e=YOOs|f&`yB*yk7y` zf!p7qI4;^|QkmssbPC@ePu2Fnq}&3(ndnlU6m`i8Y9ZLpo&N28LwDI-VCK_iLi zN9xL%N;Vm9mt&gV28MD3T#Z8-b>HaBe5TwCuupX<6hx$g#5H>Dw@k$t_hXJUUVg|f zXShfBYeByI=F1tOPHhkv)bVj5D5>zCAd&dxvKHOPYnXb4&3+Udf$UnH2j7s6?Qx2o zva|4JBb6)D42?Dsx;^<-U{C`Sw@vU{8Slw3u!o42HK-~HVm|zj3rv0ELKSX45OhPcO&&=z-1zrSqheQ2CNti zm?5x2lbt>2OscHWrE5|6oU1RTcT}F~E@Wlp!KpyNQ!92$i-aq#&aM z(5dmu%=X!aLV7X(05IxfUB8y{i^^bHl&1S-F^wz|3m8Sb<*q5ntxA(ow|uhO45^aL z1-glN(`xK}@`D~H8b`S&fV)MADHiSdzj|a zt|W+xvY6Pd4NWLVu=$<}Cp!3;amzNvJ)= zPfQuH*m{iyt(19x%vRS^HPz};StzQ?2g23r0PUFY(?%PIefhDFP<;vI?Q%OyN0#bV zlmaNU-H9D{+v)erym@b8(G4Lc%GUC7dFl(9HK`(mO2n%16iz!uO{ zk?HUnQ?6&=)NMt{!<=8G0p=?^iz6nj<@uUTET|rU2B>M_+;4!5>^t09tUhS-j;X83 zbqt{-lG?v*RFD?5->oT4>ykO?#Fd#-5c52rT7)I!WP%RoZhqsy;5j(Cv}&-|G?!fb z*4I3x)6<)XtZh&(Tzf9EEA#j9TV z_9;BPvV`)@tS=;yk{TjdIC4kX6=eX|Z-jL@xX_s6jkaJMQL^{1%fCE7=R3*fUo+bS zudHEYyPyqo@P*`P0pu&ckI!ty?OeQWIWpqi=-P&p75j+UGR+UDs{CDc2YQNr zuG{99OMuUt80PRzj!7SvJh3;JYiV@xzX(>k$kauiqXY9zNFFJRDyOC zF*r2n2mowGV^3YgX!2k*-V}W$1*`dCZ8Y6Qw8dC;n|BhTP*IYFiibe)8MRVy zRwk_hR$?o;8~nRhdS#RYUP*C1drG*6>i+6{^E9BTC}02S*)w}fJG4!U@nZ#U+h6a^-8VYrx@0nUC-carP7DE}iKF-r^Ev&yb zyvOwk5^HT*C@y9((19v15Dw>{rGMJZrfAlqh#kLUvdyRyp3gIfTbs;!@0kAp#Bju# zZH49BaLkYK$pl7=wRR@7JNE5etj&;Qk&COAOO=<;-emF}$L1%S?(e*#V`}%Fm{aaX(bQ=K%izGqoQy`3~&rZ~=R7b?MfG1|FJ~ zKK;jD-Z`_=YrH?FcFi^-BXNCiZ>C;LJeoeRBDqG7){w9Ufr;zkU%PCW!z`xc-3%NY z-dE;7FKAONqsx{v&vhAPiLKNGLr;lR?X_qRUHTei^%$T9MaIvPGTI@D`dWwR8EsJ= zwL6eujxYnU@h^OKvF;W5RwJFGN+<4~Wv!@+q6UES=?+3w2=c`XI{bS1i0F&B9j+v=M zlBkAM3S^M|mH;1!FcqzOZMONS&LgFf;U4AE>AZb{7tH#9=B<^smHCUHYBEcIWQ#VV zrB~pVhvSZv0o19W3K>yt(>^5 z2H4hLQiuHHb?NelmHd(US7?hJ!do_>a)fTOO+pWj#4yd2VniseX>bq&%`}h8T`$Sn zES_-lEywy=qcTLIqnRHM(OOq9c*)tg_NNS(MW2`SuQfv#m^G!E&`cRjk)VEW)8SFM z8*Xd&TAB>aFej6#(;v#8S2x$5 zas0UQ?xW;ef6N^YL8IB~(zH5tkFK&a`X-YKw(GdrcRY9QGiCV$418?0dXYa+e1old z3iesn`%GnMNHkVz9mphf{4)n8dmFgEG`fe>UzbyB@yDjOmpI9FZ6NyfvofeL@f?|J z*1LcQx6dfUDa86*9YztA8~M5UXJxJ2Nqo0)SX$mPO(>d0QxvQ58Uxi$HXiv_r%UVN z9GrbNaf#r%j+3G2y24&)x}VqB+qc%G*<%1u0K1y|l6OAa<+*bJ8|SDqA9`E#auKH!zU)h{HPd14`qP#!DEsnBr)alf`pPnK3sd#mjkaYujJ z!v6p{KO^*=TH@c$eo(s?3S&gSKu{Jv3sh`Lr_BD-9=VUK$Z(%a9T^5UBEvkb`5B_$ z-s&2&`I6I4wbSkp+oj5tmPpcvlO;!9hJ^nBt(D6p@{Qcc>INOd?3=&N?s|+ctP(!Ynvh`)K4mDLnrGntG0*bqAVsyC$`{iASWD z5-6x`%}2$xdk}tkl44{nsv5EjD$%^dcjo^9G1~c`%nNG-(IA10O|va|RFXQ^u<+kB zdb~a?t=(xmPFY6`p2OydXVNr%M_IE4q(~lQ9U4wFqWD#Y!*Nr#Wa)5A7U7nz93#^C zyU+gsoxk#{{HLM$v(6fA#iHxMWV0~0Bf&v0QfO!@yHFj*+0fw4=^kzdY&k1n@l9j% zf5_jRcE6zX+t;x3EehD&w={lEH%A~;tA5h`BBXD2QY9VS0i&Jn9$Dp|%Z+yUTw2`o zv)A;rcx8o{pqUQficp&GPRG9aqse&=&SXD#w37R4ZB#*Z+12cweXQ0Lg z?@a#yoL2KLk>?L6dAIUQ&l+r3x|OB8vs*Ng{9#b>bw?Y9Mxg}LcG&J$GIabC6(IES z)R@JH>9;?Y{!6s59!{Dw<}(DOkif_`B$+@JsQz8LeVwr4pN21VWq{36i{`6qFYq7b zrS`3IRxMM^w~HJ#U)~F7NNIN?ZcJ2shEE)$lx{7%J!2Ffr5~360G)bQ<=>S&m3^+E zk4V+6(@kl^R7WgAppm^d{h(?*DO|(S)-%HDb=tG0nBnBF{{T4y`CsKv&Wr1BGG5+2 zxVN`tmRMW}-h+~o2?|=DwkleihTAIb5=Q)-y%b@RTxId+=$|it%Y47@FX)f9Ke_&H zzi->8wqkhWzoWSP*zNMuI52Pmi z!_)lTYM1fN43ac_{uUIaH(v^me8<)aO`z&*(O_3zPSW+bTT&K<*tHsj66eH%2sHU- zvJ;jzJ`{3`3?Bag@~1(%PCAvmfut1xaTFcuN`dmtmK}EwCNR8w)%>IRS)zG%^XqzC z4B=`IIyT-L55LC@^@k%_nI(w+c3s-p*`}Fe8a>pE78ME$DJ0MWJ9H!8Ez|B?>~P_H zL*}h7QqW!3P}=6IO9mAl6e79MVw`H6;5H*Zyx*%^>6Q~pT4@yv)rbVp5=iZt zxidxq8FcZCUwG-?mKyKnQ$u@n!fiHHQ7{~dh_^;=Kx})Fm_sp-tE0^3(@!L~4_&mp zx4TcO-Kx6Epe1@5ji@V1p5~chkegmh#wa`=^H2V9#t$$;+P9Wt32?vP$J)QmwQ{)X z4i{^p)RP(|@)wu9pLONEei`)?V;#J;L<&tvG!!(a-J|}PB)8OCWL=D(6-cMcwK{LpC#lv( zLuSkFeMO;uVEK#7dcd1hM@!KtbIAZT9Yc7EP;|!zQ5kILyGtDI!{0os`IW0{USZbm zF059@>f=mgm95;BnH@>3Pkn&;PUf`DhAgDbt4Xhr+mrI|^D|SHO;BpC{5eYQ%6B5P z6#O$A7C+t+UXBy-BfDN%)m!Uuly)Aj%iu}qDf7dr$G|Pb&!vooK8N!cl6>09Xl^}7 zZDky{CW@pD_N7K^C7jMSTr;AiTk0BDkZfdvLeC)$#MB0nfa+b?y@{XpOR;=u{@(y9C zuoUVKhrdJGxqP)?jrMGgah5zv8qbq%EM)a9Ya|SLEQ$xwQT@40PgaObOPdh6h$q31W@!u!6c@Ohy>&vr;j%T-RgM!slUg1C#_swpjPJe~MmNFiT zZ7z-GIDKW6Q&N&vlj{OXAW$j*Ub~*8)byn(zC1}B+*nyYr>g#5{$$JLw!6`FGz&C` z)J7~6$av6lEI>6B@XXj{5bDP~NcTLi^M~_BOUMjWXrwh)qjIf#D|;T}DU3WrZMrF$ zuy4tTez7d`FnJ~9cr|ycQ;*S^5)>#oT8+8B)$(S89fULAX)uPlnr}+n{i!FJ=oz|= zgCCHl zkpsT!a7Hn*`aZ_NblX&gl+J_^@Q`ZfvH5s=XHHzX zNEC8fZM8wKx4vuf#^Z8%K|c)8FM>Zee>$(cv#HPJ&nZ~PW+5(t_yY7@hyaQxC)?@D z{74>7!WwLuMZC94^Vgq$F&Zx}`G41Uk=NDqlc_x!oAq`XQK-uAW_ffxG4*qO59ZIv z{Ugg(c2jCoeP>kxJxIeBEaZGrNYxahd@2AG9eP(W5ARVk5;_|w%mj;iUQ6@KuG|2 z<+}Yp2=u)^5C^BL@|*L6^BYxEzViI!@tWb0<~#ffX~lM>E7az<1OVpKlL3lBbEC)k zb@_avL(2N@>hE5hAsV-)RH0fl!o>;`2C@P|{J@odb0B7f%}^}TG{d8*=BE#XxX z#6TtAzyN8n=xf`i`K;9HXw+EB5y|wwT%*!0{{S>RfOI?fRj#3kz@woBHY3NkL-Wm; z;nd;Vn{J0C9vMF#KR5pXDmC3GNdyOCme5g%XXei z^Bv{N==x=>(_YK6#;E1k*S6Ko@W~M69vBUuV*Wws`p4z^UO}ovV$^3V9E&=)sTu_& zfzq6b8~AOQ+O1g;+2^%+MCW6YMgIUf3l-B(1lKCy7!aXqk;RE`yM2d-V`+8VTNgV= z7~Q>d%28a)`CM)lih6c@S%9EbEknP)ZpJaev(D&-um=%pc1C04hy%e>X2o zR`El^)fOjuxiv1_M{eIvY9od+m#N-pz`i4NoB4atG>D0UUsPk|)la8@zHE^kR5(&7{l-}8yuOt;=})O8!vB3z}clEWP8 zRi>k;WlD{X^{qMrFv@%;ITPKyE8IJXnC zF8(5i#O6L-RPt;CM1(PVIzCPO*Yfw1e7$8dd1B`8TGiNqE%9$kUnd6tdG+sHALU?eu13Vh-$a z>8#u1-}%k|0L&%xf18epVh7dq^)Q+pi-SUb;ZLJ6r$o8ajXq1zbao+UkOKVx>s|Y0 z5+pTnfck&(x5*+~OV2i5#v-?|jzbGL+2#w%zvTrRnqUzu?ek=MdDk_Uo>I=`$z$`} z{yAuy10Wv#y{lMg@WxHLpWcDC)FQi6$0QANU~&i0{(JKdmE?lNcPj)lFC>gP!wtbPl|@4y?k)SW0Q749OBP3s!Paxr)Ms; zasyvVIVoZ}RQrFQOxkH<5gnHqB!M1JpD*?6i^-m8_cF0?M#OKHM;o&dM_N78DoY7G zhf+@(?d|jH+ZjLx1|93+)DE92-9TMjpWbmK0zO{Z8DkUXjJkNvG|!vQYpg+Mqu&Gd zSfpo>x|RiK1qiJLC@WF9pv-w`tCOn7+5Q2zvb`(LkLC?L`EFT6b{4^mFD-clJrOI= zSFho}TpYSi6U2F-;g&gZJa1o(ZMOt^WrzW{BAx#H+2EO&-PvM|o-V06*bhgNI0By$ z9u?>^<2rI;vw~ZptsRXCVOs5z5@R_x6~VSZ$Z8MlvHE_D2Xx1CYjpavo&<4V-Fnj^ zHc!-dacW#q=s^^(Vf1B$Qt+y*W;SV3ytnDl;f$FWaVJ(%+#>VSB{0caF+xQ_@&5on z>6OYC&8sF5e9(9E+z`z37ni3ZYfbXH0f^HG?gb&l7YPiXSZ(AZYV5-<6ge^!4Lw)L zUy|Nu^YyIShm>ua;cTNbNKw?3Pk>@hy>(9qwwzgW)@p zMR^QFn}M_pTv;|l$P-HT->Amef}qh(SkTl~wF7aDpq4>v>su6=TpnYkY4_v|tvm>r z%F9rP)03d62B*N9UJ z@hHluD9kEXVbgC4?Sq;`l_ic*9VMf!15@?nsT@{SSfd@#hCL4ZR~ANUyj74WKI66q z1fk@GWhaXO>Y{_cdi6fopGpC0Sb|ZcC62@cfJ)m8R;|#Cyfx(8aj(8fH%b>vb-DrY z6H`nC(s{DaEJ^jK>cBInAy(UJ41|L)X`RDtAu-5fQYtG?8r0M18H{%n<-qW#_LD&s z&{GXd$56+j*R?W22C1tqqq#~uk#8rZI8v{@w>NqZ?tG#Qy+Xc_wH5*dSCI5GnrNW5fZ;$&SJ1m!+2Cj6(?t+zx`da5m#iC9_g} z)OOqytrC3JB%XwLV?^GSC=;TDL86@F1u(YW5#} zaVZId!|;I}8bUbGZ%SZ6P43-&1WrLqAmkhF%I&E0W7aXTs(?g_NgnxZj?IUYF5o8M z)uRx3*XY|TCY*CJSk=~(BOg#9F{^Pj-@mp;iMt<~qQcSE7|C8c(09pkS|lwfS>0Tr zHE>Cuwt$*+dcI)W@dobn0vQeyKz1Ol=*+3d~xoKVv88EyHql}EmgiQ#ErM# zwq`&%SvhRQ?^-bb0B9ZdufJTE65|Tf#*o5~2H>eQCWGgYiB*e4RV%Rz#cA(?M$u|K zJthu!AXRCW4U=iTf=Oe}U$oCqYrkKoD!OC^s9sW88dhqt8yc!slT1$OW}iBx+QL2*3c+c;c0ICS(`YHb*2+Zak4kP2 zPQz@d#Fj>BA(i=htTyOW{QBhNX{J#}$1zCCz-U^$iS55nzY8NLAVEnkD#Y#p?Mm)) zQQ3?IH)jf7NNy2{txA*F;Fj!WQ>|JNBvGiSXKtV5j^B1v3m8V#?VyI%9&mw0`$X;Z zWG1tf@?nzREY}{a;HuP`9)o>{-IoDQMld7I9-TLa0_<4r z+o%WSn7xgUYe#2#w|LK$?*6{ZXL8`mg=tN`9-pf>GmVEnSoog7cWE3TMI2weSn5Gh zN`YRdH94iiTpXDAQ2tv(cYSXGLS&LuP9XiRN2Xm7V#8KqA<6a^{Nz8DtiLCG=P%{; zgL?W@R`#=g^aAM8LZyO`Hc;IGsROyoVUv1t^jgjnR`Tr{-KRl)Y88;MC=hScBa{Gk zdd&t-A;k0#()Tk#^%>a3T6`f*SAO*9E7rZTxq3se$#0jTIFYmc=py&p` z(B$Kjhm%HmF8smr?XB&MXkz~WO_-HhQm#Ap+}61<5iV}KHbWsn^SIKy!}(ahr7c~a z-c~-OOtstTAC7CaIEX%%4jNhF-Sl_mFXm+0>|!=_2`C<{Y{G;o=mFZhcza~wA_ng3 zNtB*x{{We^tD7sA)MNM{l+Xy26%n;SsO?^du3P|ewOI({CLZI$@ zf#K6H5Dq46#!;jGXI(T}U(>b2X9-j(J%=0PswUBx^(bqJzHU!#d4Anlp_% zELs8uG7tI2pE%fC+(Y_Od11H8Q|ky4^8^tUkoE zORqLOXc9;?)@p@iB1uQj_CW@;@XT!vl<`xl&FdSd-h1;j{zcK{Pbx$8tx+Ky5}&)b z6{jLTeYUCg-#R&;2vFwLGelF%{E7K@=O54CF5K8%!6IsKGh9n0z~Rh>JU40$$>=G* zzyq4E7FV;;=`_4=qM+5aFE3cxc~{S>Ej7D!TW4NkugL)e=^KI8o90xf#y8o;)(#WG z80N05vWsU9@}Um0FN*AI^c>M@wC3&6WX@wMFNnWAwDaZfH_d-+S_IS~j_r1*#N?|D z{{YHU*T*sRup(CMu}=0+{{Sug-RDbLAbl$0NiD!6rN|~KS7W$4kGh*?Mog4xvU+1N zK)#ul`&zwNt#zArw$xlR+uWlEg{TQ=`3i~}*MZ-|FU6OOYIWM3G=#QQ(d=}cObd-# z-Z#F46_zqSAzu;U_#DQ~j*Ga{X97E-eCZXPz1@iN>@WH~R0&ue<87%?;qvK{6&^^0 z25CLw{{ZvHO7c#%qw79UwuH5vlGy4AKfq*W0G5c>q=8N8$G5(8I5kkheEtqjvnkWa zN&}P0KREn{XXa_Y$9iQN*7x_a1X`~;*Klh>KilntQ303KKS%0yxwD*?Bl=$`tdRLF zX0w51Q9Pn=Nzd;6L}0(w>ji`<(%6jp#hEhRSD_ZjY znW@WU(qttAMK=7q*L=+--M5u>n{#!fT`_`LSP}cS`%Ce4BzB?7z%exMdn+YvE=ro` zl~>5K>K~KuIcr@)CznOk0piN7Q|TIgmRe=p%r zFy2VU^=ErasAf9{Q^`mk;cHs&{G&DU)0rM3(sP0~53KbI%L|{1OIXBrTx3o(qXrv- zX;DuCY44jDW`u_fgM+BUAS`lX{%C_o($WcZC?9KHjNZb0nW%-b;hySC8$xi+uly(;iWsKogckIV$M{JYj7GI@VlX}?Iz!hs`;aPHj$F`-_h5$tm>Q!f+H2F_laDVU?l zlz9V7(0?T9y+5=_WoEq-ZIHSW3uD@BTmP5i0%m?zD^ZU)7 zSk-O(hvusWnJ0g$qX59KA@-Pi4b3*MQU>Fek7~~x>RnrOm}CVV!|ZKqR$n8-51YaI z#5Qz47Qu|WRGs(VYG&&h0CATuDDZ`X^Syub7t8Q@KT`7toa|obOq%7EXrt=I#Z)Ha zdV@v>t~oM^#`-vUvfMWh%>((b2bZ;X{T5sFV4Rz3w;53hs8hW^6P$G8D9XWfV;yf7 z)Y>QJM80U!FYI896uW|3ce(Vxd{#)xkXx+?JN2dmtB^dL{WiNKHhmxe065a{>A#f; z1; zp=D({!4!0&vIxL59T&oxwCufPab-BiBeQ0QG_n(Xo;Lpgknm|T!94PxCE}-{=|Rp5n#c30@;r=9@AM=_h**X6JoR$2wzx>1V1-Iq~ zlp1SzLR!v?`w=0cl>)mR&&=<(`8{m-c{79tV`bysd%Ta#w^sTel&x1%()8dXo(5u` zw9E>U8`^aV*JN<(-XZpnhk!`9-Zee z`Nu20YwEsp@)`r9Yx1&ML2FlLnMvgus*_Vn)}#=io|HL$Im!avmZw1s$HWhnZ!~{5 z>b_V2IxVjB(G7~w;yPX(3_sXIQg|0$l-jEt^R6W=#r(Coxqa$ zd2qRny*?wU2f6uHmCWrfmPA=}bJN_N{39GR}9NG+}l+b*| z`4{;;f8}pF-{?MSmTfc4_OLhB^x_987ElV6Adt$yf*Wzvb)|B&q{Gr!{#b)uUrAkg zCil%+MaPn~-9@0a1yO3mNf1*~s#H`i)Y_CAcw{r<@dXDf97)CfR#OFto$40H^T|Y*PO0kgH>9-83 z(=n-TUFuDC{{SbqwmA$>HU|KVnKk$1kDRoKQ_O;RrxyS)mPvux#X}mcYsi1yceq(Bvapyk|eUzdjYl|5xe!=4zKzLL4qbg#=Rn;kdJ{%58A&l4?* zLqQmEK*9GsYx`8EQ`3CFmMIdPRfN$^f9EcI@u+zR%Q{zE8HTSkv_HEa_SonzReYH@Bizo)J~_WQolHV0YMp4_eo5`F)(1 z669quBHyT=l)svT^ES)NzH8K^^)JJn8&uwoc_A@M!@nRpj;6H(C^&cxyzac&-IeS5 zMv3Q(i~T!6nP$JzW@w!Q0V=O8w*94J)TuN(R2;>=>btLn8YS$8` zo2aOb<%&`foDIQMJDy{}Z`U;$pkj7%bkG3s%VPGe7xKc_MDsnr=O>e|L|U`6$EjG$ zPfB>*ILpD5eXrU9tH|ufzGh*M8=I+^fS~x3%Klij(Ek88Z(LhTdtn{b>04@0h>2o= ziu62yr%n7Z%c%f(eHXGan8uP1`Oi-<+MhOA`BTdZW3tjT=wS3?Kf8^e<6yMtJ}lby zZW!YZM-a=B-pToMpnuBl{D#v!w-o7bf2L||QQo{(pwMh9`*r#$w_MU|vm7~UA&#>Q zNcA&+${))8bI20i>E3#{wwKCR%8hu2Kx-sy3Q10&?bokt$PhZH`hw{5V~)?VY2@$v zm+e2^Pp*HwzwWQ*`#)>`N_*u$lEm!zyr2Km>-W#23sDxK5V*Qx1arwit6rpMkA7c_ z(RhgL^NHR&ZE-xKeG|Q%!vL<^s{%o&_vn49GFdT49?kL2Vae@(mmXEoyq`XytLadz znzYA^b4|Yh1qBC(i0|^-EYrYW6Pp~cetmz=N?Cc*_f@&o{KBt1ZOBK#Nl*bD4Jo~P z{{XZzwAn$H?q)H=xqN-)pFZB`*T&M~S4e^QfFuAb-^3j0WulCuacP#4ISte4jT7^q zQi5gEw9C#G)CR0;*T5a?noQarK8_dVd@(`nx?kpQi|a!^x2rwFO28<7ihbyQ3x{CK!IuZl8CgUNM!3HrXf6_jWhsBQr+K>bnr4fK%LcuUyZblujHj&=|~7epJ2JnEa`Cccm?}-)Ydw zL{|giC_5FQ>6$FiIQDdUoit_1^e>P+@g}2f^(|Rs6UIjwcp5sI^~`c>o1~C1J1x{a zkTu(>H7iXy%z~v{#ulF<;vo@P+4WFhXbx;{bj2(dcN)e@NC) zR2TmMD1G^xDDaKgW69y2*aCSI$?-G2wwq&fAqARQP#UonB-i$<&}9bY(c~=HMt#&(9z-ELz>8By*soj3~tS z3;-QL;=XsK4s7va;5J;D4-z%ib8Mf2RUA&HL1~a1g zoAZOq8lHu#yc&WM)hyl=HQal9<@lsH-k(RCYAu{GL{UT%5Zo8JsU0#A#t&B)Q%UeBHS#(ScQQ1 z%TLRTEgHhZLGr|nHN@p!SL7%ffR?EHL3<7N=}frfzHS~pLCk6Qf91cHtURdz*YD7g zVQN@%8!DpxuW$3NWX~PD9S%MBe8K+!IKgh-bNtiSzcH=|^t9xZD;aUy#2=vM zJ|9W9I(Y#!`up=IS+l*cHWz4@F2k1zHz0#rj=ezIxOJICMHT$j#qjr^Jj3-(5`At} z^u>J}HDGA&--(#_h({-RrYL~;@$2&N>@yf*@b)Zq zI!OYy+ss}`*QH%2PStK~WOGu@$&j9(ZT|pK+phT>5E3+rT%*Eyz3<8zHLjm&a1GjB z$|xh4P}EX@?YCUpVAGh3ZqsnYaGq(^-SoEPMR2HXV^s(b6R;bzeLXT+CuWPBXTcqx zIR607QTe1Y!LAI#SiYkHG4ri`1s zyiX!P=ojC=hDQ!+cKLOq9BGx^{&L#>Tt?nn{I7v+%l_@J*?)f36d->sX}`4xiOqya znAz9h(a#~`nc4Pt{Njh^4ymqb_d0&PJd9 zcqMq*=bJz0AMAX^uH5F zVn`jjo|z1Bh}k%`64OtFsD4`hc}b)BzVFL%!q*U7vwDdgL4X#asHaMr6Z|T2{?5uU z$cFjkmldX8o3<7r^m&5bHImw1Qbhe-0iuLiMkt6bb0$Zq*d&D-MSPubt0P)_-S znq=%;DNIXcpPo8eUU^k+r$hCa93lcMKx^>V=S;(h5Zt%u=SGXkV)E~vZM?g0^*iA{ zlJP7?)mYI~_xew8ckk5aSC2hIX9HFtJeI=W^2%GUQcH-LW*=nnC28}mDZfFS?rich zbMR_TF~U;~3(ML@lx4Kk9#y+2L_UfC0Co@NHP|0-oh7wa^9fwLBZyoAM+O~FAh7jSZv9{oC;o@tyXXzp0 z2KZ^tobfQv%>MxS#@%zu%_ZKE3*Bk|0BAg7r>}tTnf?^8?s+?L+5%pZum1oz@uKT` zcB3|}5D?nL52(ySIpezpCY3u4yhq(et2l_+#nx%#n{fBvJ?nb6o2In$cABlKN2jCP zG(`UTj(6lKP&Ol`#P8QN5s!#$xY5rnV!yTK)_z;_#f`&$YG^Z!8bvZJi|VXp02`vA zsUwERxjjX3!IOt=gR+jIN8a3y*_!h)8eS^+ly5!rpwfSD*W3vpKD<@pFybEqZrtL%f!~IRP95( zLFzU+&i0hfJe*A?<&e|vZ~4YX)x6E8>N+mI=18rja}=xas;ePtZPJHeGjZ8@JXr3^ z80`c3>-m9U`E92`<>+VUHNoKLm&B?CO;3qE`sH~uT=)ZIG<`$!zsqpP=if3U8hghK z(p>)01R6HpI~sNFHq4=>Gc*yKH-J4)(eKFL&l_*bi@UEYd7AB>(%v^<<$>7<v|ll4HWF%{YPO!N_q25KI36 zD}1>f^T&NLYCNi`9>S+;6Z1P~L5TErb0BVCwt5ehlk(Tf5@>d-@xf--mxPVEdVG~> z;atqfI3nApmlr4Vz2}La%sTzm%gDxAZW)+$sU-LMa|0Q@*-hx0CzqzbHoAR^nI^bk zfoV}w+yTE#6OkpX!)M)IX#BH>%HBwmNz)v)#5O*)!DieC6mOAYdQ*PY%%KniP7+C{ z!yZS{(gSsODH0VtXgbjEwqiuvIZ)>Nzw)QZOQ2avu3aNXcXJWr8vq$0BE3&eeY%sE zkwbSDd?7Em@|p7w)+g2EhB3yFppK{6NbG4rT;?@di8pSG^JLD0=HKwomn^lvtNDqp zEI7I4HLV>0uU;U7O~0F=8IK)gxdz!vSxtb7)imo#ujIMXiF;`2>9l|X%kC;@Px+j| zo}k3;;?V|!#J@M9TWjTjx%iNBQY%A2{6WqC0B2?KIXiyOl^S?W36q&11{6|vrf!6( z*}V(OmW^>7tt!=HLP0-g!0(v4g5hV89FmFN2_|SGQp`3W9)g)>GD~y~B>s!rIb{9Y z4z&kxPFM}M+H;^!YHs3-QD<8+)RC9%Q~NQ_ID?C*ByJfe=8PH@rQ{Z#R=8`c0II>= zc)8_D@&doFFz`ggwqe{^VRo*^_i@G@T9gD4P4g_{;^c!WOdChIlC!`7jOx1f;oI6pr9B`trUxj?`{`AWS@wFE4RzUU@=c0Mn!va z_jVC8u%b5rDNlqCAEy8n$;T0+WnV|vHC-Z5{#?7B(VZGO8W~wCtSDDwQV7_CvG3u7 zBn0`QQHeK6D$hK8r;@DlF{=~4)!%;_;o#xq+Y*-C&av0k<5G48o0E?vq(zMDbxT>O zY6^oxlQKyZrGFfjZdN7a0OCmdjsd$knn6O(EQf$1fC1lZYSSX0iBLqa#~BQ09mw1P z)|hyyr+}1lNodLZ&ZA&yUGh?hDo!5YDAYe114Gj% zb{iukf+&KxLO=>CK^Z2(zTS$(Xuzo?6{#2rMHKBgUfQ`TIjc}tryA32ZI}$NP4sQ; zVrjn66cr@Xxyq!{U;+i3n+v5Jg17(@cRo36LQGIsC)IWY1wYN&ooR+k6G=CqwByLt zcOiTC{druON7RI8m00h`uUgj(N(cy+o=Cxv0Lx0(-`fueU=enRvQ_R#Qow9K%;6g| zrOMTRQoNCk2ZatoQes6dy@S&}tZmH)hvSS&0!(kYIVz<>?YD2IC(WMd1 zu&-agB_nL37X5ai9f(P59uJq{>>jr^x$U9#>g381K| zkt;mzd75z)G~c!{D3DbWtg0fNMJchThfFeJ9Bq|NVKjZfBd$j6v@f>0D=1kj$$ro$ z`s4^}kVnHCEoUprGHbT|@^K7I6=%I7GG%H42<78mm`hL=m)y)kfJJ$*+!}jjKsO26 zh?U-`;;T-Ce_+C7rL|r^97HWB0PXa6Po7r3}P3p)8GfpM4(AP-4LOEx3Mp+mPw09J|bGAeCyu17>6=Dv9RbSso4wCl-`G~WX3Ik+Hn(z zT*Va%*N~@SzWCD_$r)~pBooz5RMhXcY;Kz29`rTLVtzci5O+S`PF4-1p#4bXDF}$D z8&~I-83GgnQvy=woKcP>Z`XPps4oN1zbw47cjkHH^8Swt-D($C3mh@V4<in3KZMkWwxPRW3a_Pr`?CHt2T2#1umJ2&grznJTxJoAOZo50t+r ztOehmbZsH)``t#(3iy*MgZlGfj&~afBu+N^-~MxtQC(N_b6SShg`*bH3W|VI1Oy6p zt#S~N61N@|#bM&UK$hgq95cIH$^&|3E4>F@sj$W~;@mrZH)(i#ThTRJiNuBrnH1cq zAkD{j?b~mkj$|3}?DYCwcZnJWGxG3~IexVuRFX0QaC+0f5r~EIaB<{qo=l7U~!$;Wr#eV zIO`ryy+bANmMLw6Rd|zC?mq7tQz-(=t{WZD{z}y^e6y^Z?=M`vz4?#Q4y28wQW%ga zTGx8xn->$T?Myx>+4ev9Bg>k{<<6C)`K@8OcwMK0RyCB}ysYg(UPJ;%A<%v~rPgUi zA;s0=&W!2BAoa~aXp`8Y3bm!P&l<5L23jK0gQvx@%^s4>g*yCTiP+}&JM-s8zW)H6 zj=i_@rkijk)uVOOZy{sB$E1D+UR2~LXb9iL4C^DP7}O3r;7@xYE-fDp&u{RkR;_cTpez+i<8*A^ZA9O{#e?>Z*s-;8>*yUoOSd`6;j?E zs5<*oe6m?#i{9xVMp^K_Zv4H|yy@l7%o%j^bshXyZnEE_%TQUAmSa#pB;K2Eu=_cO zs@DhyZygk2vF80P@@BOtw`=Q3D5yzu5DGa06+r`IN>}g93>uPmZpDz^&xt=Xv@bjU zW@MDcn9v!^ichd0@>Ry63fyWuQtQxB zAP3_0IMJwft#YZ{qq~nT%!H+7^1tWb8ZnD-_m9gT$)V-FGe^=j1zVfb3%v6VmFvfTr?qRphIANoo|`O4CR;M!GWld_ zRz}h{F(S+)iYEoP@C1{!O?M`rEwWj0@J7Qq;Sw*O{NJNptShf*Cc2_EXrthi4!pPP z;h6arqeJReIF^2g?WpQ^FZwW!6urmaSd{0&;upz04yz&P5lYUPik+3d6rFZqh% z`h8JE5!~=wc8qZ-6)9Gsru6Gd`{me2A2(%}w4;!EgC_D~+xcGp>qyll7n(f4M9Rz$ zL9-3EAom|lb8)53;rY7U8DqujSTX} zxp)L&D?@o(^2<@sbRVqh4u%VGA`HU3jW#~VZ@6Z-W18w^8Sb6=ddpC<&m=Yt3Me1EU~5kdXA^1IndK%LF1I;)PCz{W=ZgD zysPqG@-oBobv5PHZlt!8N{-q~a~M)XNhc6ous;d#6#3>JIGm0i4LO``8|4eXF#iC~ zH-2-$`EBNA8jgdiGDPE#D#tIvvaKt{ke`V3;ty__Fw+S0a`YN*DL+WO+4&72xYTvO zB+2PXY^xxFT!P`0F;I4)BXBB5Vsj>XE)j6(*{STXO^1CBy zijrud*bmwS0DkkG_f6i|Cn_K+1^4-7YCzNCLVxHnFYsFK)7TgeM zX;3(lH|g)4KWH0>ndDsEZkXhvAD7>ef1JK!@{gD`A2Vw@e31D+Rha#4qm24dN@>N$ z)!SfL9f#V@R5HXA;m&ly^{3`OziX;!&*lvd-aG3RP;O!jIJ`BipAfAIjleq}mie9e zVUjlMvi8Jr%HJdT%E~`Ed1ikpJR(W#y-U9@T!KgXJ8stXC#YZ8B<=?sz>EY<2X&>^ zM^g$f67pA@EpNQ17v=4ijAZjHmj*d5-J6vOqOT5s`}wdm51BiatPpgT?J)fpu zls}fzepUH0<5bmEWAhF4Z}G@^73)Aa?@ft2*T=&p*?M{$a&fyyF&hqSL-L#RvqJNH zjic+1x^>d>Nn*HQfs`H87NrTLDc9wdWymrbaP-*@4r=z_lfGAdVr^#9S!1%5nU>Bb zD-2b7R37Gno1Olg z7_^nWv61nM@=IN7=el;DCuvNK92GUFJq~Yl+%)a5V;IKIp}#0R-}#Leoc=}falJNo za&ZPOREeB%B~2(Qy+|U1p{8T&L|}IN8_sFf2i+f*{{WJ3ep%?(Cg2Hm%eAEU1aexC z35_e%c%P%D*{Sg44Y<0kR}5%#c^{j8WEVdrRA&MrhfJip&grsHg2MYvJ0P z?QST_G2)LV!44U54sW@2uO({w$LCg)`LAblB54+u5zBKU??#Bf?%TB*yMjN}%vtIQ zlVlI8jX3<_{LHlSc8_!C$RbN!M_zBMSU~2Sl@G-;0sO;y15!BDisr^SEZsPnbsSRk z^?aD#d(?k9beo?b>G1G2&a=rlCZ3XXJV4vxuGJ-~C^FoB9Z_fbDc=%n`E&Ufajs~q zFP?9n-qPV2A&hQ9gI-3zWNp*0>dXxIqmj$Wjy+zHI!tKhag#D0f)2Gw8-y(8XCofH?;hyY2^K;1hrlo&vsac>FmzL;lJ|XcUo;)f0 zE*th+$8MuGdMwmEPRCE22_@E_lfGoue@E$78g%SAIg+SZ7Q0l_YW(-E80%vnP-Z4_#ur)RG7NAG6IdJFNJse; z*S=xVKRrCNcI%;Bgt*mV4M`()p>+h-sN_+LZmskYGafC&m!QYP9w(Q6cYb4Aeq?#H z-f6W-5;%kfM-mz#@GTFH{{T-)oWt!HZ$ZY*nCHpF_7BTnJxAut2;4Z1>J~AyYd}Pc zvGySM@b65<(h?04->4@jdLEzUUoOYyZ~0g{gesTTHnYZ6HuadPAis$epdCCx%*{rS zUlR=`q`b9$?L#fEhSx2O@6;%SivswdQ{d3Q;==XTZN2BZC z%e_c>??}=$xF_{>8)l9-W)-7>zkdG!uQb~IJx!)W@_j>T8#JbCQ^}Mv{3B*zuq0)8 zr^4i5#l&7U`K9@-!H4%UQLW7y`hp6-s~zTJaS%r?*_l;HcSo(}%;@b5`_W(_ zPa#k%u-~tb(VD!niFKKE5~rhR+TE-O)|!2|_*R~yn(lfMHmCXhI?UTTm}?A;Jr6_k z8cI`5yfjANk=)dF%-+ueV|OFR=pL1(SsRb^i+K%E3-SZ(kURYTjK4g9J3Gw|13k;h z?!P+!0K@u>iKn&pt11$XBMiu_y+*@r_UoFt$jVzg9Y%i#kxJY1r&{wY!d+8ByjZ3C zF2oKzdTmqJzkHsf9Ef!}HT-B#Fn(ZL=o)<2*K#^$;s^=X#B|X=aykh9c*x!*O*9Xquvdumy#B*Q(p5^FQzGylhk#0Qm zX%C>&N6y_T#HujZH%k1E;ecl096`#cf$4sG-~M=}yJvH4_24H8c|b`7lh?NUWH4O0 zywUBKsmN*LdzPu2md_Xb z#`E)euKxg0hs#=JyrXp)42huhn!$>s#RIAFN(78~VXG)t-K)`QG8iE(4+Q7mk4N_WDd{0e7*TcFHMSvnL~3@Fuz4lQMFByn%`aw$M)N$f>?S8myeFnC6TT=Gax%jK^3Why<=ce5 z4$7(NtsGXHu&=o3T*ds`Lv*C-E!QqZ4mj3|GDrvU9 zQu0LJY}FV2D^{LMgyKM|DKVg@g+n)9<153AL~%=#hvL+j$DX{;bF1rc`C`SGTwJ)4 z>Ck_306j_UTcGdlnq1)KHe5{k3=IdG`QKX8rSm?QqpULC>DDX3qfyoV(Cgo|e0QOy zOBOyYi)6EKjh|I%pYxJ_Tk_Y{;J>^&T$CZLArQEeMER$bh^2TQ!cXC z{{Sw3H>U>v<{4#WAf98>YSw|2AJ>=}bnwqD_Ih~hv5`{d^FPmT`Ntdk{SjjPzKRg5 z$$~}#)p~_m0oZjXsrSrXMufmzS@;;|$$#Yk0F$+ED|ss4P1j3Dc#1@U!2|%!PP>h$ zH_74DR?f3GW}Yhue?DrrzoN~xqX9M4klRF5?irW`KE%_g-!ZdK)w8RdqzxC&Kl77U zHulrlN2y%;wzkkO!Wh-v{w@NCfAYLDXOcw4*y*4u(_i_=KQL(CVA5`Uzvd|6F+96i z$^iHZ{3SVcru6<9jzEsZ)$6BHv=8Qg{NfgyHmPCeKPME-?^Zp=J3kH@PgWJ^U*v!i~}m7@ShLJyATrE?s{Sq-|3 zciGTCf$2#Y11*s##x}T|mQ~t#33%h^!N-S)&91u?Wga-YJsiA9QG8|P{c*Zs3sriS>vU$HnpGtUS5-?doR0o5otte?w4q|Gw00ij_>Hc)ktqvswVId<9+zFm>!+vN>zY^R+&5lb^HL2L z&9IM2BS#=gX+qtFT9nvt{qVGvEMQ<>t_#3wZo}7L+2K2&n#Xl%7vgu05_-~q>Rv6^oP8LfN zBtL4rnzrAOzm|ho^AUcTxxI_a8vo2!=t;ViV^mFNo|Y=062H1dD<1$wFzd@pkkQKR2T*LKA5)#y1;(D(j1zU(Q0X}`1b2}<8BDh4dknv=2Xzwpke`nfxa4W8%uW92MPqR-y1Gh{IbTs}LrQn)n|M!%J6u*pmb94C zSM?^Tg_Q2SYyN$5(!2bX-kci#4_-Pq!d{qmBRXdNCTNya> z$4QE6)2w3JA{0>6bR_)zee!o~V+5!4gwnIi6IK5J$_9t}9EdjBAePMK1zErhYd{GZ z83t5@;9;23hBYLL*Y$lkF49p_$g+G=0&B1%U@4Iyir4^UWI^zOT2Om?e;hL1wkVh# z3M8^Rqiza{_UV=l+Tg62>Ks zk2N$Sr7O2=GLr#eS6=e$noC>BB9gMGdLGKcwXcE5Ta^HjD5Hmth>?=t2t6>>u0u?a zOBKWnth}AJ-@g5D9h`CsM{#W}ky+vdG4}AunYKpIje8}^gCSv6Gy?@&X9@^bPly(F zG_P&xj~Yhl?T}%%zZt&CAa(cl!7bDpO=0x;y3AURH~E|=WJXlRHCr=lFRF)4@zAnO<2^K*l0LE5C6;FhcH|^7WVp4ZZtx`+Y5iM!_$EN+yPMIkdwqXs6 zib6RW0a|QH@!KKIyhWMm7Rv6UhUm2nM_<1xoSUNx=9{&ngX*;z>O~6l`?3_w#2!g} zM47!3D9iC~debeCE<9Ndr!@1Tmr64($fI+&9=K}KNnm%g76#rj6z&_u6NK!*yu$7V zRx%KI@4IBdXpmZ-t11Mq!YWSPd*e)~BMUVH3Jv$B=X^BP$4VDmtk|t zig6V*+#RXYAOl2$uI&9t+U6s=idVnizigE(LO~UF64r`-BSW|&A`4*_s}B2B;#O4H}Hav(NZBH}3mq_TzPJCTfo0#Vw0&QO^RPy@vL&$dJb zl<8JgkJD9*RMvx#`|yC*#YlPJcX8=}NHnL1%LgQZNIB9(VvSHwa%+Qz(`c)BeGlCr zG7;9h(B+~jGqg-@*B23o9~d<>0+b!T>}?blYuc2tT_5EDY<8zj@|fPT+9EUpMqu9%s;E6F^T`2hWx8u> z#u({UJ-?+1i5HZ6(T_~c zrc#}yaJxvZIi5&5cKfkaoRZwc2iRf(JuowfWG_8qF~#vzP=ZECBagWtjgbE3D$Gqw zdkhkb8>Ge=ObR1iziPcU%H(Z{Hkw=9`lL%B6miF4*S$_wAi~U2`}yRSbx;7WN)F!n zI&6WoExo#>9zrt!o6vO97VQcCz`H-Ao|lmy=M%kZ|3Mv z@X1S(%-c4+wO^>)rPDcdEQA6nvu)GmT*8d^aUwTL;kJg-18;FtJc?Xx(9rE%GMuJp zGoPzxtoeV>+LxO=iFNsFe|03bw$goO8*?LiXzC9W!n{ePKqL|>Y1b&!!+`Mz8z4B1 z^nApvC9Bp&0H?xf;omlqHtmVp(_KBGyq+6Jh*nt@YNCg8Oq9n90xVngJM;{GSkSF> zJ5VAP5Gs;J#mx&JrH|d7eXPslWZ$dG=E>`RW&UD%*IL!o-lG2YMl}a&0!DUSn*j`9 z2cXek4KP?Bkr^1*nl%X>dgja?Ax?eRe?T@KezWtZ5t6sEy-@f(3e!Oo7CtZKTp;?xv1&(%E9!Dy+Yv# z?p-5AWj%h|atCd?X0tA!!0hYtM9A#3%pa51{{Wc!!)afau$z5R;WD~Z2$@rIcRLYH zhf+4ota;={&fl{2W+#R7vS}0BYE$`p%pRl{R;pLh2zget<+om)Gk2xU5_o#O4wqO= zsp(o8OXUb5)^rQDyM=1f6d$~dbRde?u3s6PX5N6xGYL1FKQM0m-z;{sT*+|_NFbfp z+vT=gbtXdEXM`R}N0@D)YcjU#-lV8Xm)I3Miu{K8Uy2B|jQAKnf#>~a^4?SsLh@UO zc59 z^N*L`%oduR=aV9hq0=EU+|%2Qjh{4mX4VV&KCnSshd&E{ zsyYh$<(?px!O|T;mp7sL879>{*pN>%$!%b!ULc+ar5KN&hwILFw`al~S7}Ue?)7bU zQ>kkgdUSLWK@3V*f@&NWWggVaV!71(sbwnpP6fa71d#HMIX)z}jg1Y&qiQHU2XnFU%KTmt zvkZE99hmq2g}l=rl3IE_PX0 zn!J(ak04&(eqnihTt|6#YQ&_{a^%EN5?|u05l^%{4r{Z-ce&lAr~}^hpCoCI`xVSKhg@ z$Cy_LbLXfs3F2yM(yKW=c`!BHoSdb`=#Fy|zgoCWUe;(WRYlDec`X2^UH9q-N@fm7 z2=aE2)bWO4<-aj$_HcTatOB5=0jZ(bP!66o`?GzftdXGOomj$mdAFFn%=+G=ERw{2 zs+BP*AF>Dp*YWveb3j!VsOos-XOkH6?v)+SI3?y|1iM#aIWeU(O&)aQ&lF_&d-Ipb zHrmbP+NG0*yRwi+JI25jQhwIdtvqsx#?3n2L}@DWx0yAa8(qHgHzBR*mdOmiTaF{} zq@YolRPh0bQ@H?+wBIWLLuUi>6U)i;-QCCNDZfMALQUi>u_pDQU?_TS4MqvhSot#W z{{Szs439?D7eb0=5jD>+#$+O_LsFzuzT17-u)&x`$ib0TY%>di5W4Y~`4$~0vJt@{>7)Pc0Wpv(SO*!to(F?Dq)zG_hO4L53xu0)l{dpzoV17eTWmQmrz;&wjqP$~sh1t&tw-mUtZsmAYJ)Y

    ~7WK^ie$D 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�gSPW{P7Fk=~`CClT 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

    v;BhALilt5X1arwRf063_B zDLkKH=PRvV%TSW}V^)sRPJV=rE5@R{s5+5P#8+H(r;mlN7P>ik7sgi2Bxt}8!n7VE z-!{Bgvy)|Hmdz_GND7Kqr7Mvvz)^-_MUgiGqpxc8!xF@z(fwyUJ{H+P8~bDkVKR)G z&Qg6TP=*4vr3o1EaIuKDuKrDaRNsDW`HJ7mP`QfLiv419_9BcQh@aF4j$`G|LV`19 z7=!hv^B!L;f6g&^RxKCu_TE`FXSd)zHl&{tf$Gc0s5_84bf&_mQ7IC4b=YO&A4~Du z^9Rhj-uoQ@_8g?VrkF=)7!uF+~CLyx5uRzcVe1%mgUs1p_*O8Fd!4x z*nQb~kPPEKC+r90-#tG_v*2C$_W*khCr`G=f^N+ug-dOX0o@Vkln=W}+>XuhA>DS0XMY;eO%Y7Ra z6g8n0rxUKvo=_V(dQKCu>iO668}i>${Jrx%-;{M9-OXtu$G9a}RMCfsBc@ZM){N2L zn{Ip@1>skEb6U*d$=&NpZ`ZHW+qP~o&f3V|bnnZW#Qs>+ZM8c|9x0)bC00{IRUp=* zq1)&?ctCHg-^WvQ~sp_vNw?9?kn*quZYU@xxqX#b|2jxgX|wQ z=w`ys>r&E9EmMucrqxkUSP!FdnHez-Ex9>)F1;^~zc)0UH_Z25VvAHIH0zii{z?!z zGcPF9=U%42Mrn0GPG#3;HDtdV{L7}cx#pC*v6e5a!>HRs0CBeL1xgCkRBmbWIbMKp zSv$Bm-p)8u z85@}gj~8xYoVilF00nod&M^Dc{^-&|usA zZvyc$Q%lt<#88LfU;d7dpnv^@nT)Fpx1DH7RBm1SZWI)G_H z4_w01XCz#Mbg{xE^atc^z3ON_X3+IyXs=^1n3c^8Z673Uy~FSF%)FU}Tw3J-B}gyH z`~LvVA1L{!%paFJMuzj-Yj%$_Sj?x=3ae8pR)L2fvPSJtH|dw+%@Z0N-O$k-VDP?q z{JgkG{MBiu+@ktVaARocQm@P4Uy(E(-8y8l;uD6>pHYZLH2bpIZ*+}P(@e1~Au>6c zRCYByY4hvhnp`uKWy140qr`T7ZRPDV^gIUoRi(_}mNlmk$ES|pkG6ICO*pOGoD<+1 zzG?peoU7C?bxj`E%9=bgPZi9=>mHJ`HBP*6HhM*H;G8 zSfAofAOalsR#HU@_UpDsEQFj$%<~M>$X;Y`BzdPm^G2aGaek1vWw|Rw0^UL)1*kg; zwSUR`&<)sW5G3(F!~Ew7VW8jNTfgsg_lEL0Py_wT1|q)T)9K2y<1^;jl*Dr8#dWLr zJl|)gYIZE99ZbT|fG9yU01>~52Ob~cYL-qRY>)GISGTi{$I41LByplLj^;28engG( z{Y(cB3kl`3!X63vnQt_{QP8!GF5x5AtTh#KK=FH^d+AT&h=Ppl_{NJGYiTuNPXR0x@u+n5` zZ0~^JWwn$BP`qhVN^&FNC&1>aIJgeZ9;XqXx#fC{m;O(Qn!)ZZq=*Zs30gd=55viN z(Ynx_&(v~brqhXR^uNhZGhTjTeqlG6Ji8n=mu;iYE>+YwDFk#Tr@MSTg+)gFa+zTS z)4kA>j#VebzFqQ8rRT3Qua~q)8hgu`cz)?gJDS&RhfT@w%e47GjXCBAA)xz{%05)Q z@)wk~uPJ$ARXW1my{NlV4O%*SiWpRQf=1i+%v_nc4*gs`f1_xnf1Dm}lgswjo>X{? zTHTNIxl7Wc;Up=iV^1H)3;_C1R-AI-8@(Gt(PR9q@?73xzAaZzQ3IM9Frw6ak9^c; zpB%Vbv%$evYpn{+jsbNlAqZ24JAknCkIu_W ztzERQD(MhBo|ikjfe0sJ+(Bwqn{@un&dro!j?O-cCUWC1Z}R7uJm2I?%`3|mnsuI* zb;~JWh+QK)dTAHL?tqF{pc~L`LCsvGa&8-JMpQq2P>h0=9r`t&>anYSf z0Q_J8OCI#?wqHC3BHeyzJ~I5${K&ZTtnptff&gU-7?La1iQ9eYw_%vr@mA%xvouCh z;-4p$z4BVdv5sz~L1nD~{{S=7-|ozTE;COT_vjDTmRz=a`1Ct;eP59$2;2mrPL;YMO%&NJ>6bM`67ynVp@F!jBPl+H71$ zh`eh+)b8}w^lYb++D57wB4$?NdVoh`(EDcWWa1X*!*jFjpUEH0uQ%!!wjMN|c9}#>~f{ro+F>FfvTF$^aetJ;U>tTGBMgC)B*9IKIBNQizCo#$;`Q_)g|J zlk@iLosd96`n=r0IdAy;5i&%U^v%HK1 zMFvOa9Xe0Uk2vaHVr#BCR+3G;KAEjZJVM4gRMM<_cdc;g;xX>W!yNjgAC?|T^538J zSv37@NNg?ccugdHeOZb7JMYqmebq*7G~>iQ%y4CvGsIr0`I-L!IOA&md>@w|^N&&7 zYIZ56!F7B|1JZekQibXU;)D}V<=>AiyIH3PVY{%wDC%XgKzV2Wan|?p+s$@5U!5#D z+C<)S`PU1qt>Ux*Dud8<67Jmd~rdBflhk!{?n+%InM=?eqh88_Ua( z5{iy$v>TJ-(R&=iI=JVT1XGHEevkR{{&C~-@5z2>{V6T1E2OWbEtR7DPGn@Ow2a>q z0Dj7nLi^^kwe;p5kZBs-RB@$VQ~bixzczfwsrgR+Ptd+w^7Jbt>md=B0sTHAr{Nol z?cc{L?9R#=jUHZZmsPIfH7$b}{L}vcoU+ion`u9ie<^L_yp{#xW=aSY)`NZd&=0@A zTB9zPc+ zCrzOe`uBZ*p?TL&@=l#&`CH_xsEX>hhD+U1K$bv}s4AgBDk{Tsy#)XRu4BlGqs_?H z*pCDSd!Cp1F{#UU<~>JRxtCMcbc;Ej3p;s~GEF@PH8KUWM zX=MY*y?f3d^N(6qvwGfr^0k^0~hmm z<>rs(ogpFf-J9BKrX>*H7Y-todZTst2^|k=9;1F+EF}(L+h!TAV^U_j{IJbW`Z21<_n+A`u2>is7CywkOv1IzPi!N9+q^SYWE zFFI@%o;0eGDPLf7VWl$RwjxFYhA*A`!TC?;&&*9o={kb0nWM(V8fhGIbOyfytx2c* z9I_CU`Lx4CF`g+tgZ#Ptpz;^xjhMQUB)!yu1+K1?7gD_nsQ6aBNvDN#Vju>^yiXiq zVVPWc&gWAi7%IAb+PH$?F=D}3gV2=}J-X0l5v!oUYo!rEgZU%#0xL~({#D1DC5|&R z(EqQaH)@egF$l zcOh8q-|osIE*;&5I9Q+)k={{WSRxIh4z=ZY{{S^FX4W-T zi$u4XpVE?AtWyaXnko;9t57NhDL{A4W;=+kPCPY7D7kZbr{xFbX#Bc~;qt}3)yAtU zgC*pVm~FTU{0LYQcIv=yU8#mfw<(sdBu}OF7PKe0w@)!@Xdq{#cOng!)Z@A3)YD;J zz4IGYI7&AcEb1~$dYD&}H74^0u^q0pcD7m)NZz8`o--!0I!v(P`^q?*;%z3*kLa&bL34 zK4z21UTJ4BiNsLdH`#LSPA9>E>)M_2ShYqI;4d>h9I;Pl)G#XFKj>dDLdwK16>w34 zxT>A^+#b1?lnIUYZk*`)-x2xl$5Zm}n{T|msb3rIHpY@!ZYr_J15lqHz*e3EIZo2S zMx8|RT>USxe3__fmbxTY*HH;ApovqTDg_Dv0-gf2Igy~v;l`cD5@WebyqEcfKD)1K zQCxtq#IYEF6O{Q(Vl_XE|kQ#jBSS<1hKj4PR06x1BX@BS`0MXQ;Zh=PSI)=bds7Bl))8JNt`W65Uy2)T8a$jHS zf0#N(n;L1l%f_p4c=~r7eK`u$P*>qK->zmv41Aq@{YMLlx+#N zw!4{W6k@Ojb47i=$R68J{6}M$;!%XCJMPZyal=yC>i+tEL7GKp-BzDq?^1W7 zj+u&ea+fDfqSZ?&^{D=IYQAH#^Of$8ttGVu<0$AKlPIWGCAgYawAkeX zQN(H3YV^|2usblHBz|Q1%T%z`^j|c|Dp=S}!bJ?>O$~k_S`kt7b@>Tm5$fx8ngfnB zkXiYcS5!|t$3^nr=?HD6JlLuRY8K<&R2|JW+P!eb0_l`EhAI!EJk_OK`Bzzv8|h=4 z({n6yM@mSCV8DWEXnKvZ&M*jz&(2cCIy{vB05yF1Kb7=l()_;^w>rM5TUb3aUL3_a zRBv7O1NCK^+`Z3V*%y$|3}ecFkvD(yjJibMoxhs;tacJC9Bp*B9;BC3NxGm=K(Fm@ zK%f?GgEHfc<`#DMyDfH{X|dnf`X5gG$-77myi};iF?DRP`2BsaZJ!C_(AO)ppHhOd}cD%HiS`S%;Z?(|@jLIwV@8uO*KL zGMA|J8GaI9w@%*q(91U#AjsvB7G5L%0MNhXo&Ny5<^B2o>;3iizqr>v%=7&D2s^mC!x_Qy@0_$t&&@wJ*m-M7 zw1(O^xQ-FT0wjA9O#l?|r+<91I?;?e$Yq8o`Mm@4BGIm|?L3d=>0eKh))?SpGnn}b zaTE(cId$LZ-zALk?j3$U8JD5{Q+YQ_{IU~jH`=sUvri%`M+BN zNYhzTBtRpHD6~;Qy#PD)>zdi+FxWRsRT`j(yYel70vYPStyL8KG(ESPhaZ*JKw&8o(Mlacs^M%CLhwPXQIbh4C7Sh7p2!4? znWvPdY;t+;<=^Hso?cEGo#mrw%19QxLpiSJbKKLz$1laE5!{B{nIsO%I`91DEBR1r z7QR%GZEWuLdqg#f!4xEewR?2w)a9R+O} z`FQ5rLxAGu?gnX3o6izy?8^jN#>DmLevHrh*h?RBRVzy_>IGQuO@R4gAzfPqmR;oE z%q>&NMrN^b@q(-vR<-U4@XUPJ1e{G)mN~Y47x^9evk&QM^)E49d|s4`3d}hvk%q_U zKSegpc6}cMuGIE$#UD#H^XH$u$>zm6b+nRCY(X*wrxFievN~oq7@OT1EO3e3zDn0L z*VCnNRPru%9Rd00L8gs|cQ63ijND#7F#|62rD@_lx@Js(Vj*jmU#qAS^k7R=*DH|j zY~ikGD|@94>c-!_W4I%>^rl4GCA%!NnVCx!9O@4N*L)I%@@gawY+q5CVw$u9KuGD| zpcqBBSm>!8uLb(m%K&%!9!ajg^$;j}v=QJLrsN9=GcC?H4(XADH2aP-Z z`CMgg787T8nq6J3&$z}sH| z>cS(`B)E_2@+E0r0B^s(Tf)jw5pb2N!?}vqiMe{+(vQ7|2c<>wV^6B?v zPQJN1?M{1@1~dNvIRkHJ_GwC%ss8{v^~jJ< zHvA*Q6!P@5;H4XBM&$I{E+w$;o7!AQ1Eez!VuXtJJ#suvLX@smgS3cwa|4SFy5QLy zNCK|JDFD9vlh&R-IcFv2pTLC1keI-f{?PCDWplSbyz&lrlUn+sE<$p z2M}q$f5Wb8GMd$Efj|IkwWUe%%yR-90TYj# z2G^}Fbf+ft86z7kopUD^PA#0ge!fju+F5FFw+fk#%Dn)u>c=EV-MA7tsV|q`N|kP} zxftn1;3@+Sm8QqvBjSm2WI!yF%-VCMt+nw`WBWDmsM|5IWfw)K6gYXX1)8MW-3~QB z3j>+;(IzRqwV{QKv{OK6S8p7Fi&>Q}(rupZ=jwn^v(!`A*Wb28o)k>*^G>yRKBsWe za-&BX>T6nqj3r{)vBvj#vvWpOJITwXI!aL=WHpVfvO*w?zp=yL>I}m#I z$}-wcI!o-qwY*k!sYc>WJU6Z}XDJfbn6I8zC+w>|K7caF#+gMdvRK}czSU4k9^UyY zq!jkX+!;M4H9&R;r(YbaA*Qk!EvBz^b0l^`XIK^JBdOvjI)T%!S3;W1xC82cEO~y$ z_VUu-&Nm{{MYOdS7est4>l*WDm78GBcCXKkcFjcQc%4MD9H(c6{$lyN{9mfvUg_Z= zuu8>iZ5X1%4Sp0~;(C+u9rH5;I7_j|5=+74o$Y0Gm21qJRO~!=&5U<;1C!CTVvnbR zBbdSyUmqF+(|?vjArW=?j{7Cid6NF#Q*8~@i5N6i28%=O)9%Q}7@KLvBsXRHcb)ZJ zB53A&hu}6z16GE;4QdG6r%!C6dT7Ygi#-^~Z<8my^W$GQlUH*~lyV#U-OB+zS4`48j_z2K_&1&U**QADKUsTCbBNp4xaT8|;$+c$3%leHpaU z>rPFi^g4Y|mdBgfzvmk~sFqp{_N{Te%48Gh<%hCS;&Q9vlSb5F| zku-9*dW6xp641v=A#JJ1&{yqmw)v>Zi^i43*5J}h4CwNGNB;mhclnto<*$`ak)TQS zElTWhwM$jw=s`|24Y^vT%e{9k(=~dGLQYiW`1}70M0o1 zi}F`lx$>WxBP=5&W128bQVzV8_6N7>%e4KZVLl9$57_i_$HmF=W~XN*lN)=XL0XSs zd*<#F;}((J&Hn%^e7}3gp(#UdkE3Cmfj~2JLw&QK$5Jx@2+rc5f=^ zQoI^{t%SC#GM$)+=*RCH0n^7c(##}kE;KS2ju8Ah{KV8^)>-uZMDGan;+MGM$9nep zWtwc9OpN$nI^5pfX}6w__pW{sN}ambukg*ZO|uZ=7WB<4&YFRVbp1~4<%B3yhDRk- z@5X?gsZ-O$<~~RVU6)D*@l?BcC0|S`nlCb>8gJNr`AlFBHr#U~W)-VxO#&_KZAjdZ zK-!+!WHJ!t;{sgV?Ip4;ySq5zNe8GId{$B6Nv^F@>5a9?6rli-xEXk$#uBBvHk@px zkjW@@0D-@LwK)?KTTK-WO42zP7G>sqJV#6rDYTiPp4hRVRtB9aa#Bw;+S5_vMU!Vi zu{EJT*;AG9TLLy@_U-E@tIDK(r8|A!elm-X!%FK3xRe9QXhl@_UgZ4)BPfoGA-Zcb z$1F&^iZX7$z;VQU^Ql?p?tpbDBr-##(M=uLbEZ!R|gU$L+ zkl;4@8VM&=peCG{({?@|ERctY;N*@>^52u&{{SX@=WF?^qH2CX^CPIanM+yo6{FYS z3tj2{W5YE4p{F=c99SJJbi2MT^DcoWmvtHRtD(kdret6$DNVdHbEDMw(6^w)kV+zw zlXOdZQV~!(5t+Q%5Kv|j55#!!@gDv1LuRmTGSe&_97$e4d}E2O^~&Wg^vpi0{G!t? zZLZe!?BTn-xQxRTcTtHE11So48gw*0cki~@sn=v9lZ`!BhWe=vh5rCJ+2wZEZwzBl zm*R~93ncQ=yQ$in{R8gI3|x5*?wc%*sMF(*FMfJ!`j?yE&K_Z{)wIo7AeVG8*PyTY z`0bk+>9_^EO*S9P4^KDgG@p}Sm!I>IIv@Ct$ky>`*Mc555X1|5Z%(CZJO2Qkb4M{e zM&oW=wTCd@XN2h=^N2dvmvz|hQ_$3O>v+t7#yT2pRoaw0n&x&rWaK$D=`%#it@mf; z9P-bp>Dpsk6>U1ojT0$TRZ1yfz#p|;j^}L6)9QHTyWMH=f;fZN?WDPpt~|qgG;x)2 z5QUf)^psVYnhrbu9ch~giZ;t8oDsxX@0q-d_4utdn<5@7dI=Fe&ldhu)2%5?%gc|8 zlV+bVfu;#3moH)enDl$^Hf!-l zFCZq`7jKHB07+6t<8#x)u3+SeBh9wPN8$ef=44B4<_na%Rpjo+i19szX^x!Ovh!N} zbt-w=u=vsshCq6IW=S1gc^we&CpHq!+;=Keb?cJ0LLrjrw<19BkO8F^exMD${{S3# zZKowOza{z0ThQ;Vq0;W%7CDgd8*w4N5)V;M*@vG1m4ee9{ZG@M%)cjT-<*0Do%xMq z$l9Ko$!n@iugNYY+o|qBGz>O9_un}W4C&^3ob4{OXB;wkH=gvb%Qxvz z^x1jBD!VZ!;-T@Y9rw-V8A?NDy?B-##k?cTpOU(6r)wSGmo*D{TjD3vl}MrS9Y@`n z7;?@BcUU`0g~@|?S`Bl`GR>m8mb4&_L3s)Ty4IBXKA)BOWf_ZaGmc?nnwOWny{LJM z%rI#BO}vsV{KKH@_EGSJT-(bmL{;h}4OU*;^!#&QJwd`9KaN1*FVVdNL-OaB?&I?<#*t}p ztq9?``s9(LFm~K_;9?@S}l-e+xY&TIX3S*-3Zxk(T|2#H#S zsB6%8*DB4I#unmh`%YY*JLOGO{$FeJd2%bCSIZi+eP>CPNgO#3i9Lutzu-+XU7rcY zY&vhvfNU4MdGpUYuCZ-vXQ+B|MJ!)bif)VpP!dSrrrT4$j%4Y3Q+^3Kx}8k2Lc`=Q z%&#jqoGz}TGe&N7sH2Y3Sb!<@f$0Z8S?1ru;jTtZ%Y3FoQ%?Tx~G=B)uT>V zQb~TM&{B*;nkz8(ule=Ny=35GCKH2MQvklJz0ox!wVrEH`|HRRWoXF)LZ@zDuL;@8WzvVm~TRcX)K;Ti5})Q_|Nw@Wn=sPM(i0y!nX zcYd51v_H(R&70rLk3P5PoiEE)zMh`75w*-^P%%Hn-Y~ddaHlli0@8^a{gs`uE0qo&msJj<+9&0Z$;&CAZYP{{U$Q zoL%61;_gVHD5A9|#3EwdO0^tC)+&B#kU?qnhwzQOAzQuTix#Yb?VY zy-!=&`D4SvPVb(yeFFag%rhGpV0XQ80-_;idY!1C5_2kAxPh^ERx)yZE9TG1nEa{v zYj3YlZ6fP3+&4C4BZ`sGlel1Z0H2@@^0BOq*-Yz`?7#W;-nleaTE2yPye?7*=Y%rQ zlnq9w-oJig>tPIq=k;TUC4~>q4?gO@^Nk;#7k*;XP|Kof-i_q;=Vc#Bx{w(Ul^BT+ZAM;wq^UKjJR-RzDjeZfkNUO-Z^gOnwO{vt=kr?!& zj`}*xdaSd{zb}jLzdPOOo>aD*&94UyUK<(h*5nWmr@)d4>MP!db4v8g)1!<yjVmW+4xdK70Y2U{)aAOgM=!P#A7botQ{NwJ4tZRN> zwEV^M)G?h-^LunrM<_s~jI`L3UmEo^CYh_!=!Qx0I=tFg;16!p?Ch=O{p9?4*OSP5 z^`>p7m_fjno;f+ZQ(L+kd&i~~Us=g4$elKC+0Q}pl)={N^dV~n#Y&~ zSDL=D15!0o1aT_S0;_Hhef}ffgEi92!?1S{?30&rUMu-+J+GU5kNy#|TYWw_uNUhw zGap`g8|;CxBz7j7C><(mmxmFU-N(&?^5UKs`J?4){{Sp%pQAMdc-|#b8Zp`8G$5() z?lU7Ccw9psFMH6xFn>H{^GB9+&nqH2&d|daqceS}B#wh_B&iLtB!FrU{Nv60YOv|PTGitO+cdY9B#yDDG@;}|AY4X=(Pk<-P?}PoN55RZ z067lrnJ|IBR#~C{0M1Y8MbkuUIW8bZ^~L^knrDjy;294CVE5WZ#*Z zs(G(WzG!2AMm;aqjzZKRby7t(Bk10liJGKrA~??}K0NYwnROjv_B%ag_G16n-a`~sp{&ic83s}{)8yB;*it_67n`{TDc?A`xK}A2;Fy|qZx=E8g z%jX}%+v(5w$veBB zGev3T4Gm;yX4^eeM|O=xlJeqp$VZAI=O zjUtGKA*JZG6t2}hIt=PC!hFg#`35|8!}R|EKd+NNHEd>rF>wPmy{yr-2mp|3e0Z_1 z-ZG;uDb%?*Smi?E^)JqiVr#$5_0?RKx3<$n7To%CxhI+SDyQ{)vix)>LBh$JMBBjs z06wO?mrl}rr=td$ZUap^r%Ef3yu2uW_NmOxRzZkUm!!fq5_o2bBlHb)Xyc>C(BZ&6mU#7ovtg57J)a`H}fYZ{&>&PM&FEmg~${VjVu*p%Ww# zm8`5eQ3KQkUD&B4@e~<{q!I?tR})jJ8$>>>(scW8C25wPShGPD`oMvmb||27W^WE( ze}-%|a~Pq!jhiWvsQmgoqs?EMYjvtw{$F`&IbIpxjn&GE1yALVZw{^3_2(jS@p`(n zW{jpR@_9F(yzMpqy>Fv=cY7;Dl99t5RLX;j8V|L{-lH=kk83SjJW-i?U*%7h;ry8L zX0!R7=U0gNhgOPYwu)*rr|-;# zx`A4n5t*1{;R^3}S`9Z4;xDoP04V&qFOfWlsQHx`OLwZE2(dL~Sa;*@Id!J{b=xSM ziQT~MScw{n?<0PJ(!8&C=Wj7eTK@n>aF$k^)_G(Vc6#hUB!yknQ+}C_IHco8Lm0=+ z^M0kN+-jGf;*D*c)jl~W;4$Ri04sFs%pPsiyrZNIBSe(Ve|gGV zw-r*n{>lo}f(KJymf2XwW@xoQ86BRt{{T4JeHD{gk|ju0IFJPljDKvOdX*IDD0j@* zZ7vjQq+&OHG3B2$-FZ`0y0Ed47tA{U0Ihj;B0Oml9x4>mq+?)B4~ASa@Vd+y@<94O zN=x~p`NY->quI3PRFXp#+7~-Axb)w+*cJqj)sr}UP0O;>cAShjLp{>r61v<0#88Si z#5w~~H?IA=46895gQKZVd{2*j_4#%AsrjRII%-l#boH3W7?BzG$rk#{A$X&W~HR~}wwww_QMu8Pru^Byc{uTN^`o*B;-2V1Dp z%K@ni4{Ecz{J!#yw7-@bMu@uJrtBn@nt|$|54Eu6L9hd_*%ZO5%fqqe>@+e5(gWl7 z{HxXc>#ofng{I2|i(K)TqC2ch%A^uE+pzmby)xWe3wB&QBHw8F8}j?g+Fq?;s%e(3 zbu=7p;ErlET#$w5#15mvr{6GjGxbwuEYX(Zchwd?PtbgitljzfCTnY(t}FEzzqveq z)A1i=x`VN=e4aRnZs%poiyq}5yZ->3gz}yCuHIXk;8;r_U#rbF(K~XXUR(72T?yWs zeJ-#|V(4|+u`zIYE$`>m_nozQyou!P4R1s;7oE8iFHO>CRpDEyy0!{{U|;GBFey@#B>Dx4LT=+NYN^Q?Bb5*Gr{a zs-(A46G<454(cgN?oPmW%*=WCBf2MxCk^yqpYxF4n;u^Lz4AcvzK;Zw`KMV}=7#BL zVMr^xas<}B03T@lve`qcuoH$@@Bz9f{&9Qr6x{w?x9KzMzK1-qGE|n~FUEjZf3!^o z^c^z?i-g)I4-4SLKj$N#TGu?Aqj|$iwvNv3()3SrF(qYGk+?*Q-*R_7jR2)iTr!cp zG-8*HEyL<>DEXIJ)^t55Pqma=-_IIFB?rdL01Qc{#MF(ko>9X^%*%p6`dIJg7nw)p zc8hW5ZC-NH8H8&?LQ8G&b*|N*-!w-Yrz$RHlPJ^4@&5pse-WU+`O^-Tk>9yBB# zzB~Roo2Aj6L(1mV4J5g|chCO-^OU|;{H`a;K2Ni2y+X}BDB`zOOK6XPBdrI30=@HS zA~gF4RjAiw)ykkhA8X@nbMxo(8}mp%mLQf$Y$b2^me!+{O({`QefoVEGix}8%%h~S zQ!iuups|xpj%!U~&P`Wd3?jEyH4p-8TAG1VzfXULna^j}#`k66h>C{qw^HZy7LL#6 z86jzr2M#CTT6IxM4Ts_@n3*+4E1Qn6#^qM>eLv6ln)Ej|A|iBa=8YCcJb3VMz^8sB zeX3Jp1x{Jn{{UC3lZ-P;Tl9K&=C!tusp-03n>@RqMw+&tbpt{z997m53xKtu<`>?- z2|e?1s)*Rc4V~YK9u2vrlKK99ds5Tzh1)Et#t zQ-d8@p8V6y<^Q%&ppPQ zExMz9VAuU6oF9a5+j2z){@Jn9dS_AS=U~IaY`tUi_9lbQ659Pl+%3bs!(B3ljx|wL z2EFQkr+Q^;@QjiYF0WlP30O!xzh!sj?OIPT+r3v&vRLimBXnk91MN-72Ak(Ou7SrV zKSP^@SbV4d069zflO~boLF8=;11_NyF)j7mFDGc_9#y(W|Sno zdu~BLE%xcY`K#1qF*bI0njIO*9rj}yPv#ez?yMs6mbB$;ujFQF=Zy1JX51?f4@1(u zHWV4HmTog{PJ9u^8ZV^vugbqA`KsdE%^pJ3VYmJn_JfGzPE84gqK+D$dXA-0OH+-z@D8KZI+)!!;gMt&Fx&!!4D2R&wJ!A zE^E?$V0lkWhBoDQq1sW0E;1Ah6a&=Is61=ontYh#H!mTm!{Uv(zK{HwveR#L>#sF= zjS$OiGJ0n2UMar;+TGa4NJ$H4a2=kmK<(}nh*>1p=!ESDBCGnl4yJ4mDK zGc9VB*idG)T+Z%~F%}P3+&+KMt-m!qvHE|=*R2)Y>FXyAgD@2#fZQI$bvtx4&2D@= zGTFT38Dne*@{drP%72sBTK&oqD8AGrxIzeF=*ARO9l@%Bzm9LaECCvDyGCXhtUo@q zKhJ+Qd2d-uoi6>ZEtX}iysTO?R-plV4f+n-WHIRh+_(02myRM^zeTS+%LnFFwvV7{ zvcq9_sxLEYjybBvzM}zM=xMN}c<+hO#xZj8RQ4vB{{WEuvu&rxcWEx7w-)fwK?|Rb zFn-#H-;&p$?Y{f%%jJiwg||hE7gVHbx@6PLbc@I?BZ>VtM0I9IR-qpaPTdcGY}jd| zv#Qo$B6l80KQno+%fF%}cr{oPRhh-Ow~%1z z6Hn!6bnB%BtnTF;RQ;utFGJz*=6q=4+oP%0>NtHN6X@H2zQ5fZy7utR7a8vA&+}08 zLrZf#;xoK*#_Ja5ibx}Bb?cmNsu3pMIyq!V2z=-@CGy{!^xbAwNL)wh zk;8`ym86eKR1v*AYh2dngk{My(-17DUz^{S*1Dar^Og1g0M;(<13fLi-CS=UwBkny)h`zQwdxSi{n`fwz7b=fi;(%IoZ zn{Y|5eqvosYUEr*^4M0pqU6ZG3GI-p2z928iA<;tCD`u~@nhQ^f>IC_2Yl z>~|eJduC=VU~c93#O@w}6ocxEh+sPaDN56+uWXJ;@vff_h<1D@=by}5&p6CyX&2K!2vR9QP5WjhJslf% zm~{RZH;;apxaM9NnlPZyRCf2xuY@ESa9T+ws&0>`aHd9M%C+1NpY~6W;Z>< zb0_0wLI5E~-r0B!u?ugn72%Ba9S8@eLB102K}KU(ivUu*Wtrdm5HV*q@5EAlK;2Oly;AAgYUD8*_=zzzsng z(0F4Iu@=hgZcH$wjA}U$!*BE3dSnZamH{cgiZ{4f$rK4eUl4NQ0|-u#SCY#q;CG;@ z0{~A!u)ek+24+^FaKaelEEK(JMLvJol$Xjg5X-mqShrmmC5&m>O`7T_U zr}mcfDu;C{KWGzL)O>~xJ7XwcC10!9-9+zl@dl^mR+FfZ*g)S?bbdjc>}#p-WbMo<4$avODN#E=Va&y8n<9;*DK27VmHlBZ7R_7 zmD~5j<7W@C+O*1IT&;r{xp?kJtqXHu`#%0TFbq^g$wuE@7SgI3`husAP5yZShl`sj z;kLB|7mCxhDBFNKb?KH>Y|taZ^&k1ikIE_k05v?#29`N3y}K;4wKm{A>9+Zauhn=l zraHX*18#5G{{YNiFzBC>UQBkd^y8Ia^lhUmKfWumpzA@sf6VA%9wSb#O&%eAUxXfZ z)uq=j-000Cl$rTW z7x!e)lh?K(n1dzIrYb~CS)wX<{OQnP$x0(h)}5wb%^>=u5)&)@AOk~MZIw$PiZVyJ z9p-;3U+D84KUI(F_feV{j>qIiQ;$+I3k_h_#pg=Xz*!~%NMckUxbK-z+|y)XTc#1Z zy||ZkXzR&I@yL;Unhwl%OM@GaS!%me>B)fFBWbmb`>E#`AruqH9@XiCg(NI}Vj{%x zJjk!i?bB=`4PF^4Hu{@IGPqU^)KlAhj|HY!c!fV(v^^O9Ykp1I>#4=BEMVh6YH0`x z-+-_2%`T@)!gzzqW0AwC;T`_~q4`^{T)EUHf__FmMR)B%{c~%i8(Y`H9Ae7b3f@Se z7NCl3J5*OLkq2~3&@3}~?bgaLj3`Lhdr;*vCR~~&D`7gl!a9pbYE#F4hb@eDZ^V>G z!D!KwTI^T8--b#-oT)dG{Jeix=jpvFz;z~+$boG!^FY{1HlI2MlX5C5cFP1oXOszz z-i|M!*DXzfLF%`0xEpl`F=ZYX6BapREOOt#2U~{{YT2{{YXrH2(lId237aujcWU4xt#iHa}uf8}A=2z7oQX)}Rqk4%vbEd1du- z9!&5=L!R%O{{ZJcEj*2)Uq$&>`B!Ue4W5+;34}Fc>nPr>(2zEu_dQ9>Ot}Y%>EzEm z;s@$}MBG6lN+GRjQSY(qoA{dmxRLcH+8rm9+s<2psjtqX`s8IM6C4|d(w~t30GCnu zqgA=Qj4MHH36;wb6+!rFPhcy(a|=^B4o;_AsqVcP3BI5O)WQ=+-eWtHKO%7%qg*nlf8y0sJoUf-kmJ1m? zVp@upu3^iX-x*?SYPPTG0zF9T7=yKXAJ>^Nl?E9i#;>lJ%G`$~Bd9rbvI`@)yOu?G ztH-h81#%$qB#UOYWHk2c5$ni5diNjGAX-hN-eQcK=0y7ifG7sQnqnJ3KydUJtUwX* zf0-T`AT0ot%Fgvq?w{?@)TrCXBa?KIY}3dZGwOPz7DQA_I-nisTQPIXhAs}U`d?)J zYiahe`5FGGDSbWSt9qSdja%VRr{&1k_-2m*4%PJ zk0dpr97x!MU-KEL{Pju1$DfGo@QCz;i6ybrF5{P#4K~dm<@gTnzp{^q>5xqPtLBYLKO}2c-0vo%Wd7?(|*x&iZtuB8h{#n}S z-eHNYt}kbr{!u6Zg<-`i4&th{9>+2zAt-F=v+62aa$EW17ivL)fY4d-m|n zUP;P(yq;W>z9Y$={z-q%K5L#-)OF7xYE31tmu4|sSluhINo8O|1uOij6xZ&}zKF{# zI7`3B5tMNh7NMYM{{WdVYM+#TXo(xmT4c`))|{j$X~}8SkxrEQFl5v1Lz|B&j1t}B zo_GAHiu1{m{$A*F3!OvD_a9o0I($G#wPfChtqmzk?ONsu%OH2=(TMoDIk3;koh#4Q zHt+eR`Ac&(zN4kEi%^0R%SGsU0zM>Q2>#KTf1Eh|LBCVkXC~ug-_`ftkLLdXEB^q_ zPWdixD*j;laO?3C$jSZWQjLM=4GFD!SN(3fEncVd9;G6RE&R_G0y5o70 z=T5kcN2S_5Jz_R>{hk!5KM(ZlwrBQlY)c$?XU*E?)QY&hWAd}|%SrNAne?b_Ao$Wl zB1un-vZ*BR(ES;HT=LB6^6MlgPu82SEk~#67S^_PHuq66HQI|J)U`VrAHOZr;^5@% z{4prle>p#yw^GOET}MxNiotI?r!Y1p2^AyU=Ep~ahBoA!V1^J~E)>lW1=Jcd(x7+W zGjYhra@QlZ1d!-@mCeXlR073LO%F&b6pDJ5r** z*CItUa7x+Vm#kyD0{ZjdwTPC5%Vxitc)X ze1C>xm=+L^5#8qAYtrL^&E>s#NEWBUxs``!HZr}63(8($o5}jcuCHuDq*5mRD^7>6 z-;>XW#g74FslnpK^&jW&l7GcIZI9;nmxOH{+(2DN4(^gB#hbMW{Cd)&y#9+h(`4Y6 zCtumwOnoPt;>qKAWvLt_QhQMCPQP|_F+4)UyS|9~SQ_m55eDQ)prt;aeXt$(Y9z;Z zuX#7f*IJdt7ReXHgb_nhKZoC#TAfG%!qn=xBfIYyMw$63pnr+Hz+#f*wJq(dNgb4I z0O?Ko_U}!z69Dmfyy(k3r)TGv<`14VPt09Swcj*PQb{qujCe+suNAN2X}@1=*naXl$qb7{HZXsd%`S}a^?+2Wrwbh|uw+DHmuEdXFK|}5{Td9D>$>pPp zcye3sYi}yr{$kt7uX%EDr(c-(zoI~Dfw=8ZdTu-B4NK~eC(%12w78>Iuz5pF)ATF- zI^oc2O#?wjr>fkRoP|1l1AN-z%rZxFySj#?Ph#^w$v@1y{{T68K*`k) z>NvE35+ad@?Q&Xwlgg%>IFFU zAOlaMu2=b?84zBBP7YB+lL^!Oz;!)J(myQ+vcHo}Vr42t7ND@Gp&;$I>+6$&<2yMS za8TVK{N3|*pKaya9XcsmVGJrRS86ny^E-6jmFPY2=QJHe2#MYJ`KkFEP4i!!wMhKP z#t4cmsKD_G@44mIU_3JnWFS;tN4B*DPTxBD=gRSUb6J;7wqZ0ekA_jvmoLIhg%=JP zd{MIwmEo9`K}J!(^~;E+VbNSi3nNBFX+ynhOq@y#ZJb-had96jFgGd?uTnwi4p)+5 zCfef;A;Mpwzw?cHl0JoXqH8|1k?L>gJV#^_Aoy4jxM8(eZ@+-fSG4^`!$;)~17RZn z0G!PHxx2NSNVUT;HD>X0xb8 zDf+aMA&3z{Qbl`j(>f@Ko!xA-k)FgqVSncb{{ZJ4b#Km%3sBa4_ih(Qkv^>p%OCH# zRF-JY&BX2T4vYvLz`@UpjCxpUbORnvE|03eEzvXzS9?diW> zCvJpz^y|}n6V`Zn1-f3*%RGLrkEiti0L--3ZS3#iRGQX7R%(K+@YbO8InYZnkO!Du zKWPbz4<`K5^2A#I0M;(#YIFFaU@8}o@b@3*wsRW&FBhqnd7Ql89%lqIy7y?x8Wc^5%8~W*{hi08*+5fJ|yYz z_mq6Z`i7Zz`E#pZi-(GHCW^#xmeGZObV)xHY<=piPa1U1+-p;ct9Gq!5mgZSv&!Cd zkI&v+IxWgNU+Kz`PKh z+bQPMH5VkPnV{WM-Kab7{Gz+&-$|aKVa)8@5y>Z_`QFCcU9*q#m&)?m+iO-1EbcUc zNauLgtLie=wWq=l?NW_GYna-Mz9HftF0W#A(BZayqroECeG%_O=3OX=dnw^h9TG!`?S*GEi6b{aAuICE_cgWgahp7Hd z+G$#5n-oc)z$Nt=LM&ke=;?VL(i7W6}9%9 zyluEp8I=!qKMQjkaPQc1G|EBYJWda2>P}(1(?91F+QV0Z>sr$ht?naqhDe>ue)rS; zk_&cB zl8-0nhv#SK4fp3)oKo*kW=#i3h{0nR1XeUOG7;0_+hJ3%sVAnNB*cq$E10=F7tGqV zmZ@-U)ItvJd?}Xb zKnC1>WPCXAjo&qSv(MMQW3icaqw8D=%UVYoZ45|%XwV*~VdGP`Oxok&Cd046*-|p% zdI#nA=Ee7(uPt;BJlg(|SgpRTWG%-ART~g|c3*D&YH;?9M1_LctJ9n(()UdXbPpnRAKxzB&H@oO<%b<*%KsHA^5kd3qOB zD?+7YZ%BYZ9D9*o-Lnf#mX7YKIVF=N#r7}!T%0unEO=t>rI2FB zv-a-aQ2iSc*~Ac9!URwxVxdCp08!ST!!|e}7)FE3>UCyP-;)jesK2rN-1GhZohUD( z={B$RRUId}Rsq?Mem`UZur(ytY|-j7$39L7@=kzpHaZJJYA* zPMOYS&Sdl$doDO5#TU_0`E*{}J&pCppt8i{)jbfn>OrM`{1M7|muaFLBX`ZZr{uiT}aV_;$Bz04OZw2%&>hN@Up9lC9sy)4eb)^?G{GWr+(b2svi8~*?) zTlw=&{oL9+3s+R342?i4I)V@D-+bF<#X{XqYy+HMk(1d^I{E-}WEBQFid0k&zhjV; zVq;;&$a+6Ye=7XD{uJ_Fo##zZC;A1OPdtXAMMngc2dC|KuR%=G&RkQl~Z_VDPAtQ?0bL8w>$9e(pn=LrvG#rdt5to}O{{Wor{He3hy!B;a z`ELZWX|vf!A&FSLODefn0PnQ`BzWd#wlLG481i%T>9NH6UnyuFUQHcZ>qmj_^_Nyu z5TiPzfYo;2kOyz0G}!^mw?`bvau2e;OG;bB-ng`nF<(avvw5c>~M(C**&T<^KQ~ zOC7eUsk+M1y#oNOIH(jm&>w%7Ou@NjJF?YII77^Jzs}_Ibk?xxQIUCUTnT<4SsH|r z#+&RmABJvYgTvj$)1MIT9{aEP;r{?I^ldpWS*>K#+3sbUb_~~3gy4%!x)OYLIkUmq z0wS5`?DL%S+48rLzb>^&eD!Ir>h7{zE1As7!Q-m$LVS5`Ow;RiI~sD2W$;7N`peH6 zRh8l{vn(ht9(dt`Y5?_W?cSF!Q#bN>GTa*ZyiX+@52nS8zHTVKuJ%tiA@<`n+`SJR!ubF@KF zMn24R18$v9T9Qpp3>tnHXmy7qc%=2u%l`n&6EEf_qvow*M!E9-g#Q5UFiK0Sauq_g zBv4kr%i&zi!H7amEDU54@6EqG>KD*oTmD^JHT}%xk?z8=SeKW?Dgholcc+GHbwEtq zxp_2Wh{@>}PXZsCLrU`c=P)@P7(n z`E}=8pCRd2y3U7SZ@j~Fh^=ut)+=zwr8oL^9KOv!>s;|hM!Gmt(-<9+Pt5&aQnh;@ zEo*mAb*)II=TLSn>BH(TB!)Hr03;AeJ!{Yonb>f|M#Gb*(THwUe81%#OUxQX_WC8c zl_TKS5-mS=qpLF=fHm%S%nbSH(0B3F2u1W?kagQQ^(`av`%WI7pJ#9C>z7g*bM*c) z6^}rE6t9QEwWeE&99tKh*6YU}&ky|R{J~ENuFLQ5(09ySdE{kuUCtiQ1@slC<%}Peb6EL1 zOTUKq>dETe%?k+tWu+3MZOPy8sNXiQJNlk`x3P);0CsKQ8h4#FJxB9`+fcBLq_=f_ zIuu1LOl4VFfLio&3G33QGR7bV+}%fK;+Z=)`N#QRtm&5bo`2S7j>0G|B1;QvgGnZ< z3h+*(4a*<1PW9UoC68xkmqX!0h`z+~2Dknq((ScS%P%M+Vh~XF1-|Nk9EMy~>JE}Q zPZbpNUcI^3rjEkIaEV@(Mckf%d;UG?m@~#Q7clW}2W6Xb?cjL+b0F;)?YiM~b#;JBf#}a@6ZT346-nF8Ps!%zcSYwu~ z_XNJ<{&DFpEv~e`H2LB?h+u@w!rZWc%%Z;$`z!}dhr`;rl^jyWc5`xQF=87VdcWmg z=Ekw5`Ey2!^&_2@*`kJa3S6olHA;#Kk?{~kb7d_-;q?YuT}i~iKQS)u^{sl}Qu6Z! z)~->lZY6!TBr$SmYw*x)I*i4^5@*CYxq7T)KUe16=b1H~AI#$0%gpbnrPxEiCXv<1 z>$_%v<#H7n(ISzSNOKlG#EV(zOPJAwOk^ z>0jC)&{Hho>PtA_92@g}0p%@M$-Y{dt$gcw^?N@>y){Ar1cAquY5M*BvojwE7bZG< zz)yZ&Pha!z=l=lZwWpA7{{SxUo+rAyu#iI=s+2AksN0Y#O*nzM><>d>$qpU=0Bf)s z!4u)vKCj0Fhf@5)^7rUXPDA=fMMnCYF*K3_)hL~Z5=jfN>rM8^9K12vvlf(N^#|xD z9ev@a`Zo=@agP}J#ndKA%zbOas60*ZI`$VR3txEh^gWh!G|ojUEOoV7vatILsT z<-G<-Qs%G3Pjx}Sd?KtARFn2ad!4|@ZJv%%l%Drv=6io5+vzv6`i*fV9uO3sPERf) zYF3TbwCmx9Q3N;YwVo8VV88Q`o>7zYBURD#TN?g|Nur+mkNZbz06K*QzY1kjtVP7* z8FK;)*nczs06u>${{Skyy&vU&kR?^NwTeGo)O=-t6jffOkL@3_y$0ExIby?(k`}jl@Fkq!aMW$+qe`0C%ab!!bu`@Q+8>^O5ZN>Ziq# z=^j}B0Gu$o(PWQR{L7s^c}Qbz>Jt9^*laiLTsZW(Gy09YlY%;KOfO3Eo~-`>oResN zPO(U|T^bjSql}UR%KcR?^s)n*f+gH(^(13_Z{<%Zd1BJ};0g8HJF8cFAU@PG1{LHx0bZL^ zG*}JqCks`m1XJVh&rM!?i7mXnrN6+0mgD@zx}Wp=vu~q?$)`yWWo#SDn%|f-`!Fh>!7wSUeb>GtQyP+3?^g5usuT5y}V zlaU`44R;)A?U1rq2ma zn;y2*?tZUt9<(DjuowVnx+sinmD;=Q(=~d4bDi1gbNC_U`swoQdiBSiFQBxOQ@E!& zXHa;RqOB{j*a2T)D@cm@E{j`~W|r?u{J#9Nm&%s@Tk{W@ zF0Jo0JwxGSY; zA8dnG{jI(c(co^&%%?X-W#3)5kJ#<>*}|O7SSO z?=*Q+MDuF?hw}xzcTP)j<6lxRcIQ#?06&IZh*@#95{Wi9crfxOoIfS*ZZ*%#%af^T zD^hIOlS-Njjm-~2dw1I-pH4uv03J;K*Ymf^-gWZ!rR7at&PxqW=GJibDy4bPB8`!a z2U<{?PYiu3(|LJKNW3zvj2%JsD%&E8AB2k3lTQj}f-?2-78)4wZeKom&(9ul{I~Nxub6cW zJv7U?ej>Kww)2G?XzF&aW*z$b=J!vIG8;QHjAhyDzIe5R^G`^y{Lk`@vzysvSa0p4 zsp8}T>QHn9^=`vv>0F~UCDGMo!NEFbT6VcUjb$&Aywudx;)x~YQL>H3_1e9w)O5>q z)8K)OoLyc3WluZ*0F{rbf4?pN0N#540CoF6ciR5|E2sH5Y0CaeA7lT}>=%}QR#Br! zqDy`>N3UT{gy%7X9CD4`J698k`d>8p>+@Qt?q!Ihkm4LIXLKhXaG=Oc8FBE>DK(`JpBF%;r{ z*8M&I00EmF1mJn3PEq<_I(}byqe$~Vn{RcWG2DownTsHLFWO?&Bl$RU)>9RGgys1P_EYH`EnhCo+oef8Lv7n=U9Js88xTn1=MlLspu1`-6zDG z?gwz8f$BD{2x-h43_NJmS(lc)t>+n0e@RS`TXOj2eT4_y4LoRmjJMR}Y4nl;izM^s zobCSrFRZ??9l@IBKwyO^Jx6i@6kmS+1AdvGi$4grH^3aj@{98V%Td+!chxll!b#tg zRMag`9Xk5l?(9^HaGBD)vBgE$6^(BD1Cku5Zf}D?sZkcpVw;V+-Ta+ZM zXW}NUvHM$Ou95{Qv38|Y1t;hHFmgsQe2^+dvoK`+&|^?dJ+eSsbZ1Jbdco@&uK`A& zUZW%LXCj{3%%W(o5kUZl3e-Ib9XfXK$Z*q*l#Y*8)OEcN%_(iACY=q0vbrRfOUsIb zKu%%!GLI)van2^mwi)L?Ct2th2Gh&;>3_gfNV^6U6{Ts=njdlW=1x26?6mrcWE4XH z)iv!-;ZoaBW@L#%D$oEFbm`%jTa_F@B$LS`1WI-TdLHM;CSzRNKnR(2K)hv(XQ&hv z>FjXDoIquoE%&P!XCcPMgmeddi4@^#BYc$n(8j<=b8g(Z4~PnF?}j_F#U3UpXL&2i zp}rNTFi7wtbG8YZZk7-h>UV06z;#}Pbm@`i#vvx0MtC!PQg63W>}it$$%tIHlOlQ% z{33&4+upe%rF+XD9Kj{U4F&)$g7{0kVO)D3ksWZ-lB|)BhMScFhu*aqDXgRIZhoxh z=3-G$kA{^b^vMxwV`?*B7L+?4KM<(jewj&&D8xNCL*a80OwsdE@dNxe`|`S{7dHHu zmbH8#x%7gqP!YJT1xcXZmG{dcZIm(4V~ue7fF+Lqm`kJL0)#C#wB06Aaz#~++L*ZvyQnEs5@)uK`<@il%X+owu=z4JFo zhl_UXSOgyi>#p9YP)H;SwQId=o9t$TosJ-KV{*EN3AZX5kxJyEX`L<#2;#(!N5+^L zi6)je0LrCXjA+4F5x<5rm8mrU9wUi=iE-EICYOHhc^J06B}~+l?d65>GiMNmXVJzaB!kHTb60sVXCHfWw}sFex~m&>1~ZPw#T^5e|0G37fYK;op(?cr0uUHfGx zBuJv_b4D^YQjJ^9*Sef1NPC$X6j9OK?%p*18Ih+P9GuwV;pD?@URY9YVDL33bK$;S zcg?!NO?3OoOl#?q%&b`y@44yt1N_ER(X`QCg zA-7*nGN+!xoBL#B)i=|>^N%qLPcd8T6GWE@r^hYJ#%ag*XwARVn(cN#1FhD~jf3e= zENJ%rdh<7v{{Sw$$Lcg%=A~~f=u=1ZS?bECvEyC)S8UPfVEnmnIVvV=rb zQittR#E+om`b?fS=aX59>cn)tKv`eMeK`k&io_B7An#wEY){hHIPF1_`RhnsGf|6I zus|(tR7#AyjraaJUJ3LrJ`9FllKMOHzs{E4Y0+l#uBra@#(>+%)HJBwen-NeFATue z>9~DC)9WB~{-Me9C+4q{ZgeZ=^pue=#C{#>H`x8znWD}m8g~7et^CANZ!GC@>r+9c zy0<4F0lzPLAC_OJ$-+3C-1G2*>hCjHX|}UzdTy5|sc&y=UF zsPlB$Bqz9i`Q%^B?m0InFr+W>yqkSjU;t#~Ft zF)uCDG@0S@JLz^R(p}ug9B~*<&df&Rr9lE|hPW7onPq+5HVNY*(~lo}oc^IzgezF=j!2PDsfaK(Qpyq_+M ztz2q8Wt=Pq;wzgFNaq@!b#@f32tNq>j@eu_90H{5^k&Z=Ms@l3`O9zRn>g&er#w1_ zu<;n;K%lHqAKGErhhTSZ`L2-h3$^ivZ%F3(y3g{H&7OAs53JiH_PU*=xti>ntNct| z3wQ?Y-}y#g85~mK4oC8En4*|Z=f6LB6YBnL^F96TwykM8HIz3}l8p%)sgAn_6(leO zj|0AEW6dmL-4;y*@SYG&DS4T-?PFIz^OBkc!1d*1xVaFo?$T4m9SW0Dr)q}&Zl_{p zJyH6U!-#N8n=t&c^9ApjyxljQeBC9wHmM|0J)N|HT+js+j--H89na6MV(T+_g5%A_ z68xOr4$(f9lKw3v(Ld<)&Z^xCBf9BDVbZ=EbomU@YV>0l(Can$#-!6I@}0i1ucLW?&hU#3 zO#zLbp^^Ch(zimVW4BM9Ye4CyHPbY`k{!!~5Q~bfTpICoiOOw?#tSW9<|*lKbkBgFg-DO2or%K%KQ27H%aTa7MZlqJ9<(2?;EPpPCkx$wOdLE{~*^rbwnx!gAb?X^nZ(1*f+KdW{?eoi{5Lx2XbV^jY08LL( zz$EWZv>7PVlPQ!1#e{Q|^_OxFTJA?qhrS8OhC?VRQcE?Ygwmmj+O^n?^4N|hsR1PB z(r9mf8QX;P0c*G-o8aWqL60X~Sg_*34L9#!m(h_jr5Q_C-dDK0SkmG)Ssi`~4!?~K zRC75(CLG?6E9HatLY{prIc=-LldH7)OVjDA6?c z)-SE}c!X@XlPoH)wK*CM_ohH&zD(zml>F!UOR4A=vsyF~5eYoFg371afT14w0jU_x z7cU1C&AqGgKH~oX%jmvZ^JEf9p=wCb4^$9}#8YEVqP6z#wrO?d6ZHodHjYAEQReZ_ z&M(VX{Jhqsvm~?=0VGlZTBC}O9^Xg4Wp-Y-#2h8R4x^0GS@}QYNj%GNx~%Blf-p~= zdXP_C+vS)7oG#MWcs!qc$EEpO@~cXh&G&NF*4enn$$*w;0<=-mhoK^%4f9VeEtj62 zpz38$&R@;1&Mi;#D_N6S)EF!P6^0N`2-C8S!1{XDr0<(d7{+H} zJof;0{dtljPS{40{(o2?NPl@+RQ&Qx=@D*)k10WL)EoF@cC>Qj`=9=CJ5af{x@$c> zADq(gMioC1roeX|IZk{WOk<~xQvH|wsMT+D8|a*b4QU|Taqmj>&UYqxVwVkU zf!T7xZZC54){7#^4!v$YMwY)4kFpPMkjP|@hw2T}oZvQmZ{;l;Q1Z8*B)(e0*Nh7* z3Wk_CC_o_Bt$&7Fq1KqroNmv`d~aGS^Jhu8)|sxgi-B*dE!?+LA#f;>9l7sXv8@#E zPJ=c%hZL;7jikxpjhSziJhiI+V(AfnV#7RIT&+2=wuncvMyo^LVX!<+N&Tv3RxERv zu-lVUy%h`p0LuLVwHv(*Tr`F?XO?LdSj_62_B(O#*qR>4C*YH@aWznkMZY0GJ?AFT||rmn)NC0{xr&QMvKMvrZFdo`L=2Gds}TnSiogkIU5sR=f|#2IX9r`^y7wH zFCSLpIYs+QDo2U%%&T+hS*-=g1k;skL4+_8eP90oIP2u=UpkAOI#xcdntGvB0>lam z08ZPHnr_pXh}px`YK|$253+Ut03zx-E&i3|O+1*%wrxSBhi9UKPb0SA4&O#|hcS`e z-Q^x6MfH7`<=;5!AM&sDgQUR?_m~?@lHNG(ln_;xf#`PSLsACMPA%7Ahg31{>oMjy z&j{xHSMyio=b5~W(RsRf5uq-vNd7b%)CL3fAD>P0b))Tg&t}Pq;<(G_^LXv3l3;%)xXIl00NhR%;uuF0nK$@Wi`{{S^K zZ#hP8Y_DyvWAz?3c->fsLqk!%;Ou*h!psDY?6m!Fk*04siddAI&?v&}c3mpatO{{TR=xM+gO zU84<3#!pT@9Xf({+P==zRCs#2U0-KQ6u7aSpRqnz^A4To{{Sx9`IA7MXScYCUvBEd zYL20WdJ&sUm;{5HqttQ7cbscFC9~bMGo^iWkpTN78g}=luci*>Ds&2b2>$?AFV|@3`gt;MQ-U z^<1!yR*sI7#aeSLrj@6UP&eybqdud>^*r8g&+&!D^*znrU989=}H*begDH28GZD}8$7XEgy(`WKLX>+Y;kgV6%GqSI%5&`P0Pq)YXqxO%%PWW+Yh&(}~ zPpXi~Pq4KA0L;r~)2%NxC=Quztb}VQ?nng4%1Mrt>p@z0bw#w+mh`xO-ewfcKkDeWCl z8#YG?k+I47#dCRgrrS#k#A9B37}AZzZ$N&IxrwI&TbC;q0W(NwG&%09^!;A*jlP?A zcrBIRZbf*PCYzoCg?}8kaAuu^Le?!y%Xcj`v{G;q&1~Oo!xPe! z3r)I;f_FFs!M=?1Ok)=wkI@Yy^CrXdkIR-~Mvhn|kC>91gH6RYH68nm*=NKuLc($O zq_f9{Uu(fH5*;GwqA~QEjDnjLHKyG&UkJ+W(`$Hf8+`u&`RDmZM6n$A=yGPyIJeRYVQ949&d$zGBpby%uhL8Pvi>-Z8YbTg|rc` z5D|8-xcU7#j4^md-R_TF$4Bhz_r3T2aqq}_r{(vWBGtUbrytO|tZ!hqg#ksCsA{dy zov2Fm>C(6`=ZuX@uU9WwqB%FFA^Fv->)(-Hb)QM|R3laL^~8c`10@{7YRed)LMHQy%C@D{tZDK?P z1jI`o%%9FaVbQhSBU{rfhdC}|TbSy+O34d`UM95!l^;gKFsGI!z||P_Wqxzlr=Rli zJnhD$*|1alU%rou(EE}OW9oHW5Vinu#KHw$e>;UItmwl(rdSa|^AMCU(RZ@D7h*6Dx6Wn#p zmQm{AEt%|3h;n)kgXGN@%KDD0Z{<5dWgYCPEy5@UjZRb^z?1T=ItkC0L{g_d&nFgKKIhzKS=v zm4B6YDo7jj9kU~}pmG{}JtmqmHeOu%N3Q8>!6Sl7hWLr%!*kcS^v-L;lqF7fY_+m? zbEIGSsz~&^2^crqVvW*-nm32bu4SBNdj@()83)T6rxlJ6+?SJB9%S(Le=e?(4yk>rNTP5)CAWkQq*j$1)2Z<7oVGmEgt#Q@^>_dr z-&}cHMX~dw5&m6jtQ$*~3x=12aX$+2RR^vEA^f$=Ow$10J~{g8ItbOUfN?D-rssX2pDAZjJA`N{oxtn{lrMmG-n zc(_ns`KDD0Dt*+EQ?~v%b(5A{mgWqcB8KlB{Ji|iyZoQ>MV_UpXcGD}M>LjqimJkC zWE|I@IvNeO9}gNDX46lS7{?}=Vvyb_&&kg;TbSXv>aKHeR9mr>9)`qssSM7N@Dp57Z-)SmAM4nH2LqJFijfPkIc~OAgfL zL$tVKM6y5m#_!7g8%Xk*^WWw+qYa#L!VD4A2|lj93GSu((w!;dF~_76`kbvk7*0MV z{2v?sZ~3-AGI`DzG)qOWfhJh(q#}Y;EjY|=f{$@Z_Ev2LGw19Z#3(x z*+kKV-2mZHLDHlji@)8Q4+KOB2VNoLOK_B2{!{Au4a_zg^}IS2lcJceo-ygvnlUan z1P$m5#=Te+s)I{yGIE1B@Y8Ao?&bz&Il@A{4Yo22M5Yns6= zVWxvHc@M<$l>h}EHS6K@WOUko0`r=@;zHj5`M=FKADLR5x}LK#!KFYP$5FKb=~Lh6 z%*o8b!N;U0)UV{7e@7zU%L}3lxHUKWyi!Kr=`AxJJgeHLr_t}0W5`I|+UYP#Cy0mE zo^m$7m;P9^@?G7-LM|y3lhl^v#;;c!kOtN0J5w^V>I5TQS&TrMXI@nDjj#OU{{WRP z{Q2cgKx&IMid{9Npb{iXoxs_+hU>%u(A003(bGu!`G)OQ2;hyu^H==i@8#Bu`R+W= z`GMyX>0jJxRfH{gE4^Hejc6(c#-w-3bvVx`@@1#aU@BbRp{RaH`NPXB(`tg=e=1o> zZ<60niI~eb8Y4Qrm9|d`cPpoQJy50Ip)7{;;S8=%^ zfgqAP`wpEwvp2`u$2RRgQ6anZBg}qPgYswcp2F4^X4Ey?f2>?H4kgU0D846xo`W^H|iAz;>Y~r1d`8vcZTBZU!v~&&@pi zz4FEX0G=XUJ4>-=xSNW_Ck6t8W~&W{UWdc4T*cMKxi@6QU^q`F+?rpIJgxat3G)w{ zWR87CE-aHuL5?O-_EC4`L)_PYmTL|j_gU&jA-6QHU-`)&G5OC)*DrM0C4)lJtxR#b zBb<^+@P!)#LQh)l-np7%5f>gh{M_$npK3bL{JZi%TXhj$+@~9f%MtO+4SH`;xcPWx z5j zwL4rR!`?jEKbr4+!T$g`39sGidiJdn+`;>+Xqo7V5kF!z0jXX2e!iI*YdHD2*@=vI z-S%(gXOQnLbiF6?>ek^OQVx+#Duy9czr#)H#n=zg4>bd!mK?c7r^4`#zSxjMtB5f>oAJn7|qCOuN)$N)D%$iAPIX)u$_vc)f@8r}ndSys2 zb-g)-=+q?!tsy%?h)pV|?Ggy6_;U*+WsvUe@@r$Kj}KKJFnR6|HvVk+Z&1}_W2Ncu zcXK5B5%5My1Fb;gL-f5(vJm2}7r|4vPC&~W+SGAtf)yk|O8+&l7Li&_6J%+}te*Bzr z81it=Zxryw@eaM_Nc^&q-)eV%UYcfd^MoMF;6*ri;hvqK`#wh3iyy} zDbl}=SU{>h8Z_P>BfISX0Lt&kuPy#-epX*!Y5I(kdG}43%UI4u8X!SXhPC*XyOKvQ zhKsdf9DX!-f%OL@XNmW|bn=CgPv$Et9W>0Z4BTXnP55y&aO36;REqd`<_;W^k>8V6 zr&>Dteo{MjzKaK1(|F%9U&9B?#}4km;SAkw}BSLc$Jq={_md;v3M;J#(^F1dB9 zz@=+C=RjY$JwY7I864}92RB3#{$n-qFJ(9%CRuYA)I!J+8WUCRo$qCxmk zQ~(Q9Q9&kycKvxQ`Qry$n+8eb*`Daht!uN}c`Ys@PcUi`G?xy)-CCgpu_XPVDNVO? z&Jx5}(xR4rt*O2hDy>x48cRoSE}%UPHar z{{TbjQhKFQlzCMap@}r1Vs>56UAGyLgH6Td?`PS%A(tl<%k0Ph0GwCyXOg^|Kaq7S zgDta2_h#XOhcX2K6SYX7@6&o_E?g$*^gPqWiyP#hKI;}56M%hy(#%ohU|Imo3JVnj!~>lL*oD$NaKy zFnNmQgPE7nw~P<4&T7CG>)37g=CGa-RN-Vkr=I>{{{YT9`M=B_M78|i^6k3Iqs~l| zN*P*Odb|M$4MNwc?7wP*eA#J9$LcQs08fBIB2O^ii{rO>Y3~~=zDmY0L zRcc1W6Y!c6JLD&mj1n1khCm}vxqs&x^fCD(u4-q@`hdG_Rxd&%Pl3k;TcHW-UrrcJTaq=Px}^K!|DQAo0yg#`93My1vz?Y3^C85iV6o1biyH zZZ{|O<_<~9W`ZIkjP8`_7q6vic9*wta3w~q%b$OQW&6mDj@+F{--rPnZwv1Mk zP)i#2si0bX&SzX|oFNmdmdu^MICXz4Y4)$J6`x1YF{Myt%FmJ52Lt$@gso5ccttO1jKs$m4$7ZKa-u-bkv)QUg_E)zWmglQf}q+H2G368Nv!l%$_|t zB`dJ_s&~znO=ts!yHlhXrRcY}YCo19U;NgZcyA$8zqH`d-`i}$w4pShVNyDG++>7? zQB0$tk(Tco)W7E)wX3C@P1DvLbi1*RC92$UJ=u)_Be1Ci@31t?V}y}m%aD-e$tcsj zzi0VrVtln_D#v?sAZf~wXgZqosO?c-9HLfslczd^mQ)^tT`vK4+xnh42NZ< zC`kE!yw}SgbFjmXj>mMm=knU`^KbJNJg?@tQM|XKSheUX!CB!PRHrPblMX{~id6TvFADvSrhY0!b%qN8z|$U-xg?PexZw~_vzoBj7U_gs1pv-kAD z`F}TM$0z^M=s%yInEH2-Y-}to-6htY(aOeX(Z%B46{)AoIBhOd9mAv6@bLMu+YMGP zHtETIZ0YrqpfCq;M`9`5_05KV-bUU$W%X{s?7X*b_maM%f>~sz#Xtg&0k^ko=kj5d zyIIUh=(@+`FP3#J2JcwAw=l_X5tPWJfA%Z2I(-?8c$>7??fFgST@uzSsb$jr zNR&6idh8EPyVrg5X{X2l-P+^GCTO$o%g-lj8r1gpK2p>}>Z$$BwOGi;m8A%w9jRX3 zvQm{7U8{sRs-H=DH~w;}@A8*aZ8P&5N|NM-F|QW%in5v#d2B%WCJXvx}cgFGg{{YNCn40O-uBUm7 zMVKKcf-lkA?*}iIo-h>c^5PidWfQOKS7||aMJuze$i>;1Y)Rbg zD~=c(UgtX=GXYFO=0<^vz)z;eys1u~PfW|E;bc zZae#A#_ZxiP)KE+O#+hCJdV{JYu^NoAUA7kAtQqhhlsCnPwR$7Rqe~cAh(o)cj$U! z7~2WscB84iq)QIMFa<{a{{Rt^s%*uCG3)(W<>W_KArx`j-?ee!w&9Ef+TT!;NSZm3 zcG{x574MY~RZWIG2{AkvwbA zgZ(>TGjZmO^CW){riP_K2k^leqa5jo>7;s28EeFM_u83Zjkn0!Q*zQyXsKPkeLDTv zh|?&>l%Q8L&$iHYLixlMPf;if~~uFd?&{vB9aw^WzWPq^kx4G)lFSUS~{TEQkx#9uhG6jskSLmyOKYJT8>Dd%LeSFjhkr_`i8dzav!x`*+j)O zC8k)Ka|;NVbTt^a-I2$O?4a z3{W>itc9ggpn}JXQ@97OhFw-SWf1$r@+0$U{FQg2YIh(dfCAoW4?wO>Yx4dZ=RL2| znH`>QwJ`A;>icK@b5F~$dFRR&9(&Tt&2we~vqZZXTnZ9LPzWD>Xs^MTJ?>9p>pW4y zdA}dbkh*$ce(+UT9nRh-I_RCP+vK3e&5K)3vmPiIj-7h{08GdR(Ex(;9lU{~x<&vH zNj=BWlEwgM7}qzU`CG}lN1F6MPCJ)Pcq_Wwy8JVMdaG|nrt~!Y1!pPKMqIoF<@b7P z#2Oob3r5tStwk^i+mt3GEG8N?gCw6=n!gdR(S~M&jhiOVw7(-Qyv5|NFzCK{lGzfCWz*|)=TVH9^AB|Y0G!D3bUtE|)68+FH)Sa)3OdwN ze~}-KVM8y4lZbL<*xH^iLFV{U<4H|21h$j{A_TD7fOe-S?li&qdQXPK?LB%Yxk3D}X>{k+M9s5XR?lV9_ePx+UtCzQN~r%dujn5$`JVGs&|A_Y~7ifn1{f_5Eu$mGM~HRPX&JfAA+ zF&XVd;-{a)wdmeH*-43qCk7J{JEA`>bWKA0RZTBN4DCCBp-H0`G^YLXdZ`W+YV%lY z^E>kHeJfRwZlm<2jlMocgna)1vntVQ$I?qZHd>D97L%t7C_=_+S%72hUfvmgZ9$rH z9yHd#LwA(%rQ>k!@JrhL?z?%4U&EPy-o_j1pSLUeR75cOi2i!3r)};KhQDK59Ero^4t4!;f7{rR!R_970xG zw@#mTj&6oXox_ip8OJUziB^Mk{v6eym72AFBq`dJp!|2s1x!*kIKMFt7uEh~NdEvb zyt8wt*gSux>_UcC0KAE?(+o;ginp`FGXOXmfohp01XI3nYZy%zK zS|3sRZSt;dGiqZvZ0z;0S^i<@(d)p3oftInlEBB*AND^%%*nuT?ACKiCxpG<^21Zo zWL--~^Azi0Yin#~63azWslVFj0TllLZzHG52;nZn0Rx-EZ*O3p{{a08Rd|Gw7}P1J z3Q!Pw5C^_S$447eJLH@B`^?Ft`Cb6l;bs=}GXO(TnueyoE}aL+=9{#K5ZT!2rez8b zE&Q(hz|eewp&v2a*uDO_eR9U;>7op_*2z$@!p&6yj_luSs?c%YYox^pz+X1)1m%Ww zUf1RS0Qt)H{{RnP#pEp#J2-B{@yB&@C)OsCVkllyL9neAdQT^OTVY{`@+Ea|F z`RYICBsGi8TH{On(6(Jgnb}Rmh`zFpThXaa_U-bZ%;?~bOm-ODrRu%jt)fk*&GjMm z*(UOg(uwYp(YUw4N_wa(xcemj&rmnbHmgrjaPvom@k^WC{Nwo*r(Ho0=8xrUqBvtQ z$oAa3Ehs=WA%OaR{L-9~#mkdixHVDT@86PsYo6}=^gf|CJ4^VzYe^W?Bd7vMiQ0r8 z**l)uv+V5lZ1Q!OF?e&J`V-E6ME?LASe+b9ZM9ezou%4+sNS0obu`>p<(c}-Tzdz7 ziw75^zD3dh04x6hH#PA$nYHa>>YA31JHZ8k2aU{WUyi?Kj5+`}??=rb!9IP>+MNd6 z-k;?!&FwSu2T5HegB^at>_>A0iaPOAQA0v2<4@V%gdEDzh~<@+Q;RII$ArG6(=;&_ zk~K-06sR0ghUe+}d^4)UjN{xpJOD^~pNIbdpI%12^N;3_nr-x1qxEgM-7tEFmz4(; zUhTiO!^dopoBVLTTxI3bi9sb6J1IJ1y^Hq1}Y zR_uhLBmsVXoigq+*7HO~0I5C5>zhbq1X^;)L|RzMBs(K+l&1Z>a_yQx6Bbj=FItNF z6|`a!WNpoQ`<$Y2q)!&i>T8o^g4*a*NJj@fMSJ}@TnR21z(XCnj$uh70fQdDROFBL^c%OxEA8y2iN zOidOo%%q;2Y8Zh+r(^!#%P!};u^?5le=l7aZY{0nK`cd8>_Bet=(i{reOCFHO~uS8$ zdFH-o@~KF*89`|*#YJ5GptbxucxAXV93dlGa7w4ikaz3t zn+VKg+&LUVe3a~=YiohYh?Sr1)a}rMNT%YwvQe1~GUM-l?|;rRc{YDN{#{MwyXzZU z%~}9uTZv;=6A0R|?!)b=+MtTlwN6#2!Nmi%?q-8hBq%aJDrx>l{K@jZtK?lfMTsvW zGM!4{*OakN8)+6}Rv;1kvK!$8i0Pc@$9TvCcQ9*s%?-=oA3gqB%dMpU0F{1!_%%yX zTS~v{>O^^IVz+>7yi=o7rBC_qo836EW#4vZ zX2%$^^S>f_IsEtLJu}OZ$>=5hN4J*_x}Jn5B~r- z$2a8mp&gc=a+;Q(GAl)Nf}qq?hNnYO)9D*#5Z8ccmm|XjSbUXpXjbFWg?=DN>s|9< z#46gsr>yx0@_)=ed%L#N^vHcQxRq_zX?_$1jW=Vk+~s*SA}%(gG;#BOo&HpR&OK`X z0P~Mp-k%=2Ew3(~M4CTJRdn>oD$Gbb>}yW@cHb(;s5iKCa7rXtHvLHQ9G1F`iPWy` zqPekJ#T$);d<{rW!GR*Za>IrhMaj>WqrEt=^R>N%zfzEWYfW~eD-Vh?Pv8B$E0`10 zM4Ag2@iFf_c@{g{t6w*0WnH0REJO}eBe5PM!^brzAA>$18{^vGjw{96T%QoBwjnHd5+&sy*Ii;r1qBx$s);KeE^~nPUfJVl%dOV z%2wfalm&BsUH*L;ZuNL05fw=!cJZL)T*Z;C-X~Ww@*gs45oo$}g5)baioTkY_DySF zyD_mu%2pj#B64JSt-R|wGH_Ov{{U;}n^PKh17%nuXi2ysg47i!V0Y>CVB-OYC)gkJ zigx#UH=AvI!#r*@$=m9;1a$rJ;y!?AYuhz_p^_#nC8ik&ex3ecd4Bgx{J@vYcVMNB zy`5B$4PuHmB~NAM!k;6YUQE6oN-jpQ81i_}J@5+)7lk5~b*9ynyliGpf*JkQ=yjh}3$f z887AcpS52gdYZg)y85D}Rmc?`&3pmr{V~rAHsepThH@M*PFJ@|XPOB+&Vb$T!xuzGNv$H0jR? zWFT$CotW%+(Ek9Eccy6dI(b4|aOURW)<_!3vtN)NeAoW~AT_u0XXXrZ+h~^ulF0Pq z6YaS>)fjjF8J(rol4!K*|#l3mHg7W_Wn13z*05a`o z@-C!a!&FCL%Oh}RkP<_w6#1_np2QrsS}06yvz|4$=4yK}56pkb`^|q#xX|@bx}b^% z`i7xyRhvW0?cZwVx_G65$&QzZ@kf*4-!6GBZ36!Q%pa9{=M!-{Th5^yl5#>f z2Aem0#WN{aW}HTm<#C96E=A;M12 ztN#EazvnA#uMvE?`Nd@RT7CS_4UVX)ObnIc1cXIPjt*VrU{@!I*iAZ==5_hR)g4R3gxpZN~K2ef}A(%cVIbyL@XDcYbhO+Ie@(o@Ki7zM*`U zmVT_F3Ez4M>p(||J+kaNVSv4gxaDYY&7Yr&W2TzyJ zG9i@XjUH~-OEH!_MuK;)d3(&>L78+JEvC0g=*k^Rw&US6_U-!eh)hWOm`p=9%z`h= zEn`@MPc`{^;(NOrSQbr6;uT})miS7u4ytwpk=JeZIb^f?b`BZI5_m}D_fN{d%pFJa z%FaJ9d3sN+XzJqMQL@|^!~K~OqJovBM%`5HgBGa7QEJVjIR_kG$NvC19p`yGx8&_V zQ_-eW)U{cyMXCY1z=+Po3UoY_botXVhDe=*tCp1Kmkg6X$o~M&2>jP*e7mWvLh5MD z7ZE)PWh=QA>0b`{0gwYlo;XWGDmd?R4!jIV6s0k{QfLjGSa)ve%(KE0k+-jBx<i&iDoVsAKOP?-B0z(?mdY0ap_+R{*9qKo)vCJ>a3|pPYbI{?|__3(4Z$17~+x~m` z14zEttyEvEo|Aft7DA}hG;W}<0PK47q2D%IkaA%XhcU|j-?4P~B_nfupLPELIOyJB z{Mo(LwT)I?FG_;i6C9DSNeU_~Mls5ubQR@LYu%1uY4t>kE7~|=0lHHjw`rj3TA!9Q zT}Sk^HZ$={imxU{P*_vB9T@bk!)(H-LRRsn11z?Bzvd_A4ZfB6ZwKY>i6qYy?-Xe? zi%P0|N{R{UHmx?^mG75ioMj5=;%hZN6h<-4^DpFmzO(0VGFrttO&*P+TF1ai+TL+caoXb=Yp_`{Ihp;)6a&cs~ z?DOC}DqdvsUAN_~gFl?S;U#UY{wcU0j(H#A5vMQO?OuRp*w2Jpj~qt#en0uY^XFId z-)avxv1WWB(e_Pm_TT!jY{(i`(1kW>4Td9%q~u54Iz)HzM%4Vl(o;upUfK> z^da@jNhVjcaaIyneuHX*<5k-%&BQ& zA!nPel;f1Vb5#7ohsqvTlg*ZtpH{t!Pf7@vj}ogwPf8uS9sF}1z#LTUp)U&;n+W`_ z)O7y<&R;F)9&6U)DXr;xfSMUmK=ovXK~Ua54L0a&Ub|)#Ve19w1jeA$xxV+G%&^-m z+O^;JR!UvRO7h>Yj&#w~@QyBxxn<#p!`D^weyxAz+nSRK&FPh{!OubAw%;zb&SO!i z6Q2-tQYSIp^0%0OHV>2U&D;{0-7gc8#{3BL=KNk}o5|mlzDl!w zMolSgt>$orqiGR1mPMhhDoJ7hr%r_BxwS(aLzAb|WY0ahJp)_+0GvnjEPAw`nLcIL zt@JP_4;R;Esr3E8rx1UaeY`fze_mbrd)}W9V`CBZo!*0_!DFx6Uh29|rEPx>l2RMH zgglkYd_DjkUG}C#U?;1|c8_NWO2;NOVQ&YVyu}xnm{&v7q7z&qEf$NqMggE&u^k6N z@b8s%rWy=BG^jlD%6>%9e=>hEqKD1SbbCndWO(Cc;Z8fMa$~hcJWsW9ql?Csa&q>^ zI-bE7`RC=GYfRR!kCzo>@{Ozts`Ju}%04IX@38x-a~Cci1F%l3ImOG9>0c;c-D!S8 z(RIrhV!6Jz)72Az<;RtOb`Md)yia0%v#!&BbT;VYc!#6rTi?wg`H8Kkl)T+^*O7@A z)wQrsQX~G_6_mF+RM4!$*Od<(5@tS1QJ{PhFdUJW)Uy z6ERyiXEHwK4f*%4>t1Bj;nXZ+lGDm$pQ^V41JHr$N&Kb1WqTOrKpzI(YosNfnraH8_A;uwSOfI1E&A9ZQv{P{YKI=vw>t4es+0E`pLBKG+WK6>X-Ko z5R803RkrNv-BrtOI+MR3qbHY6B^L`19JddmKP|N@Z#nrsZ4%DmC%3bTOA|O1XM%Xh zMv!$5gmG$Dre}6=COjpUb14dw5B~t1L-LgRPnK>T`c;m}wL6n4srZ42ajEtcKYnYn z<1wD@PMWfdFS0bfZ`S7eWT4uGWkg_i0CXUc+qPf9M`TVwZ1{uo=RnZB*XPeFXgW2d zc2_s|Srt#B912vPtxEX+0BxWG=(A^@ zW6APon>^8~`O^A1wQ0@4xJ3y9pM_6Asw+;vO>(_PD?2u6unBX0OKar|y(-Jg-;FRozj239oekBeL+nRMBv#_T5r`F{-#W@jxI|ftvq4`ZOoUJs?3s03sm1`?c zs9qn2IMo1938fElPNlX3D9}oBJV%mo=|?w;{$*NuJ5JJc{{SiI&vAdP#VWG98bfIh zDsc(3Rl2ozW~DY1J3RSocOw?^dmokm04#jDou&TrX}7gbV#_gza&=_JJT&@S$(C38ZI$olZTh{}m@j@fZQ){%6czg@ zdaD7rBm!x@GhR;~{at3BXHU9B-mbZRLz*n{DiagiL;k3S5(EE~#N1+|WlVrc;0Y}aWysu zK&<@9__n1e2HidLA3csu-yJAC1S55_THTd z*b$i+XAA<%jXTsH5Fb%~Nq$+~c~i)6YW{YT*8cW+qtzm?mW}Dag&O zbYc4>QlMAowQ@4fG437Cn~Zq%ShQa&xHMSKp~eoUfpvCTTT z@$!8gVfj0JutzJ7f0_Kn<-1E;uRnQe7dq_WZKqUT23IY; zJZd&#w66S)GQrd|>a{T@shnw_nAXXpo2fLTr(DeuGec?-6au@|$mC5n6*b7%9UV?w z=a4U#ywCZAqwBZP=srr(VOd^J-rYJG<&pmY)-)6z17Sb_%g!+v-zQUN9a6BJ{0Zv=H$p?7TKuF`FvJ6 zyaBw!2DfiEn`Lz!&aH17$s9`Hvl{)C9yRg(Sf$?6qLJ63JCnakQ#UZu43XHf$*MYigFKV-C(M_cA<=x@tJ`Xc5|xJf z5C^KEe`}2>^&b~%?kUqS@#*+Z?V0;iCRougi*-$EO>Xw@SGr;KOKwrcMgdFGoQ;0a z01!KG-!^i_0J7o!Sjsl_-^!mV=#tB6=1)E#yE?_x+J2Y-gLV=066~u=N_=TN}dO$4SJE+r(A^RD342*ig3rj zSIIw~a$jf@d2de9M+<#26%5EK!P%=`fY5+D3U?!}OGTI+q{l9J}pUPX$%U>}gOR7$J z>4smk6{NJ0#SIFOc^Y>FS8Uj6^Mj1>IbEUJ9vpZh&4K-IP4x=sR*=}l{F-SH0LL96LPbr(Zm~6oXI$UXsgC(;tP}&FYJQ38f7MKpRl*YvHvq`en0BBxGsr z9$>Ofa>DOYzYgM74LDY#JqcdDw*LTZW>&IXaoNqq0g`WT)h_hk%iTLglIjTCOuJZ? zCkcs(&<~OP`Q%yjtLBd02|lTG&3Oqy@cM63qlu{p zwKw+6iOhp>dFgg!r7Mtm>>rmJ&zj(CT|UBS;UnO=W5px)exG(Y_>V^;PuZPb@BaWe z@%ewLSZfzPMYe)_>14N%+}|?sh)1z#qBW`a+pfbhapRng2dL9%q6d4|e>=6EKl1y^ zGu>*uy;x$AZIOjowI~S$_G7s1l}AQlE!ulSIE-j>?syOU;SZ4nmzt;NCZ+0BM%GqJ z^x|4T8Jm8zQ$gWVT-ZR_;cC;z!xtyp`i;_?S?4l@Sjnh9C$PLe}J<2-wZlHXsv5PDO$A+V`m58yJ$Y~X5SVqYR^TBV+m ztxx%ZQw!TG#v}%wwA;`SXZI+O8K^~>{N>Rf-zNDlXo{{W1& z8_Di0=DUzu894|`7D8+AiW<}J%adc zm1bdGtF<?yF{7dDsGZbpvGw-3;t$(U^8u#Z%{f>>^nS*_9v@lo-xP(^6V#EJq< z558t;@zJ+u;%~b+{LJ%YzDLs}(Y&Q<<5<0-T}p~ctMrB@@iiQnbQ=uH&mo7GH&w5c zi16U~>rDK+IxnMl=IIRDwaS-~=xUtLArxTmw{uNnaUvb}TaX=Bfk3Cf3lhetQU3rtp+Vs{QO!GyJ-M+V}7J|m=#Y#FcUBm7^ z5boyr8IBo;#eegXf066?OtJZ#>kFt_wbG@uHw+$TdR9WjP#Pa@ zKYnG%-&<_d!yFAo;@a1nC)Rwv9^M;Aw!NM>-MYzcsX`F}9{?nLM|L1@Ku%NPi0udY#N#7ndxIuLxL;M|W(N27o<%|CS%eiBd%(rPXT=6oP%~U%LmZNI#*XNUls9T`a zX=+yXTfZ;cU0mDh0&h(TUSS(zJBsE-35yMZo_YJuQNiTP?ITIGnZ(hE8g{6Rbge7j z+cT$=_jDcBhCmJ91Nk-|Bf+HH!TFb|77@%{bo)_R3z5{h2BWYQpgfLi_+>9r&me@h zeAldN5qWc2I=7N8C59v{@H(0hI|I|-ztgr~hat(aZk91U%1P&sKWbinb<}n68KZ;% z!Fcl64e8%u^zYQ>z*aM}Zk`6|fZJKl{4Q@Hacccmm8A!b24ryw@@1M_CWGvM$`8vc z9d|>!^IeMwVdv<8eix_}KSxcyvstQ{;@Q>DQ8Ox=&%EuT+-ZVEna8B8$_*+>01^80 zBTtg{a&)uxZ1EjmQPZ_MMYkW{#5)2v>9sRDILo-lmR(+W>lXnf+i{R`q2sv#?YF;t z$>`rMOmhDJ0MwM5YLW{8N!o<%hAIl7xsuv1QI9a&?YSo_F;Wp4JJ?K1YKr`cG~22C zaHdgAFMSwgq)5@i+og6O0o06;7Q_llY_Bve6L2Q9<14Hek^yq$~#>$p!@dX>3E)j_NYd*YuCT^v zxV1Se1wSK;fECy88KLkKAt0FSld{(meM$D2X}c>IAXhJ+A$?~drq18O2&Oz_qo9EvV3M)hpdEJYkt_?4Xhg?+G*Lfay3FVtX`&VQ<0DMA3* zwr=?-^0vbjIDm~oW*v5@#!;pPSX>f4K-6>6fbX^e8)An`i8*n4(!2Om9!!W+k|!#_ zBNT4@e0ozX(SGw~K$yMrcd< zi45BO*DQeHTz7)n*o{NI~mM`ADwioI}Kjv zPSRa|trHYdhhxW~$x{qcHuL!{rHVk))qw5+2NNsg;+c-A%(xb9; zrBr}H{{TL{vllePdAND7@tQBxFZst0%&RZWU(0)+%il0M9YWGSt2Zs!p%h1_vG3FA zsLpq^@l=WF(dM%Opvz;Cepdcu={Fun^A*mWEPQxMLex+YeY0=bc?M_*^?I00W{%8m zSw6U*U5qIKfp9!cH_eP=Oa?+WLpnU@WZ()^h72$bnbDJ#}=RUgWsItNqg^LZht$((;z0&^f z7Vq%-PS3Re04M(d=O5Ew(ew``*(wcR%ol5aeRn!hEbJk#Cu6xAZa-=M$m5jd)EUdt z&Uqy>vp@d;oZ0-`xV+P$^2g;KCm`ZWv@4B|*=W zOyc~lwVpX{K)Q0Inp7T##ES1;`LpC23{5@iL_blA!ri?^hz9r=Fa+ilj_$W6J|fD0 zEOq$2v8+L=JFF4HLxRB8swxit^f?@n6C1eN%u*4s`#1h_HrGP)@0P4THT<^?1?{p) zBMpI&60Sair><$|4-D9HG{WP%^Yi>Ws81YP(1uio>G;OnNK#gVZq*%6hk9nnNCCT; zA!38+Z_azaIC*Evnjew8>SDLCiWQR4Vy7lm6kc7nsT=!|lgBYFgQUZu5zoYb8$KG; zrIy<3(EuHQslF zQ8LycPMnPeN40)=sMf|~c)Dzwsx|@w`^Y*DgQ$yrG1m7{lq)5=sF49DtwG;@)ajUb zbu*5|zCEHyr|id&EOl?lugN=Ydf!kk@yL`eL@x@1HCl(_4z-o7iaxDPho)p|u-!`BL3kaMmn=i3;xf@O}B8S1MROTTwHl$$r^u`bkWaN)nxkIgN<1uJD{Q5)l?dOtk7$KmnWFlYD{Iq zQC>~*rNz75Yx=}aVSaK=a^jr04rNdpeAwnViKj0K;|v?kzHGky*3_;1siWM>2bbOB z5nCy0O3FfpaavY~VbMpvWns(VpU~SJdgD^etpi<7JOM_zz3-f=AX<d?%P|2 zNR?)~jZxv|y;PpHuiBs;cBtPpy8g~1ld8?8mY!QY_s#zR^NyZG{KJ8~&G}t*6{X2q zJ+hurv0+fED^(!){JrxEI=s4Vqrbh$#jlLLGTGyopYw+?+t}&xYr2$nx}DUf6iyUS z6ca+^ngiS5C)j55McQV2mv4(SIBNd@Q{*qLYCo46!`sA4i+3@yo`fl-Na%gX-Ue^X zt3jdh#Y_(9l-?cnwa`!yP?H^aq$&x8$#85 zuM_#U`K`3~jg=bBCrVEl1DC^E@})@aN_07~pP+2h97iOrKJ$&0?xUoqoIH+XyR~~~ zg67><>{sl!9>g7q6!+UPbK@dBLAMzaEQj){HuDynX(Y3(cF@K9*I`OJkBD#BbnTef za&;|vph-%9J^uhawEqCjNHm|zZzk#R+g)17A-KB>#7d|*gTz;*2_)`C2fk(GoMt&Y zoeYdeB#vDce=>PaPcAmAXBEAiDHJhPV=QSv!}*EavHoh4O66WP4iM#L)C0I--@*1yJ z!K+)P<9(m`A+JlX>3^m*8-}vcUT~L@#~=VG6x?iRX+n1(AAG{k*~qhP%G11(P|y3mIJ9w&Nzk`CFcmIHw7>|t3YLt^`P@?-OA%ky(Z zZBp7cw$*IUr+;rI%^Zu|cPe`yzJyaZdVIqu+ncr0^`JWcG1% zZlmqM{ZELY`}e5s9bO|7W0R4VW@6Y*o8>JY>&(`Ea?tIehC7)Vue~%-&fGo{Pg>T4 z<>GS(P5_?Gdq~^cJmIJWhA2deBlt&v0Clg?olMO|#nj0E01NZO^GEYf%U_XxaJ%!4 zv*p3BYC42rp}6&gYZxGgRvcTABob>)snlk#00S?ptDg-~lxiIO*>9Dz) z`qS#VPN5COy4pj!M@b4YgY0)5x9Qt8U8jiPmGmyBRjVRf^L|KvZ+Uj-$zEo<@}0?X zBy%!GwEID*RD<9_+cq7So5Y28JIy?V;PZQ{VQQ^vel}rFoAmuzw~WCS#xoS0Xdjdw zVAgEs*EHKnUdG&VmQ+&0Fii&|+kA}mF^@J!Fi5ql4Nr>2G*8MEp(njMcfky?Jd1dV z=8p3Ix{@!{uM_v1Q1m_&-!01#Clf4AGhtIuj%2Kijp(_l+jCFz@W+TmY{X>aHdQp; zU9`82t$q@$3vICkbT$21M4`PFypX-Zb+37Cb?6_=nk;`Bf@Og=Di7@e;oJ4(rIW+i zmY-8wNgerH^K&OKWuANo6LAiaVO+8ob;lqS>j*7;=5_rhZ;|oAZXy z>DSVvXG3#yJ3CfKl0c)w-GCwjE zhB=?2)q%5uGI$cA@y|B-YX1Ps8ime}tRaT-)>8|{)Erq&56p^FGUKT6B~HgDtXu4# z%0KzaKRa0IR^Cdtx;9oYMj>f!lq9k(IE63Q?23Knl_w{v))d`H8+rg}dfR@aYSavlQoe>M3N$o_Wn-QJz1 z>lY(cjuMv9x~iJgRKLGb#M9?m49OB0IXg&35!z46ugx#{$1P*Zvpw5FWz+fmH)5P= z;C@?IHrg)MvBF)}Jiu}zI!4e|gQWQ880z0?@R~UJtjc7=dpt0pb7??nzO4c|TLA~l_Su;9wPj@^ zZXY$bKj*@~;&xWK{zK?KZ(o$a!+S5%e(RsZc}NlT@*VPR-?qmxul;fXJfdz<_!T}Q znobWk+y?ItaU3CaG5y8=!>O=%Gf3w0KOC`k8wt1dh-~*Wl@wdvg^kPDT2@t$xsgk~ z_dwzYKia<7R9$~UW$PMHc;xSGhXs$m(a`T`U!T9!9r~^R!cVjC6LCnCiDh4zKbyaz zI*Iz2B>vk+QFxc3uoL~g)-Bv%K@@@PDBUsk9rrWdNWn zmhC;}aloFSI7OK(B3Pa2>>vmwUxw0Ma!V=`{8+-Ynn#%xGEV@LE&xZN&$rSVs`Dur zAhyO$S(Pb6V40hkp@8qx0Z6h`jiJxY_eOiT1;XWikY*4GPapVQQu*%ei&b?3>nXa&pidA z<-DF4B&rZpdo14gS4bk^>GKP^H>VpS7xsw+QTw}#8mvFI!c*YHiho#@JU7jL7>=I# z)5`SZVjEk;GRYf*%D*rji)R=R{GYV>qDSend%D`8vzi$@?lG9nlSfgW5nCg%Uz!iV z@>_y~B!IKC5OUk2os6Ay;LTv2Qp7>mB0lUeS#7_k?3MQ=*PiSa*QEc^DqpNRJZZsw zemD27aHJvVkE=OW?4Qy1Djir!IdU!z#v8-WX(PBqrAt-QV*og8OZuPAKSW!|>kcvt=v9L^^ z*Yi**{>kPVbU9dz^PPW~sjnol!CzB)SggIlj!}x_b-^XQIyK9_} z3VRbD#c>**9Cf(0Nx_ms-_o_yd1oy8I~3aGOpE+f7XUh>s0^r6@PzzO%gMV3=o<`2 z`_q$@Bm6yB(wZ!_@>KMV?zWTA+USwmaNYJf>?aUB-Rpt13!DL*2ZQMK^rXGl%NaLD z!t)xIHRRvt-FWtL2M@h7^O)`HqN~ zs(Y?G?ZIgVJck6sNEOGGpk?I3e~Od7Y7{WMk22hYoo5=v*G1l)Hw8<^2vHs9Ye7}p!qr7|^)op|ef3+aJF!(1uOhd|YO@~pU*Cb@8Gn*!rPEmR7;v4NwR?|XZ_e8W(3 zVu{-&_M&&gQw$s$t2F?8^kl56K52k4W6rUgKs$hQ`^r{3rMRTGt&8G z*tp@}Xse{-6Q^AhnRr`%r#kgF*a<{<TI14QJ-fO@^@TgXl z;U7n}Cg}OnpN94#p(3H})IH`TbcGGc7i8^S_I@iNL)EHAEK9!6l`e-Dl3 z5Cc7hD#$!ec^JFkyV`J`ggTY1Nl}3G8~Qif?UL=8dmka%V0geMk+2ZiermM5u;}pjPUh9GDN26eqC`QzhkGFi*i|*BB3PZ)mGkqS!?{+Q@K+ z6pm-5mKCa*nG4^5zgmZ}6M5@E5ZHplP_4TRLOmfaz^REY)xKqhnP?ukCk!Iei zM1lD-TUEU2ze4|^yV0EtJ(XGTdlqF!B~iVm>Ue-<_h#dddFDb}Rk;M{noF}cP#bgU zRvT_>qb!zCrAZyDTg6&>xwn||HS*XbVH2!_Hm-e_HZrw-0w9mywd;8R!@=l@dk$n} zn*V8t`@+@`!?K@$+WWyrR5%Phe)QxJ_ZdNoM+2*=5YTY;Tphp*YQ;QLlzk)Xuu$<- zwsaabyhKD~7rb;numk~=6Ma5#T)rGm5hDn2FEmEt_N!CVf>)PqSxWR2*kAk+QLY&A zBq`(knmi#sUX;e9hO9!Y=J{dcI;nrFrOrkzj#=`|Y6t8u%?sFW_q$kUkUV13S7F!` zy!H*V338Tct<$xIgPh%E$|)q2^EId{3S7gC|KeOyUP!0=Fy{zmm7fS~UToPx%PcV~ zixK>OspoJMw=yrcnI=@`1J`RcIouELnPUt;xoLHg8)@0T;EG@1SDCO+ho} zjHRyIflKLT9v{e~7AlewwDnh2R%sWK6 zbhMm46lL^W}N=vCu{Ei0sb4 zKm0Pwp6B(0vY6~`qxAhNe=wa2cMO@Cl*#CeX2ywF$BPjeF~skyyTKXN*br)8G+xOu zomY0mknBgJ7Z#RKqR4c;noY0v_t7AxnHC96_os<92piDf9&vbOgD-f<#mg4T`gLWU zY_RE(w-G&(x&1GK2}~B#Ee!c)aL3I3U~*)hgCGS7$e6Tz1FIY;4z3)T3fWf`pP^Q$)kCYR>UzxbRZH8=^kRscC#tE>F4%xd=jSL!2C z28K_QvQ=Nh?a<#%TVeZ1s{EFR#9Htp`2H;pZcUfrYL!RRZV_d_j^~qcujQgCO-JM* zoGGq+O_;y*#JO_*Rce;}xDzNsYvww#ZaTLec0m@)gDh?N33SeRJaG-I)K#p2kDlzD4>M$Uh!A)NY5 znnIjb#!?=ZhBgSu{!<3oj#%#ddRSmM@aM_ndz7EV zmvNhq3N_GxkJ}&Gncv&KiNx3?*co0#FOhM}+I3e-lnW!S6 zcHU&Sy^g@{D?iJhEg~(ZlA zw2I5Mhc$;Tc>U))x^!ZwDNgTTWHEr{nQeBdM9HuuTAUagNP1Z}IMo5O>qPlhRRP+u zwh`zMjt>zoB>=4Z45;VWrDNbRMWZMt7N(94ItVF}ag~<|FU%j@ZYQPLC$!f+$!d>p}zCkD5(y| z$;DsSzg6zuqe=mW)x*M&7!faStXayu0k8wz_!3qv%9Kd$({DiYu(86b+eR;{63B5r}gEhP3=#&nS}Y)xdMBdMRb413aejslN>Co|JKHBw6mce z`b0wByBa!&wkUQpSB98cw0HF4dmL?|e3l=q0mX!a3%P?i+uhwwQ~Fm;DJ-tCj`J0Z zRj8~rF){vy@@HX6+&(4OBzpx>1(Dm4h}BlXwbmxT^}L0(Q}G9rq%X@J%Mu9@{?JaE zaw=my%wK4BDWJpk*bq$Kj9dcvxyx`cR zdO?@w=ON!jn|i*n#ZMlTh2<#_$>lP(l4_=Wts*{yt%7T`TuVZ$za?;U|nVSda<@0Msv6?ECu;;-Pr3uZIzn&EiCTxgY+L4oZ;@C^9 zndG)N(9vtkiJQgH`A5HQC~o~Iw;04FJXuwtfLF{dcAMnW*A;(of_x9}oskn9lxURs z>wQN!y`b)4$3yU*5^->w7ttw_IpLA-KC~J8U=SIoH>?j-1AC7_L^Dkm#uWYp0tV_PsY?7&0eNtx> z{4hkrnBR4D+l{ifK_#tgQPXW24-)yhQX_r*cNX6$37cR_d31Umb+jcRe48_-Wyt~o zz1VFr19_O{2iXzWwoEaI70Z4DQDuI08ESQ;@$CKThOnb;6}{Bp?7?1j1vaF#C?B`4 zwQ~ExX4Ws^S`E&O_x{J@Wrt(>pXd8p!;mig95(%+xTm2>*flbx|m)=gVZZ$UuO<-0%cHGX?I zQ`YOUZa?rEJwTj5U6#!znUjNh?OyQ@Drmj{%s`BUcG#I8o7$18e=4WXq>@gvPD%+_Mbx7LM$%;!PPh9_xs_) zx@Or(mEvlE_AytiDQn3qb)3h>I04n(8fm%Rm$~kAqQwqbn&}FNrxCn^;sbSv2(EDf zulkgy`{X^!iwVa(1Vqknq*lY*X5JdVdSM4D$ke;DRy~M-K(>@-rIH8XnvV*tS|2~X zP5D}o>7#tPw_I}y3nkyneTS`zqhT5YMYWYx;S6OGkBYONRdq{86fJ<>Olt6F2hK4z zrN|E7Iprddjmh(qT0A~x;z_J_I`8fQD$9*)L{ebV4+pwh>}ESTm=as~$Y(@^@dZEf zt+Z$0e>e<~5sCnQA@cY#=pT+Jpeg;Rf$y6#6$hf6`)lf~y@uY|3?pg2ZI?7(bEfIA zn<2d5fUbWq>*_5(ME?%>UDJi1T9N8I!K-iF$Xz>q{X{E|1~N+Bqu`sKl4n4oJS(szU*Q?(5};5={&7LgS1W z{Z0;+GaSyQlf11We#Wg)fWZ(wDLr&CYGeN7DLk@}{(3cSRN}k-)fmVqMnkhjdH=B>t1vR-p%X~V;&GM(2 zoWUZlpEN&YU$(xUDbAC;st_+Z&C4hvvJNoJq**md!^UvrcId0}XFVSR%n9g77-$TV zg^P(2fhgDzMrx0h02+nrmB7Paw-WXhqwn-m5kuOf0yVB;M~Eq&IHLEaV5Jy1Wrt{iz= z7}6if6r81~Nw}9pNDgvclcL9pWYLZYo@%h|65r`HI}po}`TTN;XDD{`a!(T54fFyf zIL|m2_BM?%lYHE%WCqDPwjv*@ylU5Ysl`ls!jgXFz|12)(R98rVqf)DTvO53CAlDG zYye7>-zq_{jpAG>K4|}03Oeoh?dD4gz?Tjk>sFuFL|;K4pE8OaE8a}c0?i0=ES?@@ zdZx+xBl!>sXs0r4)Jv)PZisO5tvu$TS4jmpejEyVB+t+l^;G)mOoZ1(SpI3Dj{KiZiQ_wD zpv@s?=CwG=KT9ARzsM4HZvCVzN!^zrMkw{N&Ye)6GS6$H|p3LSh?OV=(*w)5$y^j@beWs!cUsw?{4aBMP5lYW;pL&b6?^H`BA zF{sTkhiT}@Ci@{M#maP1H`bn8PXZ^E^punw2`vN(vgQ-3N!S-e%)Ubp{|YjY<6kFL zK8VoIrFhD;&8UM0Wr$Z|2gT}3IPod;;6?w)$g9Iiiv4P^c@Z5f3#e=`Qfk`hG?R13Ffu z73O&jvY_|&^x$)dNztYmZ>QX7Y6v^Yy=^xw$`h=Qn ztyS%`2U2!HM20WK%v%sI3eRycFX$6 z1b<5vFCn~h9JQ}ijcFv6z%@K6=BwO=C5YFQjSHpd8T+W=jGXAlGC+X6)gFU{wxO+d*e*a}U z6KoD%h%GYm!97KZ6G0Urbp`CDu9s6HlZjtjLJjS&o;>TD_nh?tMQUEwNvjf2ruld_S zDZJKd4KftMYSTeD?_qXbl?-NqUt^a0&S+-p%y78J%kdP2w>_Gv^IV?(MkYI~$40fE z58OKRTC4F71W_6NE-g)bda*cHa4IJsv;+CtxUl8T!CS--s<}!#g#VC z%qrK!<(op^Z~S8J`{Y}{22pA2_~xYf0G<%v`-<*Nl~H#+@sV45X->0!LS9E&Ht#@o znCh_XRzTx2(^`)~9X$_OOWK6%<;8hgkNmem4i$th`$d)hgB{OnakYf1J!4UW#dcLP zsRt%Bo3Lpv>xO*K)p7+xac0cgf5nf4-l;`TIbq;cS?3X0-A=e| zbKxTPw<@g;xN(()!+~72vG*!%q5#%1K$#6|fd7jr8WOTw9_Y5_Af{-+3E3D;uO1Oj zxwTyiq{)43T3U@ydg!`z^(b=HFS<YhtPKt>N@c#JQ>VD3pF-0(L6}8yvaC*jw`<4KOE*R z$6o#Fed@%;Y>iii;c8lZwF>qQFu!6k_>D`$)l&OopW&jFYvd53?WqC z_umV|NfF01PRD@1^Hc?C_2d2FI6I&RJHe+y&p6J?P^FB0IrOA1yLfu&h~J0dW%bw&u|a<)Ln)mipjpoG&N2~MxG7#b>zV=Huo?hd*D+yGP$@@Se0Sr4`iBa zg5Be!>$l2Iz{vaoXQDb-j3t1yL-ZWdFNXptb)!hr8t|o(%6hHdMP3*kOPDk>a_ijt z(bg=zARhS=ZFG#qwDe>9bm1PVNH6_)Yqf2Z+ERA2oKe(=H)>Um@GC@yVXX)yV6TSPS3qrFL@j56cKLNBqNWkF71?mwGOFhj*AKK^iC@iUzw;rBGTVuRe_4*3d8B$S zvo`ET88CEr0qavEw{BM90U4~wtgjOV?YSdw``o{5{E7Y(k{-d#l&7LCA>H!?j{oOh zDbgwPun*I>5IPuGs(zTE>wEL9+L5B`=Zg+IVloJ`AyzazzlQe1UfAf@k_tZ9xh2)D zjrdksXs{$Z{#-DLXO`Vjode{Rjqv52pf2K|vZhOz!O|^VC%9>@8~+v2d&$Imua$uf z2fOcVv#ufdNm5Mw|Ki(_?Q()xM~+;3|eh>UKk4J{8$onRqhS zP2XfQrLAPN+OE=x!kfM`T!YYyCI;3vmo+iU;{X?ncxRy_?->$vlO^UInL%QOI>?4& zF#LP(20KI0t9_pI!I#>r;fe)Z&0x!wVf<-GPGubRfoD7>6UkW+A%qoxFbnWIhz0)n3Ovd~=mgg6W$sIJ?)u~Z>Mat@$=y1jFNMaJP~&7y)7qZ&GtEr5T< zsFQ3@LUFP4Ka~*u4pcJ%GXyuW0hc?cxXTlb$#3Z@ni^zP-kS(tx>ZCkFKnr{-KydS z#(^RP1TdXprRdL!6ju!`PbTg!Qt8@pFsd8y4l72l6wYU+w+P*k#fU?JL2i#h-ZEJI z=^+q#CJ|_(wf~QnbMNUlW(0XG0jOK_6eL3zxR({sD`Rf=taE%odw#qk#3STmrF`d` zud4c&{!COGA}x`R0KqBBgvWf>1M!{aVcx2+ir{|KQ^7o?9LQ zekF|*$2WWB$sMu`vYcVLhu76-pYMm)mDk%={<5bQ8|F|y>P?ww5794Og&Y-$myT4$ z5nq2ON(~Q1y`HV}J~$;l$O6!;(<(nFApG#Kg#YDqb)z^|kL~#LR!OPcd&z+>n3>fw zEJhiP8JOoM6g9Wf3Fo5S@W-uL%IKGcN`RAHIawTr87zZ?G^{I_CsWvhJYiEkMfsr! z>$jdK2JNjK@y%v$X}K3+yL^h$)kM-w)91^&`cLc<#iR!UFuSO%?5Y}T^B~jL9oacV zsimY}vv7<&rO!JP0Jq6#Pzt5Or*ZOEJtk=Hu-bP>OGu5nJyo68`1JgXXj6CjyZ zy>vkg6gv7M5V};^h0+1abRO=QpPh{#tU>*gX2p}sqL)m99~S+<+z#eRT0Y;8cd~_H zprGtLY~-T_8dj>Y*ZG9(l5$HaW3_wJ zaKL6QW7qrj=#%~;_aH*c<#w}kk9LQz9=5)WebvJ)Ts1O7zt!kdvUsd|7=$yE&qh$> z2QO3?_%N+C6OC*U#X`6H6^i8A<3@}uk4L<5JSq584TQH;+9)i#4*KGPv3%&CT2Wjh zc`cZ~*y1$~*|2r+*Sw@Pd+$fx3^R^__&i_C;tX$xTn9Z4JfAuYF?^NS8LWCp3Xjb}gnisWy)=!> z7g`fFB=}bY``{|Ie9hfX0ajv?PImkcGV?qC+t`Y zox?%fl_ZCKkwcmYahb2hXbNV?Ilqg_zD1vLj+I-_CmD4dRRgyRSPK@IB@;lFNfdyH zUdMZ>3dI^1nbU9Ru=iqn5$tu^CDu4Ik<^0C$MsxI_@}$T__?8+3=j#7_VHYt*XK9= zURGs$#>MV0tCUVbYR8xjClU7H@p)Iz9xI4J9OK)OMpRxB5;0wc*3LW3g_=V#`oC|v0))XnCQR0 zYcSeG%gT5>z%8M$wLY$KOIOLj?JD#nx6*{?6TBE_`SjpMn;8|pLdvIl7%>w@H+>vZ zL$^IfCq?c21I|NLAzyv#HfX-;-Vq#lAT25Jxn*2>L=+i^U=KE`!}9xhj54$auof<5 zv6u`zpJQ@dDi$xL)iQTsGw+M>Ewg3&m}9X)ZA``LSpneROJhx_8T@Yg%ao;%r?w(7 zF6TWLkmeHWm8);LB*FX~uS09Qp}!zBtyE{N8!DRwK3XX|-5b6$ee5&wN$s{aeE#oD zesK3wk&&8g5#_X?9Cc($s?1UC@1mSLd#M{x1Wr?On>T(%+-S^uq(LumDd1yi+y~!L z_W=Lk#4S^hd53a=n_qIQ7A5$Ho8QV+#oS z(Q95^xa|nHguiO{ai%EY*~zN=rtGFC&1CfyAHm-#IBE4DFFcXlac`h2M=UZ!=Pnx#qiSq}2otTi>(a8CN2>kH zQ2{i_t;}f4>O4hD#2IjK^S*!-bH-lLy$R>Ry~q!&=NCxi1W|?1{v&ec(ySQ7%YDQP2lK$+AfqQ@EFE^V{booJzbNX>+Df%xVazN%BgCNc;i{Cj%GE(1+ zCDUpy3HRQ^f}^nsZcZ+KmKHe_61!t9TjHiD)pQ^q-i&}uhfj|hYi9bJa0p4is&>b; z-#dFs>m0+X{Sj;3PPs#3@CyB$kgk(^tDA}9lag%H5oIFVB2Y7%*Ba$9mZtK_r8)AA zj2vMc52+L83e%o}odh-SN|GnpOYYZlTcPf`97UyHK#uI&sPTznPe(BqNy8P_zwKV zJH;+7)p?qT^yA4RrILo&li9p2H-BH!g8VO5!tDZJ+xClX%u)nM8w4fw2}0VB*vnU0 zwk1vPM*%4H7m_qgSsoKDlXkUL56_393|g_tdCZ7ytE= z4A=g-ZKI1&+e>nMW9^WJ=UaRU08}L$b-KfnL|^d~?-LE%q5=v#BUI7O+?;ih4 zmw4uhXPl(NUKBUNXdg>+7u>Zz^@Zv1>qAHrl3|@W@AOZ2KQR#ER&P0BaOSX;;6(@g zy#I^Ka%`lM=ATZSLi}L?HEns&Ib^KCi)rs^+mXWqI`VPmJ%9O1S(zR)ouh!W^A`q% zUYjx+g0XCH_SF?i5k04tEG-(S-9JMPY}QI-;{aNERPLZrg8`E}y>6@&)G#L-j5 zRXGj7ana;6$om+OixnOL*2v-2G8s^HZ`QQvI^+L)e|H$$kLyb@+EzfWfLCW3xGx*UxTTrHa?9Aw;U7eADqeY@m}=S1?lF5-rJ#->o?H>M(ru@ zk)tgb!&l`U^~z6G2>&EwhvR88U{F)(pBEPpRsQRCJu>QquB)wO3!Fl2a%#v@-+cFEi2@%eUJ1il21mTTw6psV|OI20!LVN?}ko^(UF@0_S}ZWI%q?= zYr(@$EK1F8_u4EXi12KscEm?2&|ehlFLk!w9ouJXMZsKgYYh_KXUX3#n_a7Ezubc7@0byJNVtp=AhDLStDfZw_7t?Li3HNH!r$*^@wpDSY+p3(8(yhX+*K)W_gkf<$=!^$nkXhj#L=CBv#$wT+ zctEP<9@zLVY|5%dl0#Bt#cnSZ7de$n$Kmd$US!S2LFc58>qm}1hw{<-eL%8AP0Kh8t9 z--ufUYq1NBCnm0*q*(k_+FmUeus*Qjg^r^F5mPQojuSqS4YrNNoB-=1$3%M68aE0R z^HX4;`evaxB8&K4`nQ9~5XJA)MY(h@f$mh+b64%<19|kdPjkXfE(!}}CBILMN<5Fw zF&URo!logjr*!#-2d$BRH0)wFEw%BanWH2nCCs&QJ~7GA&Dy(u>HAX>c&4s2t@Nh%!sP&;p5mq~tOK}o^4sQ>b;gj^A z%ro(tz~(Sf!N-nOQ$OZRJA)<;nGcB^f0~N#k54sv(7t*Gz0G_^pr5sH`}UJQ8V7eyQ`??xiyn4J zzXeX6B|^#P6oJ!ML>43A(VYV(sh>!glC6tOSwnMQ9)@jKz%?n6|FVnRIJ3_*@;q6Y z2SllAq;dRj)h;$Xkek8D5*JK5Sg~G7nC$9!xYe?KEPD3KXF4@@KFY{s_ovkc;`FN# zB+Jvy8C6+?z_}_8ONE=b11|*IgROdym!JDl-CEX57g*)c&GD1UU!ka)Kc`wgr^_=# zWBks#&=l?z02(s2Z>$DV)vT%PyQU;FU*jSB;QwLsM+sOv_BKRA9y0awBOC2r#+aO- z%w;J$Zf0dC<3TO`t%zz@pJ9j$r7=)rzL>3Xo7p~;XTUdO?6^xps=>Zpc=z{69|Uc5 z;Kt`>jI7G?)II8U2b%JACr~*g1?gMf!gd+D&s0Z+XS{_(Put8RXg=kP-#LLkwlkN7 zj*z)13Dy~=0{+8^V*bKJ>#rrF4;_YaFbxyP7RvZc!JFXM!i@ z?oZ%K6S!o#0cN5ZaEk4Qkb{)jUiGr}FQNj17gXgoc-Xe2NrWwIr?D)QBU)m2@^vpf z$!TgmC%YZb4L2ZtTX##;K1#iWNak%Pbe8wBjvqG4{wZ#`&>ne~cYQA>jBY`iVn*sl z+`qFYPB%@HQ>#0O)-WD5a|XlQmtCD?;$XdrLU_;{=8Oowc1C)QkO=YPdFygd@Y65q zIM4Ls&vkouyt7q&#@}i=tVLOFbD>vjCyLGH%8y>qUK9J64!L>_y(uPrb`P&C&@oN) zDYnrK*9r=sn+7VUWF^{iT6h`zh&$!|_4uWjJ+RB=z)sjXW@+^@g$JUAGamMf zJ6KEl6XP`nysG~26o#q%Kqc^sL#w_({vZeD3n|dTremQcN@T)pn%=Bd+RR_2PyfGMVZQS^upGr-30_b{b)80+gK^lcB2 zq$zx|kt-L`OX>RF$?wbwmF7b;cv1c4>dmTkt$dCQ=R9`;zfV2 zYp2_Pa*^!ijug+rWMCU$r%rsZDTcd>3AqOA&6c~CR?j7AzqhelHTyLq6}tfTBzy03 z#vNWu=hdS8b?Cu^mimWW{KRINoT6e(K>JTVx zUvE{`;WLWEoKd&U`*7NfXx))!haABl5+85VBcQ~dBYFcU&xWem8^Ht?*zVp?1;bZ+ z*4TQLAMf@2W}xi*#E@A{-3-xwflNnOD3&WD`SehoA7EPE(w2J3i%FMYQMi#81xNUE z4Du#myH(lSDMSQ#G0&E;k7t6$EVeVg`aLW8HIXr=hip z%7kCgb;uAsO#dP{V)#O5!E7@t`=7c|8m%%lw?P>iYWm(#jC`3kOrg>5&Cejt%!cBx zyC~WISDh{2b_wVz3cl3r4U9C%79d+wnY3neqQoQzAk3hb=5a?}fa6Hn96!k%op*YU z02ay*Uy~x-zB9)J?7YtOmhz<_<_I^zzTuaSfnGX$u(}@e)^q^=%_YX?R5UTDi!M!q zu}J>+T?II=p{l)~yTO+s|4jfuBkAr>NOazs{p;4GiXv2z02aRzD$B+BQg*b=s3ZN$1C6;aljKDQKnF<8N>)Ln`Ql+ zvgeR6xu@|hRbhSbt2lI)Z7*r<*W9b-kJt<29aP$b1v0*9>Oue8`oj(B))e0u^^;A% z12^M+?H|Yfm($ws=AGVZ!H?oYcHpZ;o`4iyvlHE#b?dP3Z3RFd#Zw72?#i|!r6$7g ze@KZ7+KB+)xWD>!=s`KTLoRojF|Q97=wzb|wUC?~ozIFA(Kl&xI`3Jddgq%iW|UHf zxyERsy|BA1e;GIAqRz2+5cMLQg9e($_7}w@TbhNjJ{K z#N1*>mK%<#b$-Y_fksR}HuP$asDmlsuA(nL==Go9q~pDhPUT&3?t20mgyQXAvX1E1 zCQIsv=Ap9!>YRc34fIbMKIFhs=COI?vR`W344yFS90KT)wCOyjDhrjyB}K5s^#m!D zp7a%Zz+%gFp>V@O?Ud-7x?gI?Myi;jsN5f4acb|kKb`TL;d?opYhqXhm`lmlF>x`I zkWIFDcEe#NO`i%`ZbT9}>5hZ`%8IN+98&p_avh&E9$j}gQ;3wm zhqDg;sb<3Yd-{`n!0N5FdNRc^(%+xgyV^H22%QyDZ+e`*iH@bUbNLRgr2IXR|r%0>x?o9nD_hronsfi@oSpOR%rUA!w)Y^Wdvu&!9ycMBp{LY#M0P zfB?Icqbs-BhL5FVzJ2yAqJbNf6E7wArZ5Z-;}eRfOiN7oSd|3DlETP;4+1->@0M#f zARd(Sbiw~5JZ==K*4aJ=lr$QphpGmU(nx$~UEa~b^v*Z(Hi)KFV-skmjZC7`Pt4Po zI59vd&+`~?ch;YN95_Vdw#TIuV`4~bQjwRt*b zEUwtqoeSLxdHB>K>z1K?P4Kslk_qJP7Iw0lv$hTbxDxm>332kDg>$Jqf-tXgwzai- zfwx~*xSFfu3XRb+J4ZezlU3ajC*-1+VrZt2b*X~K<;@lJ6;xN-M^w*Vs!ZKHVy)vN zwAG0gx{PM){jAPfe*0`hy#+Z~u)EZ5(RSBfS;~QhuzXWDH!P`M@6Pq(jQhHF^iSd@ z%nrSa9zuJd$10%37Uo;quC9#r0t8(YY%m9o_PtROrC>jsU}2h+it#a^fpqkFU>y7! z(OEn}n9bkNc6dFuX;mn?}>ry2HP?^ScstEYN$ zPWx=b<%LE5j!G|M#e75#s$mFF3YSgL;hat7*&?3D$@f4WPPU_Whv6)zJK+T~KC~?s z)-jjUJ0ILoV-B8t?^Dd8md{mz5c$?d9o>PP@pJ5s5+7MB z+bY!12!9wQidF$CMT&=A-#;W>Ypd$7v;$m-#1c1>GSyl1b%|R^%@Xl!H*S@ll-`NV zbpD4^THM?JvA%iS;b`E;c}DVZf#aKG>F|)C@c(cWRosg4D}eMe~eN^}TB zswg*|)xJ4aP7SJ{_@+-D=NWM6+56jk*uexgRilE{T^1Xrk^k;W0257>_$B`9ftltX zJSpV=adg&UO}>2_M?nxJq`RbBx4kKMy4_K8_yc$E$97^>*_+t2YSFTOpdI>$46NL?M!P3{xQ2lNK`JL3~NR z$7|dUS^ZmalMrgZ_&7b3P3k2qpV?pGDk1;%nQd{5v^u?n;1NmG3HU2Nl3dEYY~ese zoej*X2ZHv^!Ny50MSoXro|2|bIZP}ruIAS3THNq>mmp~>RyR41fqX&*h#`(Zi;2{) zc^lgg7i3Uc)t04-R#1aXp)-h39(ZX*yBkrAeTp}Px2tVl79>71@>wNGz$Q*x)RQ_2 zyaGQEfFC?U`|o?j)4*HeD>{p=9|nt4mJLU&e^3B^levD#y&>a(4Gj~|vS+tU>G!Pq zi|Vb+7&R5{`g1;xv9&HN=*UIf9wWg$`b)nM3bhEoiMa6$NP^ddaQ}z2G`RnA@U*k~ zl5}(iyqU(HR_<aCG=NhbN#EHro}iYdKY1#O&*Bn7!&~2os@Df4 z9bSpTGC6@y?Sx%~Y0hE0NDO6dnD;1D7)KqXl7YfoYWbEKiOxq;>k*`Px68sdajQ;* zys6)rPg;vG@_F;o7EiqeIBU*G8$+oMBlEY-3q#~?@NZJOXojL)_b)4Lt$RLrJo9Mo zLW2fiaWL-&n46j^j|On}i{#>ojz<8_eFAs%sh`@FX_6q0-)v69L{)m{H@}21tsfUJ z+~-yC!u>tnu^kr&DIq==l{{ax@Fy`gvnUYt)50l28s^NL_Gx#GA#h7VV(5s@ zTRB+#qbb8Sog%C~^*a*Ic1rlV*88vyxJyRN$*KWn8B6eH$B zMsfl5$!poEs7{KOWq7hyD-~#fY?)B!4_ezE*>t)MUvE|yhkTvsxVSp>^RiH6MDzn( zziS(!$J2f1;d;LpEB0*dnuGg+KIf7^1^-d)AXHoOHSmDF@rQa)OYs&g7P2D;+`IEe zUzI0)(__m^q67J!$RJN0-TD#>kB0cv!NkA{?FmwA&K)F&{&va5hm-bbBNEmhH1yr7 zgf8T&#zZ_2ZT%Th+x>}aY&e)N6`OxYeWcnUE?M3RF0A1*QyKBS4=@WNpATyDer`FV zr8tr7KtFqGv;KT8SuU3Fo9IKh<<@tI)#u5^eM6U#QDs6*jerB1HVkXRPf+Q%snN(B z2q1qehe9lIH&@-4Rp7Ds?OEza;^O%Ut<%j}P(?s|1~(0tsbt1Fv*Zq2|_X@k1PM;>T*yQzU{HLrMw| z(j2_N(bd++XBAiM8KHhinY0(o%|WX)EYJL_=;|=yVkXs2(wKgJzW;t<4Qy0dxQuB#F%XK75EUtHbS$bLjiClrHZtfg|>2IfQ1o6qJLg<=ueKTEcZn0`S33_^x zgSY}Bm~3x8wupF*PZ7WE6%-y&NAY`-2nyklUfWmEsf?=t~Dhszg>=+}*9+|&pp#yd*x4}70|$0U(3vv^Rs z@Z1C;RR?YbqD!PZ_D|Mr8>tfhW8c(WPV&feez{H5MNoOY>iN6PZEHg|2W18_+Rtpd z@kRyHm)_tfzr%RL5MEs^62{`GTnBP@KIT3oH%omYo8HNJwVrQc$WmS01GW2g%R57b zb4cuwd00O%TdjtW+7e139W05a^~rAloE>sUejDI%lVF%qUyg~wjqdB)fE zO3bG&Ob?A)jweqiCrdglmFAO@8Bb3zLb=IgDKF*Z-KGiS0 zLL|SUGhXfR8`5evZ`15vKIctIq%P+&rfEaTpv>Y8P668q=`u))7G@r}=pVn@mlnO5_^a zDxLwcUccv!`UNG_@X+e9OnDzbE=bYW?nvr2`*vk9*$V}yrTPlUMVk~6zO;ChzsFLz ziwGi+VO-@1hU&7Jt-$Ab({2rfTd>Fj;YMayQE*3u!01K{@G8IPKHDrt%J z>M^ihOG89mYkBOH)d!K6+y0lsw`VF4)wz6l26*b3o?Pp6TYLQC_gBun0Gr?v09D?! z&Dbx8JM|3Sqp*bEEO>v@Z@Ghpmi<&F6fJU|* z&GDWA{1?2&hCo$Ow+y+XBs~g;N%R3a$dXd;P>(vDOKSHX28OI0Z3HhNA#-!$zY!Ih z=Yu@AadRehjNI2s@vg&<)dpNV0?*Z7wz?DQcJJlR$3oT?xLuci@MBN1>+ShBPN(X$ z;ThdAHok7JEl9iM6aUbF^tt0G%GR8$r#Gsge&rruoYxibjcvel|{ zv3-4Lx(7>Rlrod>eVLlLkvQb&3ljY;cCcG^L}P>Dvu_?X+%@QOo9j*^p9jGB>}C!j z%2jKyc3B6Wb^Z(%sjj&x#alAIw+~Ew4!V6QD6yHH;4?zeD5tixd+=zu% zlvb$HyzITA>BTm0^hdxhM1|#?Ifr}Zc#lksGS85LgN$={Ztgk33h2hYE$S{wH&_#0 z!)6Nm0=qEpemr8QkdG7gw$f(T+=5DEcFaiVC!4R&uKU!J{Y%&JIP23WEG^rlTq{T; zZzeQ~$NftgT4(CtH(~^e3$s*VMd+qnqP!5x>uA^Xk17o(3R7;@q#8FX?*Xa zEd>%U2n;S2xF*x*xGBStE%c`(MHD0jjuM;xCu#CM+$B$5gL93MTjPe-4XCm>^b|LU z&$#2nkKwp1?sEOlRD$uY4%7Fx%>ZiHa2q43CI6}Z7p^F?$#5pRRYswj+MbS?Smnm{ z#GyTW@HUJgM_Q3{^}X7;6G(f5eJpV}-7{LkFN9jO51d5faP1$!t~RWf^Nl7VvJqJSN1N)e_j3RPxctt+=k%BJrIJRl2 z7!B7A(Zlxa_K3nl9ApR_S8o2E+Gedq^VF+Oj?@ z*GtetiL*_#;s_hj9-CG2=T~Pq^H21A)Uc!+=vZ37h)ygqnNzXrGK0HJ9JSN#a zfm5Yuhz*y$LY2LosmeYj>0XfxetVs=5Mt3U@E?-!RUUz^8OYQ z(D^jY2@P1w%rUa6CMU|mVql?Q<+-T~NA|Dk7+LPy=oN|UrSug9HAa5g0iYyIC>1II z@6VZtyz1WI!qZ{llMYcXs8meYuPm7d`v;{6=$7EhglAOR*EC#}DOj|K58(D{YFICA zKF>Zs#;0IEnfzv_Wtz$M3nHCR*Cgu~nV`xVwCu>=T4k#VXnCqR32hBy)_r(@#U8F3 zy_~XndyvQyt?guNe{&NuQm%xB;i1eI3ZOImu4V?h%PrBC#tiQl4MS7bw{?5tNfjSE`f9X za6-d0Zs^Wsm9L83aR!h=Ea&eM*}{4Shcjw08iz3!xUS|Z!D_4*5%N!AyC)9QCO}!QjJyq7sVZZLxe>lr ze+n>d?`{RwzwqYDf-Ko}sNFxBf>r|V$*jNJSZAOTSNw}j*@8wL`W}?}d%z8wa-1*! zg+@otuIuNN>08>@4B=?_Yy_XoAI_4XBHQNI2Up-eiM+bkLG~xsM>~=bVlp0jKXz@+ zCvZJDn1_*1!>R#*qrrk1m@HYT#+_KM$@axAieg;68U7dXke+dJ%VcKonkD*90;=QL zX$zMjo1aQ)tDx6fN61NHAt1c14|IG3CKMXvgP)4~Ll7&UXhwi=dRJHG;6q)628()v z_$w?)OvQ?o26!4MuIo^g%s0g1|E$-Qv$D|Vx4o_W{V#(dy&3)Jd)qw$%2!y>XZmh$ zL2r5TZY8n_i7X?R#Gykc37&xDlK>T!&{QdLH;=foVrx z&kKP;sSO)$A2Wt3T0r8kWe|6_^D%wc*BtRRcn_2_pU<47v5F$r(dV7n3@{eLmZx)x zse_|hGiYYXn&uP7U}j1sS|q*&BhpynO^~BE6^5YUj>w|OY1k7Ec?XHg>52)EG>wjt*e(ytyFsnRb~o~xtP+y{cC;Jsfw`me zYVm63ZwJ+0coF-!u`RtEX!$8wIQFV*+WHG6r>0FcR}$mV!%^l>qJzucLT$(>{7|T2 z(J6d7>|>ZzAqs+E)4)1td*W#VYu{fS=KS&(o`itipgDL+aBgo)Rte*H)zQ9VaTKTN zDLGlLs&-2!ORQ1SpL_ z`yKd0q}BShn%z&jWCb-Z1KgK$2?^WQPl`0c@OAhvaSc)(=V@1O<(#@-_fiBbB9WIq zmCD*duHj$OJ2AqQpdd4gR#KZkG?r*1zoI1niSiI>;(Y$)WcTKm)|`MnY3e9uPfBG6 z7CqV?jb6lCsg<$d!C0#>e*Z7|3N=P9hc*lK=U#!S@rSLI=J$ZV}O^| z3p4fi&SpvK^~8JZUl#9zspdMF9cs)(XQ~Ehh8pO9)NC0Q^fljX+G6lYn+Pq=2eCnMh1xD)RIGN|pz`Q?C)Hy7g zINI{-_C$DK1^*&@!RVMSTmOa$>+|<%aP~!iNC^>Ugij2(pzf;#zQ@3LEkE+*J+2!% z6uD(@x3KGY`iouOMX>fHaGh)6ZoFvOKF6{_L5}+BC4DvowbDfG zPXIP{79DC_gIH2p69RoiLYMd-k}AV{%~Rw*7g886Fh8nz9u4?5qR{5S~Xd^ecl4Sw#kV4dpsC|ae9eQg@zkuxXM`w;(?tALc)E6%Tx z!xq)kU0numD)vUS4jBAvy93R6V-`T?;PL10)ru+StNWNFd<)*!2CV|4RCw0~dKVhN zT&-mZkb|SYIXqAuii%gM3OE%;AMyAnr{#cA{ z((WCO+UAM2`8w4{t(-+4b$g7kiW`S{u<&Pv#|SF;A%DuDI_sLT{}CjZ_(ZthQY5Mq z4fHNEti5Wz8l_-VEQa`{3%UHQ!C3iAl4KEzH`fiC{e*zJnsI_`ksyaBq@RHA|Z^bKY2WZ*fiR7i02TGI=8lS*R7$1$){#oc| z0a-44SD4J#m%Z#zPwQZj^GiG>Zr_Xmg_W70`W|NE*GzJ064WCzK%X5lO9BJzYr1^_ z*uZ|SA6{v6-=egxq~ScTkyeegCiH6a=lU6x&5VuRXwF4T*l8?)*_H!xBcqrxVsIV&WekQtAG?}YH?Q(7r-q2?$>@yk583fZf zDc7Ft+LL9T(#;nttF}Lq?}UqH+^xInWRDz5cFSRo5_O{;IA|!0jzMCWqTFezf>v!U zQTB6e-N-XTNAw|dw;?l0>!X!vfmUQg%NswiHtqjNFV(0mU7vM2dXpyU?^`52X) z>>b~$3P7Kg;X_cJqRdwdLzna9=*7$ZQV*nRYM+v`jUC~{X%Kl-M1Or16GhI@Q9L4M zFNw+#ZNM|HL1J_C|J4L+-TkeyvCwFcr?!@8^i@7=B~YmxXlMEDB82G zH)@{FQ(SS%E0C^{dnyD->N2ZFZre|ILHxmYu-}Jx2Sbw|&(d`7F4%9Mzwx^=)uBHe zmm|16xO+IoYiZ<30)+r6M}B?@XwphR*HZX)u!jajAu?3&2gS2aD75-!=D-q_eG_h= zCOBw}up>8u&pJilPAMmd7ml(C{% zKUMDN$=0b?bGq5u{3(@*C`l=FfAfCA@ptBood)WaEPSqS$;Imm@!jO&!ae^=E`=5u z!wB0SUs#Q>mS%L^vx(l@kZ^yG$~pU=ac_1&zfUH>u{ki%$smX34oNq`0Cb6dwp`#5 z-qbd6^2I0U`tJq%yaY4v#<7iXev(AV_s>W=f1lqf*zm0u_JwCoNksE=AcP-+UDo;l zNr>Y*$e2v%pCeuTbVXDQ0oC_OIFH`PXc0A|gy>*uwn|7;*0Kvgu%S`x3;U9$=7**YO*`NI_(=U(|sgD_$o-?-|R zV)JZSB&CCT0sO({Adk7j#Ye-nT!e-;P2$@d3IB_{7Y-y!&qRdBL>@03QK876m=8)g zusSkySyr{4VsB}C`*X{v`qS%t34!a@`>Adfv#hqeeML%KG4nt?2za&vRtC!`fptL_ zP!yD553E^^n*Pf6j}2aNYWc=lpPK4P}j1`fq&^|mYt|+|KLz%3a=vsJQ>@@E3Q?d z7ka_mw)l@qiUy%z&HMMr&VB4}uXDF%P;ERO_&X=9lY73QsNHc8Z3Y*NbvkwkO?P6n z>(**`Xa=9ADUI`cFmo~cKKX)6w4AVtXo6I;~D~? zMqCY!=%g@jjM7V8i&-9Gl!Qo7bWXFi=piKio^Pz&vOED>jq?diFHiU@>z zsI__CP;NqvIs!jusI_)U&qa4j&Fm6GAdcK+!E1~eV?`o_O{nT$T`Lg}71W!{BehU9F1WC%hbj2Ave(2`;n5Ci7 zITH3&Byqn|S+zDSq{>bx4RTHTDd`%r{~?*>{YK~sP>A|AgMVI+(U6mSxiX;G^(|q zRV9I5nBhb40(cv=GRN~sf^o{pt!DG970dCP`0njEP1V``A*n!Hy*gF$vcz{MfdU;j z)(Og1hmV{(@M37zfka^geC*Es&{X&@0t8SVI$T<4LSk?4(7_}LBR_;VsU%_Cd+vsz zY?@d9hm`s%4~aU;PlCl9zI?#%*4OW7>5KXJ^+VW_6n~u#u;G2L(v`G9>=(vaubZe=;`e%*5pVMK-TyuU3+Wy5X8_*;?u`;Z)IY zg?-k0S|cq8;oX9?ebb^RhxXr~VoNj7Wqf^K3(4tP%FpF@tA6lS23zA>FOMYri!%g& zOaRA!7q!3vJx)DQ@lMPVVuZr3ee$QwL#mpyqY5o zo5MA3R%+Kql#n6Y(Q@QNyJjVFgo$!QC!CFz|DBQ!jQ){IsVR171Rv|POWHKp7U2`wxzbg8$eQAt9# zwXpNc7OVi)cEoNsxBU$ydUOzYmZY{7Vaa5gT(10j&T2YL`Fx9%8=C1(th8lDb=@}d zJE-D_YI;lGylt_`TO_+-NoMis7t8wqyw8i}IIDMzyVIeyq4=hSm|Va7LW4sp{1X}+ zcQ?crVckz%{T?F1j|m@#W;pHA25s8dEN@%K0!M$m4@O?H8Ku%ArAA4oj6?96_=VG%G*k7>lJhl zcgD5raWQ7Qga43eA>CWFQU&WhCbzBx=A8$``S|Wwyo+<;-EfeQJ z)lKi#xXfsK%f44red4902smV_5yTyLTbf{p>ZhwUl$oy^4mG%WyU>~CAO*?jP&}_R z!W@9kDLBA1=n5on20`x2bma?VC9sS9rFRI-z()C2|5d^!a}adwkepaGe6al;9gAk> z4l(R;MAR-ZE5Ts|o0{@?k)OtOy>vKHn?_!EuG6?soe2(|jv3FsL31nnO-V-nI+paR z;4eQ7km>91TDDFcQvk+wmSHsXu(tMU4HBRYyTnXhJE3QA&z0U_4vwe_&q1lC9IE@J z9=;A>l*%hrXq^8-kc5@)&@QLXTlSOi;?mSCsp0`a5Wb_#My1t> zU?1OVoB{q@w(EMB--Rf9vMry=M+oDdKDCKc7tIZwTkZ7AqJ~;&9|>d?$yixDzKparoOvtS5U1nOj6sWlw1JFH2`y zn414P>w~d9conEW!Bl$k3gzM>@4T{bYb*_Tfd8QESe!%#LOi-@|Bp}6b>NUfN=#VH z3aYys`*&NLjsN}|tBFcq@t*Hl52MZMODT7>nxS;X@^K_a-sJ@Rf3t}=h$SX=!ivx! z_f(BpLq@(uY05S()w{7Hu?&}SFAh1m=44Ueb7O0FEILJ#l%uU#g>s z*G{FBKj!(dyHEOopWuTLn znXllH51gDICHSKkc;yUBzr-bbaq-*`wS=qLCP;+Exw$XnmB@-;P5 z0EmnNru{vxG{*o-Giqq_N`}i-L|`kwLDXBiB{=k2BqMF;5ESLLxA$ z<$*alvPsH6*9`g<-IY^=5p}vDu-AfDf!A-LG}X+Ll9<)S)Y4p#*JFD4gDnU1RFtoG zHE=jPs023PZ-aRA!gJNq_@2sa-?+J#d^OOKS7QSoHn6gA@~eADg~sUokg2<&gjE*c zItrg*wT|}1D+YVqdq0qe*PEgk4eVjf$sa(QDUUsJ6SlUKzclLli2u^P&~2KE>vxT* z+~G%q^*w(l&58FqXw7w`K&DAQM%j4YDC({i(&ZY|0vG=}6$N7hyHqvfu$CGtb*utU zrb3#wiaB9k^Dl^uommmJgrVf9K+cd#L*O%=zS~x9H|IF=mcj|p-7F`89ED;t@lD+K zC-WI2=!T)m4lTMX(zl4W=w$HEeQrR;-*WkwX4*XJV{Uvf#9=X0XxWLbMN-Em{VXJrF@L*P7B^G+R8hrW=rYJKlbx$#78kBbFQ?Lyx4j z3lx1NgF|W2*eLufV}?PH-*$pBA%(l_t>qjLv&t`6^Qhm z`*uJc*f&p;`^Vsr4==~+Uu9T2b%*1SQvS^Ej|m;8@r-0>zDHM?6707Lc(Vde>IL=l zXE;w;RD-nh)^71!_>Gh3XL1|Pg>04Gre=AfC8U-KH824s=*HC1QXs_#w8yfR7-b#i zU71Hmp*Q0zE^~;LN0~jBml4HP_;;@7HtGdq1$_0=1el|0qk53In(IPX39jsL!n^H$ zUxoa)1QS5)R2mal%*8S;3b)`}$zFC z4a&K|lsmNR)4>7-yW@Sr}W3 z(rPx#DTWt@QJ*it)Mbt-zURgz(S?A9z^b*af&)Dnous5)F&U|~17Z8SI4{OH?AWRX zcl5qB#3oDPZ{RGr9hDc&lugN}0;3cSRa!dkpH%6u!{WJCk6()Y!959B#WTDmcvc%0 z%@^ua!$+|&?dp?(`1UEUMTG_q!lQ#yxYBHCyVk^7CH7;0Xm&wsWTthHL1ITTkZ zqq-K--b}_wPq}{nKwqte#Cs_pq-7m0`-PK!BXR#If;&d_++~s1X)SN}b1@Zi3R~ha zVgDWY?vLiz59Rx~zec-li{Hl5(iKF~HPc|ycQp!OUpcbwJ_NO3jMT`~w|r=O8}M$2 zLAG`69H0uMS0DxdIygWCm++GZTL$M%4nk+W0$An=Tl$#hO)UhuXFA9#x?`WvOxD{P z9LGvPP>u9>ID(nqLkSN4%JtI<30)H9F<+ilLu1{gyf?jNjm@T!y!vZtC1MkgTT_3u zQLL;eb)+=wR&*=jQi?~foj>;xO2D|8BJDKfx{;6%;r|G*2I$#SS^;VA%EPww{PFb@ zBv=1KYQ={K*onk_`km*iTRgU_6bI$e1|EC`v}l|e<$8o`qF7>yOGg+!%uHA z1{F{bEflFOc)?i63%R#Kgo3OUm?P1kwsBbZV}PI>fj?5 zlr>Js#9p9+4Hv=wn%ZeWzb(V>EcgaGbIanjY30r@<}XoyxvDZ>nE=l^7~>+bD7#em zpum6j`O|L4)hn%rde*WN9X! z(3dQV&6;;TL*otF2&vb@3`ZHpExZ7rC?{9ZCX_c}6xrjNDO~Z##AH+8vYhZZ_HAzN zM9)sKS;Kk`1`f$!6)VZ7govso;1GMqvnnM6<-qKsT=@4sLYK%bQBieO$g%w+{mG_) ze7hR6_9?sVM^mNI;=#_u%WZ>IE=@h8yGq;B&tG@a1`^we*MbmyaUnF=JFql(Wu-r- zf*rgbt9VSwEw9#}tbwB*adBP9Sb3PwBZyYsd%oVncz6Wv&k{F)eo|JbOejl^M9l9u z08F7yMcU-q=Lm}ubGrh2aNijMzqvCRfw2GHh5v$V^*o)s7x(Uo^H+I@^*!3A$*)rq zDjypK3gZG@7^4wk4@1bT=**D>Hx-|M>sHBp`=7=`-Qtv`!SVa*n&;k&f=YH7&j866 zwH?DOVB2}q%+R!m+iZe>3A`P0j$&Z1*5oJ^D@27}%v+49sg`~<*;8{tA^%f2uHi;d z06Qv#IVhpd=q$G=wL{R9W~ss2fMD#CjrI)MScfX}%E?(W=&X!M1i6gl7ybVKOa{`| z|3dc)jegeL(Ha%oxUy*!{Y2jwyqm#ji_c5ySn!EV zwiFqhftMyuy?T6v7(Gw4Dxh|hPqASTR4@EcNx|8ST>?0*9?8d2W&iGyCu(bZ^cPeB z2*7}oQBzM9qdyO(c%;VmP}8Xkx+-B&rIXgor=FqX5?>KFXFsg6E6wYL^4@~HhDMid z1F13s*))L(5Z|Sn{9QCM$W}-ou<0l(yKKHaP8Cf)gD%xib@V)R+@N&5-gvZ^)8`_e zqfD8W_08OvR^l|(jJRj(|6(~vV_L&7owVr?FxY@y)d4??)l3bY?pj-kROfysvq;r= zKrWnV6tgH<+!o|2I#*}vBpjM@SuowIuyHvS3>P@rZJw=@#ff&#Uwa&$?QpW?W=n~M zqI3vUIf4RhC%L&1Q}ArS_BBohoN?oY)2+@|5@v))F-w3l3~&gcWr|w>?jk?@RL2|f z3%$xN6YQciM87q>z704^ANtbaB0R$j8*8wQSCLIH<3_ZA z|K{m@xY+n|N9s4R;&}Tua4;p+kfS(C>#0f5wG5Ls1aa2#tp;8Iclhu?iL#4(3)i{d zo)AJpH_;>3)nR9w?gX8u<35xM7KLKulO1|Yg;B)hBd;2l&8uC9?+ zsrCo0@2yeA;^rJZq&)c}dq8xFtPQq;k0+UDhLtF9F`55J?D>{VRn_hCIrBd5e}<^j zY;5^M?4SaLHums};-M!tww;}=;0jp^10>6kV(JFPiE_ zl>S`EGktTdh2zu4s7BAasS$|c#UF@DtQ>>!IrumU^w z!?DRCNomd5aN^#`gi`j`xStSpYN)@}_1TVc9eH^^#3GM~!z3-*nz#))Kv9QpqaV4jD#YI4`RvOB1_9e9j*nJb;N0yO*MZlo++*~tE+ z6Hqwq1dU!8_@#ESnpTonDPkWMfq#abr1(=BEC(L6hwZUT0{vbT&c>2LC7gZ4u`{!~WPC*;{AwW>TXcVB&u%-e_=A9qS|~VbjLc<4Sjb z(|5Zg4Jm&jY^er#$e$RRZf;;os2P_M62GX&Dq16ZUWd!B51{|9T%5v>hoMPGzqup& zW29f`I>gbxQ9VXk`IPS)Y16Hs$iJJN8*PA#FgewbD)?PJRno&zrC<4SgzrBvECmuR zIZ_reo-t$E%Tl)T!~}j4tPL|{-3gvdS@A{!qbZWOlDZ%A$w&x^t{s*fnp)nU8Bmsc zsw@`!G!fV`6!KD%w2VdpEsni<-pAe5y?&>KoK5r|WqpR8`zWK9m6=RKH$A@n{DAc) zRAj|nuDTeXV2ZaFIg1g$mytYD+T-}<3O3HkEpeEX*T~KbJl5dqJkr&T$D9z!#btSi zevu2mrese{6jvk3v!qHZ%AyQ;Vem4a+=z%gI<59Lw55~18Q)IJI5l{?sfs(mJaR>H z#FK?$vT1}xV?hS{AO7dlzIE0-sN*=!4Od;<$ElN*67l{zD=cgaK;@T9bj(euRl$Sc6gvyXb0J+ zZ(mLuW}j)Us;+HB{}6lv^4=u1m0XZ!ti^II>QJ$gz4Z0bIuXG11W#ooI=r#e6>@%G zP3K*udX`OM!Opcd4LTB%FF%hF4}hxtFq#XhK?&qih#Cdf(B9$X87RyWsYM2yCyNTS zVi~$Mxv6lpsD6CI(?{*-0xAS;Y#ewZ3nD>WNYv!Gf@?RB?-=aq97unrI1K=F@lQIq z-+sxG|EO6b2;@=86?>qq7VL`0<6b$W+PsLZD)4G?<%y{N3O$VFEV z1&>uE*{V$*h(AC890J}c>^~`gdi4hGEy_ShsPD`HbRb;es5lw(f*RbgD(FYM1jVU8d%RNss}<|TZ9bDX(Fp!r z>LV9=ypI96I8iz*_0Juyfc`_`+b@z2*9rML>a1d)t`VaR@B8rhQkFif$Kyf~_p^4f zkW=q9n8Y>;7IUyO9<1j=G;8!$(wCi3OtOxV?)&=^zSYOY2#t%Zf5U8fiX-s;lG~5L zF$Yaz08{_M$rY{6?&e$vx?MM1O|X9;3-#5WPo>?k99K_(=%K{+hlc^*8LC{?12<(Q z5U)sG2UhHqeMu~hQRH_AwXzDeyAzWxj?z!-(!Rx{WnQ>jPA2pHqu-tq)7*GHg3~Zg zKN40c`JQd?tzYnR%Z&-}Nc&f)7xB8W`s?i*25YN8zz4avIBoTM8ue1DqmHUXAt6Q1 zK#NI>&WFtn@n3ia$=5@(2_e&j+y*Cw0gLntm#z#v!;Ipxdo`#WrmU*RON}Gi-0nw0 zm=tkQ>%l27_mP_>Hv2;Du)`;yJ|@0?YHMB=!Iv*)3bjLE4G3+@_4Q0Sm-7jon`P0f zKH%FLj7NRROgRU0rayN1X1Rt%fJ3+B(LmF;Lih^E2K<3_na6MV6+|Tru=KwLSey}& zg3leCD*p(*i>69Qe~0`W;Cq&*qCsJ@Ns321%Hd{=2q8_OwtaSD=eedmMKbYmb>oq{ zpFWVVuIIhoS>YQf!=f0Ds|U`J-vd%M0)#VjDBHm4#u+R?UM0t2M%+VsZ1ulEDN<@-km;BFo{*KM~;@Ts)3@+^&bmHwytnnH}aV zuNL7?EMWO;Y0`Ej{US>>P}9OHxW|t>FRpXR$IDYbgV5O5t=9gD{w`sPsu9j#+6QsS zjr*Gi`jGpGQICb=#!123JRalW7n0$uKjZ6T=ABV)?@~|sXPs8*bJ>kQw#8I*F}@g- z+yNdu6(c5z8n@6+#r`pdq}@y5Ftdq91N-wJ2HrXGqBI6Aj@%02BoEjr{-ZNS!f zDY5W-|9DcICGj*kN@YB<9N4{ZOrL%Eu=Qb^O3)#pLQPCLyIPEK{cBZ)cyKFeg5V^Z z=cOkqHU_A$2rTwd0Z4;0>e##`Q-l*hS>`!(O;RbC#4N@U{TF9dTnQRc-J7t~kT-U` zKK%Tz{4GWVuqpsKXW^$@`1F0Hd#V?u7`ShO{f@QIE_q}0i>|Hb2$EjGv-gavNhNoe za+O4XG2}`Fk#}+&zq&%{8*9o>Gyg*>vq|k5HEAQXx^YKZ@dSZ!R;*KQ#Q@|uf1QUU z`+M9FgG>XT$0mCjm+D<~rAppO^JsO@B`Y$1X9?~*>@u&+THaw2Z&e}TV;}7*u=x9A6e)p5N!T@H$^#KzrvLK4;*Y5(^yXqYNMe4cl z-FD(vv~(ig)#-j?DN!GVlKIY7VaPAu1e_OgocHbwVWS=V{`(}mLTF+F!Q2q2Ipu^%$GnE?Cl90PYVhO^oIWaS7fDlT36-b)nHkL)x z+`*G56EUkt^la$%bHg|lOEq`lI&({dENxhmMcVMcj5I1{+cf)e@Tyta0-LU^g1UqRIeRl;=A4wA82%# z7ranuX1cNdV0|+nH~CGJo&u8rDdUfJQ#5)s;OFm?O%N+mSZ|r~tnnY(DUnuTWxIC`=?a)mi^~B8;fDNQ_kd&d9-DOCLiZbSbFdd;BX^)9<&(s z%th0z{daev{wYbbl+SZi&2?Xqp_Gl=xIOJNTml~AI2cmN3mt!35wAEj&$A9LS9iI# zO?(%>26pDh@fJ!yk+MtDzdp==w~K2aXugs{#eO!MggcU{%?}xc(3iqXwU-)@J)R9m zji0Y*=1K8rO_J1_UY7Z->W&O&gK+cE7xypcwh+Qu?yhZbI#2Jbl@`!WaTxBOTl($4 zyo$qLrp{UoO?^N|#e`G1aZyY$8?=EmGE;kWQ(n!!RY0BVvwrQWDA}dK0?$k-@LZsO zW^fNA?o9&y1j*c3mAZ|D&enT8cCUDNF^xmY%T}a^%?SAosV)emaYvBC-OH&Cp@(V6 zH9%|TCv`C=vWq_-O2q-leyT_N@qki^Ac2F4Pus;%%NffF(#D>ae^TEy)D-P8>LO9%>>;gc6F9%4F9d^6*(#1bZ^lC*ooy3au4UWh|#d&5@D{Xa1tI?tD2KdJj<}^&1^c&)h9( zhr#H$nwpi{p{QSo%<>0unnR`mlo^11`VD8nSHRoUkl$lsL-=DB;q$2X+=E%*P@+-O z{(SoD1T`xUV4UV*G;GdfbK6{N#lqYRB0CgTIt)H#<{W=_06)sz;%c0rf`EAn9 zx!HkXnsC3Qu)_gvf;+5wbDW}fPXqqZS9UTdvbQmk!s9k&Sj(cKDPxq{`?xbx(wU(a z$e;6t6Wi{50w%664!-fr%(wYl?QJ-}IB2)soBNUL{_CTZ6G2|Vgd`LE<7K{Npz>7vShwW%siA6B%}UMGd^dsFsU={R+P=E z@v_aWr&6-tKD%h)VAnOVzVxSs%Y*sD7#FByrbyG>VNu0E6i<$ygo02W2dn+3@B7KE z&!ry^A&BlXi9NO?X4Drh6@~rifVTBM2O_So+P3T5K}@9g1@so$;hGAxHx05H*_AOV zQebxK91-UbOND1&(|pBo%sbgAxgb`-@5+o@nK2lF~q`c>w zad4rPCwhkQy2mNSzP&L;1_1(pBf#!+%pYhQWZFWxAQ!s9E#e~7V%atr8nfp~C-!wr zzYEPIoiYZ^m5s+bn@ftfOTRxsbY1z6<9A;V!9jKbDK*sFMUgHt zmAxj$p>rOk+I@`GVW}Gm9X-(sym{Ccq{A2yfmTXrh9egqtY8Fu5B|@FiZGIr%*+*G zH-L*1*SxZv!E10i=AnB;p#2JUiGr|N>uPD_l`k+XQ(#nZ%b5c0x41~mb@JDdp{Msd zSL0XN`XCH*>v3l1(l7*pp*w{Y3t>j`-#dd;r4cQ{{m;_Po!<3 zc*0>Eri#e^B>~eeNp+?}-L}Qn%TOF*KJMS+{-a8(ec_qu|$ZI9R0 z1dRfv!tZ{xw}Ip^HQbUp$~<)IC}h(t5&ZV}zz{xMEXMHFf-RkkwM`P&8Z;H<}0fYPwy6-i1R8xW9bx9G2 z(CHKyXOQMX@T03cXYoS4dxQoCsYkJ#-n*;UH^ow-4P$HHu>2<1N|TPc84w0-5E_QR zb1tN$9;>6(HY80&e5i|RhLCmEe|$Ps616I=nJXoc7cm^hjXXiwgT!{SKnkCVyi}`x z^5L+{m&>kx?NG7$5%0&v^Z}bHV*O^dj+<+nVo5pWWwAm9#1-rR^W;%-qnRAW%5=Lg zeWY-2jb>`=j+TWwtF{i#t1NmP{a5w@04< zpwBBgv%Svmp1q<<3a*xm@E8ic^uG56QV6GC?>0WP&*-Sz?Ey^o6*rcsa9$Z!mb+NG zj*hU{-nC7jaXtjibVwQZ5;}E6#0fKGU>`l}tW*|NUfjckv_D>hbPHR?BxLWRp$@Rr zhf%rG^-b?Zd!4(N)+*^>ZOeBTXIWU9f2NLt=q;>8RJVfT4!e*^hmx8aOd{7lEynB6 z1iBa&T<1kvcSoVB^^6Zqr<4mLIpt$Lt!>*hHK6VL4aC1^uLTq2W{guij7$JeVvM_D zsK#te1KW{>;P<4S&x!dImTv7b&Le%xxWlsja#%nJebLE9fM0ec&|#W)!{j)C zeIIck$g{-JbqlDr zjmcg%j_kAE?i680gdmu;YhF@vc2}y(8PY0;QOqGJ5E#ZU@X~2*rjT_y2pQ$KHA7S5s%L#4C zE{U|!D|5$C+h$a##6@W)?buCL-n>lueFV6VRYhw)|Bpjvu=u;s!;*QqUvZ}Z>0>$Sq9-(cv}TDD z!LewN(bq%Yv*>{$VqhoN@JvsD#7gT9??caIhqu%6osjk*>Y}-7JS27&cAf>S`k(c? zAT%br2g@thaLlCBI<~{+2mY8)#meJiCeY#2?HT&9h&NIbV-?dvv&vcUvgF=RgsRp` zTsS~Yb9ZQg7W>CDO3QVb+i>xp^Z^y(SZL&x>`mhD8_b*ck|)yQKuYvnAIDBI!?FtW zkP-77$ZVkJ`|}z~{T!|Gh4ezgWPe;VTJ-IFzWB!MyH==F!&Y>HGfigT;oT^~s_rrf1v&j-F zwK6CE>LSDuZJ&*OOyL+tkL>H2kj}dc+|<$(L>QY7(<|QC;72C>aF5jQj`g2(Q;>^X z^~vd_RO<>u*=KmJH*PXFR3r2|-V1irQR0`qZvePvQqQNrPNE_UrA@7Bze=XH%w;rtFvC7dqVA53iDf!~M#s^Ibx?(ma?Kb}dctDHIIi z)DvXOon+yY=v5+zifIFL!zF)w`y9p|`?i)=@@nhJEY_aPm$yHm^He})UniDYX+T@V zF&&jw)!GE7uBe+Ha$*0WjR#=|hjT-7$M<2%ZbX@XDHrQEW|v#V(K}DFA6+4dq=uEu zQa|Tq{U0{UfQgPi+&o6?a;!yOia+s}h?%l2)UdK_BIHEg*xnYVtaEh)y*^rDVqu}m z=$A6TZ_r!`pG=652y8)@7h4*jE145CSVTD^T*M5x1P@e#Wg`r7&xSH@nOUMlElzK` zvmhkY%!f1+R2oa?!CTdvl3NY5M!XCo9|Z1`PS3+8-9QdgKZU%nMN2*cG~g9!US|$g z(8@Qm^i{C}IvU3~47whQ|A0xcW|ZqF)%+O$7a!_2?_WM`!w!=-k??oj+c!FP83=rR z8su{~Sz3v)ayXAG=Ra?mNt31PJi3mRRkT-U^gdB(ik(?T%=PEp&e4>Ga#S5j!fbb?^x&Q zS!3$depNRFm#(Oyg#g~wnzSEI_b z$Zga#D+uKg$SR!acUS@`#~v=UEtD72X?_ltp^6rCeo76woBA5E4=^y95UxrO1I%P59qgXoYyVzc@1(cN^Zl4HU3t3O9p1;GgU zy8NwMMm@9$(!&lJq&Xxm9%c^Hmr$0m0n%cfWin@|QwIh*%2yard;w6W^SK zN{K^6?r1lDdBc={omnrRX=|}cF`LYNLZB-gV``?IYYP6F$C zyCoZ)NR_()8a%bVs_3I{|Dksl|5cO&9e19@h!afbf&JH{({h;NpqiX!E>gyk3Bvm6 zlkrRc*ipa@T}a4?S}7(y{U2tlBvT0w=oEAZky`Kt6@U7})eX%w;frLg-th~QMrqzQ zemC$G8EN4%0f|ajx`hF1AqohY;#N(0)m>0FU?xDk&y3bEH=G{`6@~6o;7{n&(xUVA zceO+rw{cqQKC-LCD@%I`7rFHqdO2l$&~DswYAqG09pLNzUX&#L(0-uhHLvU)!m(M^ zqyt$zyXcqGui+s+=h>}{`}+@}xO}}Fr`xI^(;Ym!ku{qTi}w?p5M;Gr!=C_Bt)DvP z=0r5)7*2T94Q8Y&=**cm-4{fKM|5I&XC4fr*TiIMXo{l}BP_FTDEg!)y4fDRoEvE) z>Gf@IzN6J(d>nKQLSJE~jO^*73;=@r6;Qg@PkIAX`X6*=xgv+3DFF85*7uTJO~G9V&Q|JuM4b&-fXaPoP1eOe3&@VYDzppLpo7W zy)M&nVeyk^loWIKU(3|EL-tP2YgWAxI*!P9SD}|)?|06rB>43!C)EmcIW(MR^^y6? zVI2RV2@U)t&r9iLWmtxSoU=;|RGucT6m8YgVKI}H`+pL~ugem|-0sPOVzaE0>6m&ue?J`C2lyJrq{)C^SNk=Iv zVne@6QhKJn;SO60z9@a*Rv#d_J$n?FZ4+M6M8gPADq?D_d8hF& zbPq7GBW?~%o3gMPSh2fqqcYH2)QV#4BhjkN>qgRBnO8M0h*CLSF(~C1WS5(X|uhdz1nG_rKw;$NVzgbB4t+HYS2={35#TbUy?KkSi; zeaEFhwIMO6n8)nh1mR}`9nv{O>tjb2va8A*_#oeU=l42+qeEtL+SWsgdriP*;dItb zI|AQ)eTd~UddxB_)EMOl@FmUlea8^z&n}Rb9MHnQ)Xx>Zc#UMuO^|99);N$4Kk`pI z`VZ}q)J6JG`f3P#7x8cB@Sk*)?n6WWhBQA-+keZK(U1$s49r=~!cnWOt@XRh3Hz&} zbC)*Fo%QS)=bKfCkndxBQ$3(jP;<=XzV*nyD^(y*{@VH(c4L-LH7>Bn;NEBbv&8RtQx;MzM4Rd&J`o zFsmwlPPZ>X-o&1%hC`S|Ke`ADf&lv=eN)kvM0 z_>3Kf$AHz7aIdpPq8XA9{P4dqhf4xqDY&`R!h>aeR{gO=YqL7ldr+Zg3KwZ^*Q>sG zR#KfRt0pa~9!ucg6=iz2?gdgGSi(PezO=LnRR@*}iU-Z`Y<*9hHRJ4S#ro1%Las&i zADV>cLqR4lr{blMj$F49>dVJ$*&O+14Jp@lcML;L4DrRC#qXYjnj`lC~0+Zv?eOp=N%kEg#uRX~@s?u6+8@As z6BB9)O)gkIKYzhfFvgti8gBIQw!D6mX8+^P&)M`!mT*_)heBGnZ#Ax_n z&ThcvPgr!DgG*+P=0+X*8N5QVlq2OloJtS;iXWN`ceZXj&l@c>d zHBS1i*y&(s!9(>K&ggK-gxco>(v7gZoeVMVL#7|zH@PeVTVaao<%x`%<`@`e30*{* zg)^eq&df=)LQw0hA6vVHh**=^h-(leI`0df9W%E~y2rs`hzgs1x_uB zJSkHMMy2oqLjv%AK0*76x6rUoQ_`S9>as{M*KU8_=(gntU{Wb$wFo16R$k(}WY z&?4{(f(fZRL_(fzNl&7YyLZTa!K93jafkr~;YJ41CxmJFi%5iexvv05b?AG#h_iPl zxI7fC6%PE4= z=5^c#YFT+e0Qu_y=uJ63uUfw7t#WNLi;VuKUvWUuDsVMUW#7|+ss1>C+EU~i;BWm8 zP5Nl!eJ!-~%Zpt{y)!LoyrY#0&%i#`pMJjkitkFtzPV6qp{mHce3S#z*;4M&QYlK_ z=}k_CiYJGnN-VNJB4xqFA<7i)#T>4=NMq|{GBuEey?D(^$Sbxi!d6l(vn7uY@%b=I zIhWOLw5u^AjL^)yXv0Y?g^E6L%HyfH+GJINNvI_QZ!WTcjaSsPd$8X&Y)L{NA^8NO zVg;>t1wOMStqAsJoDi)5LV^u6H_ewAfqG{dyMrH8Akf<|w@?!^QS>?F6*P#7e}{O*7;$rVqeDt9$Y2;R-I7EPB->q@t5#N&kJmGyrfbpLT)b%9MauPFlgHv`N98Oov=Nl} z{;UaD9$eXXiq1R&vxwm8uz`epq>ByMuP*z-f-NsKJ|FG;^)41h(n8i9v$k?up&{aS89;;F zXNLU&LoM@tCn!#U@|l$rlubpe(ro4I2L?|TYb~dBM!%?E`f(Ks5P&(oV1uZW6Lv@q zK@1f5;suS5%+7*+dmO&V=%wx36)|_w5>P+r-AGY?Vs|K;Bg$hdoB*%^`L*Xy=U{G9 z2O2@&5{6VM%Z(K0qoTeh`RZ`NPki#G}u*y z1&5Ok_Nt*>{UBpB3tc`3_F&5)H_8*ntNBm}i`(*7=J2^MV+BwUv=E*ay*^vuzfOr) z2Ne%ysc)Z7g6ZC!M}YN?LJ3Xtl*t^nNsX4eQbKY;kq9 zievJHgfrSBdupDnjF5jQN;R2gcW!jf!COv&={a;{zZtUJ`*g|fg*!6b!<`g9ZPOZQ z#pY3p<{c`Y&D3<5eZ$R_#QC?$#Apx@;`yOK(9-<=YTxLqg?Ns;%(!e4{;9Z}4j}yW zckdPSN$n`mzL;^WfH~oyi{YJO0xBzA1Dh zIA!~GIU;IFQuwHkuU|}PiAumLmkTZpbN!{6JiyCQ9(8;iU!F1m)Ey;cy@D?7HqJ+fQQnH=erc+#dj6fhOimUYa}0OcqyH7IzVA?{!!vALW{P@Ig8aT9*_4ASdcX`ND>3O6;Ny!%Ji^8Lp_K(!N3VbuVmG9_|Z&}qn@NoVTc6j0$%6!bZW!LUGmyjzeNUEwsfuJRLJjr|F!s6 z5M4OU9ovDkew-{F4BXLJLd8AZ=u!GI59R60|oxr%yy>b!(Gc%KjqE8Lt4uulUv}u_Q)$9w3vzOO^?( z%!@NkqHMC}JkJuC94FQ(bAdx6G7*`NS}J4?uB1z1n}+ z6@My3#CCt*pE}3GlP1q2ih=FgEo6?$Nqdtm%m8SWO}FJMvBiz%7lB?1G^{U$jr(Bn7ksW?0z>rig4JWXT{0-P!Eq=J|v z*IRxxzo?j#oTBGY7@9p7qOTLCr;;gfmmQl5#|O+MkVtbpkjiGV_vG3y+x_^Jw)pCs zJd5zz&WJEME;@0DzH94aUVtTyJOHgbbwNLAW#LJ~wi$<|-Wda10JWjVk5C@{Z)m#d3H|3bq$0T&3Y%EtiRAd2Ev9k&AJYcZs*;uK0Ij!qx+Ot;> z;>~E3r0|T8YL)3vkr4^b;i90}hz`sC?Cw7ev~&2)0dSkg*ZMH&hw&M~hvUbY2^9Q7 zdt+nF`>kP0TDCE^AUcRhdtXs|uip}+9~_6Rq5HU%0JrjFC*xag{VmDzi9A{y7q98eMT|5lR|Bfs|cpll>*bQL?PAO%uav_BaAZt zu81}Ozks-EYPe7q9jkiY$!2gscxeFfqY#mKN3E8PEIm{VD&*SIw(DScKKn|a=hlZ! z{lTC`g^tC`C-4ksL33!N^Y{r9F_PX&FqLnxF=~L@UF}SQrPtck;Y0X2!taLl)+BxP zqSH#tDG&0GC*rRil|#Z&(%8e*!_0#VEMIjQezu#d*V@*w*v zL{NHex#yyM4qgxnJhp#RDYc~JaZ1PM#-P}y_weD5>JPRGSu{Wg6*G%POq#r;T9XYVL@pqMl?AsMjphf>%FIhGl<;ruTA!MHZ_ zv3)$4^$}sgyyt$_xKH`mj53u^4RCC_+-|G4b^~fuaQ*ogVu^I++1Ri#+wT72@t2&g z;*QMUQlpre+@!rJzLI>F>}vm^88x+b5t??=z96eaqfVziJ1{FKBBQ3R&oSAiDjVzl zT4G{02CSYkbzx@*GCF8NWmrhSfVL|t1Yw_eC%G0g7vCenvnN=7QL3jJSOOu2CpPiN zl-tOCh+I@MNG~?2(OPsfZ?P*LePu@3L^J`gS#iBKwd5_FWCvQDsPwd?ZeL5Y{EB@m zjL#~g7-o$vTDA05BG=2$D?I!FH+QUGZ^8FXXYd#Vk5k~E{p+{zvS9q(@0-iHi@xi9 zEp`>*e|kfg#oXr#iY}WQ_#Xhq2(+j7r40hjiKbJsIWlD8QJ-mjInWr0_E|y4&D7-h z1{zaW2``bi$ek6C;^H+P=_sfyDAoh4IcvFDI$>#fEE?8DUaGZvI-1NLC=Qw_`HYk;hrb zu^S{F)I8oB{xL>!aW*mgMe@7gq}=ZyeUQ4CW$8(kUBwnR$epndL2M{d2Z1VJD`6PD zbQYq^A3IYU9;{4PkLU@$i3*|yc*7N8)1Zeq7Ze9=!d%)ypLamd9#@#n$#T#px1J;L zYyZ4W#Tl#2C8(f~Hi>P`vLa{4l;50RpceU~>d5?L$iGfX&h__5MJ5l#KGIes;w^yP z)buDPYQQTps}2e#Qu$6?{z3``Y{==;paV9~efe>tyJsv>UI(0aGn`zm;zWUF)!azv zM(^-9@ulh7bVi9#Lo-_?hNNguS0o;s-8LqC#GrV8@j$dct)Ab71ZDqSo8iSW}$)b`vm}+OOMj;--C6m zv!S)C2g6JhxSj1*p+?BMZ_6LKqAO=!jRr{QGY6hySqo2cWZfBs<4L|zL{=jR>TWjP zT&FVL_lc6d)@=lb706NNjTK08=C-TjXTX9CNWDx|-o5Vsb&7LNwGH8H%d;51k0X4PDnnP>nq56n% zXA1++cxZ^HK%*dMxp)hw)O*R>zux{iHWF-_a;rIry?dbWxm9368+3*<&YXT)IAuew zx`3Bs`n^%gdLN#!qz|vp^(T3>; zx1kiEfJ2*(tS$3$av#v))6Y<&z(O4_vRmt(P|>f+xY}FZD%!(H)M{s*C-Rpjt)t1( za>wgd@)9vcj}*)TQ85f_CFciY-^?NNu70nGOoDl-z z(EIW5QVcawH1HnZodAlC{D!Gyxj$=v`#M=ap`%DkJpZliHFvv}!oHvP$1F|j1Z2#t zz^L?}ZsB|jPK#$Z34KDA1 z(W9Ug*-{YS=7yS5D(}i&u;LJ_$xC^Hy|g{sp%BWvC$16(-K9RC*)uD+VFqz|Mk5YG zvzDk;6GI41rM-|DjDl2l{e$ox&Ml~68*KRE}h7l!X-qz-r zUt6fnpMI|>p-Jyhb7a{l(!vT{EKDZegcAOKm3t5oj@Kp8KE7epnyOBBF30(c5kg4N zw6f1Y)7_`B_A!?E3v@!~vu=&_Bo&QJ_qXYpyX8w|;ttANzHSk&7w<8Pw3ff+8VbD~ zq9+GFDX`iLYcA19QlQkOXNy2f&=1OiiqlAg0h)@Gp70zB9npftKYtYH z{cBI}vlR*pEo4z=BLKmjj{Fa;3`k@AO}h3(W&UL0e1Q?nL0P(gS$yC&rGgfMdbE2zon$24l_g_ zq7!`;J&Fq9RfdI4qOdX#OhTCAwu&8TEs;ebk9vA9CA)9RpR&2w<5DVq@bxE!^){=z z{KH80iUNiRd;Vh!Ov-%d+3UOnNec|AV?o-Ue}J93pL-4)Ch_^!*0wf{oo;=LyeT8! zhCdG!Jhgz9CI$sbX|xmxa{mN(RS^gPn>QUZ)vnsc)hwnk6LgvG3b+5I?0XCauUo& z(cskw>JQ-LbpjLU+6YNTX8jVHZfJfmrk*&pDCRj+jV48Xm3tqc>>+fmuGS`YK~0gH zVG_;h^&N-5^kCye;x``3d?v6qrFF!ivb0!msb`&{1MJP7Q_0543UBhTPDQx3%Ssoj zdPmF8Cs9&m?Oyx-?24MjX&nZqQRLMvmda#epx z(War4);O0k)e0cvvbu`XXPwPy76YMU#c22ZKwG}gcoFo4p{#sK<0u!k@w55%=XKi& z!ND?nWu^7r#bhzRqxQpcZ_|eOm?9|k5)tLco1`p(e2jC*@{VS!xr)D`6XR#Di4mKt z*J*b!A<$d8LCVKcgUMPZmmchjl+N|v{bezDB;lvnM<#YT@#b=%Bnz)kb%;N8QD7LA z^WijUE!{V02)orkRZ`A=nze=C-mTsBax(m^#TozOk-!7s*^7QE)v0|9W(qGf{PywH+i!Rxv0u-+ z>i7~ui{SWa=7mFaJK3Dn5J0BVho0I{Ou%KP@-e%gJ9~fBXB-2)det3 z!6`SE>)3&Sg`bX+!)4P_}aC`Kh?k@L`*59JSTmmh*pPn_3cq|`s zwGaxa6%^u(nc}{6ZT0q(gj=$imKM*cH9p;f-8(UPN7F_QJ8U~)(fo@0G^Hl z4npzU&cx3tls{f56W7W9r3j0B!YutL$(sr7(QN=JkV5(_4vgoXt9w@Hk79)U)U};)&E$G(@M4iT+Ns=2QF4OTB0$SX`AZ=~ zCS$v?!G&9?>t%`J`oGCQ!!h!z%*S)Y1iuUETMZdU-Q`_vS%LcpuTxcWEn8o5^ua&# z4QF1y-JY?uX;Zr$Z;gQ@B5e^AgZ3ihjeLRbOBl|q>NPUztT{2CbTY({qNV76CdM*= zmd{=mcQXZE^Q~lO#cWNRifkFIy1Z3kN%pIuva23b5Ah|A@fMNfQ#MhGcW)tB@#5lbV~XVw6fPhfd` z+g_M&As^-VeYFFm*IZ2S!UL;HPBYwap8-i_G+#!^@bk*Yuj`*gmMQE)>RH?3LEHks zy=7EUEs*t%ePxy`YRh4C84HB0advxH$ESsD}GTK zB6}6j1JNTl_!gBhsV=0f5(@J0-TAFeZ57lYD$7+DLT~n@;>p{I%N9$qzXMk9w%=9# zgOBUIQ}xjBkWw!|3L=lnVE#aIRAyMbkD>JD+RdU<;1ccpxY_=S;VXP9e+1?Jn5}~p zJbzG29gY?8sDun%gJlQI2A6HFM0xW@4BIz>-?&kL#~gtMuJlXA4~BxgQ}Tk$9S_Wv zMfFy4Xi37R1sC&~&pyYGPvymZ3oz1W^PU9#rBX#BGpz!Gk>s7w($F4zgB)5+B+-Es zxINVHIJ28Ot=7HXJ%k0?uKjCMtB$>q`JrPf*n=o#)ozMX&Y^&2s)o~42f(@d{<@sQ zLSeli=VCo~p=m0SlWdsMl0+BiaOjW;0JPrU)DYir%5t)lza}Bpk&q?cSuc3VD9if# z`J>qmm8ej&R*L?XqyMY_&Nu8jQq8RhQ)kg#0(m1`@?a;c6AVZs;tQ>6A+xAoR) zF$iGj!ouid#NU6bf416sCWpoSt;Rt6uQ#;Y&n))SPZsDav-|QWiT0$*s!x=YOoc;r zR*b*bt$!!{szrR`7V}qzexzMy|HF6D&tLEV!e3tz;0>sVrkr&aK8{Nw&1 zlpS17P$kIAmuN{-bf0^AOK}=SHtyZ?JpA~2#DT&?K4vy%WQ~|AX7fIO#tf{TC?Vz6 zdHLIux#psQ6__Y3`ge|x%?xXEkZqCQbGtZdx}Qeji%m=q-lMr^yoB(els+R7A13;&wZgJZaD3cHu7;B4I;~HM^6x9$H#$ z!JQ>Bf-*8Mqz1YtI8c@kF%VWxV-2FBBvDcTNHDwY^J8FlzI`lN2SMEc>u!(}HyB^} zi%~RH;=hm$82*c6&+D|kO@k-$tZ9KE+%lz{2%0)jl6|3C!f3C5KPn)y2zlvpUxUw z(A(H|FgQSf*U#mJ*HnoWu3VE^3FCW3;K5K>5?con!r2~oXl`gw5cChsyTv)UERsSU z&O*bMwwRx!0%J03Nn#e~;?PO@;TPEVADR+8^ZSG67tZUYDD)S*@x+*3n2-W6SaW2! z5m!B}XYjV5e+D}ckmeh=6$(UNV$`~UyE7~_q4Z~v8#p-hC7XKDRPuDutvBbm^4u*ug(zBng5}&)=QimPKnEQ?7eR-#=UmtE~h@<@U5g$jJewIEVPjkpJEbu zVJmIkMxZc1y`wZ|_0HI|n(j9SF)gLSR)1KCw`Cd)wntlF8facjiU;-NOBTC z&ux1%74@ah+w^rp5;Szbk@)*|edMl0=|hg3dp!s*IDPPEi<%Vhl@iiwJ zxSgfk5xACy{ZUN&G}YBFHFx%MaJzb);A`tAFA{&ng=#xDACoJT*KS2Q^bRsSLH2T-{0u)$NAZh~INE4JC9`UY-gM##)Pyjm={Z zvpzReIFT2WLJ8Q9O;SzF1Vmjb1LTbGKm$Rw zTzMz`mxNEWJFSp0Ey7jqbriur2E)*7JbTAsfs23Q3XBvI{VVJJ7RXe@2ol2BE9O@5 zgEJbGmRE6pxOacQ$fH>NuiIxQc-|^+X7)`Q9!IkZbnFfU1tAYm`F~K01TfG+wJTBG z;xDfgl-{~XkL%~03^=LrgXiqz_>3W)7)QX=j_}U`L<&u&$p};!=G&2XW+&E`9-45r zwfWvx@lXNZzqqpEsVdjeI+Nye|46~&(TkL=yOAZg8y%}I?;G(AYgzG?#h1~W0JAlF zDF#2sU(qWAsP`Q(-ffuLs?<6`N(X5e8j778`4kjIbExKXe^1}CU^{_5oMo6Lpj6S` z{Y_A5H}%^w0~(G&`h5>o`_B3JjS=paE!=4B|3n^9bSM)%a?WMjl;90%z^kSlPX%!n zu(i`()=O%NDb%_Y)dHRzoNiD9?zV#ZJI{^sMFVsJk~++;j4ns{N3(*W$_~P+FB!`D zbG++~KktI|AAErWI6xb|l$7i)P&k#un=8q$u8_kipl_d@S3t+pQ}}k{is7!pT9YQJ zrF}#MG9r6Gt&Z$k3ciC$(r7F)n3@yy+d zL}|13rywue;Pu7Ou>m&J((a$Ssk6RC9f8|jj~F?VC{N4SRx1A;aB$XeME-`!sRt!@ z!N8D(&$Em4UEwj6Avj5+;6Jp>H5xn!s_!NJZ$%KfggDG@m1hN)x95_v5i5P&^b&tT z_E%{qbZ|!kfsbPgLp)BA^>F7)Ou=YGj%Pt1#>X*|4pgRnFIIz*-rl9@r9BFAdygg8nv>F;F5B9O>HM(TTu0mG_kL~6 z3y@G+;nkacl>8>>&2AWp@QSo6^t#1b*zNw_`k-wABxYp2{HlJm;|!}Hi%byFeHsIg zZu=ptlQjD~mB>O=KA9z)ObjLMZ3yN}T97i`kJ#RgKbv$n&Fc)W5}{*;j1b}+yQm*a z4qNXR(g>5kOP@GQnjGME7Roeq;pXB=WXcftrTKA^`^1s3(6eAIa?o>7BLeGPENRz= zQR}=;{M|a0=^W#Sw4fH}?v?0+{trq)wZ5A@GfWZ55{Hm2U*V`e9XtO3na*D{xXl9d z8MTKYr=aOymy_71={1B+4NC&_A$@=}s2@&O!Fwb}fLdSXxGgTU(Pt={tsymPaTM5q23rsVS2B~|YU=@EyEJ=`0lhLLIbt@HD$8+FPr_)#Q>V)( zR@xy*sN78(dZU+7xE~Hnr6BHJ=l=jW^sOJ8>^SlGn2N|Y9k=$(ZC3H8P1^YH6ZPU) z;^2@*KYHI4NZW{~oSZERYJ#^tsDGB1RM|N)EXKDWXLb(?@A)!0~A$ z}yKW zn^y-4c_v>}6ltz^W5%BK+XW+v)J4iHpvE|eh$J2IXd&+!ALY%roS}++D^j$Jl?h4T zg9iF@15=#iYdOSuv)25C)3gYZ?^)Mu-bMt7U}lkx4@xNGUz-faj>ius zt3N1teS=F1-5tPbcOs;9Q&0!fl}|aJJ)VD8l4Ezxznu1ZQ)^~z5tJd~!4y)I>zO(n zhED$gK`%|b+f33f^~?KR4@-!>-PDU3AOMogXemt2$sh%m=}NaMK4|jA&z1E#G~Gx2 z=(lb!O~7H;?@hk!jwy+Y4Uv}+x9jKp;0Nc=)HD|Sw}sX#sGa9f$KjMc0k62HLDYPX zYPHq_qSfV|30UO&JI)?TkIk0z-)V_k>xiC+j#8~p$7;}jH4kj%b&?S`PR~WC{J`Dt zPLZK&FQ;GI`EW&V=Dj-T$n015lSZs6wdr2lb*E5HLmz1EP8Vos_@AMA50yNV`NyW| zzI*c$HPO;hn8O_wX(fyg-LTq(w_5BzeL5{ZSmuqMUu#EaWsEj2i8Mbgd5ivY3-d!- zwev2aZ=z`WRAcuu63&avtZ_!H2^}i!+ox6;o2JR)n+3m7oJw21$@0Ja;mwbcH0W)7 z$A1;gvt5}Yr%z33Qr~xKp8&WuSU5$OE?R77dwQ>#HP!PJM#Dmp;nK9&$b}SzS9BDv z-BeR$>EoD3QY+G&nt%m9Qn~Y&)vkW8=6l4BFI(c8XQ5-%4fdd~;oBlGc$>VYqcP)2 zbi4lmC3#Cyx$}+2p{8m&)b0Drn~CFpO@C!kd2O{SdYV(F!(*ny9Ae8xNlqrfPW-p| zrJ+ye571UukWMu~StEi~kfEWk#H4{;=nnZ9=c7${XEQD$9{_%Rep1Qg{{TBfdv7vZ z*gZWzlWpGEP9|85D6G6@c2k zdkn0xo-$DDQja$BprxW=DkW+X!( zB5J<$72FCB;acN|HxYC_qnCu+JM+$-b^CawxqnJ%c8XO6TzhirLH&E?PF*m_HgwtR zQ64EXf6BX??=q$5lC@iP62lLwkI`g|coVoIwpEWza&0F!vvZJmIww9?o=qQ8Z5>~f zNZbf}Wpx)nbXqmxS_nxCFG*xR;s#0M1N*&Nz8b&28#ltTuZ4r>P97@T`FD zHV1n4{duz0;5hwJ+37||=Z#P1`C9(~&E8`Co3_$?-=rauD|khQs}X;N=*BR~O8is+ z)|5P`!?=c;-hSY0<$UMX=Kq>+>Mx%VHy^zh80d}B?W zji19j-y?ah;`jb>-&wr<8kMuXUU5a*P9tC`Kp%aNe|*-Y>T5LrtPMs;4u*-2iY~`c4K7jJ%Fn(&?PojBt-q%FF zF+p~d{8Bv9L}~(tAvt*L4;uVc>w*Ci^tc$0@DTQ|%pc4d>@;8S+sdC+vY6Y&bf9{& z@u*PBHs#rf?eCdcHGEO7tt3wo^uA=#HAUAv`Dl|uek*55In>aUs6R;`=hHFoh_cmY zkq0`bKJQk$WQN6W9@YeEmwIkwsV87|09U5;$j0Hgal9@eWiS5#oP7Mg^1SyN zs`>u_TGMPT?BonB?}CSsNE9j7qo(vbk9^FCGL73j5|1KQ+<7<2o^JDIp{42<5ZZZK z+A^^_3M)x21SU7@qLiA$iU=OGnhYy78S+pp2J z(&Q1A!J`gQ#YORTxL+>a`VTJ}Fea^2^pQ;I49w!@=fmO(>dbu8V-BNiHQQA#dNnFQ z>DXozbMVTXeH`T(Q_VE1pts7CMyirlfQo|Mj`i=G9E6c!+{^;~NAi3&-bV7jlowKq z*0{TZONUeddXco1DjWQjBXichGnnl%B~LnX${B=*d&PXkt!cUso8_JW7S`fzqi(>O zZUuMSeAWzRLuYT=nB$fnAm;S#7t`}fO3@N@&r|nS{EMDcG-4}C7N}ZQgRW#in3^vi zcJx2Xk0{(~C(Js0=+Ib0r$}Dmfg(4kAwfUSPCaYkT*}9T#x&i6Mm*j#`P=!8rrOJA zb!a_ZW(z+-9ze8J0FF)2)Q#!2N#2=u4LFFmE?Se8LNVl@{{YSfc}_n%es5`d?b$Ll zg3odk9*2h>N86F2Pc!+0^73tFDY$4lZlJI%6#xk&UR40^QVl#e?a1bSt1Mt>y6o6^C&c@M z^5gOn56ZtOT7GhVV%SHkYgZQOai(dnQm{kzmTA-uJA=s=sXLL|G}_+L;T%Jgbg=El zRdv72kIer7%!uHJ%Xdp@HQX%Lx@EBupFvZRY98Eo8`Sshnv)(Q#op@YDQZmWI7xOa4w-c5u?Or6FhMYhHpsO0@Hl9Wj zw|$|_<83ZapDg^tYvdhv_Aew%mzUP^)(eo#u&7gBTW)9u)I0d}&9*GECy18r(9`0} zQ5_$+pYw^opO*gs^OAp;_xeVzBKDfteJ0ja}GyBk*` zPAQIDyvOWgznWfO)+`~@bk8Bh0q0?HYy|%R3~@5ZN-^uO2cTe2u-iEdx?>uM4(n8S zqqF2s%uQqSbMm*#E#@CH+-c8jN~lPX7Ai;|v<(NpQQY**nPr|ZJDy`Mgr89_O!DWD zZuOrkX`h+?dDCEmb}Msf1>!3@9g4_7>DZ_vZHX1@kOvU9y(S}uIhQbX3dv%Xa zvx#Gjvlns~r$qp7x%;yx4j6{+&eIHA&FY`?kD6*+X?m}j^o>a^^$Q8@-E3WeShZ`6cNt*<`+n>5JInXFebuj<3Rzs+LSdO$hIyyrDaE>w1vjU{GhdS@ zh+M5McwrSTZ;4`?N4eK5Zan5>mqQnbZao4+eOwV*A8>k)yEE{MkEQ1GYJYouE%dkN zN0z*sHkD(meq8DgCXUjh9X&u2GWR5t&!*e-sro6N01u;gvBj&7qB|viP5k@Ot(re4 z9Wb|+WFi@0n5!xvqL-iqsRy7HrFX7oO9W;pyyUgHaAeqQ^PkNf9@EJ_V$=NJ`FSAJ zw24sqaT*^=B1ve6T5%?{Bfm-$H%rTiw=UQDpF0U}FI zoOUFsK06-SXu^11Ry=_7dN1WS{N#*x_7eFY&$EA|+eBK*S_(0YR0ao*H4@WuQ1Mdkkh&z%DK?Cr&^;r-OC$P26W1y6KtHLuRJBAI0L{86V{qt_g{ zw`Lwt{KnAyjeBGHG3U(!-Y0_B>oMw3#4G5p!dgH#s0&lXZLu5IBY=p;r1e;JFb1eT zcl`D9HmT;#MoIqwA#W}&bjTxbtlauxQ8=Ho$;ATr_vC4s{{R<)UE|5Cw6yTm4(G|1 zdcWo!&bw*l?=xx_HukF`HRMd(c-!pGHUr^httcvM@Ygnfx}11``MQjH7-{zk`qIJY z?Ly+i^7lz)v4T+dS28q`vY<5DwWUZuYk%3UMlp;>7cU{r%Ne+a!8dvJtrE_3@`O*P zB}8&fC<`kBH&q{KD^S#q+jTX}Od0IDoSIJ-S0u~GURKxq<#cpSK6qlg5D6W*?ZudZ zxTyzXX|c@NfdZw1}N8Z6PNcKG-cMys~fLs3c!4nu9T11@tjPJTMe6x!qSbMsTqzHqhj zcCm1_S`_?%k`y!wi(S~(qiUa}zFBk3V$m%YOr2G~Fb=2WTjkYfzmE0}B~~!%jtUBs zL-!Hm^UN8~Auh8npTj%7JMu^KKGR2)Jjdn;<9#ykX`P2qMJNuy(|Xsg<1=&_Ol4B! z<<LfE~efqu#Kn31}GYePf0=}P91YUPewv()xcoOpsK$UmEU z+T6eVtQg^!M7(x;OZXI&jY&TYgQ%xQsXJ~y9P2cin3&OZQjE0b#j>wCf6g)aH}g8` zA2VHrKt&7NfCC<&ZC}4Ho*6PKDsN4m}d%;wlGP zbrtaIm{_%DTS>_|422iE{{YT1d8X$<^M0S^&39ckS}vCakxc9h4@i(bI-QkCBa!J! z_oXEqq)FF|0ur&e&H7>ajrljI+BK(~{JC&%G#x@X<#lDNMy@&X9crW>_CEE@4%Ee$ z2@@QPk&{X@4j^AQ>RKJAn1#)smMx&Yy|#Z!TWOS}hqV9{6(^;BTV@pXBp{0)yd1w6OU6z3kgrAu@oFHFFky_ZqRyX>~ zzr>`gR-^$>gaQGn%5!K$4-jXQR}LCKq4}G0qswn$bLLwcnB={J;a1`@#7J4ep#bhc z+!8hiZMMvqkd$GIZqg zMVIM6D#vZA+06qls8l@Vh#a`O^sjN^J@ZYfkp{rFdVk*Xd7tF>o;IpLyf*L&<-f){U(BO5)xvNJQ*iTz#bd zmQJC8>OYM#>{zFO@xbiM2Wt36i|1b^Xx5%w&@OZ>VwX2wq>l4!ND4j$U!RY^L6&6H zoky3OPN!cS=7Jyc?(^el&~EWU#IDsMLVukuz|E$7a#`tnQgEK{fP9gwGA{_|0CD9mxl7rl9^6>4ec1?7Kqp;^Kaa zf6hGr0M12f{{WTxLqX;Swz|?Rctp@l;yHv}d7JO+gUp?r4 zT+%M)^R|@~I(U!bkn`bQg1ta(sk!hS>6+7qAn^vBerRHqkntP8%-Fv%t{~HVyD=lA5Bu9J|lgzDaDQ`)4pa9kRY4?$hO57m_A(qkstGG&fY zLuZsf=O38OoW6|ntHgFYGOvj1L-%C#+8EuQPCPp+i+7^_N`KB!dA1E&-$B=Gh3&l3 zh|IC6M^vpo$gfVP{k+;`mOLY3oo{D&QR0jAXH>WPmE2m361G!Dtp5NB1SuOD4Z#(m z@0$2j&hCd%ib6K^pDF6zO1id*wB2&vOQ{f(Z4~3wN^E(8eiKp9@0%PNXr4vQ(&Pkg z%BHx2)Tz-LLmMw0i&vi1`#WXQ!A==+$cRdo|HMyN)aZ*Y_S|+9UX_(7|6@YDwHAYl99*8I{{T5Xt=VaMW|yPKAvf1{B56@i zB02T>d_tA%2TZpv6BEQ-OfiQ?lKxL<7rs!nkIj1Cu{M`r-x|Oet3Kb#Ptnr7{4%_{ zjr}e*w;VGExqd{+fBBdBkvzKfsC_F=w`-W9l+^R6^yH8pwf&H5N{+R|jEtP!R+~*6 zT=~C7v|9*F(AYCo=9PKu2_<*y?VAH|F6T~SWluZ*0Gy>=GWshYD(aU_7M5Gpyk#M4 z3^aZKorgA{Cx2?@7P?kMOATI4>!adrK5Zf!%WGXa#hwj9=s{;@BQ6lP!x`=H)Pf6g z>A1<{95JU3TA>Zoy%$v0{{Snz$uE<9&hK?&B65|77g(N3@u^CXK?7~}ZG{bU9|oVp zm#Nfhb*CYyy&A_}xYYE?XKO#ISxlelLR1uC89Yj;_TQGqn{hSEvkwt;{6aRBX}3ns z?&HmtmrD!71IGwz7o*mvsi8FMzSRe=VC9gHCUDL{vc$hFr-M%OJ?@U|%Oo(WhK~3Vq)J^S?l_jm8Vs@EN#j7WmDJLv!TJBjY+Cliw4t<4C$xQq@(P_O~o zodsz^#8}70GuKG!qdFtqR;s^dvyN* zr)@n;i!V{W6BRx*411}m3)I))`#CK>nmHq9o3hgp$?JNeLFMgM4MD_~nzT&Ot;3SX z?No(-o&DeJ|1kiZ?p@ShO z>TwRBN#uTB^2V2?Yboa4J)=!VjAe8bVkA3)X<8C~UvQ>(XL>gbVIvc7c+@YXF^>I_%aQM1 zUNq+Q5%98HobL!7izNR5oLY~{AC&%Flk*$RcQF2)ypiFC8uOMI)bH@9ByuBewF0J! zMQ}9};+K1V|!>vq3Ph!GuFtLG8?cXOaqm8FQXlh+kZHQ5=a#(7ti$?F$NNaaIKt6k~7YbFeL4oCM#feCZ@G30w2`)@9Nc3aI#>BMluYzr}VGy}kIw&(E7 zS>}{Fx9OsC8VP6TU;N_kyZK858nfHUZ*6eJQRQ_c5VfUOzFDT#&PQM@pB@QQz>ivvsXl)RMt?j}y50 zcFlfl;%10(a`t>N@(-s!I=8-v$Yq;7c-{B-stvm_wuR)rvKBL2zlTJJ% zBx+pVe{1G{%s6@2v(IsEjp)CpQjA8!h*E3w2R72wM=7T#7iM^4o7MjSDm?Ekp0I5E z?PT-CIyJcUxgd#{&>9||8+YrNUMNhlM;qvO^ADB$p&XLSb#D|))TIpvhgyBvSQK0t z1JRoPNq%klch25p9$e91_pw_|azvXJ5${DC)5m%m9M8drjMI^!94X(M{Ls1_m!5d@ zlZ$BRMZ9izScgMS#k%~u<+*3!?A5N!W4V5Q{%PF#&+|^ge?RIlNoC}lNdh2q!-T8_QQ3jTlhDhLc0SwWAjDm!3$b-J(hJ@5mV%)eyaF^eD zezj|_Y1Z1^x~YapkWqK0!k~BRJLdEV&J-NjPk>q3@sIrE59ThD`G*kGyr``AS}VP^ z+L+BnTvDWtrMx-}(aRN2hAk7B%5I-Jenjij`ETmM&9|J%2qYpN(!jk!Kvf7 zj%DT^4>u&~goe*Rz4ETD`CoJ9CeiQK9Xj&q;*!mUS=681lAw+tRPkU=)vnaedp1KM z!0WSQlur*w(*FRIy8e^rJqZ3;`O4Mw^}L2Vdtq|5Usf;=s~nvhk)cw*5a>JPw7^#c zoxf!3Ks+at6@5RZ_Cy_~lIN?W9{IHw@g@cGx+W}`kyVV!;tx%4>cV=-r& zRxh9ezi*PP0uRlNS(ldb~pDvi|@w{z_eW zhs}4|{;-DeZSMUiU>Ngi0(p`*G$W_uhBG+hvxZ^e?)mS{{!E|Bo?>_M%wCTsBi-hWpf7H#=YYjJYAmCUa8)+X9zig46C*+{3jCu8llYH*o@vqlI+^Ll=Z=Wi~4 zOZiUL##r9_TV!XHLMk3t>A!~b6{q2yUX%_CD4e(jMLVK`BsnI{wd&NbyHv`e#SG)9<7D?vP@w%7H4b)eBlPdy4fRO>+-XfB|uN z6OK_eJ(%z39)${N$f(uO2QDZs$#>IK{k{ z%ktjR*5g5n`s|HoRKC-m&SFcCO6G8n$kwBebz$xfUksAt7s$CMFCaSpJKp9006!P= z7n@u2Lr3!WluVX$*ywQBiEY`Hq!LQ({7TUADpO#6k9_Dg#6~vDqk37wo8=Y%w9xRDMq!6a7(EIJvG4xn`Ia{XH>IA-?Y|dXe+i4zM)U=n7rPaXV zyc}^njZf3p@6C~k17`~sriDK~Jk1Tpt#aC2D$+?Lphkj~F2`U8Qcp@{SjQH@vk9YR zmHtXYv~X8K)+))Lm?xR}J%MIF8pTYdgxrr80G zP&VNBz?aINdHVL9eJ7W#Cz#r4>*-sDpaE&NzyVCi!ypZpVT1{VFUydcPQRz>zGhGK zFH{*Atpg{1qp7FQGBW0jxjQ(K0ki5~%pGCpiM03?QWlSj!d9OFGy%mf6M;>FIst5&r71ibVi$~SSu`` z&>vn9cBtwJ`UpGb7D8p|9NM!;QNE9)yqD$?pQA^TNwDW$^ZgHle)0oYTT*t&=7MEJfXvUq~+>FvW<~eUTyyX3;A!%zGi9SwUL0d zw79uqsM3&XMK?SF+ylKSn7T;W+1JVv!;SFwm;BW?leI{^$6(@ZE_UTKYHFqHxuNa3 zr{kNP`fy?9{>0b4`Xb!La1@ zGRu!FcINTDGf&fOZ0=i1xpVbH#_75c!lZ-Bweaaq-E%v}t;aV>sE3L;Uf<*m0{73; zd3VcRZq=^tq_YcqrRnMbj^5pfYSaqxAZ!m`ikW6@P{=5j7__p+1VzyP)SLcukIwf` zJ)V^WO7=?Si!h)C6fYG6!*kd5*Bus`&9ll*qI7wO!k$!3SI(NHwvQVYGdM*Xl~K!Y zqc_ulhQZCpfMPqpM{N9?<_{q|`3GN$z`+v*wwA>5e^Q~1Tz3mfQ0-1z)aDkTNOKM} zbs{9j**}`Br`B%B7lJEqOmUuaC`!|jVdJ-N9EKcn$@M&@yAK{q9GRb#wZA0kuL@aQ z8_SD#U#vt)EPP6jvVQ*n49hw?vKKoXp8VdFxH~Leo+L*W$=~I7 z{Nqjk0OW?D`d7>vv>Ls@iKBqV7&IaFD#VH~@Ex0fY~IQeJC*G`aKpAUZ&=m!Xsy;> zNWr85N6)DGJLVR5n}&Z;esTVP$9d+f$b8W>GQnwKd-^suYSLCFtiz>u}Fhu=Jx*pJl(dRqv^g~(_seMNIiMo*VI>&(-JC?upFA7(=at!xWZOlrjN5uK|x3I zr_Yx5*ANXcqp{V8B=likE5~o6+MWC>m%}`A?i?LP3E(L|{N$gWF6Q#>-kEiFvR`U9 zaoYe#7FenpqqzhMY;!(%BhA3kYNeKZGI-aK{Y@jwHo8QVS#BptfohIEs|DxdMFzb) zZ%mnxk+)~BH|Y7uA$fON(DB&Qu2ZNR*IzD7 zblsgJ$?%Sw{{T4Udtv#tZ}~_0gX&q!c{(!8{R&CCuwmGEitaY>%B8K4j|-ot#4$>w z{igDF{NsO+zb^FH^o<_E8=II&kWFx+QqnHro0Wggl)()!Jok5#${`wq+4P?=dXOYm zNyDUV8q$kRh_BE5`{u_67>-*w-MKP>#?3!Noc$7ei>e{)@$GhV6*A12Lk#3U)(VB(MwJHC?qzx=84o|&v^ zx^JE|qj_Yv4q=cfGD_RJa}TiIi|}j*#kOn4l*U_^t^z+i zms2saB!}%Wr`spTeY|>BnUy(l4W4&bGpalCe8K+!DtGfM{#j37Tl?t$0KESIg8V<> za;`AhSiJkXez*V7f_`E7iYRqCY_z!kzoy*GU0Om!=Di8!{WcqCAqk9S)aqa*)h&z4 z_Lqa}S25gLyYx#{X65t`yE6X(GjBhs$RM0U=DUB(-5*$xODxe%7-)>Dz?UMNXlQoW z@3z^8$Hgt!;D-^n!Fqn7=Fc$sf(=$VS)sSM5(Vd7tJa?1(>CH`2)AXa)8mdU->|=( za9Vz3epYEZ#5Zv-m@L*3v|t`O010Yuu&&=vT-s&L9}df}(CSBrN1MoOzcKWmD``4D zm3ujpQk@m1xs=q&BmFh40N#|&c6yE(P-CA6&kK7q+C!?q*K8w|S!&==l6#PI8$Yj` zgO5?cvW?BWA6ACO2tprEiW0vNr%kD``DHjUM4DzZS$J3HPLHRrl<$m%mf;Bs?bO#} zze*mo&75)w9h|7;HCFtp^23XLb_ax-hN!6hd6$|-Lw9qmnecXf&0(p?8aX5>!l@$n zq3gJ>PY(>{Gekm99fK*4H@WD3XY(JNWI8T`Yi{vH7!n8+t16v^Ni^TbV~#Au%V#v@ zIUalGZ8KBygoYhn#gxdwkAR&L{N{V?)g5~8xpAqBZm^(T57VNVJ! z-m}f{5SvkWjlUd9nO7!B9r4i`Db$vfkVqSBdiBaDQ`yFr9}}C@bh~T4UgitSMm~ha zLVRDeO(-`%h|DR=z>g-gQRW|L+kehBUR&s~Ytr6&m-3*K(S|pbl^9l~g#g_9?Y~Ur zbz1ouY#cpB7l`XW^NgC_r#ou4cQH-Et?9UEoY$bEsLh6twxfq)&jzpoOgG5imELFa zmz(VM4N}TfNM-dFUIeXHv>=YO?M%q zMF&&bx~PM~{XMq)#D)hb95cY&OR3_djk@^z^sh?iFRjxFZ0e)h2N}5Xe6Oi_nLM5O zkt0PX`Yxt~a@&b5LtXYeifz;7obb^~Cf$~&TxA;%e$uXE^6km<2A4ZWZ+1wyRBf4$ zS2WvxhwdL zi%A2F@x1}Z<72k2E;X;rZB7p(Xp+jx@UzPyekldKbPh*>>^qWj%~qi5j{tDAf>NId zPW;;xUzgfz+KNYOZEi_sJbncPl54Q8RXsm}8g_cjL<)Xxeq+sP`N`$0$#iLXeN>i0 zppC&GjkoaYnfh3s2Stk^89hPygQ~o?7b4RB<<>>ms+Oo88~*?d+Ta{f-Rnju$XE}i zKj$7i@A+@!y-H6rerqnRbS;chS;wceV3$)<&6tV}fau3^-9W8#(~GwbT5wHM^vg)| z50O9TA+$Bu*1}7@Iw=~KO!S>8uu$TZCvEXX3chvxnYH}O*5mU%?zJ8CV)6yPOIZp)<}wvQ z3tmNNcRlM}&fCp4l;t}XI;moat&?BR56qn#NYtN4zVb@>q6;)Jz1P+iUOE9#szEjJ z6{P^jx9|hx)2G)<8K{Si`6tY}Z=B|nRQ$92wp%;DT1JaVDDuW6}duQV#JCE+vs1)Z-$fveuX?4euaHFRfrD5j2c>L(oe3z+dkm@$= zV7D@bKB5unLdJofyVKt)mPna*7dCn9?)rc82g|mee7A-OW%V8i$=m^@I z_NXJF%>8NcW3#%!mNUmd?)j6?AC?VirCcoX8$P)Jmk$rA z&}*^nN18WA^WT{?TfGi1C}^_kx0<923d0MP;ly#=eV&_|k?)y$ET^XB)nUUapF`?B zW6F^0RujkO-6URX7OO>#mzMz4_`X0Mzhvh3E|NK8xZUWql9n^WC+6SgCa0^!_g+b| zRa;YXsBGLFlr>KeW9`3DPWB`no;@UG{-Q}pHdbfQgKoIC?}ul`bL zzGt)ZMfH`_X~yu;<)DK(Xm7AO@3Ry73j z5o|%J`(7u$VPLq-!18ujv&&Pv4E)pATg*BGYnE{stpw-QjW%^sKqJRuDeb=5xxpxb zZoXLM43D3`Hva%2G|dysx__VixvM4k)ECq+gZt>|N{0ZRgwy*7Cpc;hMf7*r^)V)% zN9AoRZ5;|tvPnX1v z7Wn4lhTPwv-<;kNAa83QK#(bQ~pk0;Cdf8~p! z(!3GcJ;Sd^kwUOidzBRUen94@o5$&R&(~a zGE;|O19n^c=34^`S;2A09z~E;@B^>Ky$cF_T&cDrQCm}`hHISy z`IpHaVAXUj0_Rnh?JcyZT2Dz8_?EeFDe%-5pzroZ*_RpDCvm668{O>QRoAXG`+YM1 z0M83Hp{ZTO1-#R_EU7Ih06hhJ00zMH+cG0EIkMHrR>cwK2fEZ}x$>yeWrIs#FRw2l zLK=A^Q^iYDb3zxDc2*S3IcflP5+v+HdW?F`yXD0;+6lL}5b=%(g7csvia_6bR;{_O zy-prXrhJ32(nJT#K2-eCw(=CWkn5gVww5cZK;EQcv8tY{P$h);y%vgbFr&@M z$)lWQaozMk{NbPGKlm&2g)Y3Wr_8!$zNXRby77(3ZdDZ@30__Rckh|qovaw8MZOw& zc!Fb?a$|cxKK}scCWfu7d7?;fZW7bU zdR?-{fz-2HNh4BKa5%cjh;_v!mO? z!gUAJE6^&M??b(J>UTKDUwb^!(#r1ad{ghsZC)m{ip1*d59M_kf=SmY#!W0O8P`konmBpQ@U z6{+|ljHo4nBE3Ezo>_wN3NC{-q#19?m-%D4<>lTIiF>+gw_CGHg?X?D3JTy0P^XcQ0XzccVZ_d6-^Hz{9 zuH=_b)*+5D=+Kzhso3lf&u~5KOvCVuopb@iDk9!N28Va%7-ZD6xMa8pOpPRCl@`5C zI&Od3+YGVFBFnHDV>3nfm;B;K<`fp1UFVT?7%8j3#(Q$RdV)d$Qcp?~-)_F+Ez@Kb z>UCPIBTp_TrFr*B^M<9V+TD4dN4IS*5b+adbH-mrVa3&?Qm292Z?eXoCpG$s8Jcpj z2}g0dN36_rM~Cvy^8U_9>|BW^nE?n?*O4z;)Kg$9{!fl$cw*_z%yJm7kMcGA+?Tdm zTmJh~m^P)T{@COx=)qd;{LNZ^$lETI2pc0D&QVF<=Jki=*ZkuTs=sOSDrum8B%O=~~w~jbtg&uFouQ2{#>i%lfrM|zMND1T&V5*wZpHFXd zzHe}Ld@+k~PAe~7{ILAlw(Nx%(R;Z~v z?NPe)G(ICEFI*_L_(va03={H;^Lj5O+-s6*&wY8JNEvJ`LI<}Kbq?W<+k7-$#kMrb z)W$v=PL?pnc*uC?<`3o>xz?;a`=nc?o$OMhg&$-}jmb?rjey>tD({0wr{QmwZXo?( z@(-TuKj$GluWcuoVuo+6MN7yD2ltCZUer8>&9e`Frds~bj$Pa>KWfScf=@HJ*1s>j znAd(!w&!EPh?Cal@WvZpeM7ezbllV1reR^y(4bS3TN$1TLH=I(hUfI%{*j>te=J%; zjwe>C76PY$>Bgp&9@)0hWt2s8a3mvu+)_`?56hhw^B|6hNBE+ z>W4OXyIY9*p2K1P06y{Z-i_s{WRJ{gbErs*H11UvKToX}cOOU}7i_;TWX>?+z23(F z!;%+i&*V4e*O)&kwR>O4pEl|5srho^CyPk9hE<)TXu&>_I{=22QMUm~4m$@=t^{~l zU4A?=#gega6VUYcCI0}LI%S9CpPO`l&6x{NVXw67C8S(cqPmWSR)o}w5D#_hL(?!N zqmCTBeG%GG7)X*g&)!_}C;a6ehW9?G(|qS`7aZ9sW{tOiG4r;NuG zdAmIyXyeZw3I5lR{#Jf!!R8%0U&%krH;r#@BYSx6#>U_PQ5aLCf|VwKnpAE`%zZuN zjY-k!a*ZtZ`d^+unqFDd{{Sxa=hAiCc~a&FV-4!oq>hdmdel;+Q-6K3?HT?F7cM|# zj}UzoW&Z#N3j^;-<|;F&()d$D0xJCb*xQ z7y6BsjH_im%f`uT60u37RiUZwM)U-9{i@}Fi0;**#W_oT{m&&$ExfwZS!=O8QAEwk zFbzvkflu~BGI46gZ%;Ga=W6uwiSmAe{{YS|YJ7>ZJ! z!lY&TZ`{h9EK&wrC6>CF(EQUqy~>tBbVC-e#IorlFcPjPiRSZNSerb(u)SSU4MpppQpgF<%7C5xzb`KBv~?);1MU6nlE{#}M?E>gnGZr{bPf$M&uIo{U4ztwtzb`?g za1))a1US7hV<3 z-3a{s3Fv2%@&tb|=jc1kx4uKEEmbmPbEZGxPC09~J$_cjMhXMpFw@dqGzpdy6}v zRibpKXtz-H>0RGbtTD+)-Kzr1w8c)+csyBnRigy4W^oN%hge#r*;j@b1!fVqS-wI0 zt+hj6`ZKI0ZX75Ud|I}yJA21cD``zJwAIA~cz@#1>*e1SbbC0j74h#YjQa7I)U>qY zH+|3HiZp+J(<^q{PB7Mf?#B~+w>)|2*4V&X?p1`E7O(>tpDTX==9@u^>>*deP$oI`%i&!X}sEoWVk*|c$a(p06Q z(FYg3XEG7--n!O-;+B5=rb-Py5O>*V4R zF3cCjB!*dWPs~aNv5=8OFo06V6AMzhe!s5Ez1&bMWO8-J-FTvY>t2=Ck-o+YYKv;6 zb=)h7`XQqmOIk0(Nr%i%-ezT!FZ9*U@LoPOQttOk?p=^`Q!M9a(Os%{)V#jq%Fu-^ zkrm~oqU~NVQ2*)LVbkdo2v>|z#a!IuNu8ac<$GH%+w7>3t4RHZkqtDnmfPeM{dgN^ zaDEa8UL>A7_Vt?B-(|O*w?IGc`6|p%r>`Sb5Y8TUZ{p@BJXiX2f9AQ{ca9e#GDgBP zTNREOcjASQyMThGXU#tSqU_$C($=>BEhQZ@dg!^DwDs0E^jykat>m)C-Vf0o8bA~j z1^gn4B!e<5{2jsI%ym%@xtqN&^B#SW9``lRL%aVM`drVPoV}-GFchv@pS_-APxa^H z&1{LRO-T+n3_S8#I^~Z!#WBnkeUo43v_t4g-7zFqBH&s$CxrW`dilZHAxR_h!;M-%~z3tF`Mo~NS1+y&|EBA05t=GWzOFYJ zX4ZNH-Fmy42eWyJvK9P(ocSrv^lNR&UXPoP*thEVLp%m_dv0>{%8X=Yh_z03vGqR8 zVQTxKY0U|*9~B!f2LGlm6M`Hh7Pq_qBpB%?AYF2PFN|iH7L2Ffc(@Q10%noO1v?>! z?^55>qvKT{ubJ1Snakh#uZzL|vG@o-9(n2afYpWQKp$QkQRNhFgD9v+ELr=<^F^~M zG98^^-v_m9eAA~b-4YS~_V&z2zNzK3KRpZC(WY>Kp1Q+aKuC_~U6Ubo3sf2RIbZUxqU}Bn0?_Vzy)hB*e7&V_AB#RtMK23vlAzMqoB*vWwW%+S-~M_bX`B5y z_x|wP<_vcDc&$fj@M!H~`|S#t5bHZ7_AA1~4VUTkJlUAsW9NC}N#{9VWzZFO{@aqO zk?ko{Z7*xz^oBatoqF(Ln7n^LIZOp`38}PDcI&(N*O%HKD@iFF@ewVv<}YatD*EGf z)K88jK2!0^_l*!?6JE=GSfd$u5AvomfvHT=QEP(N$on9RxBqkpEgFHnq^*;_89t|L zt)5fF+!+8j8_%YgDbwuut&1M__&6_@LNoUU-DVCjsY24RS3_wvnC6 z_lCsvdV}LZe3yKzY~+V^W{a6E|7cyifjN(Ja+W#HrI6YiQvXrQLJ4ymLE+}(qT z2p}2M8KSzy=!6l13#bzHHyJ8oT_l$2-{j0}sEPQOV`NBOBV{WfnW6&jU%e`3hC9&aJv?w3)>! z861A?9djeL!52Flh$eoio=*ki{V=Dqhu~#ou&i+f$C2SB7GO~DX12RmR!Wj$Ggt3Y z^u$B*+DP_?ObfjAeiKraf&EEzbXqNw$hrPKT~eW}t^3{mb4f!kc-hcsROXGRnhKCd zTwC+C+TkjXbJKDTKFMeA$os1En;5qS_F?}XWLx_W#VvjAr-6Gm%^)XaaOGX1XAOiu z=lj*Q7mU|EB@JBge~@wM4Wo_4ielvsaZ{Ea8>-f(UG*G&=P7kRfnZ{{D?!s0Y?dEh z8xYUA*X3tj}v{^HnZmlU0D?{JS!&1eWuhg3!7&(FH{GkJ{5#RKf0X$Woc>o#`M}H;dWM!`c|5=t;Z%x<37t+3SUwk zP`YgzMFQ({+!zq>XnDZJO@He|w!pnEsYL!;#}CwWi^VYRN6iVUPhtc?uM0P#PS|g4 z{RH+N|Hq@>5;G~1xo}&LN_w(ee~R#P=DRU%3A@pF7&-Bj&nlGPtL(gLyb58le|7-; z**lI6RAwN5rUC3(UBj#n^mNbBa*?-p8w!tT323Q~GlID>*?+Hts-OFqy=&RUYAw(W z3MoyFArVyQBT8ztc*~^pHarY0QEK`t&wgS0e)fBLt29^Dn0*se;h%o(HVYPs(#NSM zi<|Y$J_I^c5n%$TFi$fT5n%Y66F;j?o9Rbk9lD5%+MrwbO@+2g@KX?q2c%|fQ;CZ} z(p&XToMJzzOVjllqpIKjRPd?W;;7+sc7}iNru8eUuS1Di%t2^+Ai#wJPv+Rab~)YU z-6x&6b&f|aSN*t}SS%+z<3Wtk-*FWQ-JH_AyZbQ8Da3WLiy0;gzK1N+i5A zhn@^j+id$S7A=*)!z0$_O2v{bOUTVK!-`7{t{!$>Cm&n0o44JOns%O4?9OVYzGaaF1fnc#%-=uYOEFxA_g7Yg zfO}BsR*Lv!f9*s>5%-xj5K_Hd`dRn$Rga(JVFk|Lj=Mh3k)K**&N+wFQ#bGXoUhoFLIpJ&I*ToJy@7Ve z0)ET;2CvJ?8Uu)*WuiHLV!uS|GRgc_kB16dM-*cVTg)CbU148HD1qU^&y=W^u5-V0qmB$nXO z6Tarw?9#FpdTZj$ycaajz<$^tcBLmj1WJ&*OjNv?cJ_^#>?!y2*8ybo%4QuSTJHgQ zL10MFVK-DDvB08W#y#h$eX;G>*86E6wNJ<8ay3SILv51*on)D-yj_+^E$yD(Pf_2z~0ALP?7j&@BCg7CQpBv4-boG^f1um z0q&-@zIz5PfyRjYIQV#~d#zlNU>cE`aENClq0{T7wu;13%uNfObLV6;)b}YNk^lGG zzMxv{VqTX@nUuJf@5M}id20;Fedz8U0`Y@}eLtsXJ+7}6174&TGya;>ns3$)r$oJg z_=u)nG17$%rshg@XudwZ;M^|NLj_d7mb{!DqCk+~+VCNT2Bro6bEGf7^O{j{k}f$> zd~C|@<&t5pwuz))O{C>O!C>Av90{ZdB6Qvf@HE^z0wx_%3Bz_nkpjl%`i*N z!_9?Qvkb*rh$4Msx~wZV_&k5^t$+FQ?SlA3$8nVzS{i99omI2#J_*dcnHnUrePsCW zqQXv`jby3jDM81ku==TI_>25A=V{X7>8Pc@;V=A1jAg2NK~Pit*ozOhWt^VxTroCS zRLf}5q}6vjou0YQt$S!w>n2}YoXxel!|h^d;>|7w`YK}eX3&dzpnhfwVa@Y; z!(}ts|1y-@a|eUTcrXAYdcV=<7B^S)XzU;8j(Cfwc-An}yz~Cq6QH?{?FujF%ijd3 z#%B)Q$__EK8~Ko*&!AeBk7>Bf@{($WMHK~R+8l$ltw|Ts1RYL24VzsAX8X_e>AS-~ zzgA(s&sA5`qIXlDxJ#+&=F_HpMsN2*kH>ak@Na$beuBBIl;y{@4c+18-#uAV1wvNa z89Ij>L3#Z3%$brnuS<&vFRs5ft@+p3tV3O7ugERoc5mA!Q&>AyKrJTl`~me8;52FB z&BuCzlP4>~JimpCO!Ti+alf9B*l#%N4`*D}eG{hXJeZ(59bzsJ2=MD+s;KI}vUzRehwGACpF2zBeY`)Gj0xe7ymL4s+ZdD(@cFxH&PDNf)aDCd za+|B?$t47I9g+yvZ&F(M^Je;G5A@mIZiNx}T|4F0Co9vFFF#K_ zEE-=GBp$!k`zpg()<<|HFuVc~{{goQI!cd4rLh`d_wV|w&FUxHe;G4lPif5+7e4@3 zTh#Na(tbDaf}Tps9Bpa7L)mC@ig|K9YUzvLnQiCQTKPsbjJrnP2kldt!WZ3DX_R|7 z1wAfRoYxwvvKsVJ_A=z%SfRB|qqWb%Xra7QKB#!O`@w>@X~+#5ktz=Zhguds5Gq@4 zdu~lrZalDaP|@P<0p#2I)SPz7e17#ee3D1f-?9t-$jc$lVI;kT#&1>3lxDMs{oj2S z3UAWj{iBc5%bI`FChUxx-&9EbS39?F&1NL3K7XaTPUp!u$SEo2 z*78OurDIjq4X6j{LD%oxI{Yvj-~WcTBJdn9A=OG=EXYDTi;x_7`{%OGXkcN*9sCKP zJ@-+GB#Tiqi4*I%Kc+T~y4oTBLqGaR%&oMRAEej-|5yv@I`@m(nBWF+ff1}F*EsVG ztR1PTV{j=ipn0MOtaYU=7UR&T@^=1Jt5&e~m5S)%<;CHAugqYV3f~trqy;W6N%jDoqy@{_s>r!=|#~j&{t~xvT_Iq;v**lo?AC^queqfPSUv>Vn^ATC17%RZE9;HDIvbGwn*sJy=x_ zeo}mItg$FzO_K09S^B8?neJ+vTY5Z2_|>Ajl*4C=TiTjjd?mq;SZqqK9i0~FrQBnVc5TfT&pR0<=WWMo>u>nixbCw7l_gZ))w8iH<{BFkKt z&CZDwj_ypmR0n_!^{GzXqjX_cvIPuh@ZgV!#w+!iTzi|R&mxcR376A=wC~)qI8)TC z;Q0_vqorC<5q49FlGAs@ED_tP6Suzq)Z^O;F@K%uVVT(jl3~C8^*$Xy3VG^;2MqbL zO1EBn)K=!+qxW@Nb8+Spn1w0Z)dPvWFj?ux8Mbby4Y zm*3;!kxR|IW)bGTe2Fs|99M+@3M!?^J_JNryC7j7@N)Wcq4|085@Ou$ zZ0+rx!XHA8yx@QOr@^|8XI3YaMa0}q54eZe%whrC-cf%Xf(%N!=l_&G6p2g z8wGrxH0RY=)kap07wfD2g07R-ipxQLH#%P|lS4oM<1;t<;uPi2(mvXe6*EFd_U_kU zm2ShX_ng-$iFFgjw7e=_h%DKEiA*1WMyp*slArWeiCXnt6@G=$B`2c76P~)mGZ>($sa4jR|+tR|MCB9x-Mouu?vn9XGnCvlyRS!+NQ>ETftu5&y zU9VGF7CerZkF!hT`08=Z@6Uz>nyEL)mU*LK5Pm@CR;c-5WUb z6MLfbE~;dK4p27Tiru?T_YnbrHd2_un|5TQ(upx9E{X~!n-g)S4)6f<;Uw>+<{*q* zC`1+?=G9>WZQrl{`IXADIbN;Ykw`Y0das#_(Fxe=kG|r)Wr=hfk6eSNEDseMB>K@^ zQuTG`1?jg0FaNe~TQ?rgg}B2qth%;Cro#-|8EI5k+Lq$=wXj&+Xwn)>W8bZo`xXB2 zWcz`Pq207lB|*WUDQ@s*ruFc!L)o{;B1ZIWZR2H>b?e%mO6e%RvB7ji`^}}|! zlC^sDZn3t{;@I2diqXC>t%f?kR^=S-Usd058?%fZh(BY*4k5ydQhGNaUCl12h<#K# z!bntQER#mOS7N)kTKw!+bAZ&V-)qW|uCOxB)-bapHX&}>PA_)*?;WdM#A%~vQ>};? zG975UrL4p^u>nlpTz)_wV%TQfbrb@BVo&n~E_NQhY6h+`rS-N7@}5gs#h|WnxSR36 zmY7R(ly7V>mv}*1jiF`7lEv z?T2r3x!%q@ce)mPN_JOUL;vyAzq@9tsT_$?a^#HaE`c?GUDe!_w#y8ZmK!JAn0{0@ zW48iQ%mwK}{%o*gMmik~hfWnRJqQW8%NDB{r)(DVij=^=1pDFiSTouH4;S=;xTLAJ zIhJXK*ZjJHEQz%@7-$McEXzB7xN87AP@sU-TNW4 zW!z{f`u;q0Ci+J`fTp-jTp>_6kZ6P_t`U=yN6KfU_wb@@r`D1I>EWrh8^;T;hIu?_ zJ=6<#jbMp*ao0%^amx6v6c68!dpFH;E)RWSx~6}63Mzd4E`|lQbY5tp*=q&YXgTdM z9&^qZKp3#K~Xed&$;d@<>v=1Ir$QKu(0 zE2Si3F!@UOs7nl`Y5v{1;4ij_F8Yr;Q>LI}Dw9nij=B-;YTu`6b zHunnWcS1u#+A>&Zn1;COL>MR4h$;Ic*Vh4K_{!%bzron@HR?WOrQWP`eutMAG;PGl zeR+nDRHFkvPqR-vE5y#=&aN%rk$+tZQ@)GdY0y_US7zV^qKMq4FZdv`Fbfx%Kq-+@JinG^A}pAybvy=f`Lxk~ zB;ZnbNuk^RX37h6&L)=cqvMW0c9=;uV}7B!6f#vm9DJn1?cyWC(V`G{$m)8=BX918 zUmtmKL71saaa}WX%v^U$3C?lCo}{1=(9K|%G@A|t`r8Jq*hj{|+rU}Agx_1DYF>Hd z-p#~S@BQF6$JnojbFC^mea6vA!@KdoLq+-wmGxM=XSvpsLeXQ7wLZRMA!nZ3Ht&aT zJ;?0GFV|}h3`F7A;IT{3mXMgru@5MwJ<{6YJXS79I+#Ayp<$OJNJ-fVRXpm%nh+t2 znfvSF7?7SKJ`^J`K#AA4#oDIiH*xtMaZL^v1m!L1!rLPZO|~HevPH2*d?iY!=Iqll z9ZbW^dMUqEgfOp{bxRgjR;fNdOq3hP2%Bn_Rx3Ct7&->Di(XGL9|_HhM6XevPRrBw zUtI9m&(ep9IDzZb@}DSqA*$+%meMD}-YBibHk<*kK>Q!`}K^GgN}i>$;Cz>K+bNB?t*??2XhbW{3}gRyI+ zeJi^YC-x1~5GlQVAbp0^tp#XN$tu@ZaSK1*_0g&z<br+^kpFWTgpj>gK z7!2Nfqbsxs<=Q!L4s%a-wEBpZC=tL2i))I_`WkNx)4BOdrrDlJpjRHbI<$lB=wyEK za7q?pT~8T@BT_4dnEJ0ys)VX-8qyfHTzPVIAn(5L;_#9-Bnp(~gc6k7EBRGPr8nqD z;fYBzI0ZpcspBJ{1fRB7i1OI2)iX1p4sC|!Z^$WFi`9AyYLFam8xDlLSa`@ZanS@T0#7=+(?YA zQ?RjXe)#rHaANue1C&YHq@K+Z1I+Om@nE$q%w;P|G||S_qIJe3=0x@s@P2l@Uuk&< zG7(P~wbGHG7-_gl}DN0$k%(oVaUo53M2srM+H{Y}Pvrua>fvY_TY_N`wiX z6fj(VELweWhV23_P5YphlZ7xa8FB6mByA_{nrk0&@aiz`Ib4BF5wRFE%^Bw}3?+tk zlWw3M;zW4(f-su@cp$Ip0?11qWl`Iplr$@m;Y?xBy^`W=BRk0aT;gmpy55PAnaWbf z|DiXV*CrNlQh9GF(@}dbW5UG4JXor|PN2wU)3Ru^^b+EO&TKqKPD!vdh4$V(s}AF4 z!IIxwjEHAtMinhA&2@{zO~txAl?v9pO2Z+7?Kwl%P=N5@n8%R3X^Q zFTuzaZWL&HgS+f3kN3OGGt^pq3o%jQ9w0P2ViJh}AYe5ui#;`-_nf>R$@|g$fHH_o zAO5a}@r~U*f*MPxw(%nD&3;Rp!pZAoSj8>oB`5x8Yl(1g`&6`mJbUZVa56TOIN5wp zh^3UF?i7uS9??ruWV)v=|MGr(8yi~CT~GX#0NIU56a!k;mN<{4oUed>YO-k*^)dhr z>S(Si57uuQt_)vjeDUe)5U8S^yW4anRM>j%n?u)_&vaLzGopTm<6oKNcy)Uhr`xUx-L-`KOh($8Q>oSPf3-!dh77MTos+}O&m)!Ze$r~vpX)oz zu|hR(>uz=ZK(~EieJ8MeooLIf>j_d*GNAtOa+N(*mtNBWD{;@F;R>l~3QkmN-!PJKp`IONTo5 z0aagP0R@A`GY*GT)2!IHB}%aQYleS+Bs-FUrms?eA;l_STBuAQE@<4PR|RLC{@mxrG|5rWm&` zlg;SYatpMoY-c@8-#uS2K7-1CDa@^Y;_^B;$AiX#RL7@9N4vwF8P7zLreHmd^qP_X zuw$pb-5BeV-$@me46l7DX9l>@O4U>z?sfnIWsZKuP!P_NjF1d_cMDrNsm%Cu-FbI0 zAyzm6s7FarIb|ZhE;#IR=fNJ~F8L8FEi|l0y4u}TYLze9Jl&M_Mnx^FSmRiAyWu>qXMP-g&!?E zop_-jGW4yS*yh>M-gq-X2*{?Z1NWN|x57XXQ7i)t^CTK247-b?ezL;i9O^}Q1$NhK zSn6xI=pI-n(iZ4oh@;zP8Lc}uu`hnn%YLWjN#9~E;#T8l`Q_IQZB+g`V@$XNqhp;` zoBn8blJ+L)z$CJBl8EaKe|6cQBw>c)1SsYi#{6o|ZhV+LrRKV(?losIzrAJK-ttB7 zXMnCV9~6^~kou2eDI|XQOuZeqRczJYZU{vQ?qmNjzxIZNTd0jKiyH=ejYwc#zf+K> zk?ZuroHF+tm;;1uCiEraVl8m{48Zvj0^QRp)zj!bRcnBM4}O2W{>MTvpki6Mnq?^n zz5`aN9ucG*V-v*6$ zcZ`rL3y-f77S2zV`SyMs7Z{L=&zYYpxP8uRoLfuv_Idy%R|IQuic zSx0Lw7Z|Q5NfK*yHl6fW?|JPlZRmnNaox|V6>qs#sf*ki!Oo*c&FVa~@D}syJ;fh@ zyqJ=w?mBM|AFbGEwDl63UB%Yw8C>py)#8><8q+?z}H1iriV?-TI{(`o8(t z5ual<)91E{Ug*oIIF$oj^~`A6E1zK4fc;_x+vVr#pZE0fVWCng{iwT}oo`|A?p|L` zTtmw&Sd-Vjeseq<*xN_qcWChdlyhl-MCp{3V3z6OACFo+Iz`XUbbI;j1iL0FAV5DD zQH&&xmZJcWs202m8f^_#$TEbb0nE1c(3`IEa#;I_)csalYP>@FBYR||k;QZ6ts_@5 zB#{fh-lJRP>)W281oH(gHg@-y>Y3%sy((^BX{(<@qc35NSnuz-Myj$k?(6q)$EY0$ zRPC=#!*lNp+E__CW!F)Lily~uR-!c&YW5TkVJ+v}(VZ^cLilwb8cXj+A~c=;kLN;t zA%2)yqZb^!32jfet!hXrpI>;2%=)m$vRTTGUwPo>$GrA72=~XZb@Gi>JV1SpTe0cA z*M9aXf*MZ|TtiW+yaY4Y$`B%oC<1&oS~Mz;lRJQ8U-biLG~M?bLP5B!6ZzsUJ1wnO z_Q&CFSHE??4qYou0$1&J`vMINK+488)e@`^z*GNt7JT#l7pqd&4;*4;iHbdt zX2l?WfArXCe7U&gj}|VM(p}5%!6{SKt6D=bZ{iEVxH{{QSCrW}<-4Q)RIj#|<+(Mp zU)fLY1^-wJqJKP9yEyhWN88o_cxKv73$q5etMhb2WJF)Z__;M_ExYg7j1KZ% zv&D~v&A!=coboo4K3>A!Nu-U{E(MWZ%zf zgJ5nC*jQFwymHgDCH4cOGX|HAbdTh0SSToUa$s(Hz9_9JnW7bmJIDZglvI={fZ?7VEtx{5-$;=`Xd8xgz6 zec5OSZ$RFy`@t0P;7W1ihv!drlt+6yQ9_|8hxNIKqOh&2F#QK~Kc$Y5&2cXfzIa2x z#j+uYJpYtyX``|p*A|#TG*1){GH;xItPMd(r~Ko2VQgomG807&n_%SqWa!=zUbtMc zgS0M@A=jS&P4rS*@wh{t0(V(@39jHC;Fb^ZCi9Xem_rq1egAkY;NFKo`mGWvT*lZ9 z17&x9dU`{c#mwK#&UJ7Ib$_U>5{*c8JN2YKe|xx+xCdY3ce7NV((oyzH*rQwgSp9> z(m6i2Ta5NuE$Yr>@@{`*^*$DH zdn0sVu4lJDi7CP+AYy5)Tr<(T#f~(g1E`tk!RzOE-ix6M_4bB}E#u&wwyFR_b9bkf zOqq3y25Xdi;A-S;hg-|neV`>ult&}Sa*%hqO918OF!<^JymP;z|3d~@md^q0K=;b@ zk>_%=X9pfotKD4*^~gLS-oM}xPHC_CPSN)>mbE>L3)q=v#r;4N&YkE)v^^(N)5Yi1 zbXyfqU{c~i07lm;{>owmugH%2jhw0C4=*FfPMG(Vx9q?94gjTS+I@mxRC`%!8@!4r zCHpQ?Ov3bv@~yji!g%?pZ2sdh<5RUG4*tFC z8l!1|D%GMM%Y4{ef_0Ko_bJu%Dxl5pQ{m&>0m2^{HeVr-;1@(kT3X)VX=zpZFIgQE z@-Wk%G@G7S@@EksPPD9#_~_ln!-_Zj;wH4U8W5saVDoN)o-Ta?{ISdEFBE&|8#dJC zFYt!CNXH61h+&|B&xGO3(kBefjOo}%Ja9`_BI$;ifnHPKUaulZM5JhSqT#M^d+6@t!;8H>iiF+u zU9ex5G{Cu`IR%x>$BBlE| zeWdSVrj4RLCoWdS$kv_gdRkm!)Md>&UtAieS3GmwON+(doX!m13k8uHDEosg?P?v@ zA4i`s5xMk2(PSN%GVlkRndI-pGAStx4xU|*d+vZ#a zjCM&WQ#lfUupTo5Ie zedV~0A4|KAFFei_=T1kR_!K#Rc*N+an`y~@$*m$kmA32C8{cgH{!ouE=ETO^f=`OwG48&sa9%rmyrA7bViK>VwO=%eAa_wRPzGWtNd?R`;emKGg?II-R83 z6LB(06jIneru25PdP5fcmTRo-fAmZD${j!Il^7Y@5fKi4=N@#qhbbwRtRtyk6qoDk zqlxB=l-7 zFXlu&$qj|(VhxI)E3Y&C*(77&)0D-|;grLT|2gaiq&H}yRTmy>#-!1jEV<{J%q zvp5UHiG?r>$$1&NJvv1B(ab)gB*pwLwI@Ad6}mAaYh)p(1N*WcveidrBY8iCu(2+K zQzrJ!$~$+aS|gR`__|*>IcOdnikBP9Y7-^jE8TNeQW9?rd!)P!SrHrznr6U*)(6>l zW8qRBtDEhuy0(qw@uRDO@L0$iT#8#7FarWuRVIZW?FpA~2qivwCd=ZUo=KSXn%ESg z!EX+NB~m9gpwy_oP<4zw>ryIzKJznVUCDNNWTB;`>-M~p8i@k|FicO@gEWNzqM?Rl z!4=`L#}!(IKVsO<&lbKLddE!P7I!!2{qACnem_1gQgV5aG0Ht}WnlJ02&V*f+Ahg1 zkijXRK>V#IFU&7;3l}#CiE3I0@H9-0a%Yz0q}|w=Q2aqVdheD{)RgaWA@^gKgL*xc zdC$xTX5<(Ox{^8%A-hDsHK`JZJqHon4t{o_M&biXZU5C&fFHE4e1q#lLqfhWvKX$G zI)gEm3X5#HOK%J7XpFOmPq^LL=5^nlQ?o;X+~VUSUGWHCW#-e~HRGfBe9x7SeNSnI zuHLeD;FvOp#5VElFc?-%kZh%p^KwM2C+e9Hc4eO4MFiZw%xvW?eo$nMa6EAYQVZ_% zdy(HJ0uqcuv^jzE4VNz&wx3u6UsEcwbJY3?H_Zz56%6-SRS5f`R_OknGPf~uNgoOn zX3cyEoe%RU!jdQ+p`Y6K9w^4pZB6j^3F5fGEpBT&(U+Rj00%2ij&|WdX(1&p%tGAA?1~9t zPwxyE9!{QfEj&J%G9{_yxf~cabh#1W)~s{Yl=>hw;RL_rS!>vRet7ud=>d>mhhJ}D76!Wt=6b(wDGDEOxk7f#G78i-A{HTJfR3m2wvFO=M+uv*6KVLBI$imY zH>;^gh`kS*slv7&a-RzIzjTKs;fsZdQnU#R*gpr3MfKg>H`|q-4mcOW`NDF0xx_k@ zMa$KDbX8pL7TBVs4JyB~VA8?S%-}NR*B-_qw4{cRCNrU?leYoSxDC~hoB8AD{{nkD zA|v~nHTgXQmXZ->(LRj4rFfe{uCj02z#K0wJ)4u9lU8;ElBQ#uX`8~%>f6ATjar%- z2%PBvKc`NN#Z@n#r=E6R%2#F{{_b%V@P)3g#`9ka$?hAXX6g#IO}|lNe!C%FyzMbX zf_UufGT2pT)WL0jEUF`l&X;hzP_|YlsN%^yv(6=0%L3i@6u7D>BYAi4B(Er9jE=R; zbTv^Domr0LUZHd9h-XZ*!b7=O(L@fRh`vg5Q3AZy-Z#K(N>H{0hcuzEVfuKsUa%-} zrQ+GzOk7b}4~;j$j7zd388fy+u3&H-|9A@3=7@@_+}BWpJlajk8g$8SkNV=ERf+;i zM6fK$3!o&ZTr0<_06f0-l1tpE;s06ik7osG!}BxfAJ5hIeAMFgxl7YF)$tik_G`*L z?QiFtXh;3GhO5~2=@Q$MIQOCy>|#c57-TIV9a|RUf*h8oa|<2tuSj=pb}PPQeKR$4 zZN1BW38>5VqrKl73;x)ssD-@3y9gFUU-zFI^4ke}%)1=9GS3JoQcmNP`g3eqP8Jn> zVGgCuxlWERJ89_67embx1H(H$3{6rV={+kmlV$nh^`aENCh?Hux$%YT-U|5n$!jll zGAQR|!bH|ganVr}!8A4!dy5Hr&3QJoW*EY??X`LgqfDQ(`~BA=M%diGCo3%Jk!T>6 z`4FfKRLQ*BwKrarY>AHWRq=_TJT>^OXYQqoioS}s4G9ZjiMu4lBL&*@Alq2{B*SIe zaKBxHHR^#I3>$QlD>cYp8=qILRA07xe>9jbJr<#^6X(??)U^ip6cijvLlp+Y@5B;| zVO~o#X6O=)K1zre^4j;{_+Dd7ySLe&J26Etge1|lTNE&M*otR77xt~PKq4w4eN7%RHL@FUDn6J z!-|)tHNxHXMvBv%GMFwJF7CvJC;8a6r?yk#JO6x$xGS%~-_kHWr)V@Pq%|yI{EkA#&4#5Gi_cW>L#~6v z4B!Mb^V5f=vW^pKaRONlsGX=*_89q)UD!C~GCl_RQ-R^8bmk1Q!nbgw# z`XzP@s|D`CQvMqIRM)`tmz2tF(Nec>#vSnHw>X8LMEi>r8YR@SWR)qk{_b$6|KT)C zMz+C8OExrTj+$_oFgM?7&yukxGQTsI3wVK$T@R~8aP4Gvec!SCj(R8nppRijaSIEC zS0o9NW?6TBZDE{!Nn7Ge*|wKyNB5h}%$&aY`Kinmtp=8%9O6F&0+DH$G5gZMy%?v{ z$4EA7afiE1Ua!Bxn|Jy4?*xH~NL2L4mKJQM9t=&J%!Y9F^7DSexRsWUzxr}m1AQh$ zT{KRYuCu8exfuU?_jBhYC#DVnIfIO3pJz7KOJ*TmYjyk=XpqkDMg4A7m48fba#dbm0pM842 z$YrA+$v`TN?DSomU!0tQZ5v$RE>8v!aF}gT*qGP>W?)hcyNwO|jsLLgzR}M|h3hhI zP7YFfKisVM5WEjJcWhQbpw6xNT)w@2$CEXSms-Va_Ky0DuRp<26Q!(P4=6>Oz{M+# z>8Z6xM+}R#m_{i_nKTL7Rw|)$ezJsA8SDhYFe6D1eAO~ly!*LONVth=ceOCBOW&v< z92EbbnZraNQap4f2O;>!oQ{R=wctBU?6TP<>BHpJ+OYbtUHA*uGDZGnTbak(yYU#M zb+1=1LzunVr@wn8KP+4Ue27#JjRUB3^bt1VMG7Uj>z-Ex+GYdBOpCr1y#qxKYsB>F z8uG{dcw3rrpQo_Jc d-(xdMxWhKiLG;1gzA~f!8r#4!9;x|n;(sDi7N`IK literal 0 HcmV?d00001 diff --git a/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb b/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb new file mode 100644 index 00000000..821381ac --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb @@ -0,0 +1,715 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved. \n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Train, hyperparameter tune, and deploy with PyTorch\n", + "\n", + "In this tutorial, you will train, hyperparameter tune, and deploy a PyTorch model using the Azure Machine Learning (Azure ML) Python SDK.\n", + "\n", + "This tutorial will train an image classification model using transfer learning, based on PyTorch's [Transfer Learning tutorial](https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html). The model is trained to classify chickens and turkeys by first using a pretrained ResNet18 model that has been trained on the [ImageNet](http://image-net.org/index) dataset." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "* If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [Configuration](../../../configuration.ipynb) notebook to install the Azure Machine Learning Python SDK and create an Azure ML `Workspace`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics\n", + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "Diagnostics" + ] + }, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace\n", + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep='\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or Attach existing AmlCompute\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, we use Azure ML managed compute ([AmlCompute](https://docs.microsoft.com/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute)) for our remote training compute resource.\n", + "\n", + "**Creation of AmlCompute takes approximately 5 minutes.** If the AmlCompute with that name is already in your workspace, this code will skip the creation process.\n", + "\n", + "As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read [this article](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-manage-quotas) on the default limits and how to request more quota." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"gpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target.')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6', \n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " compute_target.wait_for_completion(show_output=True)\n", + "\n", + "# use get_status() to get a detailed status for the current cluster. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code creates a GPU cluster. If you instead want to create a CPU cluster, provide a different VM size to the `vm_size` parameter, such as `STANDARD_D2_V2`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model on the remote compute\n", + "Now that you have your data and training script prepared, you are ready to train on your remote compute cluster. You can take advantage of Azure compute to leverage GPUs to cut down your training time. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a project directory\n", + "Create a directory that will contain all the necessary code from your local machine that you will need access to on the remote resource. This includes the training script and any additional files your training script depends on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "project_folder = './pytorch-birds'\n", + "os.makedirs(project_folder, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Download training data\n", + "The dataset we will use (located on a public blob [here](https://msdocsdatasets.blob.core.windows.net/pytorchfowl/fowl_data.zip) as a zip file) consists of about 120 training images each for turkeys and chickens, with 100 validation images for each class. The images are a subset of the [Open Images v5 Dataset](https://storage.googleapis.com/openimages/web/index.html). We will download and extract the dataset as part of our training script `pytorch_train.py`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare training script\n", + "Now you will need to create your training script. In this tutorial, the training script is already provided for you at `pytorch_train.py`. In practice, you should be able to take any custom training script as is and run it with Azure ML without having to modify your code.\n", + "\n", + "However, if you would like to use Azure ML's [tracking and metrics](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#metrics) capabilities, you will have to add a small amount of Azure ML code inside your training script. \n", + "\n", + "In `pytorch_train.py`, we will log some metrics to our Azure ML run. To do so, we will access the Azure ML `Run` object within the script:\n", + "```Python\n", + "from azureml.core.run import Run\n", + "run = Run.get_context()\n", + "```\n", + "Further within `pytorch_train.py`, we log the learning rate and momentum parameters, and the best validation accuracy the model achieves:\n", + "```Python\n", + "run.log('lr', np.float(learning_rate))\n", + "run.log('momentum', np.float(momentum))\n", + "\n", + "run.log('best_val_acc', np.float(best_acc))\n", + "```\n", + "These run metrics will become particularly important when we begin hyperparameter tuning our model in the \"Tune model hyperparameters\" section." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once your script is ready, copy the training script `pytorch_train.py` into your project directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "shutil.copy('pytorch_train.py', project_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create an experiment\n", + "Create an [Experiment](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#experiment) to track all the runs in your workspace for this transfer learning PyTorch tutorial. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "experiment_name = 'pytorch-birds'\n", + "experiment = Experiment(ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a PyTorch estimator\n", + "The Azure ML SDK's PyTorch estimator enables you to easily submit PyTorch training jobs for both single-node and distributed runs. For more information on the PyTorch estimator, refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-train-pytorch). The following code will define a single-node PyTorch job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "dnn-pytorch-remarks-sample" + ] + }, + "outputs": [], + "source": [ + "from azureml.train.dnn import PyTorch\n", + "\n", + "script_params = {\n", + " '--num_epochs': 30,\n", + " '--output_dir': './outputs'\n", + "}\n", + "\n", + "estimator = PyTorch(source_directory=project_folder, \n", + " script_params=script_params,\n", + " compute_target=compute_target,\n", + " entry_script='pytorch_train.py',\n", + " use_gpu=True,\n", + " pip_packages=['pillow==5.4.1'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `script_params` parameter is a dictionary containing the command-line arguments to your training script `entry_script`. Please note the following:\n", + "- We passed our training data reference `ds_data` to our script's `--data_dir` argument. This will 1) mount our datastore on the remote compute and 2) provide the path to the training data `fowl_data` on our datastore.\n", + "- We specified the output directory as `./outputs`. The `outputs` directory is specially treated by Azure ML in that all the content in this directory gets uploaded to your workspace as part of your run history. The files written to this directory are therefore accessible even once your remote run is over. In this tutorial, we will save our trained model to this output directory.\n", + "\n", + "To leverage the Azure VM's GPU for training, we set `use_gpu=True`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job\n", + "Run your experiment by submitting your estimator object. Note that this call is asynchronous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = experiment.submit(estimator)\n", + "print(run)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# to get more details of your run\n", + "print(run.get_details())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor your run\n", + "You can monitor the progress of the run with a Jupyter widget. Like the run submission, the widget is asynchronous and provides live updates every 10-15 seconds until the job completes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, you can block until the script has completed training before running more code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tune model hyperparameters\n", + "Now that we've seen how to do a simple PyTorch training run using the SDK, let's see if we can further improve the accuracy of our model. We can optimize our model's hyperparameters using Azure Machine Learning's hyperparameter tuning capabilities." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Start a hyperparameter sweep\n", + "First, we will define the hyperparameter space to sweep over. Since our training script uses a learning rate schedule to decay the learning rate every several epochs, let's tune the initial learning rate and the momentum parameters. In this example we will use random sampling to try different configuration sets of hyperparameters to maximize our primary metric, the best validation accuracy (`best_val_acc`).\n", + "\n", + "Then, we specify the early termination policy to use to early terminate poorly performing runs. Here we use the `BanditPolicy`, which will terminate any run that doesn't fall within the slack factor of our primary evaluation metric. In this tutorial, we will apply this policy every epoch (since we report our `best_val_acc` metric every epoch and `evaluation_interval=1`). Notice we will delay the first policy evaluation until after the first `10` epochs (`delay_evaluation=10`).\n", + "Refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-tune-hyperparameters#specify-an-early-termination-policy) for more information on the BanditPolicy and other policies available." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.hyperdrive import RandomParameterSampling, BanditPolicy, HyperDriveConfig, uniform, PrimaryMetricGoal\n", + "\n", + "param_sampling = RandomParameterSampling( {\n", + " 'learning_rate': uniform(0.0005, 0.005),\n", + " 'momentum': uniform(0.9, 0.99)\n", + " }\n", + ")\n", + "\n", + "early_termination_policy = BanditPolicy(slack_factor=0.15, evaluation_interval=1, delay_evaluation=10)\n", + "\n", + "hyperdrive_config = HyperDriveConfig(estimator=estimator,\n", + " hyperparameter_sampling=param_sampling, \n", + " policy=early_termination_policy,\n", + " primary_metric_name='best_val_acc',\n", + " primary_metric_goal=PrimaryMetricGoal.MAXIMIZE,\n", + " max_total_runs=8,\n", + " max_concurrent_runs=4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, lauch the hyperparameter tuning job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# start the HyperDrive run\n", + "hyperdrive_run = experiment.submit(hyperdrive_config)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor HyperDrive runs\n", + "You can monitor the progress of the runs with the following Jupyter widget. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "RunDetails(hyperdrive_run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or block until the HyperDrive sweep has completed:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hyperdrive_run.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Find and register the best model\n", + "Once all the runs complete, we can find the run that produced the model with the highest accuracy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "best_run = hyperdrive_run.get_best_run_by_primary_metric()\n", + "best_run_metrics = best_run.get_metrics()\n", + "print(best_run)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Best Run is:\\n Validation accuracy: {0:.5f} \\n Learning rate: {1:.5f} \\n Momentum: {2:.5f}'.format(\n", + " best_run_metrics['best_val_acc'][-1],\n", + " best_run_metrics['lr'],\n", + " best_run_metrics['momentum'])\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, register the model from your best-performing run to your workspace. The `model_path` parameter takes in the relative path on the remote VM to the model file in your `outputs` directory. In the next section, we will deploy this registered model as a web service." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model = best_run.register_model(model_name = 'pytorch-birds', model_path = 'outputs/model.pt')\n", + "print(model.name, model.id, model.version, sep = '\\t')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploy model as web service\n", + "Once you have your trained model, you can deploy the model on Azure. In this tutorial, we will deploy the model as a web service in [Azure Container Instances](https://docs.microsoft.com/en-us/azure/container-instances/) (ACI). For more information on deploying models using Azure ML, refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-deploy-and-where)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create scoring script\n", + "\n", + "First, we will create a scoring script that will be invoked by the web service call. Note that the scoring script must have two required functions:\n", + "* `init()`: In this function, you typically load the model into a `global` object. This function is executed only once when the Docker container is started. \n", + "* `run(input_data)`: In this function, the model is used to predict a value based on the input data. The input and output typically use JSON as serialization and deserialization format, but you are not limited to that.\n", + "\n", + "Refer to the scoring script `pytorch_score.py` for this tutorial. Our web service will use this file to predict whether an image is a chicken or a turkey. When writing your own scoring script, don't forget to test it locally first before you go and deploy the web service." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create environment file\n", + "Then, we will need to create an environment file (`myenv.yml`) that specifies all of the scoring script's package dependencies. This file is used to ensure that all of those dependencies are installed in the Docker image by Azure ML. In this case, we need to specify `azureml-core`, `torch` and `torchvision`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.conda_dependencies import CondaDependencies \n", + "\n", + "myenv = CondaDependencies.create(pip_packages=['azureml-defaults', 'torch', 'torchvision'])\n", + "\n", + "with open(\"myenv.yml\",\"w\") as f:\n", + " f.write(myenv.serialize_to_string())\n", + " \n", + "print(myenv.serialize_to_string())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Deploy to ACI container\n", + "We are ready to deploy. Create an inference configuration which gives specifies the inferencing environment and scripts. Create a deployment configuration file to specify the number of CPUs and gigabytes of RAM needed for your ACI container. While it depends on your model, the default of `1` core and `1` gigabyte of RAM is usually sufficient for many models. This cell will run for about 7-8 minutes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.webservice import AciWebservice\n", + "from azureml.core.model import InferenceConfig\n", + "from azureml.core.webservice import Webservice\n", + "from azureml.core.model import Model\n", + "\n", + "inference_config = InferenceConfig(runtime= \"python\", \n", + " entry_script=\"pytorch_score.py\",\n", + " conda_file=\"myenv.yml\")\n", + "\n", + "aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, \n", + " memory_gb=1, \n", + " tags={'data': 'birds', 'method':'transfer learning', 'framework':'pytorch'},\n", + " description='Classify turkey/chickens using transfer learning with PyTorch')\n", + "\n", + "service = Model.deploy(workspace=ws, \n", + " name='aci-birds', \n", + " models=[model], \n", + " inference_config=inference_config, \n", + " deployment_config=aciconfig)\n", + "service.wait_for_deployment(True)\n", + "print(service.state)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If your deployment fails for any reason and you need to redeploy, make sure to delete the service before you do so: `service.delete()`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Tip: If something goes wrong with the deployment, the first thing to look at is the logs from the service by running the following command:**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "service.get_logs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get the web service's HTTP endpoint, which accepts REST client calls. This endpoint can be shared with anyone who wants to test the web service or integrate it into an application." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(service.scoring_uri)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Test the web service\n", + "Finally, let's test our deployed web service. We will send the data as a JSON string to the web service hosted in ACI and use the SDK's `run` API to invoke the service. Here we will take an image from our validation data to predict on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "from PIL import Image\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline\n", + "plt.imshow(Image.open('test_img.jpg'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "from torchvision import transforms\n", + " \n", + "def preprocess(image_file):\n", + " \"\"\"Preprocess the input image.\"\"\"\n", + " data_transforms = transforms.Compose([\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])\n", + " ])\n", + "\n", + " image = Image.open(image_file)\n", + " image = data_transforms(image).float()\n", + " image = torch.tensor(image)\n", + " image = image.unsqueeze(0)\n", + " return image.numpy()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "input_data = preprocess('test_img.jpg')\n", + "result = service.run(input_data=json.dumps({'data': input_data.tolist()}))\n", + "print(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Clean up\n", + "Once you no longer need the web service, you can delete it with a simple API call." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "service.delete()" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "ninhu" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.yml b/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.yml new file mode 100644 index 00000000..09f8d5a9 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.yml @@ -0,0 +1,9 @@ +name: train-hyperparameter-tune-deploy-with-pytorch +dependencies: +- pip: + - azureml-sdk + - azureml-widgets + - pillow==5.4.1 + - matplotlib + - https://download.pytorch.org/whl/cpu/torch-1.1.0-cp35-cp35m-win_amd64.whl + - https://download.pytorch.org/whl/cpu/torchvision-0.3.0-cp35-cp35m-win_amd64.whl diff --git a/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.ipynb b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.ipynb new file mode 100644 index 00000000..2aaf0d8c --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.ipynb @@ -0,0 +1,340 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Distributed PyTorch with Horovod\n", + "In this tutorial, you will train a PyTorch model on the [MNIST](http://yann.lecun.com/exdb/mnist/) dataset using distributed training via [Horovod](https://github.com/uber/horovod) across a GPU cluster." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "* If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [Configuration](../../../configuration.ipynb) notebook to install the Azure Machine Learning Python SDK and create an Azure ML `Workspace`\n", + "* Review the [tutorial](../train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb) on single-node PyTorch training using Azure Machine Learning" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics\n", + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "Diagnostics" + ] + }, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace\n", + "\n", + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep='\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or attach existing AmlCompute\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, we use Azure ML managed compute ([AmlCompute](https://docs.microsoft.com/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute)) for our remote training compute resource. Specifically, the below code creates an `STANDARD_NC6` GPU cluster that autoscales from `0` to `4` nodes.\n", + "\n", + "**Creation of AmlCompute takes approximately 5 minutes.** If the AmlCompute with that name is already in your workspace, this code will skip the creation process.\n", + "\n", + "As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read [this article](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-manage-quotas) on the default limits and how to request more quota." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"gpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target.')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6',\n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " compute_target.wait_for_completion(show_output=True)\n", + "\n", + "# use get_status() to get a detailed status for the current AmlCompute. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code creates GPU compute. If you instead want to create CPU compute, provide a different VM size to the `vm_size` parameter, such as `STANDARD_D2_V2`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model on the remote compute\n", + "Now that we have the AmlCompute ready to go, let's run our distributed training job." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a project directory\n", + "Create a directory that will contain all the necessary code from your local machine that you will need access to on the remote resource. This includes the training script and any additional files your training script depends on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "project_folder = './pytorch-distr-hvd'\n", + "os.makedirs(project_folder, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare training script\n", + "Now you will need to create your training script. In this tutorial, the script for distributed training of MNIST is already provided for you at `pytorch_horovod_mnist.py`. In practice, you should be able to take any custom PyTorch training script as is and run it with Azure ML without having to modify your code.\n", + "\n", + "However, if you would like to use Azure ML's [metric logging](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#logging) capabilities, you will have to add a small amount of Azure ML logic inside your training script. In this example, at each logging interval, we will log the loss for that minibatch to our Azure ML run.\n", + "\n", + "To do so, in `pytorch_horovod_mnist.py`, we will first access the Azure ML `Run` object within the script:\n", + "```Python\n", + "from azureml.core.run import Run\n", + "run = Run.get_context()\n", + "```\n", + "Later within the script, we log the loss metric to our run:\n", + "```Python\n", + "run.log('loss', loss.item())\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once your script is ready, copy the training script `pytorch_horovod_mnist.py` into the project directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "shutil.copy('pytorch_horovod_mnist.py', project_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create an experiment\n", + "Create an [Experiment](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#experiment) to track all the runs in your workspace for this distributed PyTorch tutorial. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "experiment_name = 'pytorch-distr-hvd'\n", + "experiment = Experiment(ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a PyTorch estimator\n", + "The Azure ML SDK's PyTorch estimator enables you to easily submit PyTorch training jobs for both single-node and distributed runs. For more information on the PyTorch estimator, refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-train-pytorch)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.dnn import PyTorch, Mpi\n", + "\n", + "estimator = PyTorch(source_directory=project_folder,\n", + " compute_target=compute_target,\n", + " entry_script='pytorch_horovod_mnist.py',\n", + " node_count=2,\n", + " distributed_training=Mpi(),\n", + " use_gpu=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code specifies that we will run our training script on `2` nodes, with one worker per node. In order to execute a distributed run using MPI/Horovod, you must provide the argument `distributed_backend=Mpi()`. To specify `i` workers per node, you must provide the argument `distributed_backend=Mpi(process_count_per_node=i)`. Using this estimator with these settings, PyTorch, Horovod and their dependencies will be installed for you. However, if your script also uses other packages, make sure to install them via the `PyTorch` constructor's `pip_packages` or `conda_packages` parameters." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job\n", + "Run your experiment by submitting your estimator object. Note that this call is asynchronous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = experiment.submit(estimator)\n", + "print(run)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor your run\n", + "You can monitor the progress of the run with a Jupyter widget. Like the run submission, the widget is asynchronous and provides live updates every 10-15 seconds until the job completes. You can see that the widget automatically plots and visualizes the loss metric that we logged to the Azure ML run." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, you can block until the script has completed training before running more code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.wait_for_completion(show_output=True) # this provides a verbose log" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "ninhu" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.yml b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.yml new file mode 100644 index 00000000..58bb77d8 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.yml @@ -0,0 +1,5 @@ +name: distributed-pytorch-with-horovod +dependencies: +- pip: + - azureml-sdk + - azureml-widgets diff --git a/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/pytorch_horovod_mnist.py b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/pytorch_horovod_mnist.py new file mode 100644 index 00000000..83562526 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/pytorch_horovod_mnist.py @@ -0,0 +1,170 @@ +# Copyright (c) 2017, PyTorch contributors +# Modifications copyright (C) Microsoft Corporation +# Licensed under the BSD license +# Adapted from https://github.com/uber/horovod/blob/master/examples/pytorch_mnist.py + +from __future__ import print_function +import argparse +import torch.nn as nn +import torch.nn.functional as F +import torch.optim as optim +from torchvision import datasets, transforms +import torch.utils.data.distributed +import horovod.torch as hvd + +from azureml.core.run import Run +# get the Azure ML run object +run = Run.get_context() + +print("Torch version:", torch.__version__) + +# Training settings +parser = argparse.ArgumentParser(description='PyTorch MNIST Example') +parser.add_argument('--batch-size', type=int, default=64, metavar='N', + help='input batch size for training (default: 64)') +parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N', + help='input batch size for testing (default: 1000)') +parser.add_argument('--epochs', type=int, default=10, metavar='N', + help='number of epochs to train (default: 10)') +parser.add_argument('--lr', type=float, default=0.01, metavar='LR', + help='learning rate (default: 0.01)') +parser.add_argument('--momentum', type=float, default=0.5, metavar='M', + help='SGD momentum (default: 0.5)') +parser.add_argument('--no-cuda', action='store_true', default=False, + help='disables CUDA training') +parser.add_argument('--seed', type=int, default=42, metavar='S', + help='random seed (default: 42)') +parser.add_argument('--log-interval', type=int, default=10, metavar='N', + help='how many batches to wait before logging training status') +parser.add_argument('--fp16-allreduce', action='store_true', default=False, + help='use fp16 compression during allreduce') +args = parser.parse_args() +args.cuda = not args.no_cuda and torch.cuda.is_available() + +hvd.init() +torch.manual_seed(args.seed) + +if args.cuda: + # Horovod: pin GPU to local rank. + torch.cuda.set_device(hvd.local_rank()) + torch.cuda.manual_seed(args.seed) + + +kwargs = {} +train_dataset = \ + datasets.MNIST('data-%d' % hvd.rank(), train=True, download=True, + transform=transforms.Compose([ + transforms.ToTensor(), + transforms.Normalize((0.1307,), (0.3081,)) + ])) +train_sampler = torch.utils.data.distributed.DistributedSampler( + train_dataset, num_replicas=hvd.size(), rank=hvd.rank()) +train_loader = torch.utils.data.DataLoader( + train_dataset, batch_size=args.batch_size, sampler=train_sampler, **kwargs) + +test_dataset = \ + datasets.MNIST('data-%d' % hvd.rank(), train=False, transform=transforms.Compose([ + transforms.ToTensor(), + transforms.Normalize((0.1307,), (0.3081,)) + ])) +test_sampler = torch.utils.data.distributed.DistributedSampler( + test_dataset, num_replicas=hvd.size(), rank=hvd.rank()) +test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=args.test_batch_size, + sampler=test_sampler, **kwargs) + + +class Net(nn.Module): + def __init__(self): + super(Net, self).__init__() + self.conv1 = nn.Conv2d(1, 10, kernel_size=5) + self.conv2 = nn.Conv2d(10, 20, kernel_size=5) + self.conv2_drop = nn.Dropout2d() + self.fc1 = nn.Linear(320, 50) + self.fc2 = nn.Linear(50, 10) + + def forward(self, x): + x = F.relu(F.max_pool2d(self.conv1(x), 2)) + x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2)) + x = x.view(-1, 320) + x = F.relu(self.fc1(x)) + x = F.dropout(x, training=self.training) + x = self.fc2(x) + return F.log_softmax(x) + + +model = Net() + +if args.cuda: + # Move model to GPU. + model.cuda() + +# Horovod: broadcast parameters. +hvd.broadcast_parameters(model.state_dict(), root_rank=0) + +# Horovod: scale learning rate by the number of GPUs. +optimizer = optim.SGD(model.parameters(), lr=args.lr * hvd.size(), + momentum=args.momentum) + +# Horovod: (optional) compression algorithm. +compression = hvd.Compression.fp16 if args.fp16_allreduce else hvd.Compression.none + +# Horovod: wrap optimizer with DistributedOptimizer. +optimizer = hvd.DistributedOptimizer(optimizer, + named_parameters=model.named_parameters(), + compression=compression) + + +def train(epoch): + model.train() + train_sampler.set_epoch(epoch) + for batch_idx, (data, target) in enumerate(train_loader): + if args.cuda: + data, target = data.cuda(), target.cuda() + optimizer.zero_grad() + output = model(data) + loss = F.nll_loss(output, target) + loss.backward() + optimizer.step() + if batch_idx % args.log_interval == 0: + print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format( + epoch, batch_idx * len(data), len(train_sampler), + 100. * batch_idx / len(train_loader), loss.item())) + + # log the loss to the Azure ML run + run.log('loss', loss.item()) + + +def metric_average(val, name): + tensor = torch.tensor(val) + avg_tensor = hvd.allreduce(tensor, name=name) + return avg_tensor.item() + + +def test(): + model.eval() + test_loss = 0. + test_accuracy = 0. + for data, target in test_loader: + if args.cuda: + data, target = data.cuda(), target.cuda() + output = model(data) + # sum up batch loss + test_loss += F.nll_loss(output, target, size_average=False).item() + # get the index of the max log-probability + pred = output.data.max(1, keepdim=True)[1] + test_accuracy += pred.eq(target.data.view_as(pred)).cpu().float().sum() + + test_loss /= len(test_sampler) + test_accuracy /= len(test_sampler) + + test_loss = metric_average(test_loss, 'avg_loss') + test_accuracy = metric_average(test_accuracy, 'avg_accuracy') + + if hvd.rank() == 0: + print('\nTest set: Average loss: {:.4f}, Accuracy: {:.2f}%\n'.format( + test_loss, 100. * test_accuracy)) + + +for epoch in range(1, args.epochs + 1): + train(epoch) + test() diff --git a/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/distributed-pytorch-with-nccl-gloo.ipynb b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/distributed-pytorch-with-nccl-gloo.ipynb new file mode 100644 index 00000000..151cce38 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/distributed-pytorch-with-nccl-gloo.ipynb @@ -0,0 +1,382 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/training-with-deep-learning/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Distributed PyTorch \n", + "In this tutorial, you will train a PyTorch model on the [MNIST](http://yann.lecun.com/exdb/mnist/) dataset using distributed training via Nccl/Gloo across a GPU cluster. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "* If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [Configuration](../../../configuration.ipynb) notebook to install the Azure Machine Learning Python SDK and create an Azure ML `Workspace`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics\n", + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "Diagnostics" + ] + }, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace\n", + "\n", + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep='\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or attach existing AmlCompute\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, we use Azure ML managed compute ([AmlCompute](https://docs.microsoft.com/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute)) for our remote training compute resource. Specifically, the below code creates an `STANDARD_NC6` GPU cluster that autoscales from `0` to `4` nodes.\n", + "\n", + "**Creation of AmlCompute takes approximately 5 minutes.** If the AmlCompute with that name is already in your workspace, this code will skip the creation process.\n", + "\n", + "As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read [this article](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-manage-quotas) on the default limits and how to request more quota." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"gpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target.')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6',\n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " compute_target.wait_for_completion(show_output=True)\n", + "\n", + "# use get_status() to get a detailed status for the current AmlCompute. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code creates GPU compute. If you instead want to create CPU compute, provide a different VM size to the `vm_size` parameter, such as `STANDARD_D2_V2`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model on the remote compute\n", + "Now that we have the AmlCompute ready to go, let's run our distributed training job." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a project directory\n", + "Create a directory that will contain all the necessary code from your local machine that you will need access to on the remote resource. This includes the training script and any additional files your training script depends on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "project_folder = './pytorch-distr'\n", + "os.makedirs(project_folder, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare training script\n", + "Now you will need to create your training script. In this tutorial, the script for distributed training of MNIST is already provided for you at `pytorch_mnist.py`. In practice, you should be able to take any custom PyTorch training script as is and run it with Azure ML without having to modify your code.\n", + "\n", + "However, if you would like to use Azure ML's [metric logging](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#logging) capabilities, you will have to add a small amount of Azure ML logic inside your training script. In this example, at each logging interval, we will log the loss for that minibatch to our Azure ML run.\n", + "\n", + "To do so, in `pytorch_mnist.py`, we will first access the Azure ML `Run` object within the script:\n", + "```Python\n", + "from azureml.core.run import Run\n", + "run = Run.get_context()\n", + "```\n", + "Later within the script, we log the loss metric to our run:\n", + "```Python\n", + "run.log('loss', losses.avg)\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once your script is ready, copy the training script `pytorch_mnist.py` into the project directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "shutil.copy('pytorch_mnist.py', project_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create an experiment\n", + "Create an [Experiment](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#experiment) to track all the runs in your workspace for this distributed PyTorch tutorial. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "experiment_name = 'pytorch-distr'\n", + "experiment = Experiment(ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a PyTorch estimator(Nccl Backend)\n", + "The Azure ML SDK's PyTorch estimator enables you to easily submit PyTorch training jobs for both single-node and distributed runs. For more information on the PyTorch estimator, refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-train-pytorch)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.dnn import PyTorch, Nccl\n", + "\n", + "estimator = PyTorch(source_directory=project_folder,\n", + " script_params={\"--dist-backend\" : \"nccl\",\n", + " \"--dist-url\": \"$AZ_BATCHAI_PYTORCH_INIT_METHOD\",\n", + " \"--rank\": \"$AZ_BATCHAI_TASK_INDEX\",\n", + " \"--world-size\": 2},\n", + " compute_target=compute_target,\n", + " entry_script='pytorch_mnist.py',\n", + " node_count=2,\n", + " distributed_training=Nccl(),\n", + " use_gpu=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above code, `script_params` uses Azure ML generated `AZ_BATCHAI_PYTORCH_INIT_METHOD` for shared file-system initialization and `AZ_BATCHAI_TASK_INDEX` as rank of each worker process.\n", + "The above code specifies that we will run our training script on `2` nodes, with one worker per node. In order to execute a distributed run using Nccl, you must provide the argument `distributed_training=Nccl()`. Using this estimator with these settings, PyTorch and dependencies will be installed for you. However, if your script also uses other packages, make sure to install them via the `PyTorch` constructor's `pip_packages` or `conda_packages` parameters." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job\n", + "Run your experiment by submitting your estimator object. Note that this call is asynchronous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = experiment.submit(estimator)\n", + "print(run)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor your run\n", + "You can monitor the progress of the run with a Jupyter widget. Like the run submission, the widget is asynchronous and provides live updates every 10-15 seconds until the job completes. You can see that the widget automatically plots and visualizes the loss metric that we logged to the Azure ML run." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, you can block until the script has completed training before running more code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.wait_for_completion(show_output=True) # this provides a verbose log" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a PyTorch estimator(Gloo Backend)\n", + "The Azure ML SDK's PyTorch estimator enables you to easily submit PyTorch training jobs for both single-node and distributed runs. For more information on the PyTorch estimator, refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-train-pytorch)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.dnn import PyTorch, Gloo\n", + "\n", + "estimator = PyTorch(source_directory=project_folder,\n", + " script_params={\"--dist-backend\" : \"gloo\",\n", + " \"--dist-url\": \"$AZ_BATCHAI_PYTORCH_INIT_METHOD\",\n", + " \"--rank\": \"$AZ_BATCHAI_TASK_INDEX\",\n", + " \"--world-size\": 2},\n", + " compute_target=compute_target,\n", + " entry_script='pytorch_mnist.py',\n", + " node_count=2,\n", + " distributed_training=Gloo(),\n", + " use_gpu=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above code, `script_params` uses Azure ML generated `AZ_BATCHAI_PYTORCH_INIT_METHOD` for shared file-system initialization and `AZ_BATCHAI_TASK_INDEX` as rank of each worker process.\n", + "The above code specifies that we will run our training script on `2` nodes, with one worker per node. In order to execute a distributed run using Gloo, you must provide the argument `distributed_training=Gloo()`. Using this estimator with these settings, PyTorch and dependencies will be installed for you. However, if your script also uses other packages, make sure to install them via the `PyTorch` constructor's `pip_packages` or `conda_packages` parameters.\n", + "\n", + "Once you create the estimaotr you can follow the submit steps as shown above to submit a PyTorch run with `Gloo` backend. " + ] + } + ], + "metadata": { + "authors": [ + { + "name": "ninhu" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/distributed-pytorch-with-nccl-gloo.yml b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/distributed-pytorch-with-nccl-gloo.yml new file mode 100644 index 00000000..a960ad7e --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/distributed-pytorch-with-nccl-gloo.yml @@ -0,0 +1,5 @@ +name: distributed-pytorch-with-nccl-gloo +dependencies: +- pip: + - azureml-sdk + - azureml-widgets diff --git a/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/pytorch_mnist.py b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/pytorch_mnist.py new file mode 100644 index 00000000..e2b982d2 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/pytorch_mnist.py @@ -0,0 +1,209 @@ +# Copyright (c) 2017, PyTorch contributors +# Modifications copyright (C) Microsoft Corporation +# Licensed under the BSD license +# Adapted from https://github.com/Azure/BatchAI/tree/master/recipes/PyTorch/PyTorch-GPU-Distributed-Gloo + +from __future__ import print_function +import argparse +import os +import shutil +import time +import torch +import torch.nn as nn +import torch.nn.functional as F +import torch.optim as optim +from torchvision import datasets, transforms +import torch.nn.parallel +import torch.backends.cudnn as cudnn +import torch.distributed as dist +import torch.utils.data +import torch.utils.data.distributed +import torchvision.models as models + +from azureml.core.run import Run +# get the Azure ML run object +run = Run.get_context() + +# Training settings +parser = argparse.ArgumentParser(description='PyTorch MNIST Example') +parser.add_argument('--batch-size', type=int, default=64, metavar='N', + help='input batch size for training (default: 64)') +parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N', + help='input batch size for testing (default: 1000)') +parser.add_argument('--epochs', type=int, default=10, metavar='N', + help='number of epochs to train (default: 10)') +parser.add_argument('--lr', type=float, default=0.01, metavar='LR', + help='learning rate (default: 0.01)') +parser.add_argument('--momentum', type=float, default=0.5, metavar='M', + help='SGD momentum (default: 0.5)') +parser.add_argument('--seed', type=int, default=1, metavar='S', + help='random seed (default: 1)') +parser.add_argument('-j', '--workers', default=4, type=int, metavar='N', + help='number of data loading workers (default: 4)') +parser.add_argument('--log-interval', type=int, default=10, metavar='N', + help='how many batches to wait before logging training status') +parser.add_argument('--weight-decay', '--wd', default=1e-4, type=float, + metavar='W', help='weight decay (default: 1e-4)') +parser.add_argument('--world-size', default=1, type=int, + help='number of distributed processes') +parser.add_argument('--dist-url', type=str, + help='url used to set up distributed training') +parser.add_argument('--dist-backend', default='nccl', type=str, + help='distributed backend') +parser.add_argument('--rank', default=-1, type=int, + help='rank of the worker') + +best_prec1 = 0 +args = parser.parse_args() + +args.distributed = args.world_size >= 2 + +if args.distributed: + dist.init_process_group(backend=args.dist_backend, init_method=args.dist_url, + world_size=args.world_size, rank=args.rank) + +train_dataset = datasets.MNIST('data', train=True, download=True, + transform=transforms.Compose([ + transforms.ToTensor(), + transforms.Normalize((0.1307,), (0.3081,)) + ])) + +if args.distributed: + train_sampler = torch.utils.data.distributed.DistributedSampler(train_dataset) +else: + train_sampler = None + +train_loader = torch.utils.data.DataLoader( + train_dataset, + batch_size=args.batch_size, shuffle=(train_sampler is None), + num_workers=args.workers, pin_memory=True, sampler=train_sampler) + + +test_loader = torch.utils.data.DataLoader( + train_dataset, + batch_size=args.batch_size, shuffle=False, + num_workers=args.workers, pin_memory=True) + + +class Net(nn.Module): + def __init__(self): + super(Net, self).__init__() + self.conv1 = nn.Conv2d(1, 10, kernel_size=5) + self.conv2 = nn.Conv2d(10, 20, kernel_size=5) + self.conv2_drop = nn.Dropout2d() + self.fc1 = nn.Linear(320, 50) + self.fc2 = nn.Linear(50, 10) + + def forward(self, x): + x = F.relu(F.max_pool2d(self.conv1(x), 2)) + x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2)) + x = x.view(-1, 320) + x = F.relu(self.fc1(x)) + x = F.dropout(x, training=self.training) + x = self.fc2(x) + return F.log_softmax(x) + + +model = Net() + +if not args.distributed: + model = torch.nn.DataParallel(model).cuda() +else: + model.cuda() + model = torch.nn.parallel.DistributedDataParallel(model) + +# define loss function (criterion) and optimizer +criterion = nn.CrossEntropyLoss().cuda() + +optimizer = torch.optim.SGD(model.parameters(), args.lr, momentum=args.momentum, weight_decay=args.weight_decay) + + +def train(epoch): + batch_time = AverageMeter() + data_time = AverageMeter() + losses = AverageMeter() + top1 = AverageMeter() + top5 = AverageMeter() + + # switch to train mode + model.train() + end = time.time() + for i, (input, target) in enumerate(train_loader): + # measure data loading time + data_time.update(time.time() - end) + + input, target = input.cuda(), target.cuda() + + # compute output + try: + output = model(input) + loss = criterion(output, target) + + # measure accuracy and record loss + prec1, prec5 = accuracy(output.data, target, topk=(1, 5)) + losses.update(loss.item(), input.size(0)) + top1.update(prec1[0], input.size(0)) + top5.update(prec5[0], input.size(0)) + + # compute gradient and do SGD step + optimizer.zero_grad() + loss.backward() + optimizer.step() + + # measure elapsed time + batch_time.update(time.time() - end) + end = time.time() + + if i % 10 == 0: + run.log("loss", losses.avg) + run.log("prec@1", "{0:.3f}".format(top1.avg)) + run.log("prec@5", "{0:.3f}".format(top5.avg)) + print('Epoch: [{0}][{1}/{2}]\t' + 'Time {batch_time.val:.3f} ({batch_time.avg:.3f})\t' + 'Data {data_time.val:.3f} ({data_time.avg:.3f})\t' + 'Loss {loss.val:.4f} ({loss.avg:.4f})\t' + 'Prec@1 {top1.val:.3f} ({top1.avg:.3f})\t' + 'Prec@5 {top5.val:.3f} ({top5.avg:.3f})'.format(epoch, i, len(train_loader), + batch_time=batch_time, data_time=data_time, + loss=losses, top1=top1, top5=top5)) + except: + import sys + print("Unexpected error:", sys.exc_info()[0]) + + +class AverageMeter(object): + """Computes and stores the average and current value""" + def __init__(self): + self.reset() + + def reset(self): + self.val = 0 + self.avg = 0 + self.sum = 0 + self.count = 0 + + def update(self, val, n=1): + self.val = val + self.sum += val * n + self.count += n + self.avg = self.sum / self.count + + +def accuracy(output, target, topk=(1,)): + """Computes the precision@k for the specified values of k""" + maxk = max(topk) + batch_size = target.size(0) + + _, pred = output.topk(maxk, 1, True, True) + pred = pred.t() + correct = pred.eq(target.view(1, -1).expand_as(pred)) + + res = [] + for k in topk: + correct_k = correct[:k].view(-1).float().sum(0, keepdim=True) + res.append(correct_k.mul_(100.0 / batch_size)) + return res + + +for epoch in range(1, args.epochs + 1): + train(epoch) diff --git a/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.ipynb b/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.ipynb new file mode 100644 index 00000000..7b274376 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.ipynb @@ -0,0 +1,568 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Train and hyperparameter tune on Iris Dataset with Scikit-learn\n", + "In this tutorial, we demonstrate how to use the Azure ML Python SDK to train a support vector machine (SVM) on a single-node CPU with Scikit-learn to perform classification on the popular [Iris dataset](https://archive.ics.uci.edu/ml/datasets/iris). We will also demonstrate how to perform hyperparameter tuning of the model using Azure ML's HyperDrive service." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Go through the [Configuration](../../../configuration.ipynb) notebook to install the Azure Machine Learning Python SDK and create an Azure ML Workspace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep = '\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create AmlCompute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, we use Azure ML managed compute ([AmlCompute](https://docs.microsoft.com/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute)) for our remote training compute resource.\n", + "\n", + "As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read [this article](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-manage-quotas) on the default limits and how to request more quota." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we could not find the cluster with the given name, then we will create a new cluster here. We will create an `AmlCompute` cluster of `STANDARD_D2_V2` CPU VMs. This process is broken down into 3 steps:\n", + "1. create the configuration (this step is local and only takes a second)\n", + "2. create the cluster (this step will take about **20 seconds**)\n", + "3. provision the VMs to bring the cluster to the initial size (of 1 in this case). This step will take about **3-5 minutes** and is providing only sparse output in the process. Please make sure to wait until the call returns before moving to the next cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"cpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2', \n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " # can poll for a minimum number of nodes and for a specific timeout. \n", + " # if no min node count is provided it uses the scale settings for the cluster\n", + " compute_target.wait_for_completion(show_output=True, min_node_count=None, timeout_in_minutes=20)\n", + "\n", + "# use get_status() to get a detailed status for the current cluster. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code retrieves a CPU compute target. Scikit-learn does not support GPU computing." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model on the remote compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that you have your data and training script prepared, you are ready to train on your remote compute. You can take advantage of Azure compute to leverage a CPU cluster." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a project directory" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a directory that will contain all the necessary code from your local machine that you will need access to on the remote resource. This includes the training script and any additional files your training script depends on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "project_folder = './sklearn-iris'\n", + "os.makedirs(project_folder, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare training script" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now you will need to create your training script. In this tutorial, the training script is already provided for you at `train_iris`.py. In practice, you should be able to take any custom training script as is and run it with Azure ML without having to modify your code.\n", + "\n", + "However, if you would like to use Azure ML's [tracking and metrics](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#metrics) capabilities, you will have to add a small amount of Azure ML code inside your training script.\n", + "\n", + "In `train_iris.py`, we will log some metrics to our Azure ML run. To do so, we will access the Azure ML Run object within the script:\n", + "\n", + "```python\n", + "from azureml.core.run import Run\n", + "run = Run.get_context()\n", + "```\n", + "\n", + "Further within `train_iris.py`, we log the kernel and penalty parameters, and the highest accuracy the model achieves:\n", + "\n", + "```python\n", + "run.log('Kernel type', np.string(args.kernel))\n", + "run.log('Penalty', np.float(args.penalty))\n", + "\n", + "run.log('Accuracy', np.float(accuracy))\n", + "```\n", + "\n", + "These run metrics will become particularly important when we begin hyperparameter tuning our model in the \"Tune model hyperparameters\" section.\n", + "\n", + "Once your script is ready, copy the training script `train_iris.py` into your project directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "shutil.copy('train_iris.py', project_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create an experiment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create an [Experiment](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#experiment) to track all the runs in your workspace for this Scikit-learn tutorial." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "experiment_name = 'train_iris'\n", + "experiment = Experiment(ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a Scikit-learn estimator" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Azure ML SDK's Scikit-learn estimator enables you to easily submit Scikit-learn training jobs for single-node runs. The following code will define a single-node Scikit-learn job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "sklearn-remarks-sample" + ] + }, + "outputs": [], + "source": [ + "from azureml.train.sklearn import SKLearn\n", + "\n", + "script_params = {\n", + " '--kernel': 'linear',\n", + " '--penalty': 1.0,\n", + "}\n", + "\n", + "estimator = SKLearn(source_directory=project_folder, \n", + " script_params=script_params,\n", + " compute_target=compute_target,\n", + " entry_script='train_iris.py',\n", + " pip_packages=['joblib==0.13.2']\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `script_params` parameter is a dictionary containing the command-line arguments to your training script `entry_script`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run your experiment by submitting your estimator object. Note that this call is asynchronous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = experiment.submit(estimator)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Monitor your run" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can monitor the progress of the run with a Jupyter widget. Like the run submission, the widget is asynchronous and provides live updates every 10-15 seconds until the job completes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.cancel()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tune model hyperparameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we've seen how to do a simple Scikit-learn training run using the SDK, let's see if we can further improve the accuracy of our model. We can optimize our model's hyperparameters using Azure Machine Learning's hyperparameter tuning capabilities." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Start a hyperparameter sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, we will define the hyperparameter space to sweep over. Let's tune the `kernel` and `penalty` parameters. In this example we will use random sampling to try different configuration sets of hyperparameters to maximize our primary metric, `Accuracy`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.hyperdrive.runconfig import HyperDriveRunConfig\n", + "from azureml.train.hyperdrive.sampling import RandomParameterSampling\n", + "from azureml.train.hyperdrive.run import PrimaryMetricGoal\n", + "from azureml.train.hyperdrive.parameter_expressions import choice\n", + " \n", + "\n", + "param_sampling = RandomParameterSampling( {\n", + " \"--kernel\": choice('linear', 'rbf', 'poly', 'sigmoid'),\n", + " \"--penalty\": choice(0.5, 1, 1.5)\n", + " }\n", + ")\n", + "\n", + "hyperdrive_run_config = HyperDriveRunConfig(estimator=estimator,\n", + " hyperparameter_sampling=param_sampling, \n", + " primary_metric_name='Accuracy',\n", + " primary_metric_goal=PrimaryMetricGoal.MAXIMIZE,\n", + " max_total_runs=12,\n", + " max_concurrent_runs=4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, lauch the hyperparameter tuning job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# start the HyperDrive run\n", + "hyperdrive_run = experiment.submit(hyperdrive_run_config)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Monitor HyperDrive runs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can monitor the progress of the runs with the following Jupyter widget." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "RunDetails(hyperdrive_run).show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hyperdrive_run.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Find and register best model\n", + "When all jobs finish, we can find out the one that has the highest accuracy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "best_run = hyperdrive_run.get_best_run_by_primary_metric()\n", + "print(best_run.get_details()['runDefinition']['arguments'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's list the model files uploaded during the run." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(best_run.get_file_names())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then register the folder (and all files in it) as a model named `sklearn-iris` under the workspace for deployment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model = best_run.register_model(model_name='sklearn-iris', model_path='outputs/model.joblib')" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "dipeck" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + }, + "msauthor": "dipeck" + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.yml b/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.yml new file mode 100644 index 00000000..2691a849 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.yml @@ -0,0 +1,6 @@ +name: train-hyperparameter-tune-deploy-with-sklearn +dependencies: +- pip: + - azureml-sdk + - azureml-widgets + - numpy diff --git a/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train_iris.py b/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train_iris.py new file mode 100644 index 00000000..bc9099d8 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train_iris.py @@ -0,0 +1,60 @@ +# Modified from https://www.geeksforgeeks.org/multiclass-classification-using-scikit-learn/ + +import argparse +import os + +# importing necessary libraries +import numpy as np + +from sklearn import datasets +from sklearn.metrics import confusion_matrix +from sklearn.model_selection import train_test_split + +import joblib + +from azureml.core.run import Run +run = Run.get_context() + + +def main(): + parser = argparse.ArgumentParser() + + parser.add_argument('--kernel', type=str, default='linear', + help='Kernel type to be used in the algorithm') + parser.add_argument('--penalty', type=float, default=1.0, + help='Penalty parameter of the error term') + + args = parser.parse_args() + run.log('Kernel type', np.str(args.kernel)) + run.log('Penalty', np.float(args.penalty)) + + # loading the iris dataset + iris = datasets.load_iris() + + # X -> features, y -> label + X = iris.data + y = iris.target + + # dividing X, y into train and test data + X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) + + # training a linear SVM classifier + from sklearn.svm import SVC + svm_model_linear = SVC(kernel=args.kernel, C=args.penalty).fit(X_train, y_train) + svm_predictions = svm_model_linear.predict(X_test) + + # model accuracy for X_test + accuracy = svm_model_linear.score(X_test, y_test) + print('Accuracy of SVM classifier on test set: {:.2f}'.format(accuracy)) + run.log('Accuracy', np.float(accuracy)) + # creating a confusion matrix + cm = confusion_matrix(y_test, svm_predictions) + print(cm) + + os.makedirs('outputs', exist_ok=True) + # files saved in the "outputs" folder are automatically uploaded into run history + joblib.dump(svm_model_linear, 'outputs/model.joblib') + + +if __name__ == '__main__': + main() diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/nn.png b/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/nn.png new file mode 100644 index 0000000000000000000000000000000000000000..8910281eafd45cecfac2a5708abbffa82717a70b GIT binary patch literal 121768 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 IyL%FDJxN8SMf+-FEbHCHyqKasLB^ zaVbxTeE}GoVZKzNLouI*3_pc!h)VHPndMGj=s{DMtONK2V(@koit=rl!?(euSf-3h zFg-JYY3l6lw)lp%QubIF_qX#LoUvrtCteL2z3(sxcW?Y2hu{>f^P<-@?T?5vc`nBW zP~SrS`a?nCo)m`o0|$sMD4?Juz(xIIDb_%cHYDu#v9^2ch6l=F>t~};O5B){iHpAa z!Hp)l8}J%7pWKWa6m7VxQYD+RRJj6;%B7t-`CYS7aCE&R9mW zLRQPEAW3pNB(UisLR(0~jL&l=3{HQ|uj2)ZN1s+fyv*|BX{^?dF9+$iJk)%acETz! z?mU+`8~X|1w;E zKDxu<(tt=aMBDt0C{D58`j2;C$9+qDXgX%w!w&0M+TE+WPlNhk`?CyM0xlj(F*zMu zkWC{m|2j`dnIQm$jlAd_(71p7(kI)3FgP*6aq#E(V%EpmkW^(g;9Si8CaI0+>sxfL z$Q~tUs+3pCracF|Ea_oHtt<=7uXZSr3l^i$?n3nm5b5sny;sF1#H3O79TOE7sAt;1 z(|fU#4%DG*{$-(D@TZ^%ri>n_dJpF~f>R7-LtiBFhgP1!*hB)#s_+Rsq%XYB)W`dF z=w8D7O77VV0Z0>%B*9M{G_5)rh2L#^|L-9{Chlks=xMcmP}XLZ7ZPz*Qt4ByGgCm4 z(;SPNz}OncUh_{!_S!02JX+KQSWNqVE95~=hJ#W>9b+Qi1S^LWbLQ# zzvfLh-&nRQQxUjCK?3xu^;60S9+w(CY3B(6=n%O7`bv78^D_i??N$F z#y~yu&>mRhcF05mrrDsTvMJ0-Z}~@}KRa0pW?q!m&3Ml}F$!|fv6tpjCgJ_mJI*J` zhvM_yW902j<1rX-gG*e)g%ERcn&IMtX^=APbTdy9ZJOCj6Gg3@53L^@Tbo71fK>|Z z;j3BLzg+0l+!}M~Y(6ier>pI#*X<=nn3v{iz@iK5Ul$e~$7DF*>NKfQXGRoe$}AFL zGf;h+TSJudCIte>tF7bJ4dI?p7e(>9ol})D42h&nAR1ks(zcJzuo=<%`I3YodW_$^ z8ojaEPp@qFB;kC>E~)yi!)BiX=GZwJs>{szNr-ei5>gn^q`}eer8wrx{)mf0u!I!v z)v_!-Mh)hP>F}9V3mn$Yq^_T5oHii z=pAG`l)_hk2YRplkP>SV&HMv!ojzgRqgh)Te9J(B^H8Oaqs6nI{iERj8Jj?Ix~L_I z4HVz4E20!SGR*ToP5*@|A6A0Em)H-m{f8S9)L1PCSSsXjiRULy(AWPRDm7}%v|y@~ zty6ihL4QlQRC}*2Q^S2^zc?X{*DFjhMDJ$^Jdy*FcKG;c8Q%%M0QXNg8s^dMdIQ-6 zPX!&HcPE9I21?jm{S|UJG&8t`?>YSMuaC*Vv^gB8x@&zZ2a0R8Dq1hN6qZp0f3Zz* z46NFA(v9$=H&LCvf#=yh6d4u?=YXCLwprw}F5s@3W) z9QBfGyvi;|&*n=~MYB*+Z;nSO(uz+#^j@-$BsTvXTK?qG0bjc`IY-9B<`!J@UukrH z)_MVpFzoSBC9G&%oM12xU*WbkylcChmq10@&9e}8uZy8oUHIOQ9a=Cs7QGWrDn7iL zHz_R}e^R&0%0Nt5o|eEU_gFk@y33kWe`|*k#GCs#7mkz=r_Z38j8-_2cK;7;0X8;U z!uqmX@kOXwG;6^vh`G-)nfmo^4|~tWnIW7gW>OAkD$-7N>l(19X4# zH&N$|6cL=wnYR#J6=MDI>W3#K^FT7EEQPZQz(GloPSUMACsoB+h@gfnaBL#ma*B~= z%+6uxzM~K3Rs*-cbcRP9W5=NjND8CesN0t#i~%B?<>nTvb+qU8lhZiI^1P`776XQYP0AyM@6E+>bRaDEA^St1eEf;4SXc&z!&YY zNrc8VvRXbLg|P26(MqI&Zi6m}k(D$>=JPT$ml;xCo&&Fr!vxR98*<0RC=&@(ieKZ{ zMe=Qmv*ZC=K1skpWw`58w{B%(0XqhI#`UixB5i87TxBxs=W%GF6?5$AvE&V1+FRB0 zH zD1hIPl#yTe)u4VB)U4TRN`O<;iiMhccE zeKg*ZDH6%+8HF|Dy>2YevebM>MIj>YGFz%4DYgi(LS05K8Azf!N;kgf6qs_}dOKe@ zEDwo)wG+0mX#5N`%OyrggQcdX1Kz02Tjw~NB%VpJ1I(AA{IGTg^UR!?@s-@R&&>LU zfT+wvvX1+(^UHrG_d>v1C%9_Uv<*G^2Nq3+djdsf{t8nNMu4-kQjoeBqPjzNpc}}@ zm?bVFiPL2;**@6!TK+B`_Wr}=l98?Pcz2&*{WsBD-ND>=3ge)5&S^5`VXrT4EFgdy zhdZ;l%d*a-Rwe(q*JP8(r|@Hy|C34gDb`cJS6!sI+IYxgZOT3E@W}p?nhC4b4Xc?5 z{Ld?t8#DzUCVQLsf~P??<|AB}iroEP5am;K6yTbt9w09k#vgIdBEb+X-iXZguUJts zUW}UiL2SKXTu^-Urs(vX!!$arS>>+F(yBYR|g<~If-bG3BFkb>|%^D zTo&7e0x-vGC$3sxBbGrH(r`B)vj1^iZ81-c<^*DFGzIi9mB*ND4m%|NH@hJ|t2T6F z{tUS=35C#=@c^lO))}h{ZesD_VOPdKv-rE+(>0HH;z?$CU-g)ra}$HmA-&3jQEaEG zQ25tfI^Y~$Zb`58+B)W0Cf6|jNs1GN|B(VCx1>nA=-&N&*fQ%sn`wgJSi92NJ`ypA z;eejuS~~Z+I-)|lVXkUGD>hmm?of3@yilO&Ii6#v!Y__e1thJm&U>+h-(MtB|7xZv zaW+CsayC~`U=MyxycOC%UFG|WoNVj?Vgc!h{6;p}hY=^8T7JHpl}C7totH!ZYC1sG z9@s>)Q-#c|5d{AgL;&}@A+0T2WBNdF`U9v;WGZeg*WBI6LN0E%=~G*fqAoH4bJC5CNzG&A*ZUx=AbtrNgZuw z#bfz3q3~f5NJ%)>`S`@@KBB}g;@k|HP~%wUFTHUc!SOIgKV%pZ|N45cVxE0%=Xcvr z{Q3=#q#=u?QlN5rl(${1^^n~k^PA8wBi1#ncU_#Oq25vO39i@@fnKK8(|vv(=|xfU zLdc(Nk2{*XD%j2s9y+Ppso(#pF-;#oNQta498AG{XwW~o1N&KO_KSVVST3)r-cWXz zmE|lY1XFPPMSyn=CHlLJlSXZoQP}a;(#=EdpK{%zoilAOk$(zGwZv4NsLheMqimpVpAYGc~!NY5(zyT>-o*ua&%z@;mjl5s`# z;Gw-d{Y<`KLxSe+5zc^ZlaS<>xqLE~8ol0!~owsFQKUKSSp6LDK z)e@z4GL7oFIxA+2z$`wRrNa5OO1@*D&2?ztY^DW*gKV7DVh%c-QofdD`B%`{kfn9;zSOkyZZ~_^K-K9$E@`-aZyjKUW}{tNxEo2NIefmI~z#%^m9?j;pfLzt}DH`IdkbR%v+ zG8J;g!6X6mV2tm}W)34gzSbyTNE9Bq*S$Dd92&;Q+tl4>k=WD_zD2YQe7b7*$BMH;(+j??=q}) z@Fa&JVg_OlJ_JRuBUu||7TVPA780;0GS=V4loE~#*Ehws+U!g8dZBSKYr}n@;$)h= z>m8u-fAw?U=kqSXC3FZb0awMq$yn-7+@MpXV$iZ&{Ehopyln*k!l9_#ei!kt*i24A zBAKMUa$e{4i(y>4ISM}%H{>~efOb)leZjr|NYH(8X*mGNjb-P8hnm%eE^W!@Tew(C^^OCP)^BoIC za^R^YW%EmqBi4OfNs8F5n(Nv^8&9tFN06g+*PFm98QqNxllId(94)j|9U`Mj=!$c& zwwfXQl$Zyp=c|3lnD9Pq<~u<>wez~zQuW&Ye%pI~9p?JhRN3NPC3Dg7@2{33Q}X=T z%WY8Ut%Mj|<)_@`J+o--(9i^HU50nIev%3&j@wpJPaH+?rhVk}Syf=xb!)$q>k%>K|9HyXLN;G+qgAWwdT1<(#h-R?Emo_}0h}J( zP%J%YdFEWVw|!{xu8li*+g}Bli>ZDpz{hW~bSttrpQ%lwdff&uRp|>~^2O421x3yV zYJJ_MFkOzGC_j-tfG^I!yPpg(2)kp}*5{L6^iZ$ar=mX3ZX=76b{W1Kuh8wXzGR@X zjnK^R-2F^A6~)e@s7RimE(SxAA$`cHQN@2U+aJow|DK(25pc_Nb+MZ%oBDW>r z|C%rQp0io@%$cf4nY<>9y9m6K}zr)-$iiy2G(# z8NDLWKWcCuC!VAyROk4h-J-(HO|PXv|hN()hcT|uQ$-* zlqIL)N{Gq@e-{9MrOXC>U#FFnrj+V;Mnw|EfNCW?L{b*?O0>DjMnOfBoMQHAxSu2_ zLP~IoR}Dl~b8yVNAt+=sb*Z7`MAQGUez-mFC+B-U-*ohf)@kKSVe}?=ZFPa?zKivR zJ4)Dy?Onu@v+ge)&pD`tNjB^_<=YK&Iq2rDFt=Qilpp|35|?7#Z$tOq+EtnlgnV?H zG^=;>`8C7miz4)y-K=dDAo|o=gU+`+QV-*BlcdLc@CM6Ib2KVAjCRg)6ko{^18q5{ z+!LCB`bye4%v@&=3i+R=0zx|8?cqQj}IPu3lF8+SLUTq4{LS)lfA^q{dBmkeqB z=c8-I8<|D>8LzEJ=CfLCW}ji`V&�qmh&cP>Q$zWVL(hSx~vQEge;E99~LTvxSIV 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

    rKk(8jHnrD@os5(rLYO%Sz6@Ebg1vxO&@}Kv$fl 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 literal 0 HcmV?d00001 diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/tf_mnist.py b/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/tf_mnist.py new file mode 100644 index 00000000..f5ab7099 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/tf_mnist.py @@ -0,0 +1,106 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import numpy as np +import argparse +import os +import tensorflow as tf + +from azureml.core import Run +from utils import load_data + +print("TensorFlow version:", tf.VERSION) + +parser = argparse.ArgumentParser() +parser.add_argument('--data-folder', type=str, dest='data_folder', help='data folder mounting point') +parser.add_argument('--batch-size', type=int, dest='batch_size', default=50, help='mini batch size for training') +parser.add_argument('--first-layer-neurons', type=int, dest='n_hidden_1', default=100, + help='# of neurons in the first layer') +parser.add_argument('--second-layer-neurons', type=int, dest='n_hidden_2', default=100, + help='# of neurons in the second layer') +parser.add_argument('--learning-rate', type=float, dest='learning_rate', default=0.01, help='learning rate') +args = parser.parse_args() + +data_folder = os.path.join(args.data_folder, 'mnist') + +print('training dataset is stored here:', data_folder) + +X_train = load_data(os.path.join(data_folder, 'train-images.gz'), False) / 255.0 +X_test = load_data(os.path.join(data_folder, 'test-images.gz'), False) / 255.0 + +y_train = load_data(os.path.join(data_folder, 'train-labels.gz'), True).reshape(-1) +y_test = load_data(os.path.join(data_folder, 'test-labels.gz'), True).reshape(-1) + +print(X_train.shape, y_train.shape, X_test.shape, y_test.shape, sep='\n') +training_set_size = X_train.shape[0] + +n_inputs = 28 * 28 +n_h1 = args.n_hidden_1 +n_h2 = args.n_hidden_2 +n_outputs = 10 +learning_rate = args.learning_rate +n_epochs = 20 +batch_size = args.batch_size + +with tf.name_scope('network'): + # construct the DNN + X = tf.placeholder(tf.float32, shape=(None, n_inputs), name='X') + y = tf.placeholder(tf.int64, shape=(None), name='y') + h1 = tf.layers.dense(X, n_h1, activation=tf.nn.relu, name='h1') + h2 = tf.layers.dense(h1, n_h2, activation=tf.nn.relu, name='h2') + output = tf.layers.dense(h2, n_outputs, name='output') + +with tf.name_scope('train'): + cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=output) + loss = tf.reduce_mean(cross_entropy, name='loss') + optimizer = tf.train.GradientDescentOptimizer(learning_rate) + train_op = optimizer.minimize(loss) + +with tf.name_scope('eval'): + correct = tf.nn.in_top_k(output, y, 1) + acc_op = tf.reduce_mean(tf.cast(correct, tf.float32)) + +init = tf.global_variables_initializer() +saver = tf.train.Saver() + +# start an Azure ML run +run = Run.get_context() + +with tf.Session() as sess: + init.run() + for epoch in range(n_epochs): + + # randomly shuffle training set + indices = np.random.permutation(training_set_size) + X_train = X_train[indices] + y_train = y_train[indices] + + # batch index + b_start = 0 + b_end = b_start + batch_size + for _ in range(training_set_size // batch_size): + # get a batch + X_batch, y_batch = X_train[b_start: b_end], y_train[b_start: b_end] + + # update batch index for the next batch + b_start = b_start + batch_size + b_end = min(b_start + batch_size, training_set_size) + + # train + sess.run(train_op, feed_dict={X: X_batch, y: y_batch}) + # evaluate training set + acc_train = acc_op.eval(feed_dict={X: X_batch, y: y_batch}) + # evaluate validation set + acc_val = acc_op.eval(feed_dict={X: X_test, y: y_test}) + + # log accuracies + run.log('training_acc', np.float(acc_train)) + run.log('validation_acc', np.float(acc_val)) + print(epoch, '-- Training accuracy:', acc_train, '\b Validation accuracy:', acc_val) + y_hat = np.argmax(output.eval(feed_dict={X: X_test}), axis=1) + + run.log('final_acc', np.float(acc_val)) + + os.makedirs('./outputs/model', exist_ok=True) + # files saved in the "./outputs" folder are automatically uploaded into run history + saver.save(sess, './outputs/model/mnist-tf.model') diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb b/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb new file mode 100644 index 00000000..ff9786c0 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb @@ -0,0 +1,1145 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nbpresent": { + "id": "bf74d2e9-2708-49b1-934b-e0ede342f475" + } + }, + "source": [ + "# Training, hyperparameter tune, and deploy with TensorFlow\n", + "\n", + "## Introduction\n", + "This tutorial shows how to train a simple deep neural network using the MNIST dataset and TensorFlow on Azure Machine Learning. MNIST is a popular dataset consisting of 70,000 grayscale images. Each image is a handwritten digit of `28x28` pixels, representing number from 0 to 9. The goal is to create a multi-class classifier to identify the digit each image represents, and deploy it as a web service in Azure.\n", + "\n", + "For more information about the MNIST dataset, please visit [Yan LeCun's website](http://yann.lecun.com/exdb/mnist/).\n", + "\n", + "## Prerequisite:\n", + "* Understand the [architecture and terms](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture) introduced by Azure Machine Learning\n", + "* If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [configuration notebook](../../../configuration.ipynb) to:\n", + " * install the AML SDK\n", + " * create a workspace and its configuration file (`config.json`)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's get started. First let's import some Python libraries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "nbpresent": { + "id": "c377ea0c-0cd9-4345-9be2-e20fb29c94c3" + } + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import numpy as np\n", + "import os\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "nbpresent": { + "id": "edaa7f2f-2439-4148-b57a-8c794c0945ec" + } + }, + "outputs": [], + "source": [ + "import azureml\n", + "from azureml.core import Workspace\n", + "\n", + "# check core SDK version number\n", + "print(\"Azure ML SDK Version: \", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics\n", + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "Diagnostics" + ] + }, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace\n", + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep = '\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nbpresent": { + "id": "59f52294-4a25-4c92-bab8-3b07f0f44d15" + } + }, + "source": [ + "## Create an Azure ML experiment\n", + "Let's create an experiment named \"tf-mnist\" and a folder to hold the training scripts. The script runs will be recorded under the experiment in Azure." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "nbpresent": { + "id": "bc70f780-c240-4779-96f3-bc5ef9a37d59" + } + }, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "script_folder = './tf-mnist'\n", + "os.makedirs(script_folder, exist_ok=True)\n", + "\n", + "exp = Experiment(workspace=ws, name='tf-mnist')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nbpresent": { + "id": "defe921f-8097-44c3-8336-8af6700804a7" + } + }, + "source": [ + "## Download MNIST dataset\n", + "In order to train on the MNIST dataset we will first need to download it from Yan LeCun's web site directly and save them in a `data` folder locally." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import urllib\n", + "\n", + "os.makedirs('./data/mnist', exist_ok=True)\n", + "\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz', filename = './data/mnist/train-images.gz')\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz', filename = './data/mnist/train-labels.gz')\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz', filename = './data/mnist/test-images.gz')\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz', filename = './data/mnist/test-labels.gz')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nbpresent": { + "id": "c3f2f57c-7454-4d3e-b38d-b0946cf066ea" + } + }, + "source": [ + "## Show some sample images\n", + "Let's load the downloaded compressed file into numpy arrays using some utility functions included in the `utils.py` library file from the current folder. Then we use `matplotlib` to plot 30 random images from the dataset along with their labels." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "nbpresent": { + "id": "396d478b-34aa-4afa-9898-cdce8222a516" + } + }, + "outputs": [], + "source": [ + "from utils import load_data\n", + "\n", + "# note we also shrink the intensity values (X) from 0-255 to 0-1. This helps the neural network converge faster.\n", + "X_train = load_data('./data/mnist/train-images.gz', False) / 255.0\n", + "y_train = load_data('./data/mnist/train-labels.gz', True).reshape(-1)\n", + "\n", + "X_test = load_data('./data/mnist/test-images.gz', False) / 255.0\n", + "y_test = load_data('./data/mnist/test-labels.gz', True).reshape(-1)\n", + "\n", + "count = 0\n", + "sample_size = 30\n", + "plt.figure(figsize = (16, 6))\n", + "for i in np.random.permutation(X_train.shape[0])[:sample_size]:\n", + " count = count + 1\n", + " plt.subplot(1, sample_size, count)\n", + " plt.axhline('')\n", + " plt.axvline('')\n", + " plt.text(x = 10, y = -10, s = y_train[i], fontsize = 18)\n", + " plt.imshow(X_train[i].reshape(28, 28), cmap = plt.cm.Greys)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Upload MNIST dataset to default datastore \n", + "A [datastore](https://docs.microsoft.com/azure/machine-learning/service/how-to-access-data) is a place where data can be stored that is then made accessible to a Run either by means of mounting or copying the data to the compute target. A datastore can either be backed by an Azure Blob Storage or and Azure File Share (ADLS will be supported in the future). For simple data handling, each workspace provides a default datastore that can be used, in case the data is not already in Blob Storage or File Share." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ds = ws.get_default_datastore()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this next step, we will upload the training and test set into the workspace's default datastore, which we will then later be mount on an `AmlCompute` cluster for training." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ds.upload(src_dir='./data/mnist', target_path='mnist', overwrite=True, show_progress=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or Attach existing AmlCompute\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, you create `AmlCompute` as your training compute resource." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we could not find the cluster with the given name, then we will create a new cluster here. We will create an `AmlCompute` cluster of `STANDARD_NC6` GPU VMs. This process is broken down into 3 steps:\n", + "1. create the configuration (this step is local and only takes a second)\n", + "2. create the cluster (this step will take about **20 seconds**)\n", + "3. provision the VMs to bring the cluster to the initial size (of 1 in this case). This step will take about **3-5 minutes** and is providing only sparse output in the process. Please make sure to wait until the call returns before moving to the next cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"gpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6', \n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " # can poll for a minimum number of nodes and for a specific timeout. \n", + " # if no min node count is provided it uses the scale settings for the cluster\n", + " compute_target.wait_for_completion(show_output=True, min_node_count=None, timeout_in_minutes=20)\n", + "\n", + "# use get_status() to get a detailed status for the current cluster. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that you have created the compute target, let's see what the workspace's `compute_targets` property returns. You should now see one entry named 'gpu-cluster' of type `AmlCompute`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "compute_targets = ws.compute_targets\n", + "for name, ct in compute_targets.items():\n", + " print(name, ct.type, ct.provisioning_state)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Copy the training files into the script folder\n", + "The TensorFlow training script is already created for you. You can simply copy it into the script folder, together with the utility library used to load compressed data file into numpy array." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "# the training logic is in the tf_mnist.py file.\n", + "shutil.copy('./tf_mnist.py', script_folder)\n", + "\n", + "# the utils.py just helps loading data from the downloaded MNIST dataset into numpy arrays.\n", + "shutil.copy('./utils.py', script_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nbpresent": { + "id": "2039d2d5-aca6-4f25-a12f-df9ae6529cae" + } + }, + "source": [ + "## Construct neural network in TensorFlow\n", + "In the training script `tf_mnist.py`, it creates a very simple DNN (deep neural network), with just 2 hidden layers. The input layer has 28 * 28 = 784 neurons, each representing a pixel in an image. The first hidden layer has 300 neurons, and the second hidden layer has 100 neurons. The output layer has 10 neurons, each representing a targeted label from 0 to 9.\n", + "\n", + "![DNN](nn.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Azure ML concepts \n", + "Please note the following three things in the code below:\n", + "1. The script accepts arguments using the argparse package. In this case there is one argument `--data_folder` which specifies the file system folder in which the script can find the MNIST data\n", + "```\n", + " parser = argparse.ArgumentParser()\n", + " parser.add_argument('--data_folder')\n", + "```\n", + "2. The script is accessing the Azure ML `Run` object by executing `run = Run.get_context()`. Further down the script is using the `run` to report the training accuracy and the validation accuracy as training progresses.\n", + "```\n", + " run.log('training_acc', np.float(acc_train))\n", + " run.log('validation_acc', np.float(acc_val))\n", + "```\n", + "3. When running the script on Azure ML, you can write files out to a folder `./outputs` that is relative to the root directory. This folder is specially tracked by Azure ML in the sense that any files written to that folder during script execution on the remote target will be picked up by Run History; these files (known as artifacts) will be available as part of the run history record." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next cell will print out the training code for you to inspect it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with open(os.path.join(script_folder, './tf_mnist.py'), 'r') as f:\n", + " print(f.read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create TensorFlow estimator\n", + "Next, we construct an `azureml.train.dnn.TensorFlow` estimator object, use the Batch AI cluster as compute target, and pass the mount-point of the datastore to the training code as a parameter.\n", + "\n", + "The TensorFlow estimator is providing a simple way of launching a TensorFlow training job on a compute target. It will automatically provide a docker image that has TensorFlow installed -- if additional pip or conda packages are required, their names can be passed in via the `pip_packages` and `conda_packages` arguments and they will be included in the resulting docker.\n", + "\n", + "The TensorFlow estimator also takes a `framework_version` parameter -- if no version is provided, the estimator will default to the latest version supported by AzureML. Use `TensorFlow.get_supported_versions()` to get a list of all versions supported by your current SDK version or see the [SDK documentation](https://docs.microsoft.com/en-us/python/api/azureml-train-core/azureml.train.dnn?view=azure-ml-py) for the versions supported in the most current release." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "dnn-tensorflow-remarks-sample" + ] + }, + "outputs": [], + "source": [ + "from azureml.train.dnn import TensorFlow\n", + "\n", + "script_params = {\n", + " '--data-folder': ws.get_default_datastore().as_mount(),\n", + " '--batch-size': 50,\n", + " '--first-layer-neurons': 300,\n", + " '--second-layer-neurons': 100,\n", + " '--learning-rate': 0.01\n", + "}\n", + "\n", + "est = TensorFlow(source_directory=script_folder,\n", + " script_params=script_params,\n", + " compute_target=compute_target,\n", + " entry_script='tf_mnist.py', \n", + " use_gpu=True, \n", + " framework_version='1.13')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Submit job to run\n", + "Submit the estimator to an Azure ML experiment to kick off the execution." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = exp.submit(est)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor the Run \n", + "As the Run is executed, it will go through the following stages:\n", + "1. Preparing: A docker image is created matching the Python environment specified by the TensorFlow estimator and it will be uploaded to the workspace's Azure Container Registry. This step will only happen once for each Python environment -- the container will then be cached for subsequent runs. Creating and uploading the image takes about **5 minutes**. While the job is preparing, logs are streamed to the run history and can be viewed to monitor the progress of the image creation.\n", + "\n", + "2. Scaling: If the compute needs to be scaled up (i.e. the Batch AI cluster requires more nodes to execute the run than currently available), the cluster will attempt to scale up in order to make the required amount of nodes available. Scaling typically takes about **5 minutes**.\n", + "\n", + "3. Running: All scripts in the script folder are uploaded to the compute target, data stores are mounted/copied and the `entry_script` is executed. While the job is running, stdout and the `./logs` folder are streamed to the run history and can be viewed to monitor the progress of the run.\n", + "\n", + "4. Post-Processing: The `./outputs` folder of the run is copied over to the run history\n", + "\n", + "There are multiple ways to check the progress of a running job. We can use a Jupyter notebook widget. \n", + "\n", + "**Note: The widget will automatically update ever 10-15 seconds, always showing you the most up-to-date information about the run**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also periodically check the status of the run object, and navigate to Azure portal to monitor the run." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The Run object \n", + "The Run object provides the interface to the run history -- both to the job and to the control plane (this notebook), and both while the job is running and after it has completed. It provides a number of interesting features for instance:\n", + "* `run.get_details()`: Provides a rich set of properties of the run\n", + "* `run.get_metrics()`: Provides a dictionary with all the metrics that were reported for the Run\n", + "* `run.get_file_names()`: List all the files that were uploaded to the run history for this Run. This will include the `outputs` and `logs` folder, azureml-logs and other logs, as well as files that were explicitly uploaded to the run using `run.upload_file()`\n", + "\n", + "Below are some examples -- please run through them and inspect their output. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.get_details()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.get_metrics()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.get_file_names()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot accuracy over epochs\n", + "Since we can retrieve the metrics from the run, we can easily make plots using `matplotlib` in the notebook. Then we can add the plotted image to the run using `run.log_image()`, so all information about the run is kept together." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "os.makedirs('./imgs', exist_ok=True)\n", + "metrics = run.get_metrics()\n", + "\n", + "plt.figure(figsize = (13,5))\n", + "plt.plot(metrics['validation_acc'], 'r-', lw=4, alpha=.6)\n", + "plt.plot(metrics['training_acc'], 'b--', alpha=0.5)\n", + "plt.legend(['Full evaluation set', 'Training set mini-batch'])\n", + "plt.xlabel('epochs', fontsize=14)\n", + "plt.ylabel('accuracy', fontsize=14)\n", + "plt.title('Accuracy over Epochs', fontsize=16)\n", + "run.log_image(name='acc_over_epochs.png', plot=plt)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Download the saved model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the training script, a TensorFlow `saver` object is used to persist the model in a local folder (local to the compute target). The model was saved to the `./outputs` folder on the disk of the Batch AI cluster node where the job is run. Azure ML automatically uploaded anything written in the `./outputs` folder into run history file store. Subsequently, we can use the `Run` object to download the model files the `saver` object saved. They are under the the `outputs/model` folder in the run history file store, and are downloaded into a local folder named `model`. Note the TensorFlow model consists of four files in binary format and they are not human-readable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create a model folder in the current directory\n", + "os.makedirs('./model', exist_ok=True)\n", + "\n", + "for f in run.get_file_names():\n", + " if f.startswith('outputs/model'):\n", + " output_file_path = os.path.join('./model', f.split('/')[-1])\n", + " print('Downloading from {} to {} ...'.format(f, output_file_path))\n", + " run.download_file(name=f, output_file_path=output_file_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Predict on the test set\n", + "Now load the saved TensorFlow graph, and list all operations under the `network` scope. This way we can discover the input tensor `network/X:0` and the output tensor `network/output/MatMul:0`, and use them in the scoring script in the next step.\n", + "\n", + "Note: if your local TensorFlow version is different than the version running in the cluster where the model is trained, you might see a \"compiletime version mismatch\" warning. You can ignore it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "\n", + "tf.reset_default_graph()\n", + "\n", + "saver = tf.train.import_meta_graph(\"./model/mnist-tf.model.meta\")\n", + "graph = tf.get_default_graph()\n", + "\n", + "for op in graph.get_operations():\n", + " if op.name.startswith('network'):\n", + " print(op.name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Feed test dataset to the persisted model to get predictions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# input tensor. this is an array of 784 elements, each representing the intensity of a pixel in the digit image.\n", + "X = tf.get_default_graph().get_tensor_by_name(\"network/X:0\")\n", + "# output tensor. this is an array of 10 elements, each representing the probability of predicted value of the digit.\n", + "output = tf.get_default_graph().get_tensor_by_name(\"network/output/MatMul:0\")\n", + "\n", + "with tf.Session() as sess:\n", + " saver.restore(sess, './model/mnist-tf.model')\n", + " k = output.eval(feed_dict={X : X_test})\n", + "# get the prediction, which is the index of the element that has the largest probability value.\n", + "y_hat = np.argmax(k, axis=1)\n", + "\n", + "# print the first 30 labels and predictions\n", + "print('labels: \\t', y_test[:30])\n", + "print('predictions:\\t', y_hat[:30])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculate the overall accuracy by comparing the predicted value against the test set." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Accuracy on the test set:\", np.average(y_hat == y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Intelligent hyperparameter tuning\n", + "We have trained the model with one set of hyperparameters, now let's how we can do hyperparameter tuning by launching multiple runs on the cluster. First let's define the parameter space using random sampling." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.hyperdrive import RandomParameterSampling, BanditPolicy, HyperDriveConfig, PrimaryMetricGoal\n", + "from azureml.train.hyperdrive import choice, loguniform\n", + "\n", + "ps = RandomParameterSampling(\n", + " {\n", + " '--batch-size': choice(25, 50, 100),\n", + " '--first-layer-neurons': choice(10, 50, 200, 300, 500),\n", + " '--second-layer-neurons': choice(10, 50, 200, 500),\n", + " '--learning-rate': loguniform(-6, -1)\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will create a new estimator without the above parameters since they will be passed in later. Note we still need to keep the `data-folder` parameter since that's not a hyperparamter we will sweep." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "est = TensorFlow(source_directory=script_folder,\n", + " script_params={'--data-folder': ws.get_default_datastore().as_mount()},\n", + " compute_target=compute_target,\n", + " entry_script='tf_mnist.py', \n", + " use_gpu=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we will define an early termnination policy. The `BanditPolicy` basically states to check the job every 2 iterations. If the primary metric (defined later) falls outside of the top 10% range, Azure ML terminate the job. This saves us from continuing to explore hyperparameters that don't show promise of helping reach our target metric." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "policy = BanditPolicy(evaluation_interval=2, slack_factor=0.1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are ready to configure a run configuration object, and specify the primary metric `validation_acc` that's recorded in your training runs. If you go back to visit the training script, you will notice that this value is being logged after every epoch (a full batch set). We also want to tell the service that we are looking to maximizing this value. We also set the number of samples to 20, and maximal concurrent job to 4, which is the same as the number of nodes in our computer cluster." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "htc = HyperDriveConfig(estimator=est, \n", + " hyperparameter_sampling=ps, \n", + " policy=policy, \n", + " primary_metric_name='validation_acc', \n", + " primary_metric_goal=PrimaryMetricGoal.MAXIMIZE, \n", + " max_total_runs=8,\n", + " max_concurrent_runs=4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let's launch the hyperparameter tuning job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "htr = exp.submit(config=htc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use a run history widget to show the progress. Be patient as this might take a while to complete." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "RunDetails(htr).show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "htr.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Find and register best model \n", + "When all the jobs finish, we can find out the one that has the highest accuracy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "best_run = htr.get_best_run_by_primary_metric()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's list the model files uploaded during the run." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(best_run.get_file_names())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then register the folder (and all files in it) as a model named `tf-dnn-mnist` under the workspace for deployment." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model = best_run.register_model(model_name='tf-dnn-mnist', model_path='outputs/model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploy the model in ACI\n", + "Now we are ready to deploy the model as a web service running in Azure Container Instance [ACI](https://azure.microsoft.com/en-us/services/container-instances/). Azure Machine Learning accomplishes this by constructing a Docker image with the scoring logic and model baked in.\n", + "### Create score.py\n", + "First, we will create a scoring script that will be invoked by the web service call. \n", + "\n", + "* Note that the scoring script must have two required functions, `init()` and `run(input_data)`. \n", + " * In `init()` function, you typically load the model into a global object. This function is executed only once when the Docker container is started. \n", + " * In `run(input_data)` function, the model is used to predict a value based on the input data. The input and output to `run` typically use JSON as serialization and de-serialization format but you are not limited to that." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile score.py\n", + "import json\n", + "import numpy as np\n", + "import os\n", + "import tensorflow as tf\n", + "\n", + "from azureml.core.model import Model\n", + "\n", + "def init():\n", + " global X, output, sess\n", + " tf.reset_default_graph()\n", + " model_root = Model.get_model_path('tf-dnn-mnist')\n", + " saver = tf.train.import_meta_graph(os.path.join(model_root, 'mnist-tf.model.meta'))\n", + " X = tf.get_default_graph().get_tensor_by_name(\"network/X:0\")\n", + " output = tf.get_default_graph().get_tensor_by_name(\"network/output/MatMul:0\")\n", + " \n", + " sess = tf.Session()\n", + " saver.restore(sess, os.path.join(model_root, 'mnist-tf.model'))\n", + "\n", + "def run(raw_data):\n", + " data = np.array(json.loads(raw_data)['data'])\n", + " # make prediction\n", + " out = output.eval(session=sess, feed_dict={X: data})\n", + " y_hat = np.argmax(out, axis=1)\n", + " return y_hat.tolist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create myenv.yml\n", + "We also need to create an environment file so that Azure Machine Learning can install the necessary packages in the Docker image which are required by your scoring script. In this case, we need to specify packages `numpy`, `tensorflow`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.runconfig import CondaDependencies\n", + "\n", + "cd = CondaDependencies.create()\n", + "cd.add_conda_package('numpy')\n", + "cd.add_tensorflow_conda_package()\n", + "cd.save_to_file(base_directory='./', conda_file_path='myenv.yml')\n", + "\n", + "print(cd.serialize_to_string())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Deploy to ACI\n", + "We are almost ready to deploy. Create the inference configuration and deployment configuration and deploy to ACI. This cell will run for about 7-8 minutes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.webservice import AciWebservice\n", + "from azureml.core.model import InferenceConfig\n", + "from azureml.core.webservice import Webservice\n", + "from azureml.core.model import Model\n", + "\n", + "inference_config = InferenceConfig(runtime= \"python\", \n", + " entry_script=\"score.py\",\n", + " conda_file=\"myenv.yml\")\n", + "\n", + "aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, \n", + " memory_gb=1, \n", + " tags={'name':'mnist', 'framework': 'TensorFlow DNN'},\n", + " description='Tensorflow DNN on MNIST')\n", + "\n", + "service = Model.deploy(workspace=ws, \n", + " name='tf-mnist-svc', \n", + " models=[model], \n", + " inference_config=inference_config, \n", + " deployment_config=aciconfig)\n", + "\n", + "service.wait_for_deployment(True)\n", + "print(service.state)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Tip: If something goes wrong with the deployment, the first thing to look at is the logs from the service by running the following command:**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(service.get_logs())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is the scoring web service endpoint:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(service.scoring_uri)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Test the deployed model\n", + "Let's test the deployed model. Pick 30 random samples from the test set, and send it to the web service hosted in ACI. Note here we are using the `run` API in the SDK to invoke the service. You can also make raw HTTP calls using any HTTP tool such as curl.\n", + "\n", + "After the invocation, we print the returned predictions and plot them along with the input images. Use red font color and inversed image (white on black) to highlight the misclassified samples. Note since the model accuracy is pretty high, you might have to run the below cell a few times before you can see a misclassified sample." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "# find 30 random samples from test set\n", + "n = 30\n", + "sample_indices = np.random.permutation(X_test.shape[0])[0:n]\n", + "\n", + "test_samples = json.dumps({\"data\": X_test[sample_indices].tolist()})\n", + "test_samples = bytes(test_samples, encoding='utf8')\n", + "\n", + "# predict using the deployed model\n", + "result = service.run(input_data=test_samples)\n", + "\n", + "# compare actual value vs. the predicted values:\n", + "i = 0\n", + "plt.figure(figsize = (20, 1))\n", + "\n", + "for s in sample_indices:\n", + " plt.subplot(1, n, i + 1)\n", + " plt.axhline('')\n", + " plt.axvline('')\n", + " \n", + " # use different color for misclassified sample\n", + " font_color = 'red' if y_test[s] != result[i] else 'black'\n", + " clr_map = plt.cm.gray if y_test[s] != result[i] else plt.cm.Greys\n", + " \n", + " plt.text(x=10, y=-10, s=y_hat[s], fontsize=18, color=font_color)\n", + " plt.imshow(X_test[s].reshape(28, 28), cmap=clr_map)\n", + " \n", + " i = i + 1\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also send raw HTTP request to the service." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "\n", + "# send a random row from the test set to score\n", + "random_index = np.random.randint(0, len(X_test)-1)\n", + "input_data = \"{\\\"data\\\": [\" + str(list(X_test[random_index])) + \"]}\"\n", + "\n", + "headers = {'Content-Type':'application/json'}\n", + "\n", + "resp = requests.post(service.scoring_uri, input_data, headers=headers)\n", + "\n", + "print(\"POST to url\", service.scoring_uri)\n", + "#print(\"input data:\", input_data)\n", + "print(\"label:\", y_test[random_index])\n", + "print(\"prediction:\", resp.text)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at the workspace after the web service was deployed. You should see \n", + "* a registered model named 'model' and with the id 'model:1'\n", + "* a webservice called 'tf-mnist' with some scoring URL" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "models = ws.models\n", + "for name, model in models.items():\n", + " print(\"Model: {}, ID: {}\".format(name, model.id))\n", + " \n", + "webservices = ws.webservices\n", + "for name, webservice in webservices.items():\n", + " print(\"Webservice: {}, scoring URI: {}\".format(name, webservice.scoring_uri))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Clean up\n", + "You can delete the ACI deployment with a simple delete API call." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "service.delete()" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "ninhu" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.yml b/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.yml new file mode 100644 index 00000000..4b9dd138 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.yml @@ -0,0 +1,8 @@ +name: train-hyperparameter-tune-deploy-with-tensorflow +dependencies: +- numpy +- tensorflow +- matplotlib +- pip: + - azureml-sdk + - azureml-widgets diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/utils.py b/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/utils.py new file mode 100644 index 00000000..98170ada --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/utils.py @@ -0,0 +1,27 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import gzip +import numpy as np +import struct + + +# load compressed MNIST gz files and return numpy arrays +def load_data(filename, label=False): + with gzip.open(filename) as gz: + struct.unpack('I', gz.read(4)) + n_items = struct.unpack('>I', gz.read(4)) + if not label: + n_rows = struct.unpack('>I', gz.read(4))[0] + n_cols = struct.unpack('>I', gz.read(4))[0] + res = np.frombuffer(gz.read(n_items[0] * n_rows * n_cols), dtype=np.uint8) + res = res.reshape(n_items[0], n_rows * n_cols) + else: + res = np.frombuffer(gz.read(n_items[0]), dtype=np.uint8) + res = res.reshape(n_items[0], 1) + return res + + +# one-hot encode a 1-D array +def one_hot_encode(array, num_of_classes): + return np.eye(num_of_classes)[array.reshape(-1)] diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.ipynb b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.ipynb new file mode 100644 index 00000000..568b7648 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.ipynb @@ -0,0 +1,409 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/training/manage-runs/manage-runs.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Distributed Tensorflow with Horovod\n", + "In this tutorial, you will train a word2vec model in TensorFlow using distributed training via [Horovod](https://github.com/uber/horovod)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "* Understand the [architecture and terms](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture) introduced by Azure Machine Learning (AML)\n", + "* If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [configuration notebook](../../../configuration.ipynb) to:\n", + " * install the AML SDK\n", + " * create a workspace and its configuration file (`config.json`)\n", + "* Review the [tutorial](../train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb) on single-node TensorFlow training using the SDK" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics\n", + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "Diagnostics" + ] + }, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace\n", + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep='\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or Attach existing AmlCompute\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, you create `AmlCompute` as your training compute resource.\n", + "\n", + "**Creation of AmlCompute takes approximately 5 minutes.** If the AmlCompute with that name is already in your workspace this code will skip the creation process.\n", + "\n", + "As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read [this article](https://docs.microsoft.com/azure/machine-learning/service/how-to-manage-quotas) on the default limits and how to request more quota." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"gpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6', \n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " compute_target.wait_for_completion(show_output=True)\n", + "\n", + "# use get_status() to get a detailed status for the current cluster. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code creates a GPU cluster. If you instead want to create a CPU cluster, provide a different VM size to the `vm_size` parameter, such as `STANDARD_D2_V2`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Upload data to datastore\n", + "To make data accessible for remote training, AML provides a convenient way to do so via a [Datastore](https://docs.microsoft.com/azure/machine-learning/service/how-to-access-data). The datastore provides a mechanism for you to upload/download data to Azure Storage, and interact with it from your remote compute targets. \n", + "\n", + "If your data is already stored in Azure, or you download the data as part of your training script, you will not need to do this step. For this tutorial, although you can download the data in your training script, we will demonstrate how to upload the training data to a datastore and access it during training to illustrate the datastore functionality." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, download the training data from [here](http://mattmahoney.net/dc/text8.zip) to your local machine:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import urllib\n", + "\n", + "os.makedirs('./data', exist_ok=True)\n", + "download_url = 'http://mattmahoney.net/dc/text8.zip'\n", + "urllib.request.urlretrieve(download_url, filename='./data/text8.zip')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each workspace is associated with a default datastore. In this tutorial, we will upload the training data to this default datastore." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ds = ws.get_default_datastore()\n", + "print(ds.datastore_type, ds.account_name, ds.container_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Upload the contents of the data directory to the path `./data` on the default datastore." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ds.upload(src_dir='data', target_path='data', overwrite=True, show_progress=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For convenience, let's get a reference to the path on the datastore with the zip file of training data. We can do so using the `path` method. In the next section, we can then pass this reference to our training script's `--input_data` argument. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "path_on_datastore = 'data/text8.zip'\n", + "ds_data = ds.path(path_on_datastore)\n", + "print(ds_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model on the remote compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a project directory\n", + "Create a directory that will contain all the necessary code from your local machine that you will need access to on the remote resource. This includes the training script, and any additional files your training script depends on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "project_folder = './tf-distr-hvd'\n", + "os.makedirs(project_folder, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copy the training script `tf_horovod_word2vec.py` into this project directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "shutil.copy('tf_horovod_word2vec.py', project_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create an experiment\n", + "Create an [Experiment](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#experiment) to track all the runs in your workspace for this distributed TensorFlow tutorial. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "experiment_name = 'tf-distr-hvd'\n", + "experiment = Experiment(ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a TensorFlow estimator\n", + "The AML SDK's TensorFlow estimator enables you to easily submit TensorFlow training jobs for both single-node and distributed runs. For more information on the TensorFlow estimator, refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-train-tensorflow).\n", + "\n", + "The TensorFlow estimator also takes a `framework_version` parameter -- if no version is provided, the estimator will default to the latest version supported by AzureML. Use `TensorFlow.get_supported_versions()` to get a list of all versions supported by your current SDK version or see the [SDK documentation](https://docs.microsoft.com/en-us/python/api/azureml-train-core/azureml.train.dnn?view=azure-ml-py) for the versions supported in the most current release." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.dnn import TensorFlow, Mpi\n", + "\n", + "script_params={\n", + " '--input_data': ds_data\n", + "}\n", + "\n", + "estimator= TensorFlow(source_directory=project_folder,\n", + " compute_target=compute_target,\n", + " script_params=script_params,\n", + " entry_script='tf_horovod_word2vec.py',\n", + " node_count=2,\n", + " distributed_training=Mpi(),\n", + " framework_version='1.13')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code specifies that we will run our training script on `2` nodes, with one worker per node. In order to execute a distributed run using MPI/Horovod, you must provide the argument `distributed_backend=Mpi()`. To specify `i` workers per node, you must provide the argument `distributed_backend=Mpi(process_count_per_node=i)`. Using this estimator with these settings, TensorFlow, Horovod and their dependencies will be installed for you. However, if your script also uses other packages, make sure to install them via the `TensorFlow` constructor's `pip_packages` or `conda_packages` parameters.\n", + "\n", + "Note that we passed our training data reference `ds_data` to our script's `--input_data` argument. This will 1) mount our datastore on the remote compute and 2) provide the path to the data zip file on our datastore." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job\n", + "Run your experiment by submitting your estimator object. Note that this call is asynchronous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = experiment.submit(estimator)\n", + "print(run)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor your run\n", + "You can monitor the progress of the run with a Jupyter widget. Like the run submission, the widget is asynchronous and provides live updates every 10-15 seconds until the job completes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, you can block until the script has completed training before running more code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.wait_for_completion(show_output=True)" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "roastala" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.yml b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.yml new file mode 100644 index 00000000..15d0a491 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.yml @@ -0,0 +1,5 @@ +name: distributed-tensorflow-with-horovod +dependencies: +- pip: + - azureml-sdk + - azureml-widgets diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/tf_horovod_word2vec.py b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/tf_horovod_word2vec.py new file mode 100644 index 00000000..f29fb278 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/tf_horovod_word2vec.py @@ -0,0 +1,259 @@ +# Copyright 2015 The TensorFlow Authors. All Rights Reserved. +# Modifications copyright (C) 2017 Uber Technologies, Inc. +# Additional modifications copyright (C) Microsoft Corporation +# Licensed under the Apache License, Version 2.0 +# Script adapted from: https://github.com/uber/horovod/blob/master/examples/tensorflow_word2vec.py +# ====================================== +"""Basic word2vec example.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import collections +import math +import os +import random +import zipfile +import argparse + +import numpy as np +from six.moves import urllib +from six.moves import xrange # pylint: disable=redefined-builtin +import tensorflow as tf +import horovod.tensorflow as hvd +from azureml.core.run import Run + +# Horovod: initialize Horovod. +hvd.init() + +parser = argparse.ArgumentParser() +parser.add_argument('--input_data', type=str, help='training data') + +args = parser.parse_args() + +input_data = args.input_data +print("the input data is at %s" % input_data) + +# Step 1: Download the data. +url = 'http://mattmahoney.net/dc/text8.zip' + + +def maybe_download(filename, expected_bytes): + """Download a file if not present, and make sure it's the right size.""" + if not filename: + filename = "text8.zip" + if not os.path.exists(filename): + print("Downloading the data from http://mattmahoney.net/dc/text8.zip") + filename, _ = urllib.request.urlretrieve(url, filename) + else: + print("Use the data from %s" % input_data) + statinfo = os.stat(filename) + if statinfo.st_size == expected_bytes: + print('Found and verified', filename) + else: + print(statinfo.st_size) + raise Exception( + 'Failed to verify ' + url + '. Can you get to it with a browser?') + return filename + + +filename = maybe_download(input_data, 31344016) + + +# Read the data into a list of strings. +def read_data(filename): + """Extract the first file enclosed in a zip file as a list of words.""" + with zipfile.ZipFile(filename) as f: + data = tf.compat.as_str(f.read(f.namelist()[0])).split() + return data + + +vocabulary = read_data(filename) +print('Data size', len(vocabulary)) + +# Step 2: Build the dictionary and replace rare words with UNK token. +vocabulary_size = 50000 + + +def build_dataset(words, n_words): + """Process raw inputs into a dataset.""" + count = [['UNK', -1]] + count.extend(collections.Counter(words).most_common(n_words - 1)) + dictionary = dict() + for word, _ in count: + dictionary[word] = len(dictionary) + data = list() + unk_count = 0 + for word in words: + if word in dictionary: + index = dictionary[word] + else: + index = 0 # dictionary['UNK'] + unk_count += 1 + data.append(index) + count[0][1] = unk_count + reversed_dictionary = dict(zip(dictionary.values(), dictionary.keys())) + return data, count, dictionary, reversed_dictionary + + +data, count, dictionary, reverse_dictionary = build_dataset(vocabulary, + vocabulary_size) +del vocabulary # Hint to reduce memory. +print('Most common words (+UNK)', count[:5]) +print('Sample data', data[:10], [reverse_dictionary[i] for i in data[:10]]) + + +# Step 3: Function to generate a training batch for the skip-gram model. +def generate_batch(batch_size, num_skips, skip_window): + assert num_skips <= 2 * skip_window + # Adjust batch_size to match num_skips + batch_size = batch_size // num_skips * num_skips + span = 2 * skip_window + 1 # [ skip_window target skip_window ] + # Backtrack a little bit to avoid skipping words in the end of a batch + data_index = random.randint(0, len(data) - span - 1) + batch = np.ndarray(shape=(batch_size), dtype=np.int32) + labels = np.ndarray(shape=(batch_size, 1), dtype=np.int32) + buffer = collections.deque(maxlen=span) + for _ in range(span): + buffer.append(data[data_index]) + data_index = (data_index + 1) % len(data) + for i in range(batch_size // num_skips): + target = skip_window # target label at the center of the buffer + targets_to_avoid = [skip_window] + for j in range(num_skips): + while target in targets_to_avoid: + target = random.randint(0, span - 1) + targets_to_avoid.append(target) + batch[i * num_skips + j] = buffer[skip_window] + labels[i * num_skips + j, 0] = buffer[target] + buffer.append(data[data_index]) + data_index = (data_index + 1) % len(data) + return batch, labels + + +batch, labels = generate_batch(batch_size=8, num_skips=2, skip_window=1) +for i in range(8): + print(batch[i], reverse_dictionary[batch[i]], + '->', labels[i, 0], reverse_dictionary[labels[i, 0]]) + +# Step 4: Build and train a skip-gram model. + +max_batch_size = 128 +embedding_size = 128 # Dimension of the embedding vector. +skip_window = 1 # How many words to consider left and right. +num_skips = 2 # How many times to reuse an input to generate a label. + +# We pick a random validation set to sample nearest neighbors. Here we limit the +# validation samples to the words that have a low numeric ID, which by +# construction are also the most frequent. +valid_size = 16 # Random set of words to evaluate similarity on. +valid_window = 100 # Only pick dev samples in the head of the distribution. +valid_examples = np.random.choice(valid_window, valid_size, replace=False) +num_sampled = 64 # Number of negative examples to sample. + +graph = tf.Graph() + +with graph.as_default(): + + # Input data. + train_inputs = tf.placeholder(tf.int32, shape=[None]) + train_labels = tf.placeholder(tf.int32, shape=[None, 1]) + valid_dataset = tf.constant(valid_examples, dtype=tf.int32) + + # Look up embeddings for inputs. + embeddings = tf.Variable( + tf.random_uniform([vocabulary_size, embedding_size], -1.0, 1.0)) + embed = tf.nn.embedding_lookup(embeddings, train_inputs) + + # Construct the variables for the NCE loss + nce_weights = tf.Variable( + tf.truncated_normal([vocabulary_size, embedding_size], + stddev=1.0 / math.sqrt(embedding_size))) + nce_biases = tf.Variable(tf.zeros([vocabulary_size])) + + # Compute the average NCE loss for the batch. + # tf.nce_loss automatically draws a new sample of the negative labels each + # time we evaluate the loss. + loss = tf.reduce_mean( + tf.nn.nce_loss(weights=nce_weights, + biases=nce_biases, + labels=train_labels, + inputs=embed, + num_sampled=num_sampled, + num_classes=vocabulary_size)) + + # Horovod: adjust learning rate based on number of GPUs. + optimizer = tf.train.GradientDescentOptimizer(1.0 * hvd.size()) + + # Horovod: add Horovod Distributed Optimizer. + optimizer = hvd.DistributedOptimizer(optimizer) + + train_op = optimizer.minimize(loss) + + # Compute the cosine similarity between minibatch examples and all embeddings. + norm = tf.sqrt(tf.reduce_sum(tf.square(embeddings), 1, keep_dims=True)) + normalized_embeddings = embeddings / norm + valid_embeddings = tf.nn.embedding_lookup( + normalized_embeddings, valid_dataset) + similarity = tf.matmul( + valid_embeddings, normalized_embeddings, transpose_b=True) + + # Add variable initializer. + init = tf.global_variables_initializer() + + # Horovod: broadcast initial variable states from rank 0 to all other processes. + # This is necessary to ensure consistent initialization of all workers when + # training is started with random weights or restored from a checkpoint. + bcast = hvd.broadcast_global_variables(0) + +# Step 5: Begin training. + +# Horovod: adjust number of steps based on number of GPUs. +num_steps = 4000 // hvd.size() + 1 + +# Horovod: pin GPU to be used to process local rank (one GPU per process) +config = tf.ConfigProto() +config.gpu_options.allow_growth = True +config.gpu_options.visible_device_list = str(hvd.local_rank()) + +with tf.Session(graph=graph, config=config) as session: + # We must initialize all variables before we use them. + init.run() + bcast.run() + print('Initialized') + run = Run.get_context() + average_loss = 0 + for step in xrange(num_steps): + # simulate various sentence length by randomization + batch_size = random.randint(max_batch_size // 2, max_batch_size) + batch_inputs, batch_labels = generate_batch( + batch_size, num_skips, skip_window) + feed_dict = {train_inputs: batch_inputs, train_labels: batch_labels} + + # We perform one update step by evaluating the optimizer op (including it + # in the list of returned values for session.run() + _, loss_val = session.run([train_op, loss], feed_dict=feed_dict) + average_loss += loss_val + + if step % 2000 == 0: + if step > 0: + average_loss /= 2000 + # The average loss is an estimate of the loss over the last 2000 batches. + print('Average loss at step ', step, ': ', average_loss) + run.log("Loss", average_loss) + average_loss = 0 + final_embeddings = normalized_embeddings.eval() + + # Evaluate similarity in the end on worker 0. + if hvd.rank() == 0: + sim = similarity.eval() + for i in xrange(valid_size): + valid_word = reverse_dictionary[valid_examples[i]] + top_k = 8 # number of nearest neighbors + nearest = (-sim[i, :]).argsort()[1:top_k + 1] + log_str = 'Nearest to %s:' % valid_word + for k in xrange(top_k): + close_word = reverse_dictionary[nearest[k]] + log_str = '%s %s,' % (log_str, close_word) + print(log_str) diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.ipynb b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.ipynb new file mode 100644 index 00000000..a5e3e143 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.ipynb @@ -0,0 +1,321 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Distributed TensorFlow with parameter server\n", + "In this tutorial, you will train a TensorFlow model on the [MNIST](http://yann.lecun.com/exdb/mnist/) dataset using native [distributed TensorFlow](https://www.tensorflow.org/deploy/distributed)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "* Understand the [architecture and terms](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture) introduced by Azure Machine Learning (AML)\n", + "* If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [configuration notebook](../../../configuration.ipynb) to:\n", + " * install the AML SDK\n", + " * create a workspace and its configuration file (`config.json`)\n", + "* Review the [tutorial](../train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb) on single-node TensorFlow training using the SDK" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics\n", + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "Diagnostics" + ] + }, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace\n", + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep = '\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or Attach existing AmlCompute\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, you create `AmlCompute` as your training compute resource.\n", + "\n", + "**Creation of AmlCompute takes approximately 5 minutes.** If the AmlCompute with that name is already in your workspace this code will skip the creation process.\n", + "\n", + "As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read [this article](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-manage-quotas) on the default limits and how to request more quota." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"gpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target.')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6', \n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " compute_target.wait_for_completion(show_output=True)\n", + "\n", + "# use get_status() to get a detailed status for the current cluster. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model on the remote compute\n", + "Now that we have the cluster ready to go, let's run our distributed training job." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a project directory\n", + "Create a directory that will contain all the necessary code from your local machine that you will need access to on the remote resource. This includes the training script, and any additional files your training script depends on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "project_folder = './tf-distr-ps'\n", + "os.makedirs(project_folder, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copy the training script `tf_mnist_replica.py` into this project directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "shutil.copy('tf_mnist_replica.py', project_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create an experiment\n", + "Create an [Experiment](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#experiment) to track all the runs in your workspace for this distributed TensorFlow tutorial. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "experiment_name = 'tf-distr-ps'\n", + "experiment = Experiment(ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a TensorFlow estimator\n", + "The AML SDK's TensorFlow estimator enables you to easily submit TensorFlow training jobs for both single-node and distributed runs. For more information on the TensorFlow estimator, refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-train-tensorflow)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.dnn import TensorFlow, ParameterServer\n", + "\n", + "script_params={\n", + " '--num_gpus': 1,\n", + " '--train_steps': 500\n", + "}\n", + "\n", + "estimator = TensorFlow(source_directory=project_folder,\n", + " compute_target=compute_target,\n", + " script_params=script_params,\n", + " entry_script='tf_mnist_replica.py',\n", + " node_count=2,\n", + " distributed_training=ParameterServer(worker_count=2),\n", + " use_gpu=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code specifies that we will run our training script on `2` nodes, with two workers and one parameter server. In order to execute a native distributed TensorFlow run, you must provide the argument `distributed_backend=ParameterServer()`. Using this estimator with these settings, TensorFlow and its dependencies will be installed for you. However, if your script also uses other packages, make sure to install them via the `TensorFlow` constructor's `pip_packages` or `conda_packages` parameters." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job\n", + "Run your experiment by submitting your estimator object. Note that this call is asynchronous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = experiment.submit(estimator)\n", + "print(run)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor your run\n", + "You can monitor the progress of the run with a Jupyter widget. Like the run submission, the widget is asynchronous and provides live updates every 10-15 seconds until the job completes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, you can block until the script has completed training before running more code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.wait_for_completion(show_output=True) # this provides a verbose log" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "ninhu" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.yml b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.yml new file mode 100644 index 00000000..bc5a30eb --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.yml @@ -0,0 +1,5 @@ +name: distributed-tensorflow-with-parameter-server +dependencies: +- pip: + - azureml-sdk + - azureml-widgets diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/tf_mnist_replica.py b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/tf_mnist_replica.py new file mode 100644 index 00000000..96d40fed --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/tf_mnist_replica.py @@ -0,0 +1,271 @@ +# Copyright 2016 The TensorFlow Authors. All Rights Reserved. +# Licensed under the Apache License, Version 2.0 +# Script adapted from: +# https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/dist_test/python/mnist_replica.py +# ============================================================================== +"""Distributed MNIST training and validation, with model replicas. +A simple softmax model with one hidden layer is defined. The parameters +(weights and biases) are located on one parameter server (ps), while the ops +are executed on two worker nodes by default. The TF sessions also run on the +worker node. +Multiple invocations of this script can be done in parallel, with different +values for --task_index. There should be exactly one invocation with +--task_index, which will create a master session that carries out variable +initialization. The other, non-master, sessions will wait for the master +session to finish the initialization before proceeding to the training stage. +The coordination between the multiple worker invocations occurs due to +the definition of the parameters on the same ps devices. The parameter updates +from one worker is visible to all other workers. As such, the workers can +perform forward computation and gradient calculation in parallel, which +should lead to increased training speed for the simple model. +""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import os +import math +import sys +import tempfile +import time +import json + +import tensorflow as tf +from tensorflow.examples.tutorials.mnist import input_data +from azureml.core.run import Run + +flags = tf.app.flags +flags.DEFINE_string("data_dir", "/tmp/mnist-data", + "Directory for storing mnist data") +flags.DEFINE_boolean("download_only", False, + "Only perform downloading of data; Do not proceed to " + "session preparation, model definition or training") +flags.DEFINE_integer("num_gpus", 0, "Total number of gpus for each machine." + "If you don't use GPU, please set it to '0'") +flags.DEFINE_integer("replicas_to_aggregate", None, + "Number of replicas to aggregate before parameter update " + "is applied (For sync_replicas mode only; default: " + "num_workers)") +flags.DEFINE_integer("hidden_units", 100, + "Number of units in the hidden layer of the NN") +flags.DEFINE_integer("train_steps", 200, + "Number of (global) training steps to perform") +flags.DEFINE_integer("batch_size", 100, "Training batch size") +flags.DEFINE_float("learning_rate", 0.01, "Learning rate") +flags.DEFINE_boolean( + "sync_replicas", False, + "Use the sync_replicas (synchronized replicas) mode, " + "wherein the parameter updates from workers are aggregated " + "before applied to avoid stale gradients") +flags.DEFINE_boolean( + "existing_servers", False, "Whether servers already exists. If True, " + "will use the worker hosts via their GRPC URLs (one client process " + "per worker host). Otherwise, will create an in-process TensorFlow " + "server.") + +FLAGS = flags.FLAGS + +IMAGE_PIXELS = 28 + + +def main(unused_argv): + data_root = os.path.join("outputs", "MNIST") + mnist = None + tf_config = os.environ.get("TF_CONFIG") + if not tf_config or tf_config == "": + raise ValueError("TF_CONFIG not found.") + tf_config_json = json.loads(tf_config) + cluster = tf_config_json.get('cluster') + job_name = tf_config_json.get('task', {}).get('type') + task_index = tf_config_json.get('task', {}).get('index') + job_name = "worker" if job_name == "master" else job_name + sentinel_path = os.path.join(data_root, "complete.txt") + if job_name == "worker" and task_index == 0: + mnist = input_data.read_data_sets(data_root, one_hot=True) + with open(sentinel_path, 'w+') as f: + f.write("download complete") + else: + while not os.path.exists(sentinel_path): + time.sleep(0.01) + mnist = input_data.read_data_sets(data_root, one_hot=True) + + if FLAGS.download_only: + sys.exit(0) + + print("job name = %s" % job_name) + print("task index = %d" % task_index) + print("number of GPUs = %d" % FLAGS.num_gpus) + + # Construct the cluster and start the server + cluster_spec = tf.train.ClusterSpec(cluster) + + # Get the number of workers. + num_workers = len(cluster_spec.task_indices("worker")) + + if not FLAGS.existing_servers: + # Not using existing servers. Create an in-process server. + server = tf.train.Server( + cluster_spec, job_name=job_name, task_index=task_index) + if job_name == "ps": + server.join() + + is_chief = (task_index == 0) + if FLAGS.num_gpus > 0: + # Avoid gpu allocation conflict: now allocate task_num -> #gpu + # for each worker in the corresponding machine + gpu = (task_index % FLAGS.num_gpus) + worker_device = "/job:worker/task:%d/gpu:%d" % (task_index, gpu) + elif FLAGS.num_gpus == 0: + # Just allocate the CPU to worker server + cpu = 0 + worker_device = "/job:worker/task:%d/cpu:%d" % (task_index, cpu) + # The device setter will automatically place Variables ops on separate + # parameter servers (ps). The non-Variable ops will be placed on the workers. + # The ps use CPU and workers use corresponding GPU + with tf.device( + tf.train.replica_device_setter( + worker_device=worker_device, + ps_device="/job:ps/cpu:0", + cluster=cluster)): + global_step = tf.Variable(0, name="global_step", trainable=False) + + # Variables of the hidden layer + hid_w = tf.Variable( + tf.truncated_normal( + [IMAGE_PIXELS * IMAGE_PIXELS, FLAGS.hidden_units], + stddev=1.0 / IMAGE_PIXELS), + name="hid_w") + hid_b = tf.Variable(tf.zeros([FLAGS.hidden_units]), name="hid_b") + + # Variables of the softmax layer + sm_w = tf.Variable( + tf.truncated_normal( + [FLAGS.hidden_units, 10], + stddev=1.0 / math.sqrt(FLAGS.hidden_units)), + name="sm_w") + sm_b = tf.Variable(tf.zeros([10]), name="sm_b") + + # Ops: located on the worker specified with task_index + x = tf.placeholder(tf.float32, [None, IMAGE_PIXELS * IMAGE_PIXELS]) + y_ = tf.placeholder(tf.float32, [None, 10]) + + hid_lin = tf.nn.xw_plus_b(x, hid_w, hid_b) + hid = tf.nn.relu(hid_lin) + + y = tf.nn.softmax(tf.nn.xw_plus_b(hid, sm_w, sm_b)) + cross_entropy = -tf.reduce_sum(y_ * tf.log(tf.clip_by_value(y, 1e-10, 1.0))) + + opt = tf.train.AdamOptimizer(FLAGS.learning_rate) + + if FLAGS.sync_replicas: + if FLAGS.replicas_to_aggregate is None: + replicas_to_aggregate = num_workers + else: + replicas_to_aggregate = FLAGS.replicas_to_aggregate + + opt = tf.train.SyncReplicasOptimizer( + opt, + replicas_to_aggregate=replicas_to_aggregate, + total_num_replicas=num_workers, + name="mnist_sync_replicas") + + train_step = opt.minimize(cross_entropy, global_step=global_step) + + if FLAGS.sync_replicas: + local_init_op = opt.local_step_init_op + if is_chief: + local_init_op = opt.chief_init_op + + ready_for_local_init_op = opt.ready_for_local_init_op + + # Initial token and chief queue runners required by the sync_replicas mode + chief_queue_runner = opt.get_chief_queue_runner() + sync_init_op = opt.get_init_tokens_op() + + init_op = tf.global_variables_initializer() + train_dir = tempfile.mkdtemp() + + if FLAGS.sync_replicas: + sv = tf.train.Supervisor( + is_chief=is_chief, + logdir=train_dir, + init_op=init_op, + local_init_op=local_init_op, + ready_for_local_init_op=ready_for_local_init_op, + recovery_wait_secs=1, + global_step=global_step) + else: + sv = tf.train.Supervisor( + is_chief=is_chief, + logdir=train_dir, + init_op=init_op, + recovery_wait_secs=1, + global_step=global_step) + + sess_config = tf.ConfigProto( + allow_soft_placement=True, + log_device_placement=False, + device_filters=["/job:ps", + "/job:worker/task:%d" % task_index]) + + # The chief worker (task_index==0) session will prepare the session, + # while the remaining workers will wait for the preparation to complete. + if is_chief: + print("Worker %d: Initializing session..." % task_index) + else: + print("Worker %d: Waiting for session to be initialized..." % + task_index) + + if FLAGS.existing_servers: + server_grpc_url = "grpc://" + task_index + print("Using existing server at: %s" % server_grpc_url) + + sess = sv.prepare_or_wait_for_session(server_grpc_url, config=sess_config) + else: + sess = sv.prepare_or_wait_for_session(server.target, config=sess_config) + + print("Worker %d: Session initialization complete." % task_index) + + if FLAGS.sync_replicas and is_chief: + # Chief worker will start the chief queue runner and call the init op. + sess.run(sync_init_op) + sv.start_queue_runners(sess, [chief_queue_runner]) + + # Perform training + time_begin = time.time() + print("Training begins @ %f" % time_begin) + + local_step = 0 + while True: + # Training feed + batch_xs, batch_ys = mnist.train.next_batch(FLAGS.batch_size) + train_feed = {x: batch_xs, y_: batch_ys} + + _, step = sess.run([train_step, global_step], feed_dict=train_feed) + local_step += 1 + + now = time.time() + print("%f: Worker %d: training step %d done (global step: %d)" % + (now, task_index, local_step, step)) + + if step >= FLAGS.train_steps: + break + + time_end = time.time() + print("Training ends @ %f" % time_end) + training_time = time_end - time_begin + print("Training elapsed time: %f s" % training_time) + + # Validation feed + val_feed = {x: mnist.validation.images, y_: mnist.validation.labels} + val_xent = sess.run(cross_entropy, feed_dict=val_feed) + print("After %d training step(s), validation cross entropy = %g" % + (FLAGS.train_steps, val_xent)) + if job_name == "worker" and task_index == 0: + run = Run.get_context() + run.log("CrossEntropy", val_xent) + + +if __name__ == "__main__": + tf.app.run() diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/tf_mnist_with_checkpoint.py b/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/tf_mnist_with_checkpoint.py new file mode 100644 index 00000000..85e80cbd --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/tf_mnist_with_checkpoint.py @@ -0,0 +1,123 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import numpy as np +import argparse +import os +import re +import tensorflow as tf + +from azureml.core import Run +from utils import load_data + +print("TensorFlow version:", tf.VERSION) + +parser = argparse.ArgumentParser() +parser.add_argument('--data-folder', type=str, dest='data_folder', help='data folder mounting point') + +parser.add_argument('--resume-from', type=str, default=None, + help='location of the model or checkpoint files from where to resume the training') +args = parser.parse_args() + + +previous_model_location = args.resume_from +# You can also use environment variable to get the model/checkpoint files location +# previous_model_location = os.path.expandvars(os.getenv("AZUREML_DATAREFERENCE_MODEL_LOCATION", None)) + +data_folder = os.path.join(args.data_folder, 'mnist') + +print('training dataset is stored here:', data_folder) + +X_train = load_data(os.path.join(data_folder, 'train-images.gz'), False) / 255.0 +X_test = load_data(os.path.join(data_folder, 'test-images.gz'), False) / 255.0 + +y_train = load_data(os.path.join(data_folder, 'train-labels.gz'), True).reshape(-1) +y_test = load_data(os.path.join(data_folder, 'test-labels.gz'), True).reshape(-1) + +print(X_train.shape, y_train.shape, X_test.shape, y_test.shape, sep='\n') +training_set_size = X_train.shape[0] + +n_inputs = 28 * 28 +n_h1 = 100 +n_h2 = 100 +n_outputs = 10 +learning_rate = 0.01 +n_epochs = 20 +batch_size = 50 + +with tf.name_scope('network'): + # construct the DNN + X = tf.placeholder(tf.float32, shape=(None, n_inputs), name='X') + y = tf.placeholder(tf.int64, shape=(None), name='y') + h1 = tf.layers.dense(X, n_h1, activation=tf.nn.relu, name='h1') + h2 = tf.layers.dense(h1, n_h2, activation=tf.nn.relu, name='h2') + output = tf.layers.dense(h2, n_outputs, name='output') + +with tf.name_scope('train'): + cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=output) + loss = tf.reduce_mean(cross_entropy, name='loss') + optimizer = tf.train.GradientDescentOptimizer(learning_rate) + train_op = optimizer.minimize(loss) + +with tf.name_scope('eval'): + correct = tf.nn.in_top_k(output, y, 1) + acc_op = tf.reduce_mean(tf.cast(correct, tf.float32)) + +init = tf.global_variables_initializer() +saver = tf.train.Saver() + +# start an Azure ML run +run = Run.get_context() + +with tf.Session() as sess: + start_epoch = 0 + if previous_model_location: + checkpoint_file_path = tf.train.latest_checkpoint(previous_model_location) + saver.restore(sess, checkpoint_file_path) + checkpoint_filename = os.path.basename(checkpoint_file_path) + num_found = re.search(r'\d+', checkpoint_filename) + if num_found: + start_epoch = int(num_found.group(0)) + print("Resuming from epoch {}".format(str(start_epoch))) + else: + init.run() + + for epoch in range(start_epoch, n_epochs): + + # randomly shuffle training set + indices = np.random.permutation(training_set_size) + X_train = X_train[indices] + y_train = y_train[indices] + + # batch index + b_start = 0 + b_end = b_start + batch_size + for _ in range(training_set_size // batch_size): + # get a batch + X_batch, y_batch = X_train[b_start: b_end], y_train[b_start: b_end] + + # update batch index for the next batch + b_start = b_start + batch_size + b_end = min(b_start + batch_size, training_set_size) + + # train + sess.run(train_op, feed_dict={X: X_batch, y: y_batch}) + # evaluate training set + acc_train = acc_op.eval(feed_dict={X: X_batch, y: y_batch}) + # evaluate validation set + acc_val = acc_op.eval(feed_dict={X: X_test, y: y_test}) + + # log accuracies + run.log('training_acc', np.float(acc_train)) + run.log('validation_acc', np.float(acc_val)) + print(epoch, '-- Training accuracy:', acc_train, '\b Validation accuracy:', acc_val) + y_hat = np.argmax(output.eval(feed_dict={X: X_test}), axis=1) + + if epoch % 5 == 0: + saver.save(sess, './outputs/', global_step=epoch) + + # saving only half of the model and resuming again from same epoch + if not previous_model_location and epoch == 10: + break + + run.log('final_acc', np.float(acc_val)) diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.ipynb b/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.ipynb new file mode 100644 index 00000000..da294e7d --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.ipynb @@ -0,0 +1,487 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Resuming Tensorflow training from previous run\n", + "In this tutorial, you will resume a mnist model in TensorFlow from a previously submitted run." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "* Understand the [architecture and terms](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture) introduced by Azure Machine Learning (AML)\n", + "* Go through the [configuration notebook](../../../configuration.ipynb) to:\n", + " * install the AML SDK\n", + " * create a workspace and its configuration file (`config.json`)\n", + "* Review the [tutorial](../train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb) on single-node TensorFlow training using the SDK" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print(\"SDK version:\", azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagnostics\n", + "Opt-in diagnostics for better experience, quality, and security of future releases." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "Diagnostics" + ] + }, + "outputs": [], + "source": [ + "from azureml.telemetry import set_diagnostics_collection\n", + "\n", + "set_diagnostics_collection(send_diagnostics=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize workspace\n", + "Initialize a [Workspace](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace) object from the existing workspace you created in the Prerequisites step. `Workspace.from_config()` creates a workspace object from the details stored in `config.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep='\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or Attach existing AmlCompute\n", + "You will need to create a [compute target](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#compute-target) for training your model. In this tutorial, you create `AmlCompute` as your training compute resource.\n", + "\n", + "**Creation of AmlCompute takes approximately 5 minutes.** If the AmlCompute with that name is already in your workspace this code will skip the creation process.\n", + "\n", + "As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read [this article](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-manage-quotas) on the default limits and how to request more quota." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "# choose a name for your cluster\n", + "cluster_name = \"gpu-cluster\"\n", + "\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing compute target.')\n", + "except ComputeTargetException:\n", + " print('Creating a new compute target...')\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6', \n", + " max_nodes=4)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + " compute_target.wait_for_completion(show_output=True)\n", + "\n", + "# use get_status() to get a detailed status for the current cluster. \n", + "print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code creates a GPU cluster. If you instead want to create a CPU cluster, provide a different VM size to the `vm_size` parameter, such as `STANDARD_D2_V2`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Upload data to datastore\n", + "To make data accessible for remote training, AML provides a convenient way to do so via a [Datastore](https://docs.microsoft.com/azure/machine-learning/service/how-to-access-data). The datastore provides a mechanism for you to upload/download data to Azure Storage, and interact with it from your remote compute targets. \n", + "\n", + "If your data is already stored in Azure, or you download the data as part of your training script, you will not need to do this step. For this tutorial, although you can download the data in your training script, we will demonstrate how to upload the training data to a datastore and access it during training to illustrate the datastore functionality." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First download the data from Yan LeCun's web site directly and save them in a data folder locally." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import urllib\n", + "\n", + "os.makedirs('./data/mnist', exist_ok=True)\n", + "\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz', filename = './data/mnist/train-images.gz')\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz', filename = './data/mnist/train-labels.gz')\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz', filename = './data/mnist/test-images.gz')\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz', filename = './data/mnist/test-labels.gz')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each workspace is associated with a default datastore. In this tutorial, we will upload the training data to this default datastore." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ds = ws.get_default_datastore()\n", + "print(ds.datastore_type, ds.account_name, ds.container_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Upload MNIST data to the default datastore." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ds.upload(src_dir='./data/mnist', target_path='mnist', overwrite=True, show_progress=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For convenience, let's get a reference to the datastore. In the next section, we can then pass this reference to our training script's `--data-folder` argument. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ds_data = ds.as_mount()\n", + "print(ds_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model on the remote compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a project directory\n", + "Create a directory that will contain all the necessary code from your local machine that you will need access to on the remote resource. This includes the training script, and any additional files your training script depends on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "script_folder = './tf-resume-training'\n", + "os.makedirs(script_folder, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copy the training script `tf_mnist_with_checkpoint.py` into this project directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "\n", + "# the training logic is in the tf_mnist_with_checkpoint.py file.\n", + "shutil.copy('./tf_mnist_with_checkpoint.py', script_folder)\n", + "\n", + "# the utils.py just helps loading data from the downloaded MNIST dataset into numpy arrays.\n", + "shutil.copy('./utils.py', script_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create an experiment\n", + "Create an [Experiment](https://docs.microsoft.com/azure/machine-learning/service/concept-azure-machine-learning-architecture#experiment) to track all the runs in your workspace for this distributed TensorFlow tutorial. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "\n", + "experiment_name = 'tf-resume-training'\n", + "experiment = Experiment(ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a TensorFlow estimator\n", + "The AML SDK's TensorFlow estimator enables you to easily submit TensorFlow training jobs for both single-node and distributed runs. For more information on the TensorFlow estimator, refer [here](https://docs.microsoft.com/azure/machine-learning/service/how-to-train-tensorflow).\n", + "\n", + "The TensorFlow estimator also takes a `framework_version` parameter -- if no version is provided, the estimator will default to the latest version supported by AzureML. Use `TensorFlow.get_supported_versions()` to get a list of all versions supported by your current SDK version or see the [SDK documentation](https://docs.microsoft.com/en-us/python/api/azureml-train-core/azureml.train.dnn?view=azure-ml-py) for the versions supported in the most current release." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.dnn import TensorFlow\n", + "\n", + "script_params={\n", + " '--data-folder': ds_data\n", + "}\n", + "\n", + "estimator= TensorFlow(source_directory=script_folder,\n", + " compute_target=compute_target,\n", + " script_params=script_params,\n", + " entry_script='tf_mnist_with_checkpoint.py')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above code, we passed our training data reference `ds_data` to our script's `--data-folder` argument. This will 1) mount our datastore on the remote compute and 2) provide the path to the data zip file on our datastore." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job\n", + "### Run your experiment by submitting your estimator object. Note that this call is asynchronous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = experiment.submit(estimator)\n", + "print(run)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Monitor your run\n", + "You can monitor the progress of the run with a Jupyter widget. Like the run submission, the widget is asynchronous and provides live updates every 10-15 seconds until the job completes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, you can block until the script has completed training before running more code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Now let's resume the training from the above run" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, we will get the DataPath to the outputs directory of the above run which\n", + "contains the checkpoint files and/or model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model_location = run._get_outputs_datapath()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we will create a new TensorFlow estimator and pass in the model location. On passing 'resume_from' parameter, a new entry in script_params is created with key as 'resume_from' and value as the model/checkpoint files location and the location gets automatically mounted on the compute target." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.dnn import TensorFlow\n", + "\n", + "script_params={\n", + " '--data-folder': ds_data\n", + "}\n", + "\n", + "estimator2 = TensorFlow(source_directory=script_folder,\n", + " compute_target=compute_target,\n", + " script_params=script_params,\n", + " entry_script='tf_mnist_with_checkpoint.py',\n", + " resume_from=model_location)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now you can submit the experiment and it should resume from previous run's checkpoint files." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run2 = experiment.submit(estimator2)\n", + "print(run2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run2.wait_for_completion(show_output=True)" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "hesuri" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + }, + "msauthor": "hesuri" + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.yml b/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.yml new file mode 100644 index 00000000..c814eef5 --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.yml @@ -0,0 +1,5 @@ +name: train-tensorflow-resume-training +dependencies: +- pip: + - azureml-sdk + - azureml-widgets diff --git a/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/utils.py b/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/utils.py new file mode 100644 index 00000000..98170ada --- /dev/null +++ b/how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/utils.py @@ -0,0 +1,27 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import gzip +import numpy as np +import struct + + +# load compressed MNIST gz files and return numpy arrays +def load_data(filename, label=False): + with gzip.open(filename) as gz: + struct.unpack('I', gz.read(4)) + n_items = struct.unpack('>I', gz.read(4)) + if not label: + n_rows = struct.unpack('>I', gz.read(4))[0] + n_cols = struct.unpack('>I', gz.read(4))[0] + res = np.frombuffer(gz.read(n_items[0] * n_rows * n_cols), dtype=np.uint8) + res = res.reshape(n_items[0], n_rows * n_cols) + else: + res = np.frombuffer(gz.read(n_items[0]), dtype=np.uint8) + res = res.reshape(n_items[0], 1) + return res + + +# one-hot encode a 1-D array +def one_hot_encode(array, num_of_classes): + return np.eye(num_of_classes)[array.reshape(-1)] diff --git a/how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb b/how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb index 83041a51..84264fa6 100644 --- a/how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb +++ b/how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb @@ -100,7 +100,7 @@ "\n", "# Check core SDK version number\n", "\n", - "print(\"This notebook was created using SDK version 1.0.60, you are currently running version\", azureml.core.VERSION)" + "print(\"This notebook was created using SDK version 1.0.62, you are currently running version\", azureml.core.VERSION)" ] }, { diff --git a/how-to-use-azureml/training-with-deep-learning/README.md b/how-to-use-azureml/training-with-deep-learning/README.md index 6a842f45..77a64b1b 100644 --- a/how-to-use-azureml/training-with-deep-learning/README.md +++ b/how-to-use-azureml/training-with-deep-learning/README.md @@ -3,18 +3,10 @@ These examples show you: 1. [How to use the Estimator pattern in Azure ML](how-to-use-estimator) -2. [Train using TensorFlow Estimator and tune hyperparameters using Hyperdrive](train-hyperparameter-tune-deploy-with-tensorflow) -3. [Train using Pytorch Estimator and tune hyperparameters using Hyperdrive](train-hyperparameter-tune-deploy-with-pytorch) -4. [Train using Keras and tune hyperparameters using Hyperdrive](train-hyperparameter-tune-deploy-with-keras) -5. [Train using Chainer Estimator and tune hyperparameters using Hyperdrive](train-hyperparameter-tune-deploy-with-chainer) -6. [Distributed training using TensorFlow and Parameter Server](distributed-tensorflow-with-parameter-server) -7. [Distributed training using TensorFlow and Horovod](distributed-tensorflow-with-horovod) -8. [Distributed training using Pytorch and Horovod](distributed-pytorch-with-horovod) -9. [Distributed training using CNTK and custom Docker image](distributed-cntk-with-custom-docker) -10. [Distributed training using Chainer](distributed-chainer) -11. [Export run history records to Tensorboard](export-run-history-to-tensorboard) -12. [Use TensorBoard to monitor training execution](tensorboard) -13. [Resuming training from previous run](train-tensorflow-resume-training) +2. [Train using Keras and tune hyperparameters using Hyperdrive](train-hyperparameter-tune-deploy-with-keras) +3. [Distributed training using CNTK and custom Docker image](distributed-cntk-with-custom-docker) +4. [Export run history records to Tensorboard](export-run-history-to-tensorboard) +5. [Use TensorBoard to monitor training execution](tensorboard) Learn more about how to use `Estimator` class to [train deep neural networks with Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/service/how-to-train-ml-models). diff --git a/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/keras_mnist.py b/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/keras_mnist.py index 9f2529e6..e4d17706 100644 --- a/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/keras_mnist.py +++ b/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/keras_mnist.py @@ -4,6 +4,7 @@ import numpy as np import argparse import os +import glob import matplotlib.pyplot as plt @@ -36,11 +37,15 @@ data_folder = args.data_folder print('training dataset is stored here:', data_folder) -X_train = load_data(os.path.join(data_folder, 'train-images.gz'), False) / 255.0 -X_test = load_data(os.path.join(data_folder, 'test-images.gz'), False) / 255.0 +X_train_path = glob.glob(os.path.join(data_folder, '**/train-images-idx3-ubyte.gz'), recursive=True)[0] +X_test_path = glob.glob(os.path.join(data_folder, '**/t10k-images-idx3-ubyte.gz'), recursive=True)[0] +y_train_path = glob.glob(os.path.join(data_folder, '**/train-labels-idx1-ubyte.gz'), recursive=True)[0] +y_test_path = glob.glob(os.path.join(data_folder, '**/t10k-labels-idx1-ubyte.gz'), recursive=True)[0] -y_train = load_data(os.path.join(data_folder, 'train-labels.gz'), True).reshape(-1) -y_test = load_data(os.path.join(data_folder, 'test-labels.gz'), True).reshape(-1) +X_train = load_data(X_train_path, False) / 255.0 +X_test = load_data(X_test_path, False) / 255.0 +y_train = load_data(y_train_path, True).reshape(-1) +y_test = load_data(y_test_path, True).reshape(-1) training_set_size = X_train.shape[0] diff --git a/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/train-hyperparameter-tune-deploy-with-keras.ipynb b/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/train-hyperparameter-tune-deploy-with-keras.ipynb index 913fb842..45ae4330 100644 --- a/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/train-hyperparameter-tune-deploy-with-keras.ipynb +++ b/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/train-hyperparameter-tune-deploy-with-keras.ipynb @@ -132,14 +132,18 @@ }, { "cell_type": "markdown", - "metadata": { - "nbpresent": { - "id": "defe921f-8097-44c3-8336-8af6700804a7" - } - }, + "metadata": {}, "source": [ - "## Download MNIST dataset\n", - "In order to train on the MNIST dataset we will first need to download it from Yan LeCun's web site directly and save them in a `data` folder locally." + "## Explore data\n", + "\n", + "Before you train a model, you need to understand the data that you are using to train it. In this section you learn how to:\n", + "\n", + "* Download the MNIST dataset\n", + "* Display some sample images\n", + "\n", + "### Download the MNIST dataset\n", + "\n", + "Download the MNIST dataset and save the files into a `data` directory locally. Images and labels for both training and testing are downloaded." ] }, { @@ -148,47 +152,42 @@ "metadata": {}, "outputs": [], "source": [ - "import urllib\n", + "import urllib.request\n", "\n", - "os.makedirs('./data/mnist', exist_ok=True)\n", + "data_folder = os.path.join(os.getcwd(), 'data')\n", + "os.makedirs(data_folder, exist_ok=True)\n", "\n", - "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz', filename='./data/mnist/train-images.gz')\n", - "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz', filename='./data/mnist/train-labels.gz')\n", - "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz', filename='./data/mnist/test-images.gz')\n", - "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz', filename='./data/mnist/test-labels.gz')" + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz', filename=os.path.join(data_folder, 'train-images.gz'))\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz', filename=os.path.join(data_folder, 'train-labels.gz'))\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz', filename=os.path.join(data_folder, 'test-images.gz'))\n", + "urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz', filename=os.path.join(data_folder, 'test-labels.gz'))" ] }, { "cell_type": "markdown", - "metadata": { - "nbpresent": { - "id": "c3f2f57c-7454-4d3e-b38d-b0946cf066ea" - } - }, + "metadata": {}, "source": [ - "## Show some sample images\n", - "Let's load the downloaded compressed file into numpy arrays using some utility functions included in the `utils.py` library file from the current folder. Then we use `matplotlib` to plot 30 random images from the dataset along with their labels." + "### Display some sample images\n", + "\n", + "Load the compressed files into `numpy` arrays. Then use `matplotlib` to plot 30 random images from the dataset with their labels above them. Note this step requires a `load_data` function that's included in an `utils.py` file. This file is included in the sample folder. Please make sure it is placed in the same folder as this notebook. The `load_data` function simply parses the compressed files into numpy arrays." ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "nbpresent": { - "id": "396d478b-34aa-4afa-9898-cdce8222a516" - } - }, + "metadata": {}, "outputs": [], "source": [ + "# make sure utils.py is in the same directory as this code\n", "from utils import load_data, one_hot_encode\n", "\n", - "# note we also shrink the intensity values (X) from 0-255 to 0-1. This helps the neural network converge faster.\n", - "X_train = load_data('./data/mnist/train-images.gz', False) / 255.0\n", - "y_train = load_data('./data/mnist/train-labels.gz', True).reshape(-1)\n", - "\n", - "X_test = load_data('./data/mnist/test-images.gz', False) / 255.0\n", - "y_test = load_data('./data/mnist/test-labels.gz', True).reshape(-1)\n", + "# note we also shrink the intensity values (X) from 0-255 to 0-1. This helps the model converge faster.\n", + "X_train = load_data(os.path.join(data_folder, 'train-images.gz'), False) / 255.0\n", + "X_test = load_data(os.path.join(data_folder, 'test-images.gz'), False) / 255.0\n", + "y_train = load_data(os.path.join(data_folder, 'train-labels.gz'), True).reshape(-1)\n", + "y_test = load_data(os.path.join(data_folder, 'test-labels.gz'), True).reshape(-1)\n", "\n", + "# now let's show some randomly chosen images from the training set.\n", "count = 0\n", "sample_size = 30\n", "plt.figure(figsize = (16, 6))\n", @@ -197,8 +196,8 @@ " plt.subplot(1, sample_size, count)\n", " plt.axhline('')\n", " plt.axvline('')\n", - " plt.text(x = 10, y = -10, s = y_train[i], fontsize = 18)\n", - " plt.imshow(X_train[i].reshape(28, 28), cmap = plt.cm.Greys)\n", + " plt.text(x=10, y=-10, s=y_train[i], fontsize=18)\n", + " plt.imshow(X_train[i].reshape(28, 28), cmap=plt.cm.Greys)\n", "plt.show()" ] }, @@ -206,8 +205,19 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Upload MNIST dataset to default datastore \n", - "A [datastore](https://docs.microsoft.com/azure/machine-learning/service/how-to-access-data) is a place where data can be stored that is then made accessible to a Run either by means of mounting or copying the data to the compute target. A datastore can either be backed by an Azure Blob Storage or and Azure File Share (ADLS will be supported in the future). For simple data handling, each workspace provides a default datastore that can be used, in case the data is not already in Blob Storage or File Share." + "Now you have an idea of what these images look like and the expected prediction outcome." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nbpresent": { + "id": "defe921f-8097-44c3-8336-8af6700804a7" + } + }, + "source": [ + "## Create a FileDataset\n", + "A FileDataset references one or multiple files in your datastores or public urls. The files can be of any format. FileDataset provides you with the ability to download or mount the files to your compute. By creating a dataset, you create a reference to the data source location. If you applied any subsetting transformations to the dataset, they will be stored in the dataset as well. The data remains in its existing location, so no extra storage cost is incurred. [Learn More](https://aka.ms/azureml/howto/createdatasets)" ] }, { @@ -216,14 +226,22 @@ "metadata": {}, "outputs": [], "source": [ - "ds = ws.get_default_datastore()" + "from azureml.core.dataset import Dataset\n", + "\n", + "web_paths = [\n", + " 'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz',\n", + " 'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz',\n", + " 'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz',\n", + " 'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz'\n", + " ]\n", + "dataset = Dataset.File.from_files(path = web_paths)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "In this next step, we will upload the training and test set into the workspace's default datastore, which we will then later be mount on an `AmlCompute` cluster for training." + "Use the `register()` method to register datasets to your workspace so they can be shared with others, reused across various experiments, and referred to by name in your training script." ] }, { @@ -232,7 +250,10 @@ "metadata": {}, "outputs": [], "source": [ - "ds.upload(src_dir='./data/mnist', target_path='mnist', overwrite=True, show_progress=True)" + "dataset = dataset.register(workspace = ws,\n", + " name = 'mnist dataset',\n", + " description='training and test dataset',\n", + " create_new_version=True)" ] }, { @@ -345,7 +366,7 @@ "source": [ "### Azure ML concepts \n", "Please note the following three things in the code below:\n", - "1. The script accepts arguments using the argparse package. In this case there is one argument `--data_folder` which specifies the file system folder in which the script can find the MNIST data\n", + "1. The script accepts arguments using the argparse package. In this case there is one argument `--data_folder` which specifies the FileDataset in which the script can find the MNIST data\n", "```\n", " parser = argparse.ArgumentParser()\n", " parser.add_argument('--data_folder')\n", @@ -384,6 +405,36 @@ "The TensorFlow estimator is providing a simple way of launching a TensorFlow training job on a compute target. It will automatically provide a docker image that has TensorFlow installed. In this case, we add `keras` package (for the Keras framework obviously), and `matplotlib` package for plotting a \"Loss vs. Accuracy\" chart and record it in run history." ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.dataset import Dataset\n", + "\n", + "dataset = Dataset.get_by_name(ws, 'mnist dataset')\n", + "\n", + "# list the files referenced by mnist dataset\n", + "dataset.to_path()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.environment import Environment\n", + "from azureml.core.conda_dependencies import CondaDependencies\n", + "\n", + "# set up environment\n", + "env = Environment('my_env')\n", + "cd = CondaDependencies.create(pip_packages=['keras','azureml-sdk','tensorflow-gpu','matplotlib','azureml-dataprep[pandas,fuse]>=1.1.14'])\n", + "\n", + "env.python.conda_dependencies = cd" + ] + }, { "cell_type": "code", "execution_count": null, @@ -393,7 +444,7 @@ "from azureml.train.dnn import TensorFlow\n", "\n", "script_params = {\n", - " '--data-folder': ds.path('mnist').as_mount(),\n", + " '--data-folder': dataset.as_named_input('mnist').as_mount(),\n", " '--batch-size': 50,\n", " '--first-layer-neurons': 300,\n", " '--second-layer-neurons': 100,\n", @@ -403,25 +454,8 @@ "est = TensorFlow(source_directory=script_folder,\n", " script_params=script_params,\n", " compute_target=compute_target, \n", - " pip_packages=['keras', 'matplotlib'],\n", " entry_script='keras_mnist.py', \n", - " use_gpu=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And if you are curious, this is what the mounting point looks like:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(ds.path('mnist').as_mount())" + " environment_definition= env)" ] }, { @@ -698,11 +732,10 @@ "outputs": [], "source": [ "est = TensorFlow(source_directory=script_folder,\n", - " script_params={'--data-folder': ds.path('mnist').as_mount()},\n", + " script_params={'--data-folder': dataset.as_named_input('mnist').as_mount()},\n", " compute_target=compute_target,\n", - " pip_packages=['keras', 'matplotlib'],\n", " entry_script='keras_mnist.py', \n", - " use_gpu=True)" + " environment_definition= env)" ] }, { @@ -911,7 +944,7 @@ "metadata": {}, "source": [ "### Deploy to ACI\n", - "We are almost ready to deploy. Create a deployment configuration and specify the number of CPUs and gigbyte of RAM needed for your ACI container. " + "We are almost ready to deploy. Create the inference configuration and deployment configuration and deploy to ACI. This cell will run for about 7-8 minutes." ] }, { @@ -921,73 +954,35 @@ "outputs": [], "source": [ "from azureml.core.webservice import AciWebservice\n", - "\n", - "aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, \n", - " auth_enabled=True, # this flag generates API keys to secure access\n", - " memory_gb=1, \n", - " tags={'name':'mnist', 'framework': 'Keras'},\n", - " description='Keras MLP on MNIST')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Deployment Process\n", - "Now we can deploy. **This cell will run for about 7-8 minutes**. Behind the scene, it will do the following:\n", - "1. **Build Docker image** \n", - "Build a Docker image using the scoring file (`score.py`), the environment file (`myenv.yml`), and the `model` object. \n", - "2. **Register image** \n", - "Register that image under the workspace. \n", - "3. **Ship to ACI** \n", - "And finally ship the image to the ACI infrastructure, start up a container in ACI using that image, and expose an HTTP endpoint to accept REST client calls." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.core.image import ContainerImage\n", - "\n", - "imgconfig = ContainerImage.image_configuration(execution_script=\"score.py\", \n", - " runtime=\"python\", \n", - " conda_file=\"myenv.yml\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%time\n", + "from azureml.core.model import InferenceConfig\n", "from azureml.core.webservice import Webservice\n", + "from azureml.core.model import Model\n", "\n", - "service = Webservice.deploy_from_model(workspace=ws,\n", - " name='keras-mnist-svc',\n", - " deployment_config=aciconfig,\n", - " models=[model],\n", - " image_config=imgconfig)\n", + "inference_config = InferenceConfig(runtime= \"python\", \n", + " entry_script=\"score.py\",\n", + " conda_file=\"myenv.yml\")\n", "\n", - "service.wait_for_deployment(show_output=True)" + "aciconfig = AciWebservice.deploy_configuration(cpu_cores=1,\n", + " auth_enabled=True, # this flag generates API keys to secure access\n", + " memory_gb=1,\n", + " tags={'name': 'mnist', 'framework': 'Keras'},\n", + " description='Keras MLP on MNIST')\n", + "\n", + "service = Model.deploy(workspace=ws, \n", + " name='keras-mnist-svc', \n", + " models=[model], \n", + " inference_config=inference_config, \n", + " deployment_config=aciconfig)\n", + "\n", + "service.wait_for_deployment(True)\n", + "print(service.state)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "**Tip: If something goes wrong with the deployment, the first thing to look at is the logs from the service by running the following command:**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(service.get_logs())" + "**Tip: If something goes wrong with the deployment, the first thing to look at is the logs from the service by running the following command:** `print(service.get_logs())`" ] }, { @@ -1047,7 +1042,7 @@ " font_color = 'red' if y_test[s] != result[i] else 'black'\n", " clr_map = plt.cm.gray if y_test[s] != result[i] else plt.cm.Greys\n", " \n", - " plt.text(x=10, y=-10, s=y_hat[s], fontsize=18, color=font_color)\n", + " plt.text(x=10, y=-10, s=y_test[s], fontsize=18, color=font_color)\n", " plt.imshow(X_test[s].reshape(28, 28), cmap=clr_map)\n", " \n", " i = i + 1\n", @@ -1106,8 +1101,7 @@ "metadata": {}, "source": [ "Let's look at the workspace after the web service was deployed. You should see \n", - "* a registered model named 'keras-mlp-mnist' and with the id 'model:1'\n", - "* an image called 'keras-mnist-svc' and with a docker image location pointing to your workspace's Azure Container Registry (ACR) \n", + "* a registered model named 'keras-mlp-mnist' and with the id 'model:1' \n", "* a webservice called 'keras-mnist-svc' with some scoring URL" ] }, @@ -1121,10 +1115,6 @@ "for name, model in models.items():\n", " print(\"Model: {}, ID: {}\".format(name, model.id))\n", " \n", - "images = ws.images\n", - "for name, image in images.items():\n", - " print(\"Image: {}, location: {}\".format(name, image.image_location))\n", - " \n", "webservices = ws.webservices\n", "for name, webservice in webservices.items():\n", " print(\"Webservice: {}, scoring URI: {}\".format(name, webservice.scoring_uri))" @@ -1169,7 +1159,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.7" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/how-to-use-azureml/training/README.md b/how-to-use-azureml/training/README.md index d32fd1b1..39d2d6b7 100644 --- a/how-to-use-azureml/training/README.md +++ b/how-to-use-azureml/training/README.md @@ -9,4 +9,4 @@ Follow these sample notebooks to learn: 5. [Train in an HDI Spark cluster](train-in-spark): train a Spark ML model using an HDInsight Spark cluster as compute target. 6. [Train and hyperparameter tune on Iris Dataset with Scikit-learn](train-hyperparameter-tune-deploy-with-sklearn): train a model using the Scikit-learn estimator and tune hyperparameters with Hyperdrive. - ![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/training/README.png) \ No newline at end of file + ![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/training/README.png) diff --git a/how-to-use-azureml/work-with-data/datasets/README.md b/how-to-use-azureml/work-with-data/datasets/README.md index a08adf6c..2a4adb53 100644 --- a/how-to-use-azureml/work-with-data/datasets/README.md +++ b/how-to-use-azureml/work-with-data/datasets/README.md @@ -12,9 +12,10 @@ With Azure Machine Learning datasets, you can: ## Learn how to use Azure Machine Learning datasets: * [Create and register datasets](https://aka.ms/azureml/howto/createdatasets) +* Use [Datasets in training](datasets-tutorial/train-with-datasets.ipynb) * Use TabularDatasets in [automated machine learning training](https://aka.ms/automl-dataset) -* Use TabularDatasets in [training](https://aka.ms/tabulardataset-samplenotebook) -* Use FileDatasets in [training](https://aka.ms/filedataset-samplenotebook) +* Use FileDatasets in [image classification](https://aka.ms/filedataset-samplenotebook) +* Use FileDatasets in [deep learning with hyperparameter tuning](https://aka.ms/filedataset-hyperdrive) * For existing Dataset users: [Dataset API change notice](dataset-api-change-notice.md) diff --git a/how-to-use-azureml/work-with-data/datasets/datasets-diff/datasets-diff.ipynb b/how-to-use-azureml/work-with-data/datasets/datasets-diff/datasets-diff.ipynb new file mode 100644 index 00000000..66b5d5f0 --- /dev/null +++ b/how-to-use-azureml/work-with-data/datasets/datasets-diff/datasets-diff.ipynb @@ -0,0 +1,796 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks//notebooks/work-with-data/datasets/datasets-tutorial/datasets-diff.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#

    Detect drift using Dataset Diff API
    \n", + "\n", + "
    \n", + "\n", + " This notebook provides step by step instructions on how to compare two different datasets. It includes two parts\u00ef\u00bc\u0161\n", + "
        ☑ compare two datasets using local compute;\n", + "
        ☑ compare two datasets remotely using Azure ML compute.\n", + "
    " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prerequisites and Setup\n", + "\n", + "This section is shared by both local and remote execution, you may need duplicate this section if splitting this notebook into separate local/remote notebooks.\n", + "\n", + "\n", + "## Prerequisites\n", + "\n", + "### Install Supporting Packages" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "scrolled": true + }, + "source": [ + "    pip install scipy
    \n", + "    pip install tqdm
    \n", + "    pip install pandas
    \n", + "    pip install pyarrow
    \n", + "    pip install ipywidgets
    \n", + "    pip install lightgbm
    \n", + "    pip install matplotlib
    " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Install AzureML Packages" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "scrolled": true + }, + "source": [ + "    pip install --user azureml-core
    \n", + "\n", + "    pip install --user azureml-opendatasets
    " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Import Dependencies" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "import warnings\n", + "import requests\n", + "import pandas as pd\n", + "import numpy as np\n", + "import ipywidgets as widgets\n", + "\n", + "import azureml.core\n", + "\n", + "from io import StringIO\n", + "from tqdm import tqdm\n", + "from IPython import display\n", + "from datetime import datetime, timedelta\n", + "from azureml.core import Datastore, Dataset\n", + "from azureml.opendatasets import NoaaIsdWeather\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Declare Variables For Demo\n", + "\n", + "Feel free to customize them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "year = 2016\n", + "month = 1\n", + "date = 1\n", + "b_days = 2 # for baseline\n", + "t_days = 7 # for target\n", + "\n", + "local_folder = \"demo\"\n", + "baseline_file = 'baseline.csv'\n", + "\n", + "feature_columns = ['usaf', 'wban', 'latitude', 'longitude', 'elevation', 'temperature', 'p_k']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare Datasets\n", + "\n", + "The diff calcualtion is always between two datasets, here for demo, we use \"baseline\" and \"target\" to present them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "os.makedirs(local_folder, exist_ok=True)\n", + "\n", + "local_baseline = os.path.join(local_folder, baseline_file)\n", + "\n", + "start_date = datetime(year, month, date)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare Baseline Dataset\n", + "Retrieve wether data from NOAA for declared days (b_days declared in above cell). It may takes 2 minutes for 2 days." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "start = start_date\n", + "isd = NoaaIsdWeather(start, start + timedelta(days=b_days))\n", + "\n", + "baseline_df = isd.to_pandas_dataframe()\n", + "baseline_df.head()\n", + "\n", + "baseline_df.to_csv(local_baseline)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare Target Dataset(s)\n", + "\n", + "Retrieve wether data from NOAA for declared days (t_days declared in above cell). It may takes 5 minutes for 7 days." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for day in tqdm(range(0, t_days)):\n", + " start = start_date + timedelta(days=day)\n", + " isd = NoaaIsdWeather(start, start + timedelta(days=1))\n", + "\n", + " target_df = isd.to_pandas_dataframe()\n", + " target_df = target_df[feature_columns]\n", + " target_df.to_csv(os.path.join(local_folder, 'target_{}.csv'.format(day)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Predefine Methods For Result Processing\n", + "\n", + "## Parse and Present Datasets' Diff Results\n", + "\n", + "Each diff result is a list of \"DiffMetric\" objects. Typically each objec present a detailed measurement output for a specific column.\n", + "

    Below is an example of \"DiffMetric\" object:
    \n", + "\n", + "
        {  \n", + "
           'name':'percentage_difference_median',                        --> measurement name\n", + "
           'value':0.01270670472603889,                                  --> the result value a number to indicate how big the diff is for current measurement.\n", + "
           'extended_properties':{  \n", + "

              'action_id':'3d3da05d-0871-4cc9-93cb-f43859aae13b',        --> (remote calculation only) action id\n", + "
              'from_dataset_id':'12edc566-8803-4e0f-ba91-c2ee05eeddee',  --> (remote calculation only) baseline dataset\n", + "
              'from_dataset_version':'1',                                --> (remote calculation only) baseline version\n", + "
              'to_dataset_id':'9b85c9ba-50c2-4227-a9bc-91dee4a18228',    --> (remote calculation only) target dataset\n", + "
              'to_dataset_version':'1',                                  --> (remote calculation only) target version\n", + "

              'column_name':'elevation',                                 --> column name in dataset, 
                                                                             could be ['name':'datadrift_coefficient'] for dataset level diff\n", + "
              'metric_category':'profile_diff'                           --> category, could be :
                                                                                 dataset_drift (dataset level)
                                                                                 profile_diff (column level)
                                                                                 statistical_distance (column level)\n", + "
           }\n", + "
        }\n", + "
    " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def parse_result(rst, columns, measurements):\n", + " columnlist = list(columns)\n", + " columnlist.insert(0, \"measurements \\ columns\")\n", + " measurementlist = list(measurements)\n", + " \n", + " daily_result = []\n", + " daily_result.append(columnlist)\n", + " \n", + " drift = None\n", + " daily_contribution = {}\n", + " \n", + " for m in measurements:\n", + " emptylist = ([''] * len(columns))\n", + " emptylist.insert(0, m)\n", + " daily_result.append(emptylist)\n", + "\n", + " for r in rst:\n", + " # get dataset level diff (drift)\n", + " if r.name == \"datadrift_coefficient\":\n", + " drift = r.value\n", + " # get diff (drift) contribution for each column:\n", + " elif r.name == \"datadrift_contribution\":\n", + " daily_contribution[r.extended_properties[\"column_name\"]] = r.value\n", + " # get column level diff measurements\n", + " else:\n", + " if \"column_name\" in r.extended_properties:\n", + " col = r.extended_properties[\"column_name\"]\n", + " msm = r.name\n", + " val = r.value\n", + " cid = columnlist.index(col)\n", + " kid = measurementlist.index(msm) + 1\n", + " daily_result[kid][cid] = val\n", + "\n", + " return daily_result, drift, daily_contribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Present Dataset Level Diff (aka drift)\n", + "\n", + "This method will generate two graphs, the left graph presents dataset level difference for all compared baseline-target pairs, the right graph presents dataset level difference contribution for each column so that we know which column impacts more." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import matplotlib.dates as mdates\n", + "import matplotlib.pyplot as plt \n", + "import matplotlib as mpl\n", + "\n", + "def show_diff(drift_metrics, dates, columns, drift_contributions, summary_contribute, bottoms_contribute):\n", + " drifts = [drift_metrics[day] for day in drift_metrics]\n", + " daily_summary_contribution = list(summary_contribute.values())\n", + " xrange = pd.date_range(dates[0], dates[-1], freq='D')\n", + "\n", + " figure = plt.figure(figsize=(16, 4))\n", + " plt.tight_layout()\n", + "\n", + " # left graph\n", + " ax1 = plt.subplot(1, 2, 1)\n", + " ax1.grid()\n", + " plt.sca(ax1)\n", + " plt.title(\"Diff(Drift) Trend\\n\", fontsize=20)\n", + " plt.xticks(rotation=30)\n", + " plt.xlabel(\"Date\", fontsize=16)\n", + " plt.ylabel(\"Drift Coefficent\", fontsize=16)\n", + " plt.plot_date(dates, drifts, '-r', marker='.', linewidth=0.5, markersize=5)\n", + "\n", + " # right graph\n", + " ax2 = plt.subplot(1, 2, 2)\n", + " plt.sca(ax2)\n", + " plt.title(\"Drift Contribution of columns\\n\", fontsize=20)\n", + " plt.xticks(xrange, rotation=30)\n", + " plt.xlabel(\"Date\", fontsize=16)\n", + " plt.ylabel(\"Drift Contribution\", fontsize=16)\n", + "\n", + " yvals = ax2.get_yticks()\n", + " ax2.set_yticklabels(['{:,.2%}'.format(v) for v in yvals])\n", + " ax2.xaxis.set_major_formatter(mdates.DateFormatter('%Y%m-%d'))\n", + "\n", + " for c in columns:\n", + " contribution = []\n", + " for dt in drift_contributions:\n", + " contribution.append(drift_contributions[dt][c])\n", + " bar_ratio = [x / y for x, y in zip(contribution, daily_summary_contribution)]\n", + "\n", + " ax2.bar(dates, height=bar_ratio, bottom=bottoms_contribute)\n", + " bottoms_contribute = [x + y for x, y in zip(bottoms_contribute, bar_ratio)]\n", + "\n", + " plt.legend(columns)\n", + "\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Execute Datasets' Diff Calculation Locally\n", + "\n", + "Local execution let you to run in a Jupyter Notebook or Code editor in a local computer.\n", + "\n", + "## Calculate Dataset Diff At Local\n", + "\n", + "### Create Baseline Dataset\n", + "\n", + "Create baseline dataset object from the retrieved baseline data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Dataset\n", + "\n", + "baseline = Dataset.auto_read_files(local_baseline, include_path=True)\n", + "\n", + "# The baseline data is not filtered by feature columns list, thus all retrieved data columns will be listed below.\n", + "# You'll see \"Column1\" in the output, which is a default name added when the original column is not available.\n", + "baseline.get_profile()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Target Datasets\n", + "\n", + "Create target dataset objects from retrieved target data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "targets = {}\n", + "\n", + "for day in tqdm(range(0, t_days)):\n", + " target = Dataset.auto_read_files(os.path.join(local_folder, 'target_{}.csv'.format(day)))\n", + " targets[day] = target" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Calculate Diff Between Each Target Dataset And Baseline Dataset\n", + "\n", + "Compare each target dataset with baseline dataset to calculate diff between them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "buf = {}\n", + "\n", + "columns = set()\n", + "measurements = set()\n", + "\n", + "for day in tqdm(range(0, t_days)):\n", + " diff_action = baseline.diff(rhs_dataset=targets[day])\n", + " diff_action.wait_for_completion()\n", + " \n", + " dt = (start_date + timedelta(days=day)).strftime(\"%Y-%m-%d\")\n", + " buf[dt] = diff_action._result\n", + " \n", + " for r in diff_action._result:\n", + " if r.name not in measurements:\n", + " measurements.add(r.name)\n", + " if \"column_name\" in r.extended_properties and r.extended_properties[\"column_name\"] not in columns:\n", + " columns.add(r.extended_properties[\"column_name\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parse And Present Local Execution Results\n", + "\n", + "\n", + "
    The diff outputs usually contains two different level information:\n", + "
        1. General diff, aka dataset level diff. The output is a number between 0 and 1 to indicate what level the diff is. This dataset level diff is also called drift between two datasets.\n", + "
        2. Detailed diff, aka column level diff. The output is a metrics organized like a 2-D array. One dimension is column names, that is why it's in column level. The other dimension are measurements. The diff calculation actually includes variuos measurements from different perspectives, each measurement will generate an index for each column to present how big impacts this column contributed.\n", + "
    \n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Parse and List Column Level Diff Results\n", + "\n", + "Here will iteratively list all details per each measurement per column calculated." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import DataFrame\n", + "\n", + "dates = []\n", + "drift_metrics = {}\n", + "drift_contributions = {}\n", + "summary_contribute = {}\n", + "bottoms_contribute = []\n", + "\n", + "for dt, rst in buf.items():\n", + " dates.append(dt)\n", + " print(\"\\n---------------------------------------- Result of {} ----------------------------------------\".format(dt))\n", + " \n", + " daily_result, drift, daily_contribution = parse_result(rst, columns, measurements)\n", + " drift_metrics[dt] = drift\n", + " drift_contributions[dt] = daily_contribution\n", + "\n", + " sum_contribution = 0\n", + " bottoms_contribute.append(0)\n", + " for col, val in daily_contribution.items():\n", + " sum_contribution += val\n", + " summary_contribute[dt] = sum_contribution\n", + "\n", + " \n", + " display.display(pd.DataFrame(daily_result))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Present Dataset Level Diff (aka drift) In Graphs\n", + "\n", + "The left graph presents dataset level difference for all compared baseline-target pairs, the right graph presents dataset level difference contribution for each column so that we know which column impacts more." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "show_diff(drift_metrics, dates, columns, drift_contributions, summary_contribute, bottoms_contribute)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Excute Datasets's Diff Calculation Remotely\n", + "\n", + "Remote execution let you to data compare on more powerful computes - Machine Learning Compute clusters." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare Remote Environment\n", + "### Get Workspace\n", + "\n", + "
    If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, check the configuration notebook first if you haven't already to establish your connection to the AzureML Workspace.\n", + "
    " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.workspace import Workspace\n", + "from azureml.core.authentication import InteractiveLoginAuthentication\n", + "\n", + "ws = Workspace.from_config()\n", + "\n", + "print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep=\"\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Compute Resource For Calculation\n", + "Check if compute resouce exists and create a new one if not." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import AmlCompute, ComputeTarget\n", + "\n", + "existing = False\n", + "del_cmpt = False\n", + "cts = ws.compute_targets\n", + "\n", + "if (ws.DEFAULT_CPU_CLUSTER_NAME in cts and cts[ws.DEFAULT_CPU_CLUSTER_NAME].type == 'AmlCompute'):\n", + " existing = True\n", + " aml_compute = cts[ws.DEFAULT_CPU_CLUSTER_NAME]\n", + " \n", + "if not existing:\n", + " aml_compute = AmlCompute.create(ws,ws.DEFAULT_CPU_CLUSTER_NAME,ws.DEFAULT_CPU_CLUSTER_CONFIGURATION)\n", + " aml_compute.wait_for_completion(show_output=True)\n", + " del_cmpt = True" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Upload Sample Data To Datastore\n", + "\n", + "Upload data files to the blob storage in Azure ML workspace." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Datastore, Dataset\n", + "import azureml.data\n", + "from azureml.data.azure_storage_datastore import AzureFileDatastore, AzureBlobDatastore\n", + "\n", + "remote_data_path ='demo'\n", + "\n", + "dstore = ws.get_default_datastore()\n", + "dstore.upload_files([local_baseline],\n", + " target_path=remote_data_path,\n", + " overwrite=True,\n", + " show_progress=True)\n", + "\n", + "for day in tqdm(range(0, t_days)):\n", + " target_file = os.path.join(local_folder, 'target_{}.csv'.format(day))\n", + " dstore.upload_files([target_file],\n", + " target_path=remote_data_path,\n", + " overwrite=True,\n", + " show_progress=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Register DataSets\n", + "\n", + "Create and Register Datasets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Datastore, Dataset\n", + "dstore = ws.get_default_datastore()\n", + "\n", + "xpath = remote_data_path + '/' + baseline_file\n", + "toregister_baseline = Dataset.from_delimited_files(dstore.path(xpath))\n", + "registered_baseline = toregister_baseline.register(workspace = ws,\n", + " name = 'dataset baseline for diff demo',\n", + " description = 'dataset baseline for diff comparison',\n", + " exist_ok = True,\n", + " update_if_exist = True\n", + " )\n", + "\n", + "registered_targets = {}\n", + "for day in tqdm(range(0, t_days)):\n", + " target_file = 'target_{}.csv'.format(day)\n", + " toregister_target = Dataset.from_delimited_files(dstore.path(remote_data_path + '/' + target_file))\n", + " registered_target = toregister_target.register(workspace = ws,\n", + " name = 'dataset target-{} for diff demo'.format(day),\n", + " description = 'target target-{} for diff comparison'.format(day),\n", + " exist_ok = True,\n", + " update_if_exist = True\n", + " )\n", + " registered_targets[day] = registered_target" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Calculate Dataset Diff Remotely\n", + "\n", + "Perform the calculation remotely. This may take 20 minutes.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "remote_diffs = {}\n", + "\n", + "r_columns = set()\n", + "r_measurements = set()\n", + "\n", + "for day, registered_target in registered_targets.items():\n", + " dt = (start_date + timedelta(days=day)).strftime(\"%Y-%m-%d\")\n", + " remote_diff = registered_baseline.diff(registered_target, compute_target=ws.DEFAULT_CPU_CLUSTER_NAME)\n", + " remote_diff.wait_for_completion()\n", + " \n", + " remote_diffs[dt] = remote_diff.get_result()\n", + " \n", + " for r in remote_diff.get_result():\n", + " if r.name not in r_measurements:\n", + " r_measurements.add(r.name)\n", + " if \"column_name\" in r.extended_properties and r.extended_properties[\"column_name\"] not in r_columns:\n", + " r_columns.add(r.extended_properties[\"column_name\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parse And Present Remote Execution Results\n", + "\n", + "### Parse And List Column Level Diff Results\n", + "\n", + "Here will iteratively list all details per each measurement per column calculated." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import DataFrame\n", + "\n", + "r_dates = []\n", + "r_drift_metrics = {}\n", + "r_drift_contributions = {}\n", + "r_summary_contribute = {}\n", + "r_bottoms_contribute = []\n", + "\n", + "for dt, rst in remote_diffs.items():\n", + " r_dates.append(dt)\n", + " print(\"\\n---------------------------------------- Result of {} ----------------------------------------\".format(dt))\n", + " \n", + " daily_result, drift, daily_contribution = parse_result(rst, r_columns, r_measurements)\n", + " r_drift_metrics[dt] = drift\n", + " r_drift_contributions[dt] = daily_contribution\n", + "\n", + " sum_contribution = 0\n", + " r_bottoms_contribute.append(0)\n", + " for col, val in daily_contribution.items():\n", + " sum_contribution += val\n", + " r_summary_contribute[dt] = sum_contribution\n", + "\n", + " \n", + " display.display(pd.DataFrame(daily_result))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Present Dataset Level Diff (aka drift) In Graphs\n", + "\n", + "The left graph presents dataset level difference for all compared baseline-target pairs, the right graph presents dataset level difference contribution for each column so that we know which column impacts more." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "show_diff(r_drift_metrics, r_dates, r_columns, r_drift_contributions, r_summary_contribute, r_bottoms_contribute)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Clean Resources Created" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if del_cmpt == True:\n", + " try:\n", + " aml_compute.delete()\n", + " aml_compute.wait_for_completion()\n", + " except Exception as e:\n", + " if 'ComputeTargetNotFound' in e.message:\n", + " print(\"Compute target deleted.\")\n", + " del_cmpt = False" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reference\n", + "\n", + "Detailed description of Dataset Diff attribute can be found at
    \n", + "https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.dataset(class)?view=azure-ml-py#diff-rhs-dataset--compute-target-none--columns-none-" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "davx" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + }, + "notice": "Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License." + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/file-dataset-img-classification.ipynb b/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/file-dataset-img-classification.ipynb index 3f066658..d2d99569 100644 --- a/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/file-dataset-img-classification.ipynb +++ b/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/file-dataset-img-classification.ipynb @@ -713,4 +713,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file diff --git a/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/tabular-timeseries-dataset-filtering.ipynb b/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/tabular-timeseries-dataset-filtering.ipynb index 3339e46f..0672e5d5 100644 --- a/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/tabular-timeseries-dataset-filtering.ipynb +++ b/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/tabular-timeseries-dataset-filtering.ipynb @@ -1,544 +1,544 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Tabular Time Series Related API Demo with NOAA Weather Data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Copyright (c) Microsoft Corporation. All rights reserved.
    \n", - "Licensed under the MIT License." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this notebook, you will learn how to use the Tabular Time Series related API to filter the data by time windows for sample data uploaded to Azure blob storage. \n", - "\n", - "The detailed APIs to be demoed in this script are:\n", - "- Create Tabular Dataset instance\n", - "- Assign fine timestamp column and coarse timestamp column for Tabular Dataset to activate Time Series related APIs\n", - "- Clear fine timestamp column and coarse timestamp column\n", - "- Filter in data before a specific time\n", - "- Filter in data after a specific time\n", - "- Filter in data in a specific time range\n", - "- Filter in data for recent time range\n", - "\n", - "Besides above APIs, you'll also see:\n", - "- Create and load a Workspace\n", - "- Load National Oceanic & Atmospheric (NOAA) weather data into Azure blob storage\n", - "- Create and register NOAA weather data as a Tabular dataset\n", - "- Re-load Tabular Dataset from your Workspace" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Import Dependencies\n", - "\n", - "If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, run the cells below to install the Azure Machine Learning Python SDK and create an Azure ML Workspace that's required for this demo." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prepare Environment" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Print out your version of the Azure ML Python SDK. Version 1.0.60 or above is required for TabularDataset with timeseries attribute. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import azureml.core\n", - "azureml.data.__version__" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Import Packages" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# import packages\n", - "import os\n", - "\n", - "import pandas as pd\n", - "\n", - "from calendar import monthrange\n", - "from datetime import datetime, timedelta\n", - "\n", - "from azureml.core import Dataset, Datastore, Workspace, Run\n", - "from azureml.opendatasets import NoaaIsdWeather" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Set up Configuraton and Create Azure ML Workspace\n", - "\n", - "If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [configuration notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master/configuration.ipynb) first if you haven't already to establish your connection to the Azure ML Workspace." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ws = Workspace.from_config()\n", - "dstore = ws.get_default_datastore()\n", - "\n", - "dset_name = 'weather-data-florida'\n", - "\n", - "print(ws.name, ws.resource_group, ws.location, ws.subscription_id, dstore.name, sep = '\\n')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Load Data to Blob Storage\n", - "\n", - "This demo uses public NOAA weather data. You can replace this data with your own. The first cell below creates a Pandas Dataframe object with the first 6 months of 2019 NOAA weather data. The last cell saves the data to a CSV file and uploads the CSV file to Azure blob storage to the location specified in the datapath variable. Currently, the Dataset class only reads uploaded files from blob storage. \n", - "\n", - "**NOTE:** to reduce the size of data, we will only keep specific rows with a given stationName." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "target_years = [2019]\n", - "\n", - "for year in target_years:\n", - " for month in range(1, 12+1):\n", - " path = 'data/{}/{:02d}/'.format(year, month)\n", - " \n", - " try: \n", - " start = datetime(year, month, 1)\n", - " end = datetime(year, month, monthrange(year, month)[1]) + timedelta(days=1)\n", - " isd = NoaaIsdWeather(start, end).to_pandas_dataframe()\n", - " isd = isd[isd['stationName'].str.contains('FLORIDA', regex=True, na=False)]\n", - " \n", - " os.makedirs(path, exist_ok=True)\n", - " isd.to_parquet(path + 'data.parquet')\n", - " except Exception as e:\n", - " print('Month {} in year {} likely has no data.\\n'.format(month, year))\n", - " print('Exception: {}'.format(e))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Upload data to blob storage so it can be used as a Dataset." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "dstore.upload('data', dset_name, overwrite=True, show_progress=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create & Register Tabular Dataset with time-series trait from Blob\n", - "\n", - "The API on Tabular datasets with time-series trait is specially designed to handle Tabular time-series data and time related operations more efficiently. By registering your time-series dataset, you are publishing your dataset to your workspace so that it is accessible to anyone with the same subscription id. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Create Tabular Dataset instance from blob storage datapath.\n", - "\n", - "**TIP:** you can set virtual columns in the partition_format. I.e. if you partition the weather data by state and city, the path can be '/{STATE}/{CITY}/{coarse_time:yyy/MM}/data.parquet'. STATE and CITY would then appear as virtual columns in the dataset, allowing for efficient filtering by these grains. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "datastore_path = [(dstore, dset_name + '/*/*/data.parquet')]\n", - "dataset = Dataset.Tabular.from_parquet_files(path=datastore_path, partition_format = dset_name + '/{coarse_time:yyyy/MM}/data.parquet')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Assign fine timestamp column for Tabular Dataset to activate Time Series related APIs. The column to be assigned should be a Date type, otherwise the assigning will fail." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# for this demo, leave out coarse_time so fine_grain_timestamp is used\n", - "tsd = dataset.with_timestamp_columns(fine_grain_timestamp='datetime') # , coarse_grain_timestamp='coarse_time')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Register the dataset for easy access from anywhere in Azure ML and to keep track of versions, lineage. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# register dataset to Workspace\n", - "registered_ds = tsd.register(ws, dset_name, create_new_version=True, description='Data for Tabular Dataset with time-series trait demo.', tags={ 'type': 'TabularDataset' })" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Reload the Dataset from Workspace" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# get dataset by dataset name\n", - "tsd = Dataset.get_by_name(ws, name=dset_name)\n", - "tsd.to_pandas_dataframe().head(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Filter Data by Time Windows\n", - "\n", - "Once your data has been loaded into the notebook, you can query by time using the time_before(), time_after(), time_between(), and time_recent() functions. You can also choose to drop or keep certain columns. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Before Time Input" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# select data that occurs before a specified date\n", - "tsd2 = tsd.time_before(datetime(2019, 6, 12))\n", - "tsd2.to_pandas_dataframe().tail(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## After Time Input" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# select data that occurs after a specified date\n", - "tsd2 = tsd.time_after(datetime(2019, 5, 30))\n", - "tsd2.to_pandas_dataframe().head(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Before & After Time Inputs\n", - "\n", - "You can chain time functions together." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**NOTE:** You must set the coarse_grain_timestamp to None to filter on the fine_grain_timestamp. The below cell will fail unless the second line is uncommented " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# select data that occurs within a given time range\n", - "#tsd = tsd.with_timestamp_columns(fine_grain_timestamp='datetime', coarse_grain_timestamp=None)\n", - "tsd2 = tsd.time_after(datetime(2019, 1, 2)).time_before(datetime(2019, 1, 10))\n", - "tsd2.to_pandas_dataframe().head(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Time Range Input" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# another way to select data that occurs within a given time range\n", - "tsd2 = tsd.time_between(start_time=datetime(2019, 1, 31, 23, 59, 59), end_time=datetime(2019, 2, 7))\n", - "tsd2.to_pandas_dataframe().head(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Time Recent Input" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This function takes in a datetime.timedelta and returns a dataset containing the data from datetime.now()-timedelta() to datetime.now()." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tsd2 = tsd.time_recent(timedelta(weeks=5, days=0))\n", - "tsd2.to_pandas_dataframe().head(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**NOTE:** This will return an empty dataframe there is no data within the last 2 days." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tsd2 = tsd.time_recent(timedelta(days=2))\n", - "tsd2.to_pandas_dataframe().tail(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Drop Columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The columns to be dropped should NOT include timstamp columns.
    Below operation will lead to exception." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "try:\n", - " tsd2 = tsd.drop_columns(columns=['snowDepth', 'version', 'datetime'])\n", - "except Exception as e:\n", - " print('Expected exception : {}'.format(str(e)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Drop will succeed if modify column list to exclude timestamp columns." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tsd2 = tsd.drop_columns(columns=['snowDepth', 'version', 'upload_date'])\n", - "tsd2.take(5).to_pandas_dataframe().sort_values(by='datetime')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Keep Columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The columns to be kept should ALWAYS include timstamp columns.
    Below operation will lead to exception." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "try:\n", - " tsd2 = tsd.keep_columns(columns=['snowDepth'], validate=False)\n", - "except Exception as e:\n", - " print('Expected exception : {}'.format(str(e)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Keep will succeed if modify column list to include timestamp columns." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tsd2 = tsd.keep_columns(columns=['snowDepth', 'datetime', 'coarse_time'], validate=False)\n", - "tsd2.to_pandas_dataframe().tail()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Resetting Timestamp Columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Rules for reseting are:\n", - "- You cannot assign 'None' to fine_grain_timestamp while assign a valid column name to coarse_grain_timestamp because coarse_grain_timestamp is optional while fine_grain_timestamp is mandatory for Tabular time series data.\n", - "- If you assign 'None' to fine_grain_timestamp, then both fine_grain_timestamp and coarse_grain_timestamp will all be cleared.\n", - "- If you assign only 'None' to coarse_grain_timestamp, then only coarse_grain_timestamp will be cleared." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Illegal clearing, exception is expected.\n", - "try:\n", - " tsd2 = tsd.with_timestamp_columns(fine_grain_timestamp=None, coarse_grain_timestamp='coarse_time')\n", - "except Exception as e:\n", - " print('Cleaning not allowed because {}'.format(str(e)))\n", - "\n", - "# clear both\n", - "tsd2 = tsd.with_timestamp_columns(fine_grain_timestamp=None, coarse_grain_timestamp=None)\n", - "print('after clean both with None/None, timestamp columns are: {}'.format(tsd2.timestamp_columns))\n", - "\n", - "# clear coarse_grain_timestamp only and assign 'datetime' as fine timestamp column\n", - "tsd2 = tsd2.with_timestamp_columns(fine_grain_timestamp='datetime', coarse_grain_timestamp=None)\n", - "print('after clean coarse timestamp column, timestamp columns are: {}'.format(tsd2.timestamp_columns))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/work-with-data/datasets/datasets-tutorial/datasets-tutorial.png)" - ] - } - ], - "metadata": { - "authors": [ - { - "name": "copeters" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tabular Time Series Related API Demo with NOAA Weather Data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.
    \n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this notebook, you will learn how to use the Tabular Time Series related API to filter the data by time windows for sample data uploaded to Azure blob storage. \n", + "\n", + "The detailed APIs to be demoed in this script are:\n", + "- Create Tabular Dataset instance\n", + "- Assign fine timestamp column and coarse timestamp column for Tabular Dataset to activate Time Series related APIs\n", + "- Clear fine timestamp column and coarse timestamp column\n", + "- Filter in data before a specific time\n", + "- Filter in data after a specific time\n", + "- Filter in data in a specific time range\n", + "- Filter in data for recent time range\n", + "\n", + "Besides above APIs, you'll also see:\n", + "- Create and load a Workspace\n", + "- Load National Oceanic & Atmospheric (NOAA) weather data into Azure blob storage\n", + "- Create and register NOAA weather data as a Tabular dataset\n", + "- Re-load Tabular Dataset from your Workspace" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Import Dependencies\n", + "\n", + "If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, run the cells below to install the Azure Machine Learning Python SDK and create an Azure ML Workspace that's required for this demo." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare Environment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Print out your version of the Azure ML Python SDK. Version 1.0.60 or above is required for TabularDataset with timeseries attribute. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import azureml.core\n", + "azureml.data.__version__" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Import Packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# import packages\n", + "import os\n", + "\n", + "import pandas as pd\n", + "\n", + "from calendar import monthrange\n", + "from datetime import datetime, timedelta\n", + "\n", + "from azureml.core import Dataset, Datastore, Workspace, Run\n", + "from azureml.opendatasets import NoaaIsdWeather" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set up Configuraton and Create Azure ML Workspace\n", + "\n", + "If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [configuration notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master/configuration.ipynb) first if you haven't already to establish your connection to the Azure ML Workspace." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ws = Workspace.from_config()\n", + "dstore = ws.get_default_datastore()\n", + "\n", + "dset_name = 'weather-data-florida'\n", + "\n", + "print(ws.name, ws.resource_group, ws.location, ws.subscription_id, dstore.name, sep = '\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load Data to Blob Storage\n", + "\n", + "This demo uses public NOAA weather data. You can replace this data with your own. The first cell below creates a Pandas Dataframe object with the first 6 months of 2019 NOAA weather data. The last cell saves the data to a CSV file and uploads the CSV file to Azure blob storage to the location specified in the datapath variable. Currently, the Dataset class only reads uploaded files from blob storage. \n", + "\n", + "**NOTE:** to reduce the size of data, we will only keep specific rows with a given stationName." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "target_years = [2019]\n", + "\n", + "for year in target_years:\n", + " for month in range(1, 12+1):\n", + " path = 'data/{}/{:02d}/'.format(year, month)\n", + " \n", + " try: \n", + " start = datetime(year, month, 1)\n", + " end = datetime(year, month, monthrange(year, month)[1]) + timedelta(days=1)\n", + " isd = NoaaIsdWeather(start, end).to_pandas_dataframe()\n", + " isd = isd[isd['stationName'].str.contains('FLORIDA', regex=True, na=False)]\n", + " \n", + " os.makedirs(path, exist_ok=True)\n", + " isd.to_parquet(path + 'data.parquet')\n", + " except Exception as e:\n", + " print('Month {} in year {} likely has no data.\\n'.format(month, year))\n", + " print('Exception: {}'.format(e))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Upload data to blob storage so it can be used as a Dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dstore.upload('data', dset_name, overwrite=True, show_progress=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create & Register Tabular Dataset with time-series trait from Blob\n", + "\n", + "The API on Tabular datasets with time-series trait is specially designed to handle Tabular time-series data and time related operations more efficiently. By registering your time-series dataset, you are publishing your dataset to your workspace so that it is accessible to anyone with the same subscription id. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create Tabular Dataset instance from blob storage datapath.\n", + "\n", + "**TIP:** you can set virtual columns in the partition_format. I.e. if you partition the weather data by state and city, the path can be '/{STATE}/{CITY}/{coarse_time:yyy/MM}/data.parquet'. STATE and CITY would then appear as virtual columns in the dataset, allowing for efficient filtering by these grains. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "datastore_path = [(dstore, dset_name + '/*/*/data.parquet')]\n", + "dataset = Dataset.Tabular.from_parquet_files(path=datastore_path, partition_format = dset_name + '/{coarse_time:yyyy/MM}/data.parquet')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Assign fine timestamp column for Tabular Dataset to activate Time Series related APIs. The column to be assigned should be a Date type, otherwise the assigning will fail." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# for this demo, leave out coarse_time so fine_grain_timestamp is used\n", + "tsd = dataset.with_timestamp_columns(fine_grain_timestamp='datetime') # , coarse_grain_timestamp='coarse_time')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Register the dataset for easy access from anywhere in Azure ML and to keep track of versions, lineage. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# register dataset to Workspace\n", + "registered_ds = tsd.register(ws, dset_name, create_new_version=True, description='Data for Tabular Dataset with time-series trait demo.', tags={ 'type': 'TabularDataset' })" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reload the Dataset from Workspace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# get dataset by dataset name\n", + "tsd = Dataset.get_by_name(ws, name=dset_name)\n", + "tsd.to_pandas_dataframe().head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Filter Data by Time Windows\n", + "\n", + "Once your data has been loaded into the notebook, you can query by time using the time_before(), time_after(), time_between(), and time_recent() functions. You can also choose to drop or keep certain columns. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Before Time Input" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# select data that occurs before a specified date\n", + "tsd2 = tsd.time_before(datetime(2019, 6, 12))\n", + "tsd2.to_pandas_dataframe().tail(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## After Time Input" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# select data that occurs after a specified date\n", + "tsd2 = tsd.time_after(datetime(2019, 5, 30))\n", + "tsd2.to_pandas_dataframe().head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Before & After Time Inputs\n", + "\n", + "You can chain time functions together." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**NOTE:** You must set the coarse_grain_timestamp to None to filter on the fine_grain_timestamp. The below cell will fail unless the second line is uncommented " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# select data that occurs within a given time range\n", + "#tsd = tsd.with_timestamp_columns(fine_grain_timestamp='datetime', coarse_grain_timestamp=None)\n", + "tsd2 = tsd.time_after(datetime(2019, 1, 2)).time_before(datetime(2019, 1, 10))\n", + "tsd2.to_pandas_dataframe().head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Time Range Input" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# another way to select data that occurs within a given time range\n", + "tsd2 = tsd.time_between(start_time=datetime(2019, 1, 31, 23, 59, 59), end_time=datetime(2019, 2, 7))\n", + "tsd2.to_pandas_dataframe().head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Time Recent Input" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function takes in a datetime.timedelta and returns a dataset containing the data from datetime.now()-timedelta() to datetime.now()." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tsd2 = tsd.time_recent(timedelta(weeks=5, days=0))\n", + "tsd2.to_pandas_dataframe().head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**NOTE:** This will return an empty dataframe there is no data within the last 2 days." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tsd2 = tsd.time_recent(timedelta(days=2))\n", + "tsd2.to_pandas_dataframe().tail(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Drop Columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The columns to be dropped should NOT include timstamp columns.
    Below operation will lead to exception." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " tsd2 = tsd.drop_columns(columns=['snowDepth', 'version', 'datetime'])\n", + "except Exception as e:\n", + " print('Expected exception : {}'.format(str(e)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Drop will succeed if modify column list to exclude timestamp columns." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tsd2 = tsd.drop_columns(columns=['snowDepth', 'version', 'upload_date'])\n", + "tsd2.take(5).to_pandas_dataframe().sort_values(by='datetime')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Keep Columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The columns to be kept should ALWAYS include timstamp columns.
    Below operation will lead to exception." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " tsd2 = tsd.keep_columns(columns=['snowDepth'], validate=False)\n", + "except Exception as e:\n", + " print('Expected exception : {}'.format(str(e)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Keep will succeed if modify column list to include timestamp columns." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tsd2 = tsd.keep_columns(columns=['snowDepth', 'datetime', 'coarse_time'], validate=False)\n", + "tsd2.to_pandas_dataframe().tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Resetting Timestamp Columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rules for reseting are:\n", + "- You cannot assign 'None' to fine_grain_timestamp while assign a valid column name to coarse_grain_timestamp because coarse_grain_timestamp is optional while fine_grain_timestamp is mandatory for Tabular time series data.\n", + "- If you assign 'None' to fine_grain_timestamp, then both fine_grain_timestamp and coarse_grain_timestamp will all be cleared.\n", + "- If you assign only 'None' to coarse_grain_timestamp, then only coarse_grain_timestamp will be cleared." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Illegal clearing, exception is expected.\n", + "try:\n", + " tsd2 = tsd.with_timestamp_columns(fine_grain_timestamp=None, coarse_grain_timestamp='coarse_time')\n", + "except Exception as e:\n", + " print('Cleaning not allowed because {}'.format(str(e)))\n", + "\n", + "# clear both\n", + "tsd2 = tsd.with_timestamp_columns(fine_grain_timestamp=None, coarse_grain_timestamp=None)\n", + "print('after clean both with None/None, timestamp columns are: {}'.format(tsd2.timestamp_columns))\n", + "\n", + "# clear coarse_grain_timestamp only and assign 'datetime' as fine timestamp column\n", + "tsd2 = tsd2.with_timestamp_columns(fine_grain_timestamp='datetime', coarse_grain_timestamp=None)\n", + "print('after clean coarse timestamp column, timestamp columns are: {}'.format(tsd2.timestamp_columns))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/work-with-data/datasets/datasets-tutorial/datasets-tutorial.png)" + ] + } ], - "kernelspec": { - "display_name": "Python 3.6", - "language": "python", - "name": "python36" + "metadata": { + "authors": [ + { + "name": "copeters" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + }, + "notice": "Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License." }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - }, - "notice": "Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License." - }, - "nbformat": 4, - "nbformat_minor": 2 -} + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/train-with-datasets.ipynb b/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/train-with-datasets.ipynb new file mode 100644 index 00000000..42b183e7 --- /dev/null +++ b/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/train-with-datasets.ipynb @@ -0,0 +1,620 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/train-with-datasets.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Train with Azure Machine Learning Datasets\n", + "Datasets are categorized into TabularDataset and FileDataset based on how users consume them in training. \n", + "* A TabularDataset represents data in a tabular format by parsing the provided file or list of files. TabularDataset can be created from csv, tsv, parquet files, SQL query results etc. For the complete list, please visit our [documentation](https://aka.ms/tabulardataset-api-reference). It provides you with the ability to materialize the data into a pandas DataFrame.\n", + "* A FileDataset references single or multiple files in your datastores or public urls. This provides you with the ability to download or mount the files to your compute. The files can be of any format, which enables a wider range of machine learning scenarios including deep learning.\n", + "\n", + "In this tutorial, you will learn how to train with Azure Machine Learning Datasets:\n", + "\n", + "☑ Use Datasets directly in your training script\n", + "\n", + "☑ Use Datasets to mount files to a remote compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [configuration notebook](../../../configuration.ipynb) first if you haven't already established your connection to the AzureML Workspace." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check core SDK version number\n", + "import azureml.core\n", + "\n", + "print('SDK version:', azureml.core.VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize Workspace\n", + "\n", + "Initialize a workspace object from persisted configuration." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Workspace\n", + "\n", + "ws = Workspace.from_config()\n", + "print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep='\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create Experiment\n", + "\n", + "**Experiment** is a logical container in an Azure ML Workspace. It hosts run records which can include run metrics and output artifacts from your experiments." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "experiment_name = 'train-with-datasets'\n", + "\n", + "from azureml.core import Experiment\n", + "exp = Experiment(workspace=ws, name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create or Attach existing compute resource\n", + "By using Azure Machine Learning Compute, a managed service, data scientists can train machine learning models on clusters of Azure virtual machines. Examples include VMs with GPU support. In this tutorial, you create Azure Machine Learning Compute as your training environment. The code below creates the compute clusters for you if they don't already exist in your workspace.\n", + "\n", + "**Creation of compute takes approximately 5 minutes.** If the AmlCompute with that name is already in your workspace the code will skip the creation process." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import AmlCompute\n", + "from azureml.core.compute import ComputeTarget\n", + "import os\n", + "\n", + "# choose a name for your cluster\n", + "compute_name = os.environ.get('AML_COMPUTE_CLUSTER_NAME', 'cpu-cluster')\n", + "compute_min_nodes = os.environ.get('AML_COMPUTE_CLUSTER_MIN_NODES', 0)\n", + "compute_max_nodes = os.environ.get('AML_COMPUTE_CLUSTER_MAX_NODES', 4)\n", + "\n", + "# This example uses CPU VM. For using GPU VM, set SKU to STANDARD_NC6\n", + "vm_size = os.environ.get('AML_COMPUTE_CLUSTER_SKU', 'STANDARD_D2_V2')\n", + "\n", + "\n", + "if compute_name in ws.compute_targets:\n", + " compute_target = ws.compute_targets[compute_name]\n", + " if compute_target and type(compute_target) is AmlCompute:\n", + " print('found compute target. just use it. ' + compute_name)\n", + "else:\n", + " print('creating a new compute target...')\n", + " provisioning_config = AmlCompute.provisioning_configuration(vm_size=vm_size,\n", + " min_nodes=compute_min_nodes, \n", + " max_nodes=compute_max_nodes)\n", + "\n", + " # create the cluster\n", + " compute_target = ComputeTarget.create(ws, compute_name, provisioning_config)\n", + " \n", + " # can poll for a minimum number of nodes and for a specific timeout. \n", + " # if no min node count is provided it will use the scale settings for the cluster\n", + " compute_target.wait_for_completion(show_output=True, min_node_count=None, timeout_in_minutes=20)\n", + " \n", + " # For a more detailed view of current AmlCompute status, use get_status()\n", + " print(compute_target.get_status().serialize())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You now have the necessary packages and compute resources to train a model in the cloud.\n", + "## Use Datasets directly in training\n", + "\n", + "### Create a TabularDataset\n", + "By creating a dataset, you create a reference to the data source location. If you applied any subsetting transformations to the dataset, they will be stored in the dataset as well. The data remains in its existing location, so no extra storage cost is incurred. \n", + "\n", + "Every workspace comes with a default [datastore](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-access-data) (and you can register more) which is backed by the Azure blob storage account associated with the workspace. We can use it to transfer data from local to the cloud, and create Dataset from it.We will now upload the [Titanic data](./train-dataset/Titanic.csv) to the default datastore (blob) within your workspace." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "datastore = ws.get_default_datastore()\n", + "datastore.upload_files(files = ['./train-dataset/Titanic.csv'],\n", + " target_path = 'train-dataset/tabular/',\n", + " overwrite = True,\n", + " show_progress = True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we will create an unregistered TabularDataset pointing to the path in the datastore. You can also create a Dataset from multiple paths. [learn more](https://aka.ms/azureml/howto/createdatasets) " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Dataset\n", + "dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, 'train-dataset/tabular/Titanic.csv')])\n", + "\n", + "# preview the first 3 rows of the dataset\n", + "dataset.take(3).to_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a training script\n", + "\n", + "To submit the job to the cluster, first create a training script. Run the following code to create the training script called `train_titanic.py` in the script_folder. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "script_folder = os.path.join(os.getcwd(), 'train-dataset')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile $script_folder/train_titanic.py\n", + "\n", + "import os\n", + "\n", + "from azureml.core import Dataset, Run\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.externals import joblib\n", + "\n", + "run = Run.get_context()\n", + "# get input dataset by name\n", + "dataset = run.input_datasets['titanic']\n", + "\n", + "df = dataset.to_pandas_dataframe()\n", + "\n", + "x_col = ['Pclass', 'Sex', 'SibSp', 'Parch']\n", + "y_col = ['Survived']\n", + "x_df = df.loc[:, x_col]\n", + "y_df = df.loc[:, y_col]\n", + "\n", + "x_train, x_test, y_train, y_test = train_test_split(x_df, y_df, test_size=0.2, random_state=223)\n", + "\n", + "data = {'train': {'X': x_train, 'y': y_train},\n", + "\n", + " 'test': {'X': x_test, 'y': y_test}}\n", + "\n", + "clf = DecisionTreeClassifier().fit(data['train']['X'], data['train']['y'])\n", + "model_file_name = 'decision_tree.pkl'\n", + "\n", + "print('Accuracy of Decision Tree classifier on training set: {:.2f}'.format(clf.score(x_train, y_train)))\n", + "print('Accuracy of Decision Tree classifier on test set: {:.2f}'.format(clf.score(x_test, y_test)))\n", + "\n", + "os.makedirs('./outputs', exist_ok=True)\n", + "with open(model_file_name, 'wb') as file:\n", + " joblib.dump(value=clf, filename='outputs/' + model_file_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Configure and use Datasets as the input to Estimator" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can ask the system to build a conda environment based on your dependency specification. Once the environment is built, and if you don't change your dependencies, it will be reused in subsequent runs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Environment\n", + "from azureml.core.conda_dependencies import CondaDependencies\n", + "\n", + "conda_env = Environment('conda-env')\n", + "conda_env.python.conda_dependencies = CondaDependencies.create(pip_packages=['azureml-sdk','azureml-dataprep[pandas,fuse]>=1.1.','scikit-learn'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An estimator object is used to submit the run. Azure Machine Learning has pre-configured estimators for common machine learning frameworks, as well as generic Estimator. Create a generic estimator for by specifying\n", + "\n", + "* The name of the estimator object, `est`\n", + "* The directory that contains your scripts. All the files in this directory are uploaded into the cluster nodes for execution. \n", + "* The training script name, train_titanic.py\n", + "* The input Dataset for training\n", + "* The compute target. In this case you will use the AmlCompute you created\n", + "* The environment definition for the experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.estimator import Estimator\n", + "\n", + "est = Estimator(source_directory=script_folder, \n", + " entry_script='train_titanic.py', \n", + " # pass dataset object as an input with name 'titanic'\n", + " inputs=[dataset.as_named_input('titanic')],\n", + " compute_target=compute_target,\n", + " environment_definition= conda_env) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Submit job to run\n", + "Submit the estimator to the Azure ML experiment to kick off the execution." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = exp.submit(est)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "\n", + "# monitor the run\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Use Datasets to mount files to a remote compute\n", + "\n", + "You can use the Dataset object to mount or download files referred by it. When you mount a file system, you attach that file system to a directory (mount point) and make it available to the system. Because mounting load files at the time of processing, it is usually faster than download.
    \n", + "Note: mounting is only available for Linux-based compute (DSVM/VM, AMLCompute, HDInsights)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Upload data files into datastore\n", + "We will first load diabetes data from `scikit-learn` to the train-dataset folder." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets import load_diabetes\n", + "import numpy as np\n", + "\n", + "training_data = load_diabetes()\n", + "np.save(file='train-dataset/features.npy', arr=training_data['data'])\n", + "np.save(file='train-dataset/labels.npy', arr=training_data['target'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's upload the 2 files into the default datastore under a path named `diabetes`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "datastore.upload_files(['train-dataset/features.npy', 'train-dataset/labels.npy'], target_path='diabetes', overwrite=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a FileDataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.dataset import Dataset\n", + "\n", + "dataset = Dataset.File.from_files(path = [(datastore, 'diabetes/')])\n", + "\n", + "# see a list of files referenced by dataset\n", + "dataset.to_path()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a training script\n", + "\n", + "To submit the job to the cluster, first create a training script. Run the following code to create the training script called `train_diabetes.py` in the script_folder. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile $script_folder/train_diabetes.py\n", + "\n", + "import os\n", + "import glob\n", + "\n", + "from sklearn.linear_model import Ridge\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.model_selection import train_test_split\n", + "from azureml.core.run import Run\n", + "from sklearn.externals import joblib\n", + "\n", + "import numpy as np\n", + "\n", + "os.makedirs('./outputs', exist_ok=True)\n", + "\n", + "run = Run.get_context()\n", + "base_path = run.input_datasets['diabetes']\n", + "\n", + "X = np.load(glob.glob(os.path.join(base_path, '**/features.npy'), recursive=True)[0])\n", + "y = np.load(glob.glob(os.path.join(base_path, '**/labels.npy'), recursive=True)[0])\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(\n", + " X, y, test_size=0.2, random_state=0)\n", + "data = {'train': {'X': X_train, 'y': y_train},\n", + " 'test': {'X': X_test, 'y': y_test}}\n", + "\n", + "# list of numbers from 0.0 to 1.0 with a 0.05 interval\n", + "alphas = np.arange(0.0, 1.0, 0.05)\n", + "\n", + "for alpha in alphas:\n", + " # use Ridge algorithm to create a regression model\n", + " reg = Ridge(alpha=alpha)\n", + " reg.fit(data['train']['X'], data['train']['y'])\n", + "\n", + " preds = reg.predict(data['test']['X'])\n", + " mse = mean_squared_error(preds, data['test']['y'])\n", + " run.log('alpha', alpha)\n", + " run.log('mse', mse)\n", + "\n", + " model_file_name = 'ridge_{0:.2f}.pkl'.format(alpha)\n", + " with open(model_file_name, 'wb') as file:\n", + " joblib.dump(value=reg, filename='outputs/' + model_file_name)\n", + "\n", + " print('alpha is {0:.2f}, and mse is {1:0.2f}'.format(alpha, mse))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Configure & Run" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import ScriptRunConfig\n", + "\n", + "src = ScriptRunConfig(source_directory=script_folder, \n", + " script='train_diabetes.py', \n", + " # to mount the dataset on the remote compute and pass the mounted path as an argument to the training script\n", + " arguments =[dataset.as_named_input('diabetes').as_mount('tmp/dataset')])\n", + "\n", + "src.run_config.framework = 'python'\n", + "src.run_config.environment = conda_env\n", + "src.run_config.target = compute_target.name" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "run = exp.submit(config=src)\n", + "\n", + "# monitor the run\n", + "RunDetails(run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Display run results\n", + "You now have a model trained on a remote cluster. Retrieve all the metrics logged during the run, including the accuracy of the model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(run.get_metrics())\n", + "metrics = run.get_metrics()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Register Datasets\n", + "Use the register() method to register datasets to your workspace so they can be shared with others, reused across various experiments, and referred to by name in your training script." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset = dataset.register(workspace = ws,\n", + " name = 'diabetes dataset',\n", + " description='training dataset',\n", + " create_new_version=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Register models with Datasets\n", + "The last step in the training script wrote the model files in a directory named `outputs` in the VM of the cluster where the job is executed. `outputs` is a special directory in that all content in this directory is automatically uploaded to your workspace. This content appears in the run record in the experiment under your workspace. Hence, the model file is now also available in your workspace.\n", + "\n", + "You can register models with Datasets for reproducibility and auditing purpose." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# find the index where MSE is the smallest\n", + "indices = list(range(0, len(metrics['mse'])))\n", + "min_mse_index = min(indices, key=lambda x: metrics['mse'][x])\n", + "\n", + "print('When alpha is {1:0.2f}, we have min MSE {0:0.2f}.'.format(\n", + " metrics['mse'][min_mse_index], \n", + " metrics['alpha'][min_mse_index]\n", + "))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# find the best model\n", + "best_alpha = metrics['alpha'][min_mse_index]\n", + "model_file_name = 'ridge_{0:.2f}.pkl'.format(best_alpha)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# register the best model with the input dataset\n", + "model = run.register_model(model_name='sklearn_diabetes', model_path=os.path.join('outputs', model_file_name),\n", + " datasets =[('training data',dataset)])" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "sihhu" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/index.md b/index.md index a554ac88..d8c2d28a 100644 --- a/index.md +++ b/index.md @@ -16,6 +16,8 @@ Machine Learning notebook samples and encourage efficient retrieval of topics an |Title| Task | Dataset | Training Compute | Deployment Target | ML Framework | Tags | |:----|:-----|:-------:|:----------------:|:-----------------:|:------------:|:------------:| +| :star:[Use pipelines for batch scoring](https://github.com/Azure/MachineLearningNotebooks/blob/master//tutorials/tutorial-pipeline-batch-scoring-classification.ipynb) | Batch scoring | None | AmlCompute | Published pipeline | Azure ML Pipelines | None | + ## Training @@ -35,158 +37,504 @@ Machine Learning notebook samples and encourage efficient retrieval of topics an ## Other Notebooks |Title| Task | Dataset | Training Compute | Deployment Target | ML Framework | Tags | |:----|:-----|:-------:|:----------------:|:-----------------:|:------------:|:------------:| -| [Logging APIs](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb) | Logging APIs and analyzing results | None | None | None | None | None | -| [configuration](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azuremlconfiguration.ipynb) | | | | | | | -| [azure-ml-with-nvidia-rapids](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/contrib/RAPIDS/azure-ml-with-nvidia-rapids.ipynb) | | | | | | | -| [auto-ml-classification](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification/auto-ml-classification.ipynb) | | | | | | | -| [auto-ml-classification-bank-marketing](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification-bank-marketing/auto-ml-classification-bank-marketing.ipynb) | | | | | | | -| [auto-ml-classification-credit-card-fraud](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb) | | | | | | | -| [auto-ml-classification-with-deployment](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification-with-deployment/auto-ml-classification-with-deployment.ipynb) | | | | | | | -| [auto-ml-classification-with-onnx](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification-with-onnx/auto-ml-classification-with-onnx.ipynb) | | | | | | | -| [auto-ml-classification-with-whitelisting](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification-with-whitelisting/auto-ml-classification-with-whitelisting.ipynb) | | | | | | | -| [auto-ml-dataset](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/dataset/auto-ml-dataset.ipynb) | | | | | | | -| [auto-ml-dataset-remote-execution](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/dataset-remote-execution/auto-ml-dataset-remote-execution.ipynb) | | | | | | | -| [auto-ml-exploring-previous-runs](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/exploring-previous-runs/auto-ml-exploring-previous-runs.ipynb) | | | | | | | -| [auto-ml-forecasting-bike-share](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb) | | | | | | | -| [auto-ml-forecasting-energy-demand](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb) | | | | | | | -| [auto-ml-forecasting-orange-juice-sales](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb) | | | | | | | -| [auto-ml-missing-data-blacklist-early-termination](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/missing-data-blacklist-early-termination/auto-ml-missing-data-blacklist-early-termination.ipynb) | | | | | | | -| [auto-ml-model-explanation](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.ipynb) | | | | | | | -| [auto-ml-regression](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb) | | | | | | | -| [auto-ml-regression-concrete-strength](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-concrete-strength/auto-ml-regression-concrete-strength.ipynb) | | | | | | | -| [auto-ml-regression-hardware-performance](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/regression-hardware-performance/auto-ml-regression-hardware-performance.ipynb) | | | | | | | -| [auto-ml-remote-amlcompute](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/remote-amlcompute/auto-ml-remote-amlcompute.ipynb) | | | | | | | -| [auto-ml-remote-amlcompute-with-onnx](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/remote-amlcompute-with-onnx/auto-ml-remote-amlcompute-with-onnx.ipynb) | | | | | | | -| [auto-ml-sample-weight](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/sample-weight/auto-ml-sample-weight.ipynb) | | | | | | | -| [auto-ml-sparse-data-train-test-split](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/sparse-data-train-test-split/auto-ml-sparse-data-train-test-split.ipynb) | | | | | | | -| [auto-ml-sql-energy-demand](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/sql-server/energy-demand/auto-ml-sql-energy-demand.ipynb) | | | | | | | -| [auto-ml-sql-setup](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/sql-server/setup/auto-ml-sql-setup.ipynb) | | | | | | | -| [auto-ml-subsampling-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/subsampling/auto-ml-subsampling-local.ipynb) | | | | | | | -| [build-model-run-history-03](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/azure-databricks/amlsdk/build-model-run-history-03.ipynb) | | | | | | | -| [deploy-to-aci-04](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/azure-databricks/amlsdk/deploy-to-aci-04.ipynb) | | | | | | | -| [deploy-to-aks-existingimage-05](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/azure-databricks/amlsdk/deploy-to-aks-existingimage-05.ipynb) | | | | | | | -| [ingest-data-02](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/azure-databricks/amlsdk/ingest-data-02.ipynb) | | | | | | | -| [installation-and-configuration-01](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/azure-databricks/amlsdk/installation-and-configuration-01.ipynb) | | | | | | | -| [automl-databricks-local-01](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/azure-databricks/automl/automl-databricks-local-01.ipynb) | | | | | | | -| [automl-databricks-local-with-deployment](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/azure-databricks/automl/automl-databricks-local-with-deployment.ipynb) | | | | | | | -| [aml-pipelines-use-databricks-as-compute-target](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/azure-databricks/databricks-as-remote-compute-target/aml-pipelines-use-databricks-as-compute-target.ipynb) | | | | | | | -| [automl_hdi_local_classification](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/azure-hdi/automl_hdi_local_classification.ipynb) | | | | | | | -| [model-register-and-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deploy-to-cloud/model-register-and-deploy.ipynb) | | | | | | | -| [register-model-deploy-local-advanced](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deploy-to-local/register-model-deploy-local-advanced.ipynb) | | | | | | | -| [register-model-deploy-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deploy-to-local/register-model-deploy-local.ipynb) | | | | | | | -| [accelerated-models-object-detection](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/accelerated-models/accelerated-models-object-detection.ipynb) | | | | | | | -| [accelerated-models-quickstart](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/accelerated-models/accelerated-models-quickstart.ipynb) | | | | | | | -| [accelerated-models-training](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/accelerated-models/accelerated-models-training.ipynb) | | | | | | | -| [model-register-and-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.ipynb) | | | | | | | -| [register-model-deploy-local-advanced](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb) | | | | | | | -| [register-model-deploy-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb) | | | | | | | -| [enable-app-insights-in-production-service](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/enable-app-insights-in-production-service/enable-app-insights-in-production-service.ipynb) | | | | | | | -| [enable-data-collection-for-models-in-aks](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/enable-data-collection-for-models-in-aks/enable-data-collection-for-models-in-aks.ipynb) | | | | | | | -| [onnx-convert-aml-deploy-tinyyolo](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/onnx/onnx-convert-aml-deploy-tinyyolo.ipynb) | | | | | | | -| [onnx-inference-facial-expression-recognition-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/onnx/onnx-inference-facial-expression-recognition-deploy.ipynb) | | | | | | | -| [onnx-inference-mnist-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/onnx/onnx-inference-mnist-deploy.ipynb) | | | | | | | -| [onnx-modelzoo-aml-deploy-resnet50](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/onnx/onnx-modelzoo-aml-deploy-resnet50.ipynb) | | | | | | | -| [onnx-train-pytorch-aml-deploy-mnist](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/onnx/onnx-train-pytorch-aml-deploy-mnist.ipynb) | | | | | | | -| [production-deploy-to-aks](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.ipynb) | | | | | | | -| [production-deploy-to-aks-gpu](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/production-deploy-to-aks-gpu/production-deploy-to-aks-gpu.ipynb) | | | | | | | -| [register-model-create-image-deploy-service](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/register-model-create-image-deploy-service/register-model-create-image-deploy-service.ipynb) | | | | | | | -| [explain-model-on-amlcompute](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/explain-model/azure-integration/remote-explanation/explain-model-on-amlcompute.ipynb) | | | | | | | -| [save-retrieve-explanations-run-history](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/explain-model/azure-integration/run-history/save-retrieve-explanations-run-history.ipynb) | | | | | | | -| [train-explain-model-locally-and-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-locally-and-deploy.ipynb) | | | | | | | -| [train-explain-model-on-amlcompute-and-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-on-amlcompute-and-deploy.ipynb) | | | | | | | -| [advanced-feature-transformations-explain-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/explain-model/tabular-data/advanced-feature-transformations-explain-local.ipynb) | | | | | | | -| [explain-binary-classification-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/explain-model/tabular-data/explain-binary-classification-local.ipynb) | | | | | | | -| [explain-multiclass-classification-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/explain-model/tabular-data/explain-multiclass-classification-local.ipynb) | | | | | | | -| [explain-regression-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/explain-model/tabular-data/explain-regression-local.ipynb) | | | | | | | -| [simple-feature-transformations-explain-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/explain-model/tabular-data/simple-feature-transformations-explain-local.ipynb) | | | | | | | -| [aml-pipelines-data-transfer](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-data-transfer.ipynb) | | | | | | | -| [aml-pipelines-getting-started](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-getting-started.ipynb) | | | | | | -| [aml-pipelines-how-to-use-azurebatch-to-run-a-windows-executable](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-azurebatch-to-run-a-windows-executable.ipynb) | | | | | | | -| [aml-pipelines-how-to-use-estimatorstep](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-estimatorstep.ipynb) | | | | | | | -| [aml-pipelines-how-to-use-pipeline-drafts](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-pipeline-drafts.ipynb) | | | | | | | -| [aml-pipelines-parameter-tuning-with-hyperdrive](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb) | | | | | | | -| [aml-pipelines-publish-and-run-using-rest-endpoint](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-publish-and-run-using-rest-endpoint.ipynb) | | | | | | | -| [aml-pipelines-setup-schedule-for-a-published-pipeline](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-schedule-for-a-published-pipeline.ipynb) | | | | | | | -| [aml-pipelines-setup-versioned-pipeline-endpoints](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.ipynb) | | | | | | | -| [aml-pipelines-use-adla-as-compute-target](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-use-adla-as-compute-target.ipynb) | | | | | | | -| [aml-pipelines-use-databricks-as-compute-target](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-use-databricks-as-compute-target.ipynb) | | | | | | | -| [aml-pipelines-with-automated-machine-learning-step](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-with-automated-machine-learning-step.ipynb) | | | | | | | -| [aml-pipelines-with-data-dependency-steps](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-with-data-dependency-steps.ipynb) | | | | | | | -| [nyc-taxi-data-regression-model-building](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/nyc-taxi-data-regression-model-building/nyc-taxi-data-regression-model-building.ipynb) | | | | | | | -| [pipeline-batch-scoring](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/pipeline-batch-scoring/pipeline-batch-scoring.ipynb) | | | | | | | -| [pipeline-style-transfer](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer.ipynb) | | | | | | | -| [authentication-in-azureml](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/manage-azureml-service/authentication-in-azureml/authentication-in-azureml.ipynb) | | | | | | | -| [azure-ml-datadrift](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/monitor-models/data-drift/azure-ml-datadrift.ipynb) | | | | | | | -| [manage-runs](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/track-and-monitor-experiments/manage-runs/manage-runs.ipynb) | | | | | | | -| [tensorboard](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/track-and-monitor-experiments/tensorboard/tensorboard.ipynb) | | | | | | | -| [deploy-model](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml//track-and-monitor-experiments/using-mlflow/deploy-model/deploy-model.ipynb) | | | | | | | -| [train-and-deploy-pytorch](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-deploy-pytorch/train-and-deploy-pytorch.ipynb) | | | | | | | -| [train-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-local/train-local.ipynb) | | | | | | | -| [train-remote](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-remote/train-remote.ipynb) | | | | | | | -| [logging-api](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/logging-api/logging-api.ipynb) | | | | | | | -| [manage-runs](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/manage-runs/manage-runs.ipynb) | | | | | | | -| [train-hyperparameter-tune-deploy-with-sklearn](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.ipynb) | | | | | | | -| [train-in-spark](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-in-spark/train-in-spark.ipynb) | | | | | | | -| [train-on-amlcompute](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-on-amlcompute/train-on-amlcompute.ipynb) | | | | | | | -| [train-on-local](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-on-local/train-on-local.ipynb) | | | | | | | -| [train-on-remote-vm](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-on-remote-vm/train-on-remote-vm.ipynb) | | | | | | | -| [train-within-notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-within-notebook/train-within-notebook.ipynb) | | | | | | | -| [using-environments](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/using-environments/using-environments.ipynb) | | | | | | | -| [distributed-chainer](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/distributed-chainer/distributed-chainer.ipynb) | | | | | | | -| [distributed-cntk-with-custom-docker](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/distributed-cntk-with-custom-docker/distributed-cntk-with-custom-docker.ipynb) | | | | | | | -| [distributed-pytorch-with-horovod](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.ipynb) | | | | | | | -| [distributed-tensorflow-with-horovod](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.ipynb) | | | | | | | -| [distributed-tensorflow-with-parameter-server](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.ipynb) | | | | | | | -| [export-run-history-to-tensorboard](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/export-run-history-to-tensorboard/export-run-history-to-tensorboard.ipynb) | | | | | | | -| [how-to-use-estimator](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/how-to-use-estimator/how-to-use-estimator.ipynb) | | | | | | | -| [notebook_example](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/how-to-use-estimator/notebook_example.ipynb) | | | | | | | -| [tensorboard](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/tensorboard/tensorboard.ipynb) | | | | | | | -| [train-hyperparameter-tune-deploy-with-chainer](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.ipynb) | | | | | | | -| [train-hyperparameter-tune-deploy-with-keras](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/train-hyperparameter-tune-deploy-with-keras.ipynb) | | | | | | | -| [train-hyperparameter-tune-deploy-with-pytorch](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb) | | | | | | | -| [train-hyperparameter-tune-deploy-with-tensorflow](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb) | | | | | | | -| [train-tensorflow-resume-training](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/train-tensorflow-resume-training/train-tensorflow-resume-training.ipynb) | | | | | | | -| [new-york-taxi](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/case-studies/new-york-taxi/new-york-taxi.ipynb) | | | | | | | -| [new-york-taxi_scale-out](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/case-studies/new-york-taxi/new-york-taxi_scale-out.ipynb) | | | | | | | -| [add-column-using-expression](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/add-column-using-expression.ipynb) | | | | | | | -| [append-columns-and-rows](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/append-columns-and-rows.ipynb) | | | | | | | -| [assertions](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/assertions.ipynb) | | | | | | | -| [auto-read-file](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/auto-read-file.ipynb) | | | | | | | -| [cache](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/cache.ipynb) | | | | | | | -| [column-manipulations](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/column-manipulations.ipynb) | | | | | | | -| [column-type-transforms](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/column-type-transforms.ipynb) | | | | | | | -| [custom-python-transforms](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/custom-python-transforms.ipynb) | | | | | | | -| [data-ingestion](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/data-ingestion.ipynb) | | | | | | | -| [data-profile](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/data-profile.ipynb) | | | | | | | -| [datastore](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/datastore.ipynb) | | | | | | | -| [derive-column-by-example](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/derive-column-by-example.ipynb) | | | | | | | -| [external-references](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/external-references.ipynb) | | | | | | | -| [filtering](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/filtering.ipynb) | | | | | | | -| [fuzzy-group](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/fuzzy-group.ipynb) | | | | | | | -| [impute-missing-values](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/impute-missing-values.ipynb) | | | | | | | -| [join](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/join.ipynb) | | | | | | | -| [label-encoder](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/label-encoder.ipynb) | | | | | | | -| [min-max-scaler](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/min-max-scaler.ipynb) | | | | | | | -| [one-hot-encoder](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/one-hot-encoder.ipynb) | | | | | | | -| [open-save-dataflows](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/open-save-dataflows.ipynb) | | | | | | | -| [quantile-transformation](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/quantile-transformation.ipynb) | | | | | | | -| [random-split](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/random-split.ipynb) | | | | | | | -| [replace-datasource-replace-reference](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/replace-datasource-replace-reference.ipynb) | | | | | | | -| [replace-fill-error](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/replace-fill-error.ipynb) | | | | | | | -| [secrets](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/secrets.ipynb) | | | | | | | -| [semantic-types](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/semantic-types.ipynb) | | | | | | | -| [split-column-by-example](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/split-column-by-example.ipynb) | | | | | | | -| [subsetting-sampling](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/subsetting-sampling.ipynb) | | | | | | | -| [summarize](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/summarize.ipynb) | | | | | | | -| [working-with-file-streams](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/working-with-file-streams.ipynb) | | | | | | | -| [writing-data](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/how-to-guides/writing-data.ipynb) | | | | | | | -| [getting-started](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/dataprep/tutorials/getting-started/getting-started.ipynb) | | | | | | | -| [datasets-diff](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/datasets/datasets-diff/datasets-diff.ipynb) | | | | | | | -| [file-dataset-img-classification](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/file-dataset-img-classification.ipynb) | | | | | | | -| [tabular-dataset-tutorial](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/datasets/datasets-tutorial/tabular-dataset-tutorial.ipynb) | | | | | | | -| [configuration](https://github.com/Azure/MachineLearningNotebooks/blob/master/setup-environment/configuration.ipynb) | | | | | | | -| [img-classification-part1-training](https://github.com/Azure/MachineLearningNotebooks/blob/master/tutorials/img-classification-part1-training.ipynb) | | | | | | | -| [img-classification-part2-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master/tutorials/img-classification-part2-deploy.ipynb) | | | | | | | -| [regression-automated-ml](https://github.com/Azure/MachineLearningNotebooks/blob/master/tutorials/regression-automated-ml.ipynb) | | | | | | | -| [tutorial-1st-experiment-sdk-train](https://github.com/Azure/MachineLearningNotebooks/blob/master/tutorials/tutorial-1st-experiment-sdk-train.ipynb) | | | | | | | + +| [configuration](https://github.com/Azure/MachineLearningNotebooks/blob/master/configuration.ipynb) | | | | | | | + + +| [azure-ml-with-nvidia-rapids](https://github.com/Azure/MachineLearningNotebooks/blob/master//contrib/RAPIDS/azure-ml-with-nvidia-rapids.ipynb) | | | | | | | + + +| [auto-ml-classification](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/classification/auto-ml-classification.ipynb) | | | | | | | + + +| [auto-ml-classification-bank-marketing](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/classification-bank-marketing/auto-ml-classification-bank-marketing.ipynb) | | | | | | | + + +| [auto-ml-classification-credit-card-fraud](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb) | | | | | | | + + +| [auto-ml-classification-with-deployment](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/classification-with-deployment/auto-ml-classification-with-deployment.ipynb) | | | | | | | + + +| [auto-ml-classification-with-onnx](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/classification-with-onnx/auto-ml-classification-with-onnx.ipynb) | | | | | | | + + +| [auto-ml-classification-with-whitelisting](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/classification-with-whitelisting/auto-ml-classification-with-whitelisting.ipynb) | | | | | | | + + +| [auto-ml-dataset](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/dataset/auto-ml-dataset.ipynb) | | | | | | | + + +| [auto-ml-dataset-remote-execution](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/dataset-remote-execution/auto-ml-dataset-remote-execution.ipynb) | | | | | | | + + +| [auto-ml-exploring-previous-runs](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/exploring-previous-runs/auto-ml-exploring-previous-runs.ipynb) | | | | | | | + + +| [auto-ml-forecasting-bike-share](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb) | | | | | | | + + +| [auto-ml-forecasting-energy-demand](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb) | | | | | | | + + +| [auto-ml-forecasting-orange-juice-sales](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb) | | | | | | | + + +| [auto-ml-missing-data-blacklist-early-termination](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/missing-data-blacklist-early-termination/auto-ml-missing-data-blacklist-early-termination.ipynb) | | | | | | | + + +| [auto-ml-model-explanation](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/model-explanation/auto-ml-model-explanation.ipynb) | | | | | | | + + +| [auto-ml-regression](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb) | | | | | | | + + +| [auto-ml-regression-concrete-strength](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/regression-concrete-strength/auto-ml-regression-concrete-strength.ipynb) | | | | | | | + + +| [auto-ml-regression-hardware-performance](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/regression-hardware-performance/auto-ml-regression-hardware-performance.ipynb) | | | | | | | + + +| [auto-ml-remote-amlcompute](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/remote-amlcompute/auto-ml-remote-amlcompute.ipynb) | | | | | | | + + +| [auto-ml-remote-amlcompute-with-onnx](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/remote-amlcompute-with-onnx/auto-ml-remote-amlcompute-with-onnx.ipynb) | | | | | | | + + +| [auto-ml-sample-weight](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/sample-weight/auto-ml-sample-weight.ipynb) | | | | | | | + + +| [auto-ml-sparse-data-train-test-split](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/sparse-data-train-test-split/auto-ml-sparse-data-train-test-split.ipynb) | | | | | | | + + +| [auto-ml-sql-energy-demand](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/sql-server/energy-demand/auto-ml-sql-energy-demand.ipynb) | | | | | | | + + +| [auto-ml-sql-setup](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/sql-server/setup/auto-ml-sql-setup.ipynb) | | | | | | | + + +| [auto-ml-subsampling-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/automated-machine-learning/subsampling/auto-ml-subsampling-local.ipynb) | | | | | | | + + +| [build-model-run-history-03](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/azure-databricks/amlsdk/build-model-run-history-03.ipynb) | | | | | | | + + +| [deploy-to-aci-04](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/azure-databricks/amlsdk/deploy-to-aci-04.ipynb) | | | | | | | + + +| [deploy-to-aks-existingimage-05](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/azure-databricks/amlsdk/deploy-to-aks-existingimage-05.ipynb) | | | | | | | + + +| [ingest-data-02](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/azure-databricks/amlsdk/ingest-data-02.ipynb) | | | | | | | + + +| [installation-and-configuration-01](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/azure-databricks/amlsdk/installation-and-configuration-01.ipynb) | | | | | | | + + +| [automl-databricks-local-01](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/azure-databricks/automl/automl-databricks-local-01.ipynb) | | | | | | | + + +| [automl-databricks-local-with-deployment](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/azure-databricks/automl/automl-databricks-local-with-deployment.ipynb) | | | | | | | + + +| [aml-pipelines-use-databricks-as-compute-target](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/azure-databricks/databricks-as-remote-compute-target/aml-pipelines-use-databricks-as-compute-target.ipynb) | | | | | | | + + +| [automl_hdi_local_classification](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/azure-hdi/automl_hdi_local_classification.ipynb) | | | | | | | + + +| [model-register-and-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deploy-to-cloud/model-register-and-deploy.ipynb) | | | | | | | + + +| [register-model-deploy-local-advanced](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deploy-to-local/register-model-deploy-local-advanced.ipynb) | | | | | | | + + +| [register-model-deploy-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deploy-to-local/register-model-deploy-local.ipynb) | | | | | | | + + +| [accelerated-models-object-detection](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/accelerated-models/accelerated-models-object-detection.ipynb) | | | | | | | + + +| [accelerated-models-quickstart](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/accelerated-models/accelerated-models-quickstart.ipynb) | | | | | | | + + +| [accelerated-models-training](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/accelerated-models/accelerated-models-training.ipynb) | | | | | | | + + +| [model-register-and-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.ipynb) | | | | | | | + + +| [register-model-deploy-local-advanced](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb) | | | | | | | + + +| [register-model-deploy-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb) | | | | | | | + + +| [enable-app-insights-in-production-service](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/enable-app-insights-in-production-service/enable-app-insights-in-production-service.ipynb) | | | | | | | + + +| [enable-data-collection-for-models-in-aks](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/enable-data-collection-for-models-in-aks/enable-data-collection-for-models-in-aks.ipynb) | | | | | | | + + +| [onnx-convert-aml-deploy-tinyyolo](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/onnx/onnx-convert-aml-deploy-tinyyolo.ipynb) | | | | | | | + + +| [onnx-inference-facial-expression-recognition-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/onnx/onnx-inference-facial-expression-recognition-deploy.ipynb) | | | | | | | + + +| [onnx-inference-mnist-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/onnx/onnx-inference-mnist-deploy.ipynb) | | | | | | | + + +| [onnx-modelzoo-aml-deploy-resnet50](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/onnx/onnx-modelzoo-aml-deploy-resnet50.ipynb) | | | | | | | + + +| [onnx-train-pytorch-aml-deploy-mnist](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/onnx/onnx-train-pytorch-aml-deploy-mnist.ipynb) | | | | | | | + + +| [production-deploy-to-aks](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.ipynb) | | | | | | | + + +| [production-deploy-to-aks-gpu](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/production-deploy-to-aks-gpu/production-deploy-to-aks-gpu.ipynb) | | | | | | | + + +| [register-model-create-image-deploy-service](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/deployment/register-model-create-image-deploy-service/register-model-create-image-deploy-service.ipynb) | | | | | | | + + +| [explain-model-on-amlcompute](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/azure-integration/remote-explanation/explain-model-on-amlcompute.ipynb) | | | | | | | + + +| [save-retrieve-explanations-run-history](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/azure-integration/run-history/save-retrieve-explanations-run-history.ipynb) | | | | | | | + + +| [train-explain-model-locally-and-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-locally-and-deploy.ipynb) | | | | | | | + + +| [train-explain-model-on-amlcompute-and-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-on-amlcompute-and-deploy.ipynb) | | | | | | | + + +| [advanced-feature-transformations-explain-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/tabular-data/advanced-feature-transformations-explain-local.ipynb) | | | | | | | + + +| [explain-binary-classification-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/tabular-data/explain-binary-classification-local.ipynb) | | | | | | | + + +| [explain-multiclass-classification-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/tabular-data/explain-multiclass-classification-local.ipynb) | | | | | | | + + +| [explain-regression-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/tabular-data/explain-regression-local.ipynb) | | | | | | | + + +| [simple-feature-transformations-explain-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/tabular-data/simple-feature-transformations-explain-local.ipynb) | | | | | | | + + +| [aml-pipelines-data-transfer](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-data-transfer.ipynb) | | | | | | | + + +| [aml-pipelines-getting-started](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-getting-started.ipynb) | | | | | | | + + +| [aml-pipelines-how-to-use-azurebatch-to-run-a-windows-executable](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-azurebatch-to-run-a-windows-executable.ipynb) | | | | | | | + + +| [aml-pipelines-how-to-use-estimatorstep](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-estimatorstep.ipynb) | | | | | | | + + +| [aml-pipelines-how-to-use-pipeline-drafts](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-pipeline-drafts.ipynb) | | | | | | | + + +| [aml-pipelines-parameter-tuning-with-hyperdrive](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb) | | | | | | | + + +| [aml-pipelines-publish-and-run-using-rest-endpoint](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-publish-and-run-using-rest-endpoint.ipynb) | | | | | | | + + +| [aml-pipelines-setup-schedule-for-a-published-pipeline](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-schedule-for-a-published-pipeline.ipynb) | | | | | | | + + +| [aml-pipelines-setup-versioned-pipeline-endpoints](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-setup-versioned-pipeline-endpoints.ipynb) | | | | | | | + + +| [aml-pipelines-showcasing-datapath-and-pipelineparameter](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-showcasing-datapath-and-pipelineparameter.ipynb) | | | | | | | + + +| [aml-pipelines-use-adla-as-compute-target](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-use-adla-as-compute-target.ipynb) | | | | | | | + + +| [aml-pipelines-use-databricks-as-compute-target](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-use-databricks-as-compute-target.ipynb) | | | | | | | + + +| [aml-pipelines-with-automated-machine-learning-step](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-with-automated-machine-learning-step.ipynb) | | | | | | | + + +| [aml-pipelines-with-data-dependency-steps](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-with-data-dependency-steps.ipynb) | | | | | | | + + +| [nyc-taxi-data-regression-model-building](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/nyc-taxi-data-regression-model-building/nyc-taxi-data-regression-model-building.ipynb) | | | | | | | + + +| [pipeline-batch-scoring](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/pipeline-batch-scoring/pipeline-batch-scoring.ipynb) | | | | | | | + + +| [pipeline-style-transfer](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer.ipynb) | | | | | | | + + +| [authentication-in-azureml](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/manage-azureml-service/authentication-in-azureml/authentication-in-azureml.ipynb) | | | | | | | + + +| [train-hyperparameter-tune-deploy-with-chainer](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/chainer/deployment/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.ipynb) | | | | | | | + + +| [distributed-chainer](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/chainer/training/distributed-chainer/distributed-chainer.ipynb) | | | | | | | + + +| [train-hyperparameter-tune-deploy-with-pytorch](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/pytorch/deployment/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb) | | | | | | | + + +| [distributed-pytorch-with-horovod](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.ipynb) | | | | | | | + + +| [distributed-pytorch-with-nccl-gloo](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/pytorch/training/distributed-pytorch-with-nccl-gloo/distributed-pytorch-with-nccl-gloo.ipynb) | | | | | | | + + +| [train-hyperparameter-tune-deploy-with-sklearn](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/scikit-learn/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.ipynb) | | | | | | | + + +| [train-hyperparameter-tune-deploy-with-tensorflow](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/tensorflow/deployment/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb) | | | | | | | + + +| [distributed-tensorflow-with-horovod](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.ipynb) | | | | | | | + + +| [distributed-tensorflow-with-parameter-server](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/tensorflow/training/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.ipynb) | | | | | | | + + +| [train-tensorflow-resume-training](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/ml-frameworks/tensorflow/training/train-tensorflow-resume-training/train-tensorflow-resume-training.ipynb) | | | | | | | + + +| [azure-ml-datadrift](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/monitor-models/data-drift/azure-ml-datadrift.ipynb) | | | | | | | + + +| [Logging APIs](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb) | Logging APIs and analyzing results | | None | None | None | None | + + +| [manage-runs](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/track-and-monitor-experiments/manage-runs/manage-runs.ipynb) | | | | | | | + + +| [tensorboard](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/track-and-monitor-experiments/tensorboard/tensorboard.ipynb) | | | | | | | + + +| [deploy-model](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/track-and-monitor-experiments/using-mlflow/deploy-model/deploy-model.ipynb) | | | | | | | + + +| [train-and-deploy-pytorch](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-deploy-pytorch/train-and-deploy-pytorch.ipynb) | | | | | | | + + +| [train-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-local/train-local.ipynb) | | | | | | | + + +| [train-remote](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-remote/train-remote.ipynb) | | | | | | | + + +| [logging-api](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training/logging-api/logging-api.ipynb) | | | | | | | + + +| [manage-runs](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training/manage-runs/manage-runs.ipynb) | | | | | | | + + +| [train-hyperparameter-tune-deploy-with-sklearn](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training/train-hyperparameter-tune-deploy-with-sklearn/train-hyperparameter-tune-deploy-with-sklearn.ipynb) | | | | | | | + + +| [train-in-spark](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training/train-in-spark/train-in-spark.ipynb) | | | | | | | + + +| [train-on-amlcompute](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training/train-on-amlcompute/train-on-amlcompute.ipynb) | | | | | | | + + +| [train-on-local](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training/train-on-local/train-on-local.ipynb) | | | | | | | + + +| [train-on-remote-vm](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training/train-on-remote-vm/train-on-remote-vm.ipynb) | | | | | | | + + +| [train-within-notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training/train-within-notebook/train-within-notebook.ipynb) | | | | | | | + + +| [using-environments](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training/using-environments/using-environments.ipynb) | | | | | | | + + +| [distributed-chainer](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/distributed-chainer/distributed-chainer.ipynb) | | | | | | | + + +| [distributed-cntk-with-custom-docker](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/distributed-cntk-with-custom-docker/distributed-cntk-with-custom-docker.ipynb) | | | | | | | + + +| [distributed-pytorch-with-horovod](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.ipynb) | | | | | | | + + +| [distributed-tensorflow-with-horovod](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/distributed-tensorflow-with-horovod/distributed-tensorflow-with-horovod.ipynb) | | | | | | | + + +| [distributed-tensorflow-with-parameter-server](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/distributed-tensorflow-with-parameter-server/distributed-tensorflow-with-parameter-server.ipynb) | | | | | | | + + +| [export-run-history-to-tensorboard](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/export-run-history-to-tensorboard/export-run-history-to-tensorboard.ipynb) | | | | | | | + + +| [how-to-use-estimator](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/how-to-use-estimator/how-to-use-estimator.ipynb) | | | | | | | + + +| [notebook_example](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/how-to-use-estimator/notebook_example.ipynb) | | | | | | | + + +| [tensorboard](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/tensorboard/tensorboard.ipynb) | | | | | | | + + +| [train-hyperparameter-tune-deploy-with-chainer](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-chainer/train-hyperparameter-tune-deploy-with-chainer.ipynb) | | | | | | | + + +| [train-hyperparameter-tune-deploy-with-keras](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-keras/train-hyperparameter-tune-deploy-with-keras.ipynb) | | | | | | | + + +| [train-hyperparameter-tune-deploy-with-pytorch](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb) | | | | | | | + + +| [train-hyperparameter-tune-deploy-with-tensorflow](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-tensorflow/train-hyperparameter-tune-deploy-with-tensorflow.ipynb) | | | | | | | + + +| [train-tensorflow-resume-training](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/training-with-deep-learning/train-tensorflow-resume-training/train-tensorflow-resume-training.ipynb) | | | | | | | + + +| [new-york-taxi](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/case-studies/new-york-taxi/new-york-taxi.ipynb) | | | | | | | + + +| [new-york-taxi_scale-out](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/case-studies/new-york-taxi/new-york-taxi_scale-out.ipynb) | | | | | | | + + +| [add-column-using-expression](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/add-column-using-expression.ipynb) | | | | | | | + + +| [append-columns-and-rows](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/append-columns-and-rows.ipynb) | | | | | | | + + +| [assertions](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/assertions.ipynb) | | | | | | | + + +| [auto-read-file](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/auto-read-file.ipynb) | | | | | | | + + +| [cache](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/cache.ipynb) | | | | | | | + + +| [column-manipulations](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/column-manipulations.ipynb) | | | | | | | + + +| [column-type-transforms](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/column-type-transforms.ipynb) | | | | | | | + + +| [custom-python-transforms](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/custom-python-transforms.ipynb) | | | | | | | + + +| [data-ingestion](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/data-ingestion.ipynb) | | | | | | | + + +| [data-profile](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/data-profile.ipynb) | | | | | | | + + +| [datastore](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/datastore.ipynb) | | | | | | | + + +| [derive-column-by-example](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/derive-column-by-example.ipynb) | | | | | | | + + +| [external-references](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/external-references.ipynb) | | | | | | | + + +| [filtering](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/filtering.ipynb) | | | | | | | + + +| [fuzzy-group](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/fuzzy-group.ipynb) | | | | | | | + + +| [impute-missing-values](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/impute-missing-values.ipynb) | | | | | | | + + +| [join](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/join.ipynb) | | | | | | | + + +| [label-encoder](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/label-encoder.ipynb) | | | | | | | + + +| [min-max-scaler](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/min-max-scaler.ipynb) | | | | | | | + + +| [one-hot-encoder](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/one-hot-encoder.ipynb) | | | | | | | + + +| [open-save-dataflows](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/open-save-dataflows.ipynb) | | | | | | | + + +| [quantile-transformation](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/quantile-transformation.ipynb) | | | | | | | + + +| [random-split](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/random-split.ipynb) | | | | | | | + + +| [replace-datasource-replace-reference](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/replace-datasource-replace-reference.ipynb) | | | | | | | + + +| [replace-fill-error](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/replace-fill-error.ipynb) | | | | | | | + + +| [secrets](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/secrets.ipynb) | | | | | | | + + +| [semantic-types](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/semantic-types.ipynb) | | | | | | | + + +| [split-column-by-example](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/split-column-by-example.ipynb) | | | | | | | + + +| [subsetting-sampling](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/subsetting-sampling.ipynb) | | | | | | | + + +| [summarize](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/summarize.ipynb) | | | | | | | + + +| [working-with-file-streams](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/working-with-file-streams.ipynb) | | | | | | | + + +| [writing-data](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/how-to-guides/writing-data.ipynb) | | | | | | | + + +| [getting-started](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/dataprep/tutorials/getting-started/getting-started.ipynb) | | | | | | | + + +| [datasets-diff](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/datasets/datasets-diff/datasets-diff.ipynb) | | | | | | | + + +| [file-dataset-img-classification](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/datasets/datasets-tutorial/file-dataset-img-classification.ipynb) | | | | | | | + + +| [tabular-dataset-tutorial](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/datasets/datasets-tutorial/tabular-dataset-tutorial.ipynb) | | | | | | | + + +| [tabular-timeseries-dataset-filtering](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/datasets/datasets-tutorial/tabular-timeseries-dataset-filtering.ipynb) | | | | | | | + + +| [train-with-datasets](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/work-with-data/datasets/datasets-tutorial/train-with-datasets.ipynb) | | | | | | | + + +| [configuration](https://github.com/Azure/MachineLearningNotebooks/blob/master//setup-environment/configuration.ipynb) | | | | | | | + + +| [img-classification-part1-training](https://github.com/Azure/MachineLearningNotebooks/blob/master//tutorials/img-classification-part1-training.ipynb) | | | | | | | + + +| [img-classification-part2-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master//tutorials/img-classification-part2-deploy.ipynb) | | | | | | | + + +| [regression-automated-ml](https://github.com/Azure/MachineLearningNotebooks/blob/master//tutorials/regression-automated-ml.ipynb) | | | | | | | + + +| [tutorial-1st-experiment-sdk-train](https://github.com/Azure/MachineLearningNotebooks/blob/master//tutorials/tutorial-1st-experiment-sdk-train.ipynb) | | | | | | | diff --git a/setup-environment/configuration.ipynb b/setup-environment/configuration.ipynb index f7c376bb..1425c490 100644 --- a/setup-environment/configuration.ipynb +++ b/setup-environment/configuration.ipynb @@ -102,7 +102,7 @@ "source": [ "import azureml.core\n", "\n", - "print(\"This notebook was created using version 1.0.60 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.0.62 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/tutorials/img-classification-part1-training.ipynb b/tutorials/img-classification-part1-training.ipynb index c783128b..87c60300 100644 --- a/tutorials/img-classification-part1-training.ipynb +++ b/tutorials/img-classification-part1-training.ipynb @@ -184,11 +184,10 @@ "\n", "## Explore data\n", "\n", - "Before you train a model, you need to understand the data that you are using to train it. You also need to copy the data into the cloud so it can be accessed by your cloud training environment. In this section you learn how to:\n", + "Before you train a model, you need to understand the data that you are using to train it. In this section you learn how to:\n", "\n", "* Download the MNIST dataset\n", "* Display some sample images\n", - "* Upload data to the cloud\n", "\n", "### Download the MNIST dataset\n", "\n", @@ -254,13 +253,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now you have an idea of what these images look like and the expected prediction outcome.\n", - "\n", - "### Upload data to the cloud\n", - "\n", - "Now make the data accessible remotely by uploading that data from your local machine into Azure so it can be accessed for remote training. The datastore is a convenient construct associated with your workspace for you to upload/download data, and interact with it from your remote compute targets. It is backed by Azure blob storage account.\n", - "\n", - "The MNIST files are uploaded into a directory named `mnist` at the root of the datastore. See [access data from your datastores](https://docs.microsoft.com/bs-latn-ba/azure/machine-learning/service/how-to-access-data) for more information." + "## Create a FileDataset\n", + "A FileDataset references single or multiple files in your datastores or public urls. The files can be of any format. FileDataset provides you with the ability to download or mount the files to your compute. By creating a dataset, you create a reference to the data source location. If you applied any subsetting transformations to the dataset, they will be stored in the dataset as well. The data remains in its existing location, so no extra storage cost is incurred. [Learn More](https://aka.ms/azureml/howto/createdatasets)" ] }, { @@ -273,10 +267,44 @@ }, "outputs": [], "source": [ - "ds = ws.get_default_datastore()\n", - "print(ds.datastore_type, ds.account_name, ds.container_name)\n", + "from azureml.core.dataset import Dataset\n", "\n", - "ds.upload(src_dir=data_folder, target_path='mnist', overwrite=True, show_progress=True)" + "web_paths = [\n", + " 'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz',\n", + " 'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz',\n", + " 'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz',\n", + " 'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz'\n", + " ]\n", + "dataset = Dataset.File.from_files(path = web_paths)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use the `register()` method to register datasets to your workspace so they can be shared with others, reused across various experiments, and referred to by name in your training script." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset = dataset.register(workspace = ws,\n", + " name = 'mnist dataset',\n", + " description='training and test dataset',\n", + " create_new_version=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# list the files referenced by dataset\n", + "dataset.to_path()" ] }, { @@ -327,6 +355,7 @@ "import argparse\n", "import os\n", "import numpy as np\n", + "import glob\n", "\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.externals import joblib\n", @@ -334,7 +363,7 @@ "from azureml.core import Run\n", "from utils import load_data\n", "\n", - "# let user feed in 2 parameters, the location of the data files (from datastore), and the regularization rate of the logistic regression model\n", + "# let user feed in 2 parameters, the dataset to mount or download, and the regularization rate of the logistic regression model\n", "parser = argparse.ArgumentParser()\n", "parser.add_argument('--data-folder', type=str, dest='data_folder', help='data folder mounting point')\n", "parser.add_argument('--regularization', type=float, dest='reg', default=0.01, help='regularization rate')\n", @@ -345,10 +374,11 @@ "\n", "# load train and test set into numpy arrays\n", "# note we scale the pixel intensity values to 0-1 (by dividing it with 255.0) so the model can converge faster.\n", - "X_train = load_data(os.path.join(data_folder, 'train-images.gz'), False) / 255.0\n", - "X_test = load_data(os.path.join(data_folder, 'test-images.gz'), False) / 255.0\n", - "y_train = load_data(os.path.join(data_folder, 'train-labels.gz'), True).reshape(-1)\n", - "y_test = load_data(os.path.join(data_folder, 'test-labels.gz'), True).reshape(-1)\n", + "X_train = load_data(glob.glob(os.path.join(data_folder, '**/train-images-idx3-ubyte.gz'), recursive=True)[0], False) / 255.0\n", + "X_test = load_data(glob.glob(os.path.join(data_folder, '**/t10k-images-idx3-ubyte.gz'), recursive=True)[0], False) / 255.0\n", + "y_train = load_data(glob.glob(os.path.join(data_folder, '**/train-labels-idx1-ubyte.gz'), recursive=True)[0], True).reshape(-1)\n", + "y_test = load_data(glob.glob(os.path.join(data_folder, '**/t10k-labels-idx1-ubyte.gz'), recursive=True)[0], True).reshape(-1)\n", + "\n", "print(X_train.shape, y_train.shape, X_test.shape, y_test.shape, sep = '\\n')\n", "\n", "# get hold of the current run\n", @@ -379,7 +409,7 @@ "source": [ "Notice how the script gets data and saves models:\n", "\n", - "+ The training script reads an argument to find the directory containing the data. When you submit the job later, you point to the datastore for this argument:\n", + "+ The training script reads an argument to find the directory containing the data. When you submit the job later, you point to the dataset for this argument:\n", "`parser.add_argument('--data-folder', type=str, dest='data_folder', help='data directory mounting point')`" ] }, @@ -424,7 +454,23 @@ "* The training script name, train.py\n", "* Parameters required from the training script \n", "\n", - "In this tutorial, this target is AmlCompute. All files in the script folder are uploaded into the cluster nodes for execution. The data_folder is set to use the datastore (`ds.path('mnist').as_mount()`)." + "In this tutorial, the target is AmlCompute. All files in the script folder are uploaded into the cluster nodes for execution. The data_folder is set to use the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.environment import Environment\n", + "from azureml.core.conda_dependencies import CondaDependencies\n", + "\n", + "# to install required packages\n", + "env = Environment('my_env')\n", + "cd = CondaDependencies.create(pip_packages=['azureml-sdk','scikit-learn','azureml-dataprep[pandas,fuse]>=1.1.14'])\n", + "\n", + "env.python.conda_dependencies = cd" ] }, { @@ -440,30 +486,16 @@ "from azureml.train.sklearn import SKLearn\n", "\n", "script_params = {\n", - " '--data-folder': ds.path('mnist').as_mount(),\n", + " # to mount files referenced by mnist dataset\n", + " '--data-folder': dataset.as_named_input('mnist').as_mount(),\n", " '--regularization': 0.5\n", "}\n", "\n", "est = SKLearn(source_directory=script_folder,\n", - " script_params=script_params,\n", - " compute_target=compute_target,\n", - " entry_script='train.py')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This is what the mounting point looks like:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(ds.path('mnist').as_mount())" + " script_params=script_params,\n", + " compute_target=compute_target,\n", + " environment_definition=env,\n", + " entry_script='train.py')" ] }, { @@ -684,7 +716,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.9" }, "msauthor": "roastala" }, diff --git a/tutorials/tutorial-pipeline-batch-scoring-classification.ipynb b/tutorials/tutorial-pipeline-batch-scoring-classification.ipynb index 0a1a6af6..72762315 100644 --- a/tutorials/tutorial-pipeline-batch-scoring-classification.ipynb +++ b/tutorials/tutorial-pipeline-batch-scoring-classification.ipynb @@ -1,726 +1,738 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Copyright (c) Microsoft Corporation. All rights reserved. \n", - "Licensed under the MIT License." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/machine-learning-pipelines/pipeline-batch-scoring/pipeline-batch-scoring.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Use Azure Machine Learning Pipelines for batch prediction\n", - "\n", - "In this tutorial, you use Azure Machine Learning service pipelines to run a batch scoring image classification job. The example job uses the pre-trained [Inception-V3](https://arxiv.org/abs/1512.00567) CNN (convolutional neural network) Tensorflow model to classify unlabeled images. Machine learning pipelines optimize your workflow with speed, portability, and reuse so you can focus on your expertise, machine learning, rather than on infrastructure and automation. After building and publishing a pipeline, you can configure a REST endpoint to enable triggering the pipeline from any HTTP library on any platform.\n", - "\n", - "\n", - "In this tutorial, you learn the following tasks:\n", - "\n", - "> * Configure workspace and download sample data\n", - "> * Create data objects to fetch and output data\n", - "> * Download, prepare, and register the model to your workspace\n", - "> * Provision compute targets and create a scoring script\n", - "> * Build, run, and publish a pipeline\n", - "> * Enable a REST endpoint for the pipeline\n", - "\n", - "If you don’t have an Azure subscription, create a free account before you begin. Try the [free or paid version of Azure Machine Learning service](https://aka.ms/AMLFree) today." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisites\n", - "\n", - "* Complete the [setup tutorial](https://docs.microsoft.com/azure/machine-learning/service/tutorial-1st-experiment-sdk-setup) if you don't already have an Azure Machine Learning service workspace or notebook virtual machine.\n", - "* After you complete the setup tutorial, open the **tutorials/tutorial-pipeline-batch-scoring-classification.ipynb** notebook using the same notebook server.\n", - "\n", - "This tutorial is also available on [GitHub](https://github.com/Azure/MachineLearningNotebooks/tree/master/tutorials) if you wish to run it in your own [local environment](how-to-configure-environment.md#local). Run `pip install azureml-sdk[notebooks] azureml-pipeline-core azureml-pipeline-steps pandas requests` to get the required packages." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Configure workspace and create datastore" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Create a workspace object from the existing workspace. A [Workspace](https://docs.microsoft.com/python/api/azureml-core/azureml.core.workspace.workspace?view=azure-ml-py) is a class that accepts your Azure subscription and resource information. It also creates a cloud resource to monitor and track your model runs. `Workspace.from_config()` reads the file **config.json** and loads the authentication details into an object named `ws`. `ws` is used throughout the rest of the code in this tutorial." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.core import Workspace\n", - "ws = Workspace.from_config()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Create a datastore for sample images\n", - "\n", - "Get the ImageNet evaluation public data sample from the public blob container `sampledata` on the account `pipelinedata`. Calling `register_azure_blob_container()` makes the data available to the workspace under the name `images_datastore`. Then specify the workspace default datastore as the output datastore, which you use for scoring output in the pipeline." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.core.datastore import Datastore\n", - "\n", - "batchscore_blob = Datastore.register_azure_blob_container(ws, \n", - " datastore_name=\"images_datastore\", \n", - " container_name=\"sampledata\", \n", - " account_name=\"pipelinedata\", \n", - " overwrite=True)\n", - "\n", - "def_data_store = ws.get_default_datastore()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create data objects\n", - "\n", - "When building pipelines, `DataReference` objects are used for reading data from workspace datastores, and `PipelineData` objects are used for transferring intermediate data between pipeline steps.\n", - "\n", - "This batch scoring example only uses one pipeline step, but in use-cases with multiple steps, the typical flow will include:\n", - "\n", - "1. Using `DataReference` objects as **inputs** to fetch raw data, performing some transformations, then **outputting** a `PipelineData` object.\n", - "1. Use the previous step's `PipelineData` **output object** as an *input object*, repeated for subsequent steps.\n", - "\n", - "For this scenario you create `DataReference` objects corresponding to the datastore directories for both the input images and the classification labels (y-test values). You also create a `PipelineData` object for the batch scoring output data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.data.data_reference import DataReference\n", - "from azureml.pipeline.core import PipelineData\n", - "\n", - "input_images = DataReference(datastore=batchscore_blob, \n", - " data_reference_name=\"input_images\",\n", - " path_on_datastore=\"batchscoring/images\",\n", - " mode=\"download\"\n", - " )\n", - "\n", - "label_dir = DataReference(datastore=batchscore_blob, \n", - " data_reference_name=\"input_labels\",\n", - " path_on_datastore=\"batchscoring/labels\",\n", - " mode=\"download\" \n", - " )\n", - "\n", - "output_dir = PipelineData(name=\"scores\", \n", - " datastore=def_data_store, \n", - " output_path_on_compute=\"batchscoring/results\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Download and register the model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Download the pre-trained Tensorflow model to use it for batch scoring in the pipeline. First create a local directory where you store the model, then download and extract it." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import tarfile\n", - "import urllib.request\n", - "\n", - "if not os.path.isdir(\"models\"):\n", - " os.mkdir(\"models\")\n", - " \n", - "response = urllib.request.urlretrieve(\"http://download.tensorflow.org/models/inception_v3_2016_08_28.tar.gz\", \"model.tar.gz\")\n", - "tar = tarfile.open(\"model.tar.gz\", \"r:gz\")\n", - "tar.extractall(\"models\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now you register the model to your workspace, which allows you to easily retrieve it in the pipeline process. In the `register()` static function, the `model_name` parameter is the key you use to locate your model throughout the SDK." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.core.model import Model\n", - " \n", - "model = Model.register(model_path=\"models/inception_v3.ckpt\",\n", - " model_name=\"inception\",\n", - " tags={\"pretrained\": \"inception\"},\n", - " description=\"Imagenet trained tensorflow inception\",\n", - " workspace=ws)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create and attach remote compute target\n", - "\n", - "Azure Machine Learning service pipelines cannot be run locally, and only run on cloud resources. Remote compute targets are reusable virtual compute environments where you run experiments and work-flows. Run the following code to create a GPU-enabled [`AmlCompute`](https://docs.microsoft.com/python/api/azureml-core/azureml.core.compute.amlcompute.amlcompute?view=azure-ml-py) target, and attach it to your workspace. See the [conceptual article](https://docs.microsoft.com/azure/machine-learning/service/concept-compute-target) for more information on compute targets." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.core.compute import AmlCompute, ComputeTarget\n", - "from azureml.exceptions import ComputeTargetException\n", - "compute_name = \"gpu-cluster\"\n", - "\n", - "# checks to see if compute target already exists in workspace, else create it\n", - "try:\n", - " compute_target = ComputeTarget(workspace=ws, name=compute_name)\n", - "except ComputeTargetException:\n", - " config = AmlCompute.provisioning_configuration(vm_size=\"STANDARD_NC6\",\n", - " vm_priority=\"lowpriority\", \n", - " min_nodes=0, \n", - " max_nodes=1)\n", - "\n", - " compute_target = ComputeTarget.create(workspace=ws, name=compute_name, provisioning_configuration=config)\n", - " compute_target.wait_for_completion(show_output=True, min_node_count=None, timeout_in_minutes=20)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Write a scoring script" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To do the scoring, you create a batch scoring script `batch_scoring.py`, and write it to the current directory. The script takes input images, applies the classification model, and outputs the predictions to a results file.\n", - "\n", - "The script `batch_scoring.py` takes the following parameters, which get passed from the `PythonScriptStep` that you create later:\n", - "\n", - "- `--model_name`: the name of the model being used\n", - "- `--label_dir` : the directory holding the `labels.txt` file \n", - "- `--dataset_path`: the directory containing the input images\n", - "- `--output_dir` : the script will run the model on the data and output a `results-label.txt` to this directory\n", - "- `--batch_size` : the batch size used in running the model\n", - "\n", - "The pipelines infrastructure uses the `ArgumentParser` class to pass parameters into pipeline steps. For example, in the code below the first argument `--model_name` is given the property identifier `model_name`. In the `main()` function, this property is accessed using `Model.get_model_path(args.model_name)`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%writefile batch_scoring.py\n", - "\n", - "import os\n", - "import argparse\n", - "import datetime\n", - "import time\n", - "import tensorflow as tf\n", - "from math import ceil\n", - "import numpy as np\n", - "import shutil\n", - "from tensorflow.contrib.slim.python.slim.nets import inception_v3\n", - "from azureml.core.model import Model\n", - "\n", - "slim = tf.contrib.slim\n", - "\n", - "parser = argparse.ArgumentParser(description=\"Start a tensorflow model serving\")\n", - "parser.add_argument('--model_name', dest=\"model_name\", required=True)\n", - "parser.add_argument('--label_dir', dest=\"label_dir\", required=True)\n", - "parser.add_argument('--dataset_path', dest=\"dataset_path\", required=True)\n", - "parser.add_argument('--output_dir', dest=\"output_dir\", required=True)\n", - "parser.add_argument('--batch_size', dest=\"batch_size\", type=int, required=True)\n", - "\n", - "args = parser.parse_args()\n", - "\n", - "image_size = 299\n", - "num_channel = 3\n", - "\n", - "# create output directory if it does not exist\n", - "os.makedirs(args.output_dir, exist_ok=True)\n", - "\n", - "\n", - "def get_class_label_dict(label_file):\n", - " label = []\n", - " proto_as_ascii_lines = tf.gfile.GFile(label_file).readlines()\n", - " for l in proto_as_ascii_lines:\n", - " label.append(l.rstrip())\n", - " return label\n", - "\n", - "\n", - "class DataIterator:\n", - " def __init__(self, data_dir):\n", - " self.file_paths = []\n", - " image_list = os.listdir(data_dir)\n", - " self.file_paths = [data_dir + '/' + file_name.rstrip() for file_name in image_list]\n", - "\n", - " self.labels = [1 for file_name in self.file_paths]\n", - "\n", - " @property\n", - " def size(self):\n", - " return len(self.labels)\n", - "\n", - " def input_pipeline(self, batch_size):\n", - " images_tensor = tf.convert_to_tensor(self.file_paths, dtype=tf.string)\n", - " labels_tensor = tf.convert_to_tensor(self.labels, dtype=tf.int64)\n", - " input_queue = tf.train.slice_input_producer([images_tensor, labels_tensor], shuffle=False)\n", - " labels = input_queue[1]\n", - " images_content = tf.read_file(input_queue[0])\n", - "\n", - " image_reader = tf.image.decode_jpeg(images_content, channels=num_channel, name=\"jpeg_reader\")\n", - " float_caster = tf.cast(image_reader, tf.float32)\n", - " new_size = tf.constant([image_size, image_size], dtype=tf.int32)\n", - " images = tf.image.resize_images(float_caster, new_size)\n", - " images = tf.divide(tf.subtract(images, [0]), [255])\n", - "\n", - " image_batch, label_batch = tf.train.batch([images, labels], batch_size=batch_size, capacity=5 * batch_size)\n", - " return image_batch\n", - "\n", - "\n", - "def main(_):\n", - " label_file_name = os.path.join(args.label_dir, \"labels.txt\")\n", - " label_dict = get_class_label_dict(label_file_name)\n", - " classes_num = len(label_dict)\n", - " test_feeder = DataIterator(data_dir=args.dataset_path)\n", - " total_size = len(test_feeder.labels)\n", - " count = 0\n", - " \n", - " # get model from model registry\n", - " model_path = Model.get_model_path(args.model_name)\n", - " \n", - " with tf.Session() as sess:\n", - " test_images = test_feeder.input_pipeline(batch_size=args.batch_size)\n", - " with slim.arg_scope(inception_v3.inception_v3_arg_scope()):\n", - " input_images = tf.placeholder(tf.float32, [args.batch_size, image_size, image_size, num_channel])\n", - " logits, _ = inception_v3.inception_v3(input_images,\n", - " num_classes=classes_num,\n", - " is_training=False)\n", - " probabilities = tf.argmax(logits, 1)\n", - "\n", - " sess.run(tf.global_variables_initializer())\n", - " sess.run(tf.local_variables_initializer())\n", - " coord = tf.train.Coordinator()\n", - " threads = tf.train.start_queue_runners(sess=sess, coord=coord)\n", - " saver = tf.train.Saver()\n", - " saver.restore(sess, model_path)\n", - " out_filename = os.path.join(args.output_dir, \"result-labels.txt\")\n", - " with open(out_filename, \"w\") as result_file:\n", - " i = 0\n", - " while count < total_size and not coord.should_stop():\n", - " test_images_batch = sess.run(test_images)\n", - " file_names_batch = test_feeder.file_paths[i * args.batch_size:\n", - " min(test_feeder.size, (i + 1) * args.batch_size)]\n", - " results = sess.run(probabilities, feed_dict={input_images: test_images_batch})\n", - " new_add = min(args.batch_size, total_size - count)\n", - " count += new_add\n", - " i += 1\n", - " for j in range(new_add):\n", - " result_file.write(os.path.basename(file_names_batch[j]) + \": \" + label_dict[results[j]] + \"\\n\")\n", - " result_file.flush()\n", - " coord.request_stop()\n", - " coord.join(threads)\n", - "\n", - " shutil.copy(out_filename, \"./outputs/\")\n", - "\n", - "if __name__ == \"__main__\":\n", - " tf.app.run()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The pipeline in this tutorial only has one step and writes the output to a file, but for multi-step pipelines, you also use `ArgumentParser` to define a directory to write output data for input to subsequent steps. See the [notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/nyc-taxi-data-regression-model-building/nyc-taxi-data-regression-model-building.ipynb) for an example of passing data between multiple pipeline steps using the `ArgumentParser` design pattern." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Build and run the pipeline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Before running the pipeline, you create an object that defines the python environment and dependencies needed by your script `batch_scoring.py`. The main dependency required is Tensorflow, but you also install `azureml-defaults` for background processes from the SDK. Create a `RunConfiguration` object using the dependencies, and also specify Docker and Docker-GPU support." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.core.runconfig import DEFAULT_GPU_IMAGE\n", - "from azureml.core.runconfig import CondaDependencies, RunConfiguration\n", - "\n", - "cd = CondaDependencies.create(pip_packages=[\"tensorflow-gpu==1.13.1\", \"azureml-defaults\"])\n", - "\n", - "amlcompute_run_config = RunConfiguration(conda_dependencies=cd)\n", - "amlcompute_run_config.environment.docker.enabled = True\n", - "amlcompute_run_config.environment.docker.base_image = DEFAULT_GPU_IMAGE\n", - "amlcompute_run_config.environment.spark.precache_packages = False" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Parameterize the pipeline\n", - "\n", - "Define a custom parameter for the pipeline to control the batch size. After the pipeline has been published and exposed via a REST endpoint, any configured parameters are also exposed and can be specified in the JSON payload when rerunning the pipeline with an HTTP request.\n", - "\n", - "Create a `PipelineParameter` object to enable this behavior, and define a name and default value." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.pipeline.core.graph import PipelineParameter\n", - "batch_size_param = PipelineParameter(name=\"param_batch_size\", default_value=20)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Create the pipeline step\n", - "\n", - "A pipeline step is an object that encapsulates everything you need for running a pipeline including:\n", - "\n", - "* environment and dependency settings\n", - "* the compute resource to run the pipeline on\n", - "* input and output data, and any custom parameters\n", - "* reference to a script or SDK-logic to run during the step\n", - "\n", - "There are multiple classes that inherit from the parent class [`PipelineStep`](https://docs.microsoft.com/python/api/azureml-pipeline-core/azureml.pipeline.core.builder.pipelinestep?view=azure-ml-py) to assist with building a step using certain frameworks and stacks. In this example, you use the [`PythonScriptStep`](https://docs.microsoft.com/python/api/azureml-pipeline-steps/azureml.pipeline.steps.python_script_step.pythonscriptstep?view=azure-ml-py) class to define your step logic using a custom python script. Note that if an argument to your script is either an input to the step or output of the step, it must be defined **both** in the `arguments` array, **as well as** in either the `input` or `output` parameter, respectively. \n", - "\n", - "An object reference in the `outputs` array becomes available as an **input** for a subsequent pipeline step, for scenarios where there is more than one step." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.pipeline.steps import PythonScriptStep\n", - "\n", - "batch_score_step = PythonScriptStep(\n", - " name=\"batch_scoring\",\n", - " script_name=\"batch_scoring.py\",\n", - " arguments=[\"--dataset_path\", input_images, \n", - " \"--model_name\", \"inception\",\n", - " \"--label_dir\", label_dir, \n", - " \"--output_dir\", output_dir, \n", - " \"--batch_size\", batch_size_param],\n", - " compute_target=compute_target,\n", - " inputs=[input_images, label_dir],\n", - " outputs=[output_dir],\n", - " runconfig=amlcompute_run_config\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For a list of all classes for different step types, see the [steps package](https://docs.microsoft.com/python/api/azureml-pipeline-steps/azureml.pipeline.steps?view=azure-ml-py)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Run the pipeline\n", - "\n", - "Now you run the pipeline. First create a `Pipeline` object with your workspace reference and the pipeline step you created. The `steps` parameter is an array of steps, and in this case there is only one step for batch scoring. To build pipelines with multiple steps, you place the steps in order in this array.\n", - "\n", - "Next use the `Experiment.submit()` function to submit the pipeline for execution. You also specify the custom parameter `param_batch_size`. The `wait_for_completion` function will output logs during the pipeline build process, which allows you to see current progress.\n", - "\n", - "Note: The first pipeline run takes roughly **15 minutes**, as all dependencies must be downloaded, a Docker image is created, and the Python environment is provisioned/created. Running it again takes significantly less time as those resources are reused. However, total run time depends on the workload of your scripts and processes running in each pipeline step." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.core import Experiment\n", - "from azureml.pipeline.core import Pipeline\n", - "\n", - "pipeline = Pipeline(workspace=ws, steps=[batch_score_step])\n", - "pipeline_run = Experiment(ws, 'batch_scoring').submit(pipeline, pipeline_parameters={\"param_batch_size\": 20})\n", - "pipeline_run.wait_for_completion(show_output=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Download and review output" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Run the following code to download the output file created from the `batch_scoring.py` script, then explore the scoring results." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "\n", - "step_run = list(pipeline_run.get_children())[0]\n", - "step_run.download_file(\"./outputs/result-labels.txt\")\n", - "\n", - "df = pd.read_csv(\"result-labels.txt\", delimiter=\":\", header=None)\n", - "df.columns = [\"Filename\", \"Prediction\"]\n", - "df.head(10)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Publish and run from REST endpoint" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Run the following code to publish the pipeline to your workspace. In your workspace in the portal, you can see metadata for the pipeline including run history and durations. You can also run the pipeline manually from the portal.\n", - "\n", - "Additionally, publishing the pipeline enables a REST endpoint to rerun the pipeline from any HTTP library on any platform." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "published_pipeline = pipeline_run.publish_pipeline(\n", - " name=\"Inception_v3_scoring\", description=\"Batch scoring using Inception v3 model\", version=\"1.0\")\n", - "\n", - "published_pipeline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To run the pipeline from the REST endpoint, you first need an OAuth2 Bearer-type authentication header. This example uses interactive authentication for illustration purposes, but for most production scenarios requiring automated or headless authentication, use service principle authentication as [described in this notebook](https://aka.ms/pl-restep-auth).\n", - "\n", - "Service principle authentication involves creating an **App Registration** in **Azure Active Directory**, generating a client secret, and then granting your service principal **role access** to your machine learning workspace. You then use the [`ServicePrincipalAuthentication`](https://docs.microsoft.com/python/api/azureml-core/azureml.core.authentication.serviceprincipalauthentication?view=azure-ml-py) class to manage your auth flow. \n", - "\n", - "Both `InteractiveLoginAuthentication` and `ServicePrincipalAuthentication` inherit from `AbstractAuthentication`, and in both cases you use the `get_authentication_header()` function in the same way to fetch the header." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.core.authentication import InteractiveLoginAuthentication\n", - "\n", - "interactive_auth = InteractiveLoginAuthentication()\n", - "auth_header = interactive_auth.get_authentication_header()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Get the REST url from the `endpoint` property of the published pipeline object. You can also find the REST url in your workspace in the portal. Build an HTTP POST request to the endpoint, specifying your authentication header. Additionally, add a JSON payload object with the experiment name and the batch size parameter. As a reminder, the `param_batch_size` is passed through to your `batch_scoring.py` script because you defined it as a `PipelineParameter` object in the step configuration.\n", - "\n", - "Make the request to trigger the run. Access the `Id` key from the response dict to get the value of the run id." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import requests\n", - "\n", - "rest_endpoint = published_pipeline.endpoint\n", - "response = requests.post(rest_endpoint, \n", - " headers=auth_header, \n", - " json={\"ExperimentName\": \"batch_scoring\",\n", - " \"ParameterAssignments\": {\"param_batch_size\": 50}})\n", - "run_id = response.json()[\"Id\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Use the run id to monitor the status of the new run. This will take another 10-15 min to run and will look similar to the previous pipeline run, so if you don't need to see another pipeline run, you can skip watching the full output." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from azureml.pipeline.core.run import PipelineRun\n", - "from azureml.widgets import RunDetails\n", - "\n", - "published_pipeline_run = PipelineRun(ws.experiments[\"batch_scoring\"], run_id)\n", - "RunDetails(published_pipeline_run).show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Clean up resources\n", - "\n", - "Do not complete this section if you plan on running other Azure Machine Learning service tutorials.\n", - "\n", - "### Stop the notebook VM\n", - "\n", - "If you used a cloud notebook server, stop the VM when you are not using it to reduce cost.\n", - "\n", - "1. In your workspace, select **Notebook VMs**.\n", - "1. From the list, select the VM.\n", - "1. Select **Stop**.\n", - "1. When you're ready to use the server again, select **Start**.\n", - "\n", - "### Delete everything\n", - "\n", - "If you don't plan to use the resources you created, delete them, so you don't incur any charges.\n", - "\n", - "1. In the Azure portal, select **Resource groups** on the far left.\n", - "1. From the list, select the resource group you created.\n", - "1. Select **Delete resource group**.\n", - "1. Enter the resource group name. Then select **Delete**.\n", - "\n", - "You can also keep the resource group but delete a single workspace. Display the workspace properties and select **Delete**." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Next steps\n", - "\n", - "In this machine learning pipelines tutorial, you did the following tasks:\n", - "\n", - "> * Built a pipeline with environment dependencies to run on a remote GPU compute resource\n", - "> * Created a scoring script to run batch predictions with a pre-trained Tensorflow model\n", - "> * Published a pipeline and enabled it to be run from a REST endpoint\n", - "\n", - "See the [how-to](https://docs.microsoft.com/azure/machine-learning/service/how-to-create-your-first-pipeline?view=azure-devops) for additional detail on building pipelines with the machine learning SDK." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "authors": [ - { - "name": "sanpil" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved. \n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/machine-learning-pipelines/pipeline-batch-scoring/pipeline-batch-scoring.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Use Azure Machine Learning Pipelines for batch prediction\n", + "\n", + "In this tutorial, you use Azure Machine Learning service pipelines to run a batch scoring image classification job. The example job uses the pre-trained [Inception-V3](https://arxiv.org/abs/1512.00567) CNN (convolutional neural network) Tensorflow model to classify unlabeled images. Machine learning pipelines optimize your workflow with speed, portability, and reuse so you can focus on your expertise, machine learning, rather than on infrastructure and automation. After building and publishing a pipeline, you can configure a REST endpoint to enable triggering the pipeline from any HTTP library on any platform.\n", + "\n", + "\n", + "In this tutorial, you learn the following tasks:\n", + "\n", + "> * Configure workspace and download sample data\n", + "> * Create data objects to fetch and output data\n", + "> * Download, prepare, and register the model to your workspace\n", + "> * Provision compute targets and create a scoring script\n", + "> * Build, run, and publish a pipeline\n", + "> * Enable a REST endpoint for the pipeline\n", + "\n", + "If you don\u00e2\u20ac\u2122t have an Azure subscription, create a free account before you begin. Try the [free or paid version of Azure Machine Learning service](https://aka.ms/AMLFree) today." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "\n", + "* Complete the [setup tutorial](https://docs.microsoft.com/azure/machine-learning/service/tutorial-1st-experiment-sdk-setup) if you don't already have an Azure Machine Learning service workspace or notebook virtual machine.\n", + "* After you complete the setup tutorial, open the **tutorials/tutorial-pipeline-batch-scoring-classification.ipynb** notebook using the same notebook server.\n", + "\n", + "This tutorial is also available on [GitHub](https://github.com/Azure/MachineLearningNotebooks/tree/master/tutorials) if you wish to run it in your own [local environment](how-to-configure-environment.md#local). Run `pip install azureml-sdk[notebooks] azureml-pipeline-core azureml-pipeline-steps pandas requests` to get the required packages." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Configure workspace and create datastore" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a workspace object from the existing workspace. A [Workspace](https://docs.microsoft.com/python/api/azureml-core/azureml.core.workspace.workspace?view=azure-ml-py) is a class that accepts your Azure subscription and resource information. It also creates a cloud resource to monitor and track your model runs. `Workspace.from_config()` reads the file **config.json** and loads the authentication details into an object named `ws`. `ws` is used throughout the rest of the code in this tutorial." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Workspace\n", + "ws = Workspace.from_config()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a datastore for sample images\n", + "\n", + "Get the ImageNet evaluation public data sample from the public blob container `sampledata` on the account `pipelinedata`. Calling `register_azure_blob_container()` makes the data available to the workspace under the name `images_datastore`. Then specify the workspace default datastore as the output datastore, which you use for scoring output in the pipeline." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.datastore import Datastore\n", + "\n", + "batchscore_blob = Datastore.register_azure_blob_container(ws, \n", + " datastore_name=\"images_datastore\", \n", + " container_name=\"sampledata\", \n", + " account_name=\"pipelinedata\", \n", + " overwrite=True)\n", + "\n", + "def_data_store = ws.get_default_datastore()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create data objects\n", + "\n", + "When building pipelines, `DataReference` objects are used for reading data from workspace datastores, and `PipelineData` objects are used for transferring intermediate data between pipeline steps.\n", + "\n", + "This batch scoring example only uses one pipeline step, but in use-cases with multiple steps, the typical flow will include:\n", + "\n", + "1. Using `DataReference` objects as **inputs** to fetch raw data, performing some transformations, then **outputting** a `PipelineData` object.\n", + "1. Use the previous step's `PipelineData` **output object** as an *input object*, repeated for subsequent steps.\n", + "\n", + "For this scenario you create `DataReference` objects corresponding to the datastore directories for both the input images and the classification labels (y-test values). You also create a `PipelineData` object for the batch scoring output data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.data.data_reference import DataReference\n", + "from azureml.pipeline.core import PipelineData\n", + "\n", + "input_images = DataReference(datastore=batchscore_blob, \n", + " data_reference_name=\"input_images\",\n", + " path_on_datastore=\"batchscoring/images\",\n", + " mode=\"download\"\n", + " )\n", + "\n", + "label_dir = DataReference(datastore=batchscore_blob, \n", + " data_reference_name=\"input_labels\",\n", + " path_on_datastore=\"batchscoring/labels\",\n", + " mode=\"download\" \n", + " )\n", + "\n", + "output_dir = PipelineData(name=\"scores\", \n", + " datastore=def_data_store, \n", + " output_path_on_compute=\"batchscoring/results\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Download and register the model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Download the pre-trained Tensorflow model to use it for batch scoring in the pipeline. First create a local directory where you store the model, then download and extract it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import tarfile\n", + "import urllib.request\n", + "\n", + "if not os.path.isdir(\"models\"):\n", + " os.mkdir(\"models\")\n", + " \n", + "response = urllib.request.urlretrieve(\"http://download.tensorflow.org/models/inception_v3_2016_08_28.tar.gz\", \"model.tar.gz\")\n", + "tar = tarfile.open(\"model.tar.gz\", \"r:gz\")\n", + "tar.extractall(\"models\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now you register the model to your workspace, which allows you to easily retrieve it in the pipeline process. In the `register()` static function, the `model_name` parameter is the key you use to locate your model throughout the SDK." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.model import Model\n", + " \n", + "model = Model.register(model_path=\"models/inception_v3.ckpt\",\n", + " model_name=\"inception\",\n", + " tags={\"pretrained\": \"inception\"},\n", + " description=\"Imagenet trained tensorflow inception\",\n", + " workspace=ws)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create and attach remote compute target\n", + "\n", + "Azure Machine Learning service pipelines cannot be run locally, and only run on cloud resources. Remote compute targets are reusable virtual compute environments where you run experiments and work-flows. Run the following code to create a GPU-enabled [`AmlCompute`](https://docs.microsoft.com/python/api/azureml-core/azureml.core.compute.amlcompute.amlcompute?view=azure-ml-py) target, and attach it to your workspace. See the [conceptual article](https://docs.microsoft.com/azure/machine-learning/service/concept-compute-target) for more information on compute targets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import AmlCompute, ComputeTarget\n", + "from azureml.exceptions import ComputeTargetException\n", + "compute_name = \"gpu-cluster\"\n", + "\n", + "# checks to see if compute target already exists in workspace, else create it\n", + "try:\n", + " compute_target = ComputeTarget(workspace=ws, name=compute_name)\n", + "except ComputeTargetException:\n", + " config = AmlCompute.provisioning_configuration(vm_size=\"STANDARD_NC6\",\n", + " vm_priority=\"lowpriority\", \n", + " min_nodes=0, \n", + " max_nodes=1)\n", + "\n", + " compute_target = ComputeTarget.create(workspace=ws, name=compute_name, provisioning_configuration=config)\n", + " compute_target.wait_for_completion(show_output=True, min_node_count=None, timeout_in_minutes=20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Write a scoring script" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To do the scoring, you create a batch scoring script `batch_scoring.py`, and write it to the current directory. The script takes input images, applies the classification model, and outputs the predictions to a results file.\n", + "\n", + "The script `batch_scoring.py` takes the following parameters, which get passed from the `PythonScriptStep` that you create later:\n", + "\n", + "- `--model_name`: the name of the model being used\n", + "- `--label_dir` : the directory holding the `labels.txt` file \n", + "- `--dataset_path`: the directory containing the input images\n", + "- `--output_dir` : the script will run the model on the data and output a `results-label.txt` to this directory\n", + "- `--batch_size` : the batch size used in running the model\n", + "\n", + "The pipelines infrastructure uses the `ArgumentParser` class to pass parameters into pipeline steps. For example, in the code below the first argument `--model_name` is given the property identifier `model_name`. In the `main()` function, this property is accessed using `Model.get_model_path(args.model_name)`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile batch_scoring.py\n", + "\n", + "import os\n", + "import argparse\n", + "import datetime\n", + "import time\n", + "import tensorflow as tf\n", + "from math import ceil\n", + "import numpy as np\n", + "import shutil\n", + "from tensorflow.contrib.slim.python.slim.nets import inception_v3\n", + "from azureml.core.model import Model\n", + "\n", + "slim = tf.contrib.slim\n", + "\n", + "parser = argparse.ArgumentParser(description=\"Start a tensorflow model serving\")\n", + "parser.add_argument('--model_name', dest=\"model_name\", required=True)\n", + "parser.add_argument('--label_dir', dest=\"label_dir\", required=True)\n", + "parser.add_argument('--dataset_path', dest=\"dataset_path\", required=True)\n", + "parser.add_argument('--output_dir', dest=\"output_dir\", required=True)\n", + "parser.add_argument('--batch_size', dest=\"batch_size\", type=int, required=True)\n", + "\n", + "args = parser.parse_args()\n", + "\n", + "image_size = 299\n", + "num_channel = 3\n", + "\n", + "# create output directory if it does not exist\n", + "os.makedirs(args.output_dir, exist_ok=True)\n", + "\n", + "\n", + "def get_class_label_dict(label_file):\n", + " label = []\n", + " proto_as_ascii_lines = tf.gfile.GFile(label_file).readlines()\n", + " for l in proto_as_ascii_lines:\n", + " label.append(l.rstrip())\n", + " return label\n", + "\n", + "\n", + "class DataIterator:\n", + " def __init__(self, data_dir):\n", + " self.file_paths = []\n", + " image_list = os.listdir(data_dir)\n", + " self.file_paths = [data_dir + '/' + file_name.rstrip() for file_name in image_list]\n", + "\n", + " self.labels = [1 for file_name in self.file_paths]\n", + "\n", + " @property\n", + " def size(self):\n", + " return len(self.labels)\n", + "\n", + " def input_pipeline(self, batch_size):\n", + " images_tensor = tf.convert_to_tensor(self.file_paths, dtype=tf.string)\n", + " labels_tensor = tf.convert_to_tensor(self.labels, dtype=tf.int64)\n", + " input_queue = tf.train.slice_input_producer([images_tensor, labels_tensor], shuffle=False)\n", + " labels = input_queue[1]\n", + " images_content = tf.read_file(input_queue[0])\n", + "\n", + " image_reader = tf.image.decode_jpeg(images_content, channels=num_channel, name=\"jpeg_reader\")\n", + " float_caster = tf.cast(image_reader, tf.float32)\n", + " new_size = tf.constant([image_size, image_size], dtype=tf.int32)\n", + " images = tf.image.resize_images(float_caster, new_size)\n", + " images = tf.divide(tf.subtract(images, [0]), [255])\n", + "\n", + " image_batch, label_batch = tf.train.batch([images, labels], batch_size=batch_size, capacity=5 * batch_size)\n", + " return image_batch\n", + "\n", + "\n", + "def main(_):\n", + " label_file_name = os.path.join(args.label_dir, \"labels.txt\")\n", + " label_dict = get_class_label_dict(label_file_name)\n", + " classes_num = len(label_dict)\n", + " test_feeder = DataIterator(data_dir=args.dataset_path)\n", + " total_size = len(test_feeder.labels)\n", + " count = 0\n", + " \n", + " # get model from model registry\n", + " model_path = Model.get_model_path(args.model_name)\n", + " \n", + " with tf.Session() as sess:\n", + " test_images = test_feeder.input_pipeline(batch_size=args.batch_size)\n", + " with slim.arg_scope(inception_v3.inception_v3_arg_scope()):\n", + " input_images = tf.placeholder(tf.float32, [args.batch_size, image_size, image_size, num_channel])\n", + " logits, _ = inception_v3.inception_v3(input_images,\n", + " num_classes=classes_num,\n", + " is_training=False)\n", + " probabilities = tf.argmax(logits, 1)\n", + "\n", + " sess.run(tf.global_variables_initializer())\n", + " sess.run(tf.local_variables_initializer())\n", + " coord = tf.train.Coordinator()\n", + " threads = tf.train.start_queue_runners(sess=sess, coord=coord)\n", + " saver = tf.train.Saver()\n", + " saver.restore(sess, model_path)\n", + " out_filename = os.path.join(args.output_dir, \"result-labels.txt\")\n", + " with open(out_filename, \"w\") as result_file:\n", + " i = 0\n", + " while count < total_size and not coord.should_stop():\n", + " test_images_batch = sess.run(test_images)\n", + " file_names_batch = test_feeder.file_paths[i * args.batch_size:\n", + " min(test_feeder.size, (i + 1) * args.batch_size)]\n", + " results = sess.run(probabilities, feed_dict={input_images: test_images_batch})\n", + " new_add = min(args.batch_size, total_size - count)\n", + " count += new_add\n", + " i += 1\n", + " for j in range(new_add):\n", + " result_file.write(os.path.basename(file_names_batch[j]) + \": \" + label_dict[results[j]] + \"\\n\")\n", + " result_file.flush()\n", + " coord.request_stop()\n", + " coord.join(threads)\n", + "\n", + " shutil.copy(out_filename, \"./outputs/\")\n", + "\n", + "if __name__ == \"__main__\":\n", + " tf.app.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The pipeline in this tutorial only has one step and writes the output to a file, but for multi-step pipelines, you also use `ArgumentParser` to define a directory to write output data for input to subsequent steps. See the [notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/nyc-taxi-data-regression-model-building/nyc-taxi-data-regression-model-building.ipynb) for an example of passing data between multiple pipeline steps using the `ArgumentParser` design pattern." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Build and run the pipeline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before running the pipeline, you create an object that defines the python environment and dependencies needed by your script `batch_scoring.py`. The main dependency required is Tensorflow, but you also install `azureml-defaults` for background processes from the SDK. Create a `RunConfiguration` object using the dependencies, and also specify Docker and Docker-GPU support." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.runconfig import DEFAULT_GPU_IMAGE\n", + "from azureml.core.runconfig import CondaDependencies, RunConfiguration\n", + "\n", + "cd = CondaDependencies.create(pip_packages=[\"tensorflow-gpu==1.13.1\", \"azureml-defaults\"])\n", + "\n", + "amlcompute_run_config = RunConfiguration(conda_dependencies=cd)\n", + "amlcompute_run_config.environment.docker.enabled = True\n", + "amlcompute_run_config.environment.docker.base_image = DEFAULT_GPU_IMAGE\n", + "amlcompute_run_config.environment.spark.precache_packages = False" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Parameterize the pipeline\n", + "\n", + "Define a custom parameter for the pipeline to control the batch size. After the pipeline has been published and exposed via a REST endpoint, any configured parameters are also exposed and can be specified in the JSON payload when rerunning the pipeline with an HTTP request.\n", + "\n", + "Create a `PipelineParameter` object to enable this behavior, and define a name and default value." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.pipeline.core.graph import PipelineParameter\n", + "batch_size_param = PipelineParameter(name=\"param_batch_size\", default_value=20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create the pipeline step\n", + "\n", + "A pipeline step is an object that encapsulates everything you need for running a pipeline including:\n", + "\n", + "* environment and dependency settings\n", + "* the compute resource to run the pipeline on\n", + "* input and output data, and any custom parameters\n", + "* reference to a script or SDK-logic to run during the step\n", + "\n", + "There are multiple classes that inherit from the parent class [`PipelineStep`](https://docs.microsoft.com/python/api/azureml-pipeline-core/azureml.pipeline.core.builder.pipelinestep?view=azure-ml-py) to assist with building a step using certain frameworks and stacks. In this example, you use the [`PythonScriptStep`](https://docs.microsoft.com/python/api/azureml-pipeline-steps/azureml.pipeline.steps.python_script_step.pythonscriptstep?view=azure-ml-py) class to define your step logic using a custom python script. Note that if an argument to your script is either an input to the step or output of the step, it must be defined **both** in the `arguments` array, **as well as** in either the `input` or `output` parameter, respectively. \n", + "\n", + "An object reference in the `outputs` array becomes available as an **input** for a subsequent pipeline step, for scenarios where there is more than one step." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.pipeline.steps import PythonScriptStep\n", + "\n", + "batch_score_step = PythonScriptStep(\n", + " name=\"batch_scoring\",\n", + " script_name=\"batch_scoring.py\",\n", + " arguments=[\"--dataset_path\", input_images, \n", + " \"--model_name\", \"inception\",\n", + " \"--label_dir\", label_dir, \n", + " \"--output_dir\", output_dir, \n", + " \"--batch_size\", batch_size_param],\n", + " compute_target=compute_target,\n", + " inputs=[input_images, label_dir],\n", + " outputs=[output_dir],\n", + " runconfig=amlcompute_run_config\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For a list of all classes for different step types, see the [steps package](https://docs.microsoft.com/python/api/azureml-pipeline-steps/azureml.pipeline.steps?view=azure-ml-py)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run the pipeline\n", + "\n", + "Now you run the pipeline. First create a `Pipeline` object with your workspace reference and the pipeline step you created. The `steps` parameter is an array of steps, and in this case there is only one step for batch scoring. To build pipelines with multiple steps, you place the steps in order in this array.\n", + "\n", + "Next use the `Experiment.submit()` function to submit the pipeline for execution. You also specify the custom parameter `param_batch_size`. The `wait_for_completion` function will output logs during the pipeline build process, which allows you to see current progress.\n", + "\n", + "Note: The first pipeline run takes roughly **15 minutes**, as all dependencies must be downloaded, a Docker image is created, and the Python environment is provisioned/created. Running it again takes significantly less time as those resources are reused. However, total run time depends on the workload of your scripts and processes running in each pipeline step." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "from azureml.pipeline.core import Pipeline\n", + "\n", + "pipeline = Pipeline(workspace=ws, steps=[batch_score_step])\n", + "pipeline_run = Experiment(ws, 'batch_scoring').submit(pipeline, pipeline_parameters={\"param_batch_size\": 20})\n", + "pipeline_run.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Download and review output" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the following code to download the output file created from the `batch_scoring.py` script, then explore the scoring results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "step_run = list(pipeline_run.get_children())[0]\n", + "step_run.download_file(\"./outputs/result-labels.txt\")\n", + "\n", + "df = pd.read_csv(\"result-labels.txt\", delimiter=\":\", header=None)\n", + "df.columns = [\"Filename\", \"Prediction\"]\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Publish and run from REST endpoint" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the following code to publish the pipeline to your workspace. In your workspace in the portal, you can see metadata for the pipeline including run history and durations. You can also run the pipeline manually from the portal.\n", + "\n", + "Additionally, publishing the pipeline enables a REST endpoint to rerun the pipeline from any HTTP library on any platform." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "published_pipeline = pipeline_run.publish_pipeline(\n", + " name=\"Inception_v3_scoring\", description=\"Batch scoring using Inception v3 model\", version=\"1.0\")\n", + "\n", + "published_pipeline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To run the pipeline from the REST endpoint, you first need an OAuth2 Bearer-type authentication header. This example uses interactive authentication for illustration purposes, but for most production scenarios requiring automated or headless authentication, use service principle authentication as [described in this notebook](https://aka.ms/pl-restep-auth).\n", + "\n", + "Service principle authentication involves creating an **App Registration** in **Azure Active Directory**, generating a client secret, and then granting your service principal **role access** to your machine learning workspace. You then use the [`ServicePrincipalAuthentication`](https://docs.microsoft.com/python/api/azureml-core/azureml.core.authentication.serviceprincipalauthentication?view=azure-ml-py) class to manage your auth flow. \n", + "\n", + "Both `InteractiveLoginAuthentication` and `ServicePrincipalAuthentication` inherit from `AbstractAuthentication`, and in both cases you use the `get_authentication_header()` function in the same way to fetch the header." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.authentication import InteractiveLoginAuthentication\n", + "\n", + "interactive_auth = InteractiveLoginAuthentication()\n", + "auth_header = interactive_auth.get_authentication_header()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get the REST url from the `endpoint` property of the published pipeline object. You can also find the REST url in your workspace in the portal. Build an HTTP POST request to the endpoint, specifying your authentication header. Additionally, add a JSON payload object with the experiment name and the batch size parameter. As a reminder, the `param_batch_size` is passed through to your `batch_scoring.py` script because you defined it as a `PipelineParameter` object in the step configuration.\n", + "\n", + "Make the request to trigger the run. Access the `Id` key from the response dict to get the value of the run id." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "\n", + "rest_endpoint = published_pipeline.endpoint\n", + "response = requests.post(rest_endpoint, \n", + " headers=auth_header, \n", + " json={\"ExperimentName\": \"batch_scoring\",\n", + " \"ParameterAssignments\": {\"param_batch_size\": 50}})\n", + "run_id = response.json()[\"Id\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use the run id to monitor the status of the new run. This will take another 10-15 min to run and will look similar to the previous pipeline run, so if you don't need to see another pipeline run, you can skip watching the full output." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.pipeline.core.run import PipelineRun\n", + "from azureml.widgets import RunDetails\n", + "\n", + "published_pipeline_run = PipelineRun(ws.experiments[\"batch_scoring\"], run_id)\n", + "RunDetails(published_pipeline_run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Clean up resources\n", + "\n", + "Do not complete this section if you plan on running other Azure Machine Learning service tutorials.\n", + "\n", + "### Stop the notebook VM\n", + "\n", + "If you used a cloud notebook server, stop the VM when you are not using it to reduce cost.\n", + "\n", + "1. In your workspace, select **Notebook VMs**.\n", + "1. From the list, select the VM.\n", + "1. Select **Stop**.\n", + "1. When you're ready to use the server again, select **Start**.\n", + "\n", + "### Delete everything\n", + "\n", + "If you don't plan to use the resources you created, delete them, so you don't incur any charges.\n", + "\n", + "1. In the Azure portal, select **Resource groups** on the far left.\n", + "1. From the list, select the resource group you created.\n", + "1. Select **Delete resource group**.\n", + "1. Enter the resource group name. Then select **Delete**.\n", + "\n", + "You can also keep the resource group but delete a single workspace. Display the workspace properties and select **Delete**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Next steps\n", + "\n", + "In this machine learning pipelines tutorial, you did the following tasks:\n", + "\n", + "> * Built a pipeline with environment dependencies to run on a remote GPU compute resource\n", + "> * Created a scoring script to run batch predictions with a pre-trained Tensorflow model\n", + "> * Published a pipeline and enabled it to be run from a REST endpoint\n", + "\n", + "See the [how-to](https://docs.microsoft.com/azure/machine-learning/service/how-to-create-your-first-pipeline?view=azure-devops) for additional detail on building pipelines with the machine learning SDK." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } ], - "friendly_name": "Use pipelines for batch scoring", - "exclude_from_index": false, - "index_order": 1, - "category": "tutorial", - "star_tag": ["featured"], - "task": "Batch scoring", - "datasets": ["None"], - "compute": ["AmlCompute"], - "deployment": ["Published pipeline"], - "framework": ["Azure ML Pipelines"], - "tags": ["None"], - "kernelspec": { - "display_name": "Python 3.6", - "language": "python", - "name": "python36" + "metadata": { + "authors": [ + { + "name": "sanpil" + } + ], + "friendly_name": "Use pipelines for batch scoring", + "exclude_from_index": false, + "index_order": 1, + "category": "tutorial", + "star_tag": [ + "featured" + ], + "task": "Batch scoring", + "datasets": [ + "None" + ], + "compute": [ + "AmlCompute" + ], + "deployment": [ + "Published pipeline" + ], + "framework": [ + "Azure ML Pipelines" + ], + "tags": [ + "None" + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + }, + "msauthor": "trbye" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.5" - }, - "msauthor": "trbye" - }, - "nbformat": 4, - "nbformat_minor": 2 -} + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file

    GzF+*T{KC2Ce=YL=0HkUX3FVaivqDIwQI3l| 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¬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%0At_j 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