{ "cells": [ { "cell_type": "markdown", "id": "c9edc614", "metadata": {}, "source": [ "# Light-curve classification\n", "\n", "Classifies [Roman Open Universe hourglass simulation](https://zenodo.org/records/14262943)\n", "transients (top-5 classes) using ATCAT multiband embeddings\n", "and a linear Ridge classifier with 5-fold cross-validation." ] }, { "metadata": { "ExecuteTime": { "end_time": "2026-05-24T20:48:15.121616Z", "start_time": "2026-05-24T20:48:15.114040Z" } }, "cell_type": "code", "source": [ "# %pip install light-curve huggingface_hub onnxruntime nested-pandas scikit-learn" ], "id": "7ace003e93799e0b", "outputs": [], "execution_count": 1 }, { "cell_type": "markdown", "id": "a1b2c3d4", "metadata": {}, "source": [ "## Step 1 — Download and sample\n", "\n", "Download the Hourglass objects and photometry tables from Zenodo, keep the five most\n", "common transient classes, and save the joined\n", "nested-pandas frame as a Parquet file for later use." ] }, { "cell_type": "code", "id": "2037bdae", "metadata": { "execution": { "iopub.execute_input": "2026-05-24T17:19:45.557393Z", "iopub.status.busy": "2026-05-24T17:19:45.557067Z", "iopub.status.idle": "2026-05-24T17:19:50.708660Z", "shell.execute_reply": "2026-05-24T17:19:50.706695Z" }, "ExecuteTime": { "end_time": "2026-05-24T20:48:16.377316Z", "start_time": "2026-05-24T20:48:15.125561Z" } }, "source": "import os\nimport tempfile\nimport urllib.request\n\nimport nested_pandas as npd\nimport pandas as pd\n\nZENODO = \"https://zenodo.org/records/14262943/files\"\nCACHE = os.path.join(tempfile.gettempdir(), \"hourglass_zenodo\")\nSAMPLE_PATH = os.path.join(CACHE, \"roman_sample.parquet\")\nos.makedirs(CACHE, exist_ok=True)\n\nfor fname in (\"hourglass_objects.parquet\", \"hourglass_photometry.parquet\"):\n dest = os.path.join(CACHE, fname)\n if not os.path.exists(dest):\n print(f\"Downloading {fname}…\")\n urllib.request.urlretrieve(f\"{ZENODO}/{fname}?download=1\", dest)\n\nobjects = npd.read_parquet(os.path.join(CACHE, \"hourglass_objects.parquet\"))\ntop5 = objects[\"class\"].value_counts().head(5).index.tolist()\nprint(f\"Top-5 classes: {top5}\")\n\nsample = objects[objects[\"class\"].isin(top5)]\nprint(f\"Sample: {len(sample):,} objects\")\nprint(sample[\"class\"].value_counts().to_string())\n\nphotometry = pd.read_parquet(os.path.join(CACHE, \"hourglass_photometry.parquet\"))\nnf = npd.NestedFrame(sample).join_nested(photometry, name=\"lc\", on=\"cid\")\nnf.to_parquet(SAMPLE_PATH)\nprint(f\"Saved sample → {SAMPLE_PATH}\")", "outputs": [], "execution_count": null }, { "cell_type": "markdown", "id": "b2c3d4e5", "metadata": {}, "source": [ "## Step 2 — Embed with ATCAT\n", "\n", "Load the sample, run ATCAT (a multiband causal transformer trained on LSST-like light curves)\n", "across four Roman bands (R, Z, Y, J, H, F) mapped to LSST band indices 0–5.\n", "ATCAT takes fluxes (SNANA's `fluxcal`, ZP=27.5) and produces a single 384-dim embedding per object.\n", "\n", "This cell took about 7 minutes on a Macbook Pro with M2Pro CPU." ] }, { "cell_type": "code", "id": "3c4d5e6f", "metadata": { "execution": { "iopub.execute_input": "2026-05-24T17:19:50.713253Z", "iopub.status.busy": "2026-05-24T17:19:50.712911Z", "iopub.status.idle": "2026-05-24T17:21:59.285025Z", "shell.execute_reply": "2026-05-24T17:21:59.284094Z" }, "ExecuteTime": { "end_time": "2026-05-24T20:55:04.932829Z", "start_time": "2026-05-24T20:48:16.410321Z" } }, "source": "import nested_pandas as npd\n\nfrom light_curve.embed import ATCAT\n\nCACHE = os.path.join(tempfile.gettempdir(), \"hourglass_zenodo\")\nSAMPLE_PATH = os.path.join(CACHE, \"roman_sample.parquet\")\nEMBED_PATH = os.path.join(CACHE, \"roman_embeddings.parquet\")\n\n# Roman bands mapped to LSST band indices (0=u 1=g 2=r 3=i 4=z 5=Y)\nBAND_GROUP = {\"R\": 0, \"Z\": 1, \"Y\": 2, \"J\": 3, \"H\": 4, \"F\": 5}\nEMBED_DIM = 384 # ATCAT embedding dimension (single band group)\n\nnf = npd.read_parquet(SAMPLE_PATH)\n\n# fluxcal is calibrated to AB ZP=27.5 (SNANA/hourglass convention).\n# mag_zp=26.0 rescales the fluxes up (~4×), placing Roman flux levels\n# closer to the LSST training distribution of ATCAT.\nmodel = ATCAT.from_hf(\n output=\"mean\",\n band_groups=BAND_GROUP,\n mag_zp=26.0,\n)\nprint(f\"ATCAT loaded (embed_dim={EMBED_DIM}, seq_size={model.seq_size})\")\n\n\ndef embed_row(mjd, flux, flux_err, band, flag):\n ok = (flag == 0)\n mjd, flux, flux_err, band = mjd[ok], flux[ok], flux_err[ok], band[ok]\n\n emb = model(mjd, flux, flux_err, band=band) # (1, 1, 1, 384)\n return {\"embedding.value\": emb.squeeze()}\n\n\nprint(\"Embedding light curves…\")\nnf = nf.map_rows(\n embed_row,\n columns=[\"lc.mjd\", \"lc.fluxcal\", \"lc.fluxcal_err\", \"lc.band\", \"lc.phot_flag\"],\n row_container=\"args\",\n append_columns=True,\n)\nprint(\"Done.\")\n\nembed_nf = nf[[\"cid\", \"class\", \"embedding\"]]", "outputs": [], "execution_count": null }, { "cell_type": "markdown", "id": "c3d4e5f6", "metadata": {}, "source": "## Step 3 — k-fold classification\n\nLoad the embeddings, fit a Ridge classifier with `StratifiedKFold(k=5)`, collect\nout-of-fold predictions, and report the class-weighted macro F1 (`cw macro F1`):\nmacro F1 computed with per-sample weights that equalise each class's total weight,\nequivalent to ATCAT's `cw_macro_f1` metric." }, { "cell_type": "code", "id": "4d5e6f7a", "metadata": { "execution": { "iopub.execute_input": "2026-05-24T17:21:59.287479Z", "iopub.status.busy": "2026-05-24T17:21:59.287048Z", "iopub.status.idle": "2026-05-24T17:22:03.535594Z", "shell.execute_reply": "2026-05-24T17:22:03.533898Z" }, "ExecuteTime": { "end_time": "2026-05-24T20:55:06.466091Z", "start_time": "2026-05-24T20:55:04.961663Z" } }, "source": [ "import numpy as np\n", "from sklearn.linear_model import RidgeClassifier\n", "from sklearn.metrics import classification_report, f1_score\n", "from sklearn.model_selection import StratifiedKFold\n", "from sklearn.preprocessing import LabelEncoder, StandardScaler\n", "from sklearn.utils.class_weight import compute_sample_weight\n", "\n", "CACHE = os.path.join(tempfile.gettempdir(), \"hourglass_zenodo\")\n", "EMBED_PATH = os.path.join(CACHE, \"roman_embeddings.parquet\")\n", "OOF_PATH = os.path.join(CACHE, \"roman_oof.parquet\")\n", "\n", "X = np.asarray(embed_nf[\"embedding.value\"]).reshape(nf.shape[0], -1)\n", "\n", "le = LabelEncoder()\n", "y = le.fit_transform(embed_nf[\"class\"])\n", "class_names = list(le.classes_)\n", "print(f\"Classes: {class_names}\")\n", "\n", "kf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)\n", "oof_pred = np.empty(len(y), dtype=int)\n", "\n", "for fold, (train_idx, val_idx) in enumerate(kf.split(X, y)):\n", " scaler = StandardScaler()\n", " X_tr = scaler.fit_transform(X[train_idx])\n", " X_val = scaler.transform(X[val_idx])\n", " clf = RidgeClassifier(alpha=0.001)\n", " clf.fit(X_tr, y[train_idx])\n", " oof_pred[val_idx] = clf.predict(X_val)\n", " sw = compute_sample_weight(\"balanced\", y[val_idx])\n", " fold_f1 = f1_score(y[val_idx], oof_pred[val_idx], average=\"macro\", sample_weight=sw, zero_division=0)\n", " print(f\" Fold {fold + 1}/5 cw macro F1 = {fold_f1:.4f}\")\n", "\n", "sw = compute_sample_weight(\"balanced\", y)\n", "cw_macro_f1 = f1_score(y, oof_pred, average=\"macro\", sample_weight=sw, zero_division=0)\n", "print(f\"\\nOOF cw macro F1: {cw_macro_f1:.4f}\")\n", "print(\"\\nClassification report (5-fold OOF):\")\n", "print(classification_report(y, oof_pred, target_names=class_names, zero_division=0))\n", "\n", "# Store class_names in parquet metadata so Step 4 doesn't need a separate file\n", "oof_df = npd.NestedFrame({\n", " \"cid\": embed_nf[\"cid\"],\n", " \"class\": embed_nf[\"class\"],\n", " \"y_true\": y,\n", " \"y_pred\": oof_pred,\n", "})\n", "\n", "assert cw_macro_f1 > 0.45, f\"Expected cw macro F1 > 0.45, got {cw_macro_f1:.4f}\"\n" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Classes: ['CCSN', 'Fixed_mag', 'SNIa-91bg', 'SN_Ia', 'SN_Iax']\n", " Fold 1/5 cw macro F1 = 0.5498\n", " Fold 2/5 cw macro F1 = 0.5547\n", " Fold 3/5 cw macro F1 = 0.5569\n", " Fold 4/5 cw macro F1 = 0.5503\n", " Fold 5/5 cw macro F1 = 0.5567\n", "\n", "OOF cw macro F1: 0.5537\n", "\n", "Classification report (5-fold OOF):\n", " precision recall f1-score support\n", "\n", " CCSN 0.93 0.97 0.95 39177\n", " Fixed_mag 0.96 0.93 0.94 489\n", " SNIa-91bg 0.90 0.29 0.43 1317\n", " SN_Ia 0.91 0.95 0.93 21731\n", " SN_Iax 1.00 0.00 0.01 1318\n", "\n", " accuracy 0.93 64032\n", " macro avg 0.94 0.63 0.65 64032\n", "weighted avg 0.93 0.93 0.91 64032\n", "\n" ] } ], "execution_count": 4 }, { "cell_type": "markdown", "id": "d4e5f6a7", "metadata": {}, "source": [ "## Step 4 — Metrics and plots\n", "\n", "Load the OOF predictions and visualise the confusion matrix normalised by **purity**\n", "(column-normalised): each column sums to 100 %, and the diagonal entry equals precision.\n", "Classes are ordered from most similar (Ia subtypes) to least (Fixed_mag)." ] }, { "metadata": { "execution": { "iopub.execute_input": "2026-05-24T17:22:03.539472Z", "iopub.status.busy": "2026-05-24T17:22:03.538995Z", "iopub.status.idle": "2026-05-24T17:22:04.271003Z", "shell.execute_reply": "2026-05-24T17:22:04.268923Z" }, "ExecuteTime": { "end_time": "2026-05-24T20:55:06.633686Z", "start_time": "2026-05-24T20:55:06.495246Z" } }, "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from sklearn.metrics import confusion_matrix\n", "\n", "y = np.asarray(oof_df[\"y_true\"])\n", "oof_pred = np.asarray(oof_df[\"y_pred\"])\n", "\n", "cm = confusion_matrix(y, oof_pred)\n", "\n", "ORDER = [\"SN_Ia\", \"SN_Iax\", \"SNIa-91bg\", \"CCSN\", \"Fixed_mag\"]\n", "idx = [class_names.index(c) for c in ORDER]\n", "cm = cm[np.ix_(idx, idx)]\n", "\n", "col_sums = cm.sum(axis=0, keepdims=True)\n", "cm_purity = np.where(col_sums > 0, cm / col_sums * 100, 0.0)\n", "\n", "labels = np.array([\n", " [f\"{p:.0f}%\\n({n})\" for p, n in zip(row_p, row_n)]\n", " for row_p, row_n in zip(cm_purity, cm)\n", "])\n", "\n", "n = len(ORDER)\n", "fig, ax = plt.subplots(figsize=(7, 6))\n", "im = ax.imshow(cm_purity, cmap=\"Blues\", vmin=0, vmax=100)\n", "fig.colorbar(im, ax=ax).set_label(\"Purity (%)\")\n", "ax.set_xticks(range(n))\n", "ax.set_yticks(range(n))\n", "ax.set_xticklabels(ORDER, rotation=45, ha=\"right\")\n", "ax.set_yticklabels(ORDER)\n", "ax.set_xlabel(\"Predicted\")\n", "ax.set_ylabel(\"True\")\n", "for i in range(n):\n", " for j in range(n):\n", " ax.text(j, i, labels[i, j], ha=\"center\", va=\"center\", fontsize=8,\n", " color=\"white\" if cm_purity[i, j] > 55 else \"black\")\n", "ax.set_title(\"5-fold OOF confusion matrix \\u2014 purity view\")\n", "plt.tight_layout()\n", "plt.show()" ], "id": "8e3a1f0c", "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqwAAAJLCAYAAAAig8QKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAyvdJREFUeJzs3XVYFdkbwPHvpUvCAAywCws7sWttxS4s7G7dtWt11+6utfWnu+uu3S0GFrYI2EWoNMzvD9arV7C4XLjo+/GZ5/HOnDlz5txhOLxz5hyVoigKQgghhBBC6CmDlC6AEEIIIYQQnyMNViGEEEIIodekwSqEEEIIIfSaNFiFEEIIIYRekwarEEIIIYTQa9JgFUIIIYQQek0arEIIIYQQQq9Jg1UIIYQQQug1abAKIYQQQgi9Jg1W8V168+YNXbp0wdHREZVKRf/+/b9pf5VKxdixY7+YbuzYsahUqsQVUgDw9OlTmjZtSrp06VCpVMyaNSvJj/G13+ePpnLlylSuXDmli6FXDh8+jEql4vDhwyldFADu37+PSqVi1apVKV0UIVKUNFiF3nn3CyOh5fTp01+Vx+TJk1m1ahU9evRg7dq1tGvXTsel/jo7d+6kdu3apEuXDjMzM/LkycPgwYN5+fJlkuzToUOHT9bd7t27dXlqiTZgwAD27NnDiBEjWLt2LbVr107pIqU6jx49YuzYsXh7e6d0Ub5L69ev18kfUkKIr2eU0gUQ4lP69u1LyZIlNdblypXrq/Y9ePAgZcqUYcyYMbooWqIMHjyY6dOnU6RIEYYNG0batGm5cOEC8+bNY+PGjRw4cIC8efNqvY+pqSnLli2Ld/wiRYro9PwS6+DBgzRs2JDBgwfr7BhhYWEYGX2/t7tHjx4xbtw4smXLhqur61fvt3fvXt0VKpWqWLEiYWFhmJiYqNetX7+eq1evfvOTmqSQNWtWwsLCMDY2TvZji9Tp6NGj/Pbbb5w/f57Hjx+zfft2GjVqpN6uKApjxoxh6dKlBAUFUb58eRYuXEju3LnVaV69ekWfPn34+++/MTAwwN3dndmzZ2NlZZUCZxTn+72Di1TPzc2Npk2bJmrfZ8+e4eLiksQlSrwNGzYwffp0WrRowbp16zA0NFRv69ChA1WqVKFZs2ZcuHBB3bBKzD4ARkZGtG3bNvlOTkvPnj3D1tZWp8cwMzPTaf6pTWhoKBYWFhqNsh9deHg4JiYmGBgY6NX1olKp9Ko8Qv+9ffuWIkWK0KlTJ5o0aRJv+7Rp05gzZw6rV68me/bsjBo1ilq1auHj46O+1tq0acPjx4/Zt28fUVFRdOzYka5du7J+/frkPp33FCH0zKFDhxRA2bJlixISEqJERUV9874fL76+voqiKMrTp0+VTp06Kfb29oqpqalSuHBhZdWqVfHyAZQxY8ZorDt27JhSokQJxdTUVMmRI4eyaNEiZcyYMcrX/BjlzZtXsbOzU4KDgxPcPm7cOAVQNmzYoNU+Hh4eiqWl5RfL8ylr165VSpYsqZibmyu2traKm5ubsmfPHo008+fPV1xcXBQTExMlY8aMSs+ePZXAwECNNJUqVVIKFCigXLt2TalcubJibm6uZMqUSZk6dao6zcqVKxP8rhRF+WS9vtvn3fepKIri5eWl1KxZU0mXLp1iZmamZMuWTenYsaPGfgl9nxcuXFBq166tpEmTRrG0tFSqVq2qnDp1KsHjHT9+XBkwYICSPn16xcLCQmnUqJHy7NmzL9bnu+/Dz89PqVu3rmJpaalkypRJmTdvnqIoinL58mWlSpUqioWFheLs7KysW7dOY/+XL18qgwYNUgoWLKhYWloqadKkUWrXrq14e3ur03zqml+5cqXGd3Hu3DnFzc1NMTc3V/r166feVqlSJXVe7du3V0xNTRUfHx+NctSsWVOxtbVVHj58+MVzTmrvzm/jxo3KiBEjFAcHB8XCwkKpX7++4u/vr5E2a9asioeHR7w8Pj7Pd3lu2LBB+fnnn5VMmTIpKpVKCQwMVG87dOiQet+P6zZr1qzK69evFQsLC6Vv377xjhcQEKAYGBgokydPTvCcIiMjFTs7O6VDhw7xtgUHByumpqbKoEGDFEVRFF9fX43v853r168r7u7uip2dnWJqaqoUL15c+fPPP9XbAwMDFQMDA2X27Nnqdc+fP1dUKpWSNm1aJTY2Vr2+e/fuioODQ4JlFakboGzfvl39OTY2VnF0dFR+++039bqgoCDF1NRU/bvEx8dHARQvLy91ml27dikqlSpF7gHvSB9Wobc6duyItbU1ZmZmVKlShXPnzn1xn/z587N27VrSp0+Pq6sra9euZe3atWTIkIGwsDAqV67M2rVradOmDb/99hs2NjZ06NCB2bNnfzbfK1euULNmTZ49e8bYsWPp2LEjY8aMYfv27V8s0+3bt7l58yYNGzbE2to6wTTt27cH4vqrJnafD7148UJjCQ4O/mI5x40bR7t27TA2Nmb8+PGMGzcOJycnDh48qE4zduxYevXqRaZMmZg+fTru7u4sXryYmjVrEhUVpZFfYGAgtWvXpkiRIkyfPp18+fIxbNgwdu3aBcQ9el27di0ANWrUUH9X3+LZs2fUrFmT+/fvM3z4cObOnUubNm2+2Nf52rVruLm5cenSJYYOHcqoUaPw9fWlcuXKnDlzJl76Pn36cOnSJcaMGUOPHj34+++/6d2791eVMSYmhp9++gknJyemTZtGtmzZ6N27N6tWraJ27dqUKFGCqVOnkiZNGtq3b4+vr69633v37rFjxw7q1avHjBkzGDJkCFeuXKFSpUo8evQIiLvmx48fD0DXrl3V9VixYkV1Pi9fvuSnn37C1dWVWbNmUaVKlQTLOnv2bDJkyICHhwcxMTEALF68mL179zJ37lwyZcr0VeesC5MmTeKff/5h2LBh9O3bl3379lG9enXCwsISneeECRP4559/GDx4MJMnT04w4vzzzz/j6upK+vTp1XU7a9YsrKysaNy4MZs2bVLX1TsbNmxAURTatGmT4HGNjY1p3LgxO3bsIDIyUmPbjh07iIiIoGXLlp8s97Vr1yhTpgzXr19n+PDhTJ8+HUtLSxo1aqS+J9na2lKwYEGOHj2q3u/48eOoVCpevXqFj4+Pev2xY8dwc3P7coWJVM/X15cnT55QvXp19TobGxtKly7NqVOnADh16hS2traUKFFCnaZ69eoYGBgkeH9MNinWVBbiE06cOKG4u7sry5cvV/78809lypQp6ujZhQsXviqPrFmzKnXr1tVYN2vWLAVQ/vjjD/W6yMhIpWzZsoqVlZUSEhKiXs9HEblGjRopZmZmip+fn3qdj4+PYmho+MUI644dOxRAmTlz5mfTWVtbK8WKFUv0PooSF9EjgWjbh9GlhNy+fVsxMDBQGjdurMTExGhsexeJefbsmWJiYqLUrFlTI828efMUQFmxYoV63buo1Jo1a9TrIiIiFEdHR8Xd3V0jf0Dp1auXxrqvjbBu3749XiQgIQl9nyYmJsrdu3fV6x49eqSkSZNGqVixYrzjVa9eXSMiNWDAAMXQ0FAJCgr67HHffR8fRtoCAwMVc3NzRaVSKRs3blSvv3HjRrxyhoeHx/s+fH19FVNTU2X8+PHqdV5eXglG4RTl/XexaNGiBLd9fG3s2bNHAZSJEycq9+7dU6ysrJRGjRp99jx16V3EM3PmzBo/o5s3b1YAjQjit0ZYc+TIoYSGhiZ4vHcRVkVRlLp16ypZs2aNl++7utq1a5fG+sKFC3/xZ+7dvn///bfG+jp16ig5cuRQf04owlqtWjWlUKFCSnh4uHpdbGysUq5cOSV37tzqdb169dKInA4cOFCpWLGiYm9vryxcuFBRlLgovkql0qhH8e3CwsKU4OBgnS1BQUHx1n34/X8KH0VYT5w4oQDKo0ePNNI1a9ZMad68uaIoijJp0iQlT5488fLKkCGDsmDBAu0qSgsSYRV6p1y5cmzdupVOnTrRoEEDhg8fzunTp1GpVIwYMSLR+f777784OjrSqlUr9TpjY2P69u3LmzdvOHLkSIL7xcTEsGfPHho1aoSzs7N6ff78+alVq9YXj/v69WsA0qRJ89l0adKkISQkJNH7vGNmZsa+ffs0lunTp382nx07dhAbG8vo0aMxMNC8Lbwbtmv//v1ERkbSv39/jTSenp5YW1vzzz//aOxnZWWl0ZfWxMSEUqVKce/evc+W5Vu86/u6c+fOeBHeT4mJiWHv3r00atSIHDlyqNdnzJiR1q1bc/z48Xh12rVrV43hy9zc3IiJicHPz++rjtmlSxeNMufNmxdLS0uaN2+uXp83b15sbW016sfU1FRd1zExMbx8+RIrKyvy5s3LhQsXvurY7/Lp2LHjV6WtWbMm3bp1Y/z48TRp0gQzMzMWL1781cfSlfbt22v8PDRt2pSMGTPy77//JjpPDw8PzM3NE71/9erVyZQpE+vWrVOvu3r1KpcvX/5iP/KqVauSPn16Nm3apF4XGBjIvn37aNGixSf3e/XqFQcPHqR58+a8fv1a/RTl5cuX1KpVi9u3b/Pw4UMg7jp9+vQpN2/eBOIiqRUrVsTNzY1jx44BcVFXRVEkwqqF8PBwzNOkw8bGRmdLlixZ4q2bMmVKSp96spKXrkSqkCtXLho2bMj//vc/YmJiMDQ05NWrVxqP08zNzbGxsflkHn5+fuTOnTtegyx//vzq7Ql5/vw5YWFhGm9QvpM3b94v/sJ890v2XSP0U16/fo29vX2i93nH0NBQ43HP17h79y4GBgaffVHtXf18PCqBiYkJOXLkiFd/WbJkiTdGrZ2dHZcvX/6msn1OpUqVcHd3Z9y4ccycOZPKlSvTqFEjWrdujampaYL7PH/+nNDQ0HjnAXHXQmxsLAEBARQoUEC9/sM/VN6dB8Q1ML7EzMyMDBkyaKx79wvo4/qxsbHRyDM2NpbZs2ezYMECfH19NR49p0uX7ovHfidz5szf9ILV77//zp9//om3tzfr16+Pd40l5Pnz5/EejX+tDBkyaLxUmJCPf/5UKhW5cuXi/v37iTomQPbs2RO9L4CBgQFt2rRh4cKF6hfZ1q1bh5mZGc2aNfvsvkZGRri7u7N+/XoiIiIwNTXlf//7H1FRUZ9tsN65cwdFURg1ahSjRo1KMM2zZ8/InDmzuhF67NgxsmTJwsWLF5k4cSIZMmTg999/V2+ztrbW21FEUoPIyEiIDsXUxQMMdfAiY0wkb3xWExAQoNFF7FP3uM9xdHQE4sa/zpgxo3r906dP1SOMODo68uzZM439oqOjefXqlXr/lCARVpFqODk5ERkZydu3bwFo0qQJGTNmVC/9+vVL4RIm7F2D+HMNNT8/P0JCQtQNxsTso28+1QBRFOWL+35qMoaPG0QqlYqtW7dy6tQpevfuzcOHD+nUqRPFixfnzZs3317oT9DmXD6179fkOXnyZAYOHEjFihX5448/2LNnD/v27aNAgQLExsZ+RcnjfGsU8eLFi+pfWFeuXPmqfUqWLKnx8/gtS0BAwDeV71O+9rp5R5vo6jvt27fnzZs37NixA0VRWL9+PfXq1fvsH8/vtGzZktevX6v7dW/evJl8+fJ9tvH47nsfPHhwvCcp75Z3w/9lypSJ7Nmzc/ToUU6dOoWiKJQtWxY3NzcCAgLw8/Pj2LFjlCtXLt4f8iIRjMxQ6WDBKO7NfWtra40lMQ3W7Nmz4+joyIEDB9TrQkJCOHPmDGXLlgWgbNmyBAUFcf78eXWagwcPEhsbS+nSpbWspMSTCKtINe7du4eZmZl6HLjp06drRKO+9EJI1qxZuXz5MrGxsRo35xs3bqi3JyRDhgyYm5tz+/bteNvePWr7nDx58pAnTx527NjB7NmzE3zMv2bNGgDq1auX6H20kTNnTmJjY/Hx8fnkOJ7v6ufmzZsaj9IjIyPx9fX95qju57yLYAYFBWkMefWpKHiZMmUoU6YMkyZNYv369bRp04aNGzdqPIp/J0OGDFhYWCT43d24cQMDAwOcnJyS5kS0tHXrVqpUqcLy5cs11gcFBZE+fXr156Scbe3t27d07NgRFxcXypUrx7Rp02jcuHG8MZE/tm7dukS/APU1UZuPf/4UReHOnTsULlxYvc7Ozo6goKB4+/r5+Wlcs9/qc/VbsGBBihYtyrp168iSJQv+/v7MnTv3q/KtWLEiGTNmZNOmTVSoUIGDBw/y888/f3afd+dhbGz8VT9zbm5uHD16lOzZs+Pq6kqaNGkoUqQINjY27N69mwsXLjBu3LivKq/4AhWgi5kPvzHLN2/ecOfOHfVnX19fvL29SZs2Lc7OzvTv35+JEyeSO3du9bBWmTJlUo/Vmj9/fmrXro2npyeLFi0iKiqK3r1707JlyxR98VIarELvPH/+PN4j1EuXLvHXX3/x008/qRubxYsX/6Z869Spw969e9m0aZO6H2t0dDRz587FysqKSpUqJbifoaEhtWrVYseOHfj7+6sfD1+/fp09e/Z81bFHjx5N27Zt6d69O2vWrNGIrp0/f56pU6dSsGBB3N3dtdonsRo1asSwYcMYP348W7du1WjQK4qCSqWievXqmJiYMGfOHGrXrq3+Jb58+XKCg4OpW7eu1uV4J2fOnEDcANgNGjQA4hpSq1ev1kgXGBiIra2tRoPiXYM7IiIiwbwNDQ2pWbMmf/75J/fv3ydbtmxA3COx9evXU6FChU+OzJDcDA0N40Vxt2zZwsOHDzUm0bC0tARIsLH2rYYNG4a/vz+nT58mb968HDhwAA8PDy5evPjZiE758uW1PvbnrFmzhhEjRqj/eNu6dSuPHz9m2LBh6jQ5c+bk2LFjREZGqrtA7Ny5k4CAAK0arJaWlp8daaNdu3YMHToUU1NT0qVLx08//fRV+RoYGNC0aVNWrFhBqVKliI6O/mx3AAB7e3sqV67M4sWL6dOnj8ZjXYh//3Rzc2PNmjVs2rRJXS4DAwPKlSvHjBkziIqKkv6r35lz585pjAQycOBAIK7P9qpVqxg6dChv376la9euBAUFUaFCBXbv3q0x3u+6devo3bs31apVU08cMGfOnGQ/lw9Jg1XonRYtWmBubk65cuWwt7fHx8eHJUuWYGFhwa+//profLt27crixYvp0KED58+fJ1u2bGzdupUTJ04wa9asz77gNG7cOHbv3o2bmxs9e/ZUN3QLFCjwVX0y27Rpg5eXF7Nnz8bHx4c2bdpgZ2fHhQsXWLFiBenSpWPr1q0as9kkZp/EypUrFz///DMTJkzAzc2NJk2aYGpqipeXF5kyZWLKlClkyJCBESNGMG7cOGrXrk2DBg24efMmCxYsoGTJkkk6WUHNmjVxdnamc+fODBkyBENDQ1asWEGGDBnw9/dXp1u9ejULFiygcePG5MyZk9evX7N06VKsra2pU6fOJ/OfOHEi+/bto0KFCvTs2RMjIyMWL15MREQE06ZNS7Lz0Fa9evUYP348HTt2pFy5cly5coV169bFa3zlzJkTW1tbFi1aRJo0abC0tKR06dLf3Efz4MGDLFiwgDFjxlCsWDEAVq5cSeXKlRk1alSK1k3atGmpUKECHTt25OnTp8yaNYtcuXLh6empTtOlSxe2bt1K7dq1ad68OXfv3uWPP/5Q/wGUWMWLF2fTpk0MHDiQkiVLYmVlRf369dXbW7duzdChQ9m+fTs9evT4pp/JFi1aMHfuXMaMGUOhQoXU3YE+Z/78+VSoUIFChQrh6elJjhw5ePr0KadOneLBgwdcunRJnfZdY/TmzZtMnjxZvb5ixYrs2rULU1PTL0bPxVdSGcQtusj3G1SuXPmz3ZVUKhXjx49XD4eXkLRp06bsJAEJSaHRCYT4pNmzZyulSpVS0qZNqxgZGSkZM2ZU2rZtq9y+ffur80hoWCtFiZs4oGPHjkr69OkVExMTpVChQgkOBUQCA80fOXJEKV68uGJiYvLNEwe8s2PHDqVGjRrqwb5z5cqlDBo0SHn+/HmS7KPtxAErVqxQihYtqpiamip2dnZKpUqVlH379mmkmTdvnpIvXz7F2NhYcXBwUHr06PHJiQMSKt/HwwORwLBWiqIo58+fV0qXLq2YmJgozs7OyowZM+INa3XhwgWlVatWirOzs2JqaqrY29sr9erVU86dOxfvGAlNHFCrVi3FyspKsbCwUKpUqaKcPHlSI8274308bFZCQx8l5FPfx6fq5+PrNjw8XBk0aJCSMWNGxdzcXClfvrxy6tSpBIej+vPPPxUXFxfFyMgowYkDEvJhPiEhIUrWrFmVYsWKxZusY8CAAYqBgUG8iRWSw4eD/I8YMUKxt7dXzM3Nlbp162oMM/fO9OnTlcyZMyumpqZK+fLllXPnzn1yWKstW7Z88ngffrdv3rxRWrdurdja2qonDvhYnTp1FCDeNfQlsbGxipOTk3oosY99auKAu3fvKu3bt1ccHR0VY2NjJXPmzEq9evWUrVu3xsvD3t5eAZSnT5+q1x0/flwBFDc3t28qr4gvODhYARRT1x6KWfH+Sb6YuvZQgE9OIvOjUCnKV7w1IIQQQqSAw4cPU6VKFbZs2ZLoqZqTQ+PGjbly5YpG30HxYwgJCcHGxgbToj1RGX77i1BfosREEHFxAcHBwXrTXSklyGuBQgghhBYeP37MP//8Q7t27VK6KEJ8t6QPqxBCCJEIvr6+nDhxgmXLlmFsbEy3bt1SukgiJelJH9bvldSCEEIIkQhHjhyhXbt2+Pr6snr16hQdVF2I7530YRVCCCGESCR1H9bifXTXh/X8XOnDmtIFEEIIIYQQ4nOkD6sQQgghhNZ01IdVYouANFhTvdjYWB49ekSaNGmSdHpGIYQQIjVSFIXXr1+TKVMmjVn7ROomDdZU7tGjR3oz77kQQgihLwICAsiSJUvyHVClilt0ka+QBmtq9246URO3n1EZmX0htdCW/9a+KV0EIZJUZHRsShfhh2Eg7Y5k8fp1CPlyZv3sdNsi9ZEGayr3rhuAyshMGqzJ4Ed+Q1N8n6TBmnykwZq8kr2bnIzDqlNSC0IIIYQQQq9JhFUIIYQQQlvSh1WnpMEqhBBCCKEt6RKgU1ILQgghhBBCr0mEVQghhBBCW9IlQKckwiqEEEIIIfSaRFiFEEIIIbQlfVh1SmpBCCGEEELoNYmwCiGEEEJoS6XSUYRV+rCCRFiFEEIIIYSekwirEEIIIYS2DFS6mX9X5vQFJMIqhBBCCCH0nERYhRBCCCG0JaME6JTUghBCCCGE0GsSYRVCCCGE0JbMdKVTEmEVQgghhBB6TSKsQgghhBDakj6sOiW1IIQQQggh9JpEWIUQQgghtCV9WHVKGqxCCCGEENqSLgE6JbUghBBCCCH0mkRYhRBCCCG0JV0CdEoirEIIIYQQQq9JhFUIIYQQQlvSh1WnpBaEEEIIIYRekwirEEIIIYS2pA+rTkmEVQghhBBC6DWJsAohhBBCaE1HfVgltghILQghhBBCCD0nEVYhhBBCCG1JH1adkgirEEIIIYTQaxJhFUIIIYTQlkqlo3FYJcIKEmEVSaxGiWwcn9eWs4s8ODK7NYVyZABgSMvSXFreibe7B1G/XC6Nfeb2q4HXYg92TWuOtYWJev2OSe5kz2iTrOVPre7cvk1lt3IUcslD+TIl8bl2jaioKJq5N6JUsSK0aNaE6OhoAMLDw6lepSKBgYEpXOrUSeo6+TSqV4tyJV2pULoYtatV4pL3RaKiomjdrDHlSxWlTQt3jbr+qXplqetvFB4eTstmjXEtmI+yJYvSoE5N7t69A0DfXt0pXbwIdWtVJzg4GABFUWjSoA737t5NyWKLH5A0WEWSsbUyZeXwunj+totS3VczcukRVg6vC8Chi340/Hkbx6880NjHJVt6cmW2o2S31Ry9FEDr6gUA6PhTIY56++P7ODjZzyM16t2zG527dOWKzy0GDRmGZ+cO7Nu7h7R2aTl74RK2Nrbs3bMbgCmTJtC9Z2/s7OxSuNSpk9R18ln1xyZOenlz/MwFevXtT8+unTiwbw92adNy4uxFbG1t2b83rq6nTZmIZ/eeUteJ0LGzJxevXOeU10Xq1m9I7+5d8bl2lbt37nDm/CXcKlZi4/o/AFi1YhlulaqQI2fOFC61Hno305UuFiENVpF0cmS05VVIGNf9XgJw4upDnDKkwTWXPeduPuH+k/iNz6joGEyNDVGpwNLMmMjoGBzTWtK8Sn5mbzuX3KeQKj179owL58/Rqk1bABo3cefhgwAePXxIaFgoAKFhoZiYmHDl8mVu3rxB02bNU7LIqZbUdfKytbVV/z8kJBiVSoWRsTGhof/VdWgoxiYmXL1ymVs3b9CkqdT1tzIzM6NW7Tqo/nvsXLJUafz97mNkbExERASxsbG8DX2LsbExTx4/ZuvmTfTpNyCFSy1+RNJgFUnmzsNA0lqbU8YlEwB1y+TE2tKUrA6ffqx/+0EgRy75c2pBe7JntGHDAR+mda/CyKVHiIlVkqvoqdqDgAAcM2bEyCiuS7pKpSKLkzO5cucmjVUaShUrgo21DZWrVGXYkIH8PmN2Cpc49ZK6Tn7dOnvgkisrk8aNYfHy1VStVgOrNGkoX6oo1jY2VKpclZHDBjP191kpXdTvwsJ5c6hbvwF58uSlYqXKVChTgvu+92jZui3Dhw5k4pSp6utffOTdKAG6WIS8dCWSTkhoJK0n/MX4Tm5Ymhtz1ucxPvdfEB0T+9n9xq06wbhVJwCoVzYnD56/xu9JMIsH1cbawoRtR2+y9cjN5DiF786CxUvV/587exb1GzQiJjoaj3atiYiIoHuPXlSuUjUFS/j9kLrWjcXLVwOw/o/VjPllOFt3/MPcBUvU2xfMnU29+g2Jjomms0cbIiIi8Ozek0qVpa6/1W9Tp3D33l12zl8EwOhxExg9bgIAO//+k8xZnHDOmo3unp14/TqEJu7NcG/WIiWLLH4g0mAVSeropQBqXtoEgImxIfc39uC6/8uv2jeNhQn9m5ak/sitDGlZmmOXA9hwwIezizzYeeou4ZHRuix6qpXFyYknjx8THR2NkZERiqLwIMAfJydndRo/Pz/27P6Xv/7ZTZeOHnTu0pWixYpTqUIZLly6loKlT12krlNO67YeDOjTk1cvX5I2XToA/P382LvnX/731y66d+lAh86euBYtTvVK5Thz4UoKlzh1mT1zOn//uZ2//t2LhYWFxraQkBDmzJzBjp27mD7tVyq4VaRl67aULVmUOvUaYG5unkKl1jO66m8qfVgB6RKg4fnz5/To0QNnZ2dMTU1xdHSkVq1anDgRF/3Lli0bKpWK06dPa+zXv39/Kleu/FXHGDt2LK6urklccv3hmNZS/f8RbcpwxNufe4+CvmrfCZ0rMnndKcIiorE0M0YBFMDYyAATI7lUP8Xe3h7XosXYsC7upYjt/9tG5sxZyJnr/WgMgwf2Y9rvMzEwMOBt6FtUKlXc/9++Talip0pS18knKCiIx48eqT/v/GsHadOmwy5tWvW64YP7M2XaDHX9vqvrUKnrbzJ39ky2bt7In//s0eg3/M6YX0YwfOQvWFhYqK9plUpFVFQUkZGRyV9gfSVdAnRKIqwfcHd3JzIyktWrV5MjRw6ePn3KgQMHePnyfYTQzMyMYcOGceTIkRQsqf4a1b485QtlxsjAgDPXH9F9xh4AhrUug2fdIqS3McclW01m9qpGmZ5reBEcBkBZl0yYmxhx8IIfAIv+usiaEfUY1LwU6w/4EBIqN8XPmbdgMZ6dOzBt6mSs01izeNlK9baNG9ZTuHARXArEjcAweMhwenX3JDIqkhEjR6VUkVMtqevkERIcjEebFoSHh2FgYEC69BnY9L+/1C8Hbdm4noKFi5DfJa6uBw4eRt9e3YiMjGTIiJ9TsuipysMHDxg5bDDZs+egbq1qAJiamnLo2CkATp08QVhYGFWr1wCga7eedPJow8zpv9GqdVtsbGToQZE8VIqiyJstxP01b2dnx+HDh6lUqVKCabJly0bDhg1ZtGgR27dvp06dOkBchNXb25vDhw9/8Thjx45lx44deHt7A+Dl5cXIkSO5eDFufEFXV1dmzpxJsWLFvqrcISEh2NjYYFplAiojs6/aRyRe4L+DU7oIQiSpyOjP9zEXScdAAmXJIiQkhMz2dgQHB2NtbZ0sx7OxscG07hxUxknfPUKJCiPin77Jdj76Sp6z/sfKygorKyt27NhBRETEJ9Nlz56d7t27M2LECGJjtb/Rv379Gg8PD44fP87p06fJnTs3derU4fXr1wmmj4iIICQkRGMRQgghhPieSYP1P0ZGRqxatYrVq1dja2tL+fLlGTlyJJcvX46X9pdffsHX15d169ZpfdyqVavStm1b8uXLR/78+VmyZAmhoaGf7HIwZcoUbGxs1IuTk5PWZRBCCCGElqQPq05Jg/UD7u7uPHr0iL/++ovatWtz+PBhihUrxqpVqzTSZciQgcGDBzN69GitO5w/ffoUT09PcufOjY2NDdbW1rx58wZ/f/8E048YMYLg4GD1EhAQoNXxhRBCCCH0nTRYP2JmZkaNGjUYNWoUJ0+epEOHDowZMyZeuoEDBxIWFsaCBQu0Op6Hhwfe3t7Mnj2bkydP4u3tTbp06T7ZEDY1NcXa2lpjSS7rfqlP6fwZAejZqCjnlnTAa7EHZxd50LJafo20w1qX4dqqLlxb1YWxHSqo17etUYAn2/twemF7Ti9sz+5p72emsTAzZvGg2ngt9sB7eUcmdHJTb3Mr7MSrv/up9zu9sD1mJnHvDBbMnp4dk9x1eeqpRuuWzTh9Ku5lidjYWAb064NL3pwUyJeLhfPnqdMtnD+Pab9OTqlipnpSz9pp37o5Z0/H1d+eXf9QsVxJMtiYM3yw5gxKn9u2aP5cyhQvTNkSRShX0pVNG/5Qb/tt6mQqlC6mXrLY2zJy6CAArl65jHvDOjo+w9SnXevmnPnvO3n29CmtW7hTpoQrxYsUYP7c9xNg7Pp3J316dkupYuq1d6Mn6GIRMkrAF7m4uLBjx454662srBg1ahRjx46lQYMGic7/xIkTLFiwQP0CV0BAAC9evEh0frpSIq8jdmnMOHP9MQA+919Stf96QkIjyZIhDacWtOOMzyN8HwdTvlAWmlfOR8nuq4mOieXgzFac9nnE7rP3ADh6yZ/mY/+Md4yhLUtjaKCiZLfVGBkasHV8Y5q45eF/x24BcOtBIGV6rIm331XfF0RGRVPJ1Ykj3j9uxNnr7FkCX72iTNmyAGxY9wc3rvtwxecWwcHBlClZlEqVq+BSoACdPbviWig/3Xr0krd8v5HUs3bOe50lMDCQUmXi6i9nrtzMX7SMHf/byts3bzTSfm5bPhcX9hw8ho2NDQ8CAnArW5ySpcuSI0dOhgwbyZBhI4G4fv95c2ShWcvWABQsVBhTE1OOHD4okwv855zXWQJfBVL6v+9kxNBB5MvnwvpN23j79i01qrhRpmw5ipcoyU916jF5wjju3LlNrly5U7jk4kciEdb/vHz5kqpVq/LHH39w+fJlfH192bJlC9OmTaNhw4YJ7tO1a1dsbGxYv359oo+bO3du1q5dy/Xr1zlz5gxt2rTRy0GYO9ctwqZD19WfD3v7q4eaevD8NU8DQ8mSIS7a27RSXjYc8CE0PIrIqBjW7LlK8yr5vniMQjkysO+cL0BcQ/fCfVpVd/mq8m0+dIMudYp862l9V5YvXUyL/34pA2zdsomOnT0xNDQkbdq0NG3Wgs2bNgBgYmJC9eo12bQh8dfuj0rqWTsrli+hWYuW6s+5cuehUOEiCU73+bltlatUU/8RkMXJCQcHRx4+iP8H686/dpAlixNFixVXr3Nv3pKVy5bES/ujWrFM8zu5cuUyNWv/BIClpSXlK7ixcf37CHZj92asXrk82cup7yTCqlvSYP2PlZUVpUuXZubMmVSsWJGCBQsyatQoPD09mTdvXoL7GBsbM2HCBMLDwxN93OXLlxMYGEixYsVo164dffv2xd7ePtH56UrFwk543XiS4LYqRZ2xszLl/K247U721vg/fT96gd+TYJzs06g/ly2QmdML23NoZiuauOVRr794+ylNKubFxNgQSzNj6pfLRVaH91GpHBltOTm/HcfntqVrfVeNMpzxeUTlos78yI4ePUzJUqXVnwP8/XF2zqr+nDVrNgI+6BtdukxZDh06kKxl/B5IPWvn+NEjlChZ+ssJv8Ghg/sJCgykWPGS8batXb2Cdh6dNNaVKl2WI4cPJmkZUrPjR49oXNOuRYuxZdMGYmNjef78Ofv37cXP7756e6nSZThySOpPJC/pEvAfU1NTpkyZwpQpUz6Z5v79+/HWtWrVilatWn31ccaOHcvYsWPVn4sWLYqXl5dGmqZNm351fsklc3orngXGnz2mQLb0LBlcm3aTdhIaHvXFfHaduce2ozcJi4gmr1Nadv7alAfPX3P2xmN+33SWiZ3dODqnDSFvIzh34wmVXOMaod53npKr9SJCQiPJnN6K7RPdeRkcxrajNwF4EviW9DYWmBobEhEVk7Qnn0o8fPAAeweHr07v4OjIwwcPdFii75PUs3YePXyAvf3X19+XXLt6hV5dO7Ny7QYsLS01tvn7+XH65AlWrNmgsd7B0ZFXL18SHh6OmZmMX/3w4QMyfPCdTJ76Oz8PH0L50sXJkCEDbhUr8eLFc/V2B0dHHj6Uazoe1X+LLvIVEmEVXyc0Ilr9ktM7+ZzT8b8JTeg2fQ8nrz1Urw94FoKzw/uXwbI62hDwLG5c2ZchYYRFRANwM+AVu8/6UrZAZgDCI6MZvPAQZXqsoebgTbwMCeO6X1x/3tehkeouCA9fvGHz4euUL5hZfQwzEyOiY2KJjP4xG6sAFhYWGtF+J2dn/P391J/9/O7j5Pw+Ch0eHq6X3U/0ndSzdsw/qj9t3LjuQ4smDZi3eBlly1eIt33d2lXUqdeAtB9M5wpx34mhoSEmJiZJUo7UzsLCgogPvpP06dOzeNlKTnld5K9/96JSqcifv4B6e0R4OOZmck2L5CUN1iT2bgKChJZjx46ldPES7arvc3JnsVN/zuuUlh0Tm9Br1l71dKrv/O/oLVpVc8HCzBgTY0Pa1yrIlsM3AMiUzkqdzt7WgsquznjffQpAGgsTzE3jGsVZHW3wrOfK7K3nAHBMa6keis7K3Jg6pXPiffeZOq98zmm5dv8FP/K8bQULFeb2rZvqz03cm7Fy+VJiYmJ49eoVW7dsommzFurtN25cp1DhH7vfb2JIPWunYMHC3L5988sJv+Dmjes0a1SPWfMXUbVajXjbY2NjWbdmFe06dIq37daN67gUKIiBgfwKBChQUPOafvnyJVFRcU/MLnlfZOfff+LZrYd6+80b1ylYuHCyl1PfSR9W3ZIuAUns3ZSrCcmcOfMnt+m77cduUaNEdg5djOubN71XVawtTZnYpSITu1QE4JdlR9l//j7HLgew9chNzi32AGDrkZvsOhM3QkC3Bq7UK5uLqJhYDFQq5v7vvPrN/uyONvzxS32iYxSiY2IZuugQl+/FPYZqVCEPnvWKEB0Ti5GhAf87dos1e66qy1ejRHa2/zeawI+qcZOm7Nu7h6rVqgPQum07zp/zomD+3KhUKvr2G0jBQoXU6fft2c3osRNSqripltSzdho2dufAvr1UqRpXf4cPHaBHl468fh2Coij8uX0b02fPo069Bp/dNnRQP4JDghn7ywjG/jICgLETp1C9Ri0grl+rysCAylWqxSvD/n17aNhYhsJ7p1ETd/bv30uV/67p8+fOMnRgfwyNjEiTJg2r/9iIY8aM6vT79u6hkdSfSGYqRfmRY1Kpn3oO4yoTUBnpri+WpZkxh2a1pnL/9V/VVzU5GRsZcGJeO34aupmXIWE6PVbgv4N1mr823rx5QxW3chw+fipeX76PXffxoXfPbhw4nHqj/inle6vnyGjtp5j+Fm/evKFmlQrsO3zii/WnC5GRkVQuX4q/d+0nXfr0yXpsAz0NlL1584bqlStw4MiXv5MXL15Qr3Z1jp48q7ddKkJCQshsb0dwcHCyjFX+7vewZeOFqIyTvquEEhXG2+09ku189JU8DxFf5W14FEMXHSKbo/6NJZnN0YZRy4/qvLGq76ysrJg2fSb3fX2/mPbBgwDmLVicDKX6/kg9a8fKyorJ06bjd//L9acLfvd9GTthcrI3VvWZlZUVv37ld+J77y6z5i7Q28aq+H5JhDWVS64Iq4ijzxFWIRIjuSOsPzJ9jbB+b1IqwmrVZJHOIqxv/tf9h4+wSh9WIYQQQggt6ewFKXnpCpAuAUIIIYQQQs9JhFUIIYQQQlsycYBOSYRVCCGEEELoNYmwCiGEEEJoSfqw6pZEWIUQQgghhF6TCKsQQgghhJZUKnQUYU36LFMjibAKIYQQQgi9JhFWIYQQQggtqdBRH1YJsQISYRVCCCGEEHpOIqxCCCGEEFqSUQJ0SyKsQgghhBBCr0mEVQghhBBCWzLTlU5JhFUIIYQQQug1ibAKIYQQQmhLR31YFenDCkiEVQghhBBC6DmJsAohhBBCaElXowToZmzX1EcarEIIIYQQWpIGq25JlwAhhBBCCKHXpMEqhBBCCKEtlQ6XbxATE8OoUaPInj075ubm5MyZkwkTJqAoijqNoiiMHj2ajBkzYm5uTvXq1bl9+3aiTz05SINVCCGEEOI7MXXqVBYuXMi8efO4fv06U6dOZdq0acydO1edZtq0acyZM4dFixZx5swZLC0tqVWrFuHh4SlY8s+TPqxCCCGEEFrSlz6sJ0+epGHDhtStWxeAbNmysWHDBs6ePQvERVdnzZrFL7/8QsOGDQFYs2YNDg4O7Nixg5YtWybtCSQRibAKIYQQQui5kJAQjSUiIiLBdOXKlePAgQPcunULgEuXLnH8+HF++uknAHx9fXny5AnVq1dX72NjY0Pp0qU5deqU7k8kkSTCKoQQQgihJV1HWJ2cnDTWjxkzhrFjx8ZLP3z4cEJCQsiXLx+GhobExMQwadIk2rRpA8CTJ08AcHBw0NjPwcFBvU0fSYNVCCGEEELPBQQEYG1trf5samqaYLrNmzezbt061q9fT4ECBfD29qZ///5kypQJDw+P5CpukpMGqxBCCCGElnQdYbW2ttZosH7KkCFDGD58uLovaqFChfDz82PKlCl4eHjg6OgIwNOnT8mYMaN6v6dPn+Lq6prk5U8q0odVCCGEEOI7ERoaioGBZvPO0NCQ2NhYALJnz46joyMHDhxQbw8JCeHMmTOULVs2Wcv6LSTCKoQQQgihJX0ZJaB+/fpMmjQJZ2dnChQowMWLF5kxYwadOnVS59e/f38mTpxI7ty5yZ49O6NGjSJTpkw0atQoycufVKTBKoQQQgjxnZg7dy6jRo2iZ8+ePHv2jEyZMtGtWzdGjx6tTjN06FDevn1L165dCQoKokKFCuzevRszM7MULPnnqZQPpz4QqU5ISAg2NjaYVpmAykh/L7TvReC/g1O6CEIkqcjo2JQuwg/DQKaETxYhISFktrcjODj4q/p8JsXxbGxscOi4FgMTiyTPPzYylKcr2yXb+egr6cMqhBBCCCH0mnQJEEIIIYTQkr70Yf1eSYP1O+G7uc8P/aggudiV7J3SRfghBHrNS+ki/DDkV2HyMTKUh5rJQer5+yQNViGEEEIILUmEVbekwSqEEEIIoSVpsOqWxM2FEEIIIYRekwirEEIIIYS2VOimU7gEWAGJsAohhBBCCD0nEVYhhBBCCC1JH1bdkgirEEIIIYTQaxJhFUIIIYTQkkRYdUsirEIIIYQQQq9JhFUIIYQQQksqdBRhlWECAImwCiGEEEIIPScRViGEEEIILUkfVt2SCKsQQgghhNBrEmEVQgghhNCWzHSlUxJhFUIIIYQQek0irEIIIYQQWpI+rLolEVYhhBBCCKHXJMIqhBBCCKElibDqljRYhRBCCCG0pFLFLbrIV0iXACGEEEIIoeckwiqEEEIIoaW4CKsuugQkeZapkkRYhRBCCCGEXpMIqxBCCCGEtnTUh1UmDogjEVYhhBBCCKHXJMIqhBBCCKElGdZKtyTCKoQQQggh9JpEWIUQQgghtCTjsOqWRFiFEEIIIYRekwirEEIIIYSWDAxUGBgkfThU0UGeqZFEWIUQQgghhF6TCKsQQgghhJakD6tuSYRVCCGEEELoNYmwCiGEEEJoScZh1S2JsAohhBBCCL0mEVYhhBBCCC1JH1bdkgir0JnBA/rikic7VqYGXL7kDUBUVBQtmzamTAlXWjV3Jzo6GoDw8HBqVqtEYGBgCpZYv00f2pQb/4wj7OI8CufJrF6f0zkDh1YN5PKO0Rz/Ywj5czh+cZuRkQGbZ3hyZtNwNv7eBUPDuFuBqYkR+5b3xzaNefKeXCpy5/ZtKruVo5BLHsqXKYnPtWtERUXRzL0RpYoVoUWzJhrXdfUqFeW6ToTw8HBaNWtM0UL5KFeqKA3r1uTu3TsA9OvdnTIlilCvdnWCg4MBUBSFJg3rcO/e3ZQsdqok13TSeNclQBeLkAar0KFGTZqy7+AxnLNmVa/bv3cPdmntOH3OG1tbG/bt2Q3Ar5Mn0K1HL+zs7FKquHrvf/svUq3jTPwevdRYP+/nlizfdoLCjcYzfdU+lo5v98VtNcq68Co4lNItfiXodRg1y7kAMMLzJxZtPELQ67DkO7FUpnfPbnTu0pUrPrcYNGQYnp07sG/vHtLapeXshUvY2tiy97/resqkCXTv2Vuu60Tq0NmTC5evc/LsRerUa0ifHl3xuXaVu3fucPrcJSpUrMTG9X8AsHrlMipWrEKOHDlTuNSpj1zTIjWQBqvQmQpuFcmcJYvGOmNjY0JD4xpDoaFhmJiYcPXKZW7dvIl70+YpUcxU48SFuzx8FqSxLoOdFcVcnNnwrxcA2/d7k9nBjhxO6T+7LSo6BgtzEwAszE2IjIqmYO5M5M3uwLZ9F5P1vFKTZ8+eceH8OVq1aQtA4ybuPHwQwKOHDwkNCwUgNCwUExMTrly+zM2bN2jaTK7rxDAzM6NW7Trq6FLJUqXx97uPsbExERERxMbGEvr2LSYmxjx5/JitmzfRu9+AFC516iPXdNKRCKtuSYNVJKuq1WuQJo0VZUq4Ym1tTaUqVRk+ZBC/TZ+V0kVLlbI42vHkRQgxMbHqdQ+evMLJMe1ntx04fYPXb8M5s2k4wa/DOOx1i6mDmjB42taUOI1U40FAAI4ZM2JkFNf9X6VSkcXJmVy5c5PGKg2lihXBxtqGylWqMmzIQH6fMTuFS/z9WDh/DnXqNSB3nry4VaqMW9kS3Pe9R4tWbRk+dCATJk9Vfy/i68k1LVIL+ekWycrAwIB5C5eqP8+fM4t6DRoSHR1Nx/ZtiIiIoGv3nlSuUjUFS/n9UxSFXhM2qD/3bl2Zvw9dxtDQgFWTO2BqYsSiTUc54nUrBUuZuixY/P66njt7FvUbNCImOhqPdq2JiIige49ecl0n0u/TpnDv7l3+3rUIgNFjJzB67AQA/vn7T7JkccI5azZ6dO3E65AQGrs3w71Zi5Qs8ndBrulvIy9d6ZY0WEWK8ffzY8/uXezYuYuunTvQsbMnRYsVp4pbWc55X03p4qUKD54E4pjeGkNDA3UkNYtjWgKevOL1m/BPbvuQc0Y7alUoQINeC1g2vh3Lt53g4nV/jqwZTPGmk5L9nPRZFicnnjx+THR0NEZGRiiKwoMAf5ycnNVp/Pz82LP7X/76ZzddOnrQuUtXihYrTqUKZbhw6VoKlj51mjNzOn//uZ0//9mLhYWFxraQkBDmzJrB9r93Mf23X6ngVpEWrdpSrlRR6tRrgLm5vDz4JXJNi9Tih+oS8Pz5c3r06IGzszOmpqY4OjpSq1YtTpw4AUC2bNlQqVScPn1aY7/+/ftTuXLlrzrG2LFjcXV1TeKSf5+GDurPr7/PwMDAgLdv36JSqTAwMCA09G1KFy3VeB74Bu8bD2hVpyQAjau78vBZEPcCXnx224d+H9KUob9vQ1EULM1NUFCIjY37v9Bkb2+Pa9FibFgX96LP9v9tI3PmLOTMlUudZvDAfkz7fWbcdR36/rp++1au6281b/ZMtm7ZyI6de7C1tY23fcyoEQwb+QsWFhaEvn0L//X3i4qKIjIyMvkLnArJNZ10VOioDysSYoUfLMLq7u5OZGQkq1evJkeOHDx9+pQDBw7w8uX7t67NzMwYNmwYR44cScGSfh/69OzGnt3/8vTJExrWq00aqzRcvn4bgM0b11OwcGFcXAoAMGjIMHr36EpkZCTDRvySksXWW3N/bslPbgVwSGfNXwt68eZtBAUbjqP3xA0sHd+OoZ1rEfI2nG5j/lDv87ltAC1ql+DyrYdcv/cEgN9X7mP+6FaYGBkxZenuZD2/1GLegsV4du7AtKmTsU5jzeJlK9XbNm5YT+HCRXApEHddDx4ynF7dPYmMimTEyFEpVeRU6eGDB4wcPphs2XNQr3Y1AExMTDl07BQAp0+eIDwsjKrVagDg2b0nndq3Ydb032jZui02NjYpVvbURq5pkRqoFEVRUroQySEoKAg7OzsOHz5MpUqVEkyTLVs2GjZsyKJFi9i+fTt16tQB4iKs3t7eHD58+IvHGTt2LDt27MDb2xsALy8vRo4cycWLF4mKisLV1ZWZM2dSrFgxAA4fPkzNmjU5cOAAbm5uAEybNo3ff/+dK1eu4ODg8NnjhYSEYGNjw6PnQVhbW39lbYjESl+6T0oX4YcQ6DUvpYvww4iKjv1yIpEkjI1+qIeaKSYkJASHdDYEBwcny+/Fd7+HC4/4C0MzyyTPPyb8LZenNEi289FXP8xPj5WVFVZWVuzYsYOIiIhPpsuePTvdu3dnxIgRxMZqfyN//fo1Hh4eHD9+nNOnT5M7d27q1KnD69evAahcuTL9+/enXbt2BAcHc/HiRUaNGsWyZcsSbKxGREQQEhKisQghhBBCfM9+mAarkZERq1atYvXq1dja2lK+fHlGjhzJ5cuX46X95Zdf8PX1Zd26dVoft2rVqrRt25Z8+fKRP39+lixZQmhoqEaXg4kTJ2JnZ0fXrl1p27YtHh4eNGjQIMH8pkyZgo2NjXpxcnLSuoxCCCGE0I6Mw6pbP0yDFeL6sD569Ii//vqL2rVrc/jwYYoVK8aqVas00mXIkIHBgwczevRorTvuP336FE9PT3Lnzo2NjQ3W1ta8efMGf39/dRoTExPWrVvHtm3bCA8PZ+bMmZ/Mb8SIEQQHB6uXgIAArconhBBCCKHvfqgGK8S9VFWjRg1GjRrFyZMn6dChA2PGjImXbuDAgYSFhbFgwQKtjufh4YG3tzezZ8/m5MmTeHt7ky5dungN4ZMnTwLw6tUrXr16lVBWAJiammJtba2x6IO2rZpz5nTcyxCLF86nVLHClC1ZlJJFC7Fg3hx1ugXz5lCyaCFKFStM6eJF1NMqAvz153ZKFy9C2ZJFKV6kAGNH/8y7Lta7/tlJ7x5dk/ekUqF10zpRunB2AH7uVgf/g1M4vXE4pzcOZ+UkD3W67i0qMqRTzZQqZqrXumUzTp+Ku95jY2MZ0K8PLnlzUiBfLhbOf9//duH8eUz7dXJKFTPVaN/6/f3j2dOntGnhTtmSrpRwLcD8ue8Hqn/79i09unaiTIkiFC/iwphfRvDhaxhrVi3HtWBeCrvkpk/PrkRFRQFw9cplmjSsk7wnlcrINa29d+Ow6mIRP2CD9WMuLi4JDs1hZWXFqFGjmDRpkrq/aWKcOHGCvn37UqdOHQoUKICpqSkvXmgOK3T37l0GDBjA0qVLKV26NB4eHknSfza5nPM6S+CrV5QuUxaAlq3bcvbCZU55XeTAkRPMmTWdS95x033mdynA/sPHOXvhMtt27GTo4AHcu3sXgCpVq3PK66J6OXRgP3//tQOAn+rWw/viBe7cvp0i55galCiQFTtrS85c9lWv2/TvOcq0/JUyLX+l48+r1euXbztBh0ZlsbYyS4mipmpeZ+Ou9zJl4673Dev+4MZ1H6743OLYybPMnPEbPtfixqbs7NmVVSuXExwcnJJF1mvnvM4SGBiovn+MGDaIvPldOOXlzZETZ1n/x2rOn4ubXnj6tCnExMRwysub0+cuceXKJXb8L252tvv3fZk4bgx79h/h0rVbPHv2lJXL4wa+L1ioMKYmphw5fDBlTlLPyTUtUoMfpsH68uVLqlatyh9//MHly5fx9fVly5YtTJs2jYYNGya4T9euXbGxsWH9+vWJPm7u3LlZu3Yt169f58yZM7Rp00ZjMOuYmBjatm1LrVq16NixIytXruTy5ctMnz490cdMbiuWLaZ5y1bqzx8OJxP69q06ygFQpWo19fYsTk44ODjy4EFct4Y0adJgYBB3SYaHhxMREaEx/lyTps1YvXKZTs8lNevctDybdp/7qrRR0THsP32DFj+V0HGpvj/Lly6mRcvW6s9bt2yiY2dPDA0NSZs2LU2btWDzprhZxExMTKhevSabNiT+HvK9W7l8Cc1atFR/vnrlMrVq/QSApaUl5cq7qZ/EXLlyieo1aqFSqTA2NqZq1Rps3BC37c//baNOvfo4ODqiUqno1KUbWzdvVOfbtHlLVi5bkoxnlnrINZ00pA+rbv0wDVYrKytKly7NzJkzqVixIgULFmTUqFF4enoyb17CQ+gYGxszYcIEwsPDE33c5cuXExgYSLFixWjXrh19+/bF3t5evX3SpEn4+fmxePFiADJmzMiSJUv45ZdfuHTpUqKPm5yOHTlCiVKlNdZt/99WSrgWxCVPdvr1H0QR16Lx9jt0YD9BQYEUL1FSve70qZOUKlaY7FkcqFS5CvUavP9jolTpshw+JBGST6lYPDdeV+5rrGtSoyhnNg1n1+I+VCyRW2Pbmcu+VCmVNxlL+H04evQwJT+43gP8/XF2zqr+nDVrNgI+6KNeukxZDh06kKxlTE2OHT1CiZLv69O1aDE2b9pAbGwsL54/58D+vfj73/9vW3F2/G8rERERvHnzhp1//4m/nx8AAQH+OH30PTwIeP89lCpdlsMSYU2QXNMiNfhhJg4wNTVlypQpTJky5ZNp7t+/H29dq1ataNWqVfzEnzB27FjGjh2r/ly0aFG8vLw00jRt2lT9/9GjRzN69GiN7U2aNPns0Fv65uHDB9jbaw7B1bhJUxo3aYrf/fu0at6E2nXqkSfv+8bR1atX6N61E6v/2Iil5ftx68qULcfZC5d5/vw5bVo25cTxY1RwqwiAg4MjDx8+SJ6TSoUyO9jy7NX77ivLth5j6vLdREfHUrZIDjbO8MSt7TT8HwcC8PRFCJntbVOotKnXwwcPsP/C+MgfcnB05OEDuW4/5dFH94/Jv/7OzyOGUKFMcTJkyIBbxUq8eP4cgIGDhzHmlxFUrVgWa2sbipcoydEjh77qOA6Ojrx6+ZLw8HDMzKQrzIfkmk4auupvKgHWOD9MhFXojoWFBRGfiEJnzZaNEiVLsfvfnep116/70KxxfRYuXk658hUS3C9DhgzUqv0T27dtUa+LiAjH3EzmBv+U0PAozEze/w369OVrov8bFP7UpXtcuvGAYi7voyZmpsaERUTFy0d8noWFhcZTFydnZ/z9/dSf/fzu4+T8fh728PBwmdP+Mz6uz3Tp07No6UpOnr3In//sRaVSke+/GfHMzc2ZNn0WJ85cYNe+Q6RLl558+V0AcHJyJuCj7yGLk+b3YGhoiImJTDn8Mbmmk4Z0CdAtabB+o3cTECS0HDt2LKWLlyIKFCrM7Vs31Z+vX/dR///58+ccPXyIgoUKA3Dj+nXcG9Zl7vzFVK1eQyOfmzduqF82e/36Nbt3/aveD+DGjesUKlxEl6eSql29/ZDc2d5HST6MnuZ0zkDhvJm5evuRel2+7A5cufUwOYv4XSj40fXexL0ZK5cvJSYmhlevXrF1yyaaNmuh3i7X7ecVKFiY27ff1+fLly/V/d4veV9k599/4tm1BxA3o1BoaCgQ95LV8qWL6NNvIAANGjfh351/8/TJExRFYcWyxbh/8D3cvHEdlwIF1f3kxXtyTYvU4IfpEpBU3k25mpDMmTMnX0H0SKPG7uzft4cq1aoDsGDubE6eOI6JiQmKotCzTz9143TIwH6EBAcz6ufhjPp5OAATJv1K9Zq12LZ1E9u2bMbY2JiYmBgaNXGnQ6cu6uPs37uHRk3ck/8EU4nt+72pUTY/h87E/eIZ27s+RfM7ER0TS0xMLAN+3cwd/2fq9DXKuTB+wc5PZSc+oXGTpuzbu4eq/13vrdu24/w5Lwrmz41KpaJvv4EULFRInX7fnt2MHjshpYqr9xo2dufAvr1UqRpXn+fPnWXooP4YGRlhZZWG1X9sxDFjRgDu+97Do21LjIyMMDIyYsq06RQu4gpA9uw5GDlqDDWqxk1x7VaxEp26vB8Kb/++PTRsLPePhMg1nUR0NQSVBFgBUCkfDmInUp13cxg/eh6UYmOyvnnzhmqVynPw6EmN/qhJ6cWLF9StVY1jp7xS9JFe+tJ9UuzYX2JpbsKhVYOo7DGd0PDPT3iRL4cj835uSfXOs5KncN8o0CvhFyH1wZs3b6jiVo7Dx0998Xq/7uND757dOHBYf5++REWn7BB6b968oUaVCuw/fEJn94/IyEgqlS/Fzl37SZc+vU6O8TWMjfQzuvu9XdMhISE4pLMhODg4WX4vvvs9XHzMPxiZJf01HB3+lvPj6ibb+egr/fzpEamKlZUVv/42g/v3fb+cOJF8791l9ryF0v/sM96GRTJ0+jayZU73xbRZHOzoPWnjF9OJ+KysrJg2fSb3fb98vT94EMC8BYuToVSpl5WVFVOmTcdPh/cPv/u+jJ0wOUUbq/pMrumkIX1YdUsirKmcPkRYfyT6HGH9nuhzhPV7k9IR1h+JvkZYvzcpFWEtMfZfnUVYz42t88NHWKUPqxBCCCGElmRYK92SP/eEEEIIIYRekwirEEIIIYSWdNXfVPqwxpEIqxBCCCGE0GsSYRVCCCGE0JL0YdUtibAKIYQQQgi9JhFWIYQQQggtSR9W3ZIIqxBCCCGE0GsSYRVCCCGE0JJEWHVLIqxCCCGEEEKvSYRVCCGEEEJLMkqAbkmEVQghhBBC6DWJsAohhBBCaEn6sOqWNFiFEEIIIbQkXQJ0S7oECCGEEEIIvSYRViGEEEIILUmXAN2SCKsQQgghhNBrEmEVQgghhNCSCh31YU36LFMlibAKIYQQQgi9JhFWIYQQQggtGahUGOggxKqLPFMjibAKIYQQQgi9JhFWIYQQQggtyTisuiURViGEEEIIodckwiqEEEIIoSUZh1W3JMIqhBBCCCH0mjRYhRBCCCG0ZKDS3fKtHj58SNu2bUmXLh3m5uYUKlSIc+fOqbcrisLo0aPJmDEj5ubmVK9endu3bydhbSQ9abAKIYQQQnwnAgMDKV++PMbGxuzatQsfHx+mT5+OnZ2dOs20adOYM2cOixYt4syZM1haWlKrVi3Cw8NTsOSfJ31YhRBCCCG0pdJRf9NvzHLq1Kk4OTmxcuVK9brs2bOr/68oCrNmzeKXX36hYcOGAKxZswYHBwd27NhBy5Ytk6TYSU0irEIIIYQQei4kJERjiYiISDDdX3/9RYkSJWjWrBn29vYULVqUpUuXqrf7+vry5MkTqlevrl5nY2ND6dKlOXXqlM7PI7GkwSqEEEIIoaV347DqYgFwcnLCxsZGvUyZMiXBcty7d4+FCxeSO3du9uzZQ48ePejbty+rV68G4MmTJwA4ODho7Ofg4KDepo+kS4AQQgghhJZU//3TRb4AAQEBWFtbq9ebmpommD42NpYSJUowefJkAIoWLcrVq1dZtGgRHh4eSV6+5CINViG+QaDXvJQuwg/BruHclC7CD+PF9t4pXQQhxFewtrbWaLB+SsaMGXFxcdFYlz9/frZt2waAo6MjAE+fPiVjxozqNE+fPsXV1TXpCpzEpEuAEEIIIYSW9GVYq/Lly3Pz5k2Ndbdu3SJr1qxA3AtYjo6OHDhwQL09JCSEM2fOULZsWa3rQVckwiqEEEII8Z0YMGAA5cqVY/LkyTRv3pyzZ8+yZMkSlixZAsSNZNC/f38mTpxI7ty5yZ49O6NGjSJTpkw0atQoZQv/GdJgFUIIIYTQkr5MzVqyZEm2b9/OiBEjGD9+PNmzZ2fWrFm0adNGnWbo0KG8ffuWrl27EhQURIUKFdi9ezdmZmZJXfwkIw1WIYQQQojvSL169ahXr94nt6tUKsaPH8/48eOTsVTakQarEEIIIYSWPhyCKqnzFfLSlRBCCCGE0HMSYRVCCCGE0JKBSoWBDsKhusgzNZIIqxBCCCGE0GsSYRVCCCGE0JL0YdUtibAKIYQQQgi9JhFWIYQQQggt6cs4rN8ribAKIYQQQgi9JhFWIYQQQggtSR9W3ZIGqxBCCCGESDIRERGcOXMGPz8/QkNDyZAhA0WLFiV79uyJzlMarEIIIYQQWpJxWOHEiRPMnj2bv//+m6ioKGxsbDA3N+fVq1dERESQI0cOunbtSvfu3UmTJs035S19WIUQQgghtKTS4ZIaNGjQgBYtWpAtWzb27t3L69evefnyJQ8ePCA0NJTbt2/zyy+/cODAAfLkycO+ffu+KX+JsAohhBBCCK3UrVuXbdu2YWxsnOD2HDlykCNHDjw8PPDx8eHx48fflL80WIUQQgghtPSjD2vVrVu3r07r4uKCi4vLN+UvDVYhhBBCCKETV69e5ciRI8TExFC+fHmKFy+eqHykD6sQQgghhJYMVLpbUqv58+dTrVo1jhw5wqFDh6hatSqTJk1KVF4SYRVCCCGEEFoLCAjAyclJ/XnevHlcu3aN9OnTA3Dq1CkaNGjAzz///M15S4RVCCGEEEJL7/qw6mJJLapXr87s2bNRFAWAdOnSsXv3biIiInj9+jX79+8nQ4YMicpbGqxCCCGEEEJrXl5e3Lx5k9KlS+Pt7c2SJUuYOXMm5ubm2NrasmnTJlavXp2ovKVLgBBCCCFEEkhFwVCdsLa2ZsGCBZw8eZIOHTpQtWpVjh07RkxMDDExMdja2iY6b4mwCiGEEEKIJFOuXDnOnTuHnZ0dRYsW5ejRo1o1VkEirEIIIYQQWvvRx2EFiI6OZsmSJVy/fp0iRYowcuRIWrRoQffu3Vm1ahXz5s3DwcEhUXlLhFUIIYQQQmitc+fOzJs3D0tLS1auXMmAAQPIkycPBw8epHbt2pQtW5aFCxcmKm9psAohhBBCaEnGYYU///yTbdu28euvv7Jv3z7++ecf9bbOnTtz+vRpjh07lqi8pcEqhBBCCCG05uDgwN69e4mMjOTgwYOkS5dOY7u9vT3r169PVN7Sh1UIIYQQQkvShzVuooA2bdowcOBAMmbMyObNm5Msb2mwCiGEEEIIrdWoUYOnT5/y4sWLRE8Q8CnSYBVCCCGE0JLqv0UX+aYmKpUqyRurIH1YhRBCCCG0ZqBS6WxJDWrXrs3p06e/mO7169dMnTqV+fPnf1P+iYqwHjt2jMWLF3P37l22bt1K5syZWbt2LdmzZ6dChQqJyVIIIYQQQqRSzZo1w93dHRsbG+rXr0+JEiXIlCkTZmZmBAYG4uPjw/Hjx/n333+pW7cuv/322zfl/80N1m3bttGuXTvatGnDxYsXiYiIACA4OJjJkyfz77//fmuWQgghhBCpmkqlm6lZU0mAlc6dO9O2bVu2bNnCpk2bWLJkCcHBwUBcNwEXFxdq1aqFl5cX+fPn/+b8v7lLwMSJE1m0aBFLly7F2NhYvb58+fJcuHDhmwsgvl+DB/TFJU92rEwNuHzJG4CoqChaNm1MmRKutGruTnR0NADh4eHUrFaJwMDAFCxx6nXn9m0qu5WjkEseypcpic+1a0RFRdHMvRGlihWhRbMmGnVdvUpFqeuvVKO4M8dnNefsvFYcmd6MQtnTA5DBxpw/xzfgypJ2nJvfmvIFMqn3mdu7Cl7zW7FrciOsLUzU63eMa0B2R+tkP4fUKDw8nJZNG+NaIC9lSrhS/6ea3L1zB4A+PbtRqlhh6tSqpv6FqCgKjevX4d7duylZ7FRJ7h8iqZiamtK2bVv+/vtvAgMDCQwM5NGjR4SHh3PlyhV+//33RDVWIREN1ps3b1KxYsV4621sbAgKCkpUIcT3qVGTpuw7eAznrFnV6/bv3YNdWjtOn/PG1taGfXt2A/Dr5Al069ELOzu7lCpuqta7Zzc6d+nKFZ9bDBoyDM/OHdi3dw9p7dJy9sIlbG1s2ftfXU+ZNIHuPXtLXX8FWytTVg6uieeM/ZTqvYGRK06wcnBNACZ0KMfZG08o1HUt3WbtZ/XQWhgZGuCSNS25MtlQstcGjl55SOuq+QDoWKsARy8/wPdJSEqeUqrSsbMnF6/e4PQ5b+rWb0CvHp5cu3aVu3fvcPbCZdwqVmLDurUArFqxjIqVKpMjZ84ULnXqI/ePpPFuWCtdLKmVjY0Njo6OGgHOxPrmBqujoyN3/vsr90PHjx8nR44cWhdIfD8quFUkc5YsGuuMjY0JDQ0DIDQ0DBMTE65eucytmzdxb9o8JYqZ6j179owL58/Rqk1bABo3cefhgwAePXxIaFgoAKFhoZiYmHDl8mVu3rxB02ZS118jh6MNr16Hc93/FQAnrj3CyT4Nrjkz4O6Wi2W7rgJw/vYzHr98i1uhzERFx2JqbIhKBZZmxkRGx+BoZ0HzSrmZvf1iSp5OqmJmZkatn+qof1mXKl0Gf7/7GBsZExkRQWxsLKFv32JiYsKTx4/ZsnkjffoPTOFSpz5y/xCpxTc3WD09PenXrx9nzpxBpVLx6NEj1q1bx+DBg+nRo4cuyii+I1Wr1yBNGivKlHDF2tqaSlWqMnzIIH6bPiuli5ZqPQgIwDFjRoyM4rqkq1Qqsjg5kyt3btJYpaFUsSLYWNtQuUpVhg0ZyO8zZqdwiVOPO4+CSJvGjDL5HQGoWzo71hYmZHOwxtjIkKeBoeq0fs9CcMpgxe2HQRy5/JBTc1qS3dGaDYduMs3TjZErThATq6TUqaR6C+bNoW69BuTJmxe3SpUpX7o4vr6+tGzdlmFDBjJpyjT1z4D4enL/SDrv+rDqYhGJeOlq+PDhxMbGUq1aNUJDQ6lYsSKmpqYMHjyYPn366KKM4jtiYGDAvIVL1Z/nz5lFvQYNiY6OpmP7NkRERNC1e08qV6magqX8fixY/L6u586eRf0GjYiJjsajXWsiIiLo3qOX1PVnhIRG0nrKLsZ7lMPS3Jiz15/g4/cSS/PPP94at/Y049bGDe9Sr0x2Hrx4g9/T1yzuXw1rCxO2HbvD1mO3k+MUvgu/TZ3Mvbt32Ll7PwBjxk1kzLiJAOz860+yZMmCc9ZsdPfsREhICE2aNqNpsxYpWeTvgtw/hD755garSqXi559/ZsiQIdy5c4c3b97g4uKClZWVLsqXaq1atYr+/ftLv97P8PfzY8/uXezYuYuunTvQsbMnRYsVp4pbWc55X03p4qUaWZycePL4MdHR0RgZGaEoCg8C/HFyclan8fPzY8/uf/nrn9106ehB5y5dKVqsOJUqlOHCpWspWHr9d/TyQ2pe/h8AJkYG3F/XmVM+j4mOicXBzkIdZc1qb03A8zca+6YxN6Z/42LUH/0nQ5oV59jVh2w4eJOz81qx88w9wiNjkv18UpvZM37nrx3b+XvXPiwsLDS2hYSEMHvWdP7cuZvfp02hgltFWrZuS5kSrtSt1wBzc/MUKnXqIfePpKOrMVNTyzisupboiQNMTExwcXGhVKlSWjdWnz9/To8ePXB2dsbU1BRHR0dq1arFiRMnAMiWLRsqlSregLT9+/encuXK6s9jx47F1dVVq7IAXLhwgRo1amBra0u6dOno2rUrb95o/iLq27cvxYsXx9TUNEmO+SMaOqg/v/4+AwMDA96+fYtKpcLAwIDQ0LcpXbRUxd7eHteixdiw7g8Atv9vG5kzZyFnrlzqNIMH9mPa7zPj6jr0fV2/fSt1/SWOdu8bSSNaleLIpQfcexzM/47foctPBQEontueTOksOXbloca+EzqWY/KGs4RFRGNpZoyigAIYGxlgYmSYnKeRKs2dNYMtmzfy1797sbW1jbd99M/DGTFyFBYWFoT+dw9RqVRER0URGRmZ/AVOheT+IXTBw8ODo0ePJmme3xxhrVKlymffWDt48OA3F8Ld3Z3IyEhWr15Njhw5ePr0KQcOHODly5fqNGZmZgwbNowjR458c/7f4tGjR1SvXp0WLVowb948QkJC6N+/Px06dGDr1q0aaTt16sSZM2e4fPmyTsuUWvXp2Y09u//l6ZMnNKxXmzRWabh8Pe4x6OaN6ylYuDAuLgUAGDRkGL17dCUyMpJhI35JyWKnSvMWLMazcwemTZ2MdRprFi9bqd62ccN6ChcugkuBuLoePGQ4vbp7EhkVyYiRo1KqyKnGqLZlKF8gE0aGKs7ceEL32QcA+GXlCZYPqsmVJe2IjI6h4/S9RMfEqvcrmz8j5iZGHPQOAGDRzsusGVqbQU2Ls/7gTUJCpUH1OQ8fPGDEsMFkz56DOjXjHjubmppy+Hhc4OLUyROEh4dTtXoNALp270XH9q2Z8fs0WrZpi42NTYqVPbWR+0fS+NHHYf1QcHAw1atXJ2vWrHTs2BEPDw8yZ86sVZ4qRVG+6S2AAQMGaHyOiorC29ubq1ev4uHhwezZ39YhOygoCDs7Ow4fPkylSpUSTJMtWzYaNmzIokWL2L59O3Xq1AHiIqze3t4cPnwYiIuw7tixA29vbwC8vLwYOXIkFy9eJCoqCldXV2bOnEmxYsU+WZ4lS5YwatQoHj9+jIFBXAD6ypUrFC5cmNu3b5Prg786EzrmO++6BKxatYohQ4YQEBBApUqVWLZsGU5OTup0EydOZM6cOYSFhdGiRQvSp0/P7t274+X3KSEhIdjY2PDoeRDW1jK+o64ZGqTCO0cqZNdwbkoX4YfxYnvvlC7CD0PuH8kjJCQEh3Q2BAcHJ8vvxXe/hzuvPYOJRdJ3j4wMfcPydqWT7XySyvPnz1m7di2rV6/Gx8eH6tWr07lzZxo2bJioYa6+uUvAzJkzNZZ58+Zx/Phx+vfvn6gCWFlZYWVlxY4dO9SzZiUke/bsdO/enREjRhAbG/vJdB96/fo1Hh4eHD9+nNOnT5M7d27q1KnD69evP7lPREQEJiYm6sYqoO4Hdfz48a88qzihoaFMmjSJNWvWcOLECYKCgmjZsqV6+7p165g0aRJTp07l/PnzODs7s3Dhwm86hhBCCCFSnozDqilDhgwMHDiQS5cucebMGXLlykW7du3IlCkTAwYM4Pbtb3vxNNF9WD/Wtm1bVqxY8c37GRkZsWrVKlavXo2trS3ly5dn5MiRCT5m/+WXX/D19WXdunVflXfVqlVp27Yt+fLlI3/+/CxZsoTQ0NDPdiuoWrUqT5484bfffiMyMpLAwECGDx8OwOPHj7/p3KKiopg3bx5ly5alePHirF69mpMnT3L27FkA5s6dS+fOnenYsSN58uRh9OjRFCpU6LN5RkREEBISorEIIYQQQuijx48fs2/fPvbt24ehoSF16tThypUruLi4MHPmzK/OJ8karKdOncLMzCxR+7q7u/Po0SP++usvateuzeHDhylWrBirVq3SSJchQwYGDx7M6NGjv6pD/dOnT/H09CR37tzY2NhgbW3Nmzdv8Pf3B6B79+7qCO+7F8cKFCjA6tWrmT59OhYWFjg6OpI9e3YcHBw0oq5fw8jIiJIlS6o/58uXD1tbW65fvw7EzRpWqlQpjX0+/vyxKVOmYGNjo14+7F4ghBBCiJRhoMMltYmKimLbtm3Uq1ePrFmzsmXLFvr378+jR49YvXo1+/fvZ/PmzYwfP/6r8/zmemjSpInG0rhxY8qUKUPHjh3p1q3bt2anZmZmRo0aNRg1ahQnT56kQ4cOjBkzJl66gQMHEhYWxoIFC76Yp4eHB97e3syePZuTJ0/i7e1NunTp1I3d8ePH4+3trV7ead26NU+ePOHhw4e8fPmSsWPH8vz5c72YyWvEiBEEBwerl4CAgJQuEgBtWzXnzOlTACxeOJ9SxQpTtmRRShYtxIJ5c9TpYmNjGdS/D4Xy5aJw/twsWjBPI58d27dRqlhhShYtRMmihfC7fx+ARQvm8dvUycl2PqlV65bNOH0q7nuIjY1lQL8+uOTNSYF8uVg4/31dL5w/j2m/Sn1+zroRtSmdL27CgG51C+E1vxWn57bk3PzW9KxfWJ1uZo9KnJ7bUr0Ebu+h3j60RQmNbU+3dGNqlwoAFMyWjh3jGiT/iemhD+8f8On7wOfuLe88e/aM7E6OtGzaWL1u1z876d2jq87PIzWTe4dIShkzZsTT05OsWbNy9uxZzp07R/fu3TX64FapUiXB0T8+5ZtHCfj4zUsDAwPy5s3L+PHjqVmz5rdm90kuLi7s2LEj3norKytGjRrF2LFjadDg8zf7EydOsGDBAvVLWgEBAbx48UK93d7eHnt7+0/u7+DgAMCKFSvUDepvER0dzblz59RR05s3bxIUFET+/PkByJs3L15eXrRv3169j5eX12fzNDU1xdTU9JvKoWvnvM4S+OoVpcuUBaBl67Z069ELiOuMXqpYIcpXcKOIa1E2rv+DG9ev433tJsHBwZQvXYyKlavg4lKAS94XGTf6F/7dc4CMmTLx+vVrDA3jhv7p1KUrxQu70LV7L3n79xO8zsZ9D2XKxn0PG9b9wY3rPlzxuUVwcDBlShalUuUquBQoQGfPrrgWyk+3HlKfCSmRxwE7KzPO3HgCwIZDN1n8zxUgbmzV8wvacOLaIy7de8GAhe+7GDnYWXB9uQfbjsdNXz1t0zmmbToHxI3hem9tJzYevgnA1fsviYyKoVLhLBy5/CA5T0+vfHz/+Nx94HP3lnf69urOT3Xq8urlK/W6n+rWY9KEsdy5fZtcuXMn49mlDnLvSBq66m+aGvuwzpw5k2bNmn32ybutrS2+vr5fnec3RVhjYmLo2LEjM2bMYOXKlaxcuZLly5fz66+/Jrqx+vLlS6pWrcoff/zB5cuX8fX1ZcuWLUybNo2GDRsmuE/Xrl2xsbFh/fr1n807d+7crF27luvXr3PmzBnatGnzVQNJz5s3jwsXLnDr1i3mz59P7969mTJlisZfAnfu3MHb25snT54QFhamjtJ+2FXB2NiYPn36cObMGc6fP0+HDh0oU6aMugHbp08fli9fzurVq7l9+zYTJ07k8uXLqe7iXLFsMc1btlJ//vAmFvr2LVFRUerP27ZspkPnLhgaGpI2bVrcmzZny6YNAMyZNYM+/QaQMVMmANKkSaMeKNzExISq1WuweePnv/Mf2fKli2nRsrX689Ytm+jY2VNd102btWDzf3VtYmJC9eo12bRB6jMhnX8qwKYjt9SfPxyCytLMGCOjhG+dbavlY/8Ff40pW99pUDYnD1684eKd5+p1m4/cUo/l+qP6+P7xufvA5+4tAKtXLidbtmyUK+8W7zhNmjZj9cplujiFVE/uHUlDpQIDHSyprEkAwKFDh+L9fAK8ffuWTp06JSrPb2qwGhoaUrNmzSSdvcnKyorSpUszc+ZMKlasSMGCBRk1ahSenp7MmzcvwX2MjY2ZMGEC4eHhn817+fLlBAYGUqxYMdq1a0ffvn0/G1F95+zZs9SoUYNChQqxZMkSFi9eTN++fTXSdOnShaJFi7J48WJu3bpF0aJFKVq0KI8ePVKnsbCwYNiwYbRu3Zry5ctjZWXFpk2b1NvbtGnDiBEjGDx4MMWKFcPX15cOHTokui9wSjl25AglSpXWWLf9f1sp4VoQlzzZ6dd/kDoCEhDgj7NzVnU656zZePBft4Yb130ICPCnVvXKlCtVjPFjRxET834moNJlynL40LeP8/ujOHr0MCU/+B4C/DXrOmvWbAT8138b4urz0KEDyVrG1KJioSx43Xyisa5x+ZycX9CaGys7MPt/F7l070W8/drXcGHV3oRn/vGo6cLqvT4a687ceEzlIlmSruCp0Mf3jy/dBz51b7nv68vypYsZM35SgscpVVruH58i9w6R1FavXk1YWFi89WFhYaxZsyZReX5zl4CCBQty7949smfPnqgDfszU1JQpU6YwZcqUT6a5/1//pQ+1atWKVq1aaawbO3YsY8eOVX8uWrRovEfsTZs2/WKZvqYy3439+ikdOnSgQ4cOQFy/308ZNWoUo0a9H3y5Ro0a8cZ61XcPHz7A3t5BY13jJk1p3KQpfvfv06p5E2rXqUeevHk/m090dDSXvb3Z8fcuYmNjad6kIUsXL6R7z7hxIh0cHHn08Md9dPolDx88wN7B4csJ/+Pg6MjDB1KfCcmc3opnH0VJt5+4y/YTd3G2T8OmX+ry71lfbj8MUm8vXyATacyN2X3OL15+zhnSUM4lI+2n7tZY/yQwlPQ25pgaGxIR9WNO0/rx/eNL94GE7i258+ShR7fOTJ8195NP0RwcHHko948Eyb0jabyLiOoi39QiJCQERVFQFIXXr19rBOBiYmL4999/vypwmJBvfulq4sSJDB48mJ07d/L48WMZYkkLoaGhzJgxg2vXrnHjxg3GjBnD/v378fDwSOmifRMLCwsiPhHtzpotGyVKlmL3vzsBcHJyxt///S90f7/7ZPlvpAMnJ2caNm6Cubk5lpaWNGjUGK+zZ9Rpw8PDMZO5wT/JwsJC46mDk7NmXfv53cfJ+f384OHh4TLX+ieERkRhZpLw3/P+z17jdfMJdUpp/tHuUdOFPw7cIDY2/lws7WrkZ+cZXwLfaI41bWZsSHRMLJHRP2ZjFeLfP750H3jnw3tLSEgI165cxqNtS1zyZGfk8CEc2L+XurWqq9NHRIRjbibXe0Lk3iGSiq2tLWnTpkWlUpEnTx7s7OzUS/r06enUqRO9evVKVN5f3WAdP348b9++pU6dOly6dIkGDRqQJUsWdUFsbW2xs7NLVCF+VCqVin///ZeKFStSvHhx/v77b7Zt20b16tW/vLMeKVCoMLdv3VR/vn79/WPP58+fc/TwIQoWintrurF7U1YtX0ZMTAyvXr1i29bNuDdrAUDzlq04sH8fsbGxREdHc3D/PgoVev829s2b1zU+C00FP/oemrg3Y+Xypeq63rplE03/q2uAGzeuU6hwkZQoqt676vuS3Fne38/yOb3/f3prMyoXycIV3/ddAtKYG9O4fE5W79N85A9x/c/a18jPqr3xt+VzTss1v5d823yD35eP7x+fuw986t5iY2OD/+MX+NzyxeeWL5N//Y1q1Wvyz5796vRyvX+a3DuShkwcENd39cCBAyiKwtatWzl48KB6OX78OP7+/vz888+JyvuruwSMGzeO7t27c+jQoUQdSMRnbm7O/v37v5xQzzVq7M7+fXuoUi2uob1g7mxOnjiOiYkJiqLQs08/9Xzfrdq04/w5L4q45EGlUtG77wAKFoybLKFp85Z4X7xACdeCGBoaUq58BXr26ac+zr69exg15uvHbPvRNG7SlH1791D1v++hddu4ui6YPzcqlYq+/QZS8IOJKfbt2c3osRNSqrh6bfuJO9Qo5swh77j+1b0aulK+QCYio2NQoWLen5c46P1+SLlmlfJw8c5z7j4KjpdXVVcnYmMVdV4fqlEsK9v/G1HgR/Xx/eNz94HP3Vu+ZP/ePTRq4q6z80jN5N4hkkqlSpUA8PX1xdnZOUkb2ypF+bq/7Q0MDHjy5Emi+x4I3Xg3h/Gj50EpNsfwmzdvqFapPAePnsTS0lInx7h+3Ye+vbqz7+BRneT/tfR5LvA3b95Qxa0ch4+f+uL3cN3Hh949u3Hg8LFkKt23sWs4N0WPb2lmzKHfm1J50BZCI6J1cgxjIwNOzGrBTyO38zLk8y+Q6tKL7b1T7NiQPPePFy9eULdWNY6d8sLExEQnx/ga+nr/+J7uHRD3e9EhnQ3BwcHJ8nvx3e/hPpvOYWphleT5R4S+YW6LEsl2Pol1+fJlChYsiIGBQYKzlX6ocOFvf1r6TS9dpaawtEg+VlZW/PrbDO7f96VAAd0M0fMwIIA58xfpJO/vhZWVFdOmz+S+ry8FCn7+e3jwIIB5CxYnU8lSn7fhUQxdeoxsjtb4+L368g6JkM3BmlGrTqZoY1UfJMf9w/feXWbPW5iijVV9JvcOkRRcXV3VgU1XV1dUKhUJxURVKpXGyB9f65sirDY2Nl9stL56pZubu0iYPkRYfyT6GiH53qR0hPVHktIR1h+J3D+SR0pFWPtu1l2EdU5z/Y+w+vn5qbsB+PnFHy3lQ1mzZv3s9oR8U4R13LhxMrOFEEIIIYTQ8K4RGhUVxbhx4xg1alSSDYEK39hgbdmypfRhFUIIIYT4iIFKhYEOuk7qIk9dMjY2Ztu2bRpjzCeFrx7WSvqvCiGEEEKIL2nUqBE7duxI0jy/OsL6lV1dhRBCCCF+OAYkYjamr8w3tcmdOzfjx4/nxIkTFC9ePN7oEx9Pd/81vrrBGhsb+82ZCyGEEEKIH8vy5cuxtbXl/PnznD9/XmObSqXSbYNVCCGEEEIkTKWKW3SRb2rj6+ub5HmmxkizEEIIIYT4gUiEVQghhBBCSwboaJQAUl+ItVOnTp/dvmLFim/OUxqsQgghhBBaki4B7wUGBmp8joqK4urVqwQFBVG1atVE5SkNViGEEEIIkWS2b98eb11sbCw9evQgZ86cicpT+rAKIYQQQmjJQKW75XtgYGDAwIEDmTlzZuL2T+LyCCGEEEIIEc/du3eJjo5O1L7SJUAIIYQQQksqlW6mUU2NfVgHDhyo8VlRFB4/fsw///yDh4dHovKUBqsQQgghhEgyFy9e1PhsYGBAhgwZmD59+hdHEPgUabAKIYQQQmhJRgl479ChQ0mep/RhFUIIIYQQWouNjWXq1KmUL1+ekiVLMnz4cMLCwpIkb2mwCiGEEEJoSUYJgEmTJjFy5EisrKzInDkzs2fPplevXkmStzRYhRBCCCGE1tasWcOCBQvYs2cPO3bs4O+//2bdunXExsZqnbc0WIUQQgghtKTS4b/Uwt/fnzp16qg/V69eHZVKxaNHj7TOWxqsQgghhBBCa9HR0ZiZmWmsMzY2JioqSuu8ZZQAIYQQQggt6aq/aWrqw6ooCh06dMDU1FS9Ljw8nO7du2Npaale97///e+b85YGqxBCCCGE0FpCkwK0bds2SfKWBqsQQgghhJYkwgorV67UWd7Sh1UIIYQQQug1ibAKIYQQQmhJpVKh0sG0VLrIMzWSBqsQQgghhJakS4BuSZcAIYQQQgih1yTCKoQQQgihJZUqbtFFvkIirEIIIYQQQs9JhFUIIYQQQksGKhUGOgiH6iLP1EgirEIIIYQQQq9JhFUIIYQQQksySoBuSYP1OxERGUN4ZExKF+O7Z2kmPzLJ4dbarildhB9G+tpTUroIP4znu4andBF+CNExsSldBL3y66+/MmLECPr168esWbMACA8PZ9CgQWzcuJGIiAhq1arFggULcHBwSNnCfoZ0CRBCCCGE0Jbq/UgBSbmgRYTVy8uLxYsXU7hwYY31AwYM4O+//2bLli0cOXKER48e0aRJE+3OX8ekwSqEEEII8Z158+YNbdq0YenSpdjZ2anXBwcHs3z5cmbMmEHVqlUpXrw4K1eu5OTJk5w+fToFS/x50mAVQgghhNCSASqdLQAhISEaS0RExGfL06tXL+rWrUv16tU11p8/f56oqCiN9fny5cPZ2ZlTp04lfcUkEWmwCiGEEELoOScnJ2xsbNTLlCmf7n++ceNGLly4kGCaJ0+eYGJigq2trcZ6BwcHnjx5ktTFTjLyBokQQgghhJZ0PdNVQEAA1tbW6vWmpqYJpg8ICKBfv37s27cPMzOzpC9QCpEIqxBCCCGEnrO2ttZYPtVgPX/+PM+ePaNYsWIYGRlhZGTEkSNHmDNnDkZGRjg4OBAZGUlQUJDGfk+fPsXR0TEZziRxJMIqhBBCCKElfRmHtVq1aly5ckVjXceOHcmXLx/Dhg3DyckJY2NjDhw4gLu7OwA3b97E39+fsmXLJlWxk5w0WIUQQgghvhNp0qShYMGCGussLS1Jly6den3nzp0ZOHAgadOmxdramj59+lC2bFnKlCmTEkX+KtJgFUIIIYTQkoFKhYEOOrHqIs+ZM2diYGCAu7u7xsQB+kwarEIIIYQQWtL1S1faOHz4sMZnMzMz5s+fz/z587XPPJnIS1dCCCGEEEKvSYRVCCGEEEJLBuioS4A2c7N+RyTCKoQQQggh9JpEWIUQQgghtKTPfVi/BxJhFUIIIYQQek0irEIIIYQQWjJAN1FAiSzGkXoQQgghhBB6TSKsQgghhBBaUqlUqHTQ4VQXeaZGEmEVQgghhBB6TSKsQgghhBBaUv236CJfIRFWIYQQQgih5yTCKoQQQgihJQOVjma6kj6sgERYhRBCCCGEnpMIqxBCCCFEEpBYqO5IhFUIIYQQQug1ibAKIYQQQmhJpYpbdJGvkAirEEIIIYTQcxJhFUIIIYTQksx0pVvSYBVCCCGE0JIBunlsLY/C40g9CCGEEEIIvSYRViGEEEIILUmXAN2SCKsQQgghhNBrEmEVQgghhNCSCt1MHCDx1TgSYRVCCCGEEHpNIqxCCCGEEFqSPqy6JRFWoVMREREMG9SXkq75cSvtSvcu7YmKiqJdS3cqlS2GR+tmREdHAxAeHk69WlUICgxM4VKnPndu36ayWzkKueShfJmS+Fy7RlRUFM3cG1GqWBFaNGuiUc/Vq1QkUOr5q4wePpByrnlwTmfGtSuX1Ot9796hce3KVCpVkHrVynPzhg8AUVFRdGnbjFoVS9K1fQuNem9arxpBQVLvn1KjZA6OL+zI2aVdODLPg0I57AFYPLQuZ5d24fSSzhxf0IHKRbOp95k74Ce8lnVh1/TWWFuaqtfvmNKC7Jlsk/kMUp/w8HBaNmuMa8F8lC1ZlAZ1anL37h0A+vbqTuniRahbqzrBwcEAKIpCkwZ1uHf3bkoWW/yApMEqdGr8mJGoVCrOXvTh2Blvxk2axsH9e7Gzs+PIqQvY2NhwYN8eAKZPnUSXbj2xtbNL4VKnPr17dqNzl65c8bnFoCHD8OzcgX1795DWLi1nL1zC1saWvXt2AzBl0gS69+yNndTzV6nboDHb/jlIFidnjfUjBvaidftOHDl7lR79BjGolycARw7uw9bOjj1HvbC2seHwgb0AzPl9Mh5demBrK/WeEFsrM1aObIDn1L8p5bmMkYsPsvLnhgAMnb+fUp7LKNN1Ob1m7GLdmMaoVOCSLQO5sthRsssyjnr707pGQQA61nXlqLcfvo+CUvCMUo+OnT25eOU6p7wuUrd+Q3p374rPtavcvXOHM+cv4VaxEhvX/wHAqhXLcKtUhRw5c6ZwqfWPgQ4XIfUgdOjt27esW7OSn0dPUD/ScHBwxNjYmNCwMABCw8IwMTHh2tXL3L51k0ZNmqVkkVOlZ8+eceH8OVq1aQtA4ybuPHwQwKOHDwkNCwUgNCwUExMTrly+zM2bN2jarHlKFjlVKV3OjYyZs2ise/H8GZe9L9C4eWsA6tRvzONHD7h/7y7GxsaE/Xd9h4WFYWJizPVrV7h7+xb1GzVN9vKnFjky2fIqJIzr918AcOJKAE721rjmdiD4bYQ63YdR1KiYGEyNDVGpwNLMmMioGBzTWtK8qguzt5xJ9nNIjczMzKhVu476Hl2yVGn8/e5jZGxMREQEsbGxvA19i7GxMU8eP2br5k306TcghUstfkTSYBU6c9/3LnZ2aZn5+69Uq1iaejUrc/TwQSpXrY6VlRWVyhbD2toat0pVGDViCJOnzUjpIqdKDwICcMyYESOjuC7pKpWKLE7O5MqdmzRWaShVrAg21jZUrlKVYUMG8vuM2Slc4tTv0cMH2Ds4atR5psxOPHzgj1vlalhaWVGrYknSWFtTzq0K438ZytjJv6dwqfXbnYeBpLU2p0yBzADULZcba0tTsjraAjDBszLX/ujBxnHutBr7PxQFbge84oi3P6cWdyZ7Jls27L/KtJ41GLnoIDGxSgqeTeq1cN4c6tZvQJ48ealYqTIVypTgvu89WrZuy/ChA5k4Zar6uhea3vVh1cUi5KUroUPR0dEE+PuRN19+Ro+fzOVLF2na4CeOe11i1rzF6nSL5s+mTr0GREdH07VTOyIjIujUtQcVK1VJwdJ/HxYsXqr+/9zZs6jfoBEx0dF4tGtNREQE3Xv0onKVqilYwu+PgYEB02YtVH9etmguteo0IDommj5d2xMZEUn7zt0oX1Gu7w+FvI2g9bjtjO9SBUtzY876PMTn/nOiY2IBGLX0MKOWHqZKsWxM7lqFKn3XEBUdy7gVRxi34ggA9crl5sHzEPyeBrN4aF2sLUzZdvg6Ww9fT8lTSzV+mzqFu/fusnP+IgBGj5vA6HETANj5959kzuKEc9ZsdPfsxOvXITRxb4Z7sxYpWWTxA5EGq9CZLFmcMTAwoGmLuMemhYsUxTlbNq5fu4q9vQMAAf5+7N+7m83b/6FXt46079iFIq7FqF21Aie8Ln0ue/GfLE5OPHn8mOjoaIyMjFAUhQcB/jh90OfSz8+PPbv/5a9/dtOlowedu3SlaLHiVKpQhguXrqVg6VOnTJmz8OzpE406f/QwgMxZNPu5Pgjw49C+3azd8jcDenamdfvOFCpSjIa1KnLg5MUUKr3+OurtR01vPwBMjA25v7WvuovAO4cu3MfKwpSC2e25ePuJen0aCxP6Ny9D/WEbGNK6HMcu+bNh31XOLuvCzpO3CY+MTtZzSW1mz5zO339u569/92JhYaGxLSQkhDkzZ7Bj5y6mT/uVCm4Vadm6LWVLFqVOvQaYm5unUKn1i4zDqlvSJeAjT548oU+fPuTIkQNTU1OcnJyoX78+Bw4cUKe5ePEizZo1w8HBATMzM3Lnzo2npye3bt1Sp9m+fTtlypTBxsaGNGnSUKBAAfr376/evmrVKlQqFbVr19Y4flBQECqVisOHD+v6VHUuXfr0VKxclYP741468bvvi//9++TJm0+dZuTQgUz89XcMDAwIfRuKSqWK+3/o25Qqdqpjb2+Pa9FibFgX91LE9v9tI3PmLOTMlUudZvDAfkz7fSYGBga8DX2rrue3b6WeEyN9BnsKFnFl++b1APz793YcM2YmWw7NF1HGjhjM6Em/YWBgQFjo++s7TK7vBDmmtVT/f0S7Chy56If/02ByZHr/olqJfBnJYGuB7+MgjX0neFZh8tpjhEVEY2lmjKKAAhgbGmBibJhMZ5A6zZ09k62bN/LnP3uwtbWNt33MLyMYPvIXLCws1PcPlUpFVFQUkZGRyV9g8UOSCOsH7t+/T/ny5bG1teW3336jUKFCREVFsWfPHnr16sWNGzfYuXMn7u7u1KpVi3Xr1pEzZ06ePXvGli1bGDVqFJs2beLAgQO0aNGCSZMm0aBBA1QqFT4+Puzbt0/jeEZGRuzfv59Dhw5Rpcr3+Xjw91nz6derK+NHj8DAwIDpcxaQMVNcH7WtmzdQoFBh8uUvAEC/gUMY0Kc7kZFRDBo6MiWLnerMW7AYz84dmDZ1MtZprFm8bKV628YN6ylcuAguBeLqefCQ4fTq7klkVCQjRo5KqSKnGsMH9uLg3t08f/aEds3qY2llxbFzPkyZPp9BvT2ZN2saVlbWTJ+3RGO/HVs3kr9gIfLmcwGgZ7/BDBvQk6jISPoOHpESp6L3RnWsSPlCzhgZqjjj85Duv/2DsZEBy4bXw9rSjOiYWELDI2k97n8EvQlX71e2QBbMTY04eP4+AIv+PM+aXxoxqGVZ1u+7SsgHL20JTQ8fPGDksMFkz56DurWqAWBqasqhY6cAOHXyBGFhYVStXgOArt160smjDTOn/0ar1m2xsbFJsbLrG5UqbtFFvgJUiqJIz/T/1KlTh8uXL3Pz5k0sLS01tgUFBWFiYkLWrFmpUKEC27dvj7d/UFAQtra29O/fn0uXLnHo0KFPHmvVqlX079+f5s2bc+nSJc6cOaPOw87OjkOHDlG5cuUvljkkJAQbGxt8H74kjbX1t52w+GaWZvI3XnJ4HiINjOSSp+n0lC7CD+P5ruEpXYQfQkhICJnt7QgODsY6GX4vvvs9vP7kLSys0iR5/qFvXtO6XJ5kOx99JV0C/vPq1St2795Nr1694jVWAWxtbdmzZw8vXrxg6NChCebx7lGKo6Mj165d4+rVq1887tixY7ly5Qpbt279qnJGREQQEhKisQghhBAiZRmg0tkipMGqdufOHRRFIV++fJ9Mc/v2bYDPpgHo06cPJUuWpFChQmTLlo2WLVuyYsUKIiLiR40yZcpEv379+Pnnn9Uz4nzOlClTsLGxUS9OTk5f3EcIIYQQuvWuS4AuFiENVrWv6Rnxtb0nLC0t+eeff7hz5w6//PILVlZWDBo0iFKlShEaGhov/bBhw3j+/DkrVqz4Yt4jRowgODhYvQQEBHxVmYQQQgghUitpsP4nd+7cqFQqbty48ck0efLkAfhsmg/lzJmTLl26sGzZMi5cuICPjw+bNm2Kl87W1pYRI0Ywbty4BBu0HzI1NcXa2lpjSQmd2rXE60xcp/y9u/+lqlspMqWz5OdhAzXSLVk4lwqlXHEr7UrFMkXZvHGdeltYWBg9u3agQilXKpRypU3zxrx4/hyA9WtXUblccfWSJ6sjHq3jZsF69uwpNSqX/aqI9I+mdctmnD4V973ExsYyoF8fXPLmpEC+XCycP0+dbuH8eUz7dXJKFTNV6t6xNee9Tmuse/H8GcXyOdOlbfwZ2sLDwqha1pXalUqp112/doX2zRvovKz6aN2YxpR2iXvhslvD4ngt68LpJZ05t9yTno1LqNPN7FuL00s6q5fA3UPV281MjFg2vD7nlntybrknWyY2Jb1N3BBMpV0yq/c5v8KTuQN+0hgdoED2DOyZ0YaLK7tycWVXGrrlBaBgjgzsmPJjjiXarnVzzpyOu1/s3vUPbmVLks7anGGDNWeyio2NZfCAvhTOn5siLnlYvHC+etvihfP5beqUZC23vlLp8J+QBqta2rRpqVWrFvPnz09wqJ+goCBq1qxJ+vTpmTZtWoJ5BAUFfTL/bNmyxQ0J8olhhPr06YOBgQGzZ+v/LEQXzp0lMPAVJUuXBSBHzlzMWbCU3v0GxUubL38B/t13hGNnvNmw9S9+GTYI33t3AVi9YglhoWEcO3OR42e9yWBvz7zZcS+AtG7XgcMnz6sXewdHmrZoBYC9vQOlSpdl0/q1yXTGqYPX2bMEvnpFmbJx38uGdX9w47oPV3xucezkWWbO+A2fa3Fjrnb27MqqlcsJDg5OySKnGt7nvQgKfEXxkmU01o8Y2JtqNX9KcJ/J436mxH8/I+/kL1AIExNTThz99AuZ36MS+TJil8acMz4PAdiw/yoluyyjTNflVOmzmv7NS1MkV9zYzAPm7KFM1+WU6bqchsM2oigK2/4b+L9L/aJYmBpTovNSSnReyrPAtwxoURqAy3efUqHHSsp0XU6Jzkuxt7OgW8NiAJibGrFlQlPGrThC0Y5LKN55KScuxz2dunrvOZFR0VQqmjW5qyVFnfM6S+CrQEqXibtGc+bKzYLFy+g3YHC8tBvX/8GN69e5ePUGh46fZvaM37nuE3cv6djZk7WrVsi9ROicNFg/MH/+fGJiYihVqhTbtm3j9u3bXL9+nTlz5lC2bFksLS1ZtmwZ//zzDw0aNGD//v3cv3+fc+fOMXToULp37w7EvUg1dOhQDh8+jK+vLxcvXqRTp05ERUVRo0aNBI9tZmbGuHHjmDNnTnKecqKsXrEU92Yt1Z9z5c5DwUJFMExgur6Klati/d+wJ5mzOGHv4MjDhw+AuGnswsJCiYqKIjo6mrdv35Ipc+Z4eZz3OsOL58+oXae+el2Tpi1YvXJpvLQ/suVLF9OiZWv1561bNtGxsyeGhoakTZuWps1asHnTBgBMTEyoXr0mmzasT6nipirrVi+jUVPNKNzGP1bilDUbpcqUj5f+2OEDPH38iMZNW8bb1sC9OetWL9dZWfVR53pF2XTg/QQVHw4zZWlmjJFRwuOktq1ViP1e93gaGPeHvqKAuZkRxkYGGBqosDI34eHz1wCERUSrZ8UyMTLEzMSId724WlQrwNnrjzh5Ne7eExur8CL4/dOszQd96FKvaNKdcCqwYtkSmrV4f33mzp2HQoWLJDjt6ratm+nQqbP6XtKkWXO2bNoIxN1LqlavwZZNci+RPqy6JQ3WD+TIkYMLFy5QpUoVBg0aRMGCBalRowYHDhxg4cK4qRYbNmzIyZMnMTY2pnXr1uTLl49WrVoRHBzMxIkTAahUqRL37t2jffv25MuXj59++oknT56wd+9e8ubN+8nje3h4kCNHjmQ5V22cOH6U4iVLfTnhR44cOkBQUCBFi8U93vPo1BVLqzTky5GJ/Dky8zokmC7desXb7481K2nWsg3GxsbqdUWKFsfn6hVeyygJakePHqZkqdLqzwH+/jg7v48aZc2ajQB/f/Xn0mXKcujQAcSXnTpxlKLF31/z/n6+/LFyGUN/HhcvbXBwEFPG/cyk3xP+47N4ydI/XIS1omtWvK4/0ljXuGI+zq/w5Mb6XszefJpLd57G26/9T0VYtev9jHfL/r7Am9BI/P/XH79t/bC2NGXhjnPq7c4ONpxZ2pkHOwYQ8jaCxX+eByB/1vREREWzbVIzTi/pzLLh9dVdCQDO+DykcrFsSXzW+u340SMa94vPeRAQgNNH95IHAe/vJaVKl+HwoYNJXkYhPiSDSn4kY8aMzJs3j3nz5n0yTYkSJdi2bdsnt1epUuWLEwF06NCBDh06aKwzNDTk2jX9nybz0cMHZMjg8E37+Fy7Qp8eXVi2ap162LBDB/ahxMbic+cBBgYG9O7emV8njmXk6PHq/d6+fcv2bZvZc/C4Rn5GRkbY2Nrx5PEjGX/2Pw8fPMDe4eu/FwdHRx4+eKDDEn0/njx6SPoM9kDcy5dD+nZjwtSZmCUwJeXoof3pNWAo6TPYc/tm/DnsM9g7EvjqJeHh4ZiZmem87Pogc/o0PAvU7A61/egNth+9gbODDZvGu/Pv6TvcDnil3l6+kBNpzE3Yfeauel31kjkwMFCRzX02sYrC0mH1Gd2xEuNWHAHA/2kwpT2XY2lmzMqRDWjklo8th3wwMjSgarHsVOq9ikcv3jC+S2Xm9K9N63H/A+DJqzekt7HA1NiQiKiYZKiRlPfw4QMy2H/bffxTHBwcefjwYZLklZqpdDQElfRhjSMRVvHNzC0siIgI/3LC/9y84UPrZo2Ys2ApZcpVUK9fs3IZdeo3xMzMDBMTE5o2b8Xxo4c19v1r+1by5XNRzxb0oYiI8AQbDD8qCwsLwsPffy9Ozs74+/upP/v53cfJ+f1c9+Hh4TIH+FcyM39/zb9+HcL1a1fp1aUt5VzzMHHMCI4e3k/LRnHTLHudOcmk0cMp55qH3p7tuX3zOpVLFVLnFREejqGhISYmJilyLikhNCIKM5OEH/v7Pw3G6/oj6pTJpbHe46ci/LH3CrGx70dn6VTXlb+O3SQiKoao6Fg27r9KJVfnj7PkbXgUWw5dp0X1uNndAp6FcMTbj0cv3gBxfWhLuWRSpzczMSI6JpbI6B+jsQpx94uI8K+7j2dxciLgo3tJFqcP7iUR4Zibyb1E6JY0WMU3cylQiDu3b31V2ls3rtPSvQEz5iykctXqGtuyZc/O4QP7UBQFRVHYt+df8rkU0Eizbs1K2rTvGC/fZ8+eokJF5iwyDu07BQsV5vatm+rPTdybsXL5UmJiYnj16hVbt2yiabP3/TBv3LhOocJFUqKoqU7+AgW5+981b21tw+U7jzjpfYuT3rf4ZdwUKlb+f3t3HldT/v8B/HXb9xItlqxZQkjR2MaWdQwpxow1QlFjmxlf6zCMZQzGIEkoZuwTZqwhypqlZE2MJWWoiFJp//z+6NfVtadu9968nh73Me45557zvp+5zn3f9/l8PscJW3cfBADp8tNRN7HSfyPq1rdB6Lkr0n39e/MG6ts0gprap3P6vXonCXWtKkqfN6hRSfr3SsZ66GBXA1fuJEqXGeppoW/7BthQpDsAANx7+AydHV52m+r+mTWu3X0MAKhdpQI01AvaVFNDDb3b1sPV2wX7DAqNhn39yjDUK/iR0N2xDi7ffnm8BtUr4drdJHxK931s1Fj2fPEufV36IXD9Oum5ZOeO7XDt/5V0fcyNG7Bt0kReoaoM9mGVr0/njEmlprezC44eOSR9fjz0KGzr14TvymX4c2MAbOvXxIF9ewAAUydPRGpqCub8OFU6RVXhaydP/RHp6enSaa2SEhMx/ce50v3euhmDK1cuwdn1K7zq6OFg9Pyyzyf1pf8+fV364fChYOnzgYOHoH79BmhsUxdtW7XAuPGT0Nj2ZaXvcPBB9HXpp4hQVU7PL11w/NiRUtlX6NFD6Pll31LZl6rYdfwGurR4mWh6ubRA5PrRCF/jjn2Lv8HKoPM4GnFPur5/x4a4ePMRbj94KrOfnzecgIGuFiLWj0LE+lGwqKCP2etCAQAd7GogfI07zvoXTG2V+DQdC/4o6EoUl5iKRZtP49iKYTjnPxLtm9XEuN8OSPfbpWVt7Dr+YdMVlhfOLq44UuQ8Hno0BPXrVMfK5b9hY+B61K9THfv2/gMA+GbQENSrXx/NGtVHhzaO8B4/EY0avzyXHDkUjD59Xcv8PdCnRSI+dDZ8UkqF9zC+++BJmfXlTEtLQ0+ndjgQcvKNt7EtC726dsDS5b6o18CmTI+rr6O83b7T0tLQsV1rhJ48897/L9HXr8N7rAdCQk+UUXTFk5T6+l3hFCk9LQ19e3TA7oNh0CvBZz47Oxu9OrfG1t0HYVqx0vtfUAbq9Vsi92Po62ji2Iph6PDtBmRk5sj9eMWhqaGGU74j0OO7TXiS+kKux0o6MEWu+y+OtLQ0OHVoi5CwUyU6j9+Ivo5xXmNw6GhYKUZXMqmpqahqXgEpKSllMld54ffwznO3oW9gWOr7T097DpeWdcrs/Sgrlqeo2AwMDPDzwiW4H3tXIcdPTEyA20iPMk9WlZ2BgQEWLfkN9+6+//9LfHwcVq7yK4Ooygd9AwP8+PMixN2/V6L9xMXew5Qff1aaZLWspGfmYPKqI6hpaaLoUF5Ts7IJZq49JvdkVdkYGBhg4aIliL1XsvN4fHwclvv4llJURG/HCquKU0SF9VOmzBXW8kTZKqzlWVlUWKmAMlVYyzNFVVh3nbsjtwpr35a1WWFVdABERERERO/CchERERFRCalJCh7y2C+xwkpERERESo4VViIiIqISkvz/H3nsl5iwEhEREZWYvCb5540DCrBLABEREREpNVZYiYiIiEpIAvlcvmeBtQArrERERESk1FhhJSIiIiohTmslX6ywEhEREZFSY4WViIiIqIQ4rZV8scJKREREREqNFVYiIiKiEuI8rPLFCisRERERKTVWWImIiIhKSAL5zJnKAmsBVliJiIiISKmxwkpERERUQmqQQE0OHU7VWGMFwAorERERESk5VliJiIiISoh9WOWLFVYiIiIiUmqssBIRERGVFEuscsWElYiIiKiEeGtW+WKXACIiIiJSaqywEhEREZWUnG7NygJrAVZYiYiIiEipscJKREREVEIccyVfrLASERERkVJjhZWIiIiopFhilStWWImIiIhIqbHCSkRERFRCnIdVvlhhJSIiIiKlxgorERERUQlJ5DQPq1zmdlVBTFjLCT0dDejr8H8nlQ9mRtqKDuGT8fTQNEWH8Mmo0H66okP4JIjcLEWHQHLADIeIiIiohDhJgHyxDysRERERKTVWWImIiIhKiiVWuWKFlYiIiIiUGiusRERERCXEeVjlixVWIiIiohIqnNZKHo/iWLBgAVq0aAFDQ0OYm5vD2dkZMTExMttkZmbCy8sLFStWhIGBAVxdXZGQkFCKrVH6mLASERERlRNhYWHw8vJCeHg4Dh8+jJycHHTt2hXp6enSbSZOnIg9e/Zgx44dCAsLw3///QcXFxcFRv1+7BJAREREVELKMubq4MGDMs8DAwNhbm6OiIgIfP7550hJScG6deuwefNmdOrUCQAQEBAAGxsbhIeH47PPPiulyEsXK6xERERESi41NVXmkZX1YTdISElJAQCYmpoCACIiIpCTkwMnJyfpNg0aNED16tVx5syZ0g+8lDBhJSIiIiopiRwfAKysrGBsbCx9LFiw4L0h5efnY8KECWjTpg0aN24MAHj06BG0tLRgYmIis62FhQUePXr08e9fztglgIiIiEjJxcXFwcjISPpcW/v9t7D28vLC1atXcfLkSXmGViaYsBIRERGVkLyntTIyMpJJWN/H29sbe/fuxfHjx1GtWjXpcktLS2RnZ+PZs2cyVdaEhARYWlqWWtyljV0CiIiIiMoJIQS8vb2xa9cuHD16FLVq1ZJZb29vD01NTYSEhEiXxcTE4P79+2jVqlVZh/vBWGElIiIiKqGPmTP1Q/dbHF5eXti8eTP+/vtvGBoaSvulGhsbQ1dXF8bGxnB3d8ekSZNgamoKIyMjfPvtt2jVqpXSzhAAMGElIiIiKjd8fX0BAB06dJBZHhAQADc3NwDAb7/9BjU1Nbi6uiIrKwvdunXDqlWryjjS4mHCSkRERFRCyjIPqxDivdvo6OjAx8cHPj4+HxeUArAPKxEREREpNVZYiYiIiEpKWUqs5RQrrERERESk1FhhJSIiIiohec/D+qljhZWIiIiIlBorrEREREQlpCzzsJZXTFiJiIiISohjruSLXQKIiIiISKmxwkpERERUUiyxyhUrrERERESk1FhhJSIiIiohTmslX6ywEhEREZFSY4WViIiIqIQ4rZV8scJKREREREqNFVYiIiKiEuIkAfLFCisRERERKTVWWImIiIhKiiVWuWKFlYiIiIiUGhNWkqt/b91Ch3atYduwHtp81gLXr11DTk4O+rs6o2XzphjQ3wW5ubkAgMzMTDh1/BxPnz5VcNSqh+1cdtjWZYdtLT9dHOvi5LqxOLfhW4St8YCttaV03fQRnXB5y0Sc3/gtDq5wly5f8UMfnN/4LQ4sHwEjfW3p8t2Lh6FWVdMyjV8ZSeT4h5iwkpx5j/WA+8jRuHL9Jr774X8Y5e6Gw4eCYVrBFOciL8HE2ASHgg8CABbMmwvPsd6oUKGCgqNWPWznssO2Ljtsa/kwMdRBwKyvMOrnv9By2ApM8zmIgFlfAQC8+reCrbUl7IcsR4uhKzBs1jYAQMNa5rC2qogWQ1fg+MW7GNjdDgAw/EsHHI+8g7sPkhX2fujTwISV5CYxMRGRERfwzaDBAIC+Lq54EB+H/x48QMaLDABAxosMaGlp4crly4iJuYF+/b9SZMgqie1cdtjWZYdtLT+1q1ZEckoGou8mAgBOXYqFlYUxmtWrgokD22GGbzBycvMAAAnJaQCAnLx8aGtqQCKRQF9HC9k5ebCsaIivujTB79tOKey9KBXJy7lYS/PBAmsBJqwkN/FxcbCsXBkaGgVj+yQSCapZVYd13bowNDBEy+ZNYWxkjA4dO+F/P0zC4qW/Kzhi1cR2Ljts67LDtpaff+Mew9RYD581rg4A+KJtAxjp66BhbXOYmxrgy3Y2OL7GE8fXeKJfZ1sAwK37jxEWeQdnArxQq0oFbAmOwqJxPTHN5yDy8vIV+XboE8FZAkghVvn5S/++4vdl+LK3M/JyczFsyEBkZWXBc4wXOnTspMAIywe2c9lhW5cdtnXJpKZnYeCMzZjj2RX6ulo4dy0O1+8mAAA0NdSho62Jz0evRnVLE4T6eSAmNglX/n2En/yP4Cf/IwCAXm1tEJ+YgtiHT+E3zQVG+toIOnoVf4VcUeRbUyhOEiBfTFhJbqpZWeHRw4fIzc2FhoYGhBCIj7sPK6vq0m1iY2MRfHA//tl3ECOHD4P7yNGwa26P9m0/Q+SlawqMXnWwncsO27rssK3l63jkXXSNXAsA0NJUx71/piL8yn08z8jCluAoAMD9R89w5nIs7G2q4cq/j6SvNdTTxoSBbfHlxED8MLQ9TkTdxZbgSzi3wRt7T0QjMztXEW9J8ZixypVSdgno0KEDJkyYINdjzJ49G82aNZPrMT515ubmaGbXHFs2/QkA2LUzCFWrVkMda2vpNt9PGo9Fi3+Dmpoa0jPSIZFICv6enq6osFUO27nssK3LDttaviwrGkr/PtWtI8Iib+POg2RsP3wZXR3rAQAqGOrCoWE1XC2SrALA3DHdMD/gKF5k5UBfRxNCAEIIaKqrQ0tTvUzfB306FFphdXNzw4YNG15bfvbsWdjY2CggIiptK1f5YZS7Gxb9Mh9GhkbwWxsgXbd1y2Y0adIUDRs1AgB8/8MUeHmOQnZONqZOm6mokFUS27nssK3LDttafmaO7Iw2TWtCQ10NZ6/eh+eCXQCAH1cHw2+6K0a7OAIAlvx5Ahei46Wva2VbHbraGjh6/jYAYPXOs9g4ewC+G/Q5NgdHITU9q+zfjJKQ1xRUnNaqgEQIIRR1cDc3NyQkJCAgIEBmuZmZGdTV5fsrbfbs2di9ezeioqLkehx5S01NhbGxMRKepMDIyEjR4RAR0VtUaD9d0SF8EkRuFrLOLUFKStl8LxZ+D0fdToChYekf7/nzVDSrY1Fm70dZKbxLgLa2NiwtLWUenTt3lnYJuHHjBvT09LB582bpa7Zv3w5dXV1cv34dAPDs2TOMHDkSZmZmMDIyQqdOnXDp0iWZ4yxcuBAWFhYwNDSEu7s7MjMzPzhGNzc3ODs7Y/78+bCwsICJiQnmzJmD3Nxc/PDDDzA1NUW1atVeS7z/97//oV69etDT00Pt2rUxc+ZM5OTkyGzz888/w9zcHIaGhhg5ciSmTJnCrgpEREQqRh5TWkmntiLFJ6zv06BBAyxevBhjx47F/fv3ER8fD09PT/zyyy9o2LAhAKB///5ITEzEgQMHEBERgebNm6Nz585ITi6YyHj79u2YPXs25s+fjwsXLqBy5cpYtWpVseI4evQo/vvvPxw/fhxLly7FrFmz0KtXL1SoUAFnz56Fp6cnPDw8EB//8tKJoaEhAgMDcf36dfz+++/w9/fHb7/9Jl2/adMmzJs3D7/88gsiIiJQvXp1+Pr6vjOOrKwspKamyjyIiIiIyjOFdwn4888/oaOjI13Wo0cPJCUloVmzZli2bJl0ea9evZCamgotLS2oq6vj4MGDkEgkOHnyJL744gskJiZCW/vlreKsra0xefJkjB49Gq1bt4adnR18fHyk6z/77DNkZmZ+UJcANzc3hIaG4s6dO1BTK8jxGzRoAHNzcxw/fhwAkJeXB2NjY6xduxZff/31G/ezePFibN26FRcuXJDG4ODggJUrV0q3adu2LdLS0t4a1+zZs/HTTz+9tpxdAoiIlBu7BJQNRXUJuHxHfl0CmtRmlwCFV1g7duyIqKgo6WP58uVv3G79+vW4fPkyIiMjERgYCMn/18gvXbqEtLQ0VKxYEQYGBtLH3bt3cft2Qafw6OhoODo6yuyvVatWxYqzUaNG0mQVACwsLGBrayt9rq6ujooVKyIxMVG6bNu2bWjTpg0sLS1hYGCAGTNm4P79+9L1MTExaNmypcxxXn3+qqlTpyIlJUX6iIuLK9b7ICIiIlI1Ck9Y9fX1YW1tLX1Urlz5jdtdunQJ6enpSE9Px8OHD6XL09LSULlyZZmkNyoqCjExMfjhhx9KLU5NTU2Z5xKJ5I3L8vML7vhx5swZDBo0CD179sTevXtx8eJFTJ8+HdnZ2SWKQ1tbG0ZGRjIPZTfw6/4IP3MGAHBg/z60bmkPY31tfD9pgsx2vj4rsWjhfAVEWH4Ubev8/HxMHP8tGtavg0YNrOHr87KSz7YuGbaz/BRt29WrfODQzBaO9s1g36wxfFa8LGi8ax3b/c02zf0ajo2sZJaZmejj3p6p2L5gkHTZ4J52eBQ8E+GB3ggP9MbBFe4ftK5H6/pYOdlZ7u9DaUnk+CDVuHFAcnIy3NzcMH36dDx8+BCDBg1CZGQkdHV10bx5czx69AgaGhqoWbPmG19vY2ODs2fPYujQodJl4eHhco359OnTqFGjBqZPf3kJKDY2Vmab+vXr4/z58zJxnT9/Xq5xlbXz587haXIyPvv/ira1dV2s9l+PnUE7kJaWJrOt+6jRaGZrA48xXjA2NlZEuCrt1bbesulP3Ii+jivXbyIlJQWftbBD+w4d0bBRI7Z1CbCd5efVtv1m0GB4jvUCUHDZ1b5ZY7Rp2w7N7OzeuY7t/joHm2qoYKSHs9dkr8qtnOyMA6duoKKxnszy45F38NXUTW/c19vWHTgdgxnunVGnWkXcjn9SesETQQkqrB/C09MTVlZWmDFjBpYuXYq8vDx8//33AAAnJye0atUKzs7OOHToEO7du4fTp09j+vTp0r6i48ePx/r16xEQEICbN29i1qxZuHZNvndBqVu3Lu7fv4+tW7fi9u3bWL58OXbt2iWzzbfffot169Zhw4YNuHXrFn7++WdcvnxZ2t2hPFjn74cBXw+UPq9brx6aNG0qvT94UVpaWnBy6optWza/to7e79W2/mvHNgx3HwV1dXWYmpqiX/8B2L5tCwC2dUmwneXn1bYtmmymp6cjt8gsK+9ax3Z/nXufFth2WHb2nGG97HHvYTJOXb5XasfZefQKhn/pUGr7UyUSOf4hFUhYN27ciP379+OPP/6AhoYG9PX18eeff8Lf3x8HDhyARCLB/v378fnnn2P48OGoV68evv76a8TGxsLCwgIAMGDAAMycOROTJ0+Gvb09YmNjMWbMGLnG3bt3b0ycOBHe3t5o1qwZTp8+jZkzZSezHjRoEKZOnYrvv/8ezZs3x927d+Hm5iYzCE3VHT8eihYtHd+/4f9z/KwVjh0LkWNE5derbR13/z6qV68hfV6jRk3EFelDzbb+OGxn+XnT+WJn0F9o3rQRGljXxPhJ36OZnd0HrWO7y/q8eS2cL1JdrVG5AkY5t8Qsv8Nv3L5VkxoID/TGsdWj4dKx8QevC78ahw4OdUr/DdAnT6FdAgIDA9+4PDQ0VPr3oUOHylwyBwoGJhXtC2poaIjly5e/dcAWAEybNg3Tpk2TWfbLL798dJxFYyx07949meeLFi3CokWLZJa9esvZmTNnyiSyXbp0gXWRWw+qugfx8TD//x8OH8LC0hIPikwNRh+ObV022M7y86a2dXHtBxfXfoi9dw8D+vVFz569UK9+/feuY7vLqmpmjMSnL7th+U1zwcSle5CZnfvatgdOxSAo5CpeZOWgfg0z7P3NDfGJKTh3Le6d6wAgIfk5qpop/9gKeZBAPnOmsr5aQOkrrOVZRkYGli5dimvXruHGjRuYNWsWjhw5gmHDhik6tFKjp6dXrJs0ZGZmQldXV44RlV+vtrVV9eq4f/9lv+nY2Huwql5d+pxt/XHYzvLzrvNFjZo10aKlI/bv3/tB69jusjIyc6CjVTBQ2EhfG43rWOKPOV/jxl/fY4FXD3RuaY39v48AADxJycCLrIIuFjGxSTh45iZa2VZ/7zoA0NHSQGaW7A1yiEoDE1ZAZjqsVx8nTpyQ23GLdmewt7fHnj17EBQUBCcnJ7kds6w1tm2CWzdjPnj7GzeiYdukqRwjKr9ebWsX1/4IWOePvLw8JCcn468d29Cv/wDperb1x2E7y8+rbRv9/3czBICkpCSEhh6FrW2T964D2O6vunr7EepWrwQASE3PQrWe89Cg32I06LcYU30OIOTcv+g5fj0AoEqllxVS8wr66GBfG1E3H753HQA0qGmOK/8+Kou3pHQ4SYB8qcQsAfL2rpsHVK1aVW7H1dXVxZEjR+S2f2XQ16UfDh8KRqfOBUn4saMhGDliGJ6npkIIgV07/8LvK1ah15e9AQCHgw/ix9lzFRmyynq1rQcOHoKIC+fR2KYuJBIJxo2fhMZF5g5mW38ctrP8vNq2Pit+x6lTJ6ClqQUhBLy/nYDOTl3euw5gu79qV+hVdHGsi2MXbr93Ww9XR/RqZ4Oc3HyoSSRYse00wiLvvHcdAHRxrIudx67K7X3Qp0uhd7qikiu8w4ay3ukqLS0NHdu1RujJM9DX13/nttHXr8N7rAdCQuVX1S7P2NZlg+0sP8Vp23dR1nZX5J2u9HW1cGy1Bzp4rEZGpnwu2Vc01sOB5e5o474KObl5cjnGh1DUna6u30uEoRyO9zw1FQ1rmvNOV4oOgMo3AwMDLFryG+7dvfvebePj47BylV8ZRFU+sa3LBttZforTtu/Cdn9d+otsTF6+DzUrV5DbMWpXNcW4X/9WaLJK5RcrrCpO2SusRERUQJEV1k+J4iqsSXKssJp98hVW9mElIiIiKiGJRE7TWnHUFQB2CSAiIiIiJccKKxEREVEJyWsKKhZYC7DCSkRERERKjRVWIiIiohJiH1b5YoWViIiIiJQaK6xEREREJST5/z/y2C+xwkpERERESo4VViIiIqKS4jQBcsUKKxEREREpNVZYiYiIiEqIBVb5YoWViIiIiJQaK6xEREREJcR5WOWLFVYiIiIiUmqssBIRERGVEOdhlS9WWImIiIhIqbHCSkRERFRSnCZArpiwEhEREZUQ81X5YpcAIiIiIlJqrLASERERlRCntZIvVliJiIiISKmxwkpERERUYvKZ1oq9WAuwwkpERERESo0VViIiIqISYh9W+WKFlYiIiIiUGhNWIiIiIlJqTFiJiIiISKmxDysRERFRCbEPq3yxwkpERERESo0VViIiIqISkshpHlb5zO2qelhhJSIiIiKlxgqrihNCAACep6YqOBIiInoXkZul6BA+CSKvoJ0Lvx/LCvuwyhcTVhX3/PlzAIB1LSsFR0JERKQ8nj9/DmNjY0WHQaWECauKq1KlCuLi4mBoaAiJCv0MS01NhZWVFeLi4mBkZKTocMottnPZYVuXHbZ12VDVdhZC4Pnz56hSpUqZHlfy/w957JeYsKo8NTU1VKtWTdFhfDQjIyOVOhGqKrZz2WFblx22ddlQxXZWSGWVGatccdAVERERESk1VliJiIiISojTWskXK6ykENra2pg1axa0tbUVHUq5xnYuO2zrssO2LhtsZ1ImElHW8z4QERERlROpqakwNjbGf0nP5NLXNzU1FVXMTJCSkqJyfYlLEyusRERERKTU2IeViIiIqIQ4SYB8scJKREREREqNFVYiIiKikmKJVa5YYSUiIiIqZ3x8fFCzZk3o6OjA0dER586dU3RIJcKElUgF5efnKzoEolL18OFDJCYmKjoMoo8mkeOf4tq2bRsmTZqEWbNmITIyEk2bNkW3bt1U+t8YE1YiFaSmVvBP98aNGwqOpHzjrH9lIysrC23atMGQIUOQkJCg6HCIVN7SpUsxatQoDB8+HA0bNsTq1auhp6eH9evXKzq0j8aElUoFv9jL3u7du9GtWzekp6crOpRySQgBiaSgsrFu3TosWbJEwRGVX9ra2ti6dSsiIyPh7e3NpFWOXj1X82pN6ZFI5PcojuzsbERERMDJyUm6TE1NDU5OTjhz5kwpv+uyw0FXVGL5+fnSil9qaioyMzNhbm6u4KjKv6ysLADgXWjkoOhn+ty5czhw4ABCQ0Nhbm6OIUOGKDi68icvLw8tW7ZEcHAwOnXqBG9vb6xcuRIWFhaKDq1cKfojbMeOHejRowcMDAxkPu/08VJTU+W631f3r62t/cbz/+PHj5GXl/favx8LCwuVvirHhJVKpOiJbt68eTh48CDu3LmDbt26Ydy4cWjWrJliAywnin7RFOrYsSM0NTURFRUFBwcHaaWEXzwlV9iGU6ZMQUREBLS0tKCmpobp06cjPT0dnp6eCo5Q9T148ACJiYmws7ODuro6AKB58+Y4cuQIOnfuDC8vL/j4+DBpLSVFz9VRUVGYMWMGgoKCEBAQAF1dXSatJaClpQVLS0vUrWUlt2MYGBjAykp2/7NmzcLs2bPldkxlw4SVSqTwBDdz5kysXbsWs2bNgq2tLVxdXZGUlITx48fLXJagj1OYrM6bNw+ZmZmwsLBAhQoVkJ6eLr18yi+b0rVp0yasWrUKBw8eRPPmzRETE4OVK1di6dKlUFNTw+jRoxUdosqKj49Ho0aN8Pz5cwwdOhT6+voYM2YMKlWqBAcHBxw/fhxdunSBl5cXli9fjipVqig6ZJUmhJCeH5YuXYqoqCjk5ORg586dEEJg/fr10NfXZ9L6kXR0dHD37l1kZ2fL7RhvKlq87epapUqVoK6u/lrXmoSEBFhaWsotRnljwkofrfDkFhISgp07d2L79u1o164dwsPD8ezZM0RGRmLGjBlQV1dHx44dFR2uynv+/Dni4+ORmJiIDRs2wNraGgkJCejXrx+GDh0KTU1NODk5QUNDA1988cVrJzcqnuvXr6N58+Zo3bo1AKBp06aYOHEinjx5gh9//BE6OjoYOnSogqNUTbGxsbC1tcXp06ehra2N2NhY9OjRAxKJBF999RU6dOiA3bt3o1OnTrC0tMTkyZNRvXp1RYetsgrPBQsWLMCCBQuwZcsWjB07Fn///TcOHDiAoUOH4o8//oCenh6T1o+ko6MDHR0dRYcBoKDia29vj5CQEDg7OwMo+L4OCQmBt7e3YoMrCUFUTCEhIeLGjRtCCCFyc3PFhQsXhK+vrxBCiODgYGFqair++OMPkZiYKIyMjETPnj3FP//8o8iQVVJ+fv5b1+Xm5oqUlBTh6uoqHBwchKenp2jbtq2wtbUVjo6O73wtvVteXp4QQohVq1YJW1tbcffuXZn1u3btEpqamqJu3bpi7dq1CohQdeXk5AghCj6/x44dE127dhXNmjUTGRkZ4s6dO2L58uWie/fuwszMTLRr105YWFgIiUQivvvuO5Gbm6vg6FVbamqqcHJyEgsWLJAuy8zMFH5+fqJOnTrim2++ERkZGUKIl/8GSHVt3bpVaGtri8DAQHH9+nUxevRoYWJiIh49eqTo0D4aE1YqlocPH4r27dsLOzs7cfPmTSGEEM+fPxcPHz4U6enpwsnJScyePVvk5+eL3Nxc0aJFC6GpqSkmTJig4MhVS9EvjJSUlNdOMoUJ6fjx48XXX38tXZ6eni5dx6T1/fLy8t765RwaGiqqVasmfv75Z5GUlCRdfuLECdGvXz/h7e0tOnfuLO7fv19W4aq0O3fuiClTpojw8HAhREHbh4WFCQcHB9G8eXORnJwshCj4vKekpAg/Pz/x3XffCWtra3H16lVFhl5udOjQQbi5ub22vH///kIikYivv/5apKenCyF4/igPVqxYIapXry60tLREy5Ytpf/2VBXr/lQslpaWmDRpEipXrgw3NzfExMTAwMAAlpaWyMrKwpMnT1C1alVIJBLk5ubCzs4OYWFhWLx4saJDVxmvDmT74osv0Lx5c4wYMQJRUVEAXl7i69atGy5duoRnz54hLy8Penp6kEgkyM/PZ5eAD6CmpiZt602bNmHp0qWYP38+EhIS0L59e0ybNg0LFy7EkiVLcOTIEdy9exfz589HzZo14eLigqNHj+L27dsKfhfK78qVK+jSpQtu376NixcvAiho+3bt2mHp0qXQ0tLC559/jqdPn8LIyAhGRkYYPXo0Fi9ejEuXLqFRo0YKfgeqRbwydZUQAnl5eWjRogX+/fdfREREyExn5eDggF69eiExMRG//PLLG/tLkurx9vZGbGwssrKycPbsWTg6Oio6pJJRcMJMKqToL+69e/eKrl27itatW0srrQkJCaJhw4aid+/e4rfffhNdu3YV9vb20tfxkl7xzJgxQ1haWgpfX19x8uRJYWFhIXr16iUOHz4s3ebMmTNCU1OTVb5iGj16tHBycpI+Hz9+vDAxMRGOjo6iRo0awsLCQmzevFkIIcSaNWtEixYthLGxsahdu7awtbUV2dnZ4vHjx6Jhw4bizJkzinobKiE6OlqYmZmJ//3vf+LZs2evrc/NzRUnTpwQLVu2FE2aNBFPnz4VQgiRlZUlhGClr7iKXjF48OCBePr0qbRN4+LiRJ06dUS3bt1EWFiYyMrKEhkZGaJv375i+fLlwtPTU7Ro0UKkpaUpKHqit2PCSsXytqQ1OjpaCCFEZGSkaNq0qfjss89Et27dRHZ29muvo7cr/LI5cuSIaNiwoTh+/LgQoiAx1dbWFlWqVBGOjo4iJCRECCHE3bt3xdChQ/ljoBiys7NFYGCgqFmzphgwYIBITk4W3bt3FxcvXhQvXrwQQggxbNgwUaVKFbFnzx4hRMHl7MjISHH69GnpZ3nSpEmibt26Kt0nTN5ycnKEu7u7GDlypMw5IDU1VcTGxopz586JzMxMIYQQp0+fFm3atBFWVlZvTGzp/Yomq/PmzROtW7cW9evXF3379hWnTp0SQhR8lm1tbYWdnZ2oX7++aNasmahbt64QQojt27eLevXqicePHyskfqJ3YcJKxfa2pPXatWtCCCGSk5PFs2fPpNsVDrSgt/uYgWz79u2T2QeT1g+XkZEhtm/fLmrUqCFatmwp2rdvL5KSkmS+8Pv37y/q1q372o+tkydPigEDBghzc3Nx8eLFMo5ctWRmZgpHR0cxe/Zs6bJ9+/aJkSNHCmNjY6Guri569OghLl++LIQo+KHWpUsXcfv2bUWFXC5Mnz5dmJmZiW3btomdO3eKTp06iSpVqohjx44JIYR49OiR2L59u5g1a5ZYvny59Bzt7u4uunXrJu3HSqRMmLDSR3k1ae3WrZto166duHLlisx2HG36fh87kG3cuHEKjly1vDoYLSMjQ2zbtk00bdpUmJubS7+kC/8bHR0tTE1NxenTp2X2c//+fTF69GgOBPpAbm5uonPnzuL48ePip59+ErVr1xZDhgwRf/zxhzhz5oyoVKmS+O6774QQBeeLwpHq9HEOHz4s7OzspJ/b/fv3C0NDQ2Fvby9MTU1FWFiYEEL2HB4ZGSkmTpwoKlSoIC5duqSQuIneh4Ou6J3edp9piUQi7dj/xRdfYPz48cjIyMDKlStltuN8fu/3sQPZli5dqujQVUpKSgqAggEoQgjo6uqiV69emDZtGgBgwIABAAA9PT0AwIsXL6CnpwctLS3pPoQQsLKywqpVqzgQ6C0ePHiAoKAgLF26FFlZWXBxcQEA9O/fH6tWrcKPP/6IOXPmYPDgwfjss8/Qu3dvREVFITs7G2pqatDV1VXwO1Bt5ubm6Nq1K1q1aoWDBw9i2LBhWLRoEQIDA2FiYoKvvvoKISEh0kFVQgicPXsWx48fR2hoKJo0aaLgd0D0ZhIhXhlOSJ+8w4cP4+bNm/Dy8gKAd04kLYqMJj1z5gwcHR2ZpBZD0fbbt28fli9fjrS0NAQGBqJu3bpITExEx44dYW1tjY4dO+LAgQN48uQJzp8/D4lEgry8POltLentNm/ejLlz5yIgIACfffaZ9MeWRCJBZmYm9uzZA29vb9jZ2WHq1KlQU1PDggUL8PjxY5w5c4Zt/IGuXr2KoUOHokGDBrCyssLcuXOhpaWFhIQEpKamwtTUFBUrVpRun5ubi4EDB6J69epYtGgRzx3F9LZzc3JyMkxMTODs7AxbW1vMmzcPANCzZ09cu3YNDRs2xIEDB2TOP0+fPkWFChXKNH6iYlFQZZeU1PPnz8WIESNEgwYNxJo1a6TL33Vp/9U+fhxgVTwcyCZfBw4cEKampqJevXqiRYsW0lH9+fn50jZ88eKF2L59u7CyshISiUSMHTtWeHl5Sdua/YPfLzo6WlSoUEFMmzZNZt7at8nOzhbTp08XVatWFTExMWUQYflS9Jx85coVERkZKbP+4cOHwsrKSvj7+wshhHj69Kno37+/OHDggMy5g+cRUhWssNJroqOj4ePjg9OnT8PDwwMeHh4A3v5rXhT5lR4fHw9LS0toaPCuv8Uh3lJp9ff3R8OGDfH06VOoqanByMhI2jWAbfx+ycnJ8PT0hKWlJTp37oyNGzfi7t27WLVqlbTSKv7/PuuFldYxY8bA3d0dv/zyCwCwrT9ARkYGvvnmG1SsWBHr16+XLhdvmc9z69atOHz4MPbv34/9+/fDzs6uLMMtVyZPnowtW7YgOTkZHTt2xJQpU9CmTRtIJBJ8/fXXuHLlCsaOHYu//voL2dnZOH78ONTV1XkLVlI5/LTSa2xsbDB27Fg4OjrCz88Pfn5+AAr6o77ap7XoF9Lvv/+OPn36IDk5ucxjVnWv9gkeN24cDA0N4enpiatXr6JChQowNjaW3hSACdSHMTU1xZAhQ9CrVy/06dMH48ePR82aNTF27FiEh4dDIpFI215HRwc9evTA9u3bMX/+fOk+2Nbv9+LFC9y6dQudOnWSWV60n2Sha9euISQkBHl5eQgNDWWyWkxF2/LYsWPYt28f1q5di/379yM+Ph7Tpk3DwYMHAQATJ05E48aN4efnByMjI4SGhjJZJdWlmMIuKZO///5brF+/Xjp6tFB0dLTw8PAQTZs2lU6xJMTLS1FFLyWtXr1aVKhQQTrZOr3dh3av2L9/v7C3txceHh5lEVa5865brrq4uIhmzZpJuwc8evRIXLhwQWY7dgP4cJcvXxaampoyN7V4VU5OjliyZInIzc0Vjx494uT0H+HVz/SlS5fEjBkzpM8TEhJEq1atRJs2bcSRI0eky5OSkjjNIKk8dgn4xEVERKBFixYAAG1tbbRr1w6VK1eGh4cHGjRoACEEZs6ciUuXLmHIkCHw9PQEIHuZ1M/PD5MnT8b69evh6uqqsPeizDiQrezExsZCS0sLGRkZqFOnjnR50c9sWFgYli9fjnv37mHu3Ln46aefoK6ujtOnTysqbJWTlJSE2NhYSCQS1KtXDxYWFpgxYwamTZv2xq4Ahw4dgp+fHzZu3Ah9fX0FRV0+LF68GGfOnMGNGzfQokULBAYGStclJSXB2dkZGhoamDhxIvr06SP9f8HKKqkyfnI/YXl5ebC3t4ebmxusrKwwceJENG3aFCkpKejXrx9sbW2xcOFCAECtWrWwcuVK+Pv7A3h5mdTf35/J6nukpaVh69atMu33pu4VhYp2D2jVqhXU1NReuzc4vVlAQAB69eqFbt26oW3btvjuu+9w8+ZNAAWf2by8PABA+/btMWHCBFStWhW9evVCTk4OwsLCFBm6Srl+/Tr69u2LGTNmYN68eTA0NMTAgQOxcOFCnD17VtrPGnh5Cfvo0aPQ1dXlPeo/QtF//8uXL8esWbNgZWWFzMxMHD16FGvXrpWuNzMzw+7du/Hff//h0KFDMu3NZJVUmsJqu6RQwcHBYt68edKR6C4uLsLR0VH88ccfQoiC7gBbtmwRvXv3Fs2bNxcSiURIJBLRp08f6T42bNggJBKJ2LlzpyLegkq5fv268PLyEnZ2dmL16tXS5W+7bF20a0BcXBwv432AnTt3CmNjY7F161YRHh4udu/eLbS0tESPHj1kLlUXtvnTp09FvXr1hKOjo7R92c7vd/XqVWFiYiKmTZsmYmNjpW129uxZ4eDgIIyNjcWhQ4ekN2CIi4sTU6ZMEWZmZuL69euKDF3lhYWFiUmTJong4GAhhBCPHz8Wzs7Oon379iIgIEBm26dPn7JbC5UrTFg/QevXrxdVq1YVY8aMkbmLj6urq6hfv77YtGmTzF1/cnJyRFBQkFi5cqXMF/rt27el91qn97t27Zrw9PR8b9JaNFldtmyZaN68uUhISCizOFXVyJEjxffffy+EeNn/dODAgUJHR0f07t1b5g4+L168EIMHDxY2NjbSqauYrL7fkydPRNu2bd96l7XDhw+LTp06CYlEIlq0aCFatGghWrduLWrVqvXatEtUPAcPHhSNGjUS1atXl7klcHx8vOjbt69o3769CAwMfO11TFqpvGDC+onZsmWL0NPTE9u2bRMpKSlCCNmE6ZtvvhH16tUTGzdufOugiJycHJ4E34MD2cpWVlaWaNGihRg/frwQ4mXyOXnyZOHt7S1MTU2Ft7e3zGsOHz7MymoxXbt2TdSpU0eEhYXJnDeKfm6Tk5OFv7+/8PDwEIMHDxZr164Vd+/eVUC05cv9+/fFmDFjhImJiZg8ebLMugcPHghXV1dhY2Mj9u3bp6AIieSLCesnJDExUXTo0EGsXLlSZvnz58/FqVOnpJfrRo8eLerXry/+/PNPaaWVPtyFCxekXSh0dHREly5dxNChQ8WpU6fEkydPxOPHj8WYMWNE69atZZLWoknT6tWrhZGRkfjrr78U8RZU0ty5c0W1atXE8ePHRV5enti+fbuQSCTi3r174p9//hEVK1YUd+7cee11/PH14TZt2iQ0NDSkCWrRpLXw7+np6dKuRlQ6Ctv70aNHwtvbWzg4OIhFixbJbBMXFyemTp3KzzOVW+yB/YlJTExE1apVpc99fX0xfPhwtG3bFh06dMCXX34JPz8/tGnTBuPHj8eJEycUGK3q4UA2xenduzc6dOiA9u3bw97eHoMHD8b69etRo0YNWFhYIC8vDxkZGa+9jrdd/XA1a9aEhoYGdu7cCUB2EE/h39etW4dx48YhKytLITGWR4UDMS0sLDB16lS0bNkSQUFBWLx4sXSbatWqYf78+VBXV5cOLiQqTzgj9icmNTUV+/btg5GREVatWoWbN2+ibdu2CA4ORkpKCiZNmoQVK1Zg3bp1sLS0hJOTk6JDVhmHDh3ChQsX4OLiIk02jx49Cm9vb/z666+4ceMGoqKisGXLFsTHx+PixYsACu5sNWrUKADAxo0b4eHhgaCgIPTt21eRb0flNGnSBMuWLcPAgQORkZGBevXqwdbWFkDBlFZ169aFgYGBgqNUbTVq1ICRkRE2btwIBwcH1KhRA4DsVGyxsbGwt7eHlpaWIkNVSe+adqowaa1SpQqmT5+O+fPnY9euXXj+/Dl++uknmW35I4zKJQVXeKmMHTlyRBgbG4vatWuLpk2bipCQEPH48WMhREHfs2bNmolp06bJvIaXmN6PA9kUq/Az+uLFC5nlOTk5Ii0tTXTp0kV0796d900vBUFBQUJbW1sMGTJEXLt2Tbo8PT1dTJ06VdSoUUPExMQoMELV88MPP4izZ88KIcR7P6OF6x88eCAGDRokRo0axc81fRJ444BPUFJSEtLS0lCrVi2Z5U+fPkWfPn0wePBgjB49+q33ASdZW7duhbu7OwICAtC9e3cYGRnJVEoGDhyIiIgIzJgxAy4uLm+cND03NxcSiYSVkY9Q+DndunUr5syZgwsXLkBXVxdCCGzfvh3+/v5ISkpCREQENDU1OXl6CeXn58Pf3x/e3t6wtrZGq1atoKOjgwcPHiA8PBwHDx7k7VaL4cqVK/D09EROTg7WrFmDZs2avffcW7j+8ePHMDU1lc7rzM81lWf8dH+CzMzMXktWk5KSMGTIEGRnZ8Pd3R0AmKx+gKSkJPj5+WHRokX46quvYGRkBADIyMjA6dOnER0djc2bN6NDhw6YN28edu/e/cZ+lBoaGkxW3+NNv63z8/MhkUiwa9cueHh4wMPDA3p6epBIJFBTU4O9vT06duyIyMhIaGpqIjc3l1/qJaSmpgYPDw+cOnUKjRs3xsWLF3H16lXY2Njg5MmTTFaLydbWFnPnzoWlpSVGjhyJixcvytw85E0kEgny8vJQqVIlJqv0yWCF9RP3+PFjrF27FidPnkRiYiJOnToFTU1N5OXlMYH6AElJSdJk1NnZGUDBQLajR48iKCgIZmZmaNmyJfbs2QN3d3f8/fff2LRpE7p166bYwFVM0S/kJ0+e4MWLF6hWrRoAICEhAa6urhgyZAg8PDykr3m1SsXPdOljm5ZMTk4ONDU1AQB//fUX1q1bh+TkZKxfvx6NGjV6a6W16PJjx46hdu3a0v7EROUVf5J94uLj43Hq1ClYW1vj9OnT0ioUv4Q+XOFAtqNHj6Jfv37w9fWFmZkZgoOD4ePjg0uXLkkHsnl4eHAgWzEVTVbnzp2LHj16wMHBAc7OzggPD4eFhQW2bt0qk6wCr18h4Ge69BWt6rH2UTxCCGmyOm/ePGzatAmPHj3C+fPnMXz4cERFRb2x0lo0WfX19UXnzp2RlJRU5vETlTVWWAnPnj2DsbGx9DITv9iLJyQkBK6urqhYsSIMDQ2xdOlSNG3aFBUrVsTTp0/RqVMn9OzZE/PmzZO+hu1cfD/++CPWrl2L+fPnw9HRET179oSVlRUmT56MHj16QF1dnf2uSeWsXLkSU6dOxe7du2FtbY2QkBBs2rQJqampWLt2LZo2bSr9XBf9fPv5+WHq1KlYs2YN+vXrp+B3QSR/nNaKYGJiAqDglzuTqOLr3Lkzbt269caBbABgaGj42vQ/bOcPU9heJ06cwO7du6X9gU+dOoWEhARIJBJMmTIFEokE3bt3Z7uSSsnLy8PZs2cxcOBAdO7cGQAwYsQIWFhYYMaMGfDw8MD69evRsGFD5ObmSudq9vPz41zN9MlhlwCSYmXq43EgW+k6fPgwwsPDIZFIkJ+fDxMTE3z77bfo0KEDjhw5gj59+sDX1xcxMTF48uQJfv31V+zYsQP5+fmKDp3og6mrq8PQ0BC3bt2SudHCF198gR49euDcuXPo2bMnYmJipMnqqlWrMG3aNCar9MlhwkpUyh4/foyFCxdi+PDhSExMxIkTJ3j3mWJITEzEb7/9huHDh+P8+fNQU1NDvXr10Lt3b2RlZeG3336Dp6cnhgwZAg0NDdSvXx/nz59HWFgYR0qT0nrbjykHBwfExcUhODgYmZmZ0uUNGjRAjx49MHr0aFhbWwMArl69Cm9vb6xevZrJKn1yeHYnKmUcyFYy5ubmmDBhAho3bgwPDw+Eh4dDW1sbFhYWyM7OxuPHj2FmZiadzqdOnToICwuDj4+PokMneqOiAwd3794Nf39/LFu2DImJiRgxYgTs7OwwadIk/PXXX4iNjcWzZ8+wc+dO2NvbY+rUqVBXV0d+fj4aN26MW7duoX///gp+R0Rlj4OuiOSAA9mK7/Dhw7hx4wa+/fZbAAWD2Xx8fHDv3j2sXr0aLVu2xPPnz9GlSxdoa2ujS5cuOHbsGJ48eYLIyEioqamxrUmpTZ48GZs2bULLli1x/fp16OjoYM6cOejTpw8GDBiA6OhoxMXFoXLlyhBC4MqVK9DQ0IAQAkIIXkGgTxoHXRHJAQeyFU9aWhq2bt2K06dPQ0tLCx4eHtJBKD4+PvD09ISPjw9atWqFHTt2YODAgQgJCYGBgQEOHjworbayrUlZ/fnnn9i8eTP27duHZs2aYceOHRgwYIB02qpt27YhIiICN2/ehEQiQf/+/aVdidTV1dn/nT55rLASkVKIjo6Gj48PTp8+jVGjRmHMmDEACiqtK1euRGxsLFasWIE2bdogIyMDQgjpXa2KjqAmUkZz587FnTt3EBAQgK1bt8LT0xMLFizAmDFjkJqaioyMDFhaWsq8hlcMiF7i9QUiUgo2NjYYO3YsHB0d4e/vD19fXwAF04Z5e3ujZs2amDBhAsLCwqCnpwd9fX3p3JRMVkmZFK0DFf49Pj4eZmZmuHjxIkaNGiVNVoUQ+OOPP7Bt2zZkZ2fL7IfJKtFLTFiJSCH++ecfBAQE4Pjx49JlDRs2xPjx49GyZUv4+flJB1IVJq16enrYsGGDzH54qZSUTeFncvbs2diyZQsAwNXVFatWrYK9vT3WrFkjvYLw4sUL7NmzB/fv34eWlpbCYiZSdixLEFGZi4iIgLOzMwBAW1sb7dq1Q+XKleHh4YEGDRpg3rx5mDlzJjZv3gwA8PLyQqdOnWBsbAw7OzsFRk70YfLy8nDq1Cno6OgAAOzt7eHt7Y2NGzciOzsbKSkpuH//PiZPnozExETs3btXwRETKTf2YSWiMlXYL2/EiBEICQnBoEGDkJOTg1u3buHcuXOQSCQYOHAg0tPTkZqaiqioKHh7e8PT01O6j6LTBBEp2ttG8Q8YMAAZGRnYs2cPAODatWsIDAzEypUrUaFCBZiZmaFixYoIDg6GpqYm+6wSvQMTViIqM4cOHcKFCxfg4uKCBg0awNXVFQ8ePIC3tzcGDx6MGzduICoqClu2bEF8fDwuXrwIAOjduzd2796t2OCJPsClS5egqamJhg0b4tdff8W5c+ewY8cO6W2Gc3Nzcfv2bdy7dw+VKlWCnZ0d1NTUOHCQ6D2YsBJRmQgICMDMmTPRu3dvDBkyBK1atQIA9OvXD1evXsWPP/4IZ2dn6OnpISMjA1paWvjnn3/w8OFDeHh4SOejZJ9VUhZjxoxBt27dpN1b9u3bB2dnZxgZGaF+/fq4f/8+njx5gjVr1sDS0hJt2rRBXl4eDA0NZfbDKwZE78eElYjkbuvWrXB3d0dAQAC6d+8OIyMjmS/pgQMHIiIiAjNmzICLiwv09fVf2wcrUKQsCn84DRw4UNrPulB0dDTy8/Nx/vx53Lp1CwsWLEDNmjUBADk5OUhLS8PChQvh4eGhgMiJVBfP/kQkV0lJSfDz88OiRYvw1VdfSZdnZGTg8uXLqFChAjZv3gwPDw/MmzcPampq6Nu3L/T09GT2w2SVlIVEIsGGDRtw8uRJAMCGDRuQlpYGLy8v2NjYAAAaNWqEFy9eIDw8HKNHj0bPnj1x9uxZPHz4EN98840iwydSSfwGICK5S0xMRNWqVaXPfX19cfToUQQFBcHMzAwtW7bEnj174O7ujvHjx6NSpUro1q2bAiMmejs/Pz+MHz8egYGBAAruYpWWlgYdHR24u7sDKLgioKmpidjYWMTGxsLQ0BCdO3eWdmnhFQOi4uG/FiKSu9TUVOzbtw9GRkZYtWoVbt68ibZt2yI4OBgpKSmYNGkSVqxYgXXr1sHS0hJOTk6KDpnojfz9/TFu3Dhs27ZN2nd1x44dGDx4MIKCgiCRSDBixAhpMtqmTRs8evQIgOycwUxWiYqH/2KISK7MzMwQGBgIV1dXHD16FIaGhli2bBmaNm2KihUr4unTp6hYsaL0S33evHkAeFtKUj6hoaHw8PDA7NmzpckqAMyZMwc1atTAw4cPERAQAAAYMWIEgIJ5hm/cuKGIcInKFSasRCR3nTt3xq1bt5CWloZatWq9tt7Q0BA1atQA8HJAC5NVUjZVq1ZF27ZtERERgQsXLsDBwQGurq64cuUKoqKikJGRAU9PT2zYsAFCCLi7u2Py5Mlv/MwTUfFwlgAiUpikpCQMHz4cjx8/xqlTp5ikktK7desWxo0bB3V1daSkpCAjIwNBQUHSmQAePXqEcePG4fLly1i2bBm6d+8OgFNXEZUUE1YiKnOPHz/G2rVrcfLkSSQmJuLUqVO80w+pjFu3bmHs2LE4f/48/P390b9/fwAF01Zpamriv//+g4+PD+bMmcPPM1EpYcJKRGUuKioKM2fORJ06dbB48WJoaGhw1DSplNu3b8PLywtqamqYNm0a2rZtC+Bl0lqIP8KISgcTViJSiGfPnsHY2BgSiYRf6qSSCrsHAMCMGTPQpk0bBUdEVH4xYSUiheLtVkmV3bp1CxMnTkRCQgLWrVuHJk2aKDokonKJPcCJSKGYrJIqq1u3Ln799Vd8/vnnaNy4saLDISq3WGElIiIqJZwNgEg+mLASERERkVLjz0AiIiIiUmpMWImIiIhIqTFhJSIiIiKlxoSViIiIiJQaE1YiIiIiUmpMWImIPoKbmxucnZ2lzzt06IAJEyaUeRyhoaGQSCR49uxZmR+biKisMGElonLFzc0NEokEEokEWlpasLa2xpw5c5CbmyvX4+7cuRNz5879oG2ZZBIRFY+GogMgIipt3bt3R0BAALKysrB//354eXlBU1MTU6dOldkuOzsbWlpapXJMU1PTUtkPERG9jhVWIip3tLW1YWlpiRo1amDMmDFwcnLCP//8I72MP2/ePFSpUgX169cHAMTFxeGrr76CiYkJTE1N0adPH9y7d0+6v7y8PEyaNAkmJiaoWLEiJk+ejFfvufJql4CsrCz873//g5WVFbS1tWFtbY1169bh3r176NixIwCgQoUKkEgkcHNzA1Bwl6QFCxagVq1a0NXVRdOmTfHXX3/JHGf//v2oV68edHV10bFjR5k4iYjKKyasRFTu6erqIjs7GwAQEhKCmJgYHD58GHv37kVOTg66desGQ0NDnDhxAqdOnYKBgQG6d+8ufc2SJUsQGBiI9evX4+TJk0hOTsauXbveecyhQ4diy5YtWL58OaKjo+Hn5wcDAwNYWVkhKCgIABATE4OHDx/i999/BwAsWLAAGzduxOrVq3Ht2jVMnDgRgwcPRlhYGICCxNrFxQVffvkloqKiMHLkSEyZMkVezUZEpDTYJYCIyi0hBEJCQhAcHIxvv/0WSUlJ0NfXx9q1a6VdAf7880/k5+dj7dq1kEgkAICAgACYmJggNDQUXbt2xbJlyzB16lS4uLgAAFavXo3g4OC3HvfmzZvYvn07Dh8+DCcnJwBA7dq1pesLuw+Ym5vDxMQEQEFFdv78+Thy5AhatWolfc3Jkyfh5+eH9u3bw9fXF3Xq1MGSJUsAAPXr18eVK1fwyy+/lGKrEREpHyasRFTu7N27FwYGBsjJyUF+fj4GDhyI2bNnw8vLC7a2tjL9Vi9duoR///0XhoaGMvvIzMzE7du3kZKSgocPH8LR0VG6TkNDAw4ODq91CygUFRUFdXV1tG/f/oNj/vfff5GRkYEuXbrILM/OzoadnR0AIDo6WiYOANLkloioPGPCSkTlTseOHeHr6wstLS1UqVIFGhovT3X6+voy26alpcHe3h6bNm16bT9mZmYfdXxdXd1ivyYtLQ0AsG/fPlStWlVmnba29kfFQURUXjBhJaJyR19fH9bW1h+0bfPmzbFt2zaYm5vDyMjojdtUrlwZZ8+exeeffw4AyM3NRUREBJo3b/7G7W1tbZGfn4+wsDBpl4CiCiu8eXl50mUNGzaEtrY27t+//9bKrI2NDf755x+ZZeHh4e9/k0REKo6DrojokzZo0CBUqlQJffr0wYkTJ3D37l2EhoZi3LhxiI+PBwCMHz8eCxcuxO7du3Hjxg2MHTv2nXOo1qxZE8OGDcOIESOwe/du6T63b98OAKhRowYkEgn27t2LpKQkpKWlwdDQEN9//z0mTpyIDRs24Pbt24iMjMSKFSuwYcMGAICnpydu3bqFH374ATExMdi8eTMCAwPl3URERArHhJWIPml6eno4fvw4qlevDhcXF9jY2MDd3R2ZmZnSiut3332HIUOGYNiwYWjVqhUMDQ3Rt2/fd+7X19cX/fr1w9ixY9GgQQOMGjUK6enpAICqVavip59+wpQpU2BhYQFvb28AwNy5czFz5kwsWLAANjY26N69O/bt24datWoBAKpXr46goCDs3r0bTZs2xerVqzF//nw5tg4RkXKQiLeNGiAiIiIiUgKssBIRERGRUmPCSkRERERKjQkrERERESk1JqxEREREpNSYsBIRERGRUmPCSkRERERKjQkrERERESk1JqxEREREpNSYsBIRERGRUmPCSkRERERKjQkrERERESk1JqxEREREpNT+D+stUsoztkQPAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "execution_count": 5 }, { "cell_type": "markdown", "id": "61a7a764", "metadata": {}, "source": [ "Each column shows the **purity** of a predicted class: the fraction of objects classified\n", "as that class which truly belong to it. The diagonal entry equals precision; off-diagonal\n", "entries are contamination from other classes.\n", "\n", "The results are pretty good, especially taking into account that ATCAT was trained on a simulated dataset for a different survey." ] }, { "cell_type": "markdown", "id": "809bc09c", "metadata": {}, "source": "## Next steps\n\n- [Similarity search](similarity_search.ipynb) — nearest-neighbour retrieval with embeddings\n- [onnxruntime tips](../onnxruntime.md) — thread control on shared HPC nodes, GPU/CUDA setup\n- [API reference](../api.md)" } ], "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.14.3" } }, "nbformat": 4, "nbformat_minor": 5 }