{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "aec3b115-9a3a-4fde-bb13-85d10c3a12b8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>job</th>\n",
       "      <th>marital</th>\n",
       "      <th>education</th>\n",
       "      <th>default</th>\n",
       "      <th>housing</th>\n",
       "      <th>loan</th>\n",
       "      <th>contact</th>\n",
       "      <th>month</th>\n",
       "      <th>day_of_week</th>\n",
       "      <th>...</th>\n",
       "      <th>campaign</th>\n",
       "      <th>pdays</th>\n",
       "      <th>previous</th>\n",
       "      <th>poutcome</th>\n",
       "      <th>emp.var.rate</th>\n",
       "      <th>cons.price.idx</th>\n",
       "      <th>cons.conf.idx</th>\n",
       "      <th>euribor3m</th>\n",
       "      <th>nr.employed</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>56</td>\n",
       "      <td>housemaid</td>\n",
       "      <td>married</td>\n",
       "      <td>basic.4y</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>telephone</td>\n",
       "      <td>may</td>\n",
       "      <td>mon</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>nonexistent</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>no</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>57</td>\n",
       "      <td>services</td>\n",
       "      <td>married</td>\n",
       "      <td>high.school</td>\n",
       "      <td>unknown</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>telephone</td>\n",
       "      <td>may</td>\n",
       "      <td>mon</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>nonexistent</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>no</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>37</td>\n",
       "      <td>services</td>\n",
       "      <td>married</td>\n",
       "      <td>high.school</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>telephone</td>\n",
       "      <td>may</td>\n",
       "      <td>mon</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>nonexistent</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>no</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>40</td>\n",
       "      <td>admin.</td>\n",
       "      <td>married</td>\n",
       "      <td>basic.6y</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>telephone</td>\n",
       "      <td>may</td>\n",
       "      <td>mon</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>nonexistent</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>no</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>56</td>\n",
       "      <td>services</td>\n",
       "      <td>married</td>\n",
       "      <td>high.school</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>telephone</td>\n",
       "      <td>may</td>\n",
       "      <td>mon</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>nonexistent</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>no</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   age        job  marital    education  default housing loan    contact  \\\n",
       "0   56  housemaid  married     basic.4y       no      no   no  telephone   \n",
       "1   57   services  married  high.school  unknown      no   no  telephone   \n",
       "2   37   services  married  high.school       no     yes   no  telephone   \n",
       "3   40     admin.  married     basic.6y       no      no   no  telephone   \n",
       "4   56   services  married  high.school       no      no  yes  telephone   \n",
       "\n",
       "  month day_of_week  ...  campaign  pdays  previous     poutcome emp.var.rate  \\\n",
       "0   may         mon  ...         1    999         0  nonexistent          1.1   \n",
       "1   may         mon  ...         1    999         0  nonexistent          1.1   \n",
       "2   may         mon  ...         1    999         0  nonexistent          1.1   \n",
       "3   may         mon  ...         1    999         0  nonexistent          1.1   \n",
       "4   may         mon  ...         1    999         0  nonexistent          1.1   \n",
       "\n",
       "   cons.price.idx  cons.conf.idx  euribor3m  nr.employed   y  \n",
       "0          93.994          -36.4      4.857       5191.0  no  \n",
       "1          93.994          -36.4      4.857       5191.0  no  \n",
       "2          93.994          -36.4      4.857       5191.0  no  \n",
       "3          93.994          -36.4      4.857       5191.0  no  \n",
       "4          93.994          -36.4      4.857       5191.0  no  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "# Load the CSV\n",
    "df = pd.read_csv(\"bank-additional-full.csv\", sep=';')\n",
    "\n",
    "# Optional: check it's loaded\n",
    "df.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "0be034b9-4d26-491d-9c42-a06eee127c4d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "All packages loaded successfully! 🎉\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.metrics import classification_report, confusion_matrix\n",
    "from imblearn.over_sampling import SMOTE\n",
    "\n",
    "print(\"All packages loaded successfully! 🎉\")\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "03fc1ba9-3f72-437c-bc69-f140ad18dfa3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 41188 entries, 0 to 41187\n",
      "Data columns (total 21 columns):\n",
      " #   Column          Non-Null Count  Dtype  \n",
      "---  ------          --------------  -----  \n",
      " 0   age             41188 non-null  int64  \n",
      " 1   job             41188 non-null  object \n",
      " 2   marital         41188 non-null  object \n",
      " 3   education       41188 non-null  object \n",
      " 4   default         41188 non-null  object \n",
      " 5   housing         41188 non-null  object \n",
      " 6   loan            41188 non-null  object \n",
      " 7   contact         41188 non-null  object \n",
      " 8   month           41188 non-null  object \n",
      " 9   day_of_week     41188 non-null  object \n",
      " 10  duration        41188 non-null  int64  \n",
      " 11  campaign        41188 non-null  int64  \n",
      " 12  pdays           41188 non-null  int64  \n",
      " 13  previous        41188 non-null  int64  \n",
      " 14  poutcome        41188 non-null  object \n",
      " 15  emp.var.rate    41188 non-null  float64\n",
      " 16  cons.price.idx  41188 non-null  float64\n",
      " 17  cons.conf.idx   41188 non-null  float64\n",
      " 18  euribor3m       41188 non-null  float64\n",
      " 19  nr.employed     41188 non-null  float64\n",
      " 20  y               41188 non-null  object \n",
      "dtypes: float64(5), int64(5), object(11)\n",
      "memory usage: 6.6+ MB\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "y\n",
       "no     36548\n",
       "yes     4640\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Check for null values and data types\n",
    "df.info()\n",
    "\n",
    "# Check unique values in the target column\n",
    "df['y'].value_counts()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "db67bf12-beea-480a-9266-284438f0cc10",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>duration</th>\n",
       "      <th>campaign</th>\n",
       "      <th>pdays</th>\n",
       "      <th>previous</th>\n",
       "      <th>emp.var.rate</th>\n",
       "      <th>cons.price.idx</th>\n",
       "      <th>cons.conf.idx</th>\n",
       "      <th>euribor3m</th>\n",
       "      <th>nr.employed</th>\n",
       "      <th>...</th>\n",
       "      <th>month_nov</th>\n",
       "      <th>month_oct</th>\n",
       "      <th>month_sep</th>\n",
       "      <th>day_of_week_mon</th>\n",
       "      <th>day_of_week_thu</th>\n",
       "      <th>day_of_week_tue</th>\n",
       "      <th>day_of_week_wed</th>\n",
       "      <th>poutcome_nonexistent</th>\n",
       "      <th>poutcome_success</th>\n",
       "      <th>y_yes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>56</td>\n",
       "      <td>261</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>57</td>\n",
       "      <td>149</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>37</td>\n",
       "      <td>226</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>40</td>\n",
       "      <td>151</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>56</td>\n",
       "      <td>307</td>\n",
       "      <td>1</td>\n",
       "      <td>999</td>\n",
       "      <td>0</td>\n",
       "      <td>1.1</td>\n",
       "      <td>93.994</td>\n",
       "      <td>-36.4</td>\n",
       "      <td>4.857</td>\n",
       "      <td>5191.0</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 54 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  duration  campaign  pdays  previous  emp.var.rate  cons.price.idx  \\\n",
       "0   56       261         1    999         0           1.1          93.994   \n",
       "1   57       149         1    999         0           1.1          93.994   \n",
       "2   37       226         1    999         0           1.1          93.994   \n",
       "3   40       151         1    999         0           1.1          93.994   \n",
       "4   56       307         1    999         0           1.1          93.994   \n",
       "\n",
       "   cons.conf.idx  euribor3m  nr.employed  ...  month_nov  month_oct  \\\n",
       "0          -36.4      4.857       5191.0  ...      False      False   \n",
       "1          -36.4      4.857       5191.0  ...      False      False   \n",
       "2          -36.4      4.857       5191.0  ...      False      False   \n",
       "3          -36.4      4.857       5191.0  ...      False      False   \n",
       "4          -36.4      4.857       5191.0  ...      False      False   \n",
       "\n",
       "   month_sep  day_of_week_mon  day_of_week_thu  day_of_week_tue  \\\n",
       "0      False             True            False            False   \n",
       "1      False             True            False            False   \n",
       "2      False             True            False            False   \n",
       "3      False             True            False            False   \n",
       "4      False             True            False            False   \n",
       "\n",
       "   day_of_week_wed  poutcome_nonexistent  poutcome_success  y_yes  \n",
       "0            False                  True             False  False  \n",
       "1            False                  True             False  False  \n",
       "2            False                  True             False  False  \n",
       "3            False                  True             False  False  \n",
       "4            False                  True             False  False  \n",
       "\n",
       "[5 rows x 54 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# One-hot encode categorical variables\n",
    "df_encoded = pd.get_dummies(df, drop_first=True)\n",
    "\n",
    "# Preview encoded data\n",
    "df_encoded.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "01682fd7-f94c-4f13-a295-4a849376ab02",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHHCAYAAACiOWx7AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAP4VJREFUeJzt3QmYU+Xd/vHfALLLICBbWRXLIpsMqwtVRBBxoaKCUBZZfEGgIsrWIihqUagKrQguVfQVWkSLCyiCIGgFRUdRFqFisWBZqyyKMGz5X/fzf0+uJGSGh2EgmZnv57rCkHOenJycnCR3ni0poVAoZAAAAMhSgaxXAwAAQAhNAAAAHghNAAAAHghNAAAAHghNAAAAHghNAAAAHghNAAAAHghNAAAAHghNAAAAHghNQD7w7bffWkpKis2YMcOSSY0aNezaa6+1ZHDfffe5Y3Q6HmPv3r0tUSZOnGh16tSxY8eOJWwf8rJTeW0F59x///vf03Yeff/991aiRAl76623Tvq2OB6hCaeN3gx8LkuXLrVkozenyH0sWbKknXfeeXbTTTfZq6++mic+gPQmqjdtX3rML774orVo0cLKlCljZ599tv3yl7+0nj172kcffWT52fLly92x3LNnjyWTffv22SOPPGIjR460AgUKHHdeZ3ZJZMiL5+eff3bH1+e94re//a17DBs3bsy0zO9//3tX5ssvv7S8rmzZstavXz+79957E70reUKhRO8A8q7//d//jbquD9xFixYdt7xu3bqWjIoUKWLPPvus+/+BAwfs3//+t7355psuOF1++eX2+uuvW6lSpSw3qF69unsMZ511VlRomjp1qndw0oeRyt9www3WvXt3K1SokG3YsMHefvttFyhbtmxpudmYMWNs1KhR2Q5N999/vwsbpUuXjlqnY6TAkgjPPfecHTlyxG699VZ3/X/+53+sbdu24fWbNm2ysWPH2u23326XXXZZePn5559vyRaadHxFr72s6Nz885//bLNmzXKPLZ6//vWv1qBBA2vYsOFpeW0lmwEDBtif/vQnW7JkibVp0ybRu5O76Qd7gTNh0KBB+nHoHNnWsWPHQj///HPodOnVq1eoRIkScddNmDDBPY5bbrkllF+ej+3bt4dSUlJC/fv3j/tc7NixI1v7UL169VDHjh1DifTTTz+d8jYmTZrkjuWmTZtCyaRhw4ah3/zmN5mu/+STT9x+P//880lzLOPZtWuX289x48Z5la9Vq1aoTp06cdctX77cbevhhx8+pX06fPhwKCMj45S2ocejfdHj83mt6H0pu+rXrx/q0aNHtm+P/4/mOSSUmnwmT55sF154oRUtWtQqVKjgvg3v3r07bt+Xd955x5o2bWrFihWzp556ylXXq5r95Zdfdt9Ef/GLX7hmI9UG7d271zIyMmzo0KFWvnx518R22223uWWnQrUR7dq1szlz5tg///nPqHWqddE3dvUh0H507NjR1q5dG1VGtRHal3/961/Wvn17V7Zy5co2fvx4JZiosvv377e7777bqlat6mq+ateubX/84x+PK6cavEsvvdTVcmjbKve73/0u034X2gfVGklks0xmVCOh+7zkkkuOW6fb6fieqG+Q7lvLtS+xFi5caI0bN3bnQL169ezvf/971PrDhw+75/eCCy5wZdTkoMerxx1p/fr1dsstt9i5557rzhEdBzXFxO7bunXrrFu3bnbOOee47WS237o+ePBgmzlzptuW7jstLc3ef//9qG0OHz7c/b9mzZrhYxk8znh9UfTc33zzza6Zs3jx4q6Wbv78+VFlIs/thx56yKpUqeLu/8orr8yy6SnyOVPzU2TNkg/dRvur2kPdX8WKFa1Pnz6ub0ykrI6lXtdar/Naj++KK65w5eIdCzVp6jUanOO1atVyTYpBE7iOo55P0TkQHN+sakhV26Rz4bPPPjtunWqgdHvVvh06dMjVRuk5TU1Nda9FvX7fe++9qNsErx+99vR+pZo47aseU7w+Tb7HMKA+TTpvVXOtc/vOO++0gwcPnvC5OtGxi3TVVVe5mvLY9w6cHJrnkFAKSHqzUZhR84/e6J944gn7/PPP7cMPP4yq8lYzh97odJv+/fu7D7HAhAkT3IekAo0+UFQ9r9uqWUQBTG+w6nej+9IHW2bV9r569OjhPuj1oa1+PaJmx169erkgpDcuNSlMmzbNfZDo8egDI3D06FG7+uqr3YelOuouWLDAxo0b55pSFJ5Eb27XX3+9ewPv27evCxUKjfqA/s9//mOPP/64K6dQpkCppgbdVm+eOgY6flkd961bt8ZtLs2sCUIUFPVhrw/CnPL1119bly5dXBOCjt/zzz/v7kPHRG/0oudPz7H6ZjRv3tz11fn000/dh2JQRh9U+sDT867mJh3vb775xn1QKHRE0vYVwP7whz+c8ENk2bJlNnv2bHd+6tg++eST7rlbuXKl1a9f32688UYXntXko+ekXLly7nbBB32sHTt22MUXX+zOD21TH5IvvPCCe65feeUV+/Wvfx1V/uGHH3bn8T333OO+COh8USj4+OOPT9hkKE2aNLGToXNCoU6vSX3Y6/x6+umn3V+9hmKDZbxjOXr0aLef1113nXs9fPHFF+5vbBDQMfjVr37lzmedk9WqVXP7rdtv27bNBRQdR72OBg4c6I6Njrdk1bSm46OApYAU+fj1ulMI1Xmi+1JYURO83lf0nvLjjz/aX/7yF7even71moukc1OPQeeXzgWF3ngB5WSPoQKTzled41qvpjS9b6lLQ2Z8jl0kBUOdn9oHnbfIpv+rcQLOeHPQBx984K7PnDkzqtyCBQuOW66qaS3TukjvvfeeW66q50OHDoWX33rrra45qUOHDlHlW7Vq5bZ1Ks1z8vnnn7v7veuuu9z1H3/8MVS6dOnjmq/UrJWamhq1XNvWbYcMGRLVxKVmqsKFC4er6l977TVX7sEHH4za5k033eQe28aNG931xx9//IRV/Go2im2GOdnm0p49e7ry55xzTujXv/516I9//GPoq6++yrTJIZbuO7YJK3heX3311fCyvXv3hipVqhS66KKLwssaNWp0wma81q1bh84+++zQv//976jlOrax+6bzw2e/dV2XTz/9NLxM2y9atKg7Bj7Nc7HNKkOHDnVldf4HdP7UrFkzVKNGjdDRo0ejzu26detGNQNNmTLFLV+9enWWx2PMmDGunLZ9Ms1z8Zq9//rXv7py77///gmPpc75QoUKhTp16hS1/L777nPlI4/FAw884F5n//znP6PKjho1KlSwYMHQ5s2bs9U8J82aNQtVqVIlfDwj31ueeuopd/3IkSPHNbHt3r07VKFChVCfPn2Oe/2UKlUqtHPnzhO+tk72GF5//fVRZe+44w63/Isvvsj0PPI9drHNkrNnz87yuCFrNM8hYVRroSpx1RToG19w0TciNTHFVpGrhkjfAOPRCK7IWimN8NJnnqrEI2n5li1bXI3OqdD+ib6ZBt8sVVWub6yRj6VgwYLuPmMfi6jZJ7YZSM0F7777brijtm6v2ohIaq7TY1NToAQdj9Ux/XSO6tO3bNUC6nmYO3euq/lQJ341F+nbbnap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DRtaqVKl3KVVq1b29ttvh9dffvnllpKSEnUZMGBA1DY2b95sHTt2tOLFi1v58uVt+PDhduTIkagyS5cutSZNmliRIkWsVq1aNmPGjOP2ZerUqVajRg0rWrSotWjRwlauXHkaHzkAAMhtEhqaqlSpYg8//LClp6fbp59+am3atLEbbrjB1q5dGy7Tv39/27ZtW/gyceLE8LqjR4+6wHTo0CFbvny5vfDCCy4QjR07Nlxm06ZNrswVV1xhq1atsqFDh1q/fv3snXfeCZeZPXu2DRs2zMaNG2efffaZNWrUyNq3b287d+48g0cDAAAks5RQKBSyJFKmTBmbNGmS9e3b19U0NW7c2CZPnhy3rGqlrr32Wtu6datVqFDBLZs+fbqNHDnSdu3aZYULF3b/nz9/vq1ZsyZ8u65du9qePXtswYIF7rpqlpo1a2ZPPPGEu37s2DGrWrWqDRkyxEaNGuW13/v27bPU1FTbu3evqzU7XfjtOeB4/PYcgOw6mc/vpOnTpFqjv/3tb7Z//37XTBeYOXOmlStXzurXr2+jR4+2n3/+ObxuxYoV1qBBg3BgEtUQ6QAEtVUq07Zt26j7UhktF9VSqaYrskyBAgXc9aAMAABAoUTvwOrVq11IOnjwoJUsWdLmzp1r9erVc+u6detm1atXt8qVK9uXX37pao02bNhgf//739367du3RwUmCa5rXVZlFKwOHDhgu3fvdoEtXpn169dnut8ZGRnuEtD2AABA3pXw0FS7dm3X10jVYq+88or16tXLli1b5oLT7bffHi6nGqVKlSrZlVdead98842df/75Cd3vCRMm2P3335/QfQAAAGdOwpvn1O9II9rS0tJcEFEn7ClTpsQtq75HsnHjRve3YsWKtmPHjqgywXWty6qM2i2LFSvmmv4KFiwYt0ywjXjUVKigF1y2bNmSrccPAAByh4SHpljqhB3Z7BVJNVKiGidRs56a9yJHuS1atMgFoqCJT2UWL14ctR2VCfpNKbQpsEWW0T7oemTfqliaviCYKiG4AACAvCuhzXOqrenQoYNVq1bNfvzxR5s1a5abU0nTAagJTtevueYaK1u2rOvTdNddd1nr1q3d3E7Srl07F4569OjhpiJQ/6UxY8bYoEGDXKgRzeukUXEjRoywPn362JIlS+zll192I+oCmm5AzYJNmza15s2bu9F66pB+2223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TZtcmSuuuMJWrVplQ4cOtX79+tk777wTLjN79mwbNmyYjRs3zj777DNr1KiRtW/f3nbu3HmGjgYAAEhmKaFQKGRJYteuXa6mSGGqdevW4Zqmxo0b2+TJk+Pe5u2337Zrr73Wtm7dahUqVHDLpk+fbiNHjnTbK1y4sPv//Pnzbc2aNeHbde3a1fbs2WMLFixw11WzpFqvJ554wl0/duyYVa1a1YYMGWKjRo064b7v27fPUlNTbe/evVaqVCk7XdKGv3jatg3kVumTeiZ6FwDkUifz+Z1UfZq0w1KmTJmo5TNnzrRy5cpZ/fr1bfTo0fbzzz+H161YscIaNGgQDkyiGiIdhLVr14bLtG3bNmqbKqPlolqq9PT0qDIFChRw14MysTIyMtx9RF4AAEDeVciShGp21Gx2ySWXuHAU6Natm1WvXt0qV65sX375pas1Ur+nv//972799u3bowKTBNe1LqsyCjoHDhyw3bt3u2a+eGXWr1+faX+s+++/P4cePQAASHZJE5rUt0nNZ//4xz+ilt9+++3h/6tGqVKlSnbllVfaN998Y+eff74limq81AcqoACm5jwAAJA3JUVoGjx4sM2bN8/ef/99q1KlSpZl1fdINm7c6EJTxYoVjxvltmPHDvdX64K/wbLIMmq7LFasmBUsWNBd4pUJthFLo/B0AQAA+UNC+zSpD7oC09y5c23JkiVWs2bNE95Go99ENU7SqlUrW716ddQoN43EUyCqV69euMzixYujtqMyWi7qLJ6WlhZVRs2Fuh6UAQAA+VuhRDfJzZo1y15//XU3V1PQB0m92FUDpCY4rb/mmmusbNmyrk/TXXfd5UbWNWzY0JXVFAUKRz169HBTEWgbY8aMcdsOaoI0r5NGxY0YMcL69OnjAtrLL7/sRtQF1NTWq1cva9q0qTVv3tyN1tPUB7fddluCjg4AAEgmCQ1N06ZNC08rEOn555+33r17uxqgd999Nxxg1Geoc+fOLhQF1Kympr2BAwe6WqESJUq48DN+/PhwGdVgKSApcE2ZMsU1AT777LNuBF2gS5cubooCze+k4KVpDjQdQWzncAAAkD8l1TxNuRnzNAGJwzxNAPLdPE0AAADJitAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAADggdAEAABwukJTmzZtbM+ePcct37dvn1sHAACQ12QrNC1dutQOHTp03PKDBw/aBx98kBP7BQAAkFQKnUzhL7/8Mvz/devW2fbt28PXjx49agsWLLBf/OIXObuHAAAAuS00NW7c2FJSUtwlXjNcsWLF7M9//nNO7h8AAEDuC02bNm2yUChk5513nq1cudLOPffc8LrChQtb+fLlrWDBgqdjPwEAAHJPn6bq1atbjRo17NixY9a0aVN3PbhUqlTppAPThAkTrFmzZnb22We7wNWpUyfbsGHDcf2kBg0aZGXLlrWSJUta586dbceOHVFlNm/ebB07drTixYu77QwfPtyOHDlyXD+sJk2aWJEiRaxWrVo2Y8aM4/Zn6tSp7vEVLVrUWrRo4YIhAADASdc0Rfr666/tvffes507d7oQFWns2LFe21i2bJkLRApOCjm/+93vrF27dq6/VIkSJVyZu+66y+bPn29z5syx1NRUGzx4sN1444324YcfhvtSKTBVrFjRli9fbtu2bbOePXvaWWedZX/4wx/CNWQqM2DAAJs5c6YtXrzY+vXr54Je+/btXZnZs2fbsGHDbPr06S4wTZ482a1TiFMQAwAA+VtKSO1tJ+mZZ56xgQMHWrly5VxYUR+n8AZTUuyzzz7L1s7s2rXLBRSFqdatW9vevXtdE+CsWbPspptucmXWr19vdevWtRUrVljLli3t7bfftmuvvda2bt1qFSpUcGUUfEaOHOm2p2ZD/V/Ba82aNeH76tq1q5s2QZ3XRUFJ4e2JJ55w1xUEq1atakOGDLFRo0adcN813YJCnfa5VKlSdrqkDX/xtG0byK3SJ/VM9C4AyKVO5vM7W1MOPPjgg/bQQw+50XOrVq2yzz//PHzJbmAS7bCUKVPG/U1PT7fDhw9b27Ztw2Xq1Klj1apVc6FJ9LdBgwbhwCSqIdJBWLt2bbhM5DaCMsE2NH2C7iuyTIECBdz1oEysjIwMdx+RFwAAkHdlKzTt3r3bbr755hzdEdXsDB061C655BKrX7++W6ZQppqi0qVLR5VVQAqmO9DfyMAUrA/WZVVGQefAgQP23//+1zXzxSsTOa1CbH8sJdPgolopAACQd2UrNCkwLVy4MEd3RH2b1Hz2t7/9zXKD0aNHu5qx4LJly5ZE7xIAAEi2juAafXbvvffaRx995JrG1Ok60m9/+9uT2p46d8+bN8/ef/99q1KlSni5+kup6Ux9jyJrmzR6TuuCMrGj3ILRdZFlYkfc6braLjW3lEb96RKvTLCNWBqFpwsAAMgfshWann76aTf8Xx22dYmkjuC+oUl90NXReu7cuW5KgJo1a0atT0tLc4FMo9001YBoNJumGGjVqpW7rr/qX6VRfMEot0WLFrlAVK9evXCZt956K2rbKhNsQ02Aui/dj6Y9CJoLdV2BDgAAIFuhSUP4c6pJTiPjXn/9dTdXU9B/SH2EVAOkv3379nVTAahzuIKQQpbCjkbOiaYoUDjq0aOHTZw40W1jzJgxbttBTZCmGtCouBEjRlifPn1syZIl9vLLL7sRdQHdR69evdz8U82bN3dTDuzfv99uu+22HHmsAAAgn87TlBOmTZvm/l5++eVRy59//nnr3bu3+//jjz/uRrKppkkj1jTq7cknnwyXVbOamvY0BYLClOZ3UvgZP358uIxqsBSQNOfTlClTXBPgs88+G56jSbp06eKmKNAcUwpe+skYTUcQ2zkcAADkT9map0m1NVl57rnnLL9hniYgcZinCcCZ+PwulN0pByJpLiWNfFOH7Xg/5AsAAJDbZSs0qeN2LHWcVhPZ+eefnxP7BQAAkPvnaYq7oQIFXGdq9UECAADIa3IsNMk333zjfngXAAAgr8lW85xqlCKpL/m2bdvcCDWNXAMAAMhrshWa9MO8sU1z5557rj366KMnHFkHAACQb0LTe++9l/N7AgAAkFcnt9RkkPpZE6ldu7arbQIAAMiLstURXD8voma4SpUqWevWrd2lcuXK7idPfv7555zfSwAAgNwYmtQRXD/U++abb7oJLXXR78dp2d13353zewkAAJAbm+deffVVe+WVV6J+M+6aa65xP7J7yy23hH9TDgAAIF/XNKkJLt4P2ZYvX57mOQAAkCdlKzS1atXKxo0bZwcPHgwvO3DggN1///1uHQAAQF6Trea5yZMn29VXX21VqlSxRo0auWVffPGFFSlSxBYuXJjT+wgAAJA7Q1ODBg3s66+/tpkzZ9r69evdsltvvdW6d+/u+jUBAADkNdkKTRMmTHB9mvr37x+1/LnnnnNzN40cOTKn9g8AACD39ml66qmnrE6dOsctv/DCC2369Ok5sV8AAAC5PzRt377dTWwZSzOC64d7AQAA8ppshaaqVavahx9+eNxyLdPM4AAAAHlNtvo0qS/T0KFD7fDhw9amTRu3bPHixTZixAhmBAcAAHlStkLT8OHD7fvvv7c77rjDDh065JYVLVrUdQAfPXp0Tu8jAABA7gxNKSkp9sgjj9i9995rX331lZtm4IILLnDzNAEAAORF2QpNgZIlS1qzZs1ybm8AAADyUkdwAACA/IbQBAAA4IHQBAAA4IHQBAAA4IHQBAAA4IHQBAAA4IHQBAAA4IHQBAAA4IHQBAAA4IHQBAAA4IHQBAAA4IHQBAAA4IHQBAAA4IHQBAAAkOyh6f3337frrrvOKleubCkpKfbaa69Fre/du7dbHnm5+uqro8r88MMP1r17dytVqpSVLl3a+vbtaz/99FNUmS+//NIuu+wyK1q0qFWtWtUmTpx43L7MmTPH6tSp48o0aNDA3nrrrdP0qAEAQG6U0NC0f/9+a9SokU2dOjXTMgpJ27ZtC1/++te/Rq1XYFq7dq0tWrTI5s2b54LY7bffHl6/b98+a9eunVWvXt3S09Nt0qRJdt9999nTTz8dLrN8+XK79dZbXeD6/PPPrVOnTu6yZs2a0/TIAQBAbpMSCoVClgRUizR37lwXViJrmvbs2XNcDVTgq6++snr16tknn3xiTZs2dcsWLFhg11xzjX333XeuBmvatGn2+9//3rZv326FCxd2ZUaNGuW2uX79ene9S5cuLsApdAVatmxpjRs3tunTp3vtv8JZamqq7d2719V6nS5pw188bdsGcqv0ST0TvQsAcqmT+fxO+j5NS5cutfLly1vt2rVt4MCB9v3334fXrVixwjXJBYFJ2rZtawUKFLCPP/44XKZ169bhwCTt27e3DRs22O7du8NldLtIKqPlmcnIyHAHOvICAADyrqQOTWqae/HFF23x4sX2yCOP2LJly6xDhw529OhRt161RwpUkQoVKmRlypRx64IyFSpUiCoTXD9RmWB9PBMmTHDJNLiorxQAAMi7ClkS69q1a/j/6pzdsGFDO//8813t05VXXpnQfRs9erQNGzYsfF01TQQnAADyrqSuaYp13nnnWbly5Wzjxo3uesWKFW3nzp1RZY4cOeJG1GldUGbHjh1RZYLrJyoTrI+nSJEiru0z8gIAAPKuXBWa1LlbfZoqVarkrrdq1cp1FNeouMCSJUvs2LFj1qJFi3AZjag7fPhwuIxG2qmP1DnnnBMuoybASCqj5QAAAAkPTZpPadWqVe4imzZtcv/fvHmzWzd8+HD76KOP7Ntvv3Wh5oYbbrBatWq5TtpSt25d1++pf//+tnLlSvvwww9t8ODBrllPI+ekW7durhO4phPQ1ASzZ8+2KVOmRDWt3XnnnW7U3aOPPupG1GlKgk8//dRtCwAAIOGhScHkoosuchdRkNH/x44dawULFnSTUl5//fX2y1/+0oWetLQ0++CDD1zTWGDmzJluUkr1cdJUA5deemnUHEzqpL1w4UIXyHT7u+++220/ci6niy++2GbNmuVup3mjXnnlFTclQf369c/wEQEAAMkqaeZpyu2YpwlIHOZpApBdeWqeJgAAgGRAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAEj20PT+++/bddddZ5UrV7aUlBR77bXXotaHQiEbO3asVapUyYoVK2Zt27a1r7/+OqrMDz/8YN27d7dSpUpZ6dKlrW/fvvbTTz9Flfnyyy/tsssus6JFi1rVqlVt4sSJx+3LnDlzrE6dOq5MgwYN7K233jpNjxoAAORGCQ1N+/fvt0aNGtnUqVPjrle4+dOf/mTTp0+3jz/+2EqUKGHt27e3gwcPhssoMK1du9YWLVpk8+bNc0Hs9ttvD6/ft2+ftWvXzqpXr27p6ek2adIku+++++zpp58Ol1m+fLndeuutLnB9/vnn1qlTJ3dZs2bNaT4CAAAgt0gJqTonCaimae7cuS6siHZLNVB333233XPPPW7Z3r17rUKFCjZjxgzr2rWrffXVV1avXj375JNPrGnTpq7MggUL7JprrrHvvvvO3X7atGn2+9//3rZv326FCxd2ZUaNGuVqtdavX++ud+nSxQU4ha5Ay5YtrXHjxi6w+VA4S01NdfuoWq/TJW34i6dt20BulT6pZ6J3AUAudTKf30nbp2nTpk0u6KhJLqAH1aJFC1uxYoW7rr9qkgsCk6h8gQIFXM1UUKZ169bhwCSqrdqwYYPt3r07XCbyfoIywf3Ek5GR4Q505AUAAORdSRuaFJhENUuRdD1Yp7/ly5ePWl+oUCErU6ZMVJl424i8j8zKBOvjmTBhggtxwUV9pQAAQN6VtKEp2Y0ePdpV5QWXLVu2JHqXAABAfgxNFStWdH937NgRtVzXg3X6u3Pnzqj1R44ccSPqIsvE20bkfWRWJlgfT5EiRVzbZ+QFAADkXUkbmmrWrOlCy+LFi8PL1G9IfZVatWrlruvvnj173Ki4wJIlS+zYsWOu71NQRiPqDh8+HC6jkXa1a9e2c845J1wm8n6CMsH9AAAAJDQ0aT6lVatWuUvQ+Vv/37x5sxtNN3ToUHvwwQftjTfesNWrV1vPnj3diLhghF3dunXt6quvtv79+9vKlSvtww8/tMGDB7uRdSon3bp1c53ANZ2ApiaYPXu2TZkyxYYNGxbejzvvvNONunv00UfdiDpNSfDpp5+6bQEAAEihRB4GBZMrrrgifD0IMr169XLTCowYMcJNBaB5l1SjdOmll7pwowkoAzNnznTh5sorr3Sj5jp37uzmdgqok/bChQtt0KBBlpaWZuXKlXMTZkbO5XTxxRfbrFmzbMyYMfa73/3OLrjgAjclQf369c/YsQAAAMktaeZpyu2YpwlIHOZpApCv52kCAABIJoQmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAAAAD4QmAACA3B6a7rvvPktJSYm61KlTJ7z+4MGDNmjQICtbtqyVLFnSOnfubDt27IjaxubNm61jx45WvHhxK1++vA0fPtyOHDkSVWbp0qXWpEkTK1KkiNWqVctmzJhxxh4jAADIHZI6NMmFF15o27ZtC1/+8Y9/hNfddddd9uabb9qcOXNs2bJltnXrVrvxxhvD648ePeoC06FDh2z58uX2wgsvuEA0duzYcJlNmza5MldccYWtWrXKhg4dav369bN33nnnjD9WAACQvApZkitUqJBVrFjxuOV79+61v/zlLzZr1ixr06aNW/b8889b3bp17aOPPrKWLVvawoULbd26dfbuu+9ahQoVrHHjxvbAAw/YyJEjXS1W4cKFbfr06VazZk179NFH3TZ0ewWzxx9/3Nq3b3/GHy8AAEhOSV/T9PXXX1vlypXtvPPOs+7du7vmNklPT7fDhw9b27Ztw2XVdFetWjVbsWKFu66/DRo0cIEpoCC0b98+W7t2bbhM5DaCMsE2AAAAkr6mqUWLFq45rXbt2q5p7v7777fLLrvM1qxZY9u3b3c1RaVLl466jQKS1on+RgamYH2wLqsyClYHDhywYsWKxd23jIwMdwmoPAAAyLuSOjR16NAh/P+GDRu6EFW9enV7+eWXMw0zZ8qECRNciAMAAPlD0jfPRVKt0i9/+UvbuHGj6+ekDt579uyJKqPRc0EfKP2NHU0XXD9RmVKlSmUZzEaPHu36VQWXLVu25NjjBAAAySdXhaaffvrJvvnmG6tUqZKlpaXZWWedZYsXLw6v37Bhg+vz1KpVK3ddf1evXm07d+4Ml1m0aJELRPXq1QuXidxGUCbYRmY0PYG2E3kBAAB5V1I3z91zzz123XXXuSY5TScwbtw4K1iwoN16662Wmppqffv2tWHDhlmZMmVcaBkyZIgLOxo5J+3atXPhqEePHjZx4kTXf2nMmDFubieFHhkwYIA98cQTNmLECOvTp48tWbLENf/Nnz8/wY8eQH6TNvzFRO8CkHTSJ/W0ZJHUoem7775zAen777+3c8891y699FI3nYD+L5oWoECBAm5SS3XK1qi3J598Mnx7Bax58+bZwIEDXZgqUaKE9erVy8aPHx8uo+kGFJA059OUKVOsSpUq9uyzzzLdAAAAiJISCoVC0YuQHRo9p9ov9W86nU11fBMFkvub6Kng9Q2c+df3yXx+56o+TQAAAIlCaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaAIAAPBAaIoxdepUq1GjhhUtWtRatGhhK1euTPQuAQCAJEBoijB79mwbNmyYjRs3zj777DNr1KiRtW/f3nbu3JnoXQMAAAlGaIrw2GOPWf/+/e22226zevXq2fTp06148eL23HPPJXrXAABAghGa/s+hQ4csPT3d2rZtG15WoEABd33FihUJ3TcAAJB4hRK9A8niv//9rx09etQqVKgQtVzX169ff1z5jIwMdwns3bvX/d23b99p3c+jGQdO6/aB3Oh0v+7OFF7fwJl/fQfbD4VCJyxLaMqmCRMm2P3333/c8qpVqyZkf4D8LPXPAxK9CwBy+ev7xx9/tNTU1CzLEJr+T7ly5axgwYK2Y8eOqOW6XrFixePKjx492nUaDxw7dsx++OEHK1u2rKWkpJyRfUbi6JuJAvKWLVusVKlSid4dADmI13f+EgqFXGCqXLnyCcsSmv5P4cKFLS0tzRYvXmydOnUKByFdHzx48HHlixQp4i6RSpcufcb2F8lBb6i8qQJ5E6/v/CP1BDVMAUJTBNUc9erVy5o2bWrNmze3yZMn2/79+91oOgAAkL8RmiJ06dLFdu3aZWPHjrXt27db48aNbcGCBcd1DgcAAPkPoSmGmuLiNccBkdQ0q0lQY5toAeR+vL6RmZSQzxg7AACAfI7JLQEAADwQmgAAADwQmgAAADwQmgAAADwQmgAAADwQmgAAADwQmoAsXH755fbb3/7WRowYYWXKlHG/Q3jfffeF12/evNluuOEGK1mypPu5hVtuueW43y8EkBxefPFF9/ugGRkZUcv101k9evRw/3/99detSZMmVrRoUTvvvPPcD7MfOXLErdMMPXr9V6tWzc3hpN8q0/sD8g9CE3ACL7zwgpUoUcI+/vhjmzhxoo0fP94WLVrkfptQgUk/1Lxs2TK37F//+pebWR5A8rn55pvt6NGj9sYbb4SX7dy50+bPn299+vSxDz74wHr27Gl33nmnrVu3zp566imbMWOGPfTQQ67sq6++ao8//rhb/vXXX9trr71mDRo0SOAjwpnG5JbACWqa9CarN9OAfpewTZs2duWVV1qHDh1s06ZN7hfRRW+0F154oa1cudKaNWuWwD0HEM8dd9xh3377rb311lvu+mOPPWZTp061jRs32lVXXeVe16NHjw6Xf+mll1xN89atW11ZBaY1a9bYWWedlcBHgUShpgk4gYYNG0Zdr1Spkvt2+tVXX7mwFAQmqVevnpUuXdqtA5B8+vfvbwsXLrT//Oc/7rpqknr37m0pKSn2xRdfuJpkNbcHF5Xftm2b/fzzz66m6sCBA67ZTsvnzp0bbrpD/sBvzwEnEPuNUm+uapoDkPtcdNFF1qhRI9e/qV27drZ27VrXPCc//fST68N04403Hnc79XHSF6QNGzbYu+++65rjVWs1adIk1zxPzVP+QGgCsqlu3bq2ZcsWd4lsntuzZ4+rcQKQnPr162eTJ092tU1t27YNv37VAVyhqFatWpnetlixYnbddde5y6BBg6xOnTq2evVqd1vkfYQmIJv0ZqtOoN27d3dvwKqm1zfPX/3qV9a0adNE7x6ATHTr1s3uuecee+aZZ1yNU2Ds2LF27bXXutFxN910kxUoUMA12akP04MPPuia8tTHsUWLFla8eHHX30khqnr16gl9PDhz6NMEZJOa6TQ8+ZxzzrHWrVu7EKW+DrNnz070rgHIQmpqqnXu3Nn1WdJ0A4H27dvbvHnzXJ8nDeRo2bKlGy0XhCL1V1TQuuSSS1xfRzXTvfnmm24aA+QPjJ4DAOQ7GiWnka5/+tOfEr0ryEUITQCAfGP37t22dOlS1/ymPoi1a9dO9C4hF6FPEwAgX42eU3B65JFHCEw4adQ0AQAAeKAjOAAAgAdCEwAAgAdCEwAAgAdCEwAAgAdCEwAAgAdCEwAAgAdCEwAAgAdCEwDEoR9y1W+KZWRkRC3Xb5X16NEjYfsFIHEITQAQx8033+x+0f6NN94IL9u5c6fNnz/f+vTpk9B9A5AYhCYAiKNYsWLWrVs3e/7558PLXnrpJatWrZpdfvnlCd03AIlBaAKATPTv398WLlxo//nPf9z1GTNmWO/evS0lJSXRuwYgAfjtOQDIQlpamt10003Wrl07a968uX377bdWtWrVRO8WgAQolIg7BYDcol+/fjZ58mRX29S2bVsCE5CPUdMEAFnYu3evVa5c2Y4cOeJG1HXp0iXRuwQgQejTBABZSE1Ntc6dO1vJkiXddAMA8i9CEwCcgJrmunfvbkWKFEn0rgBIIJrnACATu3fvtqVLl7qO4OvWrbPatWsnepcAJBAdwQEgExdddJELTo888giBCQA1TQAAAD7o0wQAAOCB0AQAAOCB0AQAAOCB0AQAAOCB0AQAAOCB0AQAAOCB0AQAAOCB0AQAAOCB0AQAAGAn9v8AYccF0SalsFMAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPONJREFUeJzt3QuczNX/x/HPbvbiui7Fkl2535UoRIhlc/u5JcVPiajIvfxSoQspJVKrkFASqVQoEdE/IemKErnf1q+yRHYt5v/4nN/vO7+Ztasta+c7Z17Px2Oane98zZ7Zdnbec87nnBPm8Xg8AgAAYKnwQDcAAADgYiLsAAAAqxF2AACA1Qg7AADAaoQdAABgNcIOAACwGmEHAABYjbADAACsRtgBAABWI+wACDlhYWFy7733ihv07NlTrrjiiovyHB955JEcf1wgGBF2AJebMmWKeeOqV6+ehKJTp07Jc889J7Vr15ZChQpJ4cKFpXr16tK3b1/58ccfJZR98MEHBBogG/Jk5yQAgfP666+bT/5ffPGFbN++XSpUqCChpHPnzvLhhx/KrbfeKn369JH09HQTchYvXizXXXedVKlSRYLZ9OnT5ezZs3877CQlJWUaeE6ePCl58vAnHlC8EgAX27lzp3z++efyzjvvyF133WWCz+jRoyVUbNiwwYSasWPHyoMPPuh33wsvvCApKSkSrE6cOCH58+eXiIiIi/L40dHRF+VxgWDEMBbgYhpuihQpIm3atJGbbrrJ3M7Mr7/+Kj169PAO89x+++3y7bffmuGvWbNm+Z2rvSL6WEWLFjVviHXr1pX333//vO3Q3hQ9/4477jjnvmPHjpnHue+++7zHnn/+eTPUlC9fPtN+/R5z5879y8//559/NtcNGzY8575LLrlEihUr9qe1L9rroT+HzOjPs3Llyqb9derUkU8//dTv/t9//10GDx5sHjcqKkqKFy8uLVq0kK+++srvvPXr10vr1q3Nc9UAU6tWLTP05tu2AgUKmOej5xUsWFC6d++eabt37dpl2vvMM8/IxIkTpUyZMpI3b15p0qSJbNq0ye8xtVdH6fnO5Xw1O19//bW0atXK/J5oe5o3by7r1q3zO0d/X/TfrlmzRoYOHSqXXXaZeU4dO3aUf//735n+HAG3o2cHcDF9M+7UqZNERkaaYZwXX3zR9HZcc8013nN0CKRdu3ZmmOuee+4xwzrvvfeeCTwZbd682QSHyy+/XB544AHzJvbmm29Khw4d5O233zZvaJnR3ge9T3uYpk6datrjePfddyUtLU1uueUW77DMwIEDTaAaNGiQpKamynfffWcCQbdu3f7S89c3eufnoO3OyWGZ1atXy/z5801bNchobdSNN95ofo41atQw59x9993y1ltvmWLmatWqmVD52WefyQ8//CBXX321OWf58uXStm1bKVmypHm+sbGx5n7tkdLbjtOnT0tiYqI0atTIBBkNgufz6quvmrDVv39/8zPU8NSsWTP5/vvvpUSJEqan78CBA+b7v/baa3/6fPX//fXXX2+CzvDhw83/U/1/2bRpU/OzyFgTNmDAABPetCdRA9ikSZPMz0F/ZkDQ8QBwpS+//NKjL9Hly5eb22fPnvWULl3aM2jQIL/z3n77bXPepEmTvMfOnDnjadasmTk+c+ZM7/HmzZt7atas6UlNTfUe08e97rrrPBUrVjxvez766CPzeIsWLfI73rp1a0+5cuW8t9u3b++pXr26Jydo25o0aWK+b4kSJTy33nqrJykpybN79+5zzr399ts9ZcqUOef46NGjzb/3pbf1oj9jhz5mdHS0p2PHjt5jMTExnv79+2fZvtOnT3vKli1rvu+RI0fOabtv2/T7PfDAA3/a7p07d5pz8+bN69m3b5/3+Pr1683xIUOGeI9p27L6M67H9bk7OnTo4ImMjPT8/PPP3mMHDhzwFCxY0NO4cWPvMf190X+bkJDg9xz0+15yySWelJSULH8egFsxjAW4lPZm6Cf4G264wdzWoYWuXbvKvHnz5MyZM97zli5daj6la/GuIzw83PQI+Prtt99k5cqVcvPNN5seg19++cVctLdCexy2bdsm+/fvz7I92qtw6aWX+n2yP3LkiOlZ0HY5dBht3759pgfqQulz/uijj2TMmDGml+GNN94wz0t7fPR7XkjNToMGDczQlSM+Pl7at29vvp/z89Xnoj1S2oOSGR0W0roqHerSczO2PSPtecsu7W3THjjHtddea3pftCj5r9Lns2zZMvOY5cqV8x7X3ijtbdPeKh2O9KWz3Xyfg/YK6ePs3r37L39/INAIO4AL6ZuKhhoNOvpmqrOw9KJvdsnJybJixQrvufrmo29aGYdFMs7a0n+vH/hHjhxp6jB8L07R8+HDh7Nskw4h6cwoHSLTYSulw1paz+Mbdv71r3+ZehB9c65YsaIJJ1r/8XfpENNDDz1khoY0dGjgqV+/vhl+u5C1crRtGVWqVEn++OMPb23K+PHjTZ1MXFyceT5aA7Njx45zaoqcYa/z0Z9f6dKlL7h9OqT0V+nz0eel9UkZVa1a1QyF7t271++4hj9fGjadgAsEG8IO4ELaA3Pw4EETePRNz7lor4zKqlD5fJzpzVpIrL0xmV3+bFq71uVor5BOBVcaOLRG6Morr/R789y6datpu9anaC2QXufELDINddoGLSTWn4d+f62FUVkVIfv2gv1V+vPWcKMF16VKlZKnn37aFF47z/+vhjbtcQsWWgCemf+MkAHBhQJlwIU0zOjMH2e2jS/tTVm4cKG89NJLZpaODul88skn5pO7b++O9uT4coYvdMgrISHhb7WrcePGJnDoUJYGGA1l2uuSkRY+a2+PXnRRQC2y1unjI0aMyJEp0focdMaTDr3pUJwWBWvPQ2bDWlkNu+i/zeinn34yP0Pt7XLo8+3Xr5+5aM+XFibrc9FZTeXLlzfnaO/P3/2ZZiWr9vnO3Moq4GWkz0efl4bQjHR2noYw7b0CbBU8HzOAEKGLwWmg0Rk+OqMp40WHbrR3xZkurvU2OpSks6B8e3EyBiUNTzrzRmfgaK9RRtmZVqxvitqGRYsWmRlA2qviO4SltAbIl87c0plM2iOg7VQazPRNVoPKn73h79mz55zjGmrWrl1rAo4TTDR4HD161Mz8cujz1GCYGf33vlPIdRhHh+hatmxpejW0R0gfL+PPUHt4nGE8DT5ly5Y1M5UyBq0L7QHRWW6+NVQ6S0zrhzRk+YZK5+dxPvp89Hnp8/MdBtMhUV0SQIOrztICbEXPDuAyGmI0zPzjH//I9H6tV9E3eO390aChRadaTzJs2DDTm6PDSvoYWpCc8dO/BiB9Y6tZs6YpaNbeHn3D0zd+LSrWtXn+jH5PHdbRYSl9HB228qVvqtrTolPFtcBaa210AUBdK0jXl3HeuLUeSR/jfNsdaHu0gFbf4LVAVtf60QAwe/ZsU7+jIcMZbtHhLa0X0inyOp1cA5VO1dc6l4zr4jh1NhoUfaeeq0cffdRc6/8DrbHRcKfDdFqH9PHHH5vC6wkTJnjDn34Pnfp/1VVXmXWItCdIg5xO9dZi579LhxT1/5UWNWu40ueq6wrptHGHU2Ctz0Gfi/4snCUAMtIibx2q1MfUXiqtIdLgq4+ttUmA1QI9HQyAv3bt2pkp0CdOnMjynJ49e3oiIiI8v/zyi7n973//29OtWzczjVinS+v9a9asMVOI582b5/dvderxbbfd5omNjTWPcfnll3vatm3reeutt7LVPp2OHBcXZx57zJgx59w/depUM5W5WLFinqioKE/58uU9999/v+fo0aPecz755JNzpkZnJjk52fPkk0+a6eclS5b05MmTx1OkSBEzrT6z9i5btsxTo0YNM8W6cuXKnjlz5mQ59Vynbev9OuVe21m7dm3TLkdaWppp95VXXml+rvnz5zdfT5ky5Zzv+9lnn3latGjhPa9WrVqe559/3m96uR7PTFZTz59++mnPhAkTzM9a23f99dd7vv3223Omvg8YMMBz2WWXecLCwvyeZ2Y/36+++sqTmJjoKVCggCdfvnyeG264wfP555/7neNMPd+wYYPfcef/me/PCAgWYfqfQAcuADlPh0G0l0OnFWe2AjHcSYeZdGhMi6F9V6UG8PdRswNYUufjS+tNdKhJ6zCclX4BIFRRswNYQJf218CjC+VpDYYWOOsGok888YSZsQUAoYywA1hAVzfWolndj0n3UdLiVu3ZuZBF9wDAFtTsAAAAq1GzAwAArEbYAQAAVqNm57+rzeoCZbrgWXaXXwcAAIGllTi6AKiubH6+vecIOyIm6LAvDAAAwUm3e9EVz7NC2BHxLmGvPyz2hwEAIDgcO3bMdFY47+NZIez47B2kQYewAwBAcPmzEhQKlAEAgNUCGnY+/fRTs1uwFhZpKtO9fDIWHo0aNcrsIqyrwCYkJMi2bdv8ztGdnbt37256ZAoXLiy9e/eW48eP5/IzAQAAbhXQsHPixAm58sorJSkpKdP7x48fL5MnT5aXXnpJ1q9fL/nz55fExESzQqxDg87mzZtl+fLlZvVYDVB9+/bNxWcBAADczDUrKGvPzsKFC6VDhw7mtjZLe3yGDRvm3fn36NGjUqJECZk1a5bccsst8sMPP0i1atVkw4YNUrduXXPO0qVLpXXr1rJv3z7z77Nb4BQTE2Men5odAACCQ3bfv11bs7Nz5045dOiQGbpy6BOqV6+erF271tzWax26coKO0vN1rr32BAEAALh2NpYGHaU9Ob70tnOfXhcvXtzv/jx58kjRokW952RG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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "# Distribution of target\n",
    "sns.countplot(x='y', data=df)\n",
    "plt.title(\"Term Deposit Subscription (Target Variable)\")\n",
    "plt.show()\n",
    "\n",
    "# Example: Age distribution by subscription\n",
    "sns.boxplot(x='y', y='age', data=df)\n",
    "plt.title(\"Age vs. Subscription\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "0ea83dd1-497b-4c11-bf58-e3f2c49aadd2",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X = df_encoded.drop('y_yes', axis=1)\n",
    "y = df_encoded['y_yes']  # 1 if yes, 0 if no\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ebe835c5-e9e6-446a-8a86-9f046ca7bfd8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[10641   327]\n",
      " [  730   659]]\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "       False       0.94      0.97      0.95     10968\n",
      "        True       0.67      0.47      0.55      1389\n",
      "\n",
      "    accuracy                           0.91     12357\n",
      "   macro avg       0.80      0.72      0.75     12357\n",
      "weighted avg       0.91      0.91      0.91     12357\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.metrics import classification_report, confusion_matrix\n",
    "\n",
    "model = RandomForestClassifier(random_state=42)\n",
    "model.fit(X_train, y_train)\n",
    "\n",
    "y_pred = model.predict(X_test)\n",
    "\n",
    "print(confusion_matrix(y_test, y_pred))\n",
    "print(classification_report(y_test, y_pred))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "23a5f4ee-733d-40ea-a033-935e27726a69",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApEAAAGzCAYAAAB3p0xrAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAATihJREFUeJzt3QmcjXX///HPjGXs+17W7PsWKUUoCqXllpQtUSFLlNxuW7KrKEulskSJlHaKUMmWLUVCRN2hyJbs5/94f3//c+5zZr+YacyZ1/PxOM2c67rOdX3PNdPM2+e7TITP5/MZAAAA4EGkl4MBAAAAIUQCAADAM0IkAAAAPCNEAgAAwDNCJAAAADwjRAIAAMAzQiQAAAA8I0QCAADAM0IkAAAAPCNEAgAAwDNCJIAUFRERkajH8uXLk70tU6dOtX/9619WrFgxd82OHTvGeeyRI0esa9eulj9/fsuaNavdeOONtmHDhkRdp2HDhla5cmVLrf773//a0KFDbdOmTcl+rZMnT7prJfbrr+Pi+h5q06ZNsrRx69atro179uxJlvMDl6v0Kd0AAGnb66+/HvJ81qxZ9tlnn8XYXqFChWRvy5gxY+z48eNWp04d++233+I87sKFC9a8eXPbvHmzPf7445YvXz6bMmWKC4fr16+3MmXKWDhTiBw2bJiVKFHCqlevnuwhUtcS3d/E6tmzp1199dUh29Te5AqRaqPal1zXAC5HhEgAKer+++8Peb569WoXIqNv/yesWLEiUIXMli1bnMe9/fbb9vXXX9v8+fPt7rvvdttat25tZcuWtSFDhtgbb7xh4ejcuXMuQKcG119/feBrk1r99ddfrsoNXK7ozgaQKn6Z9u3b14oWLWpRUVFWrlw5Gz9+vPl8vpDjFP569Ohhc+bMccdkypTJatWqZV988UWirlO8eHF3joQoRBYsWNDuvPPOwDZ1aytIvvfee3b69GnP79HfdgXTihUrWubMma1evXq2ZcsWt/+ll16y0qVLu/ekilf0rlN/F7kqoddee617fcmSJe3FF1+Mca2DBw9a586d3XvQ+apVq2YzZ84MOUbnV5t0nydMmGBXXXWVu/equPorfJ06dQp0Fc+YMcNt+/LLLwNDAnS8vmZ9+vSxv//+O+T8GiqgoP7rr79aq1at3Oe6h/369bPz588H2qBtokqf/1rqOr5Ua9assWbNmlnOnDktS5Ys1qBBA1u5cmXIMT///LN169bNfS/pfubNm9e9t+B7r/etbaIhDdGHX8TVXlUsg4dL6Dw6Vv+Q0TULFChgV155ZWD/J5984oKxQmX27NldJfz7778POef+/fvd10Sv070vXLiw3X777XSzI9lQiQRwWVNQvO2222zZsmUu+Kj7dPHixa4bWQHkueeeCzlev4Tfeust153pDz0KC2vXrk2ycYgbN260mjVrWmRk6L/D1Q3+8ssv248//mhVqlTxfF4FsPfff9+6d+/uno8aNcpatGhhTzzxhHsfChd//vmnjR071h544AH7/PPPQ16vfbfeeqsLs/fee6/NmzfPHnnkEcuYMaM7XhTmFDh37tzpQquCpoKrAo3Gefbq1SvknNOnT7dTp0658Z+6n3fccYfr8h88eLDbpmAjCq6ic6kLWtdV6NJ9f+GFF+yXX35x+4IpLDZt2tTq1q3rwuqSJUvsmWeecYFVr1eA1DhVfa7r+kN71apVE7yXauMff/wRsi1Pnjzua6b7dsstt7h/YKhyrG16n40aNXJfA30dZd26da7irLGUCmYKY2qP7p+6sBU+b7jhBve99vzzz9u///3vwLCLix1+oa+x3rfur/7xJBra0aFDB3evNORC91ftqF+/vvte9Heh33XXXS5YPvroo26b/rGgqv7evXvpZkfy8AHAZaR79+4qLwaeL1y40D1/+umnQ467++67fREREb6dO3cGtuk4Pb755pvAtp9//tmXKVMm3x133OGpHVmzZvV16NAhzn0PPPBAjO0fffSRu/6iRYviPXeDBg18lSpVCtmm10VFRfl2794d2PbSSy+57YUKFfIdO3YssH3AgAFue/CxOqe2PfPMM4Ftp0+f9lWvXt1XoEAB35kzZ9y2CRMmuONmz54dOE776tWr58uWLVvgOjq3jsuRI4fv4MGDIW1dt26d2zd9+vQY7+3kyZMxto0aNcp9rfS18NO91TmeeuqpkGNr1Kjhq1WrVuD577//7o4bMmSILzGWLVsW+D6I/tB7unDhgq9MmTK+pk2bus+D212yZEnfTTfdFO97WbVqlTvXrFmzAtvmz5/vtuna0cXV9uLFi4d8f+le6tj69ev7zp07F9h+/PhxX65cuXxdunQJef3+/ft9OXPmDGz/888/3evHjRuXqPsEJAW6swFc1j7++GNL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CVaiRInA/pkzZ9p7771nERER7rF8+XK375dffrF7773X8uTJY1mzZrXatWvbmjVrAueZOnWqXXXVVZYxY0YrV66cvf766yHX0bleeukla9GihWtbhQoVbNWqVbZz5073vnTOa6+91nbt2hXyOrWlZs2alilTJitVqpQNGzbMzp07l+C90j3R+ylWrJhFRUVZkSJFrGfPniHtWbhwYchrcuXKZTNmzAg8T+g9f/DBB3b11Ve7tulrcccddwT2nT592vr162dXXHGFe23dunUD91J+/vlna9mypftaaX+lSpXs448/Dnwd77vvPsufP79lzpzZypQpY9OnT0/wPQMAgLTD8zqRCnmdO3e2tWvX2jfffGNdu3Z1QalLly6uK1qh8f3337ccOXJY//797dZbb7WtW7dahgwZEjy3Qs+2bdvs2LFjgdCiAHXixAlr0KCBC0Q6d6FChWzDhg124cIFd8y7775rvXr1coG0SZMm9uGHH1qnTp3syiuvtBtvvDFw/uHDh9uzzz7rHmpb27ZtXTAcMGCAew8PPPCAC8iffPKJO/7LL790ofj555+366+/3gVMvV8ZMmRIvO9lwYIF9txzz9ncuXNdQNu/f79t3rw50fc5off80UcfudA4cOBAmzVrlp05cyYQAkXvQ/dd11eA1T1q1qyZbdmyxYXC7t27u9d88cUXLkTq2GzZsrnX6h8Geq77oHCqoP3333/H2VYFVj389PUDAADhzXOILFq0qAtHqqSp4qdQoueq5insrFy50lX0ZM6cOe54Vdz+9a9/JXhuhRhVvhRIFJr8VJ37/fffbd26dS5USunSpQP7x48f7wJst27d3PPHHnvMVq9e7bYHh0gFy9atW7vPFSLr1avnAlPTpk3dNgVRHeOnquOTTz5pHTp0cM8VOBVEn3jiiQRD5N69e917UKhVgFZIrVOnTiLvstkbb7wR73seMWKEtWnTxrXRr1q1aoFrK4TrowKkP6AvWrTIbR85cqTbd9ddd1mVKlUC7y247TVq1HCVT/FXiuMyatSokHYAAIDw53lM5DXXXOMCpJ+CmKqPqlylT5/edZv65c2b1wVNVRcvxaZNm1yo8Yep6HT+6667LmSbnke/btWqVQOfFyxY0H30hyj/tlOnTgUqaaocPvXUUy7c+h+quP7222928uTJeNus0KzqncKZXqNKYGK6wRP7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IgEAAOBZeu8vARKn8pDFFhmVxVKjPaObp3QTAAC4rFGJBAAAgGeESAAAAHhGiAQAAIBnhMgw8PLLL1vRokUtMjLSJkyYELJvz549FhERYZs2bYrz9cuXL3fHHDly5B9oLQAACAdMrEnljh07Zj169LBnn33W7rrrLsuZM2fIfoXL3377zfLly5dibQQAAOGHEJnK7d27186ePWvNmze3woULx9ifLl06K1SoUIq0DQAAhK+w686+cOGCjR071kqXLm1RUVFWrFgxGzFihNu3ZcsWa9SokWXOnNny5s1rXbt2tRMnTgRe27FjR2vVqpWNHz/eBTId0717dxfS/KZMmWJlypSxTJkyWcGCBe3uu++Otz0rV660hg0bWpYsWSx37tzWtGlT+/PPP92+06dPW8+ePa1AgQLufPXr17d169bF6GZeunSp1a5d253j2muvte3bt7v9M2bMsCpVqrjPS5Uq5Y5V93VC3dkff/yxlS1b1t2HG2+8McZrHnjgAatataprn5w5c8Zq1Khh7du3v4ivCAAACEdhFyIHDBhgo0ePtkGDBtnWrVvtjTfecGHvr7/+cgFOQU5Bbf78+bZkyRLXFRxs2bJltmvXLvdx5syZLqjpId98840LfU899ZQLcosWLbIbbrghzrYouDVu3NgqVqxoq1atsq+++spatmxp58+fd/ufeOIJW7BggbvOhg0bXPBVGw8fPhxynoEDB9ozzzzjrp8+fXoX8uSee+5x70HWrl3ruq3VfR2fffv22Z133unaofY9+OCD9uSTT4Yc8/zzz7v75d+u62u85KRJk2I9p8KmutWDHwAAILyFVXf28ePHbeLEiS7sdOjQwW276qqrXIVv2rRpdurUKZs1a5ZlzZrV7dNxClNjxoxxQVMUMrVd3cDly5d33cSqBHbp0sV1Heu1LVq0sOzZs1vx4sVdhS4uqoiqgqjqpV+lSpXcR4W0qVOnuoB6yy23uG1q42effWavvvqqPf7444HXqJLaoEED97mCndqk9+KvqEr+/PkT1W2ta+qeKJRKuXLlXIVW98AvW7ZsNnv2bHdNvU9N1lGozpEjR6znHDVqlA0bNizBawMAgPARVpXIbdu2uaqYqn+x7atWrVogQMp1113nur/93cP+kKcA6adu7YMHD7rPb7rpJhcc1XXcrl07mzNnjp08eTLBSmRsVO1UN7na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gQceiFGZbNq0qWXPnt2+/PJLW7lypWXLls2aNWtmZ86cCRz3+eef23//+1/74osv7Nlnn7UhQ4ZYixYtLHfu3O66Dz/8sD300EP2yy+/hJxfIbNv374uqNWrV89atmxphw4divV9rF+/3oXZNm3auLaq3QqHM2bMcPvV9m3bttm6desCr9F5v/32W+vUqZN7PmfOHBs8eLALyzpWwVfn0D2SEydOuHZXrFjRXU/X6NevX4L3+PTp03bs2LGQBwAACG9hHyKrVq3qQl2ZMmWsffv2rrq2dOnSwP62bdu6kFWqVCkrVqxYyGvfeustu3DhgqveValSxVXwVFHcu3evm/jip2rj888/b+XKlXNhTh9Pnjxp//73v911BwwYYBkzZrSvvvoq5Pw9evSwu+66y51XFdGcOXPaq6++Guv7UDht3LixC31ly5Z1FVC9fty4cW6/qp0KvMEVT33eoEED995E90HVyzvvvNNKlizpPvbp08deeuklt/+NN95w71dtUMVTgVJBNyGjRo1ybfc/ihYtmsivDgAASK3SRIgMVrhwYTt48GDguUJlXDZv3mw7d+50lUhVIPVQYDx16pTt2rUrcJwCV2Tk/26lurUVOv3SpUtnefPmDbmuqProlz59etcWVQhjo+3XXXddyDY937Fjh50/f94979Kli7355puufaqUKhT6q6t//fWXa3Pnzp0D70WPp59+OvBedA3dL3Vlx9bGuCgkHz16NPDQEAAAABDewv7PHmbIkCHkucYiqtrmp67uuKh7t1atWq4bOLr8+fPHe42Erpsc1B2u8ZLvvvuuq3yqO/7uu+8OvBeZNm2a1a1bN+R1CrmXQtfUAwAApB1hHyIvRc2aNV2XdoECBSxHjhxJfv7Vq1fbDTfc4D7XRByNQ1QXdWzU5a0xmcH0XF3b/hCoamaHDh1cN7ZCpMZPZs6cOVAdLVKkiP3000923333xXmN119/3VUy/dVItREAACDNdWd7oZnJmrH866+/uucKW/ny5XMzsjWxZvfu3W4spGZ8R58kczEmT57sqoY//PCDde/e3f78888Yk3v8NAFHYzmHDx9uP/74o5sMM2nSpBgTXx588EE30WfRokUxzjVs2DA3flHjN3UOTdBR4NR4S//4UFVM1S2+detW+/jjj238+PGX/D4BAED4IUQG0WSY7du3B9aLzJIli5tx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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "feat_importances = pd.Series(model.feature_importances_, index=X.columns)\n",
    "feat_importances.nlargest(10).plot(kind='barh')\n",
    "plt.title(\"Top 10 Important Features\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "31d2efac-7590-427d-b7b7-487147df328b",
   "metadata": {},
   "outputs": [],
   "source": [
    "from imblearn.over_sampling import SMOTE\n",
    "\n",
    "sm = SMOTE(random_state=42)\n",
    "X_res, y_res = sm.fit_resample(X_train, y_train)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "8f3b5b39-c162-40e7-848e-1beb4e77a860",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: #000;\n",
       "  --sklearn-color-text-muted: #666;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: flex;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "  align-items: start;\n",
       "  justify-content: space-between;\n",
       "  gap: 0.5em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
       "  font-size: 0.6rem;\n",
       "  font-weight: lighter;\n",
       "  color: var(--sklearn-color-text-muted);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 0.5em;\n",
       "  text-align: center;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier(random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>RandomForestClassifier</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.ensemble.RandomForestClassifier.html\">?<span>Documentation for RandomForestClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestClassifier(random_state=42)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "RandomForestClassifier(random_state=42)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Train a new RandomForest on the resampled data\n",
    "model_resampled = RandomForestClassifier(random_state=42)\n",
    "model_resampled.fit(X_res, y_res)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "85938670-6281-4227-affc-b65660b9610d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification Report:\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "       False       0.95      0.95      0.95     10968\n",
      "        True       0.59      0.60      0.60      1389\n",
      "\n",
      "    accuracy                           0.91     12357\n",
      "   macro avg       0.77      0.77      0.77     12357\n",
      "weighted avg       0.91      0.91      0.91     12357\n",
      "\n",
      "Confusion Matrix:\n",
      " [[10401   567]\n",
      " [  557   832]]\n"
     ]
    }
   ],
   "source": [
    "# Make predictions on the test set\n",
    "y_pred = model_resampled.predict(X_test)\n",
    "\n",
    "# Evaluate the model\n",
    "print(\"Classification Report:\\n\", classification_report(y_test, y_pred))\n",
    "print(\"Confusion Matrix:\\n\", confusion_matrix(y_test, y_pred))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "72486c97-6773-4074-beaa-67844740f629",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "conf_matrix = confusion_matrix(y_test, y_pred)\n",
    "sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues')\n",
    "plt.title(\"Confusion Matrix\")\n",
    "plt.xlabel(\"Predicted\")\n",
    "plt.ylabel(\"Actual\")\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "c2beb18d-b8af-4286-8439-1128672007bc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAASdNJREFUeJzt3QeYVNXZOPBDU2xgBwuKHSsq9thQIrYkKCa2KBpLNDYkomIUW6JRY29ojO377PlssWDDFtGoKLaIFYNGRWMBsYDC/J/3fN/Mf7bQd+8uy+/3PPfZnXvP3HvunZmdd99z7jmtSqVSKQEAAABAgVoXeTAAAAAACJJSAAAAABROUgoAAACAwklKAQAAAFA4SSkAAAAACicpBQAAAEDhJKUAAAAAKJykFAAAAACFk5QCAAAAoHCSUsAc45xzzkkrrrhiatOmTVp33XWbujoAAM3Sf/3Xf6Vu3bqldu3apYUXXripqwMwVZJSQIO69tprU6tWrWosSy65ZOrZs2e6//77Z3m/Dz74YDr22GPTj370o3TNNdekM844IzUHU6ZMSddff33aeOON06KLLpoWWmihtOqqq6Z99903PfPMM5Vyjz32WOV6/Pd//3e9+4pzi+1rrbVWnW3ff/99uuiii9KGG26Yj7Hgggvm32NdbCs75ZRT6lz/+patt946l99vv/2mWqZ9+/aNcs0AgFl32WWX5e/piD3qM2rUqPz9vtJKK6U///nP6corr0zffPNNjhEiHinSp59+mo466qicIJtvvvlyTLjRRhul4447Lk2YMKFSrhyPdOjQIX377bd19vPWW29V4pM//elPdbaPGTMmHXLIIalr165p3nnnzcfp06dPeuqpp2qUi+0zEidFPBumVSaOB8y+tg2wD4A6TjvttLTCCiukUqmUxo4dm7/cd9xxx/S3v/0t7bzzzjO9v2HDhqXWrVunv/zlL2meeeZJzcWRRx6ZLr300vSzn/0s7b333qlt27bpjTfeyAm46NW1ySab1CgfiZ4bb7wx/fKXv6yx/r333kvDhw+vNxH09ddfp5122ik9/vjj+dpF4BbXYujQoTnQu/3229O9996bFlhggbTrrrumlVdeufLcCPgOPfTQtMsuu+RtZZ06dar8HsHbVVddVee40SMNAGhebrjhhpxcefbZZ9Pbb79d43s/ROIpGs0uvPDCyrb//Oc/6dRTT82/lxumGtvnn3+eNthggzR+/Pj0q1/9KiemPvvss/Tyyy+nyy+/PMcn0chWFjFUJM8iVvzFL35R55wjRvruu+/qHCcSTxFjhgMPPDCtscYa6eOPP86x5xZbbJGvwxFHHJG3X3DBBTWSYffdd1+66aab0vnnn58WX3zxyvrNNtus8vuPf/zj3NhYWzRCAg2gBNCArrnmmlL8aXnuuedqrP/8889L7dq1K+21116ztN/999+/tMACCzRQLUulKVOmlL755pvZ2sfHH39catWqVemggw6qd/9jx46tPH700Ufzddl1111Lbdu2LX366ac1yv/hD38oderUqbT55puX1lxzzRrbDj744Pzciy++uM5xLrnkkrztkEMOqbeOcZzYfvLJJ9e7vV+/fg16XQGAxvPuu+/m7/Xbb7+9tMQSS5ROOeWUOmVOPfXUXKY61phePDCrJkyYMNVtZ599dj7mU089VWfbuHHjSt9++22deGS77bYr9enTp075VVZZpdS3b9+8v3POOadGfNm5c+ccQ7399ts1nhNx3hZbbFFq3bp1vXUIsa/Y5+jRo+vdHtsOO+ywqZ4jMPvcvgcUIsYziG7b0QpWLVryotVqzTXXzC1g0YPn17/+dfriiy8qZaKLdNyyFz2Ganer/uGHH9Lpp5+eu6hHj59oOTzhhBPSxIkTaxwn1kcvowceeCC32kVdrrjiirztyy+/TP37909dunTJ+4hWxbPOOivXbVpGjx6de4LFbXe1lW9brC16VMUxbrvtthrro/dUtArW7p30wQcf5N5h22yzTTr88MPr7O+www7Lt0ZGT6coCwC0XNFjaJFFFsk9qHfbbbf8uHa8c/LJJ+ffl1hiiRyPRA/r+D1Eb6lyLBW381Xf8hf7i6EIIh6LWOnuu++ud4iG6Ln9m9/8Jsc5yy677FTr+s477+S4pnav8RC36dXXO3yvvfbKvc0jNit77rnn8u17sa22iOWiV1SMOxqxYLWI9a677rpc5+jBDzRPklJAoxg3blzuKh5jCbz22mu5i3Z0l65921okoAYOHJgTO9G9ev/9988BVu/evStjJcVgndH9OpI58XssW265ZaWb9uDBg9P666+fu15vtdVW6cwzz0x77LFHnTrFbXV77rln7oYdx4rB0qObeDwnxnmKrtkxRlPUZdCgQWnAgAHTPMfll18+/4wEU+xnRsw///w5MRVdxcteeumlfI3qC7YiMJs8eXK93cbLYlsk5+J2vlkVr1XtJbrbAwDNR8RIcTt+DGUQMU0kayJpUxYNfXHLfohb5CJmOvroo/PvIbaVY6nybf0Rg0Ti6PXXX0/HH398Ovfcc/OQADEm0x133FGnDpGQ+uc//5njryg/rTgpYpg41oyKOkUSKYYmqG64i1v/ItarLW71i+RW7dv9ymIoic033zwPA1HfWFUzIm4ZrC9OmjRp0iztD6ilAXpbAdS5fa/2Mu+885auvfbaGmWffPLJvO2GG26osX7o0KF11td3m9nIkSNzuQMPPLDG+mOOOSavHzZsWGXd8ssvn9fFvqudfvrpeb9vvvlmjfXHH398qU2bNqUxY8ZM83z33XffvN9FFlmktMsuu5T+9Kc/lV5//fU65cq37912222le+65J9/2V973wIEDSyuuuGL+fauttqpx+17//v3z81588cWp1uGFF17IZQYMGDBLt+/V93rF0rt372meOwBQnOeffz5/Pz/00EOVoQKWXXbZ0lFHHVWjXHznz8zte9tuu21p7bXXLn333XeVdbHvzTbbLN82VzvGi6EGfvjhhxka5iBuMYzndOvWLQ81cOONN5a+/PLLOmWr47zddtst1ylMnjw5354XtyTGLXa1b99beOGFS927d59mPY488sj8vJdffnmWbt+b2nLTTTdN9xoA06enFNAoYvDvhx56KC/RCyluMYteTdUtX9HDqGPHjrnnUnXLU48ePfLAl48++ug0jxGDU4baPZp++9vf5p8x+Hft1rLogVUt6hC9sKIrfHUdevXqlVv3nnjiiWnWIW4rvOSSS/K+ozXxmGOOSauvvnradttt07///e96n7Pddtvl7vE333xzvv0vfkZrZ32++uqr/DNm3Jua8rZZ7dkULYzl16p6+eMf/zhL+wMAGqeXVAxzEDFViB5Fu+++e44jImaZ1cHIoxdR9DSKmKMcB8WA5BEzRU+s2vHMQQcdNEOToURdozd4zFIXwzIMGTIk9wqP2/5i6IX/zfnUFWVisPa4LS/qFj/r600eos7TipEaIk6KHu71xUnl1wGYPWbfAxpFTPcb4xGURdJlvfXWy+MixdhO0e08Ap24za++sZfCJ598Ms1j/Otf/8qz0NWedaZz5855DKvYXi0SR7VFHWIWmPJYCzNb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4MD0ww8/1Cjz2GOPpfXXXz/NO++8aeWVV07XXnttnfpceumlqWvXrql9+/Zp4403Ts8++2wjnTkAwKwRPwEALUWTJqUef/zxdNhhh6VnnnkmPfTQQ+n7779P2223Xfr6669rlDvooIPSRx99VFnOPvvsyrbJkyfngGrSpElp+PDh6brrrssB0+DBgytlRo8encv07NkzjRw5MvXv3z8deOCB6YEHHqiUueWWW9KAAQPSySefnF544YXUvXv31Lt37/TJJ58UdDUAAKZP/AQAtBStSqVSKTUTn376aW6pi2Bryy23rLT0rbvuuumCCy6o9zn3339/2nnnndOHH36YOnXqlNcNGTIkHXfccXl/88wzT/793nvvTa+++mrleXvssUf68ssv09ChQ/PjaNmLVsdLLrkkP54yZUrq0qVLOuKII9Lxxx8/3bqPHz8+dezYMY0bNy516NAhNRb3R8Occ3800DIU9R0/N8ZPQQwFzUdLiaF83qHpP+8z+v3erMaUisqGRRddtMb6G264IS2++OJprbXWSoMGDUrffPNNZdvTTz+d1l577UpAFaKFLi7Aa6+9VinTq1evGvuMMrE+RCvhiBEjapRp3bp1flwuU9vEiRPzMaoXAICizUnxUxBDAQDNbva9aFmLbuE/+tGPcvBUttdee6Xll18+Lb300unll1/OrXYxbsLtt9+et3/88cc1AqpQfhzbplUmgqBvv/02ffHFF7kbe31lRo0aNdXxHE499dQGOnsAgJYfPwUxFADQ7JJSMTZCdA//+9//XmP9wQcfXPk9WvSWWmqptO2226Z33nknrbTSSqmpRItjjKFQFgFadFcHACjKnBY/BTEUANCsklKHH354uueee9ITTzyRll122WmWjbELwttvv52Dqs6dO9eZ5WXs2LH5Z2wr/yyvqy4T9zXON998qU2bNnmpr0x5H7XFLDSxAAA0hTkxfgpiKACgWYwpFWOsR0B1xx13pGHDhqUVVlhhus+J2V9CtPiFTTfdNL3yyis1ZnmJmWgiYFpjjTUqZR555JEa+4kysT7EYJ49evSoUSa6w8fjchkAgOZA/AQAtBRtm7rL+Y033pjuuuuutNBCC1XGMIgR2qMFLrqYx/Ydd9wxLbbYYnlMhKOPPjrPLLPOOuvksjEFcgRP++yzT57qOPZx4okn5n2XW+EOOeSQPCvMscce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AAAonKQUAAAAAIWTlAIAAACgcJJSAAAAABROUgoAAACAwklKAQAAAFA4SSkAAAAACicpBQAAAEDhJKUAAAAAKJykFAAAAACFk5QCAAAAoHCSUgAAAAAUTlIKAAAAgMJJSgEAAABQOEkpAAAAAAonKQUAAABA4SSlAAAAACicpBQAAAAAhZOUAgAAAKBwklIAAAAAFE5SCgAAAIDCSUoBAAAAUDhJKQAAAAAKJykFAAAAQOEkpQAAAAAonKQUAAAAAIWTlAIAAACgcJJSAAAAABROUgoAAACAwklKAQAAAFA4SSkAAAAACicpBQAAAEDhJKUAAAAAKJykFAAAAACFk5QCAAAAoHCSUgAAAAAUTlIKAAAAgMJJSgEAAABQOEkpAAAAAAonKQUAAABA4SSlAAAAACicpBQAAAAAhZOUAgAAAGDuSko98cQT6Sc/+UlaeumlU6tWrdKdd95ZY/t+++2X11cv22+/fY0yn3/+edp7771Thw4d0sILL5wOOOCANGHChBplXn755bTFFluk9u3bpy5duqSzzz67Tl1uu+221K1bt1xm7bXXTvfdd18jnTUAwOwRQwEALUGTJqW+/vrr1L1793TppZdOtUwEUB999FFluemmm2psj2DqtddeSw899FC65557cpB28MEHV7aPHz8+bbfddmn55ZdPI0aMSOecc0465ZRT0pVXXlkpM3z48LTnnnvmYOzFF19Mffr0ycurr77aSGcOADDrxFAAQEvQtikPvsMOO+RlWuadd97UuXPnere9/vrraejQoem5555LG2ywQV538cUXpx133DH96U9/yq2HN9xwQ5o0aVK6+uqr0zzzzJPWXHPNNHLkyHTeeedVAq8LL7wwB24DBw7Mj08//fQcoF1yySVpyJAhDX7eAACzQwwFALQEzX5MqcceeywtueSSabXVVkuHHnpo+uyzzyrbnn766dzdvBxMhV69eqXWrVunf/zjH5UyW265ZQ6mynr37p3eeOON9MUXX1TKxPOqRZlYDwAwJxJDAQAtMim14oor1ghsyr788su8raFEy9v111+fHnnkkXTWWWelxx9/PLcKTp48OW//+OOPc7BVrW3btmnRRRfN28plOnXqVKNM+fH0ypS312fixIm5W3v1AgDQ1PFTEEMBAC329r333nuvEtTUDjL+/e9/p4ayxx57VH6PgTPXWWedtNJKK+WWv2233TY1pTPPPDOdeuqpTVoHAGDOUVT8FMRQAECLS0rdfffdld8feOCB1LFjx8rjCLKiNa5r166psUQr4uKLL57efvvtHFDFOAmffPJJjTI//PBDnk2mPIZC/Bw7dmyNMuXH0ysztXEYwqBBg9KAAQMqj6OVL2alAQBoTvFTEEMBAHN8UipmUwkxrXC/fv1qbGvXrl0OqM4999zUWD744IPc7X2ppZbKjzfddNPc5T1mhOnRo0deN2zYsDRlypS08cYbV8r87ne/S99//32uY4gBOGN8hUUWWaRSJgLC/v37V44VZWL9tAYPjQUAoDnHT0EMBQDM8WNKRaASy3LLLZdb18qPY4mu5zHw5c477zzD+5swYUKexSWWMHr06Pz7mDFj8raYyeWZZ57J3d0j4PnZz36WVl555TyAZlh99dXzmAkHHXRQevbZZ9NTTz2VDj/88NxlPWaNCXvttVceoDOmKo5pj2+55ZY8U0x1C91RRx2VZ6CJgHDUqFF5uuPnn38+7wsAYHY0dPwUxFAAwFw70HkEPtEFfHZF0LLeeuvlJUSQE78PHjw4tWnTJr388svppz/9aVp11VVzQBQteU8++WSN1rWYrrhbt265K3pMY7z55punK6+8srI9usg/+OCDuc7x/N/+9rd5/+WpjMNmm22Wbrzxxvy87t27p7/+9a/pzjvvTGuttdZsnyMAQEPGT0EMBQC0BK1KpVJpVp4YrW6xlFv8ql199dVpbhPjIUTwNm7cuNShQ4dGO06Pgdc32r6hpRhxzr5NXQWgBWnI73jxU11iKGg+WkoM5fMOTf95n9Hv91mafS9mTDnttNPSBhtskMcmiDESAACYOvETAEADJKWGDBmSrr322rTPPvvMytMBAOY64icAgAYYU2rSpEl5DAEAAGaM+AkAoAGSUgceeGAe1BIAgBkjfgIAaIDb97777rs8y8rDDz+c1llnndSuXbsa288777xZ2S0AQIslfgIAaICkVEwzvO666+bfX3311RrbDNoJAFCX+AkAoAGSUo8++uisPA0AYK4lfgIAaIAxpQAAAACg8J5SPXv2nGY382HDhs1OnQAAWhzxEwBAAySlyuMhlH3//fdp5MiReXyEfv36zcouAQBaNPETAEADJKXOP//8etefcsopacKECbOySwCAFk38BADQiGNK/fKXv0xXX311Q+4SAKBFEz8BAHOrBk1KPf3006l9+/YNuUsAgBZN/AQAzK1m6fa9XXfdtcbjUqmUPvroo/T888+nk046qaHqBgDQYoifAAAaICnVsWPHGo9bt26dVltttXTaaael7bbbblZ2CQDQoomfAAAaICl1zTXXzMrTAADmWuInAIAGSEqVjRgxIr3++uv59zXXXDOtt956s7M7AIAWT/wEADAbSalPPvkk7bHHHumxxx5LCy+8cF735Zdfpp49e6abb745LbHEErOyWwCAFkv8BADQALPvHXHEEemrr75Kr732Wvr888/z8uqrr6bx48enI488clZ2CQDQoomfAAAaoKfU0KFD08MPP5xWX331yro11lgjXXrppQbqBACoh/gJAKABekpNmTIltWvXrs76WBfbAACoSfwEANAASaltttkmHXXUUenDDz+srPv3v/+djj766LTtttvOyi4BAFo08RMAQAMkpS655JI8/kHXrl3TSiutlJcVVlghr7v44otnZZcAAC2a+AkAoAHGlOrSpUt64YUX8rgIo0aNyutifIRevXrNyu4AAFo88RMAwGz0lBo2bFgekDNa9Fq1apV+/OMf55lkYtlwww3TmmuumZ588smZ2SUAQIsmfgIAaICk1AUXXJAOOuig1KFDhzrbOnbsmH7961+n8847b2Z2CQDQoomfAAAaICn10ksvpe23336q22M64xEjRszMLgEAWjTxEwBAAySlxo4dW+9UxmVt27ZNn3766czsEgCgRRM/AQA0QFJqmWWWSa+++upUt7/88stpqaWWmpldAgC0aOInAIAGSErtuOOO6aSTTkrfffddnW3ffvttOvnkk9POO+88M7sEAGjRxE8AAPVrm2bCiSeemG6//fa06qqrpsMPPzytttpqeX1Ma3zppZemyZMnp9/97nczs0sAgBZN/AQA0ABJqU6dOqXhw4enQw89NA0aNCiVSqW8PqY37t27dw6sogwAAP9L/AQA0ABJqbD88sun++67L33xxRfp7bffzoHVKquskhZZZJGZ3RUAwFxB/AQA0ABJqbIIojbccMNZfToAwFxH/AQAMIsDnQMAAABAQ5CUAgAAAKBwklIAAAAAFE5SCgAAAIDCSUoBAAAAUDhJKQAAAAAKJykFAAAAQOEkpQAAAAAonKQUAAAAAIWTlAIAAACgcJJSAAAAABROUgoAAACAuSsp9cQTT6Sf/OQnaemll06tWrVKd955Z43tpVIpDR48OC211FJpvvnmS7169UpvvfVWjTKff/552nvvvVOHDh3SwgsvnA444IA0YcKEGmVefvnltMUWW6T27dunLl26pLPPPrtOXW677bbUrVu3XGbttddO9913XyOdNQDA7BFDAQAtQZMmpb7++uvUvXv3dOmll9a7PQKfiy66KA0ZMiT94x//SAsssEDq3bt3+u677yplIph67bXX0kMPPZTuueeeHKQdfPDBle3jx49P2223XVp++eXTiBEj0jnnnJNOOeWUdOWVV1bKDB8+PO255545GHvxxRdTnz598vLqq6828hUAAJh5YigAoCVoVYqmtGYgWvnuuOOOHMiEqFa0/v32t79NxxxzTF43bty41KlTp3TttdemPfbYI73++utpjTXWSM8991zaYIMNcpmhQ4emHXfcMX3wwQf5+Zdffnn63e9+lz7++OM0zzzz5DLHH398blEcNWpUfrz77rvn4C4CsrJNNtkkrbvuujmYmxERuHXs2DHXMVocG0uPgdc32r6hpRhxzr5NXQWgBSnqO35WiaFmjBgK5p4Yyucdmv7zPqPf7812TKnRo0fnICi6m5fFCW288cbp6aefzo/jZ3Q3LwdTIcq3bt06twqWy2y55ZaVYCpES+Ebb7yRvvjii0qZ6uOUy5SPU5+JEyfmi1y9AAA0NTEUADCnaLZJqQimQrTqVYvH5W3xc8kll6yxvW3btmnRRRetUaa+fVQfY2plytvrc+aZZ+YAr7zEOAsAAE1NDAUAzCmabVKquRs0aFDuhlZe3n///aauEgBAsyeGAgCafVKqc+fO+efYsWNrrI/H5W3x85NPPqmx/YcffsizyVSXqW8f1ceYWpny9vrMO++8+b7I6gUAoKmJoQCAOUWzTUqtsMIKOaB55JFHKutizIEY52DTTTfNj+Pnl19+mWeEKRs2bFiaMmVKHjehXCZmk/n+++8rZWKWmdVWWy0tssgilTLVxymXKR8HAGBOIYYCAOYUTZqUmjBhQho5cmReygNzxu9jxozJM8n0798//f73v0933313euWVV9K+++6bZ4Mpzy6z+uqrp+233z4ddNBB6dlnn01PPfVUOvzww/OsMlEu7LXXXnmAzpiqOKY9vuWWW9KFF16YBgwYUKnHUUcdlWecOffcc/NsMjHd8fPPP5/3BQDQ3IihAICWoG1THjyClp49e1Yel4Ocfv365SmLjz322DzN8MEHH5xb8zbffPMc+LRv377ynBtuuCEHPttuu22eMaZv377poosuqmyPATQffPDBdNhhh6UePXqkxRdfPA0ePDjvs2yzzTZLN954YzrxxBPTCSeckFZZZZU83fFaa61V2LUAAJhRYigAoCVoVSqVSk1diZYgusVH8BYDdjbm2Ag9Bl7faPuGlmLEOfs2dRWAFqSo7/i5lRgKmo+WEkP5vEPTf95n9Pu92Y4pBQAAAEDLJSkFAAAAQOEkpQAAAAAonKQUAAAAAIWTlAIAAACgcJJSAAAAABROUgoAAACAwklKAQAAAFA4SSkAAAAACicpBQAAAEDhJKUAAAAAKJykFAAAAACFk5QCAAAAoHCSUgAAAAAUTlIKAAAAgMJJSgEAAABQOEkpAAAAAAonKQUAAABA4SSlAAAAACicpBQAAAAAhZOUAgAAAKBwklIAAAAAFE5SCgAAAIDCSUoBAAAAUDhJKQAAAAAKJykFAAAAQOEkpQAAAAAonKQUAAAAAIWTlAIAAACgcJJSAAAAABROUgoAAACAwklKAQAAAFA4SSkAAAAACicpBQAAAEDhJKUAAAAAKJykFAAAAACFk5QCAAAAoHCSUgAAAAAUTlIKAAAAgMJJSgEAAABQOEkpAAAAAAonKQUAAABA4SSlAAAAACicpBQAAAAAhZOUAgAAAKBwklIAAAAAFK5ZJ6VOOeWU1KpVqxpLt27dKtu/++67dNhhh6XFFlssLbjggqlv375p7NixNfYxZsyYtNNOO6X5558/LbnkkmngwIHphx9+qFHmscceS+uvv36ad95508orr5yuvfbaws4RAKChiaEAgDlBs05KhTXXXDN99NFHleXvf/97ZdvRRx+d/va3v6XbbrstPf744+nDDz9Mu+66a2X75MmTczA1adKkNHz48HTdddflYGnw4MGVMqNHj85levbsmUaOHJn69++fDjzwwPTAAw8Ufq4AAA1FDAUANHdtUzPXtm3b1Llz5zrrx40bl/7yl7+kG2+8MW2zzTZ53TXXXJNWX3319Mwzz6RNNtkkPfjgg+mf//xnevjhh1OnTp3Suuuum04//fR03HHH5RbEeeaZJw0ZMiStsMIK6dxzz837iOdH0Hb++een3r17F36+AAANQQwFADR3zb6n1FtvvZWWXnrptOKKK6a99947dyUPI0aMSN9//33q1atXpWx0S19uueXS008/nR/Hz7XXXjsHU2URJI0fPz699tprlTLV+yiXKe9jaiZOnJj3U70AADQXYigAoLlr1kmpjTfeOHcVHzp0aLr88stzN/EtttgiffXVV+njjz/OrXQLL7xwjedE8BTbQvysDqbK28vbplUmAqRvv/12qnU788wzU8eOHStLly5dGuy8AQBmhxgKAJgTNOvb93bYYYfK7+uss04OsJZffvl06623pvnmm69J6zZo0KA0YMCAyuMIwARVAEBzIIYCAOYEzbqnVG3Rorfqqqumt99+O4+REINvfvnllzXKxMwx5fET4mftmWTKj6dXpkOHDtMM2mKWmShTvQAANEdiKACgOZqjklITJkxI77zzTlpqqaVSjx49Urt27dIjjzxS2f7GG2/k8RI23XTT/Dh+vvLKK+mTTz6plHnooYdy8LPGGmtUylTvo1ymvA8AgDmdGAoAaI6adVLqmGOOydMUv/fee3k64l122SW1adMm7bnnnnkMggMOOCB3/3700UfzoJ37779/DoRi1piw3Xbb5cBpn332SS+99FKeovjEE09Mhx12WG6lC4ccckh6991307HHHptGjRqVLrvssty1PaZKBgCYE4mhAIA5QbMeU+qDDz7IwdNnn32WllhiibT55pvnqYrj9xBTDrdu3Tr17ds3z+QSM75EQFQWwdc999yTDj300BxoLbDAAqlfv37ptNNOq5SJqYzvvffeHEBdeOGFadlll01XXXWVqYwBgDmWGAoAmBO0KpVKpaauREsQg3RGy+O4ceMadWyEHgOvb7R9Q0sx4px9m7oKQAtS1Hf83EoMBc1HS4mhfN6h6T/vM/r93qxv3wMAAACgZZKUAgAAAKBwklIAAAAAFE5SCgAAAIDCSUoBAAAAUDhJKQAAAAAKJykFAAAAQOEkpQAAAAAonKQUAAAAAIWTlAIAAACgcJJSAAAAABROUgoAAACAwklKAQAAAFC4tsUfEoAZ1WPg9U1dBWjWRpyzb1NXAQCAWaSnFAAAAACFk5QCAAAAoHCSUgAAAAAUTlIKAAAAgMJJSgEAAABQOEkpAAAAAAonKQUAAABA4SSlAAAAACicpBQAAAAAhZOUAgAAAKBwklIAAAAAFE5SCgAAAIDCSUoBAAAAUDhJKQAAAAAKJykFAAAAQOEkpQAAAAAonKQUAAAAAIWTlAIAAACgcJJSAAAAABROUgoAAACAwklKAQAAAFA4SSkAAAAACicpBQAAAEDhJKUAAAAAKJykFAAAAACFk5QCAAAAoHCSUgAAAAAUTlIKAAAAgMJJSgEAAABQOEkpAAAAAAonKQUAAABA4SSlarn00ktT165dU/v27dPGG2+cnn322aauEgBAsyZ+AgBmhaRUlVtuuSUNGDAgnXzyyemFF15I3bt3T717906ffPJJU1cNAKBZEj8BALNKUqrKeeedlw466KC0//77pzXWWCMNGTIkzT///Onqq69u6qoBADRL4icAYFZJSv2fSZMmpREjRqRevXpV1rVu3To/fvrpp5u0bgAAzZH4CQCYHW1n69ktyH/+8580efLk1KlTpxrr4/GoUaPqlJ84cWJeysaNG5d/jh8/vlHrOXnit426f2gJGvtzWCSfeWj6z3v5GKVSqdGP1dLjpyCGguarpcRQPu/Q9J/3GY2fJKVm0ZlnnplOPfXUOuu7dOnSJPUB/r+OFx/S1FUAWuDn/auvvkodO3Ys7HgtlRgKmi8xFMw9Ohb0eZ9e/CQp9X8WX3zx1KZNmzR27Nga6+Nx586d65QfNGhQHtSzbMqUKenzzz9Piy22WGrVqlUhdabpRfY3guj3338/dejQoamrAzQin/e5V7TwRUC19NJLN3VV5vj4KYihCP6mwtzD533uVJrB+ElS6v/MM888qUePHumRRx5Jffr0qQRJ8fjwww+vU37eeefNS7WFF164sPrSvMQfV39gYe7g8z530kOqYeKnIIaimr+pMPfweZ/7dJyB+ElSqkq02vXr1y9tsMEGaaONNkoXXHBB+vrrr/NsMgAA1CV+AgBmlaRUld133z19+umnafDgwenjjz9O6667bho6dGidwTsBAPhf4icAYFZJStUSXc2n1t0caovbD04++eQ6tyEALY/PO0yd+ImZ5W8qzD183pmWViXzGwMAAABQsNZFHxAAAAAAJKUAAAAAKJykFMyia6+91hTWAAAzSQwFQJmkFHO9/fbbL7Vq1arO8vbbbzd11YBGUt9nvno55ZRTmrqKAM2eGArmLuInGoPZ9yCltP3226drrrmmxrollliiyeoDNK6PPvqo8vstt9ySp7J/4403KusWXHDByu8xH8jkyZNT27a+MgFqE0PB3EP8RGPQUwr+b5rSzp0711guvPDCtPbaa6cFFlggdenSJf3mN79JEyZMmOo+XnrppdSzZ8+00EILpQ4dOqQePXqk559/vrL973//e9piiy3SfPPNl/d35JFHpq+//rqgMwSqVX/WO3bsmFv3yo9HjRqVP8f3339//hzH34f4/EaPgD59+tTYT//+/dPWW29deTxlypR05plnphVWWCF/1rt3757++te/NsEZAhRDDAVzD/ETjUFSCqaidevW6aKLLkqvvfZauu6669KwYcPSscceO9Xye++9d1p22WXTc889l0aMGJGOP/741K5du7ztnXfeyS2Jffv2TS+//HJuWYg/0ocffniBZwTMjPgM//GPf0yvv/56WmeddWboORFQXX/99WnIkCH5b8fRRx+dfvnLX6bHH3+80esL0FyIoWDuJX5iZulLBymle+65p0Z30x122CHddtttlcddu3ZNv//979MhhxySLrvssnr3MWbMmDRw4MDUrVu3/HiVVVap8Yc2Aq5oFShvi2Btq622Spdffnlq3759I54dMCtOO+209OMf/3iGy0+cODGdccYZ6eGHH06bbrppXrfiiivmf56uuOKK/HkHaGnEUEA18RMzS1IKUspdxiOwKYvu5vGHMQKh6Io6fvz49MMPP6TvvvsuffPNN2n++eevs48BAwakAw88MP3Xf/1X6tWrV/r5z3+eVlpppUq39Gjdu+GGG2rcZx1dVUePHp1WX331gs4UmFEbbLDBTJWPgX3j70PtQGzSpElpvfXWa+DaATQPYiigmviJmSUpBf8XQK288sqVx++9917aeeed06GHHpr+8Ic/pEUXXTRn6w844ID8B7K+gCpmm9hrr73Svffem++lPvnkk9PNN9+cdtlllzyOwq9//es8BkJtyy23XKOfHzBrfxdq344S/whV+/777yu/l8dLib8ByyyzTI1yMa4CQEskhgKqiZ+YWZJSUI8YzyBa4M4999z8hzTceuut033eqquumpe4D3rPPffMs9FEQLX++uunf/7znzWCNmDOErNJvfrqqzXWjRw5sjLuyRprrJGDp7gNRVdzYG4lhgKqiZ+YHgOdQz0i8IkM/sUXX5zefffd3J08Bt6bmm+//TYPuPnYY4+lf/3rX+mpp57Kg3WWu5Qfd9xxafjw4blM/BF+66230l133WWQTpiDbLPNNnk2qBiIMz7D0ZJfHWTFjDPHHHNM/ocqBvaNwXlfeOGF/HckHgPMDcRQQDXxE9MjKQX1iGlIzzvvvHTWWWeltdZaK49jEGMjTE2bNm3SZ599lvbdd9/cyveLX/wiD/R56qmn5u0x80TMHvHmm2/mKY3j/ujBgwenpZdeusCzAmZH796900knnZRnkNpwww3TV199lT/z1U4//fRcJv5exD9UMWNUdEePKY4B5gZiKKCa+InpaVWqfYMnAAAAADQyPaUAAAAAKJykFAAAAACFk5QCAAAAoHCSUgAAAAAUTlIKAAAAgMJJSgEAAABQOEkpAAAAAAonKQUAAABA4SSlgGalVatW6c4772ySY2+99dapf//+hR7z2muvTQsvvPBs7+e9997L127kyJGpsU2aNCmtvPLKafjw4Q22z1NOOSWtu+66Tf561a7H8ccfn4444ogGPQYANCax1NwZSzW1f/7zn2nZZZdNX3/9dVNXhTmMpBQ0gPgCm9YS/+g2lf32269Sj3bt2qVOnTqlH//4x+nqq69OU6ZMSc3NRx99lHbYYYeZDg7uuOOOtMkmm6SOHTumhRZaKK255pqFB0WzYvfdd09vvvnmTL+mffr0qbGuS5cu+dqttdZaqbENGTIkrbDCCmmzzTarsf6ee+5JW221Vb7+888/f9pwww1zoDgjjjnmmPTII4/MVD1uv/32dPrpp6fGFPW67rrr0rvvvtuoxwGY24mlGo5Yas6MpR5//PG0zTbbpEUXXTTHUausskrq169fTmCFxx57LL+WiyyySPruu+9q7O+5556rvEerTZ48OZ1//vlp7bXXTu3bt8/PjffGU089VSOROK3PXmwPXbt2rXf7H//4x7x9jTXWyO+f8847r1GvHS2PpBQ0gPgCKy8XXHBB6tChQ4118Y/tzPj+++8btH7bb799rkcEJvfff3/q2bNnOuqoo9LOO++cfvjhh9ScdO7cOc0777wz9ZxIZkRA0rdv3/Tss8+mESNGpD/84Q8Nfh0bWtRvvvnmS0suueRs76tNmzb52rVt2zY1plKplC655JJ0wAEH1Fh/8cUXp5/97GfpRz/6UfrHP/6RXn755bTHHnukQw45ZJrv/9hfvAcXXHDBtNhii81UXSJoi6C5MS2++OKpd+/e6fLLL2/U4wDM7cRSDUcsNefFUtHLKN5jG2ywQXriiSfSK6+8kmOreeaZJyeWqkXsEwnEan/5y1/ScsstV+c4EYuddtpp+b36+uuv58RWJN8i0VTuTReNfOXPWbz24eGHH66si+1lsa/qz2Us1T3K999//xwzNbfPBM1cCWhQ11xzTaljx4411v35z38udevWrTTvvPOWVltttdKll15a2TZ69OhSfBRvvvnm0pZbbpnLxD769etX+tnPflb6wx/+UFpyySXzPk899dTS999/XzrmmGNKiyyySGmZZZYpXX311dOsT3k/tT3yyCP5uFG3si+++KJ0wAEHlBZffPHSQgstVOrZs2dp5MiRle0nn3xyqXv37qUhQ4aUll122dJ8881X+vnPf1768ssvK2UmT56c6xl1m2eeeXL5+++/v7J94sSJpcMOO6zUuXPnfK7LLbdc6Ywzzqhsjzrdcccdld+rl6222qreczzqqKNKW2+99Uxfh3he9T7j96hbLB06dCgttthipRNPPLE0ZcqUSpl47VZeeeVc93hd+vbtW+PczzrrrNJKK62Uz71Lly6l3//+99N8nWu/X6Z3jWN77evy6KOPVvb/4osvVvb12GOPlTbccMNcl7jexx13XH7/VJ/vEUccURo4cGB+P3Xq1Cnvf1qee+65UuvWrUvjx4+vrBszZkypXbt2pQEDBtQpf9FFF+V6PfPMM/lx1DUe33fffaX1118/Py/Wlc+7LOoZdYtrs+iii5aOPfbY0r777lvjNYz6x2tYtvzyy+fPy/77719acMEF8/W/4ooratQn9rPKKqvk67rCCivk13fSpEl1rn+16667Lr8WABRDLCWWmttiqfPPP7/UtWvXaT6vHEPF9ezVq1dl/TfffJPP/6STTsrby+I6xeO77767zr523XXX/NpMmDChxvr6rkF1nBX1nJZ4b8br8vDDD0+zHFTTUwoa2Q033JAGDx6cW5uiheKMM85IJ510Ur4lqFqMXVNuxYieGWHYsGHpww8/zC0m0RX25JNPzi1y0fU2eqNEL5Rf//rX6YMPPpjpekX34O7du9do/fj5z3+ePvnkk9wCGC1k66+/ftp2223T559/Xinz9ttvp1tvvTX97W9/S0OHDk0vvvhi+s1vflPZfuGFF6Zzzz03/elPf8q9ZeJcfvrTn6a33norb7/ooovS3Xffnffxxhtv5OsT3YHrU7u1prqu1aJV67XXXkuvvvpqml3xukQLWRw7ziWu+1VXXZW3Pf/88+nII4/MrURR9zj/LbfcsvLcQYMG5S7M8fpGi9eNN96Yu/hP73WubVrXOFqKf/GLX1RabGOpfRtd+Pe//5123HHHfAvdSy+9lFutohXt97//fZ3zXWCBBfL76eyzz87n9tBDD031+jz55JNp1VVXrdFD6a9//WtuqayvFTven9EL6qabbqpzHeJaxXVYZ5116jzvrLPOyu+Na665JncxHz9+/AyNjxHvvWhlLF+zQw89NL9WZVHvuKUwXp94ff/85z/nbu3TstFGG+XPWLSOA1A8sZRYqqXHUnH9ox7xPp2effbZJ+9jzJgx+fH//M//5Nc/3mvV4trFcX7yk5/U2cdvf/vb9Nlnn02znrMienbF2JxRP5hhNVJUwGyr3VoTLT033nhjjTKnn356adNNN63RInHBBRfUaY2KFoloMSqLlsEtttii8viHH34oLbDAAqWbbrppplv3wu67715affXV8+9PPvlkbtH67rvvapSJ+pd7m0TLT5s2bUoffPBBZXu03EVrz0cffZQfL7300rlFslq0MP3mN7/Jv0dr0jbbbFOjxaxadevetFprqkUrz4477pjLxjWL8/rLX/5S41xmtHUvrkd13aJFrHyN/ud//idfo+qWrbJYFy1D1a2l1ab2OtfXuje9a1zfudS+VieccEJ+v9RumYweROX3VJzv5ptvXue1inOemrhm8fpVO+SQQ+q0aFdbZ511SjvssEONVr4777yzRpnaPZSipfGcc86p8V6PluDp9ZT65S9/WXkc5x4tsJdffvlU6xbH6NGjx1TrEcaNG5frHK2lADQ+sZRYam6LpeJ9uN9+++XjR4+sPn36lC6++OIcg5SVY6jojRfbozddiN54F154YX7Nq/+9j56FU3vffv7557ls9Eqb1jWoFu+L6DEWn5fq5YknnqhRbpdddsnnAjNKTyloRDH7xDvvvJPvGY/eIuUlWlhifbXo3VFbDDDZuvX//5hGS1EMVFh973uMwxMtcrMi4pbygIjRAjRhwoS8v+q6jh49ukZd4371ZZZZpvJ40003zYN8RmtX9GaJ1sgYV6haPI7WrPLAkjHY5mqrrZZbyh588ME0u6J16t57782tYieeeGKud7QARQ+Xb775Zqb2FQM0Vg8SGecXLZNxP38Marr88sunFVdcMbdSRctkef9xfhMnTsytodNS3+tc27Su8YyK+sTzqs8lXod4jatbg2v3UlpqqaWm+X769ttv80CZs2ta12HcuHFp7Nix+fWrfq/36NFjuvutPp8492h5rD6fW265JV+HWB/vk3i/lFsapybGqggz+14CYPaJpf6XWKplx1LxPoze4bHf6G0VdY8egfH+jR5Utf3qV7/KPb9jIpann3467b333vUe639zlA1n4MCB+b1XvdR+PSJuEjMxMySloBHFl1aIW4Sq/3hH1+hnnnmmTjBQW8zwUq0860vtdbM680t82cbMH+W6xpdo7S+a+PKOL6CGEl2LIziLWdPiSzm6T++2224Nsu+VVlopHXjggbmL+AsvvJC7fUcSIkRAWvuLeWYH74xu1rHfuBUtrlXcShDd9r/88stK4mJ66nudm9LMvp9i4O8vvviixrroGh6JpAiia4sZYyIQjzJFXIdpnU85aIuu+DFTYHTl/93vfleZ1WZqyrdcLLHEEo1SZwCmTixVl1iq5cVSZZGMimRdDIQet1PGLHsxU19tMYNevPaRrI3b8+qbLCZir3Iis7by+trx2fRE3VdeeeUaS+3XLeImMRMzQ1IKGlG0xi299NK5FaP2H/ByANNUYoyFmNkjZlkpBzgff/xxHgOgdl3jC6gsepVUJx8iIIwgJVrrYqacON/qaWZDPI5pYsuiXMzwEgFmBDpxL3z1WAvV96WH2rOOzIi4tz6m040W1hBfjrVbmuqbHjnGA6gW5xdT8kYLVojr06tXr9yKFeM8xDhDcS2jTHwpx+w1s2ta1zjUNxNLbauvvnpOwlQHj/E6RDC47LLLznLd1ltvvTRq1Kga+433UARkMf5FbRFIxWuw5557zvAxYirq+OzE9MZlcb4RxM6O4cOH59bZSERFq168Zv/617+m+7z4xyfOL1orASiWWOp/iaVadixVnxj3LBJ35etfLa7hvvvum2fTi15T9YmZ96KHWoyrVVvEbJHIip5rDS3ipjhHmFGNO98lkE499dTctTr+0Y4BFaNbcgzyGC0kAwYMKKQOccwIkuLLN26LigEfzzzzzDzQZ3yhhQgOootynz59cpAQLSfxZR5duXfZZZdK19zobtyvX788+GZ0MY9zixa6uB0qREtgDCIaLW0x0GF0RY6AJbpnhxjsMr5g48sqgoPbbrstP3fhhReuU++Y3jeCk6hvfPnHseM61nbKKafkbsLRAyaSDtHaFoOARutd+cs2BiM955xz0vXXX5/P87//+7/r/dKMICZelxj0NJIgMR1vOdkSvWsiKI4BOSNQuO+++3JLWAQ4UbfjjjsuHXvssTnQie7dn376aW7lqp7yd0ZM7xpHkPjAAw/kltcIKOq7JjGYZ0ypHdP0Hn744blsvC5xbtW3McysmAI7WoLjvNZaa61KF/l4z0Q3/6h7tPBFEueuu+5KJ5xwQl6/8cYbz9Rxot7xHo1Avlu3bvl1iM9MdRf6mRXBbry+N998cx60NN7btadUrk8M1rnFFlvMcAsuAA1LLCWWaumx1BVXXJFf43ifxOsePaTiOkeZuH71iZ5y8V6pr5dUOSkV7424DvG6xW2RcS0uvfTSPFB+bJvZXmdfffVV/hxUi8RlJElDJBhjgPj4LMCMkpSCRhZdoOOPdXwZxBdH/PGPsQz69+9fWB0iEIngJVpVIgCIbtIRaMSXVPlLNf7Zj8AgepHsv//+OQiIL+4IGqpnPYkkwa677pqDlmiRi2Dssssuq2yPL/24lSsSEXE/fbTqxRdfJARCtC5FoBYtN9FiFsmBOG59X+5R36hnzGIS3bsjMRAtQrVttdVW+Qs2gsIIFOMcI0CKMRbKLWIxO0vM5BKBTnzRR6tSlI8WzmqxLrpDxxgKUb+Y3eXggw/O2yLYi1lrInCLfcQ5Rffzcg+a2H/UOeoaQWhc85jVZ2ZN7xofdNBB+TpEcBtBzaOPPlpn1p3o/h3XNd5z8XovuuiiOaCLcSJmRwQ+ETBFYBzBeFm8n2N8iAj+YqadCNrjusRMNfF+mlkRlEbQE69HvA7xGsRrWG5lnRUxc9HRRx+dA8v452KnnXbKr1m8ntMSSazplQGg8YilxFItPZaKa/X3v/89n2ucd4zpFdckZh6O16Y+kbir7oFXW7wfYwbCSKzFTMORZItkXSQU49xrj1s2I+J1iaVaJB/LtxjGa7nddtvlxCbMqFYx2vkMlwbmahFAxJdjfV21mXuucXS1j1bTGCsqgqYiRCtqdKOPVs5oGSxKTOkd/xTEOUeQDAAt/Xt+TjcnXOOmiKUaW4zRGUnGG2+8cZYSXsy9jCkFwEyJWWbOOuusPMhqY4mxnmKcjDfffDO3wB566KH5eHvttVcqUozjELdNSEgBAHNSLFW0uG0zhm2QkGJmibIBmGkxHXVjilsQYqrjY445Jg8EGmMuPPzww7m3VJEaajYjAIAiY6milQf1h5nl9j0AAAAACuf2PQAAAAAKJykFAAAAQOEkpQAAAAAonKQUAAAAAIWTlAIAAACgcJJSAAAAABROUgoAAACAwklKAQAAAFA4SSkAAAAAUtH+H1VUDCXcFYpFAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visual comparison of target variable before and after SMOTE\n",
    "fig, axs = plt.subplots(1, 2, figsize=(12, 4))\n",
    "\n",
    "sns.countplot(x=y_train, ax=axs[0])\n",
    "axs[0].set_title(\"Before SMOTE\")\n",
    "axs[0].set_xlabel(\"Term Deposit Subscription (Original)\")\n",
    "axs[0].set_ylabel(\"Count\")\n",
    "\n",
    "sns.countplot(x=y_res, ax=axs[1])\n",
    "axs[1].set_title(\"After SMOTE\")\n",
    "axs[1].set_xlabel(\"Term Deposit Subscription (SMOTE)\")\n",
    "axs[1].set_ylabel(\"Count\")\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "dc191ba3-24c6-4c55-b3ce-355e90c6ddea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['y_pred.pkl']"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import joblib\n",
    "\n",
    "# Save the trained model\n",
    "joblib.dump(model_resampled, 'model_resampled.pkl')\n",
    "\n",
    "# Save feature names\n",
    "joblib.dump(X.columns.tolist(), 'feature_names.pkl')\n",
    "\n",
    "# Save test labels and predictions\n",
    "joblib.dump(y_test, 'y_test.pkl')\n",
    "joblib.dump(y_pred, 'y_pred.pkl')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c180cb37-79a5-40f1-b460-8b1469d57eae",
   "metadata": {},
   "outputs": [],
   "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.11.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
