From a5259fb75692dadec5634269b9f77b712552465d Mon Sep 17 00:00:00 2001 From: zyliang2001 Date: Sun, 3 Mar 2024 18:36:23 -0800 Subject: [PATCH] Add ablation_demo.ipynb --- feature_importance/ablation_demo.ipynb | 141 ++++++++++++++++++++----- 1 file changed, 113 insertions(+), 28 deletions(-) diff --git a/feature_importance/ablation_demo.ipynb b/feature_importance/ablation_demo.ipynb index ceff83e..0e3944a 100644 --- a/feature_importance/ablation_demo.ipynb +++ b/feature_importance/ablation_demo.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 7, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -49,7 +49,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -75,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -93,7 +93,7 @@ " \"\"\"\n", " assert mode in [\"max\", \"min\"]\n", " fi = feature_importance.to_numpy()\n", - " shuffle = generate_random_shuffle(data, seed)\n", + " shuffle = generate_random_shuffle(data.copy(), seed)\n", " if mode == \"max\":\n", " indices = np.argsort(-fi)\n", " else:\n", @@ -107,29 +107,38 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 28, "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "operands could not be broadcast together with shapes (66,13) (134,13) ", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[12], line 26\u001b[0m\n\u001b[0;32m 23\u001b[0m metric_results[\u001b[39m'\u001b[39m\u001b[39mMSE_before_ablation\u001b[39m\u001b[39m'\u001b[39m] \u001b[39m=\u001b[39m mean_squared_error(y_test, y_pred)\n\u001b[0;32m 25\u001b[0m \u001b[39m# Ablation\u001b[39;00m\n\u001b[1;32m---> 26\u001b[0m score \u001b[39m=\u001b[39m rf_plus_model\u001b[39m.\u001b[39;49mget_mdi_plus_scores(X_test, y_test, lfi\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m, lfi_abs \u001b[39m=\u001b[39;49m \u001b[39m\"\u001b[39;49m\u001b[39moutside\u001b[39;49m\u001b[39m\"\u001b[39;49m, sample_split\u001b[39m=\u001b[39;49m\u001b[39mNone\u001b[39;49;00m)\n\u001b[0;32m 27\u001b[0m local_fi_score \u001b[39m=\u001b[39m score[\u001b[39m\"\u001b[39m\u001b[39mlfi\u001b[39m\u001b[39m\"\u001b[39m]\n\u001b[0;32m 28\u001b[0m ascending \u001b[39m=\u001b[39m \u001b[39mTrue\u001b[39;00m \u001b[39m# False for MDI\u001b[39;00m\n", - "File \u001b[1;32md:\\local_MDI+\\imodels-experiments\\feature_importance\\../../imodels\\imodels\\importance\\rf_plus.py:379\u001b[0m, in \u001b[0;36m_RandomForestPlus.get_mdi_plus_scores\u001b[1;34m(self, X, y, scoring_fns, local_scoring_fns, sample_split, mode, version, lfi, lfi_abs)\u001b[0m\n\u001b[0;32m 367\u001b[0m mdi_plus_obj \u001b[39m=\u001b[39m ForestMDIPlus(estimators\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mestimators_,\n\u001b[0;32m 368\u001b[0m transformers\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtransformers_,\n\u001b[0;32m 369\u001b[0m scoring_fns\u001b[39m=\u001b[39mscoring_fns,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 376\u001b[0m normalize\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mnormalize,\n\u001b[0;32m 377\u001b[0m version\u001b[39m=\u001b[39mversion)\n\u001b[0;32m 378\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmdi_plus_ \u001b[39m=\u001b[39m mdi_plus_obj\n\u001b[1;32m--> 379\u001b[0m mdi_plus_scores \u001b[39m=\u001b[39m mdi_plus_obj\u001b[39m.\u001b[39;49mget_scores(X_array, y, lfi\u001b[39m=\u001b[39;49mlfi,\n\u001b[0;32m 380\u001b[0m lfi_abs\u001b[39m=\u001b[39;49mlfi_abs)\n\u001b[0;32m 381\u001b[0m \u001b[39mif\u001b[39;00m lfi \u001b[39mand\u001b[39;00m local_scoring_fns:\n\u001b[0;32m 382\u001b[0m mdi_plus_lfi \u001b[39m=\u001b[39m mdi_plus_scores[\u001b[39m\"\u001b[39m\u001b[39mlfi\u001b[39m\u001b[39m\"\u001b[39m]\n", - "File \u001b[1;32md:\\local_MDI+\\imodels-experiments\\feature_importance\\../../imodels\\imodels\\importance\\mdi_plus.py:126\u001b[0m, in \u001b[0;36mForestMDIPlus.get_scores\u001b[1;34m(self, X, y, lfi, lfi_abs)\u001b[0m\n\u001b[0;32m 124\u001b[0m \u001b[39m# print(\"IN 'get_scores' METHOD WITHIN THE FOREST MDI PLUS OBJECT\")\u001b[39;00m\n\u001b[0;32m 125\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlfi_abs \u001b[39m=\u001b[39m lfi_abs\n\u001b[1;32m--> 126\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_fit_importance_scores(X, y)\n\u001b[0;32m 127\u001b[0m \u001b[39mif\u001b[39;00m lfi:\n\u001b[0;32m 128\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlocal_scoring_fns:\n", - "File \u001b[1;32md:\\local_MDI+\\imodels-experiments\\feature_importance\\../../imodels\\imodels\\importance\\mdi_plus.py:223\u001b[0m, in \u001b[0;36mForestMDIPlus._fit_importance_scores\u001b[1;34m(self, X, y)\u001b[0m\n\u001b[0;32m 208\u001b[0m \u001b[39mfor\u001b[39;00m estimator, transformer, tree_random_state \u001b[39min\u001b[39;00m \\\n\u001b[0;32m 209\u001b[0m \u001b[39mzip\u001b[39m(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mestimators, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtransformers, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtree_random_states):\n\u001b[0;32m 210\u001b[0m tree_mdi_plus \u001b[39m=\u001b[39m TreeMDIPlus(estimator\u001b[39m=\u001b[39mestimator,\n\u001b[0;32m 211\u001b[0m transformer\u001b[39m=\u001b[39mtransformer,\n\u001b[0;32m 212\u001b[0m scoring_fns\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mscoring_fns,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 221\u001b[0m num_iters\u001b[39m=\u001b[39mnum_iters,\n\u001b[0;32m 222\u001b[0m lfi_abs\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlfi_abs)\n\u001b[1;32m--> 223\u001b[0m scores \u001b[39m=\u001b[39m tree_mdi_plus\u001b[39m.\u001b[39;49mget_scores(X, y)\n\u001b[0;32m 224\u001b[0m lfi_matrix_lst\u001b[39m.\u001b[39mappend(tree_mdi_plus\u001b[39m.\u001b[39mlfi_matrix)\n\u001b[0;32m 225\u001b[0m \u001b[39mif\u001b[39;00m scores \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n", - "File \u001b[1;32md:\\local_MDI+\\imodels-experiments\\feature_importance\\../../imodels\\imodels\\importance\\mdi_plus.py:383\u001b[0m, in \u001b[0;36mTreeMDIPlus.get_scores\u001b[1;34m(self, X, y)\u001b[0m\n\u001b[0;32m 366\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 367\u001b[0m \u001b[39mObtain the MDI+ feature importances for a single tree.\u001b[39;00m\n\u001b[0;32m 368\u001b[0m \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 380\u001b[0m \u001b[39m The MDI+ feature importances.\u001b[39;00m\n\u001b[0;32m 381\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 382\u001b[0m \u001b[39m# print(\"IN 'get_scores' METHOD WITHIN THE TREE MDI PLUS OBJECT\")\u001b[39;00m\n\u001b[1;32m--> 383\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_fit_importance_scores(X, y)\n\u001b[0;32m 384\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlocal_scoring_fns:\n\u001b[0;32m 385\u001b[0m \u001b[39mreturn\u001b[39;00m {\u001b[39m\"\u001b[39m\u001b[39mglobal\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mfeature_importances_,\n\u001b[0;32m 386\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mlocal\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mfeature_importances_local_}\n", - "File \u001b[1;32md:\\local_MDI+\\imodels-experiments\\feature_importance\\../../imodels\\imodels\\importance\\mdi_plus.py:436\u001b[0m, in \u001b[0;36mTreeMDIPlus._fit_importance_scores\u001b[1;34m(self, X, y)\u001b[0m\n\u001b[0;32m 432\u001b[0m \u001b[39mif\u001b[39;00m train_blocked_data\u001b[39m.\u001b[39mget_all_data()\u001b[39m.\u001b[39mshape[\u001b[39m1\u001b[39m] \u001b[39m!=\u001b[39m \u001b[39m0\u001b[39m:\n\u001b[0;32m 433\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mhasattr\u001b[39m(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mestimator, \u001b[39m\"\u001b[39m\u001b[39mpredict_full\u001b[39m\u001b[39m\"\u001b[39m) \u001b[39mand\u001b[39;00m \\\n\u001b[0;32m 434\u001b[0m \u001b[39mhasattr\u001b[39m(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mestimator, \u001b[39m\"\u001b[39m\u001b[39mpredict_partial\u001b[39m\u001b[39m\"\u001b[39m):\n\u001b[0;32m 435\u001b[0m \u001b[39m# print(\"IN IF STATEMENT IN LINE 389\")\u001b[39;00m\n\u001b[1;32m--> 436\u001b[0m full_preds \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mestimator\u001b[39m.\u001b[39;49mpredict_full(test_blocked_data)\n\u001b[0;32m 437\u001b[0m \u001b[39m# print(\"IN STATEMENT LINE 391\")\u001b[39;00m\n\u001b[0;32m 438\u001b[0m partial_preds \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mestimator\u001b[39m.\u001b[39mpredict_partial(test_blocked_data, mode\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmode, zero_values\u001b[39m=\u001b[39mzero_values)\n", - "File \u001b[1;32md:\\local_MDI+\\imodels-experiments\\feature_importance\\../../imodels\\imodels\\importance\\ppms.py:308\u001b[0m, in \u001b[0;36m_GlmPPM.predict_full\u001b[1;34m(self, blocked_data)\u001b[0m\n\u001b[0;32m 306\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mpredict_full\u001b[39m(\u001b[39mself\u001b[39m, blocked_data):\n\u001b[0;32m 307\u001b[0m \u001b[39m# print(\"IN 'predict_full' method of _GlmPPM\")\u001b[39;00m\n\u001b[1;32m--> 308\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mpredict_loo(blocked_data\u001b[39m.\u001b[39;49mget_all_data())\n", - "File \u001b[1;32md:\\local_MDI+\\imodels-experiments\\feature_importance\\../../imodels\\imodels\\importance\\ppms.py:296\u001b[0m, in \u001b[0;36m_GlmPPM.predict_loo\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 294\u001b[0m \u001b[39mfor\u001b[39;00m j \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_n_outputs):\n\u001b[0;32m 295\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mloo:\n\u001b[1;32m--> 296\u001b[0m preds_j \u001b[39m=\u001b[39m _get_preds(X, \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mloo_coefficients_[j], \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49minv_link_fn)\n\u001b[0;32m 297\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m 298\u001b[0m preds_j \u001b[39m=\u001b[39m _get_preds(X, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcoefficients_[j], \u001b[39mself\u001b[39m\u001b[39m.\u001b[39minv_link_fn)\n", - "File \u001b[1;32md:\\local_MDI+\\imodels-experiments\\feature_importance\\../../imodels\\imodels\\importance\\ppms.py:626\u001b[0m, in \u001b[0;36m_get_preds\u001b[1;34m(data_block, coefs, inv_link_fn, intercept)\u001b[0m\n\u001b[0;32m 624\u001b[0m intercept \u001b[39m=\u001b[39m coefs[:, \u001b[39m-\u001b[39m\u001b[39m1\u001b[39m]\n\u001b[0;32m 625\u001b[0m coefs \u001b[39m=\u001b[39m coefs[:, :\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m]\n\u001b[1;32m--> 626\u001b[0m lin_preds \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39msum(data_block \u001b[39m*\u001b[39;49m coefs, axis\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m) \u001b[39m+\u001b[39m intercept\n\u001b[0;32m 627\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m 628\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(coefs) \u001b[39m==\u001b[39m (data_block\u001b[39m.\u001b[39mshape[\u001b[39m1\u001b[39m] \u001b[39m+\u001b[39m \u001b[39m1\u001b[39m):\n", - "\u001b[1;31mValueError\u001b[0m: operands could not be broadcast together with shapes (66,13) (134,13) " - ] - } - ], + "outputs": [], + "source": [ + "def tree_shap_local(X, y, fit):\n", + " \"\"\"\n", + " Compute average treeshap value across observations.\n", + " Larger absolute values indicate more important features.\n", + " :param X: design matrix\n", + " :param y: response\n", + " :param fit: fitted model of interest (tree-based)\n", + " :return: dataframe of shape: (n_samples, n_features)\n", + " \"\"\"\n", + " explainer = shap.TreeExplainer(fit)\n", + " shap_values = explainer.shap_values(X, check_additivity=False)\n", + " if sklearn.base.is_classifier(fit):\n", + " # Shape values are returned as a list of arrays, one for each class\n", + " def add_abs(a, b):\n", + " return abs(a) + abs(b)\n", + " results = reduce(add_abs, shap_values)\n", + " else:\n", + " results = abs(shap_values)\n", + " result_table = pd.DataFrame(results, columns=[f'Feature_{i}' for i in range(X.shape[1])])\n", + "\n", + " return result_table" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], "source": [ "# Define the data\n", "n = 200\n", @@ -145,6 +154,7 @@ "\n", "#Define the model and fit\n", "rf_regressor = RandomForestRegressor(n_estimators=100, min_samples_leaf=5, max_features=0.33, random_state=331)\n", + "rf_regressor.fit(X_train, y_train)\n", "rf_plus_model = RandomForestPlusRegressor(rf_model=rf_regressor, include_raw=False)\n", "rf_plus_model.fit(X_train, y_train)\n", "\n", @@ -152,7 +162,7 @@ "# initialize the metric results\n", "metric_results = {}\n", "\n", - "y_pred = rf_plus_model.predict(X_test)\n", + "y_pred = rf_regressor.predict(X_test)\n", "metric_results['MSE_before_ablation'] = mean_squared_error(y_test, y_pred)\n", "\n", "# Ablation\n", @@ -162,13 +172,88 @@ "imp_vals = copy.deepcopy(local_fi_score)\n", "imp_vals[imp_vals == float(\"-inf\")] = -sys.maxsize - 1\n", "imp_vals[imp_vals == float(\"inf\")] = sys.maxsize - 1\n", + "seed = 0#np.random.randint(0, 100000)\n", + "for i in range(X_test.shape[1]):\n", + " if ascending:\n", + " ablation_X_test = ablation(X_test, imp_vals, \"max\", i+1, seed)\n", + " else:\n", + " ablation_X_test = ablation(X_test, imp_vals, \"min\", i+1, seed)\n", + " metric_results[f'MSE_after_ablation_{i+1}'] = mean_squared_error(y_test, rf_regressor.predict(ablation_X_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot metric_results\n", + "fig, ax = plt.subplots()\n", + "ax.plot(list(metric_results.keys()), list(metric_results.values()))\n", + "ax.set_xlabel('Number of features ablated')\n", + "ax.set_ylabel('MSE')\n", + "ax.set_title('MSE after ablation')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "metric_results = {}\n", + "y_pred = rf_regressor.predict(X_test)\n", + "metric_results['MSE_before_ablation'] = mean_squared_error(y_test, y_pred)\n", + "local_fi_score = tree_shap_local(X_test, y_test, rf_regressor)\n", + "ascending = True # False for MDI\n", + "imp_vals = copy.deepcopy(local_fi_score)\n", + "imp_vals[imp_vals == float(\"-inf\")] = -sys.maxsize - 1\n", + "imp_vals[imp_vals == float(\"inf\")] = sys.maxsize - 1\n", "seed = np.random.randint(0, 100000)\n", "for i in range(X_test.shape[1]):\n", " if ascending:\n", " ablation_X_test = ablation(X_test, imp_vals, \"max\", i+1, seed)\n", " else:\n", " ablation_X_test = ablation(X_test, imp_vals, \"min\", i+1, seed)\n", - " metric_results[f'MSE_after_ablation_{i+1}'] = mean_squared_error(y_test, est.predict(ablation_X_test))" + " metric_results[f'MSE_after_ablation_{i+1}'] = mean_squared_error(y_test, rf_regressor.predict(ablation_X_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnQAAAHFCAYAAAB7F2SCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB4mElEQVR4nO3dd3xN9+MG8Ofu7MiOSGRIxEjsGTVaJKq2ltqzKFXUKFVbrbZoKW1RURT1ra1q1KhVYiQiVswYiRiRPe/9/P7wy6krscPJTZ7363Vfbe4999znnlz3PDnjcxRCCAEiIiIiMllKuQMQERER0athoSMiIiIycSx0RERERCaOhY6IiIjIxLHQEREREZk4FjoiIiIiE8dCR0RERGTiWOiIiIiITBwLHREREZGJY6EjMkGhoaFQKBRQKBTYu3dvnseFEPD19YVCoUCjRo2MHrt37x7GjBmDChUqwNLSEra2tihXrhy6deuGU6dO5fsa+d3ye92XtWbNGlSsWBHm5uZQKBQIDw/HggULEBoaWmCvUZB69uwJKyur55rWy8sLPXv2fKnXmTZtGjZs2JDn/r179xb474CITJta7gBE9PKsra2xZMmSPKVt3759uHTpEqytrY3uT0lJQZ06dZCSkoKRI0eicuXKSE9Px4ULF7Bu3TqEh4ejUqVKRs9ZunQpypUrl+e1K1SoUCDv4c6dO+jWrRuaNWuGBQsWQKfToWzZsujatSscHR1fugwVBdOmTcP777+PNm3aGN1frVo1HD58uMB+B0Rk+ljoiExYx44dsXLlSvzwww+wsbGR7l+yZAnq1q2LpKQko+nXrl2LixcvYvfu3Xj77beNHvvss89gMBjyvEZAQABq1Kjxet4AgAsXLiA7Oxtdu3ZFw4YNX9vrAA+3XGZkZMDc3Py1vs7rZmNjgzp16sgdg4gKEe5yJTJhnTp1AgCsWrVKui8xMRF//PEHevfunWf6e/fuAQBKliyZ7/yUyoL7Sti5cydat24Nd3d3mJmZwdfXF/3798fdu3elaXr27Im33noLwMNymruL2MvLC1FRUdi3b5+0i9fLy0t6XlJSEkaMGAFvb29otVqUKlUKQ4cORWpqqlEGhUKBTz75BD/++CPKly8PnU6HZcuWPTHzmjVrEBwcjJIlS8Lc3Bzly5fH6NGj88w3V1RUFBo3bgxLS0s4OTnhk08+QVpa2lOXS0ZGBoYPH44qVarA1tYW9vb2qFu3LjZu3Jgne2pqKpYtWyYtg9wtsU/a5bpp0ybUrVsXFhYWsLa2RtOmTXH48GGjaSZOnAiFQoGoqCh06tQJtra2cHFxQe/evZGYmPjU7ERUeHELHZEJs7Gxwfvvv49ffvkF/fv3B/Cw3CmVSnTs2BFz5841mr5u3boAgO7du+OLL75A/fr14eDg8NTX0Ov1yMnJMbpPoVBApVI99XmXLl1C3bp10bdvX9ja2uLq1auYPXs23nrrLURGRkKj0WDcuHGoVasWBg0ahGnTpuHtt9+GjY0NMjMz8f7778PW1hYLFiwAAOh0OgBAWloaGjZsiBs3buCLL75ApUqVEBUVhfHjxyMyMhK7du2CQqGQcmzYsAH79+/H+PHj4erqCmdn5ydmjo6ORvPmzTF06FBYWlri3LlzmDlzJo4ePYrdu3cbTZudnY3mzZujf//+GD16NA4dOoSpU6fi2rVr2Lx58xNfIzMzE/fv38eIESNQqlQpZGVlYdeuXWjXrh2WLl2K7t27AwAOHz6Md955B2+//TbGjRsHAEZbYR/322+/oUuXLggODsaqVauQmZmJWbNmoVGjRvj777+l4pyrffv26NixI/r06YPIyEiMGTMGAPDLL7888TWIqBATRGRyli5dKgCIsLAwsWfPHgFAnD59WgghRM2aNUXPnj2FEEJUrFhRNGzY0Oi5kydPFlqtVgAQAIS3t7cYMGCAiIiIyPc18rupVKoXymswGER2dra4du2aACA2btwoPZabf+3atUbPyS+7EEJMnz5dKJVKERYWZnT///73PwFA/Pnnn9J9AIStra24f//+C+V9NPO+ffsEAKPl06NHDwFAfPfdd0bP+eqrrwQAceDAAek+T09P0aNHjye+Tk5OjsjOzhZ9+vQRVatWNXrM0tIy3+fmLrM9e/YIIYTQ6/XCzc1NBAYGCr1eL02XnJwsnJ2dRVBQkHTfhAkTBAAxa9Yso3kOHDhQmJmZCYPB8MSsRFR4cZcrkYlr2LAhypQpg19++QWRkZEICwvLd3drrnHjxiEmJkbaqmdlZYUff/wR1atXN9p1m+vXX39FWFiY0e3IkSPPzBUfH48BAwbAw8MDarUaGo0Gnp6eAICzZ8++9PvdsmULAgICUKVKFeTk5Ei3kJCQfHdDvvPOO7Czs3uueV++fBmdO3eGq6srVCoVNBqNdFxffpm7dOli9HPnzp0BAHv27Hnq66xduxb16tWDlZWVtGyWLFny0svl/PnzuHXrFrp162a029zKygrt27fHv//+m2dXcKtWrYx+rlSpEjIyMhAfH/9SGYhIXtzlSmTiFAoFevXqhe+//x4ZGRkoW7Ys6tev/9TnuLi4oFevXujVqxcA4J9//sG7776LIUOGSMfl5SpfvvwLnxRhMBgQHByMW7duYdy4cQgMDISlpSUMBgPq1KmD9PT0F3uTj7h9+zYuXrwIjUaT7+OPHqMHPPl4wcelpKSgfv36MDMzw9SpU1G2bFlYWFjg+vXraNeuXZ7MarU6z+5qV1dXAP8dq5ifdevWoUOHDvjggw8wcuRIuLq6Qq1WY+HChS+9u/Npx0a6ubnBYDAgISEBFhYW0v2PZ8/dpf0qvxsikg8LHVER0LNnT4wfPx4//vgjvvrqqxd+foMGDRAcHIwNGzYgPj7+qceZPY/Tp08jIiICoaGh6NGjh3T/xYsXX2m+AODo6Ahzc/Mnlh9HR0ejnx89nu5pdu/ejVu3bmHv3r1GZ9s+ePAg3+lzcnJw7949o2IUFxcHIG9ZetSKFSvg7e2NNWvWGGXLzMx8rpz5yX292NjYPI/dunULSqXyubdSEpFp4i5XoiKgVKlSGDlyJFq2bGlUoB53+/btfIcm0ev1iI6OhoWFBUqUKPHKeXKLSu5Wn1w//fTTc89Dp9Plu7WoRYsWuHTpEhwcHFCjRo08t0fPhn3dmVeuXGn082+//QYAecYFfPx1tFqtUZmLi4vLc5Zrbpbn2WLm7++PUqVK4bfffoMQQro/NTUVf/zxh3TmKxEVXdxCR1REzJgx45nTLF++HD/99BM6d+6MmjVrwtbWFjdu3MDixYulM0W1Wq3Rc06fPp3nLFcAKFOmDJycnPJ9nXLlyqFMmTIYPXo0hBCwt7fH5s2bsXPnzud+P4GBgVi9ejXWrFkDHx8fmJmZITAwEEOHDsUff/yBBg0aYNiwYahUqRIMBgNiYmKwY8cODB8+HLVr137u18kVFBQEOzs7DBgwABMmTIBGo8HKlSsRERGR7/RarRbffvstUlJSULNmTeks13fffTfPGaWPatGiBdatW4eBAwfi/fffx/Xr1zFlyhSULFkS0dHReZbB3r17sXnzZpQsWRLW1tbw9/fPM0+lUolZs2ahS5cuaNGiBfr374/MzEx8/fXXePDgwXN9NojItLHQERUj7733HuLi4vDnn39i4cKFSEhIgLW1NSpVqoTly5eja9eueZ6Te5zd4xYtWoS+ffvm+5hGo8HmzZsxZMgQ9O/fH2q1Gk2aNMGuXbtQunTp58o6adIkxMbG4qOPPkJycjI8PT1x9epVWFpaYv/+/ZgxYwZ+/vlnXLlyBebm5ihdujSaNGny0lvoHBwcsHXrVgwfPhxdu3aFpaUlWrdujTVr1qBatWr5vsctW7bg008/xdSpU2Fubo6PPvoIX3/99VNfp1evXoiPj8ePP/6IX375BT4+Phg9ejRu3LiBSZMmGU373XffYdCgQfjwww+l4VqedLmvzp07w9LSEtOnT0fHjh2hUqlQp04d7NmzB0FBQS+1TIjIdCjEo9vniYiIiMjk8Bg6IiIiIhPHQkdERERk4ljoiIiIiEwcCx0RERGRiWOhIyIiIjJxLHREREREJo7j0OHhdSdv3boFa2vr575MEBEREclLCIHk5GS4ublBqSze26hY6PDwWoceHh5yxyAiIqKXcP36dbi7u8sdQ1YsdACsra0BPPxA2NjYyJyGiIiInkdSUhI8PDyk9XhxxkKH/y7KbWNjw0JHRERkYni4FE+KICIiIjJ5LHREREREJo6FjoiIiMjEsdARERERmTgWOiIiIiITx0JHREREZOJY6IiIiIhMHAsdERERkYljoSMiIiIycSx0RERERCaOhY6IiIjIxLHQEREREZk4FjoiIiJ6bVIzc/DLgSsQQsgdpUhTyx2AiIiIiqaL8cn4eMUJRMenIMdgQL8GZeSOVGSx0BEREVGB2xxxC5//cQppWXo4W+tQtbSd3JGKNBY6IiIiKjBZOQZM+/MsQg9dBQDU9XHA952qwslaJ2+wIo6FjoiIiApEbGI6Bq48gZMxDwAAAxuVwWdNy0Kt4iH7rxsLHREREb2y/dF3MGR1OO6nZsHGTI3ZHaqgSQUXuWMVGyx0RERE9NIMBoH5ey5izq4LEAKo6GaDhV2qo7SDhdzRihUWOiIiInopCalZGPZ7OPaevwMA6FTLAxNaVoSZRiVzsuKHhY6IiIheWMT1Bxi48gRuPkiHTq3E1DYB+KCGh9yxii0WOiIiInpuQgisOBKDKZvPIEtvgJeDBRZ0qY4KbjZyRyvWWOiIiIjouaRl5WDs+tNYf/ImACC4ggu+6VAZNmYamZMRCx0RERE906U7Kfh4xXFcuJ0ClVKBz5v546P6PlAoFHJHI7DQERER0TP8GRmLkWsjkJqlh5O1DvM7VUVtHwe5Y9EjWOiIiIgoX9l6A6b/eQ6/HLwCAKjlbY/5navC2dpM5mT0OBY6IiIiyiMuMQODfjuB49cSAAD9G/pgZLA/r/pQSLHQERERkZGDF+/i01UncS81C9Zmanz7QWUEV3SVOxY9BQsdERERAXh41YcFey9i9s4LMAigfEkb/Ni1GjwdLOWORs/AQkdERER4kJaFz36PwO5z8QCADjXcMbl1AK/6YCJY6IiIiIq5yBuJ+HjlcdxIeHjVhymtA9ChJq/6YEpY6IiIiIopIQRWHb2OiZuikKU3oLS9BRZ0qYaAUrZyR6MXxEJHRERUDKVn6TF2QyTWnXh41Ycm5V3wbYfKsDXnVR9MkaznHufk5ODLL7+Et7c3zM3N4ePjg8mTJ8NgMEjTCCEwceJEuLm5wdzcHI0aNUJUVJTRfDIzMzF48GA4OjrC0tISrVq1wo0bN9702yEiIjIJl++koO2Cg1h34iaUCuDzZuXwc7fqLHMmTNZCN3PmTPz444+YP38+zp49i1mzZuHrr7/GvHnzpGlmzZqF2bNnY/78+QgLC4OrqyuaNm2K5ORkaZqhQ4di/fr1WL16NQ4cOICUlBS0aNECer1ejrdFRERUaP11Ohat5h/EubhkOFrpsLJvHXzcqAyUSl7Cy5QphBBCrhdv0aIFXFxcsGTJEum+9u3bw8LCAsuXL4cQAm5ubhg6dCg+//xzAA+3xrm4uGDmzJno378/EhMT4eTkhOXLl6Njx44AgFu3bsHDwwN//vknQkJCnpkjKSkJtra2SExMhI2Nzet5s0RERDLK1hswc9s5LD7w/1d98Pr/qz7YmO5VH7j+/o+sW+jeeust/P3337hw4QIAICIiAgcOHEDz5s0BAFeuXEFcXByCg4Ol5+h0OjRs2BCHDh0CABw/fhzZ2dlG07i5uSEgIECahoiIqDi7nZSBzov+lcpcvwY+WPlRbZMuc2RM1pMiPv/8cyQmJqJcuXJQqVTQ6/X46quv0KlTJwBAXFwcAMDFxcXoeS4uLrh27Zo0jVarhZ2dXZ5pcp//uMzMTGRmZko/JyUlFdh7IiIiKkwOXXp41Ye7KVmw1qnx9QeV0SyAV30oamQtdGvWrMGKFSvw22+/oWLFiggPD8fQoUPh5uaGHj16SNMpFMb79YUQee573NOmmT59OiZNmvTqb4CIiKiQMhgEfvznEr7Zfh4GAZRztcbCrtXh7cirPhRFsu5yHTlyJEaPHo0PP/wQgYGB6NatG4YNG4bp06cDAFxdH/4F8fiWtvj4eGmrnaurK7KyspCQkPDEaR43ZswYJCYmSrfr168X9FsjIiKSTWJaNvotP4ZZfz0sc+2ruWP9wHosc0WYrIUuLS0NSqVxBJVKJQ1b4u3tDVdXV+zcuVN6PCsrC/v27UNQUBAAoHr16tBoNEbTxMbG4vTp09I0j9PpdLCxsTG6ERERFQWnbyaixfz92HU2Hlq1EtPbBeKbDyrBXMtLeBVlsu5ybdmyJb766iuULl0aFStWxMmTJzF79mz07t0bwMNdrUOHDsW0adPg5+cHPz8/TJs2DRYWFujcuTMAwNbWFn369MHw4cPh4OAAe3t7jBgxAoGBgWjSpImcb4+IiOiNEUJgTdh1jN8UhawcA9ztzPFj1+q86kMxIWuhmzdvHsaNG4eBAwciPj4ebm5u6N+/P8aPHy9NM2rUKKSnp2PgwIFISEhA7dq1sWPHDlhbW0vTzJkzB2q1Gh06dEB6ejoaN26M0NBQqFT8a4SIiIq+9Cw9xm08jf8dfziofuNyzpjdoQpsLThQcHEh6zh0hQXHsSEiIlN19W4qBqw4jnNxyVAqgOHB/vi4YfEYKJjr7//wWq5EREQmantUHEb8HoHkzBw4Wmnx/YdVEeTrKHcskgELHRERkYnJ0Rswa/t5/PzPZQBADU87zO9cDa62HCi4uGKhIyIiMiHxSRn4ZNVJHL1yHwDQ9y1vfP5uOWhUsg5cQTJjoSMiIjIBQgjsOR+PUf+LxN2UTFjp1Jj1fiU0DywpdzQqBFjoiIiICrkjl+/hmx3nEXb14SD6/i7WWNi1GnycrGRORoUFCx0REVEhFXH9Ab7ZcR77o+8CALRqJXrU9cSwpmVhoeUqnP7DTwMREVEhcz4uGd/uOI8dZ24DANRKBTrW9MDgd/x44gPli4WOiIiokLh6NxVzdl3ApohbEAJQKoA2VUthaOOyKO1gIXc8KsRY6IiIiGR260E65u2Oxu/HbkBveDjef/NAV3zWtCx8na2f8WwiFjoiIiLZ3EnOxIK9F7Hy3xhk6Q0AgLf9nTA82J/XYKUXwkJHRET0hiWmZeOnfy5h6cGrSM/WAwBqe9tjZIg/anjZy5yOTBELHRER0RuSkpmDpQeu4Of9l5GckQMAqOxuixEh/njL1xEKRdG//iq9Hix0REREr1lGth4r/r2GBXsv4X5qFgCgnKs1PmtaFk0ruLDI0StjoSMiInpNsvUG/H7sOub9fRFxSRkAAG9HSwxt4oeWldygVLLIUcFgoSMiIipgeoPAxvCbmLsrGjH30wAAbrZmGNLED+2ruUPN665SAWOhIyIiKiBCCPx1Og6zd15AdHwKAMDRSodBb5dB59qloVOrZE5IRRULHRER0SsSQmDvhTv4dsd5nL6ZBACwNdegf0Mf9Azy4mW66LXjJ4yIiOgV/Hv5Hr7dcR5hVxMAAJZaFfq85Y0+9X1ga66ROR0VFyx0RERELyHi+gN8s+M89kffBQDo1Ep0r+uJAQ3LwMFKJ3M6Km5Y6IiIiF7A+bhkfLvjPHacuQ0AUCsV+LCWBz552w+utmYyp6PiioWOiIjoOVy9m4o5uy5gU8QtCAEoFUDbqu4Y2sQPHvYWcsejYo6FjoiI6CluPUjH939HY+3xG9AbBACgeaArPmtaFr7O1jKnI3qIhY6IiCgfd5Iz8cOei/jtSAyy9AYAwNv+Thge7I+AUrYypyMyxkJHRET0iAdpWfjpn8sIPXgV6dl6AEAdH3uMCPZHDS97mdMR5Y+FjoiICEBKZg6WHriCn/dfRnJGDgCgskcJjAz2Rz1fB15vlQo1FjoiIirWMrL1WPHvNSzYewn3U7MAAOVcrTE82B9NyjuzyJFJYKEjIqJiKSvHgN+PXce83dG4nZQJAPB2tMTQJn5oWckNSiWLHJkOFjoiIip2Dl26iy83nMblO6kAADdbMwxp4of21dyhVillTkf04ljoiIio2LiTnIlpf57F+pM3AQCOVlp88rYvOtUuDZ1aJXM6opfHQkdEREWewSDw29EYzPrrHJIycqBQAN3qeGJ4sD+vt0pFAgsdEREVaVG3EjF2/WmEX38AAAgoZYOv2gSiskcJWXMRFSQWOiIiKpJSMnMwe8cFhB66AoMArHRqjAgui251vaDiCQ9UxLDQERFRkSKEwLbTcZi8+QzikjIAAO9VKonxLSrAxcZM5nRErwcLHRERFRkx99IwftNp7D1/BwDg6WCBya0D0LCsk8zJiF4vFjoiIjJ5mTl6LPrnMubtvojMHAM0KgU+blgGA9/2hZmGZ69S0cdCR0REJu3wpXv4ckMkLv3/mHJBZRwwpU0AyjhZyZyM6M1hoSMiIpN0N+XhmHLrTvw3ptyX71VA6ypuvFwXFTssdEREZFIMBoHVYdcx869zSEzPhkIBdKldGiODy8HWgmPKUfHEQkdERCbjzK0kjN0QiZMxDwAAFUra4Ku2Aaha2k7eYEQyY6EjIqJCLyUzB3N3XsDSQ1ehNwhYalUYHuyP7nU9ee1VIrDQERFRISaEwPao25i0OQqxiQ/HlGse6IrxLSrC1ZZjyhHlYqEjIqJC6fr9NEzYFIXd5+IBAB725pjcOgBv+zvLnIyo8GGhIyKiQiUrx4BF+y9j3u5oZGQ/HFOuf4My+OQdjilH9CQsdEREVGgcuXwPYzecxsX4FABAHR97TG0TAF9na5mTERVuLHRERCS7eymZmL7tHP53/AYAwMFSi7HvlUfbqqU4phzRc2ChIyIi2RgMAr8fu47p2x6OKQcAnWuXxqgQf5Sw0Mqcjsh0sNAREZEszsUlYez60zh+LQEAUP7/x5SrxjHliF4YCx0REb1RqZk5+O7vaCw5cAV6g4CFVoXPmpZFzyAvjilH9JJY6IiI6I3ZERWHiZuicOv/x5RrVtEV41tWgFsJc5mTEZk2FjoiInrtbiSkYeKmKOw6+3BMOXc7c0xuXRHvlHORORlR0cBCR0REr0223oAlB67gu13RSM/WQ6NS4KP6Phj8jh/MtRxTjqigsNAREdFrcfTKfXy5IRIXbj8cU66Wtz2+ahMAPxeOKUdU0FjoiIioQN1PzcL0P89i7f+PKWdvqcUXzcujfTWOKUf0urDQERFRgTAYBP53/AambTuLB2kPx5TrVMsDo0LKwc6SY8oRvU4sdERE9Mou3E7G2PWRCLv6cEy5cq7W+KptAKp72sucjKh4kHXAHy8vLygUijy3QYMGAQCEEJg4cSLc3Nxgbm6ORo0aISoqymgemZmZGDx4MBwdHWFpaYlWrVrhxo0bcrwdIqJiaeupWLSafwBhVxNgoVVhbPPy2Dz4LZY5ojdI1kIXFhaG2NhY6bZz504AwAcffAAAmDVrFmbPno358+cjLCwMrq6uaNq0KZKTk6V5DB06FOvXr8fq1atx4MABpKSkoEWLFtDr9bK8JyKi4sJgEJiz8wIG/XYCGdkG1PdzxM7PGuKjBj7QcIBgojdKIYQQcofINXToUGzZsgXR0dEAADc3NwwdOhSff/45gIdb41xcXDBz5kz0798fiYmJcHJywvLly9GxY0cAwK1bt+Dh4YE///wTISEhz/W6SUlJsLW1RWJiImxsbF7PmyMiKkLSs/QYsTYCWyNjAQB93/LGmObloVLypAd6c7j+/k+h+RMqKysLK1asQO/evaFQKHDlyhXExcUhODhYmkan06Fhw4Y4dOgQAOD48ePIzs42msbNzQ0BAQHSNPnJzMxEUlKS0Y2IiJ5PbGI6PvjpELZGxkKjUmBW+0r4skUFljkiGRWaQrdhwwY8ePAAPXv2BADExcUBAFxcjEcRd3FxkR6Li4uDVquFnZ3dE6fJz/Tp02FrayvdPDw8CvCdEBEVXSdjEtBq/kGcvpkEe0stVvatgw41+R1KJLdCU+iWLFmCd999F25ubkb3Pz5mkRDimeMYPWuaMWPGIDExUbpdv3795YMTERUTG07eRMef/8Wd5Ez4u1hj46B6qOXNEx+ICoNCMWzJtWvXsGvXLqxbt066z9XVFcDDrXAlS5aU7o+Pj5e22rm6uiIrKwsJCQlGW+ni4+MRFBT0xNfT6XTQ6XQF/TaIiIokg0Hgmx3nsWDvJQBAk/LOmPthVVjpCsUqhIhQSLbQLV26FM7Oznjvvfek+7y9veHq6iqd+Qo8PM5u3759UlmrXr06NBqN0TSxsbE4ffr0UwsdERE9n9TMHPRfcVwqcx83KoOfutVgmSMqZGT/F2kwGLB06VL06NEDavV/cRQKBYYOHYpp06bBz88Pfn5+mDZtGiwsLNC5c2cAgK2tLfr06YPhw4fDwcEB9vb2GDFiBAIDA9GkSRO53hIRUZFwIyENfZcdw7m4ZGhVSsxoH4h21dzljkVE+ZC90O3atQsxMTHo3bt3nsdGjRqF9PR0DBw4EAkJCahduzZ27NgBa+v/Luw8Z84cqNVqdOjQAenp6WjcuDFCQ0OhUqne5NsgIipSjl29j/7Lj+NeahYcrXT4uXt1VCtt9+wnEpEsCtU4dHLhODZERP9Ze+w6vlgfiWy9QIWSNljUowZKlTCXOxZRHlx//0f2LXRERFQ46A0CM7adxaL9VwAAzSq6YnbHyrDQclVBVNjxXykRESE5IxufrjqJPefvAAA+fccXQ5uUhZKDBROZBBY6IqJiLuZeGvosC0N0fAp0aiW++aAyWlZ2e/YTiajQYKEjIirGDl+6h4ErjyMhLRsuNjos6l4DldxLyB2LiF4QCx0RUTH125EYjN94GjkGgUrutvi5Ww242prJHYuIXgILHRFRMZOjN2Dq1rMIPXQVANCyshu+fr8SzDQc7onIVLHQEREVI4lp2fhk1Qnsj74LABjetCw+ecf3mdfIJqLCjYWOiKiYuHwnBX2XHcPlu6kw16gwp2NlNAso+ewnElGhx0JHRFQMHIi+i4ErjyMpIwdutmZY1KMGKrrZyh2LiAoICx0RUREmhMDyf69h0uYz0BsEqpYugZ+6VYezNU9+ICpKWOiIiIqobL0BEzdFYeWRGABAu6qlMK1dIE9+ICqCWOiIiIqghNQsDFx5Aocv34NCAXzerBz6N/DhyQ9ERRQLHRFREXMxPhl9lh3DtXtpsNSq8N2HVdGkgovcsYjoNWKhIyIqQvacj8env51EcmYO3O3MsbhHDZRztZE7FhG9Zix0RERFgBACSw5cwbQ/z8IggFpe9ljYtRocrHRyRyOiN4CFjojIxGXlGPDlhkj8fuwGAKBjDQ9MaRMArVopczIielNY6IiITNi9lEx8vOIEjl69D6UCGPteBfSu58WTH4iKGRY6IiITdS4uCX1Cj+Hmg3RY69SY17kqGvk7yx2LiGTAQkdEZIJ2nrmNoatPIjVLD08HCyzpUQO+ztZyxyIimbDQERGZECEEftx3GbO2n4MQQFAZB/zQuRrsLLVyRyMiGbHQERGZiIxsPb5YF4l1J28CALrULo2JrSpCo+LJD0TFHQsdEZEJiE/OQP/lx3Ey5gFUSgUmtqyAbnW95I5FRIUECx0RUSF3+mYiPvr1GGITM2BjpsaCLtXxlp+j3LGIqBBhoSMiKsS2Rcbis98jkJ6th4+TJZb0qAlvR0u5YxFRIcNCR0RUCAkhMG/3RczeeQEAUN/PEfM7V4OtuUbmZERUGLHQEREVMhnZeoxYG4Etp2IBAD2DvPDle+Wh5skPRPQELHRERIXIqRsPMPqPSJyJTYJaqcDk1gHoXLu03LGIqJBjoSMiKgQS07Ixa/s5/HY0BkIAdhYaLOxaHXV8HOSORkQmgIWOiEhGQgj87/gNzNh2DvdSswAAbauWwpjm5eBsbSZzOiIyFSx0REQyOReXhHEbTiPsagIAwM/ZClPaBHCrHBG9MBY6IqI3LCUzB3N3XsDSQ1ehNwiYa1QY2sQPvd/y5lUfiOilsNAREb0hQghsjYzFlC1ncDspEwDwboArxrWoALcS5jKnIyJTxkJHRPQGXL6TgvEbo3Dg4l0AgKeDBSa1qohG/s4yJyOiooCFjojoNUrP0uOHPRfx8z+XkaU3QKtWYmCjMhjQsAzMNCq54xFREcFCR0T0muw6cxsTN0fhRkI6AKCRvxMmtaoITwdeuouIChYLHRFRAbt+Pw2TNp/BrrO3AQButmYY37IiQiq6QKFQyJyOiIoiFjoiogKSmaPH4v1XMG93NDKyDVArFehb3wefNvaFhZZft0T0+vAbhoioAByIvovxG0/j8t1UAEAdH3tMaR0APxdrmZMRUXHAQkdE9ApuJ2VgypYz2HIqFgDgaKXDl++VR+sqbty9SkRvDAsdEdFLyNEbEHroKubuikZKZg6UCqB7XS98FlwWNmYaueMRUTHDQkdE9IKOXb2PLzecxrm4ZABAFY8SmNomAAGlbGVORkTFFQsdEdFzupeSiRnbzmHt8RsAgBIWGoxuVg4danhAqeTuVSKSDwsdEdEz6A0Cq8NiMOuv80hMzwYAfFjTA6OalYO9pVbmdERELHRERE8VeSMRX26IRMSNRABAhZI2mNImANU97WRORkT0HxY6IqJ8JKZl45sd57HiyDUIAVjr1PgsuCy61fGEWqWUOx4RkREWOiKiRwghsO7ETUzfdhZ3U7IAAK2ruGFs8/JwtjGTOR0RUf5Y6IiI/t/5uGSM23gaR6/cBwCUcbLElDYBCCrjKHMyIqKnY6EjomIvNTMH3/0djSUHrkBvEDDXqPBpYz/0ecsbWjV3rxJR4cdCR0TFlhACf0bGYcqWM4hLygAAhFR0wfiWFVGqhLnM6YiInh8LHREVS1fupmL8xtPYH30XAFDa3gKTWlXE2+WcZU5GRPTiWOiIqFjJyNZjwZ6L+HHfZWTpDdCqlBjQqAwGNioDM41K7nhERC+FhY6Iio3d525jwqYoXL+fDgBoUNYJk1pVhLejpczJiIheDQsdERV5NxLSMHnzGew4cxsA4GpjhvEtK+DdAFcoFLxkFxGZPhY6IiqyDAaBRfsvY86uC8jINkCtVKDPW974tLEfLHX8+iOiooPfaERUJGVk6zH89whsjYwFANTytsfUNgEo62ItczIiooIn+wBLN2/eRNeuXeHg4AALCwtUqVIFx48flx4XQmDixIlwc3ODubk5GjVqhKioKKN5ZGZmYvDgwXB0dISlpSVatWqFGzduvOm3QkSFxJ3kTHz487/YGhkLjUqBaW0DsaZfHZY5IiqyZC10CQkJqFevHjQaDbZt24YzZ87g22+/RYkSJaRpZs2ahdmzZ2P+/PkICwuDq6srmjZtiuTkZGmaoUOHYv369Vi9ejUOHDiAlJQUtGjRAnq9XoZ3RURyunA7GW1+OIjw6w9ga67B8j610bl2aR4rR0RFmkIIIeR68dGjR+PgwYPYv39/vo8LIeDm5oahQ4fi888/B/Bwa5yLiwtmzpyJ/v37IzExEU5OTli+fDk6duwIALh16xY8PDzw559/IiQk5Jk5kpKSYGtri8TERNjY2BTcGySiN+qfC3cwaOUJJGfmwMvBAr/0rAkfJyu5YxHRa8L1939k3UK3adMm1KhRAx988AGcnZ1RtWpVLFq0SHr8ypUriIuLQ3BwsHSfTqdDw4YNcejQIQDA8ePHkZ2dbTSNm5sbAgICpGkel5mZiaSkJKMbEZm2lUeuoVdoGJIzc1DLyx7rB9ZjmSOiYkPWQnf58mUsXLgQfn5+2L59OwYMGIBPP/0Uv/76KwAgLi4OAODi4mL0PBcXF+mxuLg4aLVa2NnZPXGax02fPh22trbSzcPDo6DfGhG9IXqDwNQtZzB2/WnoDQLtqpbC8r61YGeplTsaEdEbI+tZrgaDATVq1MC0adMAAFWrVkVUVBQWLlyI7t27S9M9fuyLEOKZx8M8bZoxY8bgs88+k35OSkpiqSMyQWlZORiyOhw7/398ueFNy+KTd3x5vBwRFTsvtIVu1qxZSE9Pl37+559/kJmZKf2cnJyMgQMHPvf8SpYsiQoVKhjdV758ecTExAAAXF1dASDPlrb4+Hhpq52rqyuysrKQkJDwxGkep9PpYGNjY3QjItNyOykDHX46jJ1nbkOrVuK7D6tgcGM/ljkiKpZeqNCNGTPG6OzSFi1a4ObNm9LPaWlp+Omnn557fvXq1cP58+eN7rtw4QI8PT0BAN7e3nB1dcXOnTulx7OysrBv3z4EBQUBAKpXrw6NRmM0TWxsLE6fPi1NQ0RFS9StRLSefxCnbybB3lKLVR/VRusqpeSORUQkmxfa5fr4CbGveoLssGHDEBQUhGnTpqFDhw44evQofv75Z/z8888AHu5qHTp0KKZNmwY/Pz/4+flh2rRpsLCwQOfOnQEAtra26NOnD4YPHw4HBwfY29tjxIgRCAwMRJMmTV4pHxEVPrvP3cYnv51EWpYeZZwssbRnLZR2sJA7FhGRrGQ9hq5mzZpYv349xowZg8mTJ8Pb2xtz585Fly5dpGlGjRqF9PR0DBw4EAkJCahduzZ27NgBa+v/BgidM2cO1Go1OnTogPT0dDRu3BihoaFQqVRyvC0ieg2EEAg9dBVTtpyBQQD1fB2woEt12Jpr5I5GRCS7FxqHTqlUIi4uDs7OzgAAa2trREREwMfHBwBw+/ZtuLm5mdyAvhzHhqhwy9EbMHnLGfx6+BoAoGMND0xtGwCNSvaL3RCRjLj+/s8Lb6FbvHgxrKweju2Uk5OD0NBQODo6AoDR8XVERAUhOSMbg1edxN7zd6BQAKOblUO/Bj48+YGI6BEvtIXOy8vrub5Er1y58kqh3jQ2fKLC6eaDdPQJDcO5uGSYaZSY27EKmgWUlDsWERUSXH//54W20F29evU1xSAiMhZx/QH6LDuGuymZcLLWYXH3GqjsUULuWEREhZKsJ0UQEeXnr9OxGLomHBnZBpRztcaSnjVRqoS53LGIiAqtFzqi+MiRI9i2bZvRfb/++iu8vb3h7OyMfv36GQ00TET0IoQQ+HHfJQxYcQIZ2QY08nfC2gF1WeaIiJ7hhQrdxIkTcerUKennyMhI9OnTB02aNMHo0aOxefNmTJ8+vcBDElHRl603YMy6SMzYdg4A0L2uJxZ3rwFrMw5LQkT0LC+0yzU8PBxTpkyRfl69ejVq166NRYsWAQA8PDwwYcIETJw4sUBDElHRlpiejYErj+PgxXtQKoBxLSqgVz1vuWMREZmMFyp0CQkJRtdH3bdvH5o1ayb9XLNmTVy/fr3g0hFRkRdzLw29Qo/i0p1UWGhVmNepKhqXz/86zERElL8X2uXq4uIiDUmSlZWFEydOoG7dutLjycnJ0Gi4e4SIns/xa/fRdsFBXLqTClcbM6wdUJdljojoJbzQFrpmzZph9OjRmDlzJjZs2AALCwvUr19fevzUqVMoU6ZMgYckoqJnU8QtjFgbgawcAwJK2WBJj5pwsTGTOxYRkUl6oUI3depUtGvXDg0bNoSVlRVCQ0Oh1Wqlx3/55RcEBwcXeEgiKjqEEJi/+yK+3XkBANCkvAu+71QFFlqOokRE9LJe6EoRuRITE2FlZQWVSmV0//3792FtbW1yu1050jTRm5GZo8eYPyKx7uRNAEDft7wxpnl5qJS8jBcRvTiuv//zQn8S9+7d+7mm++WXX14qDBEVXQmpWei/4jiOXrkPlVKBSa0qomsdT7ljEREVCS9U6EJDQ+Hp6YmqVaviJTbsEVExdflOCnqHhuHqvTRY69T4oUs1NCjrJHcsIqIi44UK3YABA7B69WpcvnwZvXv3RteuXWFvb/+6shFREfDv5XsYsOI4HqRlo1QJc/zSsyb8Xa3ljkVEVKS80LAlCxYsQGxsLD7//HNs3rwZHh4e6NChA7Zv384tdkSUxx/Hb6DbkiN4kJaNKh4lsGFQPZY5IqLX4KVOish17do1hIaG4tdff0V2djbOnDkDKyurgsz3RvCgSqKCZTAIzNl1AfN2XwQAvBdYEt92qAwzjeoZzyQien5cf//nlcYJUCgUUCgUEELAYDAUVCYiMmEZ2XqMWBuBLadiAQADG5XBiGB/KHkmKxHRa/NCu1wBIDMzE6tWrULTpk3h7++PyMhIzJ8/HzExMSa5dY6ICs7dlEx0XvQvtpyKhVqpwKz3K2FUs3Isc0REr9kLbaEbOHAgVq9ejdKlS6NXr15YvXo1HBwcXlc2IjIh0beT0XtZGK7fT4etuQYLu1ZDUBlHuWMRERULL3QMnVKpROnSpVG1alUoFE/+i3vdunUFEu5N4T54oldzIPouPl55HMkZOfB0sMAvPWuijBO32BPR68X1939eaAtd9+7dn1rkiKj4WXU0Bl9uOA29QaCmlx1+6lYD9pbaZz+RiIgKzAsPLExEBDw8k3XGX+fw8z+XAQBtq5bCjPaB0Kl5JisR0ZvGq2ET0QtLy8rB0NXh2HHmNgBgWJOy+LSxL7fgExHJhIWOiF7I7aQM9F12DJE3E6FVKfH1B5XQukopuWMRERVrLHRE9NzO3EpCn2VhiE3MgL2lFj93q44aXrz8HxGR3FjoiOi5HIi+i/7LjyE1Sw8fJ0ss7VkTng6WcsciIiKw0BHRc9hy6haGrQlHtl6gjo89fupaA7YWGrljERHR/2OhI6Kn+vXwVUzYFAUhHl6TdXbHyjyTlYiokGGhI6J8CSEwZ1c0vv87GgDQrY4nJraqCBUv40VEVOiw0BFRHnqDwPiNp7HySAwAYGgTPwxp7MdhSYiICikWOiIykpmjx7A14fgzMg4KBTCldQC61vGUOxYRET0FCx0RSZIzstHv1+M4fPketCol5n5YBc0DS8odi4iInoGFjogAAHeSM9Fz6VFE3UqCpVaFRd1rIMjXUe5YRET0HFjoiAgx99LQ7ZcjuHYvDQ6WWoT2qoVAd1u5YxER0XNioSMq5s7cSkKPpUdxJzkT7nbmWN6nNrwdOWAwEZEpYaEjKsaOXL6HvsuOITkzB+VcrfFr71pwtjGTOxYREb0gFjqiYmp7VBwGrzqJrBwDannZY1GPGrA159UfiIhMEQsdUTG0JiwGY9ZFwiCAphVcMK9TVZhpePUHIiJTxUJHVIwIIbBg7yV8vf08AKBDDXdMaxsItUopczIiInoVLHRExYTBIDBl6xksPXgVADCwURmMDPHn1R+IiIoAFjqiYiArx4CR/4vAxvBbAIBxLSqgz1veMqciIqKCwkJHVMSlZubg45Un8M+FO1ArFfjmg8poU7WU3LGIiKgAsdARFWH3U7PQKzQMEdcfwFyjwsKu1dDI31nuWEREVMBY6IiKqJsP0tF9yRFcupOKEhYaLO1ZE1VL28kdi4iIXgMWOqIiKPp2Mrr/chSxiRlwszXDr31qwdfZWu5YRET0mrDQERUxx68loHdoGBLTs+HrbIVfe9eCWwlzuWMREdFrxEJHVITsOR+Pj1ccR0a2AVVLl8AvPWrCzlIrdywiInrNWOiIioj1J29g5NpTyDEINPJ3woIu1WCh5T9xIqLigN/2REXA4v2XMXXrWQBA26qlMOv9StDw6g9ERMUGCx2RCRNCYMZf5/DTvssAgD5veWNs8/JQKnn1ByKi4oSFjshE5egNGLMuEmuP3wAAfN6sHAY09OGlvIiIiiEWOiITlJGtxye/ncSus7ehVAAz2lVCh5oecsciIiKZsNARmZjEtGz0/TUMYVcToFMrMb9zNTSt4CJ3LCIikhELHZEJuZ2Uge5LjuL87WRYm6mxpEdN1PK2lzsWERHJTNbT4CZOnAiFQmF0c3V1lR4XQmDixIlwc3ODubk5GjVqhKioKKN5ZGZmYvDgwXB0dISlpSVatWqFGzduvOm3QvTaXb6TgnYLDuH87WQ4W+vwe/+6LHNERARA5kIHABUrVkRsbKx0i4yMlB6bNWsWZs+ejfnz5yMsLAyurq5o2rQpkpOTpWmGDh2K9evXY/Xq1Thw4ABSUlLQokUL6PV6Od4O0WsReSMRH/x4GDcfpMPb0RJ/fByE8iVt5I5FRESFhOy7XNVqtdFWuVxCCMydOxdjx45Fu3btAADLli2Di4sLfvvtN/Tv3x+JiYlYsmQJli9fjiZNmgAAVqxYAQ8PD+zatQshISFv9L0QvQ4Hou+i//JjSM3SI7CULZb2qglHK53csYiIqBCRfQtddHQ03Nzc4O3tjQ8//BCXLz8cT+vKlSuIi4tDcHCwNK1Op0PDhg1x6NAhAMDx48eRnZ1tNI2bmxsCAgKkafKTmZmJpKQkoxtRYbTl1C30Cj2K1Cw96vk6YFW/OixzRESUh6yFrnbt2vj111+xfft2LFq0CHFxcQgKCsK9e/cQFxcHAHBxMT57z8XFRXosLi4OWq0WdnZ2T5wmP9OnT4etra108/DgcA9U+Px6+CoGrzqJbL3Ae5VK4peeNWGlk32jOhERFUKyrh3effdd6f8DAwNRt25dlClTBsuWLUOdOnUAIM8gqUKIZw6c+qxpxowZg88++0z6OSkpiaWOCg0hBObsisb3f0cDALrV8cTEVhWh4tUfiIjoCWTf5fooS0tLBAYGIjo6Wjqu7vEtbfHx8dJWO1dXV2RlZSEhIeGJ0+RHp9PBxsbG6EZUGOgNAl9uOC2VuaFN/DC5NcscERE9XaEqdJmZmTh79ixKliwJb29vuLq6YufOndLjWVlZ2LdvH4KCggAA1atXh0ajMZomNjYWp0+flqYhMhWZOXoMXnUCK4/EQKEAprYJwNAmZXkpLyIieiZZd7mOGDECLVu2ROnSpREfH4+pU6ciKSkJPXr0gEKhwNChQzFt2jT4+fnBz88P06ZNg4WFBTp37gwAsLW1RZ8+fTB8+HA4ODjA3t4eI0aMQGBgoHTWK5EpSM7IRr9fj+Pw5XvQqpSY+2EVNA8sKXcsIiIyEbIWuhs3bqBTp064e/cunJycUKdOHfz777/w9PQEAIwaNQrp6ekYOHAgEhISULt2bezYsQPW1tbSPObMmQO1Wo0OHTogPT0djRs3RmhoKFQqlVxvi+iF3EnORM+lRxF1KwmWWhUWda+BIF9HuWMREZEJUQghhNwh5JaUlARbW1skJibyeDp6o67fT0O3JUdw9V4aHCy1CO1VC4HutnLHIiIyCVx//4djIBDJ5MytJPRYehR3kjPhbmeO5X1qw9vRUu5YRERkgljoiGQQfv0Bui05guSMHJRztcavvWvB2cZM7lhERGSiWOiI3rCzsUno8ctRJGfkoKaXHRb3qAlbc43csYiIyISx0BG9QZfvpKDbkqNITM9GtdIlENqrFix59QciInpFhWocOqKi7EZCGrouPoK7KZmoUNIGS1nmiIiogLDQEb0B8UkZ6Lr4CG4lZqCMkyWW96nF3axERFRgWOiIXrOE1Cx0W3IUV++lwd3OHCv61oaDlU7uWEREVISw0BG9RskZ2eix9CjO306Gi40Ov/Wtg5K25nLHIiKiIoaFjug1Sc/So0/oMZy6kQh7Sy1W9KmN0g4WcsciIqIiiIWO6DXIzNGj/4rjOHr1Pqx1avzauxb8XKyf/UQiIqKXwEJHVMBy9AYMWRWOfy7cgblGhaW9aiKgFC/nRURErw8LHVEBMhgERv3vFP6KioNWpcSi7jVQw8te7lhERFTEsdARFRAhBCZsisK6kzehUiowv3NVvOXnKHcsIiIqBljoiAqAEAIz/zqP5f9eg0IBzO5QGcEVXeWORURExQQLHVEB+GHPRfy47xIA4Ks2gWhdpZTMiYiIqDhhoSN6RUsPXsE3Oy4AAL58rzw61y4tcyIiIipuWOiIXsHvYdcxafMZAMDQJn7oW99H5kRERFQcsdARvaQtp25h9LpTAIC+b3ljSGM/mRMREVFxxUJH9BL+PnsbQ1eHwyCATrVKY+x75aFQKOSORURExRQLHdELOnTpLj5eeQI5BoHWVdwwtU0AyxwREcmKhY7oBZyISUDfZceQlWNA0wou+OaDylApWeaIiEheLHREzynqViJ6/nIUaVl6vOXriHmdqkKj4j8hIiKSH9dGRM/h0p0UdF9yFEkZOajuaYefu1eHmUYldywiIiIALHREz3T9fhq6Lj6Ce6lZqOhmg1961oSFVi13LCIiIgkLHdFT3E7KQJfFRxCbmAFfZyv82rsWbM01csciIiIywkJH9AT3U7PQdfERxNxPg4e9OVb0qQ0HK53csYiIiPJgoSPKR1JGNrr/cgTR8SlwtTHDb33rwNXWTO5YRERE+WKhI3pMWlYOei8Nw+mbSbC31GJF39rwsLeQOxYREdETsdARPSIzR4/+y4/j2LUEWJup8WvvWvB1tpI7FhER0VOx0BH9v2y9AYN/O4n90XdhoVUhtFctBJSylTsWERHRM7HQEQEwGARGro3AjjO3oVUrsah7DVT3tJM7FhER0XNhoaNiTwiBLzeexobwW1ArFVjQuRrq+TrKHYuIiOi5sdBRsSaEwPRt5/DbkRgoFMDsjlXQpIKL3LGIiIheCAsdFWvf/30RP/9zGQAwo10gWlV2kzkRERHRi2Oho2Jr8f7LmLPrAgBgXIsK6FiztMyJiIiIXg4LHRVLq47GYOrWswCAz5qWRZ+3vGVORERE9PJY6KjY2Rh+E1+sjwQA9G/gg8Hv+MqciIiI6NWw0FGxsvPMbXz2ewSEALrULo3R75aDQqGQOxYREdErYaGjYuNA9F0MWnkCeoNA26qlMKV1AMscEREVCSx0VCwcv3YfH/16DFl6A4IruODr9ytBqWSZIyKiooGFjoq80zcT0XNpGNKz9ajv54h5natCreJHn4iIig6u1ahIuxifjO6/HEVyRg5qetnhp27VoVOr5I5FRERUoFjoqMiKuZeGLouP4H5qFgJL2WJJz5qw0KrljkVERFTgWOioSIpLzECXJf/idlIm/JytsKx3LdiYaeSORURE9Fqw0FGRcy8lE10W/4vr99Ph6WCBlX1rw95SK3csIiKi14aFjoqUxPRsdFtyFJfupKKkrRlW9KkNZxszuWMRERG9Vix0VGSkZuag19KjOBObBEcrLVb0rQ0Pewu5YxEREb12LHRUJGRk6/HRr8dwIuYBbMzU+LV3bZRxspI7FhER0RvBQkcmLyNbj09+O4FDl+7BQqtCaO9aqOBmI3csIiKiN4ZjOJDJEkJgy6lYzNh2DjcfpEOnVmJxjxqoVtpO7mhERERvFAsdmaSTMQmYsuUMTsQ8AAC42pjh6w8qIaiMo7zBiIiIZMBCRyblRkIaZv11HpsibgEAzDUqfNyoDD6q7wNzLa8AQURExRMLHZmElMwcLNx7EYv3X0FmjgEKBfB+NXeMCPGHC4clISKiYo6Fjgo1vUFg7bHr+GbHBdxNyQQA1PGxx5fvVUBAKVuZ0xERERUOLHRUaB2IvoupW8/gXFwyAMDLwQJfNC+PphVcoFAoZE5HRERUeBSaYUumT58OhUKBoUOHSvcJITBx4kS4ubnB3NwcjRo1QlRUlNHzMjMzMXjwYDg6OsLS0hKtWrXCjRs33nB6KkgX41PQJzQMXZccwbm4ZNiYqTGuRQXsGNYQwRVdWeaIiIgeUygKXVhYGH7++WdUqlTJ6P5Zs2Zh9uzZmD9/PsLCwuDq6oqmTZsiOTlZmmbo0KFYv349Vq9ejQMHDiAlJQUtWrSAXq9/02+DXlFCahYmbDyNkLn/4O9z8VArFegZ5IV9I99Gn7e8oVUXio8rERFRoSP7GjIlJQVdunTBokWLYGf33/hhQgjMnTsXY8eORbt27RAQEIBly5YhLS0Nv/32GwAgMTERS5YswbfffosmTZqgatWqWLFiBSIjI7Fr1y653hK9oKwcAxbvv4yGX+/BssPXoDcINCnvgu3DGmBiq4qws9TKHZGIiKhQk73QDRo0CO+99x6aNGlidP+VK1cQFxeH4OBg6T6dToeGDRvi0KFDAIDjx48jOzvbaBo3NzcEBARI0+QnMzMTSUlJRjd684QQ+Ot0HILn7MPUrWeRlJGDcq7WWNm3Nhb3qMFLdxERET0nWU+KWL16NU6cOIGwsLA8j8XFxQEAXFxcjO53cXHBtWvXpGm0Wq3Rlr3caXKfn5/p06dj0qRJrxqfXsHpm4mYsuUMjly5DwBwtNJhZEhZvF/dAyolj5EjIiJ6EbIVuuvXr2PIkCHYsWMHzMyePI7Y4wfACyGeeVD8s6YZM2YMPvvsM+nnpKQkeHh4PGdyehVxiRn4evt5rDt5A0IAOrUSH9X3wYBGZWCl40nXREREL0O2Nejx48cRHx+P6tWrS/fp9Xr8888/mD9/Ps6fPw/g4Va4kiVLStPEx8dLW+1cXV2RlZWFhIQEo6108fHxCAoKeuJr63Q66HS6gn5L9BRpWTn4+Z/L+GnfZaRnPzxhpU0VN4xsVg6lSpjLnI6IiMi0yXYMXePGjREZGYnw8HDpVqNGDXTp0gXh4eHw8fGBq6srdu7cKT0nKysL+/btk8pa9erVodFojKaJjY3F6dOnn1ro6M0xGAT+OH4D73yzD3N3RSM9W4/qnnZYPzAIcz+syjJHRERUAGTbQmdtbY2AgACj+ywtLeHg4CDdP3ToUEybNg1+fn7w8/PDtGnTYGFhgc6dOwMAbG1t0adPHwwfPhwODg6wt7fHiBEjEBgYmOckC3rzjly+hylbz+D0zYcnnbjbmWPMu+XRPJBjyRERERWkQn3Q0qhRo5Ceno6BAwciISEBtWvXxo4dO2BtbS1NM2fOHKjVanTo0AHp6elo3LgxQkNDoVLxQu1yuXYvFdP/PIe/oh6emGKlU+OTd3zRM8gLZhr+XoiIiAqaQggh5A4ht6SkJNja2iIxMRE2NjZyxzFZienZmL87GqGHriJbL6BUAJ1qlcawpmXhaMVjFomIqGBx/f2fQr2FjkxDtt6AVUdjMGfnBSSkZQMAGpR1wpfvlUdZF+tnPJuIiIheFQsdvTQhBPacj8dXW8/i0p1UAICfsxXGvlcejfydZU5HRERUfLDQ0Us5F5eEr7aexf7ouwAAe0sthjUti041PaBWyX4BEiIiomKFhY5eyJ3kTMzeeQFrwmJgEIBWpUSvel4Y9I4vbMw0cscjIiIqlljo6LlkZOux5MAVLNhzEalZDwcGbh7oitHNyqO0g4XM6YiIiIo3Fjp6KiEENp+Kxcxt53DzQToAoJK7Lca1qICaXvYypyMiIiKAhY6e4kRMAqZsOYOTMQ8AACVtzTCqmT9aVy4FpZIDAxMRERUWLHSUx42ENMz66zw2RdwCAFhoVfi4YRn0re8Dcy0HBiYiIipsWOhIYjAI/HLwCmZtP4+sHAMUCuCD6u4YHuwPFxszueMRERHRE7DQEYCHZ6+OWBuBfRfuAADq+Njjy/cqIKCUrczJiIiI6FlY6Aj7LtzB8N8jcDclEzq1EuNbVkDnWqWhUPA4OSIiIlPAQleMZeUY8PX2c1i0/woAoJyrNb7vVJWX6yIiIjIxLHTF1JW7qfh01UlE3kwEAHSv64kvmpeHmYYnPRAREZkaFrpiRgiBP07cxPiNp5GWpUcJCw1mta+E4IquckcjIiKil8RCV4wkZ2Tjyw2nsTH84XAkdXzsMbdjVbja8gxWIiIiU8ZCV0ycjEnAp6tP4vr9dKiUCnzWtCwGNCwDFQcIJiIiMnksdEWcwSDw4z+XMHvHBeQYBNztzPHdh1VR3dNO7mhERERUQFjoirDbSRkYtiYchy7dAwC0qFQS09oFwsZMI3MyIiIiKkgsdEXU32dvY8TaCCSkZcNco8Kk1hXxQXV3ji1HRERUBLHQFTEZ2XrM2HYOoYeuAgAqutng+05VUcbJSt5gRERE9Nqw0BUh0beTMXjVSZyLSwYA9HnLG6Oa+UOn5thyRERERRkLXREghMDqsOuYtDkKGdkGOFhq8U2Hynjb31nuaERERPQGsNCZuMS0bIxedwrbTscBAOr7OeLbDpXhbM2x5YiIiIoLFjoTFnb1PoasOolbiRnQqBQYGeKPvm/5QMmx5YiIiIoVFjoTlKM3YP6ei/j+72gYBODlYIHvO1VFJfcSckcjIiIiGbDQmZibD9IxbHU4jl69DwBoV60UJrcOgJWOv0oiIqLiii3AhGyLjMXnf5xCUkYOrHRqTG0TgDZVS8kdi4iIiGTGQmcC0rP0mLzlDFYdjQEAVPYoge8/rAJPB0uZkxEREVFhwEJXyJ2NTcLgVSdxMT4FCgUwoGEZfNa0LDQqpdzRiIiIqJBgoSukhBD49fA1fPXnWWTlGOBkrcOcDlXwlp+j3NGIiIiokGGhK4Tup2Zh1P8isOtsPADgnXLO+Pr9SnCw0smcjIiIiAojFrpC5tDFuxj2ezhuJ2VCq1JiTPNy6BnkBYWCY8sRERFR/ljoColsvQFzd13Agr2XIARQxskS33eqioputnJHIyIiokKOha4QuH4/DYNXnUT49QcAgE61PDCuRQVYaPnrISIiomdjY5DZxvCb+HL9aSRn5sDGTI0Z7SuheWBJuWMRERGRCWGhk0lqZg4mbIrC/47fAADU8LTD3A+rwN3OQuZkREREZGpY6GRw+mYiBq86iSt3U6FUAJ+844dP3/GFmmPLERER0UtgoXuDDAaBJQeuYNb2c8jWC5S0NcPcjlVQ28dB7mhERERkwljo3pA7yZkYvjYC/1y4AwAIqeiCme0roYSFVuZkREREZOpY6N6AfRfuYPjv4bibkgWdWonxLSugc63SHFuOiIiICgQL3WuUlWPA19vPYdH+KwAAfxdrzOtcFWVdrGVORkREREUJC91rIoRAn2Vh2B99FwDQva4nvmheHmYalczJiIiIqKhhoXtNFAoFOtcqjcibiZjVvhKCK7rKHYmIiIiKKBa61+jdwJII8nWErblG7ihERERUhHHgs9eMZY6IiIheNxY6IiIiIhPHQkdERERk4ljoiIiIiEwcCx0RERGRiWOhIyIiIjJxLHREREREJo6FjoiIiMjEsdARERERmTgWOiIiIiITx0JHREREZOJY6IiIiIhMHAsdERERkYljoSMiIiIycWq5AxQGQggAQFJSksxJiIiI6Hnlrrdz1+PFGQsdgOTkZACAh4eHzEmIiIjoRSUnJ8PW1lbuGLJSCNZaGAwG3Lp1C9bW1lAoFAU236SkJHh4eOD69euwsbEpsPm+bqaYm5nfDGZ+M5j5zWDmN+N1ZhZCIDk5GW5ublAqi/dRZNxCB0CpVMLd3f21zd/GxsZk/uE9yhRzM/ObwcxvBjO/Gcz8ZryuzMV9y1yu4l1niYiIiIoAFjoiIiIiE8dC9xrpdDpMmDABOp1O7igvxBRzM/ObwcxvBjO/Gcz8ZphiZlPEkyKIiIiITBy30BERERGZOBY6IiIiIhPHQkdERERk4opcodu7dy8UCgUePHjwSvNJS0tD+/btYWNjUyDzexUTJ06Ei4sLFAoFNmzYkOfxRo0aYejQoU+dh5eXF+bOnfvKWR6fz8SJE1GlSpU80z2a+Z133kGbNm1e+bV79uxZIPN5Uubcx3Jz165d+5Vfq6AyA0VrWTPzQ8xcJd/7mbngMz9tPVJQr/Wy83nad/Krzvt1zadQEgWgR48eAoDo379/nsc+/vhjAUD06NFDCCHE7du3Rb9+/YSHh4fQarXCxcVFBAcHi0OHDknP8fT0FADy3KZPn/7MLHv27BEAREJCwitlXbBggXBwcBDvv/++cHNzey1Zn8eZM2ekeXbr1k1kZGQIT09PMWfOHKPM5cuXF0I8efm6urpKz3mezEuXLhW2trZ58sTHx4vU1FTp5wkTJojKlSvnm/ntt98WAISfn58wNzeXXv/R3E/6XAAQdevWNVrWHh4eBbKs88v8aG4AwsfHRzRt2lRYWloKJycnoVAoRGBgoGyZn5T78c9HgwYNhFKpFJaWlsLa2lq4uLg8NbOjo6MAIEJDQ6V5FuRn+nkyd+3aVeh0OuHl5SXs7e2FSqUSAETNmjULdeZHP9Nt2rQRAISdnV2hzqzT6fJ9zbNnzxbazObm5uLrr78WX3zxhbCyshIAhJWVlViyZIlsmR9dj+RmXr9+vYiNjRVly5bN9/UACIVCkWc9cuXKlSdOP378+BfOmF9mf39/o4yPr0d69OghWrduLVasWCEqVaokzM3Nhaurq+jZs6e4e/dunnnmZj558qTR/Q8ePHjiuvdZGfP7Tn5UbsbHzZ8/X5QrV06YmZmJsmXLimXLlr2WjC/r1q1bolOnTqJs2bJCoVCIIUOG5Dvd//73P1G+fHmh1WpF+fLlxbp16174tQrsShEeHh5YvXo15syZA3NzcwBARkYGVq1ahdKlS0vTtW/fHtnZ2Vi2bBl8fHxw+/Zt/P3337h//77R/CZPnoyPPvrI6D5ra+s3lvXSpUvIzs7G9evXsWLFipfKqtfroVAoXulyJJcuXZIyb9q0CT/99JP0WG7mR08Ff9LyPXnyZJ7MPXr0gFarNcr8LE5OTs+duXTp0vDw8MDVq1ehUqny5H7S50Kj0aB+/fqoXr260bJWKpWYMGECBgwYYPR6BfW5eHRZX79+HV5eXlAqlWjatClOnz6N8+fPv1Tml13WL5p506ZNcHV1hUqlQr9+/dC7d2/UrFkTAKRMj38+Tp48ibZt20oXuM71JjO3aNECAFC/fn0MHToUb7/9NjQaDU6cOIGff/4Zy5cvL7SZAeD27dvYtGkTzMzMpPsK83IGgFOnTqF+/fqwsrJCvXr14Ofnh0aNGhXazKGhobCwsAAAuLm5oWrVqihXrpysyzl3PdK0aVMAQOvWrZGZmYmrV69CoVCgcuXK2LZtG1q3bo3s7GxcvHgRvXv3RufOnfNdj3z88ccYP3680X0FNcxHVlaWlPFJl7e8d+8eunfvjjlz5qBly5a4efMmBgwYgL59+2L9+vVPnXfucn3TV2xYuHAhxowZg0WLFqFmzZo4evQoPvroI9jZ2SEwMDDf57zpjJmZmXBycsLYsWMxZ86cfKc5fPgwOnbsiClTpqBt27ZYv349OnTogAMHDrzYnqJXLJ9CiP+ac2BgoFixYoV0/8qVK0VgYKBo3bq16NGjh0hISBAAxN69e586v0f/cnhRuVvotmzZIipVqiR0Op2oVauWOHXqlFHWMmXKCH9/f2FmZibc3d1FcHCwqFixomjdurW0VSP31rBhQyGEEPfv3xfdunUTJUqUEObm5qJZs2aiVKlSUtbcrVqbN28W5cuXFyqVSly+fFlkZmaKkSNHCjc3N2FhYSFq1aol9uzZI3JyckTv3r2Fl5eX9NfF3LlzpfcyYcKEPH+x5W4JevTm4OAgypUrJ1q0aCHdZ21tLT755BORkpIiLVM7OzsxZcoUYWlpKdRqtShRooSwsLAQ7u7u4uOPPxbJyclGy/DRm1qtFt7e3sLGxkbUqlVLymxnZyd0Op3QarVCoVAIhULxxL82H71ZWFgItVot5QAgnJycxODBg/NM6+XlJf1FXKJECWn5ZGRkiMGDBwsnJyeh0+lEvXr1xNGjR8WoUaOEn5+ftDWiS5cuomrVqkKlUgmdTif994MPPhDu7u7C3NxclC9fPs/r5m4NeHw5aLVaUbNmTen34e7unmc6nU4npkyZItRqtVAqlaJ79+5PzSyEEKNGjZLm5erqKlxcXKSsOp1OODg4CDc3N/Hjjz8Kd3d3oVar87yujY1NnvuUSqVQKpXS+9FoNMLd3f2Jy9rS0lIolUrh4eHxwsu6U6dOwsHBQfoslChR4qUy29vbC4VCIW2tM4XM5ubmRp8bU8hsb28vNBoNM79g5jp16ggzM7N8v9vyex+lS5eWPhv29vZCp9M9NXOPHj2ERqN5rswjRowwWk7W1tbS91rdunWl76pHb7lbMh+9VaxYUfj4+IiDBw+KgIAAoVQqpe/zkJAQcfHiRWld8vhzc9eRj29Fy81sbm4uFAqFUCqVws3NTXz55ZciKytLWtd069ZNmJubC41GI7RarTAzMxPvv/++0Za0x+e9bds2YW1tLXQ6nbC3txfvvfeeuHjxohgyZIioV6/eC2fM7zv50fXhrl27RPXq1aXleu7cOfGiGjZsmO8Wug4dOohmzZoZ3RcSEiI+/PDDF5p/gR5D16tXLyxdulT6+ZdffkHv3r2ln62srGBlZYUNGzYgMzOzIF86j5EjR+Kbb75BWFgYnJ2d0apVK2RnZwN4eKHg69evw2Aw4NSpU1izZg0OHTok/QX49ttvo0+fPlAqlfjoo4+watUqAA/3vR87dgybNm3C4cOHIYTA7du3odfrpddNS0vD9OnTsXjxYkRFRcHZ2Rm9evXCwYMHsXr1apw6dQoffPABmjVrhvPnz8Pd3R2///47zpw5g/Hjx+OLL77A77//DgAYMWIEZs+eDQAICgrCkCFD4OHhAQDo168f6tevj0mTJgEAoqOj8ddff0Gr1aJ+/frIzMzExo0b8cknnxgtl6+//hparRaNGjXCvHnzcPr0aSxbtgy7d+/GqFGjpNeaO3cubGxsMGrUKGzatAnh4eH47rvvkJycjISEBPz++++IioqCwWBAZmYmPDw8pL+SNRoNAKBDhw4oU6aM9BfhoEGDsH79eqhUKvj6+qJ69eoQQsDNzQ0KhQKNGjXCP//8I/1VvmvXLri7u+PevXsICAiAhYWF0RbCUaNG4Y8//sCyZctw4sQJ+Pr6IiQkBCqVCqGhoQgNDQUA/P7776hevTr69euH8uXLS/P4448/MHjwYPz111/IzMxEnTp1AAAhISGoXLkydDod3N3dMXnyZFhYWMDPzw8NGzZE3bp1cfz4cSgUCnTq1AnLly+Hv7+/lDk2NhbOzs74+uuvoVQqUaZMGYwbN+6pme/fvw9ra2t8/vnnAB5e8zAzMxM1a9ZE+fLlUbFiRTRo0AC3bt3CvHnzsHnzZmzevBnOzs5S5okTJ8Lc3BxmZmaYPHky6tevjw4dOkjLW6/XQ6lUwtLSEsuWLcOBAwfyXdZarRYVK1ZE2bJlX3hZr127Fp6enli1ahVq1KgBpVL5wpk7duyIkiVLQq1WQ6lUFurMbdq0gZWVFT744APY2dnB0tKyUC/n3C0pOp0OOp0O2dnZCAgIKNSZVSoVfHx84O7uDjMzM6SmpsLV1VXWzOfOnUOdOnXQr18/6fsuNjYW9evXR2BgIJRKJapUqYLr169Dp9MhIyMDgYGBMBgMKFmypDTPRzN//PHHRt93LVq0eK7MSqUS7du3x9SpUwE8XAfFxcVh6tSpUKvVuHnzpvR737lzJ9atWwdra2tYWFhg8uTJiI2NRYcOHWBvb4+YmBg0adIENWrUwNSpU+Hv748SJUrgzJkzaNu2LQwGAwDA0tISALBs2TIcOnQI69atQ35yM7///vtYvnw52rZti8TERPz8889GW6t2794NIQSqVauGihUrokyZMggPD8egQYPynS8ApKamwtHREX369MHff/8NpVKJtm3bwszMDEePHsWhQ4ekz0JsbOwzM+b3nfyosWPH4ttvv8WxY8egVquNus2rOnz4MIKDg43uCwkJkd7Dc3vhipmP3MZ7584dodPpxJUrV8TVq1eFmZmZuHPnjrSFToiH+4nt7OyEmZmZCAoKEmPGjBERERFG8/P09BRarVZYWloa3fbs2fPMLLltevXq1dJ99+7dE+bm5mLNmjWiR48ewt3dXXTv3t0oa+4WphYtWogePXqIIUOGiAoVKkhZq1WrJgBI++eFEOLu3btCoVAItVotLC0tpb/qzM3NpawXL14UCoVC3Lx50yhn48aNxZgxY/LkHzhwoGjfvr308/r16wUAo+Wr0+mkvxDv3LkjHBwchEajER999JG0fNVqtZTn6NGj0ha6Nm3a5Lt8dTqdsLGxkV73ScfQlShRQri7uwshhNixY4f0l2vz5s2FEEJERUVJfxF16NBB+Pv7C6VSKQCIcePGiatXrwq1Wi2qVasm3N3dRdmyZUV8fLz01/ijWyDXrFkjPD09RZs2bYQQQvpLOzcz/n9LWO6yzsrKEm5ubmLWrFlGn4WPPvpIVK9eXQghxNatWwUAoVKpRPfu3aVlvW3bNumv0datW4uOHTsKpVIpSpUqJcaNGyeUSqXo16+faN26tfDx8RHdunWTMpuZmUnHqCxfvlwIIaTcL5t5165dYtasWaJ69epS5rFjxxotayGEGDdunPQX9J07d4RSqRQ6nU6MGzdOmJmZiQkTJgiNRiM8PT1Fv379xJIlS6QMAQEB0rI+efKklNnT01MolUqhUqmMco8dO1Z63RdZ1i+SGf+/xQV4eDxaYc6s1WqFhYWF0Ol04s6dO8Lf319otdpCn/m9994TOp1O/Pnnn8LLy0sAEC1btiy0mXO37CiVSrF9+3ZRp04doVarRdmyZWXLXKpUKek7OXcr8tGjR4WZmZn03ZF7DOiiRYsE8HBLuYuLixgyZIgAICIjI8X+/ful70eNRiNtlc7di1KvXj0hhBApKSlCo9GIlStXPldmJycn0b59eylz7mvk2rZtmwAgJk2aJIT4bx3eoEEDac8JANGqVSuxZ88e6fmRkZHC09NTBAcHS8v5UY9u/Xpa5ubNm4vq1asbbaFTqVTi+vXrUuaNGzcKpVIpYmNj88w715gxY4Srq6s4duyYuH37trQFF4A4cuTIK2XM7zs5V27G9PR08SKetIXu8QxCPNzDqdVqX2j+BVrohBCiXbt2YuLEiWLChAnSyvLRQieEEOnp6WLHjh1i0qRJom7dukKlUomlS5dKj3t6eoqxY8eK6Ohoo1taWtozs+Qu/GvXrhndX6VKFTFx4kTRo0cPYW1tLbRarVCpVEKj0QiNRiP9o3znnXekQtewYUMpa6dOnaQi8GhWjUYjGjRoIKKjo8WMGTOERqMRFy5ckLL+/vvvAkCecqpWq0WHDh3EwoULRfXq1YWjo6OwtLQUGo1G+iIQQog//vhDKg6PHjDu4uIiLd/cQpdb0iwsLKSVYm5mBwcHYWdnJ6ZOnSo8PT1Fly5dRFBQkHB2dhYWFhZSkcrdRZtb6NauXSvq1asnXFxcjApJ9erVpZ8BGGW2sLCQvpT9/f2Fra2tUCqVIiQkRDpA19LSMs/u2dyy+njuqVOnCiEeFrqyZcuK6OhosXnzZgE83H3/6OeiTZs24u233xb16tUTdnZ20nydnJzEwoULpV2rCoXCaFk/ePBAet3cz2vJkiWFra2tCAkJEXZ2dqJs2bLSe3s0s5mZmfQFqFQqxdKlS4Wnp6eYOnXqc2fu1auXWLt2rbRSyi0KVlZWUubc3+mjy3rFihUCgPTFX7p0aaFWq0VISIioVauWMDMzE46OjnmWde7nPvfnSZMmSZk9PT1FYGCgaNy4sVHux3cxPGlZW1lZierVq0u70l8kc7NmzcTWrVuNnltYMwMPT0Zq3769uHjxorC2ti70mXOXc27mUqVKFfrMuX80tmrVSsos9+fZwcFBWufl7tLs0aOHaN++vejRo4dRoRs+fLjROib3plarjb5P+vbtK9zc3MSwYcNEdHS0aNu2rWjRooUQQoiIiAgBQFy9ejXfzD4+PnnmX7NmTXHixAkp76OFLvf7btCgQUKIh+vwd955R6jVaqFSqYSZmZlU4h69bd26VXh6eorhw4c/syw9mvnR9YhKpRIqlUo4OTlJ6+sRI0YIb29vIYSQMkdGRkrfl4/PW4iHG0s6dOiQ59CY9u3bCwAiLCzshTI+vlx79eolhPivU8THx0uP52Z8vGc8y9MK3W+//WZ034oVK4ROp3uh+Rf4sCW9e/dGaGgoli1b9sRNkmZmZmjatCnGjx+PQ4cOoWfPnpgwYYLRNI6OjvD19TW65Z7A8LJyd/0JIdC/f38sXLgQLi4ucHFxwY8//ojo6GhpU/LjWTt27Ai1Wo0ePXrkyWphYQFfX1+4uLhIu+ZysxoMBqhUKhw/fhzh4eHS7ezZs2jcuDGGDRuG3r17Y8eOHQgPD0evXr2kA1gBYOPGjQAAX19f7N69GwsXLoRCocD9+/fzLN/+/fsjPDwcERER+P7776FSqXDu3Dl0795dGnbF0tISOTk5WLNmDWrVqoWNGzfi5MmTWLhwIQBIu6UBICcnBx9++CHeffddbNmyBSdPnoS5uTkyMzPRu3dvfPzxx7C2toa1tbVRZvH/V5PLXd5KpRJqtRphYWFYtmyZtJvazMwMPj4++PPPPwEAc+bMwenTp7Fnzx4AQMuWLfHgwQOj34lWq4Wvr6+069nb29voc3Hv3j3s3bsX7777LqZPnw4AGD58OFJSUjBs2DDpdHUXFxejZZ3fgcKlS5dGSkoKwsLCkJaWhoyMDFSpUgVWVlbo3LmzlDkyMhI7d+4EALRo0UL6fOTmflZmIQTu3LmDDz/8UDoA9p9//kHr1q2RkpIiZe7cuXOeZZ2bO/e/fn5+0Ov1OHjwIMLDw+Hk5ASFQgELCwt06dJFWtbfffcdzpw5Iy3r3N9/bmYzMzNYWVkZ5X78319+y/rdd99FSkoKevfubTTP58kcFhaGwYMHY8SIEdBoNNBoNLC2ti6Umb28vAAAZ8+exfr16+Hr64vk5GRp+mnTphW6zI8u5969e6Nly5bIysqCRqOBjY1NoVzOfn5+EEJAoVCgf//+UubcE1AWLVokS+bcXY8A0LBhQwDA9u3b83wnCyHw/fffo2TJkihVqpTRv0EbGxtERERImUuUKAGNRoPSpUvD19cXNjY20slkj3+nPpp5z549iImJwQcffAAAGDBgALRaLbKysp54AsTjyxkALly4AHNzcwwcOBClSpVCUFAQvvjiCwDAihUrAPx3ckXu4UlPk5v55MmTRuuRRo0aoXLlyka/90dPmnt0PZ3fe86Vu37YsGEDIiIisGvXLgCAg4MDrK2tYW9v/9wZH3+N3M/co3J3rT86/aOfg1fh6uqKuLg4o/vi4+Ph4uLyQvMp8ELXrFkzZGVlISsrCyEhIc/1nAoVKiA1NbVAc/z777/S/yckJODChQsoV64cgIf/cKKiotC7d28YDAYYDAb06tULvr6+TzwjtUKFCsjJyYGlpaWU9d69e8jJyYGrq+sTc1StWhV6vR7x8fF5CmpkZCSCgoIwcOBAVK1aFb6+vtJZXrnOnDkD4OEZVZUrV0bPnj0hHm5ZzbN8o6KipHlfu3YNZcuWhb+/PwICAqQPLvDwH6XBYMC3336LOnXqoGzZsrh165bRvLRaLbKzs+Hp6YmxY8eiRo0a8PPzQ05ODpRKJQYOHIjg4GCkpKQgOTlZKoJnzpxBeno6gIdfWLnUajVycnKQkZGBBw8ewNbWFg4ODkhLS5PONitZsiR8fX2l40a8vLyMcj/K19cXWq0WBw4ckO7Lzs5GREQE7OzsMHbsWOm4tuvXr0Ov1yMoKAgdOnQAANy5c0datsDDYxge/wec+48pOzsbmZmZqFWrFpycnODk5IRz587lm9nHx+eJn+UnZT527BgAwNPTE127dgUAlClTBqdPn4ZKpZIylyhRwmhZA8D58+cB/LficnNzgxACKSkp+Omnn3D9+nX4+/vD2dkZsbGxT1zWub+zV13WZ8+ehUqlwsCBA6V/b6mpqc/MDDz8A6JGjRo4e/Ys/P39YWVlhezs7EKZOfdsZysrK+zevRvAwy9ltVqN2rVro0aNGoUu85OWs0ajgVKpLJTLOTezwWBAuXLlpMy53y3e3t6yZH50Rf7o2c2538kKhQJCCGzatAnZ2dmYPHky3nrrLaN/g9nZ2UaZn1YOnpZZp9OhQYMG6N+/v5Tv0eO6gYfrwEcdPnwYwMPyk0uv18POzg7h4eG4dOkSpk2bJh3f9/iGjtwC9vjr5Jc59zjEsWPHonLlyjh37hzU6rwDbMTExBith06cOAGlUml0HGGue/fu4ezZs/jyyy/RuHFjVKpUSTojOPe4xNzfy/NkzO87uXz58k98XkGrW7eutFEg144dOxAUFPRC8ymwYUtyqVQqnD17Vvr/R927dw8ffPABevfujUqVKsHa2hrHjh3DrFmz0Lp1a6Npk5OT8zRWCwsLo5LwNJMnT4aDgwNcXFwwduxYODo6ok2bNvjzzz/h5+eHw4cP49NPP8WaNWtgaWmJrVu3Gi3Q9PR0REREYMWKFVLWGjVqYMGCBWjWrBkiIiIwevRoqFQqeHp6Ii4uDomJiTAYDIiLi5Oyli1bFl26dEH37t3x7bffomrVqrh79y52796NrKwsHDt2DNu3b4e3tzeWL1+OsLAw6UsKgFQW79+/j7Nnz2L27NlQKpWwt7dHXFyc9CE2GAzYt28fXF1d0aBBA2zatAnvv/8+3n33XWnLWi61Wg2DwYCvvvoKwcHBOHr0KH744Qej5efl5YWsrCxcu3YNixYtQt26dbF7927k5ORACIHt27fDy8sLFhYWSE1NxdWrV7FixQpMmTJF+uvw0de0tLREjRo18M0336BmzZpISUlBQEAAwsLC0LZtWwDAhg0bEBMTg7CwMGi1WixevBhmZmZGX845OTnS56J79+747LPPoNPpUL58ecyaNQt6vR5paWlYvXq19A95y5YtUCqVOHbsmHSQqUKhwOHDh1GmTBns378fn376KerVq2f0D1uhUKBq1arQ6XQ4fPgwjhw5Ajc3N9jY2EjDwKxduxYqlQo3b96EUqnE4sWL0bJlS6P5PCtzWloaPvzwQ/Ts2VMqBz/99BOuXr0KvV4vZc79Eo6JiUFERASSkpKwePFiAP+tVK5duwbg4R8ggYGBsLW1xaVLl+Dn54cDBw7gnXfeAQCEhYXhzp07+N///gfgYYGMj4+XlnV2djYyMjKMcg8fPhz29vYoXbr0E5d1TEwM9Ho9tm/fjoyMDGkZPC2zUqmUtmyfO3cONjY2iIqKQlJSEoQQhTKzSqWCg4MDatWqBR8fH9jZ2SEtLQ06nQ4nT57Ee++9V+gyK5VKmJubw9fXV1rOERERSEtLQ2ZmZqFczrnfdampqRg8eDBsbGxw/vx5pKSkQKFQ4N1335Ulc2pqKhITE7F//3788ssvAB6W0dx1nkqlwu3bt/Hzzz8DAH7++Wd8+OGHGDFihPTZCAgIwKZNm7B9+3YoFApEREQgKysL8fHxiIuLQ3p6ulR2LS0t8fHHH2PkyJF5MmdnZ+Pw4cPYtm0bgIffSY+XGLVajaysLGk5f/rpp3BxccHJkydx8+ZNZGRkwNXVFadOnUJsbCx0Oh0+//xz3L17F6VKlZLKYi4rKyuYm5vjr7/+kk5WeXw4kNzMv/76K5KSkvDNN9/g0KFDuH//PtLS0vA4MzMz9OjRA3379gUATJo0CR06dMh3g4mdnR0cHBzwzTff4OjRo3BycsLMmTOl39nWrVvh7Oz83BkfX65paWno06dPntd9WeHh4QCAlJQU3LlzB+Hh4dBqtahQoQIAYMiQIWjQoAFmzpyJ1q1bY+PGjdi1a5fReuS5vNAO2id40oB/uXKPScrIyBCjR48W1apVE7a2tsLCwkL4+/uLL7/80uiYoicNBJnfYMCPy93fvXnzZlGxYkVpiInw8HCjrEePHhVNmzYVVlZWwtLSUlSqVEl89dVXUtZBgwYJDw8Po6x+fn4iMDBQ2NjYCHNzcxESEpLvMSiPZ83KyhLjx48XXl5eQqPRCFdXV9G2bVtx7Ngx0bNnT2FraytKlCghPv74YzF69GijARZ//fVXgf8/nszZ2Vl8+eWX4t133xU2NjbS8WYODg7C399ftG7d2ujYEoVCIRwdHcWXX34pPDw8hJ2dnZgzZ84Tly9gPCDzgAEDpFPztVqt6NixoyhRooRQqVRS5kqVKhkNWaJUKkX16tWlY0r8/f2FnZ2dqF+/vjSMDP7/mBelUimsra2lE05yn5+7jHJPxS9TpowQQhgds/fozczMzOh085EjRwoHBwdpGIlp06YJGxsb0bNnT+l4ixIlSojg4GChVquFmZmZaNeunVi+fLkA/juGrnXr1vm+nkKhEPPmzZP+P/e/VlZWwsbGRigUCqHT6cScOXOeO7MQQowcOVJ6z23bthVff/210fAMgYGBwtnZWbi7uws3NzdhZmYm6tSpI2UWQuQZcufRW5kyZYSrq2uez8d7770nfY7LlCnzxM9HQECAcHR0fOqynjx5stBoNMLW1lY6pszBweGpmXv06CHKlCljdPxk7sHwhTnz45/p3ONQC3NmLy8voxOPTGU5P3pyVe53jY+Pj2yZLSwshJmZmVHmR9eHDg4ORsfc5X6PKhQK6f91Op203sk9xu3xm5eXlzTf9PR0MXjw4DyZhw0bZvRvp3bt2kKn04nKlSuLkydPCgDScEi5y7ldu3Zi+/btRp/f1q1bi++//154e3sbrUd0Op3o27evAB4OTJw7rNiiRYuEh4eHUCqVTxwSJDdz7vJUKpWiadOmYs6cOcLW1lZaX3/++eeicuXKYsGCBcLJyUkAEM2aNRP37983Wq6Pznvnzp3Cx8dH+jzkHo84f/58aZoXyfj4cn28Uzy6bsxdrleuXBHPI7/fraenp9E0a9euFf7+/kKj0Yhy5cqJP/7447nm/SjF/78YEREREZmoInctVyIiIqLixuQK3YABA6QBih+/PX5JKLk9T9Z33333idPknin3ukybNi3Pa2o0GigUCqjV6kK5fPPLnJs7v8xPy12xYsUnLvuVK1e+9twvs6xNMfObzM3MzFzUMudmfPymVqtf6Dv5dWV+0neylZWVdIzjy3qT33cvqzBlNLldrvHx8Xmu05fLxsZGGmm8MHierDdv3nziGVn29vbPder1y7p//36e0bDv3buHlJQU6HS6PAejFoblm19m4GHu7OzsfA+gfVLua9euGZ1h9ygXF5cCuz4lUHDL2hQzA28uNzMzc1HLHB0djZSUlDyP6XQ6lC1b9rm/k19X5id9JwMPh4YpVarUS80XeLPfdy+rMGU0uUJHRERERMZMbpcrERERERljoSMiIiIycSx0RERERCaOhY6omLh69SoUCoU0anlhcO7cOdSpUwdmZmaoUqVKvtMIIdCvXz/Y29sXuvxy2rt3LxQKhXSd5vyEhoaiRIkSbyzT47y8vDB37lzZXp+oOGGhI3pDevbsCYVCgRkzZhjdv2HDhidegLqomzBhAiwtLXH+/Hn8/fff+U7z119/ITQ0FFu2bEFsbCwCAgIK5LV79uyJNm3aFMi8ihKWMCLTxEJH9AaZmZlh5syZeS6WbcqysrJe+rmXLl3CW2+9BU9PT6MLhT8+TcmSJREUFARXV9d8L+wtJ71e/9QLqxMRvQksdERvUJMmTeDq6orp06c/cZqJEyfm2f04d+5ceHl5ST/nbl2aNm0aXFxcUKJECUyaNAk5OTnShabd3d2lC4c/6ty5cwgKCoKZmRkqVqyIvXv3Gj1+5swZNG/eHFZWVnBxcUG3bt1w9+5d6fFGjRrhk08+wWeffQZHR0c0bdo03/dhMBgwefJkuLu7Q6fToUqVKvjrr7+kxxUKBY4fP47JkydDoVBg4sSJeebRs2dPDB48GDExMVAoFNIyEEJg1qxZ8PHxgbm5OSpXrixdmB14WLL69OkDb29vmJubw9/fH999953RMl62bBk2btwoDdS6d+/efHdjhoeHQ6FQ4OrVqwD+2425ZcsWVKhQATqdDteuXUNWVhZGjRqFUqVKwdLSErVr1zZatteuXUPLli1hZ2cHS0tLVKxYEX/++We+yw4AVqxYgRo1asDa2hqurq7o3Lkz4uPj80x38OBBVK5cGWZmZqhduzYiIyOfOM9Lly6hdevWcHFxgZWVFWrWrIldu3ZJjzdq1AjXrl3DsGHDpOWS69ChQ2jQoAHMzc3h4eGBTz/9FKmpqdLj8fHxaNmyJczNzeHt7V1oBn4lKi5Y6IjeIJVKhWnTpmHevHm4cePGK81r9+7duHXrFv755x/Mnj0bEydORIsWLWBnZ4cjR45gwIABGDBgAK5fv270vJEjR2L48OE4efIkgoKC0KpVK9y7dw8AEBsbi4YNG6JKlSo4duwY/vrrL9y+fRsdOnQwmseyZcugVqtx8OBB/PTTT/nm++677/Dtt9/im2++walTpxASEoJWrVohOjpaeq2KFSti+PDhiI2NxYgRI/KdR24pjI2NRVhYGADgyy+/xNKlS7Fw4UJERUVh2LBh6Nq1K/bt2wfgYZl0d3fH77//jjNnzmD8+PH44osv8PvvvwMARowYgQ4dOqBZs2aIjY1FbGwsgoKCnnvZp6WlYfr06Vi8eDGioqLg7OyMXr164eDBg1i9ejVOnTqFDz74AM2aNZPe76BBg5CZmYl//vkHkZGRmDlzJqysrJ74GllZWZgyZQoiIiKwYcMGXLlyBT179swz3ciRI/HNN98gLCwMzs7OaNWq1RMHOk1JSUHz5s2xa9cunDx5EiEhIWjZsiViYmIAAOvWrYO7uzsmT54sLRcAiIyMREhICNq1a4dTp05hzZo1OHDgAD755BNp3j179sTVq1exe/du/O9//8OCBQvyLaBE9JoIInojevToIVq3bi2EEKJOnTqid+/eQggh1q9fLx79pzhhwgRRuXJlo+fOmTNHeHp6Gs3L09NT6PV66T5/f39Rv3596eecnBxhaWkpVq1aJYQQ4sqVKwKAmDFjhjRNdna2cHd3FzNnzhRCCDFu3DgRHBxs9NrXr18XAMT58+eFEEI0bNhQVKlS5Znv183NTXz11VdG99WsWVMMHDhQ+rly5cpiwoQJT53P4+89JSVFmJmZiUOHDhlN16dPH9GpU6cnzmfgwIGiffv20s+P/j5y7dmzRwAQCQkJ0n0nT54UAMSVK1eEEEIsXbpUABDh4eHSNBcvXhQKhULcvHnTaH6NGzcWY8aMEUIIERgYKCZOnPjU9/o0R48eFQBEcnKyUdbVq1dL09y7d0+Ym5uLNWvWSFltbW2fOt8KFSqIefPmST97enqKOXPmGE3TrVs30a9fP6P79u/fL5RKpUhPTxfnz58XAMS///4rPX727FkBIM+8iOj1KFwHoxAVEzNnzsQ777yD4cOHv/Q8KlasCKXyv43sLi4uRicMqFQqODg45NlKUrduXen/1Wo1atSogbNnzwIAjh8/jj179uS75ejSpUsoW7YsAKBGjRpPzZaUlIRbt26hXr16RvfXq1cPERERz/kO83fmzBlkZGTk2dWblZWFqlWrSj//+OOPWLx4Ma5du4b09HRkZWU98UzaF6XValGpUiXp5xMnTkAIIS2fXJmZmdKxgZ9++ik+/vhj7NixA02aNEH79u2N5vG4kydPYuLEiQgPD8f9+/el4/RiYmJQoUIFabpHf5/29vbw9/eXfp+PS01NxaRJk7BlyxbcunULOTk5SE9Pl7bQPcnx48dx8eJFo92oQggYDAZcuXIFFy5ckD5LucqVKyfrGbZExQ0LHZEMGjRogJCQEHzxxRd5dqMplUqIx67Il98uNI1GY/SzQqHI977nOWA/91gpg8GAli1bYubMmXmmKVmypPT/lpaWz5zno/PNJYR45TN6c9/P1q1b81wnUqfTAQB+//13DBs2DN9++y3q1q0La2trfP311zhy5MhT551bkB9d/vkte3Nzc6P3YTAYoFKpcPz4cahUKqNpc8tx3759ERISgq1bt2LHjh2YPn06vv32WwwePDjP/FNTUxEcHIzg4GCsWLECTk5OiImJQUhIyHOdhPKkZTxy5Ehs374d33zzDXx9fWFubo7333//mfM0GAzo378/Pv300zyPlS5dGufPn3/q6xLR68dCRySTGTNmoEqVKnm26jg5OSEuLs6o/BTk2Gv//vsvGjRoAADIycnB8ePHpWOhqlWrhj/++ANeXl6vdDapjY0N3NzccODAAem1gIcH1teqVeuV8ueeiBATE4OGDRvmO83+/fsRFBSEgQMHSvddunTJaBqtVgu9Xm90n5OTE4CHx/fZ2dkBeL5lX7VqVej1esTHx6N+/fpPnM7Dw0M6tnHMmDFYtGhRvoXu3LlzuHv3LmbMmAEPDw8AwLFjx/Kd57///ovSpUsDABISEnDhwgWUK1cu32n379+Pnj17om3btgAeHlOXe7JHrvyWS7Vq1RAVFQVfX99851u+fHnk5OTg2LFj0u/3/PnzTx0jj4gKFk+KIJJJYGAgunTpgnnz5hnd36hRI9y5cwezZs3CpUuX8MMPP2Dbtm0F9ro//PAD1q9fj3PnzmHQoEFISEhA7969ATw8cP/+/fvo1KkTjh49isuXL2PHjh3o3bt3npX8s4wcORIzZ87EmjVrcP78eYwePRrh4eEYMmTIK+W3trbGiBEjMGzYMCxbtgyXLl3CyZMn8cMPP2DZsmUAAF9fXxw7dgzbt2/HhQsXMG7cOOmEilxeXl44deoUzp8/j7t37yI7Oxu+vr7w8PDAxIkTceHCBWzduhXffvvtMzOVLVsWXbp0Qffu3bFu3TpcuXIFYWFhmDlzpnQm69ChQ7F9+3ZcuXIFJ06cwO7du1G+fPl851e6dGlotVrMmzcPly9fxqZNmzBlypR8p508eTL+/vtvnD59Gj179oSjo+MTx9fz9fXFunXrEB4ejoiICHTu3DnPFlwvLy/8888/uHnzpnR28+eff47Dhw9j0KBBCA8PR3R0NDZt2iSVUX9/fzRr1gwfffQRjhw5guPHj6Nv374wNzd/5rIjooLBQkckoylTpuTZvVq+fHksWLAAP/zwAypXroyjR4/mewboy5oxYwZmzpyJypUrY//+/di4cSMcHR0BAG5ubjh48CD0ej1CQkIQEBCAIUOGwNbW1uh4vefx6aefYvjw4Rg+fDgCAwPx119/YdOmTfDz83vl9zBlyhSMHz8e06dPR/ny5RESEoLNmzfD29sbADBgwAC0a9cOHTt2RO3atXHv3j2jrXUA8NFHH8Hf3x81atSAk5MTDh48CI1Gg1WrVuHcuXOoXLkyZs6cialTpz5XpqVLl6J79+4YPnw4/P390apVKxw5ckTawqbX6zFo0CCUL18ezZo1g7+/PxYsWJDvvJycnBAaGoq1a9eiQoUKmDFjBr755pt8p50xYwaGDBmC6tWrIzY2Fps2bYJWq8132jlz5sDOzg5BQUFo2bIlQkJCUK1aNaNpJk+ejKtXr6JMmTLSFstKlSph3759iI6ORv369VG1alWMGzfOaDf80qVL4eHhgYYNG6Jdu3bo168fnJ2dn2vZEdGrU4jH1yZEREREZFK4hY6IiIjIxLHQEREREZk4FjoiIiIiE8dCR0RERGTiWOiIiIiITBwLHREREZGJY6EjIiIiMnEsdEREREQmjoWOiIiIyMSx0BERERGZOBY6IiIiIhPHQkdERERk4v4PmAJHozqSdfwAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot metric_results\n", + "fig, ax = plt.subplots()\n", + "ax.plot(list(metric_results.keys()), list(metric_results.values()))\n", + "ax.set_xlabel('Number of features ablated')\n", + "ax.set_ylabel('MSE')\n", + "ax.set_title('MSE after ablation')\n", + "plt.show()" ] } ],