{ "cells": [ { "cell_type": "markdown", "id": "32e6184a-41e1-4948-b870-f7bf309842eb", "metadata": {}, "source": [ "Загрузка и подготовка данных из CSV\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "4a781ce0-6c44-49d8-a129-acd160bfcdb2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Student_ID Age Gender Academic_Level Country Avg_Daily_Usage_Hours \\\n", "0 1 19 Female Undergraduate Bangladesh 5.2 \n", "1 2 22 Male Graduate India 2.1 \n", "2 3 20 Female Undergraduate USA 6.0 \n", "3 4 18 Male High School UK 3.0 \n", "4 5 21 Male Graduate Canada 4.5 \n", "\n", " Most_Used_Platform Affects_Academic_Performance Sleep_Hours_Per_Night \\\n", "0 Instagram Yes 6.5 \n", "1 Twitter No 7.5 \n", "2 TikTok Yes 5.0 \n", "3 YouTube No 7.0 \n", "4 Facebook Yes 6.0 \n", "\n", " Mental_Health_Score Relationship_Status Conflicts_Over_Social_Media \\\n", "0 6 In Relationship 3 \n", "1 8 Single 0 \n", "2 5 Complicated 4 \n", "3 7 Single 1 \n", "4 6 In Relationship 2 \n", "\n", " Addicted_Score \n", "0 8 \n", "1 3 \n", "2 9 \n", "3 4 \n", "4 7 \n", "\n", "RangeIndex: 705 entries, 0 to 704\n", "Data columns (total 13 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Student_ID 705 non-null int64 \n", " 1 Age 705 non-null int64 \n", " 2 Gender 705 non-null object \n", " 3 Academic_Level 705 non-null object \n", " 4 Country 705 non-null object \n", " 5 Avg_Daily_Usage_Hours 705 non-null float64\n", " 6 Most_Used_Platform 705 non-null object \n", " 7 Affects_Academic_Performance 705 non-null object \n", " 8 Sleep_Hours_Per_Night 705 non-null float64\n", " 9 Mental_Health_Score 705 non-null int64 \n", " 10 Relationship_Status 705 non-null object \n", " 11 Conflicts_Over_Social_Media 705 non-null int64 \n", " 12 Addicted_Score 705 non-null int64 \n", "dtypes: float64(2), int64(5), object(6)\n", "memory usage: 71.7+ KB\n", "None\n", "Train shape: (564, 11), Test shape: (141, 11)\n", "Class distribution in train:\n", "Addicted_Label\n", "1 0.664894\n", "0 0.335106\n", "Name: proportion, dtype: float64\n" ] } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import LabelEncoder\n", "\n", "# Загрузка данных из CSV\n", "df = pd.read_csv(\"Students Social Media Addiction.csv\")\n", "\n", "# Быстрый осмотр\n", "print(df.head())\n", "print(df.info())\n", "\n", "# Преобразуем категориальные переменные в числовые с помощью LabelEncoder\n", "label_encoders = {}\n", "categorical_cols = [\"Gender\", \"Academic_Level\", \"Country\", \"Most_Used_Platform\", \"Relationship_Status\", \"Affects_Academic_Performance\"]\n", "\n", "for col in categorical_cols:\n", " le = LabelEncoder()\n", " df[col] = le.fit_transform(df[col])\n", " label_encoders[col] = le\n", "\n", "# Целевая переменная: Addicted_Score (например, можно классифицировать как 'high' или 'low')\n", "# Для простоты создадим бинарную цель: Addicted_Score >= 6 - \"Addicted\", иначе \"Not Addicted\"\n", "df[\"Addicted_Label\"] = (df[\"Addicted_Score\"] >= 6).astype(int)\n", "\n", "# Выделяем признаки и целевую переменную\n", "X = df.drop(columns=[\"Student_ID\", \"Addicted_Score\", \"Addicted_Label\"])\n", "y = df[\"Addicted_Label\"]\n", "\n", "# Делим на train и test\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)\n", "\n", "print(f\"Train shape: {X_train.shape}, Test shape: {X_test.shape}\")\n", "print(f\"Class distribution in train:\\n{y_train.value_counts(normalize=True)}\")\n" ] }, { "cell_type": "markdown", "id": "6ea74112-ba53-45c0-8ede-49155e903890", "metadata": {}, "source": [ "Обучение модели RidgeClassifier" ] }, { "cell_type": "code", "execution_count": 3, "id": "d03ccd19-aba5-4fa9-b9a8-13e24039220e", "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import RidgeClassifier\n", "\n", "clf = RidgeClassifier(tol=1e-2, solver=\"sparse_cg\")\n", "clf.fit(X_train, y_train)\n", "\n", "pred = clf.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 4, "id": "9c85dc8e-1430-4a1f-8b2a-465798ea0f1b", "metadata": {}, "outputs": [], "source": [ "from sklearn import metrics\n", "from sklearn.utils.extmath import density\n", "from time import time\n", "\n", "def benchmark(clf, X_train, y_train, X_test, y_test, custom_name=False):\n", " print(\"_\" * 80)\n", " print(\"Training: \")\n", " print(clf)\n", " t0 = time()\n", " clf.fit(X_train, y_train)\n", " train_time = time() - t0\n", " print(f\"train time: {train_time:.3f}s\")\n", "\n", " t0 = time()\n", " pred = clf.predict(X_test)\n", " test_time = time() - t0\n", " print(f\"test time: {test_time:.3f}s\")\n", "\n", " score = metrics.accuracy_score(y_test, pred)\n", " print(f\"accuracy: {score:.3f}\")\n", "\n", " if hasattr(clf, \"coef_\"):\n", " if len(clf.coef_.shape) == 2:\n", " n_features = clf.coef_.shape[1]\n", " else:\n", " n_features = clf.coef_.shape[0]\n", " print(f\"dimensionality: {n_features}\")\n", " print(f\"density: {density(clf.coef_)}\")\n", " print()\n", "\n", " print()\n", " clf_descr = str(custom_name) if custom_name else clf.__class__.__name__\n", " return clf_descr, score, train_time, test_time\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "79250597-7639-41fb-8c70-d87d58afe8ac", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "LogisticRegression(C=5, max_iter=1000)\n", "train time: 0.052s\n", "test time: 0.001s\n", "accuracy: 0.965\n", "dimensionality: 11\n", "density: 1.0\n", "\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "RidgeClassifier(solver='sparse_cg')\n", "train time: 0.001s\n", "test time: 0.000s\n", "accuracy: 0.965\n", "dimensionality: 11\n", "density: 1.0\n", "\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "KNeighborsClassifier(n_neighbors=100)\n", "train time: 0.001s\n", "test time: 0.004s\n", "accuracy: 0.716\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "RandomForestClassifier()\n", "train time: 0.060s\n", "test time: 0.003s\n", "accuracy: 0.979\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "LinearSVC(C=0.1, dual=False)\n", "train time: 0.001s\n", "test time: 0.000s\n", "accuracy: 0.965\n", "dimensionality: 11\n", "density: 1.0\n", "\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "SGDClassifier(early_stopping=True, loss='log_loss', n_iter_no_change=3)\n", "train time: 0.002s\n", "test time: 0.000s\n", "accuracy: 0.936\n", "dimensionality: 11\n", "density: 1.0\n", "\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "NearestCentroid()\n", "train time: 0.001s\n", "test time: 0.001s\n", "accuracy: 0.539\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "ComplementNB(alpha=0.1)\n", "train time: 0.001s\n", "test time: 0.000s\n", "accuracy: 0.837\n", "\n" ] } ], "source": [ "from sklearn.linear_model import LogisticRegression, RidgeClassifier, SGDClassifier\n", "from sklearn.neighbors import KNeighborsClassifier, NearestCentroid\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.svm import LinearSVC\n", "from sklearn.naive_bayes import ComplementNB\n", "\n", "classifiers = [\n", " (LogisticRegression(C=5, max_iter=1000), \"Logistic Regression\"),\n", " (RidgeClassifier(alpha=1.0, solver=\"sparse_cg\"), \"Ridge Classifier\"),\n", " (KNeighborsClassifier(n_neighbors=100), \"kNN\"),\n", " (RandomForestClassifier(), \"Random Forest\"),\n", " (LinearSVC(C=0.1, dual=False, max_iter=1000), \"Linear SVC\"),\n", " (SGDClassifier(loss=\"log_loss\", alpha=1e-4, n_iter_no_change=3, early_stopping=True), \"log-loss SGD\"),\n", " (NearestCentroid(), \"NearestCentroid\"),\n", " (ComplementNB(alpha=0.1), \"Complement naive Bayes\"),\n", "]\n", "\n", "results = []\n", "for clf, name in classifiers:\n", " print(\"=\" * 80)\n", " results.append(benchmark(clf, X_train, y_train, X_test, y_test, name))\n" ] }, { "cell_type": "markdown", "id": "41412766-f5a2-4ca7-aa6c-18f54484b0be", "metadata": {}, "source": [ "Визуализация результатов" ] }, { "cell_type": "code", "execution_count": 8, "id": "c75ef28c-88d4-489c-9b23-8b9307f106a9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "LogisticRegression(max_iter=1000)\n", "train time: 0.043s\n", "test time: 0.001s\n", "accuracy: 0.965\n", "dimensionality: 11\n", "density: 1.0\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "RidgeClassifier(solver='sparse_cg')\n", "train time: 0.001s\n", "test time: 0.000s\n", "accuracy: 0.965\n", "dimensionality: 11\n", "density: 1.0\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "KNeighborsClassifier(n_neighbors=10)\n", "train time: 0.001s\n", "test time: 0.003s\n", "accuracy: 0.908\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "RandomForestClassifier()\n", "train time: 0.061s\n", "test time: 0.003s\n", "accuracy: 0.979\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "LinearSVC()\n", "train time: 0.001s\n", "test time: 0.000s\n", "accuracy: 0.965\n", "dimensionality: 11\n", "density: 1.0\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "SGDClassifier(early_stopping=True, loss='log_loss', n_iter_no_change=3)\n", "train time: 0.002s\n", "test time: 0.000s\n", "accuracy: 0.752\n", "dimensionality: 11\n", "density: 1.0\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "NearestCentroid()\n", "train time: 0.001s\n", "test time: 0.001s\n", "accuracy: 0.539\n", "\n", "================================================================================\n", "________________________________________________________________________________\n", "Training: \n", "ComplementNB(alpha=0.1)\n", "train time: 0.001s\n", "test time: 0.000s\n", "accuracy: 0.837\n", "\n" ] }, { "data": { "image/png": "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3L766iu3XyFRQWvx4sVxXqtAVahQIfv111/t6aefdkHRHzpjY2Pt6quvdufV/ldffdWGDRuW4Po6plixYrZkyRKbOnWqffvtty74Bfv+++/t77//tnnz5tn48eNt1KhRdvnll7vX6dx33HGH3X777fbnn3+e1nvw119/2aWXXmoRERG2atUqe+WVV+ytt96yxx57LMH96n4WLFjg7ufgwYMuTDdt2tSWLl1qs2bNsj179lj37t3d8bt27XLBvn///rZu3ToXOHW/Pp/P7rvvPnecqrY6To/WrVvbGfEhWVFRUT69TfoKAAAAIHOs2xXle37uBt/oz3/3RVx8lS80NNRXqFAhX758+dzv57ly5fJNmzYt2XNcdtllvnvvvTfwvG3btr7zzz8/zjERERG+YcOGue9nz57ty507t++vv/4K7P/mm2/c9WbMmBHIBkWLFvUdOnQocMxXX33l2rN79273vE+fPr4qVar4YmJiAsfUqVPHd8EFFwSenzp1yt3PRx99lGT7dR7/ffsf1157rds3YsQId87Y2NjA8ZGRkb7ChQsHrqv7bdq0aZxzjh071tepU6c423bu3Onua8OGDb5ly5a577dt25Zkm7p16+ZLL4whBQAAAJBlbNt32IZ+stKW7zhooblCLFeI2e7d0ZanYkNr0+9Bu6ttZftk8quWO3duu+aaawKvi4mJcV1kP/nkE1c91HjJ48ePu+67wRo1ahTnubq67t27132viqC6BJcvXz6wv1WrVgnaqO6sqrL6tWnTxlVXN2zY4LrAyjnnnGO5cv1fh1Rtb9CgQeC5ut2WKFEicO2ktGvXzlU//fzXVVvVNnWbDW6Hug6r6lq5cmW3TVXjYKqm/vDDD667bnybN2+2Tp06WYcOHdw9qouvnl977bWuspsRCKQAAAAAskwY7Ra5wA4d/984yJhYn8W4Xp1mIXnz26bjhe3Bn6JtxtMvWrcOrV0X1Ztvvtkd+8wzz9gLL7xgEyZMCARGjZ1UMA2mWXqDKdApTKa3xK5zOtcuVKiQ1axZ87TbERycRYG1a9euiU4GpXCuoKwuzOoSPWfOHHvxxRftoYcect2MNbtxemMMKQAAAIAsQZVRhVEF0cRou/Y/MH21jRgxwh5++GE7evSo26cxkt26dbObbrrJGjdubNWrV7eNGzem6fr16tWznTt3urGRfr/88kuC41avXu0m+fHTtVUNrVOnjmWWevXq2aJFi9zYzuB2FClSxE2YlJRmzZq5SZmqVq3qgm7wwx9eFZRVbR09erStWLHCjUGdMWOG26fvVY1OLwRSAAAAAJ5bvzvaddNNKoz6af/S7Qes4QWdXTUvMjLSba9Vq1agsqfurJowSJP1pIVmk61du7ZbUkZdW+fPn++qg/FpBl4do8mT1P118ODBbgIlf3fdzDBw4EAXnnXt9evXu5lvNXHS0KFD43QVjm/QoEH277//uomLNCmTuunOnj3b+vXr54KmKqHq+qwJj3bs2GGffvqp/fPPPy4Ai4Lsb7/95rona2ZeLcNzJgikAAAAADw3a81uN2Y0NXTcd+v3u5ltNVOuqpWqlqr6p3GPWu5Ey6No6ZW0UJBTJVBVVy2ncsstt9jjjz+e4DiFNIU6zXCr8ZUac/nSSy9ZZqpQoYJ9/fXXbhZhVYQ1a6+6L+t9SI7Gx6qSqvCp8aHq3qyuzVqaRvcfFhbmZgbWDL4K5zrfc88955aJkVtvvdVVglu0aOHWQ9W5zkSIZjY6ozNkc9HR0RYeHm5RUVHuhwMAAAAg/Y35Yq2998s2OxmTcjzJExpivc6raiO71rfMRDZIf1RIk6DSvxbC1V89AAAAAGSssAK5LYXeugE6LrxA3AmCcHYikCbTt3rt2rWuXzUAAACAjNWlQdkUx4/66Tgdj7MfgRQAAACA5+qWDbNmlYumOI5U+1tUKWZ1yhbJtLYh4xBIAQAAAGQJ47s3scL5cicZSrVd+5+9rnGmtw0Zg0AKAAAAIEuoWrKQfTaojTWtVDQQQDWBkT+garv26zhkD7m9bgAAAAAA+ClsThvQ2q1LOnvNHos6etJNYKQxo3TTzX4IpAAAAACy5JhSPZC90WUXAAAAAOAJAikAAAAAwBMEUgAAAACAJwikAAAAAABPEEgBAAAAAJ4gkAIAAAAAPEEgBQAAAAB4gkAKAAAAAPAEgRQAAAAA4AkCKQAAAADAEwRSAAAAAIAnCKQAAAAAAE8QSAEAAAAAniCQAgAAAAA8QSAFAAAAAHiCQJqEyMhIq1+/vkVERHjdFAAAAADIlkJ8Pp/P60ZkZdHR0RYeHm5RUVEWFhbmdXMAAAAAeIRskP6okAIAAAAAPEEgBQAAAAB4gkAKAAAAAPAEgRQAAAAA4AkCKQAAAADAEwRSAAAAAIAnCKQAAAAAAE8QSAEAAACcNapWrWoTJkw47ddPnjzZihYtmq5tyi6qnuF7ezpCfD6fL1OveJZh8VsAAAAgdfr27WsHDx60mTNnZtg1/vnnHytUqJAVLFgwVQHr7rvvdg+/o0eP2n///WelS5c+7WzgFxISYmXKlLELL7zQnnnmGatcubKdzf5Jw3ubXqiQAgAAADhrlCpV6owCU4ECBU4rjAZToWrXrl32119/2fTp023Dhg123XXXWUY7efJkln5vTweBFAAAAECm+Omnn+zcc8+1fPnyWbly5Wz48OF26tSpwH5VLnv27OmqdNr//PPP20UXXRSnwhncrVSdPR999FFXmdQ5y5cvb0OGDHH79Lrt27fbPffc4yqZeiTVZfeLL76wiIgIy58/v5UsWdKuuuqqZO9D5ypbtqxrY+vWre3mm2+2xYsXuwqq32effWbNmjVz56xevbqNHj06zr2uX7/ezj//fLe/fv369u2337rz+qvL27Ztc8+nTJlibdu2dcd98MEHbt+bb75p9erVc9vq1q1rL7/8cuC8J06csDvvvNO1TfurVKli48aNS/H9iv/eyo4dO6xbt25WuHBhF8K7d+9ue/bsCezXuZo0aWLvvfeee62qx9dff737OaZW7lQfCQAAAADxrN8dbbPW7Lboo6ds7d/RFpbr/0JXMFUTL730Utet991333WB7NZbb3WhScFGhg4dagsWLLDPP//cdYUdOXKkLV++3IWexKg6qdD68ccf2znnnGO7d++2VatWuX2ffvqpNW7c2G677TZ3naR89dVXLoA+9NBDrl0KdF9//XWq73/v3r02Y8YMCw0NdQ+ZP3++9e7d2yZOnGgXXHCBbd682bVDRo0aZTExMXbllVe6YPjrr7+6AHfvvfcmen6F9ueee86aNm0aCKV6X1566SW3bcWKFe7+FOL79Onjrqn375NPPnHn37lzp3uk9H7FFxsbGwij+kOCwvSgQYOsR48e9uOPPwaO070pRH/55Zd24MABF1qffPJJe/zxx1P3BmoMKZIWFRWlMbbuKwAAAID/2frPId9VkT/7qgz70lf9wa98NUd85SvcsIOvQK3zfFe/vMDtDzZixAhfnTp1fLGxsYFtkZGRvsKFC/tiYmJ80dHRvjx58vimTp0a2H/w4EFfwYIFfXfddVdgW5UqVXzPP/+8+/65557z1a5d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AMATBFIAAAAAgCcIpAAAAAAATxBIAQAAAACeIJACAAAAADxBIAUAAAAAeIJACgAAAADwBIEUAAAAAOAJAikAAAAAwBMEUgAAAACAJwikAAAAAABPEEgBAAAAAJ4gkAIAAAAAPEEgBQAAAAB4gkAKAAAAAPAEgRQAAAAA4AkCKQAAAADAEwRSAAAAAIAnCKQAAAAAAE8QSAEAAAAAniCQAgBytIsuusjuvvvuDL9O37597corr8zw6wAAcDYhkAIAkM0dOXLEHnzwQatRo4blz5/fSpUqZW3btrXPPvssznGbNm2y/v37W+XKlS1fvnxWoUIF69Chg33wwQd26tSpwHEhISGBR6FChaxWrVoucC9btsyDuwMAnM1ye90AAACQse644w779ddf7cUXX7T69evb/v37beHChe6r3+LFi61jx452zjnnWGRkpNWtW9dtX7p0qXveoEEDa9y4ceD4SZMmWZcuXezYsWO2ceNGe/31161ly5b29ttvW+/evT25TwDA2YcKKQAAQQ4cOOACVbFixaxgwYJ2ySWX2B9//BHnmDfeeMMqVark9l911VU2fvx4K1q0aJquc/z4cRsyZIiVLl3aVS3PP/98W7JkSZx29OzZ01UzCxQo4KqQCoFy4sQJu/POO61cuXLutVWqVLFx48Ylea3PP//cRowYYZdeeqlVrVrVmjdvboMHD3bVUPH5fK7CWbt2bVuwYIF17drVXU+PG264wX7++Wdr1KhRnHPqfsuWLevO16lTJ5s2bZprr9qltgMAkBoEUgBAjrN+d7RN+Hajjflirf154Kj9e/hEYJ+CmaqCCnGLFi1yYU1B7uTJk26/ApsqjnfddZetXLnSLr74Ynv88cfT3IYHHnjApk+fbu+8844tX77catasaZ07d7Z///3X7X/kkUds7dq19s0339i6devslVdesZIlS7p9EydOdO375JNPbMOGDa5LrYJhUhQcv/76a/vvv/8S3a/70DXuu+8+y5Ur8V8N1D03Jffcc4+7xty5c1P5LgAAcjq67AIAcoxt+w7b0E9W2vIdBy00V4jlCjH76+BRm7niL7vmlYV2Z7NCLugpdLZu3dq9RmFP1dCZM2fadddd57q9qmqq8CaqKqr765dffpnqdhw+fNgFzMmTJ7tz+auuCnJvvfWW3X///bZjxw5r2rSptWjRwu0PDpzap+ql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KUJCQmzmzJleNwNZCIEUAAAAQLro27evXXnllUnu37Vrl11yySWWVf3000/Wvn17K168uBUsWNBq1aplffr0sRMnTtj06dOtWLFiSb5Wxw4dOjTwfNOmTdavXz+rWLGi5cuXz6pVq2Y33HCDLV26NJPu5uxAIAUAAACQKcqWLevCmZd8Pp+dOnUqwfa1a9daly5drEWLFjZv3jxbvXq1vfjii5Y3b16LiYmxK664wgXVxOh4BdCbb77ZPVfobN68uW3cuNFee+01d+4ZM2ZY3bp17d57783wezybEEgBAAAAZHqX3W3btrnnn376qbVr185VJBs3bmyLFi2K85qff/7ZLrjgAitQoIBVqlTJhgwZYocPHw7sf++991yILFKkiAu8N954o+3duzew/8cff3TX+eabb1xIVCDWOeObM2eOe/3TTz9tDRo0sBo1ariA+sYbb7hr58mTx66//vpE7+vtt9+2li1b2jnnnOMCryrFqpjOnz/fLrvsMneuJk2a2KhRo+yzzz5Lx3f07EcgBQAAAHDa1u+OtgnfbrQxX6y1tX9H26FjCauPyXnooYfsvvvus5UrV1rt2rVdt1Z/BXPz5s0uFF5zzTX222+/2ZQpU1yYvPPOOwOvP3nypI0dO9ZWrVrlwq6CrgJhfMOHD7cnn3zS1q1bZ40aNUqwX2FUXYpV7UxKr1693NcFCxYEth06dMimTZsWqI7qPn7//XdXCc2VK2HcKlq0aJren+wut9cNAAAAAHD22bbvsA39ZKUt33HQQnOFWK4Qs927oy3m2GG75pWF9tx1ja1qyUIpnkdhVFVEGT16tKsyqvurureOGzfOevbsaXfffbfbr6rjxIkTrW3btvbKK69Y/vz5rX///oFzVa9e3e2PiIhwQbFw4cKBfWPGjLGLL744yXZcd911Nnv2bHduhdPzzjvPOnToYL1797awsDB3jNok77//fmAs7CeffOKqov7q6R9//BHnWCSPCikAAACANIfRbpELbNWfUe55TKzPTsb4zOf73/6VOw+6/TouJcHVynLlyrmv/i63qnpOnjzZBUv/o3PnzhYbG2tbt251xyxbtsy6du1qlStXdt12FShlx44dca6jbr3JCQ0NtUmTJtmff/7puu1WqFDBnnjiCReQVTkNpm63//33X6C7rsKsri0Kp0g9AikAAACANFFl9NDxUy6I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Ic2bN6+bffe7774LzLwbGxvrnt95551eNw8AAABZjMLmtAGt3bqks9fssaijJ90ERhozSjddIOvxPJAeOnTINm3aFHi+detW18W2ePHiVrlyZbcwcZ8+faxFixau+62WfTl8+HBg1l0AAAAgsTGlegDI2jwPpEuXLrV27doFniuAikLo5MmTrUePHvbPP//YyJEj3URGWnN01qxZqV5HFAAAAACQNYX4fL5UrtiUM7H4LQAAAAAhG+SwSY0AAAAAANkXgRQAAAAA4AkCKQAAAADAEwRSAAAAAIAnCKQAAAAAAE8QSJMQGRlp9evXt4iICK+bAgAAAADZEsu+pICpnQEAAAAI2SD9USEFAAAAAHiCQAoAAAAA8ASBFAAAAADgCQIpAAAAAMATBFIAAAAAgCcIpAAAAAAATxBIAQAAAACeIJACAAAAADxBIAUAADhLbdu2zUJCQmzlypVeNyXLueiii+zuu+/2uhkAUkAgBQAASMbu3btt8ODBVr16dcuXL59VqlTJunbtat99953XTTvrKDzPnDkzU6716aef2tixYzP0Gn379nX35H+UKFHCunTpYr/99luGXhfITgikAAAAyVQgmzdvbt9//70988wztnr1aps1a5a1a9fOBg0a5HXzkIzixYtbkSJFMvw6CqC7du1yD/2RInfu3Hb55Zdn+HWB7IJACgAAkISBAwe6ytfixYvtmmuusdq1a9s555xjQ4cOtV9++SVw3I4dO6xbt25WuHBhCwsLs+7du9uePXsC+x999FFr0qSJvf3221a5cmV3nM4dExNjTz/9tJUtW9ZKly5tjz/+eJzr69qvvPKKXXLJJVagQAFXpZ02bVqybV6zZo07XtcoU6aM9erVy/bt2xenK6sqvurOWqxYMXfMG2+8YYcPH7Z+/fq5EFezZk375ptv0nzeIUOG2AMPPODCoO5J9+1XtWpV9/Wqq65y9+V/nlQ3ZFU4FfwLFixojRs3tkWLFgWO2b9/v91www1WoUIFt79hw4b20UcfJdlld8SIEdayZcsE19J5x4wZE3j+5ptvWr169Sx//vxWt25de/nlly0lqprrXvXQz3j48OG2c+dO++effwLHDBs2zH121Fb9DB955BE7efJk4H5z5cplS5cujXPeCRMmWJUqVSw2NjZV778+F3of9DlRpbZjx47uZwpkdQTSJERGRlr9+vUtIiLC66YAAIBMtH53tE34dqMN/3Chq4Z2732zFSpUKMFxRYsWdV8VGBRG//33X/vpp59s7ty5tmXLFuvRo0ec4zdv3uxCns6p8PTWW2/ZZZddZn/++ad73VNPPWUPP/yw/frrr3Fep/CiMLxq1Srr2bOnXX/99bZu3bpE237w4EFr3769NW3a1AUcXUvBWAE52DvvvGMlS5Z0QVvhdMCAAXbddddZ69atbfny5dapUycXeI4cOZLm8+q90j0oaCvs6f2QJUuWuK+TJk1y1UT/86Q89NBDdt9997nxsQpzCqCnTp1y+44dO+Yq11999ZULarfddptrr+4nMXrftE8/A7/ff//dda298cYb3fMPPvjARo4c6f4ooPf3iSeecO+97im1Dh06ZO+//74L9AqFfgr5kydPtrVr19oLL7zg/gDw/PPPu30K5gqPel+C6bm6BCuspvT+6/3U+9O/f3/X9h9//NGuvvpq8/l8qW474BkfkhUVFaX/kt1XAACQfW3955DvqsiffVWGfemr/uBXvop9x7vfAUpdNcJ39csL3P7EzJkzxxcaGurbsWNHYNvvv//uXrt48WL3fNSoUb6CBQv6oqOjA8d07tzZV7VqVV9MTExgW506dXzjxo0LPNc57rjjjjjXa9mypW/AgAH/a/PWre6YFStWuOdjx471derUKc7xO3fudMds2LDBPW/btq3v/PPPD+w/deqUr1ChQr5evXoFtu3atcu9ZtGiRad9XomIiPANGzYszv3MmDHDlxz/Pb355psJ3s9169Yl+brLLrvMd++99waeqz133XVX4Hnjxo19Y8aMCTx/8MEH3XvpV6NGDd+HH34Y55y671atWiV5zT59+rifvd4/PdTGcuXK+ZYtW5bsPT7zzDO+5s2bB55PmTLFV6xYMd+xY8fcc70+JCTEvRepef91vL7ftm1bstfFmSMbpD8qpAAAIMfbtu+wdYtcYKv+jHLPY2J9dirm/6pLK3cedPt1XHyqSGmiIz381MtKFdTgSqYqYcFjGtXtUsepAha8be/evXHO36pVqwTPk6qQqor6ww8/uG6d/oe6nkpwdbBRo0aB70NDQ101T909g9sh/racznmlXLlyCe4ntYLPpfMEt0ddnTVhkdqs7sFqz+zZs13X6aSoSvrhhx+675WNVaXWNlHXVt3HzTffHOceH3vssTj3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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6QAAAK9CAYAAAAzEaE6AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbTlJREFUeJzt3QeYlNXZP+CzFFG6DRFFsWBHsWDvPZbYe6+xF2KLvWssaFTURI3G3lvUIHaNvfeugAXssIIgAvO/npP/7LcLuzQX3mX3vq9rPpiZd9457+x8kd8+5zynolQqlRIAAABMZ82m9xsCAABAEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBYDxPPvlkqqioyH82Zaeeemr+HIry8ssvp1VXXTW1adMmj+ONN97Ij/fr1y/17NkzzTzzzPnxoUOHFjZGAH4fgRSggXr77bfTtttum+aff/78D+955pknbbDBBunSSy9NM5pffvklh5tpHfAeeuih/D6T6/LLL0/XXXddmhGcffbZ6d57701NxW+//Za222679OOPP6aLLroo3XDDDfn/F3744Ye0/fbbp1lmmSX17ds3Px6BFYAZU0WpVCoVPQgAanruuefSOuusk+abb760xx57pM6dO6cvvvgivfDCC+nTTz9Nn3zySZqRfP/992nOOedMp5xyyhQFxil1yCGH5JAyuf9pW2qppdIcc8wxQVAeN25cGj16dJpppplSs2YN43e3bdu2zb+gmJ4BOn5Wp5122mR/nvXpgw8+SIsvvni66qqr0r777lv1eFRH//CHP6RHHnkkrb/++tN9XADUrxb1fD4A6sFZZ52VOnTokKcsduzYscZz33777XSvbrZu3To1JRFCoyo9oxoxYsQMXzUsf8/r+v6P/zgAM6aG8WtfAGqIKuiSSy5Z6z+6O3XqNMFjN954Y1pxxRVzcJx11lnTmmuumfr37z/B9NQ4Z6tWrVKXLl3SwQcfPMHau7XXXjtXDV999dV8jjjf8ccfn5/79ddfc4Vz4YUXzufo2rVrOuaYY/LjEzNgwIBcHQ1RbYs1f3GrXimNalhU/2abbbYcBFdYYYV0//33TzCFM17fvXv3fMzss8+eVl999VwpC3vuuWeujobye0xs/WO3bt3Su+++m5566qmqY+P661pDWv5s3nrrrbTWWmvlzyY+izvvvDM/H+dZaaWV8lTSRRddND366KMTvOdXX32V9t577zTXXHPlzzB+Hv/85z8n+vmVrydC5r/+9a+qscb1Vl/n+d5776Wdd945//zjcwkx1jhuwQUXzJ9ZVNrj/WPa6/j++9//pl69euXjFlpoofT3v/+9zvHE92355ZfP1xo/sx133DFX8CfX448/ntZYY40cmuM7vsUWW6T333+/6vkYc3zGIabtln82cYsZAyHGWv1zAGDGpEIK0ADFWrnnn38+vfPOOzkETUyEtAgl0fzl9NNPz9NMX3zxxfyP/g033LDG1MuY4njggQemDz/8MF1xxRW5Avvss8+mli1bVp0vwkpMiYyQseuuu+bwFFNY//jHP+bQsv/+++eplLHGNdb2ffTRRxNd2xhhNN4r3nerrbZKW2+9dX586aWXzn9GKFxttdXyGtnjjjsuh5Tbb789bbnllumuu+7KrylfwznnnJOnb0b4rqysTK+88kp67bXX8traP/3pT+nrr7/OATXWFU7KxRdfnA499NA8FfaEE07Ij8W1TsxPP/2UNttss/zZRFCK64q/33TTTemII45IBxxwQA6F559/fg7YEdLatWuXX/vNN9+klVdeOYeomFocn8t//vOftM8+++RridfXJa6nfN3x+YcIjdXFeCKsx1rT8hTb+Cw+++yztNdee+UwGp/1P/7xj/xnTP8uB/b4WcZ3JcYUn/OYMWPyLx9q+zyien/SSSfldZwxpu+++y6va45fYLz++uuTrFxGUI/vV4TkeK+RI0fm18d3IH6W8YuC+FnG9yGu5bDDDsvhszyWCPtxDfFdX2CBBSb4HACYwcQaUgAalv79+5eaN2+eb6usskrpmGOOKT388MOl0aNH1zju448/LjVr1qy01VZblcaOHVvjuXHjxuU/v/3229JMM81U2nDDDWscc9lll0VqKf3zn/+semyttdbKj1155ZU1znXDDTfk93nmmWdqPB7HxfHPPvvsRK/nu+++y8edcsopEzy33nrrlXr06FEaNWpUjbGvuuqqpe7du1c9tswyy5Q23XTTib7PwQcfnN9nci255JL5msf3xBNP5PPEn+N/NjfffHPVYx988EF+LD6bF154oerx+FnF49dee23VY/vss09p7rnnLn3//fc13mvHHXcsdejQofTLL79M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1i14nnrqqaqfz4ILLpi39Cmfe3x33XVXafXVV89b0cQtfhZxXR9++GFpcjz66KOl1VZbLV9L+/btS5tvvnneZqY6274ANA0V8X+KDsUAAAA0PdaQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAoRIti3nbGMW7cuPT111/njb8rKiqKHg4AAFCQ2DHz559/Tl26dEnNmqnt1QeBdBIijHbt2rXoYQAAAA3EF198keadd96ih9EoCKSTEJXR8peuffv2RQ8HAAAoSGVlZS5WlTMCv59AOgnlaboRRgVSAADAUr76Y+IzAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAADRqa6+9djriiCOKHgZQC4EUAIAm69RTT00VFRXpgAMOqPH4G2+8kR8fMGBAvh9/xv1OnTqln3/+ucaxPXv2zOcBppxACgBAkzbzzDOna665Jn388ceTPDbC6AUXXDBdxgVNgUAKAECT8uCDD6YOHTqkm266Kd9fdNFF0zrrrJNOOOGESb720EMPTX369EnffvvtdBgpNH4CKQAATcbNN9+cdtpppxxGd9lll6rHzz333HTXXXelV155ZaKvj9cuvPDC6fTTT58Oo4XGTyAFAKDR+WBIZbr40Y/S6f9+L33508j044jRqW/fvumggw5K//73v9Nmm21W4/jlllsubb/99unYY4+d6HljHWmE13/84x/p008/ncZXAY1fi6IHAAAA9WXA9yNS79vfSK8NGpqaN6tIzSpS+mroyHTzrbenG68dlu75z2NprbXWrPW1Z555Zlp88cVT//79c/Oiumy00UZp9dVXTyeddFKuuAJTT4UUAIBGE0a36PtsevPLYfn+2HGl9NvYUiqVSmmmuRZMzWbpkPY+/rz0+XfDa339QgstlPbbb7903HHH5ddMTFRJb7vttvT6669Pk2uBpkIgBQCgUYjK6PBfx+QgOr4WHedOc+10dhr2wfNp/e32qPMcJ598cvroo4/SrbfeOtH3WnHFFdPWW2+dwysw9QRSAAAaxZrRmKZbWxgtaznbPGmuHc9OA195Iu2+30G1HjPXXHOl3r17p0suuWSS73nWWWelxx9/PH344Ye/a+zQlAmkAADM8Pq9MySvGZ2UlrPPm+be+ex0z523pz//+c+1HnPUUUeltm3bTvJciyyySNp7773TqFGjpmrMQEoVpUlNkG/iKisr8z5Vw4YNS+3bty96OAAA1CK66d7wwoC8ZnRSWjavSLut3C2dvPkS02VsNB6yQf1TIQUAYIbXfpYWaSKzdWuI4zrM0nJaDwmYDAIpAAAzvI2X6jzR9aPVxXFxPFA8gRQAgBneYp3bp+Xm6zjJdaTx/Arzz5oW7dxuuo0NqJtACgBAo9Bn+56pbasWdYbSeDyev2C7Zab72IDaCaQAADQK3eZok+47eLW0bNeOVQE0GhiVA2o8Hs/HcUDD0KLoAQAAQH2JsHnngavmfUkffuebNGzkb7mBUawZNU0XGh6BFACARrmmNG5Aw2bKLgAAAIUQSAEAACiEQAoAAEAhBFIAAAAKIZACAABQCIEUAACAQgikAAAAFEIgBQAAoBACKQAAAIUQSAEAACiEQAoAAEAhBFIAAAAKIZACAABQCIEUAACAQgikAAAAFEIgBQAAoBACKQAAAIUQSAEAACiEQAoAAEAhBFIAAAAKIZACAABQCIEUAACAQgikAAAAFEIgBQAAoBACKQAAAIUQSOvQt2/ftMQSS6RevXoVPRQAAIBGqaJUKpWKHkRDVllZmTp06JCGDRuW2rdvX/RwAACAgsgG9U+FFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAACAiaioqEj33ntv0cNolARSAACgQdtzzz1zKIxby5Yt0wILLJCOOeaYNGrUqNRUrrui2u2TTz4pdExbbrllvZ2vRb2dCQAAYBrZeOON07XXXpt+++239Oqrr6Y99tgjh7O//vWvqSlcd3VzzjlnmhqjR49OM800U2pIVEgBAIAGr1WrVqlz586pa9euuUK3/vrrp0ceeaTq+R9++CHttNNOaZ555kmtW7dOPXr0SLfcckuNc6y99trpsMMOy9XV2WabLZ/v1FNPrXHMxx9/nNZcc80088wzpyWWWKLGe5S9++67ad11102zzDJLmn322dP++++fhg8fPkEV8eyzz05zzTVX6tixYzr99NPTmDFj0tFHH53fe955550gaE7suqvfmjdvnp976qmn0oorrpiPmXvuudNxxx2X36P69R5yyCHpiCOOSHPMMUfaaKON8uPvvPNO+sMf/pDatm2bx7fbbrul77//vup1d955Z/78ytcXn/WIESPyZ/Wvf/0r3XfffVXV2ieffDL9HgIpAADQ4HwwpDJd/OhH6fR/v5fe+7oyDR/1f0ErAtVzzz1Xo9oX03eXX3759OCDD+bnIyRG0HrppZdqnDcCVZs2bdKLL76YzjvvvBwUy6Fz3Lhxaeutt87njeevvPLKdOyxx04wtjhm1llnTS+//HK644470qOPPpqDX3WPP/54+vrrr9PTTz+d+vTpk0455ZS02Wab5dfFuQ844ID0pz/9KX355ZdT9fl89dVXaZNNNkm9evVKb775ZrriiivSNddck84888wJrjeu59lnn83XM3To0Byml1122fTKK6+kfv36pW+++SZtv/32+fjBgwfnYL/33nun999/PwfOuN5SqZSOOuqofFxUbeO4uK266qrp96goxZmpU2VlZerQoUMaNmxYat++fdHDAQCARm3A9yNS79vfSK8NGpqaN6tIzSpSGvLvPmn4O0+k5jO1Ss3TuDT6119Ts2bN0u2335622WabOs8VAXCxxRZLF1xwQVXFcOzYsemZZ56pOiYqjBHQzj333NS/f/+06aabpoEDB6YuXbrk5yOwRTXxnnvuycdFNoiKZwTJCLbhoYceSptvvnkOoFFxjAppBLnPPvssjzPEODp16pQDaohxdOjQIV199dVpxx13rHX8cZ4bb7wxV2vLYiwRgk844YR011135dAYlcpw+eWX5wAd2SXeN6438sxrr71W9foIrHH9Dz/8cNVjcS1Ref7www9zpTeC/YABA9L8889f65gi1NZXkydrSAEAgAYTRrfo+2wa/uv/qqFjx5XS2JRSlNBmnm/pNOfGB6eZK35LS//0bOrYduYaYTQCXkyRjZAa1cNYL/nrr7/m6bvVLb300jXux1TXb7/9Nv89wl0Es3IYDausssoE44zprOUwGlZbbbVcXY1AF4E0LLnkklVhNMTjSy21VNX9mHY7++yzV713XdZZZ51c/Swrv2+MNcZWDqPlcUSgjIA533zz5cciXFYX1dQnnngiT9cd36effpo23HDDtN566+VrjCm+cX/bbbfNld1pQSAFAAAahKiMRhiNIDq+iplmTs06zp3GNqtIpaV6pBevPDBPUd1nn33y8+eff37629/+li6++OKqwBhrJyOYVhddemuct6Iih8n6Vtv7TM17t2nTJi288MJTPY7qwTlEYI1qbm3NoCKcR1COKcwxJToqxpdeemmuxsY04+huXN+sIQUAABrEmtGYpltbGK0unn/1i2Fpz4OOTCeeeGIaOXJkfjzWSG6xxRZp1113Tcsss0xacMEF00cffTRFY1h88cXTF198kddGlr3wwgsTHPf222/nJj9l8d5RDV100UXT9LL44oun559/Pq/trD6Odu3a5YZJdVluueVyU6Zu3brloFv9Vg6vEZSj2nraaael119/Pa9BjSnLIf4e1ej6IpACAACF6/fOkLxmdHLEcRULrpKreX379s2Pde/evaqyF9NZo2FQNOuZEtFNdpFFFslbysTU1lhrGdXB8cWazjgmmifF9NdDDz00N1AqT9edHg466KAcnuO9P/jgg9z5Nhon9e7du8ZU4fEdfPDB6ccff8yNi6IpU0zTjfWke+21Vw6aUQmNqc/R8GjQoEHp7rvvTt99910OwCGC7FtvvZWnJ0dn3tiG5/cQSAEAgMJVjhyTGxhNjjhu+OhS7mwbnXKjWhnV0qj+xbrHaOYT26PE1itTIoJcVAKj6hrNjvbdd9901llnTXBchLQIddHhNtZXxprLyy67LE1P88wzT26mFF2EoyIcXXtj+nJ8DhMT62OjkhrhM9aHxvTmmNocjZri+qORazReig6+Ec7jfBdeeGFuphT222+/XAleYYUV8n6oca7fQ5fdSdBlFwAApr3Y4uXSxz+Z5JTdcoX0sHW7p8PX756mJ9mg/qmQAgAAhdt4qc6TFUZDHBfHM+MTSAEAgMIt1rl9Wm6+jpNcRxrPrzD/rGnRzu2m29iYdgRSAACgQeizfc/UtlWLOkNpPB7PX7DdMtN9bEwbAikAANAgdJujTbrv4NXSsl07VgXQls0rqgJqPB7Px3E0Di2KHgAAAEBZhM07D1w170v68DvfpGEjf0sdZmmZ14yaptv4CKQAAECDXFMaNxo3U3YBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEBah759+6Ylllgi9erVq+ihAAAANEoVpVKpVPQgGrLKysrUoUOHNGzYsNS+ffuihwMAABRENqh/KqQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUosXUvvC3335LQ4YMSb/88kuac84502yzzVa/IwMAAKBRm6IK6c8//5yuuOKKtNZaa6X27dunbt26pcUXXzwH0vnnnz/tt99+6eWXX552owUAAKDpBdI+ffrkAHrttdem9ddfP917773pjTfeSB999FF6/vnn0ymnnJLGjBmTNtxww7Txxhunjz/+eNqOHAAAgBlaRalUKk3OgTvttFM68cQT05JLLjnR43799dccWmeaaaa09957pxldZWVl6tChQxo2bFiuCgMAAE2TbFBgIG2qfOkAAIAgGzTQLrvxg4kpvO+//359nA4AAIAmYKoC6fbbb58uu+yy/PeRI0emFVZYIT+29NJLp7vuuqu+xwgAAEAjNFWB9Omnn05rrLFG/vs999yTYtbv0KFD0yWXXJLOPPPM+h4jAAAAjdBUBdKYM13ed7Rfv35pm222Sa1bt06bbrqp7roAAABMu0DatWvXvNXLiBEjciCNrV7CTz/9lGaeeeapOSUAAABNTIupedERRxyRdtlll9S2bds0//zzp7XXXrtqKm+PHj3qe4wAAAA0QlMVSA866KC00korpUGDBqUNNtggNWv2v0LrggsuaA0pAAAAk8U+pJNgryEAACDIBgWuIT333HPzFi+T48UXX0wPPvjg7xkXAAAAjdxkB9L33nsvzTfffHm67n/+85/03XffVT03ZsyY9NZbb6XLL788rbrqqmmHHXZI7dq1m1ZjBgAAoCmtIb3++uvTm2++mS677LK0884753J18+bNU6tWrdIvv/ySj1l22WXTvvvum/bcc0/ddgEAAKj/NaTjxo3LFdGBAwfmabxzzDFH6tmzZ/6zsTFPHAAACLJBA+myG111I4DGDQAAAKbpGlIAAACoTwIpAAAAhRBIAQAAKIRACgAAwIwXSD/55JP08MMP5067YSoa9gIAANBETVUg/eGHH9L666+fFllkkbTJJpukwYMH58f32Wef9Oc//7m+xwgAAEAjNFWB9Mgjj0wtWrRIgwYNSq1bt656fIcddkj9+vWrz/EBAADQSE3VPqT9+/fPU3XnnXfeGo937949DRw4sL7GBgAAQCM2VRXSESNG1KiMlv3444+pVatW9TEuAAAAGrmpCqRrrLFGuv7666vuV1RUpHHjxqXzzjsvrbPOOvU5PgAAABqpqZqyG8FzvfXWS6+88koaPXp0OuaYY9K7776bK6TPPvts/Y8SAACARmeqKqRLLbVU+uijj9Lqq6+etthiizyFd+utt06vv/56Wmihhep/lAAAADQ6FSWbh05UZWVl6tChQxo2bFhq37590cMBAAAKIhs0kCm7YdSoUemtt95K3377bV4/Wt0f//jH+hgbAAAAjdhUBdLYa3T33XdP33///QTPRYOjsWPH1sfYAAAAaMSmag3poYcemrbbbrs0ePDgXB2tfhNGAQAAmGaB9Jtvvkm9e/dOc80119S8HAAAAKYukG677bbpySefrP/RAAAA0GRMVZfdX375JU/ZnXPOOVOPHj1Sy5Ytazx/2GGHpcZCJy0AACDIBg2kqdEtt9yS+vfvn2aeeeZcKY1GRmXx98YUSAEAAGhAgfSEE05Ip512WjruuONSs2ZTNesXAACAJm6q0uTo0aPTDjvsIIwCAAAw1aYqUe6xxx7ptttum/p3BQAAoMmbqim7sdfoeeedlx5++OG09NJLT9DUqE+fPvU1PgAAABqpqQqkb7/9dlp22WXz3995550az1VvcAQAAAD1GkifeOKJqXkZAAAAVNGVCAAAgIZdId16663TddddlzeAjb9PzN13310fYwMAAKARm+xA2qFDh6r1oRFKrRUFAADg96golUql33WGRq6ysjKH8WHDhuUgDgAANE2yQQNZQ7ruuuumoUOH1voDiucAAABgmgTSJ598Mo0ePXqCx0eNGpWeeeaZqTklAAAATcwUbfvy1ltvVf39vffeS0OGDKm6P3bs2NSvX780zzzz1O8IAQAAaJSmKJD27NkzNzOKW21Tc2eZZZZ06aWX1uf4AAAAaKSmKJB+/vnnKXogLbjggumll15Kc845Z9VzM800U+rUqVNq3rz5tBgnAAAATTmQzj///PnPcePGTavxAAAA0ERMVVMjAAAA+L0EUgAAAAohkAIAAFCIRh9Ihw4dmlZYYYXcIXippZZKV111VdFDAgAAYGoDaXTZ/eGHH2oNf/FcQ9KuXbv09NNPpzfeeCO9+OKL6eyzz6517AAAAMwAgXTAgAFp7NixEzz+66+/pq+++io1JLENTevWravGF9vWxA0AAIAZaNuX+++/v+rvDz/8cOrQoUPV/Qiojz32WOrWrdsUDSCql+eff3569dVX0+DBg9M999yTttxyyxrH9O3bNx8zZMiQtMwyy6RLL700rbjiipP9HlG5XWuttdLHH3+czzPHHHNM0RgBAAAoOJCWg2JFRUXaY489ajzXsmXLHEYvvPDCKRrAiBEjcsjce++909Zbbz3B87fddlvq3bt3uvLKK9NKK62ULr744rTRRhulDz/8MHXq1CkfE+tDx4wZM8Fr+/fvn7p06ZI6duyY3nzzzfTNN9/k99h2223TXHPNVet4oooat7LKysopuh4AAAAmT0VpKuavLrDAAunll1+u90pjBN3xK6QRQnv16pUuu+yyfH/cuHGpa9eu6dBDD03HHXfcFL/HQQcdlNZdd90cSmtz6qmnptNOO22Cx4cNG5bat28/xe8HAAA0DlGsilmiskHBa0g///zzCcJoTIutb6NHj85Teddff/2qx5o1a5bvP//885N1jqiK/vzzz/nv8cWJKcKLLrponcf/5S9/yceVb1988UU9XAkAAAD1Ekj/+te/5qm0Zdttt12abbbZ0jzzzJOnxtaX77//Pq9NHX96bdyP9aSTY+DAgWmNNdbI04Ljz6is9ujRo87jW7VqlX/bUf0GAABAwWtIy2I950033ZT//sgjj6RHH3009evXL91+++3p6KOPzms3G4pofhRbvgAAANAIAmlUJ2MdZ3jggQfS9ttvnzbccMPc1CjWfNaXmBYc27bEtNvq4n7nzp3r7X0AAACYQabszjrrrFVrK6MyWl7jGf2RatufdGrNNNNMafnll8/byZRFU6O4v8oqq9Tb+wAAADCDVEhj65Sdd945de/ePf3www/pD3/4Q3789ddfTwsvvPAUnWv48OHpk08+qdEwKabYxprU+eabL2/5ElvMrLDCCnn6bWz7ElvF7LXXXlMzdAAAAGbkQHrRRRfl6blRJT3vvPNS27Zt8+ODBw/O26pMiVdeeSWts846VfcjgIYIodddd13aYYcd0nfffZdOPvnkPFU49hyNqmxd+4gCAAAwY5iqfUibEnsNAQAAQTZoIGtIww033JBWX3311KVLl7y1SojptPfdd199jg8AAIBGaqoC6RVXXJGn1sba0aFDh1Y1MurYsWMOpQAAADBNAumll16arrrqqnTCCSfkbVnKovHQ22+/PTWnBAAAoImZqkAanXCXXXbZCR5v1apV7oALAAAA0ySQLrDAAnlrlvFF99vFF198ak4JAABAEzNF276cfvrp6aijjsrrRw8++OA0atSoFE16X3rppXTLLbekc845J1199dXTbrQAAAA0zW1fYr1o7DXaqVOndNNNN6VTTz01ffrpp/m56LZ72mmnpX322Sc1Jlo7AwAAQTYoOJA2a9YsDRkyJAfSsl9++SUNHz68xmONiS8dAAAQZIOCp+yGioqKGvdbt26dbwAAADBNA+kiiywyQSgd348//jilpwUAAKCJmeJAGutEo0wNAAAA0zWQ7rjjjo12vSgAAAANdB/SSU3VBQAAgGkSSKegIS8AAADU35TdcePGTcnhAAAAUD8VUgAAAKgvAikAAACFEEjr0Ldv37TEEkukXr16FT0UAACARqmipFPRRFVWVuZ9V4cNG5bat29f9HAAAICCyAb1T4UUAACAQgikAAAAFEIgBQAAoBACKQAAAIUQSAEAACiEQAoAAEAhBFIAAAAKIZACAABQCIEUAACAQgikAAAAFEIgBQAAoBACKQAAAIUQSAEAACiEQAoAAEAhBFIAAAAKIZACAABQCIEUAACAQgikAAAAFEIgBQAAoBACKQAAAIUQSAEAACiEQAoAAEAhBFIAAAAKIZACAABQCIEUAACAQgikAAAAFEIgBQAAoBACaR369u2bllhiidSrV6+ih0IDNmDAgFRRUZHeeOONOo958skn8zFDhw6drmMDAICGTiCtw8EHH5zee++99PLLL6eGZs8998wB59xzz63x+L333psfn1EDXGVlZTrhhBPSYostlmaeeebUuXPntP7666e77747lUqlev38ttxyy3o5V9euXdPgwYPTUkstVS/nAwCApkQgnUFFYPvrX/+afvrpp+n2nhEKx4wZM03OHdXDVVddNV1//fXpL3/5S3rttdfS008/nXbYYYd0zDHHpGHDhqXp7bfffpvkMc2bN8/BuUWLFtNlTAAA0JgIpDOoqBxGEDrnnHPqPOa///1vWmONNdIss8ySK3mHHXZYGjFiRNXzN9xwQ1phhRVSu3bt8rl23nnn9O23304w1fQ///lPWn755VOrVq3yOceNG5ffd4EFFsjnXmaZZdKdd95Z9boIybvsskuac8458/Pdu3dP1157bX4uXhOWXXbZfO6111473z/++ONz9fTFF19Me+yxR54uvcgii6T99tsvV1Pbtm2bj/v111/TUUcdleaZZ57Upk2btNJKK+Vxll133XWpY8eO6eGHH06LL754ft3GG2+cq5jh1FNPTf/617/Sfffdl98/bvH6cuX2tttuS2uttVYO/DfddFO+1tNPPz3NO++8+fp79uyZ+vXrN9GK70MPPZTHHte+zjrr5GMAAIAJCaQziA+GVKaLH/0onf7v99J7X1emkb+V0tlnn50uvfTS9OWXX05w/KeffpqD2DbbbJPeeuutHLQiTB5yyCE1KoBnnHFGevPNN/N03whOMZ11fMcdd1yeHvz++++npZdeOofRqGReeeWV6d13301HHnlk2nXXXdNTTz2Vjz/ppJPydOcIsvGaK664Is0xxxz5uZdeein/+eijj+aQGNNxI/TdeuutOcR26dJlgvePUFmuQMb4n3/++Xx8XNd2222Xr/Pjjz+uOv6XX35JF1xwQQ7cUWUdNGhQDrEh/tx+++2rQmrcojJb/VoPP/zwPO6NNtoo/e1vf0sXXnhhPl+8Xzz2xz/+scb7VffFF1+krbfeOm2++eY5pO677775nAAAQC1KTNSwYcNi8WL+swiffze8tFXf/5bmP/aB0oJ/ebC08PEPltr2WK80S/eVS1tf/mxp2RVWLO2999752HvuuSePNeyzzz6l/fffv8a5nnnmmVKzZs1KI0eOrPW9Xn755fz6n3/+Od9/4okn8v1777236phRo0aVWrduXXruuedqvDbeb6eddsp/33zzzUt77bVX7dfz+ef5nK+//nrVY998801+rE+fPhP9LAYOHFhq3rx56auvvqrx+HrrrVf6y1/+kv9+7bXX5nN98sknVc/37du3NNdcc1Xd32OPPUpbbLFFreO6+OKLazzepUuX0llnnVXjsV69epUOOuigWq8nxrHEEkvUOP7YY4/Nx/z0008TvT4AABq2orNBY2ThWwM24PsRaYu+z6bhv/5v3ebYcaU0NifO/z3/xhdDU1pq+/Svfx1bVQEsi6pnVPRi2mn1NaBRjfz888/zdNZXX301T2GNY2OabTwXoqIYU2bLYlpv2SeffJIrkBtssEGN9xs9enSehhsOPPDAXJmNdaAbbrhhbiBUvQo5vsltWPT222+nsWPH5umw1cU03tlnn73qfuvWrdNCCy1UdX/uueeuMRV5YqpfazRZ+vrrr9Nqq61W45i4H59ZbaKyGtOIq1tllVUm670BAKCpEUgbsN63v5HDaATR2sTjzedePM252Iq5EVD16bbDhw9Pf/rTn/K60fHNN998eS1pTD+NW4TWWO8ZQTTuR7isLtZqVj9vePDBB/M6zupijWX4wx/+kAYOHJjXUj7yyCNpvfXWy12LY9prbeK9Y93nBx98MNHPI947mghFkI4/qyuvMQ0tW7as8Vys8Zzc0Fv9WgEAgGlLIG3Aa0ZfGzTpfSsjlFastEv693WHpUUXXbTq8eWWWy6v41x44YXrrDb+8MMPeW1oNDwKr7zyyiTfLyqnETwjvEbzn7pEyIzmRHGLxkpHH310DqQzzTTT/8Y9Nmq9/9OsWbO044475jWfp5xyygTrSCOIRpOhqMDG66LaGeecWjGG6u9fl/bt2+exPPvsszWuNe6vuOKKtb4mKs/3339/jcdeeOGFqR4rAAA0ZpoaNVD93hmSmjebvD1FZ5lrgbTcupunSy65pOqxY489Nj333HO5CVA014kmPNFZttzUKKqkEcyiKdJnn32WQ1Q0OJqU6Mgb04OjkVF0q43mSTE1N84T98PJJ5+c3yum90bTowceeCAHtdCpU6fcfTY61X7zzTdV27mcddZZORjHdNdomBRhOsb8z3/+MwfRCKUxVTcaH+2+++65GVJMPY4mSdFkKSq2k6tbt255OvOHH36Yvv/++4lu7xJBOrbXiaZQcXw0KIrPMxof1eaAAw7I447XxfE333xz7vwLAABMSCBtoCpHjkmTmUfzcavvcHDVGtAQ3XCj6+1HH32Uq4kR6iIolquPUcGMoHTHHXfkqmdUSuuaUju+CK7RSTeCYATN6FgbgbC8pUsE3ZhCHGNYc8018/Ta6IoboltuBOe///3veSxbbLFFfny22WbLlcTo1nvmmWfm8ca4b7nllnT++eenDh065ONi+5gIpH/+859zRTjWp7788ss5YE+u2EomXhvrReNziIpnXWLKc+/evfP79ejRIwfpCO+xlU1tYhx33XVX7loc2+FEJ+LohgwAAEyoIjob1fI41RrbRBiKSl5M4ZxeYouXSx//pM71o9VFJfWwdbunw9evPSQBAAAzbjZozFRIG6iNl+o8WWE0xHFxPAAAwIxEIG2gFuvcPi03X8dJriON51eYf9a0aOd2021sAAAA9UEgbcD6bN8ztW3Vos5QGo/H8xdst8x0HxsAAMDvJZA2YN3maJPuO3i1tGzXjlUBtGXziqqAGo/H83EcAADAjMY+pA1chM07D1w170v68DvfpGEjf0sdZmmZ14yapgsAAMzIBNIZaE1p3AAAABoLU3YBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACFEEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIK1D37590xJLLJF69epV9FAAAAAapYpSqVQqehANWWVlZerQoUMaNmxYat++fdHDAQAACiIb1D8VUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAww+jWrVu6+OKLp/r11113XerYsWO9jqmx6PY7P9upUVEqlUrT9R1nMJWVlalDhw5p2LBhqX379kUPBwAAGqw999wzDR06NN17773T7D2+++671KZNm9S6devJClhHHHFEvpWNHDky/fzzz6lTp05TnQ3KKioq0lxzzZXWXHPNdP7556f55psvzci+m4LPtr6okAIAADOMOeec83cFpllmmWWqwmh1UagaPHhw+uqrr9Jdd92VPvzww7Tddtulae23335r0J/t1BBIAQCA6eKpp55KK664YmrVqlWae+6503HHHZfGjBlT9XxULnfZZZdcpYvnL7roorT22mvXqHBWn1Yakz1PPfXUXJmMc3bp0iUddthh+bl43cCBA9ORRx6ZK5lxq2vK7r///e/Uq1evNPPMM6c55pgjbbXVVhO9jjhX586d8xhXXXXVtM8++6SXXnopV1DL7rvvvrTccsvlcy644ILptNNOq3GtH3zwQVp99dXz80sssUR69NFH83nL1eUBAwbk+7fddltaa6218nE33XRTfu7qq69Oiy++eH5sscUWS5dffnnVeUePHp0OOeSQPLZ4fv7550/nnHPOJD+v8T/bMGjQoLTFFluktm3b5hC+/fbbp2+++abq+ThXz5490w033JBfG9XjHXfcMf8cJ1eLyT4SAABgPB8MqUz93hmSKkeOSe99XZnaN/u/0FVdVBM32WSTPK33+uuvz4Fsv/32y6Epgk3o3bt3evbZZ9P999+fp8KefPLJ6bXXXsuhpzZRnYzQeuutt6Yll1wyDRkyJL355pv5ubvvvjsts8wyaf/998/vU5cHH3wwB9ATTjghjysC3UMPPTTZ1//tt9+me+65JzVv3jzfwjPPPJN23333dMkll6Q11lgjffrpp3kc4ZRTTkljx45NW265ZQ6GL774Yg5wf/7zn2s9f4T2Cy+8MC277LJVoTQ+l8suuyw/9vrrr+frixC/xx575PeMz+/222/P5//iiy/ybVKf1/jGjRtXFUbjFwkRpg8++OC0ww47pCeffLLquLi2CNEPPPBA+umnn3JoPffcc9NZZ501eR9grCGlbsOGDYs1tvlPAADgfz7/bnhpq77/Lc1/7AOlBf/yYGnh4x8ste2xXmmW7iuXtr782fx8dccff3xp0UUXLY0bN67qsb59+5batm1bGjt2bKmysrLUsmXL0h133FH1/NChQ0utW7cuHX744VWPzT///KWLLroo//3CCy8sLbLIIqXRo0fXOsbqx5Zde+21pQ4dOlTdX2WVVUq77LLLFGWDuLVp0yaPrXz/sMMOqzpuvfXWK5199tk1XnvDDTeU5p577vz3//znP6UWLVqUBg8eXPX8I488ks9zzz33/O/z/fzzfP/iiy+ucZ6FFlqodPPNN9d47IwzzsjXEQ499NDSuuuuW+NzLpuSz6t///6l5s2blwYNGlT1/LvvvpvH9NJLL+X7p5xySv4M4mdXdvTRR5dWWmml0uQyZRcAAJgiA74fkbbo+2x688th+f7YcaX029hSKrdLfeOLofn5OK7s/fffT6usskrV1Nmw2mqrpeHDh6cvv/wyffbZZ3mNZEzpLYspoIsuumid44h1m9GkKKbERpUwKpXVp8VOjjfeeCOtt956U/Sadu3a5de98soruXoZU3OrVwSj6nj66afn6mL5FuOLdae//PJLXnPatWvXPO23rPp1V7fCCitU/X3EiBG5IhlThKuf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gRQAAIBCCKQAAAAUQiAFAACmi4qKinTvvfcWPQwaEIEUAACoF3vuuWfacsst63x+8ODB6Q9/+ENqqJ566qm07rrrptlmmy21bt06de/ePe2xxx5p9OjR6a677kqzzjprna+NY3v37l11/5NPPkl77bVXmnfeeVOrVq3SAgsskHbaaaf0yiuvTKermTEIpAAAwHTRuXPnHM6KVCqV0pgxYyZ4/L333ksbb7xxWmGFFdLTTz+d3n777XTppZemmWaaKY0dOzb98Y9/zEG1NnF8BNB99tkn34/Qufzyy6ePPvoo/f3vf8/nvueee9Jiiy2W/vznP0/za5yRCKR16Nu3b1piiSVSr169ih4KAAA0uim7AwYMyPfvvvvutM466+SK5DLLLJOef/75Gq/573//m9ZYY400yyyzpK5du6bDDjssjRgxour5G264IYfIdu3a5cC78847p2+//bbq+SeffDK/z3/+858cEiMQxznH179///z68847Ly211FJpoYUWygH1qquuyu/dsmXLtOOOO9Z6Xf/85z/TSiutlJZccskceKNSHBXTZ555Jm266ab5XD179kynnHJKuu++++rxE53xCaR1OPjgg/NvMl5++eWihwIAAA3WB0Mq08WPfpRO//d76b2vK9PwURNWH6uLsBgBMf6tHU444YR01FFHpTfeeCMtssgieVrrY489lo95/fXXcyjcZptt0ltvvZVuu+22HCYPOeSQqvP99ttv6YwzzkhvvvlmDrsRdCMQju+4445L5557bnr//ffT0ksvPcHzEUZjSnFUO8fXrVu3dPHFF6fddtst33/22Wernhs+fHi68847q6qjcR3vvvturoQ2azZh3OrYsWOdn82A/x/S4xxl8V49evTIgTimQ5cD9tChQ1Nj0KLoAQAAADOeAd+PSL1vfyO9Nmhoat6sIjWrSGnAyy+kMUMH58DUokWLvH5yu+22S6effnqaeeaZ8+vmmGOOHPwiyIUIo1FFDKeddlquMn711Vf5/kUXXZR22WWXdMQRR+T7UXW85JJL0lprrZWuuOKKfM699967akwLLrhgfj5mOcb527ZtW/VcjGGDDTaY4DoqKyvTX//61xwqI9zGuWOablQ0d91117yGtCym3IYbb7yxai3s7bffnqui5erpxx9/XOPYKdG1a9f82cRnVBbrUmMsUeGN64lKchzToUOH1BgIpAAAwBSH0S36PpuG//q/aujYcaU09v8/16x1hzTvPpel1i1SOrJni3T0oX/KATVCX36+WbNcjYxqYKherZx77rnznz/99FP+85133snVxptuuqnqmAh/48aNS59//nlafPHF06uvvppOPfXUXCGN18VzYdCgQXkJXllM6x1fVBlXX331NGzYsHTmmWfmIPvDDz+ka6+9NjcxOvvss/MU3njP6mLa7c8//5ynCcd03Qjd8ffy+KZW8+bN82dT3aeffpoOOOCAHO7Lxj9mSkWTpgjdDYEpuwAAwBSJymiE0QiiE6holipaz5pGzzxb6j9ivrT++uunRx55pM4puzEV9aGHHsrTdcuBNCqAIdaK/ulPf8pTWP/yl7/k0BcNhuKc//73v3OVcKONNkrt27fPoTWm5JbPEdXQqLjG8aFNmzYTDPX444/PwfjFF1/MldAIsLFeNUJmVGljmvCoUaOqqrllUUmNCmisLY0ptRFsy8fEdYSYwhtdeeN9o+ob1xgiNEfVd84558yvj6pvBODxp+yW/x4BOarA8ffrrruu1im7k1pnG1OOY1rz7rvvnj+r/fffPzUUAikAADBFa0Zjmm6tYbSaeP65V15PT//32YlW44YMGZK23nrrtPnmm+cmQOEf//hHVfU0gus333yTTj755LwuM0LiVlttlSuuUQ2NwBZBtBww11tvvfz3k046KQe4aHpUm3jtrbfemsNhly5dJng+psdGaIyAO37VM9Z0RtiMoBiVyw8++CAdc8wx+bmYXhuvja67ER6jW2+MtTx9OI6La4opuO+//36eelx9iu7403cjQMb61fj7DjvsMMFxUUGd1DrbcMEFF+SmUbEuNz6bhsKUXQAAYLL1e2dIXjNaVyAdN+KnNPDCrSPxpTRuTLTWTWeeflqd57vjjjtyF9oLL7ywquoXAeuWW25Jhx9+eNpwww1zk6JVV101bbHFFjnMxS3WcN5///057Mb2LFGpjOcjBIaVV145VwXjHLX5/vvvc7WyvNYztmeJymSE3RhPVEavv/76PGU4gml1Z511Vh7j119/nY499th8fEyrvfzyy3P1cq655kpffPFFOuigg3LTpqi8RgU1XhddhWOc5SnE3bp1m+j03ThfVILrmqZ7zjnnTHKdbYj9VRviljMqpAAAwGSrHDkmVUzqoDGj/xdGQ6k00Z0r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9ZY9evTI03cvueSStO+++9bzqGHSYkp3rF+u3tmZ/1s7fcQRRxQ9DGASBFIAmoQ+2/dMbVu1qDOUxuPxfGzkPim33357+vbbb9PIkSPznp4HHHDANBgxDUWsp41mVgsuuGBq1apV6tq1a25oFfu6MmUiPEfzq+nh7rvvnuheu/Uh9gSOayrfomnYxhtvnN56661p+r7QmAikADQJsUH7fQevlpbt2rEqgLZsXlEVUOPxeN5G7oxfgYxux9FN+fzzz09vv/126tevX+5QHM2faLiig3U0AJvWIoAOHjw43+KXFLH1UzQNAyaPQApAkxFh884DV039jlgjNy7abeVu+c+Hj1gzPy6MMr6DDjooV75imvY222yTFllkkbwVT+/evdMLL7xQddygQYPy1kBt27bNjU6233779M0331Q9f+qpp6aePXumf/7zn3mbnzguzj127NjcMTm27enUqVM666yzarx/vPcVV1yR/vCHP+Ruy1GlvfPOOyc65nfeeScfH+8x11xz5U7O33//fY2prFHxjems0dU5jon9bEeMGJG7J0eIiz10YzujKT3vYYcdlo455pgcBuOa4rrLunXrlv/caqut8nWV79c1DTkqnBH8W7dunbs9P//88zX2B46tjKLDczwf0+dvueWWOqfsRofplVZaaYL3ivOefvrpVfevvvrqvOVRdI+OvXkvv/zyNClRNY9rjVv8jGOrqC+++CJvl1R27LHH5u9OjDV+hieddFLeVql8vdEh+5VXXplgX9/555+/am/gSX3+8b2IzyG+J1Gpjf2A42cKDZ1ACkCTXFMaXXRP3nyJ/Oek1ozSNP3444+5GhqV0NgCZ3zl/VYjMEQYjeOfeuqp9Mgjj6TPPvss7bDDDjWO//TTT3PIi3NGeLrmmmvSpptumr788sv8ur/+9a95K6EXX3yxxusivEQYjkZau+yyS9pxxx3T+++/X+uYY3/YddddN+9RGwEn3iuCcQTk6qIR1xxzzJGDdoTT2Bd3u+22S6uuump67bXX0oYbbpgDT2wTNKXnjc8qriGCdoS9+DzCyy+/XLXnbVQTy/frcsIJJ6Sjjjoqr4+NMBcBdMyYMfm5UaNG5cr1gw8+mIPa/vvvn8cb11Ob+NziufgZlMV0+5hau/POO+f7N910U94KKX4pEJ9vbIEUn31c0+QaPnx4uvHGG3Ogj1BYFiH/uuuuy3sA/+1vf8u/AIjtlEIE8wiP8blUF/djSnCE1Ul9/vF5xucT2zPF2J988sm09dZbJ5tpMEOIbV+o27Bhw+L/k/OfAEDj9/7gYaWLHvmwtN8Ft+R/A1xyzY0TPb5///6l5s2blwYNGlT12Lvvvptf+9JLL+X7p5xySql169alysrKqmM22mijUrdu3Upjx46temzRRRctnXPOOVX34xwHHHBAjfdbaaWVSgceeGD+++eff56Pef311/P9M844o7ThhhvWOP6LL77Ix3z44Yf5/lprrVVaffXVq54fM2ZMqU2bNqXddtut6rHBgwfn1zz//PNTfd7Qq1ev0rHHHlvjeu65556Jfp7la7r66qsn+Dzff//9Ol+36aablv785z9X3Y/xHH744VX3l1lmmdLpp59edf8vf/lL/izLFlpoodLNN99c45xx3ausskqd77nHHnvkn318fnGLMc4999ylV199daLXeP7555eWX375qvu33XZbadZZZy2NGjUq34/XV1RU5M9icj7/OD7+PmDAgIm+L7+fbFD/VEgBAGLq5Pcj0taXP5s2vviZvG/tf97+Oj9+xgPvpW2ueC4/X5uoSEWjo7iVLbHEErmCWr2SGZWw6msaY9plHBcVsOqPRcOs6lZZZZUJ7tdVIY0q6hNPPJGndZZvMfU0VK8OLr300lV/b968ea7mxXTP6uMI5bFMzXnD3HPPPcH1TK7q54rzVB9PTHWOhkUx5pgeHON5+OGH89TpukSV9Oabb85/j2wcVep4LMTU1riOffbZp8Y1nnnmmTWurzYxrTiquHGLKuxGG22Up9YOHDiw6pjbbrstrbbaanlab5w3KuHVx7rlllvmn8M999yT70c1Nc5bntY8qc8/ph6vt956+fOISndUYH/66aep+NRh+mtRwHsCADQoETa36PtsGv7r/6aE5n1rO3SJVZzptx++TG98MTQ//3saX7Vs2bLG/VgnWdtj5TWDUyOmjEYH4Jj+O75yqJucscT9UB7L7znv1F7PxMYTDaZi6muss4wQFtOEY73o6NGj6zxfTGmNtZwxJTk6ZMc6z/K06ri+EEFu/LWmERQnJt47puhWX4faoUOHfK4ItLH2NYLvaaedlsNqPHfrrbemCy+8sOo1M800U9p9993zNN2YahvBOa6vbFKff4wxpkY/99xzqX///nl/5Jjy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tWtXGj58+DQcJY3VlH7/4th11123xmO9e/curbbaatN8rDQ+U/r9m3vuuUuXXXZZjce23nrr0i677DLNx0rjFhHpnnvumegxxxxzTGnJJZes8dgOO+xQ2mijjabx6BofFVKoVu189dVX0/rrr1/1WLNmzfL9559/vtbX3H///WmVVVbJU3bnmmuutNRSS6Wzzz47jR07djqOnKb8HRxfVKh23HHH1KZNm2k4Uhqjqfn+rbrqqvk15WmVn332WV6ysMkmm0y3cdN0v3+//vprnqpbXUwd/+9//zvNxwvxvaz+fQ1R0Z/c/17zf1pU+zs0ad9//30OkhEsq4v7H3zwQa2viX98Pf7442mXXXbJ/wj75JNP0kEHHZTXtcSUI5jW38HqIhTElN0IpTA9vn8777xzft3qq68eM67SmDFj8rRJU3aZHt+/+Md/nz590pprrpnXkT722GN5GYNfCjM9DBkypNbva2VlZRo5cmT+5QiTR4UUfodx48alTp06pX/84x9p+eWXTzvssEM64YQT0pVXXln00GiCIoj26NEjrbjiikUPhSYiGnrErJDLL788r/mLMPDggw+mM844o+ih0QT87W9/S927d0+LLbZYmmmmmdIhhxyS9tprr1xZBWYcKqTw/80xxxy5Gcw333xT4/G437lz51pfE511W7ZsmV9Xtvjii+ffmsX0o/gPJEzL72D1Zgy33npr7jgJ0+v7d9JJJ6XddtstN/II8QuR+C7uv//++ZdzggHT8vs355xz5k6o0dX5hx9+yN1Ro8nWggsuOJ1GTVMW38vavq/t27dXHZ1C/ksB/1+Ex6hyxpSf6hXQuB/rRGuz2mqr5Wm6cVzZRx99lIOqMMr0+A6W3XHHHXk91a677jodRkpjNDXfv19++WWC0Fn+Bd3/+oLAtP/fv1hHGt3tY8r4XXfdlbbYYovpMGKauvheVv++hkceeWSS31dqUXRXJWhIbr311lKrVq1K1113Xem9994r7b///qWOHTuWhgwZkp/fbbfdSscdd1zV8YMGDcodTQ855JDShx9+WHrggQdKnTp1Kp155pkFXgVN6TtYtvrqq+fufjA9v3+nnHJK/t/AW265pfTZZ5+V+vfvX1pooYVK22+/fYFXQVP5/r3wwgulu+66q/Tpp5+Wnn766dzxeYEFFij99NNPBV4FM6qff/659Prrr+dbRKQ+ffrkvw8cODA/H9+9+A6Wxf/mtW7dunT00UeX3n///VLfvn1LzZs3L/Xr16/Aq5gxmbIL1cQa0O+++y6dfPLJedptz5498ybb5UXrgwYNqlENiE3gY7+p2Ah+6aWXzr+hPfzww9Oxxx5b4FXQlL6DIfa/ja6S/fv3L2jUNNXvX+wDGRvIx59fffVVnkIZG8ufddZZBV4FTeX7F1N147sXDQbbtm2buzvfcMMNqWPHjgVeBTOqV155Je8pWhZ74oY99tgjXXfddXmv7/gOli2wwAJ5zXz8GzDWM88777zp6quvzs22mDIVkUqn8DUAAADwu1lDCgAAQCEEUgAAAAohkAIAAFAIgRQAAIBCCKQAAAAUQiAFAACgEAIpAAAAhRBIAQAAKIRACgAAQCEEUgCmm4qKioneTj311N917nvvvbdexwsATFstpvH5AaDK4MGDq/5+2223pZNPPjl9+OGHVY+1bds2NTWjR49OM800U9HDAIBCqJACMN107ty56tahQ4dc1az+2K233poWX3zxNPPMM6fFFlssXX755TWC2yGHHJLmnnvu/Pz888+fzjnnnPxct27d8p9bbbVVPmf5fm2OPfbYtMgii6TWrVunBRdcMJ100knpt99+q3HMv//979SrV6/8PnPMMUc+b9mvv/6az9G1a9fUqlWrtPDCC6drrrkmP3fdddeljh071jhXVG1jTGVRBe7Zs2e6+uqr0wILLJDfI/Tr1y+tvvrq+fWzzz572myzzdKnn35a41xffvll2mmnndJss82W2rRpk1ZYYYX04osvpgEDBqRmzZqlV155pcbxF198cf6cxo0bNwU/JQCYflRIAWgQbrrpplwxveyyy9Kyyy6bXn/99bTffvvl4LXHHnukSy65JN1///3p9ttvT/PNN1/64osv8i28/PLLqVOnTunaa69NG2+8cWrevHmd79OuXbscHLt06ZLefvvt/B7x2DHHHJOff/DBB3MAPeGEE9L111+fg/BDDz1U9frdd989Pf/883k8yyyzTPr888/T999/P0XX+sknn6S77ror3X333VVjHTFiROrdu3daeuml0/Dhw/NnEeN44403ctiMx9Zaa600zzzz5M8hAvxrr72Ww2YE8PXXXz9ff4TUsri/55575tcDQINUAoACXHvttaUOHTpU3V9ooYVKN998c41jzjjjjNIqq6yS/37ooYeW1l133dK4ceNqPV/8J+2ee+6Z4nGcf/75peWXX77qfrzfLrvsUuuxH374YX6fRx55ZLKuKcSYqv/n9pRTTim1bNmy9O233050XN99911+3dtvv53v//3vfy+1a9eu9MMPP9R6/G233VaaddZZS6NGjcr3X3311VJFRUXp888/n+j7AECR/MoUgMJFdTCmp+6zzz55HWn5duaZZ1ZNW41KX1QLF1100XTYYYel/v37T9V7xdrV1VZbLVcY4z1OPPHENGjQoKrn4z3WW2+9Wl8bz0VFMyqVv0dMo51zzjlrPPbxxx/n6bgxjbh9+/ZV047LY4v3jspxTNetzZZbbpnHds899+T7UQVeZ511Jjp9GQCKJpACULiYjhquuuqqHLzKt3feeSe98MIL+bnlllsuT48944wz0siRI9P222+ftt122yl6n5hqu8suu6RNNtkkPfDAA3lacEzNjWm5ZbPMMkudr5/YcyGmxv6vWPt/xl+fGmIa8vg233zz9OOPP+bPINaFxi2Uxzap947GSDGdOKbpxmtuvvnmtPfee0/0NQBQNIEUgMLNNddceU3nZ599lpsEVb9F45+yqBzusMMOObRFpTPWYUaICy1btkxjx46d6Ps899xzuToZITTWWnbv3j0NHDiwxjGxhvOxxx6r9fU9evTIazafeuqpWp+PqufPP/+cK75lEawn5YcffsjdhqNaG9XZaOz0008/TTCuOFf5emuz7777pkcffTQ3gxozZkzaeuutJ/neAFAkTY0AaBBOO+20PBU3uu9GY6LoZhtdYyOYRbOfPn365A67MW01KpF33HFHnnZb7mobU1MjSMZ03Oh+O+uss07wHhFAYwpsdPONLrrRwKg8xbXslFNOyaFwoYUWSjvuuGMOdtHUKDrrxntEg6WoPJabGkWg/fbbb3PFdqWVVsrde48//vh8LVHljKmzkxJjjc66//jHP/I1xhiPO+64GsfEdN6zzz47T82N7sJxXFR4I8ivssoq+ZgIsiuvvHIea4xxUlVVACiaCikADUJU92IrlJhyGpXIWKcZYa5cIY1OuOedd16ubEaYjK1OIiiWO8heeOGF6ZFHHsnbsURorc0f//jHdOSRR+btY2LrlaiYxrYv1a299to57EYn2zhm3XXXTS+99FLV81dccUWeKnzQQQflrWmiS2+5IhrrO2+88cY8rriGW265JW/zMilxDRGSX3311bTUUkvlMZ5//vkTTMmNdbPRTTimHMf5zz333Ak6Csc63Jiya7ouADOCiuhsVPQgAID6EWtsI1C/9dZbRQ8FACZJhRQAGkljqGgCFfu4HnrooUUPBwAmi0AKAI1ATENefvnl85Rj03UBmFGYsgsAAEAhVEgBAAAohEAKAABAIQRSAAAACiGQAgAAUAiBFAAAgEIIpAAAABRCIAUAAKAQAikAAACpCP8PQr7EY0UC8v4AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn import metrics\n", "from sklearn.utils.extmath import density\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.linear_model import LogisticRegression, SGDClassifier\n", "from sklearn.naive_bayes import ComplementNB\n", "from sklearn.neighbors import KNeighborsClassifier, NearestCentroid\n", "from sklearn.svm import LinearSVC\n", "from time import time\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "def benchmark(clf, X_train, y_train, X_test, y_test, custom_name=False):\n", " print(\"_\" * 80)\n", " print(\"Training: \")\n", " print(clf)\n", " t0 = time()\n", " clf.fit(X_train, y_train)\n", " train_time = time() - t0\n", " print(f\"train time: {train_time:.3f}s\")\n", "\n", " t0 = time()\n", " pred = clf.predict(X_test)\n", " test_time = time() - t0\n", " print(f\"test time: {test_time:.3f}s\")\n", "\n", " score = metrics.accuracy_score(y_test, pred)\n", " print(f\"accuracy: {score:.3f}\")\n", "\n", " if hasattr(clf, \"coef_\"):\n", " coef_shape = clf.coef_.shape\n", " if len(coef_shape) == 1:\n", " print(f\"dimensionality: {coef_shape[0]}\")\n", " else:\n", " print(f\"dimensionality: {coef_shape[1]}\")\n", " print(f\"density: {density(clf.coef_)}\")\n", "\n", " print()\n", " clf_descr = str(custom_name) if custom_name else clf.__class__.__name__\n", " return clf_descr, score, train_time, test_time\n", "\n", "\n", "results = []\n", "classifiers = [\n", " (LogisticRegression(max_iter=1000), \"Logistic Regression\"),\n", " (RidgeClassifier(alpha=1.0, solver=\"sparse_cg\"), \"Ridge Classifier\"),\n", " (KNeighborsClassifier(n_neighbors=10), \"kNN\"),\n", " (RandomForestClassifier(), \"Random Forest\"),\n", " (LinearSVC(max_iter=1000), \"Linear SVC\"),\n", " (SGDClassifier(loss=\"log_loss\", alpha=1e-4, n_iter_no_change=3, early_stopping=True), \"log-loss SGD\"),\n", " (NearestCentroid(), \"NearestCentroid\"),\n", " (ComplementNB(alpha=0.1), \"Complement naive Bayes\"),\n", "]\n", "\n", "for clf, name in classifiers:\n", " print(\"=\" * 80)\n", " results.append(benchmark(clf, X_train, y_train, X_test, y_test, name))\n", "\n", "# Визуализация результатов\n", "results_arr = np.array(results)\n", "clf_names, scores, train_times, test_times = results_arr.T\n", "\n", "fig, ax1 = plt.subplots(figsize=(10, 8))\n", "ax1.scatter(scores.astype(float), train_times.astype(float), s=60)\n", "ax1.set(title=\"Score-training time trade-off\", yscale=\"log\", xlabel=\"Test accuracy\", ylabel=\"Training time (s)\")\n", "\n", "fig, ax2 = plt.subplots(figsize=(10, 8))\n", "ax2.scatter(scores.astype(float), test_times.astype(float), s=60)\n", "ax2.set(title=\"Score-test time trade-off\", yscale=\"log\", xlabel=\"Test accuracy\", ylabel=\"Test time (s)\")\n", "\n", "for i, txt in enumerate(clf_names):\n", " ax1.annotate(txt, (float(scores[i]), float(train_times[i])))\n", " ax2.annotate(txt, (float(scores[i]), float(test_times[i])))\n" ] }, { "cell_type": "markdown", "id": "35fb3149-bae9-46b0-b64e-bf6e319b68fe", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.3" } }, "nbformat": 4, "nbformat_minor": 5 }