368 строки
77 KiB
Plaintext
368 строки
77 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"import argparse\n",
|
|
"from pathlib import Path\n",
|
|
"\n",
|
|
"import numpy as np\n",
|
|
"import pandas as pd\n",
|
|
"from matplotlib import pyplot as plt\n",
|
|
"\n",
|
|
"from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error\n",
|
|
"\n",
|
|
"import mlflow\n",
|
|
"import mlflow.sklearn\n",
|
|
"import mlflow.pyfunc\n",
|
|
"from mlflow.tracking import MlflowClient"
|
|
],
|
|
"outputs": [],
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"gather": {
|
|
"logged": 1671555116624
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"TARGET_COL = \"cost\"\n",
|
|
"\n",
|
|
"NUMERIC_COLS = [\n",
|
|
" \"distance\", \"dropoff_latitude\", \"dropoff_longitude\", \"passengers\", \"pickup_latitude\",\n",
|
|
" \"pickup_longitude\", \"pickup_weekday\", \"pickup_month\", \"pickup_monthday\", \"pickup_hour\",\n",
|
|
" \"pickup_minute\", \"pickup_second\", \"dropoff_weekday\", \"dropoff_month\", \"dropoff_monthday\",\n",
|
|
" \"dropoff_hour\", \"dropoff_minute\", \"dropoff_second\"\n",
|
|
"]\n",
|
|
"\n",
|
|
"CAT_NOM_COLS = [\n",
|
|
" \"store_forward\", \"vendor\"\n",
|
|
"]\n",
|
|
"\n",
|
|
"CAT_ORD_COLS = [\n",
|
|
"]\n"
|
|
],
|
|
"outputs": [],
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"jupyter": {
|
|
"outputs_hidden": false,
|
|
"source_hidden": false
|
|
},
|
|
"nteract": {
|
|
"transient": {
|
|
"deleting": false
|
|
}
|
|
},
|
|
"gather": {
|
|
"logged": 1671555116855
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Define Arguments for this step\n",
|
|
"\n",
|
|
"class MyArgs:\n",
|
|
" def __init__(self, **kwargs):\n",
|
|
" self.__dict__.update(kwargs)\n",
|
|
"\n",
|
|
"args = MyArgs(\n",
|
|
" model_name = \"taxi-model\",\n",
|
|
" model_input = \"/tmp/train\",\n",
|
|
" test_data = \"/tmp/prep/test\",\n",
|
|
" evaluation_output = \"/tmp/evaluate\",\n",
|
|
" )\n",
|
|
"\n",
|
|
"os.makedirs(args.evaluation_output, exist_ok = True)"
|
|
],
|
|
"outputs": [],
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"jupyter": {
|
|
"outputs_hidden": false,
|
|
"source_hidden": false
|
|
},
|
|
"nteract": {
|
|
"transient": {
|
|
"deleting": false
|
|
}
|
|
},
|
|
"gather": {
|
|
"logged": 1671555117074
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"\n",
|
|
"def main(args):\n",
|
|
" '''Read trained model and test dataset, evaluate model and save result'''\n",
|
|
"\n",
|
|
" # Load the test data\n",
|
|
" test_data = pd.read_parquet(Path(args.test_data)/\"test.parquet\")\n",
|
|
"\n",
|
|
" # Split the data into inputs and outputs\n",
|
|
" y_test = test_data[TARGET_COL]\n",
|
|
" X_test = test_data[NUMERIC_COLS + CAT_NOM_COLS + CAT_ORD_COLS]\n",
|
|
"\n",
|
|
" # Load the model from input port\n",
|
|
" model = mlflow.sklearn.load_model(args.model_input) \n",
|
|
"\n",
|
|
" # ---------------- Model Evaluation ---------------- #\n",
|
|
" yhat_test, score = model_evaluation(X_test, y_test, model, args.evaluation_output)\n",
|
|
"\n",
|
|
" # ----------------- Model Promotion ---------------- #\n",
|
|
" predictions, deploy_flag = model_promotion(args.model_name, args.evaluation_output, X_test, y_test, yhat_test, score)\n",
|
|
"\n",
|
|
"\n",
|
|
"def model_evaluation(X_test, y_test, model, evaluation_output):\n",
|
|
"\n",
|
|
" # Get predictions to y_test (y_test)\n",
|
|
" yhat_test = model.predict(X_test)\n",
|
|
"\n",
|
|
" # Save the output data with feature columns, predicted cost, and actual cost in csv file\n",
|
|
" output_data = X_test.copy()\n",
|
|
" output_data[\"real_label\"] = y_test\n",
|
|
" output_data[\"predicted_label\"] = yhat_test\n",
|
|
" output_data.to_csv((Path(evaluation_output) / \"predictions.csv\"))\n",
|
|
"\n",
|
|
" # Evaluate Model performance with the test set\n",
|
|
" r2 = r2_score(y_test, yhat_test)\n",
|
|
" mse = mean_squared_error(y_test, yhat_test)\n",
|
|
" rmse = np.sqrt(mse)\n",
|
|
" mae = mean_absolute_error(y_test, yhat_test)\n",
|
|
"\n",
|
|
" # Print score report to a text file\n",
|
|
" (Path(evaluation_output) / \"score.txt\").write_text(\n",
|
|
" f\"Scored with the following model:\\n{format(model)}\"\n",
|
|
" )\n",
|
|
" with open((Path(evaluation_output) / \"score.txt\"), \"a\") as outfile:\n",
|
|
" outfile.write(\"Mean squared error: {mse.2f} \\n\")\n",
|
|
" outfile.write(\"Root mean squared error: {rmse.2f} \\n\")\n",
|
|
" outfile.write(\"Mean absolute error: {mae.2f} \\n\")\n",
|
|
" outfile.write(\"Coefficient of determination: {r2.2f} \\n\")\n",
|
|
"\n",
|
|
" mlflow.log_metric(\"test r2\", r2)\n",
|
|
" mlflow.log_metric(\"test mse\", mse)\n",
|
|
" mlflow.log_metric(\"test rmse\", rmse)\n",
|
|
" mlflow.log_metric(\"test mae\", mae)\n",
|
|
"\n",
|
|
" # Visualize results\n",
|
|
" plt.scatter(y_test, yhat_test, color='black')\n",
|
|
" plt.plot(y_test, y_test, color='blue', linewidth=3)\n",
|
|
" plt.xlabel(\"Real value\")\n",
|
|
" plt.ylabel(\"Predicted value\")\n",
|
|
" plt.title(\"Comparing Model Predictions to Real values - Test Data\")\n",
|
|
" plt.savefig(\"predictions.png\")\n",
|
|
" mlflow.log_artifact(\"predictions.png\")\n",
|
|
"\n",
|
|
" return yhat_test, r2\n",
|
|
"\n",
|
|
"def model_promotion(model_name, evaluation_output, X_test, y_test, yhat_test, score):\n",
|
|
" \n",
|
|
" scores = {}\n",
|
|
" predictions = {}\n",
|
|
"\n",
|
|
" client = MlflowClient()\n",
|
|
"\n",
|
|
" for model_run in client.search_model_versions(f\"name='{model_name}'\"):\n",
|
|
" model_version = model_run.version\n",
|
|
" mdl = mlflow.pyfunc.load_model(\n",
|
|
" model_uri=f\"models:/{model_name}/{model_version}\")\n",
|
|
" predictions[f\"{model_name}:{model_version}\"] = mdl.predict(X_test)\n",
|
|
" scores[f\"{model_name}:{model_version}\"] = r2_score(\n",
|
|
" y_test, predictions[f\"{model_name}:{model_version}\"])\n",
|
|
"\n",
|
|
" if scores:\n",
|
|
" if score >= max(list(scores.values())):\n",
|
|
" deploy_flag = 1\n",
|
|
" else:\n",
|
|
" deploy_flag = 0\n",
|
|
" else:\n",
|
|
" deploy_flag = 1\n",
|
|
" print(f\"Deploy flag: {deploy_flag}\")\n",
|
|
"\n",
|
|
" with open((Path(evaluation_output) / \"deploy_flag\"), 'w') as outfile:\n",
|
|
" outfile.write(f\"{int(deploy_flag)}\")\n",
|
|
"\n",
|
|
" # add current model score and predictions\n",
|
|
" scores[\"current model\"] = score\n",
|
|
" predictions[\"currrent model\"] = yhat_test\n",
|
|
"\n",
|
|
" perf_comparison_plot = pd.DataFrame(\n",
|
|
" scores, index=[\"r2 score\"]).plot(kind='bar', figsize=(15, 10))\n",
|
|
" perf_comparison_plot.figure.savefig(\"perf_comparison.png\")\n",
|
|
" perf_comparison_plot.figure.savefig(Path(evaluation_output) / \"perf_comparison.png\")\n",
|
|
"\n",
|
|
" mlflow.log_metric(\"deploy flag\", bool(deploy_flag))\n",
|
|
" mlflow.log_artifact(\"perf_comparison.png\")\n",
|
|
"\n",
|
|
" return predictions, deploy_flag"
|
|
],
|
|
"outputs": [],
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"jupyter": {
|
|
"outputs_hidden": false,
|
|
"source_hidden": false
|
|
},
|
|
"nteract": {
|
|
"transient": {
|
|
"deleting": false
|
|
}
|
|
},
|
|
"gather": {
|
|
"logged": 1671555117274
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"mlflow.end_run()"
|
|
],
|
|
"outputs": [],
|
|
"execution_count": 5,
|
|
"metadata": {
|
|
"jupyter": {
|
|
"source_hidden": false,
|
|
"outputs_hidden": false
|
|
},
|
|
"nteract": {
|
|
"transient": {
|
|
"deleting": false
|
|
}
|
|
},
|
|
"gather": {
|
|
"logged": 1671555117625
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"mlflow.start_run()\n",
|
|
"\n",
|
|
"lines = [\n",
|
|
" f\"Model name: {args.model_name}\",\n",
|
|
" f\"Model path: {args.model_input}\",\n",
|
|
" f\"Test data path: {args.test_data}\",\n",
|
|
" f\"Evaluation output path: {args.evaluation_output}\",\n",
|
|
"]\n",
|
|
"\n",
|
|
"for line in lines:\n",
|
|
" print(line)\n",
|
|
"\n",
|
|
"main(args)\n",
|
|
"\n",
|
|
"mlflow.end_run()"
|
|
],
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": "Model name: taxi-model\nModel path: /tmp/train\nTest data path: /tmp/prep/test\nEvaluation output path: /tmp/evaluate\nDeploy flag: 0\n"
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": "<Figure size 640x480 with 1 Axes>",
|
|
"image/png": "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iYiIiMzJwYO6E50lS4Dr180z0QHYskNEREQ6jBwJrF4tXZ6YCPj7myycImGyQ0RERAVkZACOjtLldeoA588rFxI0d2ba4ERERESlZd8+3YnOqlXAhQtlI9EB2LJDREREzxkyBNiwQbr85k3A19d08RgDkx0iIiJCWhrg4iJd/uKLym0hykprzvPYjUVERFTO/fab7kTnf/8DTp0qm4kOwJYdIiKicq1vX2DbNuny27cBb2+ThVMimOwQERGVQw8eKPevktKmDXDoUNltzXkeu7GIiIjKmZ9/1p3obNgAHD5sGYkOwJYdIiKicqVzZ2DvXuny1FTA3d108ZgCkx0iIqJy4O5dwMNDurxTJ91JUFnGbiwiIiILt2mT7kRn61bLTXQAtuwQERFZLCGAtm2BI0ek69y/D7i6mi6m0sCWHSIiIguUnKzchVwq0endW5kMWXqiAzDZISIisjg//qh7bZydO3WvrWNp2I1FRERkIYQAmjdXrnYs5dEjwNnZZCGZBbbsEBERWYBbt5TdVlKJzqBBymSovCU6AJMdIiKiMu/bbwE/P+nyPXt072Ru6diNRUREVEYJAdSrByQkSNdJTwccHU0Xkzliyw4REVEZdO2asttKKtEJDVUmQ+U90QGY7BAREZU5S5cCAQHS5QcOAGvWmCwcs8duLCIiojIiLw/w9wdu3pSuk5kJVKpkspDKBLbsEBERlQGXLwNyuXSiM26cstuKiU5BTHaIiIjM3JdfArVrS5fHxyu7tkg7dmMRERGZKYUC8PIC7t2TrvP0KVCxouliKovYskNERGSGzp8HKlSQTnQmT1Z2WzHRKRyTHSIiIjPzySdA/frS5SdOKLu2SD/sxiIiIjITz54pt3N48kS6TnY2YGNjupgsAVt2iIiIzMDffwPW1tKJzocfKrutmOgYjskOERFRKZsxA2jSRLr89Gll1xYVDbuxiIiISklODmBrK11uaws8fqxs8aGiY8sOERFRKTh1SneiM2cOkJXFRMcY2LJDRERkYlOnAl98IV1+7pxyN3MyDiY7REREJpKVBdjZSZe7ugKpqcptIch42I1FRERkAseO6U50FiwA7t9nolMS2LJDRERUwt59F/j6a+nyhATghRdMF095w2SHiIiohDx5AtjbS5f7+gLXrwNW7GcpUby9REREJeDQId2JzqJFwM2bTHRMgS07RERE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\n"
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": "<Figure size 1500x1000 with 1 Axes>",
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABL4AAANXCAYAAAA7DpbIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAA9hAAAPYQGoP6dpAABOxUlEQVR4nO3df5TXdZ33/8cAwoAiKOr4AwxMF8EfoJJcaKkZhlt5XWpdYqGCoGZqi6KmsAtmug7WwgUGirUSuKuXvzatS1I2f4BflIgwS0tAScRWEF0DFASE4ftHx6lZwHV0cIYXt9s5cw6f1+f94/mZM+fkufd+vz8VmzZt2hQAAAAAKEyzxh4AAAAAALYF4QsAAACAIglfAAAAABRJ+AIAAACgSMIXAAAAAEUSvgAAAAAokvAFAAAAQJFaNPYAH0RNTU1effXVtG3bNhUVFY09DgAAAACNZNOmTXnrrbey7777plmz97+ma7sIX6+++mo6derU2GMAAAAA0ES88sor6dix4/tus12Er7Zt2yb58wfaddddG3kaAAAAABrLqlWr0qlTp9pe9H62i/D13u2Nu+66q/AFAAAAwAd6HJaH2wMAAABQJOELAAAAgCIJXwAAAAAUabt4xhcAAACw/aipqcn69esbewy2Yy1btkyzZh/9ei3hCwAAAGgw69evz0svvZSamprGHoXtWLNmzdKlS5e0bNnyIx1H+AIAAAAaxKZNm7J06dI0b948nTp1apArdtjx1NTU5NVXX83SpUuz//77f6Bvb9wa4QsAAABoEBs2bMiaNWuy7777pk2bNo09DtuxPffcM6+++mo2bNiQnXba6UMfR3oFAAAAGsTGjRuT5CPfngbv/Q299zf1YQlfAAAAQIP6KLemQdJwf0PCFwAAAABFEr4AAAAAKJKH2wMAAADbVOerp32s51s8+osf6/m2ZMqUKbn00kuzYsWKxh4lSTJo0KCsWLEiDzzwwAfafsaMGfnsZz+bP/3pT2nfvv02nW1bcsUXAAAAsEM74YQTcumllzboMfv375+FCxc26DGbstGjR6eioqLBf48flSu+AAAAABpY69at07p168Ye42Mxd+7c3HrrrTn88MMbe5TNuOILAAAA2GENGjQoM2fOzPjx41NRUZGKioosWrQoQ4YMSZcuXdK6det07do148ePr91n7dq1OeSQQ3LBBRfUri1atCht27bN5MmTk/z5Vsf/7hbBQYMG5dRTT80NN9yQqqqqtG/fPt/5zneyYcOGXHnlldl9993TsWPH/OhHP6qz37PPPpsTTzwxrVu3TocOHXLBBRfk7bffrn1/48aNGTZsWNq3b58OHTrkW9/6VjZt2lTnGDU1Namurq79jD169Mh9991X79/f22+/nQEDBuSHP/xhdtttt3rvv60JXwAAAMAOa/z48enTp0/OP//8LF26NEuXLk3Hjh3TsWPH3Hvvvfn973+fUaNGZcSIEbnnnnuSJJWVlbnjjjsyderU/OQnP8nGjRtz1lln5aSTTsrgwYPrdf7HHnssr776ap544omMHTs211xzTb70pS9lt912y5w5c3LhhRfm61//ev74xz8mSVavXp1+/fplt912y9y5c3PvvffmkUceySWXXFJ7zDFjxmTKlCmZPHlyZs2alTfffDP3339/nfNWV1fn9ttvz6RJk/K73/0ul112Wc4666zMnDlzq7NWVFRkypQpddYuvvjifPGLX0zfvn3r9bk/Lm51BAAAAHZY7dq1S8uWLdOmTZvsvffetevXXntt7b+7dOmS2bNn55577skZZ5yRJOnZs2euv/76nHfeeTnzzDPz8ssv58EHH6z3+XfffffcdNNNadasWbp27Zrvfve7WbNmTUaMGJEkGT58eEaPHp1Zs2blzDPPzJ133pm1a9fm9ttvz84775wkmTBhQk455ZTceOONqaqqyrhx4zJ8+PCcfvrpSZJJkyZl+vTptedct25dbrjhhjzyyCPp06dPkuSAAw7IrFmzcuutt+b444/f4qxdu3ZNu3btal/fddddefrppzN37tx6f+6Pi/AFAAAA8F9MnDgxkydPzpIlS/LOO+9k/fr16dmzZ51tLr/88jzwwAOZMGFCHnrooXTo0GGLx1qyZEm6d+9e+3rEiBG1YeuQQw5Js2Z/uSGvqqoqhx56aO3r5s2bp0OHDlm+fHmS5Pnnn0+PHj1qo1eSHHvssampqcmCBQtSWVmZpUuXpnfv3rXvt2jRIr169aq93fHFF1/MmjVrctJJJ9WZc/369TniiCO2+juZP39+7b9feeWVDB06ND//+c9TWVm51X0am/AFAAAA8FfuuuuuXHHFFRkzZkz69OmTtm3b5nvf+17mzJlTZ7vly5dn4cKFad68eV544YWcfPLJWzzevvvum2eeeab29e67717775122qnOthUVFVtcq6mp+Yif6i/eex7YtGnTst9++9V5r1WrVh/oGPPmzcvy5ctz5JFH1q5t3LgxTzzxRCZMmJB169alefPmDTbzhyV8AQAAADu0li1bZuPGjbWvn3zyyRxzzDG56KKLatcWLVq02X6DBw/OYYcdliFDhuT8889P3759061bt822a9GiRQ488MAGmbVbt26ZMmVKVq9eXXvV15NPPll7q2S7du2yzz77ZM6cOTnuuOOSJBs2bMi8efNqI1X37t3TqlWrLFmyZKu3Nf53Pve5z+XZZ5+ts3buuefm4IMPzlVXXdUkolcifAEAAAA7uM6dO2fOnDlZvHhxdtlllxx00EG5/fbbM3369HTp0iX/8i//krlz56ZLly61+0ycODGzZ8/Ob3/723Tq1CnTpk3LgAED8otf/CItW7bcZrMOGDAg11xzTQYOHJhvf/vbef311/PNb34zZ599dqqqqpIkQ4cOzejRo3PQQQfl4IMPztixY7NixYraY7Rt2zZXXHFFLrvsstTU1OTTn/50Vq5cmSeffDK77rprBg4cuMVzH3zwwamurs5pp52Wtm3b1rklM0l23nnndOjQYbP1xiR8AQAAANvU4tFfbOwR3tcVV1yRgQMHpnv37nnnnXcyf/78/PrXv07//v1TUVGRr371q7nooovy0EMPJfnzs66uvPLK3HbbbenUqVOS5Oabb87hhx+ekSNH5sYbb9xms7Zp0ybTp0/P0KFD86lPfSpt2rTJl7/85YwdO7Z2m8svvzxLly7NwIED06xZswwePDinnXZaVq5cWbvNddddlz333DPV1dX5wx/+kPbt2+fII4+sffbYlixYsKDOMbYHFZvee7JZE7Zq1aq0a9cuK1euzK677trY4wAAAABbsHbt2rz00kvp0qVLk37gOU3f+/0t1acTNXvfdwEAAABgOyV8AQAAAFAk4QsAAACAIglfAAAAABRJ+AIAAACgSMIXAAAAAEUSvgAAAAAokvAFAAAAQJGELwAAAIAGNmXKlLRv376xx6g1aNCgnHrqqR94+xkzZqSioiIrVqzYZjN9HFo09gAAAABA4b7d7mM+38p6bX7CCSekZ8+eGTduXION0L9//3zhC19osOM1RbfccktuueWWLF68OElyyCGHZNSoUfnbv/3bxh3sr7jiCwAAAKCBtW7dOnvttVdjj7FNdezYMaNHj868efPyq1/9KieeeGL+1//6X/nd737X2KPVcsUXAFCEw6Ye1tgj0ICeHfhsY48AwA5i0KBBmTlzZmbOnJnx48cnSV588cXccMMNeeyxx7Js2bLsv//+ueiiizJ06NAkydq1a3PUUUfl2GOPzQ9+8IMkyaJFi9KzZ8+MHz8+gwcPzpQpU3LppZe+762CgwYNyooVK3L00Udn/PjxWbduXYYNG5YRI0Zk+PDhue2229KmTZtcd911Offcc2v3e/bZZzN06NDMnj07bdq0yZe//OWMHTs2u+yyS5Jk48aNufLKKzN58uQ0b948Q4YMyaZNm+qcu6amJjfeeGN+8IMfZNmyZfmbv/mbjBw5Ml/5ylc+8O/ulFNOqfP6H//xH3PLLbfkF7/4RQ455JAPfJxtSfgC+IA6Xz2tsUeggS2u/Fpjj0BD6rJ/Y08AAGyHxo8fn4ULF+bQQw/Nd77znSTJbrvtlo4dO+bee+9Nhw4d8tRTT+WCCy7IPvvskzPOOCOVlZW544470rt373zxi1/Ml770pZx11lk56aSTMnjw4Hqd/7HHHkvHjh3zxBNP5Mknn8yQIUPy1FNP5bjjjsucOXNy99135+tf/3pOOumkdOzYMatXr06/fv3Sp0+fzJ07N8uXL895552XSy65JFOmTEmSjBkzJlOmTMnkyZPTrVu3jBkzJvfff39OPPHE2vNWV1fnX//1XzNp0qQcdNBBeeKJJ3LWWWdlzz33zPHHH7/FWSsqKvKjH/0ogwYN2uy9jRs35t57783q1avTp0+fev0OtiXhCwCAJuf5g7s19gg0oG7zn2/sEQC2ql27dmnZsmXatGmTvffeu3b92muvrf13ly5dMnv27Nxzzz0544wzkiQ9e/bM9ddfn/POOy9nnnlmXn755Tz44IP1Pv/uu++em266Kc2aNUvXrl3z3e9+N2vWrMmIESOSJMOHD8/o0aMza9asnHnmmbnzzjuzdu3a3H777dl5552TJBMmTMgpp5ySG2+8MVVVVRk3blyGDx+e008/PUkyadKkTJ8+vfac69atyw033JBHHnmkNlIdcMABmTVrVm699dathq+uXbumXbu6z2t79tln06dPn6xduza77LJL7r///nTv3r3ev4dtRfgCAAAA+C8mTpyYyZMnZ8mSJXnnnXeyfv369OzZs842l19+eR544IFMmDAhDz30UDp06LDFYy1ZsqRODBoxYkRt2DrkkEPSrNlfHsFeVVWVQw89tPZ18+bN06FDhyxfvjxJ8vzzz6dHjx610StJjj322NTU1GTBggWprKzM0qVL07t379r3W7RokV69etXe7vjiiy9mzZo1Oemkk+rMuX79+hxxxBFb/Z3Mnz9/s7WuXbvmmWeeycqVK3Pfffdl4MCBmTlzZpOJX8IXAAAAwF+56667csUVV2TMmDHp06dP2rZtm+9973uZM2dOne2WL1+ehQsXpnnz5nnhhRdy8sknb/F4++67b5555pna17vvvnvtv3faaac621ZUVGxxraam5iN+qr94++23kyTTpk3LfvvtV+e9Vq1a1etYLVu2zIEHHpgkOeqoozJ37tyMHz8+t956a8MM+xEJXwAAAMAOrWXLltm4cWPt6yeffDLHHHNMLrrootq1RYsWbbbf4MGDc9hhh2XIkCE5//zz07dv33Trtvnt+i1atKiNQx9Vt27dMmXKlKxevbr2qq8nn3yy9lbJdu3aZZ999smcOXNy3HHHJUk2bNiQefPm5cgjj0ySdO/ePa1atcqSJUu2elvjh1VTU5N169Y16DE/imb//SYAAAAA5ercuXPmzJmTxYsX54033shBBx2UX/3qV5k+fXoWLlyYkSNHZu7cuXX2mThxYmbPnp2pU6dmwIABOfXUUzNgwICsX79+m846YMCAVFZWZuDAgXnuuefy+OOP55vf/GbOPvvsVFVVJUmGDh2a0aNH54EHHsj8+fNz0UUX1fl2ybZt2+aKK67IZZddlqlTp2bRokV5+umn8/3vfz9Tp07d6rkPPvjg3H///bWvhw8fnieeeCKLFy/Os88+m+HDh2fGjBkZMGDANvv89SV8AQAAADu0K664Is2bN0/37t2z5557pl+/fjn99NPTv3//9O7dO//5n/9Z5+qv+fPn58orr8zNN9+cTp06JUluvvnmvPHGGxk5cuQ2nbVNmzaZPn163nzzzXzqU5/KV77ylXzuc5/LhAkTare5/PLLc/bZZ2fgwIG1t2qedtppdY5z3XXXZeTIkamurk63bt1y8sknZ9q0aenSpctWz71gwYKsXLmy9vXy5ctzzjnnpGvXrvnc5z6XuXPnZvr06Zs9O6wxVWx678lmTdiqVavSrl27rFy5MrvuumtjjwPsoDpfPa2xR6CBLa78WmOPQAM6rMv+jT0CDeie6g2NPQINyLc6wo5j7dq1eemll9KlS5dUVlY29jhsx97vb6k+ncgVXwAAAAAUSfgCAAAAoEjCFwAAAABFEr4AAAAAKJLwBQAAAECRhC8AAAAAiiR8AQAAAFAk4QsAAACAIglfAAAAABRJ+AIAAABoYFOmTEn79u0be4xagwYNyqmnnvqBt58xY0YqKiqyYsWKbTbTx6FFYw8AAAAAlO2wqYd9rOd7duCz9dr+hBNOSM+ePTNu3LgGm6F///75whe+0GDHa4qqq6vz4x//OPPnz0/r1q1zzDHH5MYbb0zXrl0be7RarvgCAAAAaGCtW7fOXnvt1dhjbFMzZ87MxRdfnF/84hf5+c9/nnfffTef//zns3r16sYerZbwBQAAAOywBg0alJkzZ2b8+PGpqKhIRUVFFi1alCFDhqRLly5p3bp1unbtmvHjx9fus3bt2hxyyCG54IILatcWLVqUtm3bZvLkyUk+2K2O791+eMMNN6Sqqirt27fPd77znWzYsCFXXnlldt9993Ts2DE/+tGP6uz37LPP5sQTT0zr1q3ToUOHXHDBBXn77bdr39+4cWOGDRuW9u3bp0OHDvnWt76VTZs21TlGTU1Nqquraz9jjx49ct9999Xrd/fwww9n0KBBOeSQQ9KjR49MmTIlS5Ysybx58+p1nG1J+AIAAAB2WOPHj0+fPn1y/vnnZ+nSpVm6dGk6duyYjh075t57783vf//7jBo1KiNGjMg999yTJKmsrMwdd9yRqVOn5ic/+Uk2btyYs846KyeddFIGDx5cr/M/9thjefXVV/PEE09k7Nixueaaa/KlL30pu+22W+bMmZMLL7wwX//61/PHP/4xSbJ69er069cvu+22W+bOnZt77703jzzySC655JLaY44ZMyZTpkzJ5MmTM2vWrLz55pu5//7765y3uro6t99+eyZNmpTf/e53ueyyy3LWWWdl5syZW521oqIiU6ZM2er7K1euTJLsvvvu9fodbEue8QUAAADssNq1a5eWLVumTZs22XvvvWvXr7322tp/d+nSJbNnz84999yTM844I0nSs2fPXH/99TnvvPNy5pln5uWXX86DDz5Y7/Pvvvvuuemmm9KsWbN07do13/3ud7NmzZqMGDEiSTJ8+PCMHj06s2bNyplnnpk777wza9euze23356dd945STJhwoSccsopufHGG1NVVZVx48Zl+PDhOf3005MkkyZNyvTp02vPuW7dutxwww155JFH0qdPnyTJAQcckFmzZuXWW2/N8ccfv8VZu3btmnbt2m3xvZqamlx66aU59thjc+ihh9b797CtCF8AAAAA/8XEiRMzefLkLFmyJO+8807Wr1+fnj171tnm8ssvzwMPPJAJEybkoYceSocOHbZ4rCVLlqR79+61r0eMGFEbtg455JA0a/aXG/KqqqrqhKPmzZunQ4cOWb58eZLk+eefT48ePWqjV5Ice+yxqampyYIFC1JZWZmlS5emd+/ete+3aNEivXr1qr3d8cUXX8yaNWty0kkn1Zlz/fr1OeKII7b6O5k/f/5W37v44ovz3HPPZdasWVvdpjEIXwAAAAB/5a677soVV1yRMWPGpE+fPmnbtm2+973vZc6cOXW2W758eRYuXJjmzZvnhRdeyMknn7zF4+2777555plnal//9a2AO+20U51tKyoqtrhWU1PzET/VX7z3PLBp06Zlv/32q/Neq1at6n28Sy65JA8++GCeeOKJdOzYsUFmbCjCFwAAALBDa9myZTZu3Fj7+sknn8wxxxyTiy66qHZt0aJFm+03ePDgHHbYYRkyZEjOP//89O3bN926ddtsuxYtWuTAAw9skFm7deuWKVOmZPXq1bVXfT355JO1t0q2a9cu++yzT+bMmZPjjjsuSbJhw4bMmzcvRx55ZJKke/fuadWqVZYsWbLV2xo/iE2bNuWb3/xm7r///syYMSNdunT56B+wgXm4PQAAALBD69y5c+bMmZPFixfnjTfeyEEHHZRf/epXmT59ehYuXJiRI0dm7ty5dfaZOHFiZs+enalTp2bAgAE59dRTM2DAgKxfv36bzjpgwIBUVlZm4MCBee655/L444/nm9/8Zs4+++xUVVUlSYYOHZrRo0fngQceyPz583PRRRdlxYoVtcdo27Ztrrjiilx22WWZOnVqFi1alKeffjrf//73M3Xq1K2e++CDD67zkPyLL744//qv/5o777wzbdu2zbJly7Js2bK888472+zz15fwBQAAAOzQrrjiijRv3jzdu3fPnnvumX79+uX0009P//7907t37/znf/5nnau/5s+fnyuvvDI333xzOnXqlCS5+eab88Ybb2TkyJHbdNY2bdpk+vTpefPNN/OpT30qX/nKV/K5z30uEyZMqN3m8ssvz9lnn52BAwfW3qp52mmn1TnOddddl5EjR6a6ujrdunXLySefnGnTpr3vVVsLFiyo/ebGJLnllluycuXKnHDCCdlnn31qf+6+++6G/+AfUsWm955s1oStWrUq7dq1y8qVK7Prrrs29jjADqrz1dMaewQa2OLKrzX2CDSgw7rs39gj0IDuqd7Q2CPQgLrNf76xRwA+JmvXrs1LL72ULl26pLKysrHHYTv2fn9L9elErvgCAAAAoEjCFwAAAABFEr4AAAAAKJLwBQAAAECRhC8AAAAAiiR8AQAAAFAk4QsAAACAIglfAAAAABRJ+AIAAACgSC0aewAAAKBsEy98rLFHoIFdPOnExh4BmrwpU6bk0ksvzYoVKxp7lCTJoEGDsmLFijzwwAMfaPsZM2bks5/9bP70pz+lffv223S2bUn4AgAAALap5w/u9rGer9v85+u1/QknnJCePXtm3LhxDTZD//7984UvfKHBjtcUPfHEE/ne976XefPmZenSpbn//vtz6qmnNvZYdbjVEQAAAKCBtW7dOnvttVdjj7FNrV69Oj169MjEiRMbe5StEr4AAACAHdagQYMyc+bMjB8/PhUVFamoqMiiRYsyZMiQdOnSJa1bt07Xrl0zfvz42n3Wrl2bQw45JBdccEHt2qJFi9K2bdtMnjw5yZ9vdfzvbhEcNGhQTj311Nxwww2pqqpK+/bt853vfCcbNmzIlVdemd133z0dO3bMj370ozr7PfvssznxxBPTunXrdOjQIRdccEHefvvt2vc3btyYYcOGpX379unQoUO+9a1vZdOmTXWOUVNTk+rq6trP2KNHj9x33331+t397d/+ba6//vqcdtpp9drv4yR8AQAAADus8ePHp0+fPjn//POzdOnSLF26NB07dkzHjh1z77335ve//31GjRqVESNG5J577kmSVFZW5o477sjUqVPzk5/8JBs3bsxZZ52Vk046KYMHD67X+R977LG8+uqreeKJJzJ27Nhcc801+dKXvpTddtstc+bMyYUXXpivf/3r+eMf/5jkz1dZ9evXL7vttlvmzp2be++9N4888kguueSS2mOOGTMmU6ZMyeTJkzNr1qy8+eabuf/+++uct7q6OrfffnsmTZqU3/3ud7nsssty1llnZebMmVudtaKiIlOmTKnX52tsnvEFAAAA7LDatWuXli1bpk2bNtl7771r16+99traf3fp0iWzZ8/OPffckzPOOCNJ0rNnz1x//fU577zzcuaZZ+bll1/Ogw8+WO/z77777rnpppvSrFmzdO3aNd/97nezZs2ajBgxIkkyfPjwjB49OrNmzcqZZ56ZO++8M2vXrs3tt9+enXfeOUkyYcKEnHLKKbnxxhtTVVWVcePGZfjw4Tn99NOTJJMmTcr06dNrz7lu3brccMMNeeSRR9KnT58kyQEHHJBZs2bl1ltvzfHHH7/FWbt27Zp27drV+zM2JuELAAAA4L+YOHFiJk+enCVLluSdd97J+vXr07NnzzrbXH755XnggQcyYcKEPPTQQ+nQocMWj7VkyZJ079699vWIESNqw9YhhxySZs3+ckNeVVVVDj300NrXzZs3T4cOHbJ8+fIkyfPPP58ePXrURq8kOfbYY1NTU5MFCxaksrIyS5cuTe/evWvfb9GiRXr16lV7u+OLL76YNWvW5KSTTqoz5/r163PEEUds9Xcyf/78rb7XVAlfAAAAAH/lrrvuyhVXXJExY8akT58+adu2bb73ve9lzpw5dbZbvnx5Fi5cmObNm+eFF17IySefvMXj7bvvvnnmmWdqX+++++61/95pp53qbFtRUbHFtZqamo/4qf7iveeBTZs2Lfvtt1+d91q1atVg52kKhC8AAABgh9ayZcts3Lix9vWTTz6ZY445JhdddFHt2qJFizbbb/DgwTnssMMyZMiQnH/++enbt2+6deu22XYtWrTIgQce2CCzduvWLVOmTMnq1atrr/p68skna2+VbNeuXfbZZ5/MmTMnxx13XJJkw4YNmTdvXo488sgkSffu3dOqVassWbJkq7c1lsLD7QEAAIAdWufOnTNnzpwsXrw4b7zxRg466KD86le/yvTp07Nw4cKMHDkyc+fOrbPPxIkTM3v27EydOjUDBgzIqaeemgEDBmT9+vXbdNYBAwaksrIyAwcOzHPPPZfHH3883/zmN3P22WenqqoqSTJ06NCMHj06DzzwQObPn5+LLrooK1asqD1G27Ztc8UVV+Syyy7L1KlTs2jRojz99NP5/ve/n6lTp2713AcffHCdh+S//fbbeeaZZ2qvZnvppZfyzDPPZMmSJdvks38YrvgCAAAAtqlu859v7BHe1xVXXJGBAweme/fueeeddzJ//vz8+te/Tv/+/VNRUZGvfvWrueiii/LQQw8l+fOzrq688srcdttt6dSpU5Lk5ptvzuGHH56RI0fmxhtv3GaztmnTJtOnT8/QoUPzqU99Km3atMmXv/zljB07tnabyy+/PEuXLs3AgQPTrFmzDB48OKeddlpWrlxZu811112XPffcM9XV1fnDH/6Q9u3b58gjj6x99tiWLFiwoM4xfvWrX+Wzn/1s7ethw4YlSQYOHNhkvv2xYtN7TzZrwlatWpV27dpl5cqV2XXXXRt7HGAH1fnqaY09Ag1sceXXGnsEGtBhXfZv7BFoQPdUb2jsEWhAj50wsbFHoIFdPOnExh6BJmrt2rV56aWX0qVLl1RWVjb2OGzH3u9vqT6dyK2OAAAAABRJ+AIAAACgSMIXAAAAAEUSvgAAAAAokvAFAAAAQJGELwAAAACKJHwBAAAAUCThCwAAAIAiCV8AAAAAFEn4AgAAAOAjmTFjRioqKrJixYoPvE/nzp0zbty4bTZTkrTYpkcHAAAAdngTL3zsYz3fxZNO/FjP93FbvHhxunTpkl//+tfp2bNnY4/TpLniCwAAAKABbdy4MTU1NZutr1+/vhGm2bEJXwAAAMAOraamJt/97ndz4IEHplWrVtl///3zj//4j0m2fAvfM888k4qKiixevDhJMmXKlLRv3z4//elP071797Rq1SpLlixJ586dc9111+Wcc87JrrvumgsuuCBJMmvWrHzmM59J69at06lTp/zd3/1dVq9eXXv8zp0754YbbsjgwYPTtm3b7L///vnBD35Q+36XLl2SJEcccUQqKipywgknbPFzvTf79OnTc8QRR6R169Y58cQTs3z58jz00EPp1q1bdt1113zta1/LmjVravdbt25d/u7v/i577bVXKisr8+lPfzpz586tc+yf/exn+Zu/+Zu0bt06n/3sZ2t/F3/tv/ucHwfhCwAAANihDR8+PKNHj87IkSPz+9//PnfeeWeqqqrqdYw1a9bkxhtvzD//8z/nd7/7Xfbaa68kyT/90z+lR48e+fWvf52RI0dm0aJFOfnkk/PlL385v/3tb3P33Xdn1qxZueSSS+ocb8yYMenVq1d+/etf56KLLso3vvGNLFiwIEnyy1/+MknyyCOPZOnSpfnxj3/8vrN9+9vfzoQJE/LUU0/llVdeyRlnnJFx48blzjvvzLRp0/Lv//7v+f73v1+7/be+9a3827/9W6ZOnZqnn346Bx54YPr165c333wzSfLKK6/k9NNPzymnnJJnnnkm5513Xq6++uo65/ygn3Nb84wvAAAAYIf11ltvZfz48ZkwYUIGDhyYJPnkJz+ZT3/60/U6zrvvvpubb745PXr0qLN+4okn5vLLL699fd5552XAgAG59NJLkyQHHXRQbrrpphx//PG55ZZbUllZmST5whe+kIsuuihJctVVV+X//J//k8cffzxdu3bNnnvumSTp0KFD9t577/92tuuvvz7HHntskmTIkCEZPnx4Fi1alAMOOCBJ8pWvfCWPP/54rrrqqqxevTq33HJLpkyZkr/9279Nkvzwhz/Mz3/+89x222258sorc8stt+STn/xkxowZkyTp2rVrnn322dx4442156yurv5An3NbE74AAACAHdbzzz+fdevW5XOf+9xHOk7Lli1z+OGHb7beq1evOq9/85vf5Le//W3uuOOO2rVNmzalpqYmL730Urp165YkdY5VUVGRvffeO8uXL/9Qs/31saqqqtKmTZva6PXe2ntXkS1atCjvvvtubShLkp122ilHH310nn/++SR//p317t27zjn69OnzoT7ntiZ8AQAAADus1q1bv+/7zZr9+SlRmzZtql179913t3icioqKzdZ33nnnOq/ffvvtfP3rX8/f/d3fbbbt/vvvX/vvnXbaqc57FRUVW3xg/gfx18eqqKho0GNvzQf9nNua8AUAAADssA466KC0bt06jz76aM4777zN3n/vtsKlS5dmt912S/Lnh9t/WEceeWR+//vf58ADD/zQx2jZsmWSP397ZEP75Cc/mZYtW+bJJ5/MJz7xiSR/Dn1z586tvW2xW7du+elPf1pnv1/84hd1XjfE52wIHm4PAAAA7LAqKytz1VVX5Vvf+lZuv/32LFq0KL/4xS9y2223JUkOPPDAdOrUKd/+9rfzwgsvZNq0abXPtvowrrrqqjz11FO55JJL8swzz+SFF17IT37yk3o99H2vvfZK69at8/DDD+e1117LypUrP/Q8/9XOO++cb3zjG7nyyivz8MMP5/e//33OP//8rFmzJkOGDEmSXHjhhXnhhRdy5ZVXZsGCBbnzzjszZcqUBv+cDcEVXwAAAMA2dfGkExt7hPc1cuTItGjRIqNGjcqrr76affbZJxdeeGGSP98m+H//7//NN77xjRx++OH51Kc+leuvvz7/+3//7w91rsMPPzwzZ87M3//93+czn/lMNm3alE9+8pPp37//Bz5GixYtctNNN+U73/lORo0alc985jOZMWPGh5pnS0aPHp2ampqcffbZeeutt9KrV69Mnz699oq3/fffP//2b/+Wyy67LN///vdz9NFH54YbbsjgwYMb9HM2hIpNf32TahO1atWqtGvXLitXrsyuu+7a2OMAO6jOV09r7BFoYIsrv9bYI9CADuvy8T0rgm3vnuoNjT0CDeixEyY29gg0sKYeMWg8a9euzUsvvZQuXbp8bN/aR5ne72+pPp3IrY4AAAAAFEn4AgAAAKBIwhcAAAAARRK+AAAAACiS8AUAAAA0qO3ge/Ro4hrqb0j4AgAAABpE8+bNkyTr169v5EnY3r33N/Te39SH1eLD7DRx4sR873vfy7Jly9KjR498//vfz9FHH73V7ceNG5dbbrklS5YsyR577JGvfOUrqa6u9tWmAAAAUJAWLVqkTZs2ef3117PTTjulWTPX21B/NTU1ef3119OmTZu0aPGh0lWteu999913Z9iwYZk0aVJ69+6dcePGpV+/flmwYEH22muvzba/8847c/XVV2fy5Mk55phjsnDhwgwaNCgVFRUZO3bsRxoeAAAAaDoqKiqyzz775KWXXsrLL7/c2OOwHWvWrFn233//VFRUfKTj1Dt8jR07Nueff37OPffcJMmkSZMybdq0TJ48OVdfffVm2z/11FM59thj87WvfS1J0rlz53z1q1/NnDlzPtLgAAAAQNPTsmXLHHTQQW535CNp2bJlg1wxWK/wtX79+sybNy/Dhw+vXWvWrFn69u2b2bNnb3GfY445Jv/6r/+aX/7ylzn66KPzhz/8IT/72c9y9tlnb/U869aty7p162pfr1q1qj5jAgAAAI2oWbNmHm9Ek1Cv8PXGG29k48aNqaqqqrNeVVWV+fPnb3Gfr33ta3njjTfy6U9/Ops2bcqGDRty4YUXZsSIEVs9T3V1da699tr6jAYAAAAAdWzzp8zNmDEjN9xwQ26++eY8/fTT+fGPf5xp06bluuuu2+o+w4cPz8qVK2t/XnnllW09JgAAAACFqdcVX3vssUeaN2+e1157rc76a6+9lr333nuL+4wcOTJnn312zjvvvCTJYYcdltWrV+eCCy7I3//9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VVVVmT9//hb3WbZs2Ra3X7Zs2VbPM3z48DqxrKamJm+++WY6dOiQioqK+owMAFCM9/7fTVfBAwA7sk2bNuWtt97Kvvvu+99uW6/w9XFp1apVWrVqVWetffv2jTMMAEATs+uuuwpfAMAO7b+70us99Xq4/R577JHmzZvntddeq7P+2muvZe+9997iPnvvvXe9tgcAAACAhlCv8NWyZcscddRRefTRR2vXampq8uijj6ZPnz5b3KdPnz51tk+Sn//851vdHgAAAAAaQr1vdRw2bFgGDhyYXr165eijj864ceOyevXqnHvuuUmSc845J/vtt1+qq6uTJEOHDs3xxx+fMWPG5Itf/GLuuuuu/OpXv8oPfvCDhv0kAACFa9WqVa655prNHgkBAMCW1Tt89e/fP6+//npGjRqVZcuWpWfPnnn44YdrH2C/ZMmSNGv2lwvJjjnmmNx55535h3/4h4wYMSIHHXRQHnjggRx66KEN9ykAAHYArVq1yre//e3GHgMAYLtRsWnTpk2NPQQAAAAANLR6PeMLAAAAALYXwhcAAAAARRK+AAAAACiS8AUAAABAkYQvAIAmbMOGDXnkkUdy66235q233kqSvPrqq3n77bcbeTIAgKbPtzoCADRRL7/8ck4++eQsWbIk69aty8KFC3PAAQdk6NChWbduXSZNmtTYIwIANGmu+AIAaKKGDh2aXr165U9/+lNat25du37aaafl0UcfbcTJAAC2Dy0aewAAALbs//v//r889dRTadmyZZ31zp075z/+4z8aaSoAgO2HK74AAJqompqabNy4cbP1P/7xj2nbtm0jTAQAsH0RvgAAmqjPf/7zGTduXO3rioqKvP3227nmmmvyhS98ofEGAwDYTni4PQBAE/XKK6/k5JNPzqZNm/LCCy+kV69eeeGFF7LHHnvkiSeeyF577dXYIwIANGnCFwBAE7Zhw4bcfffd+c1vfpO33347Rx55ZAYMGFDnYfcAAGyZ8AUA0AS9++67Ofjgg/Pggw+mW7dujT0OAMB2yTO+AACaoJ122ilr165t7DEAALZrwhcAQBN18cUX58Ybb8yGDRsaexQAgO2SWx0BAJqo0047LY8++mh22WWXHHbYYdl5553rvP/jH/+4kSYDANg+tGjsAQAA2LL27dvny1/+cmOPAQCw3XLFFwAAAABFcsUXAEAT9/rrr2fBggVJkq5du2bPPfds5IkAALYPHm4PANBErV69OoMHD84+++yT4447Lscdd1z23XffDBkyJGvWrGns8QAAmjzhCwCgiRo2bFhmzpyZ//f//l9WrFiRFStW5Cc/+UlmzpyZyy+/vLHHAwBo8jzjCwCgidpjjz1y33335YQTTqiz/vjjj+eMM87I66+/3jiDAQBsJ1zxBQDQRK1ZsyZVVVWbre+1115udQQA+ABc8QUA0ER97nOfS4cOHXL77bensrIySfLOO+9k4MCBefPNN/PII4808oQAAE2b8AUA0EQ999xz6devX9atW5cePXokSX7zm9+ksrIy06dPzyGHHNLIEwIANG3CFwBAE7ZmzZrccccdmT9/fpKkW7duGTBgQFq3bt3IkwEANH3CFwAAAABF8nB7AIAmqrq6OpMnT95sffLkybnxxhsbYSIAgO2L8AUA0ETdeuutOfjggzdbP+SQQzJp0qRGmAgAYPsifAEANFHLli3LPvvss9n6nnvumaVLlzbCRAAA2xfhCwCgierUqVOefPLJzdaffPLJ7Lvvvo0wEQDA9qVFYw8AAMCWnX/++bn00kvz7rvv5sQTT0ySPProo/nWt76Vyy+/vJGnAwBo+nyrIwBAE7Vp06ZcffXVuemmm7J+/fokSWVlZa666qqMGjWqkacDAGj6hC8AgCbu7bffzvPPP5/WrVvnoIMOSqtWrRp7JACA7YLwBQCwnVi1alUee+yxdO3aNd26dWvscQAAmjwPtwcAaKLOOOOMTJgwIUnyzjvvpFevXjnjjDNy+OGH59/+7d8aeToAgKZP+AIAaKKeeOKJfOYzn0mS3H///dm0aVNWrFiRm266Kddff30jTwcA0PQJXwAATdTKlSuz++67J0kefvjhfPnLX06bNm3yxS9+MS+88EIjTwcA0PQJXwAATVSnTp0ye/bsrF69Og8//HA+//nPJ0n+9Kc/pbKyspGnAwBo+lo09gAAAGzZpZdemgEDBmSXXXbJJz7xiZxwwglJ/nwL5GGHHda4wwEAbAd8qyMAQBM2b968LFmyJCeddFJ22WWXJMm0adPSvn37HHvssY08HQBA0yZ8AQAAAFAkz/gCAAAAoEjCFwAAAABFEr4AAAAAKJLwBQAAAECRhC8AgCaqpqZmq+tLliz5mKcBANj+CF8AAE3MqlWrcsYZZ2TnnXdOVVVVRo0alY0bN9a+//rrr6dLly6NOCEAwPahRWMPAABAXSNHjsxvfvOb/Mu//EtWrFiR66+/Pk8//XR+/OMfp2XLlkmSTZs2NfKUAABNX8Um/9UEANCkfOITn8jUqVNzwgknJEneeOONfPGLX0z79u3z05/+NCtWrMi+++5b5yowAAA251ZHAIAm5vXXX88nPvGJ2td77LFHHnnkkbz11lv5whe+kDVr1jTidAAA2w/hCwCgidl///3z/PPP11lr27Zt/v3f/z3vvPNOTjvttEaaDABg+yJ8AQA0MZ///Ofzox/9aLP1XXbZJdOnT09lZWUjTAUAsP3xjC8AgCbmT3/6U1599dUccsghW3z/rbfeytNPP53jjz/+Y54MAGD7InwBADRB7777bk4++eRMmjQpBx10UGOPAwCwXXKrIwBAE7TTTjvlt7/9bWOPAQCwXRO+AACaqLPOOiu33XZbY48BALDdatHYAwAAsGUbNmzI5MmT88gjj+Soo47KzjvvXOf9sWPHNtJkAADbB+ELAKCJeu6553LkkUcmSRYuXFjnvYqKisYYCQBgu+Lh9gAAAAAUyTO+AAAAACiS8AUAAABAkYQvAAAAAIokfAEAAABQJOELAAAAgCIJXwAAAAAUSfgCAAAAoEjCFwAAAABF+v8Bd/YVQATSOx8AAAAASUVORK5CYII=\n"
|
|
},
|
|
"metadata": {}
|
|
}
|
|
],
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"jupyter": {
|
|
"outputs_hidden": false,
|
|
"source_hidden": false
|
|
},
|
|
"nteract": {
|
|
"transient": {
|
|
"deleting": false
|
|
}
|
|
},
|
|
"gather": {
|
|
"logged": 1671555127797
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"ls \"/tmp/evaluate\""
|
|
],
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": "deploy_flag perf_comparison.png predictions.csv score.txt\r\n"
|
|
}
|
|
],
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"jupyter": {
|
|
"outputs_hidden": false,
|
|
"source_hidden": false
|
|
},
|
|
"nteract": {
|
|
"transient": {
|
|
"deleting": false
|
|
}
|
|
},
|
|
"vscode": {
|
|
"languageId": "shellscript"
|
|
},
|
|
"gather": {
|
|
"logged": 1671555128073
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernel_info": {
|
|
"name": "sklearn"
|
|
},
|
|
"kernelspec": {
|
|
"name": "sklearn",
|
|
"language": "python",
|
|
"display_name": "sklearn"
|
|
},
|
|
"nteract": {
|
|
"version": "nteract-front-end@1.0.0"
|
|
},
|
|
"vscode": {
|
|
"interpreter": {
|
|
"hash": "c87d6401964827bd736fe8e727109b953dd698457ca58fb5acabab22fd6dac41"
|
|
}
|
|
},
|
|
"language_info": {
|
|
"name": "python",
|
|
"version": "3.7.5",
|
|
"mimetype": "text/x-python",
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"pygments_lexer": "ipython3",
|
|
"nbconvert_exporter": "python",
|
|
"file_extension": ".py"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0
|
|
} |