{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Kubeflow Pipelines e2e mnist example\n",
"\n",
"In this notebook you will create e2e mnist Kubeflow Pipeline to perform:\n",
"- Hyperparameter tuning using Katib\n",
"- Distributive training with the best hyperparameters using TFJob\n",
"- Serve the trained model using KServe\n",
"\n",
"Reference documentation:\n",
"\n",
"- https://www.kubeflow.org/docs/components/training/tftraining/\n",
"- https://www.kubeflow.org/docs/components/katib/\n",
"- https://www.kubeflow.org/docs/external-add-ons/kserve/\n",
"\n",
"**Note**: This Pipeline runs in the multi-user mode. Follow [this guide](https://www.kubeflow.org/docs/components/pipelines/sdk/connect-api/#multi-user-mode) to give your Notebook access to Kubeflow Pipelines."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: kfp==1.8.4 in /opt/conda/lib/python3.8/site-packages (1.8.4)\n",
"Requirement already satisfied: jsonschema<4,>=3.0.1 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (3.2.0)\n",
"Requirement already satisfied: PyYAML<6,>=5.3 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (5.4.1)\n",
"Requirement already satisfied: kfp-server-api<2.0.0,>=1.1.2 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (1.6.0)\n",
"Requirement already satisfied: click<8,>=7.1.1 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (7.1.2)\n",
"Requirement already satisfied: kubernetes<19,>=8.0.0 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (12.0.1)\n",
"Requirement already satisfied: uritemplate<4,>=3.0.1 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (3.0.1)\n",
"Requirement already satisfied: google-cloud-storage<2,>=1.20.0 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (1.41.1)\n",
"Requirement already satisfied: protobuf<4,>=3.13.0 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (3.17.3)\n",
"Requirement already satisfied: typing-extensions<4,>=3.10.0.2 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (3.10.0.2)\n",
"Requirement already satisfied: google-api-python-client<2,>=1.7.8 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (1.12.10)\n",
"Requirement already satisfied: cloudpickle<2,>=1.3.0 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (1.6.0)\n",
"Requirement already satisfied: kfp-pipeline-spec<0.2.0,>=0.1.10 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (0.1.13)\n",
"Requirement already satisfied: google-auth<2,>=1.6.1 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (1.34.0)\n",
"Requirement already satisfied: strip-hints<1,>=0.1.8 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (0.1.10)\n",
"Requirement already satisfied: docstring-parser<1,>=0.7.3 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (0.13)\n",
"Requirement already satisfied: pydantic<2,>=1.8.2 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (1.9.0)\n",
"Requirement already satisfied: fire<1,>=0.3.1 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (0.4.0)\n",
"Requirement already satisfied: absl-py<=0.11,>=0.9 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (0.11.0)\n",
"Requirement already satisfied: requests-toolbelt<1,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (0.9.1)\n",
"Requirement already satisfied: Deprecated<2,>=1.2.7 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (1.2.13)\n",
"Requirement already satisfied: tabulate<1,>=0.8.6 in /opt/conda/lib/python3.8/site-packages (from kfp==1.8.4) (0.8.9)\n",
"Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from absl-py<=0.11,>=0.9->kfp==1.8.4) (1.16.0)\n",
"Requirement already satisfied: wrapt<2,>=1.10 in /opt/conda/lib/python3.8/site-packages (from Deprecated<2,>=1.2.7->kfp==1.8.4) (1.13.3)\n",
"Requirement already satisfied: termcolor in /opt/conda/lib/python3.8/site-packages (from fire<1,>=0.3.1->kfp==1.8.4) (1.1.0)\n",
"Requirement already satisfied: google-auth-httplib2>=0.0.3 in /opt/conda/lib/python3.8/site-packages (from google-api-python-client<2,>=1.7.8->kfp==1.8.4) (0.1.0)\n",
"Requirement already satisfied: httplib2<1dev,>=0.15.0 in /opt/conda/lib/python3.8/site-packages (from google-api-python-client<2,>=1.7.8->kfp==1.8.4) (0.20.4)\n",
"Requirement already satisfied: google-api-core<3dev,>=1.21.0 in /opt/conda/lib/python3.8/site-packages (from google-api-python-client<2,>=1.7.8->kfp==1.8.4) (1.29.0)\n",
"Requirement already satisfied: requests<3.0.0dev,>=2.18.0 in /opt/conda/lib/python3.8/site-packages (from google-api-core<3dev,>=1.21.0->google-api-python-client<2,>=1.7.8->kfp==1.8.4) (2.27.1)\n",
"Requirement already satisfied: setuptools>=40.3.0 in /opt/conda/lib/python3.8/site-packages (from google-api-core<3dev,>=1.21.0->google-api-python-client<2,>=1.7.8->kfp==1.8.4) (49.6.0.post20210108)\n",
"Requirement already satisfied: pytz in /opt/conda/lib/python3.8/site-packages (from google-api-core<3dev,>=1.21.0->google-api-python-client<2,>=1.7.8->kfp==1.8.4) (2021.1)\n",
"Requirement already satisfied: googleapis-common-protos<2.0dev,>=1.6.0 in /opt/conda/lib/python3.8/site-packages (from google-api-core<3dev,>=1.21.0->google-api-python-client<2,>=1.7.8->kfp==1.8.4) (1.53.0)\n",
"Requirement already satisfied: packaging>=14.3 in /opt/conda/lib/python3.8/site-packages (from google-api-core<3dev,>=1.21.0->google-api-python-client<2,>=1.7.8->kfp==1.8.4) (20.9)\n",
"Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from google-auth<2,>=1.6.1->kfp==1.8.4) (0.2.8)\n",
"Requirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.8/site-packages (from google-auth<2,>=1.6.1->kfp==1.8.4) (4.8)\n",
"Requirement already satisfied: cachetools<5.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from google-auth<2,>=1.6.1->kfp==1.8.4) (4.2.2)\n",
"Requirement already satisfied: google-resumable-media<3.0dev,>=1.3.0 in /opt/conda/lib/python3.8/site-packages (from google-cloud-storage<2,>=1.20.0->kfp==1.8.4) (2.2.1)\n",
"Requirement already satisfied: google-cloud-core<3.0dev,>=1.6.0 in /opt/conda/lib/python3.8/site-packages (from google-cloud-storage<2,>=1.20.0->kfp==1.8.4) (2.2.2)\n",
"Requirement already satisfied: google-crc32c<2.0dev,>=1.0 in /opt/conda/lib/python3.8/site-packages (from google-resumable-media<3.0dev,>=1.3.0->google-cloud-storage<2,>=1.20.0->kfp==1.8.4) (1.3.0)\n",
"Requirement already satisfied: pyparsing!=3.0.0,!=3.0.1,!=3.0.2,!=3.0.3,<4,>=2.4.2 in /opt/conda/lib/python3.8/site-packages (from httplib2<1dev,>=0.15.0->google-api-python-client<2,>=1.7.8->kfp==1.8.4) (2.4.7)\n",
"Requirement already satisfied: pyrsistent>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema<4,>=3.0.1->kfp==1.8.4) (0.17.3)\n",
"Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema<4,>=3.0.1->kfp==1.8.4) (21.2.0)\n",
"Requirement already satisfied: certifi in /opt/conda/lib/python3.8/site-packages (from kfp-server-api<2.0.0,>=1.1.2->kfp==1.8.4) (2021.5.30)\n",
"Requirement already satisfied: python-dateutil in /opt/conda/lib/python3.8/site-packages (from kfp-server-api<2.0.0,>=1.1.2->kfp==1.8.4) (2.8.1)\n",
"Requirement already satisfied: urllib3>=1.15 in /opt/conda/lib/python3.8/site-packages (from kfp-server-api<2.0.0,>=1.1.2->kfp==1.8.4) (1.26.5)\n",
"Requirement already satisfied: websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 in /opt/conda/lib/python3.8/site-packages (from kubernetes<19,>=8.0.0->kfp==1.8.4) (1.0.1)\n",
"Requirement already satisfied: requests-oauthlib in /opt/conda/lib/python3.8/site-packages (from kubernetes<19,>=8.0.0->kfp==1.8.4) (1.3.1)\n",
"Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth<2,>=1.6.1->kfp==1.8.4) (0.4.8)\n",
"Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core<3dev,>=1.21.0->google-api-python-client<2,>=1.7.8->kfp==1.8.4) (2.0.12)\n",
"Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core<3dev,>=1.21.0->google-api-python-client<2,>=1.7.8->kfp==1.8.4) (3.2)\n",
"Requirement already satisfied: wheel in /opt/conda/lib/python3.8/site-packages (from strip-hints<1,>=0.1.8->kfp==1.8.4) (0.36.2)\n",
"Requirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.8/site-packages (from requests-oauthlib->kubernetes<19,>=8.0.0->kfp==1.8.4) (3.2.0)\n",
"Requirement already satisfied: kubeflow-katib==0.12.0 in /opt/conda/lib/python3.8/site-packages (0.12.0)\n",
"Requirement already satisfied: six>=1.10 in /opt/conda/lib/python3.8/site-packages (from kubeflow-katib==0.12.0) (1.16.0)\n",
"Requirement already satisfied: setuptools>=21.0.0 in /opt/conda/lib/python3.8/site-packages (from kubeflow-katib==0.12.0) (49.6.0.post20210108)\n",
"Requirement already satisfied: urllib3>=1.15.1 in /opt/conda/lib/python3.8/site-packages (from kubeflow-katib==0.12.0) (1.26.5)\n",
"Requirement already satisfied: certifi>=14.05.14 in /opt/conda/lib/python3.8/site-packages (from kubeflow-katib==0.12.0) (2021.5.30)\n",
"Requirement already satisfied: kubernetes>=12.0.0 in /opt/conda/lib/python3.8/site-packages (from kubeflow-katib==0.12.0) (12.0.1)\n",
"Requirement already satisfied: pyyaml>=3.12 in /opt/conda/lib/python3.8/site-packages (from kubernetes>=12.0.0->kubeflow-katib==0.12.0) (5.4.1)\n",
"Requirement already satisfied: python-dateutil>=2.5.3 in /opt/conda/lib/python3.8/site-packages (from kubernetes>=12.0.0->kubeflow-katib==0.12.0) (2.8.1)\n",
"Requirement already satisfied: requests-oauthlib in /opt/conda/lib/python3.8/site-packages (from kubernetes>=12.0.0->kubeflow-katib==0.12.0) (1.3.1)\n",
"Requirement already satisfied: websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 in /opt/conda/lib/python3.8/site-packages (from kubernetes>=12.0.0->kubeflow-katib==0.12.0) (1.0.1)\n",
"Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from kubernetes>=12.0.0->kubeflow-katib==0.12.0) (2.27.1)\n",
"Requirement already satisfied: google-auth>=1.0.1 in /opt/conda/lib/python3.8/site-packages (from kubernetes>=12.0.0->kubeflow-katib==0.12.0) (1.34.0)\n",
"Requirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.8/site-packages (from google-auth>=1.0.1->kubernetes>=12.0.0->kubeflow-katib==0.12.0) (4.8)\n",
"Requirement already satisfied: cachetools<5.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from google-auth>=1.0.1->kubernetes>=12.0.0->kubeflow-katib==0.12.0) (4.2.2)\n",
"Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.8/site-packages (from google-auth>=1.0.1->kubernetes>=12.0.0->kubeflow-katib==0.12.0) (0.2.8)\n",
"Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth>=1.0.1->kubernetes>=12.0.0->kubeflow-katib==0.12.0) (0.4.8)\n",
"Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->kubernetes>=12.0.0->kubeflow-katib==0.12.0) (2.0.12)\n",
"Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->kubernetes>=12.0.0->kubeflow-katib==0.12.0) (3.2)\n",
"Requirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.8/site-packages (from requests-oauthlib->kubernetes>=12.0.0->kubeflow-katib==0.12.0) (3.2.0)\n"
]
}
],
"source": [
"# Install required packages (Kubeflow Pipelines and Katib SDK).\n",
"!pip install kfp==1.8.4\n",
"!pip install kubeflow-katib==0.12.0"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import kfp\n",
"import kfp.dsl as dsl\n",
"from kfp import components\n",
"\n",
"from kubeflow.katib import ApiClient\n",
"from kubeflow.katib import V1beta1ExperimentSpec\n",
"from kubeflow.katib import V1beta1AlgorithmSpec\n",
"from kubeflow.katib import V1beta1ObjectiveSpec\n",
"from kubeflow.katib import V1beta1ParameterSpec\n",
"from kubeflow.katib import V1beta1FeasibleSpace\n",
"from kubeflow.katib import V1beta1TrialTemplate\n",
"from kubeflow.katib import V1beta1TrialParameterSpec"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Define the Pipelines tasks\n",
"\n",
"To run this Pipeline, you should define:\n",
"1. Katib hyperparameter tuning\n",
"2. TFJob training\n",
"3. KServe inference\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 1. Katib hyperparameter tuning task\n",
"\n",
"Create the Kubeflow Pipelines task for the Katib hyperparameter tuning. This Experiment uses \"random\" algorithm and TFJob for the Trial's worker.\n",
"\n",
"The Katib Experiment is similar to this example: https://github.com/kubeflow/katib/blob/master/examples/v1beta1/kubeflow-training-operator/tfjob-mnist-with-summaries.yaml."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# You should define the Experiment name, namespace and number of training steps in the arguments.\n",
"def create_katib_experiment_task(experiment_name, experiment_namespace, training_steps):\n",
" # Trial count specification.\n",
" max_trial_count = 5\n",
" max_failed_trial_count = 3\n",
" parallel_trial_count = 2\n",
"\n",
" # Objective specification.\n",
" objective = V1beta1ObjectiveSpec(\n",
" type=\"minimize\",\n",
" goal=0.001,\n",
" objective_metric_name=\"loss\"\n",
" )\n",
"\n",
" # Algorithm specification.\n",
" algorithm = V1beta1AlgorithmSpec(\n",
" algorithm_name=\"random\",\n",
" )\n",
"\n",
" # Experiment search space.\n",
" # In this example we tune learning rate and batch size.\n",
" parameters = [\n",
" V1beta1ParameterSpec(\n",
" name=\"learning_rate\",\n",
" parameter_type=\"double\",\n",
" feasible_space=V1beta1FeasibleSpace(\n",
" min=\"0.01\",\n",
" max=\"0.05\"\n",
" ),\n",
" ),\n",
" V1beta1ParameterSpec(\n",
" name=\"batch_size\",\n",
" parameter_type=\"int\",\n",
" feasible_space=V1beta1FeasibleSpace(\n",
" min=\"80\",\n",
" max=\"100\"\n",
" ),\n",
" )\n",
" ]\n",
"\n",
" # Experiment Trial template.\n",
" # TODO (andreyvelich): Use community image for the mnist example.\n",
" trial_spec = {\n",
" \"apiVersion\": \"kubeflow.org/v1\",\n",
" \"kind\": \"TFJob\",\n",
" \"spec\": {\n",
" \"tfReplicaSpecs\": {\n",
" \"Chief\": {\n",
" \"replicas\": 1,\n",
" \"restartPolicy\": \"OnFailure\",\n",
" \"template\": {\n",
" \"metadata\": {\n",
" \"annotations\": {\n",
" \"sidecar.istio.io/inject\": \"false\"\n",
" }\n",
" },\n",
" \"spec\": {\n",
" \"containers\": [\n",
" {\n",
" \"name\": \"tensorflow\",\n",
" \"image\": \"docker.io/liuhougangxa/tf-estimator-mnist\",\n",
" \"command\": [\n",
" \"python\",\n",
" \"/opt/model.py\",\n",
" \"--tf-train-steps=\" + str(training_steps),\n",
" \"--tf-learning-rate=${trialParameters.learningRate}\",\n",
" \"--tf-batch-size=${trialParameters.batchSize}\"\n",
" ]\n",
" }\n",
" ]\n",
" }\n",
" }\n",
" },\n",
" \"Worker\": {\n",
" \"replicas\": 1,\n",
" \"restartPolicy\": \"OnFailure\",\n",
" \"template\": {\n",
" \"metadata\": {\n",
" \"annotations\": {\n",
" \"sidecar.istio.io/inject\": \"false\"\n",
" }\n",
" },\n",
" \"spec\": {\n",
" \"containers\": [\n",
" {\n",
" \"name\": \"tensorflow\",\n",
" \"image\": \"docker.io/liuhougangxa/tf-estimator-mnist\",\n",
" \"command\": [\n",
" \"python\",\n",
" \"/opt/model.py\",\n",
" \"--tf-train-steps=\" + str(training_steps),\n",
" \"--tf-learning-rate=${trialParameters.learningRate}\",\n",
" \"--tf-batch-size=${trialParameters.batchSize}\"\n",
" ]\n",
" }\n",
" ]\n",
" }\n",
" }\n",
" }\n",
" }\n",
" }\n",
" }\n",
"\n",
" # Configure parameters for the Trial template.\n",
" trial_template = V1beta1TrialTemplate(\n",
" primary_container_name=\"tensorflow\",\n",
" trial_parameters=[\n",
" V1beta1TrialParameterSpec(\n",
" name=\"learningRate\",\n",
" description=\"Learning rate for the training model\",\n",
" reference=\"learning_rate\"\n",
" ),\n",
" V1beta1TrialParameterSpec(\n",
" name=\"batchSize\",\n",
" description=\"Batch size for the model\",\n",
" reference=\"batch_size\"\n",
" ),\n",
" ],\n",
" trial_spec=trial_spec\n",
" )\n",
"\n",
" # Create an Experiment from the above parameters.\n",
" experiment_spec = V1beta1ExperimentSpec(\n",
" max_trial_count=max_trial_count,\n",
" max_failed_trial_count=max_failed_trial_count,\n",
" parallel_trial_count=parallel_trial_count,\n",
" objective=objective,\n",
" algorithm=algorithm,\n",
" parameters=parameters,\n",
" trial_template=trial_template\n",
" )\n",
"\n",
" # Create the KFP task for the Katib Experiment.\n",
" # Experiment Spec should be serialized to a valid Kubernetes object.\n",
" katib_experiment_launcher_op = components.load_component_from_url(\n",
" \"https://raw.githubusercontent.com/kubeflow/pipelines/master/components/kubeflow/katib-launcher/component.yaml\")\n",
" op = katib_experiment_launcher_op(\n",
" experiment_name=experiment_name,\n",
" experiment_namespace=experiment_namespace,\n",
" experiment_spec=ApiClient().sanitize_for_serialization(experiment_spec),\n",
" experiment_timeout_minutes=60,\n",
" delete_finished_experiment=False)\n",
"\n",
" return op"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 2. TFJob training task\n",
"\n",
"Create the Kubeflow Pipelines task for the TFJob training. In this example TFJob runs the Chief and Worker with 1 replica.\n",
"\n",
"Learn more about TFJob replica specifications in the Kubeflow docs: https://www.kubeflow.org/docs/components/training/tftraining/#what-is-tfjob."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# This function converts Katib Experiment HP results to args.\n",
"def convert_katib_results(katib_results) -> str:\n",
" import json\n",
" import pprint\n",
" katib_results_json = json.loads(katib_results)\n",
" print(\"Katib results:\")\n",
" pprint.pprint(katib_results_json)\n",
" best_hps = []\n",
" for pa in katib_results_json[\"currentOptimalTrial\"][\"parameterAssignments\"]:\n",
" if pa[\"name\"] == \"learning_rate\":\n",
" best_hps.append(\"--tf-learning-rate=\" + pa[\"value\"])\n",
" elif pa[\"name\"] == \"batch_size\":\n",
" best_hps.append(\"--tf-batch-size=\" + pa[\"value\"])\n",
" print(\"Best Hyperparameters: {}\".format(best_hps))\n",
" return \" \".join(best_hps)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# You should define the TFJob name, namespace, number of training steps, output of Katib and model volume tasks in the arguments.\n",
"def create_tfjob_task(tfjob_name, tfjob_namespace, training_steps, katib_op, model_volume_op):\n",
" import json\n",
" # Get parameters from the Katib Experiment.\n",
" # Parameters are in the format \"--tf-learning-rate=0.01 --tf-batch-size=100\"\n",
" convert_katib_results_op = components.func_to_container_op(convert_katib_results)\n",
" best_hp_op = convert_katib_results_op(katib_op.output)\n",
" best_hps = str(best_hp_op.output)\n",
"\n",
" # Create the TFJob Chief and Worker specification with the best Hyperparameters.\n",
" # TODO (andreyvelich): Use community image for the mnist example.\n",
" tfjob_chief_spec = {\n",
" \"replicas\": 1,\n",
" \"restartPolicy\": \"OnFailure\",\n",
" \"template\": {\n",
" \"metadata\": {\n",
" \"annotations\": {\n",
" \"sidecar.istio.io/inject\": \"false\"\n",
" }\n",
" },\n",
" \"spec\": {\n",
" \"containers\": [\n",
" {\n",
" \"name\": \"tensorflow\",\n",
" \"image\": \"docker.io/liuhougangxa/tf-estimator-mnist\",\n",
" \"command\": [\n",
" \"sh\",\n",
" \"-c\"\n",
" ],\n",
" \"args\": [\n",
" \"python /opt/model.py --tf-export-dir=/mnt/export --tf-train-steps={} {}\".format(training_steps, best_hps)\n",
" ],\n",
" \"volumeMounts\": [\n",
" {\n",
" \"mountPath\": \"/mnt/export\",\n",
" \"name\": \"model-volume\"\n",
" }\n",
" ]\n",
" }\n",
" ],\n",
" \"volumes\": [\n",
" {\n",
" \"name\": \"model-volume\",\n",
" \"persistentVolumeClaim\": {\n",
" \"claimName\": str(model_volume_op.outputs[\"name\"])\n",
" }\n",
" }\n",
" ]\n",
" }\n",
" }\n",
" }\n",
"\n",
" tfjob_worker_spec = {\n",
" \"replicas\": 1,\n",
" \"restartPolicy\": \"OnFailure\",\n",
" \"template\": {\n",
" \"metadata\": {\n",
" \"annotations\": {\n",
" \"sidecar.istio.io/inject\": \"false\"\n",
" }\n",
" },\n",
" \"spec\": {\n",
" \"containers\": [\n",
" {\n",
" \"name\": \"tensorflow\",\n",
" \"image\": \"docker.io/liuhougangxa/tf-estimator-mnist\",\n",
" \"command\": [\n",
" \"sh\",\n",
" \"-c\",\n",
" ],\n",
" \"args\": [\n",
" \"python /opt/model.py --tf-export-dir=/mnt/export --tf-train-steps={} {}\".format(training_steps, best_hps) \n",
" ],\n",
" }\n",
" ],\n",
" }\n",
" }\n",
" }\n",
"\n",
" # Create the KFP task for the TFJob.\n",
" tfjob_launcher_op = components.load_component_from_url(\n",
" \"https://raw.githubusercontent.com/kubeflow/pipelines/master/components/kubeflow/launcher/component.yaml\")\n",
" op = tfjob_launcher_op(\n",
" name=tfjob_name,\n",
" namespace=tfjob_namespace,\n",
" chief_spec=json.dumps(tfjob_chief_spec),\n",
" worker_spec=json.dumps(tfjob_worker_spec),\n",
" tfjob_timeout_minutes=60,\n",
" delete_finished_tfjob=False)\n",
" return op"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Step 3. KServe inference\n",
"\n",
"Create the Kubeflow Pipelines task for the KServe inference."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def create_serving_task(model_name, model_namespace, tfjob_op, model_volume_op):\n",
"\n",
" api_version = 'serving.kserve.io/v1beta1'\n",
" serving_component_url = 'https://raw.githubusercontent.com/kubeflow/pipelines/master/components/kserve/component.yaml'\n",
"\n",
" # Uncomment the following two lines if you are using KFServing v0.6.x or v0.5.x\n",
" # api_version = 'serving.kubeflow.org/v1beta1'\n",
" # serving_component_url = 'https://raw.githubusercontent.com/kubeflow/pipelines/master/components/kubeflow/kfserving/component.yaml'\n",
"\n",
" inference_service = '''\n",
"apiVersion: \"{}\"\n",
"kind: \"InferenceService\"\n",
"metadata:\n",
" name: {}\n",
" namespace: {}\n",
" annotations:\n",
" \"sidecar.istio.io/inject\": \"false\"\n",
"spec:\n",
" predictor:\n",
" tensorflow:\n",
" storageUri: \"pvc://{}/\"\n",
"'''.format(api_version, model_name, model_namespace, str(model_volume_op.outputs[\"name\"]))\n",
"\n",
" serving_launcher_op = components.load_component_from_url(serving_component_url)\n",
" serving_launcher_op(action=\"apply\", inferenceservice_yaml=inference_service).after(tfjob_op)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Run the Kubeflow Pipeline\n",
"\n",
"You should create the Kubeflow Pipeline from the above tasks."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'size': {{pipelineparam:op=model-volume;name=size}}, 'name': {{pipelineparam:op=model-volume;name=name}}, 'manifest': {{pipelineparam:op=model-volume;name=manifest}}}\n",
"{{pipelineparam:op=model-volume;name=name}}\n"
]
},
{
"data": {
"text/html": [
"Experiment details."
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Run details."
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Run ID: 9519f884-8baf-4768-a728-29de8ef5b4e6\n"
]
}
],
"source": [
"name=\"mnist-e2e\"\n",
"namespace=\"kubeflow-user-example-com\"\n",
"training_steps=\"200\"\n",
"\n",
"@dsl.pipeline(\n",
" name=\"End to End Pipeline\",\n",
" description=\"An end to end mnist example including hyperparameter tuning, train and inference\"\n",
")\n",
"def mnist_pipeline(name=name, namespace=namespace, training_steps=training_steps):\n",
" # Run the hyperparameter tuning with Katib.\n",
" katib_op = create_katib_experiment_task(name, namespace, training_steps)\n",
"\n",
" # Create volume to train and serve the model.\n",
" model_volume_op = dsl.VolumeOp(\n",
" name=\"model-volume\",\n",
" resource_name=\"model-volume\",\n",
" size=\"1Gi\",\n",
" modes=dsl.VOLUME_MODE_RWO\n",
" )\n",
"\n",
" # Run the distributive training with TFJob.\n",
" tfjob_op = create_tfjob_task(name, namespace, training_steps, katib_op, model_volume_op)\n",
"\n",
" # Create the KServe inference.\n",
" create_serving_task(name, namespace, tfjob_op, model_volume_op)\n",
"# Run the Kubeflow Pipeline in the user's namespace.\n",
"\n",
"kfp_client=kfp.Client()\n",
"run_id = kfp_client.create_run_from_pipeline_func(mnist_pipeline, namespace=namespace, arguments={}).run_id\n",
"print(\"Run ID: \", run_id)"
]
},
{
"attachments": {
"f947c4a5-dc78-4ba4-8e47-ae73d8f0ecea.png": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABpAAAANvCAYAAADa35mqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7N0LYBTlvffxH96oWBHRRLSgEi4toi8FERFsTxAVSqkWrYGeqqUoFClUpQqUeqloY6CKtrGIINSjtiXxQkWkoCK0FcQI5FiMnnIRlKgx6wVpxaJA3nlmntmd2exmNxcg2Xw/553u3C/PzgTf+e///7SocggAAAAAAAAAAACwDrGfAAAAAAAAAAAAgIsAEgAAAAAAAAAAAEIIIAEAAAAAAAAAACCEABIAAAAAAAAAAABCCCABAAAAAAAAAAAghAASAAAAAAAAAAAAQgggAQAAAAAAAAAAIIQAEgAAAAAAAAAAAEIIIAEAAAAAAAAAACCEABIAAAAAAAAAAABCCCABAAAAAAAAAAAghAASAAAAAAAAAAAAQlq8XxmpUpX7/+T8rzezRQsz4Yw4H94sAAAAAAAAAAAAZAgTCorFgmx8yPyfme/8T4uPPt5RtW/vXhs6spwJE0wyK5r/BwAAAAAAAAAAgAySJBZkRg859FC12Pmvf1WZyJJdxawfQvwIAAAAAAAAAAAgsySKB5l5LUzEyGQg7d69u2pfYK3oKLXrAAAAAAAAAAAAMptbsy6cUHSIM9Hiiz17qoIRJLcfJDOZsalHb2jRzcVaY6dijtdF1/5EfY+3k/vRm0W36dkTfqKxufv/YB+t/J3uev885Q/vZuc0Zh9ozW9+p//tkUbbvF6sqX96wxmpx/dm9vHcibrh2m+o7Qd/1+zfvKcLb89Tjl0MAAAAAAAAAEDGszEhr06dp8UhztTevXtNLpJNPXLDR3YV73/9jpMyx2t6/IZHpR8W6Htn2FkZ7MPnZ+r29y7UvVecbuc0ZpV6cfpMrTtzoq49P9vOS8xc16O6POV6NdrwqK5bcpJunnyejqt8Qb+Z8a6G3HW5utjFAAAAAAAAAABkKlOmzhMXGzIjVVVqsW+fST9q4QaKousGZF4A6R8q+ulD0lUzNbyHnRX06kMa93R7TbvpfJmklg+WTdct735Ls370/7Tx9xO16KQh6vDMEv3VrNtzpDvfZ5bfW+qN53x7im4YZIIblfrrHQV6RSfozcr39V/OcXuuN/vxlifa57ST/qJbnnnfmThBw2+arP/yYyTm3Ob9wxvPHhI9R++cpf9yru2vlWaG3e69wPr+uQb3of+n6347Ul3tVG0885dl+vCjj3XlD0bYOXUXbbfs/+dew/az/LZL3Kbud+K2jyPhdTlt4X+/NXyfsWXZWu7cE27716NNAAAAAAAAAABoKmIBpBgTEvLmV+kQO0uHmIJ2hrPA7RwpYwdp39692qdEy5zh6z/S7b1LNG9ppTP9Dz33ci/dPqqHu6xq315tWlSiE266R/cXjtQ31s7Tn171tvtwab7u3v4t3V7oLLvpW9q76Fd2mdO6ZrsTv+Vsc49GfN3bz177JXj73K6v2+1Ocfb5i3Jv3Wt7vKs/Pv0Pd70Wlc9p+px3lecee4ry9j2tX8yzy5zvb+97pdr3HbvseLuduZYhx2tvj5G6372Gf+hP0X3c4yx7Vwvd6/SuoTbDebn/pbfeelv/88gfEy5Pd3Dbbe0ZutZc/5ivaNt7sbZJ1qZZg6eEryvUNua6jtcLTz2nD80xTNvssx1+maHK2f8+b/+xZT00wrT9XnMeP9JX/XUZGBgYGBgYGBgYGBgYGBgYGBgYGBgYmsHg/I8bIvJiRV5i0SH+Qj/TyFslJriDzBicS9+7Ty/cP15X/zgw3LpMH9h1soZcrbPXzNWdt85V1cWDlOVvW7VP+3oO1XntzPTXdeHQbL3wyqvO+PvasOY9dTyrh7duu0Ea1nOf3nr3ffd42rdPHU9q5+3D7seP4nn7PFPd3O1OUIe92fr+d77uLjv+pGy5+WHO+AfrSrQ5q7fOcI/dTudd3EP7tld45+x8mfv29tCZPb1lZ5wV284cyB93J010xtnCTGcNuUk/HxI4r1oMRx3VSjdOvFbb3t6u3z/8aMJ10hk+LHfabei37fV77ea1TU1tGnddzrKf33+T/V6c6zqxndPk7kKvbfzx+O2Cy5xx0zbufAYGBgYGBgYGBgYGBgYGBgYGBgYGBoYMH4L8Ka9anbfczUAKzsh8VW4QYcDY32nenMAwbbCy7BpSO5333XbaVPUdDeppZzlMO+V8pZ2dMkwwwtmfO1qlTX+eph+NHucO019xpsvfiy47+cTYdmY/dqu4fXrnFhPYvxl/b5Em2f3/aNZ6Z3q7PnAXOctOaK/j3PWMuO2i41/X5dPO0ks3233cvFQRu6TOnH1XmSBMnVTo3e2xtjCCbWP2nbRNQ9clvfGAvSa/bfxFzjrh0wtsF7csdGwAAAAAAAAAAJoRP05k3pUbbgCppsCR+1I9wwYTQDBDomXesF4Pz9qnH/RZo9lPvxebv69Km95+NzodedtZ5swz42Z/Jig1f05gGPP16LLQ8ZxtTOZLtXFn2GcykqLr7Yvu3x3vdXV4/3Ou1tfcdU3WjhmSbBfYf9UJgzTVbj/dub4b718fW1aL4dNPd6lgxt1q/5WTNGrkFQnXST2coHYnha8/2B41tWnoutY9oOmv9NCN/jpjezjz/fYwn/54+DsLLzPtHluPgYGBgYGBgYGBgYGBgYGBgYGBgYGBIZOHZPyYke0DCUFvzJ4rXTNGA4f+WOe8/ICWV9gFxrpX9IY7Uqq166Tz+pgUpXb6f2efoBcW/sVm9JTqkdHjdMfi4Ib1k9W7jzqtWxQ9lzdmmwwi/3hpqviL7hg9x56/p1P7E+1Y7fzfPzeqQ4f2unrUD+2cuunW5+va8tQi75yc83vCaVNPXdu0QssX/q8dtypK9A93M+87AwAAAAAAAAAANWtRVVOYKSOV6pGr52i5nQoaOO5+DX73Nt1YfpEeGmtr15mgy03bdemDY6TZ1+gJOfPXlmqzs6jzd2/VTUNjpenecJZPX2sneo+x+6jQ8ptu07uX3K8renmLzHpPtPe2DY5757ZIJ91xqwY6k5HFceeyfo5Gzir1xp3zmOycUzczauY/2UG/vuNbbhm+0Hb+NvZ83GV/tkGYdhdFtzmYYu3WU1d89z29pB9H2zVxm8a3jdfGj7iX1U5XjOujl2Z535lpn/j9PxJsm2i7+fdFoF0BAAAAAAAAAGimmmEAqe7CwR4AAAAAAAAAAIDMRAk7AAAAAAAAAAAAhJCBBAAAAAAAAAAAgBAykAAAAAAAAAAAABBCAAkAAAAAAAAAAAAhlLADAAAAAAAA0DTtfl8bVpUpYidDsrvr3NNP0BF2MrVPtO2Fj3XseafqGDunyar8WKNnfK4ldtKYPPIE/fR0O6Gd+u0Nn2m6DtOiu47TmXYuGpq5p9bpTTtVTa3v0brwzyFHZzbgvf35+xv0T31VZ5ywf8++rtY98r4uetWMtdB9k7I1LNudXQ+pn5nK5yrVc1mVhgw6WnMvaGXnNm1kIAEAAAAAAADIPJVlenHbJ3YilRQv+puS1z7UV+KCR8b0h97X6Od22Sk0H8fo1PPO03kNHDx6sSxh2LaR2KlVbvDIqNKSVw/MfZ99QbbeueuEjAkeGWQgAQAAAAAAAGia/AykapkcibIu4oJEOWfqvFPNkurBo5ze5+mkz7yX5Fk5OdKbbyqiI9X6i8+08/BE+2zY7I6687MkwhlHfmaEotkTibIpdmnhjH9pfKU74QhnWvgZHZMHHaENy/wAVVw2RlzmU02ZGNFsjR6HSa/ucbYxmSJf0vYZcedlAmIP7YnuK5blcYTOcM7DXGvDZZnsT4nvlU+2vaB1sZsy4b2Vk/OmuQXde/ZMrXPXz+neXf8qs9l39l6O7StL3fufoRNamvG44waeme5fLlOZPXZW93MD2USf6/3XXlRZ9F6ILa8WPPKfvbhswPD+Dqxq91b2ESqddKyit4d/n2Yfpsnao+nOdcbfX57gfRV4ZiYdotn+fd7jSL1zRWszFrg3nX312O0dI7A8dtzY+cQypYy456kRIAMJAAAAAAAAQIarHiTSm+u04f3P7URyETd45MjO0SlfNSNv6uOd5tOx82NvnznHNoLgkeO1L7yASo8jA+XqTGbEl3VftnkZnuzldHzwyNiji26o1MLQPGl6NHhkOOs8YhsjQdm8Jcv+pd++ZieSWOIGjxzZh6t/LQJAS6LBI6NK4x/6WHGn2uiFg0fGm1r32vsK35U2eOTIaRu7y970g0eGuZdf2xDYV0Rlm+L3E6cyFjwyImX/1Pu7vfFPtoWDR0ZweTUJSklGyl7UNv85OaB2aVWpCQC10JBBR2qIuacqv9CqRDdHpRc8ctftER88Mpz7akb8M+Dc88H7/NXPEt/j2S29Y7/6hdZ5c1TpjJvthvRsmSB4ZJh9N677mAASAAAAAAAAgKbNlKt74QW9EB28YFFW95O8wI4N9JisiPPccl7nqnu2ecn9rj5x1jj1vDOVY9ZzszTO06k2YcBlMizMNqefoKy23lr/+sx7Nf/JR94b+OCL/YOp8r297ufknsELMFppWE0ZOq995gWPTGbEXSe4ZbhKB7VwZlRp/LK4KIDJqDDrjDzMm3aOaTb1X46bzCd3+V1HarIzPX1Jihfi/jGDGSLpiG53hIaY6cp92u4uaCo+0cfm9vHvL2c4t3uWey+/G9fkJiPOLA/dlybryN/GEak82r13z+vfXe6cys/0mbskGZOlFHsWnD3oMxsgOuZU73j+cKZ723vLjzjhjOgx3efJeS60o9INHvnneZ59nt58O0UQa3+o3K0l7r1sApKt1L+ndx8nLmNngqrmXjXPxk4tcINH/rzYMxC/rX+Pe8ulDe8l2rd/7D1a5QaYAoGtHiYrz5bZi3/mKj/XghRB1wOJABIAAAAAAACADOO9HPdLaH3+2b/cT5MV4QWY/AyLf+k/ybIqrKysY2Ol8Vof674Yj0Q+1ufO//3n32Zmjo6Nj9ccZIlfaCe3rnSP+zl5SCyIk33Bl9wAkB8g8kWDU6cf7i23tld4mRumr6Wv3GAGr5ReqsCOn41RW9Ht/EyPpmb3f5y7zxEIfvql4fwApSfx/eUHLY848mj3M5oF1/JLsnNqlp2tY90Sd0fo2CwvIBTPlKsz5xXOkqrus8+8835zbTiAmzqI1fDis3yyexzuBhiXlO6uHsgMZr1V7tUG8xmYl7hPo8PU32b3ZZ94qDeShH/s6aU7nf3bwFaPL3mBXP94lZ+rp/u8vB/Nfqrt87s/EUACAAAAAAAA0LT5WRx+9oUiqtyRTu5DLOsiPcfoWBNBqqzUxzs/Nh+xF/eNgP9Ce0mFFxCKMSXq3k9aTq5DOy+TYv/Yq7ervblPn59V1ZxEPjvQYZcwU1rPBILePfKMQAZSXaQO0DYsP8vHK5/oBjL9cnMHI7MnUMZuoZ+hVy07sLrqz+/BQwAJAAAAAAAAQGZoeYLO6O297Q722eJnacRK2MWGUFmwNBzjlrGLqGyt1+dLYylf5/KzguL6Zal87t9uibrpD1Xv08jwA0/BcnOVz/3HyyBylvlJGjXxg1CxEnb+UEPpvKT8oFMsIJBx/EyhQAm76HDqwbynbGm9aOaTn2mX3JFHemHbWAk7fzhDJ7hZTgeIX4oxCTcTKJnsQ3WG+QwGml770AtC+f181VqsjN14N7solr0UPV6ghF10uKKWf5T2IwJIAAAAAAAAADJH61OjfbaUbbJ9sPil56Il7OzwWnwfLW9qnTN/w/s1ZC/ZfXkaW/m61hph+2WJlZKLlcYaMujLiYM5px+p+9yyWvHltFrovkHpXWC0XFfguO5Qq5fvh6mDe35VGj/DbP+vGgMCTZufzRbff9eGaODz4PKehVi5x+q852mbPmuT7Wb+xUrY2WHbJ96KB4hfinHIoKPDARm/n6xXv9A6d41EEjw7D5n9pf8MJBItBWk4z8iZdtQcr38P5yPwzHlD4iDvwUIACQAAAAAAAEBGOeZUrxN/83L+n24w6Bidajv2j8nRmaefYPs3OkYndU/cD0x19sW/0YjK1/ncflv8F+YBJjMo3JdLUCsNm3S0F0SKOkyLapM9lH2s5sYf12RX1CqbwjmPkcF9OOcw8jA7nnmOObV6ebic3gc4a6ca51mxWXwukyFlS0O++ZEXEDrihJPDz5LJ/IuWj7TMdgc0k2qnVr1qPltoSI+4+zzaT9YeraqhjJ15dkptEMk3eWRdMuiCbKDIEV++7swrTtAiu8xX/+M1rBZVDjsOAAAAAAAAAEjB9BGz7k2vZFdtS+ABQFNBBhIAAAAAAAAApC2+jxgAyExkIAEAAAAAAABAGj5/f4NeLIu442QfAch0BJAAAAAAAAAAAAAQQgk7AAAAAAAAAAAAhBBAAgAAAAAAAAAAQAgBJAAAAAAAAAAAAIQQQAIAAAAAAAAAAEAIASQAAAAAAAAAAACEEEBqNkqVn9NFHXMKtN7OqbOKl3RfwdOK2MkDbm2Bcx3OtRSU2hkHVuTx0QmOH1HRKNO+o1VUYWc1Mju3rNTcn12pC84052mGM3XBlRM198Wav8nIi/N03ZWD1cPd5nT1GfoT5T/9unbutSskEFn7mPKvuVh9TrfHOr2fhl5ToKde32nXSGDnFq2YM1E/uOBMe35d1OOCK3XdnJcUqeFYqRyw80+lDte3+X8ujq6beKjl87w3ovWPF+iaof30NbuPr/W7WNc4z3NZDZfWWNpDe3eq7Ong+ad3D9da+WMaZfY/6rHkf+cO1LkAAAAAAAAAB0mjCSA99NBD+tGPfmSn0GhFntaoflfq7o3/sTPQFGxf+BN944LRyl/4kjark7qfcZq6d5I2v/i08q/spwsmPavt1V7a79bmP4zWN64s0FMvbpE6Oduc1lo7X39Wc6+9WJf+PPE26++5WN/Im6q5y17XztbONuZYrXeqbNk8XTe0ny69/3VnrTjlT+uaAYM1quBprXYO1dlsc4Zzglte0lMFV6rP4KlaWm7XTdsBPP9U6nR9O7V5/et2vAHsKtXdFw/QpZPmaenrO9X6NO/aWu98XUvnTNTQfnm6b0P8lTWi9thbrqeuHaCh1wbO/7SW2l7jPVwHe1/XfT+aqhV2MrGdWn1HXvhcos+T08Z1aRMAAAAAAACgsalqBH7/+99XmVMxw4oVK+xcNErvFVf9qGPnqlN/VFxVaWc1N5WPXV11qmmDO9fbOY3c5keqLjHn23FQ1S3Ph7+1T8oeqfpRd7Osc9WPHgsv+8/6mVXnm+26X131P//8j53reG9F1S3nm226V/3oybhtVvyy6qv+NmWf2Lmeyud/6e2vY27Vr14J7G/P5qr/ucQ7h/N/uaKqco+db3xSVvU/V3d3l9X2njtg559Kna+vrKrwG2a766v+Ej6VOvhP1Qs3ecf56tWPVL0W3N+eyqoXfjnIO4dv3Fm1LnBpjak9Nj10mTf//DurVgVPJfB9XvtMfRvqP1Xr7rRtkeAcfJVPXu21y/m/rHohsELseRpUddf6WrQJAAAAAAAA0Agd9AykYObR73//e+Xm5rrjB9q/vvhUf33nFc0tK3YHM27mAU1d2bPz3DJnHa6fqdsGZnkzrdanXa7777tcLZ3xFY8s02ZvtmOnls6b5U4PvvNuXdnVrGG1y9Vts29VL+3WinseU1k062OnVix81M28cLc5rbU328oaeKvuv7WnM1auuU+9FMvQ+OcyPWiqAba/XvfelKusQ73Zrtan6crf3KcrWznjKx/VX7Z4s1M7gOefSl2vL7JF600Wzhm91Dl8KrW386966g/mjC/U9BmXq3twf4dmacBNv9Nt7qXN01Mv+VfWiNpjb6mKf+1upJ/NnKJ+wVNxvs+pv7jcGdmtpxb+tV6lNXevvUeT52xR54G56m7nVbP3dRXds9I5mjmXWzUg8EjFnqctum/es04LAgAAAAAAAE3XQQ0gxQePRo4c6Y4fSCZIdFvJ73Tekz/UDS9O15zXit3BjJt5Zll9A0l+nzmjHo9IO19X0c150b5EelzwE90X7TNjtzabPjX8PkHOHKxrClZWK8sUv7+nCn4S7dfma/3ykvQhUkMfSBUvhfvGsf2bFK0Nv4pdX+As62dLO62cqj7J9lcL7j6d/eSvda5+49PKv8bvq+ZMXZCsj5VEfSBVBPos2RvR6jkTdWm/0931krdJQHwbOG3/g5/N0+q0+zNK3AdS8Pq8Y4S/+xr74rHf7VB7HXXrdyai7dtbq/Ox0uBzTrPzwlp+7TT1MyMbymMvvHeu0YolZuRy5V2YIHrRKVd55zif5Y9pxT+9WdIWbd92mrJa5Sr3rMQRj87de3kj70Six4psK1frTs76Q85R92Awwdequ07rY0ZeV/nH7pzUDuD5p1Ln6yvfrNXm8/+1Vwd3Rj1s2a7Np2WpZW6u+jn3QjWHdtLpZ3mj2z/wr6wRtUfkE+3udZo6n3aZBpxh5wW0/LINEG6r1CfeWO3tWqn8kfO0udM4TZ9yobLt7Gr+uVLFbmDvKg1OdC7fuFBXmpElK7Q63UYBAAAAAAAAGqGDFkBqDMGjjTu26QfLbtTircl7uzDLzDpm3fra/X/zNKrfxZryhy06xvTH0q6ldm55VndfOUDXLSnX+oKLdcG187Ra7dXdvOz9eIuWzhmtC8Y+nfBX9bv/71FdM+BiXTfnr/rkRNMfSJZUUer2IfKNi+cFMiuS2722QBf0u9LtG2d7S9MPiTOcuNvt32RK3gBd6pxrVFvvGO6r2lZZ3rpnhDNa6mr332fp0ksmau6yiLLNftvt1mbbx8qox2vT+c0WFV07WD8oeFplbl8/ndTStkmfwQVav8uuFrB9ydRoG0T7B2pZrtULC/SDfoM1xflu6mvn8/do6PnmGPa779Ta/e5NXzzf+Hn1TIXdG5z2cO6V6+Y8q7KdrUPfS+36ncnS4Pyn9Ny6TZra286K9+luVdrRqC1lWmo+zzlNnQPJOzHt1cV9ee7ct6/7d2dPjX7qKZW8NlfD29lZcXb/u/pZZw3J1+Ln1mnrFJPNkshO7f7QjqbrAJ5/KnW9vu3/LHW/437dO2jni7PiAsvO/V2b4ETPq7R48Wr93/zLnDsikd36pFqcvBG1h8kae9i5jxePS5gZtLnMC2O3PPe0Ogbbdmrpz8fr4V09ddvs69XrKDs7gYjzvWw3I2d1Umd3TpxDO5v4pONprd/ozgEAAAAAAACapIMSQGosmUc3vDhD731a7dV5NWYds259M5FWz5+n1efcqsX/u07PPfWUFq9+Tc/dZF6i7tZTkwbrvx/toNsWr9OrzznLzMveFbdqgFm6/MGEpbtWz5+lFb3M/l5TyWJ/m3wNaOVs83qB5i5L9Ya5XEV3znODJqP/sE7/t9rZhzmv55xz+MNV6uyc1/qbZ+opmwXQa4yz7MHrvWyVPtfr92bdp66SzUGol4cL79HmuLYpmXu5ew4rJl2t+163K6aycp7uXpKlK+c6beFez1K9+r9P6baBLaUt8/Tf8cGa12dp1PjH3DYw22xdt9RrA3P8h8epV6stKho/UQ+nXTotsaI5s7T7srkq2WSvL9rG0s7H79TDwev7+FlN/v49Wr+rpQbc+pRefXV17HtZnK/hnZzv5dd5yl9Z+5f3iZQtmacy57PlD/8r+nJ+53vb3eCFjj9Gx7hzquvQ2Ss3uWJzugG2nVr6+KPuWK+B5yQJZCSwYZke3OB8trpcuQkyPhJpVOefSpLr2775Jfez8tGJ+saVs7SuZXs3INraDSxP1NB+o/Xwxoa5B8w9V/wHM9JTuWele2UHtj0S2lWu1YVX6tLbSp31c3XbVed4Ae5a2v74z3Td07s1IH+mruxkZyZRWeEVeuxwXLI7K0tdunpjm7clCv0DAAAAAAAATcMBDyA1huCRMXP979MKHg09NVd/GHSXu67Zpn6q9z/S+TtXuEEi7dqtAfH9jJxykfK+Y0Ze1/p/JgoGJejP5JTLNPVGr1TZ0n+minpEVO5WgctVbp9wiarW51yvqT9oqazTyrV5SwO9pK5Jq8t1/2/C1xLrY2WL7v6T6XMkPb1u/V24r59Avyq7n/6d/hxtlp1a+sA9bj85A/IfrNY/UNa512v2L02QoVT5j9aij5dEEvT34rWxGSt3vt/Yi+ayBXfqqV1Sh1Fzdf8PT1Pr4DanXabb7rxKHZyzebjwMS8Toh5MBtp195gASk9NvTz28n33rn95IydmKXxn1J15ST/ZlJVzvuvxw9p7M1PZ5bT9xHvc6+x14+Xql2Z0oNGcfypJr2+LNr/ijW3e3Uv3m4CmCRKbgOgbS3Xv9zq5JdduvfoerU6QVVcre8tVNOnnbsZWyx+M0/BTvNmpHNj2iOOXrDx9gH5wz0va2cn5+7F0robX5TTKH9Otv1wpDczXbZel3sHuT7yAY+esBguZAQAAAAAAAI3SAQ0gBYNHhhlv0aJF2kNDMZlEi7ettFPJmeDRrWePd8ePPvwod5t6ZSEl6n8kq70tg5Son5HWyj7RG9u5K0H4YuDghP2ZHNPa671jd8qIR0u1dt+XPqq7f7tSmyPBDVpqwO3eS+uf9a7Lb/prp8NPLnMzp+J1HuTMNyN/WKN1aZTkk76j0cMSpBC0ytXFl5vreF3LXrEZJ7vX66Wnzch3lDck8YvjrP+6yMsCe2yNm6VTVy2HJervpaWOaWvbNnptW7RuqTm/9sq7JHE2Rcveg3SxaavSv2p9PRIcTJm8/zZ9vpjvekbqzIv6MGUCR00yQcBOGv3QlITfdTW7Xtd9I6/Q3C3ONQ/M172X78cTTKFO559KTde3e6ciOk1Zx+aq4Pe3akCwhFzLTrr4zt/pNhNbLZ+nuxemm0GVwN5yLf351Zqy3Hn2O12lP/48N+E9F++At0e8j3bqk9NMCU3TR5MzveVRXXPxlZq7oZZh3r1b9PC1pl+3XN1262XqkKhPJgAAAAAAAKCZOmh9IB1M6ypThwL84JHp+2jsC7dGA0fpbJtU184NV+bJ6NQ+4f6yOqT7ov00Db/xQrXWbq0vHK0Lzj5dX+t3sa65+VE9taFcu9MK2DSMAd2SnHO7zjbAtkXb0wmWnNFLnZOknHTofI77udovK1VernXuyF919xUXa+jFCYarf+ets+t1bapwV66Tfh0SB6g6dPDOKWr3dm0x5bsU0cOTEpyPO/xSRe7KK1X2ljtSa5GVBbo0UCbv/u/VJXUjHbu1+Q8/0VC/TOD8RzQ1nYBkZKXy8/J099rdajnwVi3+zcF6uV/H808l1fW17KmfPfWUStYlyao5tJO+9X2vBN/6laUJ+0hLaZcJnjjP++NbnL8ll2v+H6eoV8pA0EFqj3inXaUn3Iwsp41eXa0/TOiplh+/pPzvj9dTaT+nzt+93/5Et5a21MUz7q5b9hIAAAAAAACQwQ5oAMmUqzNl63xmvKqqKu2hoWz8eJv7+eXDW7nl6UywKChZ8Mjwt80UWd/5nf6+eKZGD+rklvraXfG6lv7hNl138QB9rUc/jZpTqp0HIJDU8ssN8BLaOK5l0j5vqvm43GYV7dTmDa+rLOGwxVl6AH0csWXpdivyeqLz8YZIncuWeQGA80fNU9mu1ho8Y6nm/7BTtayT1sfbt+mffuJsUbOWyb66vRGtuCNPQ29+VjtbnabxfyjWbbmpQ6i7Nz6qawaP1tzXd6v1kHw9N/tydY4LbKwv6KKOpoRZ/DDqMTeYcuDOP6KiUQnOwwwFbn3IatK5vnRknWqDrnv/433WhhuwuVi3LtmplqeN0x+euFUDUn01jbU9Ds1Sv+sf1PQhzviulbp7oe1QzC9zl2DIX+scd+09mly4RS1/cJ+zbfqFDluf6JUIrfw0jb8MZDQBAAAAAACgCTvgGUjBIJIpYWfK2h0s//5ilzZ+vNUNFvlBpJqCR5mq9Wnf0dT7l+rVTa/pb0/NVcGE76hXu5bSrohWFOTpRwvqUSIrXV/Yz/raLaX9Or1Va3VwP8fpiTc3aWuNw1wND5YR219aHWP77MnVvS8nOo/wMLW3u3J6TLmySRfrgmgAYEXSzKOWx7T2gkpvRpSsp7Dtm70ykAmzq0w5su8P0Kj5r2v3sReq4Jmn9LNzUr+kN6XRhg6+TUs/bqnuEx7W3+uYeXSwzj+VWl3f3t3aWVOgsI7PjCldeOmAQMDmqevVL9WlNYb2qFFr9cv1/oZv/7/ytIK+Zc+b8o1Oe/xhtL4WH2TqZ8raOVZOVR933mgV2cwmv0Ro2fZkd1ZEmzZ6Y507pA6YAgAAAAAAAI3VQSlhd7CDSF2PPdWOSbeV/E6Lt65wg0a39vlJyuBRcNuMc2hLdTgjV8Ovn6knVr+mv91uS2Qtf6luJbJqYfXGLXYsTsVm9yWvWp2mLukEcF56XZuTpJxs3/yS+zngqzZg0L6zepnPepana1Ct26uze3ov1bk8XUJ7y1U0drAtV3aZ7k0VAOjUXYPNZ9L23KLX3OZsr16nxb0k3/mS8i++2CtH1vt6PbHidxp+il1Wg+0LRusCWxpt+G+WavH156h1kmBCrymJA2pb51/mlXU8YOefpeHzE5yHGaaYTopianN9O5dMVMcup6vH6MdsRlp1mzd693PLWpTG3PlSgYZe7JUu7HVjcXoBm0bQHpFlt2no0H762s2m36XE/rPHLsk62gvCtrtM8xOdhzO4gde2Xh9KCQfnnnADkK2y7LwsHWPPLeurPb3A8ytbvL9N8XaX6XU3Nvkd9erqzgEAAAAAAACapIPWB9LBDCKdmd3djnn8INLQjgNSZh7Fb9uklc7T0IsHq8f4pxP+Yr/DV9PtS6n+yha9pM0JSuVtXvaYmwnQ8rK+Sq/lH9PKlxK8Yt61Uk89aub3VG4v+7q9dV8NMGWvtFLFyxIHsHavLdA3T++noXmztD7Zm+sGdZoGXGYiSLv18FNJXpa7pbnO1AUXT9RT6SSH2eDRlOW7bbmyfF2cKqATbZtHVfxsgrtjy0t6yvTV1P4yDfiqN8u1q1T5l16puU5zutktfxqnXmkkqmx/fLQumOpcry2NVvCdBFlBtXGAzz+V2l5f6+69vODmS879n+jW3PWSiueZUm0tNfxcr6RaKuZevvQHJuvGK134xDU9kwZsohpJe2R1dv4WvR7R7j88pqUf25lBe7doxWNeQG1wj/T+UvQa4/WhlHB48Hr1Myv1uV6/d+fla7AfpftqrvLM6W6Yp6Vuf2Vhu1/6q9dH2ZABqTO7AAAAAAAAgEbsoAWQjIMVRDr68KOq9Xtkgkhzy4prDB6Zbcy2GeO003Tmli3aueTnum7BFu0OBnBM0OGBR93Rzmd1r57hsHKLNjVk30ilt+maO1YqEthnZLkz7zbTb0qubvvxOdX66Ulstx4eP14Pvx4IGux8XQ9f68zbJXUY8/NA9kRrDb5qnDo7Y+tv+4mmPP56qL+n3Vue1q0/n6ftuyLaPSBXvdI7gXrrftlEDWjlHP8P4/Xf97wUahN9XKr7fnqbVmintp86WAPSiLNEFt2mW5fvljpdpT8Wp1GuzBVrm6U//1m4PStW6taxt2m9Mzrgp5epezQIsVvrH/i5G2xoOTBfi9MtR1bhtPMvTbCsk0Y/VNwgpdEO6PmnUpfrO+Uyjf+BueFK3XNdEcyQ2+ncAyNHa265Oc87Nf7cNG7M3c42zr282XmKBsx4KmnpwrBG1B6dLtL475jrfFaTJz2qsmBM0Hm+i37+E91q/lR0GqfRF+7nqM2hp2n49blOS5br7onh72bn64/qmvGPOtfWXqNHXuhlQgEAAAAAAABNVIsqhx0/aEzgyASQjK1bt+rUU/d/mTgTJPrBshv03qfpFWc78ags/WHQXXUKIEUeH60+k1ZKY4qrlXEyL4jzc/I0V7kqWF29n531BV106RxpwIzVmv89L4xT8/4cawvUMW9e3HL/OFfpiTeneNkNjsiyqfrva0wZKYcp19TJHGO3tm/Y4mYluSWrHhqn7n6n9nud/fRw9rPLWdbuNHXOytVUE5SoY3DFv77uA3O1e/lKbfbPIbJFZRUm/6aTrpz/SLiz/kTXZ7Jy3H5LcjVg4EtasXy3Wnc6TR1aBa5l4K1a/JvqHfRvX/gTDf3Zs14W1rGd1L29czG7ylW2xXtL3XrITGe770Rfnidu/4iKRvXTlJXh7zHR9xfk7yt+ueng/9KRs1Rm+sDx22RvRJtNFoYzy2QSmWBQr7hrqSbwfaUWvjfMfVB2/xW69Nel7jHd9mwZO4fO3/ud5t95YSyoEP0O0pCbrxJbbm59welOG5k9pja6uDb9Ph2Y80+lztdn+h0ameeWjnO+cWWd1knZzn0WvQfin80aRO/ZNETvxUbXHqW6O+8K3fd64vYwpRnv/32+BqcTG0vFv/Zk12X6E/v51V5JSP9cdvt/M7zygH+85jRnDAAAAAAAAGi6DmoGks/PRDLDgQgeGSYQdNe5k93AUCpmHbNuRmUfWVmD8vXEc3M1ddg56t56p8o2vO4M5Wp52oUa/ZunVPKnuBfUh/bUz/40RYM7tdbuCrPuSm1Op4xaCtmDbtUTi/N15WnSZnMOO1ur17Ap+sPqpeHgUUqdNH72Cv3h+guV/ZE5vy3OLHsts6sHj4wOw36nkr897LZBZ23x2sDZrPO539HUh1fr1ftiwaMDxQQHFv/9Kd075sLY9/L6TrX2v5en0ggeGf98SUvTCh4l0lLdrynW3x+eoovP7SRtCZ/DE8Hgi2Pn+pfSCzaEvK7VS9ILJtTegTj/VOpxfaa8259Wa/FvrtLg01pr5+tx90D8s5nUTq37e3rBo6DG1x7O356nVuiJGQnaY0axSpY2UPAoHYe21+A7i8PfTfRvhnOOBI8AAAAAAACQARpFBtLBZDKRZq7/vRZvS/yC1ZStm9jrRxkZPGoMUmXopC2aLRGfRQMAAAAAAAAAAGqr2QeQfCaQtK6yTBs/3uZOdz32VJ2Z3Z3A0X5GAAkAAAAAAAAAgManUZSwawxMoCj3K3005vQ8dzDjBI8AAAAAAAAAAEBzRAAJ9VSq/Jwu6ljroUDr7R4AAAAAAAAAAEDjQgk71FO5lt7zmMrsVPq6K+/6CxWhhB0AAAAAAAAAAI0OASQAAAAAAAAAAACEUMIOAAAAAAAAAAAAIQSQAAAAAAAAAAAAEEIACQAAAAAAAAAAACEtPvroI/pAAgAAAAAAAAAAQFSLKocdBwAAAAAAAAAAAChhBwAAAAAAAAAAgDACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACGlR5bDjjcguLZzxL42vtJOuw7ToruN0pp3abyo/1ugZn2tJ9hEqnXSssu3spuSN2ddo+lo7EWfguPt1RS870Zitn6ORJWfpobE97YyGEVl8mx7Qj3XT0HZ2TlNQqkeunqPldsro/N1bG/4aTJvPKrUTPTX5jg564qZF2tzuIv36jm8pyy4BAAAAAAAAAGS+xpeBZAI4N8QHj4w9uuiGSi2sNh+1sXzWbVpeYScaq1Ago+GY4NGNf27sFx+n4i+6Iy54ZGz+820aObth2+iNErO/drrijvv10INj1K3dt3TTg844wSMAAAAAAAAAaHYaWQZSIPOox5F654rW3mzt1G9v+EzTzWh0vj/vME3usUfTX/WXKbauNXnkCfrp6WYsts19g/Zq/DJ76cFjBTOQhuxTz4f2uLOHDDpacy9o5Y43dn4GUny2kR9A8bNXqq9nM12iGSd+5ktPXfHd9/SIH3zpPabmzKC4AFA4Wya2z8kmSGFm2fXd9U5aFBc8MuudpbWpzsMEWuKyZfzrNdc3+N244FGTyKqp0PKbbtMjzmmH2jDavibYc6sG2tnhzLPwsth3f5FO+fMiG5Dy14kdJ8q07XcrqrVptJ3tOr9uvyjaxk0isw0AAAAAAAAAkJbGlYFUuVtLTPDIBG+iwSOjtX466QgNqTbfsMEjx+Seh2nhjHDwyJj+0IdaZ8c9e2LBI+PVzzT6uV12wqr8PBo8MpYs+3czzn4qjQVtjLVz9Mh6Ox4vQfZQw2XLVD+POxYHox4ZpqJUL5nLa3eRfhwsV9drjCb3NoG/ZMEjo0KP3HRNte9pczR4ZDjr3PcXRexUak77+8Ejw2n/B9bYcQAAAAAAAABARmlkAaR9WuJ8DOnZsnrfQ9nHam6SPolMhtE7d5kso1YaNskb94ajdZ+7wV69HRf88bd5Z+Rh7vSS0t0Kr9JC99l9Lephpqu0vYkFkJbPukYjr44NXgZOT11ah75zTIbJQw/e7wYujLfeTRS4qdDyJ71Akb++KYU20MxYuyi90nm9xuihcTaryGTB+FlKVnS/dp3Na0rTCoBkDb1Vv/6ud90mm6dJlGV7d7sbrOnct2e1c+02NpDxU/EXPeEGj0y2Vrh9lj8ZFyAy2URm+R0XqbOZrtiuD9ROA++4VVe4zWNL2CXIMIsstsEnfx/Od3NKRQYH8AAAAAAAAACgGWt8fSA5llTEMn/02of6yg3vB4b4bKLD1N8tTxe27hGzbqK+lBzZR2iEv83pR3pBpsp92u7N8WQfrv42WtWhXQtvpKlLEJBJT0/1tsGKbn2qBxaiAhkzg6PlzHpqsBu4qdC773pz6iy4314XeQEPNwCS2TaXv2fHEousLfECTd+9KPbdJmmfaDCqXU+d48XT0vZBuRcsGniJH3zzv1sAAAAAAAAAQKZpXAGk7EM0xHy+tzcuGyhdpg8lEziq1NuDghlIceKDRRkqPmtIa1/RG3Y0oYoKvWVH66RdO51iR2sj8m7NAZKoWgaL/IBHk3VSBy9LyLmO+CwrU7LOL9+XddKJ7icAAAAAAAAAAA2lkQWQWmqImw30uXo+stObd/pxthzdkZrszUku2oeSnz20J0nZuT1a9Zodfe0zL0sp+xB18OZknG5j/fJkpZqeoC8ivxydn8lSdyfqJDfrZZGWRvveKdVSt3ReO510kjfH8568w1boH2vSDfSUaq2/3/WL9Ii72w463pvjiQaZnHVDfQI1QX6WkNOeDwT7elo/x+3vyPQt5fZxZANNpn+jaIAwWfvUw/HtvWyjWFk8/7sFAAAAAAAAAGSaRlbCrpWGjTzCy0J69bNA2TozfKbpZn6Pw3Wm+ayJCUAFt0lg+kN2vw955fIS9ruUMdpp4Hjb583aOV7QweEHBEwgItZHUn04x7nE9r0T7X9pjtdvTu+LNNA9nA0yqUKP3GSW3+YFOhJxztUsD/adFN3vLC8QFivJ5mc/lWp68LgJeNc7p+ZsrEYh1p7+dxS8dlOS0O0Hqd23dKmbZeZfe2ydWLm5+ssa6nyHZqRikW60bfyW0+4AAAAAAAAAgMzT+PpAyj5WcxOWnjtMi0wm0hWt7XQCzra/GhTor6jHkXpn5GHOSJWWvLrLm+c6TPfFrTf3glZ2IkO1+5Z+bPurWT7LC55kDf2xzUzyDBw3xgsQ1EevMXpoXLifpM7fvVUPjfXnBYJZrp6aHLd+tP+eanrqimCfO73H6Kah/rSzLLifdhdpclz/PNEASFNi2vPB6t9LuE1NllmgVKGrna64434vwNRgnDa+I/bdmXP4cV87AQAAAAAAAADIKC2qHHa8Gdip37pZSSYYdVzqTCY0EqV6xM0o6qnJD45RNzsXB9j6OTazKfY9mL6YTDk9099WwwarAAAAAAAAAAAHU+PLQALQONm+loKl8kzwyASUehM8AgAAAAAAAICMQgAJQHrafUs3xZcbdEvlkRUGAAAAAAAAAJmmmZWwAwAAAAAAAAAAQCpkIAEAAAAAAAAAACCEABIAAAAAAAAAAABCCCABAAAAAAAAAAAghAASAAAAAAAAAAAAQlpUOez4QXH3sn9r5nOf2qnGaeIFR+lng75spwAAAAAAAAAAADLbQc1AagrBI8OcozlXAAAAAAAAAACA5uCgBZCaSvDIRxAJAAAAAAAAAAA0Fy0qKioOagk7AAAAAAAAAAAANC4ttm3bVtW2bVs7CQAAMkEkElFOTo6dAgAAAAAAAGrnoPaBBAAAAAAAAAAAgMaHABIAAAAAAAAAAABCCCABAAAAAAAAAAAghAASAAAAAAAAAAAAQgggAQAAAAAAAAAAIIQAEgAAAAAAAAAAAEIIIAEAAAAAAAAAACCEABIAAAAAAAAAAABCCCABAAAAAAAAAAAghAASAAAAAAAAAAAAQgggAQAAAAAAAAAAIGS/BJCqqqoSDgAAAAAAAAAAAGj8GiyA5AeJ9u3b5w579+4NDf58gkkAAAAAAAAAAACNW4MEkPzAkQkUtWjRQkcccYRatWqlL3/5y+5gxs08s8wPJhFEAgAAAAAAAAAAaJzqFUAKBo4OOeQQHXnkke5w+OGHu9M+M27m+cvNNIEkAAAAAAAAAACAxqnOASQT+DGDCQSZ7CITGDr00EPt0uTMOmZds43Z1t8PAAAAAAAAAAAAGocW27Ztq2rbtq2dTJ+feWQCQS1btrRza+e1117T6tWr3YwkU94uGbP86KOPVvv27dW1a1e3JB4AAEguEokoJyfHTgEAAAAAAAC1U6cMJJMxZAJIJrBT1+CRcfrpp6tz584ps5DMsT755BOVlZXpqaee0ubNm+2S+vpAS244Q2ecERvmvGoXGa/OcebNUXBWfb36gHOcB7w9BsdD5xKdl67q13H9Xz6wyxrY+0t0/RnXa8n7dhoAAAAAAAAAAGScWgeQ/OCRyT5Kp2RdKr179472hVRTEMln1n355ZcbIIhkgi4DNLnLo9qwYYMdHpUujwsiHSivPqnJyyboUXMeP+5hZ6bjVc05o/p1dJs0oA6BKAAAAAAAAAAAgHpkIO3Zs0df+tKX7Jy6a926tZuFVFuvvPKKdu3aZafq4h2VL5Mm9A0Ga3rokhnnq3CNDbz0GKMNG8Y4c/ePHj+OCxYNaq+v2NF0vfrA5SocNF0rQkGnHhrz6ATpvpcbNHsKANC8vb29XAW/vsf59/czOyc5s45Z12wDAAAAAACApqdOGUgm+8gEkBrKqaee6mYW1YZZf+PGjXaqLr6i9oMUCxZZx3/rnlhQJ1DCzis3tyRQKs7MN9k/wWlP4nWri5awM8e5vFBaNlkDzrhev/t1XAk6s/yGJapelO5VvXyfNOGKITrezokKBb+8EndzHjDXY4/pcI8fPf9AWTp73Uv+cn10ebWsrPV2X2Yg0wkAmoU/LijW//1zowp+PbPGIJIXPJrprmu2AQAAjdFGLRwxQgs32clGqR7nuGmhRoxY6OyhHj5apZkjZmrVR854Q+yvHjY+OcI5vh2e3B9n4bV19Bj3rtIOuyTEtEPcsh2rZsa2c4bw9xXe78xVcXt129VfnqR90zhmaNvQPs1gv8OQHVp1b/Bcvenwdsm2BQCg+ahVAMkvM2eCN0cddZSdW3/Z2dnRfZshXeXl9flV8/EacuN0nX/f5dFASMp+g+57TrrRlIhboemDCnX5GS/rbFsyboIK9VBw+/smq/wKr6Tco+OddRMGgCwT7DEZQ85eHt1wj35y4QQ9v7wkuv6rawp1/sA+1YNE77+jN3S+2rez0ykUbmqvFX6JvFfn6PJN071p9xyf1+Q/BwNBhZr89kh3mTm3wsuD/R456759trfsea8ND0rZPwDAAfXTn1yjDh3a20ykxEEkP3hk1jHrmm0AAEDT4wYs9kugArVlgiW3vD1Bsxcs0IIF0zS8+JbqgZh6McGTW7R1wmxn/+YYs913HGPjv38TmLm5yE5YzryxhR01zd3OGW4frqKb/aBL3H5nTZAKx8aCNiZA5+xv+O3etrMnbNUt8YGrRMd0VL5foj7R8zXDMHW1y3ZUbpXypgWWTVT/tnahy5zXWBWusZOuNup/nb++N0zLc2bnDY3bFgCA5qVOGUhmaMgA0pe//OVaZyAZ//rXv+xYHZ0wRPfYAMqKGefredNvUKJsG9/4kRpyghk5Xl/pYqbPthk+XjZTyKDpusQmMvX47nSdv+w5lUQDMCn0OFsTouubLKPzdUGvauGjhMJZReFrCQWhTNDqLj9z6QO9U+0XXedr+nf9C7hE0wc9r+fW+yGtwLITvqJu3hgAIMO1anWkfn7jxKRBpPjgkVnXbAMAAHDAdRmmYFCh3hp6f7VggiU6OUtt3Kmu6p4nlbxf6U41DC94MrG/dwQz3f2sPtLbkWgwxw0o3rxVw/Oc+UHx7dKlu4arRJUfmom4/bbtrrP7Slsrvb3ueONlleRN0zDzfsXRpv9ELbiuv73OGo7pnFXkbaljtr9mmBtcOiHbTsVxs8rGqvDk4c551mDTQt1SPFzTLjkY3zgAAI1HnfpAqkuwpya1zTzaH9zSdTaQVHh54pJztdLlK7FgTa2DLD109ngbsDFZRoMucP7jxy4Kcvf7vMor7LTD7VfJDYqZrKgavL9E10cDTb/Sc3Z2TDd9JXpMGzADADR7yYJIBI8AADhwkpUz87KGFgZKhsWV3wqW9nqyzM6szs14MVVoi2+J7d998Z5kvwmESowFskoa6hwNb1+rAqXH4suYedM1rmekc22B/fnjCwPfQzgjKFy2raYSfObcZjrt4R7ftJPZ973Ovt1z9c4l+4RgMGejypzvZvgZscCGe33usZz1VwXO08208Zc5Q30yys4wGT0TNSDRu4l0fVSml9f00dndTOBnh8peqSHQYyQ9ZqUqnf1kH2cnQ2oOLklZGjprgRZc0t1OJ+K02zNF6jNhwEEJGAIA0JjUKYBk/Pvf/7Zj9VfXfR199NF2rA6S9Ct0/EkNlE+z6Z3Yvt1Sc7XTo69Xxu7V9c9JicrXuUygSSp8pIbyeEm8+ufJen78ozbYdI9GVgsQvaF3ohlTiTKUAADNVaIgEsEjAAAOjHA5s9ma8HZcObPirco2L8jdElwlKnzYD95s1MJgubATtqp6YTCPyQTxyndN0wI3A8PZdlyhOkZLjTn//9BxcUGYoE3hsmbTTo4rh9YA5xhVXKjKb/v7KqpeAs2XdL3wtS24vWPN1xZVpK0n2BJqtw9XSeF8G3iqXrZta7SkW2IlxdJQs66ffbPGuWr3XL3Sa25mzrcrNdYNBC12287P2vGCfcNtW4+SXom12I5V81V4sl/KzbtX0utPaqNWFJaoz1ndo9lAXbukF0rZsWqx0zLD1T30jsEGspx2LokrCdcxuzIQbAu3e9JjfhTRVjn3zTh/u2CQzgSXnG/n5tiy0PPRtqu6pipJt2mFCtcM19BoRhYAAM1XnQJIhxxyiHbu3Gmn6u+9995TixYt7FT62rdvb8fqwC0TN1kDHgjmGn2gJY8UBkrT1UOgZJ0brEmWRZSMPb/LJz2vbiclDh8ZPX78aOLruOFyOVdSMz/I9f4SPXSfOycgULLu1Sc1eVn6ZfQAAJkvPohE8AgAgAPBy9oY/m2/zFcb9f/2cJW8UhYLmgRe0LuZK75NZaEX+236D625hFdQwm2LVJYkGLFxQzh7o2vuBPUpLosFBxryHPtO0AC7vnucNS+rLFGwJtl65piBZeoyQBP6Jr+2mECA4bhsRa/CzbIJLGvbX0PzSvTyGwnDWp687nGZLuEAjJth9Ey2DRqOkh72gyI2iyfa1t79EFK82AavvHJyfuApOS8AZtpkVG0DKG7g0Lk/b48v9ecd2w9iBTOhim4uU3f3ulIEAIM+rJRz1Zpgg5Chfpfc4JLTgn5AML7fpTSY+7f6dwIAQPNU6wCSCfSYoSFLzm3dutUNStWGWb9r1/r8c95DYzas0PRNlwf6DBqg5wau0IYf1zt8JI3vpvLzvf1eft8EPRrtbyhdXnaRNEFn13g65jo26FGFr2OypmuFM39Mkm29fpkma4BZ/9fSyBnnO/+xF8iaco7b7W2vT6gzLi/UhEfvsf0/AQAQE/z5R+1/CgIAAGqnenbFiJuLpDXOfLtGMjsqt0p9sxUrGOaM9/XGQuXm4su7OapvG1N9W6+EWEnh2Nh8k3mirYrUkIVj1Okco30DOdpmqaMdrSbJeu4x1xTa7B4zjFWh08Z+Pz215gY3inRLdH8j3HKAbp9FoVJ5NZe2i7El6+KDhoUrqn1P8Uzmkpct5h/TD7IkOw8TPHKuXxM0O9AXUVpM6T2bPZY8SGUDXIFgYrVAY7IAYJDb75KXneVNm6CfDdK17a+JCwLn4AbwnGdmQ6rW8nn3b7BEIAAAzVmtojZ+8MgEb8znp59+apfU3Y4dO7Rx48bovs2QjrPOOkutWrWyU3V1vIbc5fcZ5A33fCsQ5ukxxpk3xs1GcvsWCgSWwtPefkLb6mw3sOPt19uHEdwutI/AsXxfOfn8tLOhYn0f2SEUsEpwficM0T2BdXuYPqDiglxnB/YZDUS52wWDSV4AK1mgCgCQmeL7PAqWszPLAADA/uAFVKLZFdEhPuOjujbZHeMCTV4wynBLpNWwr+rbxlTfto2yTjaBAVvCLToEXvgnUadzjPYN5LDZJwklWc89Zl+/JGBsmFjX8mVuNpJfUi4wmFKANrjhz0udDVR/wXaLlgtMeB42eGRK3tUpeLTVzQhKdU2xIKF3n1TXUVmpSswlkbzfI+d+rKmvpSDbT1Pi/pUAAGh+6pSBdOihh6ply5b6+OOP7dy6+/vf/+7uL90MJLPe2Wefrc6dO9s5meoDlSx/XhP6EpkBADQu8cEjU7Yuvk8kgkgAAOwPbdT9rD4qeiZW5sstb5ZO2a8u3WXKzi32+4Nxy8WlyW7rl3VL3M9NTNczwhkyXvZQGv0K1eUcAxkrG1cWqqTv2eqeKACRbD1zzDWFWuFn4djsnNqUPAtp211n9w1cg3PVpo+fUD88tdJV3U0GTfQ736FVz/gl1uKzkewyy703AuXi3HKBwUysgI1P2swjt8+rWjDt5WYeJQoQmqBU8NrDfSvF3yfu95JG6Tj3fgrc825fT2vs/WiCWcF7zZm+pbiPzu6WZkjMZJAlu4cAAGiGah1AMkwQ6fDDD3c/Tf9FdbVmzRq3fN1hhx1m5yRmgkbHHHOMunfvrosvvjjzg0fvL9H1pgxdl0fJ7AEANCqJgkemz6P4PpEIIgEAsH+YjJJpJ8dKrt1SPFzT0soY6aphtj8Yt3TZM9JwWx4uEfNyX8W32Bf13rZbbem8sYXShFk1ZD11GabZE7ZGy7ilXD+qdufoyuuoSluirca2SLpe+NpMuT1NmF2P7CDT3880dYyW8LtFRXnT6p7R5Oh6yWxNkP+d2ywhP9ATauuxqjw51geSu53pc8hdZr6HjpqWMEDklckLl/IzQ+qg3443XlaJ8xkqq+gMXtAoRVuYUnS3K3qf3PJ2egEs8wzMPuvl6LmG7q+4fXpl9VJnv/ncDCkAABDVYtu2bVVt29bupxWm/6O9e/fqiy++cEvQmWBS+/bt7dL0lJeXu9u3adPG3d5kIaVbvg4AANQsEokoJyfHTjWMZMGjILPOnc462511TnbWmZJgHQAAgIZgMmxuUSCYkkS662UEt5ycNC2NsoYAAACp1DkDyWQFmcwhkxn0+eef64033kirTySzjlnXbGO2Nfvw+1QCAACN129/d3+NwSMjPhPJbAMAAAAAAICmp04BJMMEfEzWkMkeOvbYY/XlL39Z//d//6d//OMfeuedd7Rr1y43U8kMZtzMM8vMOmZdsw2ZRwAANB3/PSJPX/tql6TBI58fRDLrmm0AAAAAAADQ9NSphJ3PDxDt27cvWtLOBItMltG///1vd9owgSITNDrqqKPUqlWraODIzzwigAQAQMPaHyXsAAAAAAAA0HzUK4Dk84NI5tMEkoLjhp9lZAJGwXECRwAA7B8EkAAAAAAAAFAfdS5hFxQMDpnsoiOOOMIdjjzySHfwp+MzjwAAAAAAAAAAAND4NEgAyTABIT+Q5AeTgoM/318PAAAAAAAAAAAAjVODBZCC/CBR/AAAAAAAAAAAAIDGb78EkAAAAAAAAAAAANB0EUACAAAAAAAAAABACAEkAAAAAAAAAAAAhLTYtm1bVdu2be0kDpYdO3Zo165d2rdvn50DND6HHHKIWrVqpTZt2tg5ABqrSCSinJwcOwUAAAAAAADUDgGkRsAEjw499FBlZ2frsMMOs3OB5N77NGLHDo49H/2HIBLQyBFAAgAAAAAAQH1Qwq4RMJlHBI/QlJh7FgAAAAAAAACQuQggNQKmbB3BIzQllFoEAAAAAAAAgMxGAAkAAAAAAAAAAAAhBJAAAAAAAAAAAAAQQgAJAAAAAAAAAAAAIQSQgGbi0z279HLFP/SnjYvdwYybeQAAAAAAAAAAxGuxbdu2qrZt29pJHAzl5eXq1q2bnQJSe+/TiB1LzQSJHix7XMu3v2TnhA3scI6u7v49HXVYKzsntR1vf6D27dvbKQCNUSQSUU5Ojp0CAAAAAAAAaocMJCCDbd1Zrmv/lp80eGSYZWYdsy4AAAAAAAAAAAYBJCBDmcyjX62drcpdH9o5yZl1zLqUtAMAAAAAAAAAGASQgAz14GuPpRU8Gti+r37zzV+465ptAAAAAAAAAAAggARkIJNJtLx8jZ1KzgSPrv36D91x0weS2YYsJAAAAAAAAAAAAaQmp1T5OV2Uv9ZOWpHHR6tjgvmprC/ooo4FpdXG66sh91VfjelcDpQNH2yyY8n5wSPT99HU1fdEA0fpbAsAAAAAAAAAyGwEkDLB2gL1mSQVrN6kqb3tvKQSB6CQWUxQyDjqsCPd8nQmWBSULHhk+NsCAAAAAAAAAJovAkhNXcVjGpU3T6OL52p4OzuvFnpN2aStU3raKWSaT/d8pjc/2e4Gi/wgUk3BIwAAAAAAAAAADAJITVqp8vtNlWasrp55tLbALWnnD6MejzgzIyoalae5ztjcPC8LqXp5t83OOv52BVpv5zY097jR8xutogq7wD3vwHFNgMxfbpflB7b1rsvnZVf5y8JZVsHrChwvQ3Vs3d6OSb959WEt3/6SGzS6tseVKYNHwW0BAAAAAAAAAM0TAaQmywaDxhRr/vey7DxfqfLztrgl7ba+6QzFV2nFpHlarywNn1+s0c4ao4uTlLubM1VbxnnbPTFmni4d9ZhzpAa2tkCXbsxXiTk39zgrNeWhdPsomqfNnVcHrmuqDQZ57bF5hl22Ol+b8wKBojnPSvmB403dD9fViJxxfBc75vGDSAM7nJMy8yh+WwAAAAAAAABA80MAqYmam9dPU5SrAXPyEvRn1FNT34yVtIts2+KNpCM3X6NtYKnXyHwNWPmsXmjobJ3eU7R1/mXywl4RbdrojqTpKo33A2btO2mANyZVrNSylbkadK5d1u4yzQ+0gcaMi4536JzrjWSwow5rVa3fIxNE+tPGxTUGj8w2ZlsAAAAAAAAAQPNGAKmpys1Xyfy5mj4jV3ODmTYuk40TK+U2eYmdnY6unW1gx9Guszrb0RC3rFxs/9UDWCmEtp+qZXZ2vZRv0Qp1Upc69AOVqa4+/TJlt2prpzx/2vhM0uCRWddsAwAAAAAAAAAAAaQmavQ4L4Mn63tzq5dkWztPU1ZepSdsibj54zrZBbVUsVmb7WiIm93j7dsMCUvh1WD9Q1O1Ykyx3X6uxne1C+rDzUbaok0Z3rdRbZhMol/0vqZaECkRs45Zl+wjAAAAAAAAAIBBACkD9JpSrNErp6pPQbAfIT+YElHRrHnunLTMmRXNZnIDPbkX6rz9kdWzcbMX8Kp4TPfNced43EDQPC21WU2RF5/VCm+0Zu1yNSh3pZa96IfRSpVfl+yoDNOxdXv95pu/qFbOLsgsM+uYdQEAAAAAAAAAMAggZYSemlp8lTQnTx1NEKn3VSrIXakp/bwScRqXH8jO6anBY0wfSl006vFozlLMmAulqV55uUvnXKUnon0V1YE5n2ipOjN4pfa8vpWmqo+Z55ze+Bm5sYBSu8s03p6f2WayLtRod2epZGn4/GJ1ntTPHitPm2esrnV2VCYyWUXXfv2H+tPgu532GKvvdx3qDmbczDPLyDwCAAAAAAAAAAS12LZtW1XbtqlLXGH/KS8vV7du3ewUkNp7nyYI/h1AO97+QO3bk7EENGaRSEQ5OTl2qjHYqd/e8JmmZx+h0knHKtvOPSBe+1BfKT1c71zR2s5wmHkPSYvuOk5nujPs+bnjVl3PNdHxGkDlc5X6hb6suRc09qB/hZbfdJseqZAGjrtfV/Sys12leuTqOVqudrrijov07k1mvKcmPzhG+/+/hPxj+8eLn64vs79X1Nvu643Z12j62kRt0Fz57V1d7dvI3GMPSONv1cA0MuUji2/TjX+uUOfv3qqbhrbLoO8m3WctRTtV/EV33LRIm9tdpF/f8a26/3isGYu/x5CO5H8T6t2O6+do5KzSJvt9+H+jEjqgz2n437WmLfb30gjfG8F70f+b6c9L878R/L+j7kTc3117P7pq8/2Z7UrO0kNje9oZtVSH58D8LXtAP+bvGAAghAwkAACQudxA0R47EbOu1JmXfYg6mInKjzU6PnhkVH6unjdUamGlnU5HkuPVlwke9VxWZacau3b6f329Fw/LS4LldR3rX/Fe0PS+SAPb9dQVD96vhw7ai6mGPH71F6Hdxpp9EzxKx/JZ1+iOxfatXkrhl4DpyBp6q/tdZN4LsXSfNXcO0GRs/vNttfibgP0jeYAvE2wuf8+OOfy/lw2mQu++a0cdb8T/fU5HMOh0gPiBcAAA4hFAAgAAB4HJ+HlfX7nhQy18rtL5NOPO8MhOu9wLmph5o5/72K5rhmBAJ7aPdXaOG8Bxt9kVDua8+llgvV16+z1pSM+WynbGFz70uZaY2T2O1Dt3nWCHo3Wfm3pUpfHL/HOq2/HWPeKd+2+d6xjtbh+3DzeA5cyb8bH8S/Ov/bevhYNHS5b9K7ReY5XVu486m5G1r+gNd47Hf4kysI/5Na15OXWNRl49J7aOeWHizrPDTX/xStwa5te9cfPMyw6z3iPr7YzoPmNDbFm88PH9fcUP/vbVlkfPI/iSrVTT7TbmF+TB7V1x1xd6QRq4vuV222rrVLu+27S8yb3rMb/m9oJr7jDO+2X15j8/ELoWv/28wb9HgsGjCj1yU6x9kn8/sWXJX0g33XZN71lz1HTvxUv5rJnvwbbT4th+vX36y8wQeLYNf7+h9X3B7bwh+bPbhKX6HoJtNLs0rt2NTPgbEC/J34TgC/64e8e0TViwXeLuuybMZBZG28Uf3OwV/3kJXmvgubT3RPjvYvheif4btTjYtv7+Ev+7llHPaeBvZp0CPCnEgvqlWpssmyzZ38Rg8Git+ZsR/F5qav9Uz0H1788/prlX/OCRCeBG//7H/3dZwv0CADIdASQAAHAQ7dH4YGbNq5+5QZOgJcs+D2QHVWn8jEDwpS4qd2tJpXTGia2i4265ulDJuVYaNulITTajr/6ndllISUx3rsMNVLn26KImEAiqs3bf0qVuP4SlesJ/IVLxFz3hvkTpqd6JsnLMi5T4X9tWLNKN1V4UJmNejFT/tfTyWQ3wsmP9nOq/ynXO7YH4l781Cb4QstyXNPHX5+z3kcDLplhgJdH1mSBKE3+Z02uMJrv3SuwX29XLN5VqeiCYUU29vp8m3q7pPGvp3nu15rTTn2P7MPfqHaHsMOd7849hnu9oeSePOQf/5ecbs6tnlS2flQnBkYCU30Opc98F2mjtHD2wxo67MvRvQCoJ7h33pXr0b0J8uzj3Xfy/JRnHzz4s1Vo/gFBRqpfM89Kuj/6fsygYEPAkvleW/znYtoFnNoHMeE7baWDvYNs5//aUm9k9GyZb09+PH6CqqNBbzkfn3j29YL8vxd/E6lL9N07q5yDR9xf/442QRP9dluIeAQBkJgJIAADgoJo80sv6WdTDm97w3i5vxGeCO6GsoD1aFRdkSuj04/TOyMO8cTe7yPZ3VLlPS9RCHcy+3HHHiYcm6Ouotfrbc0pLsuP5ohlONjBV+YVWpRFByr4gW6WDWrjjQwYdrXcOdB9SddTNZj5sXlPqvuSLrC3xXpT0PqvmknG9x4R/bZ127f92GnhHYLsHb9UV7sug9/RuGi+3/DJnZvACGo52F2mweQHfK+6cQr+QN6XwxmigO8f7JX31snUVWv6k98Il9otyu83aRXEvb0zfCWa5f/7hUjjVfq1/0EoANpzj23tv7d5yvyj7a23TT4S9xl9/11lesUhL15vv2G8Xr53csnQ1fj/parrtWvOzVpt7r/ZM3xpmn34QcLPs92a/A5VXhM4p/hyWPxkMDPr3vj+k18dV05D6e4gsdj7NdPTeH6NTKhJ9QZn2N6DUzXCJZjjYF9Z+9twbNsDh32vRv43u3wTnc/0i+1I81i7Rv+FNnCnvGc7+iGWM+NmHfqaL/4x17tvTzVD6xxqzXuBecZ/JQKDZ5/+bG3pma/p3rek/pyf18drO/TfHBt469z1LJ3mL66mDervBPe+/PbzvpZ3O6eMWTY6q8W+i+TfN/z7c78c84yn+GyeN58AvresPwR9vmP8Gcv+tdbjPmsl0a/ct3RRY/6E7LvKCYPbvOgCg+SCABAAADqLD1P90b+zMnjb4EmfyED9g0krDhnjrVAsy1ULle3ul7MPV/4BGYVrovkF+hlNrjXADQlXanrEpSI5eZ3kvnypK9I8K/2VWO13xXftSJF67njrHvLtwy7WEX5TVlleap/ovbdMRy37pqcnxHV2bX+Oac6vtr9ujvwy3ASlXTw12X9bEBYjsr8dNW/n923hivziPvmytKSunqbK/1jYvh2+01+n/it4LMNWgTt9PBrRrTc9abe69Wmunc9xf8seCgN7La8dJHUK/tv+g3PvuYi/E7S/lK7brA+fDC4KZDInY8ozKqknje/DbaOAl/t8df7mvmfwNcJiX6l7Awi//1VOXRvswa+e0kffviPmbEHnXCxR3/u5F0UCaH1TNaNF/M02mSyxg5LWT/8OJwL1i/y7GB9ajZS79vyM1yJjn9KR2OsX5MEH3N2wg55STTnQXNYTj3X1V6KW1pfZ7OVEnxUWnUv1NrEmi/8apzXPglzYMZ/rWxJbGi88EBAA0GwSQmpxS5ed0UcdEw6jHDtz/B6LiMY3KGa2iwH+0AACwP9QmWOQGh2q0S6tKq2IZR9mHaIj5dLarHsvZqVWv2tEkUh/PV7tg0faKQFm/Jqunettft77050Wh0jqJ+b+u9X/1LK+8Uw0vSP0XMB5TvsV7qfLud81+/F/nps+8VPFeqJhfWAd+1W9KT5mXJ39u5/0a1/9lcLraeS+r6svPkor+qtgNsjT9Ml/+93jKSTV/YUkziur5/TT9dq3hWWugey/8rDUk+6LbZpH5v4D3X3w32f5V4vE3oAaBLBk7xLJdTjTv+putWHZKbHCzLl2BMnaLbYAyVYav4TzLdX5nkDHPqf2bWVGiJ2zgLWFp3bqywbjNa+zf43S+l6hkWdP1/28cv9+rpSfF/R1Jxv9Rxk0VGmzuPz8DCQDQ7BBAaqJGF2/S1jfjhvmXhX8lm2HWF3RRx4Ja/uIXANDkLSndbYM7u7RwyR53zO2/KGqv3nZXsMGhGu1xAzmTe9psoOyWGmIiSZWfq+cjO715LudYMz7z+l6qlq1Um+PFTC/1979TC9x+n2wZPV/lPm13R1IHrpqKaGmttaWB0jqpmNI5gZcjblaFt8QV/XWu/8t0K67/h+QvYZII9KMzcFy4JI/fwbb/S23/l77psy9B/ZJLrlItdY/Xrtovk1Pxy9B4L/HMr5xrc6GNTEVcfz3+i/ZACbvokKScYf2/H09Tbtfkz1o97r1kz1od+BlK1V+Ih5+1aClJGwSMdUTf1KX+Hvw2ipX185dXl1F/A2rktE178xksvRYrB2iCzlk2c2TznxfF+oKxyzNdtIydLfMXzSaKBt6qB+fc0mTuOnWXCc+p97xVaLP7CHbQ8e7chuI/76asp/P3uH317KZ0/yZGpfhvnNTPQSybzwuWVXh9P9UgXBbR8e52dxoA0PwQQELdtLtM89+cq+GJ/uMGjdKirct17d9+pYsWX6PvL/2ZfvHSPVpeHuqZFwAaJxPcueF9feWGf2m8G7jxy94dZgMwVRo/I7g8gVc/c5ZXauEbe7UhFLhppWEjj/CykNx1zH6C+2qh+0b6JfTqcLzg8uj+4wJT2YfqDDOtPboouDyBJcv+5Sz/UOvsdKPX66LAL2SDJYgS8LNIooMtz1Itk8IvyVO9M2mX+4v8GpYn4QchjGC/E8Eyev78cMfkQd65VS+9Fyu5VK1cTe+L0uw/wpaQCQzeecTKiDUNgZJKZrAlcWJld/xfhsdK2HlDfJaFLaMU6Mw79feTSIa0a9JnrQ73XrrPWi1EX3QHni13cL8//5f1gSGuH5ymws2aDF6HM3h/D1J/D1lDnU8zHfgb9pbzXcRkyt+A2unm/G0w906sbf1/G/w+6vx7379f61a+tDGq9ry4Q6BsXLtv6dJoFkkwiyZBuUM71D5byP937bWMeU4N/2+SUfOPW6q3Yeg7SMhvf2880fNZ89/EALesr/Pvn1/XLtl/46T9HKR+TrxnbU40WBR99mpbvhcAkDEIIGWciIpGhcvZRR4frY45BVpvl416/LFYGby4snfeugmWrS1wpguUb/ZtStdtCJSwM8uc/RcFts1fazOGAtNRbvk7f1mgDJ4ti5dfEDgHm3FkzuvSOc7InDyykGrp0z273MDRg2WPy/zefWD7vroo5zz964tdeu2Df3orAUAjNmTQEZpsx92AzqTjdKY7Hgj+uA7TopFx/SidfqTuiwaLpJ3//EJLdKhODsxT9rGae9eRgWNY2Ueo9K5sDYuuW/vjBU12riO07SQ/MNVaPw3uxznuIrePpJjsC75U/fyahMBLlFQlXIKdRkcF+yHqqSuCy9tdpMnRMjqOdt/Sj4PTpuNpd/36/zq/29hYWT1zTVfcYbOj3L4njPi+ShJIcH1uR9VJsmqqC3ZqHhOfLdUUmV9gx8oyedkV8aV1YtcZexHvS/391CRT2rWGZ63W916KZ60uTGfs8eWPTJaZew6mfGX1ckzmHGOlzDJAyu/BafdAG5llP+5rJ1yZ+zegRonuHfP3Pfpvg7l/4v4GJOtrLwNF+7mJe+5NllCs1Jynds9U/L9rx2fWc+r3IeXcL/sjABsNUCUr3Vvj30RH6EcBjuNT/TdOqueg+t/1X9vj+xlk0SC21Wboj0PnYP6tdv9tjs8MBwBkvBbbtm2ratu2rZ3EwVBeXq5u3dKtimv6QMrTXDsVZMraTXX/P9smUNRPy4as1vxzV2pUv2c1aLXJFvLmT1mZq4LgdNdibZ3i/MeECQTlSU+8OUXmvwFNAOhSBZfNix3DBHv8/ZZ7ywbMcI73vSw32NNn0srouu5+NuarxC2x552//P0Ej+nuc6pWjLHHtNOdg/vxz6eZe+/T9CtX//Rvv1Jk14e69us/VN92Pezc+tnx9gdq396tJwGgkYpEIsrJybFTTVPlc5XquaxKQwYdrbkXBEvWNS3rHnlfF70qTR55gn7qZk4BABDHZGG6v/A3Zce8PthMnyWmXzbz4jajgmkAAABoMshAaqIS9YHkBY+MLA3Pz5cm9VPHflOlGfnhUnNjxtlpZ71xV0lzlslksq9/3gSBrnKDR0avkfkaYJd5rtLg6DHiXaXx3/N+A5Z1aid32l+3Q+dcb8RYu0xzc/M12t9P76tUkDtPS6MZSrkqGGkDRO06h3+Rg1ozZeu27SxPGTza6qxjStqZbCUAAAAAB9hJHez/3ydWMssEj0xAqUE7+AcAAABqgQBSpmp3mcaPcT5z8zXdBnZ8AzoHMkfad9IAdySiTRulFSbo5JePM9lA2qJNDZieHNm2RVo5VX38Y+SYjChp87b0M2qQvue3r9GprdunDB5NXX2PNny40f0kiAQAAAAcYKakVVyJO7cM1R1eNhIAAABwMBBAylRrC3TpnFwN0FRNfjwcnFmxudyOOcq3aIU7kqUuXeWWoQtnNplSd+4KDcLNTsrNV0noGJvc0ndoeCb76IzjnC82CT945AeN4qcB4GDKviBb79x1QpMuX2ececUJ7nVQvg4AUCPTT9KD9weGDO/fCAAAAI0eAaSMVKp8t7+iuZrvlrKbqqJgFlG0LF1ERbPmSWMGuWXrep1/lVZMmhctWWf6MuqYUxAoYdcAeg/S6JVTNdcvWWf6OcrpovxoCTs0hN/87//oosXXuONPb33BHV++/SV3Oqhj6/b60+C7NbC910PvoqH36zff/IWOOqxpv6wFAAAAAAAAANQPAaQmam6eXwIuOJhgT6nyc/I0d0yx1ydSu8s0fYY0pV8sEDRgjHSfu34/TVG+SqbYUgm9p6hkxhZdavfXZ5JUsHpKtE+khtFTU1fna7N//m4fTasD/TclZwJcmpOnjqMeEwXvamb6PPKDQsa1Pa7UwA7n2Knqtuwsd0vdAQAAAAAAAABgtNi2bVtV27Zt7SQOhvLycnXrdiAqW0dUNKqflg1ZTcm4Ju69T9MLoZlMpNOP61pj8GhNxavKXzs7ZZApaMfbH6h9ewJOQGMWiUSUk5NjpwAAAAAAAIDaIQMJyGBuJlKK4NFv/vdhN/so3eARAAAAAAAAACDzkYHUCJCBhNpKNwMpyGQjvbmzXH3b9VDlZx/pzU+2a6stXXdnv+tr1e8RGUhA49cYMpDuXvZvzXzuUzuF+pp4wVH62aAv2ykAAAAAAID9iwykZiVLw+dvInjUTJlSdkcddqQWvfmClm9/SVXOPFO27rff/EWtgkcAkA6CRw3PtKdpVwAAAAAAgAOBDKRG4MBlICFT1CUDqSGRgQQ0fgczA4ng0f5FJhIAAAAAADgQCCA1AgSQUFsEkACkYgJIRx11lJ0CAAAAAAAAaocAUiNAAAm1RQAJQCqNoQ8kAAAAAAAANF30gQQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSI3AIYccoj179tgpoPEz9ywAAAAAAAAAIHPxFrgRaNWqlSorKwkiockw9ywAAAAAAAAAIHO12LZtW1Xbtm3tJA6WHTt2aNeuXdq3b5+dAzQ+JvPIBI/atGlj5wBorCKRiHJycuwUAAAAAAAAUDsEkNAs/PZ3D2jT5i366U9+rC6dO9m5AJC5CCABAAAAAACgPihhBwAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSAAAAAAAAAAAAAghgAQAAAAAAAAAAIAQAkgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAgTTu06t4RGjFihBZusrMOoo1PNo7zOPg2auGIhc7/AgAAAAAANBwCSGgWyt951/18x34CAJoyL5B1S7GdbM4+WqWZI25RkZ0EAAAAAABoKASQ0Cy0bXusHQMAAAAAAAAAAKm02LZtW1Xbtm3tJJCZfvu7B7Rp8xb99Cc/VpfOnexcAMhckUhEOTk5dqqhmMyfsSpcIw2/fYGGdXHmrJqpsYUlUt8Jmv3tSo292c+F6aMJsyaqv/1PDFNuzs0Yypumabollj1ktruuv9q4E6YUm5dN4+/fCB3juiytqJZxM1zTFgxTVzvlC2437ayXdYsZdyVYf9NCjYieu5Hs/IdreHGRd3znWhZc4uzFZAGNK5S/dyN4/v62fSbM1tD3x0av3UxP7N8mtu/AvJhYm7iC7VXtnB3+OTmC+42/ntg599HwPKmo2Jy9v07cMR3B6wEAAAAAAM0DGUgAAKD+1hQGgkdGiQrHJeiXpzgQPDLMdveu0g47uV84x4gFj4wi3RLsMyhRICbp+dvgkaPPCdkJg0dG0c0zteojO2GVFMaCR0ZJ4XzNjCvFZ9aJ9uuUqDydaa+U/R0lKvFnridRn1ElNnhkdFRWguCRUXQz/U0BAAAAANDcEEACAAANwmSpLFjgDLcPt3OKVFYt6GCyXOLWW/OyyuKCLcl11bAFszWhrzflHbN69lG86LnNmuCcgRE7t40bvHBJ9XW2KlLtvGLnbzKFdrzxshs8MplD7rYLpsm7qhJVfuiOBJjMp/A6JWvi5zlHrfTCaRtXeoGp2L4XaFqeWVKkxaucdboMC5yr3Y/JPtq0ws0Sc7OV7HZ+Wxc9kyBYZ7KW3PWcdvwo4ly14Z+Xf0xn2w01h60AAAAAAEBmIYAEAADqr+8EDfBLnHXpHg2GVJM3NFZGrcsAGwgq0ctv7MccpOC5te2voXEBka6XeIGSYV28zJ0RCTKKooLn72jTf6K7rV+KbkSC7J2ovO420NVV3e05JJzn2qgym0FkspJGjDD7jmUVlbxf6Y0k4AfEvGwlb7tohtWaSoW37KMJuYHwW9ssdXRHTJaW2XahZNvHL40HAAAAAACaBwJIAADggHHLvkW1UdbJdnR/OjnL9rHkyT7By9nxmb6SvACN179TrZjydzZIEy4ZV1342j2J5qXl7Ugdy/4lyqoK6qph0Qwyww8kjdBMk/UEAAAAAACaDQJIAADggAlnzuxQ5G07uj/FBVsq3w/mF23UCr9/JL+UW7QsXCo7tOoZm9kTLRcXK0XXUKKl9YLDdf1DQbGEoqXpgsPEUAZVQqY0nr9+oC1KClek6HsJAAAAAABkEgJIAADgwClerFV+BozfV4/66Oxu4XCI3w9QKMCTQGy9Gqwp1Aq/L6aPVmmxzRQafkZXZ9rv8ydWys3v1yi1SlXajKXh37YBnU1lyUvY1UqspF2s3yJbYi9hNlAss6jrGTaEFWjraJbVvQn6QAqKZlQt9IJFbftrYo19QgEAAAAAgExFAAkAABxAJSoc5wVBov3yRPsVigVNYv3+1NCnkMNbb2YsKJVE0c32mH7/Rn6/SNE+f2LnNbaGgFVYtrLdPpwC+/evqQF0zbWBm2hfRn6JveEa2j8+/8ievwkQBfqWir+maKArmei2sdJ1sTY7W91TZS8BAAAAAICMQQAJAAAcOHnTNM0GiVymzNolXuaP0fWS2TaAYfWdoGkT4gvKtVH/K9MtM+eI34cpNxctAddVw0Il6/powqwF9hxL9PIbNeXrOOdxXbhknSk3N9seq2hDPQu+hbJ/fMM1bcEw56wtZ51Ridrnurh2dJhzG2aCZjVKvK37PaVTNg8AAAAAAGSMFtu2batq25afkyKz/fZ3D2jT5i366U9+rC6dO9m5AJC5IpGIcnJy7NTBt/HJEbrFlI6LCxjtT6Zsm5t5EwoYAQAAAAAAIB1kIAEAAAAAAAAAACCEABIAAAAAAAAAAABCKGGHZoESdgCam8ZWwg4AAAAAAABNCwEkZJyFTy3WCyv/Zqdqdl7uNzXs4qF2CgAyBwEkAAAAAAAA1Acl7JBxTECoV88edio5sw7BIwAAAAAAAAAAqiOAhIz0w8u/r46nnmKnqjPLzDoAAAAAAAAAAKA6AkjISIcccohGXvkDtT22jZ0TY+aZZWYdAAAAAAAAAABQHW/QkbESBYpatGiRNLAEAAAAAAAAAAA8BJCQ0eJL1Y284r9rLG0HAAAAAAAAAACkFtu2batq27atnQQy0wsr/+Z+npf7TfcTADJdJBJRTk6OnQIAAAAAAABqhwASAAAZiAASAAAAAAAA6oMAUiOxY8cO7dq1S/v27bNzgMbH9CfVqlUrtWmTGX1I8dyhKajrc0cACQAAAAAAAPVBAKkRMC+xDz30UGVnZ+uwww6zc4Hk3vs0YscOjj0f/afJB5F47lBbTe25I4AEAAAAAACA+jjEfuIgMhkQvMRGU2Lu2aaO5w5NTSY8dwAAAAAAAGg6CCA1AqZ8Fi+x0ZRkQsk3njs0NZRaBAAAAAAAwIFEAAkAAAAAAAAAAAAhBJAAAAAAAAAAAAAQQgAJAAAAAAAAAAAAIQSQgGbi0z279HLFP/SnjYvdwYybeQAAAAAAAAAAxGuxbdu2qrZt29pJHAzl5eXq1q2bnQJSe+/TiB1LzQSJHix7XMu3v2TnhA3scI6u7v49HXVYKzsntR1vf6D27dvbqaaJ5w61VZvnbn+o7XMXiUSUk5NjpwAAAAAAAIDaIQMJyGBbd5br2r/lJw0eGWaZWcesCwAAAAAAAACAQQAJyFAm8+hXa2ercteHdk5yZh2zLiXtAAAAAAAAAAAGASQgQz342mNpBY8Gtu+r33zzF+66ZhsADYe+xwAAAAAAANBUEUACMpB5Qb28fI2dSs4Ej679+g/dcdMHktmGl9tA/Znn6DevPqzvL/2ZfrX2fv1p4zPuYMbNPLOMZw0AAAAAAACNGQGkJqtU+Tld1DE6FGi9XdL4RVQ0qotGPV6/DunXFzjXXVDqjDXM/hpS7NwOjg0fbLJjyfnBI9P30dTV90RfZqezLRpK+vfu/rinDvZ9mqnoewwAAAAAAACZgABSU1TxmEbl5GnzjNXa+uYmdyiZsUWXNqogkhfgyl9rJxuCe92jVVRhp5uIyOOj1XHUYzqQ4S3/pfRRhx3plqczwaKgZMEjgxfaQN2ZZ4m+xwAAAAAAAJAJCCA1QesfmqoVY4o1/3tZdo6U9b18FeTO032NKAtnf+s1ZZO2Tulpp5DIp3s+05ufbHeDRX4QqabgEYD6oe8xAAAAAAAAZAoCSE1OqZbOkUafHx84ydLw+ZtCQSU388UvcRfIgPHKVhUESuD5WT0JymmtLQiVx3O39bcLlL4y80c5+xzlHmu+HhyVp7nO/Ll5aWQhuccIrGen/cE7n1Ll95uqFVqpKf28861efmtl7JqSZvx415jvnKu7nt0+WVv560eXRY9Xva0SlgNzrqXPpJXOqU1VH7vfUBvup8ykjq3b2zG5fa245bK+/kNd2+PKlMGj4Law/Oy3x2P3pvnug/dN6Llx1/e/57isueCyUfO0xc72JXvGkqv7cxtT8/3sjT8WeBbMvoNlNMPZj8mfp8xmnif6HgMAAAAAAECmIIDU1FRs1mblqlOqd/xu4KKTnnBL3K1WgaaqT/DF8Zwt6rTaK3/3xJiVmjLVvOTN0nlDcrViycroC9/1z8+TxgxSL2fcvBS+dGO+Svx9bswLvXBeMUcab5bNH6Wr5xdrtDNvdPEmTe3tLU/IvOjOk3ue3nqlys/bogJ7bluLr9KKSfO0Xj01dXW+BjjXXrB6roa3c7cOWTHpWXtNCa43ztyNnbzrMBlMobZy2qNrbNvI41M1pWuxdy72mmtVlq/3FJXMyJVynXabf5mynGPF2tA71uTgi/8GcsbxXeyYxw8iDexwTsrMo/ht4XOek82DvHvBvS/7abLy3WnzHXv3qeEFOzs79763TJrSzw+wRFQ0darkl58c59yLK90FrlTPWGK1eW6d53JOOvtMYM6zUr49r9x5ujRnmQb7+1Qg+7GG5ynT0fcYAAAAAAAAMgkBpAwVfIHsZieNu0qasyyWJTBmXDQI06FzrjfiyDr3Qg1Y+axesBlJmzbmqmCkyXaK6IUlKzV63GXO3gxvn8GX1rHjpWnJVBs8mhLYrqemvhkLEEW2xedn1CB6TQmuN86AIbn2Ory2GjDjqug59BqZrwHBbefMshkkXpZXjQGxdKycqrk2CGXK8AWzxhqKyWrwS9b5TBDpTxsX1xg8MtuYbZGI/yw42ndyg5mDzrVPw6md3E/X2mWaq6s02N4nWd8b5wZYlprvvGKllq2MbafeV6kg+vil8Ywlkeq5jd3vPTXaBLvS2Gc1geerS1cz7T/v7dUp9ick9fOUwfz+w+h7DAAAAAAAAJmAAFJT066zOmulttT4rtG8QJYGdK5DKbJ2l2n8mJVa9mLEe9mtC3We+9K4XFtWeiXpoqWp8uZJK7dou7th7a1w9jegWr9N4ZJxk5fY2WkIXa/7gj8dXluZbJLodbml8rZoU4V5+T/XZpD45xRXjqy2ek9xs1eC7VirjKZauPr0y5Tdqq2d8vxp4zNJg0dmXbMN6scNeuZ2Ugc7HVK+xbm3OqmLDZBGgzGudJ+xYOk4W3YuxXPb+dSGD1ImVvPz1FzQ91g9mKxU/75OxS8HuT8y3PbnvgE0PZsWasSIhXL+iWvENmrhiBFaWIeE1o1PjtCIJ+t5dcE22o/ttWPVTGffzvma4d5V2mHnV/PRKs0cMVOrPrLT1XjtZfYzc1XSvexn6X5nO7Tq3oY+z/2xTwAAAGQiAkhNTk8NHiPNfb76S61YnyXeS+kVm+v2i/Ze53tZD+tffFaKZi54WQamJJ1beis6BLOHamfAjHzNz8+XJk2NBWXWztOUlVdFy1/NHxfI7KgN90V9Ory2GuCXFIsOsSwoE0Ty58fK/dWDCSLZ/ZnSZ3Pzwv3HNBSTSfSL3tdUCyIlYtYx65J9VH9uNlKywKob2AwGU7yAiyfdZ8xk6cWW+xlsNT23m7fV646thdTPUyaj7zEAaI7qHrhBLW1aqLGF0oRZC7RgwQJNO7lQY+sY+NqxarGK+k7QbGc/E7uVpQg2AQAAAM0XAaQmyCsJFdePielbZ06sxJZ5mRwr4RZR0axgSbsUeg/S6JVTdemkThofLa/m9bMyd1YseOIGrOrbQX67yzTdZPiEgjL+C3Z73mmK9UFTu+t1X7xHt3W2fny0OuZ4QZ1YUM7jlvvr2tlpDRuki5YCK9XSOe5Ijdx9B9rMDTYky1ZpAOaldKJSWkFmmVmHF9gNxDw/fsk6R+TxWbGSdu1yNSh3paY8ZO8pt6SdN1rvZ6yG5zZ4n86dFCxp56vb/ZxITc9TpqPvMQBAU9T1kgVacInzHwINpcswLVgwTA24R9fGDUXqM2GU+tvfRtX7vE/OUhs7CgAAACAxAkhNUbvLNP/NYnUOloly+xIK/Mq/9xSVzNiiS93l/TRF+SqZYvtvScnLcooPwJhMHLdDfHvMS+dcpSfm+/21xLOZUnmpSxG5fcSsnKrJZj23T5iVtmTcVGlcfixjw3/57ixLVPZtwIxOWlqX6w21VRf1mSQVrPayPnpNWa2CjXnufG9ZJz1h9+sG8pzz9tpjmTrNCHQEE+D1T2PWK9D2uDbsmLdFBfnJ2rBhmKwik/3wp8F3a2rvsfp+16HuYMbNPLOMzKOG1FNTV+drsy1FF7yfTKBm+PxijZ5j76l+W9TZPGtW7Z6xeOk8t3maO6Y4Yb9b6d7PKdXwPGU68xzFB2szru+xaIm5xwKlFEeraK0t+eYO4YChF0T0l8X//Q6WLXX2s83ODnADqf726QZUbQm64L8//nlEj++XqfOHGsrVVds2VGrPlpV0zq0ocK6jHi8NlWQNXXfcsRP9m+aLHttp8+g2oXYIl36NlVr15xeoKPgdONcZbNPwv9Fx+6KEH5q8WJkyM8SyhGz5ricXamZ0ebjkmlvWzd9ug51ZjdnPLSpyxopuDuzfLZ/mb586syV4rGApOa+03MLANcTtyy0V529XZmcm4pcrWxXbV6D8W6yEXc3rGWmVkAuUsEt5DWm31UaVFUsdsxOHfMxxot9n8LzeiLWRX67NXMPYwhKp+BZn/u/0u3GFKnH+r3BckuPb61kVuHbzXQe/t2AGWo1tVON3lux+rUGCUn2x79OdSr3PavsIZtUluSeC31voGutwDQAAAGjctm3bVrVz506Ggzi8/vrrVUBtvPvvyoM6mHs20b3clAaeO9RWomchfti0Y1vVkEWjq3ovuDStwaxrtkm0r/ihts/dli1b7Jk3oFfurDq1Y+eqU39UXFUZnO54Z9W64PSd681UVeVjV7vTv3rFnYwu/9Fj7tZxyyurFvzI7Cu2fN2dZvrqqgXvman1Vb8K7LvqveKqHwWnQ/x92fPyp/3zrrat3XeS5TVfh902/jyj6/vT9lwS7tvftjr/2MnOxWsj/zqD1xFrz8Tt60/7x45rM3ue/ncBND0fV714z/Cqu1/82Jv88MWqu4ffXfXih2bCWzZ8+JNV/3QX2uknvKmqjU9WXxadjvfPqieHD696cqOdjJv++MW7a9jWLr/nReco7lTonP/5hDmuf852OrpuouMEzyPIv4a467fX6+7XHa95vXC7BLdzBJcFxmtzDfH7DzPrOvvZaL5Hs8/gfvzjBLZ1v+/AOnY61F6hZbFzrMY9r9j3Et/WoWsKXUNc+8Vdb3g/3ro13a/RZSHxy4LHiFvmnluCfVa7/ur7iF2Ttyxxu8YdL1W7AgAAoEkgAwkAgAZiMomaRd9jbilPh9uvl8PPfPOnXRG9sGSllJuv0aaEo+FmmfrlEu1yv8SjydAbd5UZsWwpxdwLdZ6bXWuz7KLlWWvilW+UX07Slov0yzdGXnxWKxQr+2r2Pdpk3a18Vi9E+yirrU7q4p6n1/dY7Lr8aY93bGn0+d6x3SxVOef3Ys25VdH1TelTh9+3Wa8ppp+xq7TJzRzK01x3blCuOrkVSr1SlWZ60LmmFfxpyy+p6X+XbtZvsLQl0MR8VKaX1wzX0P42Y6Vtfw3NK9HLb8RyJfpMGGDLrLVR1snuiMuUSlNe9+iy/t8e7o6lZVOZijRc3W1l0jb9hzpTRSpLmImxQ2WvlGj4t/vbUmresUpeKYtldOQNjZZsyz6hjzdiJDxOCtF92WsqLlMw6yoqyXpeCTm/zZx/CnInqE+yfQTVdA19J2iAX8W1ywBN6JusrYwSFT4jjVpg+kCarQmK6wMp+p3FRNvW/f6log0pzzaJ2L3UJrujO+23ffCaEt47fhvV9J2lcb8m1kbdz+oTu2c+imir36buPvvo7G52n277prPP6mLfe7ay+zrTZ3W37Zol0xquOl8DAAAAGjMCSAAANKDm0PfYgM7pnHe5tkT7+Iqzcou2+8tT9QMXLa1oyjqaGX4/eTVzy6M6n3OfL40GjLzAibR9c9IT05ZyO1pbtezPzpR4dcvE9ZvqBpRWbK7bgb1ydP00pWuxtr5Z7F5zmB/YSpNfYtPs0zST+10BTdCHlSpRkW4JlNO6pVgqeb/SrpDMDkXelvqckG2nHcdlyw8RBMuWJSrhtqNyq9Q3W4Gto6pvW6nKNV75u+j8m4ukNc58u00y1Y/jvdg3QiXUAqX5kl1TvMTree1SUjg2tm+39NtWRZKWnauZew1rCjU2eq5jVei0x9bKHUmvIT7YljQI5uqj7OPsqCMUvEomVFKvtiXYEtw7ATV9Z+ner4naxQ1ErXlZZc73sOONlyU/uOPus6OyUv+mpWHU+ZkDAABAY0YACQCABmayiuh7LJx5E+IGW+zyVAGK3HyVvGmybPxhbqy/vyjbD5EdvH59/IylWZrsZkL5mUxSh85JT8xm6+x/o4uD1+QMpn8927eSN/h9GdXEz9KqTT+HKYwxgajguTWPPsyQgdzAx3BNc7NVAsMl8Tkq8bxspNBLb/fFuKfrJYF9XecHM2Lc7JQkAaDq23oBhOG3B+a7w7BqmTTxqh/HC0YZbfpPTLivZNcUL/F6Xrv0mTA7sG8zTIxmF9WWew19J2h2aH8LNLF/mwTXEAi2BCUJ1iVS+X6yKw5o218TA+cyzM+OSkuCeyegpu8s3fs18XfbVd3dTJ+NKntFsYwjd591D/DVWp2fOQAAADRmBJAAANhPTJCob7se+n7Xb7uDGc/8wJHPlpFbOVVzTRk5Y+08N6vFKyUXV2ZOERXNmmdGLBsAipaVs0GiUY8lKKnWU1MDQY/53/MyjXqdb0rirdQK55ijx13mHNHjl42b8lCpnVOquZPCQaag+LJx658PnmfteMf2MqOMyOOj3YBRvmmD3lMCgZtEgbIkbBAu8visBCXs0mRL1kVLBFY8plGmvQv8NgKamLbddXbfIi1e5ecIeZ37z4xOJ9f1DJPZslir7It3tyxZurp0V7Bk3Y5Vi0Nly8K88mNFz8QymdwspQSZTdXY40Svzy2PlkI0W2eHVj0TLLUWJ8l6pl1KCldEM368bJhYdlCtmWtYU6gVfpaPzf5JnPUT31beuUVLqSVUosKV9uycfS8uloafsX+DGd69k6Sda/rO6nG/Gt53c4sKT46VC/T2GSght2mFCoMl7XxuGbrgemncS4nU8xoAAADQOBFAAgAA+0XW9+aqZEZurFxb3jw388YP8JjlT4zxy7lNlYYE+0Dy+vd5YsxKTelnlpv+fa7SE/NjgaCUeg+yJd38/oisdpdp/up8DYiWa3P2bTJvku3b77tpUj9n3dHa1Dl8nrUSd+w+k1ZqwIzVmho8v7T11NRicy7zdKm7r04a7Qbd6lJ2LkvD5692rtPbl1taryEzm4ADro36XzdNHaMl125RUd40N7slpS7DNHuCVDjOK8O1WMOVvPiZyf7wytB5L8q7atisCdpqy9KNLZQmzEqeUWQySqadHCvjdkvxcE1LkNlUnXcc+df3jDQ8eeVUVx/nPBe7xxmrQk3Q7CSZIUnXc9tla7REWaprSy3cVqYknibMTpr1Y9pq9lkv27Zyzu3kVN9nH004oSz1vm2gxXzftStZl0CojeLbuabvrB73q+EGp+IDZHH7vLlIw29PlDHWVQMm9ImVJ9yQrQkp7qXE6nkNAAAAaJRabNu2rapt2wNVGBmJlJeXq1u3bnYKSO29Tw9ul+Y73v5A7ds3zb5bfDx3qK2m9txFIhHl5OTYKQBA87VDq+4dq5fPmp3iZX666wEAAABoLshAAgAAAAAAAAAAQAgBJKCZWLR1ua7926900eJr9P2lP9MvXrpHy8v9nnsBAAAAAAAAAIghgARkuE/37HIDRw+WPa4qZ3pg+766KOc8/euLXXrtg396KwEAACBDmb5pFqRRli7d9QAAAAA0F/SB1AjQFwtqqzZ9sfz0b79SZNeHuvbrP1Tfdj3s3PqhDyQ0R/SBBAAAAAAAgOaEDCQgg5myddt2lqcMHm111jEl7Uy2EgAAAAAAAAAABJCADPb89jU6tXX7lMGjqavv0YYPN7qfBJEAAAAAAAAAAASQgAxmso/OOK6rnarODx75QaP4aQAAAAAAAABA80QACchAv/nf/9FFi69xx5/e+oI7vnz7S+50UMfW7fWnwXdrYPu+7vSioffrN9/8hY46rJU7DQAAAAAAAABongggARnI9HnkB4WMa3tcqYEdzrFT1W3ZWe6WugMAAAAAAAAAwGixbdu2qrZt29pJHAzl5eXq1q2bnQJSe+/TiB2rmclEOv24rjUGj9ZUvKr8tbNTBpmCdrz9gdq3b9oBJ5471Fa6z93+UtvnLhKJKCcnx041jLfeesuOAQAAAAAAoLE55ZRT7FjDIIDUCPAiG7XVUC+yTfDoN//7sLJatdVvv/kLOzc1AkhojgggAQAAAAAAoDmhhB3QTJhspGv/9iv9aeNi/ebVh91xk3lkgkd39rvergUAAAAAAAAAAAEkoNkwpeyOOuxILXrzBS3f/pKqnHmmbJ3JPDrqsFbeSgAAAAAAAAAAOChh1whQSgu11dRKaTVGPHeoLUrYAQAAAAAAoDkhAwkAAAAAAAAAAAAhBJAAAAAAAAAAAAAQQgAJAAAAAAAAAAAAIQSQAAAAAAAAAAAAEEIACQAAAAAS+WiVZo6YqVUf2en9YqMWjhihEf5w7yrtsEsAAAAA4GAigAQAAAAA9bBj1cw6Bn52aNW9t2jrhNlasGCBM8zWBBVq7JMb7XIAAAAAOHgIIAEAAABAIm37a+KCierf1k43uDbqf90CTezfJjrd/aw+0tsRspAAAAAAHHQEkAAAQJpKlZ/TRR1HPaaiAufTjDtD/lq72FhbEJ3vDgWldkHibUc9XqqiUbHp5PsaraIKOx8AUvFLz61aGC0NN3PVDi9TKDDt2mTWWaiFT8bKyEWXxZWw2xhYJ5px5Gw/trBEWlOosTVkIQWPXatsJfcc/OPu73J6AAAAABBDAAkAANTOymelkZu09c1ijXYm5856TBEzv+IxjcqbpwEzVjvLNqlkRq40Jy8cFIrbdsWkPG0ZF9hXXoHWm/VM8CiwryfGrNSUfnYZAKSlRIXvd/dKw90+XCWFYzVfo9zp2RP6ONMrFCsUV6StJ9gycu6686sHajYt1C1vT9Bst9TcAk07uVDzTaCpyzB3f+rrLLuuv/xcohA3yNRR0wLbJi5Tt1ErCkvU56zudj8btXBcoTre7m234PaOKhy3MHDeAAAAALD/EEACAAC1k3uhzmtnRtqrU67zsXKLtpvJdpdp/pubNP/UeW7WUJ9JK83cOJ3UJbitrtLg3sFpz/rn5zn/m6tB52a5073Ov8r533laGgxGAUCN+mhCbldv9LhsZ6qPzu7mhWXaZHd0P2OGa6hfRs5dN4k1hVqxyRvtekmw9FzNNm4oUp8JA2TPRl1zJ6hPcVlcIMjrD6mo7wSN8ve7qcydHtDFm1SXAZrQt0hl9hwAAAAAYH8igAQAABqGyUAy5ebytqhgtc1AipfbSR3saGom68iWsMszASVp8zY31wkADrwuw9zspKKb/XJyI7QwQSAnVKpuhMkW2qHI23IzoKLzxxWqRFsViWY5meDRWBUqnMW0o3KrVxovuj9nnTXS1sq0C+ABAAAAQJ0RQAIAAA0i8uKzWuF8ji6eq+FullF95bqBKFPCzh/mf8/LSAKAg8IEkWwZOlO2rujm6uXk2vSfGF1nwYJh6qo2yjpZ6jPBlsiLDhPVv63ZwgaPTp6mBXEl8NxMKVMaL7Rd+plPAAAAAFAfBJAAAECD8rKESjU3YQm79Hgl61Zq2YtextH6ApOJNFpFFe4kABxwbmbRvavk5/54wZ1sZdvpmnQ9w/SrFOtzyctS8oJPG5+0mUeX+AXuArp01/BA2Tx9tEozRyTOfAIAAACAhkYACQAANIis7+WrIFdaMamfOubkafOYqzTAmV+nsnO9p2hr8VV2X1106ZyGzGwCgNozmUXTTg6Uk7t5qyZc6WUMtel2tvq4peaqZyS5ugzT7AlbdYvddmyhNGGWyU7aqLJiZ3moTJ0Z/P101bBZE7TVL5s3zmw4W8P8PpEAAAAAYD9qsW3btqq2bd3aCThIysvL1a1bNzsFpPbepwe3D5Adb3+g9u3b26mmiecOtdXUnrtIJKKcnBw7BQAAAAAAANQOGUgAAAAAAAAAAAAIIYAEAAAAAAAAAACAEAJIAAAAAAAAAAAACCGABAAAAAAAAAAAgBACSI3AIYccoj179tgpoPEz92xTx3OHpiYTnjsAAAAAAAA0HbyNagRatWqlyspKXmajyTD3bFPHc4emJhOeOwAAAAAAADQdLbZt21bVtm1bO4mDZceOHdq1a5f27dtn5wCNj8mAMC+x27RpY+c0bTx3aArq+txFIhHl5OTYKQAAAAAAAKB2CCChWfjt7x7Qps1b9NOf/FhdOneyc4EDY+26Ui1a/Bd9vGOHO/2tQRdoyOAL3PHm5vfPv6dr527WD/7rBN0/rqudi/2BABIAAAAAAADqgwASmgUCSDgYPvzwIz21eIlK//cf7vRXu3bRd78zRO3bf8Wdbo5efH2Hhty2QX26ttbzt/ewc7E/7I8A0ltvvWXHAAAAAAAA0NiccsopdqxhEEBCs0AACQfair/+XU89vUR79+7VEUccoYuHfkvf/EZ/u7T5qvzkC3Ues0ZtjjpMb88/x87F/kAGEgAAAAAAAOrjEPsJAGgA2956W7+5b7ae/PPTbvDorDN76eapNxI8srKPOVzHHX24dny6R+99tNvOBQAAAAAAANDYEEACgAayaPES3X3vfdq85U0df/xxGjXycl15+Qi1OeYYuwaMLicd6X5ueu8z9xMAAAAAAABA40MACQDq6R+vlemOO+/Sc8tXutPn5X5TN025QT17/D93GmHRANK7BJAAAAAAAACAxooAEgDU0b/+/W/94U/Fmjvvf/R+ZaU6nnqKrh0/VsMuHqpDDz3UroV4Xb/Syv0kgAQAAAAAAAA0XgSQAKAOVr/0spt1tKZkrTt90dBvaeK1P1HnTjnuNJLrcqKXgbTxnV3uJwAAAAAAAIDGhwASANTCu+9VaPbc3+tPxU9o165dOuP07rr55zfqgoED7BpIJZqBRB9IAAAAAAAAQKNFAAkA0rTsueW6c8ZMlb3+ho7+8pd1+ffzNOaqHyo7O8uugXR0PvFIHX7YIXqr8j/67PN9di4AAAAAAACAxoQAEgCk8M+Nm/Trmb/V4iXL3On+55ytm6beqLP79HanUXuUsQMA7FcfrdLMETO16iM7na5NCzVixEJttJO1s1ELR4xwth+hmUWP1mM/qL0dWnWv0+6rdthpAAAAAA2BABIAJPHFF1/osSf/rPvun6u3t5frpJNO1DVjRmlE3qVqdaQXAEHddDnJa79N71LGDgCQGXasWqyivhM0e8ECTex1lJ0LAAAAAE0XASQASGBd6f/q9vxf629/X+1OD75woH5+4/U6rdvX3GnUD/0gAQAy0slZamNHAQAAAKCpI4AEAAEfffSxHnr4j+7w8Y4d+mrXLrpx4k/17W8NsmugIfgZSJSwa2pKlZ/TRR1HPaaiAufTjDtD/lq72FhbEJ3vDgWldkHibUc9XqqiUbHp5PsaraIKO98ReXx0YJnZT8Qukda7+x+t/ILYOsHl0XOJDgVab5cY3vb+ED5uaJlzLcG9Ami8Nj5pSst5JeXc8SdjxeV2rJqpEfeuUrD4WcTMs+XoFm6yM12xMnXBZWYfYwtLpOJboscJcUvq+dv5pfW8smux/Xv7Dk8nKcMXX2ovVLLP269/jsFrNby2qL7MzJ/55ELvPOPaIyjh9vb6YiXk7DnELa9+XL/03KpYu5pjB9f3z8W/xlXm2r1lNZWsS3adCYXOL9zmNbXXiCdXBdrafB/B+4MShgAAAGj6CCABgLXyby/qjoK73Oyjww8/XJdd+l2Nv2a0Tu7Q3q6BhuL3gUQJuyZq5bPSyE3a+maxRjuTc2fZQErFYxqVN08DZqx2lm1SyYxcaU5eOCgUt+2KSXnaMi6wrzwbzDHBo8C+nhizUlP62WXOcSZPWhlYZvYzNRTocQ6kzZ3zo+exYlI/ex4RFY3K09zcfJU4y7auztcAzdOlNtBlAkSXzslVwWpzTqtVkBs7bniZc74rp6pPNEAGoLEyL/pv0TQtWDBMXe28mhWp8P2hzvoLtOD24Sq6ORiYuUVbJ8z2ls2aoK12WZv+EzV7Qh/JLWEXf5yNWjiuUB1vd7Zxtps9QSocZ4ILbdT9rD4q2mDDDJvKtLVveLqo79nq3tabTNeOVfNVeLK5XnO82Zrw9i2hQNctb3tl9vxlwSBMSbE01Cy7rn/CTKqk27ftr4lOe6hwvtse7jnIWe8S0xJOuz0cu37Tbn2KF4eCNCWFleru7nOahq8p1NiHpVH+us70imhQrUSFr2R7x3ePNzYuwOdJdZ1h4e9nwe0d7fcTvx/n3Irj9lP8snSlPUbfIt0yoix2Hc59tLiGABcAAADQFBBAAtDsvfX2dhXOmqMnFi5y+z3q3evruvnnN+qb5/aza6Ch+SXsNr5LBlKTlHuhzmtnRtqrU67zsXKLtpvJdpdp/pubNP/UeW6GTp9JK83cOJ3UJbitrtLg3sFpz/rn5zn/m6tB52a5073Ov8r533laGghGmaCQyQLqMMUEdOZquLtfX2zbrHMv1ADnc+7zJtiTpeHznfXnd9Zck0XUb6pWuGsZpVo6x/mIXp9d980p6lVtWU8NHuN8zFkWyl4C0Li8/LANHrmBjHT10YRcu36XAZrQt0Qvv7FD+qhML68ZrqH9bWilbX8NzbPLamICQRqu7l28yTb9h7rBhbJNznh2R+ntiJths6Nyqzp+21lmpzduKFKfs7rXrSReNEDTRv2vW6Bh7rF3qOyVEg3/th8ccpZ9e7hKXilzj+fK615DkC3F9k57jHKDYyM0tlCacGVgveg5OD6sVIkd9fWZMMAeN1vZfZ1p/7rbZslpoZDo8d32VyzgFpXGdQbFfT/qMkxesNHbT+w76KoBE/rEtddQ9XcDfG2UdbKZ9tvPuw4AAACgqSOABKBZe/qZv+iuewq1cdNmHde2rX505Q/0wyv+W8ce670qwP5x9JGHqv3xX9J/Pt+nbZX/sXPR5JkMJBOUydviZum4GUjxcjupgx1NzWT/2HJxeSagJG3eFnEDVeNN8MYwWUBmeVwZupB2ndXZfG7crIibgWTWz9Nmk8HkZiBZFZu12Xx27Swv9JRA9HgmG8nM2KJNocwnAI1HifN/faplu6TWUVnRrB8bGDDcwIfJMvFLlI3QLcXOUd6vtCskZgJD6putbDsd0qW7hq95WWUfmWCFlH2cWc+bjrzdR2d3c/57JK78W6KMmyAvG8oL5Hjb+BlUlapcIxXdHNvXiJuLpDXOfHfLMJN9E13PLceWensvOGYCQqNsYMUTKgP3zFbnW6mrPk4b2VFH9gmJ9lTTeW4MlSA02UTJvx9vPx2z+W9CAAAANF8EkAA0S6+Vva5fTb9bzz7v5R7k/te5uunnN6hXzx7uNPY/+kHKPJEXn3WzeUYXx2cD1ZVfLi42zP+ezUhys47M4JW+M9lJfhm6aoKBoYqVWmYSo8YUR/cVFQo0JeGXvosODXWtABpeH024cqKXFfNw8j59amYCOXb0uGxnj8M1zS1RFhhSZDe5WUZJgjQmq6V7XokqPzTLTbk6U9ZOqnyjTC+7084qpjxc4HjRTJ4amCCSv/40Z//e9XtZMcP9Um3RIXFpv+A+vHVSb7/xyVtU1LdPtJSd66NVWlzsfBez7PpXnm0X1IVpKzvqqHw/PpfJqOk8u2pYYN7E/m1q+H68/WytrNudAwAAAGQCAkgAmpV/f/qp/lj0uB548CFVVLyvU085WT/9yY916Xcv0mGHHWbXwoFAP0iZy80SUqnmJixhlx6vZN1KLXvRC+WY/oc65oz2+jky/SPldNGox82ynppqs4gGdA72V7ZSUx7yAkrRwNb5Pd1plw0SrX8oWMLOlqVb+axesFlF3nFNdlP8slLlm0ykUbb/JwCNVpv+ozRBhZpv+6Nxs1aKy9w+bvxyZ2GBvms2rVDhGpsJ1La7zu4b7NfGy2ZJ3reOZbKMbMk6Y8eqxaGSaeZ8ip5ZrK0nZ7ml0kxAY+srL0s1la9zg1mBfb7xcrQsnJvt82SsrJt7ve6+bZ9Lz8SCae6696YbXEux/aaFuqV4uKZdlyhoFwv8bFxZGD3XuoiWrHMDU9LwM+LDX7W8zrjvx8v4Mllb3n5iJes2akVhsKQdAAAAkPkIIAFoNl5aU6Jf3XmX+2l859uD9bPrxqtL507uNA6sWD9IBJAyRdb38lWQa/smMiXixlzlBna8gFIt9Z6ircVX2X155eKimU1xy9x+jKplFOWqoPMyd7npi2nAjNWaavpaaneZppvSerYU3aUbr9JoU2nPBpRMZtMTY2Kl8y6dY7KgTB9I8cvyNFdX6Yn5lyUvdwegkbB94NisGL8PIq8U3XzpLFN0LWi4ztb8aOmz4bdPjPZz0/+6aepYONaWQLtFRXnT3CyWmnXVsFkTtNWWVHP7B5oVy9pp0+1s9TH/bXKCLaJ2nPO5Rl7QKhm//x+7z/nOGftX0fWS2Zrw9i32HM3xOmqazZIyWUXTTi7UWLvMC/j4fQWllnT7TQttW3nX5QftxppAVty5lp0xzTnXcCZR+kwO2GLv2saZhpydMCOrdtcZ/n7Mfjva7zy8n3S/bwAAACBztNi2bVtV27aBAtVABvrt7x7Qps1b3EwTggXNj8k0emrxX9yydcbp3bvp4u98W+38FzU4KFZs2KGL79igc09royW3nmHnoqFEIhHl5OTYqebFZA15gR/KywFAxjCZQeNe1tmz/IAeAAAAgP2NDCQAGc30cWT6OjLBo6OOOko/GHGZfnz1jwgeNQJ+CTv6QAIAAAAAAAAaHwJIADKSyTi7655CPf3MX9zpfn376Oaf36i+Z5/lTuPga398S335S4eo8pPP9dG/9ti5AAAAAAAAABoDAkgAMsoXX3yhJxYucssWvvX2dp3Yrp2bcfT94d/TUUd5fe6g8Yj1g0QWEhqO6ato65uUrwOAjNK2vyYuoHwdAAAAcCARQAKQMdaV/q/uKLhLK//2ojs96ILzNHXyRLfPIzROXU7yAkib3v3M/QQAAAAAAADQOBBAQrOwd89eqcpOIGN8vGOHNm95Uy+/sk7zfv+wHnr4j/roo4/VtUsn3XD9BA0dMtiuicaq5WHeP0MvvPqx+wkAAAAAAACgcWixbdu2qrZtqQOAzPXJJ5/opl/+yh0fftklOrdfX3ccjd/u3bsV+eBDNyj0wYcf6sMPP3I+P3Kmvc89e2L95nQ/7Ws68ktf0imnnKzcb55r56Kxu/Oxt3Tn42+rT9fWev72HnYuGkIkElFOTo6dAgAAAAAAAGqHABKahSf+vEgr//qizjqzl668fISdi8bACw59pA9NgMiMf2A+zfRH+te//23XSqx166N1nPP367jj2up4Z+jX92wde2wbuxRNwd/Ldujb0zboG93b6JlbzrBz0RAIIAEAAAAAAKA+CCChWfj44x26ZVq+Oz7lxuv1lZNOdMex/+367DM3SBT54INQsMjLJPpYe/futWtWd8QRh8v8fTLBobZtj1XW8ce7n2b6uOOOU8sjjrBroqkigLT/EEACAAAAAABAfRBAQrNR/MSf9fcXV+ucs8/Sf4+4zM5FfVVVVUXLynnl5rzycl65uQ+1a9dnds3E2hxzjJtBFMwkMsGh49oeqzZtjrFrIVMRQNp/CCABAAAAAACgPgggodmIRD7QtPwZ7vhNP79BJ2Rnu+NI7d///ne18nLe9AfuZ01atmxpM4j84JD59AJEZvzwww+3a6I5IoC0/+yPANJbb71lxwAAAAAAANDYnHLKKXasYRBAQrOyoPgJrXrpZZ3br6+GX3aJnYs9e/YkLC9nMohMsOiz//zHrpmY6XfIlJczQaH4UnNHH320XQuojgDS/kMGEgAAAAAAAOqDABKalfcqKpQ/faY7/subprgZMM3FJzt3ukEhk0HkZRLFAkSmj6iaHHnkl9yycm4GUYJSc4ceeqhdE6gdAkj7DwEkAAAAAAAA1AcBJDQ7j/6xSC+/sk7f/EZ/XXbJxXZu0/fFF19EM4hMcCi+P6LPP//crlldixYt3MCQGxQ63gsKBTOJvnzUUXZNoGERQNp/CCABAAAAAACgPgggodlZUPykXly9xh2/45e/UJs2x7jjTcmSpc9p0+Yt2rXrM33pSy3drKJPPtlplyZmgkDx5eWC/RKZIBJwoBFA2n8IIAEAAAAAAKA+CCCh2THBl78se07HH3ec8r73XXX72lftkqbDv4aqKpM95M0zZeT+P3v3Ah9Vde/9/4sQhCAGIgGDECDBVIqAgBcK0oJWaantKVqB1nM8VCp/i1p97Kl6aI/neexTjpfWU4ulPlCV2kOFeInVaMULwXKRIPdIpYFIjNBgJhiiGIEg/Pfae83M3pOZXCCBXD5vX2P2de219t4zJPs367dig0LRdHNnuWnogJaGAFLzIYAEAAAAAACAE0EACe1OOPjy9UlXaPLXrrBLW5dwG84f+kVdNmG8GyDq2bOHXQu0HgSQmg8BJAAAAAAAAJyI0+xPAK1Q/37n6NzBWQSPAAAAAAAAAABNigASAAAAAAAAAAAAAgggAQAAAAAAAAAAIIAxkNDm5f45T8tX/NXO1e2yCV/WlH+6ys61HG2hDUA8jIHUfBgDCQAAAAAAACeCHkho80wwZdTIEXYuMbNNSw28tIU2AAAAAAAAAABaDwJIaBf+9Z+/q0EDB9i52sw6s01L1hbaAAAAAAAAAABoHQggoV047bTTNOP665Tas4ddEmWWmXVmm5asLbQBAAAAAAAAANA68LQZ7Ua8IEtdQZmWqC20AQAAAAAAAADQ8hFAQrsSm+atvrRwLVFbaAMAAAAAAAAAoGUjgIR2Z9TIEZryT1e5LzPdGrWFNgAAAAAAAAAAWi4CSGiXLpvwZffVmrWFNgAAAAAAAAAAWqYOJSUlx1JTU+0sWrr9+/erurpaR48etUuAlseMy5ScnKwePRiXCXVbuW2/vnFvocYP7aGX7hlml6IphEIhZWZm2jkAAAAAAACgcQggtSImeNSxY0f17t1bnTp1skuBxMo+DdmpU+PIRwcJIqFOBJCaDwEkAAAAAAAAnAhS2LUipucRwSO0JuaeBQAAAAAAAAC0PgSQWhGTto7gEVoTUi0CAAAAAAAAQOtEAAkAAAAAAAAAAAABBJAAAAAAAAAAAAAQQAAJAAAAAAAAAAAAAQSQAAR8eqRaBXu36qmiPPdlps0yAAAAAAAAAED7QQAJgMsEiR7e8qS++8qP9Yv1v9NTRS+5LzNtlpl1BJKA9m6/Vv96uqZPn67cHXbRKVT0XPPXI3iMIuU6ba/V/h257rLwq2nrZI6Z6/wfAAAAAADg5CKABEC7Pt6t2/46V2988JZdUptZZ7Yx2wLAqeUFsu7JsbPNoqHHKFLufyy108bF6n2WnTxRH63WQ9Pvkb90AAAAAACAk4UAEtDOmV5Fv1j/qMqr99kliZltzLb0RALQPmVrypIlWuK8ppxrF0VcrFvnm3V3aFyqXQQAAAAAANCKdSgpKTmWmsqTjtZg9+7dGjJkiJ0D6lf2achOJfbw5j/ojd1r7Vxil/cbo29lXq7b/voLd/q2C/7Vrklsf2mF+vXrZ+eA2lZu269v3Fuo8UN76KV7htmlaAqhUEiZmZl2rqmYXjk3aZ7zkTHt514QZf/qh3TTvHXSmFv16DfKdVOkN44JqESDKSYVnNubZ+q9ulf3RHv2mP1uH6ce7oxJ1+b1uAmXbwSOcXua8mv1ypmme5dMUbadCzC9eGbPk7N3RPyypzmlLNVS83E45tu6au3zyvM2scwxhmqbv37K1fRA7yNHpD3RcxXhtH3J1cFaRo5vXXzro7pjnHM2TFq82LIj+0fPU5i/TQAAAAAAAE2BHkhAO2Z6EjU0eBQOGHXrlOzuQy8kAAFr5/mCR8Y6zZsdZ+yeHF/wyDD7/Xq19tvZJhUneGQs/Y+HtPojOxO21gaPjIxUdbOTxydO8Mhw2v7Q6mhLTVDNHzwy1s27KbBNbbWDR8bS/2gZ41IBAAAAAIC2gwBSm7VJczPP1dz1dtYKPXOjBsVZXsvep3VD5o1autfON4p3bHOcGx57/ATKOVHxz8GpsvE+55zct8nOtQyFFfU/bQwHj8zYR3PW/HckcNSQfQG0L6YXjEnvtuTn0+ySpdpW66MinOrNt93aAm2LDegkZNLIPapbx3hz3jHj9z7a/26BGzwyvXrc4y25V94R16k8TtbOSP2vvrJhxzh3iq9M2y7T++ijbSpwezLdqkfd4y7RvVPdjbTuw3Jv4qPVyrOBtNjztm5evopM2fNvdUo1TO8nZ73pffRRSLv8y3xlLy2sFa4DAAAAAAA4bgSQ2pP19+niO6X71uzQnAvtsmYQema+Fk6Yq3Xv7dDj3+hul6IlMkEho1unrnr4yz91g0V+iYJHRnhfAHCNuVUTwynUzh1qgypxTL0qOkbQuRNtkGadCt5t+j5IPcbd4QZYTEo409tnepyeOxH++p+o1HG6wwR3TDDJpKKbbtP3+e0r93pGBc6bCUiZoFCCdHxGapoGuRNLdY9T7vTpudLVXiApNj0eAAAAAADAiSCA1F6YHkVTH9ONOQs17Wy7rDllD1aanUTL9+mRz/Re1QdusCgcRKoreAQAx+viPr3tlNFDaRl2sjnY4E3cAE6zMmnmvOPWGsfI2l/u9SNqvGxNifTwMsKBpOn1pL4DAAAAAABoHAJI7cImzR07R3pgTbDn0fr7NCjzPm20s3HT1q0y29h0dM+E7EKPm5LNrgunZjMp8i6+c4W0YGqw7DD3GOH9wscKaekN/lRzsannzHxzpMHzjhtpg6++senm3NR/Nzzt7OGw522ur/3BcxNN4WdewRR6O33HPFWp/aIGndnPTkkPb3lSb3zwlhs0um3E9fUGj/z7AkBDRVK4ufYrVGonm9x+rX7JBm8iqeTC6eaa1/7VebanUzRdXzjNXFiP3l4/ouMS6ankvCJp7mzqOzsNAAAAAABwogggtXkmSDJVC2fl6PHvNLZP0Ard/XKWm4pu15q50p1jI8EQE1C5pshLU7frvTW6r2iqG0RJ+85CrXtgguSmsLtbo7zNLS+QNTjH7LPD2U66e6wJ2qTpsskTtPB1G7BZv0w7JwTnF064Upc1cc+p0DNzdHd2jlsXtw0THtMjMUGyxB7TzsFrvH1zZir/zjm+YNhU7XzArnPO286pvkDRgleluV77n53lnN85Nih1igzrFczXFA4iXd7/S/X2PIrdFwAaJCdPq8PjHe3I1zwzVpAu1iVDeriLwnaVh3vTFCl/npvsLa7odrHKVe6WLU37xji5pe/YljiFXR0SHyO+8g9tfSPp+oq0LbYH1Fm9vcDP2nnKD48T9dFqPeT2Jnooeo5cuxSKnLNwr6pcL1hk0uVFgki+7QAAAAAAAE4QAaQ2buHUsbpbEzRxwdSYnjANc+Psa71UdGdfq1tmOeW5QZ2Qlr+8IrrO+f+02TOV7yyrMxhiAkGaqa/ZXlBp35mtG/WYXnHqlTYwSyra6e4fKinW4NnOOju/8fXHNHHyhCZPiWeCXbvuHmnndqt4hZ1skJm6JRyQ65elid6UtHeFlq2YoEmX2nXOeXv8PV/awFmzI9P9B0/wJk6hbp2Sa417ZIJITxXl1Rk8MvuYfQGg8dZp3uyY9G6RQEu2htqeOuvm3WQDJXWMW+TwtosNuBi91dt+vC39j5jjNVLiY8TXu4/tE5RzT+I2pI7TVbatkfrNnueNi+QfJ8plz9mvV2t/ZNyoaOq6yH5jLtHQwH4AAAAAAADHjwBSW2d6Aj2+UPc/MEEL/T1hGmSCsnxZyqIBDy/YsnBqNE3boKmPSSuK9YHdIh4TGNKELPW38wEXTtKNK17V8r0mOCXnuP2UJW9+R5EvIOPjppULHz9eurz6uKnowvvP186miOfsLla+U/NzT8Y4U03kB+dfq97JwSeOTxW9lDB4ZLY1+wDAcZl6bzCdmzO/5OpsOyNlX/2oDZBYY27VvbeGk7SF9dC466Op2+Jztrk9mLJu2s+X6FFb1tLC+pK9NeQY8fUYd0ftNoZ7CeVsi6SZy746Wp8I//lIHacb4rX99phzZJj9brc9rQAAAAAAAJpAh5KSkmOpqXxdtTXYvXu3hgwZYufqY8bhmSrl7IiMe2TG9XHTzj1uew6ZAIqzybPhVHNmfKKxr2rSmoWaJt+0DYa4+ytHu+7up6U3jFXx7GjZfu44SC9f6R3HX+bumOPF1NGU/8pXc6T5O3Wjs6+cchbqSu18Wbo/XOdGqX0OokyqubFaNnmNTe0XnI+21euhFGhTI89bWJ1lukuaXtmnDUuQZ9LV/WL971ReXffX603w6KcX/rDB4x/tL61Qv36MlYTEVm7br2/cW6jxQ3vopXuG2aVoCqFQSJmZmXbu1Ct6brruMWncYgJGAAAAAAAAaJnogdSOjLo7RzeumKOL77NjC7mp17wUckZo1avK9yatFbp7kd1279N6ZIF041dN8MOOWTQ/On6PCY4MuqGe8XxMLyP/8Z6ZH0hpZ3o4LZw/XzuzB7sBFZPWbufLr0rNkL4uLH/nbm9i/WO625fCzu1ttWCZ7dXkpexrkLMnaNKEFVq2KnwmTBDr3ONKH3gymYDQw1/+aa10dn5mndmmocEjAAAAAAAAAEDrRQCpXRmpOTkzpQVTNcgEkcLjGtlUdHfpSt1ot/RM0H2Dl3kp3sbOkR5YE+nJY8YPejZ7ji62KeCuWTBTz9bbk8Y5/pq52mmPd/Gd0n1rwr2RnDIvvVITV6yQBtsARb8sE8OKm76uMQKp9szLDXR54za558Ise32SnnXORTigFB6f6Rp3H6ftk51tG8Qp9/EcDb5zrD3eVO30nbeWzIxpdNsF/6qnvvYrp7436bvZV7kvM22WmXWMewQAAAAAAAAA7QMp7FqRxqWwAxqewq65kMIO9SGFXfNpaSnsAAAAAAAA0LrQAwkAAAAAAAAAAAABBJAAAAAAAAAAAAAQQAAJAAAAAAAAAAAAAQSQAAAAAAAAAAAAEEAACQAAAAAAAAAAAAEEkNqojfedq0GZCV73bXK22KS58dY5r7nrvTKiQlp6w7m64ZmQnU/MPa5bPgAAAAAAAAAAaK0IILVRo+7eoV3vea9nZzkLZuVE5nfdPdLbyHFjTnS78GvOhXYlAAAAAAAAAABolwggAQh4Ydcbuu2vv9C38n6o777yY/30rf/WG7vX2rUAAAAAAAAAgPaAABKOS+iZG6Np7254WsHkdjvdlHfe+vu00S5Fy/bpkWo3cPT7bc/omDN/eb8x+lbmZfqkplrvVPzd2wgAAAAAAAAA0C4QQGrnFk4NB3q8V0PGOdL6+3TxnVl61k15t0b3aY4u9o97tGCOimd76fCenfWYrqkVYEJL9O9r/lvl1fs058Kb9Jsv/1S3XfCv+m72NyLTAAAAAAAAAID2gwBSOxc7BtLj30mzaxLb+Ppj0qxJGuXOpWna7JnSgmXRnkYT5upGO47SqBlzNXHFq1q+15tHy2TS1pV8vNsNFI05e4RdWtsuZxuT0s70VgKaQmHJAfdn1adH3J8AAAAAAAAAWgYCSGikkHYUSRMH97PzcWQPViQMdfZgDbaTaLle/2CtBp7Zr97g0Zw1/63CfUXuT4JIaErvhw7aKQAAAAAAAAAtAQEkxOWOcRRJS7dbxSukwQNNWChN52ZL+Tt3e6vqs3endtpJtFym99Gws5wLm0A4eBQOGsXOA8dr2MAz3J/D7U8AAAAAAAAALQMBJMSVNjArmpbODQJNUJbtdDTqq/6UdSEtne9PaedYMF9Lbcq6jYvmKH/ClbrsbG8eLcvDm/+gb+X90J1+cddyd/qND95y5/0GndlPT33tV7q83xh3/oWrfqeHv/xTdeuU7M4DAAAAAAAAANoWAkiI78K79eysx3RN5rkaNHaO9MBcTQsHgZx16x4o9tZljtXdmqt1d4+0Kx2zrpTmmHXn6poFM/Xs49dGU9qhRTFjHoWDQsZtI67X5f2/ZOdqK/54t5vqDgAAAAAAAADQtnUoKSk5lpqaamfRku3evVtDhgyxc0D9yj4N2am6mZ5I55+VXWfwaO3eLZq7/tF6g0x++0sr1K8fAScktnLbfn3j3kKNH9pDL90zzC5FUwiFQsrMzLRzAAAAAAAAQOPQAwmA1xOpnuDRw5ufdHsfNTR4BAAAAAAAAABovQggAQgwvZFu++sv9FRRnh7e8qQ7bXoepSWn6r/G/i+7FQAAAAAAAACgLSOABCDApLLr1qmrXnhvud744C0dc5aZtHW/+fJPneXJ3kYAAAAAAAAAgDaNABKAAJOibu7YO/TU1x7SC1f9zg0ckbYOAAAAAAAAANoXAkgAAAAAAAAAAAAIIIAEAAAAAAAAAACAAAJIAAAAAAAAAAAACCCABAAAAAAAAAAAgAACSAAAAAAAAAAAAAgggAQAAAAAAAAAAIAAAkgAAAAAAAAAAAAIIIAEAAAAAAAAAACAAAJIAAAAAAAAAAAACCCABAAAAAAAAAAAgAACSAAAAAAAAAAAAAgggAQAAAAAAAAAAIAAAkgAAAAAAAAAAAAIIIAEAAAAAAAAAACAAAJIAAAAAAAAAAAACCCABAAAAAAAAAAAgAACSAAAAAAAAAAAAAgggAQAAAAAAAAAAIAAAkgAAAAAAAAAAAAIIIDUipx22mk6cuSInQNaPnPPAgAAAAAAAABaH57utiLJyckqLy8niIRWw9yzAAAAAAAAAIDWp0NJScmx1NRUO4uWbv/+/aqurtbRo0ftEqDlMT2PTPCoR48edgkQ38pt+/WNews1fmgPvXTPMLsUTSEUCikzM9POAQAAAAAAAI1DAAnwMQ+yzQNt8yDbPNAG0LwIIDUfAkgAAAAAAAA4EaSwAwAAAAAAAAAAQAABJAAA0Hg7cjV9+vTg67kiu/I4fbRaD/16tfbb2eawf/VDemh1cx6h9Sh6brpyd9gZAAAAAACAGASQAABAo5jAw/T/WGrnfHLu0fTpD2n1R3a+MUxAavY8rbOzzcHU+6Z5zXmE1mK/Vv96uu7JsbMAAAAAAABxEEACAAANZnrwhAMP036+REuWhF/3apq7dJ3mPdm8vYgAAAAAAADQ/DqUlJQcS01NtbNA+2YG8zeD+pvB/M2g/gCal3m/mfedeb+Z9x2aTigUUmZmpp1rKkXKnX6PTN+ji299VHeMi/2cjK43waUp53oBJ7fXz5hb9ejt4+TtEdxuYrndxseUf4Mej+x770UFuieyzTTdu2SKsu2c6VnkBrWm3qslV9ulJh2e26PpYt06/wbpyZs0b623ymOW36Fxsb8C+ff7+SUq+I9or6hwm6JMT56Ycn11iLZ9mlPjpVpqtouch7r3jdbDaev83sqL9M6ybY+s9y1zpz2RY1vRukfPfVR0/8T7Gb7rNtVpUY5XSnibyHUI87cHAAAAAAC0OvRAAgAADfNRSLvciYt1yZB4QfZsDZ3qTS0tPMHxkPzWzvMFj4ylumd6rprwCHGs0zxf8MhY+h/+MYPiBICMnHtqj7G01gaPjIy0+MEjI96+pq2RQJHhzP/6IV/wyDDLor2+4qXqM3Wvb+ynxuwXDh6Ze6H3WXGCR4ZJaXii42IBAAAAAIBThgASAABomH3lNmgxSGkJOi/37nOxnWq4HuPu0JKfewnw3B46S5bU6t1kerm4qfLm3yrvCEu1LRLMqU8Pjbt9ie61wS3Tu2nJkji9j2KZHjRuer5HdesYb1EkMPbRNhWEexTZNH7h8td9WO5N+ETqb3rkNHJfr75L9Oit9tyuda5CrWXlcvf8aLXy3ECO6VVkj2nP2bp5+SpStqb42uPVy+vRVPd+MSJ1N+dxv0Kl3uJIO8PXM2dbMwf6AAAAAABAcyGABAAAWrYxt2piOI1a6jhd1Ry9nGq5WLdOCKdf66Fx34gJiDj1uMMESkw6uh25mj49Tg+cMH/9jcbs69Qj3Nurx5BLbPAs3jLP/ncLbJDP9NKa7pY9PdJbaZdCH7kTtTR2v2nfCKcjNHooLcObMj2WzL65muIFkmJS6wEAAAAAgNaDABIAAGiYs3rbYEXiQET5h17IoUm5ad+ijqeXU+PF9LKKtD3MjAdkAy3/ERxRqH6N2Tdeb6/EPcDqtk7l++xko9S/X/bV98qG2FzhQNJ0X2o9AAAAAADQuhBAAgAADZOapkHuxDoVvBsvLFCkbbYnzbRhTdjvpDQUCEI0S5CqlpggWSR9n2f/6jx5oZ+Ldet8L21bOA1dfU5k3wbzpcfzv6b4e0LFc7z7uanxwttHU+SZ8avyG5xqEAAAAAAAtCQEkAAAQANla6Idc2fdvJv00Gp/WMf0qrnHBkamaWhswCE8Ro8jGkCJw7ddhD8IERmrJ06QyhdoKloRTr9WW7xxhmpbp3krwiny9mv1S7bGU4e6KdkiQaypV9mxlKLBs/qcyL71iaS0858zmyZv+vRc50hBu8q9M9bY/YKiPapy3X3NmFPRIFL4GAAAAAAAoHUhgAQAABqsx7g7Ir1lTBDJCzCYVzh4ZHrVRMe9iY7REx1b56Z5dfUgsts9FwxZRFKihcfl8Y0rlD3MJk9bO0832WMkHlPIkXOPu40X7KiD3W769Js0b61ZEB0XKZJGL7JNuP31O5F96+UfIyp8zmyavItvnVhrPCLvGj6k1WrcfkHRwGJkX985C4/XBAAAAAAAWhcCSAAAoFGyr16iJT/3j3hjTb1XS5bcYXvVWKnjdEfMttN+Hhwvx3XulMRp3MbcqnttgMJl0qzdPi46LpKz76P+9SbQ8/NbbeAqKnacnrrFlmECY9G2+QNpLtP2+Xb7nG119tg5kX0bwlyf2HN58a2P6o5x4TPWQ+Ouj3d+6tsvMdOm4DUwpune2PsBAAAAAAC0Gh1KSkqOpabylz1gfOPeQq3ctl8v3TNM44fyjWmguZn3m3nfmfebed+h6YRCIWVmZtq51mn/6oe83kqxAaPm9NFqPeT2cgoGjAAAAAAAANobeiABAAAAAAAAAAAggAASAAAAAAAAAAAAAgggAQCAFsmMq7NkyRItOVnp6wwzZpM5JmP3AAAAAACAdo4AEgAAAAAAAAAAAAIIIAEAAAAAAAAAACCAABIAAAAAAAAAAAACCCABAAAAAAAAAAAggAASAAAAAAAAAAAAAgggAQAAAAAAAAAAIIAAEgAAAAAAAAAAAAIIIAE+7+096Py/g0pDh7wFAJrcpweP6u97qrV8634t2/SRs+SYtwIAAAAAAABAi9GhpKTkWGpqqp0F2rcvzl6n3fu84FH3rh01MrO7Lsg8QxcMcl7Oz8HpXd11AOI7ekzaXXHQeR3Sno8Oez+d95R5X5np3fsO6qNPjtitPT26ddKwgWfopXuG2SVoCqFQSJmZmXYOAAAAAAAAaBwCSIC1/9Mj+v2rZdq864A2FX+iDypq90LqeUYnN5g0Mqt7JKg0sHcXuxZo+0JVhyOBoXBAaM8+Gyhyl5tefHXrenpHnZPaWf16ne78PF3907pozrUZdi2aCgEkAAAAAAAAnAgCSEACeysPu8Gkze85L/vzHx/VDiqlpSQFg0rOyzwYB1qbTw9+7uspZHoOeQEhExj6IGQCRYf02eGjduvEzjnrdOfVWf17dXV/9rPz/Xp1cafNewbNjwASAAAAAAAATgQBJKARzMN0E0zasutTbXrvE21+71OVVx22a6PSe3aOpL4zgaURA7spPZWgEk4dk1rOBIDcQFC4B9E+m2rOBIqcdR99UmO3Tsz0wuvfq0skIGR6EpkeRF6gyPvZ8bQOdmucSgSQAAAAAAAAcCIIIAEn6P3yg24wKRpUOqCPDgTHeDH6ndU50kspHFRKS+ls1wInpnZqOTv2kAkQnUBquWgPIm++2+mn2a3R0hFAAgAAAAAAwIkggAQ0g+K9n7njKG0p+dQNKJnA0sfVn9u1UWb8JP94Suan6eEB+IVTy5meQh+YlHI2tVw43ZyZ/+xw7fsrVjS1nAkMnR5JLecGilJJLdfWEEACAAAAAADAiSCABJwkf99THRhPyQSVqg/VHk9mcHrXSC+lcGCpe9eOdi3amqPHjnmBoUBqORMYsoEiZ/p4UsuZ4JDXk8immnOWk1qufSGABAAAAAAAgBNBAAk4hbaVej2UwkEl8/NQTe2g0nn9kmsFlbp2JpVYa1DxcU2gp5DXg+hQpCeRma5P3anlTA+irqSWQy0EkAAAAAAAAHAiCCABLcwWG0wy6e/CYyp9fvSYXRvVOyVJZ/forLN7dtYz/36+XYpT5b+efl8rt1Xp4+ojSj0zyQsYfXRYnx06vtRyJlgUDhiRWg7HgwASAAAAAAAATgQBJKCFMynOwinvtuyqtj8PSM5ydeig745P0/+75Ty7NU4VE0D6r2dKI9clLDa1nOlJ5I055PUoMsvILIfmQAAJAAAAAAAAJ4IAEtAKHT5yVHf8fqeezP9Q/+uf+un/fG+QXYNTJRxA+vroVM2a1NcLDp3VRd26kFoOpwYBJAAAAAAAAJwInmwCrVDnTqe5qc6MLkm8jVsSM0bV5SN66gvnJBM8AgAAAAAAANBq8XQTAAAAAAAAAAAAAQSQAAAAAAAAAAAAEMAYSEArMefJ9/TIS3vsXN1u+cY5mns9Y580J64HWjrGQAIAAAAAAMCJoAcS0EqYAMTVX0qzc4mZbQhWND+uBwAAAAAAAIC2jAAS0Io89qMv6JLsM+1cbWad2QYnB9cDAAAAAAAAQFtFAAloRTqe1kGP33ae+vc63S6JMsvMOrMNTg6uBwAAAAAAAIC2igAS0MrEC0zUFchA8+J6AAAAAAAAAGiLCCABrVBsarT6UqmheXE9AAAAAAAAALQ1HUpKSo6lpqbaWQCtySMv7XF/3vKNc9yfOLW4HmhJQqGQMjMz7RwAAAAAAADQOASQAABogwggAQAAAAAA4EQQQAJO0L0v1+jPW47o08PH7BKg5erWuYP+aUQn3TM5yS5BW0UACQAAAAAAACeCMZCAE2CCR396u4bgEVoNc6+ae9bcuwAAAAAAAACQCD2QgBMw+r8+cx/Iv3Rbqi7oT48ONEzZpyE7dWpc+J9H3Z5IG/69q12CtogeSAAAAAAAADgR9EACTkC45xHBI7Q29JoDAAAAAAAAUBcCSAAAAAAAAAAAAAgggAQAAAAAAAAAAIAAAkgAAAAAAAAAAAAIIIAEAAAAAAAAAACAAAJIANAKfHqkWgV7t+qpojz3ZabNMgAAAAAAAABoDh1KSkqOpaam2lkAjXHe//Ee4O/5ZR/3J9AQZZ+G7FT9TJDo99ue0RsfvGWXBF3e/0v6wdDvqFunZLukfhf+51H35/b/bPg+aH1CoZAyMzPtHAAAAAAAANA49EACgBZq18e7ddtf5yYMHhlmndnGbAsAAAAAAAAATYUAEgC0QKbn0S/WP6ry6n12SWJmG7MtKe0AAAAAAAAANBUCSADQAv3+nacbFDy6vN8YPfzln7rbmn0AAAAAAAAAoCkQQAKAFsb0JHpj91o7l5gJHt12wb+602YMJLMPvZAAAAAAAAAANAUCSMBJF9LSG87VoMzoa+56u6o9W3+fcy7u00Y7m9Dep3VD5o1autfON1bC43jX5YZnQnb+1Cms2GGnEgsHj8zYR3PW/HckcNSQfYEmsSNX06dPD76eK7Irj9NHq/XQr1drv51tDvtXP6SHVjfnEWofo+i5eOenSLlNee5inIx2AgAAAACAto0AEnBSmSDFWN2dnaNd7+2wrxxpKkGkU+JEg1HNxASFjG6durrp6UywyC9R8MgI7ws0Jzcg8h9L7ZxPzj2aPv0hrf7IzjeGCUjNnqd1drY5mHrfNK85j9DwYxQ9d4/8Z/DiPr3t1Ik7Ge0EAAAAAABtHwEk4KTareIV0o1fHWnnjZG68YEJWvj6JjuPZnXh3dr13t0aZWdbsk+PfKb3qj5wg0XhIFJdwSPgZDA9W+7J8aan/XyJliwJv+7VNHfpOs17snl7EbU22Vfbc3R1tl0SdfGtj7rr7hjXwy4BAAAAAABoGQggASdVP2VNUK1gUdp3FmrX3b6gktszJpziztdDxl1+n+beZ1Pf/U9sOraYNGyJyoljoy2zvm3d7e572peGzxx/k+ZG9g2mhwuUe1+w3f51c1+3C8MaUXeXSU13w9POGfCEnrmx9rw5fiSFnVPnsXOUrxW6e6y//BUJ23KyDDqzn52SHt7ypN744C03aHTbiOvrDR759wWaXpHybc8WE/iYcq47aWVrSjiItHae8m02RRNwclO0BVLTRdO35TrbuduEezQ5+97kLDfp1/z7FoWn3VeuU0JU3BRxJh2eu63pEbVfq389PRL4WjfvJrvcm6/N2z56vMRl5z4Xrtcv9Ojc+McI1s9re6K6RLYNv+Kl9ItNHxipW93trFV2E6fNAwAAAAAAbQsBJOCkStO0uXM1ccFUG6CIN+aOF9gYnGNT3OVk6e6x/kDGY9o5eI27bs4/T9KNzvwr4fR3e1do2YoJmnRpmjNTXzk+6+/TNUVztc6m1Xt21grdvaiOHlELXpXmmm3X6L4Jj+mazGX6mrtvjlufR2ybTNAmWq6zzml3pL3mmAtm6ll33RplFT3mLXc1ou5hFzrnYsWrWu4GgkJa/rI0Uf75FbV6fs1Z41wLTdB9axZq2tne0vw7i21bbNtigl4nw7BegafykSDS5f2/VG/Po9h9gSb1UUi73ImLdcmQeD1msjV0qje1tLAJgxNr5+meQEq2pbonJojUdEwQ5ibNW2tnw3LuiTOm0DotzQnXa4B6JNvJ42QCPOHgT4QJqPkCPYFgW5hJHVhPMChu2Q3YDwAAAAAAtF8EkICT7exr9bgboNihdQ9MUP6dY91AUmQMpPXLtHDCXN14oZ2/cKYbyIgEiRQOEBkj9bVZvh5Nu4uVP2u2Fwyptxwfk9bt8WvllRrSjvqeJ4aP4exxrsnINGuSTQnn9bDyeEGbiZMn2HK9VH35zjITQtr4+mO+/dI0bfZMd8rVmLpHmGOvULE7BNBuFetK3TJZ3rwbWJupr4XLq8PEB2ZG6uS27RTo1im51rhHJoj0VFFencEjs4/ZF2g2+8rtGEWDlJbqTtTSu8/Fdqrheoy7Q0t+7iXA05hb9WiclG6RdHnzb5V3hKXaZns51a+Hxt2+RPfa4JaXNu4OjYvXho+2qcAEj2w9zDHD+637sNyb8Jt6r1evJf+s6Q06humpFW+7Im1zAzzTdK897qO32nNZGrK9kII9wALnIydPqz9K1M79CpV6yyLnMXy+c7Y1UyAOAAAAAAC0dgSQgFPITV1nA0kLp3o9bEIlxdKKObo4kkZtrO5eIe0sie2p5Bk1w/RoWubua4Iy4V42jSonkC5ujpbZxSfGG+9p8MBwsMvPC1JNHOxLt9YvSxPtZGPPgSdNl022Y0mZAFT2YI0amOXNu4G1cLCqdfjB+deqd3LwyfNTRS8lDB6Zbc0+QJs05lZNDHeuSx2nq2yApEl7OYU55d9hAiy3j1MPmyquVs+diIt164SmijR7gaUlS6Yo26bIuynQ68oR6QE2TVeFA2zh+iYKiLl6KC3Dm1r6H176ulxN8QJJ5njeKgAAAAAAgAACSMDJFDNOT1jawCw7ZacnRNPJhV+PfydeIMZx9gRNcnvnbNIrC6K9bBpTzsZFc5Q/K8dus1C3NMnTRK83Uvygj9e7J3+n213IY4I8drLR58BKu/RKTSzaqY0lxV4gzaS1c+aX+gJrrYXpSfTTC39YK4gUj9nGbEvvIzS7s3rb3j+7FEowflD5hzFBj6aQkSZ/f6Tj6eXUcNHxmWqlimtWvnGXZs+zPb1iRHqANV721XZ8KiscSIo7xhIAAAAAAICDABJwMrnj9MzRxYFxdUJaOt+Xzs1uszAyrpHXOyiS4q4W2/Nm6lTtjKRfczS2nKKdXmDL2e6RBe6SE+TVK5yyzoxrtPDOaEq7UV+dKS2Yr6XuGEU2pV1Yo8+BdfZgDV7xqh55WcpyOzf1U5Ze1bKihqWva2kGndlPD3/5p7XS2fmZdWYbsy3Q7FLTNMidWKeCd+OFHcJp2KRpw5qwX0skhZunWYJU1v7VefLCRhfr1vmmh040JVyz2pEfGXcpnGYuksIuLBLAOx7hHk7m9ahuDX+srJ2n/AanAgQAAAAAAO0JASTgpBqpOe+t0X1FU21qNi8927LJa7Tr7nAPGWebNXO1c6pdP3aO9MAazakjAOL2vAmMjWQ0vBw3DV44ZZyz2S0PTIgGlE6ASdH3bHY4Fd1ULZyVE+1FdOHdWveAdPdYr36PaGYkhd3xnAOPGRNqhfJXZOncyBhNznx2gvR1bu+tFW4d6g1OnSKmV9FtF/yrnvrar5z236TvZl/lvsy0WWbW0fMIJ0+2Jtqgxrp5N+mh1f6wjum5c48NvkzT0HDKubC15QqPIBQN0sTh2y7CH+T4aLXyEgWpfIGmohUJevE44o5lZEWCU1OvsinhokGxxqjrGPHsL/eS00XT9e3XtrdjWhAJ4C1VXuTcR3tM5cYEgqJ1iN3GjJUUDSLtKo8XDAQAAAAAAO1dh5KSkmOpqfWnSAJQ23n/xxuPZs8v+7g/gYYo+/REQ3Mn5sL/POr+3P6fBJ7aslAopMzMTDvXtIqeq2dcoPm+8XjMeD6JUrI5TG+bKSZgYsYb8qeMm3qvHu2TV3scoLAxt+pRM06RmY7dNyBan9h6R47ts3/1Q4mP6dRpydXZvjbFtNUR7xhDC+2y8P6O8HYX3/qo7jDjGdXVBl9bE9bPt028OkwsT9Su2m0AAAAAAAAw6IEEAAAaJfvqJVryc/+IOpYJkCyJCUakjtMdMdtO+3lwPB7XuVMSp4obc6vu9adz8wePDGffYLq3i3Xrz291/h8UOw5QPD3G3RGsh2nTfFtWzjYVuQsTa8gx4optg2njElvW2gJts2NOmfrVOvcx5yNeHcx+tVLiOVvdG3u9AAAAAAAALHogASeAHkg4HvRAwsnQnD2QTpZIb5vYgBEAAAAAAACaHT2QAAAAAAAAAAAAEEAACQAAAAAAAAAAAAEEkAAAQIvkjvezZImWkL4OAAAAAADgpCOABJxUmzQ381zNXW9nrdAzN2pQYLm3nVnmvW7U0r12FQAAAAAAAAAAzYwAEnCqrb9PF98p3bdmh+ZcaBaY4NFU7XxgjXa9t8N7rblSy8YSRAIAAAAAAAAAnBwEkIBTae/TumHqY7oxZ6GmnR1etlM7NUGTLk2zCxxnX6tbZq3QslUhuwDtzQu73tBtf/2FvpX3Q333lR/rp2/9t97YvdauBQAAAAAAAICmRQAJOGU2ae7YOdIDa2zPI+vswRqs2sGiUXfv0OPfiQaVNt7nS3F33ya71Ft+w3336Qaz/Iantdxs51vvBq18KfHC6fPcl7M9IaqW5dMj1W7g6PfbntExZ/7yfmP0rczL9ElNtd6p+Lu3EQAAAAAAAAA0MQJIwCkR0tIbpmrhrJxAUMgzUnNyZir/zrGRwE68MZOuKZqrdW6KuzW6r2iqbngmGvrJXyDdYtY9fq0u++pMacEybbTrQqteVf6EK3WZ6fHkps/L0rM2Vd6z2XN0sT/YhFPu39f8t8qr92nOhTfpN1/+qW674F/13exvRKYBAAAAAAAAoDkQQAJOgYVTx+puTdDEBVNrBYdcF94dGf/o2VlmexNICvcaCmn5yyt04+xr5YWe0jRt9kzlO8siIaRZkzTKTurCSbpRj+kVe5wPdkb33fj6Y5r4wMzItqNmzHXqFA024dQyaetKPt7tBorGnD3CLq1tl7ONSWlneisBAAAAAAAAQFMggAScChPmat3jC3X/AxO0cGo0nVw8JnWdF0haobvnmBRzu1W8IhxUsq+pj0krivWB3SdopG40x3nd9CzapFcWzNTX3JR5Ie0oUqCn06Cxc5SvYu2ooz44eV7/YK0Gntmv3uDRnDX/rcJ9Re5PgkgAAAAAAAAAmgIBJOAUCPcASvvOQl9gyOOOSRQnjVz/wRPsVD9lOZM35niBpejr7mivoxhpl17p9Sxav0wLI72T0nRutjTxgTUx5SzUNJPeDqec6X007CznIiUQDh6Fg0ax8wAAAAAAAABwvAggAafYqLtzdOOK6NhDXrAnOKaR6Tm08M4Vmjh5gtKc/y5zfi6cHw06bbzvXA26ITpfy9kTNGnCY7pmarHumzHSLnSO/VUz1tJj0fGRTPAq8z5S2J1iD2/+g76V90N3+sVdy93pNz54y533G3RmPz31tV/p8n5j3PkXrvqdHv7yT9WtU7I7DwAAAAAAAADHiwAScMqN1JycmdKCqV7Po7Ov1ePv5WiwP7Vc5lQpZ4ce/44d9cj0XMqeo4vt+msWzNSzj4fHRIrHCzppwpW6zN+76MK7te6BYl1jy7n4Tum+NYl7MuHkMGMehYNCxm0jrtfl/b9k52or/ni3m+oOAAAAAAAAAJpKh5KSkmOpqal2FkBjnPd/vFRhe37Zx/0JNETZpwn7igWYnkjnn5VdZ/Bo7d4tmrv+0XqDTH4X/udR9+f2/6SnUlsWCoWUmZlp5wAAAAAAAIDGoQcSALRQbk+keoJHD29+0u191NDgEQAAAAAAAAA0BAEkAGgFTG+k2/76Cz1VlKeHtzzpTpueR2nJqfqvsf/LbgUAAAAAAAAATYMAEgC0AiaVXbdOXfXCe8v1xgdv6ZizzKSt+82Xf+osJxUdAAAAAAAAgKbFGEjACWAMJByPho6B1FwYA6l9YAwkAAAAAAAAnAh6IAEAAAAAAAAAACCAABIAAAAAAAAAAAACCCABAAAAAAAAAAAggAASAAAAAAAAAAAAAgggAQAAAAAAAAAAIIAAEgAAAAAAAAAAAAIIIAEAAAAAAAAAACCAABIAAAAAAAAAAAACCCABAAAAAAAAAAAggAASAAAAAAAAAAAAAgggAQAAAAAAAAAAIIAAEgAAAAAAAAAAAAIIIAEAgIbZ+7RuyDxXg+7bZBfUJ6SlNzjbm30yb9TSvXZxa7H+Plt3+2pwuxtrk+aa8m942jljzWPjfb52OK+56+0KANI7+3TOv+3TBjubUHmlbvy3cuWW2/lG2vDHD/Wbd+yMKeuBSjWqqIbWs6Hb1alauQ98qBtfqz7hdgd9rN80Zd0Mt70fOq+mqmN9mqINsUyZvvujRTr+Opp7/5w/fmznjpP/PmySe7y2JqlnI+pW/lq5vXeDr8i97TDbePPe+Y9sF/v54Z6f+OtijxO4hv79zKtW+/33u78OMW1sTDl1buu9vyPraq3316epeO1q2e+/mM+9xmiK94v//eefbkIt8f0Xy61jeNvYukb+LTKvOt4fse/dwH7m5Tu39byv/G2oVe+66hPmll97XeDc1PpdpTneg21JQz9PTuA9HZbwfm9k2Y1435xyp6Su9t+leL+32/fob95pgutZL+/eqv056Tt2M30+GwSQAABA81j/mO5eIU18YI12vbdQ0862y1sDEyyb+pg0K8ep+w6te2CCtGCqbnimuUI8zSf0zI26ZoF0Y84Opy1rdJ/TlIVT/QG9TZrbiOCVKY8AFNBY1Sot66D+ve1s+VG9nN5R4dl2o/xzFfY+Tf3tbEO5D7Pi/eFu/mh++YgmT+quPb/srSnHeUITlx/HcbbhRDTJg1WcBB/rN4uO2On69b6it3Pf9om+ZnRylnbSTVckexs4Pth7TMPSpdwHPlOhe5+bbbvrER3WyMg94bwPFh2W3PXeup+GH2K9s08jl3XUC75j3L8o/HDJqe8DhzVshl33y666a8tnwQdgvvt9wx8/0/0jurrbvjDiiL4VOX5jyqlv2yP6oLyDHrkzvN55/cuZdp2D9x8Savr3n5/5d+JbZZ21yd0+5r41D22dY99l7+tNkz7XtyL/ptTx/nSUl30u2feV9wr/W1bPe8U55k+XyXuv3NlZWnYgGHjy1WfPDPnqY5ltnPJftrMR7meGLdfZ94V0/2eN4xS8B9EAzRg4QLLGjezgnOOj+sAuCSvfUuO8hzpp3Pl2QXN6p8b5N7iT8zlQc0qCfQSQAAAAYu0uVr7zY+Lgfu5s2ncWuoGkx7+T5s43rZGa45S96/Fr1Rylf7BzhfP/Ccpym5KmaY+bQFI4oGd6P03VQjPZACZ4dPGdpjygDTn/LO355VkabWcT6t1TC483SFF+yPkDM0nj7L4bNh3RXSN9D0WbUkPb01An0u4Y5g9tjTz9BANnyZpyZx8t9D3kG5Ye/4Ffc2iaNrQvo/+lTzAIcKKa+h5vIuWvHVRh7w52rrG8h993zfC362Ot3mIeTMXe8/ZhVtnn3gNh8/lS3kGTR5j1zraTO+nlTYe8dbHn6vwk3aVj+sBdeaZ+9Ms++lHkwdeZGjdCenlv9CF89H43dVHkc2v0pM6aHHmI1Zhy6tnWPJxWR2UkeIPx/jsOLfjfhKbU9O+/IBPMVeSLH8H71tyXL4/oGrmv3eDUnT29bet6fzpMuZPPNsGrWHW/V9xj9ra/VzjX5KYRx/TyFi+45K3rrOnhfc/vqkdUo9X2oN6XJg5r2IjaxzW/n0yedEbk+sZ+fvMebEFa6L+FbVHvEUmarCNaHehZVq3Vm5z376SuzjWo/btp0/K+MHXXyK7q3/uIHvV/QeMkIYAEAACOiwkmuOnQnrGp7cwr3JPFpH8zPXgc+XeOjS4Pp8Gzr2hPlnAat/s01017F+4h40+D57x8aeTqPL4VTN0WTKMXWJegB46pe6JeRwn3j6T6c9rirr9HD5g2xN3GtKd2Crtw28KvQI+fQGq9hqYGXKG7x8Zua86tDR6tmKOLE53z8HLnuOHg0cKpzvK4dQ/ve582uvO129Iae3GhFQp/E/O1aAoX861df1qWyLd4/ekw7PRvfGlqAt8wTphaxv+tTy+VhD99SfCBS/ihsFnRiHr6eN+Ir/RSarjb+dJ5xGlPrq+8YFqVj710GHHXWf522+nf/DFaXuw38xOn+DF/aMs+RHMEzp9/W3v+/mjPyW9DGrnsmLP9YY10v0Htrb/xtSrn5ye6xanX/Yt8+7ttjpYbPH9x2utsHyw/pg2Bb23HtMGRqL3eNXLupfC6wD3i8Nfzj879kYD7rfctzsSWz6LlJ7z34mvuOhpeWfHvSW+dd9y6tnM1pG32vq73PetqwD0ej61H8P1vy7H1DxzHWf/TTUn6xeSOdoGn3vZa5uH3/f4Hvob7beOk+h8Omh6NsUGXON+Ubjzf/e4Gdny9KF2fq7See89T+32TkGlLwt4NrfP95/88D3ye1Hfv+o/zwGd1Xs867zPf+6VJ3n/uNnZdW37/xeh/ti9o6/47Hg6omvsyURDIUef70/ROPr4vQQQDWh5/0La2cODYkd7F7Un1o5F2PsJrV+L6BN+DgfdfTA+nOu/7B5x7xr0m5Xro985P33s3cH+Z2UTlxOX9fhDZPsH1dtl7N/b3I3+b/PdrnfVwy7Lran2eHMd7wD1H0WO4x46dN+fMtmGDOYbbm+yYbnnA/7495Dt2HeciwJ7D8PH8bYv9TPC/L/3r3OXRz4XfrA5eU8N7b4av+4l8TtT9O2mT6X26Jjtvtvs3+e9Vf3A4/Ltp+HMpfpsi184KngdvPvgZarnH8r5QYr5A4g9CnywEkAAAwAlZuHOwHg+neVsxRwtNsOPCu7UrZ6a73k1hZ3rXmKDJ2DnK96WFC6ZSc6woVtbccA8ZE4wYq7tXzNSzpofOmrmaGCeNXNzjO0yA55oFE3TfmnDqNhNE8QIbwXU5utEEUPxjHF040031ZrgBsDjBpzr3NxZIXzP1fu9efX9ysG6hVa8qX87+M2r95Rbp5eOlnNuhZ2f5Us7ZwJyXFtCsi7YpkVEznPPmTplt/cEe0xvJqbuZnDBX62yvpI33+c65aZvZb46zj3NN3XPscOt2d+261+Jc87uctkTra87nnOA1B5qN84f03iR56Vs66eVln+inOsOd3zTJ+eNr2WcJ/pg+osKzbaoodz9fWpgI74/1cGqZTZPk/NEe/uPc+xZi9FvD4TRU9oFMrfQvx1nPLYf1wWTv+G46qYQPVo445XeJlB9NX2X+2PWlxbqzswoj6+pyTPfLlufsM3nLZ4E/jKMpfrrrkbLY1FThh2jOsRf5UvO45RwMHPv+stO8cm5Oc8+Dejvlhr/R7UpyzrNzDGeBm8LO/Ya0c10WfR5Nf+Wez/D5S9De3mcFy39nn68NXvqeaLohfxvqa69jy+fqb+vywgjnOi8KXyNTz2h6oU1nf+6c0/jMN9lfGOFMmBRH4TYmvPdqOxl1jGjoPZlwu2Db9szoWGfbohK9Z4/zHjcPpR6o0eTIt4m9enkpqJxyRh51A5d+G5Y59Z7svz996j0vH2vJsmO6K2Z/k9oq/kNpb/vJ/l4A/s8UZ3qynYzlPihPlG7Hafejvl5Gsfe7/A/Be3fUMDtZS73l+MRs66bzMsHcyIM3//Vvfe8/8/DVn0KwVjqwuu7dSNozZ51zQe+v777l/dek779Ybq+iyUftvXnQvbf8/84PSz+S+GF9wvenuaftlyDsvnEfHhu13lfOv32+zwc3wGX1Tu/ovo+WhB/Ev/OZe84Ky7yye59/Zh1t7eDU1TyYt3UKnC/fe7Cufyvru+/LjziVN+t6644xThu2RFNyBXpW1fv+CSp/7YBuSQ+nAzS/H9TXU+OIXvb9vmWuw+qR9ljO+/7+l23bA/Vwyg2kEK3r8+Q43wOmp2h5uMeYDdpFepB5AUv/feD2VjO/RznX7pE7o70DX152VOPCdXbORTTtaCKmvp/o5ZFOfd3ft0zb/L9TOZ8J/s/ROj8vop8LPxpngi/RHnJmX38A9vh+Fw1L/Dtp07I9fxPdqwGJ2+T2ZIqU4ZyHsg7B+S3hgFSQeyz7hZLeV3Tx3R8nDwEkAABwQm78qhdISBuY5f7cWRK/h4kXNPFtf+mVmqgVWrbKt/2EK3VZeKykvc460+Fl1iSNMvNnT9CkCVL+yytsAMQT//ib9MoC50ekvHDqtrudsmLXjdTXZjk/FizzBWK87U3Aw+MFX7yeQA3Z3xGut8Nrq7TwdRNkCmm504ZAWyPsOs3U1y70loy629TbBndeN726nPNwqZfsbtRXTZDuMb3i76EU6+xr9bgbCLJMsMvXQyiWd7yZ2uH2JGp4eru6hHuh9fe1BWh+zh/Sk+wf2O4Dm+gfZe7DlYR8YyAkehBregb4HsK6f8w5fywHU1uEmT8Io9vWTv9ynPX0fVvaTSeV8I9JX/kmjU34j3j7bcZoW4MpcBLz19f/ENk+1Ig8hItJ1RPoTRETZHO/oR0UeDjeYCblT/ThifswOizwTVFHXWmYfA/eTPqeSEqSQBvqaa8xokukfP/Dvfj3TwM16t47yXVs6D2ZaDtzTN86735N1Da/BO/Z47nHyw7ah9e+e8Oei0g5br28SZd5kKpo+qpa6jsvMefaY66d8z6o9SDJezBlztMvwvVpKPchqHM/xE3T5T0M9KfhcuvVkB5QAY0pp/a2bq8Kp22Rh9L+B/6BclrD+082HZhJb+QJpv4z6rp3fZ9XsfdcPPXdZ2GJtjNt861r3++/2tyeAi/bLzb88gxpUTDYc/+iGvuwPua+rYvbs0+R4IN50Kxln8R5AB7nfVWX870vRkQCU5tOq//+iTimW5x/kH/htiUmWGLOlf+9nODfyobc95Hz7abVjN5n5jMg/L6uv5wgN8gXSbfnBefqFr2vvN+3ovXyf2aYeijSbu+zJhJIiPuZYB3371md1N/5Xc2rv9MOJekm589dd96WWd/9akTPXbIy0t2JOnyuR23wKJiGzbkfltnrb1Lmhb/IU+/nhT8QEtNrxv0ild33uM9RWKLfSZuel8Yu3PPW+zco7u+qdbXJraMtw5yH9C7OOjvvntP4ASnz+0CknW46y8aco6ZBAAkAAJxUbvozk87M9EZy5vN37vZWJLJgqk1/ZnrGOPMriutPy7J3p3aan9mDE48r5AZSvLpcYwJCKtaOmJ4xXjDF9F7y5hfO96Wha8D+EWdfq1vCQSYbGJs4eUKcuu1WsWnjhKwE6VsM25PIHNumCUwUtIuy4yyZXlzu/GN6pM7UfM65zjY9xXyBp+MRbrcROV9195gCWgM3MNG7gYNIx/Q4CvRGOhH+1DV1/tHs/+a/7yGCG7Q5om+Fv2XsvEyqprpT4NSl9jepz1nklGVT9cT2pvCniTnnZWedXX5izMP1aLk/9XcMjZdGKB7zgMTtqRUtJ9LDKtCGuttbl9r3j3lY5E0FzkucB5B13XtuapTwvu434JunjrWPYzX0nkywnXvMQO8TL0Vh+FvzjVbXPW56OfiWRx7YmhPe2/fArF7OPefcv9EHO3HUc17cdtcKsJhrF3u/mvvbOSfqHNMbz+G/pm67Y7yzz7325kF17QfQH+s3//aZ7o/0svGYevnfs4GUdfbBd1BDyzHib+uOt+Jrm/+Bf7Cck3xvW7X3jaq9r5eezPQqjSw3QYCGpP5zr2H8z27ef37N8/6rfY5tj4nYgKWvh3CtQIc/UJXo/dnbfJHB9550HzQ797U/TVaC94rh//faDb76uMEUG9Da8y8d3fdLQ3/3iG1nOFgSeA8m/Leysff9mZpugl1um/1fuKm7nLj/VprPufCyfzvo/O5lFjoS3W8N4tWj9meYp67PkzrfAz617zcv4OKeExNUcO7h0c7LnTdl1vr3ojHM/RStTzQIau6f2F7v5ks5XXWXSeEZ3scGExv7eeEG1sKf5c79FPki1fF8Tpwqbho7G7hxg0T+IJlPndc9Gvxxz4NzX/U/21ln5s37K15Ayu1B6Hwu+n6/dctLmEmheRBAAgAAJ1U4NVvkVV8qNJvyLvoyvYjqcfZgDTY/i3YGeisFuGnb/OUm6hnjS/Xm1+D9PeHeQo/M8dLXhXsRBfVTlglW1RkkC6fOi74e/45TVkPGRjK9kWxqwfjCvauctjUkRV0DeEE48wqfw8d0TWy6P6CV8dLD1P+g0gj2OAr2Rjohzh+akWcxcR/mhvkf2ngPQly9zTfFO0VSw0QfNNXxIK5O3kOTyDepIy/T28H79mTkD203FU8HX1qUJG/5iXL/yI62aaF/PAy3vQ14cGu4A1N7ZXjf4vYeBgd7hNTV3rrVvn+8h+GG+wA9XFZskMBR170XeGDo1qN56lj7OFZD78kE27nH7B3tfRJ+Bb8N3Qh13eP2wW14WeQB7oguWnin98CsQQ+r3IdIvgc7JojhPjjypeCp87yY+yrO+Cmx3/R3tnODRyY9U+x94bYzhv+Bphs88tIQJQoeual2Au/9mPs9bkDCH+BoYDmuRNsmYo5zct5/Ce9tq3HvPy/o46bYjCw3rwQ9H/1qfV5FP7t5//k00/uvvvsgKFHvDvv+qO/9GUe0PonfK4FedVatz5Ewt92xY5jF472vanHrG+e9HPffysbf95G0XoHPvbrLqf1vpQkmmh5L4e3PiJ73RPdbg3j1iA36hNX1eVLne8An3v3mnhPn3t3gvNxUb6anljOdu+lITPq6xjJBoWhdou/vTrrpTpOy03n/BFLd+bb3pYhr/OdFOHDi/B4c+LflOD4nTploT6oNzv0aP32do57rPnpkJ/d++sD5W92cB3OttfdQnH8rPV5PvNj3gfM56dxr9fcQbToEkIAT0K2z94/25g9iB8oDWrbwvQucTME0bt5YPybY4aWFi8OmrIukhjNjKJngSIOCDzat3IpXtdwGUryeNab3S+y6TZpryo2MDRTe1le3QI+m+veP68JJbgAlf8UKadbshMGqy8x4Sb60dN558gJCXhAqmvbPq6cNFplxpyJBpXAwy9bN1+snVFLs/hw80ASwbMAqlg1ghZ6ZH0hhF04TGBUT8AqnHQyzQS1v3KqRmmN7QE0c3M9dDbRaMSlXEo8rEvPApdZD4RPg+3azGf8h4R+y8qW5cAMs9huT7jcp/eMDeN9KTTj+Qr3sN2bDYwY43G8Im28Gm4d8iq1fdEBvt/7eZBMIP3T1HiZF+L856vLaG/uQ0v0msK/nj/eQ5DT1r9WGOtpr5xOy90/k3Jv7wpuqX4PvPeMk17Gh92Si7cwxfSmRwt8+Pu5vHR/3PX6mfuR+s9727rCpeaLnwhtPxBXzgMt8I988iHvB/7C0zvNiHjbW/hazeWDkf0i44Y+251HMg0dXoJ32IWrk293OOXR7HsV7eGuCUl7PhloP/Wrd797Dv3DPELcdkc+yxpRTx7buOv/1ceYX2eO0yveffVDo+5a419PA3ld1sZ9XkZ44pv31NYz3X5O9/2oz979895tzb5p/X+x7IPY6B94fdb0/3R4zvvvBpOOLjIFS13vFKdYpPzJ2oP1SRqQd7rULlxt+H0VTOiYW+77y1TfmPZjw30pnutH3vT1H3zKBbl9vsuN5/0QCPf775ASZekTHvgle+zo/T477PeAwQXvn3n3U+R3SC+p1cs5tjV4ua6IvISUw+l98AVz3PvIFY90vEthA5HF8XoSv5y3pvnvxRM7RKeC+75x2fyt2HEK/+tpkAkzOe/fRsnCQ2TmvZc61DfwbF2a+eBbvM8p+JgV6KzavDiUlJcdSU1PtLIDGuPflGv3pbYJHaH2+d1GS7pncRN/2RYsUCoWUmZlp55qICeCYtHOmR9DdI93AxsV3rnB7FM0x4/WYYMHUxzTxgTXRHjH+eX8Z3pxvnQl0TNVC0/Pl8Wt9qd1CWnqDTV1n+NbXe3yHCbB46eUM03Mn2ksouG6mno3p2RRc77DtDku4f8x58gvvE6mzq3bbw20LC2xv2xkWLCseW76dM/z7+I/lLpe//Jm6cdZjWrgg3D5fWeH6+usza67uK5rjXC/f+Yipb+x5BJqF+UPWP45C7Lz7jXzpBfNNz0TTseWYQaVrlXnY+YPPML1pwg+szEOfT9xBu390vvmj0YyL4JVnHn78VGdEHwYdZz31xw/1LXVy/sg/Yh9UmAdmts5x9rlrhLPdFndD9xv70W9xmvp9Fn3YEUmR47XBzYU/4lDic2D3l69M8xDXpNbw2HqZemxKCnzr1r/dXTO6SovC5fiOHThP5lyb8rqqNLJeMdt6+3oPjZxrMiNJLy+qXd9we803Ot39AuXb8xtpg7225bXbYMRtrzPlLlc05ZC59iOd/SOpx/z3T2/nWuqIU6EE37B1r6Oz3nzb1+zv3zdw78V3MurolRX/nvQfp67tXIG2xV4jey3NtYjzvnDL8G8X55pH7/HagufD3kumx4877yvHnovCWmNFOGLq07D2+utrmGMfcN4PCdoQ4SsrcK3sfWIWm2u6LJjaynDPq/vejp7rCLP/5KPuvRA8V/56JDi2X7xy6to23Isg8h72LY/zGWK457eFv/+C18C3faPuXaeOzue4GZS+1j3nqPM+8x2nzn87jJjrE/f95/93wP9eNDvU2QZHq3j/JRJzb8a2JXyfGJH72fKf19h1/v0ckX+jY65FhG9//70VuVZW4L6LPWZY7D1oBfYNt9NsG/MeDL7/gu+FBt/3lru9/z1qJSwnHv+5dOr9gj4LfA4ExNYjZj62PoF61Hl9vfsz+nmS6D3g3U+1xxyK8s5v4s+1YJ2j9+ddM7qr/8vBsmvt6xev7cs6evP+c+oI3Gcx92jcz4vAtfLOhf93Rk/DPycCda11nETlN6XweY69F2OvZ11tsmVE0tEmvhcSvS9c7rkwvYvNmGx2f//v7LV2ODEEkIATZIJIf3Z+Ifn0cPgfNaDlMj2P/mlEJ4JH7UCzBJAAAC1CnQ8C/GIeCgDNpaH3ZIPv3RYt8cOeWG2jvWjpeP/Fx/sPAJoGASQAANogAkgA0HY1+KEYASScJDzAjo8H2DgZeP/Fx/sPAJoGYyABAAAAAAAAAAAggB5IAAC0QfRAAgAAAAAAwImgBxIAAAAAAAAAAAACCCABAAAAAAAAAAAggAASAAAAAAAAAAAAAgggAQAAAAAAAAAAIIAAEgAAAAAAAAAAAAIIIAEAAABoe97Zp3P+7UPnVa7ccrusBSt/rdzW177++LFd04TKK3Vjs5yPauU+4Ku78/rNO3YVAAAAgFaLABIAAACANqZauS8f0eRJ3bXnl701pbdd3EKZ4NHIZR31wi/7OPX1Xi/os+YJIjU5Ezz6RLekd43Ufc8vu0qLfEGkRgSu3EDaA5VqyhhXc5QJAAAAtAcEkAAAAAC0ScPSk+1Uy/bB3mPSiCSNtvPG6EmdNXlLjTbY+SbRu6cWNnlA7Yg+KJfuGnmmnTfO1PRJHXT/ptYQAAMAAACQSIeSkpJjqampdhYAALQFoVBImZmZdg4A2heTTu2WcHeTEV2151/OtL18jnnLenfWpjt7yo2jmFR3L0t36YjuL++gR+70Aiwb/vihvrXF3TpShuEuVyfdtcXZ3l0S3cdlets8cFhOkY7gukRlRnsgnRUIIgV9rN/822f2mE59Z/TRj843U14PoA/SO+l+p0467zRN3n5Mk2OPK+d4kz536lbjW5eozHCd4pyvWnw9kGx7gvzHCJ8Pu0+kS1Anr+3mWixy2mC4xzxdq53tXh7ZXQuv8IKBkbaYYwXOdbD+EbXKdNrh36+3cy2da19ojjHiUKA8T8z1BQAAANoReiABAAAAaFOm3Nldj/SWl8LOBBre2RdIEfdC+mGN9KeHKz/ibGzWeYECEzz5VllnbXK3d8oq+0w3vlZtN3Zs+Vz977RljTimWxaF06N9rN88cFjDZnjr9szoqFse2Of2IqqrzN5XnOHU94i+FR5DqFa6NRNw+UyFbko+Z/87O6twUTAl3P1lp3ll/6CbJvc+ppe3hOv7sVZvie0hZNRRZn3nKyBZU2aY3lKfRcY/CpwrnakfOWVP9gViyl874Et5Z67VET1q9jn/LG2a1KGegFWYU/9FvnPt1t871wG1yvT2U7jdk51zFz6Pbg8tW57zemGEs2xEF4JHAAAAaLcIIAEAAABo0zZsMuMhdY307qmdHq6TxkV6rlRr9aZjumtyOICRrCmTO+nlTYeiQR1fUKH/2R28CeOdGt3vL+v8s7TH7VVUX5nOvA1ImUDI5PLDGmmCMeGgTfkhvVzeSTfZXjgm0HHTCH+QSJo88vRI2eNGdoiWXf65Cnt31vTYnjlumR00eUS0zHB6u/rPVwxf4MUEa15e9okbSIqMgRSj9xW9fb2VvBR4x+v+l22wza1DXT24rNh2n9/VDTbGigT84vaqAgAAANoHAkgAAAAA2rBqlZYpEtTweviYNGWfqzRu4MILaNy/yG5rXiYFWvlRfWC3SKS87HOp92nqb+ejGlFmOBhjAklbPvOCMM52LztlRHooOS+TCu/lvTY1W4zeV3TRXeU1Wu0cs3xLjRQJLvm4ZXZURq0VdZ8vk0Iuujy2p5QNDtlA0v3xegQZJq1cuIx/O6jCOAGc+pmgW3c9IhtsS1CfWhK22yfcA6veXlAAAABA20YACQAAAEAblqyMdJvOzvaS8V6JxrXppP7OcjOeTnD7+nu39E7vGD8oVGeZZoygYDo6V++OGmYnTVBqsjtOUMz+CXvHnKlxbg+lj7V6k9P2cG8bP7fMeEG0us/X6H/xLTMBFhMMihdIMucirmrlvmx6OIXLP8Opx/Hy9dz6ZVfdVX5YPw2kz4sjYbstMz7Sos/1yJ0N6M0EAAAAtHEEkAAAAAC0aaNHdtLLyz6L9IYx6cnO+bcEvWNsCrhIajSH2+umIb1bzk/SXTqi1eHUbSYY4QaH6irTC/aEx0oKK3/tYDQdXu/TNTk8TpDLBJ1ixxoKCrf5lvQEY/i4ZQbHSjJlmh5PjTpfps0m5V5gjCQvSKQRSQmDMJHeU+84dUx4Yr1gVjTVnzeekydaX48XpBuWHidY5hfb7sDxw2NYJQouAgAAAO1Lh5KSkmOpqal2FgAAtAWhUEiZmZl2DgDam2rlPvCJXh7ZXQvtuEEmCDJy2TF32vkzSI/caYMEpgfNIumFmB5GJsBj0sR5TO8fb727XF0jvX/ccjclaVM43ZkJGrkp3zym19GP7PhDico0gvVz9O4cLdNlAiaf6X47pxHhOtRuq8fbXr7je3Wr0eRw22PKNL2C6j1fcXl18AeC/GX517vnQ+ac2wCS044X9Fn0nEbOnz0/gfPZSY9M+ly37O0Ss60Vc04+mGzbXleZIzrrkTJn2jl/v9CB4DWw/NcQAAAAaE8IIAEA0AYRQAIAoCFigk0AAAAAIkhhBwAAAABoJ0yvK9+YU24Kuw5u+jsAAAAAQfRAAgCgDaIHEgAA8cWmCyRFHQAAABAfASQAANogAkgAAAAAAAA4EaSwAwAAAAAAAAAAQAABJAAAAAAAAAAAAASQwg4AgDaIFHYA2rPKyko7BQAAAADtR8+ePe1U06AHEgAAAAAAAAAAAAIIIAEAAAAAAAAAACCAABIAAAAAAAAAAAACCCABAAAAAAAAAAAggAASAAAAAAAAAAAAAgggAQAAAAAAAAAAIIAAEgAAAIA2r2rTIj38ZK62ltsFAAAAAIA6EUACAAAA0MZVafvaXrrq+ika3tsuAgAAAADUiQASAAAAAAAAAAAAAgggAQAAAGjDalRdVaZ/dE9TL7sEAAAAAFA/AkgAAAAA2q7qUm3IX6uqPulKtosAAAAAAPUjgAQAAACg7UrO0vhvT9GQnVtVahcBAAAAAOpHAAkAAAAAAAAAAAABBJAAAAAAtAM19icAAAAAoCEIIAEAAABo41J03qU1ypu3WBvL7SIAAAAAQJ06lJSUHEtNTbWzAACgLQiFQsrMzLRzANC+VFZW2ikAAAAAaD969uxpp5oGPZAAAAAAAAAAAAAQQAAJAAAAAAAAAAAAAQSQAAAAAAAAAAAAEEAACQAAAAAAAAAAAAEEkAAAAAAAAAAAABBAAAkAAAAAjkuVCn43XwWVxcqbmadiu7TxQk45P1NeuIDPq1RaHFKNnTWq9xYrVG1nmkJxnn72uwLnyMeradpe/OJMp93hsuzC5nbCbY+v+MWT2IbjdRxtr960WLnb/XdjAtUhFZdURe/bygLNf7Fxd0b1njI15javKt2usgN2xjDHdNpX5bRzZiOPDQAAgNoIIAEAAADAcUtR19OTlJRhZ49LmoZdc7PGD7SzHQ/r/Rdf1buRJ+khbViyVfuS7GxTGDheN18zzDnyiWiKtmcoKSlJXbvb2ZOhSdreSjW67c69t6GXRp9X181XrdLXFujhP/xJ//OX7Y0KAAVVqfCFDSqzc3Uq36iceQu0+LkHteFDuyyse1f3njqh2xIAAACujrfffvv/7tq1q50FAABtQXV1tXr27GnnAKB9OXjwoJ1qbh3VPa2P0pxX34E9lNKju8xj9urCXM3PydPKVWu0ZU93ZQ/toy6mx87zb2nPB6/p2edeVcH+vhqdneqUUKr8Xy3Qn1cuU/XASXIWObop+Ui+3vpkuIaf7ZRYvlHPVw/WVUOclQe2K29Rnt5+d41W/f10W7bX++XtvR9q+Yt/1vJ1B9R/1GCldKxR6Rt/1KKXXnPqskVHB1ykAWdKVZtzNO+pV5W/s5suuqifu79RU5qvPz75gl5btVI7PuuvoZkp6lhZoNw3d6l4+fP687ICVfYd7dSxo7N1/LYb1YWLdddj+zR8/CDVFxfqkpKpvr17KS29j1J7pKiLKVohbX1usZa8vFwrN5Sr+9Ah6tPZqd/elXr2T6u0eesybaxy6jfQqZ+Klffbt/VhaLme//NyFVT31+isZO147gFt6DZeg1Oc4g5s1KLFZcoema7quG031+ZN7So2ZfivTY2KX/l/emHTLq1Z/JCeLTik3sOHqk/4hMWoLHpb1RkXqd9pTp1+94IOZF2g9OT418AEXba/9ITy1m3XmtXbdfpgp1znz/Kqgvl6dudBbX/xeb381+3q+kWnjE9W6uEc53w69TfnuPSVh7W28xinbTUqW/Wsnlq1WYWvblRlv6EalOKewLgadd3tOpWu0rKkUboso5uz4Xbl3r9B3cY795azqnrTIi3em60L0pOV1GeIxn+xs/72jjQ8XPbBPXp72/v66K2/KDdw78Rp++GtyvltjlaW/F073tmktW/tca67d67L3lygx1907gXn/bTjsL3unVI06JIx6rPvBVWk/ZN93zg6dVef9DT16t1XmT1TlHJGXYEvAACAtqepYz0EkAAAaIMIIAFoz05mAKmLGzgJ//SYh+ljLhmncWPHKXXHsyrtc5H6dT2kPfnLdfjymzT1ijHqsSVHJWZ5cooGOdudn1ys0uSLIg/Cu3WpUf5b1Ro+vI/2b3pJ1ZkmuFSj7Xmvq8u3r9ekC519Q0u0VmOU3cMEL57SppTpmnX1Fco++qo2HjFllWhlbgddcet1mjQuHLiQupw91KlbXx1cX60B4Yf9Ndv1wlMH9dVbpuqKsRery4Y/qihtjAZ03KP8VR115U3X6IohHfT6phpd9AVTyfhtN5K69VB6xiANOKtLNBCRQNIZXtAo/NNV+Y6e3T5IM/+/qzXhEi94ZIJKa5aU6vwbp2j8yIt12ppntDdjtNK7VKpoySad+d1ZuuaKbHV4ZaNqLh6i7G7VeulvnTVmcIqqty1TUfpXNPrspPhtl7k2b6rjlTc5ZZynDq9tdsrIVmrlei0pHq4brxmvizKO6u3u4/SdIYlDYm4AqU8fbct5U2dPnaFRvczS+NegZnueXu96ta6fNFoX9S/XknUdNSY7RYf2vK3XK0dq5r98XeN771Lu7r7O+e6nzpuXq+LcC5TeuVRr86QhkwYrpXyNnnr/fM2aMl4XjD5Na3L3asCo9EhgKFajrns3d6W2v/G20saNcY7rzHbspW6fvqR33eBVtQpfKdI5XxmtPs7FT+rs/M8EjGIDSBuS9NUbTdk9tHlpiXpf7LQlXtuHZWvo2PPV7T3poh99X1eNjQbqug8cbd9P2Tr0krm+zrXplKSk08w5jwkgdeziBY3CPwEAANqZpo71kMIOAAAAAJpQzd4C5T6xSIueXKRlf7MLXRnq6wYVkpSeIYWq3IXx9T5Poyq2q7QmpO1bMjQkyyysUNn2Uq19zpb9rnOsT8IJwwZrRLaXmCztS7N1lbt9li771mEt+/WDWvTiRpXVlVvsQJXKMvra1Gamfkmq+sSdkfr18pbXFw0KOyNDw89NCQSVGqXnKE3J2q5Fv5qvxW9sV9XnzrJDZSp9b6tecdq96MnFWlt5RJ+Gx745d4TOc89rmi65+Sqn1Y6MURpVvFXFJgXbmhSNHppsltYhQ73cMjpH/0o+o5fSS7Zqa0VIWwt36rxz3A3qUKN3X12qioum2uCREf8aVOxxru2aHPc6LvqLcyEP7Y+kfhv2xSzv3J07RbMvMX19kjXsSylav61KNds3qPjCUW56tpoPS/Xetle8MpauVVXNp41PH1fXdT9QqA0arWFn2HlHxqhRKt5SLJVv0NqU0RpS32nt55Rt7pukdA04LaSPncm62h5P9Y5lWvx7c91z9dc9diEAAABOCgJIAAAAANBkqlSYt1NZ35uhGdfP0GXn2cUBNXq/WEoL95qIK03nXVimrWu2692MIV5QRMlK6Z2hS6d5Zc/44W2aMqzuJ/jJ507SjB//RFPPfV+L8kvt0jhO76qUiqrIg/yqyk5KOd5xiQ6FVLyn0aEMnySlXzJVs388W1eevlxLN1U59evhtP1CfdO023nNunm2xp9jN4/LOX8jSrX1jXf0btZo1TmETyJlO1U2bIh6VOxTj4m3a0qgkGoVF2xU2SE760rSkMkzNHjDb5VXXGOXxb8GySlnKePL13nX8fuzddvVw52rm1hS1hClrd+oVX+r1pgLbLine4rSR3/TK+P6WZr9w/FKd9cY8eoXRx3XPbR5vXpdeF4wENj7PA0r3ar8wneVFbuuLofe184ufd361d326HnzlGr5C5112Q9MG6doTJ3XvG41pQVaWXwi9yUAAED7Qwo7AADaIFLYAWjPTl4Ku3i6qKYyX395q0ylGzfqw6Nd1CN7uJfCbv2ftLLkc+3e9Lr2fOFafT2rm1Rlxn55UssLS/X3v2/Vpj3ddf753rhGJo3dm4+t0qBvf8sby8dZ2qvXPuU9/pqKP6lQ0dpC1WR6Kd4i4+/4/7QzZT/1pnZ/uFuF71boC2PGumPklL7xoBbkFurvJe/o3Xc26HDfcRqU1kfpny/Twrwilb/7pranTNbkYSnqaNKQlSZ7aev803Wofvd53Z/zcYPGQIqrJF/z8zbro39sV+H7XTR67Gj16Zqinl3e1pKnN6usskyFaz5Q9xGDlKJKFQXS0UV1S+2ojQve1uBrJ9mUbIrf9h7m2pQq+aJspZp0duHppGoV/eFlvXvoQ21fvV5FR/toSIYdH6hio5bc/7o6XDJeg2xaOvcaDJygS8Zkq/KFZ7Wn/wXqVxP/GnQ5K0378h7Ta+8dUMWOAhUeHKwhZye5Kez8qQwjTPq4j5boyZrLdN2IXl4devRU8tolWrK5TFX/KNSq3d11wUD3Rolbv0Zdd5Vq1atJGjVxgOyps7opLWmjHl03WFMnhddVaeuSeXpyxVaVvl+koncqvPGLOnykbXn5Kvp0tzbn79GQKZOUkezcxQnabu7v7p0KtOj5IlWX7FJ1v2z16ZKkgyXP6tXtzv2+rlhVnyepn7k2zj3y4GPPqLCoQjt2FGnT4f4al2nbnsCB7S/o/lUdNSHOvQIAANBWNHWsp0NJScmx1NS6/wAAAACtSygUUmZmpp0DgPalsrLSTrUkVSr43Ur1+qFNsYYWr2r9AuWd/n1dN8wEN0JaOa9AfW9tH9evZnuucj6bpOtG1pejrvWodtq08IPRuu0KkwAQAACgbWrqLxOTwg4AAAAAgBjJvc9VzauLlfPKMuU8sUilF17ijj3UHiSdN6VtBY+KV6qgarRuJHgEAADQKPRAAgCgDaIHEoD2rGX2QAIAAACA5kUPJAAAAAAAAAAAADQrAkgAAAAAAAAAAAAIIIAEAAAAAAAAAACAAAJIAAAAAAAAAAAACCCABAAAAAAAAAAAgAACSAAAAAAAAAAAAAgggAQAAAAAx6VKBb+br4LKYuXNzFOxXVr8ollmZ2KE3pqvn70Y3rKBivM0v6DKm64s0PzfFajKWTazseWExS2jRlUl27V9e/hVpmq7JrEalb6xSA/+6kE9+NuVKrNLW4yqUtuWYoUO2WVN5XPnmt/jXOcKO99o8e8dAAAAoCUhgAQAAAAAxy1FXU9PUlKGna1H2ohrdfOXs+zccereVUlJSWrgIeNLVMbetXpxe/2hI1dVoV75aIxu//FP9JObxyvdLm4Jakry9PCL70s9zlJKUo2O1NgVTaVjlsbPvlbDetn549K4ewcAAAA42Trefvvt/7tr1652FgAAtAXV1dXq2bOnnQOA9uXgwYN2qrl1VPe0PkpzXn0H9lBKj+5KcpZWFr2t6oyL1O+0YuX97gUdyLpA6clS6RsPasELb2rZpwM06QupXhGVBcp9c5eKlz+vPy8rUGXf0cpO7eisqNb2F5/Q4leXq6CwWB0HjNNF/bpInbqrT3qaevXuq8yeKUo5wxzRU/bGf+k/16Zo/LA+bj0SiltGR3Xp0Uu9Pt+tLR0v0Ncv6OWVkaB+Nc6/M4c+fl8b/5Gk4QO6q6ZGSkpy6n1gu/IW5entd9do1d9PV/bQPnJq7fbKenvvh1r+4p+1fN0B9R81WCkda1S26lk9tWqzCl/dqMp+QzUoxSmjOE+Lt37otP95vfDGdnUb4p0/HSpV/h8X6Jnla7R+w2H1vWSQUhS/jAM7V2hXr8v11exUdU/tpe6dTWMcjajf4bce1tP7huuCdHMmSrXs12vVeYxT76qtyvntk3p1xQ51G+Vc58if0yFtffoPevKVFU799ij5vKHq0yVBGxPcOwAAAMCJaOpYDwEkAADaIAJIANqzkxlA6uI++A//9LgBpD59tC3nTZ09dYZG2V4qKZnjNO6L3VRcmqyLwgGkg3uUv6qjrrzpGl0xpINe31TjrqvenKNlZ07TTf80QWPOrtbb1QO8AFLHLl7AJ/zTp0vPvup39gD1S6knFFFHGU7lo8cy4tavi0oKVmpz0U4VlVbq6KcVKt3XUX0zuqs473V1+fb1mnThReoXWqK1GqPsHqbYp7QpZbpmXX2Fso++qo1HLlL2kTV66v3zNWvKeF0w+jStyd2rAaPS1cWpQ25ppmb969f1lbN3KfcffZ36dNT2F/6fPhx7l74/eZzGuMEjR3n8MlLO6qtPVizU81uOKDm9j/p0M+2s0fZG1G/k4M7avLxC2SPTlVS6Vi+dNkSTspyjdumjoWPHqW+1DRTaP6dDq36vv6Zdr5u/c5lTPxM8chYmqF+XBPcOAAAAcCKaOtZDCjsAAAAAaFI1evfVpaq4aGokeFSnfr2UZn6ajilW2QdVGtLfdLtpuKSeWRqe0bh9GqRW/ZKVdekkTZo4QmlZYzTpa870pVnO0gqVbS/V2ucWadGTi7TsXedMfBJOhzdYI7LdUpT2pdm6KstZ92Gp3tv2irvtoqVrVVXzaWTcpbR02wPqtHBopVpVHw7TkIF21kpYxunpGn/9v+u2q7P02eu/1YL1ZgypxtVPZwzTmJT1Kqys0fb1xRo1ou5ccx9XJmmICTD51NVGAAAAoKUjgAQAAAAATSpJQybP0OANv1Ve8fENvnPmmZ/qH5XedKi81Juoz4EyFVc09WA/jZGslN4ZunTaDM243nn98DZNGZY4oJXUPUXpo7/pbXv9LM3+YV3jKCWpa/di/aPczlr1lnFGhi756hhVlVU4M42rnzlm1hfTtGHjKr1bPUaje9vFCSR1qdL7ZcHz37g2WhXbtXJzSKfySgIAAAAGKewAAGiDSGEHoD07eSns4nNT2A2coEvGZKvyhWe1p/8F6pdcpa1L5unJFVtVumOHtm4uU/ehQ9Xn2B69HU5pdzA63S2lqwqeXqainZtVeUaGOnbqp6HhtHIJlK18RL/e2rP+MZDisvVb9XeVvvuutm48rP5jBynFVyd//Vyx8+qiXr32Ke/x11T8SYWK1haqJnOI+nS258SX7s3Vo6eS1y7REudcVP2jUKt2d9cFA1OCafQi093Vp29n5S/K0bZQmQr/ulc9Rjv1S1CGO97Um3t0YOfbyi04pElfH68+yY2sn6Njr276aMmTqpl4nYan2S5YJfl68LFnVFhUqnfe3aoNB/trXGaKUvr11e5nntDy0gMq3rBRnw90ru/ZCdpYh5qytXryV3s04J+yFT6zAAAAQEM0daynQ0lJybHUVH4tBQCgLQmFQsrMzLRzANC+VFbarjtAa1SxUgteSdE///NwNUNCQgAAALRhTf1lYlLYAQAAAADQEpRv1bLtKZpyLcEjAAAAnHoEkAAAAAAAaAl6D9ekS4cr7XQ7DwAAAJxCBJAAAAAAAAAAAAAQQAAJAAAAAAAAAAAAAQSQAAAAAAAAAAAAEEAACQAAAAAAAAAAAAEEkAAAAAAAAAAAABBAAAkAAAAAjkuVCn43XwWVxcqbmadiu7TRDoVUVlljZxqu+EVzbDuTSGPKLs7TzBeLVVUwX/MLquzC41BTqmXzFihnVbGq7SIAAAAArQ8BJAAAAAA4binqenqSkjLs7PHYXRcXy5QAAEobSURBVKDcomYKtTSy7IwuTltOT7Fzx6l0q4ovnqapl2Yp2S4CAAAA0Pp0KCkpOZaammpnAQBAWxAKhZSZmWnnAKB9qaysr1tOU6lRVUmFkgb2Uo37M13JKlbeExtU81Gxai4Yo5qCtUq+9t805dwk1exdqdwXSlWT9A/VDJqm6yZkqOyNB7W0YJ/KDp6ldBO3uWCafnJ5hlS9VbmP5Wvn4cNS8gBNmj5Vw3s66w9sV96flqn4E+lwVZK+/L9m6xJnedmbC5SztUpm87TRdZddXZirhSt2utt2y5ik664dLjdkdKBMpTW9lJFU4f3smWSWOsqUP/dB/eOb/1fXDWtASKg4T/Mrxmv2JScYiAIAAADQKD17mj8amg4BJAAA2iACSADas5MXQIqnWHm//ocu+efOevrFJM34do2WF52nqy45rJW/36gBP5ikDNVo65+e0JFvzNIoE2OpL+CyI1fzP7rMWZ+krf+ToyPfnqFRZ3gp7Cou9QJIUSEV/LZAvW6+Sllmtp6yi593yvhKbBmxalS1411VpQ9XhnPcOh2qVtnb/6MN6bN0lVsBAAAAACdLUweQSGEHAAAAAE0pq6/SOjo/e6VEU7gdKlPpe1v1ypOLtOjJxVpbeUSfHrDr4nG2L3jObOu8Xt1uFzplVA1R/zhBnOody7T492b7XP11j12YQM3eAuU+4ZW97G92YZ2SlHJuA4JHjtC7K7VyRzdl8B1FAAAAoNUjgAQAAAAAze30HkrpfaG+ef0MzXBes26erfHn2HXG0cN2wlNV+KJ2nnudu+2My8+zS89UysF/6GN3OqSK3e6Eo1TLX+isy35gyp6iMf5yjUDZVSrM26ms73n1uCxcdD2q9xQrdMjO1CHtgkma+uUUrSqqsksAAAAAtFYEkAAAAACg2WXokgkh5cxbrNxXlinnyXyV2jXKGK6sgj9p0fO5WvymtzSl97mqeMPZ9ulFWry52hujSGkaflmV8p7I0eInNurwoF7uUqmXMtLXOts6+z/hlOv/K69W2SnqNahC+UtzlfPEYm2tbsg4RWUq+MNv9WpRtZ0HAAAA0B4wBhIAAG0QYyABaM9O7RhIcMddKr9Es7+UZhcAAAAAOBkYAwkAAAAA0HJlDNeQwkVa8Fqx6LMEAAAAtF70QAIAoA2iBxKA9oweSAAAAADaI3ogAQAAAAAAAAAAoFkRQAIAAAAAAAAAAEAAASQAAAAAAAAAAAAEEEACAAAAAAAAAABAAAEkAAAAAAAAAAAABBBAAgAAAAAAAAAAQAABJAAAAABocapU8Lv5KqgsVt7MPBXbpc2rRqE9Vc7/G+hAmcoO2Gm/4jz97HcFCtnZJuOUO/PFYlUVzNf8giq78DjUlGrZvAXKWVWsarsIAAAAQG0EkAAAAACgRUpR19OTlJRhZ5tdqQpe2N7goErVtlxt+NDO+A0cr5uvGaY0O9uUMro45+P0FDt3nEq3qvjiaZp6aZaS7SIAAAAAtXUoKSk5lpqaamcBAEBbEAqFlJmZaecAoH2prKy0U61ZjapKKpQ0sJdq3J/pbrCjujBXC1fs1OHDUreMSbru2uFKMb2Vnl+rw0nva+Pf9klfnKrZ38hSUmWBcgsOK6l0o96tkIZMm62rspKkiq3KfS5fOz857JZxrVNGWkm+Hnx2rfbt+VRnnWMCNBdq2o8nKkNlWrkgRxudbQ8rTRdee50mZlRr65IFWva3Mu3rkq6zTpcGXD5LUy9warI5RwveKNa+5Mv07z+8xKmbp6Y0X4v/vFUhp+JpF0zTdZdnJK6fQtr6XK7yd1XpcOfBmvT9KRp+hrP4QJlKa3opI6nC+9nTbGuUKX/ug/rHN/+vrhvWgJBQcZ7mV4zX7EtOMBAFAAAAtDA9e/a0U02DABIAAG0QASQA7VnbCCDVr/j5+ar4ymxd0tOku1ssXetM9wqp4LcF6nXzVcqqLND8Jc7iH16itApn+q1emv3NM7Xyt/lK+8FUnXe68+/Fmw8rP222pn7RBGOKlfe7Co33BX4CImVkubMmldzKXibo4876xJRTs125C0K69ObxSlONtj89X6Gv3KbxSfHq5xRm6v2XrprxveEN7CFUo6od76oqfbgyTKCpLoeqVfb2/2hD+qw49QYAAABat6YOIJHCDgAAAABaiZq9Bcp9YpEWPblIy/5mF7oy1KuX+dk5+Fdev15eKrmO7pzjY1WdNkDpp3tzaf2yVPFJXUnrqlX8ymItcI636Pm/qtQubZQDVSrL6GtT2iUpPSNJVZ+4M3Hq5+g5SlOytmvRr+Zr8RvbVfW5XZ5QklLObUDwyBF6d6VW7uimDL5DCQAAANSLABIAAAAAtApVKszbqazvzdCM62fosvPs4kZJUtKh/U5JnuqPq5Se4uvnc1Q6bCddJcv1XJfLNMs53oxvj1HscEw1zvb1Or2rUiqqImMrVVV2Ukp3OxNXktIvmarZP56tK09frqWbwrVNrHpPsUKH7Ewd0i6YpKlfTtGqovrLBAAAANo7AkgAAAAA0CqkqNegCuUvzVXOE4u1tfp4xvDJ0GXfrFHuvMXKfXqRFu0cpkvPC48llKHhWWv1pydzlfs/K73eRr0y1HeNc7znF2tRfrD/UUr2GFU9PV85r+Qob7MXkCl940E9+Kscrdrxohb86kHllzgLk4frymFb9dsFOU6587U86Wsa09vdPL6SfM3/n1wteyVXr+7opTFZ9bWzTAV/+K1eLaqrJxUAAACAxmIMJAAA2iDGQALQnrWXMZBwnIrzNL/8Es3+kpdUDwAAAGgrGAMJAAAAAIDjlTFcQwoXacFrxZG0egAAAABqowcSAABtED2QALRn9EACAAAA0B7RAwkAAAAAAAAAAADNigASAAAAAAAAAAAAAgggAQAAAAAAAAAAIIAAEgAAAAAAAAAAAAIIIAEAAAAAAAAAACCAABIAAAAAAAAAAAACCCABAAAAQHtSWaD5vytQVXGeZr5YbBfWJaSC3/1MeYk2dcqZX1BlZ06FeuoXo3pPmarttF/orfn6WYPORx2cc/Ez59yG7GxDVG9arNztNXbO0egySrXsnvkqqLCzjVaj0J4q5/9+Vc45dcqsLFbezDwd71kpfnGmc13CZdmFrhqVvrFID/7qQT3425Uqs0vjKX3D2ebBn+mOE7k29l6vKph/iu9VAACA1oUAEgAAAAC0N927KikpSRl2tm5pGnbNzRo/0M62OI2pX5UKX9gQN2CRNuJa3fzlLDt3nAaO183XDHNq1FAhbdjQS6PPS7LzjkaXkaExs6/VsF52ttFKVfDC9jhBtRR1PT1JSQ27SRLIcO+zrt3tbFhVoV75aIxu//FP9JObxyvdLo4n43Jnmx98U4Pt/PHK6OK05fQUOwcAAICG6FBSUnIsNTXVzgIAgLYgFAopMzPTzgFA+1JZGejqgFg1VSrdl6SMs2q8n2cne4tL87X4z1sVOnxY3S78Z83+inmsX6r8Xy3V+qoyDfnXh3RVJL5Sre0v/o+WlVRJB6uU9OWfaPYlKdKB7cr701pVJVer6vRLdd21w+U+sj/klPMnp5yPpM6dL9SUWycqQ2VauSBHGz85rMNK04XXXqeJGUleD6m/VGvYaVu18YPDSvnqLM0YmejBf6L6hbT1uVzl76rS4c6DNen7UzT8863K+f0ybd2zT93OOUudNECTfjBVw52iTS+XpRurVHbe9/XQN8OFmF4yi5X7t5AOH/bVL4GqzTla8Eax9iVfpn//4SVeu+sro3SZFpSO0qxLvXBR/DKqVPD8Wh1Oel8b/7ZP+uJUzf5GlpKqvPa8b7bY003f/I/ZuqSn2d65Ni/9j9ZWdlP1J0m6dLrTRne5c06eflrLSj91rsEATbzeWV6ZrwefXat9ez7VWeeYo12oaT8216ZGVSUVShrYSzXuz3R5d4lTeuFi/ezFvvrJnIl1Bn6M6r2lqjkrQ0n7vJ8pTtNrqqtVU7lBiwpSNONrJiyUpOTkJKfcXC1csdM5T1K3jEnRe8cw98SqXpoduTZxru8ZzuJE99+BMpXW9FJGUoX3s2fi6wgAANCa9ezp/uLXZAggAQDQBhFAAtCeEUA6PsUvPqjSUT/RxHPsAh+T+mtlr9mRAE315sXKOTZFM0Ymu+nB5leM1+xLkrX9uRxVX3mdRp0hla14WBsG3qarBtY4y3+pnaP+3Zn29q+lokDz37IBAjfFXkiTfnyVsk4vVu7vKnRZJJgSX2z9vCBUV8343vBI4MNj0qmtVK8fOmXbJRExQYqa7bla+OGlmv2VNOnQduU4dZp4+/h6egYVK8+p73hb37rLMOcler6igmV4dV4sXTtbl/QKqeC3Bep1s7/+dv10L4Bkjpnz2SRdZ67N3nw9vCFLt30jQ6FVD+ulLjM048LYMxl7vHocKNXWshQNOTdFjQ/DVKt41UrtLH9fa0u7acx5vaQzBmv8pVmB61T8/HxVfCUcEHPEBpDiXt/g+Yzef3Y1AABAO9DUASRS2AEAAAAAlDXxah1+9UE9+ESeNu6JN0pQVNkHVRrSPxiakSpUtr1Ua59bpEVPLtKyd6WaT0w51ar6cJiG1HqQX63iVxZrgbPtouf/qlK71DVsiLJONxNZmtLQwIZfz1GakrVdi341X4vf2K6qz+3yRqiuKlNGPxsuOj1dA06v0sfeXIPVWcaBQm3QaA0LBI8SyVAvN0Vd53r/iq/Ys12la3Lca7DoL85FOLTfOdPSx5VJGpLV6DNZ2xkZGn5cwSMjWVmXTtKkiSOUljVGk77mTNvgUc3eAuU+Ye+dv3lbJxT3+ia6/wAAAHC8CCABAAAAAKQzsjTp+z/RT6YN1vt/WB4M6MQ488xP9Q/b0StUHt4yWSm9M3TptBmacb3z+uFtmjLMhAbMGDjF+ke5t1VEyXI91+UyzTLbfnuMGjLUTs3ejSrY0ZCgQJLSL5mq2T+erStPX66lm6rscqPG/qybGS+n4uPwsaq0PylFZ9o5N/hVsFFlh+xsAnWVEdq8Xr0uPO84AzGJJaecpYwvX+ddg+/P1m1Xe710krpU6f2yBG0/Kh22k/U6FFJxPQHGxqtSYd5OZX3Pu3cuO88uTije9U10/wEAAOB4dbz99tv/d9euXe0sAABoC6qrq5u82zIAtBYHDx60U2i4Km1dskRv7v5Qu9/ZrorzxmjswBR1NOPs/PZJLS8s1d//vlWb9nTX+ef3UWpKVxU8vUxFOzer8owMdezUT0P7pahXr33Ke/w1FX9SoaK1harJHKI+nZPUp29n5S/K0bZQmQr/ulc9Rg9SSqeDKnnmVW3fV6S3i6tU45Rx0RdSnQu4R2+XJnvTMUpef1BPvJ+h8cP6eIGXBPXrUpKv+Xmb9dE/tqvw/S4aPXa0+rh/9nZR904FWvR8kapLdqm6X7b6dDFtn6cnV2xV6Y4d2rq5TN2HDlW/gek6+tpCvVhUru1/3a4eX5+soSkdTSFSxUYtuf91dbhkvAbZiJAZR2lBbqH+XvKO3n1ngw73Hafs8xKVUapVryZp1MQB6ubt7opXxqAeh7RnfamSL8pWqvzTYWZZoXT+RerntLHLWWnal/eYXnvvgCp2FKjw4GANOTtJKf36avczT2h56QEVb9iozwcOddpu9u+uLh/l6uk1ZSorrFC34QPq7PFV/e7zuj/nYw0fP8jZ8zjVusZdVFOZr7+8VabSjRv14dEu6pE93GlP/GvTZ2+869slwf1nDwEAANAONHWshzGQAABogxgDCUB7xhhIaOkC4xSdMDMuUr5SZk3VeU3dnQkAAACtSlN/mZgAEgAAbRABJADtGQEktAul+Xr4jZDS9b5qhs3QdRfasZYAAADQbhFAAgAA9SKABKA9I4AEAAAAoD1q6gDSafYnAAAAAAAAAAAA4CKABAAAAAAAAAAAgAACSAAAAAAAAAAAAAgggAQAAAAAAAAAAIAAAkgAAAAAAAAAAAAIIIAEAAAAAC1OSFufX6SHn9yoKrsEAAAAAE4mAkgAAAAA0OKkafi3Z+iqM9dqe6VdBAAAAAAnEQEkAAAAAGipOtqfAAAAAHCSEUACAAAAgBbqzJ6d9I+yKlXX2AUAAAAAcJIQQAIAAACAFqpHxgBVFSzXhtJquwQAAAAATg4CSAAAAADQQpUVvq8h356i8VnJdomjYrtWbg6JTkkAAAAAmhMBJAAAAABooWqOHrFTUTVVO7V8XoFK7TwAAAAANAcCSAAAAADQUn1uf/okpaQofWKG0u08AAAAADQHAkgAAAAA0OKEtPF/HlbewUt1Xk+7yCjfqmXbUzTl2uHyJbUDAAAAgCbXoaSk5FhqaqqdBQAAbUEoFFJmZqadA4D2pbKy0k4BAAAAQPvRs6f/22cnjh5IAAAAAAAAAAAACCCABAAAAAAAAAAAgAACSAAAAAAAAAAAAAgggAQAAAAAAAAAAIAAAkgAAAAAAAAAAAAIIIAEAAAAAAAAAACAgI633377/+7ataudBQAAbUF1dbV69uxp5wCgfTl48KCdas2qVPC7x7VncKo237JGHf8pW6l2TfOpUWjPAXU+s4s62iWekFOX/9Lm1MuUfTyVqKlS6Y4SlVVUqMK+arr0UvfOZuUJll2XA2UqO9zdHqcpNcW1SVRGtULFxfqgvFpJPVPUJfKVzwTLq0q1vaRMVUeTldotyS50ti4vVvEH5apO6qWULnZhQvHLblQZnzvXuMi5xlXHlJzaTV5NqlW2vVh77DWv7piilK4dVb13u4p3R++FigNJSulh7rlEbXdUh1S854i6u9vVJUEZceuXQMz9Gr1Xa5zTvUMlZVU6lpwq73QH21hR4Rw3xTmuU8niF2dqTacJqlxqrvNF6sdjFwAAcBI0dazH/ysZAAAAAKDFSFHX05OUlGFnm12pCl7Yrmo7F5WmYdfcrPED7ezx2rtWL26PLb2Jyo6jaluuNnxoZ5pcU1yb2mWUvZmnd2pSlJL0rhbPW6mQu7RGpS8t0qrqs5Se/L6WPmqXH9qqvPwyJfdIUdWbDyt3e427tfauVF5hjVJ6JOndPz2sleXe4vgSlN3IMra+vFxlyU69K/P18HPbnSVGmTa89G6c+8mo1rsvrXW2iIrf9mqVvrZAD//hT/qfv8S7N4MSnb/49UvgwHblrfPXzDDnaaGWV52ljF6fatUfljnvllghbXh6pd6PFJ6hpKQkde1uZwEAAFoheiABANAG0QMJQHvWNnogdVT3tD5Kc159B/ZQSo/uttdESFuf/oOefGWF1m/Yo+TzhqpPF9PbYb7e3vuhlr/4Zy1fd0D9Rw1WSscala16Vk+t2qzCVzeqst9QDUrpqOrCXM3PydPKVWu0ZU93ZQ/toy4l+XrwsWX6e8k7evedDVrz1mH1HztIKSpV/q8W6M8rl6l64CRfLyGnHs8t1pKXl2vllj3qPsipR7Kpx2JtCW3XC39+Qfl/66bzRqarW8cuSunVS70+360tHS/Q1y/oZ3t0xC+7+MVFen3ba3phy2Ed2bxES97rqzHnpero3pV69k+rtHnrMm2s6q+hA1Ocs1Sj0jf+qEUvvea0Z4uODrhIA86s0tYl85SzplR///tWbVq3RnuSz9fQs7vEb3tlgXKfXaOVy15XWU2V/vKnV9XhCxep32Fn+Zo9Kn39WeUuK1Bl39FOHU3/l0TXxvn3t3Cx7npsn4aPH6S64wbxy+g+0LlGvbqre2qajm4qUseLspVavU156/rqqkmD1b1LZ3288RntPnuCBp/VR9nn9VPKGd2V3qVK+ZV9dVE/52Y4Y4CGZvZS9zNSlXZ0o4o6XZS4d1eiss9pRBlOW/p8YYj6pTj17ttFVSsq1feifuqiShVt6agLvn6B+jnX3/Q+MpLOcO6FXsn6eEuF0r8+Vtm2V1HctjtnJanPEI3/Ymf97R1puFuuVb1Vi+96XPvOH69BZ3qL4peRqH5GmfLn/qfW9Biv4X3sVTy4R2+H0vX1cdlOPcO9j0q08rUeGntVtnok91Gv6pe0UWOcuiepu7m3ndexbS+pePh3dUV/r5wuKZnq27uX0tL7KLWH1ysJAACguTV1rIcAEgAAbRABJADtWVsJIHVxgwrhn57Qqt/rr2nX6+bvXKYxl3jBI6Oy6CltSpmuWVdfoeyjr2rjkYuUfWSNnnr/fM2aMl4XjD5Na3L3asCodHXvM8TZd5zGjR2n1B3PqrTPReqXPsiZ76uD7/XX1T+aqsvc4JGRokHOducnF6s0ORpECK36g9b3n6mZ/zRe4wZ8pCUrPtPoob1UVZSr9wfO0oyvf0V938/VHlN2+M/NyiK9XT3AC3K44pddWfSmNPZfNHjj20qedr0GvF+qlC+crg1LSnX+jVM0fuTFOm3NM9qbMVrpXUq0MreDrrj1Ok0aZ4JHpoQu6nO+V64uvl3f/8Y4N3hkmGBErbZrj1aWDtD3L5Nyys/XXV8+qM2Hs5XddY/y3zysr944VVeM7aHNS0vU++J+6pbg2hhJ3XooPWOQBpxVX6q1xGW4Krbo5Q96adzwPko6UKJVFam6KGWHns3ZqqT0Dqrp5Q/o1Kj4r69K2V/RYO+iWSFteWWPeo0Zrj6J0vjVW3YDyvCp2fGmXj0tW1/JMhU5oD1r39Tawre15m8H1WfwAKVEGnpIe9aXKtkN8MTwt92ZTers/N8EdWIDSEnd1aPvAA0akFo7OBNTRliwfkYXpZ7dT33691NKuH2HP9KulSv19oZV2rw3WecM7qNup32uD9e8roqBQ5V22n6Vbl6pqrMnRM9T+Ur9YVO2vntlv8jxks7wgkbhnwAAACcDKewAAAAAoJ36uDJJQyIPv/0Ga0R2mjuV9qXZuipLqvmwVO9te0WLnlykRUvXqqrmUzcFWM3eAuU+4Sxzli/7m7tLo31cKQ1It4/Ke/dVVkWVTS+Wpr697PLjfmiepb69zdP8Xko5w1uiQ2UqfW+rXjFteXKx1lYe0acHzIosXfatw1r26we16MWNKqsnx1mitvfNSHcf/Kf1jDm3/foqzbQjKV0DTgvpY29pYmdkaPi5KbUDQo1RXay8p0O6/NrhSraL9NYTmr+2qybNnKox6XaZFXprsVamf0+TAun0qlX84tMKTZyq4eFzWLVVOb96UA+a1xu+BGwJy25EGUZFgRav6qvvXRGuSIYm3jpbM34wW7MvrdLiV+pJHWfEa3tCycoYluULSlmJyqhVPyNJKecOV0a4fUbKcE29eZZm/PA2TUnfqD+9ZRLhpWn8rGuV9n6BCgr3ST2c91rk/g5p5dOluvTbDakzAABA60IACQAAAABaiaQuVXq/rN7H8K6k7ilKH/1Nzbh+hvOapdk/HK90Vakwb6eyvmeWzdBl59mNw45Kh+1kXZK61Gj/J3bmQJWq+qQ078Pz03sopfeF+qbblhmadfNsjT/HW5V87iTN+PFPNPXc97UoPxjUqHHaE1VP2+ty6H3tVJp62dmEDoVUvKe+kXrqYIIff3hXQ/71KmWdbpf17KWMsy7X1G8Pd9MSvl+crL59vFWhtxbpJX1DMy7xgoceE/hZpHfPm6GrsnzRFRMYcc7TT8zrchtESVh2I8owKgq06EXpG9df4pylOLp0U3JSUt2BtXhtr1ONQsVlNnBpJSqjjvpV7ylW6JCdiZFsxqhKsl2TktN03iUTNfGCJJXuzNJwO25X6M2nVTpuSjTIVp+K7Vq5OVR/MA0AAKAFIIUdAABtECnsALRnbSOFXXwp/fpq9zNPaHnpARVv2KjPB3pp7CqL3lZ1hi9dnNGjp5LXLtGSzWWq+kehVu3urgsG9lFNZb7+8laZSjdu1IdHu6hH9nC7X3d1+ShXT68pU1lhhboNH6AU0+Pkt09qeaEdT2hPd51/fh/16Zem7X/6o94uK9XG1R/pgslfUd/kYD1q1Sk2hV2CsquLiqQvDFC1m+LM+VlUoV5fGKr0Lm9rydObVVZZpsI1H6j7iEFe/Z56U7s/3K3Cdyv0hTFj3XGejC7dOqrgD7kq+nSXdh3op+yzU+K3XXtUtK+XspNLvfo5P4vkpbB7e+lK7arZrc35ezTk2q9rUD1Rsup3n9f9OR83YAykeKq08Q8/05/3SLsL12jNW+Gxm9LVM9lp+wvbVLYtXyXnXaOvD+wmleTpP369UUcPFmmts2143Cqtf0I/e3G3VLbVLWNNqXdeI6nfAlLjll3VqDJKlfezh7Tx6KcqWu/V+3DfcRrUYavyXtysXX9brtwtZ+k714xSSie7S60Udonafsgdz+rJFVtV+n6Rit6pUPehNnVj9TY9f//T+jgyBlKiMsrj16+H2adMqx75tTb38o2BVLJSi1dsV/H6l/T6vks0/WsD5Jxtlb7xoBbkrtf6Xadp3PRJGmTiSlUbtfiBNdp74B17Dfxlx1dTtlZP/mqPBvxTnPR9AAAAJ6ipYz0dSkpKjqWm8msLAABtSSgUUmZmpp0DgPalsrLSTgEnoLJA81f10uxvZtkFQBOoWKkFr6Ton/+ZlHcAAKDpNfWXiUlhBwAAAAAA0NzKt2rZ9hRNadAYTwAAAKcePZAAAGiD6IEEoD2jBxIAAACA9ogeSAAAAAAAAAAAAGhWBJAAAAAAAAAAAAAQQAAJAAAAAAAAAAAAAQSQAAAAAAAAAAAAEEAACQAAAAAAAAAAAAEEkAAAAACgxalSwe/mq6CyWHkz81Rsl7oOlSr/iQf14K8e1Pw3y+xCKfTWfP3sxcCWjVL6hlPmgz/THbXKCDl1+Znyjr/oRqqj7QAAAABOGgJIAAAAANAipajr6UlKyrCzVlXhKwpdcrt+8uOfaPZX0u1SKW3Etbr5y1l2rvEyLv+JfvKDb2qwnY9K07Brbtb4gXb2pIjfdgAAAAAnT4eSkpJjqampdhYAALQFoVBImZmZdg4A2pfKyko71ZrVqKqkQkkDe6nG/ZmuZGdZdbWz/O1FWps6Q5NMrCgpWclJXu+hpRurVHbe9/XQN20QqbJAuQWHlVS6Ue9WSEOmzdZVWUmqLszVwhU7dfiw1C1jkq67drhSvD3cfeav6qXZ4TJUqvxfLdX6qjIN+deHnP3t4pJ8PfjsenfyyL7tOuvqhzTrQqeUA9uV96e1qkquVtXpl0bKLn5xvnaemaH3t76rKg3XtJsmKSOpxqn3YuX+LeTUpZvGTJ+t8eeYEuO1HQAAAEB9evbsaaeaRsfbb7/9f3ft2tXOAgCAtqC6urrJf2kAgNbi4MGDdqo166guPborKfLTUV2itX/drKKSIpXuO6rqUKkqOvXVgNQkpWSO07gvdlNxabIu+oL9guDBPcpf1VFX3nSNrhjSQa9vqnHXJfUZojGXONuPHafUHc+qtM9F6hf+k9DZ521/GUrRIGe785OLVZp8kbLDi3sMcvcfl91JxRWj9a1vZKmbarQ973V1+fb1mnShU2ZoidZqjLJ7SJVFT2lTynTNuvoKZR99VRuPmLJKtDK3g6649TpNGneRBpxpy47XdgAAAAD1aupYDynsAAAAAKA1SM7S+K9N0mXD0pT1pUma5EyPz6qnb06/XkozPzu6c66avQXKfWKRFj25SMv+Zhcel5BWLt2pUdde4h1DFSrbXqq1z9my33WO9Um1u0YarBHZ3lZpXzI9ocxUli771mEt+/WDWvTiRpWFNwUAAADQIhBAAgAAAIB2o0qFeTuV9b0ZmnH9DF12nl3caDUqfvFpVX1tqoafYRcpWSm9M3TpNK/sGT+8TVOG1R3gSj53kmb8+Ceaeu77WpRfapcCAAAAaAlIYQcAQBtECjsA7VnbSGGX2KE9bwfTyalKW5fM05Mrtqp0xw5t3Vym7kOHqs8xXzq6SGq6dNVU5usvb5WpdONGfXi0i3pkD1e/rgnKOLRVOb99UssLS/X3v2/Vpj3ddf75fdSl5C/6v0vf1cF/bNaat9ZozWf9NS6zj3r12qe8x19T8ScVKlpbqJrMIerT2aSwe1vVGb5UeUaVU/ZTb2r3h7tV+G6FvjBmrAal+LpKAQAAAGiUpo71dCgpKTmWmhr5ywMAALQBoVBImZmZdg4A2pfKyko7BQAAAADtR1N/mZgUdgAAAAAAAAAAAAgggAQAAAAAAAAAAIAAAkgAAAAAAAAAAAAIIIAEAAAAAAAAAACAAAJIAAAAAAAAAAAACCCABAAAAAAAAAAAgAACSAAAAAAAAAAAAAgggAQAAAAAAAAAAIAAAkgAAAAAAAAAAAAIIIAEAAAAAAAAAACAAAJIAAAAAAAAAAAACCCABAAAAAAAAAAAgAACSAAAAAAAAAAAAAgggAQAAACgjatR2aYCFR+wsxHVKi7YqLJDdjbsQLEKNpU5ewEAAABA+0UACQAAAEDb9nmp1v5xqdbuqrYLrIpCLVuwTNsr7LwVKlymBX/ZrpjFAAAAANCudCgpKTmWmppqZwEAQFsQCoWUmZlp5wCgfamsrLRTAAAAANB+9OzZ0041DXogAQAAAAAAAAAAIIAAEgAAAAAAAAAAAAIIIAEAAAAAAAAAACCAABIAAAAAAAAAAAACCCABAAAAAAAAAAAggAASAAAAAAAAAAAAAgggAQAAAAAAAAAAIKBDSUnJsdTUVDsLAADaglAopMzMTDsHAAAAAAAANA49kAAAAAAAAAAAABBAAAkAAAAAAAAAAAABBJAAAAAAAAAAAAAQwBhIAAC0Qc0xBtL7779vpwAAAAAAANDSDBgwwE41DQJIAAC0Qc0RQAIAAAAAAED7QQo7AAAAAAAAAAAABBBAAgAAAAAAAAAAQAABJAAAAAAAAAAAAAQQQAIAAAAAAAAAAEAAASQAAAAAAAAAAAAEEEACAAAAAAAAAPz/7d1/dJXVne/xD0JAgnqaNIlEMdgEnVANiFRlqt6r7a24onUt2yn2Xtu70F5cs6xTu9ZUYez94/5TL0i71mjV9uK0zdRhrmIdHEA0ehVbUMEKSHAkU0iNsTTAiQ2xTBAC5u69n/2c8zznV04gYEjer7UOPL/Oc579PHs/J2d/994PAMQQQAIAAAAAAAAAAEAMASQAAHDy7XlKt9deoM8s3uoXDNLxvh8AQm9/oHO/94E2+9m89nVrwff2aeU+Pz9Imx/fq4fe9jN2Xw90a1C7KvY4i92uoF6tfGCvFrzYe9zpjvtQDw3lsVkuvXvNa6iOcSBDkYZMdp+R/DEsHfsx2rx/7uMf+rljFM2HQ5LHsw3JcQ7i2Pa9uM/n3fgrlbcNu00wH5z/1HaZ9w93fnKvy/yc2DWMvs++stIfze/RY8hI42D2U3DboHyn1mWtjx7PUAnSNbzLX8Z9bzCGorxEy190eggNx/KXyR1juG3msaa+i+yrQPnILLux99lX5NwOUK6iacg67kLHE3L7z14XOzdZf6sMcRk81vw0FPkaKIr/Xsr1d7svow+9eoz5eFD8d3DWffJE/c0eRwAJAAAAAE6oXnV0jtF5VX5238daWz1W4eyose+otledpvP8bLFcZVauH+72R/PaI2qce6Z2/7BKNx/jCc2//xyOMQ3HY0gqVnESfKiHmo746YFVfanK5Nuz06/548zScfrrL5UGGxjv7+lXQ7W08oGD2u7yud32TD2sw5qVyhOmHDQdltz6YN33w8rktz/QrOaxWhX5jCVNYeWSOd4HDqthvl/3w4lauO1gvCI6kt83P35QS2ZOdNuumnlEN6U+fzD7GWjbI3p/3xg9fG+43ry+eZZfZ1D+kNfQl78o+z1xU+d4bXXbZ+RbW2lrPnuhz9db5x7VTanvlALl09jXeVTy5Sp4hd9lA5QV85nfb1ZQVu4dLzUfiAeeIseze74ix+PZbcz+1/rZFHfP8Ps1711VHb3XGJ9AGQQ+WaW6ctYYk/c/1vt+SWjftj5Thsbpygv8ghPp7T7zHTzO3Af6PpHAKQEkAABw8k3+mn7++516d9EsvwAAPiEXf1q7f/hpzfazeVWV6bFjDVLsO2R+YJboSv/ezVuPaOGsSKXoUCo2PcU6nnRnsD+0NWvCcQbOSnXzvWfrsUglX0N17gq/E2Fo0jC6zP7m2fEgwPEa6jw+RPa9+JG2V43xc4MVVH4vnB9N14d6dds4XXlxZp73lVmdR4MKYXt/2TdGjTPterNt4zit3XooWJd5ri4u0UL163238ix954dn6zsXuzXGWbpyprR2T7oSPp3f7bEodd+aPXe8GlOVWIPZzwDb2sppjVVNngJG+TsGw/g7YSgNffmLs8FcpRp+xPOtzZdrZ05M5WsXnLq3LNi2UPk07H4bJ9vgVabCZcV9ZpX/u8Jck7+e2a+124LgUrBuvL4evvfiiXpYfXrVf2jQaOKwGmZmf679+6Rx7hmp65t5/x7yMjhM8xMQVTWzRI06oldjPVV79epWU37nTtTsE56PgwZTC2dN1HlVR/TTaAONk4QAEgAAKM6bi/WZ2gt0+6+e0v12+Dj3WqAn3/TDybnXYm3xm0tJPXl7uNxvu8evyhiCLvmrBW6b+82+U/u6/Smzh+JtWRx+jn1FPsvZGjvm+xf7z3vTrw6PJ3wN8rMBDDPhEA4vpodwsa12o8OypFrxRodB8dMPRYapibUwzju0THS4iGAoiehwSPEKl7BS2K4YxHFGBC3iu4MhNdx2kWFccqRnZWR/8WGaPgyGw8i5zoum208/9Hh6f5kt8/MP8WN/aMtXohmx8xfd1p+/x/05eSSpWc39ZvvDmuVaUAfrF7zYY/7/s+4yx7WkKfJ+l+b0fuPnL0d6zfbx/WekIdZqOyMNRr70BtfI5KVwXSyPGNHjfNzkjzxcq/dtZmLbwfT+8+a93E70MVrBvnLnyWBd8LmFtnOKSZvP1wOWWaeIPJ6LP454+ff78ccf+xyz/vtbS/SDxrF+QWDA9Hq28ntJtMLXcq2NSwau+Lc9GjODLjlaSg9eJL+7wE6kF6VzVB0D5L1AdrnJy6Ylb++GU7P8Re/nsfvJQHk3+jkPHCx4PQvms0h5GZLy57bx60Zy+ctw3uRI0NZ9j4cBVZsv8wWBjILl0/ZOPrZGEPGAViAatM0WBo6N6tNdT6rvZLXjC9KV/3ii9wSfD4r9+yVa5qLrovnJTxf6GyOvaB7JzLvRdQ+Y/JqZf4CBVE1QoylsS7ZG8mM0OBzNx07ue58rH1nfVfH5nHnTfVbQoMQ2IIkGoU8WAkgAAGBQ1q2VFtjeQyu+ZeZe0aJ5bborNf8zfdUHhbYs/rwWvfItPW3X/X6FFtht7yscmHls1zTXM+mNB64xu75Pj4UBngHY4NFXl12jxa/Zz7LvlxZ9Ph0g2rJ4nh5TuP5OadkrwQonqSfvu0/rrrlfb4TpMJ+98FeEkIBTW7/u2lOiYPiWcVrb/Gd9X2e4+a1zzY+v5oM5K5LsEErbJ/uhotz7IsPCpJgfhpGhZbbOle56IKyYCnoLpFsNh8NQ+QqZrOFfjvE4tx3W+43B57vhpDKHp0k5YvZ/emr/6eGrbCAmMizWveO1PbWukH4tkd+feU/jtoOxH8bpIX7O1MOdmUNThZVo5rObIkPzuP18FPvsJZ2nBfv5dqU7D6oy+w1bdDsl5jybzzAL3BB2roW0uS5NR9PDX7nzGZ6/POmt+nR8/29/EElDMHxPerihaBoGSq+x7ajOC4cBmmmuc1N4jexxpocX2jr5qDmnudmW7Ktmmgk7xFGYxrx5L9vJOMaUYvNk3u3iads9f2zBtKXlK7PHmMdtRdADfWpM9foJjisYgsrsZ9bHLnAZtbnZHHdjNH9GDHhePtQTzf1amPF+O7RV7krpYPvGaC+A6D3FTDf6yUyuotwOt5Orotyk+6eRXkaZ+V3RSvCqsWrwk1kG3E9ExrZuOC8bzE1VvEWv/6lX/myleXQIwazhwArl3dSwZ2aduaBLBsq3lL8hLX+ZXK+ixo993vzI5a3o93xD9ZFIhXHGectbPm2e9o0g/HtzVh5bWeXKfPdF7g8uwOVVVY915eiJMGD39kF3zrZ3BvuuuvisAmkdY441GnCJnq/Mslzs3y+2zOX7bs6U/2+M/AqVy2MoS0AW3/N3W3r4uFgvwJj89z7Xkym1jw/1aueY+Py2sLdinPss36Ck6kuna+G+dI/Ck4UAEgAAGJwLp6nS/j+lTtfa/++Yq0uj896li2yw5lva6Xoh2QDOwBb8l6ApXOX5de7/Xe3FBHG26vll5r877tQtk4MllX91pxaY/x/7fzaY5ddfc52+4NbPMj9Mr7ETca/cp8ttz6Upi1wQ6ud/5VIJ4JQ1Rg/P9RUtrsIm/aPMVa7kFXkGQr6KWNszIFIJ637MKXNoi1Ckx5GRPfzLMR5npLW0G04q74/JyP7tMDZVfpgb35oxndb4EDj5RY83WokctMJOV8JlDNUT602REWRzLbTjYpXjRbND/qSHEHGV0aHYMEJGoeFGIhVvdvie1NBhsTQMkF5r5ump/Ucr93LnnyINKu+d5GMsNk/m285+ZmRdkF/zpS0qT5k9ljze+ZGvvI7kDX8uUvtxxxVMOjboqPTwVVkGOi8Z5zoQaekfE1RM2fP0g/B4iuWCGSY/5BymK6iAjQ7D5Y6rmB5QMYPZT/a2rleFSVsqgBut8I/t51Qof/LDgU1MpT0+9J9VKO9G7leZeS6XgfJZKN92Nm2RdaO7/GVzPQXW+oYNPzxDaooHe5Y09enKXPm2ENezT6lgpq1oVvOfcwRMcpSrQi4OGkakAlNbTxs4/6T06y7zhfwDl5Yz489bs+cqVpaL/fulwHdzlnx/YxRQqFweS1kCcgiGsQt73gbfQTn/Vi1073N52u/Dlv/q0806P+/uwbkDUvbvgVS5cMNZFvP3+tAigAQAAAbl2mlT/FRhwZByn9eiC1f4HkgnyJ5d2uUns/xul5Lh+jDwlaVSt9xpe09Zr7ieS7Hh7QAgg6v8qCryIdIZPY5ivZGOR3TomoKVLNHWwqWqqfaTLmhzRDeFrYzNyw7VVHgInEKyW1Kf22T25YfqyexN4Srjwu3WmnV++fGxlevp/X4/6BAbyDWMUC72eSHzbU+t9H5SPaxiaSic3kKy88+41NBgsfOSowKyUN5zQ6OE73Ut4E/MMWZ/jldsnsyznfvMWO+TYIjCsNX8oBXK47aXQ2R5qsLWnvCqft3VHO0lUojJcyb/pit2chjgvLh0ZwVYMlv6WzZ/m3Oi8Rm98YzoNXXpzvD2B+7a24rq7AroD/XQ9w5qSaqXTcAeV7TMxoas8xXfccXux8q9rXveSiRt0Qr/+H5Oct72st+blv3eYHgy2ysjtdwGAYoZ+s9dw9z3bspf1Ikpf9nn2A9ZlxmwjPSiyQoURgNV+cqna8gQKZOuotnk6+gwWXnKihX9vnbB1wjXY8oHtHZ/c6wrL8X+7ZGZzrDXRbwMDkaB7+YhUKhcZpcl4Bi5Yex84CYzMBlV6N4XCf64BmWmPJ032ayz87Z85QpIuR6E5r4YKUNuf3l78Z0YBJAAAMAJEPb6uV9vLMoaYHuQos8vss9gyuiVNHmapvnJLDZoFK63wSS3MIfPBb2O7OvpO4JFj82LPs8JANKC4WEGrqi08j7/6HiZH5qpOsiclbmhaGVlUKHpVNnWwuNSQyulK5oKVMQVFFTCplpSp162t0NGbwo3FM+YyHA2JcHy4+V+ZKfT9Fj0eRguvUVU3FruofPBPoJW3EFlcLxHSKH0Fpadf4LKcMtVoIf7ygwSGIXyXqzC0B3HiTnG7M/xis2TebZznxnpfRK+Uj3ABqtQHvcVt+GyVAXuzNP12L0TtbCoYZMMV4kUqdixQQxXcRQZqqvgefGtmDMrZbNa+vvgUfXE7Hzh0pkhWpnqgkfB8FH5gkduqJ1Y2c/I7zkDEtFK2SL34+TbNh/7OSen/OXN297gyl8Q9HFDbKaW21eeno9RWfer9L2b8hdxgsrfQPkgLtIwI8aXj4HKZw7p48lfVmK96rys+0jIpTvzGWa5BOUqizveXGW5SIW+m4dAoXKZXZaAY5V+/tBm87d97uHrjEL3PmP2rHEumPT+nqA82Z5N2nMob/kKerJmfo+Y+6S51w3cQ3ToEEACAAAnzitt7o/55K8eLWoIu9xm6T4f3Mk9tNwsXW+DPsse1ZPmDzEr/LxgSDy//pUX9LJbv9X8OI0+A8kHqG4Pns906aLXtNiOcHdNXcEfdwBGsYtLYj/c8j9XJKPCJatS+DhEWjfb5z/k/SGryDAXrhLHt5h0LSmP6KepIXhsRdXxPFg6+GG9ZG2614zrTWN70dhKPmUeX/qB3u74g8khEFYU2Zbp6dbZsZajTpDezEpK1/I80vMnqFQ9TedlpaFAev18Xj7/pM69G36nSEXnPeskH2OxeTLfdvYzo8/t8L0UiqpIzuWY8/hZ+o7rheZ7d/ihvNLnInieiJNREW57r9lK2FXRIEHB82KDF9mtmG2FUfRZJ5sf9z2PcgVcYukM8n2qFbM9h67nUa6ghQ1KBT0bsoIEWfk9aDUd9gxx6UjdywaznwLbunXR62Pmm/znnJLlz1cURlqJBz1bIr2G8vH3q1RPHJv+gRJG+Ruy8pfN5n9F8pvJm/b7xZeBzOscKx+FyqcN7kbzgx2OL/UMlEJlxezW7D/17EDfKCOVDnftwv2G5Sg9pGN+meUqcrxZZXCw8nw3D4VC5dKXpfjfQcEkMFiu3Jn75E2ZzyGMGujeZwNMpuz+tDMMMo9VQ2dfnvKV77lI/p4U6614YhFAAgAAJ8As3bfCDgv3M3219gJdfm+dFrggThBQGmr2eUtP35Eefu7ye6XFr+3UfZ8L19sh9ML1zaqLPQPJBqjMevcMJLv+81r0yrf09M+/lmfIOwA4S99xD8Xd61o9z2qWHr43bKVsK33CSjdbOZVupX/sw7/kMHOs3vetrm/aNk6rcvRWCYxTwx4/hFKsIrlUN987UQ2p4ZXyV1QVy7badg+Jd/uLHNe+j7W2OjqMkB+mx5+/V2fZlpTpgFKm8Af7rIEqXl1FY9ga/YDUOD7S8jg7vbZVt235Ht3/+xlpcD035udIg5E3vX59fkH+sc+6cJ+xVlpY4E22clLbDvrK8UJ5L9vJOkan2DyZd7t42uxwX/bB59m9Zop1HHncV1rf5J79kbGfYs5FVKHzkrOniO1tEu0tEAyfFR9ezL7C8mCOb354rYJAU/h8JPfgbfN/bKg383IVWWFQwuatyDqXz3Lk99nfDHqG2G1cOsJg1mD2U2hbd57PVOPW8HpFgmanaPkLnkVzNDWU0YDbpwR5Ljzf5z7wsRrMPbMgyl9ugy5/uc3+pn8ekEuL7w0YlgE39KlS1/mmzmiwN3/5zHxf7Du6YFkxzPfoD+Yq+L5z1+qMdIDIrQvzXYHgcw62XG2d1RdLp7tmOcpg0Qp+NxfPBWDD5zHFFCqX0fNv1g/qeVBABhccshOFAs8D3PvCoKbCnojjzP/9ij8fNeCCoXkaAwTfTT6IfBKMaW9v7y8vL/ezAABgJEgmk6qtrfVzyJT81QIfZHpMt0z2CwHgFGFb2tuHhg84/JMbukpaVcSwTsDxKDZPFp13hzUbJP6z1s46c8DK8JGRXgx3lL/cKH/IFuSf9xtzDekJIB96IAEAgBEuqSdvD3om3f9msOT9XXYIuzpdQPAIAAAAAEYgO3xY5JlYfijfgZ8HBSCKABIAABjhKnXL/ffrWjP12LwgkPTVZddo8WuLdGmwAQAAAABgRDlLXw+H+rPDieV9JhyAQhjCDgCAEYgh7AAAAAAAAHA86IEEAAAAAAAAAACAGHogAQAwAtEDCcBo1t3d7acAAAAAYPQoKyvzU0ODHkgAAAAAAAAAAACIIYAEAAAAAAAAAACAGAJIAAAAAAAAAAAAiCGABAAAAAAAAAAAgBgCSAAAAAAAAAAAAIghgAQAAAAAAAAAAICYMe3t7f3l5eV+FgAAjATJZFK1tbV+DgBGl+7ubj8l9XV3qK23QvXnlto59bR3qeT8atk5qVedrZ0a95k6VU4I57tUWlejRImZ29Oqrgl1qikrcdMd+92bjIRq6sN94BPV16OOtk5z5aTSs4Nrlbnciq070KnWveNUV1cptyS6jwqzXYVd2qvkzi6NPz/IC1ZfV5s6x9r9BPOfuJzHbdj0/aHHTJQoMaVO1WcEi11Z2Js6I6o2+byku009pelt3D47pZqahF+A0cXcA9v7VHF+IigbETb/tx2q9vfSzPxk+ftigbLX09GqTrui5NNB+cvY1kpMqU/nR5za7PX9oEQ1k9N5pqukRtUTIveu6L25QP4DABSvrGxo/1ilBxIAAACAEav3d2u07EcrteWAm1Prc5vV6dYYHeu1+vk1evadsPqyU5ufXK71bX1mukPr/89SrfldsK7zt6u1w+0Dw8qBVq15I7iinev+Xsvf8tcysjxTx4bVal79rLaH1zOy7f7WFXrwF1uUVKnG/2mNlm+xgRirQy//0w71DaeK7chxd216VEuf7ZDNudq7Watb7Xn4D7U+sVTNHXZhUBY27gmmQyV/alHT634Do29ns1Z2HPZzGH3MPfC51lhAJ9Cr7eZe2bxqvSkJcZ1vZNwbc5a9PnU8+6DWvCslKhIq6TsS5NXQno0+z2JEsXnht+m8YO9Bm/eaiUgeid238+Y/AMAniQASAAAAgBHt6usq9ObmpJ9L63inTdO/fK1K3opUWM1skLbsUG/HDvV9cb5q/GJpks6pq1d9vX3R+2hYKatx1+WKmdO1eXeXX2j45faVbuHeoR3vTteN15SoZWekmtJvO+OqW3VzdbM2tUuJK25U3W+a1XpI6tn0vLqu+YLqhluzeH/cl95wo6b/S0uqcn9SdZ1ZPkOXNkzSe/vCIJhUcV6Yh4OeVSV101X/2x3+fX1q+7cuzbmo0s0BKQda1TJhrm6c1qodPpOV+LxXUxbeGyP3xayy16uuzoSmX1Kv6opq1YXbltheS2a78yp8nqX30ajh80jWfRsAMOwQQAIAAAAwopVccKmmv71BrbEm7zaQ0KD6umlqKGlRq21B39OjP46drhnlrVq5oVfTLhyvP3aFle9JbVvXrObnzWtDGy2kh5O2jea6rNTy3/Rq/hXpkF+wPLhmLfv8so4davtsveoubIgHDiMSZQl17LXXvUZfuEFa/UKzXt4+XdddMnzDhr1tu9TxxRpV+/nk9pdNuldo5TvTdX1Deji6ttd9Hn6+xeRoo6RO0+u3BEGBvjbt6Jmt+uEyRB+Gjd6dLSq9qE51f1Gv1ncy+yDlkFX2Emq4sU4tjzyoppdM3uMGinz3bQDAsEMACQAAAMAIV6k5X5Re3hQZVqljh1qmVGpSr1l7/uGgN8rHfTpiVtV8NqGu8tmqL5GOmGWBSs28dq7mXm9eV9XRA2k4qWnQ1Z+baiamqroiWOTUzQmul3nNqAoWdbzTopqzJ6nXXM+aPh84zCExIehqVPLZG/XFro0quXaOeccw9PoKLf3FCq3vnKpbb5mRypeVF8zRnAsSUoV93ohfaNT9pc/D18/w6SlR3Wfr1fpuUn1tO5RsqBdPP0Jcr1rfOqypFX3qLZ+qmu1hj7UCcpS9kslXa/59d2veBQf1wiPLtCX9qDqMRvnu2wCAYYcAEgAAAIARr6T+KjW0btSOj4P5jndaleh7T+t/s14tByapJ9obpWau7r6eFtGnjJJJKq24VNddsFnr3ol1M8vQoR2tCfW1rzfXvUW9pT3xYeyso0m1bE+oYVoYiilVoqJSleXDbew67y/n6Z7b5mnuVfVKjPXLrNPNcdd9QXP6mrUx7H2Vhx3Grmbr29q4M6mZFxI+QgY7fF3PJO3fYsrNhveksvQwdseitOYKXXd5j/74J78AI9eEiUr8oUthP96ufX1KnOlnir5vAwA+aQSQAAAAAIwClZo9W1q/xU7bQEK9rv9K2BvjRs35qEWt+w8rUXGW2zrloz7/sPddWv0PS7X0R/a1buAW+DjpKi/7grRuYzA0m2V757jrtVQr3upxvc5aL7peN/ueEXNvmKPeMHDotn1QD/5sncbfOE8zRsRzWEpUf1WDtm9o9XlY2vBkmIdXqCWs1bXD2NU0a2XP59TA8HXYuVrLfLlZ+lKHG76u5JqbUz2Kbr62TlsGGsYus+yZO+Y6M930VLNW/GKp/rlzrq6oCzbFCFY6XVdP36amX67Uyn96VM0l5rvW90gLZd23M/IfAOCTN6a9vb2/vLzczwIAgJEgmUyqtrbWzwHA6NLdzdhIAAAAAEafsrKhbRFEDyQAAAAAAAAAAADEEEACAAAAAAAAAABADAEkAAAAAAAAAAAAxBBAAgAAAAAAAAAAQAwBJAAAAAAAAAAAAMQQQAIAAAAAAAAAAEAMASQAAAAAAAAAAADEEEACAAAAAAAAAABADAEkAAAAAIhqW6P/+ZNNSvrZgg50qvOAnz5WPR1qbW1V275evwDF6uvuiJz/PvW0d6rQWWxb/ag2dfsZAAAAAAURQAIAAACAqPOv1re/2qBKP1tIz7+t1Oa9fuZYHGrRmnWdKv1UQj2/flArW/v8ChSj93drIue/V63PbVannwMAAABwfMZ+97vf/V8TJ070swAAYCTo7e1VWVmZnwOA0eWjjz7yU1LPppV6+vX1an6xU4f//JyeeGGM6i+boklta7S8Za9aVz+jVS+1atL0S1RdarZ/a4V+/H9f0Lpdk3SZ2e50v5++jnV6/Jer9OKG9drWV6vLzv9YLU/8WCte69C//3uLtr7xmnaXXqyLJofvyNa3Z72e/ucNequlWVt6ztNF5yc0dtzZurB+ihJnnKnq03u0rvscXTbF7qNXrc/+QmveaNVrr7ZqwrSLdDY/27Ic2v1bdZRepgvL3Zx2v9mh0ssuVHme69v9u9+qt+YyTTmtTWt+skoH6uzyHm165td6t+1lPfOvL2jT/nM02+xwrPrU8dLjanr2Ra3fsFOHp1ykzyR2q/knLUpcNlWT3BFIbc8s1x9qZujA88u1LdmqVf+6SuvemaT6WdWpbQAAAICTYahjPfRAAgAAADCCJVVy0W36St1mHf6LuzVvSlIf+jW79p+jm//mbv3d1xLa2NbjliUumad7/naernJzaR3b3tTUr9xt1t2jO/9ztVmS0Iyv36M7bpimq265xy2fd0ki2DinpDau6dWcO27Vrbd9V5f+8XltDz7S61Pb9jbVVQf76Gtt1uZzvqH537hVd95cqXWvdbjlKF6u6+sc6lDzP67XOf91vi6t8Ms62zT+ijt09z3/Q3Pad8ie7b7WNVoz7gbd/Tfm+t41R8l/2WiuYoWqz+wxeahXbb9uUad61NWV0KdK7U52af/ZN5vt/07zyjbq9wyVBwAAgFMcASQAAAAAI9g5mlpdYv6v1KfODJaEKqsrZNfoNPdvQXXXfkWHX1iqpb9Yoy27B3hWUU+LVvzIbGtfL/nAz6FOdfy+Rc//sklNv1yujd1H9B+RZyclX1+u9dX/TXNrgvmu3a3qeG2F2dZs/9wO8/79BZ/tg2y5r2+fdrzwpLoum5cOHjk1qnDz41O/knt7OlUzxQ9kOKFaUyfYwFGpPlX2R3V17NLmV9appaNLSZO3grBfpc6p8J81NvgPAAAAOJURQAIAAACAgZxRp7m33aN7bpmm9/7xZddDJdT3sZ8IJWZo3t8GvZLu+aKPCE34lBJVn9OX//t8zTevO759p64+N1iVfL1Jz+oGzb8i/dSl0sSnVfOfbnXbzr/tTt39lRlynVwQUzIhoY6usHdRl5KHEjrLz+VWoumN8zVt8yNa01b4eVN2310fhmG7Hu0vCfadqJik9zZ1qPob16pnS4t6zq7wASQAAABgZCGABAAAAABex0u259AKbdi5Wst+tFTr2u3SHrU80aQVzzer+dmN6vn8DNlB7KzEhXPU89SjZt0KrXkrNiZdhhpdcU1SK368XCvNflb8cl0QhGpfo//9D63qfK0p6LH0o2B5ouF6nfP632vZU+YznzHveYv+R7mUXnS1pm9rUtMzK7X8J80q+fIcpcNweYyt1BW3zVflb5ZrU5dflkPpJddpxvZHzDWw+35Z468L9p2oSKi5I6H6ummqP7BGPVWxrkwAAADAiDGmvb29v7zcPXEUAACMEMlkUrW1tX4OAEaX7m4ePgMAAABg9CkrK/NTQ4MeSAAAAAAAAAAAAIghgAQAAAAAAAAAAIAYAkgAAAAAAAAAAACIIYAEAAAAAAAAAACAGAJIAAAAAAAAAAAAiCGABAAAAAAAAAAAgBgCSAAAAAAAAAAAAIghgAQAAAAAAAAAAIAYAkgAAAAAAAAAAACIIYAEAAAAAAAAAACAGAJIAAAAAAAAAAAAiCGABAAAAAAAAAAAgBgCSAAAAABGuD51bt2ktgN+NqVXbZu2qPOQnw0daNOmrZ3mXQAAAAAwehFAAgAAADCyHe3Qxsef1MZ3e/0Cr2u7mpc1q7XLz3vJ7c1a9lyrMhYDAAAAwKgypr29vb+8vNzPAgCAkSCZTKq2ttbPAcDo0t3d7acAAAAAYPQoKyvzU0ODHkgAAAAAAAAAAACIIYAEAAAAAAAAAACAGAJIAAAAAAAAAAAAiCGABAAAAAAAAAAAgBgCSAAAAAAAAAAAAIghgAQAAAAAAAAAAIAYAkgAAAAAAAAAAACIGdPe3t5fXl7uZwEAwEiQTCZVW1vr5wBgdNm/f79aWlr0xhtvqKuryy8FAAAAgE9eRUWFLr/8cs2YMUP9/f1+6dAoKyvzU0ODHkgAAAAARhQbPFq7di3BIwAAAADDjv2dYn+v2N8twx0BJAAAAAAjiu15BAAAAADDmf3dMmbMGD83PBFAAgAAADCi0PMIAAAAwHB3KvxuIYAEAAAAYESxY4oDAAAAwHB2KvxuIYAEAAAAYESxD6QFAAAAgOHM/m7p7+/3c8MTASQAAAAAI8qMGTPU2NhITyQAAAAAw479nWJ/r9jfLcPdmPb29v7y8nI/CwAARoJkMqna2lo/BwAAAAAAAAwOPZAAAAAAAAAAAAAQQwAJAAAAAAAAAAAAMQSQAAAAAAAAAAAAEMMzkAAAGIFOxDOQ3nvvPT8FAAAAAACA4Wbq1Kl+amgQQAIAYAQ6EQEkAAAAAAAAjB4MYQcAAAAAAAAAAIAYAkgAAAAAAAAAAACIIYAEAAAAAAAAAACAGAJIAAAAAAAAAAAAiCGABAAAAAAAAAAAgBgCSAAAAAAAAAAAAIghgAQAAAAAAAAAAIAYAkgAAAAAAAAAAACIIYAEAAAAAAAAAACAGAJIAAAAAAAAAAAAiCGABAAAAAAAAAAAgBgCSAAAAAAAAAAAAIghgAQAAAAAAAAAAIAYAkgAAAAAAAAAAACIIYAEAAAAAAAAAACAGAJIAAAAAAAAAAAAiCGABAAAAAAAAAAAgAjp/wPkr/aG8oj8dQAAAABJRU5ErkJggg=="
}
},
"cell_type": "markdown",
"metadata": {},
"source": [
"The finished Pipeline should look as follows. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Predict from the trained model\n",
"\n",
"Once Kubeflow Pipeline is finished, you are able to call the API endpoint with [mnist image](https://raw.githubusercontent.com/kubeflow/katib/master/examples/v1beta1/kubeflow-pipelines/images/9.bmp) to predict from the trained model.\n",
"\n",
"**Note**: If you are using Kubeflow + Dex setup and runing this Notebook outside of your Kubernetes cluster, follow [this guide](https://github.com/kserve/kserve/tree/master/docs/samples/istio-dex#authentication) to get Session ID for the API requests."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Run 9519f884-8baf-4768-a728-29de8ef5b4e6 has been Succeeded\n",
"\n",
"Prediction for the image\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
":13: DeprecationWarning: `np.float` is a deprecated alias for the builtin `float`. To silence this warning, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.\n",
"Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n",
" data = np.array(image.convert('L').resize((28, 28))).astype(np.float).reshape(-1, 28, 28, 1)\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAAAAABXZoBIAAAA1ElEQVR4nN3QPwtBYRQG8EMU0e0uZLIw+QKXRZlMGC0GX8CglE0pk0VxPwQmE5YrJYPVIjYMlImSwXNiMOi97319AM/6O6fzh+g/Y5hr5mrRNByseAZba4D7EnlSN8wy3uAYXJOwDEw0ohKwD9mtxehqRLQBCnZr8GPkJ/Ll79y0m37GiIjiK2AQsGMYiIbryyvjmZO20U9gAIcjTg43GhfethOROToO+En6xRUlZhnSjd+I6BY7xVIRY79w4XapR9IOSTWWYSWUqE0xlH771R7UrULefm5U2pxVCt0AAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'predictions': [{'predictions': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], 'classes': 9}]}\n"
]
}
],
"source": [
"import numpy as np\n",
"from PIL import Image\n",
"import requests\n",
"\n",
"# Pipeline Run should be succeeded.\n",
"kfp_run = kfp_client.get_run(run_id=run_id)\n",
"if kfp_run.run.status == \"Succeeded\":\n",
" print(\"Run {} has been Succeeded\\n\".format(run_id))\n",
"\n",
" # Specify the image URL here.\n",
" image_url = \"https://raw.githubusercontent.com/kubeflow/katib/master/examples/v1beta1/kubeflow-pipelines/images/9.bmp\"\n",
" image = Image.open(requests.get(image_url, stream=True).raw)\n",
" data = np.array(image.convert('L').resize((28, 28))).astype(np.float).reshape(-1, 28, 28, 1)\n",
" data_formatted = np.array2string(data, separator=\",\", formatter={\"float\": lambda x: \"%.1f\" % x})\n",
" json_request = '{{ \"instances\" : {} }}'.format(data_formatted)\n",
"\n",
" # Specify the prediction URL. If you are runing this notebook outside of Kubernetes cluster, you should set the Cluster IP.\n",
" url = \"http://{}-predictor-default.{}.svc.cluster.local/v1/models/{}:predict\".format(name, namespace, name)\n",
" response = requests.post(url, data=json_request)\n",
"\n",
" print(\"Prediction for the image\")\n",
" display(image)\n",
" print(response.json())\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}