diff --git a/doc/source/ray-air/examples/batch_forecasting.ipynb b/doc/source/ray-air/examples/batch_forecasting.ipynb
index c40baba552d4..4fa33c5a7b4f 100644
--- a/doc/source/ray-air/examples/batch_forecasting.ipynb
+++ b/doc/source/ray-air/examples/batch_forecasting.ipynb
@@ -1,1464 +1,1915 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "a2c05c1a",
- "metadata": {},
- "source": [
- "# Parallel demand forecasting at scale using Ray Tune"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "16f52765",
- "metadata": {},
- "source": [
- "**Batch training** and tuning are common tasks in machine learning use-cases. They require training simple models, on data batches, typcially corresponding to different locations, products, etc. Batch training can take less time to process all the data at once, but only if those batches can run in parallel!\n",
- "\n",
- "This notebook showcases how to conduct batch training using forecast algorithms [Prophet](https://github.com/facebook/prophet) and [ARIMA](https://github.com/Nixtla/statsforecast). **Prophet** is a popular open-source library developed by Facebook and designed for automatic forecasting of univariate time series data. **ARIMA** is an older, well-known algorithm for forecasting univariate time series at less fine-grained detail than Prophet.\n",
- "\n",
- "![Batch training diagram](../../data/examples/images/batch-training.svg)\n",
- "\n",
- "For the data, we will use the [NYC Taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). This popular tabular dataset contains historical taxi pickups by timestamp and location in NYC.\n",
- "\n",
- "For the training, we will train a separate forecasting model to predict #pickups at each location in NYC at daily level for the next 28 days. Specifically, we will use the `pickup_location_id` column in the dataset to group the dataset into data batches. Then we will conduct an experiment for each location, to find the best either Prophet or ARIMA model, per location."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "bb32bbb7",
- "metadata": {
- "tags": []
- },
- "source": [
- "# Contents\n",
- "\n",
- "In this this tutorial, you will learn about:\n",
- " 1. [Define how to load and prepare Parquet data](#prepare_data)\n",
- " 2. [Define your Ray Tune Search Space and Search Algorithm](#define_search_space2)\n",
- " 3. [Define a Trainable (callable) function](#define_trainable2)\n",
- " 4. [Run batch training with Ray Tune](#run_tune_search2)\n",
- " 5. [Load a model from checkpoint and create a forecast](#load_checkpoint2)\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "332ee209",
- "metadata": {},
- "source": [
- "# Walkthrough\n",
- "\n",
- "```{tip}\n",
- "Prerequisite for this notebook: Read the [Key Concepts](https://docs.ray.io/en/latest/tune/key-concepts.html) page for Ray Tune.\n",
- "```\n",
- "\n",
- "Let us start by importing a few required libraries, including open-source [Ray](https://github.com/ray-project/ray) itself!"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "4cc4955c",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Number of CPUs in this system: 8\n",
- "numpy: 1.23.5\n",
- "scipy: 1.9.3\n",
- "pyarrow: 10.0.0\n"
- ]
- }
- ],
- "source": [
- "import os\n",
- "\n",
- "print(f\"Number of CPUs in this system: {os.cpu_count()}\")\n",
- "from typing import Tuple, List, Union, Optional, Callable\n",
- "from datetime import datetime, timedelta\n",
- "import time\n",
- "import pandas as pd\n",
- "import numpy as np\n",
- "\n",
- "print(f\"numpy: {np.__version__}\")\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "%matplotlib inline\n",
- "import scipy\n",
- "\n",
- "print(f\"scipy: {scipy.__version__}\")\n",
- "import pyarrow\n",
- "import pyarrow.parquet as pq\n",
- "import pyarrow.dataset as pds\n",
- "\n",
- "print(f\"pyarrow: {pyarrow.__version__}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "ed5b0282",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "
\n",
- "
Ray \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " \n",
- "
\n",
- " \n",
- " Python version: \n",
- " 3.8.13 \n",
- " \n",
- " \n",
- " Ray version: \n",
- " 2.1.0 \n",
- " \n",
- " \n",
- " Dashboard: \n",
- " http://console.anyscale-staging.com/api/v2/sessions/ses_b5q8xHd42BTdukSgFqTxejLT/services?redirect_to=dashboard \n",
- " \n",
- "\n",
- "
\n",
- "
\n",
- "
\n"
- ],
- "text/plain": [
- "RayContext(dashboard_url='console.anyscale-staging.com/api/v2/sessions/ses_b5q8xHd42BTdukSgFqTxejLT/services?redirect_to=dashboard', python_version='3.8.13', ray_version='2.1.0', ray_commit='be49bde7ee4f6adb3f8710aee0665c27f9f0bb62', address_info={'node_ip_address': '172.31.238.32', 'raylet_ip_address': '172.31.238.32', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2022-12-05_12-47-59_806291_147/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2022-12-05_12-47-59_806291_147/sockets/raylet', 'webui_url': 'console.anyscale-staging.com/api/v2/sessions/ses_b5q8xHd42BTdukSgFqTxejLT/services?redirect_to=dashboard', 'session_dir': '/tmp/ray/session_2022-12-05_12-47-59_806291_147', 'metrics_export_port': 62335, 'gcs_address': '172.31.238.32:9031', 'address': '172.31.238.32:9031', 'dashboard_agent_listen_port': 52365, 'node_id': '0c1aa92379ce3775c118812e3ac510b48057bbd1585fd51a2dd0c858'})"
- ]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "import ray\n",
- "\n",
- "if ray.is_initialized():\n",
- " ray.shutdown()\n",
- "ray.init()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "9a51d8d1",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "{'object_store_memory': 27553189478.0, 'node:172.31.82.113': 1.0, 'CPU': 24.0, 'memory': 66321473537.0, 'node:172.31.238.32': 1.0}\n"
- ]
- }
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "16a0b509",
+ "metadata": {},
+ "source": [
+ "# Parallel demand forecasting at scale using Ray Tune"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "74d5d891",
+ "metadata": {},
+ "source": [
+ "**Batch training and tuning** are common tasks in machine learning use-cases. They require training simple models, on data batches, typcially corresponding to different locations, products, etc. Batch training can take less time to process all the data at once, but only if those batches can run in parallel!\n",
+ "\n",
+ "This notebook showcases how to conduct batch forecasting with [Prophet](https://github.com/facebook/prophet) and [ARIMA](https://github.com/Nixtla/statsforecast). **Prophet** is a popular open-source library developed by Facebook and designed for automatic forecasting of univariate time series data. **ARIMA** is an older, well-known algorithm for forecasting univariate time series at less fine-grained detail than Prophet.\n",
+ "\n",
+ "![Batch training diagram](../../data/examples/images/batch-training.svg)\n",
+ "\n",
+ "For the data, we will use the [NYC Taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). This popular tabular dataset contains historical taxi pickups by timestamp and location in NYC.\n",
+ "\n",
+ "For the training, we will train a separate forecasting model to predict #pickups at each location in NYC at daily level for the next 28 days. Specifically, we will use the `pickup_location_id` column in the dataset to group the dataset into data batches. Then we will conduct an experiment for each location, to find the best either Prophet or ARIMA model, per location."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "82c2a39a",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "# Contents\n",
+ "\n",
+ "In this this tutorial, you will learn how to:\n",
+ " 1. [Define how to load and prepare Parquet data](#prepare_data2)\n",
+ " 2. [Define a Trainable (callable) function](#define_trainable2)\n",
+ " 3. [Run batch training and inference with Ray Tune](#run_tune_search2)\n",
+ " 4. [Load a model from checkpoint](#load_checkpoint2)\n",
+ " 5. [Create a forecast from model restored from checkpoint](#create_prediction2)\n"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "a8033e35",
+ "metadata": {},
+ "source": [
+ "# Walkthrough\n",
+ "\n",
+ "```{tip}\n",
+ "Prerequisite for this notebook: Read the [Key Concepts](tune-60-seconds) page for Ray Tune.\n",
+ "```\n",
+ "\n",
+ "Let us start by importing a few required libraries, including open-source [Ray](https://github.com/ray-project/ray) itself!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "42669159",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of CPUs in this system: 8\n",
+ "numpy: 1.21.6\n",
+ "scipy: 1.9.3\n",
+ "pyarrow: 10.0.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "import os\n",
+ "\n",
+ "num_cpu = os.cpu_count()\n",
+ "\n",
+ "print(f\"Number of CPUs in this system: {num_cpu}\")\n",
+ "from typing import Tuple, List, Union, Optional, Callable\n",
+ "from datetime import datetime, timedelta\n",
+ "import time\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "\n",
+ "print(f\"numpy: {np.__version__}\")\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import scipy\n",
+ "\n",
+ "print(f\"scipy: {scipy.__version__}\")\n",
+ "import pyarrow\n",
+ "import pyarrow.parquet as pq\n",
+ "import pyarrow.dataset as pds\n",
+ "\n",
+ "print(f\"pyarrow: {pyarrow.__version__}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "46adc58f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
\n",
+ "
Ray \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " Python version: \n",
+ " 3.8.13 \n",
+ " \n",
+ " \n",
+ " Ray version: \n",
+ " 2.2.0 \n",
+ " \n",
+ " \n",
+ " Dashboard: \n",
+ " http://console.anyscale-staging.com/api/v2/sessions/ses_b5q8xHd42BTdukSgFqTxejLT/services?redirect_to=dashboard \n",
+ " \n",
+ "\n",
+ "
\n",
+ "
\n",
+ "
\n"
],
- "source": [
- "print(ray.cluster_resources())"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "4b495aad",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "prophet: 1.1.1\n",
- "statsforecast: 1.3.1\n"
- ]
- }
- ],
- "source": [
- "# import forecasting libraries\n",
- "import prophet\n",
- "from prophet import Prophet\n",
- "\n",
- "print(f\"prophet: {prophet.__version__}\")\n",
- "\n",
- "import statsforecast\n",
- "from statsforecast import StatsForecast\n",
- "from statsforecast.models import AutoARIMA\n",
- "\n",
- "print(f\"statsforecast: {statsforecast.__version__}\")\n",
- "\n",
- "# import ray libraries\n",
- "from ray import air, tune\n",
- "from ray.air import session\n",
- "from ray.air.checkpoint import Checkpoint"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "6cab5581",
- "metadata": {},
- "outputs": [],
- "source": [
- "# For benchmarking purposes, we can print the times of various operations.\n",
- "# In order to reduce clutter in the output, this is set to False by default.\n",
- "PRINT_TIMES = False\n",
- "\n",
- "\n",
- "def print_time(msg: str):\n",
- " if PRINT_TIMES:\n",
- " print(msg)\n",
- "\n",
- "\n",
- "# To speed things up, we’ll only use a small subset of the full dataset consisting of two last months of 2019.\n",
- "# You can choose to use the full dataset for 2018-2019 by setting the SMOKE_TEST variable to False.\n",
- "SMOKE_TEST = True"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "0ad43f4e",
- "metadata": {
- "tags": []
- },
- "source": [
- "## Define how to load and prepare Parquet data "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "ed926965",
- "metadata": {},
- "source": [
- "First, we need to load some data. Since the NYC Taxi dataset is fairly large, we will filter files first into a PyArrow dataset. And then in the next cell after, we will filter the data on read into a PyArrow table and convert that to a pandas dataframe.\n",
- "\n",
- "```{tip}\n",
- "Use PyArrow dataset and table for reading or writing large parquet files, since its native multithreaded C++ adapter is faster than pandas read_parquet, even using engine=pyarrow.\n",
- "```"
+ "text/plain": [
+ "RayContext(dashboard_url='console.anyscale-staging.com/api/v2/sessions/ses_b5q8xHd42BTdukSgFqTxejLT/services?redirect_to=dashboard', python_version='3.8.13', ray_version='2.2.0', ray_commit='b6af0887ee5f2e460202133791ad941a41f15beb', address_info={'node_ip_address': '172.31.169.100', 'raylet_ip_address': '172.31.169.100', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2023-01-10_17-10-21_112517_159/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2023-01-10_17-10-21_112517_159/sockets/raylet', 'webui_url': 'console.anyscale-staging.com/api/v2/sessions/ses_b5q8xHd42BTdukSgFqTxejLT/services?redirect_to=dashboard', 'session_dir': '/tmp/ray/session_2023-01-10_17-10-21_112517_159', 'metrics_export_port': 51352, 'gcs_address': '172.31.169.100:9031', 'address': '172.31.169.100:9031', 'dashboard_agent_listen_port': 52365, 'node_id': '1f4fdb3c6fb3929e80a6e777022a1ae2a1926288c593039f799a3410'})"
]
},
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "c5aa92cd",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "NYC Taxi using 2 file(s)!\n",
- "s3_files: ['s3://anonymous@air-example-data/ursa-labs-taxi-data/by_year/2019/05/data.parquet/359c21b3e28f40328e68cf66f7ba40e2_000000.parquet', 's3://anonymous@air-example-data/ursa-labs-taxi-data/by_year/2019/06/data.parquet/ab5b9d2b8cc94be19346e260b543ec35_000000.parquet']\n",
- "Locations: [141, 229, 173]\n"
- ]
- }
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import ray\n",
+ "\n",
+ "if ray.is_initialized():\n",
+ " ray.shutdown()\n",
+ "ray.init()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "130cc1bd",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'CPU': 24.0, 'memory': 66369477838.0, 'node:172.31.136.199': 1.0, 'object_store_memory': 27579751218.0, 'node:172.31.169.100': 1.0}\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(ray.cluster_resources())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "89928c80",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "prophet: 1.0\n",
+ "statsforecast: 1.3.1\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Import forecasting libraries.\n",
+ "import prophet\n",
+ "from prophet import Prophet\n",
+ "\n",
+ "print(f\"prophet: {prophet.__version__}\")\n",
+ "\n",
+ "import statsforecast\n",
+ "from statsforecast import StatsForecast\n",
+ "from statsforecast.models import AutoARIMA\n",
+ "\n",
+ "print(f\"statsforecast: {statsforecast.__version__}\")\n",
+ "\n",
+ "# Import ray libraries.\n",
+ "from ray import air, tune, serve\n",
+ "from ray.air import session, ScalingConfig\n",
+ "from ray.air.checkpoint import Checkpoint\n",
+ "\n",
+ "RAY_IGNORE_UNHANDLED_ERRORS = 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "7559a0a7",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# For benchmarking purposes, we can print the times of various operations.\n",
+ "# In order to reduce clutter in the output, this is set to False by default.\n",
+ "PRINT_TIMES = False\n",
+ "\n",
+ "\n",
+ "def print_time(msg: str):\n",
+ " if PRINT_TIMES:\n",
+ " print(msg)\n",
+ "\n",
+ "\n",
+ "# To speed things up, we’ll only use a small subset of the full dataset consisting of two last months of 2019.\n",
+ "# You can choose to use the full dataset for 2018-2019 by setting the SMOKE_TEST variable to False.\n",
+ "SMOKE_TEST = True"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e6e47315",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "## Define how to load and prepare Parquet data "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b8d29ea0",
+ "metadata": {},
+ "source": [
+ "First, we need to load some data. Since the NYC Taxi dataset is fairly large, we will filter files first into a PyArrow dataset. And then in the next cell after, we will filter the data on read into a PyArrow table and convert that to a pandas dataframe.\n",
+ "\n",
+ "```{tip}\n",
+ "Use PyArrow dataset and table for reading or writing large parquet files, since its native multithreaded C++ adapter is faster than pandas read_parquet, even using engine=pyarrow.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "eb48598a",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "NYC Taxi using 2 file(s)!\n",
+ "s3_files: ['s3://anonymous@air-example-data/ursa-labs-taxi-data/by_year/2019/05/data.parquet/359c21b3e28f40328e68cf66f7ba40e2_000000.parquet', 's3://anonymous@air-example-data/ursa-labs-taxi-data/by_year/2019/06/data.parquet/ab5b9d2b8cc94be19346e260b543ec35_000000.parquet']\n",
+ "Locations: [141, 229, 173]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Define some global variables.\n",
+ "TARGET = \"y\"\n",
+ "FORECAST_LENGTH = 28\n",
+ "MAX_DATE = datetime(2019, 6, 30)\n",
+ "s3_partitions = pds.dataset(\n",
+ " \"s3://anonymous@air-example-data/ursa-labs-taxi-data/by_year/\",\n",
+ " partitioning=[\"year\", \"month\"],\n",
+ ")\n",
+ "s3_files = [f\"s3://anonymous@{file}\" for file in s3_partitions.files]\n",
+ "\n",
+ "# Obtain all location IDs\n",
+ "all_location_ids = (\n",
+ " pq.read_table(s3_files[0], columns=[\"pickup_location_id\"])[\"pickup_location_id\"]\n",
+ " .unique()\n",
+ " .to_pylist()\n",
+ ")\n",
+ "# drop [264, 265, 199]\n",
+ "all_location_ids.remove(264)\n",
+ "all_location_ids.remove(265)\n",
+ "all_location_ids.remove(199)\n",
+ "\n",
+ "# Use smoke testing or not.\n",
+ "starting_idx = -2 if SMOKE_TEST else 0\n",
+ "# TODO: drop location 199 to test error-handling before final git checkin\n",
+ "sample_locations = [141, 229, 173] if SMOKE_TEST else all_location_ids\n",
+ "\n",
+ "# Display what data will be used.\n",
+ "s3_files = s3_files[starting_idx:]\n",
+ "print(f\"NYC Taxi using {len(s3_files)} file(s)!\")\n",
+ "print(f\"s3_files: {s3_files}\")\n",
+ "print(f\"Locations: {sample_locations}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "736fcb5b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "############\n",
+ "# STEP 1. Define Python functions to\n",
+ "# a) read and prepare a segment of data, and\n",
+ "############\n",
+ "\n",
+ "# Function to read a pyarrow.Table object using pyarrow parquet\n",
+ "def read_data(file: str, sample_id: np.int32) -> pd.DataFrame:\n",
+ "\n",
+ " # parse out min expected date\n",
+ " part_zero = \"s3://anonymous@air-example-data/ursa-labs-taxi-data/by_year/\"\n",
+ " split_text = file.split(part_zero)[1]\n",
+ " min_year = split_text.split(\"/\")[0]\n",
+ " min_month = split_text.split(\"/\")[1]\n",
+ " string_date = min_year + \"-\" + min_month + \"-\" + \"01\" + \" 00:00:00\"\n",
+ " min_date = datetime.strptime(string_date, \"%Y-%m-%d %H:%M:%S\")\n",
+ "\n",
+ " df = pq.read_table(\n",
+ " file,\n",
+ " filters=[\n",
+ " (\"pickup_at\", \">\", min_date),\n",
+ " (\"pickup_at\", \"<=\", MAX_DATE),\n",
+ " (\"passenger_count\", \">\", 0),\n",
+ " (\"trip_distance\", \">\", 0),\n",
+ " (\"fare_amount\", \">\", 0),\n",
+ " (\"pickup_location_id\", \"not in\", [264, 265]),\n",
+ " (\"dropoff_location_id\", \"not in\", [264, 265]),\n",
+ " (\"pickup_location_id\", \"=\", sample_id),\n",
+ " ],\n",
+ " columns=[\n",
+ " \"pickup_at\",\n",
+ " \"dropoff_at\",\n",
+ " \"pickup_location_id\",\n",
+ " \"dropoff_location_id\",\n",
+ " \"passenger_count\",\n",
+ " \"trip_distance\",\n",
+ " \"fare_amount\",\n",
+ " ],\n",
+ " ).to_pandas()\n",
+ " return df\n",
+ "\n",
+ "\n",
+ "# Function to transform a pandas dataframe\n",
+ "def transform_df(input_df: pd.DataFrame) -> pd.DataFrame:\n",
+ " df = input_df.copy()\n",
+ "\n",
+ " # calculate trip_duration\n",
+ " df[\"trip_duration\"] = (df[\"dropoff_at\"] - df[\"pickup_at\"]).dt.seconds\n",
+ " # filter trip_durations > 1 minute and less than 24 hours\n",
+ " df = df[df[\"trip_duration\"] > 60]\n",
+ " df = df[df[\"trip_duration\"] < 24 * 60 * 60]\n",
+ "\n",
+ " # Prophet requires timstamp is 'ds' and target_value name is 'y'\n",
+ " # Prophet requires at least 2 data points per timestamp\n",
+ " # StatsForecast requires location name is 'unique_id'\n",
+ "\n",
+ " # add year_month_day and concat into a unique column to use as groupby key\n",
+ " df[\"ds\"] = df[\"pickup_at\"].dt.to_period(\"D\").dt.to_timestamp()\n",
+ " df[\"loc_year_month_day\"] = (\n",
+ " df[\"pickup_location_id\"].astype(str)\n",
+ " + \"_\"\n",
+ " + df[\"pickup_at\"].dt.year.astype(str)\n",
+ " + \"_\"\n",
+ " + df[\"pickup_at\"].dt.month.astype(str)\n",
+ " + \"_\"\n",
+ " + df[\"pickup_at\"].dt.day.astype(str)\n",
+ " )\n",
+ " # add target_value quantity for groupby count later\n",
+ " df[\"y\"] = 1\n",
+ " # rename pickup_location_id to unique_id\n",
+ " df.rename(columns={\"pickup_location_id\": \"unique_id\"}, inplace=True)\n",
+ " # keep only necessary columns\n",
+ " df = df[[\"loc_year_month_day\", \"unique_id\", \"ds\", \"y\"]].copy()\n",
+ "\n",
+ " # groupby aggregregate\n",
+ " g = df.groupby(\"loc_year_month_day\").agg({\"unique_id\": min, \"ds\": min, \"y\": sum})\n",
+ " # having num rows in group > 2\n",
+ " g.dropna(inplace=True)\n",
+ " g = g[g[\"y\"] > 2].copy()\n",
+ "\n",
+ " # Drop groupby variable since we do not need it anymore\n",
+ " g.reset_index(inplace=True)\n",
+ " g.drop([\"loc_year_month_day\"], axis=1, inplace=True)\n",
+ "\n",
+ " return g\n",
+ "\n",
+ "\n",
+ "def prepare_data(sample_location_id: np.int32) -> pd.DataFrame:\n",
+ "\n",
+ " # Load data.\n",
+ " df_list = [read_data(f, sample_location_id) for f in s3_files]\n",
+ " df_raw = pd.concat(df_list, ignore_index=True)\n",
+ " # Abort Tune to avoid Tune Error if df has too few rows\n",
+ " if df_raw.shape[0] < FORECAST_LENGTH:\n",
+ " print_time(f\"Location {sample_location_id} has only {df_raw.shape[0]} rows\")\n",
+ " session.report(dict(error=None))\n",
+ " return None\n",
+ "\n",
+ " # Transform data.\n",
+ " df = transform_df(df_raw)\n",
+ " # Abort Tune to avoid Tune Error if df has too few rows\n",
+ " if df.shape[0] < FORECAST_LENGTH:\n",
+ " print_time(f\"Location {sample_location_id} has only {df.shape[0]} rows\")\n",
+ " session.report(dict(error=None))\n",
+ " return None\n",
+ " else:\n",
+ " df.sort_values(by=\"ds\", inplace=True)\n",
+ "\n",
+ " return df"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d2358421",
+ "metadata": {},
+ "source": [
+ "## Define a Trainable (callable) function "
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "94eb28a7",
+ "metadata": {},
+ "source": [
+ "Next, we define a trainable function, called `train_model()`, in order to train and evaluate a model on a data partition. This function will be called *in parallel for every permutation* in the Tune search space! \n",
+ "\n",
+ "Inside this trainable function:\n",
+ "- 📖 The input must include a `config` argument. \n",
+ "- 📈 Inside the function, the tuning metric (a model's loss or error) must be calculated and reported using `session.report()`.\n",
+ "- ✔️ Optionally [checkpoint](air-checkpoints-doc) (save) the model for fault tolerance and easy deployment later.\n",
+ "\n",
+ "```{tip}\n",
+ "Ray Tune has two ways of [defining a trainable](tune_60_seconds_trainables), namely the Function API and the Class API. Both are valid ways of defining a trainable, but *the Function API is generally recommended*.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "e044119a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "############\n",
+ "# STEP 1. Define Python functions to\n",
+ "# b) train and evaluate a model on a segment of data.\n",
+ "############\n",
+ "\n",
+ "\n",
+ "def evaluate_model_prophet(\n",
+ " model: \"prophet.forecaster.Prophet\",\n",
+ ") -> Tuple[float, pd.DataFrame]:\n",
+ "\n",
+ " # Inference model using FORECAST_LENGTH.\n",
+ " future_dates = model.make_future_dataframe(periods=FORECAST_LENGTH, freq=\"D\")\n",
+ " future = model.predict(future_dates)\n",
+ "\n",
+ " # Calculate mean absolute forecast error.\n",
+ " temp = future.copy()\n",
+ " temp[\"forecast_error\"] = np.abs(temp[\"yhat\"] - temp[\"trend\"])\n",
+ " error = np.mean(temp[\"forecast_error\"])\n",
+ "\n",
+ " return error, future\n",
+ "\n",
+ "\n",
+ "def evaluate_model_statsforecast(\n",
+ " model: \"statsforecast.models.AutoARIMA\", test_df: pd.DataFrame\n",
+ ") -> Tuple[float, pd.DataFrame]:\n",
+ "\n",
+ " # Inference model using test data.\n",
+ " forecast = model.forecast(FORECAST_LENGTH + 1).reset_index()\n",
+ " forecast.set_index([\"ds\"], inplace=True)\n",
+ " test_df.set_index(\"ds\", inplace=True)\n",
+ " future = pd.concat([test_df, forecast[[\"AutoARIMA\"]]], axis=1)\n",
+ " future.dropna(inplace=True)\n",
+ " future.columns = [\"unique_id\", \"trend\", \"yhat\"]\n",
+ "\n",
+ " # Calculate mean absolute forecast error.\n",
+ " temp = future.copy()\n",
+ " temp[\"forecast_error\"] = np.abs(temp[\"yhat\"] - temp[\"trend\"])\n",
+ " error = np.mean(temp[\"forecast_error\"])\n",
+ "\n",
+ " return error, future\n",
+ "\n",
+ "\n",
+ "# 2. Define a custom train function\n",
+ "def train_model(config: dict) -> None:\n",
+ "\n",
+ " # Get Tune parameters\n",
+ " sample_location_id = config[\"params\"][\"location\"]\n",
+ " model_type = config[\"params\"][\"algorithm\"]\n",
+ "\n",
+ " # Define Prophet model with 75% confidence interval\n",
+ " if model_type == \"prophet_additive\":\n",
+ " model = Prophet(interval_width=0.75, seasonality_mode=\"additive\")\n",
+ " elif model_type == \"prophet_multiplicative\":\n",
+ " model = Prophet(interval_width=0.75, seasonality_mode=\"multiplicative\")\n",
+ "\n",
+ " # Define ARIMA model with daily frequency which implies seasonality = 7\n",
+ " elif model_type == \"arima\":\n",
+ " model = [AutoARIMA(season_length=7, approximation=True)]\n",
+ "\n",
+ " # Read and transform data.\n",
+ " df = prepare_data(sample_location_id)\n",
+ "\n",
+ " # Train model.\n",
+ " if model_type == \"arima\":\n",
+ "\n",
+ " try:\n",
+ " # split data into train, test.\n",
+ " train_end = df.ds.max() - timedelta(days=FORECAST_LENGTH + 1)\n",
+ " train_df = df.loc[(df.ds <= train_end), :].copy()\n",
+ " test_df = df.iloc[-FORECAST_LENGTH:, :].copy()\n",
+ "\n",
+ " # fit AutoARIMA.\n",
+ " model = StatsForecast(df=train_df, models=model, freq=\"D\")\n",
+ "\n",
+ " # Inference model and evaluate error.\n",
+ " error, future = evaluate_model_statsforecast(model, test_df)\n",
+ " except:\n",
+ " print(f\"ARIMA error processing location: {sample_location_id}\")\n",
+ "\n",
+ " else: # model type is Prophet\n",
+ " try:\n",
+ " # fit Prophet.\n",
+ " model = model.fit(df[[\"ds\", \"y\"]])\n",
+ "\n",
+ " # Inference model and evaluate error.\n",
+ " error, future = evaluate_model_prophet(model)\n",
+ " except:\n",
+ " print(f\"Prophet error processing location: {sample_location_id}\")\n",
+ "\n",
+ " # Define a model checkpoint using AIR API.\n",
+ " # https://docs.ray.io/en/latest/tune/tutorials/tune-checkpoints.html\n",
+ " checkpoint = ray.air.checkpoint.Checkpoint.from_dict(\n",
+ " {\n",
+ " \"model\": model,\n",
+ " \"forecast_df\": future,\n",
+ " \"location_id\": sample_location_id,\n",
+ " }\n",
+ " )\n",
+ "\n",
+ " # Save checkpoint and report back metrics, using ray.air.session.report()\n",
+ " # The metrics you specify here will appear in Tune summary table.\n",
+ " # They will also be recorded in Tune results under `metrics`.\n",
+ " metrics = dict(error=error)\n",
+ " session.report(metrics, checkpoint=checkpoint)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "139008ea",
+ "metadata": {},
+ "source": [
+ "## Run batch training on Ray Tune "
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "100f5e98",
+ "metadata": {},
+ "source": [
+ "**Recall what we are doing, high level, is training several different models per pickup location.** We are using Ray Tune so we can *run all these trials in parallel* on a Ray cluster. At the end, we will inspect the results of the experiment and deploy only the best model per pickup location.\n",
+ "\n",
+ "**Step 1. Define Python functions to read and prepare a segment of data and train and evaluate one or many models per segment of data**. We already did this, above.\n",
+ "\n",
+ "**Step 2. Scaling**:\n",
+ "Below, we specify training resources in a `ray.air.ScalingConfig` object inside the Tune search space. For more information about configuring resource allocations, see [A Guide To Parallelism and Resources](tune-parallelism). \n",
+ "\n",
+ "**Step 3. Search Space**:\n",
+ "Below, we define our [Tune search space](tune-key-concepts-search-spaces), which consists of:\n",
+ "- Different algorithms, either:\n",
+ " - Prophet with [multiplicative or additive](https://facebook.github.io/prophet/docs/multiplicative_seasonality.html) seasonal effects \n",
+ " - [AutoARIMA](https://github.com/Nixtla/statsforecast).\n",
+ "- NYC taxi pick-up locations.\n",
+ "- Scaling config\n",
+ "\n",
+ "**Step 4. Search Algorithm or Strategy**:\n",
+ "Below, our Tune jobs will be defined using a search space and simple grid search. \n",
+ "> The typical use case for Tune search spaces is for hyperparameter tuning. In our case, we are defining the Tune search space in order to run distributed tuning jobs automatically. Each training job will use a different data partition (taxi pickup location), different algorithm, and the compute resources we defined in the Scaling config.\n",
+ "\n",
+ "**Step 5. Now we are ready to kick off a Ray Tune experiment!** \n",
+ "- Define a `tuner` object.\n",
+ "- Put the training function `train_model()` inside the `tuner` object.\n",
+ "- Run the experiment using `tuner.fit()`.\n",
+ "\n",
+ "💡 After you run the cell below, right-click on it and choose \"Enable Scrolling for Outputs\"! This will make it easier to view, since tuning output can be very long!\n",
+ "\n",
+ "**Setting SMOKE_TEST=False, running on Anyscale: 771 models, using 18 NYC Taxi S3 files dating from 2018/01 to 2019/06 (split into partitions approx 1GiB each), were simultaneously trained on a 7-node AWS cluster of m5.4xlarges, within 40 minutes.**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "3ef7c6d6",
+ "metadata": {
+ "scrolled": true,
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "
Tune Status \n",
+ "
\n",
+ "\n",
+ "Current time: 2023-01-10 17:13:05 \n",
+ "Running for: 00:00:43.49 \n",
+ "Memory: 2.6/30.9 GiB \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
System Info \n",
+ " Using FIFO scheduling algorithm. Resources requested: 0/24 CPUs, 0/0 GPUs, 0.0/61.81 GiB heap, 0.0/25.69 GiB objects\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
Trial Status \n",
+ "
\n",
+ "\n",
+ "Trial name status loc params/algorithm params/location iter total time (s) error \n",
+ " \n",
+ "\n",
+ "train_model_fe6ca_00000 TERMINATED 172.31.136.199:569 prophet_additive 141 1 8.58006 502.848 \n",
+ "train_model_fe6ca_00001 TERMINATED 172.31.136.199:799 prophet_multipl_a1c0 141 1 8.7725 483.067 \n",
+ "train_model_fe6ca_00002 TERMINATED 172.31.136.199:863 arima 141 1 19.1343 342.35 \n",
+ "train_model_fe6ca_00003 TERMINATED 172.31.136.199:864 prophet_additive 229 1 8.65271 539.39 \n",
+ "train_model_fe6ca_00004 TERMINATED 172.31.136.199:865 prophet_multipl_a1c0 229 1 8.40805 529.742 \n",
+ "train_model_fe6ca_00005 TERMINATED 172.31.136.199:866 arima 229 1 18.986 480.844 \n",
+ "train_model_fe6ca_00006 TERMINATED 172.31.136.199:867 prophet_additive 173 1 7.53648 2.55585 \n",
+ "train_model_fe6ca_00007 TERMINATED 172.31.136.199:868 prophet_multipl_a1c0 173 1 7.10823 2.52897 \n",
+ "train_model_fe6ca_00008 TERMINATED 172.31.136.199:869 arima 173 1 18.9489 3.19151 \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n"
],
- "source": [
- "# Define some global variables.\n",
- "TARGET = \"trip_duration\"\n",
- "FORECAST_LENGTH = 28\n",
- "MAX_DATE = datetime(2019, 6, 30)\n",
- "s3_partitions = pds.dataset(\n",
- " \"s3://anonymous@air-example-data/ursa-labs-taxi-data/by_year/\",\n",
- " partitioning=[\"year\", \"month\"],\n",
- ")\n",
- "s3_files = [f\"s3://anonymous@{file}\" for file in s3_partitions.files]\n",
- "\n",
- "# Obtain all location IDs\n",
- "all_location_ids = (\n",
- " pq.read_table(s3_files[0], columns=[\"pickup_location_id\"])[\n",
- " \"pickup_location_id\"\n",
- " ]\n",
- " .unique()\n",
- " .to_pylist()\n",
- ")\n",
- "# drop [264, 265]\n",
- "all_location_ids.remove(264)\n",
- "all_location_ids.remove(265)\n",
- "\n",
- "# Use smoke testing or not.\n",
- "starting_idx = -2 if SMOKE_TEST else 0\n",
- "# TODO: drop location 199 to test error-handling before final git checkin\n",
- "sample_locations = [141, 229, 173] if SMOKE_TEST else all_location_ids\n",
- "\n",
- "# Display what data will be used.\n",
- "s3_files = s3_files[starting_idx:]\n",
- "print(f\"NYC Taxi using {len(s3_files)} file(s)!\")\n",
- "print(f\"s3_files: {s3_files}\")\n",
- "print(f\"Locations: {sample_locations}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "a821cd28",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Function to read a pyarrow.Table object using pyarrow parquet\n",
- "def read_data(file: str, sample_id: np.int32) -> pd.DataFrame:\n",
- "\n",
- " # parse out min expected date\n",
- " part_zero = \"s3://anonymous@air-example-data/ursa-labs-taxi-data/by_year/\"\n",
- " split_text = file.split(part_zero)[1]\n",
- " min_year = split_text.split(\"/\")[0]\n",
- " min_month = split_text.split(\"/\")[1]\n",
- " string_date = min_year + \"-\" + min_month + \"-\" + \"01\" + \" 00:00:00\"\n",
- " min_date = datetime.strptime(string_date, \"%Y-%m-%d %H:%M:%S\")\n",
- "\n",
- " df = pq.read_table(\n",
- " file,\n",
- " filters=[\n",
- " (\"pickup_at\", \">\", min_date),\n",
- " (\"pickup_at\", \"<=\", MAX_DATE),\n",
- " (\"passenger_count\", \">\", 0),\n",
- " (\"trip_distance\", \">\", 0),\n",
- " (\"fare_amount\", \">\", 0),\n",
- " (\"pickup_location_id\", \"not in\", [264, 265]),\n",
- " (\"dropoff_location_id\", \"not in\", [264, 265]),\n",
- " (\"pickup_location_id\", \"=\", sample_id),\n",
- " ],\n",
- " columns=[\n",
- " \"pickup_at\",\n",
- " \"dropoff_at\",\n",
- " \"pickup_location_id\",\n",
- " \"dropoff_location_id\",\n",
- " \"passenger_count\",\n",
- " \"trip_distance\",\n",
- " \"fare_amount\",\n",
- " ],\n",
- " ).to_pandas()\n",
- " return df\n",
- "\n",
- "\n",
- "# Function to transform a pandas dataframe\n",
- "def transform_df(input_df: pd.DataFrame) -> pd.DataFrame:\n",
- " df = input_df.copy()\n",
- "\n",
- " # calculate trip_duration\n",
- " df[\"trip_duration\"] = (df[\"dropoff_at\"] - df[\"pickup_at\"]).dt.seconds\n",
- " # filter trip_durations > 1 minute and less than 24 hours\n",
- " df = df[df[\"trip_duration\"] > 60]\n",
- " df = df[df[\"trip_duration\"] < 24 * 60 * 60]\n",
- "\n",
- " # Prophet requires timstamp is 'ds' and target_value name is 'y'\n",
- " # Prophet requires at least 2 data points per timestamp\n",
- " # StatsForecast requires location name is 'unique_id'\n",
- "\n",
- " # add year_month_day and concat into a unique column to use as groupby key\n",
- " df[\"ds\"] = df[\"pickup_at\"].dt.to_period(\"D\").dt.to_timestamp()\n",
- " df[\"loc_year_month_day\"] = (\n",
- " df[\"pickup_location_id\"].astype(str)\n",
- " + \"_\"\n",
- " + df[\"pickup_at\"].dt.year.astype(str)\n",
- " + \"_\"\n",
- " + df[\"pickup_at\"].dt.month.astype(str)\n",
- " + \"_\"\n",
- " + df[\"pickup_at\"].dt.day.astype(str)\n",
- " )\n",
- " # add target_value quantity for groupby count later\n",
- " df[\"y\"] = 1\n",
- " # rename pickup_location_id to unique_id\n",
- " df.rename(columns={\"pickup_location_id\": \"unique_id\"}, inplace=True)\n",
- " # drop unnecessary columns\n",
- " df.drop(\n",
- " [\n",
- " \"dropoff_at\",\n",
- " \"pickup_at\",\n",
- " \"dropoff_location_id\",\n",
- " \"fare_amount\",\n",
- " \"passenger_count\",\n",
- " \"trip_distance\",\n",
- " \"trip_duration\",\n",
- " ],\n",
- " axis=1,\n",
- " inplace=True,\n",
- " )\n",
- "\n",
- " # groupby aggregregate\n",
- " g = df.groupby(\"loc_year_month_day\").agg(\n",
- " {\"unique_id\": min, \"ds\": min, \"y\": sum}\n",
- " )\n",
- " # having num rows in group > 2\n",
- " g.dropna(inplace=True)\n",
- " g = g[g[\"y\"] > 2].copy()\n",
- "\n",
- " # Drop groupby variable since we do not need it anymore\n",
- " g.reset_index(inplace=True)\n",
- " g.drop([\"loc_year_month_day\"], axis=1, inplace=True)\n",
- "\n",
- " return g\n",
- "\n",
- "\n",
- "def prepare_data(sample_location_id: np.int32) -> pd.DataFrame:\n",
- "\n",
- " # Load data.\n",
- " df_list = [read_data(f, sample_location_id) for f in s3_files]\n",
- " df_raw = pd.concat(df_list, ignore_index=True)\n",
- " # Abort Tune to avoid Tune Error if df has too few rows\n",
- " if df_raw.shape[0] < FORECAST_LENGTH:\n",
- " print_time(\n",
- " f\"Location {sample_location_id} has only {df_raw.shape[0]} rows\"\n",
- " )\n",
- " session.report(dict(error=None))\n",
- " return None\n",
- "\n",
- " # Transform data.\n",
- " df = transform_df(df_raw)\n",
- " # Abort Tune to avoid Tune Error if df has too few rows\n",
- " if df.shape[0] < FORECAST_LENGTH:\n",
- " print_time(f\"Location {sample_location_id} has only {df.shape[0]} rows\")\n",
- " session.report(dict(error=None))\n",
- " return None\n",
- " else:\n",
- " df.sort_values(by=\"ds\", inplace=True)\n",
- "\n",
- " return df"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "2bed4693",
- "metadata": {
- "tags": []
- },
- "source": [
- "## Define your Ray Tune Search Space and Search Algorithm "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "976c73d0",
- "metadata": {},
- "source": [
- "In this notebook, we will use Ray Tune to run parallel training jobs per pickup location. The training jobs will be defined using a search space and simple grid search. Depending on your need, fancier search spaces and search algorithms are possible with Tune.\n",
- "\n",
- "**First, define a search space of experiment trials to run.**\n",
- "> The typical use case for Tune search spaces are for hyperparameter tuning. In our case, we are defining a Tune search space in a way to allow for training jobs to be conducted automatically. Each training job will run on a different data partition (taxi pickup location) and use a different algorithm.\n",
- "\n",
- "**Next, define a search algorithm.** \n",
- "\n",
- "```{tip}\n",
- "Common search algorithms include grid search, random search, and Bayesian optimization. For more details, see [Working with Tune Search Spaces](https://docs.ray.io/en/master/tune/tutorials/tune-search-spaces.html#tune-search-space-tutorial). Deciding the best combination of search space and search algorithm is part of the art of being a Data Scientist and depends on the data, algorithm, and problem being solved.\n",
- "```\n",
- "\n",
- "Ray Tune will use the search space and search algorithm to generate multiple configurations, each of which will be evaluated in a separate Trial on a Ray Cluster. Ray Tune will take care of orchestrating those Trials automatically. Specifically, Ray Tune will pass a config dictionary to each partition and make a Trainable function call.\n",
- "\n",
- "**Below, we define our search space consists of:**\n",
- "- Different algorithms, either:\n",
- " - Prophet with [multiplicative or additive](https://facebook.github.io/prophet/docs/multiplicative_seasonality.html) seasonal effects \n",
- " - AutoARIMA.\n",
- "- Some or all NYC taxi pick-up locations.\n",
- "\n",
- "For Tune search algorithm, we want to run *grid search*, meaning we want to run an experiment for every possible combination in the search space. What this means is every algorithm will be applied to every NYC Taxi pick-up location."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "75a983bc",
- "metadata": {},
- "outputs": [],
- "source": [
- "# 1. Define a search space.\n",
- "search_space = {\n",
- " \"algorithm\": tune.grid_search(\n",
- " [\"prophet_additive\", \"prophet_multiplicative\", \"arima\"]\n",
- " ),\n",
- " \"location\": tune.grid_search(sample_locations),\n",
- "}"
+ "text/plain": [
+ ""
]
},
- {
- "cell_type": "markdown",
- "id": "b751690b",
- "metadata": {},
- "source": [
- "## Define a Trainable (callable) function "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "4089ae93",
- "metadata": {},
- "source": [
- "📈 Typically when you are running Data Science experiments, you want to be able to keep track of summary metrics for each trial, so you can decide at the end which trials were best. That way, you can decide which model to deploy.\n",
- "\n",
- "🇫 Next, we define a trainable function in order to train and evaluate a Prophet model on a data partition. This function will be called in parallel by every Tune trial. Inside this trainable function, we will:\n",
- "- Add detailed metrics we want to report (each model's loss or error). \n",
- "- Checkpoint each model for easy deployment later.\n",
- "\n",
- "📖 **The metrics defined inside the trainable function will appear in the Ray Tune experiment summary table.**\n",
- "```{tip}\n",
- "Ray Tune has two ways of defining a trainable, namely the [Function API](https://docs.ray.io/en/latest/tune/api_docs/trainable.html#trainable-docs) and the Class API. Both are valid ways of defining a trainable, but *the Function API is generally recommended*.\n",
- "```\n",
- "\n",
- "**In the cell below, we define a \"Trainable\" function called `train_model()`**.\n",
- "- The input is a config dictionary argument. \n",
- "- The output can be a simple dictionary of metrics which will be reported back to Tune.\n",
- "- We will [checkpoint](https://docs.ray.io/en/master/ray-air/key-concepts.html#checkpoints) save each model in addition to reporting each trial's metrics.\n",
- "- Since we are using **grid search**, this means `train_model()` will be run *in parallel for every permutation* in the Tune search space!"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "67a27144",
- "metadata": {},
- "outputs": [],
- "source": [
- "def evaluate_model_prophet(\n",
- " model: \"prophet.forecaster.Prophet\",\n",
- ") -> Tuple[float, pd.DataFrame]:\n",
- "\n",
- " # Inference model using FORECAST_LENGTH.\n",
- " future_dates = model.make_future_dataframe(\n",
- " periods=FORECAST_LENGTH, freq=\"D\"\n",
- " )\n",
- " future = model.predict(future_dates)\n",
- "\n",
- " # Calculate mean absolute forecast error.\n",
- " temp = future.copy()\n",
- " temp[\"forecast_error\"] = np.abs(temp[\"yhat\"] - temp[\"trend\"])\n",
- " error = np.mean(temp[\"forecast_error\"])\n",
- "\n",
- " return error, future\n",
- "\n",
- "\n",
- "def evaluate_model_statsforecast(\n",
- " model: \"statsforecast.models.AutoARIMA\", test_df: pd.DataFrame\n",
- ") -> Tuple[float, pd.DataFrame]:\n",
- "\n",
- " # Inference model using test data.\n",
- " forecast = model.forecast(FORECAST_LENGTH + 1).reset_index()\n",
- " forecast.set_index([\"ds\"], inplace=True)\n",
- " test_df.set_index(\"ds\", inplace=True)\n",
- " future = pd.concat([test_df, forecast[[\"AutoARIMA\"]]], axis=1)\n",
- " future.dropna(inplace=True)\n",
- " future.columns = [\"unique_id\", \"trend\", \"yhat\"]\n",
- "\n",
- " # Calculate mean absolute forecast error.\n",
- " temp = future.copy()\n",
- " temp[\"forecast_error\"] = np.abs(temp[\"yhat\"] - temp[\"trend\"])\n",
- " error = np.mean(temp[\"forecast_error\"])\n",
- "\n",
- " return error, future\n",
- "\n",
- "\n",
- "# 2. Define a custom train function\n",
- "def train_model(config: dict) -> None:\n",
- "\n",
- " # Get Tune parameters\n",
- " sample_location_id = config[\"location\"]\n",
- " model_type = config[\"algorithm\"]\n",
- "\n",
- " # Define Prophet model with 75% confidence interval\n",
- " if model_type == \"prophet_additive\":\n",
- " model = Prophet(interval_width=0.75, seasonality_mode=\"additive\")\n",
- " elif model_type == \"prophet_multiplicative\":\n",
- " model = Prophet(interval_width=0.75, seasonality_mode=\"multiplicative\")\n",
- "\n",
- " # Define ARIMA model with daily frequency which implies seasonality = 7\n",
- " elif model_type == \"arima\":\n",
- " model = [AutoARIMA(season_length=7, approximation=True)]\n",
- "\n",
- " # Read and transform data.\n",
- " df = prepare_data(sample_location_id)\n",
- "\n",
- " # Train model.\n",
- " if model_type == \"arima\":\n",
- "\n",
- " # split data into train, test.\n",
- " train_end = df.ds.max() - timedelta(days=FORECAST_LENGTH + 1)\n",
- " train_df = df.loc[(df.ds <= train_end), :].copy()\n",
- " test_df = df.iloc[-FORECAST_LENGTH:, :].copy()\n",
- "\n",
- " # fit AutoARIMA.\n",
- " model = StatsForecast(df=train_df, models=model, freq=\"D\")\n",
- "\n",
- " # Inference model and evaluate error.\n",
- " error, future = evaluate_model_statsforecast(model, test_df)\n",
- "\n",
- " else: # model type is Prophet\n",
- "\n",
- " # fit Prophet.\n",
- " model = model.fit(df[[\"ds\", \"y\"]])\n",
- "\n",
- " # Inference model and evaluate error.\n",
- " error, future = evaluate_model_prophet(model)\n",
- "\n",
- " # Define a model checkpoint using AIR API.\n",
- " # https://docs.ray.io/en/latest/tune/tutorials/tune-checkpoints.html\n",
- " checkpoint = ray.air.checkpoint.Checkpoint.from_dict(\n",
- " {\n",
- " \"model\": model,\n",
- " \"forecast_df\": future,\n",
- " \"location_id\": sample_location_id,\n",
- " }\n",
- " )\n",
- "\n",
- " # Save checkpoint and report back metrics, using ray.air.session.report()\n",
- " # The metrics you specify here will appear in Tune summary table.\n",
- " # They will also be recorded in Tune results under `metrics`.\n",
- " metrics = dict(error=error)\n",
- " session.report(metrics, checkpoint=checkpoint)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "ef4aeecc",
- "metadata": {},
- "source": [
- "## Run batch training on Ray Tune "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "a0c19451",
- "metadata": {},
- "source": [
- "\n",
- "**Now we are ready to kick off a Ray Tune experiment!** \n",
- "\n",
- "Recall what we are doing, high level, is training several different models per pickup location. We are using Ray Tune so we can run all these trials in parallel on a Ray cluster. At the end, we will inspect the results of the experiment and deploy only the best model per pickup location.\n",
- "\n",
- "**In the cell below, we use AIR configs and run the experiment using `tuner.fit()`.** \n",
- "\n",
- "Tune will report on experiment status, and after the experiment finishes, you can inspect the results. \n",
- "\n",
- "- In the cell below, we use the default resources config which is 1 CPU core for each task. For more information about configuring resource allocations, see [A Guide To Parallelism and Resources](https://docs.ray.io/en/master/tune/tutorials/tune-resources.html#tune-parallelism). \n",
- "\n",
- "- In the AIR config below, we have specified a local directory `my_Tune_logs` for logging instead of the default `~/ray_results` directory. Giving your logs a project name makes them easier to find. Also giving a relative path, means you can see your logs inside the Jupyter browser. Learn more about logging Tune results at [How to configure logging in Tune](https://docs.ray.io/en/master/tune/tutorials/tune-output.html#tune-logging).\n",
- "\n",
- "- Tune can [retry failed experiments automatically](https://docs.ray.io/en/master/tune/tutorials/tune-stopping.html#tune-stopping-guide), as well as entire experiments. This is necessary in case a node on your remote cluster fails (when running on a cloud such as AWS or GCP).\n",
- "\n",
- "💡 Right-click on the cell below and choose \"Enable Scrolling for Outputs\"! This will make it easier to view, since model training output can be very long!\n",
- "\n",
- "**Setting SMOKE_TEST=False, running on Anyscale: 771 models, using 18 NYC Taxi S3 files dating from 2018/01 to 2019/06 (split into partitions approx 1GiB each), were simultaneously trained on a 7-node AWS cluster of [m5.4xlarges](https://aws.amazon.com/ec2/instance-types/m5/), within 40 minutes.**"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "54e05128",
- "metadata": {
- "scrolled": true,
- "tags": []
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2022-12-05 16:28:12,732\tWARNING function_trainable.py:586 -- Function checkpointing is disabled. This may result in unexpected behavior when using checkpointing features or certain schedulers. To enable, set the train function arguments to be `func(config, checkpoint_dir=None)`.\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "
\n",
- "
\n",
- "
Tune Status \n",
- "
\n",
- "\n",
- "Current time: 2022-12-05 16:28:50 \n",
- "Running for: 00:00:36.00 \n",
- "Memory: 3.9/30.9 GiB \n",
- " \n",
- "
\n",
- "
\n",
- "
\n",
- "
\n",
- "
System Info \n",
- " Using FIFO scheduling algorithm. Resources requested: 0/24 CPUs, 0/0 GPUs, 0.0/61.77 GiB heap, 0.0/25.66 GiB objects\n",
- " \n",
- " \n",
- "
\n",
- "
\n",
- "
\n",
- "
Trial Status \n",
- "
\n",
- "\n",
- "Trial name status loc algorithm location iter total time (s) error \n",
- " \n",
- "\n",
- "train_model_de3e8_00000 TERMINATED 172.31.238.32:46242 prophet_additive 141 1 5.64706 502.849 \n",
- "train_model_de3e8_00001 TERMINATED 172.31.82.113:19316 prophet_multipl_d800 141 1 5.36019 483.067 \n",
- "train_model_de3e8_00002 TERMINATED 172.31.82.113:19317 arima 141 1 17.9032 342.35 \n",
- "train_model_de3e8_00003 TERMINATED 172.31.82.113:19318 prophet_additive 229 1 5.53692 539.389 \n",
- "train_model_de3e8_00004 TERMINATED 172.31.82.113:19319 prophet_multipl_d800 229 1 5.33539 529.743 \n",
- "train_model_de3e8_00005 TERMINATED 172.31.82.113:19320 arima 229 1 17.7509 480.844 \n",
- "train_model_de3e8_00006 TERMINATED 172.31.82.113:19321 prophet_additive 173 1 4.6077 2.55585 \n",
- "train_model_de3e8_00007 TERMINATED 172.31.82.113:19322 prophet_multipl_d800 173 1 4.28513 2.52897 \n",
- "train_model_de3e8_00008 TERMINATED 172.31.82.113:19323 arima 173 1 17.5354 3.05726 \n",
- " \n",
- "
\n",
- "
\n",
- "
\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "
Trial Progress \n",
- "
\n",
- "\n",
- "Trial name error should_checkpoint \n",
- " \n",
- "\n",
- "train_model_de3e8_00000 502.849 True \n",
- "train_model_de3e8_00001 483.067 True \n",
- "train_model_de3e8_00002 342.35 True \n",
- "train_model_de3e8_00003 539.389 True \n",
- "train_model_de3e8_00004 529.743 True \n",
- "train_model_de3e8_00005 480.844 True \n",
- "train_model_de3e8_00006 2.55585 True \n",
- "train_model_de3e8_00007 2.52897 True \n",
- "train_model_de3e8_00008 3.05726 True \n",
- " \n",
- "
\n",
- "
\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2022-12-05 16:28:50,234\tINFO tune.py:777 -- Total run time: 37.50 seconds (35.99 seconds for the tuning loop).\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Total number of models: 9\n",
- "TOTAL TIME TAKEN: 37.54 seconds\n",
- "Best result: {'algorithm': 'prophet_multiplicative', 'location': 173}\n"
- ]
- }
- ],
- "source": [
- "# By default, Tune reserves 1 CPU core per task.\n",
- "# # 3. Customize resources per trial, here we set 1 CPU each.\n",
- "# train_model = tune.with_resources(train_model, {\"cpu\": 1})\n",
- "\n",
- "# Define a tuner object using Ray AIR Tuner API\n",
- "tuner = tune.Tuner(\n",
- " train_model,\n",
- " param_space=search_space,\n",
- " run_config=air.RunConfig(\n",
- " # redirect logs to relative path instead of default ~/ray_results/\n",
- " local_dir=\"my_Tune_logs\",\n",
- " name=\"batch_tuning\",\n",
- " # Set Ray Tune verbosity. Print summary table only with levels 2 or 3.\n",
- " verbose=2,\n",
- " ),\n",
- ")\n",
- "\n",
- "# 4. Run the experiment with Ray Tune\n",
- "start = time.time()\n",
- "results = tuner.fit()\n",
- "total_time_taken = time.time() - start\n",
- "\n",
- "# Print some training stats\n",
- "print(f\"Total number of models: {len(results)}\")\n",
- "print(f\"TOTAL TIME TAKEN: {total_time_taken:.2f} seconds\")\n",
- "best_result = results.get_best_result(metric=\"error\", mode=\"min\").config\n",
- "print(f\"Best result: {best_result}\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "4ea5b01a",
- "metadata": {},
- "source": [
- " \n",
- "\n",
- "**After the Tune experiment has run, select the best model per pickup location.**\n",
- "\n",
- "We can assemble the Tune results ([ResultGrid object](https://docs.ray.io/en/master/tune/examples/tune_analyze_results.html)) into a pandas dataframe, then sort by minimum error, to select the best model per pickup location."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "51857c98",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "location_id int64\n",
- "error float64\n",
- "algorithm object\n",
- "checkpoint object\n",
- "dtype: object\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " location_id \n",
- " error \n",
- " algorithm \n",
- " checkpoint \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 0 \n",
- " 141 \n",
- " 502.848601 \n",
- " prophet_additive \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " 1 \n",
- " 141 \n",
- " 483.067259 \n",
- " prophet_multiplicative \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " 2 \n",
- " 141 \n",
- " 342.350202 \n",
- " arima \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " 3 \n",
- " 229 \n",
- " 539.389339 \n",
- " prophet_additive \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " 4 \n",
- " 229 \n",
- " 529.743081 \n",
- " prophet_multiplicative \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " 5 \n",
- " 229 \n",
- " 480.844291 \n",
- " arima \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " 6 \n",
- " 173 \n",
- " 2.555847 \n",
- " prophet_additive \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " 7 \n",
- " 173 \n",
- " 2.528968 \n",
- " prophet_multiplicative \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " location_id error algorithm \\\n",
- "0 141 502.848601 prophet_additive \n",
- "1 141 483.067259 prophet_multiplicative \n",
- "2 141 342.350202 arima \n",
- "3 229 539.389339 prophet_additive \n",
- "4 229 529.743081 prophet_multiplicative \n",
- "5 229 480.844291 arima \n",
- "6 173 2.555847 prophet_additive \n",
- "7 173 2.528968 prophet_multiplicative \n",
- "\n",
- " checkpoint \n",
- "0 Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "1 Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "2 Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "3 Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "4 Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "5 Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "6 Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "7 Checkpoint(local_path=/home/ray/christy-air/my... "
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# get a list of training loss errors\n",
- "errors = [i.metrics.get(\"error\", 10000.0) for i in results]\n",
- "\n",
- "# get a list of checkpoints\n",
- "checkpoints = [i.checkpoint for i in results]\n",
- "\n",
- "# get a list of locations\n",
- "locations = [i.config[\"location\"] for i in results]\n",
- "\n",
- "# get a list of model params\n",
- "algorithm = [i.config[\"algorithm\"] for i in results]\n",
- "\n",
- "# Assemble a pandas dataframe from Tune results\n",
- "results_df = pd.DataFrame(\n",
- " zip(locations, errors, algorithm, checkpoints),\n",
- " columns=[\"location_id\", \"error\", \"algorithm\", \"checkpoint\"],\n",
- ")\n",
- "print(results_df.dtypes)\n",
- "results_df.head(8)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "id": "290e9554",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "error float64\n",
- "algorithm object\n",
- "checkpoint object\n",
- "dtype: object\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " error \n",
- " algorithm \n",
- " checkpoint \n",
- " \n",
- " \n",
- " location_id \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 173 \n",
- " 2.528968 \n",
- " prophet_multiplicative \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " 141 \n",
- " 342.350202 \n",
- " arima \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " 229 \n",
- " 480.844291 \n",
- " arima \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " error algorithm \\\n",
- "location_id \n",
- "173 2.528968 prophet_multiplicative \n",
- "141 342.350202 arima \n",
- "229 480.844291 arima \n",
- "\n",
- " checkpoint \n",
- "location_id \n",
- "173 Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "141 Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "229 Checkpoint(local_path=/home/ray/christy-air/my... "
- ]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
- }
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m INFO:prophet:Disabling yearly seasonality. Run prophet with yearly_seasonality=True to override this.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m INFO:prophet:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m \n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Initial log joint probability = -24.6903\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 1. Log joint probability = 56.7318. Improved by 81.4221.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 2. Log joint probability = 74.9096. Improved by 18.1778.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 3. Log joint probability = 116.738. Improved by 41.8283.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 4. Log joint probability = 121.485. Improved by 4.74745.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 5. Log joint probability = 123.373. Improved by 1.88806.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 6. Log joint probability = 123.877. Improved by 0.503922.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 7. Log joint probability = 124.063. Improved by 0.185315.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 8. Log joint probability = 124.083. Improved by 0.0205245.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 9. Log joint probability = 124.187. Improved by 0.103934.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 10. Log joint probability = 124.3. Improved by 0.11302.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 11. Log joint probability = 124.316. Improved by 0.0161654.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 12. Log joint probability = 124.375. Improved by 0.0588467.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 13. Log joint probability = 124.406. Improved by 0.0307753.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 14. Log joint probability = 124.414. Improved by 0.00790605.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 15. Log joint probability = 124.421. Improved by 0.00744155.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 16. Log joint probability = 124.428. Improved by 0.00688068.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 17. Log joint probability = 124.444. Improved by 0.0160026.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 18. Log joint probability = 124.45. Improved by 0.00550397.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 19. Log joint probability = 124.45. Improved by 0.000490096.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 20. Log joint probability = 124.45. Improved by 9.73771e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 21. Log joint probability = 124.456. Improved by 0.00539044.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 22. Log joint probability = 124.462. Improved by 0.00667823.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 23. Log joint probability = 124.464. Improved by 0.00138419.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 24. Log joint probability = 124.466. Improved by 0.00192804.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 25. Log joint probability = 124.47. Improved by 0.00406199.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 26. Log joint probability = 124.47. Improved by 0.000535657.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 27. Log joint probability = 124.471. Improved by 0.000549635.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 28. Log joint probability = 124.474. Improved by 0.00299757.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 29. Log joint probability = 124.475. Improved by 0.000802363.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 30. Log joint probability = 124.475. Improved by 0.000302488.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 31. Log joint probability = 124.476. Improved by 0.000657009.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 32. Log joint probability = 124.476. Improved by 5.99847e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 33. Log joint probability = 124.476. Improved by 9.36055e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 34. Log joint probability = 124.476. Improved by 0.000110802.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 35. Log joint probability = 124.476. Improved by 0.000323327.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 36. Log joint probability = 124.476. Improved by 0.000124956.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 37. Log joint probability = 124.476. Improved by 1.69834e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 38. Log joint probability = 124.476. Improved by 2.1557e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 39. Log joint probability = 124.476. Improved by 2.41295e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 40. Log joint probability = 124.476. Improved by 7.22567e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 41. Log joint probability = 124.476. Improved by 4.47652e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 42. Log joint probability = 124.476. Improved by 7.65725e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 43. Log joint probability = 124.476. Improved by 3.42432e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 44. Log joint probability = 124.476. Improved by 3.72182e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 45. Log joint probability = 124.476. Improved by 3.8856e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 46. Log joint probability = 124.476. Improved by 6.05641e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 47. Log joint probability = 124.476. Improved by 9.84136e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 48. Log joint probability = 124.476. Improved by 6.66388e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 49. Log joint probability = 124.476. Improved by 1.34989e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 50. Log joint probability = 124.476. Improved by 7.44078e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 51. Log joint probability = 124.476. Improved by 5.28681e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 52. Log joint probability = 124.476. Improved by 6.72879e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 53. Log joint probability = 124.476. Improved by 3.58152e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 54. Log joint probability = 124.476. Improved by 1.52185e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 55. Log joint probability = 124.476. Improved by 4.81723e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 56. Log joint probability = 124.476. Improved by 6.24187e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 57. Log joint probability = 124.476. Improved by 1.10699e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 58. Log joint probability = 124.476. Improved by 3.56434e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 59. Log joint probability = 124.476. Improved by 7.01115e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 60. Log joint probability = 124.476. Improved by 1.28068e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 61. Log joint probability = 124.476. Improved by 1.27551e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 62. Log joint probability = 124.476. Improved by 1.5548e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 63. Log joint probability = 124.476. Improved by 5.52294e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 64. Log joint probability = 124.476. Improved by 3.71382e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 65. Log joint probability = 124.476. Improved by 2.87695e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=569, ip=172.31.136.199)\u001b[0m Iteration 66. Log joint probability = 124.476. Improved by 8.95623e-09.\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
Trial Progress \n",
+ "
\n",
+ "\n",
+ "Trial name error should_checkpoint \n",
+ " \n",
+ "\n",
+ "train_model_fe6ca_00000 502.848 True \n",
+ "train_model_fe6ca_00001 483.067 True \n",
+ "train_model_fe6ca_00002 342.35 True \n",
+ "train_model_fe6ca_00003 539.39 True \n",
+ "train_model_fe6ca_00004 529.742 True \n",
+ "train_model_fe6ca_00005 480.844 True \n",
+ "train_model_fe6ca_00006 2.55585 True \n",
+ "train_model_fe6ca_00007 2.52897 True \n",
+ "train_model_fe6ca_00008 3.19151 True \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n"
],
- "source": [
- "# Keep only 1 model per location_id with minimum error\n",
- "final_df = results_df.copy()\n",
- "final_df = final_df.loc[(final_df.error > 0), :]\n",
- "final_df = final_df.loc[final_df.groupby(\"location_id\")[\"error\"].idxmin()]\n",
- "final_df.sort_values(by=[\"error\"], inplace=True)\n",
- "final_df.set_index(\"location_id\", inplace=True, drop=True)\n",
- "print(final_df.dtypes)\n",
- "final_df"
+ "text/plain": [
+ ""
]
},
- {
- "cell_type": "code",
- "execution_count": 13,
- "id": "28c34825",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " error \n",
- " algorithm \n",
- " checkpoint \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " count \n",
- " 3.000000 \n",
- " 3 \n",
- " 3 \n",
- " \n",
- " \n",
- " unique \n",
- " NaN \n",
- " 2 \n",
- " 3 \n",
- " \n",
- " \n",
- " top \n",
- " NaN \n",
- " arima \n",
- " Checkpoint(local_path=/home/ray/christy-air/my... \n",
- " \n",
- " \n",
- " freq \n",
- " NaN \n",
- " 2 \n",
- " 1 \n",
- " \n",
- " \n",
- " mean \n",
- " 275.241154 \n",
- " NaN \n",
- " NaN \n",
- " \n",
- " \n",
- " std \n",
- " 246.118072 \n",
- " NaN \n",
- " NaN \n",
- " \n",
- " \n",
- " min \n",
- " 2.528968 \n",
- " NaN \n",
- " NaN \n",
- " \n",
- " \n",
- " 25% \n",
- " 172.439585 \n",
- " NaN \n",
- " NaN \n",
- " \n",
- " \n",
- " 50% \n",
- " 342.350202 \n",
- " NaN \n",
- " NaN \n",
- " \n",
- " \n",
- " 75% \n",
- " 411.597246 \n",
- " NaN \n",
- " NaN \n",
- " \n",
- " \n",
- " max \n",
- " 480.844291 \n",
- " NaN \n",
- " NaN \n",
- " \n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " error algorithm \\\n",
- "count 3.000000 3 \n",
- "unique NaN 2 \n",
- "top NaN arima \n",
- "freq NaN 2 \n",
- "mean 275.241154 NaN \n",
- "std 246.118072 NaN \n",
- "min 2.528968 NaN \n",
- "25% 172.439585 NaN \n",
- "50% 342.350202 NaN \n",
- "75% 411.597246 NaN \n",
- "max 480.844291 NaN \n",
- "\n",
- " checkpoint \n",
- "count 3 \n",
- "unique 3 \n",
- "top Checkpoint(local_path=/home/ray/christy-air/my... \n",
- "freq 1 \n",
- "mean NaN \n",
- "std NaN \n",
- "min NaN \n",
- "25% NaN \n",
- "50% NaN \n",
- "75% NaN \n",
- "max NaN "
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m \n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Initial log joint probability = -24.6903\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 1. Log joint probability = 55.3662. Improved by 80.0565.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 2. Log joint probability = 95.8737. Improved by 40.5075.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 3. Log joint probability = 120.379. Improved by 24.5055.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 4. Log joint probability = 122.813. Improved by 2.43399.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 5. Log joint probability = 123.073. Improved by 0.259582.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 6. Log joint probability = 123.074. Improved by 0.00165627.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 7. Log joint probability = 123.112. Improved by 0.0373812.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 8. Log joint probability = 123.133. Improved by 0.0215269.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 9. Log joint probability = 123.216. Improved by 0.0827413.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 10. Log joint probability = 123.274. Improved by 0.0580866.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 11. Log joint probability = 123.275. Improved by 0.000726338.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 12. Log joint probability = 123.287. Improved by 0.0124071.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 13. Log joint probability = 123.354. Improved by 0.0669767.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 14. Log joint probability = 123.532. Improved by 0.177947.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 15. Log joint probability = 123.537. Improved by 0.00465327.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 16. Log joint probability = 123.567. Improved by 0.0304046.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 17. Log joint probability = 123.626. Improved by 0.0586984.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 18. Log joint probability = 123.717. Improved by 0.0906553.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 19. Log joint probability = 123.767. Improved by 0.0503912.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 20. Log joint probability = 123.794. Improved by 0.0270009.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 21. Log joint probability = 123.809. Improved by 0.0150776.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 22. Log joint probability = 123.819. Improved by 0.00949975.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 23. Log joint probability = 123.826. Improved by 0.00746779.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 24. Log joint probability = 123.83. Improved by 0.00414592.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 25. Log joint probability = 123.835. Improved by 0.00493402.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 26. Log joint probability = 123.836. Improved by 0.000572895.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 27. Log joint probability = 123.837. Improved by 0.00107582.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 28. Log joint probability = 123.839. Improved by 0.00219839.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 29. Log joint probability = 123.84. Improved by 0.000507895.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 30. Log joint probability = 123.841. Improved by 0.00153871.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 31. Log joint probability = 123.842. Improved by 0.000513638.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 32. Log joint probability = 123.842. Improved by 0.000147151.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 33. Log joint probability = 123.842. Improved by 0.000274432.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 34. Log joint probability = 123.842. Improved by 0.000105308.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 35. Log joint probability = 123.842. Improved by 0.000105348.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 36. Log joint probability = 123.842. Improved by 8.63243e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 37. Log joint probability = 123.842. Improved by 5.25735e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 38. Log joint probability = 123.842. Improved by 2.12369e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 39. Log joint probability = 123.842. Improved by 9.84594e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 40. Log joint probability = 123.842. Improved by 7.66574e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 41. Log joint probability = 123.842. Improved by 1.93305e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 42. Log joint probability = 123.842. Improved by 6.82331e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 43. Log joint probability = 123.842. Improved by 2.44574e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 44. Log joint probability = 123.842. Improved by 3.12753e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 45. Log joint probability = 123.842. Improved by 5.82608e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 46. Log joint probability = 123.842. Improved by 4.6484e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 47. Log joint probability = 123.842. Improved by 1.3307e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 48. Log joint probability = 123.843. Improved by 2.23967e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 49. Log joint probability = 123.843. Improved by 4.8155e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 50. Log joint probability = 123.843. Improved by 3.33246e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 51. Log joint probability = 123.843. Improved by 2.56905e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 52. Log joint probability = 123.843. Improved by 2.44229e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 53. Log joint probability = 123.843. Improved by 4.22397e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 54. Log joint probability = 123.843. Improved by 9.91746e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 55. Log joint probability = 123.843. Improved by 1.89293e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 56. Log joint probability = 123.843. Improved by 7.36958e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 57. Log joint probability = 123.843. Improved by 1.30557e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 58. Log joint probability = 123.843. Improved by 2.02889e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 59. Log joint probability = 123.843. Improved by 8.04966e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 60. Log joint probability = 123.843. Improved by 8.67718e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 61. Log joint probability = 123.843. Improved by 1.47952e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 62. Log joint probability = 123.843. Improved by 3.63641e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 63. Log joint probability = 123.843. Improved by 2.15615e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 64. Log joint probability = 123.843. Improved by 1.3613e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 65. Log joint probability = 123.843. Improved by 2.43754e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 66. Log joint probability = 123.843. Improved by 3.49743e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 67. Log joint probability = 123.843. Improved by 6.23249e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 68. Log joint probability = 123.843. Improved by 1.42323e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 69. Log joint probability = 123.843. Improved by 2.71484e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 70. Log joint probability = 123.843. Improved by 1.82188e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 71. Log joint probability = 123.843. Improved by 2.51761e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 72. Log joint probability = 123.843. Improved by 1.31146e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 73. Log joint probability = 123.843. Improved by 1.40753e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=799, ip=172.31.136.199)\u001b[0m Iteration 74. Log joint probability = 123.843. Improved by 2.03943e-09.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m \n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Initial log joint probability = -21.7758\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 1. Log joint probability = 41.5159. Improved by 63.2917.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 2. Log joint probability = 68.4175. Improved by 26.9016.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 3. Log joint probability = 88.1348. Improved by 19.7173.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 4. Log joint probability = 88.147. Improved by 0.0121786.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 5. Log joint probability = 88.1524. Improved by 0.00537125.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 6. Log joint probability = 88.1633. Improved by 0.0109589.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 7. Log joint probability = 88.1753. Improved by 0.0119717.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 8. Log joint probability = 88.1783. Improved by 0.00301597.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 9. Log joint probability = 88.2164. Improved by 0.0380849.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 10. Log joint probability = 88.2239. Improved by 0.00749222.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 11. Log joint probability = 88.3633. Improved by 0.139416.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 12. Log joint probability = 88.4154. Improved by 0.0520892.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 13. Log joint probability = 88.4651. Improved by 0.0496986.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 14. Log joint probability = 89.8472. Improved by 1.38208.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 15. Log joint probability = 89.8657. Improved by 0.0185247.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 16. Log joint probability = 89.8732. Improved by 0.00753048.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 17. Log joint probability = 89.9318. Improved by 0.0585562.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 18. Log joint probability = 89.9447. Improved by 0.0129053.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 19. Log joint probability = 89.965. Improved by 0.0202932.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 20. Log joint probability = 90.0397. Improved by 0.0747472.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 21. Log joint probability = 90.0875. Improved by 0.0477876.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 22. Log joint probability = 90.105. Improved by 0.0175359.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 23. Log joint probability = 90.4892. Improved by 0.384151.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 24. Log joint probability = 90.556. Improved by 0.0668293.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 25. Log joint probability = 90.6581. Improved by 0.102125.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 26. Log joint probability = 90.742. Improved by 0.0838101.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 27. Log joint probability = 90.7738. Improved by 0.031868.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 28. Log joint probability = 90.7856. Improved by 0.011803.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 29. Log joint probability = 90.8302. Improved by 0.0445906.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 30. Log joint probability = 90.8852. Improved by 0.0549923.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 31. Log joint probability = 90.9034. Improved by 0.0181786.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 32. Log joint probability = 90.9276. Improved by 0.0241721.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 33. Log joint probability = 90.9412. Improved by 0.0136337.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 34. Log joint probability = 90.9542. Improved by 0.0130142.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 35. Log joint probability = 90.962. Improved by 0.00775981.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 36. Log joint probability = 90.9638. Improved by 0.00186611.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 37. Log joint probability = 90.9718. Improved by 0.00797594.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 38. Log joint probability = 90.976. Improved by 0.0042081.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 39. Log joint probability = 90.9777. Improved by 0.00165647.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 40. Log joint probability = 90.9814. Improved by 0.00370259.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 41. Log joint probability = 90.9839. Improved by 0.00256843.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 42. Log joint probability = 90.9851. Improved by 0.0011523.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 43. Log joint probability = 90.9868. Improved by 0.00170077.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 44. Log joint probability = 90.9874. Improved by 0.000631959.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 45. Log joint probability = 90.9885. Improved by 0.00111174.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 46. Log joint probability = 90.9887. Improved by 0.000172812.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 47. Log joint probability = 90.9897. Improved by 0.000951722.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 48. Log joint probability = 90.9904. Improved by 0.000744776.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 49. Log joint probability = 90.9907. Improved by 0.000334385.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 50. Log joint probability = 90.9911. Improved by 0.000323131.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 51. Log joint probability = 90.9913. Improved by 0.000195932.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 52. Log joint probability = 90.9913. Improved by 7.26249e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 53. Log joint probability = 90.9914. Improved by 9.38402e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 54. Log joint probability = 90.9915. Improved by 0.000104485.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 55. Log joint probability = 90.9915. Improved by 3.9586e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 56. Log joint probability = 90.9916. Improved by 7.77437e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 57. Log joint probability = 90.9916. Improved by 2.79958e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 58. Log joint probability = 90.9917. Improved by 5.30653e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 59. Log joint probability = 90.9918. Improved by 5.32272e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 60. Log joint probability = 90.9918. Improved by 2.72417e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 61. Log joint probability = 90.9919. Improved by 9.20075e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 62. Log joint probability = 90.9919. Improved by 1.97313e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 63. Log joint probability = 90.9919. Improved by 3.52389e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 64. Log joint probability = 90.992. Improved by 4.48494e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 65. Log joint probability = 90.992. Improved by 3.68675e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 66. Log joint probability = 90.992. Improved by 2.02192e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 67. Log joint probability = 90.9921. Improved by 2.05867e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 68. Log joint probability = 90.9921. Improved by 1.60531e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 69. Log joint probability = 90.9921. Improved by 1.09975e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 70. Log joint probability = 90.9921. Improved by 5.48589e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 71. Log joint probability = 90.9921. Improved by 5.17867e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 72. Log joint probability = 90.9921. Improved by 6.19947e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 73. Log joint probability = 90.9921. Improved by 1.90771e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 74. Log joint probability = 90.9921. Improved by 1.96755e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 75. Log joint probability = 90.9921. Improved by 3.14253e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 76. Log joint probability = 90.9922. Improved by 2.00154e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 77. Log joint probability = 90.9922. Improved by 7.38871e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 78. Log joint probability = 90.9922. Improved by 5.2899e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 79. Log joint probability = 90.9922. Improved by 3.05609e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 80. Log joint probability = 90.9922. Improved by 4.27669e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 81. Log joint probability = 90.9922. Improved by 2.5749e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 82. Log joint probability = 90.9922. Improved by 4.80204e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 83. Log joint probability = 90.9922. Improved by 2.77249e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 84. Log joint probability = 90.9922. Improved by 6.44e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 85. Log joint probability = 90.9922. Improved by 5.69327e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 86. Log joint probability = 90.9922. Improved by 6.80163e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 87. Log joint probability = 90.9922. Improved by 1.10273e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 88. Log joint probability = 90.9922. Improved by 3.1814e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 89. Log joint probability = 90.9922. Improved by 1.15471e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 90. Log joint probability = 90.9922. Improved by 2.80645e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 91. Log joint probability = 90.9922. Improved by 1.97469e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 92. Log joint probability = 90.9922. Improved by 3.01754e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 93. Log joint probability = 90.9922. Improved by 5.89157e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 94. Log joint probability = 90.9922. Improved by 4.37725e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 95. Log joint probability = 90.9922. Improved by 2.67717e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 96. Log joint probability = 90.9922. Improved by 3.00174e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 97. Log joint probability = 90.9922. Improved by 4.5588e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 98. Log joint probability = 90.9922. Improved by 1.30664e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 99. Log joint probability = 90.9922. Improved by 2.56521e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 100. Log joint probability = 90.9922. Improved by 1.77492e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 101. Log joint probability = 90.9922. Improved by 1.62366e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 102. Log joint probability = 90.9922. Improved by 1.84507e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 103. Log joint probability = 90.9922. Improved by 9.9194e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 104. Log joint probability = 90.9922. Improved by 6.85e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 105. Log joint probability = 90.9922. Improved by 2.19949e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 106. Log joint probability = 90.9922. Improved by 3.50271e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 107. Log joint probability = 90.9922. Improved by 7.81865e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 108. Log joint probability = 90.9922. Improved by 6.23645e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 109. Log joint probability = 90.9922. Improved by 6.12578e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 110. Log joint probability = 90.9922. Improved by 5.88466e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 111. Log joint probability = 90.9922. Improved by 1.63983e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 112. Log joint probability = 90.9922. Improved by 1.58961e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 113. Log joint probability = 90.9922. Improved by 4.68893e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 114. Log joint probability = 90.9922. Improved by 2.36556e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 115. Log joint probability = 90.9922. Improved by 4.54818e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 116. Log joint probability = 90.9922. Improved by 2.94216e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 117. Log joint probability = 90.9922. Improved by 1.2584e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 118. Log joint probability = 90.9922. Improved by 2.77487e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 119. Log joint probability = 90.9922. Improved by 2.76151e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 120. Log joint probability = 90.9922. Improved by 1.37145e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 121. Log joint probability = 90.9922. Improved by 4.27885e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=867, ip=172.31.136.199)\u001b[0m Iteration 122. Log joint probability = 90.9922. Improved by 7.76434e-09.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m \n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Initial log joint probability = -21.7758\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 1. Log joint probability = 20.1836. Improved by 41.9594.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 2. Log joint probability = 59.1549. Improved by 38.9713.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 3. Log joint probability = 79.9487. Improved by 20.7939.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 4. Log joint probability = 90.4604. Improved by 10.5117.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 5. Log joint probability = 90.7685. Improved by 0.308148.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 6. Log joint probability = 90.8866. Improved by 0.118032.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 7. Log joint probability = 90.9086. Improved by 0.0220841.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 8. Log joint probability = 90.9484. Improved by 0.0397311.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 9. Log joint probability = 90.9681. Improved by 0.0197759.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 10. Log joint probability = 90.9738. Improved by 0.00567126.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 11. Log joint probability = 90.9772. Improved by 0.00338425.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 12. Log joint probability = 90.979. Improved by 0.00180031.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 13. Log joint probability = 90.9909. Improved by 0.0118985.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 14. Log joint probability = 90.9977. Improved by 0.00677184.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 15. Log joint probability = 90.9994. Improved by 0.00176338.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 16. Log joint probability = 90.9998. Improved by 0.000346058.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 17. Log joint probability = 91.0026. Improved by 0.00283502.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 18. Log joint probability = 91.0067. Improved by 0.00404095.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 19. Log joint probability = 91.009. Improved by 0.00230573.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 20. Log joint probability = 91.0097. Improved by 0.000728684.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 21. Log joint probability = 91.0105. Improved by 0.000842848.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 22. Log joint probability = 91.0137. Improved by 0.00315459.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 23. Log joint probability = 91.0144. Improved by 0.000675261.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 24. Log joint probability = 91.015. Improved by 0.000668053.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 25. Log joint probability = 91.0153. Improved by 0.00022664.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 26. Log joint probability = 91.0158. Improved by 0.000553923.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 27. Log joint probability = 91.0169. Improved by 0.00108114.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 28. Log joint probability = 91.0173. Improved by 0.000446418.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 29. Log joint probability = 91.0179. Improved by 0.000535655.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 30. Log joint probability = 91.0188. Improved by 0.000894825.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 31. Log joint probability = 91.0192. Improved by 0.000463639.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 32. Log joint probability = 91.0193. Improved by 5.37241e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 33. Log joint probability = 91.0194. Improved by 0.00012323.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 34. Log joint probability = 91.0196. Improved by 0.000156284.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 35. Log joint probability = 91.0197. Improved by 8.54979e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 36. Log joint probability = 91.02. Improved by 0.000353443.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 37. Log joint probability = 91.0201. Improved by 9.12108e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 38. Log joint probability = 91.0201. Improved by 3.2033e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 39. Log joint probability = 91.0202. Improved by 5.68514e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 40. Log joint probability = 91.0203. Improved by 7.33769e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 41. Log joint probability = 91.0203. Improved by 6.37981e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 42. Log joint probability = 91.0203. Improved by 1.38012e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 43. Log joint probability = 91.0204. Improved by 2.29702e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 44. Log joint probability = 91.0204. Improved by 6.54176e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 45. Log joint probability = 91.0204. Improved by 1.93438e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 46. Log joint probability = 91.0204. Improved by 3.1678e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 47. Log joint probability = 91.0204. Improved by 5.27803e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 48. Log joint probability = 91.0204. Improved by 1.66328e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 49. Log joint probability = 91.0204. Improved by 1.35778e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 50. Log joint probability = 91.0205. Improved by 1.29478e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 51. Log joint probability = 91.0205. Improved by 7.81213e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 52. Log joint probability = 91.0205. Improved by 1.64481e-05.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m INFO:prophet:Disabling yearly seasonality. Run prophet with yearly_seasonality=True to override this.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m INFO:prophet:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 53. Log joint probability = 91.0205. Improved by 5.89368e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 54. Log joint probability = 91.0205. Improved by 2.73371e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 55. Log joint probability = 91.0205. Improved by 3.59134e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 56. Log joint probability = 91.0205. Improved by 7.21082e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 57. Log joint probability = 91.0205. Improved by 1.16206e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 58. Log joint probability = 91.0205. Improved by 2.44705e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 59. Log joint probability = 91.0205. Improved by 1.59075e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 60. Log joint probability = 91.0205. Improved by 2.89546e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 61. Log joint probability = 91.0205. Improved by 1.19933e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 62. Log joint probability = 91.0205. Improved by 2.3315e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 63. Log joint probability = 91.0205. Improved by 3.0172e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 64. Log joint probability = 91.0205. Improved by 1.1254e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 65. Log joint probability = 91.0205. Improved by 1.43073e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 66. Log joint probability = 91.0205. Improved by 1.06503e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 67. Log joint probability = 91.0205. Improved by 1.94521e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 68. Log joint probability = 91.0205. Improved by 1.91264e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 69. Log joint probability = 91.0205. Improved by 1.14165e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 70. Log joint probability = 91.0205. Improved by 6.19488e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 71. Log joint probability = 91.0205. Improved by 1.3134e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 72. Log joint probability = 91.0205. Improved by 7.83336e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 73. Log joint probability = 91.0205. Improved by 6.66751e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 74. Log joint probability = 91.0205. Improved by 2.12689e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 75. Log joint probability = 91.0205. Improved by 1.21127e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 76. Log joint probability = 91.0205. Improved by 6.65688e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 77. Log joint probability = 91.0205. Improved by 2.69727e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 78. Log joint probability = 91.0205. Improved by 3.26115e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 79. Log joint probability = 91.0205. Improved by 6.01741e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 80. Log joint probability = 91.0205. Improved by 9.90215e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 81. Log joint probability = 91.0205. Improved by 1.34709e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 82. Log joint probability = 91.0205. Improved by 1.86905e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 83. Log joint probability = 91.0205. Improved by 1.13228e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 84. Log joint probability = 91.0205. Improved by 1.84163e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 85. Log joint probability = 91.0205. Improved by 9.80857e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 86. Log joint probability = 91.0205. Improved by 3.26897e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 87. Log joint probability = 91.0205. Improved by 2.67554e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 88. Log joint probability = 91.0205. Improved by 3.02441e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=868, ip=172.31.136.199)\u001b[0m Iteration 89. Log joint probability = 91.0205. Improved by 6.99644e-09.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m \n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Initial log joint probability = -24.7798\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 1. Log joint probability = 56.6567. Improved by 81.4365.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 2. Log joint probability = 97.3654. Improved by 40.7088.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 3. Log joint probability = 118.678. Improved by 21.3124.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 4. Log joint probability = 129.821. Improved by 11.1432.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 5. Log joint probability = 132.527. Improved by 2.70548.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 6. Log joint probability = 132.562. Improved by 0.0357063.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 7. Log joint probability = 132.959. Improved by 0.396572.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 8. Log joint probability = 132.964. Improved by 0.00492318.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 9. Log joint probability = 132.968. Improved by 0.00386232.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 10. Log joint probability = 133.011. Improved by 0.0434838.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 11. Log joint probability = 133.125. Improved by 0.113608.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m \n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Initial log joint probability = -24.7798\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 1. Log joint probability = 58.4966. Improved by 83.2764.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 2. Log joint probability = 98.0201. Improved by 39.5235.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 3. Log joint probability = 124.762. Improved by 26.7417.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 4. Log joint probability = 128.406. Improved by 3.64467.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 5. Log joint probability = 131.459. Improved by 3.05241.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 6. Log joint probability = 131.536. Improved by 0.0771233.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 7. Log joint probability = 131.585. Improved by 0.0491424.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 8. Log joint probability = 131.622. Improved by 0.0372929.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 9. Log joint probability = 131.746. Improved by 0.123634.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 10. Log joint probability = 131.84. Improved by 0.0940927.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 11. Log joint probability = 131.915. Improved by 0.0752941.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 12. Log joint probability = 131.944. Improved by 0.0284656.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 13. Log joint probability = 132.136. Improved by 0.192139.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 14. Log joint probability = 132.154. Improved by 0.0182919.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 12. Log joint probability = 133.156. Improved by 0.0315004.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 15. Log joint probability = 132.205. Improved by 0.0502591.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 13. Log joint probability = 133.165. Improved by 0.00863589.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 16. Log joint probability = 132.283. Improved by 0.0788813.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 14. Log joint probability = 133.205. Improved by 0.0399492.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 17. Log joint probability = 132.295. Improved by 0.0111451.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 15. Log joint probability = 133.263. Improved by 0.0582913.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 18. Log joint probability = 132.508. Improved by 0.213728.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 16. Log joint probability = 133.312. Improved by 0.0488556.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 17. Log joint probability = 133.379. Improved by 0.0673858.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 19. Log joint probability = 132.535. Improved by 0.0269674.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 18. Log joint probability = 133.399. Improved by 0.0201265.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 20. Log joint probability = 132.608. Improved by 0.0723374.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 19. Log joint probability = 133.484. Improved by 0.0845203.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 20. Log joint probability = 133.489. Improved by 0.00529988.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 21. Log joint probability = 133.564. Improved by 0.074616.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 22. Log joint probability = 133.65. Improved by 0.0863769.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 23. Log joint probability = 133.704. Improved by 0.0536392.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 24. Log joint probability = 133.726. Improved by 0.0224161.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 25. Log joint probability = 133.734. Improved by 0.00765676.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 26. Log joint probability = 133.771. Improved by 0.0367052.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 27. Log joint probability = 133.782. Improved by 0.0110577.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 28. Log joint probability = 133.782. Improved by 0.000409333.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 29. Log joint probability = 133.786. Improved by 0.00424821.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 30. Log joint probability = 133.793. Improved by 0.00702624.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 31. Log joint probability = 133.793. Improved by 0.000120618.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 32. Log joint probability = 133.796. Improved by 0.00259901.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 33. Log joint probability = 133.8. Improved by 0.00347541.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 34. Log joint probability = 133.8. Improved by 4.34525e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 35. Log joint probability = 133.8. Improved by 0.000442336.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 36. Log joint probability = 133.801. Improved by 0.000935713.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 37. Log joint probability = 133.803. Improved by 0.00171089.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 38. Log joint probability = 133.803. Improved by 0.000512353.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 39. Log joint probability = 133.803. Improved by 4.16449e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 40. Log joint probability = 133.804. Improved by 0.000354666.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 41. Log joint probability = 133.804. Improved by 5.7549e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 42. Log joint probability = 133.804. Improved by 0.000324601.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 43. Log joint probability = 133.805. Improved by 0.00101344.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 44. Log joint probability = 133.805. Improved by 0.000491843.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 45. Log joint probability = 133.806. Improved by 8.67991e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 46. Log joint probability = 133.806. Improved by 0.000128382.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 47. Log joint probability = 133.806. Improved by 3.70175e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 48. Log joint probability = 133.806. Improved by 4.50979e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 21. Log joint probability = 132.66. Improved by 0.0521015.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 22. Log joint probability = 132.673. Improved by 0.0129431.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 23. Log joint probability = 132.883. Improved by 0.210274.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 24. Log joint probability = 133.261. Improved by 0.378255.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 25. Log joint probability = 133.449. Improved by 0.187961.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 26. Log joint probability = 133.654. Improved by 0.204868.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 27. Log joint probability = 133.762. Improved by 0.10752.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 28. Log joint probability = 133.793. Improved by 0.0309585.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 29. Log joint probability = 133.847. Improved by 0.0542512.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 30. Log joint probability = 133.898. Improved by 0.0509466.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 31. Log joint probability = 134.179. Improved by 0.2808.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 32. Log joint probability = 134.209. Improved by 0.0301489.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 33. Log joint probability = 134.253. Improved by 0.0447352.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 34. Log joint probability = 134.339. Improved by 0.0856853.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 49. Log joint probability = 133.806. Improved by 2.93527e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 50. Log joint probability = 133.806. Improved by 4.40796e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 35. Log joint probability = 134.341. Improved by 0.00205512.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 51. Log joint probability = 133.806. Improved by 0.000118919.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m INFO:prophet:Disabling yearly seasonality. Run prophet with yearly_seasonality=True to override this.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m INFO:prophet:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m INFO:prophet:Disabling yearly seasonality. Run prophet with yearly_seasonality=True to override this.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m INFO:prophet:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 52. Log joint probability = 133.806. Improved by 1.19684e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 53. Log joint probability = 133.806. Improved by 5.11185e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 54. Log joint probability = 133.806. Improved by 4.74767e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 55. Log joint probability = 133.806. Improved by 1.2416e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 56. Log joint probability = 133.806. Improved by 2.02582e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 57. Log joint probability = 133.806. Improved by 1.71245e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 58. Log joint probability = 133.806. Improved by 8.42186e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 59. Log joint probability = 133.806. Improved by 5.25634e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 60. Log joint probability = 133.806. Improved by 1.02038e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 61. Log joint probability = 133.806. Improved by 8.6083e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 62. Log joint probability = 133.806. Improved by 1.95771e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 63. Log joint probability = 133.806. Improved by 2.81929e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 64. Log joint probability = 133.806. Improved by 9.62887e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 65. Log joint probability = 133.806. Improved by 1.02108e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 66. Log joint probability = 133.806. Improved by 8.08545e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 67. Log joint probability = 133.806. Improved by 1.06262e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 68. Log joint probability = 133.806. Improved by 1.44616e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 69. Log joint probability = 133.806. Improved by 2.11851e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 70. Log joint probability = 133.806. Improved by 2.4721e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 71. Log joint probability = 133.806. Improved by 3.84309e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 72. Log joint probability = 133.806. Improved by 8.01389e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 73. Log joint probability = 133.806. Improved by 6.42814e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 74. Log joint probability = 133.806. Improved by 3.08296e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 75. Log joint probability = 133.806. Improved by 7.11785e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 76. Log joint probability = 133.806. Improved by 6.76762e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 77. Log joint probability = 133.806. Improved by 2.88068e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 78. Log joint probability = 133.806. Improved by 6.82979e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 36. Log joint probability = 134.393. Improved by 0.0516495.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 37. Log joint probability = 134.406. Improved by 0.0128166.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 38. Log joint probability = 134.53. Improved by 0.124634.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 39. Log joint probability = 134.593. Improved by 0.0626.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 40. Log joint probability = 134.626. Improved by 0.03309.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 41. Log joint probability = 134.631. Improved by 0.00515215.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 42. Log joint probability = 134.664. Improved by 0.0326243.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 43. Log joint probability = 134.675. Improved by 0.0115272.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 44. Log joint probability = 134.678. Improved by 0.00297174.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 45. Log joint probability = 134.687. Improved by 0.00902203.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 46. Log joint probability = 134.695. Improved by 0.00741251.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 47. Log joint probability = 134.698. Improved by 0.00291338.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 48. Log joint probability = 134.698. Improved by 0.000831812.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 49. Log joint probability = 134.699. Improved by 0.000221433.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 50. Log joint probability = 134.7. Improved by 0.00103722.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 79. Log joint probability = 133.806. Improved by 4.89768e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 80. Log joint probability = 133.806. Improved by 5.13849e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 51. Log joint probability = 134.7. Improved by 0.00033267.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 81. Log joint probability = 133.806. Improved by 1.1728e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=865, ip=172.31.136.199)\u001b[0m Iteration 82. Log joint probability = 133.806. Improved by 5.41323e-09.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 52. Log joint probability = 134.7. Improved by 0.000370356.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 53. Log joint probability = 134.701. Improved by 0.000590457.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 54. Log joint probability = 134.701. Improved by 0.000308186.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 55. Log joint probability = 134.701. Improved by 1.19587e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 56. Log joint probability = 134.703. Improved by 0.0017289.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 57. Log joint probability = 134.705. Improved by 0.00162144.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 58. Log joint probability = 134.706. Improved by 0.000936565.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 59. Log joint probability = 134.706. Improved by 0.000489671.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 60. Log joint probability = 134.706. Improved by 2.13758e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 61. Log joint probability = 134.706. Improved by 7.25762e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 62. Log joint probability = 134.706. Improved by 0.000109131.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 63. Log joint probability = 134.706. Improved by 5.9817e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 64. Log joint probability = 134.706. Improved by 0.000246335.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 65. Log joint probability = 134.707. Improved by 2.75556e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 66. Log joint probability = 134.707. Improved by 6.77305e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 67. Log joint probability = 134.707. Improved by 0.000101361.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 68. Log joint probability = 134.707. Improved by 2.67652e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 69. Log joint probability = 134.707. Improved by 4.08686e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 70. Log joint probability = 134.707. Improved by 5.56634e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 71. Log joint probability = 134.707. Improved by 8.41062e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 72. Log joint probability = 134.707. Improved by 3.58515e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 73. Log joint probability = 134.707. Improved by 1.01022e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 74. Log joint probability = 134.707. Improved by 2.71279e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 75. Log joint probability = 134.707. Improved by 1.57461e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 76. Log joint probability = 134.707. Improved by 2.20976e-05.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 77. Log joint probability = 134.707. Improved by 4.12488e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 78. Log joint probability = 134.707. Improved by 4.15849e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 79. Log joint probability = 134.707. Improved by 4.0241e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 80. Log joint probability = 134.707. Improved by 5.34552e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 81. Log joint probability = 134.707. Improved by 2.28619e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 82. Log joint probability = 134.707. Improved by 1.55421e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 83. Log joint probability = 134.707. Improved by 4.21746e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 84. Log joint probability = 134.707. Improved by 1.7876e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 85. Log joint probability = 134.707. Improved by 4.65521e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 86. Log joint probability = 134.707. Improved by 6.75201e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 87. Log joint probability = 134.707. Improved by 1.22495e-06.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 88. Log joint probability = 134.707. Improved by 6.8387e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 89. Log joint probability = 134.707. Improved by 1.51393e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 90. Log joint probability = 134.707. Improved by 3.06142e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 91. Log joint probability = 134.707. Improved by 2.65367e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 92. Log joint probability = 134.707. Improved by 3.27718e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 93. Log joint probability = 134.707. Improved by 1.4017e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 94. Log joint probability = 134.707. Improved by 1.27841e-07.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 95. Log joint probability = 134.707. Improved by 7.60193e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 96. Log joint probability = 134.707. Improved by 2.21328e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 97. Log joint probability = 134.707. Improved by 1.95887e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 98. Log joint probability = 134.707. Improved by 7.67787e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 99. Log joint probability = 134.707. Improved by 1.98719e-08.\n",
+ "\u001b[2m\u001b[36m(train_model pid=864, ip=172.31.136.199)\u001b[0m Iteration 100. Log joint probability = 134.707. Improved by 6.91463e-09.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "2023-01-10 17:13:05,631\tINFO tune.py:762 -- Total run time: 46.63 seconds (43.48 seconds for the tuning loop).\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total number of models: 9\n",
+ "TOTAL TIME TAKEN: 0.78 minutes\n"
+ ]
+ }
+ ],
+ "source": [
+ "############\n",
+ "# STEP 2. Customize distributed compute scaling.\n",
+ "############\n",
+ "num_training_workers = min(num_cpu - 2, 32)\n",
+ "scaling_config = ScalingConfig(\n",
+ " # Number of distributed workers.\n",
+ " num_workers=num_training_workers,\n",
+ " # Turn on/off GPU.\n",
+ " use_gpu=False,\n",
+ " # Specify resources used for trainer.\n",
+ " trainer_resources={\"CPU\": 1},\n",
+ " # Try to schedule workers on different nodes.\n",
+ " placement_strategy=\"SPREAD\",\n",
+ ")\n",
+ "\n",
+ "############\n",
+ "# STEP 3. Define a search space dict of all config parameters.\n",
+ "############\n",
+ "SEARCH_SPACE = {\n",
+ " \"scaling_config\": scaling_config,\n",
+ " \"params\": {\n",
+ " \"algorithm\": tune.grid_search(\n",
+ " [\"prophet_additive\", \"prophet_multiplicative\", \"arima\"]\n",
+ " ),\n",
+ " \"location\": tune.grid_search(sample_locations),\n",
+ " },\n",
+ "}\n",
+ "\n",
+ "# Optional STEP 4. Specify the hyperparameter tuning search strategy.\n",
+ "\n",
+ "############\n",
+ "# STEP 5. Run the experiment with Ray AIR APIs.\n",
+ "# https://docs.ray.io/en/latest/ray-air/examples/huggingface_text_classification.html\n",
+ "############\n",
+ "start = time.time()\n",
+ "\n",
+ "# Define a tuner object.\n",
+ "tuner = tune.Tuner(\n",
+ " train_model,\n",
+ " param_space=SEARCH_SPACE,\n",
+ " tune_config=tune.TuneConfig(\n",
+ " metric=\"error\",\n",
+ " mode=\"min\",\n",
+ " ),\n",
+ " run_config=air.RunConfig(\n",
+ " # Redirect logs to relative path instead of default ~/ray_results/.\n",
+ " local_dir=\"my_Tune_logs\",\n",
+ " # Specify name to make logs easier to find in log path.\n",
+ " name=\"ptf_nyc\",\n",
+ " ),\n",
+ ")\n",
+ "\n",
+ "# Fit the tuner object.\n",
+ "results = tuner.fit()\n",
+ "\n",
+ "total_time_taken = time.time() - start\n",
+ "print(f\"Total number of models: {len(results)}\")\n",
+ "print(f\"TOTAL TIME TAKEN: {total_time_taken/60:.2f} minutes\")\n",
+ "\n",
+ "# Total number of models: 771\n",
+ "# TOTAL TIME TAKEN: 44.64 minutes"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "0cafe75d",
+ "metadata": {},
+ "source": [
+ "## Load a model from checkpoint \n",
+ "\n",
+ "- After the Tune experiment has finished, we can assemble the Tune {doc}`ResultGrid ` object into a pandas dataframe.\n",
+ "\n",
+ "- Next, we'll sort the pandas dataframe by pickuplocation and error, and keep only the best model with minimum error per pickup location."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "5ceeb770",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " location_id \n",
+ " error \n",
+ " algorithm \n",
+ " checkpoint \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 141 \n",
+ " 502.848238 \n",
+ " prophet_additive \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 141 \n",
+ " 483.067424 \n",
+ " prophet_multiplicative \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 141 \n",
+ " 342.350202 \n",
+ " arima \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 229 \n",
+ " 539.389668 \n",
+ " prophet_additive \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 229 \n",
+ " 529.742322 \n",
+ " prophet_multiplicative \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " 229 \n",
+ " 480.844291 \n",
+ " arima \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " 173 \n",
+ " 2.555846 \n",
+ " prophet_additive \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " 173 \n",
+ " 2.528967 \n",
+ " prophet_multiplicative \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
],
- "source": [
- "final_df.describe(include=\"all\")"
+ "text/plain": [
+ " location_id error algorithm \\\n",
+ "0 141 502.848238 prophet_additive \n",
+ "1 141 483.067424 prophet_multiplicative \n",
+ "2 141 342.350202 arima \n",
+ "3 229 539.389668 prophet_additive \n",
+ "4 229 529.742322 prophet_multiplicative \n",
+ "5 229 480.844291 arima \n",
+ "6 173 2.555846 prophet_additive \n",
+ "7 173 2.528967 prophet_multiplicative \n",
+ "\n",
+ " checkpoint \n",
+ "0 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "1 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "2 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "3 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "4 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "5 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "6 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "7 Checkpoint(local_path=/home/ray/christy-air/fo... "
]
},
- {
- "cell_type": "code",
- "execution_count": 14,
- "id": "8361fe9f",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "algorithm \n",
- "arima 0.666667\n",
- "prophet_multiplicative 0.333333\n",
- "dtype: float64"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- }
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# get a list of training loss errors\n",
+ "errors = [i.metrics.get(\"error\", 10000.0) for i in results]\n",
+ "\n",
+ "# get a list of checkpoints\n",
+ "checkpoints = [i.checkpoint for i in results]\n",
+ "\n",
+ "# get a list of locations\n",
+ "locations = [i.config[\"params\"][\"location\"] for i in results]\n",
+ "\n",
+ "# get a list of model params\n",
+ "algorithm = [i.config[\"params\"][\"algorithm\"] for i in results]\n",
+ "\n",
+ "# Assemble a pandas dataframe from Tune results\n",
+ "results_df = pd.DataFrame(\n",
+ " zip(locations, errors, algorithm, checkpoints),\n",
+ " columns=[\"location_id\", \"error\", \"algorithm\", \"checkpoint\"],\n",
+ ")\n",
+ "results_df.head(8)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "d0191ff0",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " error \n",
+ " algorithm \n",
+ " checkpoint \n",
+ " \n",
+ " \n",
+ " location_id \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 173 \n",
+ " 2.528967 \n",
+ " prophet_multiplicative \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ " 141 \n",
+ " 342.350202 \n",
+ " arima \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ " 229 \n",
+ " 480.844291 \n",
+ " arima \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
],
- "source": [
- "final_df[[\"algorithm\"]].value_counts(normalize=True)"
+ "text/plain": [
+ " error algorithm \\\n",
+ "location_id \n",
+ "173 2.528967 prophet_multiplicative \n",
+ "141 342.350202 arima \n",
+ "229 480.844291 arima \n",
+ "\n",
+ " checkpoint \n",
+ "location_id \n",
+ "173 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "141 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "229 Checkpoint(local_path=/home/ray/christy-air/fo... "
]
},
- {
- "cell_type": "markdown",
- "id": "106f584b",
- "metadata": {},
- "source": [
- "## Load a model from checkpoint and create a forecast "
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Keep only 1 model per location_id with minimum error\n",
+ "final_df = results_df.copy()\n",
+ "final_df = final_df.loc[(final_df.error > 0), :]\n",
+ "final_df = final_df.loc[final_df.groupby(\"location_id\")[\"error\"].idxmin()]\n",
+ "final_df.sort_values(by=[\"error\"], inplace=True)\n",
+ "final_df.set_index(\"location_id\", inplace=True, drop=True)\n",
+ "final_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "f4aa9e5d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "algorithm \n",
+ "arima 0.666667\n",
+ "prophet_multiplicative 0.333333\n",
+ "dtype: float64"
]
},
- {
- "cell_type": "markdown",
- "id": "59d841a2",
- "metadata": {},
- "source": [
- "```{tip}\n",
- "[Ray AIR Predictors](https://docs.ray.io/en/latest/ray-air/predictors.html) make batch inference easy since they have internal logic to parallelize the inference.\n",
- "```\n",
- " \n",
- "Finally, we will restore the best and worst models from checkpoint and inspect the forecasts. Prophet includes a convenient plot library which displays actual data along with backtest predictions and confidence intervals and future forecasts. With ARIMA, you have to create a prediciton manually.\n",
- "\n",
- "- We will easily obtain AIR Checkpoint objects from the Tune results. \n",
- "- We will restore a Prophet or ARIMA model directly from checkpoint, and demonstrate it can be used for prediction.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "id": "d9efae29",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "checkpoint type:: \n",
- "location 173, algorithm prophet_multiplicative, best error 2.528968219379467\n"
- ]
- },
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9ebQkWX3fi34jIqcz1qnqqq6hq7q7EJNBgn5Gps0zshnaatrLSAy2BU9GiIUE4oLfg366SM2VkBrr0r7SvYKnp5aQfBuBsGQG22rL1jV+uM0gzHS7uS0J20LdRc1TV9UZMk9mxrCH98eOHRkZuSMz8tQZckf8PmtpiTp1zunIXb/Ye/+m78+RUkoQBEEQBEEQBEEQBLHtuHv9AARBEARBEARBEARRVsjpJgiCIAiCIAiCIIgdgpxugiAIgiAIgiAIgtghyOkmCIIgCIIgCIIgiB2CnG6CIAiCIAiCIAiC2CHI6SYIgiAIgiAIgiCIHYKcboIgCIIgCIIgCILYIcjpJgiCIAiCIAiCIIgdorbXDzCLCCFw6dIlLC0twXGcvX4cgiAIgiAIgiAIYsaQUqLT6eDYsWNw3fx8NjndBi5duoQTJ07s9WMQBEEQBEEQBEEQM8758+dx/Pjx3L8np9vA0tISALV4y8vL2/Z7oyjC9evXcfDgQdTr9W37vYS9kE0QJsguiCxkE0QWsgkiC9kEkYVsYudpt9s4ceJE4j/mQU63AV1Svry8vO1OdxAEWF5eJsMnAJBNEGbILogsZBNEFrIJIgvZBJGFbGL3mNSSTEJqBEEQBEEQBEEQBLFDkNNNEARBEARBEARBEDsEOd0EQRAEQRAEQRAEsUOQ000QBEEQBEEQBEEQOwQ53QRBEARBEARBEASxQ5DTTRAEQRAEQRAEQRA7BDndBEEQBEEQBEEQBLFDkNNNEARBEARBEARBEDsEOd0EQRAEQRAEQRAEsUOQ000QBEEQBEEQBEEQOwQ53QRBEARBEARBEASxQ5DTTRAEQRAEQRAEQRA7BDndBEEQBEEQBEEQBLFDkNNNEARBEARBEARBEDsEOd0EQRAEQRAEQRAEsUOQ000QBEEQBEEQBEEQOwQ53QRBEARBEARBEASxQ5DTTRAEQRAEQRAEQRA7BDndBLFDXLhwAV/84hdx4cKFvX4UgiAIgiAIgiD2CHK6CWIHeOSRR3DHHXfgVa96Fe644w488sgje/1IBEEQBEEQBEHsAeR0E8Q2c+HCBbzjHe+AEAIAIITAO9/5Tsp4EwRBEARBEEQFIaebILaZp556KnG4NZxzPP3003v0RARBEARBEARB7BXkdBPENvOc5zwHrjv8anmeh2c/+9l79EQEQRAEQRAEQewV5HQTxDZz/Phx/O7v/i48zwOgHO7f+Z3fwfHjx/f4yQiCIAiCIAiC2G1qe/0ABFFG3v72t+Pee+/F008/jWc/+9nkcBMEQRAEQRBERSGnmyB2iOPHj5OzTRAEQRAEQRAVh8rLCYIgCIIgCIIgCGKHIKebIAiCIAiCIAiCIHYIcroJgiAIgiAIgiAIYocgp5sgCIIgCIIgCIIgdghyugmCIAiCIAiCIAhihyCnmyAIgiAIgiAIgiB2CHK6CYIgCIIgCIIgCGKHIKebIAiCIAiCIAiCIHYIcroJgiAIgiAIgiAIYocgp5sgCIIgCIIgCIIgdghyugmCIAiCIAiCIAhihyCnmyAIgiAIgiAIgiB2CHK6CYIgCIIgCIIgCGKHIKebIAiCIAiCIAiCIHYIcroJgiAIgiAIgiAIYofYU6f7oYcewt/4G38DS0tLuPXWW/G6170O3/3ud4e+x/d9vPvd78Ytt9yCxcVFvPGNb8TVq1fH/l4pJT74wQ/i6NGjmJubwz333IOnnnpqJz8KQRAEQRAEQRAEQYywp073l7/8Zbz73e/GN77xDXzhC19AFEX44R/+YXS73eR73ve+9+Hf/bt/h8997nP48pe/jEuXLuENb3jD2N/7q7/6q/iN3/gNfOxjH8M3v/lNLCws4N5774Xv+zv9kQiCIAiCIAiCIAgiobaX//HPf/7zQ3/+xCc+gVtvvRVPPPEE/vbf/tvY2NjAI488gj/8wz/Eq171KgDA7/3e7+Gv/bW/hm984xv4m3/zb478TiklPvrRj+IXfuEX8KM/+qMAgN///d/H4cOH8eijj+JNb3rTzn8wgiAIgiAIgiAIgsCM9XRvbGwAAA4cOAAAeOKJJxBFEe65557ke57//Ofj9ttvx9e//nXj7zh9+jSuXLky9DP79u3D3XffnfszBEEQBEEQBEEQBLET7GmmO40QAu9973vxt/7W38L3f//3AwCuXLmCRqOBlZWVoe89fPgwrly5Yvw9+uuHDx8u/DNBECAIguTP7XYbABBFEaIo2tLnMRFFERhj2/o7CbshmyBMkF0QWcgmiCxkE0QWsgkiC9nEzlN0bWfG6X73u9+N73znO/jqV7+66//thx56CA8++ODI169fvz7kjN8sjDGsra0BAGq1mVl6Yg8hmyBMkF0QWcgmiCxkE0QWsgkiC9nEztPpdAp930ys/nve8x78+3//7/GVr3wFx48fT75+5MgRhGGI9fX1oWz31atXceTIEePv0l+/evUqjh49OvQzd911l/FnHnjgAdx///3Jn9vtNk6cOIGDBw9ieXn5Jj7ZMDoScvDgQdTr9W37vYS9kE0QJsguiCxkE0QWsgkiC9kEkYVsYudpNpuFvm9PnW4pJf7JP/kn+KM/+iN86UtfwsmTJ4f+/iUveQnq9Toee+wxvPGNbwQAfPe738W5c+fwspe9zPg7T548iSNHjuCxxx5LnOx2u41vfvObeNe73mX8mWazaVywer2+7QZaq9V25PcS9kI2QZgguyCykE0QWcgmiCxkE0QWsomdpei67qmQ2rvf/W78i3/xL/CHf/iHWFpawpUrV3DlyhX0+30ASgDt7W9/O+6//3588YtfxBNPPIG3ve1teNnLXjakXP785z8ff/RHfwQAcBwH733ve/Erv/Ir+OM//mP8xV/8BX7iJ34Cx44dw+te97q9+JgEQRAEQRAEQRBERdnTTPdv//ZvAwBe8YpXDH39937v9/CTP/mTAICPfOQjcF0Xb3zjGxEEAe6991781m/91tD3f/e7302UzwHg/e9/P7rdLt7xjndgfX0dL3/5y/H5z38erVZrRz8PQRAEQRAEQRAEQaTZ8/LySbRaLTz88MN4+OGHC/8ex3HwoQ99CB/60Idu+hkJgiAIgiAIgiAIYqvM1JxugiAIgiAIgiAIgigT5HQTBEEQBEEQBEEQxA5BTjdBEARBEARBEARB7BDkdBMEQRAEQRAEQRDEDkFON0EQBEEQBEEQBEHsEOR0EwRBEARBEARBEMQOQU43QRAEQRAEQRAEQewQ5HQTBEEQBEEQBEEQxA5BTjdBEARBEARBEARB7BDkdBMEQRAEQRAEQRDEDkFON0EQBEEQBEEQBEHsEOR0EwRBEARBEARBEMQOQU43QRAEQRAEQRAEQewQ5HQTBEEQBEEQBEEQxA5BTjdBEARBEARBEARB7BDkdBMEQRAEQRAEQRDEDkFON0EQW+bChQv44he/iAsXLuz1oxAEQRAEQRDETEJON0EQW+KRRx7BHXfcgVe96lW444478Mgjj+z1IxEEQRAEQRDEzEFON0EQU3PhwgW84x3vgBACACCEwDvf+U7KeBMEQRAEQRBEBnK6CYKYmqeeeipxuDWcczz99NN79EQEQRAEQRAEMZuQ000QxNQ85znPgesObx+e5+HZz372Hj0RQRAEQRAEQcwm5HQTBDE1x48fx+/+7u/C8zwAyuH+nd/5HRw/fnyPn4wgCIIgCIIgZovaXj8AQRB28va3vx333nsvnn76aTz72c8mh5sgCIIgCIIgDJDTTRDEljl+/Dg52wRBEARBEAQxBiovJwiCIAiCIAiCIIgdgpxugiAIgiAIgiAIgtghyOkmCIIgCIIgCIIgiB2CnG6CIAiCIAiCIAiC2CHI6SYIgiAIgiAIgiCIHYKcboIgCIIgCIIgCILYIcjpJgiCIAiCIAiCIIgdgpxugiAIgiAIgiAIgtghyOkmCIIgCIIgCIIgiB2CnG6CIAiCIAiCIAiC2CHI6SYIgiAIgiAIgiCIHYKcboIgCIIgCIIgCILYIcjpJgiCIAiCIAiCIIgdgpxugiAIgiAIgiAIgtghyOkmCIIgCIIgCIIgiB2CnG6CIAiCIAiCIAiC2CHI6SYIgiAIgiAIgiCIHYKcboIgCIIgCIIgCILYIcjpJgiCIAiCIAiCIIgdgpxugiAIgiAIgiAIgtghyOkmCIIgCIIgCIIgiB2CnG6CIAiCIAiCIAiC2CHI6SYIgiAIgiAIgiCIHYKcboIgCIIgCIIgCILYIcjpJgiCIAiCIAiCIIgdgpxugiAIgiAIgiAIgtghyOkmCIIgCIIgCIIgiB2CnG6CIAiCIAiCIAiC2CH21On+yle+gte+9rU4duwYHMfBo48+OvT3juMY/+/Xfu3Xcn/nL//yL498//Of//wd/iQEQRAEQRAEQRAEMcqeOt3dbhcvfvGL8fDDDxv//vLly0P/9/GPfxyO4+CNb3zj2N/7whe+cOjnvvrVr+7E4xMEQRAEQRAEQRDEWGp7+R+/7777cN999+X+/ZEjR4b+/G//7b/FK1/5SjzrWc8a+3trtdrIzxIEQRAEQRAEQRDEbrOnTvc0XL16FX/yJ3+CT37ykxO/96mnnsKxY8fQarXwspe9DA899BBuv/323O8PggBBECR/brfbAIAoihBF0c0/fEwURWCMbevvJOyGbIIwQXZBZCGbILKQTRBZyCaILGQTO0/RtbXG6f7kJz+JpaUlvOENbxj7fXfffTc+8YlP4HnPex4uX76MBx98ED/0Qz+E73znO1haWjL+zEMPPYQHH3xw5OvXr18fcsZvFsYY1tbWAKhsPEGQTRAmyC6ILGQTRBayCSIL2QSRhWxi5+l0OoW+z5rV//jHP44f//EfR6vVGvt96XL1F73oRbj77rtxxx134LOf/Sze/va3G3/mgQcewP3335/8ud1u48SJEzh48CCWl5e35wNgEAk5ePAg6vX6tv1ewl7IJggTZBdEFrIJIgvZBJGFbILIQjax8zSbzULfZ4XT/ad/+qf47ne/i8985jNT/+zKygqe+9zn4umnn879nmazaVywer2+7QZaq9V25PcS9kI2QZgguyCykE0QWcgmiCxkE0QWsomdpei6WjGn+5FHHsFLXvISvPjFL576Zzc3N3Hq1CkcPXp0B56MIAiCIAiCIAiCIPLZU6d7c3MTTz75JJ588kkAwOnTp/Hkk0/i3Llzyfe022187nOfw0/91E8Zf8erX/1q/OZv/mby55/92Z/Fl7/8ZZw5cwZf+9rX8PrXvx6e5+HNb37zjn4WgiAIgiAIgiAIgsiyp+Xljz/+OF75ylcmf9Z91W9961vxiU98AgDw6U9/GlLKXKf51KlTuH79evLnCxcu4M1vfjNu3LiBQ4cO4eUvfzm+8Y1v4NChQzv3QQiCIAiCIAiCIAjCwJ463a94xSsgpRz7Pe94xzvwjne8I/fvz5w5M/TnT3/609vxaARBEARBEARBEARx01jR000QBEEQBEEQBEEQNkJON0EQBEEQBEEQBEHsEOR0EwRBEARBEARBEMQOQU43QRAEQRAEQRAEQewQ5HQTBEEQBEEQBEEQxA5BTjdBEARBEARBEARB7BDkdBMEQRAEQRAEQRDEDkFON0EQBEEQBEEQBEHsEOR0EwRBEARBEARBEMQOQU43QRAEQRAEQRAEQewQ5HQTBEEQBEEQBEEQxA5BTjdBEARBEARBEARB7BDkdBMEQRAEQRAEQRDEDkFON0HsEIwLfO9GF1zIvX4UgiAIgiAIgiD2CHK6CWKH2Aw5numE8CO+149CEARBEARBEMQeQU43QewQARPwGQclugmNEBJPX+8iYBSIIQiCIAiCqArkdBPbzpW2j9VeuNePsef4EYcfCXBJXjeh8BnH9c0QvZCcboIgCIIgiKpATjex7Vzc6GOjz/b6MfacfsQRcgFBTjcRo6sfqM+fIAiCIAiiOpDTTWwrQki0fUbZXQAbfgQhJTlYRILPBPxIUMsBQRAEQRBEhSCnm9hWfMYRcomQib1+lD2FC4luyMElyMEiEpJMNwWlCIIgCIIgKgM53cS20o+UUxHxajvdAeOIuISkTDcAYK0X4kaX+vx7oQpKUcsBkebU9S42A2rJIQiCIIiyQk43sa34jCNkEqzijmbABAIm4ADkYAG43A5wtRPs9WPsOe0gokAMMUTEBa52AnRJXI8gCIIgSgs53cS24kcCIReVz3T7TAmoea5DDhaAth9V3ia4kOiFqrScTILQ9COOPonrEQRBEESpIaeb2FbafgQAiCp+gfQj5WA6DvV0R1ygG/LK24RuOXAdkIMFJbpY9UAMoPYKPyKnmyBMcCFxue3v9WMQBEHcNOR0E9uGlBLtgKFVc8GF6meuKt2QwXMcSInKi2b1Iw6fCbCKO1gBU1UgTc8jZxPAlU6A7z6zudePsef0I45+RKMFCcLEej/CubV+5cVZCYKwH3K6iW1Dj0Nq1b3Kl9C2fYZGzYXrOJV3Nv1IIODK4awyPhPgQqLuOZXP+gMqMLUZknhYN+QImKh8cI4Y5nLbTyrHqozPuKoEofeDIAjLIaeb2Db8iCPkAnN1F0JUt4SWcYE+42h4DlwHlXc2+xFHyNRs6ipXPwRxpoYCMYq2zyh7BWCjT+J6mpAJXNskwUUAuLDex0afglJqzKKg94MgCOshp5vYNvTB2PBcCCkrG5n2mUDIRJLprvploRMwCKHsocpr0Qs5XEcFYqqe6ZZSKruoeCAm4gK9SNlFxKu7DpobvRDfu9Hb68fYc7QORlXP0DQdn4EJar8gCMJ+yOkmto1h8TAJUVHHQvfuNjyXHCyonry5ugchqi0q1/YjNJOWgwovBFRgSpdUVzkQo/UO5urU5w+QqJwmiFu1qr4OUkps+BGErG7lXJprmwFWe+FePwZBEFuEnG5i22gHEWquA89xKp7p5pAScVaz2g5WGJcGztWrXf3AhUQv4qjHLQdVd7B0K0rVAzF+pMYrNmsuWJUXIqYbMkSi2oEYQDndAeeVb0MJuUDAVAC/4iYBALi04WOtR33+BGEr5HQT24KUEm2fJZm8Kkemg1Sfqsp0V/fi1I84AsZVprvS1Q9qXFjDc+G6TqXXAhi0YFQ5EAOo90MC8Fyn8oEYQPX5cyErX0rsM46QycpXSfmRQMg5OKp7n0iz4Ue0TxCExZDTTWwLIVflcLqkusqR6Y7PUHcdAFAOlqiug9WPlLPZrLkqEFPRy3QQl1M3PBcunEqvBaAu0yx2rqp8me6GHB71+QNQ1R/9iFfeJoBBi1LVHayACTAu4aLa+yWgqsZCLisvzEoQNkNON7Et6Ih0s+bCcRxIVDcy3QkY6p56tbSDVdXMTT/p83cqfZn246yu5zpwXYBX2CYAYDNkA8HFitoEoJTLmynBxSqLyunRglUPSAHAZsAgJWW6faYqQYBq75eAWouACRJcJAiLIaeb2Bb8+DDQziZQzYuT7mFu1mKn20WlL5GdpM+/2tUP6ZYDz3EqPyKq4zPM1V1wUd3LtFYub8bVQVxW9/0AdEm1qHwgBlBl9p5bbT0QQE18cFTRWOVtQjncovJ9/gRhM+R0E9uC7k1MU8XLtC4LTDLdcYa3ivcFKSXW40xe1asfenEZMaCy/lV2sHQZcavmVTr4oJXL9WhBIar7fgAq0y2lCs5VeR0irlpRSNFe9TA347O04kuhKkGYqHz1A0HYDDndxLawGTDUdEg6pooXJz8RzIp7uitcVh0wAZ/JJOsPVDMQA6hxYY14HTwHlXY2dRlxo+aqQEw1lyFRLm94Djy32hMfAKAfMbguIFFtRXsduG3WXBWcq+hicCHRC3myb1b17ND4jIMJpYVR5TYUgrAZcrqJbaHts+Rw1FQxMh0wASEkHEc73fHM8goekkqhmieZCgfVLLNPjwsD4kx3hcuqs4Gpqq6Drg5yHAeO3icq6mABQCfgqLtxVrOiNgHETjcTaNVcyAq3JgWMI9QTHxxS92/7DDXXrXSVlEZKiaudgIIPhHWQ003cNLpctOkNm1MVL9P9iMNNLUOVx6f1Iw4mJGqxXVS1vDw9LgzAIKtZwbUAdBmxjJ1Np7Lr0E21HHhOtRXthZDoBCypiqmqTQAD8TDPdcArenYAKmibTHxwUGnVbiklNkOGVs2tfBsKAGwGHGdWe+iGfK8fhSCmgpxu4qZJl4tqqhqZ3gxUNFpT5fFp/Wj4QFTZvD16mD0kfXlMU9Wy6n7EoBtRqlxmr5XLgYG6f0WXAgEffkeqahPAQHTRc+JxkxUNxPhRauKD44BV3CYCJtGqe5VvQwGAXsTRC1ml9wnN1U6A82v9vX4MoiDkdBM3TT9SqrO6XBRAJSPTUkq0A4Zmah2qLCC20Y+SeeUAVKlkBdchSI0LS1PVy/RGMNyKUkGTGFIuB5Co+1fx/QAAP+IIU4Hbii4DgHjkZOxoCshKtmkBKuOv8dxqBvE1Srmcq0x3hQOVml7I0Yt45YMPAHCjG2K1F+71YxAFIaebuGn04eg4aae7epHpkKtodLa3Haieg5UEIFJr4TgAF9W7OKXHhaWp4sVJCIlNnyUZzar2+aeVy4FqB+cAVQ3ChUTNdSprE5qOz1D3XLiuynRXdS108AFQ+0SV51PrkazN2Omu2n0iS9uPEHEKPgDAej9CWMF7la2Q003cNOlZmpoqRqaVGjEfKSMGqneJ9JmAHwk0a17yNRcOwgpenNK9u2mqeHHyY3GkdFl1mBOUKDNp5fI0VbQJIO7zj/+3W1GbAAbjwhpDs9uraRM6+ACo+0TVgvhpgjixUWWNGI0QEut+BC6rXREDACFTFVMRq/hCWAQ53cRNk56lqaliZDqIo9F1w1pULRDZjzgCJoYy3W4FAzEA0EmNC9OorP8ePdAeku1v9xxU0ibSyuWaKmd4u+Fg5KRbUZsA4t5dPpjdXtWWnJAJ+KnzQ08BqeJaAIPEhlvxNhQgrhKKROXXAdD3LI6oahdMiyGnm7gpuJDopmZpaqoYmU73oKVRs4grthaRKhdN9zF7DsAqtg7ZcWGaqo4CCpgAT/W3uxXcJwBz9UOVy8vTIydd16lsuaQfcURMDO0XVbQJn/Gh4JzO8FY26x+qlhzdhlJBk0jQrTk1t7qTLzS9OADBRbXHTdoEOd3ETWHKaALVjEybyuwBwIFTuctCL2Qja+E4TuXKoPS4sGwliOs4YBXM5vmRQNosqjrlYD2lXJ6mQttlQnbkpHo3KrgQUCruEmoNNFUMzun2Cx18cOPRglW6T2iyOhhANW1C04t4PHKy2usADAIQVQ3i2wg53cRN4SfK5aNORdUi0zoaPUr1Lgsb/uhaeA7AKpbB0uXU2ZaDKqr7A0AniFBLVT9UcR2yTmaaqu0TwOjIyaq2HABm0cWKbZkABuug2y9ct8LTL7hAyOVAfNKpdoa37bMkKFWl+6UJPXaSV/TdsBFyuombwmejkXmgepFpUzRao7J51VgHQK1F2x/N5OnLQpXKoPLGhVVR3R+Iy4hT74gOzskKXZ6yyuUax0E1qx/iahAtKlfFfULT8dnQmMWqZvN6IRuuiIETi8rt2SPtGdlxerJiFYRppJRY70do1Vw4DhBVVHARUPesDZ9hru5BiOoKLtoGOd3ETdGPzCXVVYtMZ6PRaaomDJRVqNZ4Fax+yBsXVkV1/6w4EqBsglfsEpmnXO45DqIKrYPGj0RcLqrWo4r7hKYTsKGqmCqdoWnaIRsKSrmuatGqYgAiSI3T01TQJACotehFAq26W9n9UqMF5ebrbnyG7vUTEUUgp5u4KTb8CHXX4GhWLDKdjUanqZpYVD8S8Bkf7fN31WWhShenzYAZx4U5AHJ090pLVhwJUJk8Iap1iTQplyP+c9UCMQDQj4b1H1wXqlyyQvsEMDwuTFPF6gdT1ZhXQY0YjZ8J3FZ5yoESDuNo1rzK7pcarVw+V/cqG5CyEXK6iS0jhETHZ0ZBoKpFpk3RaE3VRLP6EYeU5pYDUaFADKCcblMgRqn7V8cmgFFxJECtQ5X2CSB/bnsV1f0BoBPwocCt5ziVLKHN9rYD1ax+MFVKOfH4tCpWP/RCPnSWOhWeY98LObhU9yzPQeXejTT9SLV21vQZWuG1sAlyuoktk1dGDFQvMp2NRqdxK3Y45LYcONU6HPLGhQGDXs0q9a3qkXrpDG/VbALIVy6vorq/EBKdYDhw6yYtB3v4YHtAwNS4sHTbQRWzeQETqmqMhAYBYEQfpcpCg5sBg85ruBXcL9N04wkxOiBVxXfDRvbU6f7KV76C1772tTh27Bgcx8Gjjz469Pc/+ZM/Ccdxhv7vNa95zcTf+/DDD+POO+9Eq9XC3XffjW9961s79AmqjVZmNh2OVYtMZ6PRabRoVlXEotb9KLe3vUoOVsA4QjY6LgwY9K1WKcNrGqlXNZsYp1yuMjfVukwHhpJq11HOeJXeDWAwLiwdlKpiNs+Pq8ay4pNAtfZLwBy4dd3qVT9olIiaB6Ca1WJp1nqDtQCqc9e2nT11urvdLl784hfj4Ycfzv2e17zmNbh8+XLyf//yX/7Lsb/zM5/5DO6//3780i/9Er797W/jxS9+Me69914888wz2/34lcePzMrMaapymTapdWu0Y1GFpeDjWg4cB1xU53Dw44xNdlwYMFDtrsr7ASj9B9O88irZhFYuz23JqZhqt0kLw3W1Hkh11gHQM+wNUw4qNPkCUOuQR9V8LDWSdThwW7V2NU3IBDbDQcCyitVimpAJdCOOVmrfrFpAylZqe/kfv++++3DfffeN/Z5ms4kjR44U/p2//uu/jp/+6Z/G2972NgDAxz72MfzJn/wJPv7xj+Pnf/7nb+p5iWH60WQlqCpsBOPKiIG4DCoe6eAhP0BRBpS4h8Bya3RrcZ1qjTvJGxcGDLJ5VXEsuJDohnzIubp6+SLOn/4eageOgd+5fw+fbvcw9bVrBuKTEm7J9wmNb9DCcCtaLrkZMGRjMVWbfAEAnSAyaqNUcXyamooiUPfqyddcBwgrZhOAElELGMfifAPAQO+AV2i/1PQzawFUb7+0lZnv6f7Sl76EW2+9Fc973vPwrne9Czdu3Mj93jAM8cQTT+Cee+5Jvua6Lu655x58/etf343HrRRtPzJm8dJUITJtikanqVJWU63FmJYDVEepOm9cGBDbBKrTt5p9Rx799Kfw2pe9CD/zph/BT7/mpfjUJ39vj59wd8hTLgeqqdrtx2JAJqqwX6bJjgsDUln/Cq1FJ2DG86OKgRhTNaEbz7GvSruaph9xRFwm74heh6rZBDC6Fo6DytwlbGdPM92TeM1rXoM3vOENOHnyJE6dOoUPfOADuO+++/D1r38dnueNfP/169fBOcfhw4eHvn748GH85V/+Ze5/JwgCBEGQ/LndbgMAoihCFEXb9GnU72OMbevv3CuklFjr9lGTApyZnU3BGIIwRBTNtJndNJt+CD8IsK/RBDc4WpJzRCFHEIbwMq9cmWwCADq9AJwxSM5gqoOQiU3MfLzvplnv9uFwBs5G/20lF2BhiCAM0fJGLw1ls4tNP0Q/fkcunb+AD//8eyHiiJwUAv/j/+s9eN3fuxfHjx/f4yfdWTa6fq5NgHOwiMMPQrhydM8sm00AwEavD9ewHoOzY/ScLyMRF+j6AequM7wWnIEJCT8MjQHustlExAW6/QCe44zYhOQMvh8giho5P10+uv0AgrERm4ikhB+EqFXAJjQbm33I1FpIMdgvs/eqstPu+UN2wSO9X9aN319Wm5gliq7tTFvqm970puR//8AP/ABe9KIX4fu+7/vwpS99Ca9+9au37b/z0EMP4cEHHxz5+vXr14ec8ZuFMYa1tTUAQK0200s/kZAJrK9uoOk56ITmi5HfCbB6I8Q8n9vlp9tdrm2G6LXb6Mmm8e8Zl+gFDNeuCcw3hteqTDYBAJdXewg2e+jAvBb9ToAb1xm8wPz3ZeLqM22wgKMjeyN/JyXQ64a4fl0gbI0elGWzi2ubIXob6h35q+88mTjcGs45nnjiCTSb5baLS1fb4KHZJiIu0Q0Yrl8XmKuP7qllswkAuHK1DWZYD3V2MNTDctuDphdytNc2sNSsodMfZDX1GLFnnhHG0YNls4leyLGh18EfrgYJuyFWXR/XXH+Pnm73uXRtE1E3QAeDQIPSQZB45ppZL6RsNqG5eLUD1ovQgdormJDo+mq/7DWqEZzTXHxmeC3CzRA3bgRYNpwrQHltYpbodDqFvs+q1X/Ws56FgwcP4umnnzY63QcPHoTnebh69erQ169evTq2L/yBBx7A/fffn/y53W7jxIkTOHjwIJaXl7ft+XUk5ODBg6jXzREpW1jvR6itSexfaBijrQDQdnwsLC/g0KGlXX663aXr9tDqelhaaRn/nnGBoBti5cAt2Dc3/O9eJpsAgNP9VSzLFpYWzZflDfhY3r+MQ/vnd/nJdhcuJNwNYN88sGRwqgH1fizv349DhrUqm11sul3Mxe/Ic7//LriuO+R4u56Hl7zkJTh06NAePuXOEnEBdx1YWXCwZNA8YFwg7IXYt390nwDKZxPj1mMDPpZWlnHoQLn3Cc31zQC1NWD/vuZQ60E94kDAsf+WA5hvmKsfgPLYxLXNALV1YP9yc6QFo+sFaC03cejQyp48215wquthyWNYWhg43bWIoxtyrByohk0Aam8UG8BKa3CeMiHhbwbYd+AWrBj2y7IihIRoO1hpSCzFn7vr+mgtzeHQoX3GnymjTcwaRRMGVjndFy5cwI0bN3D06FHj3zcaDbzkJS/BY489hte97nUAACEEHnvsMbznPe/J/b3NZtO4YPV6fdsNtFar7cjv3W1Yn4M73lhDq9c5pFez/rNOoi+ARqMOr2b+nI4nAV/CrZnXojQ2wQV84WK+1cxdC7fG4Hj2f9ZJhAEDRw1LTQ9ezRyFd2sMXi1/LcpiFwDQ5w6a8Tty7MQd+MA/+yg+/MD7IDiH63r4n/+3/y9Onjy514+5o/R5hAgellp1eKZJB64EXAkvZ58AymUTPmdgjodFw3p4dQanAmeHhjsMTq2GWn24dLoOD2ARXK+Oet18XSuTTXCof/fsOgBAoy4g3erYRMQFQulivtmEl8pO1uEBPIrPjvLbBKD2iggeVlJ7hSsl4HK4FdonAKAXMjB4WGgN7hb1hgAmvBtls4lZo+i67qnTvbm5iaeffjr58+nTp/Hkk0/iwIEDOHDgAB588EG88Y1vxJEjR3Dq1Cm8//3vx7Of/Wzce++9yc+8+tWvxutf//rEqb7//vvx1re+FT/4gz+Il770pfjoRz+KbrebqJkT24MfCaMYUBrHcSqhvGoSwEmjhNTKL4bTj9TM3ZWczK6mCordJtVZE1UQgZFSYsOPhspjX/emt+Blf+dVOH/mNGr7j+Lv/N+ev4dPuDuMUy4H1NzZKs0s95kSA2rkrEcVzg5Nnuii6zpq4kMF9kwA6EcMedcKp2Lj04J45GR2EohXsSkggFIuVwKtA+PQ988qrQOg7lk+4zgwn1a0r8ZduwzsqdP9+OOP45WvfGXyZ13i/da3vhW//du/jT//8z/HJz/5Sayvr+PYsWP44R/+YfzTf/pPh7Krp06dwvXr15M//9iP/RiuXbuGD37wg7hy5QruuusufP7znx8RVyNujryxHmk8B4hKviFGXMCPRK5yeZqy3xf6hoMxS1UOh3HjwtJUIQARcoGAyRFF4sNHb8Pho7fh4oaPcIzSe1kYp1yepuz7hMaPBISQxvXQ44CqwmbAUM8ZLcgr5GB1Ao66az5L1X2i/PuEJm8SiOs64KJaUw56oZJlze4VEtVaB0CthRDqLqWp6hg5G9lTp/sVr3jF2LEH//E//seJv+PMmTMjX3vPe94ztpycuHnavnmsRxq3ApHpgCmhm0nZXQfld7B8Zj4Y01TlcPCjyZ/RgVOJy7QfCYScY6lpVh32KjKLuBtyeBMcbqD8+4TGZxw5/lVlgnOadsCMQml6ZnkVbEIIiU7A0DS1XkA5m0KoijF3QjCzDARcjdNzM3tGVSrn0rT9yBiUAqrxbqTphmxk30yPkZsU1CX2lvLP7SG2nZAJ+EzkHo4atwKXaT/iiCZkd4E4IlvyQ3Iz4CMXhCz6cCg73ZBNdLAkZCVmlvtMDM0UzeK6DlgFFmK9H03cM52KvB+ACtzmZjXd6jjdIVNtOXlB7KrYRMDHr4MLB6JCc+z9SMBB/hlS8nxGghAS636ElmGiA1D+e1WW9X6EVkYnxnMcCFRvLWyEnG5iavoRR8D4ZKfbdcBLHpH1mYDA5JJRxyl/RLaIU1GVTPdmTuYqjQOAVaBc0o9ME9sHVCGrGXGBfsQntqFUpVdzUlbTgRqhVgV0725eUKoqPd1qFJZ5NBoAuK5yNMt+jmo2A4a8I8RxquNg9SOOfmhO8qh12IOH2iMiLtANR88R1wVExVoObIWcbmJqJmWuNF5cGlfmjSBgYkwseoAqEdzxx9kzIi7QK+BUqEz3Lj3UHsGFRC/iE6sflNBgiY0iphuOr4CoQiCmH/FC1UFAufcJzaSsphdXP4xrPysLAZushVGB2BwCJsC4yNWKUfeJagSlAIyIT6aRslpOd8DNe2fZ75dZeiGHb0h46ZaDqtiEzZDTTUzNpMyVxnFUZLrMG0HbjyYGH4DyR6ZV9QO1HABaAGdUOCxLVXqZ2/74Cgh1YUCpHaxJyuVpqnCJnJjVjAXESrxlJvixiGBetZTjVMQm2PiJKI7jxKJyu/hQe0TIBEI+/gypSsa/F3FIKY2B2ypUSaXpR/HEB4PTXZX90nbI6SamZlLmSuM5sfBJSQ8HKVWJ5KSMpoaV+HDox07FpJLqKrQcDMaFTV6LsvcyMy7QnZD195LLdHnXoqhyeVUukf6ErKYWECuzTWjyxoVpqrIOm8F4HQzPQanvE2l8xsdWggDVCMQASvsh777pOajE5AtNP0egVb8bVdgnbIecbmJqivTuAnEGC+WNTOeNQjJR9hE42qmYRFVaDoqMC1Pq/iV9OWICJlTp7Jj9wnFU+WyJX4/CyuVVqX7wo/FZTc9V4mFl3ic0eePCNI5T7oCtpu2P18Fw3eoIqQVMgAmZWxlTFZuQUsbCYdUW4dTkqbhX6d2wHXK6iakoKggEqBJBUeKLkxbAKeJ0O45TatGszYChVsCpqELLQZFxYUBcal/idQBURtM0azaN58b9aCXdJ4Digcrq9PmPz2pq4cky7xOavHFhmrIHbIFi94oqjcryIzF2/JMLB2EF9omACfQigVY9rw2lGpVBQByAyGnVop5ueyCnm5gKP1JzqSeVEQOpUuKSXqan6dP0Su5gFXUqtBhOWW0CKDYuDIgz3SUXi/IZh8DorNk0Zb8wTBOoVAJi5b9ETspqetrBKvG7AUweFwboQEy5bSIJYBc4Qyrga8JnHOOOELci+0Qv4vAjjmbNPC6sCoFrTT/i8COROzoNKHcyoyyQ001Mhc9iIYcCjqa6aJd3xmgwQQAnjeM4YCW9LQSMox8VU2aughhOkXFhQFwJUnLxk37IJ6r7uyXPak6jXF6FUVlFs5pclP8SGRRwur0KqPsr8cnxCu6astsEMH6GPVD+IL6mF3JwKcdqPzAuSh241vQjYVQuT1MBk7AecrqJqfAj1a9axNEEyj13th+xQuPCgHL3avqRKDS3HSi/GA4XcqJwmEardpf1/QCATsAmC8rFDlZZbcKPlGhYoYqYCvQoFqmWcp1ynx0an/GxvbtANcYs+kwUEhoEyrtPaKSU2AzHC7Q6joOIlXsdABXAHieN4jkOBMp9hmr6EYeU46vGqrAOtkNONzEV3ZBNbTRl3Qc6AS80LgyIM7wlLSXuR/riWKzloMyCH37EERUU13NjmyjrJVJKiXbA0JzgbHpuuefvFlUuB8qf9QeKVUs5jgOJ8pcSB2x87y6g3o+yBmw1/Wh8OXWaMr8bgK5+GB0LlabMQfw0SkQtv5y6CiKcms1gfJKnKqMFbYecbmIqNibM3M3ioJyHpB4XVnQtyhyRzRtjYaLsYjhFx4UBgOuWexxQkcujpswOVtERi8Cg+qGsgRggrpYSxaqlyrwOgArSTUJfpsu6ZwKTy6nTlN2xCJhAxPnYwG0VRm+GTGAz5LnK5UA1RDg16/1obD93me8SZYKcbqIwXEh0Q17oEq1Rl+nybQRK+GV8WWCaMkdk88ZY5KEVzMtI0XFhgFKg5SXu6VbK5cUExIDyOlhFRQaBQfVDmS9PPuMo6F+Veh2AYu0XnlPu6qAi5dSasgbx0/hMIOLjK8eqMHpzIKI2Qfuh5JVBgKpq6Ibjz1KnItUPtkNON1EYJXYiC1+iNWW8TE/rUJQ1IiulxIYfTReIKXFEtui4MEBlK2QJbULjx20HtYIj9cpoE9MolwPlr34Aimc1nRKLcGo6wWRns+zaD9NUxLgVGKkXsKLVD+W1CaBY25pXEe2HImKcVRgtWAbI6SYKE3KBSIhCl2iN4wCshNG3gInCDgUwmDtbtnKwkAv4TE7VcgCUMxADFB8XBqj+3VKP1GPF3/uyXpymUS4Hyl/9IETxthyJ8gakAFU+G/LJ+g9uycUnpwlguxXI5vXCyf3tnuOU2iYAoBswOBOkap2Si3Bq+vF42vHik04p79plg5xuojC67DFvfIMJFw7CEkami/TipSlriWDEJZgQqBWtF40po4MFFB8XBqhDssxZzc2geAACKGfrhR9flsa1oVy9fBGPf+1PcfXyxdJXPwR8/Iis9FqUvZTYZ3ziuDAgXUK7Sw+2y0xTEeO65c/mdUJWyCYEymsTALDmRxPb95IKwpLbRC9UYpzj8Fyn9KMFywA53URhtjLKxnUdMFG+jWAatVVARWTLOJOZxYGYIj3Macq2DoCq6Cg6LixNWS8Mbb94AMJB+QJSABDFe1+eaNijn/4UXvuyF+Fn3vQjeO3LXoR/95lPlbv6IeIIczI22bX4T3/0LxFOUS1hG7paapJjUfZAzDQVMWXP5gkhsekXcLpdlekuq00wLtDxGVr1ouJ6O/xAe0zbj9CYcMdygNK3XpQBcrqJwmzF6fYclDIyHTCB2hRet1fSUUARF1NXP5TVwQqYKDwuLE3JTAKAujRN08vsOE4pHSw25hJ09fJFfPjn3wsRO+ZCCDz0gftx7fKl0u0TGp+pmeXZ/cK0Fr/14Ptx8cKFvXjMXaHIuDBg0IZSVpvoTaXuj1Jn89T0i2ItB2UOzvUjAZ+JsePCNI5T3sA1oFqv1gtMDfJcB6ykY2nLBDndRGGYkFNldwF1mY5Y+TYBn/GpsrvqYuWU7pDcSiCmrA7WNOPC0pTxwuAzgYAL1GvF3pGyzp0dt2eeP/29xMnUCM5x5fyZUtoEoMrtTU6mcS0Ex/dOn9qtR9t1ilZL6TaUsp0dmvYUY0i1un9ZHYtxlSBpyt6a1Is4QiYKVY2VeR0AdZb6kUBzQgBiEIjZpQcjtgQ53URhIi4w7VmnMt3lu0wHbDRbMwlZwg1xXCYvD89BKVsO/Kj4uLA0ZbxM+xFHxMQUqt3OlgI4s44fcbg5YkAnTj4LbkYLwfU8HDlxZ+n2CU2e0KBxLVwPR47fuUtPtvtsBqywFkZZ1f2nbcnxHAcC5XWyAla8cqysNgEMepgnVYFoyniGanohh8/Gj04Dyh+IKQvkdBOFCZiYShgJiHuZRblUu7mQiLbQx1zGMqitZrrL2Hu0lbJHJ1arLhs+E1NdmtQooPIFYgIucveJw0dvwwf+2UfheiqD4XoePvDQR3DoyLHS7ROavD5/01q890O/hv2Hj+72I+4KUspC48LS31/WfSJkkzO7GscBhChnSw6whYkPJbQJoFgPc5qyrgOgKmKkxMT7pueqIEyZ16IM1Pb6AQh7CMdcIPPwHCfpPcrL+NiG6mNG4dJZTRlLBCM+naAcEPceldDBirjYgoXLUq7FtEKDZe3VDNj4PfN1b3oLXvZ3XoXzZ07jxJ0ncfjobTi/3i/lxWnSzPLsWrT235oEbN0pz51ZJ+JSzaaeohWlhMVBqpy6gIK7xnMdCCZK+X4A0/W3A+W0CSFUD3OrPrmfGyjvWFpNN2CFztKyjqUtG+R0E4WZdIE04bpAyFQksizGphS7BTx3uk/koHzlYP6UgnJAPGu1ZOsAqLWY+v1wHJSwvR1tn6E+xRg5Nx6pV0RYyhaklIXaUA4fvQ2Hj9429LWyBecA1X4RcIGVVj33e9JrsRkwtdeWKGCr8Znq3V1s5K9FljI6mgFXFTHFhdTKPSJqmv52oJw20Y84+qHAYrOY013WsbSadT8q1Kbl6XejhDZRJqi8nCiElBJhwT7mfmqGteozKdchqcdkTetsSpSvp3vrjmb5xHCmFdcD4gBEyaL0unR2msujrogp0z7B9Ti9aVtyUM7Mjc84Ii4Ll1Q7jhoFVMYARNFxYWnK9G5o/Gg6O3d1Nq+ENsGFRC/ihW2ijO1qgLo/BlwUF9cr6VhaQN0NNsPJ/dyAFhksp02UCXK6iUJwIcHk5Avkv/y/LuLv/NbX8F9OrwKIN4KSCYixeEzW1D3dKF9k2o+25miWcWZ5EE0vrue6Tumy/hGXYNOOkSthryYTah22EpQqo+aBHwkIUbySwYv1QMp4iSw6LkxT1hLazYChPsX7UWbHQpXay8Lik0D5AraAUi6XUhaufvAclDbT3Y84/KjY6DTXQekSXGWEnG6iECq7q8rFx/FfTq9CSOC/Xu0AiOdTl+zixIQsJBL15MUN/PmldvJnp2RiUeImnApRMpVNISSiLWgeuE75+tuZEGB8Oqfbc8tXGqdLo6dvySmpkjvjE8+PNG5S/bBzz7RXTKt54DnlC84ByiZqUziZZXYsph05WVqbiPhUzSTqDC3fOgBqXnlUYIQcoO6XEqo6iJhdyOkmCsGTPubx2+G59T4AJQgCxOrlslwZ3iJZqM2A4d3/5jt4zx99J3GqyjaLOBJKUG7a8lk9a7VMJYIqq7mVtShff7tyNqcLQJSxV1O3oWylEiQsYbnk1H3+rlNaheZpxoUB5QvYatRElOLfrx2LEm0TCdOOnCxjwBaYvmWtjC1amnSrZlHKdK8qI+R0E4Uo0sfsM47L7QAA0I2dbp3BKpOiYpEs1Jm1PgIu0Is4utEgAFGmDBbjstBM0XNrfbz/3/83/OUzmwBUtUTZ5klGvPh81TQ6AFGm/nZdXj7txal0TrduQ5lSA8x1HPASpiu6IZuqh9l1ULo+f0BlatsBQ3OKtfBKqO7Pt1gpBZQriK8JplTULO3Ehykrxlw3bmEs2T4BABt+NPWdomz7Zdkgp5soRJGszYV1H/p172UidGW6Q0Z8cvnT2bVe8r+7wSAAUaaIrM5oTjoU/ug7l/Gfn76BP/qLywCU2mjp+vwLroWUwyPCtGNRtrWQsrgiMTDo1SxTlF4H2KZVYy/jZXorDpYS4SyXTQDq3zZksnAZMaCzmjv4UHsAE0JVB23F6S7ThhnTCaZzsMqq/RBG04lPeiWspgTUXWG9H6E1hSApUM53o0yQ000UggkJOOMvkGfX+sn/1uXlmjJtBEXKn4bWQme6gVJdnIoKRZ1ZVWvRiYMPZSwbZUKC8clr8f989L/iRz/xOPzYJlzHgSiZMNBWAkueW84pB1uhjNUPLG5FmTZrA5Tr3QBURjPkxWdTA+r9KJtCs6qUml4HAyhfIAYANgM+VSDGK6H2g5QSIZ9OnLWMGjHAIDhXpJ9b48QJDWJ2IaebKAQTApPe5aHsbsbpLtMhGfDJGc1zKac7XWpfpouTzmhOyuTpAEQvcTTLVzZaRFyvH3F8/ewarnYCXNjwAZRXQGwSQkr86fduYL0fJV8rmwjMVi/EnuNAoFyXSN2KQhMfgJApcaRpSu0dXRFTIpuItjh6U43K2qGH2iMiLtCP+FTK5aVsyRESXE4XnHNjsd4y3TEBtWeyqYNSspR9/mWCnG6iEEXUIc8ZsrtAHH0r0cHQDydHYk1Z/7JdnIoEECIucHFDi+sxALrs2CnVIVkku3vWEIhx9Pi0ktgEoNZi0jXhS6du4H1//N/w61/53tDXy2YT0+fwyjw+TUztYEmUK/gADIQTp2k7KGMJ7VZHb8qSrQMwqH6o16qd4d2K+GRZpxxsJShV1paDMkFON1GIIlmbvPJyifJk8or0JgopExV3AOhGytn04h7FsqxFkUDMxQ0/yV6mqx/KWEo86WxMV4Lo96OMl+l+gdnt//2qEtW70vaTrzlOuYJzQUEV3i+duoGHHnsKYSykVMbqh2iLDhZQruADUGzfzFJWB6vI6M0sbgmV3CMuwIScStG+lFNAeDxmcRpHs4T7JbC1oJTrOohKVE1ZRsjpJgoRcjFWGElKmcnkseR/OyjPZYEVGJN1tRMMKZEOZ7rLk80rMurqTE71A1Cuy3TEBTDh8wy9H3EgxolHZZVpLYqoz56JAxBlDsQUdbr/P3/6Pfzrv7iC/+vSBoDyjk8r4mCZ+tjLtA4AtnQp1iW0ZVoLFaicPghTttGbgJr4MO30izJOAVH3Kwl3inXwSlhmD2gdJWfKipjyjSAtG+R0E4UIJ1wgN3yGdjBwtNMOVplKXoqMyUo7V8BwVrNMjoUf8YkRaVN2V1OWdQCKZXdNlSBlvDD40WTNg7Orw33+mhItQzyDePw6hEzgYtzf3wl0+0XcclCS4BxQrFLqejfEa/75N/G/felU8rUyZjUDNj6AbUKX0Jbp/VA2Mf0Hckp0n9BsRf/B02XVJdsnpg0+OCWdcsC2IKbpOg4iVq51AIDNgOHaZrDXj7EtkNNNFMJnfOxGqDNXc3VlUv1IJJugW6LIdJHRUGdSjiaAoTndZbo4FcnkmfqYNWU6JItkd8093U6pshVcSEQT1oIJifNxn3/aJsokmqVUeCfbxPmNfrIf6LUoaynxJB4/v44bvQj/5cxa8rUyjk/zo/FnKaAumU9cWB+coSWc+FCkOsiE5zqlE4vayv2ojFVSN6PGXqb9EsCWAktlumunudENcaVNTjdRIVR0Pv/vtUPxvEOLydd0Nk/1mZRjQywyGupcbqa7XCW00zrdPhPJZy/baItgQnZXtV+UX92/yGioy20/uVAMOd2Ok/Q1207RjI0epwek9stEjXdHH3FXKSIqp/eKdGtSmaqkNP1o8r75v37pFN75r/4CXz29CqCcEx+KjN404ZawhDYqoAmSxSthy8HNfJYy3ScAIOJ8aiFO13VKJdariUpk5+R0ExMpIh6mHc3nHFyAnoTSS80iLktkOuJiYm+ivjweXmwASPd0qwxWGRwsncmbWEacyfoPSszLM9pCiMlZzWc2Q/Sj0T5/TVkuDEXGnKQDMQETSXajTL2aRWfYmwIxjuOUTrW7SPuFqc+/bFnNovvmf73aAQBcilsP3BKW0Ppssk1IKfHxb53D//Hfn0m+5jrOlkpvZ5kirVpZ9B2kTPvEVjPdaoxcedYBUEGpacrsgXIKswLq/ZBbKYuZQcjpJibChZwoHqYv0nfsn8N8owZgOHNTlhLBaVTcn3/rEoBBeXmZMlhFMnkbfoT1/qBPFUivhYOSJDURFRDXGwk+ZHuZS7MWk8ecZNsv+qmKmJspL5wliqrwnsmZ+ACU6+JUqP0izvqnK2LKltWMuIxVqse0X3CB8+vK2d7MVIKUybEIosmaB6dXe/itr53Fr37x6eRrA82DnX7C3aNfIABhQqJc+8RWxyyqFq1tf5w9pciemaWMrUmAej/KAjndxES0ouR48TB1kb5j/zzmGx6A4R5FXpLI9CSnwI84rnRU78lfO6xK7dOZbqAcG2KRTJ6+RB9ebGAxCcQMnPDSZDW1uJ5XLLsLZMuqy3NxKjLm5Oxqdi0G89tLYxOi2LiXM6vpTDcb+rsyZTUnOVgiM/2iF6aDc+U4OwBlF4yPP0svbPjJOdPLqvuXZB1EAe0HAPhe/H5shjwViCmfY9EPJ/f5f/Hp67jvn38Tj59fH/p6qfaJLbYcAOVaB0AJkk7tdLvlazkA1PlRFsjpJiaixcPyNgAuZBKZv2P/HBbqyunW2TzPcSBQjkNyUiRWz+debtZw274WgOzM8nIcDizO2BSrfphHU5kEzl++AqB8ff5cCqxeuYTHv/anuHr54sj36LVYTAJSAwerTGWjRUZDZbP+6UqQMlXECImxl6bsmMV09UOZyiWFkLh08QL+4v/8L8Z3AwCutAMEqX/7tE2USXwy4uPPUmC4+mEkEFOO1yPeM8drPwDDmgf9aDiIX5Y9s0j7HgD8/757Dde6Ib6WEhrUP18WijrdV9p+MvUBKFfAFigelMriolxivcCgfa8skNNNTITp8vKcDeByW0XmG56Dw0vNkUy346jLQhk2gkmHQrrMfiGzDkB5FJqjApk87VzxG+dw7ZwaA/Sz7/opPPrpT5Wqz58Jif/wuT/A615+F37mTT+C177sRXj0058a+h6d0XzBYdVy0MtkusuyFkVEr87kCA3qDFYZsppFsrM3etHQ3jA8s7w85ZL//H//3/HmV/x1/OxPvMH4bgCjLQe9VPWDEOVxLLQQ59jpF6nqh2wbShnODqBY9RwwvBabSRtKueZTR1yATRCfBIDT8TsyGpzb0cfbVYqM02Nc4Cc+/SR+/A++jSDuUfNKFLAFirWsmXBdpWhfln0CGKxFWSCnm5gI4yqqnLcZ6kv0iZU5eK6TON2JaneJNoJJvVdDve1Jxj+V1UQ5shXaJoqsxbf/j88AobowyHoLH37gfbhx9VJpDsmz587htz70foj4H1YIgQ8/8L6hrJ5ei6TlID3HHg7Ckig0swkqvG0/wmovAgDctqwqQbrhoCKmLArNrEjwYTWT8c8EYsqQybtw4QL+h3f9zNh3A8hvvyjT2QFMJ8QJDPd0A+VxNIsKDQ5rHsSBGJRrPrVaC4Gam38d50ImYrXZKqmyrENRkcELGz5WexE2Q471vjpLyja7vUjLGgCs9yP85ldPJwmOMiraa3HWskBONzGRSX3M51KOJoBBeXk6W1GSy/Sk3sR0SfVCJvgAlKd/dxpBOXnjAhDGl6f6HATnuHzuTGmymk8//TRk5lAQnOP8mdMAlEpvts8/7WApAbFyHCrhBMETbRO3LjZwy4JS9y9jRUyR90M7FPX4YpUVUitDueRTTz2VONya9LuhyQtAlOnsAAraRTrTnTk7ymATwMDRHOd0CykzmgcDwcUyCalFBXQwLrf9JDA7dHaUqKyax87iRPFJgw5G2aYc6Ja1cYKkAPDod67gE49fwKeeUEHMMukGaco0Lgwgp5sowCSDT4uoARiUl6dVu6X9PVhF+myStTgwN1JmD5Snf3eSk8iFxPkN5VQ4G5cHTndjDq7n4cSdJ0uT1Txx5/fByWQp9GcEgPNrPiRUn//xfSowlb5MeyVSaPbZ+IuCqf2ijBUxRWasno0vj889GAdiorRNlEPz4DnPeQ7cMe+GJttyMHC6USqnO+LjK0GklJme7mGbKJO6v5QYW0r8TCeAnxpxMaiIKZ9NTCq1z7eJsgViJlc/nF41CS6W5wwFBm0ok9bi6etdAEgy/kD5FO0ZF6XZ9wByuokCTDL4s5lMd7a8XAmf2B99myT+khZGun1lDgtasTviSUa3LP27TEg4Y9yKy20fEZdoei4+8MAHAKZET5zWAj7w0Edw+OhtpclqHjxyFP/DB38Vrqfs3vW85DMC6aBUytEc6stzCpUj24DPOGpe/rGi3487U5Ug3ah8FTF+AUEgvRYv0NUPwaBstCyaB8ePH8f/+hsPw3XN74ZGZ69W5rLjJtXZUYZAJQAEEypBVnsROik76JU0qzlNJYhmaI59iXq6i6zF6dzqh/KUVav7VZGWA0Off+mmHEwWJAUGdlHmyRdly3TX9voBiNkn4nxsdF4rdo+Wlw+ikLIEl2kt/jJXMzsVWhjJgepv159XSCUQ0qp7cFGOQzJkYqxNJH3++1t4/Zvfgj9f/jP8u6fa+Ic/9U/wunt/AP2IQzBRiohsP+J4zT/4cfy9+16D82dO48SdJ4ecijOGPv9uyBOdhDJlK3wmMK4NTTtXd+yfS9SqeyXMahaZsaovj0pc7/Jwn3+JhIH+0T9+K5ae+zfA1y6PvBsAsBkw3Ij7/F9w6xK+dnYtCcQk1Q8lsAlAnQPjenezgnLpy3SZbKLIfpdtOci2X5TFsZh2LYYy3W65AjFFxiyeNrUcpKYcTGiDtoIi/6YiVRXTLan2AzCYlFMWyOkmJqIu0uadrBdyPLMZAgBuz2S6dbmk4zjxqKydf9adZNCHZn5tdEbz2HILzZoLKSUcqHKfbsiV0+2Wo0TQLywop1oODq7sA9AGGspGtFCUKMFaBLH4y6Gjt404FMBw+4XO7gLKWV9o1OCk5thPimzPMroMrKhd6JEv3RJmNSdpP/iM43Jb9fm/4IjKdPejQW+nXosyEHGJg0eO4cTzv8/49/rieGihgUOLw33+gNbB2Pnn3A360fh5zHpE1p3753BmrT/SvzshUW4NW8t0DwIQZZkCAqhM3qRtP2+MXJnKqpnubZ/QfjE0ZjGd6ebFnHYbKPJ+XO0EiXr7yH5ZkrMDUOrlZbgza6i8nJjIuKyNznKvzNWwr1UHMFperrH9kIz4+J6jrKCc4zgjfd1lOST9aLzKqHY079TVD9n+3Xg8lO02AcQOVhFH88AcmjUX+luH1gL2R6f1aMG8TB4TMtkv7kxpHqR7ustQEVNE+8HU5w+kZxGXp/ph0oVJZ/HuPJBqyRkZn2a3TQDKYfDZ+H0zqX44okYL+kwkn90rkeBikdFQ2i6acWVZWvOgLFNAAMCP+NgAncwRlAMGM8vLUFatJl84YwPP17phZsxipiKmBOsAqL1/UujAlPEHAJTkXqUJmCiFfWvI6SYmMi5rkxVRA4CF+ujFCbD/4qR6hvLFX7K97QBSY8PSEVn7bwsBH19GnM10m6ofylA2KoQac5LnYKUj83fun4PjOIljkVXttv2gnKRIfLntgwmJZs3F4aXmYB0yl2nbs5pqnNH4ubtnUn3+Dc9J1iyt0MxLUgkyyakw9fmXsZQ4KZ8dtxarw33+wGAt9OQL2/dMQPW2T5xLHTsVf+1WrXlQriC+ZtIY0vV+hA1/kN322SDz55bIJor0ZJ/OTjlI3avKcJ/QBAU0QdKCckNVII6DkNl/x9T4UUnKe2LI6SbGIuX4rE1aOEyTdbA0tl+cJmUZjE53kunWYlH2Z7qLlBGne3cBU6ZbOayWLwUiIcAFci/S1+PIvOsgyWjOZ8TUdJTe+rWYMPomsYmVObipKpCyOVhFehMTR/PAPBzHwWLWJrRYlOVrAcR9zGMidOm9QttEGedTa3XmsWuxNlC0105pNxquDrL9/QAmOxUdP9Xnf1hl/XtR+WwCAPrh+ACEdq4OxSMW9c8AsbNZEkHSaQXlgEEgpiwTcjSTAjHAcJ+/bk0CyqVoD2BogkEZ2FOn+ytf+Qpe+9rX4tixY3AcB48++mjyd1EU4ed+7ufwAz/wA1hYWMCxY8fwEz/xE7h06dLY3/nLv/zLSYmK/r/nP//5O/xJysskxe5sSTUw6mBpbN8HGB+v2J0EIMasRRnKwXQZcd6hkBZGyhPX033+tl+cdB9Z3kVa28Sx5RYacZnkQj3bclCOKL12NvP2imxQaiETkAKQ9LfbjBZ+GZfRzAalEoG9WLla9zGX4RLpT+hv147mnQfMmW4HTimCD1EcrMx7P/xo0Od/8sDcyPvh6pYcy98PKWUsKDe5PenQQgO3Luk+//Q+UY4pIFwHYgpUxTzn0ALqnq6IKV9ZdRGnW1eC6OVKvxtlmJCjmaQJAowGIJLWpJLoBgGDvWJSK4pN7KnT3e128eIXvxgPP/zwyN/1ej18+9vfxi/+4i/i29/+Nv7Nv/k3+O53v4sf+ZEfmfh7X/jCF+Ly5cvJ/331q1/dicevBJOyNmNLqkvW082EBBzzZ4i4wMWN4ZJqAENq1cCwyqatKJvIV+HVNnHLfB2LTVVCXN7qB1VSnTeb+szY6odyReknqfKns7vA6LsBlGvKwdhKkFTLATD6fniOA1GCUSmq/SI/a8OExPl1Jah355C6f3oEjiyFgzWp/eLceh8SwL5WDStzdUPAFqWwCe1ojg/EDLQfskFKoDxz7FUgJj+ADQycq5MH5pP3Y7NkAVtgchsKMFiL77tlAcBotVgZ1kFrgoyriAFGne60TZQl0110drtN7Kl6+X333Yf77rvP+Hf79u3DF77whaGv/eZv/iZe+tKX4ty5c7j99ttzf2+tVsORI0e29VmrCuMqimqKNKX7VY1ORTQ8d9b2jaAfcbg5me6LGz64BObqLm5dHJSBZUuJdabbZpXN4oGYVPDBIJBUBgXayWsxyOJpTHPsy5DBmtR+ke5jBvIrYixfBjChAijj+/yH7SIrIOY4DgSk/dVBcaVUPWctLm2oPv9WzcWtS80kSDc8Ps1BaHujPwZBqbysjVYuv2P/fI4Ip2N9wBYYXKQb9fycj3YoVJ//sAYGoOdTW/5yIBW0deu533M2pWi/2Khhw2cjYxZtD9gCGKuNotF28cIjS3jqene0DcX+ZZi4ZwLAWi/Ehs/gAJire+hFPA5UNuGVbLTguOo5G7Gqp3tjYwOO42BlZWXs9z311FM4duwYnvWsZ+HHf/zHce7cud15wBIyLmtzoxehFw33qwLmy3QZ+kzG9aGle9vT6pt55eU2H5JJT3fOPng241wB6VLijGiW5TfIiAtIIFdx1RSUGtjEoM+/DP3tTBRrvxhxuqPyBWLG8cxmiH6seH98XwvA6Psx0DywfS0m9Pmn9grXcYzVD25JVLsjLjDun3NQZq/fj2Fn09Xq/pbbRBQH8sdrggwmPmSDD0B8n7B9w0QxpyKd6c7uE2Uqq56mz/+Fh83ierbvl4DaMxmf1HKg3o+jy03sn1MBG70W6RGktjMISpXH6bZmTrfv+/i5n/s5vPnNb8by8nLu99199934xCc+gec973m4fPkyHnzwQfzQD/0QvvOd72Bpacn4M0EQIAiC5M/tdhuA6iuPomjbPkMURWCMbevv3Gn8IEQURnCEN5J1+d41tU5Hl5rwwMHjIaJNV73sIZcIggA1z4XgTP0uiz57lp4fAIKBs9FY1ekbmwCA21da4GzwGedqarPY9ENwFkEKDhZxBGEIDzUrbaIfhBCMQXBm/Pszq10AwO37mslaNF1lPL2QgUWhyuQxhjDc3ndst/GDEJKzoX/zNLp398RyI/meeW0TQZR8jbP4/Wiov7PRLjZ7ASSPwJk38ndtn2E1vjAdX6qDswiteJ/YDHiyDpIz9PoBoqgx8jtswffV+5FnE6evdwAAty034Ui1b47sE1KCRRH8MMR8fErbaBP9IEIQhlis1cENgjjfu672zTvifbPlKZvoBqn14xH80LHqc5vwgwl2cWN439T7RKcfqJ+RElEUqX3CapsIEYUh0HDAWV7WP16L5QaaBpuQnCEIYNXnNtHz1f0KhvsVEPf5d9Td9MRyHXNxdUDHD5J9gmubqNt7dkgp0fMDOELm2sSpeN88tFDHwflBG4q2CcEYgiBEFI2ePzbRDyKEUQDUG8Y9EwBOXVNrccf+OVzvhgAGNgHOEEkJPwhR85S92GgTgHo/wjCC5wCMzfZdseizWeF0R1GEf/SP/hGklPjt3/7tsd+bLld/0YtehLvvvht33HEHPvvZz+Ltb3+78WceeughPPjggyNfv379+pAzfrMwxrC2tgZAlcDbwI1uCL/TRgfNkb/7q0vrAIDbFj101leTr6fH3Fy9fgPLTQ9hn2E98nCtObsvzTiklFhf3YCQEp1o9N/u1NV1AMCRlhxai5pQn3d9s4fO+ioYl+gFDNeuCcw3PDttohPA73SMNgEAp+OL9KF6lKyFiCPzXAI3btxAs+bC7wRYvRFins8Zf48N3Gj76Lc30ZGjaxFykQgj3eL66KyrIEVNqv+/1t5M1sfvBLhxg8PxlbNppV3c6CDsRujI3sjf/fdrKjJ/cL4G3ttApweIvlqHfsTRXruhRp10Q6w5fVzz/F199u3kxoYPv7OZ+35817BvNqDWYjVlE71OgBvXBXicybDRJtp+hO7GBuZZE77hLv203jfnoD63ry6Q3ZAl6xD0GdYDD9ea5iCfLVxf6yHo9HLtQgcgDjfUZ284as9ca3fQWVf/3v1OgBs3BETPXptY60fotdvoC3NgjQmJCxvq/T/kBWgHyvHYDAbnSeAz8K6Dawt2jxO6vpl/vwKAp1fVOiw3XXhBB01HrcWN9TY66+qF0jYh+/baBBcSmxvrcOGgE5id5u9e3AAAHF+qwQnUGbPph5kzNEIjau3OQ+8QG/3xeyYA/NUV9e9727yDzb66b99Y20BnWcCPOEIu8cw1gXrsdNtoEwCw2ovQb2+g5rnYlD1ca8yu/9DpdAp938yvvna4z549i//8n//z2Cy3iZWVFTz3uc/F008/nfs9DzzwAO6///7kz+12GydOnMDBgwen/u+NQ0dCDh48iHo9v4dnlgjrfbQ2PSytjG5kz4TKyJ51aBlLKweG/q7hPY2QS7hzy1habiJqhGjWPRw6dMuuPPd2E3GB5oaDmuskfYdpLvUuAwCec+TA0FqsLPUArCFy6lhaOQDGBYJuiJUDt2DfXN1Km+i6PbR6NaNNCClxcVO9a88/fmvyPfNCAjgFAHDn92Fpvo6242NheQGHDpkrUGxgXXYw168b1+LUjR4kVOnw7UcOJSXoK4ubANYRuY3EVjbgY9/+fTgUt2nYaBff63lYrDEsLYxepq9dfgaAKpHUn7m2wAF8DxJAbWEF8w0P/VqAucUmDh1a2b0H32bWRAdzQR1L+8yXvyu+ujx+X2rf3LfYBtAG94ZtYnn/fhxaUhdyG21CdAI0N1wsG94PALjUVdNInnt0P5ZWDuBQIwJwBn0msbBvP1zHAWuEqHsuDh06uItPvv1cjjawwJpYWjbvmxc6et88hKWVOexbWAOwCV5rDdvEygoOxb/DRpvgbR/NtmvcMwFVOqv1UU4euzXO9J5Fn8lkHYSvPvcttxyEa3Hpad/rodU1368A4JlnrgMATh5YwNLKASwv3ADQhai3MmeH3TbhRxyNDQdzNTdpJ8hyJVD3ze87tIxDB/YDOI8eQ7IObfhYWlnCoVhkzVZEJ0Cznb9nAsCl3lUAwHOOrOBybw1AH7w+h6WVA6hHHJshx8qBA4mWjo02AQDheh+tjoua52BxebbvBc2mOXCWZaadbu1wP/XUU/jiF7+IW26Z3mHb3NzEqVOn8Ja3vCX3e5rNpnHB6vX6thtorVbbkd+7Y3gR3FoNXm30ec9tqCzenQcWRv5+vqGy275w4NXqqNcB6Tqo1Wq5/a+zDAOHdGtoNDx4tdFD4VyswHvy4OLQWiw2lQPSZxJerQ7Hk4Av4cZ2ANhnE9J14eXYxDNtPxkHc/zAYtKj5QFo1Vz4TCCIbaJW45BezZrPbYI5HuqNunEtzrfVQXfn/nnU6gNHNGsTAODVGZzMWthkF1JKMHhoNlzzWmyoDGZ6r1jwarEQEBBIF0u1Oup1CeF4VnzmPJjjoVE32wQw2DfTe8ViU/3/Xsom3BqDa7FNAIDjsdzzAwDOxvvmsw4uwavVsTw/2FsD4WKxWYN+dTyvZrWDxeCi0WhM3DdPHFiC5zrJPtGLMjZRs9sm4LLc8wMAzm2ooJTeN5fm1L+5zwSkW0PNddCoq7FIbq2WZPNsRHo1ePX8tdD75slb1L65FO8TfYYhm7D57ACAQDiA66HeqBnvVwBwZl3tm886uIilOXVf70V8aB3g2n12AGrPHPd+AMCZNbVvft/BJTxxUVXI+FzZRA0ewKP43j1w8WyzCQAD/8NzUavN9rMXfbY93a02Nzfx5JNP4sknnwQAnD59Gk8++STOnTuHKIrwD/7BP8Djjz+OP/iDPwDnHFeuXMGVK1cQhmHyO1796lfjN3/zN5M//+zP/iy+/OUv48yZM/ja176G17/+9fA8D29+85t3++OVgnGiQIlgVkqZWbNQH1bjtX1UVpSIh41e+tp+hLW+crDSM7oBs3q5kHKoBN82/AKCcidWWiPiFyMiMCUQSAp4vsjH4P0YbxMAIKXdqt3TzugGlODLnB6BEwxE5WxXXg0mqPAOxoUN9s2sernGdmEgNkZOeL0fJQq8t68ou2h4TrJ2vdT4NCntF9jzx8ym1sJht6/MJd9jEhoEAMu3TDAhMe5fUq+FFpTT4noA0E/U/csxx37SmKxExf1AZrRgemY5HOuF1JLzY8xapFXcF5pqHQImknGCakKO3esAqD1z3KfohRxXOjrhNSqup0U4bbcJAAgZHyPNaid7mul+/PHH8cpXvjL5sy7xfutb34pf/uVfxh//8R8DAO66666hn/viF7+IV7ziFQCAU6dO4fr168nfXbhwAW9+85tx48YNHDp0CC9/+cvxjW98A4cOHdrZD1NS8g6FiAtcivuu7tg/2pNbtlFZ40ZDnYsv0YcWGsnlWZNVqgYGFwZbGedUDNSIDYGYRi1RvAfKoUDrR+PWYtTRBMzq/o5jtwKtHgPUrJnjuGcMo9MAtRbdkGeCUipzbmNFDDBehbcfcVyNL0ymMYvDI/XKcZnO+2fUIoNHl5toxY6V4zhYqHtoB2xkVBYXEnVLNZL0xIeaO+n9MIzeDId72W0PPoSM59oEMLpXNGou6p5yqLohw1KrFs+xF9a/H32WP8MeSK3Ffj1a0DQFxH5Fe8bHTzkImcCFDXWenjwwn8xuB4BuxLHPc+Mgvt3rAIzfM4FBMH//XB0rc3UsNof3CdeN90vLbQIYH6i0lT11ul/xileMlbUvInl/5syZoT9/+tOfvtnHIlLkzU5Mz6U+ZOjhNM4YFcLayDTj+bN385wrIOeQtDxCH0Tjsrv5a5G1CcdxEDF714ELiWhMAOLs6ninu5vJato8Um9cJQgTEufXzQG6bADCSzlYtbyZdDOMmGQT8fuxMlfDytygHK2sl+mACbg5uYrBvjkaiBl2uu3P3DAhwXj+bOozq6NBKZNN2B6cA+KL9BivIsl07x9ei/U+QzcdnCvBHPt+yHPPUi5kEtA/eUA73YaZ5bDfJrjE2NGb59b7EFLZwcGFBhzHQdNzEXCBXsixr1VX86ltLwOBCszm7ZkAcHpV28TwaMHNYPBuoAQBW0Cthec6ViepstjbDEPsCnlZmzM5c6k1OhKZlJe7ytG0dSMYF30s4mgOzSJ27N0QizoVxrWoZx0sWF1ermYQw3hpklImEek7M07FwCYGGSzPsTtKn5QHGhzlSxt+kgU/vDSsnTFfH75EOo4qn7V1KdQ6ILdkNHGuDI4mUL7LtL40mRisRU77RTLH3rG6NQkYzKbOLS83tByYZpar32XvngkA/pjsrpTSmPXX7WrdYDgQY3PwmsfVQXk2cbntI+QSTc/FkXjfNFVJlaGsetI9IJ3x1/fNhWa5gviaSfPKs5Ugyb1qqF3N3rt2mqCEmW5yuolcpJQIc4xeR2CzPcyaJKsZOxZeXDZqa+aGCYG8R9fO1e2mkur6aK+mlPZeFlQZcb5TcTYnewWkHQtlEzr4YGt/O+P5LQervQiboepHOrGSye7qy3QwHIix+TKtK0Fcg10kve0rcyN/P9KP5irNA5v3iWl724H0xSndhmL/ZXrcBTLJdBtaDoBh7QebbQIAIiHAeH757JnVUUdTT8lInx2e41jfkjPOJq53Q3RDDtcBTuxLOd3ZdrUSlNCq6iDkroXu5759/1zyPdkzFFABCJvPDmC89gMwqH44eWDUJjZDfcdU75ntTHI0T2cCt9ngg8bybUJVElrajjoOcrqJXLiQYFLCZPN5WTxNtkfR0QJilm4E4y6/05RUA7pEcJsfcJcY51Tk9atqBoGYQSmxsLjUXgUgzKWSOhp9bLk10udsqn6wvb993GUneT8OjKkESWU1ba+I4XKy5oGptx0Y3ic8yy/TUkqEY4QG8zLd2RJaz7G7SgoY357U8Rlu9JQQ51CfvyHT7TpOIhxlIzq7OykQc9u+FhqpfXM+42C5WlzPZpvQ50dun/+woBwwsInNtE24jvVl1ZP6mE8b2i+ylXOu66jqB4ttQu+ZYzPd8VoMWg5ytB8sXgdAnX2qkrBcbmq5Pg2xrSSlkoYNYJyjCYyWl9uuqBgwYcziCSlxfn2gqplFb4g+G4i+2NzTrcokzYeCrn7Y1xruV9WMHpKwuvohGiP+kvd+XL18Eaf+4tsATJdpO9cBGJ+pMJXOahYygRjXcgeLZZyKq5cv4vGv/SmuXr4IYGAXeSXV3cxluhQtB4b3I2QCl9qqzz8bgDBpP9juYI0PSqlL9K2Lw0KceVlNm9X9x7XkAObedsBcVg3Ync3T58fkoFSqt71pLi+3+ewAxms/AHmaB9ngnN3VlMDg/MizCcbFYDyt7unOtF5obF4HYBCUKlume6bndBN7i1IbF/DcUTM5t160vDx1cYK9F6cgpw/tSjtAyCXqnoOjy62Rvx8adxJxLDZrcQ+WnRenrFORZlxpOTB6cVJZTWHtxUmPvjFpGpic7kc//Sl8+OffC1FrAe/5NJhQ7RuNmqtKBC3OVozXPNCK9uMy3WnBRXuDUoxLSKk+R/LvLQRc18UDD30UZ9eeBcAkHjYoJdbK7TbvE8B4RfvzG0oYabHh4Zb54QBdvoNlp00AWwtKmUaGKQdrBx5wlxi05EzI7uboYGRLaG29TwBxAHtM1n8gmDVYi0WDkJrtFTGAul+5OesgpEzswlRentYDsX2MnA7EtHKmgFzY8MGFxFx9oI+SDVwD5RBcnBSUshXKdBO55M1O7PgMq3E53O0r453uslyc8vpskrnU++aMh2ej5iY/l1bjtbWUmImBU5FlnHMFmBXtbc9q5nE206969fLFxAFD5Cffd+bCBQD2l8aNU1wdzN01aR6M9nTbLAKjgw9D/94AhBD48EMfTvaRY/uGA3T64iQB9CM9d3a8jc06jMtcRfszq4MAXTZotWAQBgLsztyMy07rLF62/ULbRD8aVEl5rmO5+GR+Sw4wOpdaY3I2Absdi3HvtpTS2OefrRYD7NdGAcb3MV/tBMnf32bo8x/KdFtcTQmkkhqT3g+joNxwebntgZhxY3pthpxuIpc8oz8bZ7kPLjQSsZcs2fJyjY0XJynlGKd7vKMJjJYJ2tyXN+7CN7HlQGfzSlRKnMdA80CtxfnT30scMMiB433q9FkAgAu7+9sDJozK5Rt+hLV+foDOlMGSsHeOvX4/hv69Y+S+IwCAEyutkb2kFVc7ABiaWa6CXHYuRiTy2y9MCtWabP8uYH/mZty82fzs7uBs7UfpbJ7de+a4i/TZHHX/vEy3rfslMN4pWutHaAcMDoarCbWDFXCR3CFs10YB1OfJmxCZCMqtzA29Q6Z7lXo3dvZZd5JxU0AAc2+7aYxcGQQXIz6+z99WyOkmcskrn03UunOy3MDgwtDNZiss3Aj4mOjj2Qkq7oChl9nmTDeXcHIymnn9qhpTebnNpcQh48aVCJnAxY3hudQnTj4LbrqkMoznNR++DYD9/e1+JMzvR5zRPLzYSC7OabKBGI2tNsGEBKQz+u8NwLnldgDm3nbHcVLCWfoSCatHZY0TDzPNYtakS+01qqd7hx50F/BZ/jxmU0YTABqek6zdZqZv1eb3I68lpxsyXN0MAYyuxUJGcBEAHDjW7peAugPkORX6/Ti23EKrNtg3F1LtaokOhuVnxyRxvdOro4JyQOqOmRJSk5Yr2o+bAgLAXGYf20TEVbsaAOtbk4DxE4NshpxuIpe8rOakjCYwrrx8mx5uF4kK9TFPXotuOoNlaSqPCQk4o8+u5lKbRwBpsmq8rmP3PMm87NWFuF91vu7h4EIDAHD46G34wD/7KFwvvjRFaq3m9t0CQF+m7VwLISRCbtY8mLbPH7B7jn3IBBxn9N/b9Tz89fv+EQBzmT1gDkrZLCBWpM9/XKa7DFVSmn5ofj8YFzgfB+iyAQjHcbBoVPe31ybGOQJaiPPAfB37WsN9/uZMt7S2YgwA/IhPLCPOthzUPBdNT13btXCWzWcHMBDXmzRO7+QEcb1BkNLOdQAmtxOZBOXSwWwdvPZc+53usma6SUiNyCXPMTw3ZgSQxnyZtvOywLiKnhqdivXxTgVgPhxsFc3yc3p3r3dD9CIOzwGO7xsVlANGR2VpcT0LTQKAcronBWLSGZ3XvekteNnfeRXOnzmNX/urOk6thUMKzbZmNdWYLKC+hfaL+cZoP5rNgZj0DOL0v/eJO0/il792Azi/MZXmARfC2ktkXqYiHaAz9vmblNwtztzoTJ45QDcQRrp1sTHy9/N1Dxs+GwpU2ty3Os6pODOmUmrRUDnnWj7Hvp8jzgoM2i+yjiagSsyDnhg5Oyx9PWJxPbNgL5A/ZnEx04Zie5ASGB+UUn3+o+J6nutgru6iHwlshgwrc/V4dru96wDk3zVth5xuIpe8zELiVIwrL68PZ3c1Nl6c8mZTT5pLrRnJ8FosmjXJ0Ty2r4W6Zy6gMY3AcWBvBsuPxmd3TVm8w0dvw+Gjt2HfhT8H1sJBZNrirD8TAoxLzBkUV89MCNCZZhEDNgdihsuI9b83AJxZVaJ5+e0X2XJJWH2JzLv0Xe+qYFNegK5sM8sjLsAE0KqZetsHZfamkuuFpgd0MoEYS4NzwHinO8nujhstmBqLZPtIvX44ruUgPwAxX/ewigjdSJ2jehyrvcE5s2Cv5nROpruMivbj7PnqZpzYcB2cGBHirKEfhcn7kdYDMe0rNuDn6MTYDpWXE7mYZlMLKZNxYdNkdwF7xR2YUJecrIM1aS61JpvhtVk0K8hxus9MKCMGzMqrto6RG9eHNqmkGjCNO7G3v33c7PaBoJx5LRZNFTGwNxATMLMgUDdkuNZV/ap5dmHaJ7jFPYqm8wMY7BW37ZszBuiyve2AcrBszdwkit2GMVl5/dya+fpo36qw2CbGlVTnzegGUmfHUKYbCC2tGBtX/QDkl1QDowEIZRP27pmqUsp8lq73I6z31T6QTWyYtB8Ae9cB0OfHeJs4sa+FWmbfHDk7LNcDAfJ1YmyHnG4il9DgYD0Tj2/wXAfHlpu5Pzuf6kXT6ru2qnbnKQgXca6A0cNBC5/YtiFKKRHy7VBxt180S/ehmdYiGQFUpM+/BKOyWM4FkgmJ8+u6X3XCaMFM2agWhLGJIoGYW+brWGqNn/jQDeJyydjBstAkAKjZu2YRNXO/qkZPxMjahM2Z7lwV9zHZXWA0KOVZPvEhb8oBYBaJ0pjGItmsjaKrH0w24Uccl+MKunHtF+kpBzbbhB5DasrI6vfjyFITcykROWDMfcLObQJA/p4J5Gf8gcE+MTSOVdiZ0AAGOjGU6SYqhc/4SNZGH4zHDdG2NDoyzSUQcu10j59XOqvkXfaKOJrAmPnUljmbybiXMSruRRxNn4mhw8BCk4hnEI8GpYYE5Qop2qd6mWHnqKy8S9OlDR9MSDRrLm5dMgfotALtZshTwTk7S4nHCQKl51LnkVwioxI5WGOqYvKqH0wtB1ZPfNDls+PWIi/TndiE2iecuG/VxkAlkJ/JUwG6MYr29dGsps0tB2OrHyZU0JlGRAH2BfE148aQjnM0Te1qgN2Z7rz2PcA8Lkyj12IzDth6llfEqPcDlOkmqoWplLiIQwFkFBWH5lNv80PuAnl9NoXXIlMa58SXadt6upOMpiH6WGQtFgxzZwE7L5BRTh/aenq+6hjNg8XmaIYXsHQtci6+Z1JBqbwRKDq7y4UcBOcs7dVUgkB5me7xZcTAqGq3zQ6WlDLX6T47qaQ6tQ7pKilu6czyvLJ4JYw0vv0iL5tnYyBG2YQ5k3dpw0fEJZqeiyOGCrrEqTBMObDTJsw6McD40nKgfL3M46oVxgWlTO+GrWK9wPg9E0j1+ZsmPmTbUCyvfkjeD8p0E1VB5JRKDvq5xzuarqMUFYFU5sZ1xkY1ZxU9BihL0bXI9rfrWau2RSETFffMYgRM4HJbz6XOz+Sl586mDwcbsxUsp2RUBx+OLDXRypTDpckTELPxkLyZoFRecM5KmxCqt90kCFRE8yAvg2WjTSSl9mPXIqe8PLYJCaAfKTvwEoVm+9Yi78y70YuwGXK4DnAiJ0BXpvFpesqBOeM/PkCn1yFgItlvPMeBgJ3vRzQmQJen1q3JFSS1cB2AYuJ6xuqH1H6ZDrzYeHYA4ysJgcmK9sBwT7eweHxaUglCmW6iKqgNYLS84+yEHrQ0WeEsJxZ3sO1wUNHH4VelaBkxMDoWyXHs7NXUKtXZi8L5dTWXeqHh4Zb5fEE5x3GSzGb6cLCx5YAJCYnRkupJDoVmPkcExsZDMmTcONjj7IQyYkAF4lq14eCczTbBhIQ7VlBues0DGx2sKCdo2484ruh+1Ry7aNZc6B8bqg4Slq5FzrxZndE8ttxC06D8D5Qr0504FWPaLyY5mkAqOOfaaxNjR6eNyWgC5uCcak2ybx0AtdfnVUKdNYzI0mibYKkqKc9xrDw7gPGVhBt+hNVeBCAvADF8x3RjYVYb9wlgvA6G7ZDTTRjJG5NV1NEERgXEdIbXNsciOwYIUFmKbpylOL6vYHm55WI4LB5LMq7lYNJ4CvMsYrvWARiX3dUiUZPE9fJK47bpAXeRvD60IoJygEGNN94nbCsb1b3t2QskFzKZdJAnHgaYReUAO4WBkqqYnL1iZS5/4oPjOMnZke1RtHCrQD9n3uygdHb66gcb10GJh+VVP4xvOah7LhqxM9LLlNDauhZ5jMvuAubJMIB99ypNXsuBzzguxRV0JnG9tLDaUAujjQaB/EpCYGATh5eaQ9VhmmSOfTCoKrXxjqnJS2qUgamd7re+9a34yle+shPPQswQpjEOPhtkKcb1q2rMAmL2Rd98wxigdJaikZOl0GTVRm3t1ZzoaBapfhiJyNqZ1czr0yyc6TaUl9toEwAQ5CraT3YqgFFn09ZS4rwy4ssdHyGXaHgOji6NzqXWzGfUy4FBdZBt5AVtJ/Uwa0ZH4NhpE0C+YnfS215AcHGolNjSvtVCme4C7RebJehbjYS5+oGLwUjWvJ7uQX/7sE3YOBkGAIIoT/uhD4l8QTnPdUbOUc+1szUJyK8kBAbvx8m8KSB6HaJMEN++VwNA/v2qDEztdG9sbOCee+7Bc57zHHz4wx/GxYsXd+K5iD3GdEBeWPchoXruDowpI9ZkBcRcR/WK23RIMh2dz8nY3F4o42/KatqX4c1XcZ+i+iGT9bdVXC/ik0qqi7UclGEsUj8czVRs+BHW+qocblKALpvN06XElr0euYJAukTy9v1zY8vlssE5QAVibNsngHwHq2ggZiF7mXZg7Ui9fs5s6mKZbnNW08Z9gnFzpdSQoNwUQoO2VowB+fPKL7dTgnK5Ex9GbUKVVdu3DoAK2pr0stK97XkZz/kkADG4Y9rqsEU57wcwXsUdSI/Us//sAMa3X9jO1E73o48+iosXL+Jd73oXPvOZz+DOO+/Efffdh3/1r/4VoijaiWck9gB9QKZLJc+kMppFyj6yzqbOVtj0PiW97VsUlAPM/bvSsnUAJgtmTXI0AVP1w/iRIbOKb1AZZVzg4sZkQTlgdP4uYGfWP282tXY0Dy82jOVwaUbaLywdd5L3fhQRUQPGtRzYZRPAuLWYnN0FDGeHG/coWmYTat6sOdN9pkCm22QTnuNYOT6N5WR319ITH6ZYCyfuW7WxOqifU1KtnatxAbq8IL6NgZi88wNIVz9MtomhIL6livaFBOUmiesFw+PTbHw3ANVyUMLKcgBb7Ok+dOgQ7r//fvzZn/0ZvvnNb+LZz3423vKWt+DYsWN43/veh6eeemq7n5PYZUwbwLkpsrvAaETWdR2VrbBoI1BO96iQ2tmCF2nAnMGyUW3UpOI+LChXvLw8qX5w40CMZWth6mO+sOGDC4m5uotbFxtjfz5bZg/Y2d/OhAATo4rEZ6ZoOci+H7aWjQbMLAhUREQNGATnhuZTw84MVm5VzOp04pMj/buW2USkZ7dn7MKPOC5rQbkiPd2ZihgbS4mZEDAd/dq5OrbcQquWH6DLikV5+j5hmU0AqjpoK3PbgVT/bnZmuYXrwOL3w7RvTsruAiYBMViX2NGMSz5MqgQp0+QLwCxeXBZu6lNdvnwZX/jCF/CFL3wBnufh7/29v4e/+Iu/wAte8AJ85CMf2a5nJPYA08s6TRkxYC4vt60vL79MsthFGsjp34V9UciAjY5wWOtH6MRZihP78/tVNdnyci/ub7cpEAPE5YEjjmYclFopLiiXDsR4rn3Kq2r0zWgA4mwB4TDNfKZHUY87sWmfAPIFgSYpM2tMpcSupWMWTUFbkQrQFe3zTwelAPt6FBmPR9945vcjr19VM2/IYNlYEQNMrn6YtFeYAhBKtXt7nm+30Nldk9M9SUQNGK0MAnQgxrKFQCweljevfMLoNMBcTWlrWXXe++FHHJfbKkA3qc+/mxHhtO1epelH5qBUGZja6Y6iCP/6X/9r/P2///dxxx134HOf+xze+9734tKlS/jkJz+J//Sf/hM++9nP4kMf+tBOPC+xS5g2gGnKiIH8DdEmZzPp6U69/xEXuJSUERfv6WZCImTqsuTAsW5D9BlHzTNn/I8sNcdmKTQLzdH+XW6ZTeRdms4WuCRodPChH4nkguAA1vW366BUfiVI8fcjndW0sWw0MLQcAGmhwYIl1dFg7qytGazQkPW/0g4QcIG65+Do8vgAnSmbZ6OAWJTzfhRxKIBUG8pIpnubH3QXyKsEKeJoAmmhQbtVu5WK+2jLGpASzBrnaDZHhdRUL7OdgRguR4O26YkP47L+2Qyv56pqMdvuVsC4SqmBoNz+nABdXmuSjRUxUsrcs7QM1Kb9gaNHj0IIgTe/+c341re+hbvuumvke175yldiZWVlGx6P2CsiPtxTkS4jnr68PK2yaVcJrb7wpjOXFzZ8cKkuAQcXxpcRA5nRFhGP1c5tzOSNCp7cbPWD5zgQQli1FrqkulXb+jg9XUoMqKjuYrMGz8KspikoBRRXqQZGnW5by0ZNgkAdn+FGPF+1qKI9FxIBF2jVPNWryexaByDeK3JaDk6szE28UGW1HwA7hYHy34/pBBd1cM5zHSv3CcBcHQQMWg7GOVdATpuWZfcJQM9jFqi5ww5UUUG5hbohEGNpmxaX5p7uy2018aHpuWMnPoz2+cPKNhQg//1I93PnVdCZerptbU3S88pNQoNlYGqn+yMf+Qj+4T/8h2i18l+ElZUVnD59+qYejNhb1JisgdFv+Ayd+IUuMi4MMJfQWtfTbdi0zqbETooIynmug1bNhc8EuiHHylw9Vqq2Zx24kIjGlNlPmkutyTpYjuNAQFo1n5olJdXD2+c0TnfDc5KofDdUTrceD2XThcEUlGJc4EJcCXIz7RcWvR75gnLx+3HrYiPJyuSRFpzrhRytmgfPUqFBU3lgUUcTMDtYgIVZTSHhYHTebNFM94IhOKf3CduczbzslV6LcdldYLR/F9CCpHatQ8TN4/SKC8rV4t+jKucaNRdeLCBm090KUGeplKM93drRvGPCxIfBHTPu83fsFOEEbu790DbRi6ukHMexujWJCYlmg3q6AQBvectbxjrcRDkI+HCm4plN1VOyf66OVn1yGTEwOvZFY9M+YCyzn0K5XGMS/LCpHEwLnuT1MRfOdGfFcOIxcjZdnJKS0exFerW4eJjjOCOlozb2t5uCUhfbPpiQaNVc3Joz9iaNSUAMsMvB2o73w3WckX5NncmzKRADmLP+Z6cQ1zP1rQJ2vRuA2uNNT3y2YABCB+eA9Pg0B8KylhzAbBPpftVpFe01Fh2jALQOxmiATjuakwTl5hrDlXOAngxjYSVIzvOeXi2mCZK0oQTDrUm2rQOQ73SfLlAJot8NIVXCDFB3Kxsz3VFSHVTOTHc5QwnETRNEw5luPXM3r6fEhGmepI7S20K2zB5A0s99fF/x4JNJyd2mWYQTBbOmLC9PjwIS1jmaYuTStN6PsOGrQMJW10L3t9t0YRin/XD7/jljj1qWMpSNsgnvR5Eye2C0rNpGByspqc4JQEwqIwYGNrE51JpkX4/izQrKOY6TCl7rgG3ct2rV+2G2iXPrg37VcYJygDk458CuswMYIyhX0NGsxZVzQEZ80jKbAPKreKatfkjP6baxNYlxASbNjmai4j7mDGnVXOhXK62hZKW4nk5qmIa3lwByuokRpJSIMpnutbgvcdLBmCZd8jL43XY5FX6OYjcAHJif3M+tGXE2LRv7wgzZXS5k4bnUGpNolm09WExISAyXjOpL9OGl5lAP/zhGs/6OdVl/0zzNMwXHQmkWDNoPtl2cTO8HkK5+mLYSRAelYF9QSqh2kRHxsKn6/OOzIzOf2rbMjR+NiiN959RZBFyg5mKioBxg2DNd+87RPJs4naoOmtSqZVL3t3E+dd7zFnU0gXQPbzrTbd+oLCYkHOTPsJ+0FtkWRsdx4skw2/ucOw0TEoyPBqXYkKBc/lo4jpPsmZvBYKSebe8GoBI8QspCAXsbIaebGIEJtXnXMpk8ANg/P0Wm21Beblu2om8Qtxg43dMEIEbHp9mkSmzK7m74UXLxKyIoB6Sciihb/bCND7vDmLO70zlXQE4AwrL+dtM8zcE4vYLZ3bw2FMtswjxasFhGU5NtOUiCUtatxXDQdhpBOSCvSsq+S6TPhnvbH/30p/D2t/8UAIA9cxb//rP/YuLvmM9m82Cfg2WyCSA9Tq949UO6p9uzrE0LiPv8Df7EdJoHwwkNV4tPWhScA9SUAzjDzyylHJRUTzhDTAJigF1BSiCuJJSj58elDdWq1ay5OLo8vlVrNABhn0YMoKofyuluK8jpJkZI1APTme5tKi934VjlbJpUeHXWf7q1GC6Ncx27ystN2V1tE/tatcLjHbJzugH7sjYmAbyrHdWXeKxA5kozWv1gX3+7bxDMmrblwDjuBHZdnEzvBxMS59anG7M4bygltm1muen80IGYQwsNLDYn67eabMLG8Wl+NDg/rl6+iA///HshV25Tf7l6AR9+4H24evni2N9hcrBsE4sy2QSwxezuSCDGnnUAYpVqg9ddNLsLjK6FZ7O4XmYtVnsROgGD60yelJMdGaaxbR2YGE1qAMOCcpMyv6M2YV/rHqDuV3Y98XSQ002MwOKom2twsKZxNE29mq5FJS95isR6LaYptc8KA7mWjbZgQo6U/22l5cAUiAHs6lk19flv6f1omi7Tdh2SvmGMnFYun3q0YGYWsZ5pbwOm3sR0lqKIoBxgKC+P9wmbLpEmdeZpBRcXDBUxtvUoqnmzg6DU+dPfgxACODBwugXnOH9m/KSXbCmxZ6FNJJVSWXG9KbK7pjFynmtXmxYA9Nlo9Vw/4rgcB26LVMVkW5OcWITTpnMUUJUg4wTlmrXxLoppnwBsdLpHq0uBVD93AZtYzGT9bdR+ANT5QZluolKYom5rN1Fe3gvVGAPArmyFViROb4RcSLRjwaybCUC4lilVMyGTf0PN+pbK7OPIdMSHfp9NB0M/GtfnfzOBGLv627X4S7q8XEiZrMUtBTUPTNkK69T9Dc6gznLfsVJMUA4Y7WXWarw2XabHiesVLbNPMv6pslHbehRVyejg/Dhx8llwXRc4cFx9w9pFuJ6HE3eeHPt7Bo6FvQ6Wtol04JaL4oJywECpejg4Z899QtMP86uDVuYmC8oB45Tc7VoLUyXhmdVi4/SA/HWwbBnU+2F4n6erfoh7ui3WfgDMLZ1lgpxuYgQdHUtHpbdSUq03RAnlqADq0LUlW8EMoz02/CgpfdlXYC18pjbAbJRe9zHbcnEyRR9Xt5Dx1zbBhRwSRbLpXDBF52/m/chqHljyehjFXzoBSw75omuh1yFgIrmc26buzwx9mte7IQDg8IRevDRZm7BRjde0vw9E1Ipluhebw3NnAft6FJkQYHyQ8T989DZ84J99NHG6nfVL+MBDH8Hho7eN/T151UE22YSpBPxKJ0DABeqeU0hQbhCIyVQ/GALCs4qunhudYT+dDoYpUGlbS47IbTlQAYiT0/T5p4JzDvJV0WcVllNSXWRcmCZbMebF4no22QSAWGSSnG6iQpii0tOUzwqpDsFmaozBYCOwJ4Ol+tCGs5qrveJ9zP2I48xqHwETqazmQKnapsu0UVBuC45mWtlbr4VtlwVjn/9WWg4MwkA2RaZN4i/aJhYaHhoTSgM18wabcC0TzfIjDjcTllrtKad7Ku2HkTFy9qnxmoIlunT2toJjFvU6CKneN8C+HkX1fgxfIF/1ujcBC/sBAJ/93L/C6970lom/pyyaB1m0o3n7ylyhS/ZCMw7OcZGUlLs6EGPJUqgZxMjtbS9aCWJScpew5+wABor22f7201NlukeDc66Fff6RIUggpRzYRaGJD8NBKcdCEU5AVYJQppuoFKb+3fUpnIqLGz6e2QzhOM6oMJDrWJOtiAyK3etTBB8CJtCqueBCjpSXO5aN+Aj4qKM5zVpovNSM0W5qLWzp383LVGxHebnGluoH3YaSXoutrEOj5ia/I615EFrkdJveDx2AOLAVzYNsj6IlNgEAoWGM3FocgCg6ZnGuPghhbA6V2tsTqIy4GKkEOb+u9A4OLjRw8vYThX5PGRysiPORSqkzU7YcLKSCc91sm5Yla5EE8kdGpxXPaALmOfaAbcG50fMDSNnFFI6mkEpfBLCvNQlQKu7ZPfNaN0Q35EpQbmV6dX/PwtnteferMkFONzFCtlyLCYmNKfqYpZRJ5G5kLBLs6WUep9hdpLc95AKtugsh5Uh5uWdZ2WgQiZGI9OoW+vwBszCQLeVgTIxmKoSU2CgYgBBS4vRqDwETRhEYB441NmEak7UVQTlgVBDHjbOatpSNjq1+mOL9WDRUPwD2OBWAuvymq4OklMleUTQY4zjOSFm1bT2KpvNDVz8cKjhiEQDm68O9mhpLlgFAbBO5JdXFHM2a56LpqStrLxOIsSVQaRIZBKYvLzeP1LPn3QDi8yNTKdULeTIJpEh5eStVTZm05LgOQkvuExqTiru2ieP75gpVjWUrYvS+Y5dNmCtBygQ53cQI2VIw7VAAk/uYGReoe26iCTGixuva08tsKombpow45AKtmqec7kxW07FIIEkIiWhMJm9aB2t0nqQ95WARH5032/ZZ0oc9yS4CJuKSWT4imgUAEvZUP5j+zVYTmyjuVACjwbmkH82CxVAq1aNOReJoTrEWJoVmwI59QpPVPOiGPLGVmxGftK1H0fh+bCFQacp02+ZgmSpBrsWaB0cKKvsD5vuETUrukUEnhqdGCxYRzALyWg7saskxBW11OfUt83Ustya/I8ZqSot0gzQ+46h5N1v9MBCpTWPLfgkM7lfZSpAyUd5PRmyZ7BzJaeYx+0ygWRuUgekoffriZEuG1ySONI2jKaWK2AlpuEC6dq1DWoVXs5XycmC0b9WmsS/6opA+FPT7sdSsoe6N31J1y4GQOdkK2HNIMjFaEre+xeoHk9CgEHZk87jO2GRbcnpbaDnIdbC24UF3iWwAQr8fc3UXrVSJ8CT0PrEZDFS7bepRNAZtt9BykC0b1djkYKXnlWtWp2w5AOyfRWyyiWvdEFHchlA0ALFoCNja1pLDuKpQSE92OLOqRwsWCz4Ag9Gb6SpCm94NwDx6cxrlcmC0ghBArAdix7sB6PaLUXG9MkFONzFCmIlKT9PPHXKBRs1J+reyUXonyWBt7zPvBBEXyEpKTjsmS4+BMqmN2iKQlNd7Nejfvbmspk1jXxhXCttbVfaPuECr7sU2YVIvt6e/XbWhDH9tK+JhwCA4lw7ECEuymokgUE6mexpxPdNl2pZ2HGDQk5dei9Xe9Bl/YFgkCbCvRzEw9bYnQanpHc10n7/nONbsmZMqpaYbOTk6n9qmQIzJGUz0DubqhZ2N+aSne1TJ3RbMowW1iFqx7C4w6PXvDlUR2qEbBJj3TGC6Gd1AfnDOlv0SUO+HMCR4ygQ53cQIYaY/cZo+TZXJ8xJf1dTLLCzpwTIpdhe9SLN4FIrrYGxW04Z10OIv2ZK4aYIxjIvkwjGfuUzbNPbFpOy/2o8dzQKXx4CnMt36sjB0mbanv92PxMj86Wn2CikH/+aLI4EYx5qyUeV0D78fMjWvfCviet3sZdqGKCXMPXnaqdiy9oOlPYo+4yNlkqs3Uf0w4mBZYxOjKtXpPv+bKbW3LRATGarnkpacmwg+APbNsTedczfitbh1cetjFnX1gw13K0D3+Y8GbadRcQdGg5Qai0zCmnvgzUBONzGEqT9xmot0Vnkw27/ruvaUg41TJJ60Fmr+qJdk7EzZCltKf0wlP+3UvPKVVm3i77iyGeBKLJBimkVsS7bC1Ke5PmXLQc11hhXtM5luW/rbA8ZHqx+mcCpu9CKcjXsZk+BcpPvy7OnVNPUmpueVrxToTdRk1wGwq2zUpHkwjfhkGlMliIQdZwegglKj78f0lSAm7Qe7bGK0UqofiWQU3DQVEHotNlOBGJuU3LOte0CqYmwamzBMvnBgPp9mFZP5DloOth6A0LpBtuwTOmibDtAxLpIAxG3LxQIQC4bgnE3taoC5EuRb59bwoS/8FT75+IU9eKLtZ/JtmagUXEgwKZG+K+iLdJGMppQSdc9NshLZw8GmDJZJsbtoH3PEJRqeg7mah1URDgmpSalGsmkxnOmuorsP46qMOJ3V1BeF5WZtRADERHrfz84sd+NSyazjMouYSuJWpwhKORj08w+cbpbYhE397X1Dn+Y0QoM+49CNKCMCSRYJDTI9WjC1FDp7tTjFvHL9/UDWwbKnbDTRPBiqBLlJwUULReWklEbF7q2shSk4pzLd2/Cgu4DSBBHw3MF1U1cHNWsu5urF3w+bbQIA+sxQPdfbQstBc7RdzXPtqRgD8kYLbn3MYjrTLaWw4o4JjJ8C4jqTxYs1g57udMDWnnY1wHy/Or3ax7fOrWOpUVwPZJahTDcxhKk/sWgfs1YuVy+/NI7K0sz6fqj70Gqe2amYpM4cMIGlZg2NuJRYb4gSylkBlCM66+sAIBn/lmaakrjsJSCb9bdp7EvEx/VpTgrEKHtyHBWJ1+8Gl6oyArCnv11KiZAbMnlTlFSrQI7639ngnG1Cg3CcoZaD9Sn1Dq52AviMJzYRcplE/W0qG00CEEPl5dNfpIH0Zdq+HsWB4OL29TH3Ip7skcrBssQmDJVSaZtwshvqGHL7Vi04OwCgHxqqg/rTZ3fTrUn6fLWpYgwYHS0IpCY+TKV5MFwJ4lqkGwSYdWJWU9Vz2RauPEy6QbbNLDe3rMXvxxRjFmcZcrqJIbihP7FoeXnABRo1D4vNWtJXky0vB+wYd6IVu9OZbi4kNvziDtZS00MtHmnSTM2THIzKmv11AGAcvzGNcnnE5ZCqt2nsiy3zd/vR6EWhaHl5wAQanofFRg1CSsyllJzTFwYbspomp0JIWdgukmqP+H8vNEczWKqUeNsffdsZV/1QSO9ASHQChm7AE70DINXLDHvKRk0BiK2IhwFmUTlblNwjfZHO6fOfZi3mG6Z9AtaM1NOCi+nL9Fb6mAGzqBxgx9mhBbNGqh+2MHpTrwMXMhWwjVv3LFgLAAjFOEX7acQnDe1qlgTxgUGQ3TG8H1tR9vfZIMvvuvYILgJaB2PYJm50txa0nVXI6SaGMJYHFiwvD5lAs+Zgru6q3m0hU8qSg8i0DQ4WEwKMDx+QbT9KosiT+pgFgLm6Lr12jPMkAVhRSjxuXnmRi0LIBZq1MU43VGR6xk0CwOgMYqB4yahaBwetugvHUZekrHCWLb3M5j5/Nng/Jq6Far/QGg+JenlkX9moej+Gn3MawawoEddT+41+V9JZ/1m3B42pvHUr2V0gNTIsXSVlSa+mFp9Mnx+bAU/20mkcrKbnJlmw7lCbli3vh0Gxe8uTL+Ke7sCuyjlAB2JGBbP0+3HLTQdinGR8oQ0EmfakfsSTKsBpgjEDoUHd0x1nui1ZB1NSYxpxVs18XhDfgjumxjRaUO8V07wfsww53cQQpv6SorN3Ayaw0qqj5jpw4QyVl9vWgxVx3Ye2tT5mB6pfzXMcyPhCblLZjGZ8HQD175qrUl1EsZsJNDx3kNXM9vnrUmJL1iKvpHrSWoRMYF+rHvecqa+ZepltuEzrTJ5JcLHYvHKORlz9MdSGEqSzmnY4m+NGCxae+FD3Eschm81zLMpqmjLyyQVyykxFUv0QDduEDT2KETeMTovXYaHhDQUhJ+E4zogyceJgWWATJqdimjGLaRI9EMsq54B0ICajaL8FoUFjwDauqrNhVJZu3xvSiYltoum5Qw7kJEzl5YAdZweQk9TYQktOo+aiEUfndGLHs0hwUYk4j2a6V7c4/WJWIaebGIIJ5SIaywMniYcJiaVWDa6TymCZysvjzOYsY+xD0yWjBUrL654Tl5QblNxTyqs29OWNU6meJtPtZFoOuplSyVl3NLmQiAxib2sF5xAzAdV64Q7Kb7M2YUuJoGmM3DSHY8glmp6bfN6Bo5muiLHDqQhYfplk0aDUXDy7HUhnePXFyY5ADBBrHmS+Ns1e4UcclzZ8ABgSn9R4lvQomkqqt+poAqk9MxgoNNtQMQaotRgZk7WFPmZgEIjJasTYYBMmFXcgNaf7JtX99T4x63crYNC+VxsKSg2CD1vr80+1JllydgBmnZittl9kxwu6cZWUDeJ6KtE1OqN7K2MWZxlyuokhsk6gkKk+5kl9mgDm6mpMlqczWIa5s4Cc+ZIX46WpaG973LvbqrtDl/GkhDY1Y9SG/l2TUzFNeTmPe9q9OBJvytrYcIFkYnSe5tD7MeFQkJCJTYzMp45S2QoLMljRGEX7otndubqXTDMwXZwAO8pGje/HFJmKSAi06u5optuyQAyg+gmz70dRIU4AaAcMvVgcyiSa5bp2aB6YnMDVKdYhS7IWep+wqSUn4nCRE7QtEqBjAufX+5kqqdR8aseOvlU1Tm+0zz+xi5sUGrRpMow6S7PiejcbfBgW17NgGQDkCMrFazFtSfVI1h/2nB2mlk6AysuJkpMtBSvap6lLTVtxSbUuiTSVl7sWzCJmQoxkbIoKZkVcoFFz0PAG4mmAqWzUMZbezRJ5o2+mGQ0l4+z2SFYz42DN+sFgmkE89H6M6fMXUmV7WjVvuPoh0+dvy2Xa2Kc5haMppMRyXBXDhTRmNW2ZMRqw0dGC074fpjaUnoXCQEFG0b7ts0QMr8hahFxn/c0ZLHV2zHbAFsgR10vOj2KXx+vdEJtxZju7FqqSzI6WnGwgBkgFIAqsRS/iCJhAxAcB282MTcx6EB8w20Q35MldaFIFXZYRm0j2iZt80F2AC8SK3aOZ7un7/M0B21m/T2j60RidmJu1CYtmlptaOn3Gk89C5eVEKcm+nPryuNjwxvZphnHfbqvuwXWdpG91oT6c1QTsyFYwLrNtmoUFswIusdSsJXOXNaPzJGe/LE73DY44FQVLfriQcB0HC41BVtMkKAfMfmR6oNg9eA90RHpSn3/I4/ejpkSR9GqOKrnb0d9u7NOcwtEE4kBMXCab52DNev+uHp2W61RMqn6QMrGFQZ//sGPhOg4E7BiBkxXCmabPH1B7gOdqPZBR9XLXkh5F8wzi6TJ5G36U2EA2g6UryWxwLMZWghRsv1CVIOYRpLbYRMQFHGQzmmodFhoeWrXp5hBn1f0dx1ETHyywCVOme7W7tfYL06gswA5HE7j5Sqk0i5msv7qH27FPMCFHMt16Heqek3w22yGnmxgiZGZxi8kiahytunIqAKDuuSqDlXdIzngvc2ToQysqmMWEmtENqAuzkxGLSh+SQo7OsZ4lIkNvO1B8Xrnu556PS4m5kCMZf82sHwymeZpF+/xDJtCouXGZvZOIhJmymjb0txvfj4IXaa15sNCowUWmIiYa3idmPSiVN4+56JxuNWbRxVzdS9YzL9M965dILY5kmsdcJEshpITrDN6BvECMDT2KptGC04hPRvG+qUWxsgrNjiUtOToolSuOVLT9oublVkmpTPc2PvQOEQkJONkpB1sTGQRG+3cBFcyd9bMDUPumkGahwamnHFic6eY596vB6LTpsv46UNlNCy5aMrM84mJET+qGnpzUmq7Pf5bZU6f7K1/5Cl772tfi2LFjcBwHjz766NDfSynxwQ9+EEePHsXc3BzuuecePPXUUxN/78MPP4w777wTrVYLd999N771rW/t0CcoH9moW/EZ3RLLcXYXAGrecK9mwESS3XYtKKs29aEVLS+XEknU2nOdQVl1oryqe7DU5XKWV4Jxddnfah+zyvDGDpY7KDUH1MU0fTDO+mVB269jCEpNikiHXPUj1mLxMM9V+9voyDA7lFeNfZpTah7Mxf3tQ33+IU8cKisqYuJLUzpQycWgj7nImMVGzcV8wxtkujMKzXoEzqy/H5HWPHAMF+miKu5x+4UQw33M2iY8x4HA7F+ofcZHKl+myV4pzYNa8m+e15Iz6zZhCkpN2+cvU9UPpv5dz7VDkLQf8ZGKsWn7/PV+A5h7me3JdI9RtJ/S6V40vBuOY8s4VrVnpt+PoT7/rZaXB/a1JpltQp0f++bGj+i1iT11urvdLl784hfj4YcfNv79r/7qr+I3fuM38LGPfQzf/OY3sbCwgHvvvRe+7+f+zs985jO4//778Uu/9Ev49re/jRe/+MW499578cwzz+zUxygVPuPmTF6BPubl1uB76q4DLodnB/YtKqveqniYlBKOo2YxA4gzN2pmuWk8lMpW7MQn2B5MZWBF+5gB5VTMNzzUPWckqwmoi4hm1jN5Jh2CaRxN/X4kmW6ZKhtNrYMN5WA+E6h52ei8Wgs33MTjX/tTXL180fizIVflog1P/V86gyWBZFbrLPfvXrhwAV/84hdx9uz5kaBU24+mmle+UFcjpPRvyF6mrREajIWi0nYxjWJ3wERSCZJuQ+FCIojtwHWBq5cu4bEv/mdcuHBhBz7F9uAzgczrkVyki7RfXLx4Af/t//wvuHblEgCMjFkE7MhqmqaATNPnL+L2i2z1Q8hlsjdo/ZhZH5XlM0Pv7pR9/lfaAZ7pBABGJ19oZt0mgLzZ1MX7/NOkK+f0Huk5DsIZtwdArUN2Cki6z3/rPd32zSw3j5scZLrLwp463ffddx9+5Vd+Ba9//etH/k5KiY9+9KP4hV/4Bfzoj/4oXvSiF+H3f//3cenSpZGMeJpf//Vfx0//9E/jbW97G17wghfgYx/7GObn5/Hxj398Bz9Jecg6m9PMm51LOdh1z4WUEo2am0TxuikBsVkvERw3j3ncRSGKe1L0HFbPcVS0EaPl5TaUSrJYmGVotEfBPmZAlc/ui0uD9GW66bnJhVQHIBzMfmTaGIkteJFOtxe4jh7vkj/HfoZNAoDKdGezNnqv+LWf/Rn8zJt+BK992Yvw6Kc/NfKzIRNJVYwXV8S0agPRwYGzOZu9mo888gjuuOMOvOpVr8ILn/d9+A+f+wNjddC+Vm1kD8migzFe3I8J5JdLzvodUo0BGi6rnmb0TcBE3IYy/L4Ag/fjP3zuD/CPX/XX8Zq/+3dxxx134JFHHtnmT3HzMK5VeHMy3RPW4tFPfwr/+FUvwfve8nq84zUvxaOf/pRxVJYNWU2m55UbphwU6fMP4/YLrRGjy2eB4VFZ0gKxqH5oGr05XUm1kCL5nIt5vcyzt2WOMHY29dTl5QOb6KfKqmf9PgGkKkEMe+ZW+vyz/e22BGyBnNFp3el0YmxgZnP2p0+fxpUrV3DPPfckX9u3bx/uvvtufP3rX8eb3vSmkZ8JwxBPPPEEHnjggeRrruvinnvuwde//vXc/1YQBAiCIPlzu90GAERRhCiKtuPjJL+PMbatv3M7EUIiCNUhwJmy/tWuWpeVlgfOzM/NhQQ4gweefDaHq8/JmYf5uod2wNDp+zg05wKcIZISfhBOdNr2Aikl+kEACJmsAzDYDPc1ndy16AcMnpTwpFCfn3NIzhCFEnPx/tkNInAWQQoOFjEEkZhZm/CDECL+d9Tc2FSVJitztdx10PCIoeGoz+dJjihiEA0H8w0PnYCj0w9wMLaJfhDO7DoAQK/vQ3I29JlvFHg/AEAwFn/+CELbRMShq6Y2Y5vQ3xsEoXpPZnA9hJDwg0Cpi6fej+uxXcjuWvx9Ah9+4H146d/62zh89FjyfUEYYc5rIYoiuEKviepr7obKJg60XLVG0kEYhjPTz3XhwgW84x3vgIjLWYUQ+K0H348fvufVyWe83ukDAPYXeD9YFKHpCLUfMAYWhZivxUHKjE2EQYjaDJ8f/SBEGERAywWX8fnRK/Z+AEAQhNi3v4lOn6mRjTVgvu6iFwl0+gH8G5fxq//T/ZCptX/nO9+JV73qVTh+/PjOfrgp6EccQRhivu6Bs8FlVwcr9zXc3LW4evkSPvzz700+o4zfoZ/4518EMLpPhGGEmphtm4jCEGg6yV4xzfvR9yN4ACAkwpDDqQPNmouACXT6PpbqgOQcIRPwgxCoT+ek7BZcSPhhqKq9Untm0fMDUMEcT3IwDnAWoRV/1LRNSMYQRCGacnZtAgD6vg/JMmepfj/G3K9MeFIlOpiQaPd9zHlNSB6hH2Cm1wAAen6AKIyAucGeea3TA1Ds/QBUAJwJicVmzXifkFzdJ7wZPjsAoNMP4Izcr9SdYrnpgrHt9ce2m6LPNrNO95UrVwAAhw8fHvr64cOHk7/Lcv36dXDOjT/zl3/5l7n/rYceeggPPvig8felnfGbhTGGtTV1Ia3VZm/pIy6xub6Ouuug46sd/dpGFwAwhwid9VXjz/mRAGcCvQ0HvKuc6G67j367i45sYq4GtAPg+uoaDrk+/Igj5BLPXBOFFG13GyYkOuvrqDkOOoFah3Qfcz3sorNutou2z9DwHKyvqjLziEuEm+sQjgOXqQ2k3fPRWV8F4xK9ro91ITFX92bSJq53AvQ7HXTQTL52+XoHALBUR65NaIJOgH5b4Brrot/poNeL0InqaHkOOgCur67ioDuHoBti3enjmrd979t2c/3GJqLNAB05KH/T78c8wty14EIi6kfotSWuBTVVLttZR+Q4cCNlExtdP/l5vxNgrd5Hk6vL6azZRcTV+5HeJ7iQ6IQcgAP0NpLvFZzjr/7rn2F+rpV8ze8E8Bc5roke+htd9Dd8dHgD8zUH3RC4trqGA04fQcghIHH1mdFWj73i8ccfTxxujRDDn/HSDfV+LNedie+H3wnQ7wgwFwi7bbRFI9cmVhs+6kxdyGbNJgAVlOx3NrCZ2iuKvB+afieAv8ARdnzV/xrUMFdz0IuAZ26sonvqyZG155zjiSeeQLPZzPmtu08v5Njc2IDXrIHHJT1cSGz4qoKjEW2is25ukfur74x+RsE52tcuAljARrefrGOwGWDN6yGQ6nfNok2s9SP02hvoycG/z6Xrxd+PjT7DYtND6Djo9SM0ojrmag4CBly7sYYl0UTIBHqhwLVrHK0ZdbpDJrC5voGmN9gzAeCZad6PUJVP+xFHB03UuDorh20ixA3UwV31d7NoEwBw7fomwm6ADtRZmu7zb4y5X+UxX3fQDiSuXV/FPGsi6DNs+B6uzc22wt6Nboh+pz20Z07zfgDAM5sBhASOLKVsYnNgE/347KhFs3t2AMCN621EAUdH9JKvXY3fjwWHYXN9Fdcas+t0dzqdQt83m6u/yzzwwAO4//77kz+3222cOHECBw8exPLy8rb9d3Qk5ODBg6jXZ69cohcyNNaBpaaXHF6bXAU4jhxYxtLKAePP8X6Eluvg2OFb4MaX457XQytoYGmlhcXmeVztMqC5iKWVfahFavbe/ltuGSpJnxX0Oiw0vOT5NvqDPs3jhw/mBgu6nQC3Ljdx660rANRla35T9TMf2OcCuIpAelhaOQAmJPpOF4vLcmZtouv20OrVsLQycJr651VE+tDSXK5NAKpvf8ELcfjWW7Bvro79UQM9t4+l5RYWW+dxrTewiX4tQGuxiUOHVnb6I22ZM30PC26EpcXBAbnJLgMAjhzYl7sWvZBjqclx7PAtaNU9CCGx0FHlxLesKJsI4SY/34aPxX0tLMrWTNpFNxjdJ1Z7EZLhV/128r2u5+G5L3xx8tmYkFhwAxy59QD2zzewLlu4xrtYWmlhoaltYgFLK/vgBAwhlzhwyy1o1GYjOPeDP/iDcF13yDFy3eHP6J9T78ctBd6PRS/EkVtvgeMAc5su5ucbOLAiAFxFKAc2sQEfS/vmMCeaM2kTABCu99HquEN7RafA+wEM7OLo4QPoepsQPfWeLTbP4Uafw2ku4rnff9fI2nueh5e85CU4dOjQzn2wKVnthWisA/uWm4nAnno/VBvNscOHctsOTJ/R9TycvP124OoNhPAG+4TjY265gf1uMLM2wTZ8tNrDNtGP34+DE94PAOg4Po7esoBQcPQ3AiwtKZtY9znQWsTSyhJCJsD8CCsHbsHSBI2RvWIzYKhvAMutetJ6BhQ7PzRhN8RC3YPsRVhaaeHAPg7gGYRyYBNd18fcYg3769HM2gQAnAtqWHDD5Cxdz9yvpq2AXGjU0Q6CxCZ4M4LnOjh06OB2P/q2Etb7mOt6WNqXCkpfiP2EAu8HoM4GAMomlhmAawhS+8QGfCzvm0eTz+7ZAQC1joPFlsBSSrF9kyn/4+C+JSyuHJjp+2HRwO9s7lAAjhw5AgC4evUqjh49mnz96tWruOuuu4w/c/DgQXieh6tXrw59/erVq8nvM9FsNo0LVq/Xt91Aa7Xajvze7cDhALwaGo06vHjTW4uj87cszMGrmZ+ZQeCWhSaazcHL0mw04NZq8Gp1LMTjs3wOeLU66vAAHsH1aqjXZ88EHQ5It4ZGvQ4vPiDb0WBeeWvMyyUchv0Lc8m/b01KNOoNcCGxPKd+rh8JeLU6HCkhvRo8T8ysTXDHhVevDf3bbwTqQrh/vplrEwDQ5wxzzRaW5puo1zy0Gg04HoNXqyf9aIlN1CWk483kGmgYPDQbztBnXvdVJP2WxVbuWvAImG/VsDjXTMqkG40GQiaw2FLvTC+2CQBwawyOV0MNs7lXOAyA56HZaCT7RDtSF+k5hyNwHQiunIUPPPQRHDtxR/KzQcjRajaxNN9Cve6h1WrCqQVqn4htos/VGjekiyjkcGs11GckOHfy5En87u/+Lt75zneCcw7P8/Azv/i/DH1G/X7cslD8/Yi4RL3egOPVsdRS+0SPyWGbqNVQE7NpEwAAL0r2fM1aX50fBxfzzw9g2C7mmhHWAwyfHcLBsTvuwAf+2Ufx4Z9/H4RQa/87v/M7OHny5M5+rilxXAF4NdTrg/NwIxyo8DYb+UJRx07cgf/xf/51/Nr/9P+GEByu6+EDH/51HDh6GMCNoX2iXueQXg01j1tlE4P3ozHWJgBAegzLCy1sBgyux+N9Ip5+weKzw5VwQhnvEzO4BgAQScBV//ZD+g/x/erg0vj3AwAYOOZbTWyEal9YMpwd9YYAXBe1mpxdmwDAZQ2NOpLnTt6PVq2Q8yKkxDOdAIcWm/BcB4vNGtAJkrOjXleaB65Xm5kqKSNeBMfL7Jn6TjHh/ABUUser15TCf62Oxbmc+0Sthpozu2cH4wLSrcX3q4FPoN+PA4st1Gqz+eyaos82ex5PzMmTJ3HkyBE89thjiZPdbrfxzW9+E+9617uMP9NoNPCSl7wEjz32GF73utcBUH1fjz32GN7znvfs0pPbixZ1mHZOd8gF9mUizGkNmexYJM+ZbYXmRNzCGxV/KSIIlC5xc2IhtSg9Hiol9gEAszw9LWBbnzerZ3Q3PD273UmUVecb2bUoLpp1bq2HIBJ4zq2LxT/ITcKFRDRmXvm4eZoBEzi81BzqS665LvpSDI3K0rhxWwJmw88cgQkJxqVxHvPhlUU8/LU/w/kzp3HizpM4fPS2oZ/VNtH0BkKDmtH51MpeZm2fePvb3457770XTz/9NNyVI1jz9g39fVFFe6Xi7sUK7iL5vKbxUInQ4AzfHyMuRh6v6F4RMI5W3UWr5qLmuYN9QldcBery9bo3vQV33PV/x4HoBl76ohfMVC+3JhJj1qGAINDffcP/A3/9b70Czc1ncKN+C77/OSfx5CXVspGdWc64mNl9AjALZk07g7hVcxEyJxEQy0580Mrms6zaHcXK/vnq5ZPtgkuJeupOogNSWZuY1YkPGjW7fVjJfZp1AOIWjpBjiXEsNGop1e7B2REJ85rPEiHjo3vFFIJyesyiFpBbNNwnHGf2hdT0naJRH65wSHSUSqRevqdO9+bmJp5++unkz6dPn8aTTz6JAwcO4Pbbb8d73/te/Mqv/Aqe85zn4OTJk/jFX/xFHDt2LHGoAeDVr341Xv/61ydO9f3334+3vvWt+MEf/EG89KUvxUc/+lF0u1287W1v2+2PZx2Mq4NLb1JSSqzHkaZJ6oFzjeGT33OcxMmYT410ALR6+eyOtmBcKYq7BkXJcaM9tAp5M1MK2/Bc9CNhVKqWcraVqk1jTtaLzqZmArcuNlOz211or8Gk5C7kYORaHlxInF3rwwHw7EMLuyawFXE1T7Nem34ecyQEljNBqXrNgfTl0LgTjeuon5nVy3TEhSqVNSgS75+v4/DR20acbY0OQOg2FNfodA/Uy2fR6QaA48eP4/jx4/jzSxtor/WH/k47FRODUqn3Q48W5EOjBQfzd13HAROYWZsARidfsFQfc5GReofitWi4+Q4WABw8cgwvvf2FOJYqyZwlIi6RtdjEJgqMQwq5wMk7b8fzDr0Af/q9G0Nz7IcdrNkfvRkyMapIXDAQw7hA3XXQqnvoRTw5J00OFuDM5D6hMQUf0u/HJAdLxqPT5uoeHK3unwniA7M78SGNmnKgxspq1qacS+3Ho0i1TZgnw4iZvWNqfMNo2qLvBxAHK2su/IhDDs2xTwds40DMbHRoGYm4GmuWbrtJ36/2l2hO955+kscffxyvfOUrkz/rvuq3vvWt+MQnPoH3v//96Ha7eMc73oH19XW8/OUvx+c//3m0WoPD9tSpU7h+/Xry5x/7sR/DtWvX8MEPfhBXrlzBXXfdhc9//vMj4mrEKNmRG52AJQdZ3qWJCwnHwchoA891Eic0m83To6Nm9ZBkYvTSVCRTEXI1Im1kLbwxGayCUUgpJdb6EfbP1XdVydk0r7zovNlIyKEeOzUWKbaJevbipOwvW2GQZa0XYq0XoVlz0Y/40LiQnURVPwh47uC/1/ajxE7GzSuXcvT9yM6xH7pMu7N/gczaYNFMRTYAkbat0eqH2Q7OAeqdz61+mOL98BwHrqtsJdfBmuFADAD0MwE6fWFyMDlTEQmZzLGvee7IZbqbyfrP8vthzPhPkb0KucC+Zi0eN+kMzacerYiZbQdLjd7MGZ02KRDDBRo1Lx4nOBqcGxqfNsP3CUDbhHnEYpH3I+QSNc/FYkPZhRApBysYDs4JgZkfQ8qFGhOpuTFl9YMfcSy2aqngXHY+9ewGbNMEfPR+pcfI3VJgLQImsNisw3UZuBysw+ZQwBYIxWw73UyIkeq5DX/Q579Mme7t4RWveMXYzcFxHHzoQx/Chz70odzvOXPmzMjX3vOe91A5+RZgmTpnfXmcr3sj2VtNyFV5y1ymLMR1HDhxGXne3NlZLas2XWTWC0QfIy7Q8NzRTLfrQsjBBTLgAkyoqJ6UxQ7ItX6E/351Ez9wdGnXNiAuZPKc2WcBikVi02uRvjhlbUKVSsqJs4ivboYQUsJnAt1wd51utRaDz6ODD/ta+fPKdea+lXk/aq4LkcpqBmxgE7N+mWaG2fLrBctnpcSQeKLR6U4F54pepjs+w2bIcHR5d7OfQSRG5pVrp6LIbFEdjPFcJbaYdrB8JpLySDceiTPLZNciXQUyqcRTSpm8I+nvXTTNsXeKz2QWQiZVFbtFPxqtDpome6XekRrceC8QYhCc60UcIq7C8iywCT8anU1ddC1CFreixHO69W8xVYIAsz3HPuQC2VB+ep+Y9H6ETKBVc7HY9FRQVkL1MQNxFYA6ZzzHQSgnn6N7CYuzmkOz2wu0MaYRAGqug4ipc1KXVW+mZrcLC2a3B5EYeT9uTFFqHwmJuYYLt+fEd+3RyiBVJTXb6xBlqmyBdGn5jPflT8kMxz6I3Sb7YhbJ7gZMoOE5xky35wxn89IbATC7GSzTBlV0LVo1d0RpuebGkemUs6FLaB0UOxiutAM8sxmMBC52EiZUSfVIeXmBtRBytALCc52k1DBbNppUP4xZCz/iuNz2sa9Vg5Ryd9eCxw5QaimKOFchV3142fej4TkQGDhYwHBZdTTDh6SpD61In6aISyRbQ4GYQZm6fj+G2i8wOTgnpcTT17t46tomxC6um6k3EShWKqm1M7Sj6cROlEyVjQLD5ZJshgMxQkhEmaxN0TJ7xtXoSB2M8cYE5wDllBYJxFxp+/j2xfVdz/r5bPQiXTS7mw7SebFNCCmx0DTZhHqnZvUcBQCfC2QLlwZZ//GZvIBLLDdrg3cj/rpJB2PWqx9MNrHa13tmgTJiLrDQ8JIARHqfEFL9fkBVzokZrw5S94rhYNhqwfdD/bxMVYGor5nb1WY7023aM4HpqmIkVMBBVwrqIGXEJcLYJjzXAWOze3YA47UfimT8bYKcbiIh4sOX6fUCTkXABBZbtZFsgu7pTpdB9bKZ7hndEAMmhrKyQDEHK+ICS83RzKsWEKt5LhrxDUSvhcTknm4/4rjU9uFHYqiUbKdhBvGX9DzNcZemkAk0PW/IwfLizD6QCsSEus8/vkCOsYkbvRAdP8Jis4a65yab8m6gnWDHkMkbdziqdXBHM91xCW3dYBO6t3dWSwSNTkWBloOQC9V+MZLplrl9q8DkC+T1bogLG330QpEIyuwGujcxvRZF+5i1oFz6/Wh4LrgEGjU3EUzaitDg+bV+EsDZLUxrUbTlwGcCzVS1lLn6YfB5HAcTAxB+xPHda5u40Y121Sb0fzsvELN/wgUyHaTTQUohJZqemzivvSjtWBTL8DIudn0/0ZVS6bWIuEAnKNbnnz5P07/DWF6O2c5q+mw04z+Nc+UznmTEnbjlYK7uJve1bqZ1b0avVgBSQrWGnu5J7weg3q9W3Us+K2AoL3eUUzvr68DEcJAx4gLtQPf5T9grmKqsXGzWkoqYdBVZ15IgPmCuLl2dsvrBFsjpJhKyog5FyogjIbBiKHd2nbjEB2ZhIGCWne7RA7KIg8XEoOQrTc1zkyh9tm+1SKb72maIts+wr1VLep92A3UoDKuXt32WHGTj+phVP54z5GCllzRrE5PKwaSUuLTho+Gp/r65uou1frRr2b9s6wVQrLddO1fZue66/QIwK7lzOaorYKIbsF2/TJvKZ4tkd0MWO92ZlgPdo5gVXAS06GL+5xNC4sxqD1JK+IzvciXIaFBK7xOuM74PzVQh5KXV/ZOglL44DYQGx7HWCxNnczfRPXmmi/TE3l0mMFcfTDlIm5YpYOvFysTjOLPaw/VuCJ9x9KPdy/LoKQcjWc2CAYh0kC45Q6V6D+YzQSkdnJtU3cGFxJOXNvDUte5WP9aWMFVKaZvwHIyIS5rQAq0mm5g2OLeX9ENDy0EBcVaN1nrwHAdenM1WNpF1Np2Zr34wZzWnCUAIzNddLNS9xPazAVvHUZURRe6YIRP4zuU2/F0OzkVx9ZxpzyzyfujKysXGIADhuc6ITowuL5/VID6gdWKGvzatuJ4tkNNNJGRFHYqUVGd7NDW6D3GoH23kkNyOp95+zOJhWn12zFpAjmQ0gYxCczyXvBsMMrzj+m2EkLiw3sdc3cVCw0Mn4EnZ0E5jciq0TSw18/uYAVXeNB8fBhpP9ygahIGcCeVgbZ/hWjdMHNz5ugc/2j0ny9hyUOAiHfJR5XIgFpXTarz14XJJN/67SfGEtV6Ix8+v4/x6f/w3bjOm96PIWgRMlUim7SapiEmJwKSrOSb1dF/rhrjcCXBooQmJ0Yv4TsK4TEodNUX7NEM+WiGktR8Ak0KzHouU/zxSKmX/q50Aa/3dC84BOtM9fdAWGLwjuopkKKtZN4nKjdc8uL4Z4NSNHg7ONyDl6Lmzk+gpByPiYQVLiQMuMFf3UPdcOI6DWkpUccQmYuG9SUHbq50AF9Z9nLrRxY3uLlYHcS0+aX4/stVkabLtSemzY6vVD4BysM6t9XbVAckLxBR1KnRbzlxdBZz1XgAMNA/S41iLllV3fLarlXMa07Ml70eB8nKfcRyYb6DuGfbLdMAWxaofrndDXNzw0fb3ojoo25JT7P0ABi0HrbqXtJoAJr2c4kH8vaIfcbgwB6WKiuvZAjndREJWCGeS0z04DHKc7ngjMI1FKroh7jYyFunKKwXLy2rqtWgaHFFTj2J6xui4y8JaP8L1XoiVVh2tWLE7WzGwU5hGQxXt0wyYwHJz+Hu8+MIw1HIQpS4LY8rBrncDFdmNba3uuQiZHFLp3ElCxrcUiWVCYqlpqARJz7E3iMpxMT5bEXGB717bxNXNAN99pouN/u5kNm9GXC/gAvuyNuHqbJ450w3kB+e4kDi92oUHVZLd8NxddTZ1b+Kwo6n++5NE1EI+WiHkxdoPwGjmRpcPjrtLr/UjXNxQmgdr/WhX+9sjPlpKXLR3l6WUywEMlVXrXuaiY5EiLvDUtS6EkEnZZWc3W3Li6qCtzmMOmcC+1PfU09UP2awmnInzqUMmcOpGF62aCyYk/ura5q6JNCZlxIY7xcTS2ViUVFfFjDs7ALUWUQFl1vPrPTx1vburwTkdiBm1ieKjBVX7hRJRGzcZximoXh5xld09u7a7AVtgUqZ7soMlhAr6N2ruaHl5kGk5mLAHSilxcaOP1X64qzYBpMVZp98zAVVmr4O7uhIKMI/UE2JyEH8v8ZkYmVozGLNImW6ihEg5KuowSbFbHwYtg7K5jsgOR6aHy0Z3K2M7DUl2N3VRSM8rz9sATP2qmnEOlu7PyuNqJ4AQyqmoeeritKfZ3YIq1elgi8Z1nER51bQOeYck4wIXNvwhITpArWtnl6LTPhsusweK9TFLwFj9YJpjn85gTSoRPLPaw6WNAHfsn0cv4vjLZzZ3pdSeCaH60LbQxywlhgShgIFNDGW6swJJOetwtRPgajvAwQV1QZmru1jfzZYDka+4Oiljk+2/AwbiesBocG7Qq5nffnF2tQ8mBPbP19ENd7/UXsrhqp7VKVTchxTt0y0HhiopJSpn/j3n1nq43Alw61ITgJqesKvaD4aS0TCetABMzmryzL7ZSGXzskrubux8jfMrLqz3cX0zxIH5Bm5dbOJyO8DZ1d5WPtrUJOKTpj7/Ao5mozaYBKIr57gcKFWnHawi6v6bAcOpG320fbbLTnfcppWpflgt2H6hNA+coYBzVkAsUe12dZvW+Ge6sN7Hxba/q++GJjtSL90WNPH9EBKuqz6356TF9fIU7ccvxIbP8MxmiKbn4kYvmOpz3Cx6zxxKakwhrifkoJ3RXBETt+5NODtmAT/iI1NA9F5xC5WXE2WExVlGU9Qt7yJt6tvVaPVyIc2qxJ5jFk/Ya3T0MX1RKDKvPGLSOC4MGM50Z9fCcx1jvzCgSm4ubvhYbg33Re9WGZTpErM+xTiLrF3orKaU0mgTgPmQXOtH2Ih72tPM1Txc74a7UiroMz5STj9QJDZHpXXwxmgT6WxF1iYSgSTz57q+GeCp610cmKuj5jo4stjAxQ0fp3fhMm0qGS0yb1Z/VtOUg6QiJsfBMgXnGBc4vdpF3XOTf5e5mod+JGY+KCWlUu7NBivT86mTOfapNpRxF6cb3RAXN/o4uNBAq+YhZGLXqkAAFYzJFkMW7fNXyuXDff6jgZjBZ1GjskZtYqMf4enrPfz/2fvvMMmu+loYXidU6jzTPd2Tk0ajURagiACBQCKDAAPCNjne63CBF18bfE2yP+C9j1+D7/W9tjAiGAwCEQS2ySYJJCEJ5TAajSZ2T+eurlwn7u+PffapU6dOrLNPqXrU63l4HjHdXV29a5+9f2H91horyPY9lpdF1DWzZ/Oamof4pD2nKQqeQptuOAsQstTq5rlnNSmVGL6Mhpqi48hKHSOW5Y4sCthQkHF4qW57AacJ3SSdTKmINGLVoOeB7Jjzd6t2O9kPkmB5EfuAEIKjyzV7H/Vy5MBL7wAAVmrRxMMU3cSwwzYpI3V2eNuU3IVgRgwtPtSRlXr7bDC4x5NYTJGRhI5CvRtN3UBelqzRtda/+7GkwkLMhYoCzTCxoZBBqan3NCb1OsOizrabhBYfCnYhxktUrl3JvV+TbtMkUA2vTnd0cb21hPWkex0AWsmms1MR1slzXwZuSFb1zetA7Fff2aqi2yJHDGwdBrNShx0Yg59gFuDjT621LMN8KdVVFVVFbwvUCrKElXr6iSYhBItVxZ9GHKLiThV429fCqbzqKZoF767mXLkJYqm/O1HISKipRk/UiZu6h/VNI5ge6KVQzeD0sR907wnBv4Ol6pRWbhgEw1YRQpZEjA9kcGixhsVqutX6lvJs629iSfdowf8s0AyCjIeKO6ONOvdE+/yud3FurqJgsapifLB1IWdlEZrRw6Tbo1gWlWaflTqLlUHnRFAhhs5y12ES0lbUqPbY6cD9zqLMabaeEaeifWvkwIv9wPaLkxVjmASHl6poamZb4SefkaDoRkcwnhaCCjEbC5m2BLTjZz3OzazYYkIN5jzEooj//XG82EBZ0dqKlSP5DBTDwKHFWuqMkEAdjCjjSR0jB3Qt7JGDtplu/+I1QAP4E6sNbBrM9nwMxcuDGIg+x6yZ7Xs64xhD8Zpvp3og/oyYI8s1VBQdU8M5NLXePRsM7qR7JeLzAQBNzcRAlrIrneflkIfzRdgIo6qbmC41MJyTUchIaPSYHeQ1DhFVXI+KqLUcH7Jt8+3taxFnzv/JgMYEFzuYhMwybL3TvY7TELpBPZLjCKmphonRgMp9RqL0H7fqKhAuhvNkgBCC6dUmgPYEL4lgFmAFDNbrd/pJes90mybBydUG8hmx7SJiiWYzZWr+ck3FfEXpmC1aiZBU0Hk8qSPBEh3Kq2xPVFXDLiAQ0K850dAMzFXUjllggNK2m3r6SZZumB3sByD8+fDzsAdawkBOqn09QgfryHIN8xUFUxZ9lmEoJwOE4OBCNdXOhcbWwrEUtkd3QKDglVwBtPjGROXsc0Jr7Qmv4hybUy1kpI6iENBJMUwLQUlFmJ2eW8UdsEYOrP/2EhokPpZ6i1UVMyUFE4OtPVHISFiq9tbpwB0vR6GXUyXi9mJme3HOmlnV2u8O05VYnCo1cXK1ianh9nVntMte2YZ5W99Em01UPM5NJ/vBX5DUax+qOF6sY7yQ7UhkNg/lMFNq4ETK87yBs7shSYV7PMmp2h2XOWeYBE8s12AS+lzkZTqG0qskxK+5ELWrSRx3BIA2ATGvZJP+jPfvXKyqOF5sYHIwS58NQnra9Qc6LVnjdDSbOu1KM+929ioDLmYQED7CuFSjrjAjeWpBqhmkZ3cH4Hd/RBRc1NvvU9mD/eAszkWZ83+yoLPxC0dQQQjB8rpl2DpOZ7hFgQgh4UJqJlDI+CfdWUmEYbZoo7pJ7EOwH70DS00ds5VmR8AcpburW8I9XhAF2PNo7oBBFOkcpzuYLjY0LFsCak7YiWaKXSxWfDAI6aBGR6GX06RCsC2AGCSru2uitScMk0B1VHzdlenlmoqqqmMo15m4ilYiUlXSDRpWGxrqqtGWMBomQakRPMesGbQq7/awB6w94bbKcnewXD8zX1FweKmGicGsZ0d5cjiHxaqKxxerqV2wLFBwBvJRZtuZvYkXU0QW6TnBZlade8KrODdbbmKlrnmue14We6bQrBn+4nrBNnLt1FkGSRQ6rQWdhRgPITXTJDhWrFMRR8faFjIiKqrRM+qoW3026hyzopsda+WVYGmG8+5oFxqsKToOLVUxYKl+uyEIQLWHIzl+xYco3d2c69x0PudDEedWCSE4ttKAanjfSbIkYjSfweNL6Qowumd3geiK9kD7eJI9hgJid/JUg9hnA7MW9CpKzVWamC01scnWfpDQ1M2eJZt0HdpXoqG1CudBa2FY7EPnyIG3uJ6LVu1x/muGicNLNYhora0o9JYRQ4hFJW6b84+uXG4QYjc32ma6rfhAMUy7iRFUiGECahmr+A1QLRV2p/cCTa3TmjZqIaapGRh1uF+0MWI8Z7rD5/wBui97pZPDoHkILjY0E4r1fIQV6NYa1pPudQCgh7vh6GDVVMOmv3hdCiYhEAW0zeK5wQQcCo4qbUu1m16S/VR9O1VqQtXNDoEjO5AOOAgJ6ZxXZWBdTWen2/ZkBqMItq/DnENAzQk2n5Nmd3e1oeFUpYlxj8pzlAKEYhCM5OSODgvrapqma084gkhn94EQgulSAzlJ9KWdZXpAFZwuNWES0vZZlJqafeGPBmge+M0422JR8KbQCkJ7p7upGTi4UIEgCHbQ6YYoCJgayuLISgMzpWacPzEyyh5BejFCoBDEBJEluv+dz13Ln7pdqbqpGTiyUsdgRvIsPBQy1FZP8VPa4ggvcb0oQZObOsvg/HM8O93oTLoXqgpmHWJyDHlZQkPVexZQuymjUeeYDUI6CmpOW6QBr7tDbNElCaFdzHJT913zvCzZ7ydteFnfRLWGUnV6XjjPOi/ni5p7btV1dyxUVUyXGnaS6YWxQgZNzcShxWpqHd+G5uVNHd7J8xpPYp1N993RKkp5j1+oOk00naNfOVm0ikI9cr4wTLiHL9g5kZNEu0vrBdbRLLgKEEECYnRkrfMznV5tYL6qYGKoxYjJy5L9XnqBVpzpIT4ZZY4Zra62k0HoFFm1YytR8G3sMAE1Z8GvV6N7DN7WtNHUyzWTYMyRjLbpgfiwH8Iec9MkODhfxcGFSpS3zw1eTEJ2TuRlse0OOB2wnnSvA0BnB4vNaboPfIYgtW4GNmciiy0xKSetOsx3tpeoKjqmS03PZDKKdZoowlMwC/CeW211umFVIVsL0dAMnLKsf7yQEQX780kD06sNz+IDEI1erhneSQXQosY59wS7JN1eq6WmjuWahtGCf9BeyIgopqhYXWpomC03O6qtbE+M5mVPijPQSQt0wrZFMoGBTItW7fxZFjgRQvD4YhXLNQ2TQ8GXcT4joSCLeGyhyr1iXVN0nFjt3JdRmSBe1mlAa09IDnGxdhGYFjXuVKmJYl313X/5jGTZ6qWfdCuGh195hDlNL2V/wOVPne3cE+xnGQyryy0LncU5Fpj3akZRcdksRpljJoTaLHqOHFhCg849wYThWIJlEIK5imLTZf1+T04SUVWN1N0yKOtGR8ZPECikY6OZLZ0GBuee8OtqOnME3TBxxOpm+t1HDFPDWUyXmpheTYdm7vl8RGBK0bGczvEkptote50THvcoQC3Clmtam/YDQy+eDUqTVTs+i6LDLixojlnRDeQz7aModAyF/oyXkBrQOdNdVXQcXqpjJNd+X+VlETW1N0VKwFuotsV+CH4+mhq1DGXPgVPRXpZE266VUcypy4H3M79YpQJqzvi1lxoxgFWUcs8xx7DJcja8WDwB+LiACOH2aXMVBSeKdaw29J7tB6DFeBW6KMSsRawn3esA0DlfEmVe1U8kiiEjiXaF1+2tKYsiFN3ETKnRM4ufIMyVm6gquicdL4xSzTxF/YIc0e50e9DL7Qp96/sXqwoqijelGqCXw0pdTaVDUW5qOFVWfP/W1QgJFuBtkwUAsoMa12GBg/bK9FJVgWqYvgwCgFa9m5phW6bwxmy5SedOXUlSlOAR8Gc/iKxz40jAOmc12XtQcKzYwORQtm0Wzg/jg1lUFB0HFypcn63ZchNVVe/oXEahzxJC/PeE6K+8KlmzvWwu9+hKHaP5jO86sBneWsojB4QQKJp/UhFmk+VpLSi0/KmjzO8uVBXMV9SOLjdDRhR6YgnEKKNenYpgHQzKHvEq7jltkdzPB2P71FUDhxarNAkLKP7mM2JPBKOKDQ1LNbWj4LgasdMNeKv7M7g9mYHOYHq2rHR0M/2QkUQMZyUcWqyh3ORfxFU0s8N6M6omiJtmz96vn2p3S6G59f1VRceR5Qal4brOi6wk2krqaaJsFY7dLJ+ViHtC0U2MudkPotCKqzKdCRbViWlnjB1ZrqGq6h3nUj4joakbPaPa62andlBkSrVVgCg4qPGMQQi0KOYtNmU7S4pB1U2cXG103GNsdC/tcTWAdpXdFr3O5yNIPIwxQdw2i8R1XrrF9YLUyxXdwONLVciSiLqm95Ri7iWAGLXjvxaxnnSvA0D8pFvVTQxmO+cSnRAdB4Hb7oT5LP7u5CruPLGK2XLT1/okbSi6geOrDd/Oclig4CeMxEA73UzJvb2DxS4NFjiZJp2nHsj4U6rzGRGNlGbSTpWaqGuGZ/HBJMSeAQzq+guAXXV2I2NVpoFOATHRYQWkGyZmyk07MfdDRhKh6ukIoNRVHSdXmxjz2Bdhs4nsYvRlPzitsnxtXwjqqo5Di1VkRMEzOfHD5uEcTq42cLzIx0asoRk4Xmx4jg2EFWJ0kwoT+j0fXsqrdQf7gc0yT682PK3j3JBEAeWUadWlpo6yord9JtSmK3iO2U/ZH3DZLPrM77JOnm6YOLpcR0YUfM/gQlZKlQXCwLpXXp3uQBV33bCYVJ3vvz3Bak82RaF1Ti7XNN+ig/O1dDN9waiZ1QYMs7PDvFIPdjkAWrO7neKTrf/22xPs7m5qRqDAoBc2DGRRU3UcXqxxvX+9koqoc5peNHvAUu3uoNCyMRShQ9H+qE+iCdAuYbmpp/5sLNW8C8crEYu2YewHt6I9AAiO+V6gXTzNDbtI2cuk293pjtjdbWpmG3OGjWi5Z5mrzj3hMcLoFFBzgsVivVgLWnxot+itKq2RzqBRRtrwkjpGDhj86eX+z/ex5TqWayomh7IwCVDpQeGBQfO0Tgs/M9cq1pPudQDootMdMK/KIImwKS/uBAsAJgaz2DpawGpDw50nVvG76VUsVZWez3nPVxSUG52HMEO4ijtBQfYvQFAhtXa6cVsAiZYo0EpdxVJNDeyU5aR0ZtJqin+SCdCqPUuY/d5f2NhBRhLtz9fLd5Z1upfrGlYbui9N3QlRRCqV2bkyZRx4zaSGBU1+FEkGW0iNeNNGCaHP5ONLNRQb4YmFGxlJxIYCtRHjISw2W2qi1NQ8E96wohRNriTfooEzweoQELO64KWmhqMrDWwodCb9bhQyIpZr6Z4jc+VO/Ycoc8xB+4IKDdK5VS+KINCiEs9XFSxUFU/aLAP1LU+faq8ZpkcgHW223a9w62WLxAoabL59vqpgfMCf9eCEAKFNO4I3qoqOU2UFYx6jMFHGL/zsBZkeiJ99miS07u7p1QZW6mpsSubUEC3Q8dSB8EoqWGfZr9DCoPmIkmYk0cMqq3V3OIvXyzUVJ1abmPDplOVlypBK89kwTIJTZaVt3pghissBQP8m97nZZi3o0el23qNe4mluCD0UU9PZWeF0v4jY9dcJ8bCRazmeuBXM7TEUl06MW0DNiYwk9oQdxISLvZ6PwawUyO7zcnxw1ti8Ym3AP+ku1lUcXWlgY4Ey6XKSiKV6utajTqguNXvA6XKwnnSv4zRFXdXbqGBhfpqEwFPQaXp6Gj//+c8xPT1tzeXRf3d7ETPIooCp4RwmB7OYqyi443gR958qpzqz7IRumDhebFCVaZ/gLZRerpsY9qGCA1bgBEs0yIMWRxwXw2y5CQLSocI7PzuDu2+7FfOzM3bSwfuinC03fZNMoBU8DudkT5VgILzrn/FQ2Wx1NQVoOv3aXKUJASRSx6YgS1iq8RVAUXUTJ1YbGM5JnkleWHfXjyLJIAiCTatuBU5O31n6+Z60aOVhiaYXRvIZ6AbBwYVK6IyW87l1Q9ENHCvWMezR5QaisWJysn/X3zuIbHUrTEJwcrWJqqpFKsIUMhIampnabB5jQATNtvt9XkH7QhRgi+v5BU6G1UE8ulxHThY7ng/nOUF9y4nd+UkL9pymlw1QQEdTMcwOdwaGTBv7oXMtDMs+zc8xwo2sLKCYAoWaYa7cRE31ZghFCSD97AWZHohpEs8ESxAoO6jS1HFkpYENhWhFCCcYxf/QYpXbnaKbJnTDxX5wrEPYeeZVlHKqdnvZIhkmTSxMk9KpDbNzLIiBPRtpjhysNjQU653UcqCVYAXqYBgmMlLn+IUkoCUg5iWkJrQ8y73E09zIy5L92aQNL/eLlQgFCCrcK7R9npLYGtECOllSXnP+paaOxYCmxkBGxGpTS93O1nO2PQbN3h2XM5tFwOlyED7TzZ4VxTBsRsVgVkKph3PdwYKL6/TydZyGWKoqOLnabLscgpIKQggEDyrcjTfeiF27duHqq6/Grl27cNOXv2R/zW9GkSEri9g6kseGQgbHVxq441gRj8xVUrXGAqjS63JIZzksqaAKvP4/z5RXPdXLrYDKJDSYn/XwpL7lpi/j5VdcgPdc/wq8/IoLcMtNX0ZOFu0KMQ80tRbF3i8giuZX7m2HxNDmO+uiQdEKvYm6qmO+ooYyKRjSEEBZqCpYqfvvi2LIzJFqEN8klYHRJd3FB4AezKsNHXkPb+s4mBrOYb6i4vBS3bco4X5ub7zxxravz1cUrDa8aZpAeNfGT82ewblVOmc1acC1WFUwHtE6JCen69++UFVRUbSO4lQxQnLlR50FWsJApulNERSsruZ8WaHr4Vpvr3NCENJhgTjBKKNOn9Uo3V2/wi3gbYvkfD62j+SxZSR8bpkhL6dHJ1Z0AydWGxjxKLwSQhwF7GAf+yGHBRCDUyyKJfRt/tQiTbCOF2uoqdGYQV7YOJBBWdFxeIkPzVw1CAzinvMPHzkwLMs1rzPP21LPaYtE9+FcRcGpsoLJCHPtaXZ4F6sKTNJZQAeiJVhNm0bcyX4QrC6uvSe09k63YZq+4mlu5GUqNNiLJMvNqDQJiaTur+hmh9K7U6AWaM10t4twto8cLFYVal/p0/UvZNJnQAAs6W5/PpYjCi4S0vJnZ6CvQ1yMmNbepvZpnc/1qXIT06tNTA62nhUaT/VurtstwglEL0CsRawn3U9xaIaJx615LmeVPshvVjVIh5DD9PQ03vWud8G0uD6maeLP3/vHWJ47BcCf8uJGPiNh+1gehYyIg4sV3HasiMOL1VT8Zk2T4MRqHRmps2PEEMWvHAhXimXCQO7iAwu+DZNgsapaYm6tdZ2fncEn/uK9bev6iQ++D9WleVSaOreK7FxFQakRPC8b1Y95OCDwc6psujs3jFrL1sFL4dkLtnc5p4vSMAmOrdQxkPFnP7BKrN9a6AYJDYBly8fei15eyErQDCOQPhwFkihgciiLI8s1zJY7KWNez+273/1uu+OtGSaOrtQx6MME0QwTFSXcrzzINqp9Hs1dlBKgGVRELWpXM01bPcqMqWMw21lEiGIt6DWjycCsstrm/F3BtKIbOFqsYSArt61b0DnBmwXiRk0xoJvtFMGwmW6m/eBHM5ZFsWWLlGmf1QTosxOH/ZGTJTQ1M5XO5kJFpVoDHvu/rhlQrDM60FJPNzHqsb9bc/4+nW7QYPrkarBFWBgEQcDUUA7Hiw3MVpLRzAkhOFmsQ7E6tQxhhUqAnhU5SfLWPHCodg+5zgn6N9C58SeWa8hKgi8biyEvi1hOiUqsGSZOlZu+514UQTlFN1HIiMh5iOtJInz3hGixyfzE09zIy2LPxNTcSXdF0e2kOCi+amoGCtn2rj+zILXZlK5zgs35s1/JBNRGAu6RNDVinNAMAkLaWV7FCHZ6fuembUHqiCfaxGUFAQZpjxUbmoHDSzXkXVR15uudljitE4QQar3pa522nnSv4zTDsZU6ZisKpobbq8JBQRMTwHFejI8//rgd8DEYhoHZk8csGpS3BY4fhnIydo0NQBSAB2bLuON4ESeKda60n+W6ioWKGtiZqiqGfVF4BdN+AjhuMNXuVidPtwNhAkrHO7na6BBQO3n0SMe6moaBxZlj3OY1VZ0mEkNZbyo1Q9RLIShZ9lLZrLusgGZKDRQChOTcYAIovFRHF6sKlutaYBAQRi8n8FfrZshIQtuz0dAMe0+MFTLYFKFTEwWFjISsJOLgQqWjs+P33B4+fBgA7XKv1NRQNXtRgK8mAoA2b1032ujlruIcSzriJhRZUbD3K08s1lQU65pnILsSwS4M8Fe0d4rrOYtz9iyeIEA1CIp1vePz8DsnVk4dT9UGR9ENHFmpdXSsw/yY2RiK35y/l4BYkqQgJ4tQDf7ik4ZJE968LHoWpdg9mg/4WwF6BxQync9PS/uhvRDD9oQkCmjqJkwTsYQWvcDu9EOLtUTz7/MVBUdXGpgabD+/oijaK4aJrOytRu9U7XbP7wK0A7hQVbBYVTtYIF7IyxKqSjpWcit1DRXF8B/VslkxAeMXuul5zogCm/NvfzbYnhBB79jpVW/xNDdkSYSeMtWeoUM7qB4+sgbQrv9YIdPBBMlYhWug85yQLBYh+zoTUAsqAAOUll5upM0O8hAPi6L94CGiBlh7wmLEOIUnWTxBO93tr3V8pY6VuuaplJ6TRCzV0p/rrig6GprRMW61Ti9fx2mJlbqKJ5bq2FjIdMxUBCUVXhTiM888E6Loqr5JErbt2uPZ4Y2KsUIGO8YKUHUTvzu5it8eL+JUqZnYLosQqn4LkA6PWydY0DSQ8Ra30JhdWEhVnVGJWVJhENgdEAGUWrTiEczv2LO3Y11FScLuvWdAM/hUZFliFVYRj9LxBxBoI+f8U9y0UTaDVWxokanlDBlJtD2Sk4AQGkRLAgKV+YNsTkziT5F0grEfWLBgEhpcpIHxgQzKTR2HFqptz47fc7tv3z7oholjK3UUMlLH+cDgZD94JR1R1sI5C+wlFrV1NB9oCeWFfIYqd/O01WN7IyMKnsyYsPGLsAKdU1yPrQMB7IRZEoBq08BARuz4PPzOib1nnIGGZqRmgzO92sByTet4DsKo9goTDvP5XNv9qb3VeONCALgnFss1FYs1/8JtFJqk37gWYFFoRVgjB621YnsiIwmoNPXYQot+GB/IYLWh4fBSrSt2RFMz8NhilSr0uz7bKGvBXFG8zhtP+zTX50nvDtn3vHKikKKV3IKlSeL3PsKKUgClTXsliF7ies5zQhTpugjwF09zQxSBag/oxE2XN3WUkQOAJuteMUFG7pzpbnm3C/ZMNyEEp8r07A7bGwVZwnI9XXaQqhO4X509H+ODYSMHnU4mksgaGi3dILonaDzBlNwZVuoqjqzUMe7jEz+YlXri1z1b8rZkjaruvxaxnnQ/RaFbtHLVIaDgRFAA2dSNjgRt+/bt+OxnPwtJog+PJEn4zD/8X0xu2dYm+NFNp0EUBIwPZrFttIByU8ddJ1dx98lVLCZQOi81dZwqN0MraVFU3P0q807IIlVedR6WbC0I6GXkJaA2tWUbPvSpz0C01lWUJHzok5/G1JZtXFS7GV02KLFiCKOX64YZ6pnLFJqBTnq5aIkCqQYJpeu7MZARudgjrdQ1zFeUyPvCe/wi2LedgSm50y4Z/be0ZskYffTEagMnHDZiXs/tDTfcgO3bt2OhSpX0g2ZRwy5HVfenizKIDmGgbotzbjAxNZ40wZW6hoWK4rseYZRqP4VqBiauZ5h0/7MRabYWWZl6qHq9vt85sXnrdgDp7KsgH+SVEKo9HUPxT468Rg6S7omMJNqWhzxACMF0qQEB/gU69nwEFTTZuJbfHDMT4XTuCfZ5DmZl7BjLBxaO40AQBEwOZnGs2MBcJX6n68hy3dfGLRKlOsAVhfnYA96ODwDtnIUVjxlkSeRWuHaioRmYq6gY8dF5MQkJ9W4nNo3YY084LEi99kRepnascZhSeVmyz680oRruOf9wdpDb7cQJLwtSr5nuclPHQjW8sQCkoxHjRE3RKTvI9fcs20wQ//vWr+PP5vw7z4mW5gGLjQyT4PBSDbph+o5ssbnuND3L66qOEx5uObphomTFtUF+5WsV0Ybk1nHa4USxgVPlJrYOex/MQVQXp/WVE29/+9vxwhe+EIcPH8a+ffuwYdNm/OrIMgwPAbFuIFlK55phYqFCLXO2jxawe2MhMDHwwkypCc0wQyl5YYmmZpBIlfWsRFWJRUHAQEZCXaMzVKNZGYJAiwBjee+/4brr34grrroaJ48dxY7dezC1ZRsAelGu1DW7U9INmJDc5pF86PeGCZ7QAkRwgsUE5YCW8IlTyb3cZdemkKHV6apqYKzQfQA6XWrYF5cfdOsSB7zXIkzBnUGyrI8EQbAv+prKr2vlRlYWMZyTcWixhtFCxi4suJ/b7du3wzAJjq/UkQ3QOwDCafZRilK2gBjx9xiNi5wsQtXp+EW34lJunCp5+zAzhArK+ShUO5GRWntiICujouioqQY2ARjNZyCO5n11BvzOiaxlAbNnfCD6HxsBx4sNVFUdO8cKbf/e0IxQP2Y1QLkcCGc/dIO8LGLVYj9E6YSGodTUMVtWAgPDKHPMqiUS5dXpFgTqw97UjLY90VaASP6ntCGfkZBRdBxarGKskIlMW1+oKDiyXMOmwaw31T4CpdovtgAo04O1B1sKza2EeXIo12ZFFQV2h3c03s8FYaWuoqbq2D7qfadGs94kkH32BD0vGYtIwGBWRtmxJySRNini7HEmpsburrSg6K6kO+Jse04WPfcFa2YA3nsCoAyyBSagNhS+l/MZKlJbUw2bZcMLhBA8sVxDualjh2t/RBGU0wzTUzuCznRTRozX3SEKgAGq7D9XbeJUqYktPrE/wOI0WsRKqivjB2rJqnXcH6tNNpMPbnd3P2E96X4KotTQ8PhSjapaelTonUGT+1JgCZNf4Lh9+3Zs377dfh1RoGq8vDpYAO1YbB3No6kbOFFsYK7SxM4NA9i1oRBJbKmq6JhebUSirqyGda90/2qhE5LoVO2mSTcNImUQQqufm4YLvj8/tWWbHUQzFDL0omzq4cUDLzAhOTkksWIIo89qBgm0hgJa3QpCiF3pZYWYnCxicigbOnPlBacAStROhxvlpobZkhK6L0oNjSZGgGdXRrUKMUH0dKBzbrWmpi9mM1bI4FS5icfmq3jGjjE7wHI+twCda1+oqdg8FHzhhtEDVd3EhoHO8RUn2maZPQTEuoUoiNzUiYN8mBnCCnSqYWJiKNvRpXBCFlszigNZyQ6cosLrnBjISCg3dK4B9UpdxfFi3TPhZHsiyI/ZDEiuABf7wSeYjot8hiqYxxHlC8Ipq3AbVFCKOsccNNOaEQXUHXdHRdFTFzmaGMzi5GoTR5brOGdqKLSoq+omDi1WIcD/c7U1D0K6V0GaB4LV4fXqdMdlR7HfxVSjeWGu3ETGYeHkBjsnRkKsN/10AJi1oPOcKCfcE3lZRKWmoq4ZqSXdhJAOpWqbUh1QlGpaa+HV6WbNDMC/YNvQjFABNSecGjGbhiL9SGTMVRQcK9JZe/f+CBpZc8J7T7iU3F13B7OmrSg6Di3VMBDgMMOQtea6d2/kW6wFnJasnYKkzjOTR3G037BOL3+KwTAJDi1W0dS8RTqA1kGYkYQOUSzVIIECOE5IQstHkRdF0Im8TJXOB7PUY/S2Y0U8HkHpPMhT1Y2woInahUVJujvFotiBOJqXMT4Y7l3qRl6W0ND0rm3VFmsqFqpqZApPWFKh6CaGPFSdnWDzaAbxVrQf8bFTioKkdPvZUhMN3fC1MWKwgyYfhoOim5EqtE5vTS8V2rQwNZTDbKWJI8vec5umSXC8GD7XDkQYv9D96aIMXsJAPCifOVngpk4c5cwIm2NWDW+FaieYuB7QUuNNWoAoZESryMenAGGaBEeXa9AM0/NZKTrOTK9nmc62h8z5O2yRvJTcu0FOEqHofMTU6qqOmVIzsFsPROteqboZKEJIPcvdYlHpzt+KQsv1YKEa/gwdXa5hoaoEUprDi7amNQvufeYw1W6n+GTSzzIvi6hxtMuqNHUsVrXA89+OKUJo9oNZyTMpZ2MoPPeELInQTZJq0dcwCQxCXDPd4UWppmZgQ8G7WClLIkCsO9TLn9r6HVEE1JzISKL93nihqRk4tFhFxmcEL8yvnI3veSbdotDOInTdo6LlY3+sWEe5qUdSBR/I0LnuNIQGF6oKij6WrFHn/Ncq1pPupximVxuYLjUxNexfWXQG0u6gKYgK5wazhzKJd2WaFwazMnaOFSCLwIOzFdx2bAXHV7yVzp1+1FHAwy4McHU1XcF0PiOFJnpeYBSgboJRQghOFOsQCEKtVRjCqMSaGRw8Aq15NNPkFzgxFGSpa3ukhmbgZKkZaV+EBdLO/R6E9kvSWxgoDUiigInBLB5fqmHeY25zua5ivtLpA+2FMPqsieCOJns/bP6OZ/GhkOGjTsyq8l4+zE6wTp5fsECIt0K1E0xcD+BHq2bWdLzm8xaqCmbKCjYNeidYYc+HapjIe/gPO+G0RRq01qyW8P0L1jgHj2dsvkK92odC9kQxQgAZVrjNSIJNoR3sYXGukKGzwYdCCtnLNRVPrNQxPuBPaY4yx0zHL7wFS4FWcc4gHEcOMhI3FxCAJnh1TQ8886J0NL10c5xgwqwAv7UQBKCqpDfXrRomDBOe9PJASrVJPCnVABvR8lYvB5heDk1W43RNCxkRq83kGjFOBOkdRLHeZL7tXh1/wH13uEXlABDKzpkY6Oyye6GQtfy6OXvZGybB8WIdeR9L1pUIYyhrGetJ91MIlaaOx5dqGPapoDIEdTQVaw46SqLGaFCmU71cS69CP5rPYOdYHoZJcM9MCXd4KJ3PR/CjdiKIXs7UiKMk3d6d7uRrIYuC/R7jwBYMC1DKdCKa+Eu4bY29J8A3wQKSCaDMVxSUm1okClpYxwYIVnBncF44aTBBgjCYlSGLAg4uVNs6JHYxRkAkmmExQCiKEPp8hO0JpzCQe84/CfKyaAXUyZ6zhaqCUkPzDfwAWsxjSrHeOhjEmt0PF9djHSye54QoCCg1kwfUmmHiyHIdUsC5F2Z9w2Y0wxTtmc+u27s9CTJi8nXQDBMnVuuhrB4gmg0QEHxepFGIiYpNQ1ksVlUcWa57fl0zTBxaqMI0gwsH0eaYTeQzou+546XanfScYB1jHueNaRKcKjV9kyKGKMrMxKFv4QVWSAM46mBIor1feUM3TBxarKGiaG3nRlhRirjOQjeccZXfTPdqM9j+0wsDGQlNzeA2xrFYVXB0pYaJQW+XDxZzS6Lg27hoWsr+fs8Hs6UFOs8JSRDQ0A0gYkMAYM8GuCfdSzUVSzXNlxEWRdl/LWM96X6KwLQUC6uKHio6ZidXXkm3j3ekF5w0qF4lFYIgYONAFttG8qgqOu46UcRdJ4tYqChQdRPHinUMhvhROxGUYIWpETsR5EWcBHmZqnabZvTuLrM+MggJtbViCAuamNpqqHgYYz+YfJMKgM5sNnUzdvCh6tQay2u+yAstlerO5yiKgjuDU/SHrUXas5pObBrMotjQcGixZu+flbqG2bIS+cIrBsxpBqkyOyEKtBJPCOyuJo9uJKNMJglGDZPgRLHhW5VnYHsi6zGSAzjWIkIBwq3QzOOcGMiIWK6rsc4JL8yWm5ivNAPF/sIE5ZoWnTpotl20EiynsBav83K1oSWyA1qsqp72jl4IEw+Lcl5kPQsxvTknREHAxGAGR1dqWKx2smKOr9QxWwmmlQPR55iDip7O4lzrvEx+dwgCbGHMJCgrOlYaauhoUevM9GEH2crlQYUYoSMhTS40KKGWgm+5aRI8tljDkeU6tg7nXerlwc8HFeL0nucGvOMq5zpIgkAF1GJq3jg1YpJCs5yCggopzkKM3z0TFntnHaJy7qQ7I9E1nIihaA+05rp5gRX1g0bX1unl6zgtcKrcxIliHZMRHrog6xtnAh0Fbn/qXgULkihgciiHzcM5LFVV3HG8iPtmSijW41U9w6yhMpKAXITEVRIEW2TWLSCWBIWMhLoaz2t0pa5hptSMRB9mYIWYIR+WBJv1D1sLSfSY8+dEqXYKoMQBmy+K6g3OgiY/D/uMFK0QY8+3O4LIXnW6gZaN2LGVOqZLDVqMKcYrxgSNX0QdRXHaIvE+J8SEAfVyTcVSXQ09M5xBk1fhRtWjFehEAbbg4hCnDhZAqYJxzwk3GpqBw0s1myXhhzCbLN3w9tx1gumBGCbpmE9MgnxGQlMzu7YDYuKTWanTK90LYfO7URwf2hkxfEdyomAwKwMEeGyh2paQFesqDi/VsaEQvB+AaHPMmkk87UsZ2opzHMdxCrKEFQ6+zEtVJZLdZSSbRVkKZAh5sx+SCw02OPuWE0Lw+GIVjy9WMTWU7ejShnU1m5olohbQ6WaPh7Pjzz7LqeEctkZwZvECD0tWgBam5ipKYOwdxTrNJCRwnIWypOh/e+2J0QjPqRuDnOe6o1iysrWIE5+uJawn3U8B1BQdjy1Wkc9IkajQfpRRdpDFUcpmNCjnJZn0cosDWRKxZSSP8cEM5iqU+hVntieIUq1adJ8or8e+x6nGyyNwyslUHChqYG6YBEeWazDMeIrnYbO7qk69qcMSLKay6ZzfbWim3clJirgCKM5OZtR9EYX9EG3O3yEM1IPxCy/kLBuxgws1HC82MFOOV4wJCiCjjqIIHoKLim5CT9iVBWhAvZwgoJ4pNQFCQv+GIPYDYAkjRVCMbRPX41iUykmUBZJEzf3ESh2rjXARnrCZbgISPnLg0ANhe0I1SOIZy5xM7be6PXtX6ioWKmpgcMwQZSSHJljBI0qSCEdiwbdQGRWbhnJYqCo4ulwD0KILK0Y0S75iRGXmMHE9iY0cWPtHM0jihCCfoWJqzQSvY5gEM+Vmh/eyF8LWomntiajsB54+9hpnMbUjyzUcXKxh40Cm4+9RddNmdgWtxViAijWzkSOOc0I3CVSrIiGJQuxEkyGJRgyDszAVFF+EdXdb40nBdpO8GTGsWMuLYh7FkjWKjdxaxnrSfZqDEILDli9gXJVqdyCtsS5eBBE1BkaDYgmWSWDbkfUSeVnCttFCLM9BQkjgTJ5qEAznoq0prdK71Hg5XG4sQI9a5Z6rUI/GKIwHJ8K6V1ETrNZcHtoYE7wu+oGYAigLVQWLtWhBNEPQpaDoZmSaum2Bw1EYqBuMFTJoaDqOF+vQjfCEiEF1FHu81iJMldmJrFWld9IIeSg0MyZIN53NUkPDXKUZWJVnCFMuj6Nob9NGOWoeCIIAEULXSXe5qeFYsYENhfC9XQxQJNYtj+yw2fY2PRAHJTMpO0gUBJjoPmmdLjVBQCLpHVSU1kiOv489wWgu2LGBCWYCrXOCB606DiRRwPhAFk+s1LFUVXBytYFTpQY2R7xHwmbbmT5KUGzhLM45O59JCxB5WUJTT2bXWKyrWG1okbRiwpIKRTcx7OOMweClB8LlnAC/ca8TxToema9iNCd7uxw45pj9lMU1I5hS7XQ5aNsTnO6ObjViALqnDy9FK0yFNTWoyKAQqBcgiQKzsbdZUjw0DwxCuCTdUS1Zw+7StY71pPs0BiEER5frOLbSwORQNMVCwF+lujXDHINebtGgChnRplc/GYlFN6ipBjQravI6KAwSXZSizYuYs4BYNmJ3V9EpPTQni5EVyxnCVNzjJFiyRRvNyaI918yrc1OIIYCyVFXw8FwFWUkI7UA6EaTiHkXBnaGVWDw59HInNg/nUaxrmIgorAeEB01R7fQAQLKq9FlZRMbaFFxmeLuc8weoTVhTj8YIscdQAhTto4zlpCmul5MFLNXi2+AQQnB0pY6GFq2rGaRIrOgGslK45aRTD0QWBeSs5zOpgjlAn7luRg7KTQ1zZSWyqi4LHoM8uDXDxEiA9zuANoulJ/OcGMrJMAxqOfr4Uh0j+UzkczNszj+qPgobV5NEwf7epAUIyXrNJMnmQlUFSLR7JGzOXzPDbRbb2Q8WrZoHI0bmY5U1W27iobkKBjKS78hA0aEd5BebEiA00WQuB6IgcI2tktwdgOUUtBqtMBVKs7e8yoPYD5LH3cFDIyYriVju4t5wI6ola2st1unl61hjOFFs4OH5CkZy/jYcXvBLsHSTUAGEGHQdpsYrCAJXumQvwJIrv8MuinAYg9OLeICzPVQhI6LU1D0t0pw4WWxguabF6vYzBKm4A/ESrIxEK7J0T/CdUYwqgLJYVXDvTBmKbsbu+gfRywkJpkg60WaV9SQn3bIoYMdYIZbgjJ1o5mVf8Zeoz0dWbM2j2YETh+eDzfnHDZziWMgBDnGkIEX7iOJ6tvYDZ6HBQkZCRYnvSbxcU3Gy2AgUT3MiqCil6lShOsr4BaVL0v+2Ve057IluxdRY0Bi10BpFpZq+nzChQUcw3UPLMC9MDucwW1HQUIMtrdwI82NmnbywtfD2LOcguthlIQage3q20gy1j2MIS7AIiWazSNznJYeCVEGmNothsUQQFqsKHjhVhiQIgXskVO/AGlkLWgunywHAN9nsViMGoLPghxZrGM7JkQoxYWcFY0oFsR+cX+N5d9C5bi3RGEdd1XFitYmxkPvUyS5dVy9fx5rC9GoDD82VMZCRInUnnPDr2pjWbGOQ6qwbbWq8T3LAEBdB3V1Gk4wSPALp2J0wsO5u0OtVmjqOrDQwVvBPkIIQFjQB0fzKAYv9YKanxiuFCKAsVBTcN1OGZpjYPBwv4Qb8hQbZ3FXU8QuJzbebLdXutfJsAMHdqzgq7oBlT+JWXuXkK50RBazW41nhLFQUlJt6JAs5IHj8QrMEF6OK6wkucT2elnp1TY8VRBomwRPLdRBE0/IghDjmEzv3haKbGMsH06kZ2s6JDD9adT4joq6ZscacmpqB6VIz8n4Awn3bo1CqgdZ8OyEEg7neC6k5IYsCto8WsG005nhSSNFWNUwM5oIV7QGXZzlHocF8RuxaTG2lrqLa1H0p0k4455iDbEij2Cwy8BUaFBNR7Yt1FQ+cKkM3SWiRbiWERtzUDRQy/srlQLvLAcCfCZKRRLugGhVxnIIY2F3qp6eiGSS0AOxtS8tHhLOmGonO3rmygoqihT4jtOBjsUvXk+51rBXMlpt4cLaMrCTGqkYz+HXyDJMgF2OeG4AlFEX/+8nu5sVFkIp7SzgsWlIhCmh1NTkXHzKSCNXw7+ZRemgNNVWPrNDtRpQCRNSuJqONAnAIiPHbE/kAAZT5ioL7TtGEe6qLhFs3CUpWQt85fhHNIovBFpWDI8FaIywQIHhPRFFldiLT5jHKlwmSz0goNlQ7gQuDbpg4sdqIZy0YSKk2kZWkSMWYNnE9ziwQ1h2LM9c9V2lirtzEpohd7qpi2AJ43uMXJHIRuO2c4GobZhUpY+yv6dUGSs1oM7sMYbOJUSnVLQExvsWHbiE7xP6iIspaRClopOVZXshIaHSpaj9XUex58zCEjeQwD/uwpNtZOGcMMx7nZUYSoRmkq9cqNzU8MFtGXTMiFbODinMAVS4fyQd3ip0uB0Aa7CBqyRpHwHG20sSJ1Uas+CKsKEVjhOhjKDzvDnuuOwET5MRqI5LWDStUDmbjsXPXEtaT7tMMCxVK7REtv+q4UHTTPnA9k+6Ys8CeM4prJLEIovyoBqXDRV0PZ1czDZq9KACVpnc3b6mm4kSxETlw9kIQvTxuAYKJZgGOiiwndUzAXwBlrtzEfTMlGGZ3CTfQWgcB6ChgaEY0BXcGURSouJ7ZOx97ngjq5Cm6iXyIKrMTsiTaIjC8O7z5jIiGbkZe25lSE8s1NVbBMqjrT5MrAdkIZ4WnuB7Hc0IWBXsPh2HV8nCPowHhDJq8PntCSKiIGkNWEjtoozyeD8kKIqO+VoslFK1DzxCmSByVUk3ZYmv3nADCk4oolGrAm17OI8HKyd3N79ZVHQtVNcYYSrAfs6IbyGeiFWIY+6FViOGzJwQIse/jmqLjgVNlrDZ0bIl4t7IOsp/Ar2qY2BCin+B0OQD42iwCtMjV1IzIr8do5fmIDiYMQSMHjDUW9nyI1mgSIQRDnO/QrCRiuctZf2bJGuU+DRrdO12wnnSfRliuqXhgtgwjArXHD0GVWJ2QyJ0rBkls+VO3OrxPXpU+DgIFswwTA1kpMtWedTUNx4HIM3DKyxKWPSi01CKsDkLiWb25EejHzGyyIgbmzsApjQ6vlwDKXLmJ+0+VQQiJPcPtBNsTox4WIIoldhJHpC4jim0J1loKpleDilK6iZEQVWYn2qr0Gb5rkZNES2k9/NxhYznDuXiepiyp8AosVJ0KI0VZizZxvRTGcQoZ6kkc1vVfbWi4b6aESlOLdZcEMmIM03K/iHYOOZ8j1uXhlViIiNbxJ4TgWJcsoVC7MMPEUD6cUi2JrT3xZLocJEFQUYoxkqJ0ttrG1TiemWx+N+5rrdQ11FQ9kkgi/f5g7Yeo4xdsXC2NuyMrC/Z5FgWEEBxarGGxpmLrSC7ymR/FJitKoslcDgD+BVvW+Y/CLGloBh6aLaPciO4UBLSP5HjtCyqiJoUWKyVWxCfO0Qs+sfZARkSxHn+u2zAJjhfryGekSGONyyGCi6cD1pPu0wTFuor7T5XQ1Iyuu3hAK1AYy3dSQQgBMlK8xE0ShI4O1lpJLILo5YoRrjDqBOtqOi8SnsWHvCyiqhpoupLX2XITs+UmJoeSHWJBFUhFNzGUi1eAYOCdYLHXdwqgzJabuG+mDID6zSZBS3G1cz01I7pyOUNGdu2JHvt0J0FQ90ozSagqsxPOPcH7+WDnWFiSdarUxANdjOUQQuwChFfQpJnEV8HXjTS1HwBa+KxrwQUIlnCXmxq2juRjdXeDPIip/3B48MjgZZXFay3yGcl+r0FYrqk4sdodS6hlk+Wj2K2bGAmhjAJWwdbqzvMevegFNMO0LYe8C9jRrUid42o8Z7oBiwXiwxbzAiEEs+UmspLILdGMelYwATEn+4HXeZmXRVSUcGFWhoWqipOr1CEnjl5MkIq7qpvIysHz3EDL5aCTXs7v+RCEYI0YgO7xR+bKmK02sSVG4QFwjeT46GAUMiJyYYwYp0MO53UYyMpdzXUvVhUs1bTI9l/FEJHB0wHrSfdpADZLU1OjzdIEIczaIya7vI3ykgZdMk0UA7pXhERTI3aCdTXToJcXPGhQTY1ahBUyUixLLDdMQgLp5ZoZbR6PwflW0hBSA2iFeqWu4lSpiftnyhAEdM3+cIJ1Krz2hG5G97i236dodSvWmMgg0G754oU4M1meyqscn4+cLAZ2b+bKTTxwqgy5i7GcumZAsQJUv2A6sqK9U1zPTjT1rgSevJCVRaiG6SumliThBpwjOd0HjwxtVlmctR/ysoiaZgR2bgyTWqWZXbKEgvzKAcsOKULSTWe62ynYddWw2UL9Dps9J8CzKBnHitRboZmf0OBqQ7OF2sKwUtewWItOLQfC/Zjp+EUUa0Grw4tWXNXQzMi6FUGgmgfRxnF0w8SRpRokId55D8CmK3udmU3dQD4jRRw5aDV2eBcgAKro7qcRA1DhtIPzFRwvNrF1OB9ptt8Jtg5+IzmKHuxVzuBUcmfr0NRNO6FPAqavEWeumxCCk6sN6ngUMf5cDijani5YT7rXOKqKjvtPlbHa0LBlOF6FzQthfsyyGJ9ezigvAyl0NdNEEH0WiGedBrS6mizBamgmt8BJsg5F52VzotjAcl1NfIBVFN0Wrxnz6O5T6nqcpDv9Of+BjIjVpob7T5W4JdxAMPuBALH9z2VRhOlQqtYMksiupZfwYz9Qi8DoavaAt/Iqz3OiIEuoNHXPJGu+ouD+U7Qw042dHtsTeQ8BpKgK1Qxe4noGQSyl7fDf4a3/UKyriRJuIIQdpMdjgjivmjS6eWFiavMVBadK0UXk3FgJCCDjOB0wSrVzNIkAXYl+PRlwKvt7zzHTsZxshPNCFAQPSz1+hZiGaka6i5qagUfnKzBiFlqD9gQbv4jyevYss9leuOGxJ7KyCFWPJjQ4W1YwX1Uw0QWDLEh8sqmbgf72be/X4XLAW3wS8NeIAehz/MRyDYeX65gaysa+/4HgdQDoWGcUZXynkrtz3KHO6czMiEKsue7lmor5ihKriB22FqcD1pPuNYy6quPBU2Us19SugyQ3grq7QPxEs53y8uTancTFSkhVOnaCxRRoHZckz2RTEgSUrPdcamg4ulLHRp9AJw5YcjWUlToCo7g2WYBbXC+dPTGQkbBS0yAJAreEGwhX4Y37fGQloUOZdK10u1sJVvv66gaBLIrISNHXwrlsadCqCxkRDc3oSNqYp6xJEuhgBATSURWqGUSRqvGarmCe557IyxIWXZ0bOp5URkXRE90lQUVbg0RXLgf8bJE4UYklEbrpP8Or6iaeWI4nIudGoPtFDKcD557IyaL9rKyVezSMPafGGMvxHFfjdIdSMbVwuyzTJDi0WMVCVY3NLAxiP8QZv5DYniAEWUmw7x1uYmpCuJhaUzPwxLLFpIt574XNMSu6GVlMS/YQ1+O1DoC3RgzDydUGDi5UsbGQic18ZFgJ0TsQhXARNaBdyT0jicha9y8/ijkdyYnSFCg1NDw8XwFBvOJ7y5p2faZ7HX2IYysNnKo0sXUknzixYvCjEZvWwy/HCKQB1rlpp7z0c1IxPzuDu2+7FfOzM74FCNbJi93plkQQ65Jknb26yq+DVchQCi2jRTY0I7ZHuxeCgkctpk0W4E0bralG29oHIcr3yZKIveMDXXUug8C/KCWCEPpz7HJaa8F0h8sBIZBFIdZaOFVoBzJ8RbMAR5LlCNCXqrTDrRpmInG9II/uqArVbe/VGkMRBSEVJsiA1blpWt1zZ8LtZEtFfR6dCFLhBRBLiLOd/RB/fjfK+/frnE+vNrBYVbs+P3TDtK0FvZIKVTeRi+F0wEaTBEFIRWAvTfi5HLDPZ+7UDIZz0e4pJszaNq7GyfmC7fuwdT2x2sCR5TqmhuPNMAPOQr73WRF1/IKNoRhW0ds5isIDWUlEMWS+/eRqAytdMunC5pgJWgX50Pdq6R0A/PVAgJZGjHtfzFcUPDxXwUBGsm3bukExQFxPsVxyYrEfXNabPOe665ph6zP4YbWh4b5TJZQs9m0csLs0jhDdWsN60r2GoRkm8pIYe4YkCH6dCsPyYu6u000pL7zn8njjlpu+jJdfcQHec/0r8LIrLsBypQHAey3iJhVAy+9QEIRU/KkLGQkN1cSJYgMnVxvYlFA8jSHMoztuV9MZOLFL8vATR+y1f/kVF+CWm77s+bPOzyjo+9KCH/2JEAIB3TFBWNy2liz1mg76oXst2FkRp0MoCtSLOE1bJKcgzkpdxf2zZSgRPWWDEDSnGdflAGiNoQBIJcFinZuqovsm3N0+Z36FGPZ8xNkTziAy7p6I8v5zsmgXCZyoKTqOrNQxmpe7LmavWvtMFOBZ+FQME4WMFHk9MrLDszzHN5hOG17sIOfn864XXYpvf+1fIr1Wm0KzVZzjqf2QkUSsNvwptMs1FY8tVDGck7vyEQ7q+ked3QUs9oPQKTTI02ax3NR9/anLTQ1Hluu+1mdhCLIW1KxEM0p3F7DsJlMSXGRgGjEMxbqKh2apOGsc0U0vLAeI60X1bQc6ldy5s4NEAboZPNfNRpRKjS41QUKsBU8HrCfd62hD0adr022iaYs7OOZW+7GTNz87g0/8xXthmvSSIVIWuvV4eBYghHiJJuC2wOG/FoweN1NqQER8YRM/FAPEkWiCFS/ZFAU4rC3oe3z00CF77U3TxCc++L6ODpX7M/L7vjTh291lRamYVFRn4LSWOlhM70AWhbb5MYAVYmJ2upkXsdMCh7OSe94SxGGJZl0xsHkkn/h1g5T94858Aq0xFCDdzs1C1b/D3e1z5seKMUwCWYq3J+xCDIkXQEZ9/8zxwU2XPFZsoKLoiYJp5z3qVRRXY863Z0WxFUyvMetNt2J3x11rmvjz9/4xpqenQ19LFNBS98+lUJCSRaxabDE3GtYctxojOXZjJYBebkSc3WWQxc5ZZm6ickxMzWeO+VhCJl2gy4FGLbLClMsZ2gvX6RSkChkRxYYG3aDFygdny6hrRiKGFEPQHLOimxjOd9qTeoEpuafhY8+QFQXPQiVA9/Z9CUeUVmrMu32dXr6Opwj8upq6JQgUV0iNJljoe4/Rk0eP2EEAAKAwCgDICOiYsdLtADK+qBzpCKZ5WlvQebfFLoVN/BBEL9dNkyZYMTtYbmsLZNqTH9MwcPLY0bZ/6/iMfL4vTfjRy3XSHRPEuYXSSLDSgjNQcF+uukli2egA7V7EaSnaFzIiaqqB+0+VUVV0bBnh84wEMkEIiUWpBlpjKEC6nZvp1UZHwg0ke878LPV0q1DZVSHGdHqWhz8bUd8/U2l2CiSt1FUcL9YT0xtZJ88vOTMIiUVJla2ZbiC9PZEW3HvC6/MxDAOHDx8OfS0nrTrOnoiKQkZCQ+9U7jZNgscWqlisqdjc5blBCPGllzMmSJwCnZP9wPvMzMoiNMNbwXy5Ri3CkmilLAcU8pu6gcFcp36MH9Ls+DMMWO4wK3UND82VsVyLT532Q2skx4f9EKOwkZHS63QDdJ+tNDrnulfqKu6dKaHmcZ9Ehaqb9kjZeqd7HU8ZrPrRy0n8jibA7E5c6uV9SJ/dsWcvxLYMiCbdY4VOv3IaQMZfC1FAqyKb0lpMDGSxcSAb+70FIVgcKd6cJtBubWFXs7MDbd8jShJ27N7T9m8dn5HP96UJvwo97XTHZz94iUWthWA6aI7ZsASf4oB5ETvPCf5Jt4SKoqPU5OP0wFBs+M8xEwJkpHid7qzUmlFMK4hkVF+vdej2OTNMf2tBvYuRA2chhnU1o5yXUd+/O7EwTYKjyzVohhl5ntQPYYKLQLxzMyuLHQkWT82DNOEu2np9PpIkYd++faGvZfvYm7CV3Hmel1lJgKp3+tgfL9ZxbKWOqaFc1yMHNdWAZlFY3HepZhDIEZXLGZjdJJBOVxPofN4Mk+BIAhs9hiA/ZkU3I/s6A+nbTQK0SKkZBEeW6zhVUrB1lI9wMYBAQTkg+mw7e59psR8AejfX1fa57uUaTbgblmVxUhFOSRRiMT7WGtaT7nW0IZAeaM1TxYEgtFQ2+zmpmNqyDR/61GcgWgGyMLQBADAx1Ek/pUlFvDlNIP1ON3vdJKIeXvAbOQCoYFBcGruXtcXo5DZ77UVJwoc++WlMbdnW9nPuz8jv+9KCbpgoW5eNN728O0s9BjvZ7MOilBtBHt3dJN1O9kNa54QoCNgxmsc2Tk4PDEEFCADxCzGi6Bg5SIcumZVFTAxmPdeh2+es3NTsLsuYizpNxfXiFSrZ/K5BSGt+N8I6xH3/LLGYryqYLimYHEzewXJTqp3QDcoOiqN2LImdXsT9WLz2gltcz+vzueGGG7B9+/bQ1xId8URabDEAHYKLjy3UMJKXY59rTrA9MZCROj575nIQ5/XTZsRkJdG++xnmKwpmE9joMQQJyhEA2TjCrF5JNydxPffvOVVuYstwjmtTw2+OmRUqo6jZM3jTy/kLklat9V2qKrjPSri3JLxXVxyCcryEofsRp285YR2xoRmmXcHySiq6vXAyooA66X/67HXXvxFXXHU1Th47ioPmBD5z16KveFg3a+E8SNrtTvjMXqeFoE6eTkisSwHwnvNHNo9/u+1+nDx2FDt27/ENkJ2fUdD3pYEgcSTDJMjI8UUNRcuDl6rxrh1LvaCRAxPx55idtFF7HVJIKuLO3EdB0Ewem7OLg7YZxRgdXp7o5jlj6zCalzvWWTdIbEE5OtNN2QJxE6yo7z9jJRbamIknlmrIiEJkWmsQgsT1FMNEVpbiKbl72CzWlP4/JwDvrj/7fO556CCe8/Rz8ZyLDkR6rfbiXKsQw6wreSBriWbtHR+kc9wLVeimiU35ZPoPfiruQHfsuYzoZMTwd3zIZ0SUmnSOWZZELjZ6DEEz3UB8jRgG593Bc08AwNRQDiTme4uCoq3Y7R7JMZERRWRjrHVWEj3o5Xzj7awoYKWmoZCh7h+KRhPupAgqVJ5OWE+612GDUQNpUuHqVJika2GujOWjyNtXMw1MbdmGqS3b8PDdJwEsYszjAKBrEf/SaQucMv3b9XcjiF7eDX2WdrA6Aye29mGI+n28wS7H0XynOJJBgOFu9oTIqPbpUYnTQJC4HrNAiwOmxqu7BBeZVWE/I0ixG5Z9Why0zSg+iedE3OdsJUhQjhDkuijOCXYhhq6Dopu2UF8Yorz/vEwTixPFBhZrKrZxCB6B4DNTM6htZJzCrVc3r5/vUQbnHLPbGmpqyzacV9iI3dtHI7+efV46XA50k0A1CHIyn3OCJps6FN2w5rgV7BgtJH7doJEDwyQo5OSYLgfpqnbnZQmrTQ11zcCIpQGxVFWxbZRDgtXwvz+ALhgxQjub0iTU9zwJBd7r9/BGW6PL3ek2mDhrjD0hiSBgYyjpFPELWQnLDRWLNRWqYXIRIwWcdmGnr4gasE4vX4cDrU5FJ73DIPFM7p1gIjAsgGxopk2B6Vf4zbYDtJMXhxrIIArosMqqa/x8utNCEL0ciE+fdVpbsD2hmwSq3t9rUQzpVHRTlLLVePtc3d+NoKQCQKxAwf4ZS42XBU4EaBO56kcQQhxd//ZgoRvrNMBbXK/ap+wgJ4I6/t0UbUXRohI79gTAz4sYoAmWops4tlLHcFbiFlgH+ZXrVtE2ntBgJ0uqXxljTjQ0E4p1rvt1NeM+H7IodLgC8NwTTLn78cUajq7UsXkoz6XwFzhy0KUOBkMaonI5mXa366ph2+iNRFTSDoPf88Ho8nEFFyWRajLkZdHufK+F4jXbE15zzExHKRNjZM05wphWEX8wI2G5pkIzzMR2m04EMUFOJ6wn3euwEUQZJQRd0+4ykgiDtCpvQP8nFkE2QN108gBGG2UWOGvDa9UkxKZV86LPOuf8C85gus8TrKBOnm6aXRWlJGaLhHTUeNNC0FkBxJ9tBwBZovvNGTj1+zlRVQzoprc4kk6oh303nW6GftbBcMNP2R/onh2UEendkZFEZK1CDlebRUlEQzNQTmgR5kbQ/dFNguW1J/r97gBagXTex2u4m/sjI9H5due8K8+1yMoiVN3AydUGRhPOcTsRNHLQjbVg255IcQylrhk4XmygrGgYjWFzFwS/u9QgiG29yeIqg9D9xO7Ragpz3bzh1EbpaHRZLiDxRnJa/z2UUsFWlkTs2TiAKY4JNxBNfPJ0wHrSvQ4bgYkm4tMkGbIyFfzISoJdJe37BCskqehmpkm0KrLEodrd7+tQUXRbDdNtXdEtfRag82imVbxgQU2/B5FB7Idui1Jsftc01xZt1M9v1iQEghCf/QCwMZT2wKnf9wRLKgazUkdw3vJujz/nz7Cm2A91/6SCoLszMyMLdvfL7vByfD4EQcBoPoNJH1G5bhF0fxhmfKaUkyW1pkaTAmZ3qQ1p/AJ2NmWFZgDIWWs82qUPtRfCPLq7EZ9kGEphphugz+x8RaE2egV+z0iQC4gc03qz5ZBj7YlcepogvGHvCT/2Q9yRHE9GDP91SGPkazng/jid0PdJ9+7duyFYfp3O//3RH/2R5/d/8Ytf7PjefEIBjKcKgpIKoLvuFWDNKIIGOGslYAhfi+473QZZO8E0uxwHs52+md3SZ4HWnD97baD/O7xhhZhu9oRTjXctdbBWfajENGiK390FvJVX+z1wCvToNuPTA4FWIYbEVO1+shGUVADdFWKyVqcbQGstOAuIjRUyXY0LBaHVtfHWPOhK3Z9Z6q0RlhTg7Gh6d3e7uT9kqdM+jfdaTA3lMDmUUifPkzHWjcuBB72c87ORl0WUmzpUw+TmiqI5XEDcCRaz3owrpCYK6ap2p4UguzDDJMjFfDa8BBf7PcZkCLKRO53Q90Jqd911FwyjtWkeeughXHPNNXjta1/r+zMjIyN47LHH7P/Ps4J9OiN0TrPLTrfzxwayEsqK3vcHol/X3zCpsFM3M6utWWayZpKKoOJDt/RZoDXnD9CAYQVa318OQUwQoLtOnt3pJmtrptuPHqh30algcCqvplml54mgQJp1NLuxFrTF9XJrx0YuyAYI6HLkwHFOrJUzs6kb9nv0tkTqQlzPw1Kv358NIHgMpdsCnVO1e2iN7AnAKR7mJ0gad6a79d9pPRuDWQnTpQa2jiQXkmNgMYXkI9grxbUWFCxhVksSZtAuQPR3ER9wzvlzGjnwsk9bA+cE4ChArCfdTy42bdrU9v8/9alP4YwzzsBVV13l+zOCIGDz5s1pv7XTDn4zeYwy2q2ABuvwAm6rrP6FXwHCrs53EUC2ZrrXToIVFEgzdc1uO93GGkuwVhv+VWmg2043DRqogNjaoMU1NANNSxzJHUzblOoung8n+yEtf2reCPLopkl3N2MosHzsHWMofb4OgH+Bjt0fXY2hSEJHV7PfReVWrT2RkYQ2ATgn4p6Zts1iW9Ld3+sABLMfdNOMnWAB7Wu3puZ3Azvd3VsLminuiYwkYs/GQa6v6TwzOwV7aUEqTqzJ6OWGqzi3FgqVTJx13CvRFLopxLT2xNAaOicAZ6y5Ti/vG6iqiq985St429veFti9rlar2LVrF3bs2IFXvvKVePjhh3v4Ltcu/KrS3czZOEEVFa0DcQ3MagYlFXYnr6tON/WdNU04Zrr7XLE7KKkgBHIXQRPQmvMH1k4Hi10Kbhs5m/3QxTqwYMt0JFi85/J4g+2JrNSavWZgfrPdUImdAZgtDNTvaxEQKOhd0AOBlrje2kuw+N8fsiSC+VysFVG5FUdxzitO6TbBoi4Ha+e8BMKZIHJM0SzArdC8NgqVQEv/wX1WsNn2bgoxksDU/dcOlXglYHaXiQzGYac6hVmB1kx3P8eYDEGK9t0I9rbm29dOMwOgRYIwpu3pgr7vdDtxyy23YHV1FW95y1t8v+ess87C5z//eVxwwQUolUr427/9Wzzzmc/Eww8/jO3bt3v+jKIoUBTF/v/lchkAoGkaNE3j9v41TYOu69xeU9c1GLoGQ+czj8ZmKkazIgy99R5V3QAMA8TQ0c1bN3Qdpq7D0DVbbbTaVNp+Rz9hqdIEQJOKnGC2r4WqQyAEMHRoiJcwmyYBMTRoAAoSvSBqqg7DWpt+xEqNrsVYXup4j4qiYiArwTB0GDHPdaK3/u6CzPaE2rfrAAQ9HyYEooMYRlfPtmjq0DQdeWtP1BXdeq77c18sVxsA6OVoGu3JoKqqGMrJ0PX4SSIxNPucGLA8d/v5nACAlRq9N0ZzYsf71FQNGeRi7wnDMGAaGjTVtPdETTX6ek8AAc+HRu8PmPHvD+J5d/T3ObFUoc/HWEHueJ+6SQBDA8x4Z4Whm9b6GciLdE9Ulf7fE8vW8zGW67w/VE3DgCTHfj7a9wQ9JyqN/t4TuklQatAzcTQrdN4fph47vjINHcTUoWoC8hKNRapr4JxYsu+PzudDVVVIeSH2nmB3qKELKMhrY08Azuej8/4wdT32OWHqOkxDh6YKbXeHrql9vSdKDc1mKoxm0fE+DU2FaUhc8zHeiPre1lTSfeONN+LFL34xtm7d6vs9V1xxBa644gr7/z/zmc/E2WefjRtuuAF//dd/7fkzn/zkJ/GxyjJ00QAAwMxJREFUj32s49+XlpbakvGk0HUdxWIRACDLyZe+ulpFs6KgYvKhY6xU6d+aMxqorK7Y/97UDKgGQalIUO+ic1NuaFAqJVSQQxY0O1spVVBZ5StewwszSzTRHM1JqJaKbV+rKjokQcDKMulKK6BZXqWBV5OuQ03R0aiWIQiAKPXf47iwWgUADApG254AgFpdQ3Ygg8XF+N36crmJZqWKCnLIte2J/lsDBkaVzOo1VFZbSaWim1A1E6Ui0OxCwbxRqaBW10CMViGmWir27b6YWaR7YiQrdOyJqr0n4lfXK1UFzUoFFeSQYXuiXO34Hf2EhVINADAAreN9NqsK6gUNi2jEek3NIFCrqzAFAcRiwtRVo6/3hG4SlC0Rp4xaRWW19Tc3VAM6IVhdAWoxGRCVimNPEBrU9PuemF0uAQCGZXS8T80g0BQd5SKgVaPffyYhaFZWoQAg1qPV0OiZ3KhW+nJPAMCiVYAoEKXzrKipGBzOxT4rylUFirUnstaeWK30954oNnQqJgtAbJZRUVvPAYuvykWgESO+amoG1EoZ1aYI07o7FN1EqbgCpda/e2JuhT4fQ5LZ8ZnVqypUoYDFxXjJVdO6Q3NaxrEnan29J4BWg6dgup4PAig1BZWiCbEZvfPb1AxolTIqighiJbG6SVAsrkCvV/t2T5ws0dxjKCuiWVlF0/X1WkWBJitYXFR7/+YiolKpRPq+/lt9Hxw/fhw//elP8e1vfzvWz2UyGTztaU/D4cOHfb/ngx/8IN7//vfb/79cLmPHjh2YmJjAyMhI1+/ZDVYJmZiYQCaTnEIxq2VRQgPDI3zU2UvqEQDA1k0bMTw2YP87aWrIApianOhqrluuqyhURAwM5zA6uAKgClPOY3hsI5f3zRvqKk20Nw5mO96jUlMxmpcxOdndex+tSagqOjYNEgDH0dAJCkMjGBrdAEnuP1pN1VwGAExtGO5Yi5rYxPjGAWzaFP8ZUTMN5BsZDI/lMTK4CqACQ8717Z7QDRNVlSZA2ycnMOykQDV1yIRganK8q/n2OT2LmtjAsCwBOIaGTjAwMgZC0Jf7QpmlBYeJoc5nuCo0MT7e3Z4wck3kazKGx/IYHSwBKMOQ+ndPAEDVmAMAbNk42vE+S2hifHwUm8biiRAZJsFAVYAIoCAIAI5CMwmyQ6N9uyeWajQYEgVg69RE26iA0dCQF4DNkxOxReWMXBP5Ot0TG4YqoHui81zuJzQEGjJuGhnoPDNVHaRAMDW5ETk5XtF5qEKtskZlEcAR6lU9OIoChL7cEwBQ0aYBAFsmxjA8Ntb2tbLQxPj4IDZtGo71mkauiZx1TowNVQGUoIn9vSfm9ToAyn4Y2zje9rVu4ytFNzBQlZCXBYxIIoAnAADCwAgKQv/uiTpocjI1Ouh5Zk5MDGPTRLw5cvsOHcljbLgGYBWamOnrPQEAJfUYAGDrpg0YHhuy/10zTAzKKjZtGsdoDLp1U2vtiQ0ZCWxPoDCCgij27Z5QqrQQMz7g/RzTfTGCTRsHOr7WL8jlorkdrJmk+wtf+AImJyfx0pe+NNbPGYaBBx98EC95yUt8vyeXy3kuWCaT4ZIcOyHLMrfXleUMJFnn8hDpJkG5SYPp8aFC+2uKdM4mn+uuo57LAplsBqIkYzBHX7ehk758+AGgrNIK4YZCtuM9EtHEYCHX9eeXzWYg6MCwNbOqmQSmIEGSM325HiWrI79xMN+5FpKOoUK+q7XI5QyIsgxJzmAoz/YE+nINAKCotJKKDUOFdgEYCciKAgq57nxM89kcIOkYdsx1qUSCZK1Pv63JqmLpHQzmOt+bnGBPZE17Twzn6VnTz+cEQDtYALBxqPP5EGUdhXz8s0ImBNlMFoZJ2mx6FFPs2z1RUmmnYkMhg0zGdU+IBPmshFwX90fWsSdad0f/nhMAsGqdmeNez4dO78NCLhe7gJ3P5lBTdQzmM5aSOdA0ROT7dE8ALc2DCXdMAUCQdAx2cVbkc6bH3dHf50RJZRoxXjFFd/GVIErIZqhuQD4nIysJUA2CpiFiqI/3xGqTrsW4z5mZz2Vj74mBHL1DJTmDIWsd632+J4hjjnlieKDtvWrEQDYjYCCfRSYTI02z9oQoCshkZAxkJNQ1A4rZ3+dEyYq5Nw52Ph8Au0vj74teIup7WxNCaqZp4gtf+ALe/OY3d9Cy3/SmN+GDH/yg/f8//vGP48c//jGOHDmCe+65B3/4h3+I48eP4x3veEev3/aaQqmh2YI17sqaQdCVIBCD0wJnLajxhtmc5GN2KJxgtkgFh6ptXe9fMbUgcQtCqH1LN3Amra090b9iUYxa7qW4qpsEWSme+IsTTFQuJ4lg7Nt+fj6CVNyT7QlKv3Sqdve7CIyfXzkhBAK6Exl0iuvJooC8NbLQz2JRQYJABiFd+2A72ehrRVQu6P5gQpxdMcYkpgQvOIQ4+3dPOMWRPBW70d3z4fSxXytiUWF+zAUflfsgMBs5wxYkXRuicraivZ+1YBcinE7ni7UiuFhRdDpqCB/rTSm+C4hkqZcbrrXo9+djOcDlgKEbR5R+xJr4K37605/ixIkTeNvb3tbxtRMnTmB2dtb+/8ViEe985ztx9tln4yUveQnK5TJuu+02nHPOOb18y2sO7HIczcsdF6FuEmS7mFVlsJVXnZdkH18MLQ/izsqzSZKthWxdDrIoIGe9TqOPFczTuCABv2C6f/eEn50e0L01FIMkCHTeTxAwYAVOa+H58FoLIMGeEAWIolt5tX8TrCDFVcMOmrpbC9laB2BtPB9+dmEAK1R293zYBVtz7fhT24rdHvcH827vBk4f+7WwFuWmbr9fr7OCoLuzQrTV/YGhNaLaHVSU6tblgKl2MxeQ06EAAXSXXHn7U/fv3QG01mEoK9mxIANzAYl7f4hWQc9026f1+Z5gZ+a4h6I9s5zsxhGlH7Em6OXXXnutfbC48Ytf/KLt/3/605/Gpz/96R68q9MLYUFT3PkzJ5jv7Frxpw5aCwBdeXS3frY9mFZ0s29twwghWLVGDnivhTOYXguFmGJIpyIJE8R5rw5kJVQUHXXVwHi0EaGeI6h7BXRfkWadG6fvbD+fE0FJBQ2axK6T7jbP8qyE5bpGA6c+vbGDCpV6gkRTEgVIItoLtn28J4CWZZg/U6q756O9mycDUGlXs0/PCVawHcnJHVoXLJ7rhhVDu3k0sWh5t/f3ngiyFjRMgkKXz0dGEu2ifduZGU9GoqdoPR/ta8GSq27OTHGNFfGB8D2Ry0qxNTAAGpM1Cd0TbWcmX7t1rggsShkEsigmirv7CafHX7GOxAiixJmEdFTi4kASBIgi9acezPR/ZTpoLYDuO3mAK5i2LtpGn9LLK4pu2zi4k26TWN7UXa6FKNBg2kklXhN7wiPpNtF9UgF4V+n7mSJYrHuvRZKgCaB7QnT5U/f1Olh7wiup0E0CSRS6EtYDrE63uXZoo2GFmCRjKKLlO7tWvIiLAVRJPUnSLQo2bXQtFCCCRw7ouRfXoxsAJBGWF7HznOj3rqb/niCgLIZu4IwnhtZA8ZoQYj8f7gK27dve7ciB9d/snOjnZwNwUKo5j+Rk5Bb7Ya0xQfy822Wx+1iz37CedK8DQDB9VkD3NEnA6mCBHiRrqavpXgt2kCVZi7ZZZnst+jPpZgfhYFbqoNTrBk0qul0LOpdHKYJroasZWIghyZ8PhsE1MMtc9OlUsKCpWxoYYz8QslaSCmvO3ydoksXuz4qMJMJyAXIUpfrznADSK1Q6R5MG18DdQQixO3leBQgCINslaywjiyBriF4eVIhJkmCJQmsMxU6wlP5dBwCBe0JA989HxlGcG1gDyWZNpfZoQOdaGAnYQWxEC1gbzwbgYM/xZsSIgn13rIUzEwCKDasQ43dWSELXhdt+w3rSvQ4A/t0rCpKoyuScPVoLCZYfvZxV57vtXgG0Ss/A1qJfZ7oDRw4IS7C6WwtRcHYr+n+OOej5IAmfD69CTL92NWmnImCOWeyeUi0JjvndNVR88Bo50A2CjCR2RQ8EWuJ6wNoIIoM6eUCCkQPHnrDF9ZT+7WrWVAOa4c0OYkjCBGFYC0WpIHaQbpqQRLGrAp0kCpDcYyh9el4yBI0nEXQ/ppVZY3P+bE8MZKSOTi5jB3Vzl3qyxfp4HYDg2fYkIzkZUVxzM93LgWthWp3u0yNdPT3+inUkwvzsDA4dPQHAJ1AQkisHZq3OzVqgEq/4VN3Ywz9/agY///nPMT09Hfu1PVW7+zTpPnpqHgAwJHfqKSTpVADe4nr9vCeCAkgg2fPhjDH6PZhuaCYUg+7XzueDsR+6L8SIIto63Tz3xPzsDO6+7VbMz85web2gQoxBCHIJxPVEAR2dm/nlFdx31x2Ynz3V9eumgfnZGZycXwHQGTQlHTmg4npWgpXr/wQrKKlg6LZQKQktCu3QWhg5CKCMGiaBJHYpmuVQaB50zHT76f70A+yzwmOOOcmYVkYSOsbV+vXuAMIp1V3vCUvR3l2IYeNx/YigmW6g+5Gctj3R5/EEQ9BZkWQkpx9x+vwl6+gKt9z0Zbz8igvwy1t/DQA4+eh9bV8nhAAkGaUaACTJrV7en92Kpm7YnWevTt5Pvv01nLP/DFx99dXYtWsXbrzxxliv76zIsrXox5nuW276Mj7xsY8AAA7e+SvcctOX277eSrCSdDWtOf81kHSvBARNSZIKgCqOuju8/boWrCCVk8UO8Z9uFVcZnGMoTvYDj2CanXPvuf4VePkVF3Ts524QOLNqEhQSiE/SBIuuIzsnPn/D/8UH3v0WXPfsp3N5/zzA1vXoDHUQefC2n7V9PenIQYsR0xq9aGhm3wbTQXuCcChAsL96LRQqg9gPhkmQ6dI6TRSpernpYD8YJrFpy/0I30K+NabVbadbFkV7TwythaJUiCBpt3Z6TNHeOXIAAI0+XgtWgOA9ckA7wvRn18J8e1Mz7D3rRy/vVmiwH7GedD+FMT87g0/8xXthmiYwMAIA+Mk3vtjWCTISJlcMWYvy0u8J1qp1KciiYL9XhrlTM/j7D/8/dL1A/ePf/e53x+p4OzvdLYGk8KS70tRR7RGtku0LUqB7AvUSPvHB97XtC1Z97NabWhRaHqNOz1mzT7sVviMHCZMKgCYVtqhctr/ZD6shQVMSSjUbQ3F2K3gE023nHOhz697P3cDPoxtIZg0FsATL+rvVBgCAZKgkMa/3nxRt61oYBQD8y6f/uvP+SKDi7twTA2sgmA4TUUuqecCwFmijQXPMuplMnJXRqgccd3S/WkQ1tIBCPkkmEtXmfLEGOt1hhcpu94TE5vwte1t23vTzWhSDCnRINpLD7o41cU5Y65CVOmNuYL3TvY7TCCePHrEDURY0kdoqTh47an+PTvgk3e5LUjUIdKP/EgsnjdidUB4/8kRrvSwYhoHDhw9Hfn3J45IMm+muNHW8/iu/w/VfuQdaD9bM3hcs6W6UYRpG+75IGDQxP0nnnD8QHkybhODuk6to6r29RPxEgZImFYBbVK6/K9OBdkgkeUWaeRE7XydpMN12zllw7+dusBIgPkmDJj5z/lq1RP8j2/IB4vH+k8JeVzkL5AYAAKSy0nFOUL/y7s+KrCWalXX4nq/J5yOh5oFXgrUWupr+1mndnxUZWbCp2f0+slYMSCqoHVL3IlHthZj+V6oOs8nqdk9IIiCiRateC17ddlGq4M2e41GcG1oLSbdDmNWriZNEfLIfsZ50P4WxY89eiCwYspJuQalix+499vfQTrfYFeXHCZnN5TmD6T4MGIJmdzfv3NNaLwuSJGHfvn2RX7+NSsy6miH08pvum8FCVcVcRcETy/XIv6tb2PtigO4J1EsQJaljXyTp5AEtheacLNoBZdjlcONvT+A933oQn7vjRKLfHQeaYaJisQy8/JiTJhWMQktIPGGgh+Yq+Pnhpa5/bzcIej6SdCoYZMsCRxIFu7qdNIhsO+csuPdzN2hZ3/jM5CVhP1gzigCwedM4/Q9H0s3j/SeFva6sOKdrEAyl7X0lHTkA6J4wTAJBEPo+mA4TR0qieeCp5L4Ggmmv50MnBIUEmgdeCs396tUdlFSwTne38VVb0p1bA3sigFKtJ7CmpdoPLUu9oT4vXgPASs17LZIX55wjjP2v/bDiYyHnRJK7tN+wnnQ/hTG1ZRs+9KnPQJBkoDAMAPjT974fU1u22d9jmrDELRIm3RKdPZIlEVnrAerHimwQ/Wnj5Bb81f/8DCSJXm6SJOGGG27A9u3bI78+m2V2UomDOt1VRcdX720JJz06X4n8u7oF2xcYGAMACM0KPvTJT7ftC2Ily0kgW3P+QsRuRbmp4Sv3UOrqXSdLiX53HDAasSQAI3m57WsGSZ5UtDrd0UXlVhsa/ujbD+LP/v1R/ProSte/Oy6CxMOSKK4yOC1woiYWDc3AP91+DAcXqp5fZ/tZtJ5bUZI69nM3CLLJEhKKT0oCbHuoqYmN9D9ygwD4vf+ksO+PIev9NUr4S9f7MkyCrCR1PXIA0IDLreTej3cHENzJYwWIrjtY1hgKHdOKPpr0ZCHIEokQICN1f1bIYkvdv9/n2/18qYEWY6zbMS3JOa7G6OV9nGAFqrgTINdtp1uwFO2tx6HfBcRU3bSLRF6CpElFatm2WBPFuYBzgiGpkHM/QQ7/lnWczrju+jfi3MuvwhtuOQ4AuP7669u+nrQSyyC1Vd8kqA29L6tvQTZZuknw+298C97x+lfh8OHD2LdvX6yEG2h5jLYpuQcETt+4/5TdZQWARxeqeFWs39gdrrv+jfjXxm9xtKTiY5/4FF7y9DPbvk5AuhZ/YciK7XYnVdUIvBy+du8p++uPL1WhG2ZPbCRWHL7tois40g2aKCdJKpwBQ9S5vK/eO2N/z2d+dQSX7xzryVr4eXQzJC7OWVRigNIll+ta6Dnxud+ewJfunsY90yV89rUXen7Pdde/EVdcdTVOHjuKHbv3cElYV3wKEIziyENczyTEpgiee8mVeOuLv4T9516IrTt2ef7cDw8u4DfHivjLF+xLRN+NiuuufyMy+y/HR341hzN2bMV111/W9nWDEOQTdDQBl2d5n/vOBiramwSFnNx9guUYQxno846/kx3k692e4PnISq2uZt+zHwKKc3pCkShRoJJZxCE+2a/FB6BlDcV7TzCNGHONzDKze1QSBQznXIV8ixHTvctBq2Db7+sABCuXsxGS9U73Ok4ryCMTAIDhnNzxoCetxDK0CYhl+vdyCKLPstmS7du347nPfW7shBugrAE3ldhPvbym6vhXq7N71V5KMfXr5qWBihXD7N2+xfPrSbypASvBMl3dCp9gutLU8bV7WwJNqkFwZCV9qj3Q2hNes7tJraGA9oAhCr281NTw9fso+yEjCThWbOBbD84leg9R4ZdoMiS9HOPanRTrKr5xP12LR+argarWU1u24eIrnsUl4dZNgnKTPiDe9MDk4npU3b/FftAFCRddfBmmtmz1/JmVuoq//unj+MHBBfzi8HLXvzsuSJ7SyydHBzu+phvJRw6y1sgBAAxkotFGV+oq3nnz/bjxzt6NoQBAseFviZRUB0Niqt2OQkxNjdbp7rWdVtHBDnInFQxJng9ZEtdMYhHU3dVNM/GeECzV7n7v7gKt58PPJqtrQTmrMdTJkurPQozNiPHQDuLiAuIaYeznPRE4cpBQ3b8fcfr8JevoGmHV+aRBE+BtldWPB4GdYKVQnQd8qMQ+ne6b759Fqalj54YC/vTZuwEAjy/VeiKmRggJLEAIAg9xPafwSXAwfdN9M6iqBvZuHMDTt9FZ80d7VIAIU6nOJewwi2JLeTUKffar99Au9/5Ng3j/c/YCAD57x3GUm1qi9xEFQWuRlFINtMZQAGfX3z9w+so9M/Z4RlM3cbzYm0JMqaGBgHaZRvN8Z/IAFyMm4nn5L3dPQ7EKeL16NoAQRWKSfOTAWbAdikgl/sJdJ3HvTBlfvnu6p44IQUWppNY3ogA7mI5zh37utyfwrH+4DXedXO36d8dFEDuIEEItkRKygxjiiE+WmlrPle9XAjp5QPeUasAqxIid/tT9irCibTL2Qycjph8bOwCw7DPPDbCYW0rkDNPaE2tgpjuECZJE3b8fsZ50ryO4k2cSZDnQVr2S7n48CIISTQBdU34YRItKTIhTvbwzKGxoBr5yD7Uie9slO7BzrIDhnAzNID0RU6sout01dK+FbhKIQvK1aEuwAi5J51z72y/bgXM3DwEADs73JrFwBpBuGJzsLDKiaCVYwZdkqanhJqvL/c7LduJV52/B3vEBlJo6Pvfbk4nfRxhYVdq9Fjwo1YArmM4FB07OLjdLxh7p0Z5g58RoQe4YvUkqmAW4GDF2d9e/2LZUU3HzA7P2/++F9gODs2vjhW6VmRkkEfaMIjsnqgGFmMWqgm9Za1FVDUyvNhP9/jjwczkALFZMkq6mIEAU6d0RNcFaqCr4/J0noBgmPvWzwz0p2ALBlFHbhjTB/SEKzMU+elFqvqLg1V+8G2/7+v097fwXfTy6ATbbnpQRQ4v4cZSqdZO6gPTSQUY3CUoB7CAxYSFfdjBimJBav4rrhWk/JGU/iLZneesO7Vc71pUAQVLDEqpNeof0E9aT7nUEJpomkncqgHa7k8E+tvjw8yHmUZ0H6CUpWP7UQxbtzku9/FsPzGK1oWPbaB4vOjAJQRBwYJLSN3tBMWd7YjArIeu6ABh9NulatI8csD3RGUx/3Zpr372hgBecuQkHJmnS3esEK2jkICkycvvIgV+C9TVrlnv/xCCuOmMcsijgfc+m3e5v3H8KJ4qNxO8lCH6d7jT3hN/8LutynzM1hJefMwWgdx3eYpAyMwfFbicjJkqCxbrcU8M5AMDBhVog1Z4nij6FGIakXQpqLUj/OwoT5It3T7d5uz/SowKESYjj+UhH0V6y90RrRCsogfzCXSfttThebOAb98/6fi9PrATR7AmjjCZbC/ZXt56PYCrxF+46iVJTx+NLNcxVlK5/d1wEMUGSMsaY9gNx2bFqRvCz/3e/fALv+daDdgG3F2DPhih4s4OSFiqdIpxxmCD3nSrhzhPFrn9vNwjzK09SyG9zObAK1wRAU+/XpNu/UKmbptXpPn1S1dPnL1lH11gNoHcQgsQiakD7QdDP9PIVH3p5yxoqYVJhBU7OTrebXt7UDHz5d1aX+9Id9u88MEkV5nuZdHsF0rppQhLFxPO7bnE9oDPBqqk6vmrNtb/jsp2QRAHnTNF1YGJqaSOoKg0kL8QAgCy0i+vVtM5gutzU8DWr4/+Oy3faCeoVuzfgyt0boJsEf39ret7NhJAWFazgETQJHPaE1xiK0nlOOLvc77p8F87ZTPfEoz1jP/gnmowemERcr40RY62DopueifRSTbU7ux+8eh/ysoi6ZuDEaroFGIaVgO4ukHzkwOuc8Eu65ysKvv0gXYv9m2iRslfFuXJTt0UAx/Kdc8xJxy8EwZpbdRRigoLpuXITtzxEtR5edvYkAOCf7zhu7900ETTHbI9fJCxAMNjFOY9zgmHWsRZA7/YE4FyL9vuDEAIQkogxZne6TWKzpIBgG9KZUtPWALnzxGrXvzsunGemO6Zkgr1J9kRGahdmBbyL+E6cKjXxnm8+iD+55WGb8t0LBNlkJW10OfdEThLBljSMFVNuavg/vzmGYz3SymEIYgfpnJiE/YTT669ZR1cIo1TzSCq8hIH6stOdclIB0MDLOZfX1M22BOvbD85hua5h60gOLz0waf8763T3IrEID5o4BNMR5vy/cV9rrv2a/ZsAANtH8xjKSj0TUysG0Mt5zLYDNGBwdroNk0BzJVhMvX3fxACee8Z429fe+5y9kATgl0eWcXdKs5s11bA7KF4jB0k7FYArmA7o8Dq73Ffu3oCzLfbDY4tV6D3o8AbZISWlEQOt89LZ6Qa89R++dPdJKIaJC7YM48rdGxxMkN50eP2oxNQOMLm4Xhv7IaRg+8W7TkIzCJ6+bQRvuIgK5j260Jt1YIH0aF727MwkpRIDVjePAHlZtNljfpogn7fW4uLto/ira/bjwOQQqqqBf7zteKL3EAVBnTx6ViS31GOwZ7oDkorP/fZE27nQq2cD8J9ZNTgU8qk/NX3WZFGwz50gR5TP/faEXbx7eL7SM6p9mN6BlJAplZXFyBoxDP9s7QvDJHj4SdgTXoV8QhI6Xwiw94QgCI657uDP+dO/Ooov3HUS/+e2Y13/7rgwzGB2UFJ1/37EetK9Djw8Rw+byaH0OnmS2BIGsqnEfTbTreimfUh7JRX0gkz+yMgS7VCwANIkNPEGgKZu4Et309nct16yoy14O3uydx3eIEE5Jm6RlAERNnJQV1tz7W+/dIf9+yjVniYWvaAT+1ViWaeCS9ItUtqo84JxBk7lpoavWurt77xsV4c40Z6NA3jNBVRl/u9+eSQVajFbh0JG7KjE005F8rNC9Aim3cU5d5dbEATs3FDAQEaCops9qdQHFSp5KHbblmEm7YRlrSzD3cFaqqn49gO0a8XW4uwp69no8fiFuyjFa+SA+c46bZG8Eqy5chO3PNxai3OY9sNCsKo9L4RpPySdWQUs+zSTBtNBlpOnSk189+F5AMC7r9gFSRTwgavoGMotD83hsZTPzaDxC4PD/eG01Atjzp1cbeDfH6Fr8Ypz6RhKL0cOij7qzDqHQr4owFK0p/+fzXU3fJLu48U6vv/ovP2zpaaOU+XeUO3DOpqJR3KEzpGDoKT7eLGO/7DWAmjFwb1AUNEWSKaX03I5oP8/ynjSsZXWWvRyHUpNrcUOSkF8sh+xnnQ/xXFwoYqH5iqQRQFX75to+xqvOWagdTmQtkuyv+wc7jhO53pG83KHzQmPS4GBBU5t3QrrcvjuQ/NYrmuYGs7hZdacKsP2sTwGe9ThZVQrv6o0jzn/sE73zQ+cQqmpY8dYHi88a7LtZ1li0QsxNdsGyIv9wGneiFngSKKAQqazW8G63GeMD+B5+8Y9X+Ndl+/CcE7GoaUa/u2Rec/vSQI/miRAE82MJCaiVAOtBMskxNez3N3lBmg3tJdMkKBOngk+gYKTLjngE0x/8S7W5R7BZTvHAMAev+gFhZYQ4suK0TmouAMOCxznSI5HMO3s7F68Ywy7NwwgL4toaL1RtQ8UUeNUtM1Igt2ZtINpDyrxjXfSbuZlO8fwNMvt4aJto7h2/yYQAP/fL59ItcPJuv6+M6sJnw8ncy5szv9zvz0BgwDP3L0Br7+Q2u09Ml/tibBUuanbitppFPIZ06qjw+uTdP/zHXQtnrVnI87a1FtGTKvT7V2ISaLYDVDBRYYoSfdn7zhhs0aA3o4c2M9HCuxS5xgK0BIk9dsTAHDDHcftu2ahqmKx2ptCDNsTo3nZ828mSC7Y2284vf6adcTGN61ZwKv3TWB8sP0wNKwkgEdS4WmV1Wf0crYWrzh3c8fhT1Xck81pMrBLUhAEOzivaQZU3Wx1uS/e3nHYiD3q8BJC8NPHlwC05iKd4KXY3ZZguaqxDc3AV35HO7tvv3Rnx4Hcq063ZphY8ilAMEEgXkwQBlvV3prVdHqUv9Mxy+3GWCGDd1y2EwDwj7cd417UWgmY8+fhVw6wWWahbQzF+Xd4dbkZzmbJZg/oxKtBit2E155oqcIzBXNnIWax2ppffvcVO+216CXVvq4ZUCzWjRd9lsvIgdDq+vv5786Wm/ieo7ML0Geql6KLQfRZWrRN5t0OWAVbty2SK5iednR23335rrav/emzdiMni7hnpoz/tM74NBBWgEh6f7Qx5wKK+MdW6vjBwQUAdC3OGB9AThJRUw2c7IHmAVuH4ZzccZ/zKuSzkQPAvzgHAE8s1/CjxxYBAO+5YhfOmer1GEqATRaHkRzvMRTvO/DwUg0/ttbiA889AwBdh15T7TtibsaISXhOZJ17wro7/NgPjy/W8JND9CxgZ9fDPdZGGffRywGSj+T0G9aT7qcwKk3dvpBee+GWjq/zmLNhkCxhINMMVyV+MnBytYHbjxchAHjN+Zs7vk79Zvk8Lm0dLLtzY+J7j8xjoapiciiLV5zb+R6AVkCdZof33pkynliuIy+LeOmBqY6v8xK3cCZYdlJhFWK++cAsig0N2y31djdsqv1iLdXE4j8fX0JDM7FpMIvtY4W2r9Hng8+cv5fvLAumv2Z5lJ8xPtDBRnHjdRduwc6xApbrGr5413Ti9+UEo21vHPQLpDmwHwRanGuzO3GcE15dboZePBsMfoKLAEBAuPiKZr2EgRyBE1PpvmjrCC7dMWb/+84NBQxme0O1d44cuLv7LKlILq7HKLTEt4P1+TtPQjcJLt3R6uwCLUZMb8ZQWFLhb32T9C7NSp1zq+6k29nZvWDrSNvXNo/k8eaLtwMAPnPrUTT1dO7glQBNEB73h5M5F9TVZN3M5+zdiHM3D0OWRJw12TuBvbCOf1LBRQDIyKI9PmGvhUeCdcPtx0EAPG/fOA5MDtnikw/P9SjBCinEJNbBEKPbyP2TtRbXnDmBl549iYwkoNTUMVNO314wVJBUFJBJWKiUpdaeGPIpzjH84+3HANC1eM7ejQB6RzEPYowxJF2LfsPp9desIxb+49F5KLqJM8YHcJHrcgb4zaEBNMESBUq9HPCZ1XwywbrcV+ze0JFcAXzmNBkybYETfc1SU8MX76Jd7jddvL3DpouBdW7SVDC/2eokvvjAJIY9VHh52WRR31krwcq1Lkk/9XYnGNVeMUwcTdG3nFnsvPr8zR3vw+AgCMTgfAln17+i6C3F8sv8u9wMGUnEnz57DwDgX++ZxiynIMIwCb5jqf9etbeT3s6P/eCfYAV1uYFWgnVosZaq5kFDM/DEUg0AMDWU8/weHoGC85wYcFGJF6oKvmN1ud91+c62tXAyYtLuYhVDxJGSUkYB6+6wzgmvYHqm1MT3rM7uu67Y2faz504xVfv0g8igteBlfeN8/r063ceLdXzfKqS/54r2LjfDm56xHVPDOcxVFJtNxBPOkYMNXkJRSH5/tEYOWvGEO8E6vFTDTw61OrsM9vhFDxKLIEHSpH7MDE56uZsxxnBwoYqfHV6GgBb7gT0bBxd6Q7VfCfFu5yE+yTBkF6Q6Y8xH5iv4xRPLEAXgXVfsQkYSceYELcT0ItmsKLqdEHck3RxU3AHvMRSvQsxDs2X86sgKRIEyhM7dzEaTept0+xVieHT9+w3rSfdTFIQQ3Gwlmq+9YItnYMRLCAewhE9EoS/Vy5uagX+zqImvs2a+3OA1pwm4LHCs17z5wXnMVRRMDGbxqvM6WQcMdmKxlE6Hd6mm4mdPLAPwZj8w8KLPihDa5nfrmo5vPjiLlbqGbSN5vMSjyw24EouU6MQHF6p4YLYMSRTwqvO9mSA8BOUA7z1R1wi+fv8cKoqOvRsH8Pwzg7vcDFft3YiLt49CNQj+96+PJX5vAHD78SJmSk0M52S86KxNHV/nNXvllWCxcyKoyw0AO8YKdiEmTc2DHxxcQFU1sG00bwcpDEyxm0egIFviekBngsX8l5+2bQSXOLrcDOf0qMN7u6WD4Vmo5JRU0AQLViGms2DL5pcv3zmGi7aOtv0sOy8fW0i3EAMAS7UgRXtwK0oxeLEfPvfbVmeXJZdu5DMS/vRZuwFQTYB5zp7VzpEDr7Xg4fjQmul2dPJc8cRn76DdzOefOYH91vwy0NoTj/SA/eCnXA7wE4lyMmJaQmrtscENt1PF+mvP2oR9VoK5e+OAbS94vJg+1T5wjllIfn+we7iN/eBhI/dPlnr/iw9MYs/GAQCtAkQvx1CGc3JHc4VXzB1lDAUA/q+1L1569hR2bxxo0wPpRSEmyI6VsYPWO93rOC1w93QJx4sNDGQkvPhs78TGsGZWeSQVAO3+tM1g9Qm9/MeHFlFWdGwdyeGKXZ3BPJDcxsEJ58uwA/HWozR4fdMztgcGqnZikRJ19NsPzsIwCS7cOtIWqLjBM8Fy2iIV6xq+fDftcr/10h2BnaFzUhZTYx3/5++bwMSgx6XAKZAGXPNoVtd/qa7hJqvTHqXLzSAIAt73nL0QQPf2A6fKid/fN+6ja/HKc6d8RZC4uRywBCvT6mCFdbkBuoZnpzzrTwjB1621eO2FWzo+E9uDmJPgIsOgY1ZzvqrYnsPv9lkLW/MgxSBSM0zbH/yV53aOofDoXgHe9mmsg3VytYH/eKR9ltuJXhViyk0Nvz1Bz/AzPXQwdMPkM37h4U/NgumjK3X88CDt7L7rcu8uN8O1+zfhwq0jaOom/uE3RxO/LydmLTXsnNw5cgDQZ4iPuB7aNGJqqm539x5zdHbfdbk3++HgQvqaB4HWm5xG1toYMR6jew/NlnHrUdrNfOdlrbWQHZoHvejwBit283E5YHP+bE8ohtlWbLtvpoTbjhchiULbWvSywxtup5fSGIpLcPHuk6u488QqZMda7LM0DyqK3hPNg+WAQgwvHYx+w3rS/RQFSyheevak/VC6oZsEWUlMTA9kyMiWenmAAm2vQQjBzTaFeEtggYGXiqKXaBZAL6NXe8yTOyEKAs7alI5Ks26Y+PaDNJh/7QXeXW7COnmcEixJoAUNdkku1zUs1zVsGc7hpT7FIIY0xdTKTQ0/tIRWXufT8dc5zTEDLlska0986+AqKoqBPRsLkbvcDGdNDtn2OH/3qyOJqtYnig3cZukd/J7PvgD4PB/OBMvZ6Q7rcjOkbZd1z0zJ1jt4xTneege82EGSKIB9bM753S/97pTlRU1Vur3AOhaHFtOzF/zPx5ewXNcwMZjF8z20Bnixg0TRIa7nULQ3CcGNjvnl87d0jkg5CzFpdrG+9/A8mrqJMycGcaHH+9AJp/GLtuKcJZBkBdOss8tmdoMgCNRCTADwg4OLuJ9DYY6BOSc8fdtox9eYI0rSs4IpNDu7mgaB3WH/pztand0zxtuLIE7NgzRHkwBaCAG8O3k871EGdk4wEU6Azi8DwEsOTGK31dllaHU200022+aYfeZ3edhN2oKLjnOHFSAIIfi/Vpf7FedMtbFz7AJ+D+wFV5j2Q8DIAY+RHAYvRgwhBP9o7YtXnbcZW0fzANBzzQNWiBn3LECYXHQw+g3rSfdTEAtVBb+0KMSvCQiiTQ6Kkk5kXGqjFUVHualxe/1u8PB8FY8uVJGVBFx3XnDCy6/T3TmXBwBvfMb2SFYqBywRsUc506p/8cQylmoqxgcyvkke16RCoImmQdovSYB2ucMCszTF1L73CNU72D8xiAs99A4Aeinwej7abJGyrNNNlVffcdnOrtgm/+WZuzGQkfDQXMVWau0GTO/gyj0bPWnEXK0FrQSLOM4JxTDt7rJfl5uB7Ym0gkj2Pl58YBIjeW/KqCQKnJggrf9myeaxkorvPUxndt0dPCe2j+YxZNkLPpFSYsHW4jXnb/ZkpPBkBzHxScYCAejsPptfDursnp3yXLdhEpuF8fqLtvruTy46GB4F27pm4vBSHT+1FIjdiuV+OHtq2C7M/X+/fIILnbSuGviuxcJ4/UWdo1o8xVkZhdZZ2KkpBh6aq+DWI52dXQbnaNLDKSabi1UFP7fiLCZQ5QQhvBhjrf9u2UPRRPPemRLuOLEKSRTwDo/zoqVgnm6C9cRyHYpuQhSACVcBghAC8GA/MGFWEMiSaN/NjGJ+18lV3DNTQkYS8HbXvti1YQADGQkNzbQLJWkhqNPNUxuFge2JutpKum87VsT9p8rISSLedumOtp9lTJBesB/sTrcPvTzDyT2pn3B6/TXriITvPDgHgwBP2zZiz/d4gRc9kEEWRZgmwcaBDESBdite8fm78LnfnkBVeXI8u79pBUsv2L/J0woJ4C/o4EURHMvLgV1EJ86eSkdMjc34X3feZt9gwDAJJIGPYndbB8tRfNg8nMPLPbqIbqQlpmYSgm9a7IfXXuitdwDQoMlP8C4uWJXe2bkBgN0b8njBmZ0z1FEwMZjFWy6hSsX/+zfH0OxinKOhGfjewzSI9uv481JmZpBFqrzqXIemHt7lBlrPxuGlGjTOHd65SqtY6ZVQAPw73QxsLX5xrALNJHjGdv8uN0A7gayLlQYT5JH5Ch6cq0D20Ttg4HVmyhLVfshJIthL/v2tR2BansPnbfaeXwbSn2+/9egKTpUVjOZlvOiA97PKqwAhCg5GjKOD9bm7pm015qA73Y3/+szdGMxKeGS+iv94ZCHx+/v+o/OoqgZ2jOXxTI9nVSd8xy9MQu9m59jBZ29vzey6O7sM5/RAYO9bjlGtsz3m63nMtgP+IweEEPzjbccAWJ3d0c6CKaNVH1qscj8vnbjJKtA994zxjsYCL2taRi83rT/DKcRJ14Lui9ecvwWbh3MdP9uLQgwA3MF0MDw+D90Sn0yKoDEUZ5f7tRduwSaXGOg5PaLaE0KwXGOWYT4uB5x0lPoJ60n3Uwy6YdoqxGFJHu+kOyvRKuRIPoPPvPJc7JsYQFU18E+3H8crv3AX/uXu6a4Sg26x2tDwY0vd1I9ODfCzcWBwxqHnbaYH/bsv3xGZitny4eXX4X1iuYbfTZcgCZRm7wfdTrD42qcNOEYc3nJJeJcbcPuW87sgbj9WxDQTDfMRcmPglWi20aod++Btl2xPpKnw+0/fhs3DOcxXFHzlnvhKxUw0bMdYHpf76B3oViGGW9It0cJHRmov7oR1uYF0O7zfemAWBqG0Wb/EhudIjhdFkD3tUbqZZ6fow8u63Nfs99Y7YOB1ZmYlygIRBME+K+46WQIAvDug4w+0q9qrOv/EgukdXHfe5sBxEy7Wglah0skYe2SxgZ8/sQIBwDtD1sKN8cEs3mF1/f7hN0cTFb8JIXZy9foLt3pqUOiG1enmsBZt/tTWmXnbsSKd2fXpcjOcm3KHV9FNfOsBGme9waNAp5sEIgfxMMDbbrKhmbhruox7ZsqenV2G7aN5jOTkVBkxqw0NP3iUFnTe8LRtHV/nxX5w6oEATu0gHb85VsSDcxXkZBFvuWSH58+fa8Viaaran1xt4NYjKwC8dTBMTnP+nhak1tn3s8PLOLhQxUBG8lwL1ulOW3zywdkK5qsqMpKAnRu8CxC8NHP6CaffX7SOQPzyyAqWaio2DmRCPX95KRIzyJJozyg+c/dGfPUPno5PvPgAdm0ooNTU8b9+fRSv/MJduOneGSgpBEdufO/heagGwYHJocBOCS8bBwbRohKbhOAlBzbhltedgVefF97ZZdi5oYCBDJ1JO17kc1Gyzu5z9o5jatjbBgloee9ySzZFetHIooDfu2ALnr13o+esrB/SEM5iVNGXnzMVWgjhOedP59GAUYtxsXMkixfs67TnioO8LOFPLKXiL919EovV6ErFhLRos6+9wDuIBhziL5yeDy8f+yhdbqC9w8uTCaLoJr7zEH1G/LrcgEUP5BA0Adb4hfXfTibIxdtH8PTtnfOybqQ1375SV+1i5ev93B44qrgDLZYUgDYGxHP2bvTsIjqxbSSP0bwM3SQ4vFzj8n4Ynliu4c6TqxCFEB0McJrfZT72DnbQdIXSVV941ibsHY/e5Wa4/qKt2DlWwHJdwxcs28pu8NsTqzhWbGAwK+FlPmc4FWflaKnn2hOftWa5X37uZs9RGAa2Zx5fSqcQ8+PHFlFsaJgayuK5HnEWT2eYtpEDhz3UDXfQz/LVHp1dBkEQ7HMiLTrxdx6cg2KYODA55GtNK3FgPzgL10Ar2awqht3xf/2FW32LhL1QMP/6fadAAFy5e4MvC4MXI4bByYgxTIJ/sny5f//pWz3ZnTvG8hjOyVAME4dT1Dz46r20CfCisyYx6jOqxcsxqJ+wnnQ/xfDNB1pV+SgJg/MAmJ6exs9//nNMT0939bvdQbsoCLj2rE34+hufgY9eux/bRvJYrmv4218ewau/eBe+/eBsapU2kxBbeff3fCzTGHSD3wUJOO1O6OUwlI13sIiCYItddBNQz8/O4O7bbsX8LD30qoqO/7Aq0UE2YUDLe1fktBZZh7XFX1y9D59+xbmxKNu2b7lrHdx/ox/c3ze92sBtxyj9izFBgl6L55y/JNJCzAvP2oTXnD+FDz1rMxfngGv3b8IFW4bR0ExbSCYK7p0p4/ASFQ0LovvzDKSBdt/ZiQJ9zdfuH4rcPU7qUe31ef/k0CJWGzqmhrK46gz/QojBWVwPQJv4JAC849LtkX7+nMl0EovvPDQHzSA4Z2oI53mIhgF8VdyBFksKaC9AhKl0A1ZikZKYGutyX3XGODaP5D2/h+ecf7uPfYsdJAqwO9ZxkZFEvO85ewDQQLhb1WLW5X75OVMYynmLsxoWE4TH/ZGROv2pS00dsijg7Zd6dzMZto7k7ELM40t8CzGEEHztPnp2vPbCrZ7PgG6akEROY1oeIweHlhU8NF9FThLxVp/OLkOaYmq6YeJmK+a83kfvgK4FByE1x7ga0CrY/vsj83hssYbBrIQ3Xex/dp7jKMSk0fSpKjq+Z1nTenX8GXiwCNuEWXOtpPvHjy/h6EoDIzkZf/A077Wghet0CzGz5SZ+dphqUPy+z1oQ0PjwdMPp9xetwxdHV+q462QJogC8OkQ0jIEFfjfeeCN27dqFq6++Grt27cKNN94Y+/c7OzdOyKKAl50zhW+++Rn44NX7MDWUxXxVxSf+8zBe8y+/w78/Ms9dUfK2Y0XMlP19h51g1mk8EyzmRdwt7GQzZjfvlpu+jJdfcQHec/0r8PIrLsAtN30Z3z+4gLpmYPeGgqfnrxO8vHcZMpJo27x0Ayd1lFHtvf5GL3h93zcfmAUB8MxdG7BzQ8H3tew5f24df3pJmoRgNJ/Bf79qD/Zt9A7i40IQBLz/OXsB0AAk6p5hXe6XnD2J4bx3EA3wDaSBlu/sLTd9GUc+8w7gWx/GX7/mct/P0Y1zEnR4/T5vthavuWBL4GducBSfFAXY58RZk0MQADxz+yCe5iPs58YWR2LBq8OrO2zCgjr+PGfbgXaWFCtSPu+McJVuhjTE1MpNzS5WXh+0FhznmFu2SO2aBy/aP+HbOYuCZ+3ZiCt2bYBmEHzmV/EtxE4UG/j1UUqbfZ0P+wGw7g9OTBBZFO1xiyFHAeK68zZji08BhEEQBEdnk29icd+pMg4t1pCTRV9xVlqU4pdgMRFO9mxo1l34uou2BI5/AOlS7f/z8BIWqlSc9dr93nGWYRLIAh/BLCdLiiWbP328ldz56fYA9LwcK1iFmEX+a/Hdh+dR1wzs3TiAy3aO+X4frzEUtieY9WZFNfC5O2nD7I3P2B54p6etav+N+0/BJMAlO0Y9LRYZeDGl+gnrSfdTCCxYevYe/6q8G7IoYHp6Gu9617tgWgoVpmni3e9+d+yOtyQKCEqvMpKI11ywBd9+yyX4wFV7MT6QwUypiY/++BBe/+Xf4cePLXJRWAVaiswvP8ffd5iBzZbwsk6TRECEkOhv6cYua352Bp/4i/e2fY7/vw++D1/73QkAwO8FiIYx8FLXZJCtALJbOH14jy7XPf/GT3zwfR1das+1+Ks/xy0PtQTUgl6rJR7GL8GiHSwuL9eB87aM4EVnbQIB8He/PBJa6FioKvi5VYkOCqIBvoE0QM+BBWvtyfI0cPw+38/RC91SR/0+718+9AQema8iE8HhAOA5etEaQ9mzcQD/8ban48PPCf4snHBS7XkF1L94YhkLVTqedE2AwB/P7i7QPqN47VmbsGdjAX905e7IP5+kEOMHZhO2b2LA0x6Lgc0x81GqbtksDlvdZFGg2g9JIAgC3n/VXkgC8Msjy7bYU1QwC9Ird2/wnM9k4MkEEQWAlfFZASIrCaGdXYazU0o2v2bRZl9yYNI3yWNFKR5MJsqc6xQkLWREvOkZ4fuCnZdHlmvcNXVuurdVrPRjsBkE3AqVGbkVVzkZhCM52bejyuA8Lx/mvCcMk+DrFvvhDU/z7vjzLOQ79wR7NsqKiemSgo0DGVz/tOB7hAnspSEqV1cNfMeypg36TATwY8/1E06/v2gdnmhohu2fGUUl2ylu8fjjj9uBqP11w8Dhw4djvYeoZ0lOFnH907bhlrdegj951m6M5mUcKzbwoR8cxB/86734xRPLibqjM6UmfmNV5aOsBe/uLo9Oty2mFsNX8uTRIx2fI9l6Dk6WNRQyIl52dvgstQm+ipIZRwerG7jF1Lz+RtMwcPJYe/fGcy32XYmqamLbSB7P3L0x8LUMQiBxVLRnSra8ikpe+OMrdyMnibhnpoRfWCrcfvj2g+GiYQyGSVWleUEUBMyeOBrpc/TC1pEcRnK0Y/FEjA6v3+f9DStwvHb/Jk+/XTd4JZqia0ZxfCAbOyDrlhHjh69bydWrz98cOAbCu9PtHE26/qJtuPlNF8fq7LLE4onlGpp68sTCMAlutnQwrr9oW2CxkmqC8JvpZnvirE2D+P2LtuD9l09hx1hyVsyejQN2ge3vfnUkskhnTdXxPSu2uP6i4MSGZ9GWFvHpe5y0ZpZfff6WQE0SJ9Lo5s2Wm/bZGqb9UIg5VuYHv5GD6y/c4mnF5MbkUBbjAxkYBDjIscP70GwZD85VkJEEvCZEnJVb0m3Z0gJoG8kJ6+wypMV++NWRZdvh4MVne4uz8izk20V8kDabRQB46yXhor2M/XBkuY4G50LMvz1CHQ52jhVw5Z5OKz2AroUgCFy6/v2G9aT7KYIfHlxATTWwfTSPy3aNhX5/K+kWceaZZ0J0HQSSJGHfvn2x3gOl0EZ/iAoZCW++eAe++9ZL8O7Ld2IwK+HxpRo+8G+P4M033YfbjxW7Sr6/ZVGIL985FliVZ+At6OBW2ewGuzYMoJAR0YwhprZjz96OzxEXvRQArcr7zeE5wdN7FwCXSr9TTM3rbxQlCTt272n7N8+1eBpdi9dcsAWSKAS+Fu85f4DNMnN7uQ5sHsnjD59Bg+K/v/WobxdY1U1826pEv+6iaAU6nuwHSQS27NwT6XP0glMcKA4TxOvzFoY34ndW0y+s4w+Am2AW0Op0J6nDnMNRwfzQYhX3zpQhicFBNMBXxR1ojV90i6mhLDZaicXji8mp9r8+uoKZcpPahIWMJ+kGVeLnMX4h2rZINCj9b8/ahRedES6qFxXvvHwnRvMyjizX8e0HZyP9zL8/QmOL3RsKuDwktuApzuq8O952yQ781TVn4k+fFX4+MLBn4+gKv8TiG/fPwiTApTvGAouVOteOf6uIv6GQwcaBDDbmJfx+hLMbsDq8zCZqjl/S/bX7WsXK8QCKO9OJ4YFMm+AijWeidHYZzk3JLouxH159/hbfz52K1PJJNJ32aYOO2HVyKBvoTsOwaSiHyaEsTMJXkNQkBDdZHf/rnxYszsqTSdhPOP3+onV0gBBiezD/3gVbfDe6E85O3vbt2/HZz34WkkQfXkmScMMNN2D79niUNnpJktjJ5lBOxjsv34Xvve0Sq0on4pH5Kv7klofwzpsfwO+mVyO/lqKb+K7lO/x7EYJogB4UvPyYgVYHK0nSLYkC9m9iXaxoQeTUlm340Kc+A9H6HIXRSQhnXgGACr5EBU9Fex75iVNMzf03ipKED33y05ja0t6B6ViLbecAk2cgJ4l4hWXlEfRavOf8gZbvbJp488U7MDGYxXSpac8pu/Gzw0tYqWuYHMriuXvD1dMJgCynoAmge3ti89ZIn6MfWj680QMGr8/7Oe/7NHQTOG/zsB2Q+YFV53mxHxhFMImeRavDW0/c4WU2YVfvG+/wdnWDt92kJCYrPvCm2rO1eOW5m0OZPwbhyw5yik/yxkg+g/9yBRWn+6fbjmO1oQV+v0mIvRav9xHKcoOnICnD+GAWrzw3mH3hxqahHDYN8kssGpqBWyw71qAuN8C/48/iiaws4qtvuACffdkujETo7DLw7vAuVBV7ljpINAyg75tbp9shrvfM3RswVpDx/ufsjdw0YYWYYyuNRPZ5ThxcqOIeq1gZJFTLW9Ge7QlZEu299vZLtkVe6xbVnl8B4tdHV3BylWopBTErmRDn6djpjv5UrmPN4qG5ChX2kERfKw833AfA29/+drzwhS/E4cOHsW/fvtgJN8Dm0WiVXuziYRrNZ/BHV+7GG562FV+6exo3338K950q493ffBCX7hjDf3nmLpzvo6bL8JNDiyg1dUwN5/AsH2qLF3jOltgiFwnbmmdPDuH+U2U8ulDBS3woS25cd/0bccVVV+PksaP4RWUUNz2yiqdvGwmlEDvRd51uJqa2RMXUnH/jjt17fBM15/fdNDuIX5yo4tqzNrXN4fm9lm6xH3h18gCr051mqxtU5fe/PnMXPv6Tx/G5357AS8+e7KAgfsOmEG+JLG7Dc0+womDUz9EL3SqYO3/nlp278Y7vzwBQI3W57TlmjnP+oohEySbr8K7UNRxerPmqjYdhtaHhhwctm7CQhAJIgf3AYXudPTmEXx9dSZxYHHHahIW4PQAp6GBI6Y6hXHf+FnzzwVkcXqrjs3ccx39/nj+j7fZjRZxYpTZhL40wngTwHL+ApzBrHJwzNYxfHlnGw/MVPC1gLj8Kvv/oAiqKjm2j+dDYgqcys9sqa0MhA1mJF9qfw3m+/ZsPzMIwCZ62bSSS2CFPwUW2Ky7eMYafvvuKWD+/cSCLzcM5zFUUHFyo4uIQYdkoYF3ua86cwGRAsZJZ0/Kb82/tif96xQ48sVDCyw4Es3KcOHdqGL94Ypmrgjlbi+vO29ymP+AGU7Tn2eDpF5x+f9E6OsC63O6EIgi6SSC6/Ji3b9+O5z73uV0l3IB1EHCg0G4cyOJ9z9mLW956CV5rqQnfeXIVb/36/Xjvdx8OrFozAbXXnL851kHPW0VRFpMn3d3Oa05t2YYLL30mfnKMdsijdrmZ0AfP6qPEIWm1xdR0E8dWKNV+ass2XHzFs0ITtakt27Dngkvx62m6Fq/zCKK9XounHzNDJsUOlhMvO2cKZ20aRFU18Nk7TrR97dH5Ch6YrUAWBbwqosMBwLkQ49gTUT9HN1gQ+cRyPbb9C/udj9ZyWKxR0bAXnNnptesGC5q4dbotC5wkQoNtdlkJunnffZh67Z61aRAXRkjceWs/iBwKlbzE1Fhn96q946Eq2UAKnW5RTHUMRRYF/D9XnQGAjmIdDrDUcnb8g4JowPIrF/iOXwhJ98RmPnuCODv+F24NTZwE8Isp3FZZ3YB1NU+sNlBpJuvwNnXDFu0Nm/Fn4MkOIoFyveHgKSK2VFPxo8dosfL6kI4/m23nUchne4JdHa+/cAv+5JLJWArx7NngVYh5fLGGu06WIAn0/QRBNwkynAoQ/Yb1pPs0x2pDw08O0Yc+imgYg2HSOTSenTweqt1OTA7l8OdX78O333wxXnHuFCSB0lf+8Kv34r//+yMdIkqPzlfw0BxNKF55bvSEAuCbVABU8CPpKrAO72MLtdhr+vPDy1iuaxgfyOB5Ab7DTvBW7AY6vdu7fY2zNnUfPH3noTnoJsH5m4dtOm4YeKrwMmTlZPZpUSFaSsUAFUw74nhOvmGJQ12zfyJwDo+BEMJ1jpm+PxqUJlmLzcMOu6wufXiZaNirzotGW+VJDwRowpx0DAXojmrvhO4QDYtKIeau/SAIkMRke4I920dX6qir3VHtK03dtgmL0vEH6FpkeI+hpMyIuWTHGJ63bxwG8Xc7OLZSx23HixDgXax0g7e4niTSPZHk+eBFq/7tiVUcWaljICPZ40lBIODLnnNaZXWDsUIG26wC0iMLydbihwcpm3DLcA5XRYwteK0FjySNZ9f/Ww/MQjcJLtgyjPNCxpN0zoX8jCQmK0hN0vc7U2qGjplEwVetLvfV+yZC3ZN4Cg32G9aT7tMc3314DppBcPbkUOhMohMG4WsDBLQEP5J0brywdTSPD1+zHze/6WK8+MAmCAB+dngZ13/5HvyPHxzEiWIDQKvj//wzoyUUgCVuwdH6hkFOeCACVEwtJ4uoa4b9N0bFzQ/EpxAzoQ+eXX8mkJQ02bTtX2IGDLpJ8J0HmU1Y9Ll2E3xnVgFWpe8NnrF9DM87gwbVzJd3taHhR4/RhCIKnRrgbw0FOERgOM3wduPNbIuGCVRYLwrYWcEz2cwmDKYBpzVSd8H0rUeWMVehyrvXhoiGOcF7TwiCkIgJMjGYxeRQFgTAY12qNH/3kTnbJuwZ26PTkXmemZmU6eUM/+3Ze5CVKIvsl0dWOr7OxlCetXcjto9FEySVBH5zmiKzRUqwFIwtdnK1iXKz+8SCdblfdk64IKlJLGsojnuCx8iBnWwmEFMjDqGs1120NfQsNBn7gSM7KCnsQkxCWrWim/iWFVuEzbUD/Av5SffEcF62hYaTFqVW6ip+aMUWUdZC5+yI0k84Pf+qdQCgD/G3H2CiYdG73OxneW96SpdMNqMYhJ0bCvjrFx3ATW98Oq7eNw4C4IePLeK1/3I3PvbjQzbNJ8ocHgPv7hWDLAqJE01ZFHDWJjqLHUel+fBSzU4oXnV+9I4/WwueXRt7vj1pYuEQU4uDXx1ZxnxVxYZCNAoxA+9OHsBHVC4O/vTZeyCLAm47XsRtx1bw3YfnoFoFurCqPINOqOAJ7zl/Hh3ebhTMGVjH/3n7gufwnNCt2V2uc/4cxPXYs9GtSjNLKF513uZYQSHvPcFskZLg7MnuxdQMk+Dm+6yO/4XROv4MPLuasij2pDi3fbSAP3g6HSX79K+OtLkdVBUd//6IFURH7PjzViR2+th3i7FCBttGadetm3MCAE6uNvBry4I0CvvB9m3nuCeyUvI79BwOyt13T5dweKmOvCzilRE6/rzjKx7MuQOTQxAAzFYUrNTVrl/nx48tYqWuYWo4h+ftC48teAv2Ou3TugUrQCSd6/7mA7PQDILzNg/jgq3h40lMM+d0xHrSfRrjq/fOYKbcxEhOxgv3R+9QAPzFXwDayRMc4g5p4YzxQfzPl52Dr/z+0/CsPRthEOoNqOgmzpyINpPIQAUd+Kso8prftT2qYwSRrEPx3BgJBeCcWeWrXi4mnEcDOsXUouIbVkJxXUQKsRO85/x7Pb+0Y6yA660g8dO/OoJvWonm62IkFCyA5LkWrIOV9Jw4u4tnAwBKTQ0/OBiPQgzwV+wGaOCU9NlwqjTH7fAeXqrh7ukSRCH6eFIanTweSu6AoxDTRWLxm2Mr9n364gPRhCvTWIteHhNvvYS6HcyUmjY9FAC+9/A86pqBvRsHcElEsSnKlOKrXs5jTyTt8H79vlMgAK7cvQG7NoR7x/PWfgCsQgyvTneCpJsJZb38nCmM5MP1gxj7gd+eSD6aNJSTscvu8Ha3Jwgh9lq87sItkf8+3iMHSffEuRyo9qpu2lpKb4ho3QbwExrsN5yef9U6cGS5hn+87RgA2tGKLeQiABmJb6WJh+BHHByYHMJnXnkuPv+6C3HpjjGIAvUhjdOhoPRZcPcLzEjJO91Aq3MTVUxtptTE962ZxNfGmPEHWp08npCYon3C3o2XmFoYjiy3EorXxOj4M/DeEzyq9HHx9kt3Yqwg4+hKA7MWhfias6J3/Kl1Gt+14OFPDTjsslbi2WV97+FWge6iCFV5Bp2j3yxD0llNhgNdioixAt1VZ4yHzuEx2IUYznP+SZXcAQd1tIuu5k1MNOy8cJswhjS6moxq3wsMZCX8ybN2AwA+f+dJLNVUGCax9Q6izvgDLZ0YHn7lABtD4ad50E2yWVV0/Nsj8wCi0WYBuid4M8Zopzu5MKsAYL6qYqkWv8M7vdrArUeid/wB50gOR/YDB7FeW0ytyw7v76ZLOLRUQ14WcV0cQVKOhRgee8IpKtdtvPoj1vEfyuL5ETr+DKejcjmwnnSfltBNgo/++BBUg+DK3Rsi0Xw6kAJ9FuAXRMbBBVtH8H9fcz5u/5Nn4eoYDz2QnoqixEFIDXCIqS1WQ4MPkxB87MePoambePq2kVgziQAT+uCbVLCZbjOewHQH4oqpmYTgb395BABVIY6aULCf5anCy8DWopcYzst49+W77P9/XUwKMaMH8nw+eHWwmF2WYRIcXowmpmaYBDd3kVAAdF/wVrSXOSQVAHDOZPyORbmp2QW618fQO2CdPO5z/kjOkmLn5YliPJXmI8s13HnCsgmLI0iaQldT4jCaFAcvPjCJ8zYPo64Z+D+/OYbbjq1gpkS9dqNaVQL8VdxFAdbIQbLXSdLh/fdH5lFTDezZWMBlO8ci/QxPaygGWRITF6QGszL2bKSd+m6YIKzj/8xdG7B7Y3jHH3AWbTkWYjiKT3bb9f/avWzGfwqjETr+ANUh4RlT8NgT+zcNQRIFrNQ1zFeU2D/v7Pi/9sKtsViSaeQf/YD1pPs0xJfuPolH5qsYzsn4yxec2VVVnIA/fRZI32M0CN1ccmlQRgE+VlkAsHsjFVOrqQZOrgaLqX3t3lO4Z6aMQkbEh6/dH3tf6KbJfS1EgQYfPPZEa4Y3/KL85gOzuPPEKnKyiD+6cnes32PPtvOml6eodxCEV52/BedMDWEoK8VmP6ShMsqrqykIQsuvO2Jn84ePLeBUWcFITsaLYoiG0d/HP1Bw+s4mAev6H4whNPi9R+bR1E2cMR5PNCwNHQxBELjMt48VMtg6QkdqDsag2rMZ/6v2jmPraPQCXRprwevuiApREPABy+3g3x6Zx2dupcKL1503FWvukvfImsDp7ui2w2sSR8c/zkhOCtoPvFhS3Sp3VxUd34vZ8QdSYD9wGk1itOpuOrzTqw386sgyANjjW2FgFr08C5U89kROFnHmBNUNeqiLAoSz4x9VPygNa9p+wnrSfZrh0GIV/2x5737guXtjzey6kUqnm4O4Qy9hpCTowKvKLYsC9luHYlCH9+hKHf/nNzRYet9z9mL7aLjarBuEgDt9lldlGnCIqYUkWCeKDfy9FTj+ybN2R67KM/CeQ2NgXsS9LkrJooB/fu2F+Pe3Xxqr4w+kozLKq6sJxPNmnqso+NtfUPbDHzxjW+yuHBXXS0PRnt+zcWylgZoa3uFdrqn40l3TAOJ3/NNQcQes+XYOj8bZMbtYqw0N/24lFHFm/IF01oKHpV5cnLdlxO5qHy82rI5//LXgzZTKctgTg1kZuzfS+zBOh/c3R1dwcpV2/F96TnQ2YSqMMUHgUJprianF9ahmHf/dGwq4fNdY5J/j3dRgd2jSR+NMq8O72tAxW47X4bU7/rtjdPxTOCe47QlWgOhC84DpQMTp+DPBxXV6+Tr6Hpph4qM/OgTdJLhq7zheElHsxQ1WaUqLXt7LYCEp0phjBmgVklehm81r+iWbuknwkR89BtUgeOauDXhVjBkjN9JQ7E5q+8LAupqPLfqLqdHRi8eg6CYu3TEW2RrL/Rq8/coBVqVHzzQPnMjJYqjVjRfSEFzk1cECgAOW5kEY+8EkBB//8SFUFB3nTg3jzRfv6Or38a7O8+pgjQ9mMTWco3ZZC8FUe0II/uanj6PY0LB/YhAvOzveeJJuEmQlvp08gI0m8StARCnEEELwqZ8dRlM3sX9isLuRHM5dTV5zq3Hxx1fuRsEan4jb8WfgOccM8FH3B5x04uiJxddsEc54HX/dNPlro3AaV3PSqqPGaSYhtt7B9TELdLxdciTr7kg6mpSTRbuZEYdi3tbxvyhexz8NFxAee+LcLlXtTzpm/KN2/AH6fPBei37CetJ9GuHGO0/g0FINo3kZH3r+vq4velZ1S0NNmXa6107STQBkOXd3ATaXx+e1bAVzn6T7i3e1xg3+xzXdjRsw8E4q2BxT0ksSoJZxYWJqX757Gg/MVjCYlfDha/d3ldQYhK8KLwMLptcSE4SAv+AiwMefGmhV6Y8s19EMsMv6xn2ncOdJOm7w8Rftj/3ZplWo5Dnnb891hxQgbnloDrceXUFGEvDxF50VW9XfMPnPtgP0eeNRkIrDfvj+wQX89PElSKLQ1dmppzCexMMqqxtMDuXwZ889A7s2FPAuhw5EHPAeWctIvPZEvMTiN0dXHDP+8Qu3vGMKXrHa/olByDE7vL86soLpUvyOP0AtJwsczwqezDm7wxujEPO9h1sz/nE6/tQlhy+9nNeeYOKTj85XY8VpNzlU/eOwCWkBYl1IbR19jkfnK/jCnScBAH9x9T6MD2a7fi1b/CWFpJuHuEMvwVvcgkEUwK374aRVuy+bgwtV/PNv6bjBf3/eGV2PG7CqdzrsBz4VWSqm5k+1P7RYxQ13HAcA/Nlzz8Dm4e7WQjf4zqExMGGgtcQEAfgXYgB+HaxNg1mMD2RgEuCQj5ja0ZU6/vevjwEA3vvsPZFsf9ww0mI/cCzOnR0h2Ty52sDf/YpS7P/oyt3YZ3V74oCyH1IoxMh8bBaZ48NMuYnVhub7fbPlJv7nz58AALzzsp12YhYHaYwnMUbMk1G8fsW5m/GtN1+MMzfF3xdAGi4gfPaEc5Y57Pxdqav4+E8OAaD2inE7/oSkwYjh8zpZxwxvlAJEpanjb39Bn5FXn7859l6na8FXXI8Xcy6ub3lDM2zRsOsv2ha7489fkJTP6+zZOIBCRkRdM3C8GM0ZptLU8b2H5wAAv//06B1/wGISptT06wesJ92nAVTdxEd+fAgGAa45cwLXxPTkdqM1X5KCgNiToNCcBMQqQPAGPVAIl8Ri78YBZCUBNdXATKlp/7uqm/jwjx6DYRJcvW88tjCUE7YgUArVR1kUuXS6gda8pptOzNZCNwmee8Y4XhpDddcNgxDkUujkMSugtcQESasoxcOfGqDvz57h9ejw6oaJD//wMSiGiSt2bYjsRd3xOiaBlIL4C8/i3DmOjoUX2BhKQzNx8fZR/H4MQSQnDJKO+CQvevlwXsbOMTrD6zeSY1hrUVMNXLBlGG+5pLtxA5OQ2EyBMNid7oSOD71EWo4PWU57gqk0Fxsa5gJUmtnoxXJdw97xAfyxZacWF6mwpDixH6J2eAkh+OTPDmOuomD7aB5vv3RnV7+Pu+AiJ+Zc3A7v3/3yCGYrCiaHsrHjC4OA+8gBL40YSWwJkkad6/7cnSfQ0KgI56U7xmL9Pj0FcdZ+wnrSfRrghjuO48hyHRsHMvjzq/clfr206LMA6+Rxf9lUQAiBgHRoLiLzp+awFrIk4syJzi7WP93e2hcfvLr7cQOA0sCo32xKnW5Om8JPTO2zdxzH4aU6NhQyiUYvAP5zaAx0TyS3T+sVCCFASkUpmePMqr0nPILIG+88iUcXqhjJyfhwgtGLNFSqAb7FORY4nVj1tsv60t0n7dGLj3Y5esGQ1t3BC2c71Im98JV7pnHPTBkDGQkff+FZif4enh7dAF/Hh14hLccHXtooOVnEvnHKcAma6/7OQ3P41RE6evE3LzorNqMjrZiCpx5I1A7vDw4u4seHFiEJwN+86CwMdJkopTJywOHZiNPh/fnhJXznoTkIAD7+wrNiC+XphsmdHcRzT5wbY/zijuNF/Os9tOP/x1fujn2nGiZBIQWmVL9gPele4zi4UMWXf0dVZj909T6MFaIpBAaBt42DEyk0z1NDizKaTgApCHy6eYDTLosGDPefKrf2xfPPxIaB7scNAIfQRwpU4iwniiDgLaZ2/6ky/sVei33YyGEt0hDXsy9JLmT79GEzYlIoQPAKnAAHddRViHlotozP30lHL/7i6n3YlMDpIQ3vXcBRnONwTgTZZT06X8FnLdeLP3/evtgq9m6kUajk+ZJBVPvHFqr4x9voGMr7r9qL7WPxnR4YBPBPKnjOrfYKaQhFAXRP8FqGsLnu48U6/u6X1ujFM3dj/6ah2L8jrZiCpx7Iuba9YOe4GsNMqYn/9+eHAQDvvHwXztsy0vXvS4f9kPx1nB3eoELMQlXB3/z0cQDAmy7ejotjdnYB2tRIQ1yP155gz0aYqv1KXcVHfvQYAOC1F27Bs/eOx/5dBuGv7t9PWEMp0DrcaGgGPv2rozAJ8OIDk3juvgkur2uY6dBngVayuRagW9ZQacyssvldXgnWAbvDW0FDM/CRHz0GAuBlZ0/iuWfEP/jcoNY3/Ls2AL/5XaBTTI2thUmAl549iedxeEbSEtez6WBPgnp5N0iT/SBLIrfSA6OXs/0A0LPzwz+iIzkvOmsTrk0wegG0BLN4n22SwFep2ssuq6kZ+Ksf0jGUa86cwIsPJFsLIKVON8fXPIep2ruCSEU38VeOMZRXnhtPGMoNAv6K3ZLIjyXVK7Ss0/gnFrzQmuv2HkP5qx8+hqblehF3TtV+nZRiCp56ILs3DiAvi6ipBo4XGx1f102CD1ujFxdtHcFbuxy9SMMmC+A3hgKEJ5smoWMopaaOsyeH8J4ruhMYJCQdcT2J08gBUzA/tFiDqntT8Qgh+PhPWqMX/+3Ze7r6XYTwPzP7CX2ddH/0ox+FYCVp7H8HDhwI/Jmbb74ZBw4cQD6fx/nnn4/vf//7PXq3vcc//OYYZspNbBrM4s+eu5fb6xomQTalljQVBlob0UJagQLQmm3nRSVu0apr+Ptbj2K61MTUUBb/z1VncHn9NNkPEkf7NKeY2sGFKv4XW4vhHD7AaS2AdJIKgAUMqbw0d6TJfuBJJZ4YzGLTYBYmAR6zOrz/69ajOLHawORQFv/9ecn3hZ6SYrckAiL4df297LL+92+O4VixgYnBLP6Cw+iFKAip7Ale9mkAcNbkIAQA81UVSzXV/vd/+M1RHFmuY3wgg79MuBZ6ikwQnjoYvQBNNvvXUg9otw1zP2833HECj8zTMZSPJBi9SM1u0irY8tADkdtmeDuTzS/edRL3nypjMEtHL7otfKSlHcTTIaflUe2ddH/5d9O462QJeVnE37z4rEQMn/TsWJOvxdaRHEbzMnST4NCStyDpN+6fxa+PriArCfjEiw8kosufrsrlQJ8n3QBw7rnnYnZ21v7fr3/9a9/vve222/CGN7wBb3/723Hvvffiuuuuw3XXXYeHHnqoh++4N/jVE8v4qjU38T9ecCZGIhrPR4GekhAO0JrBWgvUON2yLkhHvZzvXN7e8QFkJAEVRcc3H5gFAHz42v0Yzsf3XvZCWkkFwJciCLS8mW+67xRuttbiI9ecyW0t0hIPAygVdS08GwALmvgrEgN8g2mg5WX/6HwVtx8rtvbFtfu5nJ1pKXaLnDvd57jGUO44XsTXLY/dj1yzH6MJ14IF0mkwYiRBAK9dMZiVsXtju5jab08U8bV76Vr81TX7OY3kpOUCsjbuUAbDJMjJUipMEF6veMb4AHIS7fCeXG11eO+dKeGLd1FnmA+9YB+munS9ANIrPrTmd/m83tk+Xf8HZ8v4Z8sB5C+u3teVVzsD1Q7iX6Dj6ZDDqPaPL9WgGe2L++h8xR5D+cBzz+jK9cKJft4TgiAE+nUfXqrh72+loxd/+uw9XbleOHG6enQDayDplmUZmzdvtv83MeFPD/37v/97vOhFL8Kf/dmf4eyzz8Zf//Vf4+lPfzr+4R/+oYfvOH0QQvDH33kQBMC1+ydw5Z6NnF8f3BVXGRjlZe7UDO6+7VbMz86k8nt4wDAJspKUTndX5Ft8yEgtqw8AeNm+EVy2cwOX1wbSSyoA/gkWCxhYMP26C7fgUk5rkaZ4GMCq9NG+d36298+Q83emae3B+zWZR/Udx4v4mGX38/qLtnJ7RtJQqQb4z++yDtZMqYnv/+xWfOSHjwKgz8gVu5OvhW03mQb7wdoTvJhSzhneUlPDR39E98XvXbAFz+Jwp1Lv3XTGk5gOxvzsKdx31x2Ynz3l+708z4mor+X+vjT8ygG+e0KWROzfxOyy6N1RVXR8+Id0VOvl50zhBWcmd4ZJpfgg8rWRO9fR9WeoqTr+xw8fs0dyXnygewcQIG3xST7YNprHaF6GZhA87ujwNjQDf/lDOobyvH3JxlDSsmNNa0+4u/5N3cBf/uAgVIPgyt0b8PoL4/vWM9hF2xTOzH5B3yfdjz/+OLZu3Yq9e/fiD/7gD3DixAnf77399tvxghe8oO3fXvjCF+L2229P+232FIIg4NtvuQTX7t+Ed3Rp0xCGtJIKSRDwk29/DdddeSHec/0r8PIrLsAtN305ld+VFFTQIa2OP7jP5eXLVuBVPIX/eO+Lua5rWuJhgFWA4Ph6jEIL0BnvP31Wd7NFXkhTPAygxZMoAeQtN30ZL7/igp4+Q+7f+f2b/zU1RgzvpJvNMv/mWBFLNRW7NhTwJ1fu5vo70ujuipw9mUfyGWyQqDf1h385g+WGgXFJ4/aM6EZ63V2ewkCAs5tXxaf+8zAWayp2bijgvV3OIrph2EypdOzTfvTNf8V1z346PvDut+C6Zz/d8wzgeU5EfS2v7zNSTLp57glbudtKLP7fnz+B2YqCbaN5fIDDCF9ajDHBYs7xLkgdWqzaHd6//cURzJSa2DKcw58/L7lLTmt8r3/ZD4IgtIpzjmTz7355BCeKdDzpf7yge9cLgNqFpWHHKnBmU/p1uv/XrUfxhDWS85Fr93MZyTmd6eV8+JYp4bLLLsMXv/hFnHXWWZidncXHPvYxPPvZz8ZDDz2E4eHhju+fm5vD1FR7xWlqagpzc3OBv0dRFChKy5uxXC4DADRNg6ZpHP4S2K+n6zqX19w1msUnXrQPM6sNGDq/9wgApq4DhsH1b2c4cfwY/vdHPwBicV5M08QnPvg+XHrlczC1pfsKWRpQFRXSkJzKOgAATGsv6Hriz3B+9hTu/cc/By59LXDXt0HUBtd1NXQdgpnOnjB1HQaHNWDYNixj02AGK3UNH37+XmQEE4aP+EdcKLoBmDqIoSONbSEYdE8Yuum7JvOzp/CJv3gvzB4+Q16/83995M9wzQueD21r51mcFIauWfuCzyLvH29RQiVRwMdecAbXfWHqeut55g1Dh24SGEDi52R+9hSKj9wOnPUcYMM2wNCx8rUPYuW6b3DZO6qm0eDf0KGZfINpQ9fo66oCBA4J3IFxSi+//XjRLqbx3BeKqiInizANHaaR+OXasDB9HP/wsT8LvEd5nhNRX8vv+/7pgsuwf3w/9+eD7QldEyBwCNQPTNA98fB8BT94ZBY/OLgAUQA++oIzkBdJ4vNIU1XIJJPKOSERA6qmwxCFxOfE1iEJwzkJFcXAofkypktN/Nsj8xAF4CPXnIEBOflaqKqKoZwMXe+0L0wCYvCNJw5sGsDtx4t4cLaMV527Cb94YsW2B/vIC87AkIxEvyvNmEIiBjROe+KscTpKcGylgVK9gaGsjF8fK+Ib91vjjM8/A6NZIdlaqDoEk1hrsXbGZwBEfqb7Oul+8YtfbP/3BRdcgMsuuwy7du3CN77xDbz97W/n9ns++clP4mMf+1jHvy8tLbUl40mh6zqKxSIASptPiupqFc2KgoqZbPbMDaWioLJqQlb5zYkzPHDvvXagwGAaBg49fD8GCslsanijXlWgZlUsSvz2gBNKpYx6XUFWr0MQAFHqfk8ceug+kJUZ4Iefsf+N57o2KwpqJR2LhreIRhKUGhqUSgkVkgOvEvWnr9mOpm5id15DZXWFz4uCKj2rBkG5CDRSqMbWyg00yjVUdQmNatlzXxx66D47qGVI+xny/J2mgWOPPojFnXxcE5woNzUo1RLKJMdFZC8LYGpQxnxNxx+etxHbcyrXfaFUVZRXTUgK/zOzWSmhqZkQsvDdE1Fx6KH7gLnDNOkGgDu+DjJ7iNveqTR0DOUkLC3xD5gamgGtUkZFFZHl8OxtzpiURWDRjd543kbs4LgvanUN8kAGi4v81+Kxh+8PvUd5nhNRX8vv+44ffBDVXRNYJMF+x3HB9kSZ057YWaAJ4MGFKj71c3rX/cF5G7GnwOceqVUUKDkVi4vNxK/lRrNSQb2uIZMTEp8TAHDmhhzumavjR4/M4HuHVgEAbzh3I/YN6FzWolrXkB3IYHGRb0WqXNfQrJRQQfez907sGaTP78OzJRw9NY+/+U86x/26czfgrCEj8VqkGVPw3BMZtO7Qe4/MYcdIFh//CV2L1xwYw7mjZuK1qKk6CIBSkaCyRlyOGCqVcA9zoM+TbjfGxsawf/9+HD582PPrmzdvxvz8fNu/zc/PY/PmzYGv+8EPfhDvf//77f9fLpexY8cOTExMYGSke/9BN1glZGJiAplM8uBsVsuihAaGE3qqOmESgoKgYGLTxsR+xl64+OJnQBDFtoBBlCTsP/dCDI/xnU1PijKaGB8fwaaNyQQy/LBByUARa8jrMoZGN0CSu98T+8+7CKIotgU8PNe1hCbGJzZgUwIRGT/IdRUDVREDQzlutOLhMS4v0wHS1OjlMzmRyixzXaojr2QxNCSBEHjui7Q/ay94/k5RwvkXPg2bNiW3mHIj09AwWBExMJjlRrv72AtlHFyo4bUXbOZKadRNggFRwaaJjYnFt7ww1pCw2tAxlBN890RU7D/vIggnPgZiGsCpg8CdN3PdO3VJwcaRHDZtGkv8Wm40NQOFiohCRsJANrm+xDCAvRtP4fByHedNDeGdz9rHdV/U/v/tnXmYJVV5/7+1V9299316tp5hZtiXwIDihixuoFGECGJEFsUgCiTBGIlLIG5xixJ4BFQUQfMY9EFikh8IoqCGLQFBYAYGZmD2mV5u911qOb8/6tbt7XZ3dXfVuVX3vp/n4XmY29V1654+95zzbt9XLKK1xUBHRzawe3ocesTRC+6jQa4Tfu8113WD6w9De3s7OrJL73lei6DnxMYsQ0LZgYmKIbSpK4VLXzsU2LwY8c4UyxTdqsVOU8W4WEAqMffesRgO68vjsV0TuP0p15Da1JXER167NrD1OC8U0daWQEdHcGdsABDyJehjItK5YM7Fxygp4IFX8dJIGdc/vA9jZQeHdCTxVycPBZIGzYqm6xQO4UwR9Jw4tGcfdm85gBfGBfzk2f0YKdkYak/gijesC8TpZU6UoSsSujqX3+aWN5rm72wcK6M7n89j69atOP/882v+fPPmzbj33ntxxRVXVF/77//+b2zevHne+2qaVnPAFEUJxDieiizLgd1XlhVIsrWsL9FMHNuBojowNDXwzw4Aq1evxic+9xV89e+vguPYECUJn7z+q+gdWFp/wzARZAu6Hs44AICmqoBYhCTLkGRlWX/H3oFBfPKfvobrrvk4HDvYcXUYg6TISIQ0FroGyIoCQZIhRb2WR3Rr23UteOMKAFRVgSjLlTlRe16E+beei1rv+eG//wJWrloVzpywBUiKCkFSIAVUC3rsijYcuyL4zdyyHCgqQ0LXoCjBb6mGpmG4BEiyuOy1ondgEH939cfxj5+/GCx/EKIoBDp3mGgjqevhrJmiBFVVIYgCpAAyxQDgQ8evwM//uBt/88a17nocIEy0kDbCGYuVK1fhI5/+Im743N/MuQYEuU74vddc13X0DcDQtODHIuA5IcGt9X90xwgMRcTnzzgk0HkhyhYMPYRxgLtOCJIFSZYCOVMc2pMF4OrEuGOxwbdh4QcmWUiF8P3QNFY9TwQh0tqVVdCVUrE7X8b/7hyrtAc7BHpAY8FEV+8gjDOFoWlAgHNiU3cW9245gO8/+iryZRuaLOK6t2xw3ycAmOggaYR35g4Tv88caaP7qquuwtvf/nYMDg7i1VdfxbXXXgtJknDuuecCAN7//vejr68P119/PQDgYx/7GF73utfhK1/5Ct761rfijjvuwCOPPIKbbrqpnh8jVtgOgySI4QmpiQLefvZ5OPY1b8DIru0YWLkKXT19obxXEIQhjlS9d4CtLQDgrHPOx+bXvRHbt70Y6LhW+zGHNCdcsSi3t2bUl1qbITTxMMC/qFxYf+vFvGfZaA1NZVQSPaHB6Nd1hf39CFIMBwh37jght5sMUlQOAE5Z14FT1gWfqQEAEMLrNyuJAk5511/gtDefguf++L9Yt+mImsZ0kH9rv/eaeV1Hdy92jpZC690epLo/AJy6rgNP7hzFJ980hIFcsJH5MNtNKgG3m/SEswC3JVbQYwGEI9grCQIkEXAcBjGgObexK43d+f0A3LFYGWD2o+0w6Eo4nWFU2Z8wq182dbvik/myWxLwiZNXY1WAY2HZDEZIXXKiQqSN7h07duDcc8/F/v370dHRgde85jX43e9+V01nfPnllyFOMYpOPPFE3H777fjUpz6FT37ykxgaGsJdd92FQw89tF4fIXZMKkqGa1i0dvZgaFX0otseDmMQQ+ghORV3kwz2nl09fYEbYFaI/WYBr7WFEKgDIiysEFunAe6Bwe8whPG39vuejDHsGCmG64gJsD91mEz2Kw9nLFRJjMU64RGeI8ZtN2nFYVLAbb0Z5poJAF09vUgY+rzp4kH+rf3ea+p1ZcsJRaUamNw77ADnxJ8f3oMzDw22BAVw9w4xREeMLIq+9w4/dKY0fPzk1bAcB+/YuPSWWPMR1pwQBFfRPigD589W5PCrrfvxxmW2B6tFqJ1hFnGe8MMhnSkIABiA169pw7sOm790d7E4YDBCckBEhUgb3Xfccce8P7///vtnvfae97wH73nPe0J6osbHZu4BMox6VY+gPbJhYNmV1gUhOx/igB1yGwdJCP7gFBaW44Qa6Q66Z3lYhNXmxCPo/tRhYjkOFFkMtY1cHMbBI0yHrSyKKAWsdhwm4a2Zodw2FLze7WGNhSKKKAc8J8IwBsPqS+0Rxm3fd3S4Tt2wjO6gs6TeeVgPhtqTOLQ7HXiPdSvUdqzB3i+pynj34T14du/4slul1SJMR2VUiLTRTfDH66cZpkEYRuQmaLyDQpiR7qC9kGERdqRbFABRRCwi3Yy5KVth4aWXB5kSFgaWE170CvAcMcGmEoeFzYA0OWKqhHloUmQBTin6c8JhDIIQ3liIlQhvHJwxYRubsoSY7KMOJFEMNRMkaCMoLBhjEBBeennQTnxZFHBkX/CCiIA7d9WQsufC2Dv+5o3L79E+H43coxsAGvvTEYvGCblmFQi+RjEMLDvcgwLgLohx2CIth0GVxNA2dM8zHQcDCwjXqJBEN63ajvhQuNkP4R0gxcqciMOUCL3kICa7tO24JTlhzQkAUGLw3QAmDc3QDKwpdatRZ7JkLbzyizhkSblzIrxMEEkUIu+s9fCy58LIDoqTE98jzDKUOJwxpxLm/hEFYrKdE7wI+wAJVDbJiK+Ibpp9uEa3JMYj0m07DIYS3lIhhCCGEyZhemJFAZX69miPxWQdc7ipxHE4TFPJgUv1IB26+GT05wQPcT2vbjXqhO20lWNSfmE5DIoUXhahFJN1AgAs5pXvhZdeHvUz5lTCzBiLyyiE7ZyLCmR0E9Pw0svDJA7pI16dTZjpWnFZWyyHQePgiImBfQUg5Eh3TNKqbYdBEYVQy1BkKR6OGMYQ6vcjLtGKahlK6JHu6M8J7wAZpnp5nNT99RCdtmpM5kTY4yAKiEVpEjCZKRXGWiEIQiyyKYFw0+yB+JSrAVOzg6JvHyyHxv50xKJxGAu1ZhVALJSqLQ7Oh7gIqTks3MMCEA+xKJuDJ7Zaq+mE9haBwOP7ocTEERPmoQmIT7Qi7NpdAFDkYNsshoXlMEgh1nTHSXzSDjl7LiwBw6AJvwwljh0fwvnbqbEah/AMTTfVPh5jEbbmQVSIx2pFcCXs9I447JFh9k70EAUBgtd/IcKEKQjkIYtC5OsTeaTPSjHx0od9kAYqcyLi4wC4X98wo7txiWDxKMmJU6q9JkuhZUrFqW7VDrF3O+DVMod2+8AIU6UaiFfHB89BF1bgQY5Jnb/Fwi9DiYvgohWy5kFUaOxPRyyJsCOwcYjwMk6Ccm4qcahvs2zcNg4U1bQZgxRy73a3VjP6ByeLhXuABOJVchBGbaJHXCJYPEpy4lK3aoWcShy3utUwo1dxmROAu6aFRTX7IQZzwmaAHuJYKFL0dVGAyda0YZ0p4lKuBriOGDVEzYOoQEY3MYuwDaw4bJIMLPTorii49Udx2BzCTvmJS+/28BXtUanVDO0tAsFtnRZupDsOJQeTdczhCqnFIYJFJTmThJ0JEqe6VSDcM0WcAmOhZsRUoppxmBKWw6CFWecviZEPZgBedpDbaz4MqpHuiJerAZ6jMtwzRRSI0XJFhE3YvUU94pIiGLagg+eFdCKcX86jjhmIh5I7j/TZOB2maZ3g8/2YTBEM7S0CwUupDpPYGN0hp1QD8albBcLXPIhLf+qwjCsgfnX+Ya4ViiSCRf5EMRndFUP6fogxOk9YdvjZc1Gg8T8h4RuHgxAOEA9FRUHgMw5R90KGrcLrIQkCoq7RHHbrGw8lJofpMKM2QDy0H3iIv8SlLo+H4GJMbG4A4WcHxaFu1evdHnZJTpTPEoD73eAxDqIY/YwYwH1GqvMPP+Ifpzp/BwwGRbqJZsJiDJIQnqiDh1ejGNX0H8thEIXwI92i4KWDRXQgEH6/WQ830h3dcQDCb/niEfW0am++hlnHDMQjqsmjX7nXuz3Kc8KDm6MyFmMRtg5GtPcOYIo6c5gR3hjoYHi1u2GOQ1xKkzzCLtOKA2GXocQlSwpwS9YaXbkcIKObmEI1VTLkie8dIqN6YOCZUi2K0U4vdyN5fBwQUYeHYjcQfSV3m6GyTkRnThQtG8MFM8SnqQ2PfuWSUFknIpwR48FDD0QUEOnvh0fYB8g4CA3aLPze7aIgRN7Y5DEOXnZelJ0PUwm1C0hMrG47ZEV7wC1piHpGjEejK5cDZHQTU7AdBpGDZH/UFRUtx+ES3fU8036GwbQdbDswAcvme/IOu7WHhxetiDIOwq/TBKKv5M6jHzOwOMHFfePluhjdvMTDRER3vZxK2IZm1LOkAH5O26ivEwAf8UnXKRVtR6U3DmFnB8WlNAmgOn/AbTcZdkBDlqKdBeIhCAJFuonmgqeBFeVaZi9lNOzFUKiqEi987XDBhK6IGDftUJ9pJmH3FvWQhOj3nHVbp4W/Kbhpo6G/zZLx6pi5qPtjYe0H14svQFdEmHVwSoWd/eCJ60U1MwiYUrvLyVEZ5UMkNx2MGETzeIhPSiIgItpzwot0h/03U+ToRzWrgr1NXufvEfaaGYeMGF4lnVGg8T8h4RubARqHSR91RUUeKaMefhfEgumgNaGiYDaeUQFMtjuJ6pzwCLv0Aoi+kvtkHTOfqOZC34+xkoWUJkGVJJQsvt8PizEYnOr8ox7dlSUh/CypGKwTtsMgcXJARB0uvdt9rhP1hMc4AO6aHHVjk0emVBzq/D3Cj3SLkZ8TbnZp+GtmFCCjm6jCI1USiL6iIq9xAPwtiBNlG4YiIa3J3CN5vIwKSRAgidGv1eRRc+QquUeX6qGJQyTPzzqRL9noSevQFRFlzt8PV/yFQ51/xPvYW56hGXZ6ebWmO9S3WRaTDgg+XUCiDI+91K3pju55AgAs2+HSgzgOUU3XKRVuplS1zj/Cg8GrRa8a8XIcYFKwl9LLiciyY8cO/M9vf419u14N7J48+qwCU9V4Q3+rKrt3voJHHnoQu3e+suC1vKK7ALB/907832N/wO6dc/8dR4smOlIKOlIaAL6t1ngZFa5nOrqbA68NEnDHYt/unXjif34377yoFzYDl5IDT91/vlpmy2GAAJgje/Dsow/hlR07Qn+umfA4KKhitA/TniOGh6J9lPVAgClRGw5tFqM7Ci5cercLblQz0nOC8SnTikWdP4esmGqdf4THgpc2ihvYCfUtlo3llXSSkBoRRW6++WYMDg7iove+A3956nG4647bArkv4yQUxVtl8647bsPbNx+OS895B96++fAFx4tXdPfmm2/G2086Cp+7/EKc9dqjaz4XYwxl20F3RkdKlaDL/FNoeRgVk6Jy0dwdqkYFh7G487bv4ZK3bsZVl3xgznlRTyzb4eKU8lKJ55sS+ZKF3/z8Dhy9cR0uOvsd+GCA66FfeDliWIRPkLxqVoWIlyYB/JxScajp5tK7vTLvohzVZAxQOa2ZUcdmDFLIDmxJjL72gxfx5yE+GXUsm0GVRIgxeNblQkZ3zNixYwcuvvhiOJX8OuY4uO6aj/uK4C4I41dToUh8vJC7d76C6/72iup4OT7Gi8cGOfPvONdz5Us20rqCtoQKQ5FgqCIKnMXUeBkVC0U16wmPlDjAnRd/fcVlYIuYr7yxGKcyFC/SPc9C8eJLL+Of//7KcNbDBWCMQQCf74cqCfDrantlpIiJMn/BRY1DzSoQ/RRaXk4psRLhjeiSCQDcsoOUiGeCAPyc11HHdhiUkA2sycy56E4KHhF/YHFdQOqFzRgMDuUXUYCM7pjx/PPPVw+YHo5tY/u2F5d9bwbGRSgKcGtjeahsbn/xhSWNV9gHBb9/x5GSia6UCl2RIIoCWgwFRU6Rbs+o4KEoGfVaTV4bZJjf76BgDPzKUMS5jQrLdrBr+7a6jVe1NRSH74ffFMHxsgUAGC1ZIT/RdHjrYEQ5gsVNB0P0aplDf6sl43Z84JBWLUc7qgnwc15HHdth0EL+fkhenX9EzxOAp4PBR5A06lg2v/2j3jTHp2wghoaGIM7YxERJwsDKVYHcn1dzeoWTMNDAqtVLGq+wF0I/f0er0gqpK61XX8vqSuX18OHVbxbw6nfdXthRhEdKHLC477fDGHaPlVDmXG4AcMx+wNy1mqMlC+vX1RgvMbj1cD6sSjuksOuYAff74YeRooXOlAaLsziC7TAuQlFApRdxhC1NbjoYggAhBmrVPCK8SoTFong7r6OO7bDQu+TEQfuBR8QfiEn2A0W6iajS39+Pm266CVJlUxdFCZ+8/qvo6ulb1n29jYGXeCCvFMGunj588p++BtEbL2n+8eK1Qc76O9Z4rrGiiawuozWhVF9LqhIE8FFqtSqKklyMbq/ti49JUbRs7in2ls1ng+zv78fX/uUGiOLC83VvvgxVFrE7Xwr1mWrBIyNmofrd8bKNI9evnrUeXvHZLy17PfSDp7jKpY2cD0V7y2FwGJBQJTDOzis3+4GXwzba7dMAPobmYvpTDxdM7iUHPJ22iihG1hHDS80eiElUk4OonLd3RNkhxcvQ9Nqn+cFhrG593ptBuRwA5Ho/ALF4LrzwQpx22mn45cNPQGntxaHrVi/7njxTJQG+KYJnnXM+Nr/ujdi+7UUMrFw174Gc5wZ54YUXYtNxJ+LuXz2E4487Fr0Dg9N+Pla2cWh3YtrfJKnJ0BUJRdNBQg13wbYqc4KHhx5wD05FNn/U1ovuAgIGWwwuzwW4G2TYKXEeH/jLDyK19ijsfeEZbDjsiFnzAgAKpg2bMaxqTWDr/gkMF0zkDKXG3YLHE0LkgSqJNXvTm7YDSRTQmlCr6+GWLVtQTHbATrZzeTZPcZVLGzkfvdtHiyZyhoyejIaXDk5UnGZ8/k4M/N5Llf31nWWMwbQZVM5pi7y+H5P9qecfi/GyhYJpY6RoYkAxfGdNLBeranTzUO0WIpslZXESzAIm6/x9C0DUCR6ZIHPtHVGBV0q154jxc9zePVaC6TCsyPE7W3nwyrKtN2R0x5T+/n4cd2IaO4YLgdzPS5XkdXDinQbV1dPnK/rlbZC8xqGvrx8bjzoOXT09014vWw4UUUBbUp32ui6LSKoSJsp26Ea3q0jMJ5UYcOvyWHH+nWHfeBltSRVjRQum7XBzCPBIifOQRKCrpxfduRTa2mcbkA5j2JMvY31nCqvbEhAA/O/OUaQ0OfS/leUwiJzEkYC5nXOjRQsZXa46Gvr7+9Hf34+t+8bx1M4xLs/mpVTziC6JgitKNZ9dkS/bOLwtgbQmQ5MllCwbsspvi+f1XfTbKmv3WAkTpo2VrQluhiZjDGCMy1h4/amteQbDYQz7xk0MdSSxf7yMAxMm2mfsKWFhc+rdDkS7LRIvPRBgalp16G+1ZNw6fz5zwk9gx2EMByZMtCYUbusE4JbS8SjJqda3LzAWlsNgM6+dL+M6FoLApzNMFGgO1wKxII4DSJxSiQHXsIgi+bKNpCZxq0+ca2EbKZpoTajI6dOjl4LgRvcKVvipgrxSqj0WqssrWjZMh2FNWxIJVcI4x3RJt3c7L6PbVV6da5N0HQ+Ka3ALAgZaDHSnNOwZCz/N3Oae/VC75GDCtNGX0WcZvIbCL7XaNbr5zYn5zkwF04Yui+hIadBkEboscG8tGKW9I1+yAEFARle4lqLwTKmWfOhg7K+sFUPtSaxpS6Jg2lw1QWSJj+aBXyf+RNnGC/vHuabQeoJZXEoOBHfv8JMJsm+8jAMT5dCfqRY8HDF+tR9GixbGTdtdMzjCGLjpgQgL7B8AKtlyMjRJ5Lp3eI58XmeKetMcn5JYELuaKsnn4MTTi7YYxss2BnIGt9ooSXRrNWdukgXTQV9Wr2nwZnSZSz28zfiJIwFuetF8m+TefBkrcgb6sjo6kirXGkUGPn1WgckIVq1Nslg5NK/rSFXrwRRJxFBHEqIoVNWrw6Jax8wr0i3Obi1YthzIooDWGhE7XREXbDMWFDyzHxZqDzVcMNGZUpHRFQiCgJyhcDs48TQ0gYX3Dtth2D9hYk0l6s8zxdRifHUw3P7ttX9eshyUbIah9hR0RUJPRkNXSsM+ThoQNmOQhfB7twP+zhOMMewdL3N3xLjK/hKXdnp++1OXLQcl20Gec50/wK/8wq/2w0jRQmdS5dYVZipc9EB8zonxsoWBnAFDFVHk+v1w93MeDogoQEY3AYDvBglEU/BjvGwhqUrc0u+Aybq8qZvDRNmGoUhoTdR+jqQqQRaF0CMWls0vugt4vYhrf6bhgomkKmNNWxKCIKAloXKL2AB865ilioFlzxgLxhh2j5ewssVAd1qb9rP2lIZVrQnsGzdDFY+xHIerc65Wl4PRkoWsoczKAgHc8gtNFlG2wz9AWZyzH+ZqD2U7DJbD0JudrMNLa/y6HPCs3QUW3jt250voSWtY3ZZEW0JBkUNWkIdlc84Emcew2JMvYTA3uVbIkojV7UnYDFwcMjx7t/sRi9pfSSFOaxL37AdeGTGi4NX5z3/dvvEy2hIqRJ9R8aCwOZYn+dF+yJfcM19Gl7nsGTPhVXIwX+Yc4I2DjK6UxrUtLeCumbwESaMAGd0EAL4bJBDN1hbDBQtdKQ0pjV8dpFurOX3jGy2a6EgpSOu1nyOhSjAUKXRvpOkwrmMxV12e5TCMliysbU9UxySjy1BlvmlQ3CJ5ouDWrc74aPvGy2g1VKztSNX8nq5qS6A1oWD/hBnas9kVcS6egoszp8S4aaE3o9XMAtFlCarEJ7WaZ/aDJLhF3bUOkWMlt769bYqTzlBmj1tYeLW7vGry5ts7RosmFFHEus4UVFlExlC41vry1sGQpdpzouqkbE9O+550plQM5AzsHQ8/rdiKUPlF2XJQtBwMdSTRkdL4GhUOg85rnajUdM9nbJYtB0wAejJaXVKJeTno/Gg/HCyY6M8ZaE9qXNcJhzEIHEsO5nLYegwXTfRmNCQ1GVldgckxoGEzN8tWaRIhteb4lMSCeD0DeSEKqJlWXS8sx60E7cnqC14bJJIwvRcxYwxl20F3Zu7n0GQJKTVcb73nAe7gGPWfK0Vwz1gJ3WkNA1MUNVOqjJQmYSLkdGpgUhyJ10EacCNYU/e9ommjPCOtfCaGImGoI4mi5YR2kLIZuKVUA7MNrJLlQJNEtCW1mteLolvHy+MgyTP7QRQqKYI1jpFjJTctcKpKt6G4zgeTQ/SGZ8cHYO6SHMt2MFx0nXOeAGVSlaBwNCz462DMFouybAejRVc8babjVhAErGw1oEpC6DWsNk9jc4Hh3p0vYSCroyetc3UkA66Bxc35UKnzn5klNZV942X0pDWsyBnQFZGrA4KnuN5C21TRtKFIInozGgzFLQmxOEW7eZZpiQtoP5i2AwECeipnzoQqVcXUeGDZDCrHNbPekNFNAKjUJ3JMJZ5sd8LtLefFa7cztSc2D0TREz5x/50v2UjryrSoVS3akipKIW4Qw0UTPRXPJy9q9SIeL1sQRWCoPTktuiqKAjqSGsY5pAnybqcHTI9gMcawZ7yMlS0GejK1jU2PnrSOFTkDe0Kq2yxa7vzkxUxHzFjJQouhIjPPvMzoMkyHQ6SboyPGS5+d+bGKlntw7EhNnxeGIlUUzHmkETuQBX7fD1FAzb1jV76E3oyOla2J6mtJVUZCEbmlE/PWwVDE2dlBe8bL6M0a6J/DgdySUDHYksD+QjlUp7fD+LVrE0VhTkNhpGjCUKRq1N9zxJQ5fDc8bYkkpy4Cc2VJeZQt1/QabHFbkeZ0hWv9bjVTKgI9yw9MmOhOq8gZChKqu17yckBYHMdhIe2H4YLb0cArZ0yqEnSOWYSWw6dfeVQgo5sAUB/RLEUUcbAQbg2qX8bKFvoyOncFxapnurI5j5RMdKXUBf8WSTU8MbWZnk9ezOxFzCrtbla2JtGemm1stiQUOA4Lff6MlSykNBnJkFu0TUUWBXhHof0Tbg/ute3JBcs/RFHAmvYEEqqMkWKwaeZly4EoCLPqycNk5sFpvGyjJ1NbYNDDUKTQUwW9KAnPLgduCu30DzY8YaIjpSI7I6KpyiISCp9D5Lhpz2ptGCZeCu1UA2u4YEKXJazvTE0z/qWK4B43o5tjnT/g/p2njkO+ZEESBQx1JOd1ggy2GMhoCkaK4Ua7eepgiAJmCXFaDsNwwc1+yFbaCyYUCYYicukAki9bSGsyWgx+jsqZWVJT2TdeRk9Gq+rWZA0FZe6pxJyMzXn2Sst24ADoz7kdQDRZQlLlZ3Rz7wIyh/YDYwwF00F/bnJPNRTJzYDguGaS0U00FYwxOJx6J3qkNAkbu1OQJQHbR4pchU1mUjRt6LI0K1rEAzdq46oSu8JHArrSCxu7STW89FHP87lQtD1oZk6//RMmWhJua6xapDUZhiKH7pHNl230Zfk6ZBTJFYEpWjaKloN1HUkkfEZLMrqCtW0JDBesQMW0DhRcA4/nAXKq0V20bOiKuGA2ii6LELBwX9Ll4EVJZhq7YVE1NKe4pZxKKUpfVq/pjOGhYG47DIyB69rpGlhCtSTHtB2MlSys70xV+7ZPpcXgJypnM74HyKl1qw5j2D9RxprWxJwinB5JTcbq1gRGilao3xNuvdtrCJICwN6KqN6Klsk9RJZEZHWFi6p9vmShK61xi/gDc9f5l6ZEuT0DK6FKXMv8LMdNJeYirlcjc87jQMFER1KdJprbwlF0kWekG5g8T8xkrGQhrcvT1m9BENBi8Pl+AO6ayTPLtt40zycl5mT/hImsIXNV7RYEAStaEjhhRQvWtiVwsGBi12iRa/9Mj8l2O3xrvYDJ+kSbMYwVTWR1fynuSdXtJR60s6KW55MXnsomUBG+MW0MtSfnPMQmVQkpTQq17YnXnopnJA8AFMHtMbpnzMRgi4HeRWYdDLQY6Elr2BtQmrntMJi2g4GcwXVeTH2rsaKFFl1Z8HvqpVaHlT46M0rCA1FARWl48rXRooWMrsy5bqc0KfS6vHpE8iQvlbjy5901VsJATp+m+TCVpCq73QB47C2M30EamP792JsvoyOlYeUcTsqZ9OcMtCUV7A9JVI1rxwcvrXrKfPdaSq7tSM4y/lsTauhq1Q5zHVI8z1WAK85Va0fcPzE9yg24UX9VFlH201srAHiWMUoV4aCZxqbDGIqmjRUt01vDplR5VvlOWPB0PgCV1ps1Xh8pWujN6LPOWFldgcUxA5WXCGcUIKO7yfEiaYd0prgLjACux/3QngyOX9GCXELBjpFi4Gmx8+EwBtNh6M0Y3BbAqQjC5GFhrBJR9VMb6Xrrg+9BW8vzyQt3A2RwKjXM/Tl9XmNTEAR0plQUQ/TIjpYs5OZoTxUmsiRiwnSQMSQM+Ugrn4kiiVjbkYQgIJB+5q7mgYKOOQTMwqJay8wYJkwHvXNEdaeiKxJUWQhN8+BgwURbYm5jNww8A2aq3ThWstCX1aHNIVZlKNKszghBM1ay0J3RuUbyvFR7hzEcmCgjpclY15Ges4YzpUlIKHLo2VSW7YCBXx0zMOmoLJo2bMYw1J6ccz7MRJVFrG1PomQ5gWdMWRxbQwGTTqmpgqR7J0pY1Zas+T1Ncojw5ksWkpqMFs46MbIogs1wMJUsB4wBK1sT05ymhiJCl0VuEV7eRrc7J6a/PlIwkUuo6JxxxkmoEkSRj3OOt4aSMseckEUB3TV0YpKcxdR4l3XWk+b5pMQsGGPYnS9hVeviI2lBIggCOtMajhtowRG9aZg2w47hIhehk9Gia2Ty9kZPRa6o6yqLjKiG4a2fy/PJA7HigBgpmNBlEWvaUwtGVbOGCiC8uu7xso1+ztFdwD0wJFUJ69pTSxaz60hpWNmaxN7x5QsmjZZsDOT4GlfA5Jxwe9eLvg6w3tiFsX44jKFgORhsSSwo1BM0bs9y9/+9A1PnPPX1noJ5WM4Hu1IOw3vt9FLti5aDibKN9R2pOdsrAm63Bx69mfeOl9Gd0bh2fPCcD3vH3YyYrkXqLXSndXRndOzNBxvt5l2zOlnT7f57/4SJnK5gVWttZ7orFhWu0GC+bKMrpfp2ggSFKs7ucuBFuWeWjMmSiIwuh+q4nooDftpBXhnK1Dp/xhhGSzZW1NjLEhzmhIfpOFzPWO7eMX1OHCyYaJ+jXCzBSUzNO5fwzA6qN2R0NzF7x8toS6gYmqPvL2/UiqF1wmAL+nMa9oyXsS8Ag2E+xkoW+jlHamYiiQJGSjZaE+qiIqqeImpQ41OyHChSbc8nDyTBjdoMFy2saUvUrM+cSVpz0+wnQjhQF0zX0OOtaA8AqiSiN6svW8xudQC9u732cX60BoKmOicKbn1/2qcDIhtS2zA3pVtGZ5q/k06e0h7K012Yb73QZTHUXvb5soWUJnFNLQcmI1gHJsoYbE2gz0ebx7akipIV3j4yXrYgCALWts0vYBY0nlhUWpOwpm3xGTGSKGB1WwKCgECFk3i2RAImHTE2Y9XSpHUdqTl1MAxFgqGGp2rvMAbbYTUFQMNGlqYr2nvf/5lRbo8WI/xUew/GAKWObRbzJRspTUZ3jb1Ml0UYSvhRf08Hg2fJmiyK09wwDmMoWzYGcrWdUp6YWtiOypLtQJVFqukmGp+Jsg3LYVg/T9/fepE1FBzVl8OxA1losoiXh4sYD6Efs2dkzhct4oEsArIgoDe7uDrqhCJBk8XAIlkHCybakxr3Q7SHt0l2zxC+mY+EKiOry4GkUM9kpGihPan6NvSCpCerY01b7UPSYqj27jbtJUd+vfZx9Sg/kUR3TpQdht7MwqnlHklVnqdT7dIZLVkYzBnco1fApECSK7DnoC87fwaGLIlIhRTxByqp5en6OCxlUUBXWsNQpQ3UQqQ1GU5IGTGTXRYS3I0sSRSQUCSsbU8uOSOmPamiP2dgb4C13ROmDU3mF+kWppQc+ClNEsVwxaLGSzaSKl+tAw9pxhq5f6KM3hm13FNJqBLXDjI8enQDU9rSTvkTDxdN9Gf1mt8VT0As7Ki/V8LHc2645e2T4z5atJAx5i6REgQBrRzGYrRoodXw70xvBMjobkJsh2HveBlr2pKLTkfjhSgK6MsaOH6wBYd0pjBWsvHqSDFQFdrhgom2pOorohomkuCmeC1WLdxLAQpiYfQ8n/05/4ZN0MiSgKwhY6gjtaiDfGdaQyFgw4JVlKF7FmHoBU1Q79uT1tGf07FnCSmkXpuwepWfiIJ7cEqrMloM/98PXREDr2fOlywklPpE/AG3Ls9hlUObJqM9tfB4tBhKKOnlXmo5z1TqqbQlVGzoSvs2NJOq7KZLhjAWByZM5Ax5zi4LYZJQJfRmdfRma4vI+UEQBKxqTcBQJIwF0ELMYQzjZRsrOZdgqJKI0aLluzQpZ4QnFjVastCZXrj1ZxhMbZXlRblXtMwt+uiJqYXRCaUWssivplua0lqwYNpQZTeDbC4yHATE8iUbfZyzK912rJOfy8vwnM95nDWUqkZCWBRM25dOSyNBRncTsidfQmdKxZp2fuq7S8VQJGzsTuP4FTl0pFW8MlLAcGH5QmuMMZRsB/3Z+gioTUWRBLSnlHnrEmshiQJaE2ogaYGe55O3UNZUNFnC4T0ZdPowJqaS1mRXMCVAh8x42Y1U1CO1PGhEUcDa9hR0RVy0SOHBSpuwhVoQhYWXNtqWVJDS/B9gdVmCIgmBqvIOFyz0ZrRFf0+Dwu2/yzBWdA8qfjKUEqocSs9yt3e9VDeH5Ybu9KJKL5KqhIQqoRBwRoxpO5gwbQy11ydjzFAkDOSMZRu3WUPByhYDBwrmsh1VwwXXCcG7TEmu9CL2W5qUVGU3JT1g4Sy3BSubJdTFi6lzYaEoNzBZyxx2VJMxBgF8e7cLlZIDwN3LetL6vG0eExUBsbAi/5btAAKriw6GR7HifOhaYP1MKFKorTcnqmes+ukp1QMyupuMfMmCKAo4pDNVlxTJpdKe0nBsfw5H9+fgMGD7cGFZtTdetIh3K6hatCZUrGlLLel3s4YCM4BDw2jJwoqcUdfadsBVs1+sEySjy0gE3D5ttGShK6367o0ddbKGgrXtbu9uv4dMhzGUKnVfvIXkPCRBgKFI6E4vzhtuKG6dWCmg+ryS5UASsayI4nKRBAGWwyAIQJdPx5SrYB78wSlfttBTp9TypSCKbrpk0OnEu/Ml9GX1eaNncWFFawJZQ8bBZTi1GWPIl22savWvoh4UiiigN+O/NCmpSjAUOfAaXs9hWy+HlLdWe59rvig34DrzkprEpZZZ4tibWqy0kXMq7S4ZgL4FoqoJRYImhaeDUe2GwnluTM1+OFgw0ZVS53U+ABVnjBKeM2akaKI9qdSlbK2exGPHJALBchj2T5hY25asi8DHcpElEStbEzhhsAUrWxPYP2FiT760pAPlaNFGT51UumeS0mRkl7gIJ1W3LdByDtUF04Ymi3XzzC8XTZbQkpAD69dtOwyOw9AV0/GYixUtCXSnNezx2bt7pGAiW+fsB7Ei9LTYMhhZEpFUpMAi3QcmyuhKa3XNfBAFwKkI8PiNDrgtgYJV5K2XavlyyRlqoOVJ+ZIFVXLbbvFWsg8DQ5Gwti2JfNlecvR3pCI02FMHMc7erI5N3WnfjiBdkZBSpcAdMaNFCx1JtW5nC69k+sC4uWCU26M1pDKUqRQtB4rET1wPcB0KNnNLQDoS6oJj4QmIFUMyusfLbmo5T7FFwKvpdm0Ay2Ho9ZHhaShSaMJyjLmOkO46dk2qF2R0Nzi7d76CRx56ELt3voLdY0X0ZjWsqkPtWZCkdRlH9GZw3EAOSVXG9uEC8iX/tWim7SwqWhRlkgG0djg44Xo+M3VKmw2C9qQWmALrWMlCSm+8tCdFEjHUkQTgr3f3aMnGYEv9sx96llj/lglIwdxyXCXi/jmUXnkhiQJUya2v95t5oMsVscUAD5Feajnv/sPLJalJkCVhmuE9dX+cj5nXOcx1YK9uTaClsk7s2LEDv/rVr7Bjx47wPkTI9GZ1dCRV7FuCqBpjDCNFCytbjLrUMnektOrfwi+tCSVQo4IxBstx6irOKlbU/UUBGFwgyu2R1ORpgmNBY9oO9k+4be0SKsdWWbL7fS/bDla0LpyxJYoCsrocqJK/R7nS5rEe2ZWSONkFJDePgNpUBMErXwx+Yrgq8sqidYwaATK6G5i77rgNb998OC495x14++bD8au77sD6jlRDNKIXBAE9GR3HD+awqSuNCdPGjpGCLzGQkaKF1oTSEEaV541camq15bj1Z30RqG1fDhldrqbfLpexksVd6IQX7UkVq9qS2Dcxfys+r01YZyq+nuikKgWSVj1cMNGaVOsmGuYhiQKyuuJLQM1DFAW3D2+ARreXWh63fSSlyjCUybrumfvjXXfcVvP3al23f7yMtqSCwVbXgX3zzTdjcHAQb3zjGzE4OIibb76Z2+cKEkUSsaY9CdNhi1a9Hy15Ue74rBlpPVhjc7xsI6kpyBn1c2BLggBRBLozmm8DL6HMdkgFhcMYdo6VsLLFwNr2xbe1Ww6qKGKkYmj6zdjKGWogJXsz8VLLs4toCxsUrpI7MFa0MZDzv3ZndDkUMbXRkonuOgkN1pt47ZqEb3bvfAXX/e0VcCo7iuM4+MY/XI3xA3vq/GTBoskS1nelccJgC3ozOnaOlXBgHoOCMYbxslXXOtUg8byRS02RGymYyCWUSNS2L4e0JiOpSZhYZms5y3bVuuOWOusXV6nYQM6Yv3e31yasXqJhQWBUhGCWI4rDKkrMK3IG95TAmaQ1Gb1ZfdE6A1ldCUyZOK6p5QCgym6XiIJl19wfr7vm47Mi3nNd98orr2CoPQVdkbBjxw5cfPHF06655JJLYhvx7kpp6M1o2DvurwzFY7hgVSKZ8VkzkqoMRRJcgasAGCu5qeX1HANJFJDWFAzk/AvlToqpBR/h3TlaREdSxYbuNPc1VBbdVnKDLQnfTnQvEh+0mNqEaaO/TudOSRAgQkBKW5wjPQwxNdthcBjQWacuIPWGjO4GZfuLL1QPAR6ObWPLli11eqJwaUmoOLo/h2P6sxBFAdtHijWjv57ISRwPjXOR1ZUlL4rjpo3+bPyiVjNRJBFthorxZdZ1jxQt5Ax50WmKcSKhyhhqn7t3d73bhAWFroiQJRHmMuq6R4oWsrocidaKSW1pz2EoUmA9y10Byvillnu0J1WULGfO/XH7thenvTbXdc7BV9Fd+Vs8//zzs66xY7zXujoKSUii6KsMBQBGiyZSmhy7NcMVUwumrpsxBtNh6EzXd+9IqhJWtRqLcqRrsoSkKgVey7xvvAxDkbGpO12XGndFcoMSXYv4mxiKCFUWA+18Uazo5tRLE0Ss9CzvSi/OkR6GmNpYJSOmETrDLIV4n7SJORlYtRrijH6IkiRh7dq1dXqi8JFEAStaEjhhRQvWtiVwsGBi12hxmijMSNFEd0bz3d81DnhtLhYrfjNedvsOxzmFeCptSXVZBhbgOiH6snpDCCPNR29m7t7d9W4TFhRePfNyav1HSxb6s3qs0+AMxRUvCiJ1NF+20R3D1HKPpCpDANC/ctWs/VGUJAysXDXttVr7qChKOOnITdWI1dDQUMPttW1JFStyOvZN+KvtHi5aWJHTY7evKpKIdCX7YblMmDYSioSWOqmWewiCgIyuLDqNO2cEW9+eL1kwbQebutN1c2Ibirzo7IuE4u4bQY7FSNFCW0JFuk7fD1kUkFTlRQuXhSGmNlay0JuJ7x6yXJrzUzcBXT19+OQ/fQ2i6B4WJUnCjTfeiP7+/jo/WfgkNRmH9mRw/IoW5BIKdowUMVI0YTkMDAJ6GiytJVnxRi62rnu4YC7a8xll0roMVRaWnEpbtGyokoi2Oqp182Jq7+7RKb27o9AmLChUWVyWyOB42YIhS+iJeTsoQ5GgydKy26d5Tr04ZwmlVHcssh097v4oufujKEn45PVfRVdP37Trq/uod50o4fNf+To2Dk0a5/39/bjpppsgSY21165sTSKpytPWh1rkS67ztq+O7fSWQ6sRjODiWNFCe1KJVXr9VNIBiqmVLAcHCyYO6UzVtZ3eQItRFQ/1iyy5ZShBiU8yxlCyHPRmFtf2MkgUScSqVgOdixQPDlpMzSvf62iwzjCLIZ6rA+GL09/9F1h7zEloLe/HUYduiP0hYDEIgoDOtIacoWD78AS27JvASwcL6EqrDZfW4rU+cVWF/f2OZTtAA6QQTyWtuf26x8s2csbi/YmjRQttSWXB/pWNQtZQsKYtgf/bOYakKkMShUi0CQuSnKHg4Dy16/NxsGBiZWsCmToI3wSJJovQZQEly8Fy7OW4p5YDblZQQnWFJ88653xsft0bsX3bixhYuWqWwe3hXfd/Tz+LdUNDeNvxm2Zdc+GFF+K0007Dli1bsHbt2obYa9O6jFWtBp7cOYqUJk/r9TuVAwUT6zpSsXXeen2CGWNLNooYYyjbDF0xdugnVAmiONlPe6nYDsOusRLWtCewqm1xBm8YLOVv2qIreHV4cZoGczFh2kioUt3PnSlNXtJYZHQZVkA13SNFC1mjfj3so0A8V0nCF8MTJjauXYVjB46KtTL1clBlEWvaU2hPatiyL4+2hFp3QaQwaE0oixK+GS5aaDXiL6A2FUl0Pagv7J9Y0qJeMB1sqqM3uh4MtiawJ1/G3nwJ3RkdoyUbh/f473UbdVLa0tRXvbr2vgZwSgmCgJyh4OWDhWXdJ1+2MdSejHVaoCAIaE9qeH5fHq1wI9lzGdtTyXZ0Y9NxbThuIDfnd6O/v78hjO2pDOQMvDJSxIEJs2aGg5cN0h/jbJCkKkOVRZRsB7q8tDKSgukgodY/tXw5eGJqJctZclsvxhh2jpbQk9FwSGcqtmVaCVWGE5ASxmjRQl/WiF3phUdCkSAKbhbcXI43v4ybNta0J2I7L4IgvrsnMS+244p6xL0VVFBkDQXHDLRgZQQ8r2GwmNYnjDFMmG4KcaMtfi2JpYnKjZfdFlnN1jdSkUSsbU+CwRW9SapSrKM1M9GX6Dw40CB17R4ZXVlWTbf3ux2LTE+MIhldxmKXiL35MgZyRiQE9XiiKxLWtCUxUbZqzp8DEyb6shqyMTc2DVlcVgrtaMltQxpXwwpw18rl1u/uyZeRMVzhNG2JDowokFAlKOLyVe0dxmA5LNbrRlKTK8r2yxuLZirfmw8yuhuUkWKlN2EDHJKIhfHb+sR2GF4ZKaE1oaAzxhvBXKQ1N2qx2IPDSMFCZ6qxBPb80pFSsbI1geGCKzIY1zTRWuiK5IqILeLwZDsMpu1gRS4R+7p2j+UqmOcrqeWNkBaY0mTIon/th7GiBUORsKrVfwumRqIno6E7rWNffnomVcG0ocoiBloSdXqyYJBEr2516cZmyXLQHXNnpSAIaDGUJRtXI0UTEIBNXenYl+QklIpq9zLrusdLNlJavJW6dVlEQpWWLaY2WsmubJbyvbkgo7tBGSvZGMg1r0Jgs+Gn9UnJcrB9pIiujIqj+3J1aeERNilVRkqVfLe6AVxvtM3i7Y1eDoIgYHVbAoOtBvpjKoY0F4YiQpMXd3g6WDDRkmgsh6Uui1AloWaLOD/kS3bDKM4mVQmG6k94kjGGAwUTq1oTsY7mLgdZErG6PQkbmCYutX/CRG9GbwhHTNZQYC4xE2SiXFEtj7Fh5ZHRlSXV7xZNG2MlGxu70g3hzFdlEakAWqiNlkx0pdRYd7/wnDHLbatXMG30ZpurfK8Wkd5Br7/+ehx33HFIp9Po7OzEWWedhWeffXbe3/nud78LQRCm/afr8fZALhYvVbZRWkERC6NIIlKaNGfrk3zJwu6xIta0JXBUX7ahoplTEUUBnSkNE4uIWrhRPBltyfgfmpZKQpVx3EBLQ9X4A4AqidBkwXfbMIcxjJdtrGxJNISB6eEpmC+lfZrlMEBAw8wNRRKR0xVM+DhE7p8w0ZpQsKKlsZxRi6UjqWIga1R1Q4qmDVlEw4xLUpUgCMKSSpPGShZakwqSS6yDjhJe+1G2yHHYM17GmrYEBhtkPgCVFmrLyH6wK91yOmOeAQG4JTlL+W54uI4puWH2kOUQ6VPFAw88gMsuuwy/+93v8N///d8wTROnnnoqxsfH5/29TCaDnTt3Vv976aWXOD1xNDjYgGmixMK0JVSUrVp1d2WMlixs6s7gsJ5MrGut/JA1FDAG3weH0ZKF7oze8OOyEI1W3w+4XvqsrviO8B6cMNGWVNDTAAJqU1FlEYklpkvmSxYyDZJa7tGaUBdML7dsBwXTxpq2ZKwjVUEgigJWthpQJBHjZQv7J8rozRixFg6bSlKVoC+xrrtkO+hOaw0RwUsoEjRpcW0WJ8o2DFnCipbG0g9KaTKWE9v1uj3EObXcI6nKEITJtpGLZbRooiOlVDsFNDORHoFf/vKX0/793e9+F52dnXj00Udx8sknz/l7giCgu7s77MeLJKbtQGiwVlCEP5KaDDalcpMxht1jJciSiKP6suhrktSejCf8YTkLptC74kACOsgD27CkddlX6qjDGPJlG+s7Uw2j3j6VnKFg33h50b+XL9lY3xlv1fKZpLTJyOZcirx7x8vozmjoycQ/XTYIWhIqBlsS+NOeMaiSiIFc4+wnhiK5dauV9k5+KZg2dFlEi9EY+4ehSNAVEUXL8e1oOlAoY7Al/q0VZ5JQJUiCsOQWao20bi5H2d5tp+egm2wSABE3umcyMjICAGhtbZ33unw+j8HBQTiOg6OPPhrXXXcdNm2a3VvTo1QqoVSaFAkZHR0FAJimCdNcWo/XWpimCcuyArunZZmwLRO2Nfkl2J8voUVXkFaEQJ+dCIcg54QqOBCZjYliCZIoYNdoCbmEjA2dCbQnZViWFcATRx9FYEjKDKMTRajzGNNly8GBgom0JiGtIFLfl6DXimZGgQPHsmBb84/l/vEysqqIdkOK5Lgvd07oogPLnL5fLITlMDDHREZtrP1EFRwosDFeKNU8RBZNG7ZlYiCdAnNsmM7yRITCgvc60ZeSseMA0GKIDTcnsoqA/aMlZFX/BtbweAktCQWa6ERmLJY7J1Iy8OpIEWkfNrRpO2CWhc5ENNfM5aDAgSI4GC8WkVQXZypZtgNmm8hG5Duy3DkhMQZNdJAvmNDExTmYxooWDAkNb5P4/WyxMbodx8EVV1yBk046CYceeuic161fvx633HILDj/8cIyMjODLX/4yTjzxRPzxj3+cs4fm9ddfj8985jOzXt+3b980Y3y5WJaFgwcPAgBkeflDnx/OozhWwphT+RIwYHishJ7uFA7sj+YhgZhOkHPCYQysMII9YwxFy0F7SsWgngQrjGLv8lr0xg61XMDwgXFo5mSUyrIZipaNgunAdhgUWYQhi8hpOg4e2F/Hp51N0GtFMzNRNGGOj2LYUTFX0IEx4MBYCYd0pTByMFpzwWO5c6JQMFHKj2KMqYBPuyJfsiAKgD0uYm+hMaKaQKX0pDCK/aMObGP2WO4eK6E3qwMFEXuL0f3c9Vgn+lQTmmBh3759XN6PF/ZECROjYxhj/jMbRkZL6FFS2LcvOuetZc+JQhH5kTzGnIXH4cCEiYwmg0001voAuGsEmxjFQdOBU2ONmI/RogVFEmBHZFyCWCfk0gRGhgtQzcUZ3XvzJfRkdOSHgfyS3jkejI2N+bouNqe5yy67DE899RR+85vfzHvd5s2bsXnz5uq/TzzxRGzYsAE33ngjPve5z9X8nWuuuQaf+MQnqv8eHR3FwMAA2tvbkclkgvkAmPSEtLe3Q1GWn4qz01QxggLSlbSNkaKJdj2NoYHWpq9BiwtBz4keU8VL+ws4pCOB9R2ppq1TZnoJr5QPwtYkFMo2LAYoKpBMSliRVNFiqEhpMlKaHMla5qDnRTOTMm1snZChVlJIa7F/vIzurgwOGWyNbGr5cueEUbLw4oQERXfLL/wwOlzEUEcS3V3pRb9f1FnBDDy/bxzp7PS0x7GihZzi4LDBlsinzNZjnejg8i78kZJlvFSQYaQ1yD72hPGyhaxsY2Vfa6TmyXLnhKOX8HJRQSo7f526wxiGWRHrB3LozDWOgNpUeh0d2/ZPzFojFmJ4uIi1XSl0daRCerLFEcQ6UZIL2GONIJ3zPxa2w6CihDUDLehoAFX7+dA0f58vFkb3Rz/6Udx999349a9/PWe0ei4URcFRRx2FLVu2zHmNpmk1B0xRlMA3MlmWA7uvLCuQZAuS7N5r3LJwSGcK6QTVTsSJIOfEitY02lMJDLYmImlM8qItLaItU4TtMKzMJdFqqEjrMtIRNbJrEeS8aGZkWUbS0GBaTnWtnIrDGAqOhY2dWSSNaB8MljMnMpKMhK7BAmqOw0wmyjZUTUFPS6oh52BrOgEcLE0bC4cxjJgWDu3Ooi0dj/7TtE4EQy4pImnoMJkAbYFooGk7GC5ZOKQzi9ZU9ATEljMnsgkBuq7CFmRo8zggRyfKaM0k0NuSghJRR+VyaU0Z2DZc9rVeepQsB7qmoCuXjNR3crnrRCbJICnjgOj/DDVWMJFL6ejKNlY3kFr4HddIjwJjDB/96Efx7//+77jvvvuwatWqRd/Dtm08+eST6OnpCeEJo0PRsqFIYtP2GiZcujM6VrcnY2NYhoWuSDhuIIeTV7fhiN4sBloM5Ayl6celGREEARlNRsmuLaZ2sNIWqrvBBbMkUUBSlXwpEzPGsHe8jJWtyYZt85JUpVm9yw9Qi7CmRZMlpLWF+7c7jOHV0RJWtOgY6khGzuBeLglPyX2O9qMeoyUbK3J6ZDODgiChLL6V3GjRRIuhIhuh7Icg8MTUFpoXUxkrWejN6A1vcC+GSI/EZZddhh/84Ae4/fbbkU6nsWvXLuzatQuFwmSB6vvf/35cc8011X9/9rOfxX/913/hhRdewGOPPYbzzjsPL730Ej70oQ/V4yNw4+CEic6U2lBtXQhiOSRUGTIt9gSAjK7AqmF0e4rlq1oTTVGK0WIovnp1e/2pV7fFI9q7FJKqBEORUKgcIi3bwQS1CGtq2pIqSgt8P3aPldCRUrGhK92Q+4skCsjo8rzt0/IlC0lVQlcD9KCeD0NxHRCLaqFmOujN6hAbzMGvyyKSquS7rZ5lOxAFAe0N6rRdKpFeMW644QaMjIzg9a9/PXp6eqr/3XnnndVrXn75ZezcubP674MHD+Kiiy7Chg0b8Ja3vAWjo6N46KGHsHHjxnp8BC7YDoPlMPTnopfmRBAEUW90RZzWTs+jWaLcHglVxkLd08qWg6JpY217csGWe3FGlkS0GioKZdfo3jteRk9GcwXUiKYkpcmYL6h5YKIMRRKxqTuNxCIVreNEi6HO65wbLljozWgN33e52kJtgewHj+GCiaQqoS3ReIamIAhoTago+nRAHCiYyBoyWhpwLJZDpL8xzEdKx/333z/t31/96lfx1a9+NaQniiYjRRMtCYU8SgRBEDUwFAnijJ6rXpT7mM7mERx0xwHz9p7dky+jP6ejtwn6quYSCl48OIGiaYMBWNNGpTnNTEKRoFRKDmamTY+XLRQtB0f1ZdHa4IZEQpXmPH+XLAeSCPRmG78EQxQF5HQFO4YXbv9StGzkSxaO7MsirUfatFoyaU1eMNWeMYbdYyXIkoih9hStpzOIdKSb8Ee+bKM/S3UTBEEQtdBlEZosToveNFuUGwAMRYQuS3NGsUaKJnRFxNr2VMOlR9YipUoQAezOlzGQM8hx3eQkVQn6lJIDD9N2sH/CxLr2JPqaIBMioUhQZRFmjXXi4EQZnWkNrYnmKGXMGgrMBdKDbIdh91gZq9oSGGhQJXfAdcYIFadtLSyHYcdIESldxjH9WcoaqgFZaTFn3LSRUBq/toYgCGKp6LIrmuXV5jVbLbeHLkvQ5qhRtB2GkYKFte0JZJtEGySlyTBUGUlVwuq2BJVnNTmyJCKnKyhMqVt1GMOrY0WsbElgTXvjCafVoiqaNaN+13YYTIdhoIlKGb0Sm/kyb3eOFdGT1rC+s7GdlQlVgqHINcXUipaNV0aK6MnoOKY/h/ZU8zizFwMZ3THHtB10N0FtDUEQxFIRRQEpXa5GeJsxyg2445DV5Zp1eXvzJXSlNaxoaVzxtJnoioQWQ8bqtkSkei0T9aM1oU6L8O4cLaIzqeGQrlRDCqfVQpFEJLXZStXDheYrZfSi/uU5ul/sHy8jocjY0J1ueAeuLotIKOIsZ8xY0cKefBlr2xM4qi9L9sg8NMcK0sCkNaUpau8IgiCWQ1Zzje5mjXJ7ZA1lVtpooVLTvLY92XRlSpu601jdlqz3YxARIalKEOBGNveNl2EoMjZ1pxtaVLAWrYYyTcmdMYZ82cJgS+P3XJ7KfC3UJso2iraDDV2ppugcVEtMbd94GfmyhcO60zi0O9PQLeSCgEYn5rQn1YYX9SAIglguCdVVJm7WKLeHLkvTdNwZY9gzXsLK1gQ6Us23lyRUmcR+iCoJVYImS9g/YaJsO9jYnWpKBeakJsOZ4psbK1lIawo6m2yNkEQBWV2ZFd21HIa942WsbWuOOn+PtCbDdlilX30RoiDg6P4c1nY0dmp9UJDRHWNSmoSVrQk6MBAEQSyALosQgKaOcgOumJosCrAqUaz9EyZyukI1zQQBN53YUEXkSxYO6Uw1bSZhQpEgSwKsimjWSNFCX1Zv6FZpc5EzlGnik4wx7Bwtoi+rY6ijOer8PRKqBEkUsH24iJyh4NgBEkxbDM337Wkg1rSn6v0IBEEQsUCv1OYZitS0UW7AFQbSZAkl2wEDUDRtbOrONeVhmiBmIooC2hIqsrqC1W3NZVBNZVJMzYYsClAkET1Num7ObKG2b7yMtC5jY1e6qVLtAbf8IqPLSGsSNnQ1dr/6MKDRIgiCIBoeQ3EPC/1Zo2mj3ACgySJ02VVyP1iwmqYnN0H4ZV1HCqKAps4i1GQJSVXCWMlC2XLQm9Waom65FlNbqJUsB5bDcGRXumH7cc+Hrkg4vDeDtCY3ncMhCGjECIIgiIZHEgVs7Eo3Vf1dLQRBQM5QcGDChC6LWNMkPbkJwi+qLDaNUvl85AwF42ULDoD+XPOWn3hR/7GShQMFE+s7U+huYkdla0Ilg3uJ0KgRBEEQTUFLQqXDNICMrkCWRKxpSzRt9IogiPlJazJMm6GtydqEzcRrobZ3vIwVOR2rWpunrSIRLM2XG0EQBEEQTUxSlbCiRW+qntwEQSyOhCohZyhY0WI0dao9UGmhltWxoStNjltiyZDRTRAEQRBNRHtSRYuh0OGRIIg5SWsyejMaOlPNKaA2lf6cge5Mc6q3E8FBs4cgCIIgmghBECBLzR25IghiflRZxGG92Xo/RiQgY5sIAnJzEwRBEARBEARBEERIkNFNEARBEARBEARBECFBRjdBEARBEARBEARBhAQZ3QRBEARBEARBEAQREmR0EwRBEARBEARBEERIkNFNEARBEARBEARBECFBRjdBEARBEARBEARBhAQZ3QRBEARBEARBEAQREmR0EwRBEARBEARBEERIkNFNEARBEARBEARBECFBRjdBEARBEARBEARBhAQZ3QRBEARBEARBEAQREmR0EwRBEARBEARBEERIkNFNEARBEARBEARBECFBRjdBEARBEARBEARBhAQZ3QRBEARBEARBEAQREmR0EwRBEARBEARBEERIkNFNEARBEARBEARBECFBRjdBEARBEARBEARBhAQZ3QRBEARBEARBEAQREmR0EwRBEARBEARBEERIyPV+gCjCGAMAjI6OBnpf0zQxNjYGTdOgKEqg9ybiCc0JohY0L4iZ0JwgZkJzgpgJzQliJjQnwsezFz37cS7I6K7B2NgYAGBgYKDOT0IQBEEQBEEQBEFEmbGxMWSz2Tl/LrCFzPImxHEcvPrqq0in0xAEIbD7jo6OYmBgANu3b0cmkwnsvkR8oTlB1ILmBTETmhPETGhOEDOhOUHMhOZE+DDGMDY2ht7eXoji3JXbFOmugSiK6O/vD+3+mUyGJj4xDZoTRC1oXhAzoTlBzITmBDETmhPETGhOhMt8EW4PElIjCIIgCIIgCIIgiJAgo5sgCIIgCIIgCIIgQoKMbo5omoZrr70WmqbV+1GIiEBzgqgFzQtiJjQniJnQnCBmQnOCmAnNiehAQmoEQRAEQRAEQRAEERIU6SYIgiAIgiAIgiCIkCCjmyAIgiAIgiAIgiBCgoxugiAIgiAIgiAIggiJhjS6r7/+ehx33HFIp9Po7OzEWWedhWeffXbaNcViEZdddhna2tqQSqXw53/+59i9e/e0ay6//HIcc8wx0DQNRx55ZM33+vGPf4wjjzwSiUQCg4OD+NKXvuTrGX/yk5/gkEMOga7rOOyww3DPPffMee2ll14KQRDwta99bd57/u///i/OPfdcDAwMwDAMbNiwAV//+tdnXfetb30LGzZsgGEYWL9+Pb7//e/7euY40whz4gMf+AAEQZj23+mnn77gfRd65meffRZveMMb0NXVBV3XsXr1anzqU5+CaZq+njvONOu88LNW1LqvIAjYtGmTr+eOK40wJwDgmWeewTve8Q5ks1kkk0kcd9xxePnll+e97z/+4z/ixBNPRCKRQC6Xq3nNyy+/jLe+9a1IJBLo7OzE1VdfDcuyfD13XGnWObFt2zZceOGFWLVqFQzDwJo1a3DttdeiXC7XvH7Lli1Ip9Nzzp1GohHmRK31XRCEBe/vZw344Q9/iCOOOAKJRAI9PT344Ac/iP379/t67rjSrHPCz3nipz/9Kd785jejo6MDmUwGmzdvxn/+53/6euaGgjUgp512Grv11lvZU089xZ544gn2lre8ha1YsYLl8/nqNZdeeikbGBhg9957L3vkkUfYCSecwE488cRp9/mrv/or9i//8i/s/PPPZ0ccccSs97nnnnuYLMvshhtuYFu3bmV333036+npYd/85jfnfb7f/va3TJIk9sUvfpE9/fTT7FOf+hRTFIU9+eSTs6796U9/yo444gjW29vLvvrVr85735tvvpldfvnl7P7772dbt25lt912GzMMY9rzfPvb32bpdJrdcccdbOvWrexHP/oRS6VS7Oc///m89447jTAnLrjgAnb66aeznTt3Vv87cODAgp99oWfeunUru+WWW9gTTzzBtm3bxn72s5+xzs5Ods011yx477jTrPPCz1oxPDw87Z7bt29nra2t7Nprr5333nGnEebEli1bWGtrK7v66qvZY489xrZs2cJ+9rOfsd27d897709/+tPsn//5n9knPvEJls1mZ/3csix26KGHslNOOYU9/vjj7J577mHt7e0Nv1Y065z4j//4D/aBD3yA/ed//ifbunVrdW+48sorZ11bLpfZsccey84444yac6fRaIQ5MXV937lzJ7vllluYIAhs69atc97Xzxrwm9/8homiyL7+9a+zF154gT344INs06ZN7J3vfOdCwxprmnVO+DlPfOxjH2Nf+MIX2B/+8Af23HPPsWuuuYYpisIee+yxhYa1oWhIo3sme/bsYQDYAw88wBhzD5OKorCf/OQn1WueeeYZBoA9/PDDs37/2muvrTnxzz33XPbud7972mvf+MY3WH9/P3McZ87nOfvss9lb3/rWaa8df/zx7JJLLpn22o4dO1hfXx976qmn2ODg4IJGdy0+8pGPsDe84Q3Vf2/evJldddVV0675xCc+wU466aRF3zvOxHFOXHDBBezMM8/08/FqMtcz1+LjH/84e81rXrPk94orzTgvPGauFTP593//dyYIAtu2bduy3ytOxHFOvPe972XnnXeer89Xi1tvvbWm4XTPPfcwURTZrl27qq/dcMMNLJPJsFKptOT3ixvNOCc8vvjFL7JVq1bNev2v//qv2XnnnTfn3Gl04jgnZnLmmWeyN77xjXP+nDF/a8CXvvQltnr16lnP3NfXN++9G41mmRO1WOg8wRhjGzduZJ/5zGcWfe8405Dp5TMZGRkBALS2tgIAHn30UZimiVNOOaV6zSGHHIIVK1bg4Ycf9n3fUqkEXdenvWYYBnbs2IGXXnppzt97+OGHp703AJx22mnT3ttxHJx//vm4+uqrl5XOOTIyUv3c8z3zH/7wh6ZIJ/aI45wAgPvvvx+dnZ1Yv349PvzhD4eSrrVlyxb88pe/xOte97rA7x11mnlezFwrZnLzzTfjlFNOweDg4KLvHWfiNiccx8EvfvELrFu3Dqeddho6Oztx/PHH46677vL9bPO992GHHYaurq5p7z06Ooo//vGPy75/XGjmOVFrnbjvvvvwk5/8BN/61rcWfb9GIW5zYia7d+/GL37xC1x44YXzPo+fNWDz5s3Yvn077rnnHjDGsHv3bvzbv/0b3vKWt8x770ajWeZELRY6TziOg7GxsXmvaUQa3uh2HAdXXHEFTjrpJBx66KEAgF27dkFV1Vl1R11dXdi1a5fve5922mn46U9/invvvReO4+C5557DV77yFQDAzp075/y9Xbt2TVuwar33F77wBciyjMsvv9z388zkoYcewp133omLL7542jN/5zvfwaOPPgrGGB555BF85zvfgWma2Ldv35LfK07EdU6cfvrp+P73v497770XX/jCF/DAAw/gjDPOgG3bvp9vPk488UTouo6hoSG89rWvxWc/+9lA7hsXmnle1ForpvLqq6/iP/7jP/ChD33I9z0bgTjOiT179iCfz+Of/umfcPrpp+O//uu/8M53vhPvete78MADD/h+vsW8t/ezZqCZ58SWLVvwzW9+E5dcckn1tf379+MDH/gAvvvd7yKTyfi+VyMRxzkxk+9973tIp9N417veNe/z+FkDTjrpJPzwhz/Ee9/7Xqiqiu7ubmSz2aZyyjTTnJjJQucJAPjyl7+MfD6Ps88+e1H3jjsNb3RfdtlleOqpp3DHHXcEfu+LLroIH/3oR/G2t70NqqrihBNOwDnnnAMAEEURL7/8MlKpVPW/6667ztd9H330UXz961/Hd7/7XQiCUPOaM844o3rfWpHwp556CmeeeSauvfZanHrqqdXX//7v/x5nnHEGTjjhBCiKgjPPPBMXXHBB9ZmbgTjOCQA455xz8I53vAOHHXYYzjrrLNx99934n//5H9x///0AFp4TC3HnnXfisccew+23345f/OIX+PKXv7zoe8SZZp0Xc60VU/ne976HXC6Hs846a9GfPc7EcU44jgMAOPPMM/Hxj38cRx55JP72b/8Wb3vb2/Cv//qvAFxxzqn3JvzTrHPilVdewemnn473vOc9uOiii6Y981/8xV/g5JNPXu7Hjy1xnBMzueWWW/C+971vWgR1qWeKp59+Gh/72Mfw6U9/Go8++ih++ctfYtu2bbj00kuX9GxxpFnnhJ/zxO23347PfOYz+PGPf4zOzs4lPVtckev9AGHy0Y9+FHfffTd+/etfo7+/v/p6d3c3yuUyhoeHp3mcdu/eje7ubt/3FwQBX/jCF3Dddddh165d6OjowL333gsAWL16NVpaWvDEE09Ur/fSKLq7u2epFU597wcffBB79uzBihUrqj+3bRtXXnklvva1r2Hbtm34zne+g0KhAABQFGXavZ5++mm86U1vwsUXX4xPfepT035mGAZuueUW3Hjjjdi9ezd6enpw0003IZ1Oo6Ojw/dnjytxnRO1WL16Ndrb27Flyxa86U1vmndO+GFgYAAAsHHjRti2jYsvvhhXXnklJEla9L3iRrPOi/nWCg/GGG655Racf/75UFXV92eOO3GdE+3t7ZBlGRs3bpx2zYYNG/Cb3/wGAPDZz34WV111le9n9eju7sYf/vCHWe/t/azRadY58eqrr+INb3gDTjzxRNx0003Tfnbffffh5z//edVJyxiD4ziQZRk33XQTPvjBD/r+/HEkrnNiKg8++CCeffZZ3HnnndNer7V3+FkDrr/+epx00km4+uqrAQCHH344kskkXvva1+Lzn/88enp6fH/+ONJsc8LDz3nijjvuwIc+9CH85Cc/mZXq3hTUt6Q8HBzHYZdddhnr7e1lzz333Kyfe2IG//Zv/1Z97U9/+tOixQxqcf7557PNmzfPe83ZZ5/N3va2t017bfPmzVUxg3379rEnn3xy2n+9vb3sb/7mb9if/vSnee/91FNPsc7OTnb11Vf7el7GGDv55JPZueee6/v6OBL3OVGL7du3M0EQ2M9+9jNfz7GYZ/7e977HZFlm5XLZ1/VxpZnnhd+14le/+hUDULO7QiPSCHNi8+bNs0SzzjrrLN/r/EJCalMVr2+88UaWyWRYsVj0de840sxzYseOHWxoaIidc845zLKsWT9/+umnp51VPv/5z7N0Os2efPJJX9014kojzAmPCy64gB1zzDG+3tvPGvCud72LnX322dN+76GHHmIA2CuvvOLrfeJIs84JxvydJ26//Xam6zq76667fN+30WhIo/vDH/4wy2az7P77758mfT8xMVG95tJLL2UrVqxg9913H3vkkUfY5s2bZ03Y559/nj3++OPskksuYevWrWOP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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Get the pickup location for the best model\n",
- "sample_location_id = final_df.index[0]\n",
- "\n",
- "# Get the algorithm used\n",
- "sample_algorithm = final_df.loc[[sample_location_id]].algorithm.values[0]\n",
- "\n",
- "# Get a checkpoint directly from the pandas dataframe of Tune results\n",
- "checkpoint = final_df.checkpoint[sample_location_id]\n",
- "print(f\"checkpoint type:: {type(checkpoint)}\")\n",
- "\n",
- "# Restore a model from checkpoint\n",
- "sample_model = checkpoint.to_dict()[\"model\"]\n",
- "\n",
- "# Restore already-created predictions from model training and eval\n",
- "forecast_df = checkpoint.to_dict()[\"forecast_df\"]\n",
- "\n",
- "# Print location and error.\n",
- "sample_error = final_df.loc[[sample_location_id]].error.values[0]\n",
- "print(\n",
- " f\"location {sample_location_id}, algorithm {sample_algorithm}, best error {sample_error}\"\n",
- ")\n",
- "\n",
- "# If prophet model, use prophet built-in plot\n",
- "if sample_algorithm == \"arima\":\n",
- " forecast_df[[\"trend\", \"yhat\"]].plot()\n",
- "else:\n",
- " plot1 = sample_model.plot(forecast_df)"
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "final_df[[\"algorithm\"]].value_counts(normalize=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "aec846be",
+ "metadata": {},
+ "source": [
+ "## Create a forecast from model restored from checkpoint \n"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "a23cf01e",
+ "metadata": {},
+ "source": [
+ "Finally, we will restore the best and worst models from checkpoint, generate predictions, and inspect the forecasts. \n",
+ "\n",
+ "Prophet includes a convenient plot library which displays actual data along with backtest predictions and confidence intervals and future forecasts. With ARIMA, you have to create a prediciton manually.\n",
+ "\n",
+ "- We will easily obtain AIR Checkpoint objects from the Tune results. \n",
+ "- We will restore a Prophet or ARIMA model directly from checkpoint, and demonstrate it can be used for prediction.\n",
+ "\n",
+ "```{tip}\n",
+ "[Ray AIR Predictors](air-predictors) make batch inference easy since they have internal logic to parallelize the inference.\n",
+ "```\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "0c194870",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "checkpoint type:: \n",
+ "location 173, algorithm prophet_multiplicative, best error 2.5289669339385674\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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551s+/bt7Pvf/z6LxWLspz/96aLnDjvNMCfOO+88duqpp7Jdu3aV/o2NjS1570td8/bt29mtt97KnnzySbZjxw529913s+7ubvaJT3xiyXOHnVadF5WsFePj47PO+dJLL7FUKsWuvvrqRc8ddpphTmzbto2lUil21VVXsccff5xt27aN3X333WzPnj2Lnvszn/kM++d//mf2sY99jCWTyXk/dxyHbdq0iZ100knsiSeeYPfeey/r7Oxs+rWiVefEv/3bv7Hzzz+f/fu//zvbvn176d1wxRVXzDu2UCiwV7/61ey0004rO3eajWaYEzPX9127drFbb72VSZLEtm/fvuB5K1kDHn74YSbLMvvqV7/K/vznP7OHHnqIbdy4kb3zne9calhDTavOiUr2Ex/5yEfY9ddfz373u9+x5557jn3iE59gmqaxxx9/fKlhbSqa0uiey969exkA9uCDDzLG/M2kpmnshz/8YemYP/zhDwwAe+SRR+b9/tVXX1124p999tnsr/7qr2Z99rWvfY0NDg4yz/MWvJ53v/vd7K1vfeusz4499lh28cUXz/ps586dbGBggD399NNseHh4SaO7HB/60IfYG9/4xtL/t2zZwq688spZx3zsYx9jxx9/fNXnDjNhnBPnnXceO/300yu5vbIsdM3l+OhHP8pe+9rXLvu7wkorzouAuWvFXP71X/+VSZLEduzYseLvChNhnBPvec972DnnnFPR/ZXjtttuK2s43XvvvUyWZbZ79+7SZzfeeCNLJBIsn88v+/vCRivOiYAvfOELbGRkZN7nH//4x9k555yz4NxpdsI4J+Zy+umnsze96U0L/pyxytaAL37xi2x0dHTeNQ8MDCx67majVeZEOZbaTzDG2IYNG9g111xT9bnDTFOml89lYmICAJBKpQAAjz32GGzbxkknnVQ65ogjjsCqVavwyCOPVHzefD6PSCQy6zPTNLFz50688MILC/7eI488Muu7AeCUU06Z9d2e5+Hcc8/FVVddtaJ0zomJidJ9L3bNv/vd71oinTggjHMCAB544AF0d3fj8MMPxwc/+EEu6Vrbtm3Dz3/+c7z+9a+v+bkbnVaeF3PXirnccsstOOmkkzA8PFz1ucNM2OaE53n42c9+hsMOOwynnHIKuru7ceyxx+InP/lJxde22HcfeeSR6OnpmfXdk5OT+P3vf7/i84eFVp4T5daJ+++/Hz/84Q/xjW98o+rzNQthmxNz2bNnD372s5/hggsuWPR6KlkDtmzZgpdeegn33nsvGGPYs2cPfvSjH+Etb3nLouduNlplTpRjqf2E53mYmppa9JhmpOmNbs/zcPnll+P444/Hpk2bAAC7d++Gruvz6o56enqwe/fuis99yimn4Mc//jHuu+8+eJ6H5557Dl/60pcAALt27Vrw93bv3j1rwSr33ddffz1UVcVll11W8fXM5de//jXuuusuXHTRRbOu+Vvf+hYee+wxMMbw6KOP4lvf+hZs28b+/fuX/V1hIqxz4tRTT8V3v/td3Hfffbj++uvx4IMP4rTTToPruhVf32Js3boVkUgE69atw+te9zp89rOfrcl5w0Irz4tya8VMXnnlFfzbv/0bPvCBD1R8zmYgjHNi7969SKfT+PznP49TTz0V//Ef/4F3vvOdeNe73oUHH3yw4uur5ruDn7UCrTwntm3bhq9//eu4+OKLS58dOHAA559/Pr797W8jkUhUfK5mIoxzYi7f+c53EI/H8a53vWvR66lkDTj++OPxve99D+95z3ug6zp6e3uRTCZbyinTSnNiLkvtJwDghhtuQDqdxrvf/e6qzh12mt7ovvTSS/H000/jzjvvrPm5L7zwQnz4wx/G2972Nui6juOOOw5nnXUWAECWZbz44ouIxWKlf9dee21F533sscfw1a9+Fd/+9rchSVLZY0477bTSectFwp9++mmcfvrpuPrqq3HyySeXPv+Hf/gHnHbaaTjuuOOgaRpOP/10nHfeeaVrbgXCOCcA4KyzzsI73vEOHHnkkTjjjDNwzz334L/+67/wwAMPAFh6TizFXXfdhccffxx33HEHfvazn+GGG26o+hxhplXnxUJrxUy+853voK2tDWeccUbV9x5mwjgnPM8DAJx++un46Ec/is2bN+Pv//7v8ba3vQ3/9//+XwC+OOfMcxOV06pz4uWXX8app56KM888ExdeeOGsa/7rv/5rnHDCCSu9/dASxjkxl1tvvRXvfe97Z0VQl7uneOaZZ/CRj3wEn/nMZ/DYY4/h5z//OXbs2IFLLrlkWdcWRlp1TlSyn7jjjjtwzTXX4Ac/+AG6u7uXdW1hRa33BfDkwx/+MO655x788pe/xODgYOnz3t5eFAoFjI+Pz/I47dmzB729vRWfX5IkXH/99bj22muxe/dudHV14b777gMAjI6Oor29HU8++WTp+CCNore3d55a4czvfuihh7B3716sWrWq9HPXdXHFFVfgK1/5Cnbs2IFvfetbyGazAABN02ad65lnnsGJJ56Iiy66CJ/+9Kdn/cw0Tdx666246aabsGfPHvT19eHmm29GPB5HV1dXxfceVsI6J8oxOjqKzs5ObNu2DSeeeOKic6IShoaGAAAbNmyA67q46KKLcMUVV0BRlKrPFTZadV4stlYEMMZw66234txzz4Wu6xXfc9gJ65zo7OyEqqrYsGHDrGPWr1+Phx9+GADw2c9+FldeeWXF1xrQ29uL3/3ud/O+O/hZs9Oqc+KVV17BG9/4RmzduhU333zzrJ/df//9+OlPf1py0jLG4HkeVFXFzTffjPe///0V338YCeucmMlDDz2EZ599Fnfdddesz8u9OypZA6677jocf/zxuOqqqwAARx11FKLRKF73utfhc5/7HPr6+iq+/zDSanMioJL9xJ133okPfOAD+OEPfzgv1b0lqG9JOR88z2OXXnop6+/vZ88999y8nwdiBj/60Y9Kn/3xj3+sWsygHOeeey7bsmXLose8+93vZm9729tmfbZly5aSmMH+/fvZU089Netff38/+7u/+zv2xz/+cdFzP/3006y7u5tdddVVFV0vY4ydcMIJ7Oyzz674+DAS9jlRjpdeeolJksTuvvvuiq6jmmv+zne+w1RVZYVCoaLjw0orz4tK14pf/OIXDEDZ7grNSDPMiS1btswTzTrjjDMqXueXElKbqXh90003sUQiwXK5XEXnDiOtPCd27tzJ1q1bx8466yzmOM68nz/zzDOz9iqf+9znWDweZ0899VRF3TXCSjPMiYDzzjuPvepVr6rouytZA971rnexd7/73bN+79e//jUDwF5++eWKvieMtOqcYKyy/cQdd9zBIpEI+8lPflLxeZuNpjS6P/jBD7JkMskeeOCBWdL3mUymdMwll1zCVq1axe6//3726KOPsi1btsybsH/605/YE088wS6++GJ22GGHsSeeeII98cQTJYXGffv2sRtvvJH94Q9/YE888QS77LLLWCQSYb/97W8Xvb5f/epXTFVVdsMNN7A//OEP7Oqrr16wZVhAJerlTz31FOvq6mLnnHPOrPveu3dv6Zhnn32W3X777ey5555jv/3tb9l73vMe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",
+ "text/plain": [
+ ""
]
},
- {
- "cell_type": "code",
- "execution_count": 16,
- "id": "44422431",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "checkpoint type:: \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "location 141, algorithm arima, best error 342.35020228794644\n"
- ]
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Get the pickup location for the worst model\n",
- "sample_location_id = final_df.index[len(final_df) - 2]\n",
- "\n",
- "# Get the algorithm used\n",
- "sample_algorithm = final_df.loc[[sample_location_id]].algorithm.values[0]\n",
- "\n",
- "# Get a checkpoint directly from the pandas dataframe of Tune results\n",
- "checkpoint = final_df.checkpoint[sample_location_id]\n",
- "print(f\"checkpoint type:: {type(checkpoint)}\")\n",
- "\n",
- "# Restore a model from checkpoint\n",
- "sample_model = checkpoint.to_dict()[\"model\"]\n",
- "\n",
- "# Make a prediction using the restored model.\n",
- "prediction = (\n",
- " sample_model.forecast(2 * (FORECAST_LENGTH + 1))\n",
- " .reset_index()\n",
- " .set_index(\"ds\")\n",
- ")\n",
- "prediction[\"trend\"] = None\n",
- "prediction.rename(columns={\"AutoARIMA\": \"yhat\"}, inplace=True)\n",
- "prediction = prediction.tail(FORECAST_LENGTH + 1)\n",
- "\n",
- "# Restore already-created inferences from model training and eval\n",
- "forecast_df = checkpoint.to_dict()[\"forecast_df\"]\n",
- "\n",
- "# Append the prediction to the inferences\n",
- "forecast_df = pd.concat([forecast_df, prediction])\n",
- "\n",
- "# Print location and error.\n",
- "sample_error = final_df.loc[[sample_location_id]].error.values[0]\n",
- "print(\n",
- " f\"location {sample_location_id}, algorithm {sample_algorithm}, best error {sample_error}\"\n",
- ")\n",
- "\n",
- "# If prophet model, use prophet built-in plot\n",
- "if sample_algorithm == \"arima\":\n",
- " forecast_df[[\"trend\", \"yhat\"]].plot()\n",
- "else:\n",
- " plot1 = sample_model.plot(forecast_df)"
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Get the pickup location for the best model\n",
+ "if SMOKE_TEST:\n",
+ " sample_location_id = final_df.index[0]\n",
+ "else:\n",
+ " sample_location_id = final_df.index[120]\n",
+ "\n",
+ "# Get the algorithm used\n",
+ "sample_algorithm = final_df.loc[[sample_location_id]].algorithm.values[0]\n",
+ "\n",
+ "# Get a checkpoint directly from the pandas dataframe of Tune results\n",
+ "checkpoint = final_df.checkpoint[sample_location_id]\n",
+ "print(f\"checkpoint type:: {type(checkpoint)}\")\n",
+ "\n",
+ "# Restore a model from checkpoint\n",
+ "sample_model = checkpoint.to_dict()[\"model\"]\n",
+ "\n",
+ "# Prophet .fit() performs inference + prediction.\n",
+ "# Arima train only performs inference; prediction is an extra step.\n",
+ "if sample_algorithm == \"arima\":\n",
+ " prediction = (\n",
+ " sample_model.forecast(2 * (FORECAST_LENGTH + 1)).reset_index().set_index(\"ds\")\n",
+ " )\n",
+ " prediction[\"trend\"] = None\n",
+ " prediction.rename(columns={\"AutoARIMA\": \"yhat\"}, inplace=True)\n",
+ " prediction = prediction.tail(FORECAST_LENGTH + 1)\n",
+ "\n",
+ "# Restore already-created predictions from model training and eval\n",
+ "forecast_df = checkpoint.to_dict()[\"forecast_df\"]\n",
+ "\n",
+ "# Print pickup location ID, algorithm used, and model validation error.\n",
+ "sample_error = final_df.loc[[sample_location_id]].error.values[0]\n",
+ "print(\n",
+ " f\"location {sample_location_id}, algorithm {sample_algorithm}, best error {sample_error}\"\n",
+ ")\n",
+ "\n",
+ "# Plot forecast prediction using best model for this pickup location ID.\n",
+ "# If prophet model, use prophet built-in plot\n",
+ "if sample_algorithm == \"arima\":\n",
+ " forecast_df[[\"trend\", \"yhat\"]].plot()\n",
+ "else:\n",
+ " plot1 = sample_model.plot(forecast_df)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "a3638844",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "checkpoint type:: \n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/ray/anaconda3/lib/python3.8/site-packages/statsforecast/arima.py:861: UserWarning: possible convergence problem: minimize gave code 1]\n",
+ " warnings.warn(\n",
+ "/home/ray/anaconda3/lib/python3.8/site-packages/statsforecast/arima.py:861: UserWarning: possible convergence problem: minimize gave code 2]\n",
+ " warnings.warn(\n",
+ "/home/ray/anaconda3/lib/python3.8/site-packages/statsforecast/arima.py:861: UserWarning: possible convergence problem: minimize gave code 2]\n",
+ " warnings.warn(\n",
+ "/home/ray/anaconda3/lib/python3.8/site-packages/statsforecast/arima.py:861: UserWarning: possible convergence problem: minimize gave code 2]\n",
+ " warnings.warn(\n",
+ "/home/ray/anaconda3/lib/python3.8/site-packages/statsforecast/arima.py:861: UserWarning: possible convergence problem: minimize gave code 2]\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "location 141, algorithm arima, best error 342.35020228794644\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
]
},
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "d14a8799",
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "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.8.13"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
- }
-
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Get the pickup location for the worst model\n",
+ "sample_location_id = final_df.index[len(final_df) - 2]\n",
+ "\n",
+ "# Get the algorithm used\n",
+ "sample_algorithm = final_df.loc[[sample_location_id]].algorithm.values[0]\n",
+ "\n",
+ "# Get a checkpoint directly from the pandas dataframe of Tune results\n",
+ "checkpoint = final_df.checkpoint[sample_location_id]\n",
+ "print(f\"checkpoint type:: {type(checkpoint)}\")\n",
+ "\n",
+ "# Restore a model from checkpoint\n",
+ "sample_model = checkpoint.to_dict()[\"model\"]\n",
+ "\n",
+ "# Prophet .fit() performs inference + prediction.\n",
+ "# Arima train only performs inference; prediction is an extra step.\n",
+ "if sample_algorithm == \"arima\":\n",
+ " prediction = (\n",
+ " sample_model.forecast(2 * (FORECAST_LENGTH + 1)).reset_index().set_index(\"ds\")\n",
+ " )\n",
+ " prediction[\"trend\"] = None\n",
+ " prediction.rename(columns={\"AutoARIMA\": \"yhat\"}, inplace=True)\n",
+ " prediction = prediction.tail(FORECAST_LENGTH + 1)\n",
+ "\n",
+ "# Restore already-created inferences from model training and eval\n",
+ "forecast_df = checkpoint.to_dict()[\"forecast_df\"]\n",
+ "\n",
+ "# Append the prediction to the inferences\n",
+ "forecast_df = pd.concat([forecast_df, prediction])\n",
+ "\n",
+ "# Print pickup location ID, algorithm used, and model validation error.\n",
+ "sample_error = final_df.loc[[sample_location_id]].error.values[0]\n",
+ "print(\n",
+ " f\"location {sample_location_id}, algorithm {sample_algorithm}, best error {sample_error}\"\n",
+ ")\n",
+ "\n",
+ "# Plot forecast prediction using best model for this pickup location ID.\n",
+ "if sample_algorithm == \"arima\":\n",
+ " forecast_df[[\"trend\", \"yhat\"]].plot()\n",
+ "else:\n",
+ " plot1 = sample_model.plot(forecast_df)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8ffaf781",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "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.8.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/doc/source/ray-air/examples/batch_tuning.ipynb b/doc/source/ray-air/examples/batch_tuning.ipynb
index 04907f57889d..cf1c8fcbb6fc 100644
--- a/doc/source/ray-air/examples/batch_tuning.ipynb
+++ b/doc/source/ray-air/examples/batch_tuning.ipynb
@@ -1,8 +1,9 @@
{
"cells": [
{
+ "attachments": {},
"cell_type": "markdown",
- "id": "1ad6c41c",
+ "id": "02d29398",
"metadata": {},
"source": [
"(mmt-tune)=\n",
@@ -11,18 +12,14 @@
]
},
{
+ "attachments": {},
"cell_type": "markdown",
- "id": "6ada83ad",
+ "id": "2780b3da",
"metadata": {},
"source": [
- "**Batch training** and tuning are common tasks in simple machine learning use-cases such as time series forecasting. They require fitting of simple models on data batches corresponding to different locations, products, etc. Batch training can take less time to process all the data at once, but only if those batches can run in parallel!\n",
+ "**Batch training and tuning** are common tasks in simple machine learning use-cases such as time series forecasting. They require fitting of simple models on data batches corresponding to different locations, products, etc. Batch training can take less time to process all the data at once, but only if those batches can run in parallel!\n",
"\n",
- "This notebook showcases how to conduct batch training regression algorithms from [XGBoost](https://docs.ray.io/en/latest/tune/examples/tune-xgboost.html) and [Scikit-learn](https://docs.ray.io/en/latest/ray-more-libs/joblib.html) with **[Ray Tune](https://docs.ray.io/en/latest/tune/index.html)**. **XGBoost** is a popular open-source library used for regression and classification. **Scikit-learn** is a popular open-source library with a vast assortment of well-known ML algorithms.\n",
- "\n",
- "```{tip}\n",
- "The workload showcased in this notebook can be expressed using different Ray components, such as Ray Data, Ray Tune and Ray Core.\n",
- "For best practices, see {ref}`ref-use-cases-mmt`.\n",
- "```\n",
+ "This notebook showcases how to conduct batch regression with algorithms from XGBoost and Scikit-learn with **[Ray Tune](tune-main)**. **XGBoost** is a popular open-source library used for regression and classification. **Scikit-learn** is a popular open-source library with a vast assortment of well-known ML algorithms.\n",
"\n",
"![Batch training diagram](../../data/examples/images/batch-training.svg)\n",
"\n",
@@ -33,39 +30,39 @@
},
{
"cell_type": "markdown",
- "id": "300928e0",
+ "id": "c261b2bd",
"metadata": {
"tags": []
},
"source": [
"# Contents\n",
"\n",
- "In this this tutorial, you will learn about:\n",
- " 1. [Define how to load and prepare Parquet data](#load_data)\n",
- " 2. [Define your Ray Tune Search Space and Search Algorithm](#define_search_space)\n",
- " 3. [Define a Trainable (callable) function](#define_trainable)\n",
- " 4. [Run batch training on Ray Tune](#run_tune_search)\n",
- " 5. [Load a model from checkpoint and perform batch prediction](#load_checkpoint)\n"
+ "In this this tutorial, you will learn how to:\n",
+ " 1. [Define how to load and prepare Parquet data](#prepare_data)\n",
+ " 2. [Define a Trainable (callable) function](#define_trainable)\n",
+ " 3. [Run batch training and inference with Ray Tune](#run_tune_search)\n",
+ " 4. [Load a model from checkpoint and perform batch prediction](#load_checkpoint)\n"
]
},
{
+ "attachments": {},
"cell_type": "markdown",
- "id": "2bdac697",
+ "id": "604e8c44",
"metadata": {},
"source": [
"# Walkthrough\n",
"\n",
"```{tip}\n",
- "Prerequisite for this notebook: Read the [Key Concepts](https://docs.ray.io/en/latest/tune/key-concepts.html) page for Ray Tune.\n",
+ "Prerequisite for this notebook: Read the [Key Concepts](tune-60-seconds) page for Ray Tune.\n",
"```\n",
"\n",
- "Let us start by importing a few required libraries, including open-source [Ray](https://github.com/ray-project/ray) itself!"
+ "Let us start by importing a few required libraries, including open-source Ray itself!"
]
},
{
"cell_type": "code",
"execution_count": 1,
- "id": "ae429f7d",
+ "id": "c37d1b39",
"metadata": {},
"outputs": [
{
@@ -98,7 +95,7 @@
{
"cell_type": "code",
"execution_count": 2,
- "id": "8b781157",
+ "id": "c8a2ad12",
"metadata": {},
"outputs": [
{
@@ -135,11 +132,11 @@
" \n",
" \n",
" Ray version: \n",
- " 2.1.0 \n",
+ " 2.2.0 \n",
" \n",
" \n",
" Dashboard: \n",
- " http://127.0.0.1:8266 \n",
+ " http://console.anyscale-staging.com/api/v2/sessions/ses_b5q8xHd42BTdukSgFqTxejLT/services?redirect_to=dashboard \n",
" \n",
"\n",
" \n",
@@ -147,7 +144,7 @@
"\n"
],
"text/plain": [
- "RayContext(dashboard_url='127.0.0.1:8266', python_version='3.8.13', ray_version='2.1.0', ray_commit='be49bde7ee4f6adb3f8710aee0665c27f9f0bb62', address_info={'node_ip_address': '127.0.0.1', 'raylet_ip_address': '127.0.0.1', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2022-12-06_14-43-27_896286_30285/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2022-12-06_14-43-27_896286_30285/sockets/raylet', 'webui_url': '127.0.0.1:8266', 'session_dir': '/tmp/ray/session_2022-12-06_14-43-27_896286_30285', 'metrics_export_port': 59229, 'gcs_address': '127.0.0.1:64043', 'address': '127.0.0.1:64043', 'dashboard_agent_listen_port': 52365, 'node_id': '53065bb9b6cdeebae6160f548c71335b2d3f9ad53b0d80e4fc96eb89'})"
+ "RayContext(dashboard_url='console.anyscale-staging.com/api/v2/sessions/ses_b5q8xHd42BTdukSgFqTxejLT/services?redirect_to=dashboard', python_version='3.8.13', ray_version='2.2.0', ray_commit='b6af0887ee5f2e460202133791ad941a41f15beb', address_info={'node_ip_address': '172.31.169.100', 'raylet_ip_address': '172.31.169.100', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2023-01-10_15-32-59_890483_159/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2023-01-10_15-32-59_890483_159/sockets/raylet', 'webui_url': 'console.anyscale-staging.com/api/v2/sessions/ses_b5q8xHd42BTdukSgFqTxejLT/services?redirect_to=dashboard', 'session_dir': '/tmp/ray/session_2023-01-10_15-32-59_890483_159', 'metrics_export_port': 63352, 'gcs_address': '172.31.169.100:9031', 'address': '172.31.169.100:9031', 'dashboard_agent_listen_port': 52365, 'node_id': '2d0b69817d13ecbc7fd489eedea84cfe446ef87bae238f88757b7d65'})"
]
},
"execution_count": 2,
@@ -166,14 +163,14 @@
{
"cell_type": "code",
"execution_count": 3,
- "id": "d8fbfc49",
+ "id": "3563fed9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "{'object_store_memory': 2147483648.0, 'memory': 8666939392.0, 'CPU': 8.0, 'node:127.0.0.1': 1.0}\n"
+ "{'memory': 451212691046.0, 'object_store_memory': 175243542524.0, 'node:172.31.206.67': 1.0, 'CPU': 152.0, 'node:172.31.138.114': 1.0, 'node:172.31.221.253': 1.0, 'node:172.31.144.75': 1.0, 'node:172.31.169.100': 1.0, 'node:172.31.136.199': 1.0, 'node:172.31.251.87': 1.0, 'node:172.31.249.240': 1.0, 'node:172.31.252.125': 1.0, 'node:172.31.211.165': 1.0}\n"
]
}
],
@@ -184,15 +181,23 @@
{
"cell_type": "code",
"execution_count": 4,
- "id": "5699fb78",
+ "id": "0341b265",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "sklearn: 1.1.3\n",
- "xgboost: 1.7.1\n"
+ "sklearn: 1.2.0\n",
+ "xgboost: 1.3.3\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/ray/anaconda3/lib/python3.8/site-packages/xgboost/compat.py:31: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n",
+ " from pandas import MultiIndex, Int64Index\n"
]
}
],
@@ -221,7 +226,7 @@
{
"cell_type": "code",
"execution_count": 5,
- "id": "0c20171d",
+ "id": "4881e9ad",
"metadata": {},
"outputs": [],
"source": [
@@ -242,17 +247,17 @@
},
{
"cell_type": "markdown",
- "id": "1bf849ad",
+ "id": "43545104",
"metadata": {
"tags": []
},
"source": [
- "## Define how to load and prepare Parquet data "
+ "## Define how to load and prepare Parquet data "
]
},
{
"cell_type": "markdown",
- "id": "47596f2c",
+ "id": "0c5e5428",
"metadata": {},
"source": [
"First, we need to load some data. Since the NYC Taxi dataset is fairly large, we will filter files first into a PyArrow dataset. And then in the next cell after, we will filter the data on read into a PyArrow table and convert that to a pandas dataframe.\n",
@@ -265,7 +270,7 @@
{
"cell_type": "code",
"execution_count": 6,
- "id": "78b3340d",
+ "id": "65e8465b",
"metadata": {},
"outputs": [
{
@@ -289,9 +294,7 @@
"\n",
"# Obtain all location IDs\n",
"all_location_ids = (\n",
- " pq.read_table(s3_files[0], columns=[\"dropoff_location_id\"])[\n",
- " \"dropoff_location_id\"\n",
- " ]\n",
+ " pq.read_table(s3_files[0], columns=[\"dropoff_location_id\"])[\"dropoff_location_id\"]\n",
" .unique()\n",
" .to_pylist()\n",
")\n",
@@ -314,10 +317,15 @@
{
"cell_type": "code",
"execution_count": 7,
- "id": "74fcc8a8",
+ "id": "92e5cc73",
"metadata": {},
"outputs": [],
"source": [
+ "############\n",
+ "# STEP 1. Define Python functions to\n",
+ "# a) read and prepare a segment of data.\n",
+ "############\n",
+ "\n",
"# Function to read a pyarrow.Table object using pyarrow parquet\n",
"def read_data(file: str, sample_id: np.int32) -> pd.DataFrame:\n",
"\n",
@@ -355,110 +363,50 @@
" df = df[df[\"trip_duration\"] > 60]\n",
" df = df[df[\"trip_duration\"] < 24 * 60 * 60]\n",
" # keep only necessary columns\n",
- " df.drop(\n",
- " [\"dropoff_at\", \"pickup_at\", \"pickup_location_id\", \"fare_amount\"],\n",
- " axis=1,\n",
- " inplace=True,\n",
- " )\n",
+ " df = df[\n",
+ " [\"dropoff_location_id\", \"passenger_count\", \"trip_distance\", \"trip_duration\"]\n",
+ " ].copy()\n",
" df[\"dropoff_location_id\"] = df[\"dropoff_location_id\"].fillna(-1)\n",
" return df"
]
},
{
"cell_type": "markdown",
- "id": "7c24ef04",
- "metadata": {
- "tags": []
- },
- "source": [
- "## Define your Ray Tune Search Space and Search Algorithm "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "f1e941c5",
- "metadata": {},
- "source": [
- "In this notebook, we will use Ray Tune to run parallel training jobs per dropoff location. The training jobs will be defined using a search space and simple grid search. Depending on your need, fancier search spaces and search algorithms are possible with Tune. \n",
- "\n",
- "**First, define a search space of experiment trials to run.** \n",
- "> The typical use case for Tune search spaces are for hypterparameter tuning. In our case, we are defining a Tune search space in a way to allow for training jobs to be conducted automatically. Each training job will run on a different data partition (taxi dropoff location) and use a different algorithm. \n",
- "\n",
- "**Next, define a search algorithm.**\n",
- "\n",
- "```{tip}\n",
- "Common search algorithms include grid search, random search, and Bayesian optimization. For more details, see [Working with Tune Search Spaces](https://docs.ray.io/en/master/tune/tutorials/tune-search-spaces.html#tune-search-space-tutorial). Deciding the best combination of search space and search algorithm is part of the art of being a Data Scientist and depends on the data, algorithm, and problem being solved.\n",
- "```\n",
- "\n",
- "Ray Tune will use the search space and the specified search algorithm to generate multiple configurations, each of which will be evaluated in a separate Trial on a Ray Cluster. Ray Tune will take care of orchestrating those Trials automatically. Specifically, Ray Tune will pass a config dictionary to each partition and make a Trainable function call.\n",
- "\n",
- "**Below, we define our search space consists of:**\n",
- "- Different algorithms:\n",
- " - XGBoost\n",
- " - Scikit-learn LinearRegression\n",
- "- Some or all NYC taxi drop-off locations. \n",
- "\n",
- "For Tune search algorithm, we want to run *grid search*, meaning we want to run an experiment for every possible combination in the search space. What this means is every algorithm will be applied to every NYC Taxi drop-off location."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "da5b74f8",
- "metadata": {},
- "outputs": [],
- "source": [
- "# 1. Define a search space.\n",
- "search_space = {\n",
- " \"algorithm\": tune.grid_search(\n",
- " [LinearRegression(fit_intercept=True), xgb.XGBRegressor(max_depth=4)]\n",
- " ),\n",
- " \"location\": tune.grid_search(sample_locations),\n",
- "}"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "3be85c81",
+ "id": "55b6c727",
"metadata": {},
"source": [
"## Define a Trainable (callable) function "
]
},
{
+ "attachments": {},
"cell_type": "markdown",
- "id": "53ce3eb2",
+ "id": "cd7ab2d0",
"metadata": {},
"source": [
- "📈 Typically when you are running Data Science experiments, you want to be able to keep track of summary metrics for each trial, so you can decide at the end which trials were best. That way, you can decide which model to deploy.\n",
+ "Next, we define a trainable function, called `train_model()`, in order to train and evaluate a model on a data partition. This function will be called *in parallel for every permutation* in the Tune search space! \n",
"\n",
- "🇫 Next, we define a trainable function in order to train and evaluate a scikit-learn model on a data partition. This function will be called in parallel by every Tune trial. Inside this trainable function, we will:\n",
- "- Add detailed metrics we want to report (each model's loss or error). \n",
- "- Checkpoint each model for easy deployment later.\n",
+ "Inside this trainable function:\n",
+ "- 📖 The input must include a `config` argument. \n",
+ "- 📈 Inside the function, the tuning metric (a model's loss or error) must be calculated and reported using `session.report()`.\n",
+ "- ✔️ Optionally [checkpoint](air-checkpoints-doc) (save) the model for fault tolerance and easy deployment later.\n",
"\n",
- "📖 **The metrics defined inside the trainable function will appear in the Ray Tune experiment summary table.**\n",
"```{tip}\n",
- "Ray Tune has two ways of defining a trainable, namely the [Function API](https://docs.ray.io/en/latest/tune/api_docs/trainable.html#trainable-docs) and the Class API. Both are valid ways of defining a trainable, but *the Function API is generally recommended*.\n",
- "```\n",
- "\n",
- "**In the cell below, we define a \"Trainable\" function called `train_model()`**. \n",
- "- The input is a config dictionary argument. \n",
- "- The output can be a simple dictionary of metrics which will be reported back to Tune. \n",
- "- We will [checkpoint](https://docs.ray.io/en/master/ray-air/key-concepts.html#checkpoints) save each model in addition to reporting each trial's metrics.\n",
- " > For checkpointing, we use `ray.air.checkpoint.Checkpoint`. *Ray AIR includes integrations to popular ML libraries, including Scikit-learn*. This makes it possible to use the convenient AIR API abstractions, without having to specify code details of the Scikit-learn library itself.\n",
- "- Since we are using **grid search**, this means `train_model()` will be run *in parallel for every permutation* in the Tune search space!"
+ "Ray Tune has two ways of [defining a trainable](tune_60_seconds_trainables), namely the Function API and the Class API. Both are valid ways of defining a trainable, but *the Function API is generally recommended*.\n",
+ "```"
]
},
{
"cell_type": "code",
- "execution_count": 9,
- "id": "1bc3a9b7",
+ "execution_count": 8,
+ "id": "5b59bb62",
"metadata": {},
"outputs": [],
"source": [
- "from ray.air import Checkpoint\n",
- "\n",
- "# 2. Define a custom train function\n",
+ "############\n",
+ "# STEP 1. Define Python functions to\n",
+ "# b) train and evaluate a model on a segment of data.\n",
+ "############\n",
"def train_model(config: dict) -> None:\n",
"\n",
" algorithm = config[\"algorithm\"]\n",
@@ -473,9 +421,7 @@
"\n",
" # We need at least 10 rows to create a train / test split.\n",
" if df.shape[0] < 10:\n",
- " print_time(\n",
- " f\"Location {sample_location_id} has only {df.shape[0]} rows.\"\n",
- " )\n",
+ " print_time(f\"Location {sample_location_id} has only {df.shape[0]} rows.\")\n",
" session.report(dict(error=None))\n",
" return None\n",
"\n",
@@ -508,41 +454,50 @@
},
{
"cell_type": "markdown",
- "id": "fc169995",
+ "id": "d59fbfab",
"metadata": {},
"source": [
"## Run batch training on Ray Tune "
]
},
{
+ "attachments": {},
"cell_type": "markdown",
- "id": "6626a86f",
+ "id": "4db1c6bd",
"metadata": {},
"source": [
+ "**Recall what we are doing, high level, is training several different models per pickup location.** We are using Ray Tune so we can *run all these trials in parallel* on a Ray cluster. At the end, we will inspect the results of the experiment and deploy only the best model per pickup location.\n",
"\n",
- "**Now we are ready to kick off a Ray Tune experiment!** \n",
+ "**Step 1. Define Python functions to read and prepare a segment of data and train and evaluate one or many models per segment of data**. We already did this, above.\n",
"\n",
- "Recall what we are doing, high level, is training several different models per dropoff location. We are using Ray Tune so we can run all these trials in parallel. At the end, we will inspect the results of the experiment and deploy only the best model per dropoff location.\n",
+ "**Step 2. Scaling**:\n",
+ "Below, we use the default resources config which is 1 CPU core for each task. For more information about configuring resource allocations, see [A Guide To Parallelism and Resources](tune-parallelism). \n",
"\n",
- "**In the cell below, we use AIR configs and run the experiment using `tuner.fit()`.** \n",
- "\n",
- "Tune will report on experiment status, and after the experiment finishes, you can inspect the results. \n",
- "\n",
- "- In the cell below, we use the default resources config which is 1 CPU core for each task. For more information about configuring resource allocations, see [A Guide To Parallelism and Resources](https://docs.ray.io/en/master/tune/tutorials/tune-resources.html#tune-parallelism). \n",
+ "**Step 3. Search Space**:\n",
+ "Below, we define our [Tune search space](tune-key-concepts-search-spaces), which consists of:\n",
+ "- Different algorithms:\n",
+ " - XGBoost\n",
+ " - Scikit-learn LinearRegression\n",
+ "- Some or all NYC taxi drop-off locations. \n",
"\n",
- "- In the AIR config below, we have specified a local directory `my_Tune_logs` for logging instead of the default `~/ray_results` directory. Giving your logs a project name makes them easier to find. Also giving a relative path, means you can see your logs inside the Jupyter browser. Learn more about logging Tune results at [How to configure logging in Tune](https://docs.ray.io/en/master/tune/tutorials/tune-output.html#tune-logging).\n",
+ "**Step 4. Search Algorithm or Strategy**:\n",
+ "Below, our Tune jobs will be defined using a search space and simple grid search. \n",
+ "> The typical use case for Tune search spaces is for hyperparameter tuning. In our case, we are defining the Tune search space in order to run distributed tuning jobs automatically. Each training job will use a different data partition (taxi pickup location), different algorithm, and the compute resources we defined in the Scaling config.\n",
"\n",
- "- Tune can [retry failed experiments automatically](https://docs.ray.io/en/master/tune/tutorials/tune-stopping.html#tune-stopping-guide), as well as entire experiments. This is necessary in case a node on your remote cluster fails (when running on a cloud such as AWS or GCP).\n",
+ "**Step 5. Now we are ready to kick off a Ray Tune experiment!** \n",
+ "- Define a `tuner` object.\n",
+ "- Put the training function `train_model()` inside the `tuner` object.\n",
+ "- Run the experiment using `tuner.fit()`.\n",
"\n",
- "💡 Right-click on the cell below and choose \"Enable Scrolling for Outputs\"! This will make it easier to view, since model training output can be very long!\n",
+ "💡 After you run the cell below, right-click on it and choose \"Enable Scrolling for Outputs\"! This will make it easier to view, since tuning output can be very long!\n",
"\n",
- "**Setting SMOKE_TEST=False, running on Anyscale: 518 models, using 18 NYC Taxi S3 files dating from 2018/01 to 2019/06 (split into partitions approx 1GiB each), simultaneously trained on a 23-node AWS cluster of [m5.4xlarges](https://aws.amazon.com/ec2/instance-types/m5/). Total data reading and train time was 37 minutes.**"
+ "**Setting SMOKE_TEST=False, running on Anyscale: 518 models, using 18 NYC Taxi S3 files dating from 2018/01 to 2019/06 (split into partitions approx 1GiB each), simultaneously trained on a 10-node AWS cluster of [m5.4xlarges](https://aws.amazon.com/ec2/instance-types/m5/). Total data reading and train time was 37 minutes.**"
]
},
{
"cell_type": "code",
- "execution_count": 10,
- "id": "869e0473",
+ "execution_count": 9,
+ "id": "4acad940",
"metadata": {
"scrolled": true,
"tags": []
@@ -557,16 +512,16 @@
" Tune Status \n",
" \n",
"\n",
- "Current time: 2022-12-06 14:44:44 \n",
- "Running for: 00:01:08.40 \n",
- "Memory: 13.3/16.0 GiB \n",
+ "Current time: 2023-01-10 16:26:11 \n",
+ "Running for: 00:00:20.45 \n",
+ "Memory: 3.0/30.9 GiB \n",
" \n",
"
\n",
" \n",
"
\n",
" \n",
"
System Info \n",
- " Using FIFO scheduling algorithm. Resources requested: 0/8 CPUs, 0/0 GPUs, 0.0/8.07 GiB heap, 0.0/2.0 GiB objects\n",
+ " Using FIFO scheduling algorithm. Resources requested: 0/152 CPUs, 0/0 GPUs, 0.0/420.22 GiB heap, 0.0/163.21 GiB objects\n",
" \n",
" \n",
" \n",
@@ -575,15 +530,15 @@
" Trial Status \n",
" \n",
"\n",
- "Trial name status loc algorithm location iter total time (s) error \n",
+ "Trial name status loc algorithm location iter total time (s) error \n",
" \n",
"\n",
- "train_model_6b248_00000 TERMINATED 127.0.0.1:30346 LinearRegression() 141 1 61.5079 509.049 \n",
- "train_model_6b248_00001 TERMINATED 127.0.0.1:30355 XGBRegressor(ba_9e20 141 1 64.3133 505.486 \n",
- "train_model_6b248_00002 TERMINATED 127.0.0.1:30356 LinearRegression() 229 1 63.6555 534.634 \n",
- "train_model_6b248_00003 TERMINATED 127.0.0.1:30357 XGBRegressor(ba_ac70 229 1 64.1533 584.448 \n",
- "train_model_6b248_00004 TERMINATED 127.0.0.1:30358 LinearRegression() 173 1 63.3294 1776.74 \n",
- "train_model_6b248_00005 TERMINATED 127.0.0.1:30359 XGBRegressor(ba_9f40 173 1 63.6545 1616.84 \n",
+ "train_model_7fd9c_00000 TERMINATED 172.31.211.165:3629 LinearRegression() 141 1 1.90341 500.005 \n",
+ "train_model_7fd9c_00001 TERMINATED 172.31.252.125:17717 XGBRegressor(ba_9dc0 141 1 2.41094 523.611 \n",
+ "train_model_7fd9c_00002 TERMINATED 172.31.251.87:4579 LinearRegression() 229 1 1.86279 568.826 \n",
+ "train_model_7fd9c_00003 TERMINATED 172.31.138.114:11079 XGBRegressor(ba_0040 229 1 2.53176 583.261 \n",
+ "train_model_7fd9c_00004 TERMINATED 172.31.221.253:3999 LinearRegression() 173 1 1.8416 950.346 \n",
+ "train_model_7fd9c_00005 TERMINATED 172.31.136.199:12355 XGBRegressor(ba_0160 173 1 2.02936 2046.04 \n",
" \n",
"
\n",
" \n",
@@ -636,12 +591,12 @@
"Trial name error should_checkpoint \n",
"\n",
"\n",
- "train_model_6b248_00000 509.049 True \n",
- "train_model_6b248_00001 505.486 True \n",
- "train_model_6b248_00002 534.634 True \n",
- "train_model_6b248_00003 584.448 True \n",
- "train_model_6b248_00004 1776.74 True \n",
- "train_model_6b248_00005 1616.84 True \n",
+ "train_model_7fd9c_00000 500.005 True \n",
+ "train_model_7fd9c_00001 523.611 True \n",
+ "train_model_7fd9c_00002 568.826 True \n",
+ "train_model_7fd9c_00003 583.261 True \n",
+ "train_model_7fd9c_00004 950.346 True \n",
+ "train_model_7fd9c_00005 2046.04 True \n",
" \n",
"\n",
"\n",
@@ -670,7 +625,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "2022-12-06 14:44:44,655\tINFO tune.py:777 -- Total run time: 69.12 seconds (68.37 seconds for the tuning loop).\n"
+ "2023-01-10 16:26:11,740\tINFO tune.py:762 -- Total run time: 22.07 seconds (20.27 seconds for the tuning loop).\n"
]
},
{
@@ -678,26 +633,35 @@
"output_type": "stream",
"text": [
"Total number of models: 6\n",
- "TOTAL TIME TAKEN: 69.15 seconds\n",
- "Best result: {'algorithm': XGBRegressor(base_score=0.5, booster='gbtree', callbacks=None,\n",
- " colsample_bylevel=1, colsample_bynode=1, colsample_bytree=1,\n",
- " early_stopping_rounds=None, enable_categorical=False,\n",
- " eval_metric=None, feature_types=None, gamma=0, gpu_id=-1,\n",
- " grow_policy='depthwise', importance_type=None,\n",
- " interaction_constraints='', learning_rate=0.300000012, max_bin=256,\n",
- " max_cat_threshold=64, max_cat_to_onehot=4, max_delta_step=0,\n",
- " max_depth=4, max_leaves=0, min_child_weight=1, missing=nan,\n",
- " monotone_constraints='()', n_estimators=100, n_jobs=0,\n",
- " num_parallel_tree=1, predictor='auto', random_state=0, ...), 'location': 141}\n"
+ "TOTAL TIME TAKEN: 0.37 minutes\n"
]
}
],
"source": [
- "# By default, Tune reserves 1 CPU core per task.\n",
- "# # 3. Customize resources per trial, here we set 1 CPU each.\n",
- "# train_model = tune.with_resources(train_model, {\"cpu\": 1})\n",
+ "############\n",
+ "# STEP 2. Customize distributed compute scaling.\n",
+ "############\n",
+ "# Use Ray AIR default resources config which is 1 CPU core for each task.\n",
+ "\n",
+ "############\n",
+ "# STEP 3. Define a search space dict of all config parameters.\n",
+ "############\n",
+ "search_space = {\n",
+ " \"algorithm\": tune.grid_search(\n",
+ " [LinearRegression(fit_intercept=True), xgb.XGBRegressor(max_depth=4)]\n",
+ " ),\n",
+ " \"location\": tune.grid_search(sample_locations),\n",
+ "}\n",
"\n",
- "# Define a tuner object using Ray AIR Tuner API\n",
+ "# Optional STEP 4. Specify the hyperparameter tuning search strategy.\n",
+ "\n",
+ "############\n",
+ "# STEP 5. Run the experiment with Ray AIR APIs.\n",
+ "# https://docs.ray.io/en/latest/tune/examples/tune-pytorch-lightning.html\n",
+ "############\n",
+ "start = time.time()\n",
+ "\n",
+ "# Define a tuner object.\n",
"tuner = tune.Tuner(\n",
" train_model,\n",
" param_space=search_space,\n",
@@ -710,47 +674,36 @@
" ),\n",
")\n",
"\n",
- "# 4. Run the experiment with Ray Tune\n",
- "start = time.time()\n",
+ "# Fit the tuner object.\n",
"results = tuner.fit()\n",
- "total_time_taken = time.time() - start\n",
"\n",
- "# Print some training stats\n",
+ "total_time_taken = time.time() - start\n",
"print(f\"Total number of models: {len(results)}\")\n",
- "print(f\"TOTAL TIME TAKEN: {total_time_taken:.2f} seconds\")\n",
- "best_result = results.get_best_result(metric=\"error\", mode=\"min\").config\n",
- "print(f\"Best result: {best_result}\")"
+ "print(f\"TOTAL TIME TAKEN: {total_time_taken/60:.2f} minutes\")\n",
+ "\n",
+ "# Total number of models: 6\n",
+ "# TOTAL TIME TAKEN: 0.37 minutes"
]
},
{
+ "attachments": {},
"cell_type": "markdown",
- "id": "0e7db84f",
+ "id": "5ae0b413",
"metadata": {},
"source": [
" \n",
"\n",
- "**After the Tune experiment has run, select the best model per dropoff location.**\n",
+ "**After the Tune experiment has finished, select the best model per dropoff location.**\n",
"\n",
- "We can assemble the Tune results ([ResultGrid object](https://docs.ray.io/en/master/tune/examples/tune_analyze_results.html)) into a pandas dataframe, then sort by minimum error, to select the best model per dropoff location."
+ "We can assemble the {doc}`Tune results ` into a pandas dataframe, then sort by minimum error, to select the best model per dropoff location."
]
},
{
"cell_type": "code",
- "execution_count": 11,
- "id": "ed2db6bb",
+ "execution_count": 10,
+ "id": "945b3bc2",
"metadata": {},
"outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "location_id int64\n",
- "error float64\n",
- "algorithm object\n",
- "checkpoint object\n",
- "dtype: object\n"
- ]
- },
{
"data": {
"text/html": [
@@ -782,44 +735,44 @@
" \n",
" 0 \n",
" 141 \n",
- " 509.049035 \n",
+ " 500.005318 \n",
" LinearRegression() \n",
- " Checkpoint(local_path=/Users/christy/Documents... \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
" \n",
" \n",
" 1 \n",
" 141 \n",
- " 505.486459 \n",
+ " 523.610705 \n",
" XGBRegressor(base_score=0.5, booster='gbtree',... \n",
- " Checkpoint(local_path=/Users/christy/Documents... \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
" \n",
" \n",
" 2 \n",
" 229 \n",
- " 534.633924 \n",
+ " 568.826123 \n",
" LinearRegression() \n",
- " Checkpoint(local_path=/Users/christy/Documents... \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
" \n",
" \n",
" 3 \n",
" 229 \n",
- " 584.447774 \n",
+ " 583.261077 \n",
" XGBRegressor(base_score=0.5, booster='gbtree',... \n",
- " Checkpoint(local_path=/Users/christy/Documents... \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
" \n",
" \n",
" 4 \n",
" 173 \n",
- " 1776.735955 \n",
+ " 950.345817 \n",
" LinearRegression() \n",
- " Checkpoint(local_path=/Users/christy/Documents... \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
" \n",
" \n",
" 5 \n",
" 173 \n",
- " 1616.835263 \n",
+ " 2046.043927 \n",
" XGBRegressor(base_score=0.5, booster='gbtree',... \n",
- " Checkpoint(local_path=/Users/christy/Documents... \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
" \n",
" \n",
"\n",
@@ -827,12 +780,12 @@
],
"text/plain": [
" location_id error \\\n",
- "0 141 509.049035 \n",
- "1 141 505.486459 \n",
- "2 229 534.633924 \n",
- "3 229 584.447774 \n",
- "4 173 1776.735955 \n",
- "5 173 1616.835263 \n",
+ "0 141 500.005318 \n",
+ "1 141 523.610705 \n",
+ "2 229 568.826123 \n",
+ "3 229 583.261077 \n",
+ "4 173 950.345817 \n",
+ "5 173 2046.043927 \n",
"\n",
" algorithm \\\n",
"0 LinearRegression() \n",
@@ -843,15 +796,15 @@
"5 XGBRegressor(base_score=0.5, booster='gbtree',... \n",
"\n",
" checkpoint \n",
- "0 Checkpoint(local_path=/Users/christy/Documents... \n",
- "1 Checkpoint(local_path=/Users/christy/Documents... \n",
- "2 Checkpoint(local_path=/Users/christy/Documents... \n",
- "3 Checkpoint(local_path=/Users/christy/Documents... \n",
- "4 Checkpoint(local_path=/Users/christy/Documents... \n",
- "5 Checkpoint(local_path=/Users/christy/Documents... "
+ "0 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "1 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "2 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "3 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "4 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "5 Checkpoint(local_path=/home/ray/christy-air/fo... "
]
},
- "execution_count": 11,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
@@ -874,26 +827,15 @@
" zip(locations, errors, algorithms, checkpoints),\n",
" columns=[\"location_id\", \"error\", \"algorithm\", \"checkpoint\"],\n",
")\n",
- "print(results_df.dtypes)\n",
"results_df.head(8)"
]
},
{
"cell_type": "code",
- "execution_count": 12,
- "id": "10395603",
+ "execution_count": 11,
+ "id": "d5d049af",
"metadata": {},
"outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "error float64\n",
- "algorithm object\n",
- "checkpoint object\n",
- "dtype: object\n"
- ]
- },
{
"data": {
"text/html": [
@@ -929,41 +871,41 @@
" \n",
" \n",
" 141 \n",
- " 505.486459 \n",
- " XGBRegressor(base_score=0.5, booster='gbtree',... \n",
- " Checkpoint(local_path=/Users/christy/Documents... \n",
+ " 500.005318 \n",
+ " LinearRegression() \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
" \n",
" \n",
" 229 \n",
- " 534.633924 \n",
+ " 568.826123 \n",
" LinearRegression() \n",
- " Checkpoint(local_path=/Users/christy/Documents... \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
" \n",
" \n",
" 173 \n",
- " 1616.835263 \n",
- " XGBRegressor(base_score=0.5, booster='gbtree',... \n",
- " Checkpoint(local_path=/Users/christy/Documents... \n",
+ " 950.345817 \n",
+ " LinearRegression() \n",
+ " Checkpoint(local_path=/home/ray/christy-air/fo... \n",
" \n",
" \n",
"\n",
""
],
"text/plain": [
- " error algorithm \\\n",
- "location_id \n",
- "141 505.486459 XGBRegressor(base_score=0.5, booster='gbtree',... \n",
- "229 534.633924 LinearRegression() \n",
- "173 1616.835263 XGBRegressor(base_score=0.5, booster='gbtree',... \n",
+ " error algorithm \\\n",
+ "location_id \n",
+ "141 500.005318 LinearRegression() \n",
+ "229 568.826123 LinearRegression() \n",
+ "173 950.345817 LinearRegression() \n",
"\n",
" checkpoint \n",
"location_id \n",
- "141 Checkpoint(local_path=/Users/christy/Documents... \n",
- "229 Checkpoint(local_path=/Users/christy/Documents... \n",
- "173 Checkpoint(local_path=/Users/christy/Documents... "
+ "141 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "229 Checkpoint(local_path=/home/ray/christy-air/fo... \n",
+ "173 Checkpoint(local_path=/home/ray/christy-air/fo... "
]
},
- "execution_count": 12,
+ "execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
@@ -975,37 +917,38 @@
"final_df = final_df.loc[final_df.groupby(\"location_id\")[\"error\"].idxmin()]\n",
"final_df.sort_values(by=[\"error\"], inplace=True)\n",
"final_df.set_index(\"location_id\", inplace=True, drop=True)\n",
- "print(final_df.dtypes)\n",
"final_df"
]
},
{
"cell_type": "code",
- "execution_count": 13,
- "id": "69121cb2",
+ "execution_count": 12,
+ "id": "00ec0f8d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "algorithm \n",
- "XGBRegressor(base_score=0.5, booster='gbtree', callbacks=None,\\n colsample_bylevel=1, colsample_bynode=1, colsample_bytree=1,\\n early_stopping_rounds=None, enable_categorical=False,\\n eval_metric=None, feature_types=None, gamma=0, gpu_id=-1,\\n grow_policy='depthwise', importance_type=None,\\n interaction_constraints='', learning_rate=0.300000012, max_bin=256,\\n max_cat_threshold=64, max_cat_to_onehot=4, max_delta_step=0,\\n max_depth=4, max_leaves=0, min_child_weight=1, missing=nan,\\n monotone_constraints='()', n_estimators=100, n_jobs=0,\\n num_parallel_tree=1, predictor='auto', random_state=0, ...) 0.666667\n",
- "LinearRegression() 0.333333\n",
+ "algorithm \n",
+ "LinearRegression() 1.0\n",
"dtype: float64"
]
},
- "execution_count": 13,
+ "execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "final_df[[\"algorithm\"]].astype(\"str\").value_counts(normalize=True)"
+ "final_df[[\"algorithm\"]].astype(\"str\").value_counts(normalize=True)\n",
+ "\n",
+ "# 0.67 XGB\n",
+ "# 0.33 Linear Regression"
]
},
{
"cell_type": "markdown",
- "id": "c43bf9b4",
+ "id": "fbc62da1",
"metadata": {},
"source": [
"## Load a model from checkpoint and perform batch prediction "
@@ -1013,11 +956,11 @@
},
{
"cell_type": "markdown",
- "id": "a8b64e32",
+ "id": "249bf4d3",
"metadata": {},
"source": [
"```{tip}\n",
- "[Ray AIR Predictors](https://docs.ray.io/en/latest/ray-air/predictors.html) make batch inference easy since they have internal logic to parallelize the inference.\n",
+ "[Ray AIR Predictors](air-predictors) make batch inference easy since they have internal logic to parallelize the inference.\n",
"```\n",
"\n",
"Finally, we will restore the best and worst models from checkpoint and make predictions. \n",
@@ -1028,8 +971,8 @@
},
{
"cell_type": "code",
- "execution_count": 14,
- "id": "d0fe3a0f",
+ "execution_count": 13,
+ "id": "ed0e8140",
"metadata": {},
"outputs": [
{
@@ -1038,7 +981,7 @@
"141"
]
},
- "execution_count": 14,
+ "execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
@@ -1051,15 +994,15 @@
},
{
"cell_type": "code",
- "execution_count": 15,
- "id": "8f461adb",
+ "execution_count": 14,
+ "id": "221cb8ef",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "algorithm type:: \n",
+ "algorithm type:: \n",
"checkpoint type:: \n"
]
}
@@ -1079,8 +1022,8 @@
},
{
"cell_type": "code",
- "execution_count": 16,
- "id": "66e6e42e",
+ "execution_count": 15,
+ "id": "12770a38",
"metadata": {},
"outputs": [],
"source": [
@@ -1088,8 +1031,6 @@
"df_list = [read_data(f, sample_location_id) for f in s3_files[:1]]\n",
"df_raw = pd.concat(df_list, ignore_index=True)\n",
"df = transform_df(df_raw)\n",
- "\n",
- "# Train/test split.\n",
"_, test_df = train_test_split(df, test_size=0.2, shuffle=True)\n",
"test_X = test_df[[\"passenger_count\", \"trip_distance\"]]\n",
"test_y = np.array(test_df.trip_duration) # actual values"
@@ -1097,8 +1038,8 @@
},
{
"cell_type": "code",
- "execution_count": 17,
- "id": "f0a3d628",
+ "execution_count": 16,
+ "id": "a4e1ce5a",
"metadata": {},
"outputs": [
{
@@ -1129,52 +1070,52 @@
" \n",
" \n",
" 0 \n",
- " 1370.029419 \n",
+ " 1153.574219 \n",
" 1174 \n",
" \n",
" \n",
" 1 \n",
- " 602.880676 \n",
+ " 870.131592 \n",
" 299 \n",
" \n",
" \n",
" 2 \n",
- " 1261.975098 \n",
+ " 1065.683105 \n",
" 1206 \n",
" \n",
" \n",
" 3 \n",
- " 322.560333 \n",
+ " 591.070801 \n",
" 566 \n",
" \n",
" \n",
" 4 \n",
- " 712.604370 \n",
+ " 766.853149 \n",
" 630 \n",
" \n",
" \n",
" 5 \n",
- " 1430.202637 \n",
+ " 1037.557861 \n",
" 852 \n",
" \n",
" \n",
" 6 \n",
- " 1618.045898 \n",
+ " 1540.295410 \n",
" 1596 \n",
" \n",
" \n",
" 7 \n",
- " 606.959839 \n",
+ " 827.835510 \n",
" 801 \n",
" \n",
" \n",
" 8 \n",
- " 8332.479492 \n",
+ " 1871.982422 \n",
" 1363 \n",
" \n",
" \n",
" 9 \n",
- " 1021.077026 \n",
+ " 960.105408 \n",
" 715 \n",
" \n",
" \n",
@@ -1183,19 +1124,19 @@
],
"text/plain": [
" pred_y trip_duration\n",
- "0 1370.029419 1174\n",
- "1 602.880676 299\n",
- "2 1261.975098 1206\n",
- "3 322.560333 566\n",
- "4 712.604370 630\n",
- "5 1430.202637 852\n",
- "6 1618.045898 1596\n",
- "7 606.959839 801\n",
- "8 8332.479492 1363\n",
- "9 1021.077026 715"
+ "0 1153.574219 1174\n",
+ "1 870.131592 299\n",
+ "2 1065.683105 1206\n",
+ "3 591.070801 566\n",
+ "4 766.853149 630\n",
+ "5 1037.557861 852\n",
+ "6 1540.295410 1596\n",
+ "7 827.835510 801\n",
+ "8 1871.982422 1363\n",
+ "9 960.105408 715"
]
},
- "execution_count": 17,
+ "execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
@@ -1205,12 +1146,12 @@
"pred_y = sample_model.predict(test_X)\n",
"\n",
"# Zip together predictions and actuals to visualize\n",
- "pd.DataFrame(zip(pred_y, test_y), columns=[\"pred_y\", \"trip_duration\"])[0:10]"
+ "pd.DataFrame(zip(pred_y, test_y), columns=[\"pred_y\", TARGET])[0:10]"
]
},
{
"cell_type": "markdown",
- "id": "50c08692",
+ "id": "ad2ef857",
"metadata": {},
"source": [
"**Compare validation and test error.**\n",
@@ -1222,15 +1163,15 @@
},
{
"cell_type": "code",
- "execution_count": 18,
- "id": "74bdda77",
+ "execution_count": 17,
+ "id": "89cb9b79",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Test error: 498.45033775758844\n"
+ "Test error: 513.4911755733472\n"
]
}
],
@@ -1242,15 +1183,15 @@
},
{
"cell_type": "code",
- "execution_count": 19,
- "id": "5b9e1cbd",
+ "execution_count": 18,
+ "id": "f80b8a57",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Validation error: 505.4864588184019\n"
+ "Validation error: 500.0053176600036\n"
]
}
],
@@ -1264,7 +1205,7 @@
{
"cell_type": "code",
"execution_count": null,
- "id": "3003367b",
+ "id": "3c0f02f8",
"metadata": {},
"outputs": [],
"source": []