diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index ab22921..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/LSTM for stocks.ipynb b/LSTM for stocks.ipynb new file mode 100644 index 0000000..8f873fc --- /dev/null +++ b/LSTM for stocks.ipynb @@ -0,0 +1,1446 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 57, + "id": "00136c02", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "import numpy as np\n", + "\n", + "from tensorflow.keras.models import Sequential\n", + "from tensorflow.keras.optimizers import Adam\n", + "from tensorflow.keras import layers" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "90e4cd71", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
datetimesymbolopenhighlowclosevolume
02022-11-28 14:30:00NASDAQ:MSFT246.20246.640245.400245.9039591.0
12022-11-28 14:35:00NASDAQ:MSFT245.88246.210245.560245.6422125.0
22022-11-28 14:40:00NASDAQ:MSFT245.64246.045245.260245.4421028.0
32022-11-28 14:45:00NASDAQ:MSFT245.44245.530244.950245.4119385.0
42022-11-28 14:50:00NASDAQ:MSFT245.41245.540245.075245.2118818.0
........................
51432023-03-03 20:35:00NASDAQ:MSFT255.06255.200254.740255.1610021.0
51442023-03-03 20:40:00NASDAQ:MSFT255.16255.300254.980255.2714593.0
51452023-03-03 20:45:00NASDAQ:MSFT255.24255.380254.810255.0921879.0
51462023-03-03 20:50:00NASDAQ:MSFT255.11255.280254.720255.1130731.0
51472023-03-03 20:55:00NASDAQ:MSFT255.12255.420255.030255.2776530.0
\n", + "

5148 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " datetime symbol open high low close \\\n", + "0 2022-11-28 14:30:00 NASDAQ:MSFT 246.20 246.640 245.400 245.90 \n", + "1 2022-11-28 14:35:00 NASDAQ:MSFT 245.88 246.210 245.560 245.64 \n", + "2 2022-11-28 14:40:00 NASDAQ:MSFT 245.64 246.045 245.260 245.44 \n", + "3 2022-11-28 14:45:00 NASDAQ:MSFT 245.44 245.530 244.950 245.41 \n", + "4 2022-11-28 14:50:00 NASDAQ:MSFT 245.41 245.540 245.075 245.21 \n", + "... ... ... ... ... ... ... \n", + "5143 2023-03-03 20:35:00 NASDAQ:MSFT 255.06 255.200 254.740 255.16 \n", + "5144 2023-03-03 20:40:00 NASDAQ:MSFT 255.16 255.300 254.980 255.27 \n", + "5145 2023-03-03 20:45:00 NASDAQ:MSFT 255.24 255.380 254.810 255.09 \n", + "5146 2023-03-03 20:50:00 NASDAQ:MSFT 255.11 255.280 254.720 255.11 \n", + "5147 2023-03-03 20:55:00 NASDAQ:MSFT 255.12 255.420 255.030 255.27 \n", + "\n", + " volume \n", + "0 39591.0 \n", + "1 22125.0 \n", + "2 21028.0 \n", + "3 19385.0 \n", + "4 18818.0 \n", + "... ... \n", + "5143 10021.0 \n", + "5144 14593.0 \n", + "5145 21879.0 \n", + "5146 30731.0 \n", + "5147 76530.0 \n", + "\n", + "[5148 rows x 7 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv(\"raw_data/stocks.csv\")\n", + "\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c1a67a84", + "metadata": {}, + "outputs": [], + "source": [ + "df = df[['datetime', 'close']]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "9102674b", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_449/3430666950.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " df[\"datetime\"] = pd.to_datetime(df[\"datetime\"])\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
datetimeclose
02022-11-28 14:30:00245.90
12022-11-28 14:35:00245.64
22022-11-28 14:40:00245.44
32022-11-28 14:45:00245.41
42022-11-28 14:50:00245.21
.........
51432023-03-03 20:35:00255.16
51442023-03-03 20:40:00255.27
51452023-03-03 20:45:00255.09
51462023-03-03 20:50:00255.11
51472023-03-03 20:55:00255.27
\n", + "

5148 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " datetime close\n", + "0 2022-11-28 14:30:00 245.90\n", + "1 2022-11-28 14:35:00 245.64\n", + "2 2022-11-28 14:40:00 245.44\n", + "3 2022-11-28 14:45:00 245.41\n", + "4 2022-11-28 14:50:00 245.21\n", + "... ... ...\n", + "5143 2023-03-03 20:35:00 255.16\n", + "5144 2023-03-03 20:40:00 255.27\n", + "5145 2023-03-03 20:45:00 255.09\n", + "5146 2023-03-03 20:50:00 255.11\n", + "5147 2023-03-03 20:55:00 255.27\n", + "\n", + "[5148 rows x 2 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"datetime\"] = pd.to_datetime(df[\"datetime\"])\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "c3c0b6ce", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e7bed360", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_449/389309350.py:2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " df[\"close_scalled\"] = scaller.fit_transform(df[[\"close\"]])\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
datetimecloseclose_scalled
02022-11-28 14:30:00245.900.465751
12022-11-28 14:35:00245.640.461113
22022-11-28 14:40:00245.440.457545
32022-11-28 14:45:00245.410.457010
42022-11-28 14:50:00245.210.453443
............
51432023-03-03 20:35:00255.160.630931
51442023-03-03 20:40:00255.270.632893
51452023-03-03 20:45:00255.090.629682
51462023-03-03 20:50:00255.110.630039
51472023-03-03 20:55:00255.270.632893
\n", + "

5148 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " datetime close close_scalled\n", + "0 2022-11-28 14:30:00 245.90 0.465751\n", + "1 2022-11-28 14:35:00 245.64 0.461113\n", + "2 2022-11-28 14:40:00 245.44 0.457545\n", + "3 2022-11-28 14:45:00 245.41 0.457010\n", + "4 2022-11-28 14:50:00 245.21 0.453443\n", + "... ... ... ...\n", + "5143 2023-03-03 20:35:00 255.16 0.630931\n", + "5144 2023-03-03 20:40:00 255.27 0.632893\n", + "5145 2023-03-03 20:45:00 255.09 0.629682\n", + "5146 2023-03-03 20:50:00 255.11 0.630039\n", + "5147 2023-03-03 20:55:00 255.27 0.632893\n", + "\n", + "[5148 rows x 3 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scaller = MinMaxScaler()\n", + "df[\"close_scalled\"] = scaller.fit_transform(df[[\"close\"]])\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "2e2fda44", + "metadata": {}, + "outputs": [], + "source": [ + "df.index = df.pop('datetime')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "eb643a5c", + "metadata": {}, + "outputs": [], + "source": [ + "df_scalled = df[\"close_scalled\"]\n", + "df_scalled = pd.DataFrame(df_scalled)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "22e39794", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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iIgUxeny9f4gFrGtqqryc0uIiIjIUeLntrPF6AMiOKmurgYApKWl+bklRERE5Kzq6mrExMQ4vH1ArK1jMBhQUFCAqKgoqFQqv7WjqqoKaWlpOHnyZIde44fnwT08f214LtzD82fE89BGaedCEARUV1cjJSXFZFHg9gREz4larUa3bt383QxJdHS0In7p/sbz4B6evzY8F+7h+TPieWijpHPhTI+JiAmxREREpCgMToiIiEhRGJw4QafTYfHixdDpdP5uil/xPLiH568Nz4V7eP6MeB7aBMu5CIiEWCIiIuo42HNCREREisLghIiIiBSFwQkREREpCoMTIiIiUhRFBidLly7FWWedhaioKCQkJOCKK67AwYMHTbZpaGjA3LlzERcXh8jISFx11VUoKiqSnt+5cydmzpyJtLQ0hIeHY8CAAXjllVdM9vH111/jwgsvRNeuXREdHY2xY8fip59+ard9X3/9NS666CLExcVBpVIhJyfH5PmysjLcdddd6NevH8LDw9G9e3fcfffdqKysbHffu3btwoQJExAWFoaYmBikpaWZnIfvv/8eV111FdLT06FSqfDcc88F3XloaGjATTfdhCFDhkCr1eKKK66w2GbDhg1QqVQWP4WFhdI2vrqONm7ciPHjxyMuLg7h4eHo378/XnrppXbPnyAIWLRoEZKTkxEeHo7Jkyfj8OHDJts8+eSTGDduHCIiIhAbG9vuPkXy6ygtLQ1Tp041ORcXXHABLrroIuk6evnll4PyXPBaMsrNzcXNN9+MjIwMhIeHo1evXli8eDGampra3feGDRswYsQI6HQ6xMXFISMjw+Q8fPzxx7jsssuQkpIClUqFzz//POjOw+nTp3Hdddehb9++UKvVuOeeeyyuiREjRlhcQzqdTrHnAgCmT5+O7t27IywsDMnJybjhhhtQUFDQ7r7l10Tv3r3x/vvvmzz/+++/m1wTq1atanef1v4DijNlyhThvffeE/bs2SPk5OQIl1xyidC9e3ehpqZG2mbOnDlCWlqasG7dOmHbtm3C2WefLYwbN056/p133hHuvvtuYcOGDcLRo0eFjz76SAgPDxdee+01aZv58+cLzzzzjLB161bh0KFDwsKFC4WQkBBhx44ddtv34YcfCkuWLBHeeustAYCQnZ1t8vzu3buFv/3tb8K3334rHDlyRFi3bp3Qp08f4aqrrrK738rKSiExMVG4/vrrhT179ghDhw4VQkJChMWLF0vnISkpSbj77ruFzz77TEhKShLGjRsXdOehpqZGmDNnjvDmm28KU6ZMES6//HKLbdavXy8AEA4ePCicPn1a+tHr9dI2vrqOduzYIXz66afCnj17hOPHjwsfffSREBERIbzxxht2/59PP/20EBMTI6xatUrYuXOnMH36dCEjI0Oor6+Xtlm0aJHw4osvCgsWLBBiYmLs7k9kfh199tlnglqtFm688UbpXIwfP16IiooS3nvvPSEpKUl46aWXgvJc8Foynr8ff/xRuOmmm4SffvpJOHr0qLB69WohISFB+Ne//mV3v8eOHRMiIiKEBQsWCPv27RMGDBggqFQqYfny5dJ56Nq1q3DfffcJX3/9tQBAmDJlStCdh+PHjwt333238MEHHwiZmZnC/PnzLa6JoUOHCiqVSjh69Kh0Dc2aNUux50IQBOHFF18UsrKyhNzcXOHPP/8Uxo4dK4wdO9bufs2viddee03QaDTC2rVrpW3WrFkjPPzww9I18c0339jdpzWKDE7MFRcXCwCE3377TRAEQaioqBBCQkKEL774Qtpm//79AgAhKyvL5n7uvPNO4bzzzrN7rIEDBwpLlixxqF3Hjx+3+qFszeeffy6EhoYKzc3NNrd5/fXXhc6dOwuNjY3SYw888IDQr18/QRAsz0NaWpqg0WiC7jzI3XjjjXY/UMrLyx3ajyD49jq68sorhb///e82nzcYDEJSUpLw3HPPSY9VVFQIOp1O+Oyzzyy2f++99xz+QG7vOhIE03PRo0cP4amnngrKcyHHa8nUs88+K2RkZNg99v333y8MGjTI5LEZM2YIU6ZMEQTB8jwAELRabdCdB7mJEycK8+fPt3j8lVdeCfhrYvXq1YJKpRKamppsbtPeNWHO1eBEkcM65sRhgC5dugAAtm/fjubmZkyePFnapn///ujevTuysrLs7kfchzUGgwHV1dV2t3FVZWUloqOjodXaXs4oKysL5557LkJDQ6XHpkyZgoMHD6K8vNziPDQ2NkKv1wfdeXBGZmYmkpOTceGFF+LPP/9s99iA96+j7OxsbNq0CRMnTrS5zfHjx1FYWGhy7JiYGIwZM8busR3R3nUk/h+AtnNx6tSpoDwXzuho11J7xwaM15J8v4DxWhL3a34eAKClpSXozoMj6uvr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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.plot(df_scalled.index, df_scalled[\"close_scalled\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "53236dbd", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
close_scalled
datetime
2022-11-28 14:30:000.465751
2022-11-28 14:35:000.461113
2022-11-28 14:40:000.457545
2022-11-28 14:45:000.457010
2022-11-28 14:50:000.453443
2022-11-28 14:55:000.448983
2022-11-28 15:00:000.452551
2022-11-28 15:05:000.442026
2022-11-28 15:10:000.438280
2022-11-28 15:15:000.433286
\n", + "
" + ], + "text/plain": [ + " close_scalled\n", + "datetime \n", + "2022-11-28 14:30:00 0.465751\n", + "2022-11-28 14:35:00 0.461113\n", + "2022-11-28 14:40:00 0.457545\n", + "2022-11-28 14:45:00 0.457010\n", + "2022-11-28 14:50:00 0.453443\n", + "2022-11-28 14:55:00 0.448983\n", + "2022-11-28 15:00:00 0.452551\n", + "2022-11-28 15:05:00 0.442026\n", + "2022-11-28 15:10:00 0.438280\n", + "2022-11-28 15:15:00 0.433286" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_scalled.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "c22c1a95", + "metadata": {}, + "outputs": [], + "source": [ + "def creat_window_df(df):\n", + " target_df = pd.DataFrame(index=df.index)\n", + " for i in range(1, 6):\n", + " target_df[f'close_scalled Lag {i}'] = df['close_scalled'].shift(i)\n", + " target_df['Target'] = df['close_scalled']\n", + " target_df = target_df.dropna()\n", + " return target_df" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "436cfc80", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "window_df = creat_window_df(df_scalled)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "67f72547", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
close_scalled Lag 1close_scalled Lag 2close_scalled Lag 3close_scalled Lag 4close_scalled Lag 5Target
datetime
2022-11-28 14:55:000.4534430.4570100.4575450.4611130.4657510.448983
2022-11-28 15:00:000.4489830.4534430.4570100.4575450.4611130.452551
2022-11-28 15:05:000.4525510.4489830.4534430.4570100.4575450.442026
2022-11-28 15:10:000.4420260.4525510.4489830.4534430.4570100.438280
2022-11-28 15:15:000.4382800.4420260.4525510.4489830.4534430.433286
.....................
2023-03-03 20:35:000.6289690.6227260.6221910.6209420.6268280.630931
2023-03-03 20:40:000.6309310.6289690.6227260.6221910.6209420.632893
2023-03-03 20:45:000.6328930.6309310.6289690.6227260.6221910.629682
2023-03-03 20:50:000.6296820.6328930.6309310.6289690.6227260.630039
2023-03-03 20:55:000.6300390.6296820.6328930.6309310.6289690.632893
\n", + "

5143 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " close_scalled Lag 1 close_scalled Lag 2 \\\n", + "datetime \n", + "2022-11-28 14:55:00 0.453443 0.457010 \n", + "2022-11-28 15:00:00 0.448983 0.453443 \n", + "2022-11-28 15:05:00 0.452551 0.448983 \n", + "2022-11-28 15:10:00 0.442026 0.452551 \n", + "2022-11-28 15:15:00 0.438280 0.442026 \n", + "... ... ... \n", + "2023-03-03 20:35:00 0.628969 0.622726 \n", + "2023-03-03 20:40:00 0.630931 0.628969 \n", + "2023-03-03 20:45:00 0.632893 0.630931 \n", + "2023-03-03 20:50:00 0.629682 0.632893 \n", + "2023-03-03 20:55:00 0.630039 0.629682 \n", + "\n", + " close_scalled Lag 3 close_scalled Lag 4 \\\n", + "datetime \n", + "2022-11-28 14:55:00 0.457545 0.461113 \n", + "2022-11-28 15:00:00 0.457010 0.457545 \n", + "2022-11-28 15:05:00 0.453443 0.457010 \n", + "2022-11-28 15:10:00 0.448983 0.453443 \n", + "2022-11-28 15:15:00 0.452551 0.448983 \n", + "... ... ... \n", + "2023-03-03 20:35:00 0.622191 0.620942 \n", + "2023-03-03 20:40:00 0.622726 0.622191 \n", + "2023-03-03 20:45:00 0.628969 0.622726 \n", + "2023-03-03 20:50:00 0.630931 0.628969 \n", + "2023-03-03 20:55:00 0.632893 0.630931 \n", + "\n", + " close_scalled Lag 5 Target \n", + "datetime \n", + "2022-11-28 14:55:00 0.465751 0.448983 \n", + "2022-11-28 15:00:00 0.461113 0.452551 \n", + "2022-11-28 15:05:00 0.457545 0.442026 \n", + "2022-11-28 15:10:00 0.457010 0.438280 \n", + "2022-11-28 15:15:00 0.453443 0.433286 \n", + "... ... ... \n", + "2023-03-03 20:35:00 0.626828 0.630931 \n", + "2023-03-03 20:40:00 0.620942 0.632893 \n", + "2023-03-03 20:45:00 0.622191 0.629682 \n", + "2023-03-03 20:50:00 0.622726 0.630039 \n", + "2023-03-03 20:55:00 0.628969 0.632893 \n", + "\n", + "[5143 rows x 6 columns]" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "window_df" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "49df3514", + "metadata": {}, + "outputs": [], + "source": [ + "def windowed_df_to_date_X_y(windowed_dataframe):\n", + " df_as_np = windowed_dataframe.reset_index().to_numpy()\n", + "\n", + " dates = df_as_np[:, 0]\n", + "\n", + " middle_matrix = df_as_np[:, 1:-1]\n", + " X = middle_matrix.reshape((len(dates), middle_matrix.shape[1], 1))\n", + "\n", + " Y = df_as_np[:, -1]\n", + "\n", + " return dates, X.astype(np.float32), Y.astype(np.float32)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "3323c1af", + "metadata": {}, + "outputs": [], + "source": [ + "dates, X, y = windowed_df_to_date_X_y(window_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "bd7ec06e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((5143,), (5143, 5, 1), (5143,))" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dates.shape, X.shape, y.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "0f64aac6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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PNYDVV9frxEjRqioqEgXXHCBNm3a1C/HRXhF++O8qqpKTz31lObNm6eEhAS/x+Y1fWARTEcgp9Opm2++WSeffLKmTJkiSSotLZXNZuvSX7CgoMBvP8BPPvlEzz33nK677jq/9/X73/9e9fX1uuSSS/pt/JJUWVmpX/3qV93et9T+exUUFHgtc/9Mn8PYFk+P80AMHjxYjzzyiF544QW98MILKioq0mmnnaYvvviiH0YK+BeK5+KwYcOUmJioWbNm6YYbbtC1117rdzzu4/t6b+jr+wLvOfErnh7ngeA9B+EQC8/DnTt36s9//rO++93v+j2u+9i+jltbW6umpqZu90X0i6fHeiAmTJigxx9/XEuWLNG///1vOZ1OzZs3TwcPHuzzsRE+0fw4/8lPfqLU1FTl5ORo//79WrJkSbe/K6/pA4tgOgLdcMMN2rhxo5599tleH2Pjxo264IILdNddd+mss87yuc3TTz+te+65R//5z388PQWfeuoppaWlef4tX7486Puura3Vueeeq0mTJunuu+/2LJ88ebLnuF/60pd69XshdvA49zZhwgR997vf1cyZMzVv3jw9/vjjmjdvXkCTPAB9EYrn4vLly7V69Wo98sgjeuihh/TMM89I6p/noj+856AjHufeeM9BOET78/DQoUM6++yz9bWvfU3f+c53PMs7Hvf666/v9e+G2MFj3dvcuXN1xRVXaMaMGVqwYIFefPFF5eXl6e9//3vQY0PkiObH+W233abi4mK98847slgsuuKKK2QYhiRe08Ohf649R7+58cYb9dprr+mjjz7SsGHDPMsLCwvV2tqq6upqr7NPZWVlXSZn2rx5s8444wxdd911uuOOO3zez7PPPqtrr71Wzz//vNclCeeff77mzJnj+Xno0KFBjb+urk5nn3220tPT9dJLL3ldDvHGG2+ora1NkpScnOz5vTrO0Or+ndzrEJvi7XHeW7Nnz9aKFSv6dAygO6F6Lo4aNUqSNHXqVJWVlenuu+/WZZdd5vO5ePjwYc99DR482Ou+Z8yYEfDvxnsO3OLtcd5bvOdgIEX787CkpEQLFy7UvHnzuky+tXbtWs/tjIwMz+/l6/0mIyOjz89VRLZ4e6z3RkJCgo4//njt3Lmz18dAeEX74zw3N1e5ubkaP368jjvuOBUVFenTTz/V3LlzeU0Ph3A3uUY7p9Np3HDDDcaQIUOM7du3d1nvbiL/3//+17Ns69atXZrIb9y40cjPzzduu+02v/f19NNPG0lJScbLL78c9Di7mxSupqbGOOmkk4wFCxYYDQ0NAR3PPRFVx0bzt99+OxNRxah4fZx35G8iKl8WLVpkfOUrXwn6PoCehPK52Nk999xjjBgxotuxFRYWGr///e89y2pqavp18kPec+JDvD7OO+I9B+EWC8/DgwcPGuPGjTO+/vWvG3a7PaD7/vGPf2xMmTLFa9lll13GRFkxLF4f6x35m/ywM7vdbkyYMMG45ZZbgr4PhFcsPM4727dvnyHJeP/99/1uw2v6wCKYjhDf+973jMzMTOODDz4wDh8+7PnX2Njo2eb66683hg8fbrz33nvG6tWrjblz5xpz5871rN+wYYORl5dnXH755V7HKC8v92zz1FNPGVar1Xj44Ye9tqmuru52fEeOHDGKi4uN119/3ZBkPPvss0ZxcbFx+PBhwzDan/Bz5swxpk6dauzcudPr2N29qVVXVxsFBQXGt771LWPjxo3Gs88+a6SkpBh///vfPdu0tLQYxcXFRnFxsTF48GDjRz/6kVFcXGzs2LEj6L8zwiteH+eGYRibNm0yiouLjfPOO8847bTTPI9ptwcffNB4+eWXjR07dhgbNmwwbrrpJsNsNhtLly4N5k8MBCRUz8W//OUvxiuvvGJs377d2L59u/HYY48Z6enpxs9//vNux3ffffcZWVlZxpIlS4z169cbF1xwgTFq1CijqanJs82+ffuM4uJi45577jHS0tI8z6m6ujq/x+U9J77E6+PcMHjPQeSI9ufhwYMHjbFjxxpnnHGGcfDgQa/7787u3buNlJQU47bbbjO2bNliPPzww4bFYjHeeustzzZ1dXWe56Yk44EHHjCKi4uNffv2BfU3RmSI18e6YRiex/HMmTONb3zjG0ZxcbGxadMmz/p77rnHePvtt41du3YZa9asMb7+9a8bSUlJXtsgOkT74/zTTz81/vznPxvFxcXG3r17jWXLlhnz5s0zxowZYzQ3N/s9Lq/pA4tgOkJI8vnviSee8GzT1NRkfP/73zeys7ONlJQU4ytf+YrXG8Vdd93l8xgdzyotWLDA5zZXXnllt+N74oknfO531113GYZhGO+//77f32HPnj3dHnvdunXGKaecYiQmJhpDhw417rvvPq/17urVzv8WLFgQwF8WkSSeH+cjRozwuZ/bb3/7W2PMmDFGUlKSMWjQIOO0004z3nvvvUD/tEBQQvVc/NOf/mRMnjzZSElJMTIyMozjjz/e+Otf/2o4HI5ux+d0Oo1f/OIXRkFBgZGYmGicccYZxrZt27y2ufLKK33ef3fVDobBe048iefHOe85iBTR/jz099mw4/PJn/fff9+YMWOGYbPZjNGjR3v9zu71vfm8isgUz4/1nsZ88803G8OHDzdsNptRUFBgnHPOOcYXX3zR8x8VESfaH+fr1683Fi5caAwaNMhITEw0Ro4caVx//fXGwYMHe/zdeU0fOCbDcHX4BgAAAAAAAAAgBMzhHgAAAAAAAAAAIL4QTAMAAAAAAAAAQopgGgAAAAAAAAAQUgTTAAAAAAAAAICQIpgGAAAAAAAAAIQUwTQAAAAAAAAAIKQIpgEAAAAAAAAAIUUwDQAAAAAAAAAIKYJpAAAAAAAAAEBIEUwDAAAAAAAAAEKKYBoAAAAAAAAAEFL/H8x1v3BK4m7TAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "q_80 = int(len(dates) * .8)\n", + "q_90 = int(len(dates) * .9)\n", + "\n", + "dates_train, X_train, y_train = dates[:q_80], X[:q_80], y[:q_80]\n", + "\n", + "dates_val, X_val, y_val = dates[q_80:q_90], X[q_80:q_90], y[q_80:q_90]\n", + "dates_test, X_test, y_test = dates[q_90:], X[q_90:], y[q_90:]\n", + "\n", + "plt.figure(figsize=(18, 8))\n", + "plt.plot(dates_train, y_train)\n", + "plt.plot(dates_val, y_val)\n", + "plt.plot(dates_test, y_test)\n", + "\n", + "plt.legend(['Train', 'Validation', 'Test'])" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "21205175", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/100\n", + "129/129 [==============================] - 4s 13ms/step - loss: 0.0188 - mean_absolute_error: 0.0740 - val_loss: 2.7144e-04 - val_mean_absolute_error: 0.0111\n", + "Epoch 2/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.6841e-04 - mean_absolute_error: 0.0101 - val_loss: 2.1792e-04 - val_mean_absolute_error: 0.0093\n", + "Epoch 3/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.6161e-04 - mean_absolute_error: 0.0098 - val_loss: 2.8921e-04 - val_mean_absolute_error: 0.0120\n", + "Epoch 4/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 2.5419e-04 - mean_absolute_error: 0.0096 - val_loss: 2.0840e-04 - val_mean_absolute_error: 0.0091\n", + "Epoch 5/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.5739e-04 - mean_absolute_error: 0.0098 - val_loss: 2.1483e-04 - val_mean_absolute_error: 0.0094\n", + "Epoch 6/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.5048e-04 - mean_absolute_error: 0.0096 - val_loss: 1.9844e-04 - val_mean_absolute_error: 0.0088\n", + "Epoch 7/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.5725e-04 - mean_absolute_error: 0.0100 - val_loss: 2.9997e-04 - val_mean_absolute_error: 0.0128\n", + "Epoch 8/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.5234e-04 - mean_absolute_error: 0.0099 - val_loss: 3.1896e-04 - val_mean_absolute_error: 0.0134\n", + "Epoch 9/100\n", + "129/129 [==============================] - 1s 12ms/step - loss: 2.5048e-04 - mean_absolute_error: 0.0098 - val_loss: 3.0164e-04 - val_mean_absolute_error: 0.0143\n", + "Epoch 10/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 2.5097e-04 - mean_absolute_error: 0.0099 - val_loss: 1.7884e-04 - val_mean_absolute_error: 0.0082\n", + "Epoch 11/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 2.4439e-04 - mean_absolute_error: 0.0096 - val_loss: 4.8991e-04 - val_mean_absolute_error: 0.0188\n", + "Epoch 12/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 2.7966e-04 - mean_absolute_error: 0.0109 - val_loss: 1.8955e-04 - val_mean_absolute_error: 0.0098\n", + "Epoch 13/100\n", + "129/129 [==============================] - 1s 11ms/step - loss: 2.3317e-04 - mean_absolute_error: 0.0094 - val_loss: 1.6258e-04 - val_mean_absolute_error: 0.0082\n", + "Epoch 14/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.4327e-04 - mean_absolute_error: 0.0097 - val_loss: 1.5804e-04 - val_mean_absolute_error: 0.0078\n", + "Epoch 15/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.4364e-04 - mean_absolute_error: 0.0099 - val_loss: 1.7141e-04 - val_mean_absolute_error: 0.0089\n", + "Epoch 16/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.3670e-04 - mean_absolute_error: 0.0097 - val_loss: 1.6739e-04 - val_mean_absolute_error: 0.0080\n", + "Epoch 17/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 2.3273e-04 - mean_absolute_error: 0.0096 - val_loss: 1.5466e-04 - val_mean_absolute_error: 0.0076\n", + "Epoch 18/100\n", + "129/129 [==============================] - 2s 14ms/step - loss: 2.2325e-04 - mean_absolute_error: 0.0092 - val_loss: 3.3069e-04 - val_mean_absolute_error: 0.0145\n", + "Epoch 19/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 2.2754e-04 - mean_absolute_error: 0.0095 - val_loss: 1.6787e-04 - val_mean_absolute_error: 0.0090\n", + "Epoch 20/100\n", + "129/129 [==============================] - 2s 14ms/step - loss: 2.3410e-04 - mean_absolute_error: 0.0098 - val_loss: 2.6150e-04 - val_mean_absolute_error: 0.0121\n", + "Epoch 21/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 2.2197e-04 - mean_absolute_error: 0.0093 - val_loss: 5.0334e-04 - val_mean_absolute_error: 0.0201\n", + "Epoch 22/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 2.3984e-04 - mean_absolute_error: 0.0101 - val_loss: 1.5390e-04 - val_mean_absolute_error: 0.0083\n", + "Epoch 23/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 2.1547e-04 - mean_absolute_error: 0.0092 - val_loss: 1.4000e-04 - val_mean_absolute_error: 0.0074\n", + "Epoch 24/100\n", + "129/129 [==============================] - 2s 16ms/step - loss: 2.0859e-04 - mean_absolute_error: 0.0090 - val_loss: 2.0442e-04 - val_mean_absolute_error: 0.0100\n", + "Epoch 25/100\n", + "129/129 [==============================] - 2s 15ms/step - loss: 2.2794e-04 - mean_absolute_error: 0.0098 - val_loss: 2.0917e-04 - val_mean_absolute_error: 0.0101\n", + "Epoch 26/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 2.4748e-04 - mean_absolute_error: 0.0104 - val_loss: 2.0195e-04 - val_mean_absolute_error: 0.0100\n", + "Epoch 27/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 1.9402e-04 - mean_absolute_error: 0.0086 - val_loss: 2.0290e-04 - val_mean_absolute_error: 0.0101\n", + "Epoch 28/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.0437e-04 - mean_absolute_error: 0.0091 - val_loss: 1.6000e-04 - val_mean_absolute_error: 0.0089\n", + "Epoch 29/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.2009e-04 - mean_absolute_error: 0.0097 - val_loss: 1.3493e-04 - val_mean_absolute_error: 0.0071\n", + "Epoch 30/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.4609e-04 - mean_absolute_error: 0.0104 - val_loss: 2.0425e-04 - val_mean_absolute_error: 0.0101\n", + "Epoch 31/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.0524e-04 - mean_absolute_error: 0.0090 - val_loss: 2.1285e-04 - val_mean_absolute_error: 0.0113\n", + "Epoch 32/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.0033e-04 - mean_absolute_error: 0.0089 - val_loss: 1.6083e-04 - val_mean_absolute_error: 0.0085\n", + "Epoch 33/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.9782e-04 - mean_absolute_error: 0.0091 - val_loss: 1.5403e-04 - val_mean_absolute_error: 0.0087\n", + "Epoch 34/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.9795e-04 - mean_absolute_error: 0.0091 - val_loss: 1.2881e-04 - val_mean_absolute_error: 0.0073\n", + "Epoch 35/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.7724e-04 - mean_absolute_error: 0.0082 - val_loss: 1.7614e-04 - val_mean_absolute_error: 0.0093\n", + "Epoch 36/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.7898e-04 - mean_absolute_error: 0.0084 - val_loss: 1.3263e-04 - val_mean_absolute_error: 0.0076\n", + "Epoch 37/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.8613e-04 - mean_absolute_error: 0.0087 - val_loss: 3.4738e-04 - val_mean_absolute_error: 0.0155\n", + "Epoch 38/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.0662e-04 - mean_absolute_error: 0.0096 - val_loss: 1.2056e-04 - val_mean_absolute_error: 0.0070\n", + "Epoch 39/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.7116e-04 - mean_absolute_error: 0.0081 - val_loss: 1.4856e-04 - val_mean_absolute_error: 0.0083\n", + "Epoch 40/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.7488e-04 - mean_absolute_error: 0.0083 - val_loss: 1.7284e-04 - val_mean_absolute_error: 0.0095\n", + "Epoch 41/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.9877e-04 - mean_absolute_error: 0.0091 - val_loss: 2.3689e-04 - val_mean_absolute_error: 0.0125\n", + "Epoch 42/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.7840e-04 - mean_absolute_error: 0.0084 - val_loss: 1.7450e-04 - val_mean_absolute_error: 0.0093\n", + "Epoch 43/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.8749e-04 - mean_absolute_error: 0.0088 - val_loss: 1.5308e-04 - val_mean_absolute_error: 0.0087\n", + "Epoch 44/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.9595e-04 - mean_absolute_error: 0.0090 - val_loss: 1.1449e-04 - val_mean_absolute_error: 0.0065\n", + "Epoch 45/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 2.0157e-04 - mean_absolute_error: 0.0094 - val_loss: 1.1834e-04 - val_mean_absolute_error: 0.0068\n", + "Epoch 46/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.7655e-04 - mean_absolute_error: 0.0085 - val_loss: 2.3742e-04 - val_mean_absolute_error: 0.0125\n", + "Epoch 47/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.7153e-04 - mean_absolute_error: 0.0083 - val_loss: 1.3263e-04 - val_mean_absolute_error: 0.0080\n", + "Epoch 48/100\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "129/129 [==============================] - 1s 9ms/step - loss: 1.7103e-04 - mean_absolute_error: 0.0082 - val_loss: 1.0858e-04 - val_mean_absolute_error: 0.0065\n", + "Epoch 49/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6162e-04 - mean_absolute_error: 0.0079 - val_loss: 1.3386e-04 - val_mean_absolute_error: 0.0078\n", + "Epoch 50/100\n", + "129/129 [==============================] - 1s 8ms/step - loss: 1.8218e-04 - mean_absolute_error: 0.0088 - val_loss: 1.1310e-04 - val_mean_absolute_error: 0.0067\n", + "Epoch 51/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6157e-04 - mean_absolute_error: 0.0079 - val_loss: 3.7565e-04 - val_mean_absolute_error: 0.0165\n", + "Epoch 52/100\n", + "129/129 [==============================] - 1s 8ms/step - loss: 1.7027e-04 - mean_absolute_error: 0.0083 - val_loss: 1.3881e-04 - val_mean_absolute_error: 0.0084\n", + "Epoch 53/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.8034e-04 - mean_absolute_error: 0.0086 - val_loss: 1.4530e-04 - val_mean_absolute_error: 0.0085\n", + "Epoch 54/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.8923e-04 - mean_absolute_error: 0.0092 - val_loss: 1.2147e-04 - val_mean_absolute_error: 0.0072\n", + "Epoch 55/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6073e-04 - mean_absolute_error: 0.0079 - val_loss: 1.4713e-04 - val_mean_absolute_error: 0.0087\n", + "Epoch 56/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.8638e-04 - mean_absolute_error: 0.0090 - val_loss: 1.5625e-04 - val_mean_absolute_error: 0.0088\n", + "Epoch 57/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6894e-04 - mean_absolute_error: 0.0082 - val_loss: 1.2582e-04 - val_mean_absolute_error: 0.0073\n", + "Epoch 58/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5807e-04 - mean_absolute_error: 0.0077 - val_loss: 1.2903e-04 - val_mean_absolute_error: 0.0079\n", + "Epoch 59/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6425e-04 - mean_absolute_error: 0.0081 - val_loss: 1.1022e-04 - val_mean_absolute_error: 0.0066\n", + "Epoch 60/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.8037e-04 - mean_absolute_error: 0.0086 - val_loss: 1.1705e-04 - val_mean_absolute_error: 0.0073\n", + "Epoch 61/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.9936e-04 - mean_absolute_error: 0.0094 - val_loss: 1.8811e-04 - val_mean_absolute_error: 0.0100\n", + "Epoch 62/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.8192e-04 - mean_absolute_error: 0.0087 - val_loss: 1.7149e-04 - val_mean_absolute_error: 0.0094\n", + "Epoch 63/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.7066e-04 - mean_absolute_error: 0.0083 - val_loss: 1.1962e-04 - val_mean_absolute_error: 0.0074\n", + "Epoch 64/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6683e-04 - mean_absolute_error: 0.0082 - val_loss: 1.1519e-04 - val_mean_absolute_error: 0.0070\n", + "Epoch 65/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5818e-04 - mean_absolute_error: 0.0080 - val_loss: 2.3630e-04 - val_mean_absolute_error: 0.0122\n", + "Epoch 66/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5742e-04 - mean_absolute_error: 0.0077 - val_loss: 4.1168e-04 - val_mean_absolute_error: 0.0173\n", + "Epoch 67/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.7386e-04 - mean_absolute_error: 0.0085 - val_loss: 1.2926e-04 - val_mean_absolute_error: 0.0077\n", + "Epoch 68/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6391e-04 - mean_absolute_error: 0.0080 - val_loss: 1.0708e-04 - val_mean_absolute_error: 0.0066\n", + "Epoch 69/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.6874e-04 - mean_absolute_error: 0.0082 - val_loss: 1.6551e-04 - val_mean_absolute_error: 0.0097\n", + "Epoch 70/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 1.5537e-04 - mean_absolute_error: 0.0078 - val_loss: 1.1670e-04 - val_mean_absolute_error: 0.0070\n", + "Epoch 71/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5630e-04 - mean_absolute_error: 0.0078 - val_loss: 1.9716e-04 - val_mean_absolute_error: 0.0105\n", + "Epoch 72/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.5938e-04 - mean_absolute_error: 0.0078 - val_loss: 1.8266e-04 - val_mean_absolute_error: 0.0102\n", + "Epoch 73/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.5837e-04 - mean_absolute_error: 0.0079 - val_loss: 1.1560e-04 - val_mean_absolute_error: 0.0067\n", + "Epoch 74/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.6431e-04 - mean_absolute_error: 0.0081 - val_loss: 2.4839e-04 - val_mean_absolute_error: 0.0130\n", + "Epoch 75/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.7836e-04 - mean_absolute_error: 0.0086 - val_loss: 1.2503e-04 - val_mean_absolute_error: 0.0075\n", + "Epoch 76/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.7247e-04 - mean_absolute_error: 0.0084 - val_loss: 1.6883e-04 - val_mean_absolute_error: 0.0093\n", + "Epoch 77/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6752e-04 - mean_absolute_error: 0.0081 - val_loss: 1.0211e-04 - val_mean_absolute_error: 0.0062\n", + "Epoch 78/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5098e-04 - mean_absolute_error: 0.0076 - val_loss: 1.2516e-04 - val_mean_absolute_error: 0.0075\n", + "Epoch 79/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5962e-04 - mean_absolute_error: 0.0078 - val_loss: 1.1239e-04 - val_mean_absolute_error: 0.0068\n", + "Epoch 80/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.5274e-04 - mean_absolute_error: 0.0077 - val_loss: 1.0871e-04 - val_mean_absolute_error: 0.0066\n", + "Epoch 81/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6240e-04 - mean_absolute_error: 0.0080 - val_loss: 2.3258e-04 - val_mean_absolute_error: 0.0118\n", + "Epoch 82/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5667e-04 - mean_absolute_error: 0.0078 - val_loss: 1.4642e-04 - val_mean_absolute_error: 0.0089\n", + "Epoch 83/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.7787e-04 - mean_absolute_error: 0.0086 - val_loss: 3.7906e-04 - val_mean_absolute_error: 0.0171\n", + "Epoch 84/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.7516e-04 - mean_absolute_error: 0.0086 - val_loss: 1.0256e-04 - val_mean_absolute_error: 0.0062\n", + "Epoch 85/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5940e-04 - mean_absolute_error: 0.0078 - val_loss: 1.0510e-04 - val_mean_absolute_error: 0.0064\n", + "Epoch 86/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.7281e-04 - mean_absolute_error: 0.0086 - val_loss: 2.9964e-04 - val_mean_absolute_error: 0.0144\n", + "Epoch 87/100\n", + "129/129 [==============================] - 1s 10ms/step - loss: 1.7092e-04 - mean_absolute_error: 0.0084 - val_loss: 1.0834e-04 - val_mean_absolute_error: 0.0066\n", + "Epoch 88/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5010e-04 - mean_absolute_error: 0.0076 - val_loss: 1.2173e-04 - val_mean_absolute_error: 0.0072\n", + "Epoch 89/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5453e-04 - mean_absolute_error: 0.0076 - val_loss: 1.4594e-04 - val_mean_absolute_error: 0.0086\n", + "Epoch 90/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.6960e-04 - mean_absolute_error: 0.0084 - val_loss: 1.5616e-04 - val_mean_absolute_error: 0.0096\n", + "Epoch 91/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.4182e-04 - mean_absolute_error: 0.0072 - val_loss: 1.0016e-04 - val_mean_absolute_error: 0.0062\n", + "Epoch 92/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5857e-04 - mean_absolute_error: 0.0080 - val_loss: 9.8710e-05 - val_mean_absolute_error: 0.0061\n", + "Epoch 93/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.5173e-04 - mean_absolute_error: 0.0076 - val_loss: 1.1725e-04 - val_mean_absolute_error: 0.0073\n", + "Epoch 94/100\n", + "129/129 [==============================] - 1s 9ms/step - loss: 1.4090e-04 - mean_absolute_error: 0.0072 - val_loss: 1.1488e-04 - val_mean_absolute_error: 0.0070\n", + "Epoch 95/100\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "129/129 [==============================] - 1s 9ms/step - loss: 1.6117e-04 - mean_absolute_error: 0.0080 - val_loss: 9.9934e-05 - val_mean_absolute_error: 0.0062\n", + "Epoch 96/100\n", + "129/129 [==============================] - 1s 11ms/step - loss: 1.7090e-04 - mean_absolute_error: 0.0083 - val_loss: 9.9424e-05 - val_mean_absolute_error: 0.0061\n", + "Epoch 97/100\n", + "129/129 [==============================] - 2s 12ms/step - loss: 1.5922e-04 - mean_absolute_error: 0.0081 - val_loss: 1.6703e-04 - val_mean_absolute_error: 0.0100\n", + "Epoch 98/100\n", + "129/129 [==============================] - 1s 11ms/step - loss: 1.6878e-04 - mean_absolute_error: 0.0084 - val_loss: 2.5645e-04 - val_mean_absolute_error: 0.0134\n", + "Epoch 99/100\n", + "129/129 [==============================] - 1s 11ms/step - loss: 1.5760e-04 - mean_absolute_error: 0.0079 - val_loss: 1.0529e-04 - val_mean_absolute_error: 0.0062\n", + "Epoch 100/100\n", + "129/129 [==============================] - 1s 11ms/step - loss: 1.4099e-04 - mean_absolute_error: 0.0072 - val_loss: 2.0605e-04 - val_mean_absolute_error: 0.0111\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = Sequential([layers.Input((5, 1)),\n", + " layers.LSTM(64),\n", + " layers.Dense(32, activation='relu'),\n", + " layers.Dense(32, activation='relu'),\n", + " layers.Dense(1)])\n", + "\n", + "model.compile(loss='mse', \n", + " optimizer=Adam(learning_rate=0.001),\n", + " metrics=['mean_absolute_error'])\n", + "\n", + "model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "b157a2c4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "129/129 [==============================] - 2s 4ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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hb+5uLiY559/nkWLFtG/f38AWrduzfLly3n33XcZNGiQVstS1lzaoUMHNm/ezIsvvljpvZ977jmuvfZapk+frqWVPa8JCQno9Xqio6OrbOqbOXMmN954I3feeScAU6ZMYdWqVcycOZPBgwdr+ap67g8dOsRZZ53F2WefDVhr54QQDdj+pYEuQb3n8xqelJQUMjMzndIyMzOJiYmptF9EWFgYMTExTo+GpuyLsExeXh4PPPAAnTp1Ii4ujqioKLZv315tDU/37t217cjISGJiYjh+/Hil+SMiIrRgByA1NVXLn52dTWZmplYjAta1mnr37u3W39SsWTMiIyNp0qQJ+fn5fPPNN07LHTj+zXv27KGgoIBhw4YRFRWlPT799FP27t0LwPbt2+nXr5/TPcqCo8ps2LCBIUOGuFXeymzfvp2BAwc6pQ0cOJDt27c7pVX13N9xxx3MmTOHnj178tBDD2lBnxCiYVLzTwa6CPWez2t4+vfvX6EGYOHChdV+MdVUuEHPtqcD0xk63KCvPpObIiMjnfYfeOABFi5cyMyZM2nbti3h4eFcddVVTk1CrhgMBqd9RVGwWCwe5fdWU92ff/5JTEwMjRs3Jjo6usJxx785Ly8PsDZBNW3a1ClfWFhYjcvgz87HVT33F110EQcPHmTevHksXLiQIUOGcNdddzFz5ky/lU8IETxyT2fS8H7a+5fHNTx5eXls2LCBDRs2ANZh5xs2bNBqGqZOncr48eO1/Lfffjv79u3joYceYseOHbz99tt8+eWX3H///d75C8pRFIWI0JCAPHw52/OKFSu48cYbGTNmDN26dSMlJaVCB11fi42NJTk5mb///ltLM5vNrFu3zq3zW7VqRZs2bVwGO+V17tyZsLAwDh06RNu2bZ0eZc2bnTp1Ys2aNU7nrVq1qsrrdu/encWLF1d6PDQ0FLPZXOU1OnXqxIoVK5zSVqxYQefOnas8r7ykpCQmTJjAf//7X15//XXee+89j84XQtQfhuLK+1YK7/C4hueff/5x6qdQ1tdmwoQJzJ49m/T0dKdmllatWvHLL79w//338+9//5tmzZrxwQcfNNgh6TXVrl07vv32W0aNGoWiKDzxxBNV1tT4yt13382MGTNo27YtHTt25I033uDMmTNeD/aio6N54IEHuP/++7FYLJx77rlkZ2ezYsUKYmJimDBhArfffjuvvPIKDz74IJMmTWLt2rXVTmo5bdo0hgwZQps2bbj22msxmUzMmzePhx9+GLD2pVm2bBnXXnstYWFhLjsSP/jgg1xzzTWcddZZDB06lJ9++olvv/22wqi5qjz55JP07t2bLl26UFxczM8//0ynTp08eo6EEPVHuDk30EWo9zwOeC644IIqmzhcfeFccMEFrF+/3tNbCQevvvoqN910EwMGDCAxMZGHH344IMP1H374YTIyMhg/fjx6vZ5bb72VESNGVJhLxxueeeYZkpKSmDFjBvv27SMuLo5evXrx6KOPAtC8eXO++eYb7r//ft544w369u3L888/z0033VTpNS+44AK++uornnnmGV544QViYmI4//zzteNPP/00t912G23atKG4uNjle/3yyy/n3//+NzNnzuTee++lVatWfPzxx1xwwQVu/22hoaFMnTqVAwcOEB4eznnnncecOXPcf3KEEEJ4RFG9OZbaR3JycoiNjSU7O7tCB+aioiL2799Pq1atZCXoALBYLHTq1IlrrrmGZ555JtDFES7I/xEh6oCnHGa8fyo7cOXwsqq+v/0tKIeli+B18OBBfvvtNwYNGkRxcTFvvvkm+/fv57rrrgt00YQQom4y2QefnFajSPD3/VUVfNgHNVjIaunCIzqdjtmzZ9OnTx8GDhzI5s2bWbRokfQ/EUKImiqwD0nPVSP8e+9tP8CLLWCP+30Q6yqp4REeSUtLqzBCSQghRC3kVT43ms99aRtV/d8r61VTmitSwyOEEEIEksOkgwpB3622zpKARwghhAikfHsNj06RgMdXJOARQgghAin/hLYpNTy+IwGPEEIIEUgOfXh0EvD4jAQ8QgghRCA59OHR4f8Z9BsKCXiEEEKIQMqXGh5/kICnHmnZsiWvv/662/mXLFmCoihkZWX5rEyeeuqpp+jZs2egi+FVnr4uQogGxqEPDxLw+IwEPAGgKEqVj6eeeqpG1/3777+59dZb3c4/YMAA0tPTiY2NrT5zLZnNZl577TW6deuG0WgkPj6eiy66qF7N6TN79mzi4uIqpHv6ugghGpg8e8AjNTy+IxMPBkB6erq2PXfuXJ588kl27typpUVFRWnbqqpiNpsJCan+pUpKSvKoHKGhoaSkpHh0Tk2oqsq1117LokWLePnllxkyZAg5OTm89dZb2mKel19+uc/LUZnS0lIMBoPPru/p6yKEaEAsFqeZliXg8R2p4QmAlJQU7REbG4uiKNr+jh07iI6O5tdff6V3796EhYWxfPly9u7dy+jRo0lOTiYqKoo+ffqwaJHzVODlm04UReGDDz5gzJgxRERE0K5dO3788UftePkmrbIaigULFtCpUyeioqIYOXKkU4BmMpm45557iIuLo1GjRjz88MNMmDChyoDlyy+/5Ouvv+bTTz9l0qRJtGrVih49evDee+9x2WWXMWnSJPLz853Oeffdd0lLSyMiIoJrrrmG7Gz7DKBLliyhb9++REZGEhcXx8CBAzl48KB2/IcffqBXr14YjUZat27N9OnTMZlMTs/LO++8w2WXXUZkZCTPPPMMzZo145133nEqw/r169HpdNq1X331Vbp160ZkZCRpaWnceeed5OXlaWWaOHEi2dnZFWrqyr8uhw4dYvTo0URFRRETE8M111xDZmamdrysWe+zzz6jZcuWxMbGcu2115Kbm6vl+frrr+nWrRvh4eE0atSIoUOHVngOhRB1QFEWWOyfT37ttOywhldDUP8CHlWFkvzAPLy48PwjjzzCCy+8wPbt2+nevTt5eXlcfPHFLF68mPXr1zNy5EhGjRrFoUOHqrzO9OnTueaaa9i0aRMXX3wx119/PadPn640f0FBATNnzuSzzz5j2bJlHDp0iAceeEA7/uKLL/L555/z8ccfs2LFCnJycvj++++rLMMXX3xB+/btGTVqVIVj//d//8epU6dYuHChlrZnzx6+/PJLfvrpJ+bPn8/69eu58847AWvAdfnllzNo0CA2bdrEypUrufXWW1FsC9/9+eefjB8/nnvvvZdt27bx7rvvMnv2bJ577jmn+z711FOMGTOGzZs3M2nSJMaNG8cXX3zhlOfzzz9n4MCBtGjRArCuI/af//yHrVu38sknn/D777/z0EMPAdbmwddff52YmBjS09NJT093et7KWCwWRo8ezenTp1m6dCkLFy5k3759jB071inf3r17+f777/n555/5+eefWbp0KS+88AJgrSEcN24cN910E9u3b2fJkiVcccUVqF58/wkh/MSp/46f5+FRG9aIsPrXpFVaAM83Ccy9Hz0GoZFeudTTTz/NsGHDtP2EhAR69Oih7T/zzDN89913/Pjjj0yePLnS69x4442MGzcOgOeff57//Oc/rFmzhpEjR7rMX1payqxZs2jTpg0AkydP5umnn9aOv/HGG0ydOpUxY8YA8OabbzJv3rwq/5Zdu3ZVurhoWfquXbu0tKKiIj799FOaNm2q3fOSSy7hlVdeITQ0lOzsbC699FKtjI7Xnj59Oo888ggTJkwAoHXr1jzzzDM89NBDTJs2Tct33XXXMXHiRG3/+uuv55VXXuHQoUM0b94ci8XCnDlzePzxx7U89913n7bdsmVLnn32WW6//XbefvttQkNDnWrrKrN48WI2b97M/v37SUtLA+DTTz+lS5cu/P333/Tp0wewBkazZ88mOjoagBtuuIHFixfz3HPPkZ6ejslk4oorrtCCsW7dulV6TyFEELMFPGZ06LH4uUmr3L0KsyA8zo/396/6V8NTT5x99tlO+3l5eTzwwAN06tSJuLg4oqKi2L59e7U1PN27d9e2IyMjiYmJ4fjxyheqi4iI0AIJgNTUVC1/dnY2mZmZ9O3bVzuu1+vp3bt3tX+PJ7UPzZs314IdgP79+2OxWNi5cycJCQnceOONjBgxglGjRvHvf//bqclt48aNPP3000RFRWmPW265hfT0dAoKCrR85Z/fnj170qlTJ62WZ+nSpRw/fpyrr75ay7No0SKGDBlC06ZNiY6O5oYbbuDUqVNO163O9u3bSUtL04IdgM6dOxMXF8f27du1tJYtW2rBDji/Dj169GDIkCF069aNq6++mvfff58zZ864XQYhRBCxTTqYpUsAXNTw5KTDW/1g1Szv37v857KpyPv3CCL1r4bHEGGtaQnUvb0kMtK5puiBBx5g4cKFzJw5k7Zt2xIeHs5VV11FSUnVbbDlO+MqioLFUnk1pqv8tW0qad++vdOXuaOy9Pbt27t9vY8//ph77rmH+fPnM3fuXB5//HEWLlzIOeecQ15eHtOnT+eKK66ocJ7RaNS2yz+/YK3l+eKLL3jkkUf44osvGDlyJI0aNQLgwIEDXHrppdxxxx0899xzJCQksHz5cm6++WZKSkqIiPDeaw9Vv256vZ6FCxfy119/8dtvv/HGG2/w2GOPsXr1alq1auXVcgghfMw26WCWPoFGlpPoUFFVVWum539j4cQOmP8wnHO7l29ePuAp9vL1g0v9q+FRFGuzUiAeZW9QH1ixYgU33ngjY8aMoVu3bqSkpHDgwAGf3c+V2NhYkpOT+fvvv7U0s9nMunXrqjzv2muvZffu3fz0008Vjr3yyis0atTIqfnu0KFDHDtmD1pXrVqFTqejQ4cOWtpZZ53F1KlT+euvv+jatatWM9OrVy927txJ27ZtKzx0uqrf7tdddx1btmxh7dq1fP3111x//fXasbVr12KxWHjllVc455xzaN++vVMZwTrqzWw2V3mPTp06cfjwYQ4fPqylbdu2jaysLDp37lzluY4URWHgwIFMnz6d9evXExoaynfffef2+UKIIGGbdDBbb63hCVdKnCte0jf67t7lf8zW8z499a+Gp55q164d3377LaNGjUJRFJ544okqa2p85e6772bGjBm0bduWjh078sYbb3DmzBn7rxEXrr32Wr766ismTJhQYVj6jz/+yFdffeVU42I0GpkwYQIzZ84kJyeHe+65h2uuuYaUlBT279+vje5q0qQJO3fuZPfu3YwfPx6AJ598kksvvZTmzZtz1VVXodPp2LhxI1u2bOHZZ5+t8m9r2bIlAwYM4Oabb8ZsNnPZZZdpx9q2bUtpaSlvvPEGo0aNYsWKFcyaNavC+Xl5eSxevJgePXoQERFRoeZn6NChdOvWjeuvv57XX38dk8nEnXfeyaBBgyo0s1Vm9erVLF68mOHDh9O4cWNWr17NiRMnKu0nJYQIYrY+PCbFXqtrMRWjCzVWdob3lA9w6nnAU/9qeOqpV199lfj4eAYMGMCoUaMYMWIEvXr18ns5Hn74YcaNG8f48ePp378/UVFRjBgxwqm5qDxFUfjyyy959NFHee211+jQoQPnnXceBw8eZMmSJRWGtLdt25YrrriCiy++mOHDh9O9e3fefvttwNrHaMeOHVx55ZW0b9+eW2+9lbvuuovbbrsNgBEjRvDzzz/z22+/0adPH8455xxee+01rXNvda6//no2btzImDFjCA8P19J79OjBq6++yosvvkjXrl35/PPPmTFjhtO5AwYM4Pbbb2fs2LEkJSXx0ksvuXwufvjhB+Lj4zn//PMZOnQorVu3Zu7cuW6VDyAmJoZly5Zx8cUX0759ex5//HFeeeUVLrroIrevIYQIErZJB0t09s9Qi6nUTzcvV8PjMDy+PlLUOjCWNScnh9jYWLKzs4mJiXE6VlRUxP79+2nVqlWVX7rCNywWC506deKaa67hmWeeCXRxhAvyf0SIIPbBMDiyhp9jxnJpjvWHT/FDhwiLiAWLGZ5OsOd9KruS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uHEj48aNIy0tjfDwcDp16sS///1vp2t8++23DBs2jKSkJGJiYujfvz8LFiyotnzffvstw4cPp1GjRiiKwoYNG5yOnz59mrvvvpsOHToQHh5O8+bNueeee8jOzq722ps2beK8887DaDSSlpbGSy+95HR869atXHnllbRs2RJFUXj99dcrvVZDfR6Lioq48cYb6datGyEhIVx++eUV8ixZsgRFUSo8MjIyqi13TfjrtVi+fDkDBw6kUaNGhIeH07FjR1577bVqy6eqKk8++SSpqamEh4czdOhQdu/e7ZTnueeeY8CAAURERBAXF+f2314X39PB9jzKe9r7r8WBAwe4+eabadWqFeHh4bRp04Zp06ZRUlJS7bWXLFlCr169CAsLo23btsyePdvp+LJlyxg1ahRNmjRBURS+//77Sq/VUJ/H9PR0rrvuOtq3b49Op+O+++6rkGf27NkV3s9Go7HaMpcX1AHP0qVLueuuu1i1ahULFy6ktLSU4cOHk5+fr+W5//77+emnn/jqq69YunQpx44d44orrtCOr127lsaNG/Pf//6XrVu38thjjzF16lTefPNNLc+yZcsYNmwY8+bNY+3atQwePJhRo0axfv36KsuXn5/Pueeey4svvujy+LFjxzh27BgzZ85ky5YtzJ49m/nz53PzzTdXed2cnByGDx9OixYtWLt2LS+//DJPPfUU7733npanoKCA1q1b88ILL5CSkiLPowtms5nw8HDuuecehg4dWmXenTt3kp6erj0aN25cZf6a8tdrERkZyeTJk1m2bBnbt2/n8ccf5/HHH3d6D7ny0ksv8Z///IdZs2axevVqIiMjGTFiBEVFRVqekpISrr76au644w63/+66+p4OtudR3tPefy127NiBxWLh3XffZevWrbz22mvMmjWLRx99tMrr7t+/n0suuYTBgwezYcMG7rvvPiZNmuT0Iy8/P58ePXrw1ltvyfNYieLiYpKSknj88cfp0aNHpfliYmKc3s8HDx6s8rouqXXI8ePHVUBdunSpqqqqmpWVpRoMBvWrr77S8mzfvl0F1JUrV1Z6nTvvvFMdPHhwlffq3LmzOn36dLfKtX//fhVQ169fX23eL7/8Ug0NDVVLS0srzfP222+r8fHxanFxsZb28MMPqx06dHCZv0WLFuprr73mVllVteE8j44mTJigjh49ukL6H3/8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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "train_predictions = model.predict(X_train).flatten()\n", + "\n", + "plt.plot(dates_train, train_predictions)\n", + "plt.plot(dates_train, y_train)\n", + "plt.legend(['Training Predictions', 'Training Observations'])" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "92d9d70d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "17/17 [==============================] - 0s 5ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAGdCAYAAAD+JxxnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB2M0lEQVR4nO3dd3hUZd7G8e+ZyaQ3ShJa6ISiCEgTUUBBwYKiqKgIFtTVBRW7LCqiq64FFhUsq4KvBcEC6qoLIoKiVEERpPcivYWE1Jnz/nGSSSaZNDLJTJL7c13nysyZU34ZJsnNc57zPIZpmiYiIiIiNZDN3wWIiIiI+IuCkIiIiNRYCkIiIiJSYykIiYiISI2lICQiIiI1loKQiIiI1FgKQiIiIlJjKQiJiIhIjRXk7wJKw+Vy8ddffxEVFYVhGP4uR0RERErBNE1OnjxJgwYNsNkCs+2lSgShv/76i8TERH+XISIiIqdh9+7dNGrUyN9leFUlglBUVBRgvZHR0dF+rkZERERKIzk5mcTERPff8UBUJYJQ7uWw6OhoBSEREZEqJpC7tQTmBTsRERGRSqAgJCIiIjWWgpCIiIjUWFWij5CIiK+Ypkl2djZOp9PfpYhUeXa7naCgoIDuA1QSBSERqTEyMzPZt28fp06d8ncpItVGeHg49evXJzg42N+lnBYFIRGpEVwuF9u3b8dut9OgQQOCg4Or9P9iRfzNNE0yMzM5dOgQ27dvp1WrVgE7aGJxFIREpEbIzMzE5XKRmJhIeHi4v8sRqRbCwsJwOBzs3LmTzMxMQkND/V1SmVW96CYiUg5V8X+sIoGsqv9MVe3qRURERMpBQUhERERqLAUhEZFqrk+fPowePdr9vGnTpkyaNKnYfQzD4Isvvij3uX11nEDx3nvvERsb637+1FNP0bFjx3Id0xfHkNOnICQiEqAGDhzIgAEDvL62aNEiDMPgjz/+KPNxV6xYwZ133lne8jwU9cd83759XHLJJT49V0HvvfcehmFgGAY2m41GjRpx6623cvDgwQo9L8BDDz3E/PnzS729t2BY1mOIb+musUCzaykcWAtdRoBu7RWp0UaMGMHgwYPZs2cPjRo18nht2rRpdOnShbPOOqvMx42Li/NViSWqV69epZwnOjqajRs34nK5WL16Nbfeeit//fUXc+fOLbSt0+l0h6byioyMJDIy0u/HkNOnFqFAM7U/fPMgbP3B35WIVGumaXIqM9svi2maparx8ssvJy4ujvfee89jfUpKCp9++ikjRozgyJEj3HDDDTRs2JDw8HDat2/Pxx9/XOxxC14a27x5M7169SI0NJR27doxb968Qvs8+uijJCUlER4eTvPmzXniiSfIysoCrBaZ8ePHs3r1anfLTG7NBVtA1qxZw4UXXkhYWBh16tThzjvvJCUlxf36LbfcwqBBg3j55ZepX78+derUYeTIke5zFcUwDOrVq0eDBg245JJLuPfee/n+++9JS0tzX8766quvaNeuHSEhIezatYuMjAweeughGjZsSEREBN27d2fhwoUex33vvfdo3Lgx4eHhXHXVVRw5csTjdW8tYVOnTuWMM84gJCSE+vXrM2rUKPf7DnDVVVdhGIb7ecFjuFwunn76aRo1akRISAgdO3Zkzpw57td37NiBYRjMmjWLCy64gPDwcDp06MCSJUvc2+zcuZOBAwdSq1YtIiIiOOOMM/j222+LfQ9rKrUIBaqj24C+/q5CpNpKy3LS7snCrQWVYd3T/QkPLvnXb1BQEMOHD+e9995j7Nix7gEgP/30U5xOJzfccAMpKSl07tyZRx99lOjoaL755huGDRtGixYt6NatW4nncLlcXH311SQkJLBs2TJOnDjh0Z8oV1RUFO+99x4NGjRgzZo13HHHHURFRfHII48wZMgQ1q5dy5w5c/j+++8BiImJKXSM1NRU+vfvT48ePVixYgUHDx7k9ttvZ9SoUR5hb8GCBdSvX58FCxawZcsWhgwZQseOHbnjjjtK/H5yhYWF4XK5yM7OBuDUqVO88MILvPPOO9SpU4f4+HhGjRrFunXrmDFjBg0aNGD27NkMGDCANWvW0KpVK5YtW8aIESN4/vnnGTRoEHPmzGHcuHHFnveNN97ggQce4F//+heXXHIJJ06c4JdffgGsS5Lx8fFMmzaNAQMGYLfbvR7jlVdeYcKECbz11lt06tSJqVOncsUVV/Dnn3/SqlUr93Zjx47l5ZdfplWrVowdO5YbbriBLVu2EBQUxMiRI8nMzOSnn34iIiKCdevWqdWpCApCIiIB7LbbbuOll17ixx9/pE+fPoB1WWzw4MHExMQQExPDQw895N7+nnvuYe7cuXzyySelCkLff/89GzZsYO7cuTRo0ACA5557rlC/nscff9z9uGnTpjz00EPMmDGDRx55hLCwMCIjIwkKCir2Utj06dNJT0/n/fffJyIiAoDJkyczcOBAXnjhBRISEgCoVasWkydPxm6306ZNGy677DLmz59f6iC0efNm3nzzTbp06UJUVBQAWVlZvP7663To0AGAXbt2MW3aNHbt2uX+vh966CHmzJnDtGnTeO6553jllVcYMGAAjzzyCABJSUksXrzYo3WmoH/+8588+OCD3Hfffe51Xbt2BfIuScbGxhb7Pr388ss8+uijXH/99QC88MILLFiwgEmTJjFlyhT3dg899BCXXXYZAOPHj+eMM85gy5YttGnThl27djF48GDat28PQPPmzUv13tVECkKBSv2DRCpUmMPOuqf7++3cpdWmTRvOPfdcpk6dSp8+fdiyZQuLFi3i6aefBqz+Ls899xyffPIJe/fuJTMzk4yMjFKPnr1+/XoSExPdYQCgR48ehbabOXMmr776Klu3biUlJYXs7Gyio6NL/X3knqtDhw7uEATQs2dPXC4XGzdudAehM844w6O1pH79+qxZs6bYY584cYLIyEhcLhfp6emcd955vPPOO+7Xg4ODPfpTrVmzBqfTSVJSksdxMjIyqFOnjrveq666yuP1Hj16FBmEDh48yF9//UXfvqffmp+cnMxff/1Fz549Pdb37NmT1atXe6zL//3Ur1/fXUObNm249957ufvuu/nuu+/o168fgwcPPq3+ZDWBglDAUhASqUiGYZTq8lQgGDFiBPfccw9Tpkxh2rRptGjRgt69ewPw0ksv8corrzBp0iTat29PREQEo0ePJjMz02fnX7JkCUOHDmX8+PH079+fmJgYZsyYwYQJE3x2jvwcDofHc8MwcLlcxe4TFRXFqlWrsNls1K9fn7CwMI/Xw8LCPOaWS0lJwW63s3LlykKXqE73ElLBc1a0/O9T7veW+z7dfvvt9O/fn2+++YbvvvuO559/ngkTJnDPPfdUao1VgTpLByq1CIlIjuuuuw6bzcb06dN5//33ue2229x/+H755ReuvPJKbrrpJjp06EDz5s3ZtGlTqY/dtm1bdu/ezb59+9zrli5d6rHN4sWLadKkCWPHjqVLly60atWKnTt3emwTHByM0+ks8VyrV68mNTXVve6XX37BZrPRunXrUtfsjc1mo2XLljRv3rxUgaRTp044nU4OHjxIy5YtPZbcy1Zt27Zl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Otdffz3Tp09nyJAhBAVZf4YD6T2Oiopi1apVLFy4kO+++44nn3ySp556ihUrVhAbG1sh9fiTWoQCSf4WoYKXxv6YCf+9t4j9NO2GSJkZhnV5yh9LKfoH5Xfddddhs9mYPn0677//Prfddpu7v9Avv/zClVdeyU033USHDh1o3rw5mzZtKvWx27Zty+7du9m3b597XcG7rBYvXkyTJk0YO3YsXbp0oVWrVuzcudNjm+DgYJzO4geFbdu2LatXr/boePzLL79gs9lo3bp1qWsu6Prrr+f7779n9erVHutdLhf//ve/adeunUf/odWrV5OWluZ+vnTpUiIjI0lMTASsUNCzZ0/Gjx/Pb7/9RnBwMLNnzyYhIYEGDRqwbds2WrZs6bE0a9asxDqHDh3KnDlz+PPPP/nhhx8YOnSo+7VAe4+DgoLo168fL774In/88Qc7duzghx9+KPX+VYmCUCAp7tLY8reL3q80U3OISJUVGRnJkCFDGDNmDPv27eOWW25xv9aqVSt3C8b69ev529/+xoEDXm6sKEK/fv1ISkri5ptvZvXq1SxatIixY8d6bNOqVSt27drFjBkz2Lp1K6+++qpH3xaw+rRs376d33//ncOHD5ORkVHoXEOHDiU0NJSbb76ZtWvXsmDBAu655x6GDRvm7rtyOu6//366devGwIED+fTTT9m1axcrVqxg8ODBrF+/nnfffdcdHAEyMzMZMWIE69at49tvv2XcuHGMGjUKm83GsmXLeO655/j111/ZtWsXs2bN4tChQ+6+RuPHj+f555/n1VdfZdOmTaxZs4Zp06YxceLEEuvs1asX9erVY+jQoTRr1syjVSmQ3uOvv/6aV199ld9//52dO3fy/vvv43K5yhVWA5mCUCAx87cIFbg0Vlz/oFJNzSEiVdmIESM4duwY/fv39+jP8/jjj3P22WfTv39/+vTpQ7169co0crLNZmP27NmkpaXRrVs3br/9dp599lmPba644gruv/9+Ro0aRceOHVm8eDFPPPGExzaDBw9mwIABXHDBBcTFxXm9hT88PJy5c+dy9OhRunbtyjXXXEPfvn2ZPHly2d6MAkJDQ/nhhx8YPnw4//jHP2jZsiUDBgzAbrezdOlSzjnnHI/t+/btS6tWrejVqxdDhgzhiiuu4KmnngIgOjqan376iUsvvZSkpCQef/xxJkyY4O48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NcNut2MYBg6Hg969e5Oenh6w73VWVhYjRoxwfz5sNhuJiYl+/XmcNWsW55xzDiEhIdhsNmw2G40bNy70fj/wwAMedTdt2tSvP48TJ06kXr167n//sLAw7r77bo9zT548mdq1a2Oz2TAMg0aNGgX8e/3888/Tpk0b7HY7NpsNu91O8+bNA77uN954gxYtWrj/PXzx2c61Y8cORowYQbNmzTw+I5mZmcUed9asWVx00UXExcURHR1Njx49mDt3bpHb/+tf/8IwDEaPHl1izQW/Ab/r37+/OW3aNHPt2rXm77//bl566aVm48aNzZSUFPc2d911l5mYmGjOnz/f/PXXX81zzjnHPPfcc92vv/vuu+a9995rLly40Ny6dav5wQcfmGFhYeZrr73m3mbVqlXm9OnTzbVr15rbt283P/jgAzM8PNx86623iq3vX//6lxkTE2N+8cUX5urVq80rrrjCbNasmXnRRReZ06ZNM998803ziiuuMLt162Y2aNDAnDlzphkfH28++OCDxda9fft2s2/fvuZFF11ktmzZ0rzllluKrPuVV14x4+Pjza5du5pnn312wNc9bdo0MyIiwnz99dfNhQsXmsuXLzcnT5582nWHhYWZ//nPf8y1a9eaU6ZMMRs1amTGx8eba9asMb/88kszPj7e7NChQ7GfkRdeeMHs0KGDOWbMGLNt27Zm//79C73Xy5YtM5s1a2aef/755qeffmpOnDjRDA0NNR9//PGAfa+PHDlifvfdd+73eu7cuaZhGGZwcHBAv9fPPvusGRQUZL7wwgvmokWLzEceecQ0DMPs27dvwL7XjzzyiBkXF2c+/PDD5v/+9z/zmWeeMR0OhxkaGuq3n8f77rvPvOaaa8whQ4aYH374oXnXXXeZdrvdDA0Nddc9Y8YMMygoyLzzzjvNL7/80rz++uvN8PBwMywszG+fkX79+pk9e/Y033zzTfP77783Bw4caALmI4884t7mtddeMwcNGmROmjTJBMz77rvPr7/7SvNe9+/f33zqqafMF1980fzss8/MPn36mHXq1An4ur/66ivz1VdfNSdOnGh+/fXX5t///nfTbref9mekWbNmZlpammmapvm///3PvOWWW8y5c+eaW7dudX9GHnzwwWKPe99995kvvPCCuXz5cnPTpk3mmDFjTIfDYa5atarQtsuXLzebNm1qnnXW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SooZHR1tTpo0yTTN8n+2K/q9Pu+888yHHnrIY93gwYNNwzBMp9MZ0O91WlqauWfPHtPlcrk7UPv798jHH39shoSEmLGxsR51Z2RkmHa73Zw9e7bHuYcPH262adPG75+Rl156yQTM6667zut7nYucPkKB8Du7qPc6v4J/z6pK3fn17dvX7NKlS7nrzpX/M+J0Oj1ey3/cAwcOeLz28ccfm2FhYebXX3/tsX727NmF/kYCpmEYpt1uN7Ozs0v8Hk0zQDpLu1wuc+TIkWaDBg3MTZs2FXo9t7P0Z5995l63YcOGQh3B1q5da8bHx5sPP/xwqc89fvx4s0mTJsXWVq9ePfPll192rztx4oQZEhJiTp8+3V33Tz/9ZLZq1cq8/vrr3W9+Wep2OBxm586dPc6dlpZmrlmzxmO58sorzQsvvND8+9//HrB1e5OdnW22bt3a7NGjx2nVHRwcbF588cXuz8iePXs86i7rZ6RRo0ZeO9SNGTPGbNKkiccP6YABA0y73V7mmiv7vZ42bZoZEhJiHj582DTN0/9sV9Z7ffbZZ3vcIWSaVlg2DKPIX2CB8l7nyszMNFu0aGGef/75fv15nD59uhkcHGzGxMR4/f3XrVs3c9SoUe7nTqfTbNiwodmvXz+/fkZefPFFEzAHDRpUZA25coOQv39nl/ReF/X3LNDr9uaCCy4wO3bseNp15+8sXfAzUlrTp083Q0NDzS+++KLQa8nJyYX+Rnbp0sW86aabzDVr1pT6HAERhO6++24zJibGXLhwoblv3z73curUKfc2d911l9m4cWPzhx9+MH/99VezR48eZo8ePdyvr1mzxoyLizNvuukmj2McPHjQvc3kyZPNr776yty0aZO5adMm85133jGjoqLMsWPHFlvfv/71LzM2Ntb88ssvzT/++MO88sorzWbNmpl33nmnGRMTY3766adm06ZNzfPOO89ctWqVuW3bNvf5S6r7008/NWvVqmXWrl3bvOqqq8x58+aZCxcuLLLuq666yuzYsWPA1z1+/Hhz5MiR5n/+8x9z9uzZ5mWXXWYGBQWZERERp1V3VFSU+zOyatUqd92bN2921zx8+PASPyO1atUyL7vsMvOss85y171o0SL3Ns8884wZFhZm3nTTTebcuXPNe++91zQMw+zdu3fAvte5n5G2bdual156abk/25X1Xl9yySVmWFiYOXHiRHP+/Pnm/fffbxqGYbZt2zZg3+ulS5eat99+u/mf//zH/Oijj8xzzjnHrFu3rl9/Hj/66CPTbrebkZGR5uDBg83Vq1ebq1evNjdu3OiuO/f2+fvuu8/89ttvzSFDhphhYWFmZGSk3z4j//rXv0zA7Nq1q7vm1atXm1u2bHFvM2HCBHPSpEnmF1984W41ioiI8Ah1gfZe33333WZoaKj53HPPmb/88ov5yy+/mBMmTAj4z8hjjz1mjh492nz77bfN//73v+add95pAmZ4ePhp1517+/yePXvMli1bmn379jX37Nnj8Te6OB999JEZFBRkTpkyxWOf48ePF7nP6dw1FhBBCPC6TJs2zb1NWlqa+fe//92sVauWGR4ebl511VUeb+K4ceO8HiN/kn311VfNM844wwwPDzejo6PNTp06ma+//nqhJrqCXC6X+cQTT5gJCQlmSEiI2bdvX3Pjxo1F1p1/KanuovYrqm6Hw2HGxMQEfN2jR482a9WqZRqGYQJmUFCQ2aZNm9OuuzQ1A6f1Gcnf2vPqq6+azZo1M202mwmYwcHB5hVXXOFxO32gvdemaZpjx441ATMkJKTcn+3Keq///e9/m3Fxce7PiMPhMHv16mUeOXIkYN/rhQsXmgkJCR41n3nmmX79eezdu3epPiPXXHON6XA43P8OSUlJfv2MNGnSxOs+ERER7m3uuecer9sMHz48YN/rol73djkokOq+7bbbPH5n2+12s2XLluX6bOeaNm1akecvTlF133zzzcXuU9YgZJimaSIiIiJSAwXcXWMiIiIilUVBSERERGosBSERERGpsRSEREREpMZSEBIREZEaS0FIREREaiwFIREREamxFIRERESkxlIQEhERkRpLQUhERERqLAUhERERqbEUhERERKTG+n/DZcHV4NnGoAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "val_predictions = model.predict(X_val).flatten()\n", + "\n", + "plt.plot(dates_val, val_predictions)\n", + "plt.plot(dates_val, y_val)\n", + "plt.legend(['Validation Predictions', 'Validation Observations'])" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "f80d5921", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "17/17 [==============================] - 0s 4ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABbgAAAKTCAYAAADbkG5ZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5hc5X3+//ucqdvVu0AgIXqVBAhswIAREMeNJNixTTVOHOQ48Eti4yT21yXgBLfEIcHGCHCLiW1ssI0FmGYwwkiiNwlJCElIq65dbZt2zu+P58ycM7uzZbZNe7+uS9eenTM7+0hbNHPPZ+7Hcl3XFQAAAAAAAAAAFcYu9QIAAAAAAAAAABgOAm4AAAAAAAAAQEUi4AYAAAAAAAAAVCQCbgAAAAAAAABARSLgBgAAAAAAAABUJAJuAAAAAAAAAEBFIuAGAAAAAAAAAFSkcKkXMF4cx9H27dvV1NQky7JKvRwAAAAAAAAAQAGu6+rgwYOaNWuWbHvgGe2aCbi3b9+uuXPnlnoZAAAAAAAAAIAh2Lp1q+bMmTPgdWom4G5qapJk/lGam5tLvBoAAAAAAAAAQCHt7e2aO3duLtMdSM0E3NlakubmZgJuAAAAAAAAAChzQ6maZpNJAAAAAAAAAEBFIuAGAAAAAAAAAFQkAm4AAAAAAAAAQEUi4AYAAAAAAAAAVCQCbgAAAAAAAABARSLgBgAAAAAAAABUJAJuAAAAAAAAAEBFIuAGAAAAAAAAAFQkAm4AAAAAAAAAQEUi4AYAAAAAAAAAVCQCbgAAAAAAAABARSLgBgAAAAAAAABUJAJuAAAAAAAAAEBFIuAGAAAAAAAAAFQkAm4AAAAAAAAAQEUi4AYAAAAAAAAAVCQCbgAAAAAAAABARSLgBgAAAAAAAABUJAJuAAAAAAAAAEBFIuAGAAAAAAAAAFQkAm4AAAAAAAAAQEUi4AYAAAAAAAAAVCQCbgAAAAAAAABARSLgBgAAAAAAAABUJAJuAAAAAAAAABhvr/1K+vk1UqKj1CupaOFSLwAAAAAAAAAAas7dHzVvZxwvnfm3pV1LBWOCGwAAAAAAAABKJdVV6hVUNAJuAAAAAAAAABhPqR7/uGFq6dZRBQi4AQAAAAAAAGC87NskfeNo//1oY+nWUgUIuAEAAAAAAABgvPz6eql7n/++kyrdWqoAATcAAAAAAAAAjJe2rfnvZwi4R4KAGwAAAAAAAADGSyaZ/76TLs06qgQBNwAAAAAAAACMl0yvQJuAe0QIuDF8z/1Q+s7Z0vP/W+qVAAAAAAAAAOWh+4DUvb//8707t6koGRECbgzfr6+Xdjwv/epvS70SAAAAAAAAoPQyKenfDpX+bV7h4Np1pZ72/MvYZHJECLgxfJmE9zY58PUAAAAAAACAWtC11z9OHOx7PnHQz9SynMzYrqnKEXBjdLhuqVcAAAAAAAAAlFa6Z+DzXXv846ZZ5i0VJSNCwI3hC9f5x8nO0q0DAAAAAAAAKAepQMBdaPPITm/Cu+UQ6Zj3edcj4B4JAm4Mnx3yj4MvvwAAAAAAAABqUXAItNBkdnaCu2GyFAqb40JBOIaMgBvDlw70BXXvK906AAAAAAAAgHKQ7PCPC05wZwPuqZIdMccZAu6RIODG8DhO/ssnugi4AQAAAAAAUOOCE9y9A+59m6T7lpvj+smSnZ3gpqJkJMKlXgAqVO/dXnsOlGQZAAAAAAAAQNnIC7gz+ed+eIl/HG+RQtkJ7l4B9+510qbHpe79UtMMadHlY7PWKkHAjeFJ9wq4U92lWQcAAAAAAABQLlLBgLtXcL1vk38cbQhMcPcKwm851T+eeBgB9yCoKMHwZJL57xNwAwAAAAAAoNYNVFESFG30J7gHqiiJN4/OuqoYE9wYHia4AQAAAAAAgHzFBNyuN7kdrCjpXVcSI+AeDBPcGB4CbgAAAAAAACBfssM/zgwUcAcrSgLX69qXfz0C7kERcGN4em8ymeoqzToAAAAAAACAcjHkCe4GJd2QJGnr3nb/8q49+deLNY3i4qoTATeGp/cEd7qnNOsAAAAAAAAAykURFSVPbDogSdqwY79/eefu/OvRwT0oAm4MT59NJpngBgAAAAAAQI0LVpQMMsG9rc30bYeV8S/vZIK7WATcGJ7eE9t0cAMAAAAAAKDWDXGC+z+f3KHVWw5Kkk60N0n3Xiu1b5e69uZfkQ7uQYVLvQBUqHT+BHdHR4caS7QUAAAAAAAAoCwkAy0HTlpyXem5H0gzT8y72j0v79ORlungbra6pOd+KB3YKs09Lf/2mOAeFAE3hqfXJpObW/fouBItBQAAAAAAACgLvSe4t62W7vtUn6ul3LDSXsCd0/qSNHl+/mVMcA+KihIMT69NJm02mQQAAAAAAECtC3ZwZ1JS+9sFr7ZTE5VRr4Bbbt8O7kmHj+76qhABN4an1yaTYYeAGwAAAAAAADUub4I7I3Xv73OV1z+yWmmFFQpH8k+4Tn4Hd8M0afYpY7TQ6kHAjeHxJrbb3XpJUoSAGwAAAAAAAJXssa9K3zlLShwc/m0EA+5ffEJ65nt9rrIzVSdJmtDYkH/CDUxwn/cFaflqybKGv5YaQcCN4fE2mTzgmh/EmJsY6NoAAAAAAABAeXvsJmnHC9Lz/zu8j3ccKdWZf9muV/Lft2zt9vahbOoTcAcmuI+4QKqbMLx11BgCbgyPt8nkXrVIkhrVOdC1AQAAAAAAgMow3KnpVNfg14k2ak+nGRxtbGjMP+e6udYEReuHt4YaRMCN4fEmuHe5EyRJzeo0vUIAAAAAAABApXEc/zja0P/1BpIcwgBotFF7DprB0cbG3gF3Rkp7LQmh2PDWUIMIuDE83rNJu92W3EWpzr6l+QAAAAAAAEDZS3b4x8MNuLv2DH6dWKN2d5gQu7l3RYmTlpyUOQ5Fh7eGGkTAjeHxKko6FddB1xTjJw4O4YcYAAAAAAAAKDc9bf6xHR7ebbRvH/w60Qbt8QLulqam/HNO2j8OE3APFQE3hserKEkqojaZZ5sSB/eVckUAAAAAAADA8CTa/eNg0FyMtm2DXyfaqD0HTa42obm536t99aFNenrT3uGto8YQcGN4vAnupBvWAdf0BaU7CLgBAAAAAABQgXoCAXcmNbzbaH978OvEmnIT3JNamvq92nf+sE0f+u7Tw1tHjSHgxvB4hfdJRXTANRPc6U6eVQIAAAAAAEAFClaUOJnh3cYQKkoykQbt7TQT3NMmFA64MwrJJbYdMv6lMDxewJ1QRAdkJrgzBNwAAAAAAACoRKNRUZI4aN64vTq84y25w06ZveziEVuTGmMFbyZjR3LHybQzvLXUEAJuDE/G7+De7U6QJNkdO0u4IAAAAAAAAGCYkh3+8XADbq/apEe9NohsmJY7POiYUHv2hDpZllX4Ziz/43e29wxvLTVkWAH3Lbfconnz5ikej+u0007TM888M+D1Dxw4oGuvvVYzZ85ULBbTwoULdf/99+fO33TTTVqyZImampo0bdo0vf/979e6devybuOcc86RZVl5f/76r/96OMvHaMhVlIS1050oSbI7Wku5IgAAAAAAAGB4UoEgebgBt9NPwD3liNzhju1bJEmzJtT1ezNpy5/g3tFGwD2YogPuu+++W9dff72+8IUv6Nlnn9WJJ56oZcuWadeuXQWvn0wm9e53v1ubN2/Wz372M61bt0633XabZs+enbvO448/rmuvvVZPP/20HnroIaVSKV1wwQXq7OzMu61rrrlGO3bsyP3593//92KXj9GS22Qyol3eBHekiwluAAAAAAAAVKB0MOAeZge3N8Hd7faqHpm8QGqcLkn6v92HSJLmTOw/4E7JrzjZ0dY9vLXUkPDgV8n3jW98Q9dcc42uvPJKSdKtt96q3/zmN1qxYoU++9nP9rn+ihUrtG/fPj311FOKRMyzD/Pmzcu7zsqVK/Pev/POOzVt2jStXbtWZ511Vu7y+vp6zZgxo9glYywEOrj3yhTiT929SnJdqZ+XVwAAAAAAAABlKS/gTg3vNrzJ7z1q0TwFBkFDUenaZ9T9ym/0y581SJI+efaCfm8mmRdwM8E9mKImuJPJpNauXavzzz/fvwHb1vnnn69Vq1YV/Jj77rtPS5cu1bXXXqvp06fruOOO04033qhMpv9nQtrazK6lkyZNyrv8Rz/6kaZMmaLjjjtON9xwg7q6uvq9jUQiofb29rw/GEW5gNuvKJEkrf5eiRYEAAAAAAAADFMqMCk9wg7u9c6c/MtDEalugg4uvERJRWRb0txJ/U9wBzepbCXgHlRRE9x79uxRJpPR9OnT8y6fPn26Xn/99YIfs2nTJj3yyCP6yEc+ovvvv18bNmzQ3/zN3yiVSukLX/hCn+s7jqO/+7u/05lnnqnjjjsud/lf/uVf6tBDD9WsWbP04osv6jOf+YzWrVune+65p+Dnvemmm/TFL36xmL8eihHYZHKjO0sbnZmab++QVt0iLb5astm/FAAAAAAAABXCG+aUNOIO7vVufsCddG1d/I3HNaXRdHPXRUL9bjAp5Qfc2w9QUTKYoitKiuU4jqZNm6bvfve7CoVCWrRokd5++23dfPPNBQPua6+9Vi+//LKefPLJvMs/8YlP5I6PP/54zZw5U+edd542btyo+fPn97mdG264Qddff33u/fb2ds2dO3cU/2Y1zHWlXa9JkpJuWJZl6z3Jf9XzDZ9SbP+b0qZHpQXnlXiRAAAAAAAAwBClgxPcw+3gNsH4Zje/Yvnl1i5t2NWhDd4WhnXR0IA30xOc4G5ngnswRY3ZTpkyRaFQSDt35m8muHPnzn67sWfOnKmFCxcqFPK/cEcffbRaW1uVTCbzrrt8+XL9+te/1qOPPqo5c+b0vqk8p512miRpw4YNBc/HYjE1Nzfn/cEoWXe/JFeSmeCeUB9Vt+J6ccrF5vyaFaVbGwAAAAAAAFCslB8kH+wa5tS013iQUETLk5/KXby/x827WjwycMCdcP3z2w8QcA+mqIA7Go1q0aJFevjhh3OXOY6jhx9+WEuXLi34MWeeeaY2bNggx3Fyl61fv14zZ85UNGrG8l3X1fLly/WLX/xCjzzyiA477LBB1/L8889LMgE6xtnOV3OHe9wWTagzm4eumvg+c+G6+6W2t0uxMgAAAAAAAKB4gU0mf7xq4/Buw6soSbkh/drxs9IDyfwIti4QcN931M16InOcukJNuct6HDPBfdtli/XgdWcNby01pOii5Ouvv1633Xab7rrrLr322mv65Cc/qc7OTl155ZWSpMsuu0w33HBD7vqf/OQntW/fPn3605/W+vXr9Zvf/EY33nijrr322tx1rr32Wv3whz/Uj3/8YzU1Nam1tVWtra3q7jbPlmzcuFFf/vKXtXbtWm3evFn33XefLrvsMp111lk64YQTRvpvgGJ5FUE77enarilqqTcB91v2IdKh75BcR3r2rhIuEAAAAAAAAChCIOB2R1hRkvJaoX+cfpfSzXO10n5n3tWCFSVbp5+rj6U+p30Rf4g3W1Gy6NCJmtQQHd5aakjRHdyXXnqpdu/erc9//vNqbW3VSSedpJUrV+Y2ntyyZYvswAaDc+fO1QMPPKDrrrtOJ5xwgmbPnq1Pf/rT+sxnPpO7zv/8z/9Iks4555y8z3XHHXfoiiuuUDQa1e9+9zt961vfUmdnp+bOnatLLrlE//zP/zycvzNGytsRdnVksSTlJrh7UhlpyVXSW09Ka++SzvoHs0ssAAAAAAAAUM4CAXdYwwy4vQnutBe5fi59jU79yFnafvfzkvzak2BFSTRkctSU5Wdo2YC8fpCubhjD2mRy+fLlWr58ecFzjz32WJ/Lli5dqqeffrrf23Ndt99zkgnJH3/88aLWiDHkBdzZPqAJ9eaZpO5URjrqT6WGaVJHq6kqOeZ9JVsmAAAAAAAAMCSBDu6QnAGuOAAvM0vJD6Z70o72d+bvQxisKImGvYBbfsCdVFiWJcXCRZdv1CT+lVA8rzC/J2O+fbIvlehKpqVwVDrlY+Z6q28vyfIAAAAAAACAoqT9CeuRT3D7AXZ3KqN9Xf0H3BFvgjsRCLh73KjqIiFZljW8ddQYAm4Uz3s2qtsxP4zZgLs75T27tegKSZb05uPSnjdKsEAAAAAAAACgCOlE7nDYAXeug9sPsPd1JtWTyp8ID3ZwZye4d3f7DRdr3YV5ITgGRsCN4nnPRnVnzLNIk72Auyfp/fBPOERauMwcr1kx7ssDAAAAAAAAipIahQ5ur/Ug7fqt0DsOdPe5Wjxvgtvka5mMH4I/ljkxLwTHwAi4UTzvh7U7Y37QJmYrSlJp/zpLPm7ePv8jKdk1rssDAAAAAAAAihKoKAlZw+jgdt2CFSXb23r6XDU4nZ3t2Z5u7c9dtlsTmeAuAgE3itfr5RZTGr2KkmTgh3/+edKEQ6WeNumVe8Z9iQAAAAAAAMCQjXSC2/E/Jqlwrnrkrb2dfa7aEOvbwR0MuCWpngnuISPgRvG8Ce6UzMstJtZnA+7ABLdtS4uvNMdsNgkAAAAAAIBy5bpSsiP3bkgZZRx3gA8owJvelswEd7bS95Xt7X2uOq05njuO5ia4D+RdJ84E95ARcKN4gZdbxMK2WurMLq+dyYxSgb4gnfwxKRSVtj8rbX+uFCsFAAAAAAAABpbqkuQH2hFllEwXWVOSyQ+4J3kB97b9pvpk7qS63PlZLX7AnZ3g/n3meEnS8858SaKDuwgE3Cie9wObVFj10VAu4Jaktm7/h1kNU6Rj3meOmeIGAAAAAABAOUrm14iE5BQfcDt+s0FK4VzAnXXqvMm54xktfSe4/7/UJ/Xvqb/Qx5N/L0l0cBeBgBvF8wLutBtSXSSkcMif4j7Qlcy/7uKrzduXfiZ1HxjHRQIAAAAAAABDEKgnkUwHdyJTZA+3l5c5riVHtmzLyjt97Kzm3PGsFn+aO+pNcO/WBP135v3aoxZJ/uaTGBz/UiheoIM7+3KJifUm4N7flcq/7iGnS9OOMTvRvvCTcV0mAAAAAAAAMKg+E9wZpTJFdnDn8jKTlXUn8wPy0w6flDueUO+3IcQjhePZWJgJ7qEi4EbxvJdcBAPuCd5Gk/s7e01wW5a0+CpzvOZ2U9oPAAAAAAAAlIteAXfYGk5Fib9nnSR1pdJ5p4+Y1qRH/r+z9dRnz5UVmO6e2hhXIf0F3+iLfykUL/CMVH0kLMmf4D7Qe4Jbkk64VIo0SHvWS5ufGLdlAgAAAAAAAINK5FeUxJQaxiaT/kBo2Lb03hNn5Z2Ohm0dPrVRsybU5V3eXBcueHMxOriHrPC/IDAQL+BO51WUmAnuz/3iJX3hvlcUsi3ZlhSyLYVsSzc4Z+oSPaiHf3CTvhjP5J23LSt3vdyxZckKfHz2cvNWfa5rB9/ayrssZPc6b5nPbdu9P14Frxu8LGTLX0vwfO7vYM7b/Vw+0N/X7ufvBQAAAAAAgDHkdXAfcBs0werU0dZb2tDdIalp6LfhTXCnFFIsbOvKMw/TLY9uVFt3gWHQAMsqnP3QwT10BNwonveMVFJhzWw0wfZph0/SPc+9rbTjKu30LeG/zTpXl8Qe1FmZP6p739varYnjuuRKlheAe6F3n8A/F+4PHvj3De7zg/XpzXH9/bIj1Rjj1wMAAAAAAKgBXkXJ884Czbe2a669W/WbH5QOu3zot5HJVpSEFQnbioRs/fbT79QVdzyjj51+aNFLIuAeOhIsFKdzj7T7NUlS2g1pamNMknTpkkN0wTEz1JXKyHFcZRxXGdc1x655v/OXP1XDrrX65dJN2n7icmWc/POO68px1OfjHNdVxlGBy3qd73NZYA2B844b/HgVuG7w41Xw7+OvRQUuc+W6Kvhv4F9XucsGk3FcZeRKRW7eOxKL503Ue06YNfgVAQAAAAAAKp0XcHcornucd+rT9j2a8toPpHcVEXCnuiRJ3W5UkZAJp2dNqNOD1509rCWxyeTQEXCjOPdemztMKazJ3gS3JE1siA48l33mX0m/+IRmb7xbs//0nySbH1SpcHAfDMALBfcmpFfByzOO+gn5A+cDlwVD+Dv/sFlv7OpQIlVkzxQAAAAAAEClSpmAu0cx3ZdZqk+H71HD3pclx5HsIU5SJ03A3aW4oqHipq9/8Tdn6OsPrteTG/bkLmOTyaEj4EZxNj6aO0wppCneBPeQHPM+aeVnpfZt0voHpKMuHoMFVh7btmTLUjnsHfDgKzv1xq6Owa8IAAAAAABQLbJ1vG5Ib7nTlXJDimS6pYM7pJbZQ7sNr8e7SzFFQsXtqXbyIRP1vcsX66h/WZm7jAnuoeOpABSncVru0ExwFxFwR+LSyR81x2tuH+WFYTRk9zUYvDgFAAAAAACgSrimFzajkNIKa4vr5V973xj6bXgVJV1uPFdRUoxY2FbI9oPxGBPcQ8a/FIpTPzl3mFZIkxuiA1y5gMVXmrcbHpb2bRrFhWE0uS4RNwAAAAAAqAHbn5d2vizJZF2S9JY73Zzb/9bQb8fr8e5UbFgBt2VZmljv52xsMjl0/EuhOA1Tc4cphRQvtldj0uHS/PMkudKaO0Z3bRix7POExNsAAAAAAKDqde2Tvnu29NqvJEmOF5UeVL05nyyixtULuLsVV2SY4fSkhkjumIqSoSPgRnEapuQOw3KG92zSkqvN2+d+KKV6RmlhGA0WHSUAAAAAAKBWHNyR927ai0q7XK+S19s4ckiyE9xuTNEiO7izJgWaEqgoGTr+pVAcy3/26E13hqLDCbiPWCY1z5G690mv3juKi8NIDe/XLwAAAAAAQAVynbx3M15FSbe8gDvVOfTbCk5wD6OiRJImN/h73THBPXQE3BiaN34n/fDPpLatkqQbUx+WZCk6nB/YUFhadIU5ZrPJsuIPcDPCDQAAAAAAqlyvPcgyXlTaqbi5oJgJ7pQ/wT3cgHtiXkUJse1Q8S+FofnRJdKGh6Q3H5fkP6M1rAluSTrlMskOS1v/KLW+PFqrxChhj0kAAAAAAFD9Cgfc3e7wJ7i7hrnJpCRNCkxwN8TCw7qNWkTAjWFJjzTgbpouHfUec8wUdxkxI9zk2wAAAAAAoOr1qihJuybv6tJwOri7vI+NKxoeXgns+UdP04Jpjbr6HYdp3uT6Yd1GLSLgxrBkZMuypLA9gtbm7GaTL/6flDg4OgvDiFiUcAMAAAAAgFqRSee/q14Bd6r4ipIuNza8Sl9JJ8yZoN9df7b+5T3HyCKkGTICbgxLRraiIXtkP2zz3ilNWSglO6QX7x69xWHYsl9NKkoAAAAAAEDVyyTz3/WSkVxFSbKIipJ0QpKUUHTYFSUYHv61MSxphYZfT5JlWdLiq8zx6hWkqmWETSYBAAAAAEDV6xNwj2CC2wu4kworwgaR44p/bQxLxrVHZzfXEz8sheukXa9IW54e+e1hRLID+TzXAAAAAAAAql4mlfduOhdwx80FxXRwe2F5UpFhV5RgePjXxuAKpJ1phUbnh7VugnT8n5ljNpssOUv0OwEAAAAAgBrRZ4LbVktdxK8oSRVfUZJ0w4qEyFfGEwE3Buf9gAZlRqOiJCu72eSr90qde0bnNjEsuQnu0i4DAAAAAABg7BUIuCfUR/yKkmI6uDPZipIIHdzjjH9tDK7AD3Na9ugF3LNOlmadYn6pPPeD0blNjAwdJQAAAAAAoNoVqCiZ3hTXAbfRXNB9QHIyQ7utdLaiJEzAPc7418bgkh19LnJGM+CW/CnuNXdIjjN6t4uiMMENAAAAAABqRu8JbtfWjJa49qpZjmtJbmbobQPpHklSQpHRzcwwKP61MbiCE9yj1MGddewHpXiLdOAtaePDo3e7KAod3AAAAAAAoGb0CrjTCmlqU0yWHdYetZgLO1qLui0zwU2+Mp4IuDG4AhPcmdGe4I7WSyd9xByvZrPJkslOcDPCDQAAAAAAql2vihJHtmJhW5MaotrpTjAXHhxiwJ3bZDKisE3kOp7418bgetr6XJRWSNFwaHQ/z+KrzNs3HpAObB3d20ZRXBJuAAAAAABQ7QpMcEfDtiY3xrTTnWguPLhj8NtxMqbORGaCOx4Z5cwMAyLgxuC6D/S5KOOOckWJJE05QjrsLMl1pLV3ju5tY0iyL6Ah3gYAAAAAAFWvdwe311gwpTGqPa5XUdK5e/Db8aa3JSmpiOqiRK7jiX9tDK7nQJ+LMrIUG4vC/MXeZpPP3pXbfRbjx7LoiAIAAAAAADWiV0VJRraiIVsLpjWqU3XmwgJ70/W9nfyAOz7arQcYEAE3Blcw4A6NzY6wR/2J1DjDPDv2+q9G//YxoNwENyPcAAAAAACg2jm9A26Td529cKq6FDMXDiXgDgxpphRSPErAPZ4IuDG4AhUlaYXUEBuDH9ZQRFp0uTlevWL0bx9DQr4NAAAAAACqXp8ObjPBfdSMZnW5cUmSW8QEd1IRSZbq6OAeVwTcGFyBTSYzstUQC4/N5zvlcskKSW89Ke16fWw+BwrKNpSwySQAAAAAAKh6fSpKzAT3hPqIOr0J7nRPx+C3401wm4BbBNzjjIAbgytQUZJWSI3RMQq4W2ZLR15kjtcwxT2eaOAGAAAAAAA1o/cmk66tSMhWPBJSOmQ6uIcUcOcmuE1WFifgHlcE3BjceE9wS9Liq8zbF/53aF1HGBVsMgkAAAAAAGpG74Bbtr/nXLTRXDakCW4TcCdcJrhLgYAbg0v19LnIBNxj+MN6+LukiYdJiXbppZ+N3edBQTSUAAAAAACAqpdJ572b9ipKJCkUa5AkucmhTHCboDyRneCOErmOJ/61MTgn3ecis8nkGE5w27Y/xb3mdhLXcZKd33bZZhIAAAAAAFS7XplXRiHFQl7AHTcT3Ep2Ff7YZFducjs7nJl0qSgpBQJuDK5AwJ1xxzjglqSTPyqFYtKOF6S3nx3bzwUjt8lkaZcBAAAAAAAw5voE3H5FSaSuSZJkpwpU5zoZ6b9Pl769WNr0uLT6NnNdb2CQipLxRcCNwXk/7EnX/+FMy1bjWAfc9ZOkYz9gjld/b2w/FyRJFttMAgAAAACAWuH0rigxm0xKUrzeBNwNiV3Sf54svfJL/4pd+6QDb0ltW6Tvvzd38ZfTH1PYtnK3gfHBvzYG5/2wdyuWuyijkBqiYxxwS9KSj5u3r9xjfnlgTGX3mGSAGwAAAAAAVD0nk/duJtDBHWto9k/s2yT99HL//UJT3ZK2uVOoJykBAm4MLjvBrUjuonGZ4JakOYulGcdL6R7p+R+P/eeDJCpKAAAAAABADSgwwZ0NuOuDAXdvz9xW8OIuN07AXQIE3Bic98OeCATcjuzx2RHWsqTFV5vjNSskxxn7z1nD2GQSAAAAAADUjF4Bt+PauYC6qbGx8MfsfFVa9V8FT3UqprrxyMuQh39xDM57uUbCDU5whxQLjdMzUsf/uRRtkvZtlN58fHw+Z42yqOAGAAAAAAC1os8Ed0gxb4K7qaFBjlsgKNm3qd+b61Zc8TAT3OONgBuD837YH3NOyl0U7CQac7FG6cQPmeM1t4/P56xR2U0mqSgBAAAAAABVr0AHdzbgntAQzWszyEl19XtzKYVVFyXgHm8E3BicF3D/NHO2fpE5U3emL1BK4fELuCVpiVdT8vr9Uvv28fu8AAAAAAAAqE69Jri7FMtVlEyoj6hH0fzr/+fJ0p71A94kHdzjbxx2CUTFy20yGdZ1qWslSbYlhexx7LOYdrR0yBnSlqekZ78vnfPZ8fvcNSRbUeIywg0AAAAAAKqdaya4b0m/V086x6tLcYW9vGtifbRvwL1vk7Tqvwe8SQLu8ccENwaXMQF3Sv4P6LhOb2dlp7jX3illUuP/+WsAHdwAAAAAAKBmeEOdzzhHa5VzrCTJ8sKRpnhYPW6BihJn4EyqLkLcOt74F8fgvB/2jOsH3JFQCb51jv5TqX6KdHCHtO634//5awId3AAAAAAAoEZ4HdzpAhFpXSSkZKEO7kxywJusY4J73BFwY3BewJ0OTHDHSjHBHY5Jp1xmjtlsckyRbwMAAAAAgKqXHepU31DasixFLafom6SiZPwRcGNgrpvrI8oEvl2ipZjglqRFV0iypE2PSXs3lmYNVczv4C7tOgAAAAAAAMZcdqjTLZxzxa2hV+T+6LjvmY8h4B53BNwYmPdSDSl/gjtSigluSZp4qHTEBeZ4zYrSrKGKUcENAAAAAABqxgAT3JIUGyjgnn583rsbY6bDuy5KwD3eCLgxMO8HXcqf4A7ZJYxCs5tNPvdDKdVdunVUodwENyUlAAAAAACg2uU6uAuH0lH1E3BHG6VPPim1zM1d1JM2txUPE3CPNwJuDCwQcKcUzh1nnBIGoAvOl1oOkXoOSK/8onTrqGJUlAAAAAAAgKqXm+AuHJFG3X42lKyfbN6e81nz9sS/VE/SBNx1UeLW8ca/OAbWzwR3Ml18yf6osUPS4ivM8Wo2mxxNlldSQr4NAAAAAACqXraDu9gJ7ki9eXvSR6RPPSu977/UnfICbjq4xx0BNwZWjgG3JJ18mWRHpLfXSDteKO1aqki2ooQRbgAAAAAAUPUGmeDuVyRu3lqWNHm+ZIfU4wXcbDI5/gi4MbDsD7prSVYZBdyNU6Vj3muOmeIeNWwyCQAAAAAAasYgHdwHw5MLf1y4Lnd4oCsp13W1t9PUmTTFI6O7RgyKgBsDC7xUI/gSi0SmxAG3JC32Npt86adST1tp11JlmN8GAAAAAABVLzfBXTjg/r8jv6knM8f2PeFNcN/2+006+csP6b8e2aANuzokSQumNYzNWtEvAm4MLPCDXh/1f9hLPsEtSYeeIU09Wkp1SS/8pNSrqQqW11FCQwkAAAAAAKh62cFO10Sk//Ghk/JOH5x4tD6a+qc+H9aeDuuyFc/oX+9/Ta4r3fHUZnUlM4qELB06mYB7vBFwY2CZ7AS3rbpomXUIWZa0xJviXn07qewocpnhBgAAAAAAVc4NDHau/efz9b6TZued72/DyFVbOvT79btz7+/z6knmTW5QJETcOt74F8fA7r1WktRsdSseLrOAW5JOuFSKNEh71klv/aHUq6l4FiXcAAAAAACgFjiOLNc0FKRlK1wgmO5v2LM9FS54+YyW+OitD0NGwI2BbX06dxiLlOG3S7xZOuHPzTGbTY6YJSpKAAAAAABADXAzucOMQgrbfaf+4t4E9+ONF+Vd3qNowZuc2hQbxQViqMowsUS5KssJbsnfbPK1X0kdu0q7lipBvg0AAAAAAKqaV08iSWmFFA71DbizFSWX7/mYHpr0l7nL+w24Gwm4S4GAG0MWi9i6/fLFaoiG9N8fOaXUy/HNPEGas0RyUtKz3y/1aipatqKECW4AAAAAAFDVAgF3RrbCdt+YNB7o4H5tV1fuOGUVDrKnEHCXBAE3hiweDum8o6frxf+3TBcfP7PUy8mXneJee6fkZAa8KvpHBTcAAAAAAKgJvQLuAg0leZtMpl2/d9sJmyD7+NkteddPZpxRXiSGgoAb/es1xpvt4A4V+okvtWM/INVNlNq2Sm88VOrVVKzcBDclJQAAAAAAoJoFBiQtOyTLKlBREvWj07T8sLvN22Tye5cvzrv+yXMnjPIiMRTDCrhvueUWzZs3T/F4XKeddpqeeeaZAa9/4MABXXvttZo5c6ZisZgWLlyo+++/v6jb7Onp0bXXXqvJkyersbFRl1xyiXbu3Dmc5WOoMqm8d8u2g1uSInHppI+Y49XfK+1aqgH5NgAAAAAAqGbeBHfGtWTbhTOvYEVJKhBwd7sRSVJzPKJJDaaP+3MXH6Wl8yeP1WoxgKID7rvvvlvXX3+9vvCFL+jZZ5/ViSeeqGXLlmnXrsKb+yWTSb373e/W5s2b9bOf/Uzr1q3TbbfdptmzZxd1m9ddd51+9atf6ac//akef/xxbd++XR/84AeH8VfGkKV78t7NTnCXrcVXmbcbfift31zSpVSq7LOV5NsAAAAAAKCqeRPcaYUU7qetIFhRkgkE3D2KKmxbikdsPXTdWXrg787SJ86aX3AKHGOv6MTyG9/4hq655hpdeeWVOuaYY3Trrbeqvr5eK1asKHj9FStWaN++ffrlL3+pM888U/PmzdPZZ5+tE088cci32dbWpttvv13f+MY3dO6552rRokW644479NRTT+npp58e5l8dg0on8t6NlfMEtyRNni/NP1eSK625o9SrqUj8GgYAAAAAADUhO8GtUL91vHXRwhPcPW5UTfGwLMvS5MaYjpzRNLZrxYCKCriTyaTWrl2r888/378B29b555+vVatWFfyY++67T0uXLtW1116r6dOn67jjjtONN96oTCYz5Ntcu3atUqlU3nWOOuooHXLIIf1+3kQiofb29rw/KFJggnubO6X8J7glf7PJ537QJ6DHEGQ7uF1muAEAAAAAQBXzAu60bIVDhTOvvE0mgx3calB9NFzoQ1ACRSWWe/bsUSaT0fTp0/Munz59ulpbWwt+zKZNm/Szn/1MmUxG999/v/7lX/5FX//61/WVr3xlyLfZ2tqqaDSqCRMmDPnz3nTTTWppacn9mTt3bjF/VUh5Afd7Ev9a/hPckrTwQql5ttS1V3r1vlKvpmKRbwMAAAAAgKrmVZRkBqgoifcTcO9zm9UQq4CcrEaM+Uiu4ziaNm2avvvd72rRokW69NJL9U//9E+69dZbx/Tz3nDDDWpra8v92bp165h+vqrkBdzt4Uk6oCbFK2GCOxSWTrncHK+5vbRrqUCW6OAGAAAAAAA1IDjB3U/AHQvbioZNHpZx/Vxsj9ushhgT3OWiqK/ElClTFAqFtHPnzrzLd+7cqRkzZhT8mJkzZyoSiSgU8p/VOProo9Xa2qpkMjmk25wxY4aSyaQOHDiQN8U90OeNxWKKxWLF/PXQm1fxkbTMv2NFTHBL0imXSY//m7RllbTzFWn6saVeUcVgLwQAAAAAAFATgh3cocKBiGVZ+s8Pnaxt+7tU/8IfpT3m8v1q0hFUlJSNokZyo9GoFi1apIcffjh3meM4evjhh7V06dKCH3PmmWdqw4YNchwnd9n69es1c+ZMRaPRId3mokWLFIlE8q6zbt06bdmypd/Pi1HgTXAnFZGkypjglqTmmdJRf2KO1xTe/BSFZX+dU1ECAAAAAACqWm6CO6Sw3X/mdeFxM/Txdx6uDxzdkLssqYjqoxUyCFoDik4sr7/+et12222666679Nprr+mTn/ykOjs7deWVV0qSLrvsMt1www2563/yk5/Uvn379OlPf1rr16/Xb37zG91444269tprh3ybLS0tuvrqq3X99dfr0Ucf1dq1a3XllVdq6dKlOv3000f6b4D+pLIBd1RSBU1wS9ISb7PJF+6WEgdLu5YK5FJSAgAAAAAAqlm2g9u1FeqnoiQonMrPl6goKR9FfyUuvfRS7d69W5///OfV2tqqk046SStXrsxtErllyxbZgWc95s6dqwceeEDXXXedTjjhBM2ePVuf/vSn9ZnPfGbItylJ3/zmN2Xbti655BIlEgktW7ZM//3f/z2SvzsG401wJ7wJ7li4Qia4Jemws6XJR0h735Be/D8/8MaAshUlTHADAAAAAICqljfBPXjAbR95ofT0t/W2O1mS2GSyjAzrqYbly5dr+fLlBc899thjfS5bunSpnn766WHfpiTF43HdcsstuuWWW4paK0bAC7j3J80P7LzJDQNdu7xYlrT4KumBG0xNyeKrKJgeAkv8GwEAAAAAgBqQ6+Ae2gR36LB36L2pm7Q5M0WS1EAHd9mooJFcjDtvk8luJ6QJ9REdO6u5xAsq0kkflsJ10s6Xpa3PlHo1FYHnAAAAAAAAQE0IbDIZDg0tIn0zPF/tMgOg9QTcZYOAG/1zUpKktMI6fEqD7CE8m1VW6iZKx11ijtfcXtq1VBiXjhIAAAAAAFDNvA7utOwhVZRIUiziR6lUlJQPAm70L1u2L3vIz2SVnSVXmbev/ELq3FvatVSA7K9z4m0AAAAAAFDVAhPcQ6kokaRY2A+12WSyfFRoaolx4TqSpIwsRUIVNr2dNXuRNPMkKZOUnv9hqVdT/ryOEga4AQAAAABAVStyk0kpf4K7pS4yJstC8Qi40T9vgtuRrbBdwd8qS642b9fcITlOaddS5ir0aQwAAAAAAIDiFLnJpJQ/wd0cJ+AuFxWcWmLMuX5FScVOcEumhzvWIu1/U9r0SKlXUxFcSkoAAAAAAEA1y05wu0Of4I4HJrib66goKRcE3OhfroM7VNkT3NEG6aQPm+PVK0q7ljLnNZRQUQIAAAAAAKpbYO+50BBzr8ZA7zYT3OWjglNLjLnsSzVcW+FKnuCWpMVeTcn630oHtpZ2LWXM8kpKyLcBAAAAAEBVC3RwD7W5YFpTPHfcTAd32SDgRv/yKkoq/Ftl6kJp3jvNxpnP3lXq1ZQtq8KfxwAAAAAAABiSYXRwN8XDBY9RWhWeWmJMeRsymk0mqyD5zG42+ez3pUyqtGspU9mvMhUlAAAAAACgquUC7qF3cDcHQu2KHwatInwl0L/ABHe4Gn5oj3qP1Dhd6tgpvf7rUq+mzJFwAwAAAACAKuZ1cKeL6OCeNaFuLFeEYaqC1BJjxglWlFTBBHcoIp1ymTlefXtp11Km2GQSAAAAAADUhGFMcH/glNm64Jjp+vx7jhnLlaFIBNzo3zC6iMreoisky5Y2PyHtXl/q1ZQdixJuAAAAAABQC9zABPcQBztj4ZC+e9liXfWOw8ZyZSgSATf6V02bTGa1zJEWXmiO16wo7VrKGBPcAAAAAACgqmUHO92hT3CjPFVJaokxUW2bTGYt9jabfOHHUrKrtGspUy4d3AAAAAAAoJp5AXdatsJD7OBGeeKrh/5V2yaTWfPPlSbOk3rapJd/XurVlBU6uAEAAAAAQE3I7T0XUrga9p6rYVWUWmLUBTeZrKYJbtuWFl9ljld/r7RrKTOWqujrDAAAAAAA0J/cBHeoevaeq1EE3OifN8HtuFU2wS1JJ31UCsWkHc9Lb68t9WrKRm6Cu7TLAAAAAAAAGFvZDu5qq+atQVWWWmJUBZ7JilTbSzUaJkvHvt8cr2azyd6oKAEAAAAAAFWNCe6qQcCN/lXrJpNZ2c0mX/651L2/tGspE9mvMptMAgAAAACAqhao5q3K3KuGEHCjf7lNJq3qqyiRpLmnStOPk9Ld0vP/W+rVlAXLT7gBAAAAAACqV94EdxXmXjWErx76F9xkstoqSiST5mY3m1yzgl4OsckkAAAAAACoEdkObjfEBHeFI+BG/7KbTMpWuFqfyTrhL6Roo7T3DenN35d6NWWDqB8AAAAAAFS13AS3rXA1DnbWkCpNLTEqgl1E1fqDHmuSTrjUHK+5vbRrKQPZihKXaXYAAAAAAFDNcrkXE9yVjoAb/cu+VEMhRaqxgztribfZ5Ou/kdp3lHYtZYJ4GwAAAAAAVLXABDcd3JWNrx765zqSamA32enHSocsNb/Ynv1+qVdTUpZVxV9nAAAAAACArMBgZ1XnXjWAgBv9y9tkssq/VRZ7U9xr75Qy6ZIupRzQUAIAAAAAAKpaboI7pBABd0Wr8tQSI5LdZNK1q/8H/Zj3SvVTpIPbpfUrS72aksl+lcm3AQAAAABAVauFvedqBAE3+ldLP+jhmHTyR81xDW82ySaTAAAAAACgJjDBXTUIuNG/7AS3bIVroWx/8ZWSLGnjI9LejaVeTUnw6xwAAAAAANQEL+B23BrJvaoYXz30z5vgNrvJ1kD0OXGetOB8c7z2jpIupdSY3wYAAAAAAFUtN8Fts8lkhSPgRv+CFSW18oO+xNts8rkfSame0q6lBKxcR0lp1wEAAAAAADCmcrlXSKFqr+atcgTc6F+goqQmJrgl6YgLpJa5Uvc+6dVflno1487Pt0m4AQAAAABAFQt0cNfMYGeVIuBG/wIT3DUTcNshadHl5nj190q7lhKoka8yAAAAAACodbWYe1UpAm70L2+TyRr6QT/5MsmOSNtWSzteLPVqxpc3wu0ywA0AAAAAAKpZ3gQ3EWkl46uH/jmOJPNMll1LAXfTdOnoPzXHa24v7VpKhIAbAAAAAABUNS/gZoK78hFwo3+13EWU3WzyxZ9KPe2lXcs4yn6V6eAGAAAAAABVzasoSSukCJtMVjQCbvQvW1Hi2rKtGvtBP/RMaepRUqpTevHuUq9m3NTalxkAAAAAANSo7AS3G2KCu8IRcKN/ubJ9S+FaeybLsqTFV5nj1bfXTGeHJTq4AQAAAABADcg1F9h0cFc4vnroX2CTyVAtjvae+CEpUi/tfk3asqrUqxlX5NsAAAAAAKCq5Tq4meCudATc6Jebm+Cu0bL9eIt0/J+Z49W1sdlk9nkMJrgBAAAAAEBVy3Vw27W391yVIeBG/9waD7glabG32eSr90odu0u7lnHgf5VJuAEAAAAAQBVjgrtqEHCjf7kJ7hr+QZ91kjR7keSkpOe+X+rVjLlabKIBAGDMdOySXvmFlEmVeiUAAADoLdfBHaq9veeqDAE3+lfrFSVZSz5u3q65M/dvUu2oKAEAYBTcdp700yukP/xHqVcCAACA3nIT3GwyWen46qF/gR/0mg64j/2AFJ8gtW2RNvyu1KsZU5ZXUkK+DQDAKGjbYt6+/uvSrgMAAAB9uLkO7hAd3BWOgBv9815Om1ZIoVrurojUSSd/1BxX+2aTuU0mibgBAAAAAEAVyw52urZCVJRUNAJu9M/7QU+54dqe4JakxVeZt288KO1/q7RrGUM1/lUGAGBs7Hqd/i8AAIByE+zgrvXcq8IRcKN/jpngduywrFqe4JakyfOlw8+R5Epr7yzxYsYeD8EBABhF6W7pqf8s9SoAAAAQlKvmDTHYWeEIuFGY48hyHUmSa4VLvJgysfhq8/a5H0jpZGnXMkayT2QwZAYAwCh77N9KvQIAAABkOY4sb7wvzSaTFY+vHgrzprclybEjJVxIGTnyYqlpptS5W3rtvlKvZkxkn68k3wYAYJTZoVKvAAAAAFne9LZkJrgZ4K5sBNwoLOMH3K7NBLckKRSWTrncHK9ZUdq1jJFab6IBAGDMWNztBgAAKBuBgFt2iGreCsc9bRQWmOCmoiRg0eWSFZLe+oO089VSr2bMuHSUAAAwupjgBgAAKB+BgNsKcT+t0hFwo7CM/4POBHdA8yzpqIvNcRVOcfOEJQAAY4QJbgAAgPIRDLip5q143NNGYd4Ed8oNKRTi2yRPdrPJF34iJTpKu5ZRZolNJgEAGBMWk0EAAABlw8n4x9xPq3gklyjM6+BOK6QQY735DjtbmjRfSh6UXvppqVczqvhSAwAwRqgoAQAAKB/eBHfatRVmsLPi8RVEYd4PekohhdhKNp9tS4uvMsdrbq/KcWdX1fd3AgCgpKgoAQAAKB+umeDOkHtVBe5po7DgBDc/6H2d9JdSOC61viRtW1Pq1Yy6KszsAQAYX73/MyXgBgAAKB/ZCW7ZCpN7VTzuaaMwJxtwh/lBL6R+knTsB83xmttLu5ZRZFl0cAMAMCq8YYEcKkoAAADKhxOY4A6Re1U6Am4U5j0oSykkm4C7sCXeZpMv3yN17SvtWkYJX2kAAEZJJpn/PpsXAQAAlI/ABHfEJh6tdHwFUViubD/EBHd/Zi+SZpwgZRLS8z8q9WpGRXaTSTq4AQAYoT4BN3e7AQAAyoaXe9HBXR24p43C6OAenGVJSz5ujlffLjlOadcziqgoAQBghKgoAQAAKF+5CW5yr2pAwI3CnGxFSZgf9IEc/2dSrEXa/6a06dFSr2bELK+khHwbAIAR6jXB7TLBDQAAUD5yE9y2wnRwVzzuaaOwDM9kDUm0QTrxQ+Z4zYrSrmUUZCtKSLgBABih3gE3d7sBAADKh7fJZNoNKUQHd8XjK4jCnEBFiUXAPaDFV5m36+6X2t4u7VpGiK80AACjpFfAneFuNwAAQPkITnAz2FnxuKeNwjLZihImuAc17Sjp0HdIriM9e1epVzMq2GQSAIAR6hVwp13uTwEAAJQN9p6rKgTcKCw7we3SwT0kS7wp7rV39d1UqoJkh/XZZBIAgBHqdX9g896uEi0EAAAAfQSaCyJ0cFc8Am4U5nVwM8E9REf9qdQwTepoNVUlFYtNJgEAGBW9JriTqZR6UpkSLQYAAAB58nIv4tFKx1cQhTm8VKMo4ah0ysfM8erbS7uWEaBuHQCAUdIr4A4ro2TGKdFiAAAAkMfLvTIK0cFdBQi4UVigi4gf9CFadIUkS3rzcWnPG6VezYi4dJQAADAyvSpKwsoomSbgBgAAKAveJpMMdlYHAm4U5vgv1YiG+TYZkgmHSAsvNMdrVpR2LcOU/ZVOvA0AwAilE3nvEnADAACUkWxFictgZzUguURhuQnusMJ0EQ3dkqvN2+d/JCUrbzMpy+soYYAbAIAR8ipKkm5IkhSSQ8ANAABQLhw/92KCu/KRXKKwvN1k+TYZsvnnSRMOlXrapFfuKfVqisavdAAARok3LNCtmCQpbNHBDQAAUDa8+2opqnmrwrCSy1tuuUXz5s1TPB7Xaaedpmeeeabf6955552yLCvvTzwez7tO7/PZPzfffHPuOvPmzetz/qtf/epwlo+hSPVIknrcqKJhftCHzLalxVea4wrebJIBbgAARsib4O6Sud8bVkaJFAE3AABAWQgMdoZoLqh4RX8F7777bl1//fX6whe+oGeffVYnnniili1bpl27dvX7Mc3NzdqxY0fuz1tvvZV3Pnhux44dWrFihSzL0iWXXJJ3vS996Ut51/vUpz5V7PIxVOluSVJCESa4i3Xyx6RQVNr+rLT9uVKvpihWroSbiBsAgBHxAu5uNypJCimjZCZTyhUBAAAgy+vgziikSIjBzkpXdHL5jW98Q9dcc42uvPJKHXPMMbr11ltVX1+vFSv631TPsizNmDEj92f69Ol554PnZsyYoXvvvVfvete7dPjhh+ddr6mpKe96DQ0NxS4fQ5Wd4FaUgLtYDVOkY95njitsijsbcBNvAwAwQr0rSuQoQQc3AABAeXC8TSYVooO7ChSVXCaTSa1du1bnn3++fwO2rfPPP1+rVq3q9+M6Ojp06KGHau7cuXrf+96nV155pd/r7ty5U7/5zW909dVX9zn31a9+VZMnT9bJJ5+sm2++Wel0ut/bSSQSam9vz/uDIngT3D1uVGGeySreYu/796WfSd0HSrqUYli0cAMAMDoyCUnBgDvDJpMAAADlIltR4tLBXQ2KCrj37NmjTCbTZwJ7+vTpam1tLfgxRx55pFasWKF7771XP/zhD+U4js444wxt27at4PXvuusuNTU16YMf/GDe5X/7t3+rn/zkJ3r00Uf1V3/1V7rxxhv1j//4j/2u9aabblJLS0vuz9y5c4v5qyI3wR1RlAnu4h1yujTtGPNEwQs/KfVqikZDCQAAI9SrooSAGwAAoIxkghPc5F6Vbsy/gkuXLtVll12mk046SWeffbbuueceTZ06Vd/5zncKXn/FihX6yEc+0mcjyuuvv17nnHOOTjjhBP31X/+1vv71r+vb3/62EolEwdu54YYb1NbWlvuzdevWUf+7VbU0FSUjYlnS4qvM8ZrbKycxzlWUVMh6AQAoV70qSkwHNwE3AABAWchtMhmmuaAKFJVcTpkyRaFQSDt37sy7fOfOnZoxY8aQbiMSiejkk0/Whg0b+px74okntG7dOn384x8f9HZOO+00pdNpbd68ueD5WCym5ubmvD8oAgH3yJ1wqRRtlPaslzY/UerVDAl7TAIAMEq8Ce4uL+COWhklkmwyCQAAUBa8YYSMbDq4q0BRyWU0GtWiRYv08MMP5y5zHEcPP/ywli5dOqTbyGQyeumllzRz5sw+526//XYtWrRIJ5544qC38/zzz8u2bU2bNm3ofwEMXcrv4GY32WGKN0sn/IU5rpDNJi2LrzUAAKMiO8HtxnIXpdKpUq0GAAAAQd4Ed0phOrirQLjYD7j++ut1+eWXa/HixTr11FP1rW99S52dnbryyislSZdddplmz56tm266SZL0pS99SaeffroWLFigAwcO6Oabb9Zbb73VZ0q7vb1dP/3pT/X1r3+9z+dctWqV/vjHP+pd73qXmpqatGrVKl133XX66Ec/qokTJw7n743+bHxEeuyr0u7XJUkJJrhHZvHV0poV0uu/lg62Sk1De6VDqTDBDQDAKPEmuPerSRnXUshyZXfvlXR4adcFAAAAyTGvrEsrpDAd3BWv6ID70ksv1e7du/X5z39era2tOumkk7Ry5crcxpNbtmyRHfjG2L9/v6655hq1trZq4sSJWrRokZ566ikdc8wxebf7k5/8RK7r6sMf/nCfzxmLxfSTn/xE/+///T8lEgkddthhuu6663T99dcXu3wM5gcfyHuXipIRmnGcNPc0aesfpWd/IJ39D6Ve0ZCQbwMAMEJps09MlxvTDk3WHO1RrGOrpCWlXRcAAAByr7ZLKUQHdxUoOuCWpOXLl2v58uUFzz322GN573/zm9/UN7/5zUFv8xOf+IQ+8YlPFDx3yimn6Omnny56nRi5hCJUlIzU4qtNwL32Tumd10t2qNQr6le2ocRlhBsAgJHJ+C973eZO1Rxrj+o7t5V4UQAAAJDkbzLphhSjoqTiMZqLAfW4UUXDfJuMyDHvk+omSe3bpPUPlHo1A7LEL3UAAEaFV1GSUlhbnamSpPqut0u5IgAAAGRl0pKkNB3cVYHkEgPqUZQuopGKxKWTP2qO15T3ZpPsMQkAwCjxAu6kwtqlCZKkWGJvCRcEAACAnOwEt2yFCLgrHsklBtRDRcnoWGw2YdWGh6V9b5Z2LUNAQwkAACPkVZQkFVZKkbzLAAAAUGKZbMAdYoK7ChBwY0A9blQRKkpGbtLh0vzzJLnS2jtKvZp+ZX+lu2wzCQDAyGQrStyw7Egs7zIAAACUmOPvlxKiuaDi8RXEgPaqRdEQ3yajYsnHzdtnfyClekq7lv7kNpks7TIAAKh4gQ7ukBdwu2kCbgAAgLLgZCR5E9w0F1Q8kkv069bYFUpRtj96Fi6TmudI3fukV+8t9WoKYpNJAABGSSY7FRSSHYlLkiwmuAEAAMoDFSVVhYAb/drhTpYkKkpGix2SFl1hjst8s0kGuAEAGCHHf9AUiUQlSZZDwA0AAFAWshUlbohNJqsAyWWtefMJ6Zd/I3XtG/Sq+50GSaKiZDSdcplkh6Wtf5RaXy71avqwchUlRNwAAIyIk5YkpRVWOFonSbIcNpkEAAAoCxlzXy2jkMJ0cFc8voK15q73SM//SHrky4Nedb9bL0l0EY2mpunSUe8xx2U4xe1vMgkAAEYk1+toKxo1Hdw2ATcAAEDpJTqkngOSTJ0cE9yVj4C7Vu3bNOhVWpMm4K6PhMd6NbVlydXm7Yv/JyUOlnYtvVgWv9QBABgVXq9jRiFF46aDO0RFCQAAQGkkO6WX75Hu/ph083xpp3lVfYfq6OCuAiSXtcoe/Eu/M2VeTtsU59tkVM17pzRlobRnvfTi3dKSj5d6RX0xwg0AwMhkK0pcW7GYuU8VcpngBgAAGDfJTumNB6VXfiGtf1BKd/vnJh2uH3Yv1R97jtbHaS6oeCSXtcoKFb48HJfSPZKkgzIPxhoJuEeXZUmLr5JWflZavUJafLVffl1iuQ7u0i4DAIDKF+jgjuUmuNOlXBEAAED1S3aZUPvVX0rrH5BSXf65ifOkYz9g/sw4QT/8jyeU1kFF6OCueCSXtSCTlh79V+nUT/iX9TfBHYpJ6R7tet//yr3bVTxiK8Imk6PvxA9Lv/uitOsVs+HkIaeXekWSAh3cbDIJAMDIBDq4Y3EzNBB2k3Jdl0owAACA0ZTqlt54yJvUXpkfak841A+1Z56YN2CYcUz2QQd35SPgrgUPfE565jvSqlv8y+x+Jri9zY/a6g+VtFlN8cjYr68W1U2Qjv8z6bkfSKu/Vz4BN7/TAQAYHY7fwV3nBdwRpZVIO4pH+rkfBgAAgKFJdUsbfie98ktp3W+lVKd/bsIhJtA+5v3SrJP7DTuyAXeYipKKR8BdC5b+jbT2TimT8C/rL+DOmM2PDnoVkU0xvkXGzJKrTcD96r3ShV+VGqaUekU5zG8DADBCXh1JKhBwR620upMZAm4AAIDhSPVIGx82k9rrfislO/xzLXOlY99vgu1Zpwxpgi/NBHfVIL2sBRPnSX/7nPTNY/zLMgU2OXLd3IOxjpSpJWGDyTE062TzS3f7sybofsd1pV6RsiUlNJQAADBC3n2qjEKKxEwHd0RpdacymljKdQEAAFSSVI+08ZFAqH3QP9c8xw+1Zy8q+mXpuQluAu6KR3pZK1pmS82zpfa3zfuv/1p6+EsmVI01mcsCoXd7yvxwU1EyxpZcLd37rLTmDumMT0sl3tjA32SShBsAgBHJZDeZtBWKxCSZgPtg2inlqgAAAMpfOiFtfNQLte+XEu3+uebZpnokG2qPIEdJO+Z+GRPclY+Au5YceZHpe8564uvmzz/vksKxXD2JJP3X429JkhqpKBlbx37QdKQfeMu8zOaId5d0OfxKBwBglGQnuN1QLuCOeR3cAAAA6CWdlDZ5ofbr90uJNv9c06zApPbiURsOTGeyE9ylHTbEyJFe1pLzPi+tWSG5vR5YHdxhakwCAfcbexOSQpo9sW5cl1hzovXSSR+Rnv5vafXtpQ+4LSpKAAAYFYEO7uAEdyKVLuWqAAAAykc6KW16THr1l6ZpoCcYas+UjnmfCbXnnDomr3ing7t6EHDXkniLdMX90h0X5l9ueRsdeQ/EHNdSRuYXx6fOXTCeK6xNi68yAfcbD0gHtkoT5pZ6RQTcAACMhOtKbkaS6eDOBty25SqVSg70kQAAANUtk5I2Pe5Nav8qP9RunOGH2nNPG/Ma12wHdyREwF3pCLhrTbS+72XeAzC1vijJPPiSLH32oqM0oT46fmurVVOOkA47S3rz99LaO6Xz/qVkS+FXOgAAo8Dxp7TTshWO+venkslEKVYEAABQOpmU9Obj0iu/NJPa3fv9c43TTah9zPulQ06X7NC4LYsO7upBwF1r4i19L/M2QdI9n8i7+OPvOGwcFgRJ0uKrTcD97Pelsz8jhUvzxEJuk0lGuAEAGL68gDusUMSvfEslukuxIgAAgPGVSUubf28mtV/7VX6o3TDVn9Q+ZOm4htp5S3To4K4WBNy1pm5S38uy3dtde3MXTWmMKRziB3zcHPUn5qU4Ha3mJTrHXVKSZVjMcAMAMHKBgDsjW5FwWI4s2XKVYoIbAABUq0xa2vxEINTe55+rn+KF2u+XDj2zZKF2EB3c1YOAu9bEmvpe5qTM21mnSNuf1d3pcxSvI9weV6GItOhy6fF/k1avKFnAncX8NgAAI5BJ5Q7TCikcDslRSLbSSqdTA3wgAABAhcmkpbf+4IXa9+UNT6p+snT0e82k9qFnSqHyiSEdx83tPxYm4K545fOdhfFhFfihzT4IS5mXzN7rnKF4pPTPpNWcUy6Xfv816a0npV2vS9OOGvcl+BUl4/6pAQCoTK4r7VkvrV8prVtp9jQ56x9ypzOyFbYtZayQwm5aqWR6gBsDAACoAE7GD7VfvU/q2uOfq5skHZMNtd9RVqF2UHZ6W5JCbDJZ8crzuwxj4pHXd+qR13fpK71P5ALuLklStxtTLMwE97hrmS0deZHZcGHNCunify/ZUlxmuAEA6F86KW15ygTa61dK+9/MP7/2TklSyg1JshQJ2UrJ3LdKpZPju1YAAIDR4GSkt56SXv2lCbU7d/nn6iZKR/+pCbXnnVW2oXZQdoNJiQnualD+33EYFY7j6qo710iSvhLvdTLbwZ0NuBVTAxPcpbH4KhNwv/C/0vlfkKIN4/rpCw34AwAASZ17pQ0PSet+K218REq0++dCUWneO6U5i03dmBd4Z2TLskyvY9KyJVdKpZngBgAAFcLJSFue9ia1780PteMT/FD7sLNM9WoFCU5ws8lk5SPgrhHPbzvQ/8leFSVdimlyhB/ukjj8XdLEw8wD45d+Znq5S4CKEgBAzXNdaffrJtBe/4C07RnJ9Sd91DBVOmKZdOSF0uHnmH1OXFd6+n9y4XdaIUW8B0yOZe52p1N0cAMAgDLmONLWp/36kY5W/1x8gnT0e6RjPiAdfnbFhdpBmUww4Gbar9IRcNeIDbs6csf/kPqEbo581z/ppMwDsmSnJKnbjSoeZoK7JGzbTHE/9C/SmtulUy4b17FqS+ZzkW8DAGpSOiFtftIE2utXSgfeyj8//Xhp4TJTKTbrFPP/dpBlSY3T8wLusNfp6FrmumkmuAEAQLlxHPNkfnZS++AO/1ysxYTax35AOuxsKRwt3TpHUXaC27Ikm4C74hFw14h9nX7f408z5+QH3JmkeUDnxZrdirHJZCmd/FHpka9IO16Q3n5WmrNo3D519nE6E9wAgJrRsVt640ETaG98REr6QwEKxcxLbo+80ExrT5g7+O3VT5L2msO0QrmJIMcy961SaSa4AQBAGXAcadvqQKi93T8Xa5GO+hPp2PebV5pXSagdlPECbqa3qwMBd43Y25Ho/2QmJe16Jfdut9hksqTqJ0nHfdD0cK+5fXwDbm9a3CXhBgBUK9eVdr5iAu31K6Vta5T32qXG6dIRF5gp7cPPKXo/DLd+krIPkzKyFQl596m8gDtDRQkAACgV1zX3fV75hdkssv1t/1ysWTryYjOpPf9dUjhWsmWOh+wmkyEC7qpAwF0j9gYmuPvIpKTbzvXfVUgxJrhLa/HVJuB++efSBV8xofc4yP5edwi4AQDVJNXjVY94fdptW/PPzzjBBNoLl0kzT+5bPVKEdHSism2U+RUl5r5VOkNFCQAAGEeuK7291p/UDt4PijZJR2VD7XOrPtQO8ie4GfCsBgTcNSJbUXLG/Ml6auNe/XvqL/SPkf8zJzN9w+84m0yW1pzF0ozjpdaXpOd/LJ2xfJw+sfcyavJtAECl69jld2lvfFRKdfrnwnHTIZmtHmmZPWqftifS4gfcbsh/0GR7ATcVJQAAYKy5rqk8ffUX0iv3Sm1b/HPRRvPE/rEfkOafJ0XipVtnCaW8TSaZ4K4OBNw1IhtwX/2Ow3T64ZP1jYfepw+1vKxDul41m0z2Qgd3iVmWmeL+9d9Ja1ZIp//NiKbJhir7e52KEgBAxXFd88Tw+gfMpPbba/PPN800E9oLLzThdrR+TJbRGWpRk3ecVkiRXhPccjJj8nkBAECNc11p+3N+/ciBQKgdafBD7QXnSZG6ki2zXGQnuLP31VDZCLhrRDbgntgQ1YT6iCRLO+3pOkSvmoqSXuJhAu6SO/7PpQf/Rdq3UXrzcdOBNcb8Du4x/1QAAIxcqkd68/d+9UiwR1KSZp1sAu2FF0ozTzRPII+xDrspd5yRrbDXwZ0NuB0CbgAAMFpcV9rxvPTKL02wfeAt/1ykwbxa7Zj3S0e8m1C7Fzq4qwsBd43oTpoHUw3RsFrqzAtnt7SltSQktXd2qblhqtS5Wz+e/CnpbakpzrdGycUapRM/JK2+zWw2OY4BNx3cAICydbDVrx7Z9JiU6vLPhevM/5cLl5nqkeaZ4768jox/HyqtsMLZB01eRYlFBzcAABgJ15VaXzSB9iu/kPZv9s9F6s39oGM/IC1495i9Yq0a0MFdXUgxa0SXF3DXR0O5gDvlmgdaP3/mTV0pM+F9T9tCSdLxc1pKsEr0seRqE3C/fr/Uvl1qnjWmn87KbTI5pp8GAIChc11pxwsm0F6/0rz0Nqh5tlc9cpF02DtLPp3UlfGngNKyFekzwU3ADQAAipStYsvWj+zb5J8L1/mh9hHvlqINJVtmJUk7dHBXEwLuGuA4rrpTJuCOR0KaUB+VJKW8L/+Bji4p3iNJ2t7hKmRbOm4WAXdZmHa0dMgZ0panpGe/L53z2TH9dNmA2xUJNwCghJJd+dUjB3fkn5+9yK8emXH8uFSPDFVafs1bRiGFs72OdHADAIBiuK6082W/fmTfRv9cOC4dcYEJtRcuI9QeBn+Cu3zuR2L4CLhrQCLt5I7royE1xswDrOwDsJiVkjIJSVKPoprRHFddlA7usrHkahNwr71LeuffS6Gx+7H1K0rG7FMAAFBY+3ZvSvsBUz2S7vHPReql+eeaQPuIC6Sm6SVb5mAygbvXSYUVyb7s1asokUvAjQqy9Rnp2buk878kNUwu9WoAoPq5rrTrVb9+ZO8G/1w4bia0j/2AqWKLNZZunVUgnWGCu5oQcNeArqT/Uti6SEhzJpoOpqT35W9Qd+58QhHNaYyO7wIxsKP/VGqYKh3cbibZjv7TMftU/iaTJNwAgDHmONKO50ygve63pksyqHmO2Rhp4UXSvHdIkXhp1lmk4AR32vUnuF3b3O9yMwTcqCC3v9u8TXZJf35HadcCAKW28xXzxN8pl0uj3du86zU/1N6z3r88FPND7YXLpFhT/7eBorDJZHUh4K4B2f7tWNiWbVuK2yHdfvlivf6jn0iSGi1/QiqhiCY1EHCXlXBMOvlj0pPfkFZ/b0wDbjq4AQBjKtlpprOzk9odOwMnLWnOYr96ZPqxZVU9MlTpwN3rlMIKex3cssxbi4oSVKLWl0q9AgAovf85w7yNNkon/PnIb2/X64FQe51/eShqNojMhtrx5pF/LvSR7eDO7peCykbAXQN6Uv4Gk1kLpjXqJe/L3+hNcDsKKa0wAXc5WnSF9OQ3TSiwd6M0ef6YfJpcBzcT3ACA0dK2LVA98niuFk2SeYA4/11mSvuIC6TGqaVb5ygJTnCnFFYkOxXkVZS4LptMogJlkqVeAQCUj9YXhh9w717nhdq/lHa/5l8eikrzzzOh9pEXSnH2RRtrGSpKqgoBdw3ITnDXR/0v98SGqJJufsCdtk2wPZmAu/xMPNQ88H/jAWnNCmnZv47Jp6GDGwAwYo4jbX/WhNrrVko7e01+TjjEBNoLl5nqkXCsNOscI2krOMEd2GTSqyhhghsViYAbAHxWkRO/e97wJ7V3vepfbkekBdlQ+yJC7XGWZpPJqkLAXQOyAXc84v8SboqFFYvFJEeaEDIVJUnLBNuTGqrrgWbVWHK1Cbif+6F07j9LkbpR/xR24KXgruvKqsCXhgMASiDRIW161JvUflDq3BU4aUlzTzW1I0deJE09qiKrR4Yq7eZPcPsVJWwyiQp2cId098ekv/h+Vf/8AsCQWKHBr7Nngwm0X/2ltPNl/3I7YjbOPvb90pEXS3UTxmiRGEzGYYK7mhBw1wC/osT/cluWpY+csUB6UqpXlyTTvy1JU9hksjwtOF9qOURq22L+ozzpL0f9UwR/rTuuFOL3PACgPwe2+BtEbn4if8Iz2mQmkhZeaF6B1DC5dOscZ/1VlFi5CW4qSlChXrtP6t4v1U8q9UoAoLT6m+Deu9GvHwm+gs0OS4e/y0xqH3WxVDdxXJaJgWU3mQwTfFQFAu4akJ3grovmP8sYiZogu8HtliypyzEB97wpDeO7QAyNHZIWXyE9/CVp9e1jEnD3nuDOj7wBADXNyUhvrzWB9voHpF2v5J+fOM9Ujxx5oXTIGVK4Np8wTwUDbjfkT3DnOridUiwLGB0HWwm4AcAOZCt7N5op7Vd+kb8hrx2WDj/Hqx+5mN+dZcif4GaTyWpAwF0DupJmUqgu0ivgjsQl+R3cnRnz7XA4AXf5Ovky6dGbpLfXSDtekGaeOKo3H3wimh5uAIB62k31yLqV0hsPSl17/HOWLc093XRpH3mRNGUh1QUqMMGd6+A2/8laVJSgknW0StOPKfUqAKC0kp3Sk980ofaOF/zLrZB0+NnepPZ7CLXLHB3c1YWAuwb4FSWFJ7jrrYS5niJqqYtoEptMlq/GqdIx75Ve/rmZ4n7vf47qzQcnuB2XhBsAatL+zSbQXr9S2vyk5KT8c7EWUz1y5EWmOosHbn2kA3ev0wrleh2zFSWiogSVwinwaoODreO/DgAoB5nA/9+r/ss/tkLSYWf5oXYN1bJVunSGDu5qQsBdA46b3aLl71qgI6Y35l0ejuRvJnnAbdK0phgbC5a7JR83AfdLP5Uu+PKo7rQc/MqTbwNAjXAy0rbVXvXISmn36/nnJx0eqB5ZKoUipVlnhUgFNplMKqxwdnI718FNRQkqRLqn72Vtb4//OgCgHGQSfS87+WPS+f9Papgy7svByGW8+2QROrirAgF3DTj5kIk6+ZC+mxhYvboxn3COVzwyhN2AUVqHLJWmHi3tfk164SfSaX81ajed18EtEm4AqFo9bdKGh02X9hsPSt37/HNWyPxfk6seOaJ066xAacu/L5VWKFBR4gXcLhPcKHN73pB+8AHp5I/6l539Wenxr0rPfl96x9/xRBeA2pMuEHDPPoVwu4Kl6eCuKgTctczOv2P6vDNfsTA/2GXPsqQlV0v3/72pKTn1E6PWeRq8GTq4AaDK7NvkV4+89Yf8qox4i7Tg3SbQnn8u1SMjkAxMcGdk5zaZtELmcmskm0w6jtS5W2qaPqI1AgN69F+ltq3SYzeZ90Mx6dRrpN/fLLVtMRuqTTuqtGsEgPFWKOC2ebKvkmXo4K4qBNy1LJQ/wZ1URM0RAu6KcMKl0kNfkPasMyHFvHeMys3SwQ0AVSSTlrY941eP7Fmff37yEaZ2ZOGFZrPIEHcLR0OwokSSIrkObu/ykWwy+ctPSi/+RLrsXunwc4Z/O8BArF6v6IzWmwnFaUdLO1824TcBN4BaU6i2yea+UyXzJ7gJuKsBP421rNcD2YxsxcJUlFSEeLN0wp9La+80U9yjFHAHJ7hHMmAGACiR7gPSht+Z6pEND0nd+/1zdthUjxx5kQm1J88v2TKrWVrB+1KWP8HtPQi2RxJwv/gT8/b3XyPgxthpmJr/fqTevG2ZawLuA1vGf00AUGqZZN/LqGuqaExwVxcC7lrWa4I7rRAVJZVk8dUm4H7tV1LHLqlx2ohvkg5uAKhAezaYCe31K6W3nsqfEK6bKB1xgenTnn+eVDehZMusFcGKElf+xkWjMsGd5YzCbQCF7Nsk/fF/8i+L1Jm3E+aat21bx3dNAFAOCk5wMyBYydIZJrirCQF3LevVF2UmuAm4K8bME6Q5S6Rtq82GP2f9/Yhv0qaDGwDKXyYlbXnaD7X3bsg/P+VIr3rkIvP/BNUj4yqj/PtSETvbwT0KE9xZDhtVYozcu7zvZdFG87bFC7gPEHADqEHpAhPcdHBXtLRjXrbOBHd14BFPLev1cpqUwlSUVJrFV5uAe+2d0juuG/EzyBYd3ABQnrr2SRseltb/1lSQ9LT55+yINO9MUzuycJk06fDSrRO5l7tKkutaCvea4B7RJpO5G2aCG2OkY2ffy6KNWrVxr2akJ+kwiQluALWJDu6qk+3gztbJobLx01jLelWUZFxbMTaZrCzHfkB64AbzQOONh8zE3ghZluS6BNwAUFKuK+15wwTa6x8wE9vBULN+slc9cqE0/1yzNwPKQqZXfp190GR7D4JDyshxXNkjmRaiogRjJdbU56JtXZY+fNvTWhTep5+HxQQ3gNqUSfS9jFfJVTQ6uKsLP421rNcENx3cFSgSl07+qPTUt6U1t49KwG1bljKuK/JtABhnmZTp0M5Wj+zblH9+2jFmQnvhRdKcxfQ+lqneTxBHvAdNVjgbcDtKO66ixT6YCt4uE9wYKwUC7pd3m++3t9JTzKPHgzvM7ys2VwNQS9IFAm4qSioaHdzVhYC7loV6d3CHqCipRIuuNAH3Gw9J+zdLE+eN6OZsS8pIBNwAMB669pnf3+t/aypIEu3+OTsiHfZOv3pkhL/fMT7yKkpk5R402d4TErYcpR1HURU5VJDq9o+dUag5AQqJ9X01yP50TJK0R81KWlFF3aTU/ja/kwDUloIBN5FaJcvQwV1V+GmsZXbvDm4muCvS5Pnm5ekbH5HW3CG9+4sjujnTw+1SUQIAY8F1pd3r/OqRrX+Ugp3M9VO8Ke0LpfnvKjhNifKWcYMBt7S/y2xKld1kMqxMrvOxKMlO/9hJ5Z/bt0lqmmVe2QWMRIHfOV3Kfl9Z2qcJmqFdUudeAm4AtaVQwM0rWSpa9v5YyCYHqwYE3LWsdwe36OCuWIuvNgH3cz+Q3vU5KRwb9k1ln7wk4AaAUZJOSm/9wa8e2b85//z04/zqkdmLJO5kVzSnV3i9p8ME3NkObluOMpnhBNwd/nEicLxtrfS9c6VDzpCu+m3xtwsERRv7XNSpmKJhW8m0owNOXDMsSYm2vh8LANWs4CaTvAK+kuU6uENMcFcDAu5a1mtDhDQVJZVr4YVS82zzctFX75NO+PNh35Ql88udfBsARqBzj/TGgybQ3vCIlDzonwtFpcPO8qtHJhxSunVi1AUrSmLRiP78tEMlSZb3IDjsdXAXLTjBneryj1/+mXm75anibxPorUBY0+nWaf60Rm3e06l2t06yJCUO9v1YAKhmdHBXnRQd3FWFgLuW9ZngpqKkYoXC0imXS4/daDabHEHAnf3dTsANAEVwXWnXa6Z6ZN1KadtqmYIKT8M0v3rk8HOkWN8pSVSHjONqRfpCXdr4vP7mUzfKbqiX5FeUhCwnLwQfsmDAHXyQPfEw/7hjl9Q4bTjLBgwn3eeikBw1xkI6c8FkdWyoMxf2tPe5HgBUtYIT3ERqlYwO7urCT2Mt6xVwp2UrHmGCu2Kdcpn0+L9JW1ZJO1+Rph87rJuxLfPLnYoSABhEOiFtfsJ0aa9fKR3Ykn9+xvGmdmThhdKsk6keqREZ19WX0pep8dyb9RcNk/wT9ZMlSYdbO5QeziaRu17xj9M95kkVyzJ/sna+LDWeO8yVA8oF3F9P/Zn+v4h5dcA0a7/ikZDesWCKDm4wT9gwwQ2g5tDBXXWyr6gj4K4OBNy1rNezja5sJrgrWfNM6ag/kV67T1qzQvqTrw/rZiw6uAGgfx27TPXIut9KGx+VUoGp2nBcOuxsf1K7ZXbp1omSyU5n26Fe96nmnydJOtHaqLc790gTi6ymWf9g4B1XyiTNnhvBibLWl83G08BweQF3WmG1ufVqsbr0tHOM6qMhzZvSoLddb4I7wQQ3gBpDB3fVyd5nC/W+z4aKRMBdy6y+z1JFCbgr25KrTcD9wt3S+V8c1kvgrdwE92gvDgAqkOuaqdj1K031yNtrlVc90jgjUD1ythRtKNlSUR6yTxD3mQZqnqmdmqTp1j6zZ4aKDLh3vZr/frqnb8C98xUBI+JkJJlXdr47cbOOtTfrMedEvS8S0iGT6vW6zAS329Mu5t0A1BQ6uKsOE9zVhYAbeeqiPANZ0Q47W5p8hLT3Deml/5MWX1X0Tfi/20m4AdSoVI+pHln3W1M/0r4t//zMk0ygfeSF0owTqR5BntwEd4EHSwmZejgnWWAKbCCOI7Vvz78s+0A7Fbit3iE4UCxvgtuRrV2aqF3ORElSXTSs2RPr1CEzwW09fYt0wZeZXgRQO+jgrjq5CW4C7qrATyPy1NHBXdksy4TaD9wgrb5dWnRlwUn9gdhMcAOoRQd3Sm88YKa0Nz0qpbr8c+E6szHkkRdKR1wgNc8q2TJR/rL12qEC//+mrKjkSk6yq8+5AXXulpyUXFlKu7YiVkapRJcijcp/wE0vMkYqV1GS/5igLhJSLBxSYywsZbwLNz0mLThvfNcHAKVCB3fVYYK7uhBwIw8T3FXgpA9LD3/JvKR+6zPSIacV9eEWm0wCqAWuK7W+aCa01/1W2v5s/vmmWaZ65MiLpMPOkiJ1pVknKk7GzU4D9T2XsmKSK6USRQbc7W9LkpJ1U9Xd1akJ6tS2Xft12OR5+QG3F04Cw+Z9D2WU/w1c7z1GSDXOktq8CzPJ8VwZAJQWE9xVJ+NNJTDBXR34aUQeJrirQN1E6bhLpOd/KK25fRgBt3mbnUADgKqR6pbe/L1fPXKwV+XDrFMC1SMnFP0KGEAKVJQUmuC2o5IjOV0HzJMsQ/0e8+pJOmPTleraKknavHOvDjta+RUlBI4YqVwHd68Jbi/g3jLrYqnta+ZCvt8A1BIv4H7Jmafj7c3mItmEahUslclOcFM3WA34WUQeAu4qseQqE3C/8gtp2U1Sw+Qhf2j2yUuXDm4A1aB9h9kgcv0D5uX06W7/XKReOvxdfvVI04ySLRPVw3H773NM2zFJ0lGr/l5KvCS99z+HdqNe9UiX3SjHjUiWtL/dqyMJTJQ5mZR4iIYR8QLu3hPc2ccIsyc36YnMcXpn6OXCL9cHgGrlPamX3U9DkpJuiFCtAriuq/aetHa192hne0I723u082CPtuw1r6gLhxhqqQb8LCJPnIqS6jB7kdkEbcfzJug+89ND/tDsxBkNJQAqkuNIrS+YLu31K83vwaDmOX71yLx3SpF4SZaJ6jXQJpOO7T8o1rN3DT3g9p6Y6Xajcr0H1pnsRpWBgLuru1uNw1gzkJPt4HbzHxM0xc3DxjkT65WQ1zn71lPS8X/Oq10A1Abv/9se1+/dTmRs1ZdqPZAkdSXTfmjd3qNd3nFr9vigubwn1f9L1Cc1RPs9h8pBwF3jHCsk283k3o+HCbirxpKrpfs+Ja25Q1r6KWmIL7ux6eAGUGmSXWY6Ozup3dEaOGmZJ/2OvNDUj0w/jjAGYyobcBfaZDITGuYTKl4NSZcbke2Fi5nsRpWBgDvsppXKOIoUKgAHhiLXwZ3/mGBmi9mHYHJDVF3ZgHvtHdL8c6Vj3juuSwSAkvBetRKc4E443KccK4l0RrvaE9p1MDB13Z7QLi+8zobZBxND33+kOR7W9Oa4ZrTENa0prunNMR01s1mLDpk4hn8TjJdhBdy33HKLbr75ZrW2turEE0/Ut7/9bZ166qkFr3vnnXfqyiuvzLssFoupp8e/M37FFVforrvuyrvOsmXLtHLlytz7+/bt06c+9Sn96le/km3buuSSS/Qf//EfamxkTmUkXCskeQF3yLYU4aUZ1eO4S6QH/lna/6a06RFpwflFfbhDvg2gnLW97QXaK02vdnDjn0iDNP9dZkr7iAukxmmlWydqzkAVJU4oNrwbTZkwu9OJKOo9sD587+8lXZ3XwR1RWhv3dGrh9KbhfR4g18Gd/yTJzAnmyZmW+oj2B8IdvXg3ATeA2pCd4FZggjud6e/a6Ec642hPRzI3cb3zYMKrDunJm8Te35Ua8m3WRUJeaB3TjJa4pjeb4+nNce9PTNOa4rn9JFCdig647777bl1//fW69dZbddppp+lb3/qWli1bpnXr1mnatMIPIJubm7Vu3brc+1aBiZYLL7xQd9xxR+79WCz/AcBHPvIR7dixQw899JBSqZSuvPJKfeITn9CPf/zjYv8KCHDtsOSYLqm6SKjg1wYVKtognfRh6Y+3SqtXDDngzg56u0xwAygnjiNtf84LtX8rtb6Uf77lEG9Ke5mpHgkPM0gERmigTSbd4U5wew+q9yfDOtHaJ0k6de8vTZ9YoFc+ZLla33qAgBvDF5jgntYU066DZmJxZov53p1QF1HSDTyE5LEDgFpRaII73X/tRa1xHFf7upJ5NSE7vYqQbPd1a3uP9nQkhlyHGg3ZmtZsguoZzfHc8fTmmKY3xTXNO26MhcmyUHzA/Y1vfEPXXHNNbir71ltv1W9+8xutWLFCn/3sZwt+jGVZmjFj4I2bYrFYv9d57bXXtHLlSq1evVqLFy+WJH3729/WxRdfrK997WuaNWtWsX8NeFzL/xaIs8Fk9Vl8tQm41/9WatsmtcwZ9EPqlZAthwluAKWX7JQ2Pmp+h61/UOrcFThpSXNPNYH2woukaUcTtKAsZP//LDjBHR5uRYkJsXd2W5pj7fEvT/f02ejvYGe3gGHLdnDL1uRGP+Cuj5rHDBPqo34HNwBUo552KdbU936l92RzItjBPUCvc7VwXVft3elcl3V2ynpXXoBtqkRSmaGFCCHb0tTGmAmqg1PWgePpTXFNqI8QXGPIigq4k8mk1q5dqxtuuCF3mW3bOv/887Vq1ap+P66jo0OHHnqoHMfRKaecohtvvFHHHnts3nUee+wxTZs2TRMnTtS5556rr3zlK5o8ebIkadWqVZowYUIu3Jak888/X7Zt649//KM+8IEP9PmciURCiYR/h7+9vb2Yv2rNcG3/W6AuSl9j1Zm60Ewybn5CWnundO4/D3z9rn16oOtDej56uNLuw+OyRADIc2BroHrkCSkTCO+iTdKCc02X9hEXSA1TSrdOoB+5Du5Cd6tGGHAfzITz770nOnLncp8/lRze5wCkvAnuy5Yeqq8/uE5nHTE1d7o5Hs6bXgSAqrLlj9KKC6RFV0p/+q38c7kJ7uqpKOlMpP1u6z4B9tA2aOxtSmM012/td13Hc2H2tOaYJjfECg4CACNRVMC9Z88eZTIZTZ8+Pe/y6dOn6/XXXy/4MUceeaRWrFihE044QW1tbfra176mM844Q6+88ormzDHTpBdeeKE++MEP6rDDDtPGjRv1uc99ThdddJFWrVqlUCik1tbWPvUn4XBYkyZNUmtra6FPq5tuuklf/OIXi/nr1Sbb/+VcxwR3dVpytQm4n/2+dPZnpNAAUzdvPCRJOsnepGeY4AYwHhxHenutH2rvfDn//IRDTZf2wgulQ8+UwgQrKG8DVZQoMrKKkh43qhecw3WivclcnjwoZfI7KjO9JrqBouQ6uEM6dHK9nr7hPIUDz9aEQ3av38MEFACqyGM3mbdr7ygQcHsT3HkBd3lOcGc3aMzrtT4YrA4pfoPGlrqIH1I3xTWjxT/OXj6lMaZomMFJlMawNpksxtKlS7V06dLc+2eccYaOPvpofec739GXv/xlSdKHPvSh3Pnjjz9eJ5xwgubPn6/HHntM55133rA+7w033KDrr78+9357e7vmzp07zL9F9XJDgQluAu7qdNR7pMbpUsdO6fVfS8f2fcVDju1/D9DBDWDMJA561SMrpTcelDp3++csW5p7ml89MvVIqkdQUQbaZNLuPcHtZPL+7+2XN6Xdraj+OnmdVsU/ZS5PdEhOr4CbCW6MRG6C21ZLXSQv3M4KRWLS0Pf+AoDKYQ0QznpPIP8mc7r+Kvwb/dE5atwnuLMbNLbmQupggO1v1ljMBo310VCvfuv8iWvTdR2j0hZlr6iAe8qUKQqFQtq5c2fe5Tt37hy0YzsrEono5JNP1oYNG/q9zuGHH64pU6Zow4YNOu+88zRjxgzt2rUr7zrpdFr79u3r9/PGYrE+G1WigMAEN7+wqlQoIp1ymfT7m6XVtw8ccAf+Q6eDG8Co2v+WtP4B06e9+UkpEwjhYs3SgvNMoL3gfKlhcunWCYzQQBPcVqQu/4J0QorWD36j2QluRbUvPFUbnZmab++Qkh19J7gJuDES2YDbtft9bNAUC/sBN09AAqgm/QXcrpv7v3iHO0knZX6gtpSl/x6lDu7gBo15U9ftXmh90BwXtUFj2M51WU8PBNi9w+zG2JjPvQLjoqjv5Gg0qkWLFunhhx/W+9//fkmS4zh6+OGHtXz58iHdRiaT0UsvvaSLL7643+ts27ZNe/fu1cyZMyWZKfADBw5o7dq1WrRokSTpkUcekeM4Ou2004r5K6C3vA5uAu6qtegK6Ymvm6qS3etNN3chwSmyDA+QAYyAk5G2rfE2iHxA2vVq/vmJh/nVI4cspXoEVWOgCe5QtNcEdyYhaQgBd6pLkqkomTEhrq6D3hBHom/AnU7z/zdGILfJZEgRu3DQM6MpInV47/CKPwDVpL9XVTlpyTVhdkIRxeP1clOJQStKghs0trZ5U9cHE3lB9i7vsvQQJ8xCtqVpTd6GjE2xvA0aZwSmr1vq2KARtaXop2quv/56XX755Vq8eLFOPfVUfetb31JnZ6euvPJKSdJll12m2bNn66abTHfRl770JZ1++ulasGCBDhw4oJtvvllvvfWWPv7xj0syG1B+8Ytf1CWXXKIZM2Zo48aN+sd//EctWLBAy5YtkyQdffTRuvDCC3XNNdfo1ltvVSqV0vLly/WhD31Is2bNGq1/i9oU6GOOhwm4q1bLHBMirbtfWrNCuuirha9nBb4H6PAEUKyedmnjwybQfuNBqWuvf84KSYecbn4XLbxQmnIEk3+oSv4mk32/vzsmH6+EG1HM8kLpZ74nnf0Pg99oyp/gnt4UV+dBbxI8ebBPRYmbojsCI+B1cGdkKxIu/Dt6emNgPxfuLwKoJv1NcHvT25KUUFRT42HtOpjQln1dWrVxr3blAuyE13XtT2EPtafbsqTJDTG/GqQ51meDxunNcU1qiLJBI1BA0QH3pZdeqt27d+vzn/+8WltbddJJJ2nlypW5jSe3bNkiO/Bs//79+3XNNdeotbVVEydO1KJFi/TUU0/pmGOOkSSFQiG9+OKLuuuuu3TgwAHNmjVLF1xwgb785S/nVYz86Ec/0vLly3XeeefJtm1dcskl+s///M+R/v1rnls/RfLyBya4q9ziq03A/cKPpfM+X/gl0YH/0K1MT9/zANDbvjf9DSI3/yE/bIu1SEec71WPnCfVTyrdOoFxkh3AKvTYMzn1OC1K/I9ejptBDz36laEF3GnTwd2jqKY1x9TxtjcJXmCCO5MhcMTwuU5alswEd7ifCe7G4AtuvFcXAEBV6Dfg9v9vTSqsxrh5ou8bD60f0s1OqI/kuqyDgXV2g8YZLWaDxkiBfQ8ADM2wynaWL1/ebyXJY489lvf+N7/5TX3zm9/s97bq6ur0wAMPDPo5J02apB//+MdFrROD63j317Tuex/Wd9LvUQsd3NVt/rnSxHnS/s3Syz+XTvlY3+s4gV2UmcgBUEgmLW17xgTa61ZKe9bln5+8wJ/SPuT0vFcKAbUgu0lzoZcF10VC6hhKJUlvKT/gPqIlrk6ZCW4ncVC296RSdjLcpaIEhbiu9MhXpGlHS8f/2QDXy05whxQJFZ4QjNqBl9ETcAOoJoNMcCfcsFzZOu+oaXr57TbVRUImtG4KhNZs0AiUBG3yNS485XC9L/kVSdIVYZ4trGq2LS2+Snro89Ka2/sJuANTYGkmuAF4etqkDb/zq0e69/vnrJB06BmB6pEFpVsnUAaylcSFosFhv1ouW1HiRnXo5AZ1ykxwd7fvU4N3lW5FFVNKTpqKEhSw+Qnpia+Z44EC7ky2g9vud5IwYgUC7iQBN4AqMsgEd0JmcOPyM+bpk+fMZ+IaKCME3DUu+AvZpgu1+p30UemRf5W2Pye9vVaavSj/fMaf4KaiBKhxezf61SNvPZX/Co/4BOmIC6SFy6QF50t1E0q1SqDsZKO/Qver6oY7wdXTJklqV70m1ke1O9IiOVJy39ZcwN2lmCaokwluFNa5Z2jX837XZxRSuJ8J7vTR75Ne/J55J9U5GqsDgPIQ3GTSyfjvZye4vYA7Fu7/SUAApUHAXeOCv5T7uxOLKtIwWTr2/dKLd0urVxQIuP0HxTYVJUBtyaSlrU/71SN738g/P2WhmdA+8iJpzqlSiLsQQCGON8JdKOAe1kuUnYyUMAF3m9ugxnhYG+oOkTole8/ruat1uzHJkpwME9wYAScwwd1PB3dk3lJ9Krlc347+l9x0suCrFQCgIgUnuNM9UrTBP5bZYFKSooTbQNnh0WmNC3brsRNvjVh8tQm4X/65tOwrUt1E/1ywoiTDBBhQ9br3Sxseltb9VtrwUG5KVJJkh6VDz/SqR5ZJk+eXbp1ABclVlBS4W1WwosRxTI1YfwI/l21qUH00pK6meVKnVN/mPxHVLbM5u8v/3ygk+A3puoW/QSXzhIok1wrL7uexQX00pFfdQ8310gkCbgDVIxhwp4IBt1dR4kYUtq1+fz8CKB0C7hoX3AApREVJbZh7qjT9OGnny9Lz/yst/Rv/XLCiJN1dgsUBGHN73vCntLesym0oJkmqm2SqR4680GxMG28p3TqBCuXkNpnsey5eaL8TJyXZsf5v0Ou871JcaYVVFwkpM2mB1CpFMub/6oxr5V427dLBjcE46f43AHbNfUHL7v/VBpGQ7X88T6gAqCZO4H5xcE8q7zipiKLsXQaUJQJu5PAsZI2wLLPZ5G+ul9askE7/pP8oPDDBbWeoKAGqQiZlgux1Xp/2vo3556cebSa0j7xImrMkv3sQQNGyHdxWoQ7uQhPcmaQUHiDg7jkgSWr32rbroiHFm6flXSWtsNIK+bcH9BH4fkwnCgfcjiPLqyix+gvAPaFIXHJF5zuA6hJ8DJwXcPubTBJwA+WJgBs5YQLu2nHCX0gPfd507L75e+nws83lgQfFFh3cQOXq2idt+J1XPfJwrr9XkmRHpHnv8KtHJh1WunUCVcjNdXD3PRcPmxD6P9If1KfD95gLB+vM7j4gSTrgegF3JKSW+qgSbkQxy3xsSiElXe9uvcMENwbR35MgyY7cYcKuH/Am9na7UlwKuamBK08AoJIE/09OBV7RHNhkkv5toDwRcCOHDu4aEmuSTrhUWnO7+ZMLuP2KEjvT088HAyg7rivtWW8C7fUPmM0iXcc/Xz9ZOmKZqR45/F1SvLl0awWqnJPt4C7QTGzblmJhW99M/5kfcGefUHZd6c3HpTefkM65wd/I1ZvgbnNN4FgfDamlPqKEworJPBBPK6SUd7c+wv/fKCT4f0J/AXfioCQp5YbkDPSqAin3/SZJmXRSocjA1weAihD8/Rgc+Ap0cDPBDZQnAm7kEHDXmCVXm3D79d9IB1ulphl5U18WFSVAeUsnpS1PedUjv5X2b84/P+1YE2gvvFCavYjqEWCcDDTBLUnxSEiJtKNuN6o6K+k/mP7FX0sv/sQcTzlCOvFD5tjr4D7gNuY+vqUu4nVum+mylEJa787RuXpex6ReHpO/Fyqc4w8xDDbB3aE6RcMD/5+R7XyXpH1tBzV1CgE3gCoQnOBOF5rgjhJwA2WKgBs6a+FU/X79br3/pNmlXgrG0/RjpUOWmm7eZ78vnf2PVJQA5a5zr7ThITOpvfERKdHunwtFpXnvNF3aR1wgTTy0dOsEapiTK+Hu77y5Qkph1SnpP5jOhtuS1LbNP/YqStrcBtmWFAvbmlAXUULR3FXSCuuRzMn66/CvdWp6LZUR6CtvKnHgCe4Ot07h0MDfP6ctmC5536aR+/9OmjxD+pOvjcJCAaCE0kPo4KaiBChLBNzQnVcsUU86o/oo3w41Z/HVJuBec4f0juvznrG23MwAHwhgXLiutPt1v3pk2zP5LzNvmGp6tBd61SOxxtKtFUBueluS7H4C5mTa/AwnsnfDM0nJ6fV/bqTOP85WlKhBdZGQLMsyFSVuJBeip92QnnOPUI8b0QTroLR3g5kCB7KCAfcgFSUdig+6N89/f+xUpW+0FbYcTdj0K2mTpHP/WaqbMDrrBYBSCP5+TAUDbr+DO8YEN1CWSDQh27YIt2vVMe+VVk6RDm6X1q/Mf/lqMEQDMH7SCWnzkybQXr9SOvBW/vnpx/vVI7NOkWzuZAPlIpBv9zfArfqoqSjJdhi3d3Squakt/0re1HbwuM1tUJ13f21CXVT7A3fjkworY4X1gjtfp1mvS7/6tPTh/5XiLSP8G6FqBF92318N3eu/lmQqSiKDTCg2xsJK2BGF3cBtcd8RQKUL/K58ZesuHXu09w4d3EDZI9UEalk4Jp38UekP3zJ93BMPy51ye0+TARg7HbulNx40gfbGR3I9qJKkUMxsBJud1G6ZU7p1AhhQIN/ud4L76JnNemrjXqXcsGRJq97YoWUTJ+dfqXufeZs4KD33A0neBHfUPKieUB9Ra6ADOa2QJtZH9XLiMJ1mvy699Qfpgc9J77tl1P5uqHB5E9yp/HOpHunp/5ZWf8+864YHDbglKWNFpGDA3ft2AaDSBH5Xfv/3r+vfLvDeCUxwD+X3I4DxR8AN1LrFV0p/+A8Tqs17p385UzjA2HFdaecrJtBev1LatkZ50VjjdC/QvsiE29GGki0VwNA5gRHu/iqwP3fx0XrPt5/MTXB3dXfnNpLM6fIC7v+7PHdRm9ug+oj5mHgkpIztb+qXVkgT6iPa1DPTv40X7ibghi+vg7vXBPcjX5ZW/Vfu3RnWvkE7uCUpY0ek4N3F/qpPAKBSBF7hEnH7/t5MKKr6KBu3A+WIgBuodRPnSQvONxvXbX4icMLt7yMADEeqx6se8fq027bmn595opnQXnihNPMkqkeACpRXUdJPwn3c7Bat+efzlfyveqlHctLJAgH3XslxpI0P5y5qV4PigQfVViQueQOzKYU0oT6qTXsDATcbzSJr70bpuR/67/cOogPhtiTNsXYPaULRsSL5FxBwA6h0gVeixBQMuP0J7niEgBsoRwTcAKQlV5uAO8CiogQYuYM7A9Ujj0qpTv9cOC4dfo5fPdI8q2TLBDA6nLxNJvu/3pTGmLaHTDiYSfbkd25LJvDuaM27yExw+w+qw5FYLuBOK6xY2NaO8Gz/A1rmDuvvgCr07VPy3x8kiF7lHKvIECa4HTva63apKAFQ4dL+xpJxpfpcnnAjTHADZYqAG4B0xAXmgXBgotSlogQonutKrS/51SNvr80/3zTTrx457CwpWl+adQIYc/1NcGe5XjiYSSX8Ce6GaVLnLinZKbW9nXf9hCKa2eBPzIZjdVKXOU4rpGjY1sHodD2ROE7vDL0suQM8Ue1kzJ9wtP/roHr1DrinHCntWSed9BG92tmkf3zpOB01hFcROTYT3ACqTKDCKWYFfqf1tEsy/xfXMcENlCUCbgCSHZIWXWE6GLMIuIGhSXVLbz7hV4+054dSmnVyoHrkxP6LeQFUvKFOcEuSshPc6aSU8sLohql+wN2+LXfVl2Z8QK9uPlQn1fuBdDhalztOuSFFQ7YaYyHd0XWhCbgTgc1qe/vxpdKWVdI7/k5aulyK1PV/XVSfdK8gOrux8ZKr9cLbU7XzpZd0/FAqSkJMcAOoIq5r7td7chPcr98vvXafJBNwNzDBDZQlAm4AximXSY99VXLMf+TWQJNfQK072GrC7PUrpU2PSaku/1y4Tpr/LhNoH3GB1Dyz35sBUF3yOrg1yAR3yGwSmUklpLS5S56KTVBEUqrnoCLZCe5jP6ifRf8/afNbmljvT8xa4XjuOKWwImFb9dGwOl0vrE72E3Cnk2ZjaTcjPfIVae33pXd/UTr2AzwBVyt6T1pnv1eiTUpnzIDDUCpKXCa4AVSTTErBfahiSirjuAr95MO5yxKKaGqEGA0oR/xkAjAap5kp7tW3mfeZ4AZ8rivteMGvHtn+XP755tmB6pF3Mg0J1KjgBPdgWbHl1YO46YSUMU8qP7PT1ZmS7FSX1L7dXLF5lvbvM08+TwxMcFvhWO44rZBiIVuNsbA65V3e3wT3/s0m3A7HpfrJUtsW6WdXSn/8jnThTdLsUwp/HMrf5ielF/9PuuDLUryl/+tl/Jfga8PvpJ42cxxrVNI7Fx7CBLcbIuAGUEXS3XnvxpVSIp1RvSxlg++EG1VdlI3ggXJEwA3Ad9G/68n12/WOtt/kj6EBtSjZJb35e7965OCO/POzF5lAe+EyacbxTD4CUPB/zkF/JWQD6lSPlDZB4VtdcZ0ZlkKWK3XvM+fjLdrfZYLDvIA76k9w73WbFQ3bqo+FtFuDTHDv3WDeTj1SunKl9NS3pT98S9r6tHTbu6QT/1I67/O8+qQS3fkn5m2sSVr2r/1e7Y0d+3VE9p0fXuKfiDYq6QU80SEE3JMOvpF/AQE3gEqW6sl7N2Yl1ZNyVG+Hc69ypoMbKF8E3AB8tq1uu8kcO1SUoAa1b/emtB8w1SOBndQVacivHmmaXrJlAihPwRc/2YMl3FHz/2043SmlTSh9QI2505nOfQpJUijiB9yBTSZDET/g3uFOViRkqyEWVofrXZ7sME9W917HgbfM20mHm41uz/mMdPJHpYe/KL14t/TCj6VX75XeeR393JWqze9vVybd5/QvV2/UP/xpgY+LNmpPh/nYyY2Db0AaSfd6EoWAG0AlS+cH3HGl1JPKmD0zggF3lBgNKEf8ZALI41reM9JUlKAWOI604zkTaK/7rdT6Yv75lrn+BpHz3iEFAiUA6M0NzHAP+pqOeLMkKZrukDJmWrbHjarbjarOSiqVDbjtiHa1m9qISQ1+LYkdrc8d79AkNYdtNccj6sxOcLuO2R8g2pD/ebMbaAUvb5ktffC70qmfkFZ+Vtq22uvnvsvr5/4gr1KpJFH/iZLeL7mXJDtYUZJ3wtaONnP9aU2xwtcZCAE3gErWK+COKWkCbtuPzZjgBsoXATeAfJb3klQ2mUS1Snaa6ezspHbHzsBJS5qzxNSOHHmRNO0YQh0AQ+YEOkoGm+C2vIA75nRKafPkWUIRdSquOiUV37FakvS/z7Zq18HDJEkLp/vBZXrqsbnjHe5kTQnbmtQQVZcCwWSys2/AnTFTaAoVmNCds1i6+iHp5Z9LD31Batsq/ewq6Y/flS680VQzoTw5gcGE4Nc81TfgrrMKB9H/t3qr7n+pVZI0dQgB9+65F2rq1pX+BdnvLQCoRAUnuJ38gNuN0MENlCkCbgB5LNv8h+06THCjirRtM4H2upWmVzs4vRZtlOafawLtBe+WGqeWbp0AKppbxCaTthdwxzMdUsYE10mF1e3G8sa/X9zRlTuuD7ws2pn3ztzxFneaTgnZmjupXpKlpCKKKiWlC0zqZqdsCwXc2YUf/2fSkRdLq/5LevKbXj/3udKJH5bO+wL93OWo54B/HJjuLxhwq/AE9z/+3H8V01AC7jffcbN++QNb14TvNxcwwQ2gkvXq4I5bSfWkUpLtT2ybCW5iNKAc8ZMJII/l/QfuUlGCSuY40vZn/VB750v55yccYjaIPPJC6dAz/c3eAGAEghPc1iAJd7iuRZJU53TlguikIppr7867Xsq7u/4Py47Muzxe36g/S3xeU6x2bXGnKxa2NXeiqSfpcSOKWiklE13qE2N7PaLBibSCovXS2f/o9XN/SXrhf82fV++V3nG9dAb93GWlc49/HNxHpUDAHVNSruua71E7LDlp/eeUL0iB6u6pjYP/vxitb9a/pj+qhdG9Otv5IwE3gMrWa4J7jrVLDT9/t9SZ//9yPMIEN1COCLgB5MlOcLPJJCpOokPa9KhXPfKg1LnLP2fZ0pxT/eqRqUdRPQJg1GU7uIfy6yVcbwLuerdLbjohS2aCu7ekG9akhqiufdeCvMvro2GtcY9StvY7ErI0b7KppkjIbEa5c1+b5vbeD3egipJCmmdJH7hVWnKN18/9jPToV6S1d5p+7uMu4fdpOQgGMMGQJtXV56p1VlKpjKuolZYcswnl97bNzp2f0hj1Xg0wsFjY6453zHBEJpUUzbQAKlLnXunxf5ckbXRmar69Q1Otdqm9Pe9qITlqihOjAeWIn0wAeSyLCW5UkANb/A0iNz+RPz0WbZIWnOdXjzRMLt06AdSEbEPJYP3bkhRpnCBJWmyvkzask2S6PbMPrLNSCmtGc98NbntvchUN2ZrYYELrbMB9sLOz7yfOVZREBl1jnjmLpKsf9Pu527dJP79aeua70rKbzHmUTmvglUrBqe1eE4mSVKekupMZRW3/ej2K6Yhpjbp3+ZlKO67iQ9hELXudjowthaQHXtyii5cO/68AACVzz8elt56UJO1VsyJOWof0ekXVDneSXnIPU2OsyP8/AYwLAm4AeXIVJUxwoxw5GenttSbQXv+AtOuV/PMT5/nVI4ecIYWHOKEIAKPA8RJuewgDzTFvgjsooYg+nvp7rYx+VjHLTFqnFNa05r51EfGILcvyQ/Vo2Pz//Q/LjlTi0YhkSQcPdvT9xLkJ7mE8QM/r575FevIb0tY/St87VzrhQ9L5XzAT3xhTHYm0Wtu6tbM9ocOmNGjWhDrzdcgaZII7rqS6Umm1eAG3K1tJhTW1KZbX8z6Yhpj5nku55mNe3rJHFw/j7wMAJbfxkdxhjxvVBs3WIcoPuP88+QW5spngBsoUP5kA8ti5ihImuFEmetpN9ci6ldIbD0pdgZ5Ry5bmnm4C7YUXSlMW8lJ5ACWTDZstDf57KNvBHZRURLsic/SdzJ/ob8O/lOQF3AX6kC3LUl0kpK6keUI6EjKf85Nnz9fG30clt78J7iIrSgqJ1ktn/4N08kf8fu4XfyK9dp/0juukpcvzNzrEkDiOq72dSe1s79GOth61tvdoZ5s5NpeZULsjkc59zOSGqP74ufMU3vuGf0PBCe5Cm0xaCfN9EzLhdyoUl2RpyhB6t4Mm1UdlWX5PfETpQT4CAMpfQhHdlP5LnRt6Pu/yLjemkG2pPkoZE1COCLgB5MttMskEN0po/2YTaK9fKW1+0t8UTZJiLYHqkfOl+kklWyYABGUnuIf0PFtT73Js08E9rTmuxP5o3mUT6gtPW7fURXIBd9TrQ7ZtS/G6eqlL6ggG3NvWSHUT/YoSexReYp3t5z71GmnlDWaK+NF/ldbeRT93L8m0o53tJrRuzQXW/vutbT3adbBHqYw7+I1JaoqFdTCR1t7OpLpTGTUFguy39+xXrlE72fdJjrhXUaKw+ZiUZYLtYgPucMjWpPqoUgkv4LZ6BdyuK/3kL80mqh/9Od8LACpCQlF1uX1/H3YqrsZYeNBNpAGUBgE3gDzZCW6XCW6MJycjbVvtVY+slHa/nn9+0nwTaC9cJh2ydHgvrQeAMZab4B7KY994gQluN6KpjTEl9/t30VNuSE3xwr/zJtRHtaPN1FFkN/yTJCtsOru7ujq9aqdnpdvPNyePeZ95O5q/R2cvkq56QHrlHtPP3bbV9HP/8TvShV+t+n7ugz0pE1IHwurccbsJs/d0JAe/IZnvnSmNMc1siWt6czzv7YzmuKZ7b2NhWwv+6beSvBfdpfxakq279vkBd+Jgn88RV1JtyYzkmoC7JxtwNxU/1T+lMaakF3BHe09wJw5K6+43xwd3UF8DoCJ0uTF1qW/AnVBUU6knAcoWP50A8tjeBLeY4MZY62mTNjxsurTfeFDq3uefs0LSoWeYQHvhRdKUBaVbJwAMUTGbTBaSUERzm2O5TSIlU//QX9/nxMBkdyTkB9wKmwfmmWS3dM8npJd/5p/raTNvR/uJQssyE9tHXiw99V+mn3vbM34/93mfl1pmD347ZSRbGeIH1t1qbfcrQ7JhdmdyaPeZomFbM5pNQD2jxfzpHWJPbYrlfy374br+pHfacaS0P8EdV1Ku65opwwIBd50Sak1lJJnp7i7XBNvTm/puZjqYKU1RpfZmA+5Ur7OBaXQ2LwdQIdrUoJ4CAbckNRSxTwGA8cVPJ4A8Vsj7teAO7SWyQFH2bfKqR34rvfWU5ASmveITpCPebbq0F5xnXkoPABXE9QK94b54OSkzwd3TJ+AuHEZPrPcnbqOBCW6FzANzN92TH25LpgJKGlkH90AidV4/90e9fu4f+/3cZ/6ddManyqKfO5HOaFd7wg+se01dF1sZ0hwPe6F1nWY0x7wQu04zWmKa0VynGS1xTayPjNpL2y3Lkm1JjitlXDdvgjumpBJpR/FIqHDAbSXVnUxLMqF4e9p8fx05o6nodUxpjKnHC8j7BNzB+5LcrwRQIdrcBiV7RWX3ZZZKktbt7Ps7FUB5IOAGkCeU3WSSCW6MhkzadLKu9/q096zPPz9loT+lPfc0KcR/SwAql1PkBPe3m/5Onzr4rdz7poM7pjfcSN5ljbHCvxtbAhPc0QIT3EoXqMUY64A7q3mm9IH/CfRzPy09dqP07F3S+V+Ujv+zMelkdl1XBxPp3OaMeVUhgQ0b93YOvTJkaqAyJDt5nZvC9t7Wl2CqL2RbcjKuMpn8Ce6YUmrvSeUF3Jud6frX9Ed0W/Qbiilputsts8lkhxNRyLa0YFpj0WuY0RJXj8z3Ur2VkOO4sm3v65o3tU3ADaAytKtevZ+qviH18dIsBsCQkSQAyGNlK0ro4MZwdR+QNvzOVI9seEjq3u+fs8Ne9ciF5s/k+SVbJgCMtlxtxBBz21XNF+n0tvu1xDZP/iUV0bzJDXql1wR3cz8VJQ3RUO44GHbL6+D+k7af9P/J7XF6GDD7FOmqldIrv/D6ubdI93xceibbz714yDflOK72dCYK9lwH33YVWxniBdWFQuyhVoaUQsi2lMq4SqeSeWFynZVUe3da05okJTskST/OnKsXncPN+WzAbZtQvMuNae7EOhOIF+nwKQ16wXspf52S6kym/VccOIGvAxUlAMqZZed+T7W5DWbTXe+Fpsmpx6tza50k6W/O4bELUK4IuAHk8Tu4eSCCIuzZ4E9pv/VU/isA6iZKR1xgAu3550p1E0q2TAAYS8VOcNdHQ8rIDxX3u42aP7VRmcB0dcrtv6IkOIW8cJpfL2FFTOA42dnT/ycf6wnuIMuSjvug2Sx41X9JT3zTbCz8vfOkEy6VzvuCeupnBCpDur2O64Ra27tzgfaugwmlnaFXhsxsqdP0lrhmBjZnDPZdTxjFypBSCHlrd1PdeZfXq0etPV5diDfB3aF6dXuT1pH/n737DpOqvts//j5l2nZYyi5SBQREEBRFhFgxYNTEEjXGxBJFY4mJxJhmT57gY4/RRH8aY38s0aixRrDEgr03FBUR6XX71PP740w7u7N92d1Z7td1zcXMmTMzZ2F2mb3nM/fXiNPQ0ACWO8FdT4CiDi6cNmpAEa8kK0pChKluyAq4s18LJPTJQBHpxbIC7ioKGVwSgOTyQImswa9zvj2uJ45ORNpAAbeIeJjJKSVDFSXSkngUlr+SCbU3LPVeP3B8pnpk6G6qHhGRbUSyg7uNmWnQZ1FMXfpyLSEKAxalRYWpeuQWF5k8edb2PPbeKuYfsEOmFgLwEcu5v0c3BdyO41DVEMssyhj6AdVTZ7LzZ39h2qbH4b17qX/vX9wQPYQb4wc3u7BXimnAwGK34zq9QGNpdnAdYnBJoEcqQ7qblfw3T0S8AXcR9VTXpwLuKgBqnBATRwyGNe7maEMd+N3b1eOnwNexv68R5QXUJ//NgkaE+mh2qJ31PFTALSK9mZH5pE6d4/5/kgm43Z9fowYUev6vFZHepe+/8hORdjGSH1l2NMEtjdVthKWL3AUily6Ehi2Z60wfjJzpBto7fBv6b99zxyki0kPaO8Ed8lmUZAXcAAV+m37FBemAO9JCwL3jkBI++cPcJtsD4U059m6kC954jCccNtRkLdTYzIKNuStDfsROxp5c4LuD3c0lnO17gB/Yz3Jz8Hg+6HcAFWUFnvqQVIg9sCiA3UsrQ7pb6u/ByVpgEsAyHGprq4BBEHYrSmoIMnHoQJw1BgYOsXAdJCe/G5wAQX/760kABpcEOWTX0fC+O8HdEG1majvRhjddRER6SlbAHcVyA+6kePI/9+bqwkSkd9B3qIh4WOkJbi0GtM1zHFj/mRtof/qUO7GdPdlfUO6tHgmW9Nyxioj0Au2s4KYoaFNsNA64LY7efQQ86l6OYrdYH5GrYsMf3tB0x8k/gPeyOrlbmeBuiMYzU9c5/lyzpYE11eH0L/6tKQ35mizMWFE6idrio1ixYRGVr/2JyqqvOT98NVgvwMxLYdiENt33tir1RkoiGVRXUUSRU4tpODTUupPb6YoSJ0TAbxE1g/gT9SSidRBNVZT4KehA/3bKQbtunwy4I2yJZg1IOAq4RSQ/OIl4+v/uFc5ADuhfkL4uNcFdEspdFyYivYMCbhHxSHVwD4stg9sOgX1+6y4KKNuGeNTt0E5Vj2z8wnv9oB0zC0QOnQZmx38hFhHpaxJOqqKkbRF3vwK/p6LEMCBgm4wsL0xvi2ITsNv3s9Zu2Nh0Y9lwz8WvNkdYFl7H6i31ya7rBvd8VZjVW+rZVBdt02OlK0NKQ1SUBJLhdYiK0gAVJaF0oB1qcUL4hzD9MFh8PbxwFXzzBvx9Nkw6EmZfBKVD2/7Fb0Ns09vBXef4gTgl1BOtTX7KKuZOdzfgJ2BbxCw34CaameCuJ0BBBye4AfC5i68FjQhrPRPcWWF3om3PJxGRbhePYSR/Rp0eOYu19GPikMzgTjSmgFskHyjgFhGPVMA9ILEevvyve7poSyu3krxWtxE++48baC9dlO7rBNwJv5GzktUjc6DfiJ47ThGRXs5JV5S0bf9+hX7+GPsRF/ru4IbYwRT4LDccNzJhY5T2B4+1e55D2X/O9m5s9Cmb0+/5gA+d2hbvJ2Cb6W5rd+Lau1BjRVdWhvhCsNc5MPVHsOgP8M5d8P798PGjMPPnMPMs8Be2fj/bEKtRwF3v+EgYUEI98QZ3cpu4G9rEsAj6TOJmsuM8Wp+Z4Hb8Ha4oAcDnTjqGCNMQywq4tcikiOSDWGYdg2cSUwH3jdtF9l7sH/svf9hyIKCKEpHeTt+hIuJhWZrI7fMcB9YtyVSPfP1qetVwAAoHwtg5bqA9el8IFPfcsYqI5JHMBHfb9u9f4Of8+Fxe9+3Kh7EBlBclX5ob2YFx+xe0ciYfyz7/TnCefSezrbcB2BSx6Je1TxSb0QMLGdqvIGuBRrfrOhVil4Z8bZ5G7zLFFXDo9bD7yfDk72D5y/D8pfDW7e4096QjwVQHN2QH3Jkp7ZhjgwGJhuSb1clqkBgWAdsibrnT1kQbMh3cBDpVUZIJuCM0ZFeUeBaZVEWJiPRSsUj6bAQfJ88axfiKYq4aeh6XLPmAr5wKAHbarrSnjlBE2kABt4h4mKqc6JtiEfjqJXdKe8kTsPkr7/WDd3JrR8YdCEN2UXggItIJbV1ksl+BDzD4oGEQQKYmYug0Pk4MY4UzqEOPHwrYLHMqiZD5OPUtr67kl1n7xLC47cTdGZbVM9qrDJkKJz4OHz0MT58Pm5fDv06B1/4fzL0Uhu3W00fY41IVJanpwzB+GpJviBjJ7u1UNYgbcJvEbXfhNCOWXVHiZ2AXTHAXGGEaItmhtjq4RSQPpH5OOia2ZXPewTsCMLC0gKeT4TbAwZOG9MjhiUjbKOAWEQ/T0o+FPqN2fVb1yDMQqc5cZwVg1F7ulPYOc6FsWM8dp4hIH5Ge4G7j/v0KvQs9pgNuy8eBkUs7fBwB232TMk7mzcqvtjiQ9XAR7PR+vZZhwMRD3f+nXlE/d2NmKuCOZCa4I07ydVykxv0zGTLHsAj4TBKWG3CbseyKkkAnK0pC6bPRcOaj/lpkUkTyQtyd4I5h4bMy/4P3L8j8p/nz/cdSWqAObpHeTEmWiHjYqijJX44Daz92q0eWPAkrXgeczPWFg9xAe9yBMGpvCBT12KGKiPRFqQ7u9iwymc27EGPHq0EMwyDoM4ll9XeH8f5iHnMs/L094E7xBeFbv4Qpx8Izf4C3s/u5z3I7urfBfu7UBLcRdbvUa50gkeSvd2akUQe3YxG0LRzbDaONWNgzwd25ipJMwB1rqMls9ywyqQ5uEemlkj8nI9j4sv5f7J/1JvSuI/o1uZmI9C4KuEXEw+yKhaKk+8TCsOwFt0v70yfdj3Bnq5icrB6ZC5VTVT0iIrIVtbeDe0BRMxPcXaDAbxOPNB9wb6GQgJ1nb2oXV8D3rofd5sGTv032c/9vVj/3UdvU/3OpKhwjOa1dSzD9poaRDK9Tk9PR5AS3kwyjsye4GwhQ4O/Er4WmRdTw43MiJMJZnxZTB3ffs/ZjeOQs2Oc3MGb/nj4aka6RnOCOYuOzcgfc/Rt94kpEeh8F3CLiYamipPerWetWjyx5Aj5/FpKTWwDYQXc6O1U9Urpdzx2niMg2JvWZmbZ2cNuWyRM//xYH/vkFAEKdmaJtZLuyELevPIDvW//lw9A0wpFMwL3OKaGeYP5McDc2ZIrbz/3xI/Cf85L93Kdm9XPv3tNH2C3s5EfpzWgy4HaCGMlnoRGrd6emkzUhcSyCPst9nQBY8QaIpCpK/I0+PdB+1b5y+kdW4atbm9mYXVGSnJCUPPfQabDybbjzcLhoS08fjUjXiGfWKvBnBdxlWZUkCrhFej8lWSLiYamipPdxHFjzQXKByCfhmzfxVI8UVXirR/y9dMEwEZE+zmnnBDfA6IGZuqiyrMqSWWMG8OLS9XxvSscWtRpeXsBj34xmt4br2dhQwmTji/R1K5xB2KaBZXa8BqXHGQbs+D0YOwde+Su8cKX7/+PfD4Cdvu9OdPfx9SVS/35GJFlRQhA/7qT0UTV3wHUvp/eNpQLu5IKQVrwB6tYDsIniTr+5Uu0fTP/IKoJ1qzIbtchk39OgUFv6oGTA7U5wZ/5f9DczzS0ivZMCbhHxMBVw9w7RBrd6ZMkTbv1I1Qrv9ZVT3EB7hzlQsfM29ZFsEZHeKtXB3dYJbgC/bTLvW6P4cn0t584dl95+3Q+n8vRHazhwUmWHjmV4fzfIXIfbGzqgrASSrRVfOwN7/wKTbeULwrfmZ/Vz3wkf/BM+eRT2TPZz99E1J6zk88yMpQLuEAE7nNlh4+fpszEsN8ROVpQEE7UQ3gTAeqek0/U4tcHBUAM7rF8IL8Tcv3fPIpPq4O4TgqU9fQQiXS9ZURJxbM8nm0YPyvzfEezCT1iJyNahgFtEPLTIZA+qXp2sHnkSvng23Y0JgB2C7fdxu7THzoGSjgUeIiKy9SRSi0y283a/P2jHJtvKCvwcOa3jE8g7DPaGuoP7l8E37vllzmD8vj4ScKcUD4bvXQe7J/u5v3oJ/nsZvH0H7H8hTD66z70ZnJrgtpJVZTVOkIF+AyJN900F3EYy7K+Mr0xuN9lMUacrSupDFQDsuOV5WPQ8FA6EkqxPH2iCu28IlPT0EYh0vUSmoiS7g3twSZB/nzmLkpBiM5F8oO9UEfHQBHc3chxY/Z4baH/6JKx8y3t98RA30N5hLozaKz11JSIivVN7F5ncmr4zqZJVWxq47MklAFiBzP8hHydG5N8Ck21VuTOc8Fiyn/t82PwVPPTTTD/38Ok9fYRdJhNwpxaZDGH7mg+4gz4LI1gGwPCE+27HJkpxMDsdcNcWjfBuWPMBFA3OXFbA3TcEswJux+kdP+xEOquZRSYBJg3VpxZE8oUCbhHxaLLIpOnLvaN0TLQevvxvpnqkeqX3+iG7ZFWPTNYvDiIieSRVUWL0gp/dAdvi9H3GpAPuuJH5/3yJMyx/F5hsi+x+7lf/Bv+90n0T+ZZvw05HJPu5h/f0UXaaZRoMYhOlmz8C3AluO2BArXe/hGOQwCTks4gWuJU1I50VYMB6xw1vCnyd+7VwzXZzqf3ofyk0khUpTqJRRYkC7j4hkBX2NWyBUFmPHYpIl8nq4PZbffj/RpE+TgG3iHg0qSgx9WOi06pWuRPanz4FXzwHsfrMdb4CGL2fG2iPneN+xFpERPJSapHJ3rh2Y61dykZrAIlYhGVOBaP7csCd4gvCrLNh5x/Cs3+Et+6ADx6ATx6DPX8GM3+R1/3ctmnwWvCMdLd6LUF8/qZPvhjuv3XQb5Io7O/e1kgAsNZxJ3I7O8HtLyrjG2cAOxjJHhwnoUUm+6LsN+/qNijglr4hHXBb+Oxe+B+4iLSJkisR8bAaB9yWJrjbLZGA1e9mqkdWveO9vmRosnrkQBg5y/0FXERE8l5ygLtdi0xubXMmDuapD9dw/KyxXBK9jSc+WkcCk0Bf6+BuSfFg+O5fYLdUP/eL8N/L3cB79oUw+Qd52c9tNXqa1RHEF2j63PMbcQwD/JZJQ0F/z3XVjrsYaWcXmSwK2ITJes0YqdUik31R9hsV8RxdOCL5KFVR4miCWySfKeAWEQ/bblxRoh8TbRKpc6ezU5PaNauzrjRg6DR3SnuHA2HwRFWPiIj0QakO7t7k+h/uwvqaCBWlQaxgMWG2AGybv8RXToYTHoWP/w3/OS/Zz31aVj/3Hj19hO0SMLxT0TVOCH8g979ryGdhGAa+4nLP9nrHD0DQ1/mAuwF/ZkPtOk+o/cHX61lbtoaSoI/ioI+SkE1J0EeB3+oVlT7SRlmh9utfrGO3QRN68GBEukhWRUnjDm4RyR9KrkTEwzAaT3D7c+8osOWbZKD9pNurHWvIXOcvgtH7ugtEjv02FA3queMUEZFukcq3e9MEt22ZVJS6nxQqDGT+j++zi0y2xjBgx++6bzq/8jf47xWw8m24ZQ5MPBwOuDhv+rmDhneCtpYg/hwT3OAG3AB2soM7pY4AAdtML1jZUYUBm81O1gR3o4D70Xe+5oY332hyO8s0KA66YXdJyKY4kAm/S0K+rOt8nv1Kgj5Kgj6Kgnanj13aISvgvujh93lsj7168GBEukgiu6JEAbdIvlLALSJejX8p9xf2zHEA1KyF9+6D0qHuC+rJR/XcsYBbPbLy7WSo/QSsft97fenwZPXIXLd6xA70zHGKiEiPSE1w96J826PAn3np36cXmWwLOwCzfgFTfgjP/BHeuh0+fDDTzz3r7F7fzx3CG3DXOCEsX+4nX2pC21fkrSipJ9DpehJwJ7hviO/HLOtDd0OjipLSoMGkslKqGqJU1UepbogRSzjEEw6b66Jsrot2+LGLA7Ybfod8yQnx1Hm7hZDcvb446NP3QnvEM/9OBokePBCRLpSqKNEikyJ5TQG3iHiZjReZ7MEJr//7AXzzZubykKkwYGz3HkOkFj5/1g20P/0P1K7NutKAYbtnqkcGTei9qYaIiGx1vbGDO9vgkswbrwGFeq6iQfDda2G3k+Gp38GyF+CFK+DtO3t9P3coxwS33cwH74LJznXDX0gcAyv5bK13Aunp7s4oCto8mtiDgdHNXOi7A6L1ngnuCYMKOe3UWenLjuNQH41TVR+juiGaDL5j7p8NMarq3W3V6fPJ/eoz14djbsBaHY5RHY6xcktDk+Nqi6DPbBSMN50YLw5mAvOSRueDPnPbqVnJmuC2FHBLX5F84yaGha/x4gYikjcUcIuIl+H9JW5jTT39HKdnXrhnh9sA9Zu653E3f51VPfICxMOZ6/zFMGY/N9AeewAUDuieYxIRkV7P6eUT3EPKQunzmlptpHIyHP9vd4L7P+fBpi/dfu5Xb3T7uUfM6OkjbCLgeAPuOgLNNsuFUlPahkGYAAW4YXA9/sx1nVAUsAGD/yYmuxuidZ4Jbp/hXWTSMAwK/DYFfjtdodNe4Vg8HYBXN8Q8IXm153zuwLwm7HaYN0QTNETDrK0Ot/KIudmmkXtivNE0eXHW5Hh6v5CPIr+NmS81K1kT3Aq4pc9IPq8j2Pq/USSPKeAWEa9GAXdNXQNffb2ZqcP7NXODbuQLtb5PRyQSbpj+6RPuApFrPvBeXzYCxh3oVo+MmEmz41EiIrJNS3Vw99Zpzu2yAu6BxarRasIwYMLB7hvYr94Az18Oq96Bf8yFiYfB7Iuh34iePsq0IN5A1sEkEMj9Wil7SjtsBChw3IC7jqCnuqajUj3e9Ynk8ypaD4nMIpgW8WZu2ZnHtAgUWQwo6thzOZ5wqEkG41s8IXkbAvPkfgkHYgmHjbURNtZGWn/QHAzDfYOgcXVKpms8e7I8NU2eOV8c7MaF8TwVJb1vUV2RDklVlDg2di/9xI6ItE4Bt4h4NVpk0jQcttR3vBexw97/Z9NtWb8odVq4Olk98iR89h93MaQUw4Rh091Ae4e5MHBc7x3HExGRXiORCrh79jCaVZk1KbtLb3jjureyAzDz57DzMfDs/8Cbt8GH/4JPHoc9z0z2cxf39FESoGmgWlhYkHPfYFbAHTEC6T6dhi6a4DYMg6KATX19cggg1gDxzOs2uxdO+1qmQWmBj9ICH8M6cHvHcaiNxBuF37knx7PrV6qzalYi8QSOA9UNMaobYnyzub5DX0uB32pmYrxtC3YG21pTo4oS6YtUUSLSJyjgFhGvRhPcdkcnbmo3QKhfx3srHzip6bZ4J4P2TV+5E9qfPgHLXvS8SCdQCmP2dwPtsQdAQf/m70dERCSHVEVJb20b6F/oZ9SAQr7ZXM+3xqpiq1VFg+CQP7v93E/+NtnPfaXbz73/BbDzD3u0nztA00qN4sLci4NnB5gxIzPxXOcEKAl2za+EZQU+1tRnTVNHqtNnbaPrJ7h7WirULwrYVJZ27D4aovFmusabBuaNJ8urG6LURty/17pInLpInNVVHTsOv2Wmw+7mFuysLA1xWDxC6hlvGQq4pY9IuL9jRrGxNMEtkrcUcIuIV6NFJds1nfHe/eALQtFg+PsBsMvx7sJNXaW9AXciDiveyFSPrP3Ie33/7d0u7R3mwIg9wfJ13bGKiMg2J9HLK0oMw+Bfp+9JNO5QVqC6rTarmNS0n/vhM+C1/5fs596zRw4r6DQNuIsKWq8oiVpBUvML9QQoDXTNr4QjywtZvqEmsyGcOV8cWQ+xiGreGgn6LII+i0Ed/EBALJ5IT39XpRfhzF6os5XAPBzDcSAST7C+JsL6mpZrVmYPqCOV5Zua4Ja+Ijn0FMHWBLdIHlPALSJejX4pt4inO0VbVLMWHjzZPT/uIPfPt27r2oA70YaAu6EKPl/kBtqf/QfqNmSuMywYPsMNtMcdCOVjVD0iIiJdqHdPcAMKtjvK0899I/z3clj1LvzjQNjxUDjgYug3slsPyd+ooiTkswhkzSnUOQEKDDcED/oyU4lxMzNlXU+A7bpognvUgEKe/9Sk3vETMiLU124hFbePXvc0XDEWJh4Kk45yX49pUrLTbMukX6GffoUd+75OJBxqIzFvEN5kQc4oz3yyls/X1bpvUiSZ6uCWviKrosTqzf+Bi0iLFHCLiFejihKLBA2RCNSsg6KBzd+udn3mvJP1MdRIHfhz90G2W7yZDu6NX7pd2p8+Ccte8gbhwVIYc4BbPTJmf1WPiIjIVpPp4NYvyH2WHYCZZ2X6ud+6DT56CJY8ATPOgG/N77Z+7oDjDbjLCnzgy7zmqiVIQbLGJHuCO25lutjrHT9Fga75BNvogW49Sj1+QkTYsGE9Q5PX1QUGUtCwDt681T2VDoNJ33fD7sE7dsnjS/uZppFcqNIHNL+Ye20kzufrajGdzGtsdXBLnxHPVJTYCrhF8pYCbhHxSng7Ei0S7PzyWfDgIjjleRgypZnbZYXKnz6ZOb/uE9huly46tuRjxGOw4jX3cZY8CeuXePcrH+MG2uMOdBeLVPWIiIh0AyddUdKzxyHdoGggHHJNsp/7N24/94tXwTt3dVs/t99pSJ9/Kj7Nnc4vH82DZSfy6jqbn9sPpK8PZi0kmbAzQWY9AYq7aIJ7anLh0noCQA2JZEXJPbF9cOZewzEDl8H798NHj8CWr+HFq93T4J1g0pFu4F06tPkHkB6TCv2MrAXfVVEifUayoiTmWAT0yRKRvKWAW0S8onWeixYJhqxe5F549QY47Ibct4vU5t6ePdndWfGoOxF+w0zY+EVmu2G5/Zc7zHVPA8Z03WOKiIi0USK9yKQS7m1GxU5uP/eSx+Gp32f6uV+90e3nHjlzqz20PznB/RGj+Fn0Z0wrcN/Qf3rAj3li9WrOsB4i9WGCoJ0JuI2sN/43OcUUdVEH98QhJQA0OH4wwIy4AXcCE9u2YfS+7umgK90hhffud+vk1nzgnhZeBCNnuWH3jt+DUFmXHJd0np0M/aysCW5VlEif4bhv1sSxNMEtkscUcIuI18DxrLK2Ix4LM9RYj0V23UhN87cLN3NduIPLueeSiLrB9sYv3FB7pyNg3FwYvb9+CRIRkR6XinuUb29jDAPGHwRjZrsLTz5/Gax+D279jhvUHnDJVunnDiQXmXw9NoYIPreiBAjYbhgZIxNqh7ImuINOffr8Bkq6LOA2DINFv9yb8PVuBYoZdYcf4piEshdu84Vg4mHuqW4jfPQwvHcfLH/ZnYRf9gI8fg6M/TZMPgrGznEXMZceYyf//cysCW5VlEifkfwEcxxDHdwieUwBt4h4WT5+U3kzHy/9gteCZ3hfvDY3pQ3NB9kdCbibW9UyHoXUC+uiwXDETe2/bxERka3E0QT3ts0OwJ4/g8k/gOf+5HZNf/RwVj/3L7u0nzuYXGTSrQTJLCAaSE5rx7MD7qwO7lAiM5SQwOyyihKA0QOLWFFcAtVgx9zXjTGs9ARwEwX9YdqJ7mnzcnj/n26NydqP4JNH3VOgFHY8BCYfDSNmaXHKHpAK/bwT3Aq4pY9wUgG3ic/S/98i+UqvDkSkCcv2pad+LCMrbG4p4G5uujtc3f4DiEea2Z4VcFt6f05ERHoXdXAL4PZzH3w1/PRFGLW3+7rmxavh2l3grdubrHfSUYHkApJh3GC7LJSc4Pa5v+I9kdgNgBXOgPQELkAw5n3NVtSFATeAk+z49scyFSVtCo3KhruLdJ6+GH76Esz8OZRsB+Et8PadcNshcPVE+M95sOq95gcipMu5tQ0OthaZlL4o+TM5gYmlN9BE8pa+e0WkCds0iOf68RCpa7otpbkgu6EDE9zNBOlVdfWZgNtUwC0iIr1LqoPbUMItAIMnwnEPww/+D/pvD7Vr4ZGfwf/bB5a92Om7T09wO27A3S85wb3byP4AXBc7jF9ETuew8MWeLNgf875mKw507WLcjq8AgLLYOiA1FdnOXzsrdnKrXX7xARz/KOxynDvJXb0SXv4L3Pgt+OsMeOFKd/JbtirbNJt0bquDW/qMrAludXCL5C8F3CLShNVcwB1tqaKkCye4mwm4//HfT90pbgCza38ZExER6az0BHfPHob0JoYB478Dp78K3/4fN6Rd/R7cehDc+2PY+GWH79qf7OBuSE1wJzu4D55cyRn7juan+03gocQs1tEvXZ8D8NWkswC4O7Yf0PUT3IY/5Lk8yNiE3d6AO8U0YdS34Lt/gV99BkffCRMOAcsP6z6GRZfANZPglrnw+t/dTm/pcrZlNKkkUUWJ9BmeCW79Dy6Srzr0SuP6669n5MiRBINBpk+fzmuvvdbsvrfeeiuGYXhOwWBmkZBoNMqvf/1rJk2aRGFhIUOGDOG4445j5cqVnvsZOXJkk/u59NJLO3L4ItKKTXWR3AF3Sx+pbS7I7kgHdzT3pHhVbb270CSApYBbRER6l0S6g7uHD0R6H9sPe54JZ70F034ChgkfPwLX7w5PX9ihT7z5kgF34w5uwzD41ZzxzP/2uPS+iaxh280TjmX/8OWcF/sJQJctMpli+gs8l7c3VuHrim8KO+CG20ffCed85obeI78FGLB8MTw2H67YAe7+AXzwIETrW71LaRvLNJpMbKuiRPoMx30uJzA9dU4ikl/aHXDfe++9zJ8/nwsvvJC33nqLnXfemTlz5rB27dpmb1NSUsKqVavSp6+++ip9XV1dHW+99Rbnn38+b731Fg8++CBLlizhu9/9bpP7ueSSSzz387Of/ay9hy8ibbC2KuxZmCgtHm26LaVuQ+7tHZngTgbcMcs7AWQTz4TsZo7jExER6UGZDm79gizNKByQ6efefh+3n/ula+Avu7a7n9sXbwCgwXHf9O9X0LY3/wsCPj53tiOR/FWwKxeZBLD8hZ7LV8W+3/EJ7uaEytzakhMehbM/hAP+AIMnuYMQnz4B/zwRLh8L/zoNPn+my3rPt1W2aWA0rigxFHBLH5HIrihRyYFIvmr3d+9VV13FvHnzOPHEE9lxxx254YYbKCgo4JZbbmn2NoZhUFFRkT4NHjw4fV1paSlPP/00Rx11FOPGjWOPPfbguuuu480332T5cm+fWnFxsed+CgsLGz9UWjgcpqqqynMSkbZZWx3OPcEdDzd/o5VveS7W7nAYAOs3rGv/AcTcTskNsYBns01cFSUiItJrOWiCW9po8ET48UNwzD3Qf3RWP/fe8OULbboLO5GpKCkO2kwaWtpkn2N2H05laZBDp26X3lYQyAwJ2KZBwO7aQMcKZia4L/Cfw3OJqVt3KrJ0O5h5Fpz2Ipz+CsyaD6XDIVIN794NdxwGV+0IT/4OVr6txSk7wDaNJhPbJg6JhP4upQ9IT3AbqigRyWPtejUTiUR48803mT17duYOTJPZs2ezePHiZm9XU1PDiBEjGDZsGN/73vf48MMPW3ycLVu2YBgGZWVlnu2XXnop5eXlTJ06lcsvv5xYLNbsfSxYsIDS0tL0adiwYW37IkWEmnAsd8CdDJ6bqNsI6z/1bPrXUveFwsaNzUx2tyQZpFc5hdwcOzC92W/EtMikiIj0WpmsR78gSxsYBow70A1l5/wp2c/9Ptx2MNz7o1b7ua10wB3gqGnDCNhNP9224PBJvPTr/SgNZQYDCv2Z11CFAbvLP3FgZVWUVDtuNaWvu6YiB02A2RfCz9+FE59062BC/aBmNbxyvbvA53W7wfOXdar/fFtjWWaTzm2LBHG9WSB9QWqRSUeLTIrks3a90li/fj3xeNwzgQ0wePBgVq9enfM248aN45ZbbuHhhx/mzjvvJJFIsOeee7JixYqc+zc0NPDrX/+aY445hpKSkvT2s846i3vuuYdnn32WU089lT/96U+ce+65zR7rb3/7W7Zs2ZI+ff311+35UkW2abMnDAIM4k6j/+Cbm+CuXtVk07JwEQC+aAcqSpJBegSbP8Z+zD9icwCwiamDW0REeq1U1qPfj6VdbD/MOMPt597t5GQ/97+T/dwXNNvPbaUrSvwMKg7k3AfAbPSEzJ7g7urpbQA7mPmUbVXCrZvr9l5b04QRM9w6mF9+Cj/4P5h4GNhB2PAZPPs/cO0UuHk2vHYT1K7v3uPLM3aODm6TBHFNcEtfkFVRYqmDWyRvbfURyBkzZjBjxoz05T333JMJEyZw44038oc//MGzbzQa5aijjsJxHP72t795rps/f376/OTJk/H7/Zx66qksWLCAQKDpC7pAIJBzu4i07oojd+aJD1bDk3YmUAa3J9Jx3ImjbJHaJvex1ikDoMiox3Gc9k0HJYP0MG6IHUn+qFIHt4iI9GapRSZVwS0dUjgADroSpp0ET/0WvngOXvozvHM37Hc+TP2R5/WPmQy46/HTr9Df5ocp8GXdx1Z4stqBTMC9OeYel68nQyPbD+O/454aquCTR+G9++DL52HF6+7piV/DmP1h0lHufv7mqzC3RVauDm4SxBRwS1+Qvcik3qEWyVvtest+wIABWJbFmjVrPNvXrFlDRUVFm+7D5/MxdepUli5d6tmeCre/+uornn76ac/0di7Tp08nFouxbNmy9nwJItIGZQV+jtl9OFYix6KSsRxT3DkC7nWUAVBMPfXRdi7sk3yMSDLgjiUXvPSrg1tERHqxVNSzNUJD2YYM3jHZz30vlI+B2nXw77PgRm8/txmrB9wO7qJA2+eWshd8rGpoYQHxDsqe4F4bcY/L19WLTHZUsASm/BCOewjmf+xWw1ROcSsKPvsPPHiyuzjlg6fAZwsh3nwl5rbEZxm5K0riCrilD8ie4FbALZK32vVKw+/3s+uuu7Jo0aL0tkQiwaJFizxT2i2Jx+O8//77VFZWprelwu3PPvuMhQsXUl5e3ur9vPPOO5imyaBBg9rzJYhIJ32xemPTjTkC7m+cAQAEjSgbq2ra9yDxZEWJ4/5SFEtNcBtxHHVwi4hIL+U4qUUm9QuydJJhwLi5cNpimLMAgqWwJtnPfc+xsPELiGYmuAvbEXBnmzayf1ceNQA+fzB9vtZJVZT0koA7W3GFWw1z6vNwxuuw17nQbyREa+G9e+GuI+Cq8fD4ubDijW16cUrLNLFyTnAnmrmFSB5xMgF3r3kzTkTard2vhObPn8/xxx/PtGnT2H333bnmmmuora3lxBNPBOC4445ju+22Y8GCBQBccskl7LHHHowZM4bNmzdz+eWX89VXX3HyyScDbrj9/e9/n7feeotHH32UeDye7vPu378/fr+fxYsX8+qrr7LvvvtSXFzM4sWLOfvss/nRj35Ev379uurvQkTa4O0v17D9sCHejdE6AJYkhvJCYhKfOkNZ4QxMX121eRMMKGv7g8QyFSXD+xcwq6ISvgDLiRGLJue6LQXcIiLSu6TzL+Xb0lVsP8w4HSYfDc/9Cd64xa3Y+Ow/GMmBgAbHz9ThZe2620W/3JtrFn7GMbsP6/JDzn7615JaZLKXf1MM3AH2+z3s+zu3suS9++DDB93p+ddudE/9t3crTCYfBeWje/qIu5VtGhg5JrhVUSJ9QnKCO6EJbpG81u6E6Oijj2bdunVccMEFrF69milTpvDkk0+mF55cvnw5ZtYq2Zs2bWLevHmsXr2afv36seuuu/Lyyy+z4447AvDNN9/wyCOPADBlyhTPYz377LPss88+BAIB7rnnHi666CLC4TCjRo3i7LPP9vRyi0jXiwfKsMKbAQg7NgEjRjTS0HTHiDuhvcyp4I+xH6c31zhBiowGqrdsAEa144Ezi0yWhnxMGTkAvgAfcaKpgFsT3CIi0sskNMEtW0theVY/9+/gi2fTVy36zVxKgu2rbhs9sIi/HDO1q4/S5WSC0NR6Kr1ygjsXw4Bhu7unuQvg82fh/fvgk8fcqfnnL3VPQ3Zxg+6djoCivv+JYivnIpOOAm7pG7ImuNXBLZK/OpQQnXnmmZx55pk5r3vuuec8l6+++mquvvrqZu9r5MiR6Y9zNmeXXXbhlVdeafdxikjn1I87lKL3bmWtU0YJbg3Jrp9cAbMf8O6YrCipw7uwaw0himigvnpT+x44q4Pbb5tYdnKBIiNGNOqG3+rgFhGR3ib1kla/HstWM3hH+PG/3L7oRX+Agn6UlLZe79itEtlrr7jfDT26yGRHWT7Y4dvuKVwDSx53q0s+fxZWvuWenvodbL+PO2E//iAIFPf0UW8Vbgd304oSdXBLn6AJbpE+QSOQItKshn0u5MY3a3g8MZ1FgV8BMHb9wqY7RtyKkjon6Nkc8xVDbBPR2i3te+B4MuB2fPgtEyw34LaJE4smF0OyFHCLiEjvkpng7uEDkb7NMGCHOe6pNxqzPwCfJNz6k+0HFLZrEcxeKVDkTmxPPgpq1rn1Je/dB9+8AZ8/457sEIz/jltjMmb/PvVa1TLNnItMqoNb+oTkp07cCe48+bSJiDSR5680RGRrChaW8Jf44U2vcBz3l6uUZEVJ4wnuuK8IYhCrb2fAHctUlPhtM9237cft4AbAtNp3nyIiIt3EUEWJbMuKBnF0v3t4c5X7mm2/8YP61vdE0UCYfqp72vA5vH+/G3Zv/Bw+eMA9hfrDToe7Yfew3b2vm/OQbRqYhjfMNnGIq6JE+oJEVkVJPn7aREQA0NtTItKsoN3Mj4hofaPLyQluvBPccbsAgFhDTfseOO6tKMFyg3MfMWKx5AS3KkpERKSXSU1w53mWJdJpiUApseQs1fjKkh4+mq2ofDTs8xv42Zsw7xmYfhoUDoL6jfD6zXDLt+HPO7t1MuuW9PTRdljODm4ja5HJ5a/AX/eEL1/ogaMT6SQnU1GiDm6R/KUJbhFplm25/8k3WUAmUgP+guT5unQHd60TaHQH7uVoOMfClC3JmuAO2Gb6fgJEScRSE9z68SUiIl0nkXCoi8apaYhRE45RG3b/rAnHqGmIURvJOh+OUROOUxOOUhuOp/dbW+X+f2eohVu2cUFf5pN2owYU9OCRdBPDgO12dU/f/iN8+bw71f3Jo7D5K3jhCvdUMTm5OOX3oaSyp4+6zXJ1cFskMhPct8wFHLjzCDh/bfcfoEhnpCa4HXVwi+QzJUQi0qKgz6ImHPNuDFe7K8Zv+Bz+OiM9cd14ghvbvRyPNJr4zuXL/8KnT8GgHSHmBgTpCe5kwO03YiTiyWPpQ72GIiLSMfGEkw6ja8MxqrPPJ4Po2kg8fT4VRDc53+Du11V2HNKHJ1ZF2sDM+hjDiPLCHjySHmDZbgf3mP3dQZAlj7s1JksXwur33NN/zodRe7lh94RDIFja00fdouY7uFOhd/LP5O8EInnFyaooUQe3SN5SwC0iLQr6TGoav1ZNTmzzzZueF7JhMqFzUcDG9LkBd6K5gPuDB+G5S+Go2+C2QzLb+492789JTnAnK0r8RHHiqYoSdXCLiOSjaDyRDphrk1PQNeF4OmhuNoT23Mbdtz7adaF0imUaFPotigI2RUGbwoDtng/kOB+0KQpYFPpT5236FfgZ1n8bmFgVaUFlaWboobzQ34NH0sP8BTDp++6pdgN89C947374+hV3yvvL5+HR+TDuQDfsHnMA2L3v78s2DYxGE9wGDvHGi0xajT7NKZIHnEQcA7eiRBPcIvlLAbeItCjkzxEkJxeVpH6zd7Njs/PQUqYMK+OY6cMxn7wPgESsmYqSf56Y/PMn3u0bP3fvDx9+y0y/0PeTNcGtDm4RkW4TiSWa1nZ46jqyg+i4d99UvUcyvA7HEq0/YDvZpuGG0X6b4mQoXRiwKQ7YFAYsigI+N4gOZILo7FA6O7gO+sy+tSCeSA/4xewdGF9RzIGTKvX9lFJYDrud7J42LUsuTnk/rF8CHz3knoJlMPFQd3HK4TOgl0yTWqaBlWuCO96oxjCoT69IHnLc53YcE58WmRTJWwq4RaRF4waX8PXGRhPY4VTAvcmzOYrNqAGFXPy9nQD4xh8CwIm20sG9/rOcmyPYboejlergjqiDW0SkDRzHIZwVSmfqOlLn400rPbLqOmrCmVC6NhwnEu/6UNpvm40mo63cU9KeSWo3rC4MWBQn/ywMuJ/2UYgm0ntUlAY5Yeaonj6M3qvfSNjrV/Ctc9zKkvfug/f/CTWr4c1b3VPpMNjpCJh8NAzesUcPt9kObscBJ2t7L69aEckpkVlkUhPcIvlLCZGItGjikBIWfryGc6KncoXvRndjpNr9M0fAXR7MTFZbqYC7uQnulEQ05+YIPkosbwd3fSLVwa0fXyLStziOQ300nqnhyLXYYa7J6HCcmgbvYoe14VjTBYK7QNDnDaUzU9LJ88HsyWirxXoPv907JhNFRHqMYUDlzu7pgEtg2QvuVPfHj8CWr+Gla9zT4J1g0pFu1Unp0G4/TLeDO1dFiQMNWzIb/UXdfGQiXSChDm6RvkAJkYi06IQ9R/Luis0UDzieha+9xmzr7cwE98YvPPtGsSkJZX6spAJuu4MLzkQc27vIJFHq0x3cqigRkZ6XSDjURePe0LmZyejacDzHJLU3uN4KmTQFfqtREJ2p7EhPRvtb6JsOutcXBixsS7/4iYhsFaYF2+/jng66wl18/f373T/XfOCeFl4EI2a6fd07fg9CZd1yaG4Hd9OKknjCgXgks9Hp+nURRLY2x3E7uOOa4BbJawq4RaRF/Qr93Hri7qzcXM/rr7mBdbS+Ct9Xi+Gzpzz7RrApCmRNcCcXmbQSHQu4oyQD7nRFSQwn3cGtH18i0jHxhENtpFEdR+PFDrOnpZtd+DBObSTm+XR2VzAMKPSnguisig5/47qOxvUeyeqOrA7qQr+tX9ZERPKNL+R2cU88FOo2wkcPu2H3Vy/BVy+6p8fPgbHfdsPusXPAF2ztXjvMMnNXlCQcB1KvzYHammoKt9pRiGwl6YoSA1uvmUTylhIiEWmTytIgTjJoXr+5isqN/9dkn6hjU5C1KKUVcAPxqXziTnv33957A39xpu4khyh2cpFJ9z4DRCFdUaIJbpFtSSyecEPoSCx3dUdqGjqSdT4ZWjfum66LdP2EmWnQbF1H+nzAO0ntCaizFjss8FmY+gVLREQACvrDtBPd0+av4YN/ujUmaz+ETx51T4FS2PEQt697xKwuX5zStpouMmmSIJ4g89oc2FJdxcaNdQzrX9Cljy+yVSU/eZAwTL3+EsljCrhFpE0Mw6CosBBqYd3mKipHbt9knyg2oayA205WlIw2VsK1U+GiLd4bFPRvMeCOYRHwmWC7EykBI5rp6zatZm8nIr1DJJZoMg3tqe5oyExBp6s7shc7zPqzIdr1ixzaptEoaLYoCrrVHZke6dz90ZlJanfKOuSztMihiIhsXWXDYNbZ7mn1B/B+cnHKqm/g7TvdU/EQmHQETDoKKia5HwvqJMswMBpNcJupDu6sgDtEhLfXVivglvySnOA2DcVjIvlM38Ei0mYFBQVQC/X19Tk79iJ4J7h9gUYvbh0n8yJ73RLY/FWLj5ee4Lb86W1masFKdXCLdDnHcQg3CaUbVXe0uPBhZmK6JhwjEuv6UNpvmckgumllh2d6OqtvuukktXu7gG0qlBYRkfxUsZN72v8iWP4yvHcffPQQVK+El//ingaOTy5OeST0G9Hhh7JNE7NxB7eR6uDOLBYfIsy66o5VE4r0FMNJPrc1QCWS1xRwi0ib+fzuJHU03ACxpi9eGwfcdrKiJLNDLQSSq6tfv3urjxfF8iwyCVAcXp08GE2GiIAbSjdEE007ohvchQxzL3wYbzpJnaz2iG2FVQ4DtuntkQ42noq2mq3syN5WGLAI2PrlQ0REJM00YeQs9/Sdy+Gzp+G9e93FKdd9As/8wT0Nn+EG3RMPcz9F2c6HaNzBbZIg7ngnuINGlHVV9V3yZYl0m+TglqGAWySvKeAWkTbzB9yAOx5tgNQkdZYoNiFf5seK2Xixm3C1G3BXrWzT48Uci0DWIpMAgxq+dM+MmNHOoxfpPRzHoS7i7YVOT0anO6ZzLHbYuG86HKM2EncnqLpYyGdlBdFWy1UdnoUPM4sdpvbxWV3bBSoiIiI52AGYcLB7qt8MH//brTH58gVYvtg9PfFrGDPbXZxy3IHugpatsEwD08ixyGTCydQHJm3aUtWVX5HI1pesKNEEt0h+U8AtIm0WCLovgGOR3BPcjReZTHVnp4WrgUr45q1mH8Mx/RiJiPs4JKc1TZO4YWM5yQmR/qOhdGinvhaR9koknPREdLqOI0ddR5MgOpLaN7PYYU0khtP1mTSFfisraM6E0E0XPrQ8dR2ehQ+TU9aWFtkRERHJX6Ey2OXH7qlqpdvV/f59sPp9+PQJ9+QvhgmHwOQjYdTezQZ8lmk0qSgxSRBJOBCPebbX1za/vo5Ir+M46X55TXCL5DcF3CLSZsFkwJ2IRdIT3A2Oj6DhTm5EaSXgTi0oWb2q2cdYEhvMePPr9P35bXfyM276sVIvoIMlnf1SZBsRTzi5qzuaXfgwnlnsMBLzBNi1kaa9851lGFDkt3OE0u4UdLq6IzVJ3dzCh0GbAp+lld9FRESkqZIhMPMs97T2k+TilPfD5uXw7t3uqWgw7HSEO9ldOcWzOKVlGC1UlHgnuI24OrgljyQyr+8NU/GYSD7Td7CItFko5PZeO7FweoK7jgBB3Be2EWwKAlk/Vhp/5DGcDLhr1jT7GLVkQvFYqoMbSJh+iNe5V9itf5RS8lc0nmjSC51zscPs4Loh92KHDdGuX+TQMo1GQXQztR1NFj60KM6q7igK2oR8lhY5FBERke4zaDzsfwHsdz58/arb1/3hv9zX56/81T2Vj3WD7klHQv9ROSe4LRy3Ii3hneCOx7yBt0iv5mQCbtNUpZ5IPlPALSJtFgolg+VYGCfWgAGE8aevj+JOkaY1rhEJV8MHD8J/L2/2MSKOL+v+LPxWVsCd0rjbW3pcOBZPTkbHc1Z1NF74MD0l3Xixw3CMSKzrQ2mfZbTYH52Zks6x2GF21UfQJmCbCqVFREQkvxkGDN/DPc39X/h8Ebx3Hyx5HDZ8Bs/+j3sauhvG5KMZaGzx3Nwk4Qbc8UaBdkIBt+SR7AluSxUlIvlMAbeItFlqkUk/MRKRBiwg7PggmfVFsQllV5QUDfbeQbgG/n1Wi48RyfqxlF1RkshaaLJJ9Ym0m+M4hGOJdNDcbCjdymKHqfPReNcXSvtt09sdnZqYDiarO7LqOlpe+DDZ5S4iIiIiTdl+d8HJcQe6AykfP+rWmHzxHKx4HVa8zpU+700sEiScphPcxCPddtgineZkV5To9wWRfKaAW0TazOdPBdxREtF6N+DGO3EdsLM+2tV4yjVcDabd4gvf7PuLOZn7S9gKuB3HoT4a91R2VIejTas7Wlj40O2YjlIbibtTN10s6DPT3dGpxQqz6zq8IbTbM10YsDKLHfozCx/6LH1MUERERKRbBYphyjHuqXoNfPCAW1uy5WvPblZqgrtRwO00nugW6c2czCdHFXCL5DcF3CLSZlayGsRnxHCibgd3diANRpPqhpcL9mXPumfdC+GqTLjtK4Co26m90unPEGMjABFPYJ6Z4HasrN7txt3evVgi4VAbaaa6I9UxnbXwoWexw6zqjtS+WyGTptBveXuj/Zk6jsJkZUdxrinpRtPThX4LW6G0iIiISN9QPBhmnA7rPoG3bvNcZRHPWVGigFvyihaZFOkz9B0sIm2XnKL2EyMRawCgIauDO5fbB/+GuqWbmW29DXUbMlMeP3+PTfeexvVfDOLFxCQutG/nitiRHGsvSt82e5FJJzvU3soT3PGEkw6ivaFzrFGlRyvVHQ0xaiPx1h+wnQwDivyZhQtTlR2tdkxn9UynJqcL/TamqT5pEREREWlGjuDPbqaixFBFieSTrAluSx3cInlNAbeItJ3lhtl+ohB1A+6w42vpFhQEg7yTGOMG3FXfZK4IlnBD5R+4+bMvADgmeh4AJ9jPQ3JKOYZFIPlCw8kOtXNMcEfjCU8NR6qyo6a1jmlPdYe7rT7a9aG0adCoF7qlIDqr3iNrSjo1RR3yWQqlRURERKR75Ai4TSNBLNcik/FYk31Feq2sCW5TAbdIXlPALSJtlw64YxBrWlES9DWtpygJ+dhMkXuhaqX7p2Hy1je13PhfN9weWBxgXbV7f6UhP7jNJW6nd+o+fQXp+3xmaRVXfPKCW++R7JsOxzLvvncV2zTSQXO6IzprsUNPdUcqiG5m4cOgz2xS3yIiIiIi0uvlnOCOk8jRwU1CFSWSR5KLTMYcE1sDRCJ5TQG3iLRdsqIkYEQx4u4LgOyAu9Df9EdKScjHl06he6Fqlfunr4BH31ud3mdIaTAdcBcXZALuGDb+VKdz1tT2mysb+ChelfMQ/baZDJet9GKH2UFz47qOxosdZu8TsBVKi4iIiMg2Lsfie24HN00CbUMd3JJPkhPccUwsBdwieU0Bt4i0XdYEtxFze0Q+TQzjIOs1AAoCTV/8lgTt9AS3U/UNBoCvgI9WbcncbdaLCb8vE5g7ZqYf2sgKuBvwsV1ZiD//YEqTeo9UZ7eIiIiIiHSBZjq4447TtJKk8US3SG+WnOBOYGKb+j1SJJ8p4BaRtktOcAcJY0fcF6//jO9FFJu3nTEUluWe4N7suAG3kSzXrnH8vPLFxvQ+8YSTPh+wM/fhtzOBueHPVJSE8TO4JMC0kf274qsSEREREZHmZAXcMcfENhJYzVSUmAktMil5JGuC27Y0wS2SzxRwi0jbJSe4S4x6cKDe8bOScr6ccCqLP1jN3Qfv2OQmJUEfmyn0bFvf4H13fEJlCXvtMJDlG+sYZBfA1+727GlsMyvgbsBPSajlxS1FRERERKQLZAXcUWxsItgkF5lsXFGiCW7JJ8lKnSi2OrhF8pwCbhFpu2TAnbLMqcDB5KLvTuTSIyZTmiN0Lg352OJ4A+7ahHs/5x00gZWbG/jZfmPoV+huq3vo9vR+wawJbjO7osTx53wsERERERHpYlkd3FFsQkTcCW7HSQeEKQq4Ja/E3U8cRLHVwS2S5xRwi0jbBUs9F79wKtzNPqvZwNlnGYTxBuPVCXffgycPoaI06LnOtjIvoAO+rAnuQHZFiY+KoAJuEREREZGtLmuCO5KMEGzibs1g44oSR4tMSh5JvkETwVYHt0ie03ewiLRdoIgquzx9caNTAkDI13RxyZSRAwoJ4w2j6x038C4raBpSW1kd3Nnvotv+zAT3184gTXCLiIiIiHSHRhUlAJaRyBlwG4kYjuMgkhfiYQAijia4RfKdAm4RaZcNweHp8/UEsEwDXwsLcgwoCrDol/t4Qu56AoR8FsEcwbhlZH4sZfegWQ2ZRSk/d4ZQEtIHUEREREREtrrsihLHPW+RyFlR4iPmdnOL5INkRUkEnxaZFMlzCrhFpF02F4xIn6/HT9A2MYyWXwyMHlhE3MgOuP30yzG9DUDWfVlZHxMz7UzNSRSbElWUiIiIiIhsfbkmuIknF5n0TnD7iBOLK+CWPBFLdXBbWmRSJM8p4BaRdokFMxUlDU6AkL/5ehLP7cyA53apRSWbyJrg9kyGTzuJx50ZnBI5G4CioCa4RURERES2uqwJ7kwHd4JEjoDbJkYknujWwxPpsKwJbksd3CJ5TQmRiLSLGShKn6/Hn7NmJJeE5Yd45na5+rcBqJicPuvpQQuV8TtrPpvD7scgC/368SUiIiIistU1M8EdT+SoKDFixBRwS75IdnBHsTXBLZLnlBCJSLuYweL0+VSXdlsksia46wlQ0FxAvdMRXHzv87yZ2IFAoxcZATvzrnpBGyfHRURERESkE7IC7khyXR2bBHHHgUTjDu44UVWUSL5IvkGjRSZF8p8CbhFpFyuUFXA7/jZXlDhWppKk3gk0P/ltmvwjfiAAMxp9TMyfFXAXBvTjS0RERERkq8ue4HYyE9xuRYl3WtsmTrTxBPcXz0HdRtjp8K19pCLtk64o0QS3SL5TQiQi7eIPlaTPN+AnaLe1oiR7gttPyNd6x1nj8NxvaYJbRERERKRbZXVwR3HP26lFJh03zA47PgJGFB8xb8DtOHD799zzQ3eDsmHddtgirYq5FSURfNiWOrhF8pm+g0WkXfwFmYC7ngDBNk9weytKWqo2Of/gHRlcEuD8g3f0PnZWmK4JbhERERGRbpCrg9twcBLxTMCd3N6koqRhS+Z8pGbrH6tIeyQrStTBLZL/lBCJSLsECkvT5+sdP4MCbZyktrMCbsdPaQvB+EmzRvGTmSMxDO+LjOzXHJrgFhERERHpBjkCboBEIg6Ou4p8GB9Qj48YsezakroNOe9HpFdILjKpDm6R/KcJbhFpl2BRVsBNgH4F/hb2zpIVcDe0YXHKxuE2QHEw86K42UUqRURERESk63gWmcycd+KJ9AR3evFJI048kTXBXbs+cz4R27rHKdJemuAW6TMUcItIuxQUlaXPN+BvR8AdTJ91O7jbP4FdFso8lt5hFxERERHpBp4O7kzAbTixTMCdXnwy4XZzp1SvypxPhokivUa6g9umQBWYInlNAbeItEuwMNPBHcekX2HbAm4jO+B2AgQ7EHCXhnztvo2IiIiIiHRC9gS3kzXBnYhBwq0oiaW6ucma4E7E4f7jM/eTUMAtvYjjwOLrAfcTCIWqwBTJawq4RaRdjEBx+vwWp5B+BW0LnQ1f9iKTHZvgLm3jY4mIiIiISBcxMq/bY2S9ho9nJrjTi0+SIJZaZDJc7b2fuCpKpBf54lmI1QMQxaJQE9wieU0Bt4i0j2nxM9/F/CRyDpsoafMEt+nLrigJEOzAO+Q/mTmKooDN4VO3a/dtRURERESkA7ImuGNYJFIxQiLmTsECkWTwbZHwTnBn+WDFxq1/rCJtVbUyfTaGRWFAE9wi+UxvUYlIu31WuAufVLsTGW3t4LbJrKbe4HRsgruiNMgb580mYOu9ORERERGRbpEVcCcwiRsWppMAJwaOG2J7JrgTydf9jRaV/NOj73H3ngd2zzGLtCaQqd4soY4Cv+IxkXymlEhE2i3741v92xhwG/1GAhBzTFZS3qGAGyDoszAMLTApIiIiItItshaZTGCQSE5rG4l4uqIklrXIZHqC2/FOcPvwXhbpUfFI+uxAYwtFqigRyWv6DhaRThlYHGh9JyC+6wn8+tnV/Ce+Kw4mIb/eXxMRERER6fU8E9wGjmGCk1xkMt3BnaooiRNOV5R4J7grjQ2QSICp3wOkF4jUps+WU0WBFpkUyWv6n0VE2q0+kpm+CLXxhUCwqB/3xvdlE+5HwQK2XkCIiIiIiPR6WQH3FqeQhJGa4I6le7Yj5JjgbhRwX+q7GZ74VTccsEgbROvTZ++O76dFJkXynAJuEWm3hmj7P17YuDe7NOTrqsMREREREZGtJSvg3kgJTjLgJquiJN3BbSSINbPIJABv3bFVD1WkzaLuBPc7ie35d2KGAm6RPKeAW0Tarb4DAbdhGPitzI+ckqACbhERERGRXi+rg3ujU0zCSAaBTlYHd7qiJEG8mUUmG9+XSI9KTnC/kxgDGBR0cI0oEekdFHCLSLvZVscWecyu2ysO6h1yEREREZFeL2uCe4OTmeA2nUwHd3ZFSSzewgS342zdYxVpq0gdAA0ECPksTLNjv+OKSO+ggFtE2u3qo6YwoMjPNUdPadft7KyEWy8gRERERETyQJOKkuTl7EUmHXeb2UIHN+BOfYv0BlE34K5zAvQv9PfwwYhIZ2mEUkTabdrI/rz++9kYRvtCamXaIiIiIiJ5Jiuo3uAU45ipRSabVpTYxFvu4HYS7hT3v34KpUNh//O37rGLNCcZcNfjp7xIAbdIvtMEt4h0SHvDbQDb0o8cEREREZG8UjQofbaKQpzkRLfhxNIhdmqRydYnuBOw/jN47x544Yp0D7JIt0sH3AHKNcEtkveUNolIt7E0wi0iIiIikl98IR6a/SyTG/4fYICRmuBONOngtklkTXA3E3Bn15Rs/GJrHrlI85Id3PVOgPKiQA8fjIh0lgJuEek2hX6tTC0iIiIikm+MosFUUeReSFWUZC0ymaoocSe43W3N9m3Xb8qc37B0qxyvSKuSnx5QRYlI36CAW0S6zVVHT6GswMeCwyf19KGIiIiIiEgbhXxZgyrpgDueDrFTFSVWaxPcAHUbM+c/fKirD1WkbZLPzxgWAwo1wS2S7xRwi0i32WV4P94+/wCO2X14Tx+KiIiIiIi0UYHfzlxIdnDjxN0FI4GIk6woMeLE4y0sMglQnx1w/wvCNV19uCKtS376IIFJUdBuZWcR6e0UcItIt+rI4pQiIiIiItJzQv6s6CAZcJuJeM6KknZNcONARAG39IDkpw/imPgsRWMi+U7fxSIiIiIiIiLSrKCnoiQZcDux9JR2dkVJvJWA2/EE3ECktmsPVqQtks/dBCY+S0NYIvlOAbeIiIiIiIiINCu7g9tIBtxuB7c7wZ27gzt3RcmKld94Nyjglp6QfO7GMbFNRWMi+U7fxSIiIiIiIiLSLE8Ht9VywB1PuNuam+CO12zwblDALT0hK+DWBLdI/lPALSIiIiIiIiLNCnkqSpJ9204MJ9ljHHXcbRbxVie4g7HN3g0KuKUnJJ+fDoY6uEX6AH0Xi4iIiIiIiEizAr5MdJAg1cEdh0SuCe6WO7h94c3eDVEF3NIDUotMOia2JrhF8p4CbhERERERERFpVsA2GV9RzHZlIQqCfgD+5Ps7xpblAERydnDnDrgD0c2ey28tXbF1DlqkJckJbnVwi/QNduu7iIiIiIiIiMi2yjAMHjvrWyQcB+f+25pc75ngjicDbid3RUkotsVzedmqdezStYcr0rrk8zOBid/WBLdIvtPbVCIiIiIiIiLSIstMdhVbTefkYqQ6uBNNOrifju/CwyPPZ3XFvul9PMKqKJEe4LjP0wSGJrhF+gB9F4uIiIiIiIhImxhm04A7NcFtGg6JeLKaJFlRUkeQjwYdRKJ0eO47jNZsleMUaVF2RYk6uEXyngJuEREREREREWmTXAF33PBlzieDw1TAnQoQzUCB5zZhJxmKR+u30pGKtCC7osRSNCaS7zr0XXz99dczcuRIgsEg06dP57XXXmt231tvvRXDMDynYDDo2cdxHC644AIqKysJhULMnj2bzz77zLPPxo0bOfbYYykpKaGsrIyTTjqJmhq90ysiIiIiIiLSXYwcFSUJI7MtEUsF3MkJWcddxM8OFnlus9IpB8AXq95KRyrSAs8EtwJukXzX7u/ie++9l/nz53PhhRfy1ltvsfPOOzNnzhzWrl3b7G1KSkpYtWpV+vTVV195rr/sssu49tprueGGG3j11VcpLCxkzpw5NDQ0pPc59thj+fDDD3n66ad59NFH+e9//8spp5zS3sMXERERERERkQ4yLV+TbY7lz5xPeCtKYlj4LANfsNBzm8+dIQAUxr2LTop0Cycr4DZVUSKS79odcF911VXMmzePE088kR133JEbbriBgoICbrnllmZvYxgGFRUV6dPgwYPT1zmOwzXXXMN5553H9773PSZPnsztt9/OypUreeihhwD4+OOPefLJJ7n55puZPn06s2bN4i9/+Qv33HMPK1eubP9XLSIiIiIiIiLtlquiJHuCOxNweydkfQFvwL3U2Q6AfZzX4d8/T+8v0i0cd7FTBwO/rQlukXzXru/iSCTCm2++yezZszN3YJrMnj2bxYsXN3u7mpoaRowYwbBhw/je977Hhx9+mL7uyy+/ZPXq1Z77LC0tZfr06en7XLx4MWVlZUybNi29z+zZszFNk1dffTXnY4bDYaqqqjwnEREREREREekE02qyycma6m68yGRqQtYf8laUpCa4AXjzVvjo4S4/VJHmOAk34NYEt0jf0K6Ae/369cTjcc8ENsDgwYNZvXp1ztuMGzeOW265hYcffpg777yTRCLBnnvuyYoVKwDSt2vpPlevXs2gQYM819u2Tf/+/Zt93AULFlBaWpo+DRs2rD1fqoiIiIiIiIg0liPgNsys2pImi0xa2KaB3biiJDHEc5m6DV16mCItctTBLdKXbPXv4hkzZnDccccxZcoU9t57bx588EEGDhzIjTfeuFUf97e//S1btmxJn77++uut+ngiIiIiIiIifV6OihLDtHCS8UIiVVGSDBBjWG6AGCj23GaZU7F1j1OkJck3YhKOic/SBLdIvmtXwD1gwAAsy2LNmjWe7WvWrKGiom3/Ofl8PqZOncrSpUsB0rdr6T4rKiqaLGIZi8XYuHFjs48bCAQoKSnxnERERERERESkE5oLuFOT3ekJ7syErM8yYPie1BFM32YTRSScrGDRcbbaIYs04WQqSnya4BbJe+36Lvb7/ey6664sWrQovS2RSLBo0SJmzJjRpvuIx+O8//77VFZWAjBq1CgqKio891lVVcWrr76avs8ZM2awefNm3nzzzfQ+zzzzDIlEgunTp7fnSxARERERERGRjsoRcJuWhWO4AbfTqKIkhoVtmuALclLRX3klMYE/xw7HwSRK9n0p4JZulPyEQQJDHdwifUDT/5laMX/+fI4//nimTZvG7rvvzjXXXENtbS0nnngiAMcddxzbbbcdCxYsAOCSSy5hjz32YMyYMWzevJnLL7+cr776ipNPPhkAwzD4xS9+wR//+EfGjh3LqFGjOP/88xkyZAiHHnooABMmTGDu3LnMmzePG264gWg0yplnnskPfvADhgwZkvM4RURERERERKSL5ejgNk0zK+D2LjKZwMROVkDUhSr4wfrz07eLGxYQdS9oglu6i+NgJCe4DdPCMBRwi+S7dgfcRx99NOvWreOCCy5g9erVTJkyhSeffDK9SOTy5csxzcxg+KZNm5g3bx6rV6+mX79+7Lrrrrz88svsuOOO6X3OPfdcamtrOeWUU9i8eTOzZs3iySefJBjMfHzprrvu4swzz2T//ffHNE2OOOIIrr322s587SIiIiIiIiLSHs1NcKeC77g34I45pjvBDRQFvOG4Y5iZwe1Y/VY5XJEmkuE2gGW1OxYTkV6oQ9/JZ555JmeeeWbO65577jnP5auvvpqrr766xfszDINLLrmESy65pNl9+vfvz913393uYxURERERERGRLmLkmuC20tvTFSVxdzI7gi89wV0W8ntu5xhWJuCOKuCWbpJ6jgKG1fT5LCL5R036IiIiIiIiItI2qQqSLHZWB3c6PIxHAIhiu4tMAv0Kfd4bZoflkdouP1SRnLInuHNU7ohI/lHALSIiIiIiIiJtk4g22WSYdqab2/EG3BFsrGRFSb+CzAS33za9fd6a4Jbu4mRNcCvgFukTVDYkIiIiIiIiIm0TbzrBbVlmZhq7UUVJFBufmZzgzgq4BxT6cbIjiWjd1jlekcayKkrUwS3SN2iCW0RERERERETaJjmZnc20rMw0dqrCJLlfzLGwreQE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zjszZ84c1q5d2+Ltli1bxjnnnMO3vvWtJtetWrXKc7rlllswDIMjjjjCs98ll1zi2e9nP/tZew+/T2nujYHU6aKLLurUfT/00EOebeeccw6LFi3q3EG3wUUXXZT+GmzbZuTIkZx99tnU1NRs9cf+85//zK233tqmfZctW4ZhGLzzzjsdvg8RERERERFpXnEwU+PxbHxqi/smYt0wwe04sPwVePRsuHIH+L8fwIcPQqweysfAPr+Dn70FJy+E6adA0cCtf0x9SCSWqSgREWmrdleUXHXVVcybN48TTzwRgBtuuIHHHnuMW265hd/85jc5bxOPxzn22GO5+OKLeeGFF9i8ebPn+oqKCs/lhx9+mH333Zftt9/es724uLjJvs0Jh8OEw+H05aqqqjbdLp+sWrUqff7ee+/lggsuYMmSJeltRUVd++5wUVFRl99ncyZOnMjChQuJxWK89NJL/OQnP6Guro4bb7yxyb6RSAS/398lj1taWtor7kNERERERERc9506g3+9vYJh/cdxxn/OYt9BtXx/89+b7OcktmIH99pP3E7t9++Hzcsz24sGw05HwKQjYchULRbZSdH0BLf+HkWk7dr1llgkEuHNN99k9uzZmTswTWbPns3ixYubvd0ll1zCoEGDOOmkk1p9jDVr1vDYY4/l3PfSSy+lvLycqVOncvnllxOLNf+f14IFCygtLU2fhg0b1upjZ3Mch7pIrEdOjuO06RgrKirSp9LSUgzD8Gy75557mDBhAsFgkPHjx/PXv/41fdtIJMKZZ55JZWUlwWCQESNGsGDBAsCtgwE47LDDMAwjfbm5Oo8rrriCyspKysvLOeOMM4hGM++ar1q1ioMOOohQKMSoUaO4++67GTlyJNdcc02LX5tt21RUVDB06FCOPvpojj32WB555BHPcdx8882MGjWKYNBdUXnz5s2cfPLJDBw4kJKSEvbbbz/effddz/1eeumlDB48mOLiYk466SQaGho81zeuF0kkElx22WWMGTOGQCDA8OHD+Z//+R8ARo0aBcDUqVMxDIN99tkn532Ew2HOOussBg0aRDAYZNasWbz++uvp65977jkMw2DRokVMmzaNgoIC9txzT8+bFe+++y777rsvxcXFlJSUsOuuu/LGG2+0+HcoIiIiIiLSF+w+qj8LDp/MhIoSHkvswfXVe3muX5oYAoDT1YtMVq2El66FG2bBX6fDC1e64ba/CHY+Bn78Lzj7I5i7ALbbReF2F0gvMqmKEhFph3ZNcK9fv554PM7gwYM92wcPHswnn3yS8zYvvvgif//735vUODTntttuo7i4mMMPP9yz/ayzzmKXXXahf//+vPzyy/z2t79l1apVXHXVVTnv57e//S3z589PX66qqmpXyF0fjbPjBU+1ef+u9NElcyjwd279z7vuuosLLriA6667jqlTp/L2228zb948CgsLOf7447n22mt55JFHuO+++xg+fDhff/01X3/9NQCvv/46gwYN4h//+Adz587FsqxmH+fZZ5+lsrKSZ599lqVLl3L00UczZcoU5s2bB8Bxxx3H+vXree655/D5fMyfP7/VOptcQqEQkUgkfXnp0qU88MADPPjgg+njO/LIIwmFQjzxxBOUlpZy4403sv/++/Ppp5/Sv39/7rvvPi666CKuv/56Zs2axR133MG1117b5JMC2X77299y0003cfXVVzNr1ixWrVqVfq6/9tpr7L777ixcuJCJEyc2O0V+7rnn8sADD3DbbbcxYsQILrvsMubMmcPSpUvp379/er/f//73XHnllQwcOJCf/vSn/OQnP+Gll14C4Nhjj2Xq1Kn87W9/w7Is3nnnHXw+rbgtIiIiIiLbjopSd7hpZa0Dwcz22uSFeFd0cDdsgY8ecae1v3wBSA6gmTaMOQAmHwk7HAj+gs4/ljQRjWcWmRQRaavOpaitqK6u5sc//jE33XQTAwYMaNNtbrnlFo499tj0VG5Kdlg9efJk/H4/p556KgsWLCAQCDS5n0AgkHP7tuLCCy/kyiuvTL9RMGrUKD766CNuvPFGjj/+eJYvX87YsWOZNWsWhmEwYsSI9G0HDnQ7wsrKylqthOnXrx/XXXcdlmUxfvx4DjroIBYtWsS8efP45JNPWLhwIa+//jrTpk0D4Oabb2bs2LHt+lrefPNN7r77bvbbb7/0tkgkwu23354+1hdffJHXXnuNtWvXpv/dr7jiCh566CH++c9/csopp3DNNddw0kknpT8d8Mc//pGFCxc2meJOqa6u5s9//jPXXXcdxx9/PACjR49m1qxZnr+n8vLyZv+eamtr+dvf/satt97KgQceCMBNN93E008/zd///nd+9avMKuD/8z//w9577w3Ab37zGw466CAaGhoIBoMsX76cX/3qV4wfPx6g3X+HIiIiIiIi+a4yGXBHGkUZDbjDRk6igx3csTB89jS8dy98+hTEM3WnDNvDDbV3PAwKyzt2/9JmWmRSRDqiXQH3gAEDsCyLNWvWeLavWbMmZ8D3+eefs2zZMg455JD0tkTC/WFl2zZLlixh9OjR6eteeOEFlixZwr333tvqsUyfPp1YLMayZcsYN25ce76MNgn5LD66ZE6X329bH7szamtr+fzzzznppJPSk9QAsVgs3Q99wgkncMABBzBu3Djmzp3LwQcfzLe//e12P9bEiRM9E96VlZW8//77ACxZsgTbttlll13S148ZM4Z+/fq1er/vv/8+RUVFxONxIpEIBx10ENddd136+hEjRqQDZnArPGpqaigv977gqK+v5/PPPwfg448/5qc//ann+hkzZvDss8/mPIaPP/6YcDjM/vvv3+rxNufzzz8nGo0yc+bM9Dafz8fuu+/Oxx9/7Nl38uTJ6fOVlZUArF27luHDhzN//nxOPvlk7rjjDmbPns2RRx7p+d4RERERERHp60pDPsoKfGyu8wbZcccNQ9tVUZJIwPKX4b374KOH3MntlIHj3U7tSUdCvxHN3oV0vXRFia26FxFpu3YF3H6/n1133ZVFixalO4YTiQSLFi3izDPPbLL/+PHj02FnynnnnZeejG1cGfL3v/+dXXfdlZ133rnVY3nnnXcwTZNBgwa150toM8MwOl0T0lNqamoAd1J4+vTpnutSYfQuu+zCl19+yRNPPMHChQs56qijmD17Nv/85z/b9ViNazIMw0i/idEZ48aN45FHHsG2bYYMGdKk/qOwsNBzuaamhsrKSp577rkm91VWVtahYwiFQh26XUdl/10aye621N/lRRddxA9/+EMee+wxnnjiCS688ELuueceDjvssG49RhERERERkZ5iGAZmjp7rGO7vuU48xvkPfUB5kZ8BRQEGFPkpLwowoChAeZGf4oCNsfYjd1L7/QegakXmToorYdL3YdJRUDFJfdo9JBrTBLeItF+7E9z58+dz/PHHM23aNHbffXeuueYaamtrOfHEEwG3c3m77bZjwYIFBINBdtppJ8/tU2Fj4+1VVVXcf//9XHnllU0ec/Hixbz66qvpRfYWL17M2WefzY9+9KM2TQNvawYPHsyQd5kEJAAAJXFJREFUIUP44osvOPbYY5vdr6SkhKOPPpqjjz6a73//+8ydO5eNGzfSv39/fD5fp/vLxo0bRywW4+2332bXXXcF3O7sTZs2tXpbv9/PmDFj2vxYu+yyC6tXr8a27fSimI1NmDCBV199leOOOy697ZVXXmn2PseOHUsoFGLRokWcfPLJOY8RWu55Gz16NH6/n5deeildAxONRnn99df5xS9+0YavLGOHHXZghx124Oyzz+aYY47hH//4hwJuERERERHZpsw/YAfOe+gDz7Y4bhhqGQnueOWrJrcZwnq+a73MofbLjDeWp7fXm4V8Wr4fK4YeTGTYDMqLChjgBBhQHaZfoV8haw9QB7eIdES7A+6jjz6adevWccEFF7B69WqmTJnCk08+mV54cvny5Zhm+38Q3XPPPTiOwzHHHNPkukAgwD333MNFF11EOBxm1KhRnH322Z5ebvG6+OKLOeussygtLWXu3LmEw2HeeOMNNm3axPz587nqqquorKxk6tSpmKbJ/fffT0VFRfoNiJEjR7Jo0SJmzpxJIBDo0BsJ48ePZ/bs2Zxyyin87W9/w+fz8ctf/pJQKJSeUO4qs2fPZsaMGRx66KFcdtll7LDDDqxcuZLHHnuMww47jGnTpvHzn/+cE044gWnTpjFz5kzuuusuPvzww2YXmQwGg/z617/m3HPPxe/3M3PmTNatW8eHH37ISSedxKBBgwiFQjz55JMMHTqUYDCYroBJKSws5LTTTuNXv/oV/fv3Z/jw4Vx22WXU1dWlu8BbU19fz69+9Su+//3vM2rUKFasWMHrr7/OEUcc0em/NxERERERkXzyw92HM7x/Adyd2Zaa4D585woqy8awviZC3Zb1jN+4iBm1zzAl8WF637Bj81xiCg/FZ/JMYirhOj98DSz+gMb6FfgoLwpQXuhnQHGAAYX+5DR4oMmUeKHf6vLfc7c1juOog1tEOqRDHRxnnnlmzkoSIGdFRLZbb7015/ZTTjmFU045Jed1u+yyS4uTttLUySefTEFBAZdffjm/+tWvKCwsZNKkSemp4eLiYi677DI+++wzLMtit9124/HHH0+/OXHllVcyf/58brrpJrbbbjuWLVvWoeO4/fbbOemkk9hrr72oqKhgwYIFfPjhh00WEe0swzB4/PHH+f3vf8+JJ57IunXrqKioYK+99kq/+XL00Ufz+eefc+6559LQ0MARRxzBaaedxlNPPdXs/Z5//vnY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t/Hwww+nJ+6fe+65nBUlzz//PLvvvjuBQIDKykp+85vfEIvF0tfvs88+nHXWWZx77rn079+fiooKz/S+4zhcdNFFDB8+nEAgwJAhQzjrrLOa/fsXERERERERERHJF5rgbk60Dv40pGce+3crwV/Yqbu46667uOCCC7juuuuYOnUqb7/9NvPmzaOwsJDjjz+ea6+9lkceeYT77ruP4cOH8/XXX/P1118D8PrrrzNo0CD+8Y9/MHfuXCzLavZxnn32WSorK3n22WdZunQpRx99NFOmTGHevHkAHHfccaxfv57nnnsOn8/H/PnzWbt2bbP3l0gkuOeeezj22GObTDKHQiFOP/10zjvvPDZu3Ej//v0BuO222zjppJN47bXXeOONNzjllFMYPnw48+bN44033uCss87ijjvuYM8992Tjxo288MIL6ftcsGABd955JzfccANjx47lv//9Lz/60Y8YOHAge++9d3q/3/zmN1xxxRVsv/329OvXj5tuuom77rqLP/zhD56/8x/+8Ifpr2Po0KHcf//9lJeX8/LLL3PKKadQWVnJUUcdxTnnnMPHH39MVVUV//jHPwDo378/K1eu9HzN33zzDd/5znc44YQTuP322/nkk0+YN28ewWDQE2LfdtttzJ8/n1dffZXFixdzwgknMHPmTA444AAeeOABrr76au655x4mTpzI6tWreffdd5v9NxAREREREREREckXCrj7qAsvvJArr7ySww8/HIBRo0bx0UcfceONN3L88cezfPlyxo4dy6xZszAMgxEjRqRvO3DgQADKysparcvo168f1113HZZlMX78eA466CAWLVrEvHnz+OSTT1i4cCGvv/4606ZNA+Dmm29m7Nixzd7funXr2Lx5MxMmTMh5/YQJE3Ach6VLl7L77rsDbm/11VdfjWEYjBs3jvfff5+rr76aefPmsXz5cgoLCzn44IMpLi5mxIgRTJ06FYBwOMyf/vQnFi5cyIwZMwDYfvvtefHFF7nxxhs9Afcll1zCAQcckL587LHHct1116UD7k8//ZQ333yTO++8EwCfz8fFF1+c3n/UqFEsXryY++67j6OOOoqioiJCoRDhcLjFv+O//vWvDBs2jOuuuw7DMBg/fjwrV67k17/+NRdccAGm6X4IY/LkyVx44YUAjB07luuuu45FixZxwAEHsHz5cioqKpg9ezY+n4/hw4en/+5ERERERERERETymQLu5vgK3EnqnnrsTqitreXzzz/npJNOSk9Sg1vlUVpaCrj1IgcccADjxo1j7ty5HHzwwXz7299u92NNnDjRM+FdWVnJ+++/D8CSJUuwbZtddtklff2YMWPo169fq/frtLGmBWCPPfbAMIz05RkzZnDllVcSj8c54IADGDFiBNtvvz1z585l7ty5HHbYYRQUFLB06VLq6uo8wTW49S2pEDwlFdCn/OAHP+Ccc87hlVdeYY899uCuu+5il112Yfz48el9rr/+em655RaWL19OfX09kUjEU/HSFh9//DEzZszwfH0zZ86kpqaGFStWMHz4cMANuLNVVlamJ+WPPPJIrrnmmvTfwXe+8x0OOeSQrdYjLiIiIiIiIiIi0l2UcDXHMDpdE9JTampqALjpppuYPn2657pUGL3LLrvw5Zdf8sQTT7Bw4UKOOuooZs+e7emfbgufz+e5bBgGiUSiw8c+cOBAysrK+Pjjj3Ne//HHH2MYBmPGjGnT/RUXF/PWW2/x3HPP8Z///IcLLriAiy66iNdffz399/TYY4+x3XbbeW4XCAQ8lwsLvc+FiooK9ttvP+6++2722GMP7r77bk477bT09ffccw/nnHMOV155JTNmzKC4uJjLL7+cV199tU3H3V4t/TsMGzaMJUuWsHDhQp5++mlOP/10Lr/8cp5//vkmtxMREREREREREcknWmSyDxo8eDBDhgzhiy++YMyYMZ7TqFGj0vuVlJRw9NFHc9NNN3HvvffywAMPsHHjRsANTOPxeKeOY9y4ccRiMd5+++30tqVLl7Jp06Zmb2OaJkcddRR33303q1ev9lxXX1/PX//6V+bMmZPu3waahMavvPIKY8eOTYf5tm0ze/ZsLrvsMt577z2WLVvGM888w4477kggEGD58uVN/p6GDRvW6td37LHHcu+997J48WK++OILfvCDH6Sve+mll9hzzz05/fTTmTp1KmPGjOHzzz/33N7v97f6dzxhwgQWL17smWh/6aWXKC4uZujQoa0eY0ooFOKQQw7h2muv5bnnnmPx4sXpSXsREREREREREZF8pQnuPuriiy/mrLPOorS0lLlz5xIOh3njjTfYtGkT8+fP56qrrqKyspKpU6dimib3338/FRUVlJWVATBy5EgWLVrEzJkzCQQCbaoVaWz8+PHMnj2bU045hb/97W/4fD5++ctfEgqFPJUbjf3pT39K90dfdtll7LTTTnz55Zecd955RKNRrr/+es/+y5cvZ/78+Zx66qm89dZb/OUvf+HKK68E4NFHH+WLL75gr732ol+/fjz++OMkEgnGjRtHcXEx55xzDmeffTaJRIJZs2axZcsWXnrpJUpKSjj++ONb/PoOP/xwTjvtNE477TT23XdfhgzJLEo6duxYbr/9dp566ilGjRrFHXfcweuvv+55g2HkyJE89dRTLFmyhPLy8nR9TLbTTz+da665hp/97GeceeaZLFmyhAsvvJD58+en+7dbc+uttxKPx5k+fToFBQXceeedhEIhT++6iIiIiIiIiIhIPtIEdx918sknc/PNN/OPf/yDSZMmsffee3PrrbemA9bi4mIuu+wypk2bxm677cayZct4/PHH06HplVdeydNPP82wYcOa9FG3x+23387gwYPZa6+9OOyww5g3bx7FxcUEg8Fmb1NeXs4rr7zCvvvuy6mnnsro0aM56qijGD16NK+//jrbb7+9Z//jjjuO+vp6dt99d8444wx+/vOfc8oppwDuQpkPPvgg++23HxMmTOCGG27g//7v/5g4cSIAf/jDHzj//PNZsGABEyZMYO7cuTz22GOeILo5xcXFHHLIIbz77rsce+yxnutOPfVUDj/8cI4++mimT5/Ohg0bOP300z37zJs3j3HjxjFt2jQGDhzISy+91OQxtttuOx5//HFee+01dt55Z376059y0kkncd5557V6fCllZWXcdNNNzJw5k8mTJ7Nw4UL+/e9/U15e3ub7EBERERERERER6Y0Mpz2r+eWxqqoqSktL2bJlCyUlJZ7rGhoa+PLLLxk1alSLwat03ooVKxg2bBgLFy5k//337+nDkUb0vSAiIiIiIiIiIj2tpSy3MVWUyFb1zDPPUFNTw6RJk1i1ahXnnnsuI0eOZK+99urpQxMREREREREREZE8p4BbtqpoNMrvfvc7vvjiC4qLi9lzzz2566678Pl8PX1oIiIiIiIiIiIikucUcMtWNWfOHObMmdPThyEiIiIiIiIiIiJ9kBaZFBEREREREREREZG8pIA7SyKR6OlDEOlR+h4QEREREREREZF8oooSwO/3Y5omK1euZODAgfj9fgzD6OnDEuk2juMQiURYt24dpmni9/t7+pBERERERERERERapYAbME2TUaNGsWrVKlauXNnThyPSYwoKChg+fDimqQ93iIiIiIiIiIhI76eAO8nv9zN8+HBisRjxeLynD0ek21mWhW3b+vSCiIiIiIiIiIjkDQXcWQzDwOfz4fP5evpQRERERERERERERKQV6iEQERERERERERERkbykgFtERERERERERERE8pICbhERERERERERERHJS9tMB7fjOABUVVX18JGIiIiIiIiIiIiISHNSGW4q023JNhNwV1dXAzBs2LAePhIRERERERERERERaU11dTWlpaUt7mM4bYnB+4BEIsHKlSspLi7GMIyePhxpRVVVFcOGDePrr7+mpKSkpw9H+jg936S76Lkm3UnPN+kueq5Jd9LzTbqLnmvSXfRck+6UT883x3Gorq5myJAhmGbLLdvbzAS3aZoMHTq0pw9D2qmkpKTXf8NJ36Hnm3QXPdekO+n5Jt1FzzXpTnq+SXfRc026i55r0p3y5fnW2uR2ihaZFBEREREREREREZG8pIBbRERERERERERERPKSAm7plQKBABdeeCGBQKCnD0W2AXq+SXfRc026k55v0l30XJPupOebdBc916S76Lkm3amvPt+2mUUmRURERERERERERKRv0QS3iIiIiIiIiIiIiOQlBdwiIiIiIiIiIiIikpcUcIuIiIiIiIiIiIhIXlLALSIiIiIiIiIiIiJ5SQG3iIiIiIiIiIiIiOQlBdzCggUL2G233SguLmbQoEEceuihLFmyxLNPQ0MDZ5xxBuXl5RQVFXHEEUewZs2a9PXvvvsuxxxzDMOGDSMUCjFhwgT+/Oc/e+7jxRdfZObMmZSXlxMKhRg/fjxXX311q8fnOA4XXHABlZWVhEIhZs+ezWeffZa+ftmyZZx00kmMGjWKUCjE6NGjufDCC4lEIi3e74MPPsgBBxzAwIEDKSkpYcaMGTz11FPN7n/ppZdiGAa/+MUvWj1myU3PteafaxdddBGGYXhO48ePb/WYJTc911r+ufbNN9/wox/9KH3ckyZN4o033mj1uCU3Pd+af76NHDmyyc82wzA444wzWj1uaUrPteafa/F4/P+3d/cxVdV/HMA/hDwOQUwBkS4+EUwdhWNTKGMMF5FLZ5uZA4NROpQNnE4gmCPmdFaMZeBDpalTHsKmaPiAjsBMSCWuwU0TedDEINwMwcBU7vv3R3nxeO+53Kv4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tVpotVqICPLy8qDVanH16lWr15mYNXNZs2RtyHLMmnrWMjIycPLkSbS1taGhoQEZGRmws7PD8ePHrV5n+hvzpp63Rw1Hr40NboKImNx27txpmNPf348VK1bA09MTrq6uWLBggeLDSHZ2tskaD//E6NNPP8W0adPg6uoKd3d3hISEYMuWLUa/mvoovV6PtWvXwtvbG05OToiKisKlS5cM+3fu3Kl6D+ZERESYPMbcTyjZ4H4yzJp61hYtWoRx48bB0dER48ePx6JFi9Dc3GzZwpIRZs38c+2bb77B9OnT4eTkhKCgIHz++edDLyqpYt7M562iogIiojgnPR5mTT1rPT09SE1NhUajgbOzMyZNmoSsrCz89ddfli0uGbH1vDU0NCAyMhKjR4+Gk5MTJkyYgKSkJLS3tw9571VVVXjxxRfh6OiISZMmKe75wX5rP0eQOmZNPWuWrA1ZjllTz1piYiL8/f3h6OiIsWPHIioqis3tJ8S8qeftUcPRa7MD/nkzOBERERERERERERGRDXnmf30BRERERERERERERESPgw1uIiIiIiIiIiIiIrJJbHATERERERERERERkU1ig5uIiIiIiIiIiIiIbBIb3ERERERERERERERkk9jgJiIiIiIiIiIiIiKbxAY3EREREREREREREdkkNriJiIiIiIiIiIiIyCaxwU1ERERERERERERENokNbiIiIiIiIiIiIiKySWxwExEREREREREREZFN+g9HuQ3c86a9rgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "test_predictions = model.predict(X_test).flatten()\n", + "\n", + "plt.figure(figsize=(18, 8))\n", + "plt.plot(dates_test, test_predictions)\n", + "plt.plot(dates_test, y_test)\n", + "plt.legend(['Testing Predictions', 'Testing Observations'])" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "41e28b3f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABaYAAAKTCAYAAADi998CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hU1dbH8e+ZSe8QQhIgkFACAUMHpQgoKIiiYKGICkqxIVcRUa9UGxZQRES9+AqiIFa8XgEREBRBEJWmhF4CEkAEEgKkzrx/TDLJpJEyySTw+zzPmDPn7LPPmgPEycqatQ2r1WpFRERERERERERERKSCmFwdgIiIiIiIiIiIiIhcXpSYFhEREREREREREZEKpcS0iIiIiIiIiIiIiFQoJaZFREREREREREREpEIpMS0iIiIiIiIiIiIiFUqJaRERERERERERERGpUEpMi4iIiIiIiIiIiEiFcnN1AMVhsVg4evQo/v7+GIbh6nBEREREREREREREpABWq5WzZ89Sq1YtTKbC66KrRGL66NGjREREuDoMERERERERERERESmGw4cPU6dOnUKPV4nEtL+/P2B7MQEBAS6ORkREREREREREREQKkpSUREREhD2nW5gqkZjObt8REBCgxLSIiIiIiIiIiIhIJXexlsxa/FBEREREREREREREKpQS0yIiIiIiIiIiIiJSoZSYFhEREREREREREZEKVSV6TIuIiIiIiIiIiJRFZmYm6enprg5DpMpzd3fHbDaXeR4lpkVERERERERE5JJltVo5duwYZ86ccXUoIpeMoKAgwsLCLrrAYVGUmBYRERERERERkUtWdlK6Zs2a+Pj4lCmRJnK5s1qtnD9/nhMnTgAQHh5e6rmUmBYRERERERERkUtSZmamPSkdHBzs6nBELgne3t4AnDhxgpo1a5a6rYcWPxQRERERERERkUtSdk9pHx8fF0cicmnJ/jdVlr7tSkyLiIiIiIiIiMglTe07RJzLGf+mlJgWERERERERERERkQqlxLSIiIiIiIiIiMglLjIykhkzZhR7/Jo1azAMgzNnzpRbTBUt72uaN28eQUFBZZrTGXNcrpSYFhERERERERERqSQMwyjyMXny5FLNu2nTJkaOHFns8R07diQhIYHAwMBSXa+4spPF2Y/Q0FBuu+029u/fX67XBRgwYAC7d+8u9viCkvslnUNyuLk6ABEREREREREREbFJSEiwb3/yySdMnDiRXbt22ff5+fnZt61WK5mZmbi5XTzFFxISUqI4PDw8CAsLK9E5ZbFr1y78/f3Zs2cPI0eOpE+fPmzbtg2z2ewwriSv+WK8vb3x9vZ2+RyXK1VMi4iIiIiIiIiIVBJhYWH2R2BgIIZh2J/v3LkTf39/li1bRps2bfD09OSnn35i37593HLLLYSGhuLn50e7du1YuXKlw7x5q30Nw+C9996jX79++Pj40KhRI77++mv78cLaXixfvpyYmBj8/Pzo1auXQyI9IyOD0aNHExQURHBwME8++SRDhgyhb9++F33dNWvWJDw8nC5dujBx4kR27NjB3r177XHkfc0Wi4WpU6cSFRWFt7c3LVq04PPPP3eYc+nSpURHR+Pt7c0111zDwYMHHY4X1Ibjf//7H+3atcPLy4saNWrQr18/ALp168ahQ4d47LHH7NXdhc3x9ttv06BBAzw8PGjcuDEffvihw/GL3fvTp08zePBgQkJC8Pb2plGjRsydO/ei97CqUWJaREREREREREQuC1arlfNpGS55WK1Wp72Op556ipdeeom4uDiaN29OcnIyvXv3ZtWqVWzevJlevXrRp08f4uPji5xnypQp9O/fn23bttG7d28GDx7MqVOnCh1//vx5pk2bxocffsiPP/5IfHw8Y8eOtR9/+eWXWbBgAXPnzmXdunUkJSXx1Vdflfj1ZVcgp6WlFfqap06dyvz583nnnXf4888/eeyxx7jrrrv44YcfADh8+DC33norffr0YcuWLQwfPpynnnqqyOsuWbKEfv360bt3bzZv3syqVato3749AF9++SV16tTh2WefJSEhwSEhn9vixYv517/+xeOPP84ff/zB/fffz7333svq1asdxhV17ydMmMCOHTtYtmwZcXFxvP3229SoUaPE97GyUysPERERERERERG5LFxIz6TpxOUuufaOZ3vi4+GcVNyzzz7LddddZ39evXp1WrRoYX/+3HPPsXjxYr7++mtGjRpV6DxDhw5l0KBBALz44ovMnDmTX375hV69ehU4Pj09nXfeeYcGDRoAMGrUKJ599ln78TfffJOnn37aXmU8a9Ysli5dWqLXlpCQwLRp06hduzaNGzdm/fr1+V5zamoqL774IitXrqRDhw4A1K9fn59++ol3332Xrl272quW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fQwdOtQJoYuIiIiIiIhIlXbmsH3TguHCQEQufZGRkcyYMaPY49esWYNhGJw5c6bcYiqpyZMn07JlS1eH4VQl/XO5lJR7j2kRERERERERkQIl5iSmDawuDESk8jAMo8jH5MmTSzXvpk2bGDlyZLHHd+zYkYSEBAIDA0t1vZLIzMzk9ddfJzY2Fi8vL6pVq8YNN9zAunXryv3aFWXevHkEBQXl21/SP5dLiZurAxARERERERGRy5RDYlpEwNYmN9snn3zCxIkT2bVrl32fn5+ffdtqtZKZmYmb28VTfCEhJevj7uHhQVhY+S9KarVaGThwICtXruTVV1+le/fuJCUl8dZbb9GtWzc+++wz+vbtW+5xFCY9PR13d/dym7+kfy6XElVMi4iIiIiIiIhr5GrlgSqmRQAICwuzPwIDAzEMw/58586d+Pv7s2zZMtq0aYOnpyc//fQT+/bt45ZbbiE0NBQ/Pz/atWvHypUrHebN2zLCMAzee+89+vXrh4+PD40aNeLrr7+2H8/byiO74nf58uXExMTg5+dHr169HBLpGRkZjB49mqCgIIKDg3nyyScZMmRIkYnlTz/9lM8//5z58+czfPhwoqKiaNGiBf/5z3+4+eabGT58OOfOnXM459133yUiIgIfHx/69+9PYmKiQ9zt27fH19eXoKAgOnXqxKFDh+zH//vf/9K6dWu8vLyoX78+U6ZMISMjw+G+vP3229x88834+vry3HPPUadOHd5++22HGDZv3ozJZLLP/dprrxEbG4uvry8RERE89NBDJCcn22O69957SUxMzFf5nvfPJT4+nltuuQU/Pz8CAgLo378/x4/n9OPPbmfy4YcfEhkZSWBgIAMHDuTs2bP2MZ9//jmxsbF4e3sTHBxMjx498t3DykCJaRERERERERFxDbXykIpmtULaOdc8rM77O/7UU0/x0ksvERcXR/PmzUlOTqZ3796sWrWKzZs306tXL/r06UN8fHyR80yZMoX+/fuzbds2evfuzeDBgzl16lSh48+fP8+0adP48MMP+fHHH4mPj2fs2LH24y+//DILFixg7ty5rFu3jqSkJL766qsiY1i4cCHR0dH06dMn37HHH3+cf/75hxUrVtj37d27l08//ZT//e9/fPvtt2zevJmHHnoIsCXG+/btS9euXdm2bRs///wzI0eOxDBsn8lYu3Yt99xzD//617/YsWMH7777LvPmzeOFF15wuO7kyZPp168f27dvZ/jw4QwaNIiFCxc6jFmwYAGdOnWiXr16AJhMJmbOnMmff/7JBx98wPfff8+4ceMAW1uUGTNmEBAQQEJCAgkJCQ73LZvFYuGWW27h1KlT/PDDD6xYsYL9+/czYMAAh3H79u3jq6++4ptvvuGbb77hhx9+4KWXXgJsFfeDBg3ivvvuIy4ujjVr1nDrrbdideLfP2dRKw8RERERERERcY1cFdMmJaZLxWqxcGr+fHxatcK7RQtXh1P5pZ+HF2u55tr/Pgoevk6Z6tlnn+W6666zP69evTotcv35P/fccyxevJivv/6aUaNGFTrP0KFDGTRoEAAvvvgiM2fO5JdffqFXr14Fjk9PT+edd96hQYMGAIwaNYpnn33WfvzNN9/k6aefpl+/fgDMmjWLpUuXFvladu/eTUxMTIHHsvfv3r3bvi8lJYX58+dTu3Zt+zVvvPFGpk+fjoeHB4mJidx00032GHPPPWXKFJ566imGDBkCQP369XnuuecYN24ckyZNso+78847uffee+3PBw8ezPTp04mPj6du3bpYLBYWLVrE+PHj7WMeffRR+3ZkZCTPP/88DzzwALNnz8bDw8Oh+r0wq1atYvv27Rw4cICIiAgA5s+fT7Nmzdi0aRPt2rUDbAnsefPm4e/vD8Ddd9/NqlWreOGFF0hISCAjI4Nbb73VnjSPjY0t9JqupIppEREREREREal4Vqsqpp0g6ZtvOPHSyxwcMNDVoUgFatu2rcPz5ORkxo4dS0xMDEFBQfj5+REXF3fRiunmzZvbt319fQkICODEiROFjvfx8bEnfAHCw8Pt4xMTEzl+/Djt27e3HzebzbRp0+air6ck1bx169a1J6UBOnTogMViYdeuXVSvXp2hQ4fSs2dP+vTpwxtvvOHQamTr1q08++yz+Pn52R8jRowgISGB8+fP28flvb8tW7YkJibGXjX9ww8/cOLECe644w77mJUrV9K9e3dq166Nv78/d999N//884/DvBcTFxdHRESEPSkN0LRpU4KCgoiLi7Pvi4yMtCelwfHPoUWLFnTv3p3Y2FjuuOMO5syZw+nTp4sdQ0VSxbSIiIiIiIiIVLyUM5CWbH+qxQ9LJ3XPXleHULW4+9gql111bSfx9XWsvB47diwrVqxg2rRpNGzYEG9vb26//XbS0tKKDinPon6GYWCxWEo0vqwtIqKjox2Srrll74+Oji72fHPnzmX06NF8++23fPLJJ4wfP54VK1Zw1VVXkZyczJQpU7j11lvznefl5WXfznt/wVY1vXDhQp566ikWLlxIr169CA4OBuDgwYPcdNNNPPjgg7zwwgtUr16dn376iWHDhpGWloaPj/P+7KHoPzez2cyKFStYv3493333HW+++SbPPPMMGzduJCoqyqlxlJUqpkVERERERESk4jksfKiK6VIzlNIvEcOwtdNwxaMc/6zWrVvH0KFD6devH7GxsYSFhXHw4MFyu15BAgMDCQ0NZdOmTfZ9mZmZ/P7770WeN3DgQPbs2cP//ve/fMemT59OcHCwQ9uS+Ph4jh7N+eXChg0bMJlMNG7c2L6vVatWPP3006xfv54rrrjCXuncunVrdu3aRcOGDfM9TKai06R33nknf/zxB7/99huff/45gwcPth/77bffsFgsTJ8+nauuuoro6GiHGAE8PDzIzMws8hoxMTEcPnyYw4dzvj/u2LGDM2fO0LRp0yLPzc0wDDp16sSUKVPYvHkzHh4eLF68uNjnVxRVTIuIiIiIiIhIxUtUYrpAWz6GTXPgjnkQVNfV0UgV0ahRI7788kv69OmDYRhMmDChyMrn8vLII48wdepUGjZsSJMmTXjzzTc5ffq0ffHBggwcOJDPPvuMIUOG8Oqrr9K9e3eSkpJ46623+Prrr/nss88cKpi9vLwYMmQI06ZNIykpidGjR9O/f3/CwsI4cOAA//nPf7j55pupVasWu3btYs+ePdxzzz0ATJw4kZtuuom6dety++23YzKZ2Lp1K3/88QfPP/98ka8tMjKSjh07MmzYMDIzM7n55pvtxxo2bEh6ejpvvvkmffr0Yd26dbzzzjv5zk9OTmbVqlW0aNECHx+ffJXUPXr0IDY2lsGDBzNjxgwyMjJ46KGH6Nq1a772IoXZuHEjq1at4vrrr6dmzZps3LiRv//+u9A+3q6kimkRERERERERqXiJR1wdQeX01QPw12/wfdFJMpHcXnvtNapVq0bHjh3p06cPPXv2pHXr1hUex5NPPsmgQYO455576NChA35+fvTs2dOhTUZehmHw6aef8u9//5vXX3+dxo0bc/XVV3Po0CHWrFlD3759HcY3bNiQW2+9ld69e3P99dfTvHlzZs+eDdh6YO/cuZPbbruN6OhoRo4cycMPP8z9998PQM+ePfnmm2/47rvvaNeuHVdddRWvv/66fZHAixk8eDBbt26lX79+eHt72/e3aNGC1157jZdffpkrrriCBQsWMHXqVIdzO3bsyAMPPMCAAQMICQnhlVdeKfBe/Pe//6VatWp06dKFHj16UL9+fT755JNixQcQEBDAjz/+SO/evYmOjmb8+PFMnz6dG264odhzVBTDWtZGMBUgKSmJwMBAEhMTCQgIcHU4IiIiIiIiIlJWy5+Bn2dxxlSdIMspfspsRufn1rs6KtebHGj7GnElDPvuosNPvD6Df959F4CYnQX36b2cpaSkcODAAaKioopMjkr5sFgsxMTE0L9/f5577jlXhyNOVNS/reLmctXKQ0REREREREQqXlYrj7/dQglKO6XFD/Mqbh2hbpxUIocOHeK7776ja9eupKamMmvWLA4cOMCdd97p6tCkElIrDxERERERERGpeFmLH550CwXUY9oZ/vm//2Nvj+tIP3bM1aHIZcpkMjFv3jzatWtHp06d2L59OytXrqyU/Y3F9VQxLSIiIiIiIiIVL6vH9D9uYQCYDCWmHZX8fpx4dRoAf78xk1pTX3R2QCIXFRERwbp161wdhlQRqpgWERERERERkYqVngLnTgBwxhwMwFUm9Ud2UOxWHvl7eVhTU50cjIiI8ykxLSIiIiIiIiIVK6taGndfqmX+7dpYKi1VkIvIpU2JaRERERERERGpWInxtq9BEViVmihYMSumjQIqpkVEqgJ99xcRERERERGRipVdMR0YgdXIlZoobvuKy8GFU8UadjT5aAF7dR9FpPJTYlpEREREREREKtaZw7aveSumLZmuiacyOn2wWMNOXvgn377U/QecHIyIiPMpMS0iIiIiIiIiFSsxKzEdWAcruVpRWC2uiacKK6iVR+rOnS6IRESkZJSYFhEREREREZGKlV0xHVg3TysPVUyLOEu3bt149NFH7c8jIyOZMWNGkecYhsFXX31V5ms7a57KYt68eQQFBdmfT548mZYtW5ZpTmfMUdUpMS0iIiIiIiIiFSsxVysPw5yz/3KvmC5NKxMtfnjJ6dOnD7169Srw2Nq1azEMg23btpV43k2bNjFy5MiyhuegsORqQkICN9xwg1Ovlde8efMwDAPDMDCZTNSpU4d7772XEydOlOt1AcaO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D8fb2/Eee3s7tk9JTk7GbDbz22+/5WupUdqWF3mvWd5y36fs15Z9n4YPH07Pnj1ZsmQJ3333HVOnTmX69Ok88sgjFRpjcaliWkREREREREQqzpnsxLStYtqSq630ybPnXRBQJfblyIsOUVq6ZAzDwMfdxyWP4vSXzq1///6YTCYWLlzI/Pnzue++++xzrFu3jltuuYW77rqLFi1aUL9+fXbv3l3suWNiYjh8+DAJCQn2fRs2bHAYs379eurVq8czzzxD27ZtadSoEYcOHXIY4+HhQWZm0Z90iImJYevWrZw7d86+b926dZhMJho3blzsmAtiMplo2LAh9evXL1aCuFWrVmRmZnLixAkaNmzo8MhusxETE8PGjY6/vMh7b3Lz9/cnMjKSVatWFTrG3d29yPsUEBBArVq17H2ps61bt46mTZte9HXlFhERwQMPPMCXX37J448/zpw5c0p0fkVSYlpEREREREREKk52j+msVh651zu8kJrugoAqsYNrS32q9XJfSPIS4Ofnx4ABA3j66adJSEhg6NCh9mONGjVixYoVrF+/nri4OO6//36OHz9e7Ll79OhBdHQ0Q4YMYevWraxdu5ZnnnnGYUyjRo2Ij49n0aJF7Nu3j5kzZ7J48WKHMZGRkRw4cIAtW7Zw8uRJUlNT811r8ODBeHl5MWTIEP744w9Wr17NI488wt13323vL11RoqOjGTx4MPfccw9ffvklBw4c4JdffmHq1KksWbIEsLXD+Pbbb5k2bRp79uxh1qxZRfaXBpg8eTLTp09n5syZ7Nmzh99//50333zTfjw7cX3s2DFOnz5d4BxPPPEEL7/8Mp988gm7du3iqaeeYsuWLQ59qy/m0UcfZfny5Rw4cIDff/+d1atXExMTU+zzK5oS0yIiIiIiIiJSMazWXK08shY/zJ1AVSuPErMWUoVrOXu2giOR8jBs2DBOnz5Nz549HfpBjx8/ntatW9OzZ0+6detGWFgYffv2Lfa8JpOJxYsXc+HCBdq3b8/w4cN54YUXHMbcfPPNPPbYY4waNYqWLVuyfv16JkyY4DDmtttuo1evXlxzzTWEhITw8ccf57uWj48Py5cv59SpU7Rr147bb7+d7t27M2vWrJLdDCeZO3cu99xzD48//jiNGzemb9++bNq0ibp1bd+TrrrqKubMmcMbb7xBixYt+O677xwWgSzIkCFDmDFjBrNnz6ZZs2bcdNNN7Nmzx358+vTprFixgoiICFq1alXgHKNHj2bMmDE8/vjjxMbG8u233/L111/TqFGjYr+2zMxMHn74YWJiYujVqxfR0dHMnj272OdXNMNaBX6FlpSURGBgIImJiQQEBLg6HBEREREREREpjfOn4JUo2/Yzx8Ddm4/feIpBp98G4PDgtUQ0al7EBLmciYeTe6Bh6Rccq3QmBxawL7HIUzY8OIjA1Vvy7Q9/aSpBJUhUXqpSUlI4cOAAUVFReHl5uTockUtGUf+2ipvLVcW0iIiIiIiIiFSM7Gpp3xBwt/WDzV0tZ5SkYnpGLHx0Kxz62XnxVUEFJaUBkpYurdhARERKSIlpEREREREREakY2f2lsxY+hFK28rDkWkTswA9OCOzSsaqFrbVH0k8/ER//h4ujEREpnBLTIiIiIiIiIlIxzmRVTAflJKYzMOcct2ZSLIfW5XpScI/ly9WRGgb7Q8FssTLz9cHM2jyLCxkXXB2WiEg+SkyLiIiIiIiISMWwL3yYk5j+wec6+7ZR3MR0wtac7UIW/7uUpR8/welPP+XwQw/nO2YxYH1TW7rnyh3pvLvtXfp+1ZdV8auoAsuMichlxM3VAYiIiIiIiIjIZaKAxPQFvDlqrU4t4xQWSzFbeSRsy/Xk0k9MWy0WUv78k+TVa0hes4aUHTsKHWsx4OcmBnethmbxEG0JYfe5ozy6+lE61e7E0+2fpl5AvQqMXkSkYKqYFhEREREREZGKUUArDytWLFnpCWtmRvHmObbt4mOqOKsVko96cnT8ePZ07crBO/pzcvZsW1LaMPBu0YKQR/+V7zyLCYZf/2+8W7bEsFp5yxjMiNgRuJvcWffXOvr9tx8zf5/J+fTzLnhVIiI5lJgWERERERERkYpRQMU0gMVqq3q2FqdiOu08nNyd8/wSLZg++acfh38MJvHzL8j8+yQmHx/8r7+e8BdfpNFPa4n8ZBE1Hngg33kWA/o27EtA794ApHy7ktGtR7P4lsV0qt2JdEs6c7bP4Zb/3sKmY5sq+mWJiNgpMS0iIiIiIiIi5S/9Apz727YdWMe+22qFzKz0hMVSjIrp43+CNXcC+9LMTJ/8I8C+Xff9/yN6w8/UmfkGQbf2wy042H4s09vT4TyLCXzcffDv1RMMgwtbtpB25C/qBdTj7e5vM+OaGYT7hnPs3DHe2fpOhb0eEZG8lJgWERERERERkfKX+Jftq4cfeFez77YCUabjABhp5y4+z7GtFx9zifHt2BHDw6PggybH1I4lK0/vXrMmPu3bA3D222UAGIZB97rdebL9kwCkZaaVT8AiIsWgxLSIiIiIiIiIlL/EeNvXwAgwCq5yDt7+3sXnScjTX/oyT66eb9nQ4fn1oV3s29ntPBKXLnUYY2RVmVso5mKTUiV169aNRx991P48MjKSGTNmFHmOYRh89dVXZb62s+ZxlqFDh9K3b19Xh+FUle0el4YS0yIiIiIiIiJS/gpY+DCvczWaX3yevAsf/vByGYKqXOItISU+5++H+zo89z1y2r7tf/114OZG6o44UvcfsO83GVnpIGupwpRy1qdPH3r16lXgsbVr12IYBtu2lXwB0E2bNjFy5Miyhudg8uTJtGzZMt/+hIQEbrjhBqdeqyAXLlxg0qRJREdH4+npSY0aNbjjjjv4888/y/3aFcXV97g8KTEtIiIiIiIiIuXPvvBhHcf9VvjDEgnAuepXFD1HZrqtx/QlKgVbu47/yyh+smlHarzDc5+EnMS0W7Vq+HbsAEDSspyq6eyKaasy05XSsGHDWLFiBUeOHMl3bO7cubRt25bmzYvxS5w8QkJC8PHxcUaIFxUWFoanp+fFB5ZBamoqPXr04P333+f5559n9+7dLF26lIyMDK688ko2bNhQrte/mPT09HKdvyLucXlTYlpEREREREREyl9iVpItMH/F9Dm8bBvWzKLn+HvXJd26I7vByS+Z0cU+58OdHzk8D4j7y/F5VjuPpCVLsVptiWgjq5WKxapWHpXRTTfdREhICPPmzXPYn5yczGeffcawYcP4559/GDRoELVr18bHx4fY2Fg+/vjjIufN28pjz549dOnSBS8vL5o2bcqKFSvynfPkk08SHR2Nj48P9evXZ8KECfaE67x585gyZQpbt27FMAwMw7DHnLfNxPbt27n22mvx9vYmODiYkSNHkpycbD+e3Wpj2rRphIeHExwczMMPP1xkcnfGjBn8/PPPfPPNN/Tv35969erRvn17vvjiC2JiYhg2bJj973y2KVOmEBISQkBAAA888ABpaTnfTz7//HNiY2PtMfbo0YNz53L63r/33nvExMTg5eVFkyZNmD17tv3YwYMHMQyDTz75hK5du+Ll5cXbb7+Nt7c3y5Yt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yfMFHku5xFt5WK1WMtJc8/fFzcOEUci/g+JasGABEydOZNasWbRq1YrNmzczYsQIfH19GTJkCDNnzuTrr7/m008/pW7duhw+fJjDh23tdDZt2kTNmjWZO3cuvXr1wlxE5fzq1asJDw9n9erV7N27lwEDBtCyZUtGjBgBwD333MPJkydZs2YN7u7ujBkzhhMnTpT49Xh7e5OWlmZ/vnfvXr744gu+/PJLe3x33HEH3t7eLFu2jMDAQN599126d+/O7t27qV69Op9++imTJ0/mrbfeonPnznz44YfMnDmT+vXrF3rdp59+mjlz5vD666/TuXNnEhIS2LlzJwC//PIL7du3Z+XKlTRr1qzQqu1x48bxxRdf8MEHH1CvXj1eeeUVevbsyd69e6levbp93DPPPMP06dMJCQnhgQce4L777mPdunUADB48mFatWvH2229jNpvZsmUL7u7uJb6PVZUS0yIiIiIiIiLifGunw9mslgSFtPEozJ7jSTSqT66FD5s7HLdawYqJORm9GeG2FHNB7UAqu5N7Yf1M23avqeCRUwFeznlpvHJdK6+0vXuxpqdjXKLJsYw0C//51w8uufbIN7ri7ll4Mrg4Jk2axPTp07n11lsBW3Xvjh07ePfddxkyZAjx8fE0atSIzp07YxgG9erVs58bEhICQFBQEGFhYQXOn61atWrMmjULs9lMkyZNuPHGG1m1ahUjRoxg586drFy5kk2bNtG2bVsA3nvvPRo1alSi1/Lbb7+xcOFCrr32Wvu+tLQ05s+fb4/1p59+4pdffuHEiRN4enoCMG3aNL766is+//xzRo4cyYwZMxg2bBjDhg0D4Pnnn2flypX5qqaznT17ljfeeINZs2YxZMgQABo0aEDnzp0d7lNwcHCh9+ncuXO8/fbbzJs3jxtuuAGAOXPmsGLFCv7v//6PJ554wj72hRdeoGvXrgA89dRT3HjjjaSkpODl5UV8fDxPPPEETZo0ASjxPazq1MpDRERERERERJwvu40HFLnwYUEp5YMnEm0bhSx8mC0zK61R5Vp5WK2wdCxkpkHD6yCmj313RXAzF16naE1PJ3X/gXz7LVYLX+/7mq/3fV2eoUkRzp07x759+xg2bJi9L7Sfnx/PP/88+/btA2ztJrZs2ULjxo0ZPXo03333Xamu1axZM4eK6vDwcHtF9K5du3Bzc6N169b24w0bNqRatWoXnXf79u34+fnh7e1N+/bt6dChA7NmzbIfr1evnj0xDLZWF8nJyQQHBzu85gMHDthfc1xcHFdeeaXDdTp0KHwR0bi4OFJTU+nevftF4y3Mvn37SE9Pp1OnTvZ97u7utG/fnri4OIexzZvn/GItPDwcwH4vx4wZw/Dhw+nRowcvvfSS/TVdLlQxLSIiIiIiIiLlIFeWtYQV0wYWyEyH4ztsO8Ka5xlhzfqvrba4yrXy2PEV7F8NZk/o/Yq9TUl2Yrqs7R4uxmwUXbWbumsnXo2j7c9PXjjJ+HXjWffXOgwMro24Fj+Pilksz9ncPEyMfKOry65dFsnJyYCtMjdvIjY7idy6dWsOHDjAsmXLWLlyJf3796dHjx58/vnnJbpW3nYShmFgsZT931njxo35+uuvcXNzo1atWvnaZPj6OlbzJycnEx4ezpo1a/LNFRQUVKoYvL0L77FeHnLfy+x/29n3cvLkydx5550sWbKEZcuWMWnSJBYtWkS/fv0qNEZXUcW0iIiIiIiIiDhf2rmc7SIqpgsqEzZjgZO7ITPVtnBitagCT62SFdOpZ+Hbf9u2Oz8G1fP3wS3vVh6FJqazEmgpuRZAXPfXOm77+jbW/WXriWvFSmpmajlHWH4Mw8Dd0+ySR1l/4RAaGkqtWrXYv38/DRs2dHhkL9gHEBAQwIABA5gzZw6ffPIJX3zxBadOnQJsSdLMzMwyxdG4cWMyMjLYvHmzfd/evXs5ffr0Rc/18PCgYcOGREZGFtq7ObfWrVtz7Ngx3Nzc8r3mGjVqABATE8PGjRsdztuwYUOhczZq1Ahvb29WrVpVaIxAkfepQYMGeHh42HtFA6Snp7Np0yaaNm160deVW3R0NI899hjfffcdt956K3Pnzi3R+VWZKqZFRERERERExPl2Lc3ZLioxDRyy1KSeKWfhNDMZkJDVxiMsFkyOdXXZuewqmZj+4WU4exSqRULnRx0OVVSnbJNRcJ2iV0wMKdu2kbpzJ2mZabzx+xvM3zEfgIZBDdl7Zm8FRSiFmTJlCqNHjyYwMJBevXqRmprKr7/+yunTpxkzZgyvvfYa4eHhtGrVCpPJxGeffUZYWJi9ujgyMpJVq1bRqVMnPD09i9V+I68mTZrQo0cPRo4cydtvv427uzuPP/443t7eTq/279GjBx06dKBv37688sorREdHc/ToUZYsWUK/fv1o27Yt//rXvxg6dCht27alU6dOLFiwgD///LPQxQ+9vLx48sknGTduHB4eHnTq1Im///6bP//8k2HDhlGzZk28vb359ttvqVOnDl5eXgQGBjrM4evry4MPPsgTTzxB9erVqVu3Lq+88grnz5+397q+mAsXLvDEE09w++23ExUVxZEjR9i0aRO33XZbme9bVaGKaRERERERERFxrtMHHZ9fpJVHCo6VkyYshS58CDkJXIvVltaoMq08ju+An2fbtm94FdwdWwpYszLu5dzJo9DkYfB99wJwLm4Hdy29y56UHth4IB/f+HFOnFVxsclLxPDhw3nvvfeYO3cusbGxdO3alXnz5tkrpv39/XnllVdo27Yt7dq14+DBgyxduhRT1i93pk+fzooVK4iIiKBVq1aljmP+/PmEhobSpUsX+vXrx4gRI/D398fLy8sprzObYRgsXbqULl26cO+99xIdHc3AgQM5dOgQoaGhAAwYMIAJEyYwbtw42rRpw6FDh3jwwQeLnHfChAk8/vjjTJw4kZiYGAYMGGDv++zm5sbMmTN59913qVWrFrfcckuBc7z00kvcdttt3H333bRu3Zq9e/eyfPnyYif7zWYz//zzD/fccw/R0dH079+fG264gSlTppTgDlVthtVaUa31Sy8pKYnAwEASExMJCAhwdTgiIiIiIiIiUpTJjtWFTDydr+o52/TvdlHnx3EMcFtj3/dzy5focPp/cGgd9H0bWt7pcM7u42e5/vUfecztM/7ltpjjnpGEPr3V2a/CuaxWmHej7TU1uQkGLsg3pNeMH9l57CwfDmvP1Y1CCpjEeeKaxOTbF/37b+xq2xbDYmXEI2aM4Go82/FZrql7DQDNP2iOFSur+6+mhneNco3PWVJSUjhw4ABRUVFOT5pKjiNHjhAREcHKlSvLtKigVB1F/dsqbi5XrTxEREREREREpHwVkpTO9nzGXZwkgNvMawkzTmO2ZsKx7baD+RY+zGnlMdS8HIDQ1IPOjLZ8bPvElpR284ZeU4scapR7l+mCPblpIj2rWanzD/RMb8zIPrMJ9Q11SSxSuX3//fckJycTGxtLQkIC48aNIzIyki5durg6NKlC1MpDRERERERERFzGaoWz+PBqxkB2WOoB4H/+EKQmgdkTQhoXem6gcb6iwiybC2fgu/G27a7jIKhugcOyE+7l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Hpvn9M5FYjoGud1u3XjjjTrhhBM0atQoSVJxcbFSU1Ob9BfMz89vth/gkiVL9OKLL+qqq65q9rYefPBBHTp0SD/4wQ86LH5J2rdvn371q1+FvG3J83vl5+cHrPMt0+cwsSXTed4avXv31hNPPKGXXnpJL730kgoLCzV16lR98cUXHRAp0LxIPBb79euntLQ0jR8/XnPmzNEVV1zRbDy+4wd7bWjv6wKvOckrmc7z1uA1B9GQCI/D9evX6w9/+IN+/OMfN3tc37GDHbesrEyVlZUh90X8S6ZzvTWGDRump59+Wq+99pr+/ve/y+12a9KkSdq+fXu7j43oiefz/Oc//7m6dOmivLw8bd26Va+99lrI35Xn9M5FYjoGzZkzR6tWrdK8efPafIxVq1bprLPO0ty5czVjxoygY55//nndfffd+sc//uHvKfjcc88pKyvL//Phhx+GfdtlZWWaNWuWRowYobvuusu/fuTIkf7jnnbaaW36vZA4OM8DDRs2TD/+8Y81btw4TZo0SU8//bQmTZrUqkkegPaIxGPxww8/1Oeff64nnnhCDz/8sF544QVJHfNYbA6vOWiI8zwQrzmIhnh/HO7YsUOnnnqqvv/97+vKK6/0r2943KuvvrrNvxsSB+d6oIkTJ+qSSy7R2LFjNWXKFL388svq2bOnnnzyybBjQ+yI5/P8lltuUVFRkd5++205HA5dcsklMsZI4jk9Gjrmu+foMNddd51ef/11LV68WP369fOvLygoUE1NjUpKSgI+fdq9e3eTyZm+/vprnXzyybrqqqt0++23B72defPm6YorrtD8+fMDvpJw5plnasKECf7lvn37hhV/eXm5Tj31VGVnZ+uVV14J+DrEm2++qdraWklSRkaG//dqOEOr73fybUNiSrbzvK2OO+44ffTRR+06BhBKpB6LAwcOlCSNHj1au3fv1l133aXZs2cHfSzu2rXLf1u9e/cOuO2xY8e2+nfjNQc+yXaetxWvOehM8f443Llzp6ZNm6ZJkyY1mXzryy+/9F/Pycnx/17BXm9ycnLa/VhFbEu2c70tUlJSdMwxx2j9+vVtPgaiK97P8x49eqhHjx4aOnSojjrqKBUWFuqTTz7RxIkTeU6Phmg3uYaH2+02c+bMMX369DFr165tst3XRP6f//ynf923337bpIn8qlWrTK9evcwtt9zS7G09//zzJj093bz66qthxxlqUrjS0lJz/PHHmylTppiKiopWHc83EVXDRvO33norE1ElqGQ9zxtqbiKqYKZPn27OOeecsG8DaEkkH4uN3X333aZ///4hYysoKDAPPvigf11paWmHTn7Ia05ySNbzvCFecxBtifA43L59uxkyZIi58MILTV1dXatu+2c/+5kZNWpUwLrZs2czUVYCS9ZzvaHmJj9srK6uzgwbNszcdNNNYd8GoisRzvPGtmzZYiSZhQsXNjuG5/TORWI6RlxzzTWma9euZtGiRWbXrl3+n8OHD/vHXH311eaII44w77//vvn888/NxIkTzcSJE/3bV65caXr27GkuvvjigGPs2bPHP+a5554zTqfTPPbYYwFjSkpKQsa3f/9+U1RUZN544w0jycybN88UFRWZXbt2GWM8D/gJEyaY0aNHm/Xr1wccO9SLWklJicnPzzc//OEPzapVq8y8efNMZmamefLJJ/1jqqurTVFRkSkqKjK9e/c2P/3pT01RUZFZt25d2PczoitZz3NjjFm9erUpKioyZ5xxhpk6dar/nPZ56KGHzKuvvmrWrVtnVq5caW644QZj27Z59913w7mLgVaJ1GPx0UcfNf/617/M2rVrzdq1a82f//xnk52dbf7nf/4nZHz33nuv6datm3nttdfMihUrzFlnnWUGDhxoKisr/WO2bNliioqKzN13322ysrL8j6ny8vJmj8trTnJJ1vPcGF5zEDvi/XG4fft2c+SRR5qTTz7ZbN++PeD2Q9m4caPJzMw0t9xyi/nmm2/MY489ZhwOh1mwYIF/THl5uf+xKcn87ne/M0VFRWbLli1h3ceIDcl6rhtj/OfxuHHjzEUXXWSKiorM6tWr/dvvvvtu89Zbb5kNGzaY5cuXmwsvvNCkp6cHjEF8iPfz/JNPPjF/+MMfTFFRkdm8ebN57733zKRJk8zgwYNNVVVVs8flOb1zkZiOEZKC/jzzzDP+MZWVlebaa681ubm5JjMz05xzzjkBLxRz584NeoyGnypNmTIl6JhLL700ZHzPPPNM0P3mzp1rjDFm4cKFzf4OmzZtCnnsr776ypx44okmLS3N9O3b19x7770B233Vq41/pkyZ0op7FrEkmc/z/v37B93P57777jODBw826enppnv37mbq1Knm/fffb+1dC4QlUo/F3//+92bkyJEmMzPT5OTkmGOOOcY8/vjjxuVyhYzP7XabO+64w+Tn55u0tDRz8sknmzVr1gSMufTSS4PefqhqB2N4zUkmyXye85qDWBHvj8Pm3hs2fDw1Z+HChWbs2LEmNTXVDBo0KOB39m1vy/tVxKZkPtdbivnGG280RxxxhElNTTX5+fnm9NNPN1988UXLdypiTryf5ytWrDDTpk0z3bt3N2lpaWbAgAHm6quvNtu3b2/xd+c5vfNYxng7fAMAAAAAAAAAEAF2tAMAAAAAAAAAACQXEtMAAAAAAAAAgIgiMQ0AAAAAAAAAiCgS0wAAAAAAAACAiCIxDQAAAAAAAACIKBLTAAAAAAAAAICIIjENAAAAAAAAAIgoEtMAAAAAAAAAgIgiMQ0AAAAAAAAAiCgS0wAAAAAAAACAiCIxDQAAAAAAAACIqP8P/PKaKcBGTOIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(18, 8))\n", + "\n", + "plt.plot(dates_train, train_predictions)\n", + "plt.plot(dates_train, y_train)\n", + "plt.plot(dates_val, val_predictions)\n", + "plt.plot(dates_val, y_val)\n", + "plt.plot(dates_test, test_predictions)\n", + "plt.plot(dates_test, y_test)\n", + "plt.legend(['Training Predictions', \n", + " 'Training Observations',\n", + " 'Validation Predictions', \n", + " 'Validation Observations',\n", + " 'Testing Predictions', \n", + " 'Testing Observations'])" + ] + } + ], + "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.10.6" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/README.md b/README.md deleted file mode 100644 index a0b1d23..0000000 --- a/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# twitter_files -A. Steps: -1. Create a virtual environment - pyenv virtualenv twitter-env - pyenv local twitter-env - pip install --upgrade pip - code . -2. Make the folder: - mkdir -p ~/code//twitter-files && cd $_ -3. Install the requirements - pip install -r requirements.txt - -Project scope: -1. Collect data from social media platforms -2. Store data in a database -3. Provide a REST API to access the data -4. Provide a web interface to access the data - -Future capabilities: -1. Facebook: user profiles, groups, and communities (aka visitor posts) -2. Instagram: user profiles, hashtags, and locations -3. Mastodon: user profiles and toots (single or thread) -4. Reddit: users, subreddits, and searches (via Pushshift) -5. Telegram: channels -6. Twitter: users, user profiles, hashtags, searches (live tweets, top tweets, and users), tweets (single or surrounding thread), list posts, communities, and trends diff --git a/app.py b/app.py new file mode 100644 index 0000000..212ccde --- /dev/null +++ b/app.py @@ -0,0 +1,85 @@ +import streamlit as st + +import numpy as np +import pandas as pd + + +user_info = { + + "avg_1m" : 0.05, + "avg_1h" : 0.4, + "avg_1d" : 0.7, + "avg_1w" : 0.3, + "user_rank_1m" : 6, + "user_rank_1h" : 7, + "user_rank_1d" : 5, + "user_rank_1w" : 4 +} +better_users_1m = {"user1": 0.45, +"user2": 0.3, +"user3": 0.1} + +better_users_1h = {"user1": 0.45, +"user2": 0.3, +"user3": 0.1} + +better_users_1d = {"user1": 0.45, +"user2": 0.3, +"user3": 0.1} + +better_users_1w = {"user1": 0.45, +"user2": 0.3} + +#Create the User DataFrame: +df = pd.DataFrame({ +"Profit": [user_info["avg_1m"], user_info["avg_1h"], user_info["avg_1d"], user_info["avg_1w"]], +"Rank": [user_info["user_rank_1m"], user_info["user_rank_1h"], user_info["user_rank_1d"], user_info["user_rank_1w"]] +}, index=["1_minute", "1_hour", "1_day", "1_week"]) + +# Define the section title with center alignment +st.markdown("

User Info

", unsafe_allow_html=True) + + + +# Define the section title with center alignment +st.markdown("

User Info

", unsafe_allow_html=True) + + +# Define the section title with center alignment +st.markdown("

User Info

", unsafe_allow_html=True) + +# Display the DataFrame with center alignment +st.write(df.style.set_properties(**{'text-align': 'center', 'margin': 'auto'})) + + + + +#Display the DataFrame +st.dataframe(df) + +#Create the DataFrames of the better users: +df_better_1m = pd.DataFrame(list(better_users_1m.items()), columns=["User Name", "Profit"], index=pd.RangeIndex(start=1, stop=len(better_users_1m)+1, name="Rank")) +df_better_1h = pd.DataFrame(list(better_users_1h.items()), columns=["User Name", "Profit"], index=pd.RangeIndex(start=1, stop=len(better_users_1h)+1, name="Rank")) +df_better_1d = pd.DataFrame(list(better_users_1d.items()), columns=["User Name", "Profit"], index=pd.RangeIndex(start=1, stop=len(better_users_1d)+1, name="Rank")) +df_better_1w = pd.DataFrame(list(better_users_1w.items()), columns=["User Name", "Profit"], index=pd.RangeIndex(start=1, stop=len(better_users_1w)+1, name="Rank")) + +col1_content = "### Better 1 min users" +col2_content = "### Better 1 hour users" +col3_content = "### Better 1 day users" +col4_content = "### Better 1 week users" + +#Create the columns using beta_columns function +col1, col2, col3, col4 = st.columns(4) + +#Add the content to each column +col1.write(col1_content) +col1.dataframe(df_better_1m) + +col2.write(col2_content) +col2.dataframe(df_better_1h) + +col3.write(col3_content) +col3.dataframe(df_better_1d) + +col4.write(col4_content) +col4.dataframe(df_better_1w) diff --git a/my_notebooks/.ipynb_checkpoints/Joining the baseline with the tweeter data-checkpoint.ipynb b/my_notebooks/.ipynb_checkpoints/Joining the baseline with the tweeter data-checkpoint.ipynb new file mode 100644 index 0000000..08f4993 --- /dev/null +++ b/my_notebooks/.ipynb_checkpoints/Joining the baseline with the tweeter data-checkpoint.ipynb @@ -0,0 +1,2210 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 130, + "id": "2ba3e4bd", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import re\n", + "from sklearn.preprocessing import MinMaxScaler" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "id": "820e8612", + "metadata": {}, + "outputs": [], + "source": [ + " df = pd.read_csv(\"actionable_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "09f87fa4", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Unnamed: 0', 'url', 'date', 'tweet', 'username', 'likeCount',\n", + " 'replyCount', 'retweetCount', 'quoteCount', 'cashtags', 'hashtags',\n", + " 'stock_symbol', 'current_value', '1min', '60min', '1day', '1week',\n", + " 'positive', 'negative', 'neutral', 'sentiment'],\n", + " dtype='object')" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "9b84b911", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 16496 entries, 0 to 16495\n", + "Data columns (total 21 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Unnamed: 0 16496 non-null int64 \n", + " 1 url 16496 non-null object \n", + " 2 date 16496 non-null object \n", + " 3 tweet 16496 non-null object \n", + " 4 username 16496 non-null object \n", + " 5 likeCount 16496 non-null int64 \n", + " 6 replyCount 16496 non-null int64 \n", + " 7 retweetCount 16496 non-null int64 \n", + " 8 quoteCount 16496 non-null int64 \n", + " 9 cashtags 13876 non-null object \n", + " 10 hashtags 3900 non-null object \n", + " 11 stock_symbol 0 non-null float64\n", + " 12 current_value 0 non-null float64\n", + " 13 1min 0 non-null float64\n", + " 14 60min 0 non-null float64\n", + " 15 1day 0 non-null float64\n", + " 16 1week 0 non-null float64\n", + " 17 positive 16496 non-null float64\n", + " 18 negative 16496 non-null float64\n", + " 19 neutral 16496 non-null float64\n", + " 20 sentiment 16496 non-null object \n", + "dtypes: float64(9), int64(5), object(7)\n", + "memory usage: 2.6+ MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "id": "d1a9feca", + "metadata": {}, + "outputs": [], + "source": [ + "def clean_cashtags(st):\n", + " letters = re.findall('[A-Za-z]+', st)\n", + " return ' '.join(letters)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "1dcfb948", + "metadata": {}, + "outputs": [], + "source": [ + "df = df.dropna(subset=[\"cashtags\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "id": "087e95e7", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"cashtags\"] = df[\"cashtags\"].apply(clean_cashtags)" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "id": "ab370eab", + "metadata": {}, + "outputs": [], + "source": [ + "def del_timestamp(st):\n", + " return st.replace(\"+00:00\", \"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "id": "2ed9ca6c", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"date\"] = df[\"date\"].apply(del_timestamp)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "id": "f76f8bf2", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"date\"] = pd.to_datetime(df['date'])" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "id": "3555e758", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "ename": "KeyError", + "evalue": "'date'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/indexes/base.py:3629\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3628\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 3629\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcasted_key\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3630\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/_libs/index.pyx:136\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/_libs/index.pyx:163\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:5198\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:5206\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: 'date'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [113], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m df\u001b[38;5;241m.\u001b[39mindex \u001b[38;5;241m=\u001b[39m \u001b[43mdf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mdate\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/frame.py:5273\u001b[0m, in \u001b[0;36mDataFrame.pop\u001b[0;34m(self, item)\u001b[0m\n\u001b[1;32m 5232\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mpop\u001b[39m(\u001b[38;5;28mself\u001b[39m, item: Hashable) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Series:\n\u001b[1;32m 5233\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 5234\u001b[0m \u001b[38;5;124;03m Return item and drop from frame. Raise KeyError if not found.\u001b[39;00m\n\u001b[1;32m 5235\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 5271\u001b[0m \u001b[38;5;124;03m 3 monkey NaN\u001b[39;00m\n\u001b[1;32m 5272\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 5273\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpop\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/generic.py:865\u001b[0m, in \u001b[0;36mNDFrame.pop\u001b[0;34m(self, item)\u001b[0m\n\u001b[1;32m 864\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mpop\u001b[39m(\u001b[38;5;28mself\u001b[39m, item: Hashable) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Series \u001b[38;5;241m|\u001b[39m Any:\n\u001b[0;32m--> 865\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m[\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 866\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m \u001b[38;5;28mself\u001b[39m[item]\n\u001b[1;32m 868\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/frame.py:3505\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3503\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mnlevels \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m 3504\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_multilevel(key)\n\u001b[0;32m-> 3505\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3506\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[1;32m 3507\u001b[0m indexer \u001b[38;5;241m=\u001b[39m [indexer]\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/indexes/base.py:3631\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3629\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine\u001b[38;5;241m.\u001b[39mget_loc(casted_key)\n\u001b[1;32m 3630\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[0;32m-> 3631\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m 3632\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[1;32m 3633\u001b[0m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[1;32m 3634\u001b[0m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[1;32m 3635\u001b[0m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n\u001b[1;32m 3636\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n", + "\u001b[0;31mKeyError\u001b[0m: 'date'" + ] + } + ], + "source": [ + "df.index = df.pop('date')" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "id": "fc68fbc5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0urltweetusernamelikeCountreplyCountretweetCountquoteCountcashtagshashtagsstock_symbolcurrent_value1min60min1day1weekpositivenegativeneutralsentiment
date
2022-01-04 19:17:5774https://twitter.com/johnscharts/status/1478445...$msft breaching 2050 majohnscharts14210MSFTNaNNaNNaNNaNNaNNaNNaN0.0000000.7134630.0Negative
2022-01-11 16:16:38236https://twitter.com/johnscharts/status/1480936...$msft call flow 312.5315. 100 ma in path, so r...johnscharts3000MSFTNaNNaNNaNNaNNaNNaNNaN0.7019160.0000000.0Positive
2022-01-12 01:05:30262https://twitter.com/Jake__Wujastyk/status/1481...$msft mfst another top watch into tomorrow.Jake__Wujastyk38314353MSFT['MFST']NaNNaNNaNNaNNaNNaN0.9493060.0000000.0Positive
2022-01-19 15:01:38429https://twitter.com/johnscharts/status/1483816...$msft up 44%. npjohnscharts5100MSFTNaNNaNNaNNaNNaNNaNNaN0.9999850.0000000.0Positive
2022-01-31 15:09:34732https://twitter.com/johnscharts/status/1488167...$msft updat from watchlist. feb 4 310 up 26%johnscharts5001MSFTNaNNaNNaNNaNNaNNaNNaN0.9998130.0000000.0Positive
...............................................................
2022-10-25 22:20:0115192https://twitter.com/TommyThornton/status/15850...it’s happening. $msft guidance is weaker than ...TommyThornton18318326MSFTNaNNaNNaNNaNNaNNaNNaN0.0000001.0000000.0Negative
2022-10-26 13:33:1815212https://twitter.com/gurgavin/status/1585263300...microsoft sinks in biggest intraday drop since...gurgavin1533113MSFTNaNNaNNaNNaNNaNNaNNaN0.0000000.5389740.0Negative
2022-11-14 16:00:3615789https://twitter.com/StockMKTNewz/status/159218...microsoft unveils software to ease supply-chai...StockMKTNewz50543MSFTNaNNaNNaNNaNNaNNaNNaN0.0000000.9996000.0Negative
2022-12-14 13:01:5616244https://twitter.com/StockMKTNewz/status/160301...microsoft $msft in pact w viasat to quickly sc...StockMKTNewz34241MSFTNaNNaNNaNNaNNaNNaNNaN0.9938520.0000000.0Positive
2022-12-27 19:30:1516439https://twitter.com/StockMKTNewz/status/160782...microsoft $msft has announced it’s making exce...StockMKTNewz90444MSFTNaNNaNNaNNaNNaNNaNNaN0.9787830.0000000.0Positive
\n", + "

132 rows × 20 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 \\\n", + "date \n", + "2022-01-04 19:17:57 74 \n", + "2022-01-11 16:16:38 236 \n", + "2022-01-12 01:05:30 262 \n", + "2022-01-19 15:01:38 429 \n", + "2022-01-31 15:09:34 732 \n", + "... ... \n", + "2022-10-25 22:20:01 15192 \n", + "2022-10-26 13:33:18 15212 \n", + "2022-11-14 16:00:36 15789 \n", + "2022-12-14 13:01:56 16244 \n", + "2022-12-27 19:30:15 16439 \n", + "\n", + " url \\\n", + "date \n", + "2022-01-04 19:17:57 https://twitter.com/johnscharts/status/1478445... \n", + "2022-01-11 16:16:38 https://twitter.com/johnscharts/status/1480936... \n", + "2022-01-12 01:05:30 https://twitter.com/Jake__Wujastyk/status/1481... \n", + "2022-01-19 15:01:38 https://twitter.com/johnscharts/status/1483816... \n", + "2022-01-31 15:09:34 https://twitter.com/johnscharts/status/1488167... \n", + "... ... \n", + "2022-10-25 22:20:01 https://twitter.com/TommyThornton/status/15850... \n", + "2022-10-26 13:33:18 https://twitter.com/gurgavin/status/1585263300... \n", + "2022-11-14 16:00:36 https://twitter.com/StockMKTNewz/status/159218... \n", + "2022-12-14 13:01:56 https://twitter.com/StockMKTNewz/status/160301... \n", + "2022-12-27 19:30:15 https://twitter.com/StockMKTNewz/status/160782... \n", + "\n", + " tweet \\\n", + "date \n", + "2022-01-04 19:17:57 $msft breaching 2050 ma \n", + "2022-01-11 16:16:38 $msft call flow 312.5315. 100 ma in path, so r... \n", + "2022-01-12 01:05:30 $msft mfst another top watch into tomorrow. \n", + "2022-01-19 15:01:38 $msft up 44%. np \n", + "2022-01-31 15:09:34 $msft updat from watchlist. feb 4 310 up 26% \n", + "... ... \n", + "2022-10-25 22:20:01 it’s happening. $msft guidance is weaker than ... \n", + "2022-10-26 13:33:18 microsoft sinks in biggest intraday drop since... \n", + "2022-11-14 16:00:36 microsoft unveils software to ease supply-chai... \n", + "2022-12-14 13:01:56 microsoft $msft in pact w viasat to quickly sc... \n", + "2022-12-27 19:30:15 microsoft $msft has announced it’s making exce... \n", + "\n", + " username likeCount replyCount retweetCount \\\n", + "date \n", + "2022-01-04 19:17:57 johnscharts 14 2 1 \n", + "2022-01-11 16:16:38 johnscharts 3 0 0 \n", + "2022-01-12 01:05:30 Jake__Wujastyk 383 14 35 \n", + "2022-01-19 15:01:38 johnscharts 5 1 0 \n", + "2022-01-31 15:09:34 johnscharts 5 0 0 \n", + "... ... ... ... ... \n", + "2022-10-25 22:20:01 TommyThornton 183 18 32 \n", + "2022-10-26 13:33:18 gurgavin 153 3 11 \n", + "2022-11-14 16:00:36 StockMKTNewz 50 5 4 \n", + "2022-12-14 13:01:56 StockMKTNewz 34 2 4 \n", + "2022-12-27 19:30:15 StockMKTNewz 90 4 4 \n", + "\n", + " quoteCount cashtags hashtags stock_symbol \\\n", + "date \n", + "2022-01-04 19:17:57 0 MSFT NaN NaN \n", + "2022-01-11 16:16:38 0 MSFT NaN NaN \n", + "2022-01-12 01:05:30 3 MSFT ['MFST'] NaN \n", + "2022-01-19 15:01:38 0 MSFT NaN NaN \n", + "2022-01-31 15:09:34 1 MSFT NaN NaN \n", + "... ... ... ... ... \n", + "2022-10-25 22:20:01 6 MSFT NaN NaN \n", + "2022-10-26 13:33:18 3 MSFT NaN NaN \n", + "2022-11-14 16:00:36 3 MSFT NaN NaN \n", + "2022-12-14 13:01:56 1 MSFT NaN NaN \n", + "2022-12-27 19:30:15 4 MSFT NaN NaN \n", + "\n", + " current_value 1min 60min 1day 1week positive \\\n", + "date \n", + "2022-01-04 19:17:57 NaN NaN NaN NaN NaN 0.000000 \n", + "2022-01-11 16:16:38 NaN NaN NaN NaN NaN 0.701916 \n", + "2022-01-12 01:05:30 NaN NaN NaN NaN NaN 0.949306 \n", + "2022-01-19 15:01:38 NaN NaN NaN NaN NaN 0.999985 \n", + "2022-01-31 15:09:34 NaN NaN NaN NaN NaN 0.999813 \n", + "... ... ... ... ... ... ... \n", + "2022-10-25 22:20:01 NaN NaN NaN NaN NaN 0.000000 \n", + "2022-10-26 13:33:18 NaN NaN NaN NaN NaN 0.000000 \n", + "2022-11-14 16:00:36 NaN NaN NaN NaN NaN 0.000000 \n", + "2022-12-14 13:01:56 NaN NaN NaN NaN NaN 0.993852 \n", + "2022-12-27 19:30:15 NaN NaN NaN NaN NaN 0.978783 \n", + "\n", + " negative neutral sentiment \n", + "date \n", + "2022-01-04 19:17:57 0.713463 0.0 Negative \n", + "2022-01-11 16:16:38 0.000000 0.0 Positive \n", + "2022-01-12 01:05:30 0.000000 0.0 Positive \n", + "2022-01-19 15:01:38 0.000000 0.0 Positive \n", + "2022-01-31 15:09:34 0.000000 0.0 Positive \n", + "... ... ... ... \n", + "2022-10-25 22:20:01 1.000000 0.0 Negative \n", + "2022-10-26 13:33:18 0.538974 0.0 Negative \n", + "2022-11-14 16:00:36 0.999600 0.0 Negative \n", + "2022-12-14 13:01:56 0.000000 0.0 Positive \n", + "2022-12-27 19:30:15 0.000000 0.0 Positive \n", + "\n", + "[132 rows x 20 columns]" + ] + }, + "execution_count": 116, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df[\"cashtags\"] == \"MSFT\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "id": "de8a6244", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['time', 'open', 'high', 'low', 'close', 'volume', 'symbol'], dtype='object')" + ] + }, + "execution_count": 120, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_stocks = pd.read_csv(\"AAPL.csv\")\n", + "df_stocks.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "id": "ca4ac94e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 235156 entries, 0 to 235155\n", + "Data columns (total 2 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 time 235156 non-null object \n", + " 1 close 235156 non-null float64\n", + "dtypes: float64(1), object(1)\n", + "memory usage: 3.6+ MB\n" + ] + } + ], + "source": [ + "df_stocks = df_stocks[['time', 'close']]\n", + "df_stocks.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "id": "6f9661ac", + "metadata": {}, + "outputs": [], + "source": [ + "df_stocks[\"time\"] = pd.to_datetime(df_stocks[\"time\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "id": "a971f2e2", + "metadata": {}, + "outputs": [], + "source": [ + "df_stocks.index = df_stocks.pop(\"time\")" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "id": "a7715ce7", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
close
time
2021-12-13 04:01:00178.860090
2021-12-13 04:02:00179.197188
2021-12-13 04:03:00179.365737
2021-12-13 04:04:00179.385566
2021-12-13 04:05:00179.256676
......
2023-02-03 19:55:00154.095401
2023-02-03 19:56:00154.105286
2023-02-03 19:57:00154.095301
2023-02-03 19:59:00154.115270
2023-02-03 20:00:00154.155210
\n", + "

235156 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " close\n", + "time \n", + "2021-12-13 04:01:00 178.860090\n", + "2021-12-13 04:02:00 179.197188\n", + "2021-12-13 04:03:00 179.365737\n", + "2021-12-13 04:04:00 179.385566\n", + "2021-12-13 04:05:00 179.256676\n", + "... ...\n", + "2023-02-03 19:55:00 154.095401\n", + "2023-02-03 19:56:00 154.105286\n", + "2023-02-03 19:57:00 154.095301\n", + "2023-02-03 19:59:00 154.115270\n", + "2023-02-03 20:00:00 154.155210\n", + "\n", + "[235156 rows x 1 columns]" + ] + }, + "execution_count": 129, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_stocks" + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "id": "51d741a8", + "metadata": {}, + "outputs": [], + "source": [ + "scaller = MinMaxScaler()\n", + "\n", + "df_stocks[\"close_scalled\"] = scaller.fit_transform(df_stocks[[\"close\"]])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "id": "58455125", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
closeclose_scalled
time
2021-12-13 04:01:00178.8600900.949212
2021-12-13 04:02:00179.1971880.955046
2021-12-13 04:03:00179.3657370.957962
2021-12-13 04:04:00179.3855660.958306
2021-12-13 04:05:00179.2566760.956075
.........
2023-02-03 19:55:00154.0954010.520636
2023-02-03 19:56:00154.1052860.520807
2023-02-03 19:57:00154.0953010.520634
2023-02-03 19:59:00154.1152700.520980
2023-02-03 20:00:00154.1552100.521671
\n", + "

235156 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " close close_scalled\n", + "time \n", + "2021-12-13 04:01:00 178.860090 0.949212\n", + "2021-12-13 04:02:00 179.197188 0.955046\n", + "2021-12-13 04:03:00 179.365737 0.957962\n", + "2021-12-13 04:04:00 179.385566 0.958306\n", + "2021-12-13 04:05:00 179.256676 0.956075\n", + "... ... ...\n", + "2023-02-03 19:55:00 154.095401 0.520636\n", + "2023-02-03 19:56:00 154.105286 0.520807\n", + "2023-02-03 19:57:00 154.095301 0.520634\n", + "2023-02-03 19:59:00 154.115270 0.520980\n", + "2023-02-03 20:00:00 154.155210 0.521671\n", + "\n", + "[235156 rows x 2 columns]" + ] + }, + "execution_count": 133, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_stocks" + ] + }, + { + "cell_type": "code", + "execution_count": 134, + "id": "584df763", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0urltweetusernamelikeCountreplyCountretweetCountquoteCountcashtagshashtagsstock_symbolcurrent_value1min60min1day1weekpositivenegativeneutralsentiment
date
2022-01-01 04:22:221https://twitter.com/LilMoonLambo/status/147713...$eth bears died a painful death this yearlet’s...LilMoonLambo33540ETHNaNNaNNaNNaNNaNNaNNaN0.0000000.9972820.0Negative
2022-01-01 10:28:502https://twitter.com/cryptomanran/status/147722...$ftm just hit 1,5m addresses. more interesting...cryptomanran160113223716FTMNaNNaNNaNNaNNaNNaNNaN0.8868190.0000000.0Positive
2022-01-01 14:00:023https://twitter.com/johnscharts/status/1477278...$pfe earningssales accelerationjohnscharts9000PFENaNNaNNaNNaNNaNNaNNaN1.0000000.0000000.0Positive
2022-01-01 17:30:354https://twitter.com/CryptoGodJohn/status/14773...2022 will be the year of $htrall kings with be...CryptoGodJohn656468514HTRNaNNaNNaNNaNNaNNaNNaN0.9960680.0000000.0Positive
2022-01-01 17:36:385https://twitter.com/CryptoGodJohn/status/14773...$avax looks ready to ripCryptoGodJohn25518102AVAXNaNNaNNaNNaNNaNNaNNaN0.9939310.0000000.0Positive
...............................................................
2022-12-30 19:11:0416491https://twitter.com/mikealfred/status/16089035...author i trimmed pepsi at $185. no longer lov...mikealfred1200PEPNaNNaNNaNNaNNaNNaNNaN0.9704290.0000000.0Positive
2022-12-30 20:49:3716492https://twitter.com/StockMKTNewz/status/160892...nlrb claims tesla $tsla illegally told staff t...StockMKTNewz39740TSLANaNNaNNaNNaNNaNNaNNaN0.0000000.5084750.0Negative
2022-12-30 21:03:4216493https://twitter.com/StockMKTNewz/status/160893...the sampp 500 $spy and nasdaq 100 $qqq both cl...StockMKTNewz975251SPY QQQNaNNaNNaNNaNNaNNaNNaN0.0000000.9996280.0Negative
2022-12-30 21:04:5916494https://twitter.com/StockMKTNewz/status/160893...the sampp 500 $spy saw its market cap drop by ...StockMKTNewz606120SPYNaNNaNNaNNaNNaNNaNNaN0.0000000.8910840.0Negative
2022-12-30 21:17:2516495https://twitter.com/StockMKTNewz/status/160893...the nasdaq 100 closed the year down more than ...StockMKTNewz838322DIA SPY QQQNaNNaNNaNNaNNaNNaNNaN0.0000000.9999960.0Negative
\n", + "

13876 rows × 20 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 \\\n", + "date \n", + "2022-01-01 04:22:22 1 \n", + "2022-01-01 10:28:50 2 \n", + "2022-01-01 14:00:02 3 \n", + "2022-01-01 17:30:35 4 \n", + "2022-01-01 17:36:38 5 \n", + "... ... \n", + "2022-12-30 19:11:04 16491 \n", + "2022-12-30 20:49:37 16492 \n", + "2022-12-30 21:03:42 16493 \n", + "2022-12-30 21:04:59 16494 \n", + "2022-12-30 21:17:25 16495 \n", + "\n", + " url \\\n", + "date \n", + "2022-01-01 04:22:22 https://twitter.com/LilMoonLambo/status/147713... \n", + "2022-01-01 10:28:50 https://twitter.com/cryptomanran/status/147722... \n", + "2022-01-01 14:00:02 https://twitter.com/johnscharts/status/1477278... \n", + "2022-01-01 17:30:35 https://twitter.com/CryptoGodJohn/status/14773... \n", + "2022-01-01 17:36:38 https://twitter.com/CryptoGodJohn/status/14773... \n", + "... ... \n", + "2022-12-30 19:11:04 https://twitter.com/mikealfred/status/16089035... \n", + "2022-12-30 20:49:37 https://twitter.com/StockMKTNewz/status/160892... \n", + "2022-12-30 21:03:42 https://twitter.com/StockMKTNewz/status/160893... \n", + "2022-12-30 21:04:59 https://twitter.com/StockMKTNewz/status/160893... \n", + "2022-12-30 21:17:25 https://twitter.com/StockMKTNewz/status/160893... \n", + "\n", + " tweet \\\n", + "date \n", + "2022-01-01 04:22:22 $eth bears died a painful death this yearlet’s... \n", + "2022-01-01 10:28:50 $ftm just hit 1,5m addresses. more interesting... \n", + "2022-01-01 14:00:02 $pfe earningssales acceleration \n", + "2022-01-01 17:30:35 2022 will be the year of $htrall kings with be... \n", + "2022-01-01 17:36:38 $avax looks ready to rip \n", + "... ... \n", + "2022-12-30 19:11:04 author i trimmed pepsi at $185. no longer lov... \n", + "2022-12-30 20:49:37 nlrb claims tesla $tsla illegally told staff t... \n", + "2022-12-30 21:03:42 the sampp 500 $spy and nasdaq 100 $qqq both cl... \n", + "2022-12-30 21:04:59 the sampp 500 $spy saw its market cap drop by ... \n", + "2022-12-30 21:17:25 the nasdaq 100 closed the year down more than ... \n", + "\n", + " username likeCount replyCount retweetCount \\\n", + "date \n", + "2022-01-01 04:22:22 LilMoonLambo 33 5 4 \n", + "2022-01-01 10:28:50 cryptomanran 1601 132 237 \n", + "2022-01-01 14:00:02 johnscharts 9 0 0 \n", + "2022-01-01 17:30:35 CryptoGodJohn 656 46 85 \n", + "2022-01-01 17:36:38 CryptoGodJohn 255 18 10 \n", + "... ... ... ... ... \n", + "2022-12-30 19:11:04 mikealfred 1 2 0 \n", + "2022-12-30 20:49:37 StockMKTNewz 39 7 4 \n", + "2022-12-30 21:03:42 StockMKTNewz 97 5 25 \n", + "2022-12-30 21:04:59 StockMKTNewz 60 6 12 \n", + "2022-12-30 21:17:25 StockMKTNewz 83 8 32 \n", + "\n", + " quoteCount cashtags hashtags stock_symbol \\\n", + "date \n", + "2022-01-01 04:22:22 0 ETH NaN NaN \n", + "2022-01-01 10:28:50 16 FTM NaN NaN \n", + "2022-01-01 14:00:02 0 PFE NaN NaN \n", + "2022-01-01 17:30:35 14 HTR NaN NaN \n", + "2022-01-01 17:36:38 2 AVAX NaN NaN \n", + "... ... ... ... ... \n", + "2022-12-30 19:11:04 0 PEP NaN NaN \n", + "2022-12-30 20:49:37 0 TSLA NaN NaN \n", + "2022-12-30 21:03:42 1 SPY QQQ NaN NaN \n", + "2022-12-30 21:04:59 0 SPY NaN NaN \n", + "2022-12-30 21:17:25 2 DIA SPY QQQ NaN NaN \n", + "\n", + " current_value 1min 60min 1day 1week positive \\\n", + "date \n", + "2022-01-01 04:22:22 NaN NaN NaN NaN NaN 0.000000 \n", + "2022-01-01 10:28:50 NaN NaN NaN NaN NaN 0.886819 \n", + "2022-01-01 14:00:02 NaN NaN NaN NaN NaN 1.000000 \n", + "2022-01-01 17:30:35 NaN NaN NaN NaN NaN 0.996068 \n", + "2022-01-01 17:36:38 NaN NaN NaN NaN NaN 0.993931 \n", + "... ... ... ... ... ... ... \n", + "2022-12-30 19:11:04 NaN NaN NaN NaN NaN 0.970429 \n", + "2022-12-30 20:49:37 NaN NaN NaN NaN NaN 0.000000 \n", + "2022-12-30 21:03:42 NaN NaN NaN NaN NaN 0.000000 \n", + "2022-12-30 21:04:59 NaN NaN NaN NaN NaN 0.000000 \n", + "2022-12-30 21:17:25 NaN NaN NaN NaN NaN 0.000000 \n", + "\n", + " negative neutral sentiment \n", + "date \n", + "2022-01-01 04:22:22 0.997282 0.0 Negative \n", + "2022-01-01 10:28:50 0.000000 0.0 Positive \n", + "2022-01-01 14:00:02 0.000000 0.0 Positive \n", + "2022-01-01 17:30:35 0.000000 0.0 Positive \n", + "2022-01-01 17:36:38 0.000000 0.0 Positive \n", + "... ... ... ... \n", + "2022-12-30 19:11:04 0.000000 0.0 Positive \n", + "2022-12-30 20:49:37 0.508475 0.0 Negative \n", + "2022-12-30 21:03:42 0.999628 0.0 Negative \n", + "2022-12-30 21:04:59 0.891084 0.0 Negative \n", + "2022-12-30 21:17:25 0.999996 0.0 Negative \n", + "\n", + "[13876 rows x 20 columns]" + ] + }, + "execution_count": 134, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "id": "883a1d97", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df = pd.merge(df, df_stocks, left_index=True, right_index=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "id": "00aa4539", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0urltweetusernamelikeCountreplyCountretweetCountquoteCountcashtagshashtags...1min60min1day1weekpositivenegativeneutralsentimentcloseclose_scalled
2022-01-04 12:23:0058https://twitter.com/Jake__Wujastyk/status/1478...$fslr fslr nice upgrade this morning.Jake__Wujastyk49600FSLR['FSLR']...NaNNaNNaNNaN0.9999990.0000000.0Positive178.8105170.948354
2022-01-04 18:05:008159https://twitter.com/mikealfred/status/14784272...absolute bloodbath at ark today. every stock i...mikealfred8400COINNaN...NaNNaNNaNNaN0.0000000.9992450.0Negative177.9876020.934113
2022-01-06 15:16:00129https://twitter.com/johnscharts/status/1479109...$coin from chat 225 puts up 27%johnscharts1010COINNaN...NaNNaNNaNNaN0.8518570.0000000.0Positive171.3233780.818782
2022-01-07 16:51:008266https://twitter.com/stocktalkweekly/status/147...$hlgn now down nearly -60% since shortputs wer...stocktalkweekly14000HLGNNaN...NaNNaNNaNNaN0.9902280.0000000.0Positive170.4623910.803882
2022-01-11 16:40:00238https://twitter.com/Jake__Wujastyk/status/1480...$roku roku beautiful setup for a strong move i...Jake__Wujastyk56520ROKU['ROKU']...NaNNaNNaNNaN1.0000000.0000000.0Positive173.6053310.858273
..................................................................
2022-12-15 16:40:007862https://twitter.com/CheddarFlow/status/1603429...mike wilson $ms “people assume earnings are go...CheddarFlow532105MSNaN...NaNNaNNaNNaN0.0000000.9972850.0Negative135.9508030.206627
2022-12-16 14:57:007875https://twitter.com/johnscharts/status/1603766...$meta flow noted in morning chat dec 16 122 mo...johnscharts2000METANaN...NaNNaNNaNNaN0.8148940.0000000.0Positive133.8217410.169782
2022-12-22 15:46:0016385https://twitter.com/CryptoKaleo/status/1605952...$tsla decline beginning to accelerateCryptoKaleo58931TSLANaN...NaNNaNNaNNaN0.9207840.0000000.0Positive131.0943490.122582
2022-12-22 19:30:0016391https://twitter.com/CryptoKaleo/status/1606009...bitcoin $btcfirst and foremost, i believe the ...CryptoKaleo1271951BTC['Bitcoin']...NaNNaNNaNNaN0.6287040.0000000.0Positive131.2339590.124998
2022-12-28 14:09:008049https://twitter.com/Jake__Wujastyk/status/1608...anyone else remember that elon has been eccent...Jake__Wujastyk31052195TSLA['Tesla']...NaNNaNNaNNaN0.0000000.9999410.0Negative126.8068630.048383
\n", + "

139 rows × 22 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 \\\n", + "2022-01-04 12:23:00 58 \n", + "2022-01-04 18:05:00 8159 \n", + "2022-01-06 15:16:00 129 \n", + "2022-01-07 16:51:00 8266 \n", + "2022-01-11 16:40:00 238 \n", + "... ... \n", + "2022-12-15 16:40:00 7862 \n", + "2022-12-16 14:57:00 7875 \n", + "2022-12-22 15:46:00 16385 \n", + "2022-12-22 19:30:00 16391 \n", + "2022-12-28 14:09:00 8049 \n", + "\n", + " url \\\n", + "2022-01-04 12:23:00 https://twitter.com/Jake__Wujastyk/status/1478... \n", + "2022-01-04 18:05:00 https://twitter.com/mikealfred/status/14784272... \n", + "2022-01-06 15:16:00 https://twitter.com/johnscharts/status/1479109... \n", + "2022-01-07 16:51:00 https://twitter.com/stocktalkweekly/status/147... \n", + "2022-01-11 16:40:00 https://twitter.com/Jake__Wujastyk/status/1480... \n", + "... ... \n", + "2022-12-15 16:40:00 https://twitter.com/CheddarFlow/status/1603429... \n", + "2022-12-16 14:57:00 https://twitter.com/johnscharts/status/1603766... \n", + "2022-12-22 15:46:00 https://twitter.com/CryptoKaleo/status/1605952... \n", + "2022-12-22 19:30:00 https://twitter.com/CryptoKaleo/status/1606009... \n", + "2022-12-28 14:09:00 https://twitter.com/Jake__Wujastyk/status/1608... \n", + "\n", + " tweet \\\n", + "2022-01-04 12:23:00 $fslr fslr nice upgrade this morning. \n", + "2022-01-04 18:05:00 absolute bloodbath at ark today. every stock i... \n", + "2022-01-06 15:16:00 $coin from chat 225 puts up 27% \n", + "2022-01-07 16:51:00 $hlgn now down nearly -60% since shortputs wer... \n", + "2022-01-11 16:40:00 $roku roku beautiful setup for a strong move i... \n", + "... ... \n", + "2022-12-15 16:40:00 mike wilson $ms “people assume earnings are go... \n", + "2022-12-16 14:57:00 $meta flow noted in morning chat dec 16 122 mo... \n", + "2022-12-22 15:46:00 $tsla decline beginning to accelerate \n", + "2022-12-22 19:30:00 bitcoin $btcfirst and foremost, i believe the ... \n", + "2022-12-28 14:09:00 anyone else remember that elon has been eccent... \n", + "\n", + " username likeCount replyCount retweetCount \\\n", + "2022-01-04 12:23:00 Jake__Wujastyk 49 6 0 \n", + "2022-01-04 18:05:00 mikealfred 8 4 0 \n", + "2022-01-06 15:16:00 johnscharts 1 0 1 \n", + "2022-01-07 16:51:00 stocktalkweekly 14 0 0 \n", + "2022-01-11 16:40:00 Jake__Wujastyk 56 5 2 \n", + "... ... ... ... ... \n", + "2022-12-15 16:40:00 CheddarFlow 53 2 10 \n", + "2022-12-16 14:57:00 johnscharts 2 0 0 \n", + "2022-12-22 15:46:00 CryptoKaleo 58 9 3 \n", + "2022-12-22 19:30:00 CryptoKaleo 127 19 5 \n", + "2022-12-28 14:09:00 Jake__Wujastyk 310 52 19 \n", + "\n", + " quoteCount cashtags hashtags ... 1min 60min 1day \\\n", + "2022-01-04 12:23:00 0 FSLR ['FSLR'] ... NaN NaN NaN \n", + "2022-01-04 18:05:00 0 COIN NaN ... NaN NaN NaN \n", + "2022-01-06 15:16:00 0 COIN NaN ... NaN NaN NaN \n", + "2022-01-07 16:51:00 0 HLGN NaN ... NaN NaN NaN \n", + "2022-01-11 16:40:00 0 ROKU ['ROKU'] ... NaN NaN NaN \n", + "... ... ... ... ... ... ... ... \n", + "2022-12-15 16:40:00 5 MS NaN ... NaN NaN NaN \n", + "2022-12-16 14:57:00 0 META NaN ... NaN NaN NaN \n", + "2022-12-22 15:46:00 1 TSLA NaN ... NaN NaN NaN \n", + "2022-12-22 19:30:00 1 BTC ['Bitcoin'] ... NaN NaN NaN \n", + "2022-12-28 14:09:00 5 TSLA ['Tesla'] ... NaN NaN NaN \n", + "\n", + " 1week positive negative neutral sentiment \\\n", + "2022-01-04 12:23:00 NaN 0.999999 0.000000 0.0 Positive \n", + "2022-01-04 18:05:00 NaN 0.000000 0.999245 0.0 Negative \n", + "2022-01-06 15:16:00 NaN 0.851857 0.000000 0.0 Positive \n", + "2022-01-07 16:51:00 NaN 0.990228 0.000000 0.0 Positive \n", + "2022-01-11 16:40:00 NaN 1.000000 0.000000 0.0 Positive \n", + "... ... ... ... ... ... \n", + "2022-12-15 16:40:00 NaN 0.000000 0.997285 0.0 Negative \n", + "2022-12-16 14:57:00 NaN 0.814894 0.000000 0.0 Positive \n", + "2022-12-22 15:46:00 NaN 0.920784 0.000000 0.0 Positive \n", + "2022-12-22 19:30:00 NaN 0.628704 0.000000 0.0 Positive \n", + "2022-12-28 14:09:00 NaN 0.000000 0.999941 0.0 Negative \n", + "\n", + " close close_scalled \n", + "2022-01-04 12:23:00 178.810517 0.948354 \n", + "2022-01-04 18:05:00 177.987602 0.934113 \n", + "2022-01-06 15:16:00 171.323378 0.818782 \n", + "2022-01-07 16:51:00 170.462391 0.803882 \n", + "2022-01-11 16:40:00 173.605331 0.858273 \n", + "... ... ... \n", + "2022-12-15 16:40:00 135.950803 0.206627 \n", + "2022-12-16 14:57:00 133.821741 0.169782 \n", + "2022-12-22 15:46:00 131.094349 0.122582 \n", + "2022-12-22 19:30:00 131.233959 0.124998 \n", + "2022-12-28 14:09:00 126.806863 0.048383 \n", + "\n", + "[139 rows x 22 columns]" + ] + }, + "execution_count": 145, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "merged_df" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "id": "34485fb9", + "metadata": {}, + "outputs": [], + "source": [ + "merged_short = merged_df[['tweet', 'username', 'likeCount', 'replyCount',\n", + " 'retweetCount', 'sentiment', 'close']]" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "id": "5ae1db8d", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tweetusernamelikeCountreplyCountretweetCountsentimentclose
2022-01-04 12:23:00$fslr fslr nice upgrade this morning.Jake__Wujastyk4960Positive178.810517
2022-01-04 18:05:00absolute bloodbath at ark today. every stock i...mikealfred840Negative177.987602
2022-01-06 15:16:00$coin from chat 225 puts up 27%johnscharts101Positive171.323378
2022-01-07 16:51:00$hlgn now down nearly -60% since shortputs wer...stocktalkweekly1400Positive170.462391
2022-01-11 16:40:00$roku roku beautiful setup for a strong move i...Jake__Wujastyk5652Positive173.605331
........................
2022-12-15 16:40:00mike wilson $ms “people assume earnings are go...CheddarFlow53210Negative135.950803
2022-12-16 14:57:00$meta flow noted in morning chat dec 16 122 mo...johnscharts200Positive133.821741
2022-12-22 15:46:00$tsla decline beginning to accelerateCryptoKaleo5893Positive131.094349
2022-12-22 19:30:00bitcoin $btcfirst and foremost, i believe the ...CryptoKaleo127195Positive131.233959
2022-12-28 14:09:00anyone else remember that elon has been eccent...Jake__Wujastyk3105219Negative126.806863
\n", + "

139 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " tweet \\\n", + "2022-01-04 12:23:00 $fslr fslr nice upgrade this morning. \n", + "2022-01-04 18:05:00 absolute bloodbath at ark today. every stock i... \n", + "2022-01-06 15:16:00 $coin from chat 225 puts up 27% \n", + "2022-01-07 16:51:00 $hlgn now down nearly -60% since shortputs wer... \n", + "2022-01-11 16:40:00 $roku roku beautiful setup for a strong move i... \n", + "... ... \n", + "2022-12-15 16:40:00 mike wilson $ms “people assume earnings are go... \n", + "2022-12-16 14:57:00 $meta flow noted in morning chat dec 16 122 mo... \n", + "2022-12-22 15:46:00 $tsla decline beginning to accelerate \n", + "2022-12-22 19:30:00 bitcoin $btcfirst and foremost, i believe the ... \n", + "2022-12-28 14:09:00 anyone else remember that elon has been eccent... \n", + "\n", + " username likeCount replyCount retweetCount \\\n", + "2022-01-04 12:23:00 Jake__Wujastyk 49 6 0 \n", + "2022-01-04 18:05:00 mikealfred 8 4 0 \n", + "2022-01-06 15:16:00 johnscharts 1 0 1 \n", + "2022-01-07 16:51:00 stocktalkweekly 14 0 0 \n", + "2022-01-11 16:40:00 Jake__Wujastyk 56 5 2 \n", + "... ... ... ... ... \n", + "2022-12-15 16:40:00 CheddarFlow 53 2 10 \n", + "2022-12-16 14:57:00 johnscharts 2 0 0 \n", + "2022-12-22 15:46:00 CryptoKaleo 58 9 3 \n", + "2022-12-22 19:30:00 CryptoKaleo 127 19 5 \n", + "2022-12-28 14:09:00 Jake__Wujastyk 310 52 19 \n", + "\n", + " sentiment close \n", + "2022-01-04 12:23:00 Positive 178.810517 \n", + "2022-01-04 18:05:00 Negative 177.987602 \n", + "2022-01-06 15:16:00 Positive 171.323378 \n", + "2022-01-07 16:51:00 Positive 170.462391 \n", + "2022-01-11 16:40:00 Positive 173.605331 \n", + "... ... ... \n", + "2022-12-15 16:40:00 Negative 135.950803 \n", + "2022-12-16 14:57:00 Positive 133.821741 \n", + "2022-12-22 15:46:00 Positive 131.094349 \n", + "2022-12-22 19:30:00 Positive 131.233959 \n", + "2022-12-28 14:09:00 Negative 126.806863 \n", + "\n", + "[139 rows x 7 columns]" + ] + }, + "execution_count": 143, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "merged_short" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "id": "5d7a885e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
closeclose_scalled
time
2021-12-13 04:01:00178.8600900.949212
2021-12-13 04:02:00179.1971880.955046
2021-12-13 04:03:00179.3657370.957962
2021-12-13 04:04:00179.3855660.958306
2021-12-13 04:05:00179.2566760.956075
.........
2023-02-03 19:55:00154.0954010.520636
2023-02-03 19:56:00154.1052860.520807
2023-02-03 19:57:00154.0953010.520634
2023-02-03 19:59:00154.1152700.520980
2023-02-03 20:00:00154.1552100.521671
\n", + "

235156 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " close close_scalled\n", + "time \n", + "2021-12-13 04:01:00 178.860090 0.949212\n", + "2021-12-13 04:02:00 179.197188 0.955046\n", + "2021-12-13 04:03:00 179.365737 0.957962\n", + "2021-12-13 04:04:00 179.385566 0.958306\n", + "2021-12-13 04:05:00 179.256676 0.956075\n", + "... ... ...\n", + "2023-02-03 19:55:00 154.095401 0.520636\n", + "2023-02-03 19:56:00 154.105286 0.520807\n", + "2023-02-03 19:57:00 154.095301 0.520634\n", + "2023-02-03 19:59:00 154.115270 0.520980\n", + "2023-02-03 20:00:00 154.155210 0.521671\n", + "\n", + "[235156 rows x 2 columns]" + ] + }, + "execution_count": 144, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_stocks" + ] + } + ], + "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.10.6" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/my_notebooks/.ipynb_checkpoints/LSTM for stocks-checkpoint.ipynb b/my_notebooks/.ipynb_checkpoints/LSTM for stocks-checkpoint.ipynb new file mode 100644 index 0000000..7fbd28f --- /dev/null +++ b/my_notebooks/.ipynb_checkpoints/LSTM for stocks-checkpoint.ipynb @@ -0,0 +1,553 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "00136c02", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "import numpy as np\n", + "\n", + "from tensorflow.keras.models import Sequential\n", + "from tensorflow.keras.optimizers import Adam\n", + "from tensorflow.keras import layers" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "90e4cd71", + "metadata": {}, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'AAPL.csv'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [5], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m df1 \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_csv\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mAAPL.csv\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m df1\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/util/_decorators.py:311\u001b[0m, in \u001b[0;36mdeprecate_nonkeyword_arguments..decorate..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(args) \u001b[38;5;241m>\u001b[39m num_allow_args:\n\u001b[1;32m 306\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[1;32m 307\u001b[0m msg\u001b[38;5;241m.\u001b[39mformat(arguments\u001b[38;5;241m=\u001b[39marguments),\n\u001b[1;32m 308\u001b[0m \u001b[38;5;167;01mFutureWarning\u001b[39;00m,\n\u001b[1;32m 309\u001b[0m stacklevel\u001b[38;5;241m=\u001b[39mstacklevel,\n\u001b[1;32m 310\u001b[0m )\n\u001b[0;32m--> 311\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/io/parsers/readers.py:678\u001b[0m, in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[1;32m 663\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[1;32m 664\u001b[0m dialect,\n\u001b[1;32m 665\u001b[0m delimiter,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 674\u001b[0m defaults\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdelimiter\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m,\u001b[39m\u001b[38;5;124m\"\u001b[39m},\n\u001b[1;32m 675\u001b[0m )\n\u001b[1;32m 676\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[0;32m--> 678\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_read\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/io/parsers/readers.py:575\u001b[0m, in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 572\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[1;32m 574\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[0;32m--> 575\u001b[0m parser \u001b[38;5;241m=\u001b[39m \u001b[43mTextFileReader\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[1;32m 578\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/io/parsers/readers.py:932\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 929\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 931\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m--> 932\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_engine\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mengine\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1216\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[0;34m(self, f, engine)\u001b[0m\n\u001b[1;32m 1212\u001b[0m mode \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1213\u001b[0m \u001b[38;5;66;03m# error: No overload variant of \"get_handle\" matches argument types\u001b[39;00m\n\u001b[1;32m 1214\u001b[0m \u001b[38;5;66;03m# \"Union[str, PathLike[str], ReadCsvBuffer[bytes], ReadCsvBuffer[str]]\"\u001b[39;00m\n\u001b[1;32m 1215\u001b[0m \u001b[38;5;66;03m# , \"str\", \"bool\", \"Any\", \"Any\", \"Any\", \"Any\", \"Any\"\u001b[39;00m\n\u001b[0;32m-> 1216\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m \u001b[43mget_handle\u001b[49m\u001b[43m(\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# type: ignore[call-overload]\u001b[39;49;00m\n\u001b[1;32m 1217\u001b[0m \u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1218\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1219\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1220\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompression\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcompression\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1221\u001b[0m \u001b[43m \u001b[49m\u001b[43mmemory_map\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmemory_map\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1222\u001b[0m \u001b[43m \u001b[49m\u001b[43mis_text\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_text\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1223\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding_errors\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstrict\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1224\u001b[0m \u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstorage_options\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1225\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1226\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1227\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/io/common.py:786\u001b[0m, in \u001b[0;36mget_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[1;32m 781\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[1;32m 782\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[1;32m 783\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[1;32m 784\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[1;32m 785\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[0;32m--> 786\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 787\u001b[0m \u001b[43m \u001b[49m\u001b[43mhandle\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 788\u001b[0m \u001b[43m \u001b[49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 789\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencoding\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 790\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 791\u001b[0m \u001b[43m \u001b[49m\u001b[43mnewline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 792\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 793\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 794\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[1;32m 795\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'AAPL.csv'" + ] + } + ], + "source": [ + "df1 = pd.read_csv(\"AAPL.csv\")\n", + "\n", + "df1" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "c1a67a84", + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "\"['datetime'] not in index\"", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [7], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m df \u001b[38;5;241m=\u001b[39m \u001b[43mdf\u001b[49m\u001b[43m[\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mdatetime\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mclose\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m]\u001b[49m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/frame.py:3511\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3509\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_iterator(key):\n\u001b[1;32m 3510\u001b[0m key \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(key)\n\u001b[0;32m-> 3511\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_indexer_strict\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcolumns\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m[\u001b[38;5;241m1\u001b[39m]\n\u001b[1;32m 3513\u001b[0m \u001b[38;5;66;03m# take() does not accept boolean indexers\u001b[39;00m\n\u001b[1;32m 3514\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(indexer, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdtype\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;241m==\u001b[39m \u001b[38;5;28mbool\u001b[39m:\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/indexes/base.py:5796\u001b[0m, in \u001b[0;36mIndex._get_indexer_strict\u001b[0;34m(self, key, axis_name)\u001b[0m\n\u001b[1;32m 5793\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 5794\u001b[0m keyarr, indexer, new_indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_reindex_non_unique(keyarr)\n\u001b[0;32m-> 5796\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_raise_if_missing\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkeyarr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindexer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis_name\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 5798\u001b[0m keyarr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtake(indexer)\n\u001b[1;32m 5799\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(key, Index):\n\u001b[1;32m 5800\u001b[0m \u001b[38;5;66;03m# GH 42790 - Preserve name from an Index\u001b[39;00m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/indexes/base.py:5859\u001b[0m, in \u001b[0;36mIndex._raise_if_missing\u001b[0;34m(self, key, indexer, axis_name)\u001b[0m\n\u001b[1;32m 5856\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNone of [\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mkey\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m] are in the [\u001b[39m\u001b[38;5;132;01m{\u001b[39;00maxis_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m]\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 5858\u001b[0m not_found \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(ensure_index(key)[missing_mask\u001b[38;5;241m.\u001b[39mnonzero()[\u001b[38;5;241m0\u001b[39m]]\u001b[38;5;241m.\u001b[39munique())\n\u001b[0;32m-> 5859\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mnot_found\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m not in index\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "\u001b[0;31mKeyError\u001b[0m: \"['datetime'] not in index\"" + ] + } + ], + "source": [ + "df = df[['datetime', 'close']]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9102674b", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df[\"datetime\"] = pd.to_datetime(df[\"datetime\"])\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "61b32d15", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e7bed360", + "metadata": {}, + "outputs": [], + "source": [ + "scaller = MinMaxScaler()\n", + "df[\"close_scalled\"] = scaller.fit_transform(df[[\"close\"]])\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e2fda44", + "metadata": {}, + "outputs": [], + "source": [ + "df.index = df.pop('datetime')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb643a5c", + "metadata": {}, + "outputs": [], + "source": [ + "df_scalled = df[\"close_scalled\"]\n", + "df_scalled = pd.DataFrame(df_scalled)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22e39794", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.plot(df_scalled.index, df_scalled[\"close_scalled\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53236dbd", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "df_scalled.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db945265", + "metadata": {}, + "outputs": [], + "source": [ + "def creat_window_df(df):\n", + " target_df = pd.DataFrame(index=df.index)\n", + " for i in range(1, 6):\n", + " target_df[f'close_scalled Lag {i}'] = df['close_scalled'].shift(i)\n", + " target_df['Target'] = df['close_scalled']\n", + " target_df = target_df.dropna()\n", + " return target_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "59d7f680", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "window_df = creat_window_df(df_scalled)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d8b735e7", + "metadata": {}, + "outputs": [], + "source": [ + "window_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fae3e27c", + "metadata": {}, + "outputs": [], + "source": [ + "def windowed_df_to_date_X_y(windowed_dataframe):\n", + " df_as_np = windowed_dataframe.reset_index().to_numpy()\n", + "\n", + " dates = df_as_np[:, 0]\n", + "\n", + " middle_matrix = df_as_np[:, 1:-1]\n", + " X = middle_matrix.reshape((len(dates), middle_matrix.shape[1], 1))\n", + "\n", + " Y = df_as_np[:, -1]\n", + "\n", + " return dates, X.astype(np.float32), Y.astype(np.float32)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "be779c3a", + "metadata": {}, + "outputs": [], + "source": [ + "dates, X, y = windowed_df_to_date_X_y(window_df)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2492bad2", + "metadata": {}, + "outputs": [], + "source": [ + "dates.shape, X.shape, y.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f3bbb789", + "metadata": {}, + "outputs": [], + "source": [ + "q_80 = int(len(dates) * .8)\n", + "q_90 = int(len(dates) * .9)\n", + "\n", + "dates_train, X_train, y_train = dates[:q_80], X[:q_80], y[:q_80]\n", + "\n", + "dates_val, X_val, y_val = dates[q_80:q_90], X[q_80:q_90], y[q_80:q_90]\n", + "dates_test, X_test, y_test = dates[q_90:], X[q_90:], y[q_90:]\n", + "\n", + "plt.figure(figsize=(18, 8))\n", + "plt.plot(dates_train, y_train)\n", + "plt.plot(dates_val, y_val)\n", + "plt.plot(dates_test, y_test)\n", + "\n", + "plt.legend(['Train', 'Validation', 'Test'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3eaf724c", + "metadata": {}, + "outputs": [], + "source": [ + "model = Sequential([layers.Input((5, 1)),\n", + " layers.LSTM(64),\n", + " layers.Dense(32, activation='relu'),\n", + " layers.Dense(32, activation='relu'),\n", + " layers.Dense(1)])\n", + "\n", + "model.compile(loss='mse', \n", + " optimizer=Adam(learning_rate=0.001),\n", + " metrics=['mean_absolute_error'])\n", + "\n", + "model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78b13020", + "metadata": {}, + "outputs": [], + "source": [ + "train_predictions = model.predict(X_train).flatten()\n", + "\n", + "plt.plot(dates_train, train_predictions)\n", + "plt.plot(dates_train, y_train)\n", + "plt.legend(['Training Predictions', 'Training Observations'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bc858f96", + "metadata": {}, + "outputs": [], + "source": [ + "val_predictions = model.predict(X_val).flatten()\n", + "\n", + "plt.plot(dates_val, val_predictions)\n", + "plt.plot(dates_val, y_val)\n", + "plt.legend(['Validation Predictions', 'Validation Observations'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e7bb335", + "metadata": {}, + "outputs": [], + "source": [ + "test_predictions = model.predict(X_test).flatten()\n", + "\n", + "plt.figure(figsize=(18, 8))\n", + "plt.plot(dates_test, test_predictions)\n", + "plt.plot(dates_test, y_test)\n", + "plt.legend(['Testing Predictions', 'Testing Observations'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "821d79aa", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "plt.figure(figsize=(18, 8))\n", + "\n", + "plt.plot(dates_train, train_predictions)\n", + "plt.plot(dates_train, y_train)\n", + "plt.plot(dates_val, val_predictions)\n", + "plt.plot(dates_val, y_val)\n", + "plt.plot(dates_test, test_predictions)\n", + "plt.plot(dates_test, y_test)\n", + "plt.legend(['Training Predictions', \n", + " 'Training Observations',\n", + " 'Validation Predictions', \n", + " 'Validation Observations',\n", + " 'Testing Predictions', \n", + " 'Testing Observations'])" + ] + }, + { + "cell_type": "markdown", + "id": "8920c041", + "metadata": {}, + "source": [ + "# Merging Models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c25fdf01", + "metadata": {}, + "outputs": [], + "source": [ + "# LSTM model\n", + "lstm_model = Sequential()\n", + "# add LSTM layers\n", + "...\n", + "\n", + "# Language model\n", + "language_model = Sequential()\n", + "# add layers\n", + "...\n", + "\n", + "# Merge outputs from both models\n", + "merged_output = Concatenate()([lstm_model.output, language_model.output])\n", + "\n", + "# Fully connected neural network\n", + "model = Sequential()\n", + "model.add(Dense(64, activation='relu', input_shape=(merged_output.shape[1],)))\n", + "model.add(Dense(32, activation='relu'))\n", + "model.add(Dense(1))\n", + "\n", + "# compile and train the model\n", + "model.compile(optimizer=Adam(), loss='mse')\n", + "model.fit(merged_output, y_train, ...)\n" + ] + }, + { + "cell_type": "markdown", + "id": "c6b9e845", + "metadata": {}, + "source": [ + "# Trying to use multiple companies" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03de379c", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df_2 = pd.read_csv(\"AAPL.csv\")\n", + "df_3 = pd.read_csv(\"TSLA.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ceb9d2f", + "metadata": {}, + "outputs": [], + "source": [ + "df_3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e43e505", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df = pd.merge(df_2, df_3, on='time')\n", + "merged_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87a34fcd", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df.drop(['open_x', 'high_x', 'low_x', 'volume_x', 'symbol_x',\n", + " 'open_y', 'high_y', 'low_y', 'volume_y', 'symbol_y'], axis=1, inplace=True)\n", + "merged_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "73c0cf9e", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df = merged_df.dropna(subset=['close_x', 'close_y'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57a09271", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df.rename(columns={'close_x': 'Apple', 'close_y': 'Tesla'}, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ec37ce1", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "merged_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f5fe220f", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df.index = merged_df.pop('time')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71676331", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4fd3b228", + "metadata": {}, + "outputs": [], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "efb4e338", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "677ecd92", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c0c6cd72", + "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.10.6" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/my_notebooks/Joining the baseline with the tweeter data.ipynb b/my_notebooks/Joining the baseline with the tweeter data.ipynb new file mode 100644 index 0000000..8e92181 --- /dev/null +++ b/my_notebooks/Joining the baseline with the tweeter data.ipynb @@ -0,0 +1,718 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 6, + "id": "2ba3e4bd", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import re\n", + "import glob\n", + "import os\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "from keras.models import Sequential\n", + "from keras.layers import LSTM, Dense" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "820e8612", + "metadata": {}, + "outputs": [], + "source": [ + "path = \"../stocks_1m/raw_data_candles/*.csv\" # for the 1 min data\n", + "path2 = \"../stocks_1d/raw_data_candles/*.csv\" # # for the 1 day data" + ] + }, + { + "cell_type": "markdown", + "id": "7aae5bd4", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "# This block creates a DF for each stock CSV file in the folder (path)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9ce3a4c1", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "\n", + "dfs = []\n", + "dfs_names = []\n", + "for file in glob.glob(path):\n", + " # extract the file name without the extension\n", + " file_name = os.path.splitext(os.path.basename(file))[0]\n", + " dfs_names.append(file_name)\n", + " # read the CSV file into a dataframe\n", + " df = pd.read_csv(file)\n", + " \n", + " \n", + " #preprocess:\n", + " df = df.drop(columns=\"symbol\")\n", + " df[\"time\"] = pd.to_datetime(df[\"time\"])\n", + " df.index = df.pop('time')\n", + " \n", + " # creat list:\n", + " dfs.append(df)\n", + " \n" + ] + }, + { + "cell_type": "markdown", + "id": "5fd1f54e", + "metadata": {}, + "source": [ + "# This is the step where we can join the tweet data separated by stock" + ] + }, + { + "cell_type": "markdown", + "id": "96502c19", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "# This converts the data into the input shape necessary for the LSTM, and splits X and y" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "9a713391", + "metadata": { + "hidden": true, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(29, 360, 5)\n", + "(29, 360, 1)\n" + ] + } + ], + "source": [ + "nr_dataframes = len(dfs)\n", + "nr_rows = 360\n", + "nr_features = 5\n", + "\n", + "# Create an empty array to store the data\n", + "x_array = np.zeros((nr_dataframes, nr_rows, nr_features))\n", + "y_array = np.zeros((nr_dataframes, nr_rows))\n", + "\n", + "# Loop through the dataframes and slice the last 1000 rows\n", + "for i, df in enumerate(dfs):\n", + " sliced_df_x = df[:-1].tail(nr_rows)\n", + " sliced_df_y = df.tail(nr_rows)\n", + "\n", + " # Convert the sliced dataframe to a numpy array\n", + " x_df = np.array(sliced_df_x)\n", + " \n", + "\n", + " # Add the numpy array to the empty array\n", + " x_array[i, :, :] = x_df\n", + "\n", + " # Extract the 'close' column as a numpy array and add it to y_array\n", + " close_prices = sliced_df_y['close'].to_numpy()\n", + " y_array[i, :] = close_prices\n", + " \n", + " X = x_array\n", + " y = np.expand_dims(y_array.astype(np.float32),axis=-1)\n", + "\n", + "# Print the shape of the final arrays\n", + "print(X.shape)\n", + "print(y.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "184cb05b", + "metadata": { + "collapsed": true, + "hidden": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[[8.79900000e+01, 8.79900000e+01, 8.78900000e+01, 8.79658000e+01,\n", + " 9.86990000e+04],\n", + " [8.79500000e+01, 8.79600000e+01, 8.78800000e+01, 8.79200000e+01,\n", + " 1.09935000e+05],\n", + " [8.79250000e+01, 8.80700000e+01, 8.79250000e+01, 8.80415000e+01,\n", + " 1.08495000e+05],\n", + " ...,\n", + " [8.59600000e+01, 8.59600000e+01, 8.59600000e+01, 8.59600000e+01,\n", + " 1.19000000e+02],\n", + " [8.59600000e+01, 8.59600000e+01, 8.59600000e+01, 8.59600000e+01,\n", + " 2.36000000e+02],\n", + " [8.60000000e+01, 8.60000000e+01, 8.60000000e+01, 8.60000000e+01,\n", + " 5.66000000e+02]],\n", + "\n", + " [[2.62477277e+02, 2.62696723e+02, 2.62467302e+02, 2.62547200e+02,\n", + " 2.12110000e+04],\n", + " [2.62587000e+02, 2.62636874e+02, 2.62477277e+02, 2.62507201e+02,\n", + " 3.10070000e+04],\n", + " [2.62507201e+02, 2.62936119e+02, 2.62427403e+02, 2.62886244e+02,\n", + " 5.98560000e+04],\n", + " ...,\n", + " [2.57360197e+02, 2.57360197e+02, 2.57350222e+02, 2.57350222e+02,\n", + " 2.61000000e+03],\n", + " [2.57350222e+02, 2.57350222e+02, 2.57350222e+02, 2.57350222e+02,\n", + " 2.28000000e+02],\n", + " [2.57350222e+02, 2.57350222e+02, 2.57350222e+02, 2.57350222e+02,\n", + " 4.49000000e+02]],\n", + "\n", + " [[3.03735811e+01, 3.04130786e+01, 3.03695326e+01, 3.03883927e+01,\n", + " 2.17221000e+05],\n", + " [3.03883927e+01, 3.03933299e+01, 3.02748374e+01, 3.02782934e+01,\n", + " 1.43293000e+05],\n", + " [3.02748374e+01, 3.03340836e+01, 3.02649630e+01, 3.03276653e+01,\n", + " 7.62680000e+04],\n", + " ...,\n", + " [3.00576011e+01, 3.00576011e+01, 3.00576011e+01, 3.00576011e+01,\n", + " 3.28000000e+02],\n", + " [3.00576011e+01, 3.00576011e+01, 3.00477267e+01, 3.00477267e+01,\n", + " 6.28000000e+02],\n", + " [3.00674755e+01, 3.00674755e+01, 3.00674755e+01, 3.00674755e+01,\n", + " 1.18400000e+03]],\n", + "\n", + " ...,\n", + "\n", + " [[1.06812600e+02, 1.06910000e+02, 1.06780000e+02, 1.06890000e+02,\n", + " 7.74990000e+04],\n", + " [1.06885000e+02, 1.07080000e+02, 1.06885000e+02, 1.07070000e+02,\n", + " 9.53200000e+04],\n", + " [1.07075000e+02, 1.07080000e+02, 1.06850100e+02, 1.06900000e+02,\n", + " 1.12162000e+05],\n", + " ...,\n", + " [1.04750000e+02, 1.04780000e+02, 1.04750000e+02, 1.04780000e+02,\n", + " 1.05800000e+03],\n", + " [1.04730000e+02, 1.04730000e+02, 1.04730000e+02, 1.04730000e+02,\n", + " 5.43000000e+02],\n", + " [1.04670000e+02, 1.04670000e+02, 1.04670000e+02, 1.04670000e+02,\n", + " 7.60000000e+02]],\n", + "\n", + " [[1.70400000e+01, 1.70450000e+01, 1.70200000e+01, 1.70237000e+01,\n", + " 3.33470000e+04],\n", + " [1.70250000e+01, 1.70300000e+01, 1.70200000e+01, 1.70250000e+01,\n", + " 1.55950000e+04],\n", + " [1.70250000e+01, 1.70300000e+01, 1.70200000e+01, 1.70300000e+01,\n", + " 6.36300000e+03],\n", + " ...,\n", + " [1.70300000e+01, 1.70300000e+01, 1.70300000e+01, 1.70300000e+01,\n", + " 1.38360000e+04],\n", + " [1.70300000e+01, 1.70300000e+01, 1.70300000e+01, 1.70300000e+01,\n", + " 3.01100000e+03],\n", + " [1.70300000e+01, 1.70300000e+01, 1.70300000e+01, 1.70300000e+01,\n", + " 2.00000000e+03]],\n", + "\n", + " [[2.15065000e+02, 2.15210000e+02, 2.14959400e+02, 2.15060000e+02,\n", + " 7.07700000e+04],\n", + " [2.15100000e+02, 2.15100000e+02, 2.14811800e+02, 2.14889900e+02,\n", + " 5.15830000e+04],\n", + " [2.14850000e+02, 2.15080000e+02, 2.14680000e+02, 2.15056000e+02,\n", + " 5.57640000e+04],\n", + " ...,\n", + " [2.10810000e+02, 2.10810000e+02, 2.10650000e+02, 2.10650000e+02,\n", + " 5.92000000e+02],\n", + " [2.10810000e+02, 2.10810000e+02, 2.10650000e+02, 2.10650000e+02,\n", + " 4.39000000e+02],\n", + " [2.10650000e+02, 2.10650000e+02, 2.10650000e+02, 2.10650000e+02,\n", + " 3.79000000e+02]]])" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X" + ] + }, + { + "cell_type": "markdown", + "id": "49bd94fb", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "# Next step is scalling tha data and feed it to the model (review)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "52cd48f0", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "scaler = MinMaxScaler(feature_range=(0, 1))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "8481bbcf", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "model = Sequential()\n", + "model.add(LSTM(units=50, return_sequences=True, input_shape=(n_steps, n_features)))\n", + "model.add(LSTM(units=50))\n", + "model.add(Dense(units=1))\n", + "model.compile(optimizer='adam', loss='mean_squared_error')" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "ed01b00a", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"sequential_2\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " lstm_4 (LSTM) (None, 360, 50) 11200 \n", + " \n", + " lstm_5 (LSTM) (None, 50) 20200 \n", + " \n", + " dense_2 (Dense) (None, 1) 51 \n", + " \n", + "=================================================================\n", + "Total params: 31,451\n", + "Trainable params: 31,451\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "2d840bf6", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n" + ] + }, + { + "ename": "ValueError", + "evalue": "in user code:\n\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/training.py\", line 1160, in train_function *\n return step_function(self, iterator)\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/training.py\", line 1146, in step_function **\n outputs = model.distribute_strategy.run(run_step, args=(data,))\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/training.py\", line 1135, in run_step **\n outputs = model.train_step(data)\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/training.py\", line 993, in train_step\n y_pred = self(x, training=True)\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/utils/traceback_utils.py\", line 70, in error_handler\n raise e.with_traceback(filtered_tb) from None\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/input_spec.py\", line 295, in assert_input_compatibility\n raise ValueError(\n\n ValueError: Input 0 of layer \"sequential_2\" is incompatible with the layer: expected shape=(None, 360, 5), found shape=(None, 60, 5)\n", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [37], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtrain_X\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain_y\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mepochs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m10\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m32\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/utils/traceback_utils.py:70\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 67\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n\u001b[1;32m 68\u001b[0m \u001b[38;5;66;03m# To get the full stack trace, call:\u001b[39;00m\n\u001b[1;32m 69\u001b[0m \u001b[38;5;66;03m# `tf.debugging.disable_traceback_filtering()`\u001b[39;00m\n\u001b[0;32m---> 70\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\u001b[38;5;241m.\u001b[39mwith_traceback(filtered_tb) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28mNone\u001b[39m\n\u001b[1;32m 71\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m filtered_tb\n", + "File \u001b[0;32m/tmp/__autograph_generated_file4g646tc8.py:15\u001b[0m, in \u001b[0;36mouter_factory..inner_factory..tf__train_function\u001b[0;34m(iterator)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 14\u001b[0m do_return \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[0;32m---> 15\u001b[0m retval_ \u001b[38;5;241m=\u001b[39m ag__\u001b[38;5;241m.\u001b[39mconverted_call(ag__\u001b[38;5;241m.\u001b[39mld(step_function), (ag__\u001b[38;5;241m.\u001b[39mld(\u001b[38;5;28mself\u001b[39m), ag__\u001b[38;5;241m.\u001b[39mld(iterator)), \u001b[38;5;28;01mNone\u001b[39;00m, fscope)\n\u001b[1;32m 16\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m:\n\u001b[1;32m 17\u001b[0m do_return \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", + "\u001b[0;31mValueError\u001b[0m: in user code:\n\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/training.py\", line 1160, in train_function *\n return step_function(self, iterator)\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/training.py\", line 1146, in step_function **\n outputs = model.distribute_strategy.run(run_step, args=(data,))\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/training.py\", line 1135, in run_step **\n outputs = model.train_step(data)\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/training.py\", line 993, in train_step\n y_pred = self(x, training=True)\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/utils/traceback_utils.py\", line 70, in error_handler\n raise e.with_traceback(filtered_tb) from None\n File \"/home/armando/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/keras/engine/input_spec.py\", line 295, in assert_input_compatibility\n raise ValueError(\n\n ValueError: Input 0 of layer \"sequential_2\" is incompatible with the layer: expected shape=(None, 360, 5), found shape=(None, 60, 5)\n" + ] + } + ], + "source": [ + "model.fit(train_X, train_y, epochs=10, batch_size=32)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fdd90a8a", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "for df in df:\n", + " df = df.drop(\"symbol\")\n", + " \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e368821d", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3e14add", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17df0925", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "09f87fa4", + "metadata": { + "hidden": true, + "scrolled": false + }, + "outputs": [], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9b84b911", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1a9feca", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "def clean_cashtags(st):\n", + " letters = re.findall('[A-Za-z]+', st)\n", + " return ' '.join(letters)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1dcfb948", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df = df.dropna(subset=[\"cashtags\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "087e95e7", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df[\"cashtags\"] = df[\"cashtags\"].apply(clean_cashtags)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ab370eab", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "def del_timestamp(st):\n", + " return st.replace(\"+00:00\", \"\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2ed9ca6c", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df[\"date\"] = df[\"date\"].apply(del_timestamp)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f76f8bf2", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df[\"date\"] = pd.to_datetime(df['date'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3555e758", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df.index = df.pop('date')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fc68fbc5", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df[df[\"cashtags\"] == \"MSFT\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "de8a6244", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df_stocks = pd.read_csv(\"AAPL.csv\")\n", + "df_stocks.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ca4ac94e", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df_stocks = df_stocks[['time', 'close']]\n", + "df_stocks.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f9661ac", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df_stocks[\"time\"] = pd.to_datetime(df_stocks[\"time\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a971f2e2", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df_stocks.index = df_stocks.pop(\"time\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7715ce7", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df_stocks" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "51d741a8", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "scaller = MinMaxScaler()\n", + "\n", + "df_stocks[\"close_scalled\"] = scaller.fit_transform(df_stocks[[\"close\"]])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58455125", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df_stocks" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "584df763", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "883a1d97", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "merged_df = pd.merge(df, df_stocks, left_index=True, right_index=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "00aa4539", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "merged_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "34485fb9", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "merged_short = merged_df[['tweet', 'username', 'likeCount', 'replyCount',\n", + " 'retweetCount', 'sentiment', 'close']]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ae1db8d", + "metadata": { + "hidden": true, + "scrolled": true + }, + "outputs": [], + "source": [ + "merged_short" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5d7a885e", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df_stocks" + ] + } + ], + "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.10.6" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/my_notebooks/LSTM for stocks.ipynb b/my_notebooks/LSTM for stocks.ipynb new file mode 100644 index 0000000..db99fdd --- /dev/null +++ b/my_notebooks/LSTM for stocks.ipynb @@ -0,0 +1,1152 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "00136c02", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from keras.models import Sequential\n", + "from keras.layers import LSTM, Dense" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "90e4cd71", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"../stocks/raw_data_candles/AAPL.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "281a07d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
timeopenhighlowclosevolumesymbol
02021-12-13 04:01:00178.909663179.226932178.830346178.86009013331AAPL
12021-12-13 04:02:00178.959236179.355822178.899749179.1971887595AAPL
22021-12-13 04:03:00179.147615179.464883178.979066179.36573710868AAPL
32021-12-13 04:04:00179.425224179.435139179.355822179.3855666277AAPL
42021-12-13 04:05:00179.415310179.415310179.256676179.2566761367AAPL
........................
2351512023-02-03 19:55:00154.095401154.095401154.095401154.095401347AAPL
2351522023-02-03 19:56:00154.095301154.105286154.085316154.1052861438AAPL
2351532023-02-03 19:57:00154.105286154.105286154.095301154.095301588AAPL
2351542023-02-03 19:59:00154.115270154.115270154.115270154.115270555AAPL
2351552023-02-03 20:00:00154.105286154.155210154.095301154.1552103835AAPL
\n", + "

235156 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " time open high low close \\\n", + "0 2021-12-13 04:01:00 178.909663 179.226932 178.830346 178.860090 \n", + "1 2021-12-13 04:02:00 178.959236 179.355822 178.899749 179.197188 \n", + "2 2021-12-13 04:03:00 179.147615 179.464883 178.979066 179.365737 \n", + "3 2021-12-13 04:04:00 179.425224 179.435139 179.355822 179.385566 \n", + "4 2021-12-13 04:05:00 179.415310 179.415310 179.256676 179.256676 \n", + "... ... ... ... ... ... \n", + "235151 2023-02-03 19:55:00 154.095401 154.095401 154.095401 154.095401 \n", + "235152 2023-02-03 19:56:00 154.095301 154.105286 154.085316 154.105286 \n", + "235153 2023-02-03 19:57:00 154.105286 154.105286 154.095301 154.095301 \n", + "235154 2023-02-03 19:59:00 154.115270 154.115270 154.115270 154.115270 \n", + "235155 2023-02-03 20:00:00 154.105286 154.155210 154.095301 154.155210 \n", + "\n", + " volume symbol \n", + "0 13331 AAPL \n", + "1 7595 AAPL \n", + "2 10868 AAPL \n", + "3 6277 AAPL \n", + "4 1367 AAPL \n", + "... ... ... \n", + "235151 347 AAPL \n", + "235152 1438 AAPL \n", + "235153 588 AAPL \n", + "235154 555 AAPL \n", + "235155 3835 AAPL \n", + "\n", + "[235156 rows x 7 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "5dd8f9b2", + "metadata": {}, + "outputs": [], + "source": [ + "df = df.drop('symbol', axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9102674b", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df[\"time\"] = pd.to_datetime(df[\"time\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "2e2fda44", + "metadata": {}, + "outputs": [], + "source": [ + "df.index = df.pop('time')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "d8b735e7", + "metadata": {}, + "outputs": [], + "source": [ + "X = np.array(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "69b36890", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(235156, 5)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "a04a2a3d", + "metadata": {}, + "outputs": [], + "source": [ + "scaler = MinMaxScaler()\n", + "scaled_data = scaler.fit_transform(df[['open', 'high', 'low', 'close', 'volume']])" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "be779c3a", + "metadata": {}, + "outputs": [], + "source": [ + "X_train = []\n", + "y_train = []\n", + "for i in range(15, len(scaled_data)):\n", + " X_train.append(scaled_data[i-15:i, :])\n", + " y_train.append(scaled_data[i, 3]) # use closing price as target variable\n", + "X_train = np.array(X_train)\n", + "y_train = np.array(y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "f0880c04", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(235141, 15, 5)" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "f3bbb789", + "metadata": {}, + "outputs": [], + "source": [ + "X_test = X_train[-100:]\n", + "y_test = y_train[-100:]\n", + "X_train = X_train[-500:-100]\n", + "y_train = y_train[-500:-100]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "dde317f1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((400, 15, 5), (400,))" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.shape, y_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "30969451", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "((100, 15, 5), (100,))" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_test.shape, y_test.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "64b1c339", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 178.90966324, 179.2269317 , 178.83034613, 178.86009005,\n", + " 13331. ],\n", + " [ 178.95923644, 179.35582201, 178.8997486 , 179.19718778,\n", + " 7595. ],\n", + " [ 179.14761458, 179.46488304, 178.97906572, 179.36573664,\n", + " 10868. ],\n", + " ...,\n", + " [ 154.10528564, 154.10528564, 154.09530085, 154.09530085,\n", + " 588. ],\n", + " [ 154.11527043, 154.11527043, 154.11527043, 154.11527043,\n", + " 555. ],\n", + " [ 154.10528564, 154.1552096 , 154.09530085, 154.1552096 ,\n", + " 3835. ]])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "cf83c642", + "metadata": {}, + "outputs": [], + "source": [ + "X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 5))\n", + "X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 5))" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "5706838d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((400, 15, 5), (400,))" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.shape, y_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "3eaf724c", + "metadata": {}, + "outputs": [], + "source": [ + "model = Sequential()\n", + "model.add(LSTM(units=50, return_sequences=True, input_shape=(X_train.shape[1], 5)))\n", + "model.add(LSTM(units=50, return_sequences=True))\n", + "model.add(LSTM(units=50))\n", + "model.add(Dense(units=1))\n", + "model.compile(optimizer='adam', loss='mean_squared_error')" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "5804d089", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/50\n", + "13/13 [==============================] - 7s 43ms/step - loss: 0.0609\n", + "Epoch 2/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 0.0060\n", + "Epoch 3/50\n", + "13/13 [==============================] - 1s 41ms/step - loss: 0.0016\n", + "Epoch 4/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 3.8184e-04\n", + "Epoch 5/50\n", + "13/13 [==============================] - 1s 42ms/step - loss: 1.4231e-04\n", + "Epoch 6/50\n", + "13/13 [==============================] - 1s 41ms/step - loss: 9.2765e-05\n", + "Epoch 7/50\n", + "13/13 [==============================] - 1s 52ms/step - loss: 6.0716e-05\n", + "Epoch 8/50\n", + "13/13 [==============================] - 1s 41ms/step - loss: 5.4772e-05\n", + "Epoch 9/50\n", + "13/13 [==============================] - 1s 44ms/step - loss: 5.2122e-05\n", + "Epoch 10/50\n", + "13/13 [==============================] - 1s 48ms/step - loss: 5.3126e-05\n", + "Epoch 11/50\n", + "13/13 [==============================] - 1s 57ms/step - loss: 5.2256e-05\n", + "Epoch 12/50\n", + "13/13 [==============================] - 1s 44ms/step - loss: 5.1682e-05\n", + "Epoch 13/50\n", + "13/13 [==============================] - 1s 41ms/step - loss: 5.3629e-05\n", + "Epoch 14/50\n", + "13/13 [==============================] - 1s 49ms/step - loss: 5.6266e-05\n", + "Epoch 15/50\n", + "13/13 [==============================] - 1s 44ms/step - loss: 5.4991e-05\n", + "Epoch 16/50\n", + "13/13 [==============================] - 1s 51ms/step - loss: 5.1586e-05\n", + "Epoch 17/50\n", + "13/13 [==============================] - 1s 44ms/step - loss: 5.2184e-05\n", + "Epoch 18/50\n", + "13/13 [==============================] - 1s 42ms/step - loss: 5.1572e-05\n", + "Epoch 19/50\n", + "13/13 [==============================] - 1s 46ms/step - loss: 5.3247e-05\n", + "Epoch 20/50\n", + "13/13 [==============================] - 1s 63ms/step - loss: 5.1017e-05\n", + "Epoch 21/50\n", + "13/13 [==============================] - 1s 45ms/step - loss: 4.9978e-05\n", + "Epoch 22/50\n", + "13/13 [==============================] - 1s 43ms/step - loss: 4.9591e-05\n", + "Epoch 23/50\n", + "13/13 [==============================] - 1s 45ms/step - loss: 5.1014e-05\n", + "Epoch 24/50\n", + "13/13 [==============================] - 1s 42ms/step - loss: 4.8869e-05\n", + "Epoch 25/50\n", + "13/13 [==============================] - 1s 45ms/step - loss: 5.2772e-05\n", + "Epoch 26/50\n", + "13/13 [==============================] - 1s 46ms/step - loss: 4.8237e-05\n", + "Epoch 27/50\n", + "13/13 [==============================] - 1s 44ms/step - loss: 4.8877e-05\n", + "Epoch 28/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 5.3824e-05\n", + "Epoch 29/50\n", + "13/13 [==============================] - 1s 49ms/step - loss: 5.0629e-05\n", + "Epoch 30/50\n", + "13/13 [==============================] - 1s 44ms/step - loss: 4.9795e-05\n", + "Epoch 31/50\n", + "13/13 [==============================] - 1s 41ms/step - loss: 5.0889e-05\n", + "Epoch 32/50\n", + "13/13 [==============================] - 1s 42ms/step - loss: 4.7327e-05\n", + "Epoch 33/50\n", + "13/13 [==============================] - 1s 46ms/step - loss: 4.5944e-05\n", + "Epoch 34/50\n", + "13/13 [==============================] - 1s 44ms/step - loss: 4.6762e-05\n", + "Epoch 35/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.7384e-05\n", + "Epoch 36/50\n", + "13/13 [==============================] - 1s 46ms/step - loss: 4.8046e-05\n", + "Epoch 37/50\n", + "13/13 [==============================] - 1s 41ms/step - loss: 5.3533e-05\n", + "Epoch 38/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.7015e-05\n", + "Epoch 39/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.5496e-05\n", + "Epoch 40/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.5271e-05\n", + "Epoch 41/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.7004e-05\n", + "Epoch 42/50\n", + "13/13 [==============================] - 1s 41ms/step - loss: 4.7002e-05\n", + "Epoch 43/50\n", + "13/13 [==============================] - 1s 48ms/step - loss: 4.5282e-05\n", + "Epoch 44/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.4423e-05\n", + "Epoch 45/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.9769e-05\n", + "Epoch 46/50\n", + "13/13 [==============================] - 1s 41ms/step - loss: 4.9591e-05\n", + "Epoch 47/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.9883e-05\n", + "Epoch 48/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.3001e-05\n", + "Epoch 49/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 5.0494e-05\n", + "Epoch 50/50\n", + "13/13 [==============================] - 1s 40ms/step - loss: 4.5210e-05\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.fit(X_train, y_train, epochs=50, batch_size=32)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "958051e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4/4 [==============================] - 1s 14ms/step - loss: 6.5937e-06\n" + ] + }, + { + "data": { + "text/plain": [ + "6.593711532332236e-06" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "score = model.evaluate(X_test, y_test)\n", + "score" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "24494291", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4/4 [==============================] - 3s 16ms/step\n" + ] + } + ], + "source": [ + "predicted_closing_prices = model.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "c1f3615d", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.52154654],\n", + " [0.5213912 ],\n", + " [0.52122724],\n", + " [0.5210726 ],\n", + " [0.52094233],\n", + " [0.5208054 ],\n", + " [0.52068913],\n", + " [0.5205644 ],\n", + " [0.5204699 ],\n", + " [0.5203607 ],\n", + " [0.520306 ],\n", + " [0.5202873 ],\n", + " [0.5203242 ],\n", + " [0.52032906],\n", + " [0.52033424],\n", + " [0.5203548 ],\n", + " [0.52038866],\n", + " [0.5204318 ],\n", + " [0.5205005 ],\n", + " [0.5206066 ],\n", + " [0.5207489 ],\n", + " [0.52090925],\n", + " [0.5210634 ],\n", + " [0.5212216 ],\n", + " [0.5213893 ],\n", + " [0.5215203 ],\n", + " [0.521672 ],\n", + " [0.5217706 ],\n", + " [0.5218829 ],\n", + " [0.5219835 ],\n", + " [0.5220525 ],\n", + " [0.52210706],\n", + " [0.52215606],\n", + " [0.52214587],\n", + " [0.5221428 ],\n", + " [0.52214414],\n", + " [0.5221424 ],\n", + " [0.52218515],\n", + " [0.52219075],\n", + " [0.52219343],\n", + " [0.52225196],\n", + " [0.52228034],\n", + " [0.52230835],\n", + " [0.5223086 ],\n", + " [0.5223092 ],\n", + " [0.5222798 ],\n", + " [0.52224773],\n", + " [0.5222109 ],\n", + " [0.5221864 ],\n", + " [0.5221791 ],\n", + " [0.5221695 ],\n", + " [0.5221472 ],\n", + " [0.5221248 ],\n", + " [0.52211356],\n", + " [0.52209324],\n", + " [0.5220614 ],\n", + " [0.5220545 ],\n", + " [0.5220877 ],\n", + " [0.5221111 ],\n", + " [0.5221264 ],\n", + " [0.522129 ],\n", + " [0.52212435],\n", + " [0.5221313 ],\n", + " [0.5221334 ],\n", + " [0.52213293],\n", + " [0.5221283 ],\n", + " [0.5221224 ],\n", + " [0.52214617],\n", + " [0.5221614 ],\n", + " [0.52215797],\n", + " [0.5221625 ],\n", + " [0.52216697],\n", + " [0.52218604],\n", + " [0.5222271 ],\n", + " [0.52226526],\n", + " [0.52233666],\n", + " [0.5224007 ],\n", + " [0.52246517],\n", + " [0.5225608 ],\n", + " [0.5226531 ],\n", + " [0.5227455 ],\n", + " [0.5228248 ],\n", + " [0.52290136],\n", + " [0.52297425],\n", + " [0.52305204],\n", + " [0.5231067 ],\n", + " [0.5231646 ],\n", + " [0.523191 ],\n", + " [0.5231896 ],\n", + " [0.52317256],\n", + " [0.5231574 ],\n", + " [0.5231356 ],\n", + " [0.5231026 ],\n", + " [0.5230729 ],\n", + " [0.52304393],\n", + " [0.5230153 ],\n", + " [0.52298665],\n", + " [0.5229608 ],\n", + " [0.5229246 ],\n", + " [0.5229066 ]], dtype=float32)" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "predicted_closing_prices" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eef0f117", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9def8da2", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3c0d1014", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bc858f96", + "metadata": {}, + "outputs": [], + "source": [ + "val_predictions = model.predict(X_val).flatten()\n", + "\n", + "plt.plot(dates_val, val_predictions)\n", + "plt.plot(dates_val, y_val)\n", + "plt.legend(['Validation Predictions', 'Validation Observations'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e7bb335", + "metadata": {}, + "outputs": [], + "source": [ + "test_predictions = model.predict(X_test).flatten()\n", + "\n", + "plt.figure(figsize=(18, 8))\n", + "plt.plot(dates_test, test_predictions)\n", + "plt.plot(dates_test, y_test)\n", + "plt.legend(['Testing Predictions', 'Testing Observations'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "821d79aa", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "plt.figure(figsize=(18, 8))\n", + "\n", + "plt.plot(dates_train, train_predictions)\n", + "plt.plot(dates_train, y_train)\n", + "plt.plot(dates_val, val_predictions)\n", + "plt.plot(dates_val, y_val)\n", + "plt.plot(dates_test, test_predictions)\n", + "plt.plot(dates_test, y_test)\n", + "plt.legend(['Training Predictions', \n", + " 'Training Observations',\n", + " 'Validation Predictions', \n", + " 'Validation Observations',\n", + " 'Testing Predictions', \n", + " 'Testing Observations'])" + ] + }, + { + "cell_type": "markdown", + "id": "8920c041", + "metadata": {}, + "source": [ + "# Merging Models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c25fdf01", + "metadata": {}, + "outputs": [], + "source": [ + "# LSTM model\n", + "lstm_model = Sequential()\n", + "# add LSTM layers\n", + "...\n", + "\n", + "# Language model\n", + "language_model = Sequential()\n", + "# add layers\n", + "...\n", + "\n", + "# Merge outputs from both models\n", + "merged_output = Concatenate()([lstm_model.output, language_model.output])\n", + "\n", + "# Fully connected neural network\n", + "model = Sequential()\n", + "model.add(Dense(64, activation='relu', input_shape=(merged_output.shape[1],)))\n", + "model.add(Dense(32, activation='relu'))\n", + "model.add(Dense(1))\n", + "\n", + "# compile and train the model\n", + "model.compile(optimizer=Adam(), loss='mse')\n", + "model.fit(merged_output, y_train, ...)\n" + ] + }, + { + "cell_type": "markdown", + "id": "c6b9e845", + "metadata": {}, + "source": [ + "# Trying to use multiple companies" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03de379c", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df_2 = pd.read_csv(\"AAPL.csv\")\n", + "df_3 = pd.read_csv(\"TSLA.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ceb9d2f", + "metadata": {}, + "outputs": [], + "source": [ + "df_3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e43e505", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df = pd.merge(df_2, df_3, on='time')\n", + "merged_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87a34fcd", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df.drop(['open_x', 'high_x', 'low_x', 'volume_x', 'symbol_x',\n", + " 'open_y', 'high_y', 'low_y', 'volume_y', 'symbol_y'], axis=1, inplace=True)\n", + "merged_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "73c0cf9e", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df = merged_df.dropna(subset=['close_x', 'close_y'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57a09271", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df.rename(columns={'close_x': 'Apple', 'close_y': 'Tesla'}, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ec37ce1", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "merged_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f5fe220f", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df.index = merged_df.pop('time')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71676331", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4fd3b228", + "metadata": {}, + "outputs": [], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "efb4e338", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(3, 4, 3)\n", + "(3, 1, 1)\n" + ] + } + ], + "source": [ + "# --- SEQUENCE A (Paris)\n", + "\n", + "day_1 = [10, 25, 50] # OBSERVATION 1 [temperature, speed, pollution]\n", + "day_2 = [13, 10, 70] # OBSERVATION 2 [temperature, speed, pollution]\n", + "day_3 = [ 9, 5, 90] # OBSERVATION 3 [temperature, speed, pollution]\n", + "day_4 = [ 7, 0, 95] # OBSERVATION 4 [temperature, speed, pollution]\n", + "\n", + "sequence_a = [day_1, day_2, day_3, day_4]\n", + "\n", + "y_a = [110] # Pollution at day 5\n", + "\n", + "# --- SEQUENCE B (Berlin)\n", + "sequence_b = [[25, 20, 30], [26, 24, 50], [28, 20, 80], [22, 3, 110]]\n", + "y_b = [125]\n", + "\n", + "# --- SEQUENCE C (London)\n", + "sequence_c = [[15, 10, 60], [25, 20, 65], [35, 10, 75], [36, 15, 70]]\n", + "y_c = [30]\n", + "\n", + "X = np.array([sequence_a, sequence_b, sequence_c]).astype(np.float32)\n", + "y = np.expand_dims(np.array([y_a, y_b, y_c]).astype(np.float32), axis=-1)\n", + "\n", + "print(X.shape)\n", + "print(y.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "677ecd92", + "metadata": {}, + "outputs": [], + "source": [ + "sq_a = pd.DataFrame(sequence_a)\n", + "sq_b = pd.DataFrame(sequence_b)\n", + "sq_c = pd.DataFrame(sequence_c)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "c0c6cd72", + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "'open'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [34], line 12\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[38;5;66;03m# Loop through the original dataframes and append the value to the list\u001b[39;00m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m df \u001b[38;5;129;01min\u001b[39;00m sqs:\n\u001b[0;32m---> 12\u001b[0m values\u001b[38;5;241m.\u001b[39mappend(\u001b[43mdf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloc\u001b[49m\u001b[43m[\u001b[49m\u001b[43mrow\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcol\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 13\u001b[0m \u001b[38;5;66;03m# Set the value in the new dataframe to the list of values\u001b[39;00m\n\u001b[1;32m 14\u001b[0m df_concat\u001b[38;5;241m.\u001b[39mloc[row, col] \u001b[38;5;241m=\u001b[39m values\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/indexing.py:960\u001b[0m, in \u001b[0;36m_LocationIndexer.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 958\u001b[0m key \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(com\u001b[38;5;241m.\u001b[39mapply_if_callable(x, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mobj) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m key)\n\u001b[1;32m 959\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_is_scalar_access(key):\n\u001b[0;32m--> 960\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mobj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_value\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtakeable\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_takeable\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 961\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_tuple(key)\n\u001b[1;32m 962\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 963\u001b[0m \u001b[38;5;66;03m# we by definition only have the 0th axis\u001b[39;00m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/frame.py:3615\u001b[0m, in \u001b[0;36mDataFrame._get_value\u001b[0;34m(self, index, col, takeable)\u001b[0m\n\u001b[1;32m 3612\u001b[0m series \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ixs(col, axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 3613\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m series\u001b[38;5;241m.\u001b[39m_values[index]\n\u001b[0;32m-> 3615\u001b[0m series \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_item_cache\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcol\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3616\u001b[0m engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mindex\u001b[38;5;241m.\u001b[39m_engine\n\u001b[1;32m 3618\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mindex, MultiIndex):\n\u001b[1;32m 3619\u001b[0m \u001b[38;5;66;03m# CategoricalIndex: Trying to use the engine fastpath may give incorrect\u001b[39;00m\n\u001b[1;32m 3620\u001b[0m \u001b[38;5;66;03m# results if our categories are integers that dont match our codes\u001b[39;00m\n\u001b[1;32m 3621\u001b[0m \u001b[38;5;66;03m# IntervalIndex: IntervalTree has no get_loc\u001b[39;00m\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/frame.py:3931\u001b[0m, in \u001b[0;36mDataFrame._get_item_cache\u001b[0;34m(self, item)\u001b[0m\n\u001b[1;32m 3926\u001b[0m res \u001b[38;5;241m=\u001b[39m cache\u001b[38;5;241m.\u001b[39mget(item)\n\u001b[1;32m 3927\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m res \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 3928\u001b[0m \u001b[38;5;66;03m# All places that call _get_item_cache have unique columns,\u001b[39;00m\n\u001b[1;32m 3929\u001b[0m \u001b[38;5;66;03m# pending resolution of GH#33047\u001b[39;00m\n\u001b[0;32m-> 3931\u001b[0m loc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3932\u001b[0m res \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ixs(loc, axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 3934\u001b[0m cache[item] \u001b[38;5;241m=\u001b[39m res\n", + "File \u001b[0;32m~/.pyenv/versions/3.10.6/envs/lewagon/lib/python3.10/site-packages/pandas/core/indexes/range.py:389\u001b[0m, in \u001b[0;36mRangeIndex.get_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 387\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m 388\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n\u001b[0;32m--> 389\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key)\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mget_loc(key, method\u001b[38;5;241m=\u001b[39mmethod, tolerance\u001b[38;5;241m=\u001b[39mtolerance)\n", + "\u001b[0;31mKeyError\u001b[0m: 'open'" + ] + } + ], + "source": [ + "sqs = [sq_a, sq_b, sq_c]\n", + "\n", + "df_concat = pd.DataFrame(index=sq_a.index, columns=df1.columns)\n", + "\n", + "# Loop through the columns and rows of the new dataframe\n", + "for col in df_concat.columns:\n", + " for row in df_concat.index:\n", + " # Initialize an empty list to store the values from the original dataframes\n", + " values = []\n", + " # Loop through the original dataframes and append the value to the list\n", + " for df in sqs:\n", + " values.append(df.loc[row, col])\n", + " # Set the value in the new dataframe to the list of values\n", + " df_concat.loc[row, col] = values\n", + "\n", + "# Check the resulting dataframe\n", + "print(df_concat.head())" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "95f446c8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[10, 25, 50],\n", + " [13, 10, 70],\n", + " [ 9, 5, 90],\n", + " [ 7, 0, 95]])" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array(sq_a)" + ] + } + ], + "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.10.6" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/my_notebooks/Sample random df.ipynb b/my_notebooks/Sample random df.ipynb new file mode 100644 index 0000000..b5e7bde --- /dev/null +++ b/my_notebooks/Sample random df.ipynb @@ -0,0 +1,788 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 4, + "id": "10530df0", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "c5b4908c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['url', 'date', 'tweet', 'username', 'likeCount', 'replyCount',\n", + " 'retweetCount', 'quoteCount', 'cashtags', 'hashtags', 'stock_symbol',\n", + " 'current_value', '1min', '60min', '1day', '1week', 'positive',\n", + " 'negative', 'neutral', 'sentiment'],\n", + " dtype='object')" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv(\"small_sample.csv\")\n", + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "5bc55208", + "metadata": {}, + "outputs": [], + "source": [ + "df['prof_1min'] = np.random.uniform(-20, 20, size=len(df))\n", + "df['prof_60min'] = np.random.uniform(-20, 20, size=len(df))\n", + "df['prof_1day'] = np.random.uniform(-20, 20, size=len(df))\n", + "df['prof_1week'] = np.random.uniform(-20, 20, size=len(df))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "d023cc25", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
urldatetweetusernamelikeCountreplyCountretweetCountquoteCountcashtagshashtags...1day1weekpositivenegativeneutralsentimentprof_1minprof_60minprof_1dayprof_1week
0https://twitter.com/saxena_puru/status/1567881...2022-09-08 14:25:07+00:00$twlo likely to generate 28-30% rev cagr over ...saxena_puru28121100['TWLO']NaN...NaNNaN0.0000000.0000000.993833Neutral-6.027593-15.147525-7.01937115.468086
1https://twitter.com/CheddarFlow/status/1574755...2022-09-27 13:39:37+00:00retail trader maybe this is finally the bottom...CheddarFlow27110207['SPY']NaN...NaNNaN0.0000000.0000000.999664Neutral11.605769-17.1080695.204940-3.352354
2https://twitter.com/gurgavin/status/1503422179...2022-03-14 17:25:54+00:00$sofi winking face with tonguegurgavin863020['SOFI']NaN...NaNNaN0.0000000.0000000.999929Neutral15.4145815.488015-3.123856-5.628670
3https://twitter.com/CheddarFlow/status/1503385...2022-03-14 15:02:03+00:00$spy $189m dark pool print at 420.12CheddarFlow23340['SPY']NaN...NaNNaN0.0000000.0000000.999985Neutral-14.010165-14.150728-7.86955914.899040
4https://twitter.com/stocktalkweekly/status/152...2022-05-23 12:11:36+00:00$tsla tesla will double its daily output at gi...stocktalkweekly94350['TSLA']NaN...NaNNaN0.9858550.0000000.000000Positive-18.71108810.1124923.4347604.789325
..................................................................
995https://twitter.com/alphatrends/status/1605611...2022-12-21 17:11:07+00:00not sure how that black anchorvwap got moved t...alphatrends23310['SPY']NaN...NaNNaN0.0000000.0000000.999992Neutral17.082458-13.4402655.637464-13.220202
996https://twitter.com/Jake__Wujastyk/status/1496...2022-02-23 22:47:27+00:00$pltr pltr continues to gravitate down towards...Jake__Wujastyk58740['PLTR']['PLTR']...NaNNaN0.0000000.9129870.000000Negative-10.621137-8.621466-11.563889-1.997388
997https://twitter.com/CheddarFlow/status/1534227...2022-06-07 17:33:27+00:00$aapl key channelCheddarFlow32151['AAPL']NaN...NaNNaN0.0000000.0000000.999949Neutral8.73519910.41486917.4848902.514876
998https://twitter.com/NekozTek/status/1577701127...2022-10-05 16:43:55+00:00since ethereum switched to pos algorithm, 11,5...NekozTek659130['ETH']['Ethereum']...NaNNaN0.0000000.0000000.999641Neutral-8.622441-8.519013-3.2162885.612386
999https://twitter.com/whale_alert/status/1484654...2022-01-21 22:31:15+00:005,824,010 matic 9,934,626 usd transferred from...whale_alert74930NaN['MATIC', 'Binance', 'Gemini']...NaNNaN0.0000000.0000000.999978Neutral3.91918811.479773-17.240370-11.823891
\n", + "

1000 rows × 24 columns

\n", + "
" + ], + "text/plain": [ + " url \\\n", + "0 https://twitter.com/saxena_puru/status/1567881... \n", + "1 https://twitter.com/CheddarFlow/status/1574755... \n", + "2 https://twitter.com/gurgavin/status/1503422179... \n", + "3 https://twitter.com/CheddarFlow/status/1503385... \n", + "4 https://twitter.com/stocktalkweekly/status/152... \n", + ".. ... \n", + "995 https://twitter.com/alphatrends/status/1605611... \n", + "996 https://twitter.com/Jake__Wujastyk/status/1496... \n", + "997 https://twitter.com/CheddarFlow/status/1534227... \n", + "998 https://twitter.com/NekozTek/status/1577701127... \n", + "999 https://twitter.com/whale_alert/status/1484654... \n", + "\n", + " date \\\n", + "0 2022-09-08 14:25:07+00:00 \n", + "1 2022-09-27 13:39:37+00:00 \n", + "2 2022-03-14 17:25:54+00:00 \n", + "3 2022-03-14 15:02:03+00:00 \n", + "4 2022-05-23 12:11:36+00:00 \n", + ".. ... \n", + "995 2022-12-21 17:11:07+00:00 \n", + "996 2022-02-23 22:47:27+00:00 \n", + "997 2022-06-07 17:33:27+00:00 \n", + "998 2022-10-05 16:43:55+00:00 \n", + "999 2022-01-21 22:31:15+00:00 \n", + "\n", + " tweet username \\\n", + "0 $twlo likely to generate 28-30% rev cagr over ... saxena_puru \n", + "1 retail trader maybe this is finally the bottom... CheddarFlow \n", + "2 $sofi winking face with tongue gurgavin \n", + "3 $spy $189m dark pool print at 420.12 CheddarFlow \n", + "4 $tsla tesla will double its daily output at gi... stocktalkweekly \n", + ".. ... ... \n", + "995 not sure how that black anchorvwap got moved t... alphatrends \n", + "996 $pltr pltr continues to gravitate down towards... Jake__Wujastyk \n", + "997 $aapl key channel CheddarFlow \n", + "998 since ethereum switched to pos algorithm, 11,5... NekozTek \n", + "999 5,824,010 matic 9,934,626 usd transferred from... whale_alert \n", + "\n", + " likeCount replyCount retweetCount quoteCount cashtags \\\n", + "0 281 21 10 0 ['TWLO'] \n", + "1 271 10 20 7 ['SPY'] \n", + "2 86 30 2 0 ['SOFI'] \n", + "3 23 3 4 0 ['SPY'] \n", + "4 94 3 5 0 ['TSLA'] \n", + ".. ... ... ... ... ... \n", + "995 23 3 1 0 ['SPY'] \n", + "996 58 7 4 0 ['PLTR'] \n", + "997 32 1 5 1 ['AAPL'] \n", + "998 65 9 13 0 ['ETH'] \n", + "999 74 9 3 0 NaN \n", + "\n", + " hashtags ... 1day 1week positive negative \\\n", + "0 NaN ... NaN NaN 0.000000 0.000000 \n", + "1 NaN ... NaN NaN 0.000000 0.000000 \n", + "2 NaN ... NaN NaN 0.000000 0.000000 \n", + "3 NaN ... NaN NaN 0.000000 0.000000 \n", + "4 NaN ... NaN NaN 0.985855 0.000000 \n", + ".. ... ... ... ... ... ... \n", + "995 NaN ... NaN NaN 0.000000 0.000000 \n", + "996 ['PLTR'] ... NaN NaN 0.000000 0.912987 \n", + "997 NaN ... NaN NaN 0.000000 0.000000 \n", + "998 ['Ethereum'] ... NaN NaN 0.000000 0.000000 \n", + "999 ['MATIC', 'Binance', 'Gemini'] ... NaN NaN 0.000000 0.000000 \n", + "\n", + " neutral sentiment prof_1min prof_60min prof_1day prof_1week \n", + "0 0.993833 Neutral -6.027593 -15.147525 -7.019371 15.468086 \n", + "1 0.999664 Neutral 11.605769 -17.108069 5.204940 -3.352354 \n", + "2 0.999929 Neutral 15.414581 5.488015 -3.123856 -5.628670 \n", + "3 0.999985 Neutral -14.010165 -14.150728 -7.869559 14.899040 \n", + "4 0.000000 Positive -18.711088 10.112492 3.434760 4.789325 \n", + ".. ... ... ... ... ... ... \n", + "995 0.999992 Neutral 17.082458 -13.440265 5.637464 -13.220202 \n", + "996 0.000000 Negative -10.621137 -8.621466 -11.563889 -1.997388 \n", + "997 0.999949 Neutral 8.735199 10.414869 17.484890 2.514876 \n", + "998 0.999641 Neutral -8.622441 -8.519013 -3.216288 5.612386 \n", + "999 0.999978 Neutral 3.919188 11.479773 -17.240370 -11.823891 \n", + "\n", + "[1000 rows x 24 columns]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "da94c75c", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "df = df.dropna(subset=['cashtags'])" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "a5ff425b", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([\"['A']\", \"['AAPL', 'NVDA', 'SE']\", \"['AAPL']\", \"['ADM']\",\n", + " \"['AFRM']\", \"['AMD']\", \"['AMEX']\", \"['AMR']\", \"['AMZN']\",\n", + " \"['APE', 'BTC']\", \"['APE', 'KNC', 'KAVA', 'XMR']\",\n", + " \"['ARKK', 'ARKK', 'QQQ', 'QQQ', 'SMH', 'SPY', 'ARKK']\", \"['ARKK']\",\n", + " \"['BABA']\", \"['BLK']\", \"['BLXM']\", \"['BTC', 'ETH']\", \"['BTC']\",\n", + " \"['BTU']\", \"['CAT']\", \"['CCL']\", \"['CELH']\", \"['CENX']\",\n", + " \"['CHPT']\", \"['CLF']\", \"['CLX']\", \"['CMCSA']\", \"['COMPQ', 'ARKK']\",\n", + " \"['CRWD', 'S']\", \"['CSCO', 'SYY']\", \"['CSCO']\", \"['CYBR']\",\n", + " \"['DDOG']\", \"['DIS']\", \"['DOW']\", \"['ET', 'TSLA', 'NVDA', 'QQQ']\",\n", + " \"['ETH', 'BTC']\", \"['ETH', 'FB']\", \"['ETH']\", \"['ETHBTC']\",\n", + " \"['F']\", \"['FB', 'AAPL', 'AMZN', 'DIS']\", \"['FB']\", \"['GETY']\",\n", + " \"['GOLD']\", \"['GOOGL']\", \"['GPS']\", \"['GRPN']\",\n", + " \"['INTC', 'TSEM', 'TSEM', 'TSEM']\", \"['ISEE']\", \"['ISRG']\",\n", + " \"['IWM']\", \"['JPM']\", \"['KHC']\", \"['KNC']\", \"['KRNT']\", \"['LAC']\",\n", + " \"['LCID']\", \"['LINK', 'DOGE']\", \"['LIT']\", \"['LMT']\", \"['LOOKS']\",\n", + " \"['LPI']\", \"['LTHM']\", \"['LUNA', 'UST', 'LUNA']\", \"['LUNA']\",\n", + " \"['MARA', 'RIOT']\", \"['META']\", \"['METIS']\",\n", + " \"['MGNI', 'USER', 'TGTX', 'GLYC', 'GRWG', 'APPS', 'BAND', 'VAPO', 'UFAB', 'CLVS', 'RPAY', 'EVER', 'RDFN', 'TLS', 'OPRT', 'RYAM', 'NEO', 'APYX', 'TSP']\",\n", + " \"['MRVL']\", \"['MSFT']\", \"['MTDR']\", \"['MTRG']\",\n", + " \"['MU', 'AMD', 'NVDA']\", \"['MU']\", \"['NDX', 'SPX']\", \"['NEAR']\",\n", + " \"['NFLX']\", \"['NKE']\", \"['NQ', 'ES']\", \"['NVAX']\", \"['NVDA']\",\n", + " \"['NWC', 'XHV', 'ALGO', 'SOL', 'VET', 'OM']\", \"['PARA']\",\n", + " \"['PCRFY', 'TSLA']\",\n", + " \"['PG', 'MSFT', 'UNH', 'CRM', 'JNJ', 'WMT', 'MMM', 'CAT', 'BA', 'AXP', 'CSCO', 'INTC', 'JPM', 'DIS']\",\n", + " \"['PL']\", \"['PLTR']\",\n", + " \"['PTON', 'ASAN', 'LU', 'DOCS', 'ACH', 'SQM', 'TOST', 'ZEN', 'DIDI', 'NU', 'HUBS', 'AA']\",\n", + " \"['PTON']\", \"['PYPL']\", \"['QQQ', 'IWM']\", \"['QQQ']\", \"['ROKU']\",\n", + " \"['SARK']\", \"['SBUX']\", \"['SCCO']\", \"['SKLZ']\", \"['SLB']\",\n", + " \"['SNAP', 'BILL', 'U', 'AMZN', 'CHWY', 'APP', 'PINS', 'TTD', 'PCTY', 'ROKU', 'SPOT', 'AFRM']\",\n", + " \"['SNAP']\", \"['SNX']\", \"['SOFI']\",\n", + " \"['SOL', 'DOT', 'AVAX', 'LUNA']\", \"['SOL']\", \"['SPX', 'DXY']\",\n", + " \"['SPX']\", \"['SPY', 'DJI']\", \"['SPY']\", \"['SQ']\", \"['SQQQ']\",\n", + " \"['TDOC']\", \"['TECK']\", \"['TSLA']\", \"['TSM']\", \"['TWTR']\", \"['U']\",\n", + " \"['UBER']\", \"['ULCC']\", \"['UNH']\", \"['UPS']\", \"['UPST']\",\n", + " \"['UST', 'UST', 'LUNA', 'LUNA', 'UST']\", \"['UST']\", \"['VIDT']\",\n", + " \"['VIEW']\", \"['VIX']\", \"['VRA']\", \"['WMT']\", \"['XBI']\", \"['XRP']\",\n", + " \"['YUM']\"], dtype=object)" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.unique(df[\"cashtags\"].values)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "80ed8f84", + "metadata": {}, + "outputs": [], + "source": [ + "import re\n", + "def clean_cashtgs(st):\n", + " letters = re.findall('[A-Za-z]+', st)\n", + " return ' '.join(letters)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "acbf3290", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'MGNI USER TGTX GLYC GRWG APPS BAND VAPO UFAB CLVS RPAY EVER RDFN TLS OPRT RYAM NEO APYX TSP'" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clean_cashtgs(\"['MGNI', 'USER', 'TGTX', 'GLYC', 'GRWG', 'APPS', 'BAND', 'VAPO', 'UFAB', 'CLVS', 'RPAY', 'EVER', 'RDFN', 'TLS', 'OPRT', 'RYAM', 'NEO', 'APYX', 'TSP']\")" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "60332194", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_5933/4203094212.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " df[\"cashtags\"] = df[\"cashtags\"].apply(clean_cashtgs)\n" + ] + } + ], + "source": [ + "df[\"cashtags\"] = df[\"cashtags\"].apply(clean_cashtgs)" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "4ab4e9be", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
urldatetweetusernamelikeCountreplyCountretweetCountquoteCountcashtagshashtags...1day1weekpositivenegativeneutralsentimentprof_1minprof_60minprof_1dayprof_1week
82https://twitter.com/TommyThornton/status/15850...2022-10-25 22:20:01+00:00it’s happening. $msft guidance is weaker than ...TommyThornton18318326MSFTNaN...NaNNaN0.0000001.00.0Negative8.1634015.02880911.96748611.472319
837https://twitter.com/StockMKTNewz/status/158494...2022-10-25 16:21:13+00:00microsoft $msft reports earnings today after t...StockMKTNewz51043MSFTNaN...NaNNaN0.9949210.00.0Positive-5.246748-14.1357199.486120-11.268656
\n", + "

2 rows × 24 columns

\n", + "
" + ], + "text/plain": [ + " url \\\n", + "82 https://twitter.com/TommyThornton/status/15850... \n", + "837 https://twitter.com/StockMKTNewz/status/158494... \n", + "\n", + " date \\\n", + "82 2022-10-25 22:20:01+00:00 \n", + "837 2022-10-25 16:21:13+00:00 \n", + "\n", + " tweet username \\\n", + "82 it’s happening. $msft guidance is weaker than ... TommyThornton \n", + "837 microsoft $msft reports earnings today after t... StockMKTNewz \n", + "\n", + " likeCount replyCount retweetCount quoteCount cashtags hashtags ... \\\n", + "82 183 18 32 6 MSFT NaN ... \n", + "837 51 0 4 3 MSFT NaN ... \n", + "\n", + " 1day 1week positive negative neutral sentiment prof_1min \\\n", + "82 NaN NaN 0.000000 1.0 0.0 Negative 8.163401 \n", + "837 NaN NaN 0.994921 0.0 0.0 Positive -5.246748 \n", + "\n", + " prof_60min prof_1day prof_1week \n", + "82 5.028809 11.967486 11.472319 \n", + "837 -14.135719 9.486120 -11.268656 \n", + "\n", + "[2 rows x 24 columns]" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df[\"cashtags\"] == \"MSFT\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e7ae83c1", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "0261ea11", + "metadata": {}, + "outputs": [], + "source": [ + "df.to_csv('smaple_with_random profits.csv')" + ] + } + ], + "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.10.6" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index ac1df30..0000000 --- a/requirements.txt +++ /dev/null @@ -1,10 +0,0 @@ -pandas -matplotlib -seaborn -scikit-learn -scipy -nltk -transformers -snscrape -tradingview-ta -alpha_vantage diff --git a/scrape.ipynb b/scrape.ipynb deleted file mode 100644 index 986331f..0000000 --- a/scrape.ipynb +++ /dev/null @@ -1,335 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import snscrape.modules.twitter as sntwitter" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "#trying to scrape tweets from 2022 for one user\n", - "query = 'from:unusual_whales since:2022-01-01 until:2022-12-31'\n", - "scraper = sntwitter.TwitterSearchScraper(query)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Stopping after 20 empty pages\n" - ] - } - ], - "source": [ - "#create empty list to store tweets\n", - "tweets = []\n", - "#loop through tweets and append to list\n", - "for i, tweet in enumerate(scraper.get_items()):\n", - " data = [tweet.url, tweet.date, tweet.rawContent, tweet.user.username, \n", - " tweet.likeCount, tweet.replyCount, tweet.retweetCount, tweet.quoteCount, \n", - " tweet.cashtags, tweet.hashtags, tweet.viewCount]\n", - " tweets.append(data)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
urldaterawContentusernamelikeCountreplyCountretweetCountquoteCountmediacashtagshashtagsinReplyToUsermentionedUsersviewCountlangsourcelocation
0https://twitter.com/unusual_whales/status/1608...2022-12-30 23:58:00+00:00France to impose mandatory COVID tests for tra...unusual_whales28436254NoneNoneNoneNoneNone114707.0en<a href=\"https://mobile.twitter.com\" rel=\"nofo...
1https://twitter.com/unusual_whales/status/1608...2022-12-30 23:17:39+00:00SBF said: None of these are me. I'm not and c...unusual_whales321635013NoneNoneNonehttps://twitter.com/unusual_whalesNone145310.0en<a href=\"https://mobile.twitter.com\" rel=\"nofo...
2https://twitter.com/unusual_whales/status/1608...2022-12-30 22:32:30+00:00Congratulations.\\n\\nIf you are reading this, y...unusual_whales144175451287158NoneNoneNoneNoneNone1296489.0en<a href=\"https://mobile.twitter.com\" rel=\"nofo...
3https://twitter.com/unusual_whales/status/1608...2022-12-30 22:12:00+00:00The Nasdaq finished in the red for a fourth st...unusual_whales8065414116NoneNoneNoneNoneNone162657.0en<a href=\"https://mobile.twitter.com\" rel=\"nofo...
4https://twitter.com/unusual_whales/status/1608...2022-12-30 21:54:47+00:00With a drop of more than 20% in 2022, the MSCI...unusual_whales2209422NoneNoneNonehttps://twitter.com/unusual_whalesNone90508.0en<a href=\"https://mobile.twitter.com\" rel=\"nofo...
\n", - "
" - ], - "text/plain": [ - " url \\\n", - "0 https://twitter.com/unusual_whales/status/1608... \n", - "1 https://twitter.com/unusual_whales/status/1608... \n", - "2 https://twitter.com/unusual_whales/status/1608... \n", - "3 https://twitter.com/unusual_whales/status/1608... \n", - "4 https://twitter.com/unusual_whales/status/1608... \n", - "\n", - " date \\\n", - "0 2022-12-30 23:58:00+00:00 \n", - "1 2022-12-30 23:17:39+00:00 \n", - "2 2022-12-30 22:32:30+00:00 \n", - "3 2022-12-30 22:12:00+00:00 \n", - "4 2022-12-30 21:54:47+00:00 \n", - "\n", - " rawContent username \\\n", - "0 France to impose mandatory COVID tests for tra... unusual_whales \n", - "1 SBF said: None of these are me. I'm not and c... unusual_whales \n", - "2 Congratulations.\\n\\nIf you are reading this, y... unusual_whales \n", - "3 The Nasdaq finished in the red for a fourth st... unusual_whales \n", - "4 With a drop of more than 20% in 2022, the MSCI... unusual_whales \n", - "\n", - " likeCount replyCount retweetCount quoteCount media cashtags hashtags \\\n", - "0 284 36 25 4 None None None \n", - "1 321 63 50 13 None None None \n", - "2 14417 545 1287 158 None None None \n", - "3 806 54 141 16 None None None \n", - "4 220 9 42 2 None None None \n", - "\n", - " inReplyToUser mentionedUsers viewCount lang \\\n", - "0 None None 114707.0 en \n", - "1 https://twitter.com/unusual_whales None 145310.0 en \n", - "2 None None 1296489.0 en \n", - "3 None None 162657.0 en \n", - "4 https://twitter.com/unusual_whales None 90508.0 en \n", - "\n", - " source location \n", - "0 \n", - "RangeIndex: 20402 entries, 0 to 20401\n", - "Data columns (total 17 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 url 20402 non-null object \n", - " 1 date 20402 non-null datetime64[ns, UTC]\n", - " 2 rawContent 20402 non-null object \n", - " 3 username 20402 non-null object \n", - " 4 likeCount 20402 non-null int64 \n", - " 5 replyCount 20402 non-null int64 \n", - " 6 retweetCount 20402 non-null int64 \n", - " 7 quoteCount 20402 non-null int64 \n", - " 8 media 4351 non-null object \n", - " 9 cashtags 7961 non-null object \n", - " 10 hashtags 161 non-null object \n", - " 11 inReplyToUser 2095 non-null object \n", - " 12 mentionedUsers 1049 non-null object \n", - " 13 viewCount 975 non-null float64 \n", - " 14 lang 20402 non-null object \n", - " 15 source 20402 non-null object \n", - " 16 location 20402 non-null object \n", - "dtypes: datetime64[ns, UTC](1), float64(1), int64(4), object(11)\n", - "memory usage: 2.6+ MB\n" - ] - } - ], - "source": [ - "df.info()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "#save to csv\n", - "data = df.to_csv('tweets.csv', index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "twitter-env", - "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.10.6" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/stocks.ipynb b/stocks.ipynb deleted file mode 100644 index 32c2bf1..0000000 --- a/stocks.ipynb +++ /dev/null @@ -1,194 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "from tradingview_ta import TA_Handler, Interval, Exchange\n", - "from alpha_vantage.timeseries import TimeSeries\n", - "import requests" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "key = 'RGUX1KUUCDUCRYAC'" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "ts = TimeSeries(key, output_format='pandas')\n", - "data, meta_data = ts.get_intraday(symbol='MSFT', interval='1min', outputsize='full')" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'1. Information': 'Intraday (1min) open, high, low, close prices and volume',\n", - " '2. Symbol': 'MSFT',\n", - " '3. Last Refreshed': '2023-03-03 20:00:00',\n", - " '4. Interval': '1min',\n", - " '5. Output Size': 'Full size',\n", - " '6. Time Zone': 'US/Eastern'}" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "meta_data" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
1. open2. high3. low4. close5. volume
date
2023-03-03 20:00:00255.54255.55255.54255.552176.0
2023-03-03 19:59:00255.54255.54255.54255.54414.0
2023-03-03 19:58:00255.55255.55255.54255.541750.0
2023-03-03 19:54:00255.55255.55255.55255.55230.0
2023-03-03 19:52:00255.55255.55255.55255.55320.0
\n", - "
" - ], - "text/plain": [ - " 1. open 2. high 3. low 4. close 5. volume\n", - "date \n", - "2023-03-03 20:00:00 255.54 255.55 255.54 255.55 2176.0\n", - "2023-03-03 19:59:00 255.54 255.54 255.54 255.54 414.0\n", - "2023-03-03 19:58:00 255.55 255.55 255.54 255.54 1750.0\n", - "2023-03-03 19:54:00 255.55 255.55 255.55 255.55 230.0\n", - "2023-03-03 19:52:00 255.55 255.55 255.55 255.55 320.0" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "twitter-env", - "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.10.6" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -}