diff --git a/Assignment1/Assignment1.ipynb b/Assignment1/Assignment1.ipynb index 4571721..f46aa6e 100644 --- a/Assignment1/Assignment1.ipynb +++ b/Assignment1/Assignment1.ipynb @@ -969,6 +969,8 @@ "metadata": {}, "outputs": [], "source": [ + "# TODO: text explaination\n", + "\n", "df_m = pd.read_csv(\"./datasets/market_value_decline.csv\").rename(columns={\n", " 'Unnamed: 0': 'bank',\n", " 'market_value_2007': '2007',\n", @@ -1060,18 +1062,65 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 41, "id": "b4fde7e4", "metadata": {}, "outputs": [], "source": [ "df_air = pd.read_csv(\"./datasets/airports.csv\", index_col='ID', na_values=['\\\\N'])\n", - "df_del = pd.read_csv(\"./datasets/airports-delays.csv\", index_col='ID', sep=\";\", na_values=['\\\\N'])" + "df_del = pd.read_csv(\"./datasets/airports-delays.csv\", index_col='ID', sep=\";\", na_values=['\\\\N']) \\\n", + " .dropna(subset=['tz_database_timezone'])" ] }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 42, + "id": "25391739", + "metadata": {}, + "outputs": [], + "source": [ + "def tz_to_continent(tz: str) -> str:\n", + " tz_mappings = {\n", + " 'Asia/': 'Asia',\n", + " 'Africa/': 'Africa',\n", + " 'America/': 'America',\n", + " 'Europe/': 'Europe',\n", + " 'Australia/': 'Oceania',\n", + " 'Pacific/': 'Oceania',\n", + " 'Antarctica/': 'Antarctica',\n", + " 'Arctic/Longyearbyen': 'Europe',\n", + " 'Atlantic/Azores': 'Europe',\n", + " 'Atlantic/Bermuda': 'America',\n", + " 'Atlantic/Canary': 'Africa',\n", + " 'Atlantic/Cape_Verde': 'Africa',\n", + " 'Atlantic/Faeroe': 'Europe',\n", + " 'Atlantic/Reykjavik': 'Europe',\n", + " 'Atlantic/St_Helena': 'Africa',\n", + " 'Atlantic/Stanley': 'America',\n", + " 'Indian/Antananarivo': 'Africa',\n", + " 'Indian/Chagos': 'Asia',\n", + " 'Indian/Christmas': 'Oceania',\n", + " 'Indian/Cocos': 'Oceania',\n", + " 'Indian/Comoro': 'Africa',\n", + " 'Indian/Mahe': 'Africa',\n", + " 'Indian/Maldives': 'Asia',\n", + " 'Indian/Mauritius': 'Africa',\n", + " 'Indian/Mayotte': 'Africa',\n", + " 'Indian/Reunion': 'Africa',\n", + " }\n", + " if type(tz) != str:\n", + " raise ValueError(\"tz not str\")\n", + " to_return = [v for (k, v) in tz_mappings.items() if tz.startswith(k)]\n", + " if len(to_return) == 0:\n", + " raise ValueError(f\"'{tz}' no continent found\")\n", + " return to_return[0]\n", + "\n", + "df_del[\"continent\"] = df_del[\"tz_database_timezone\"].apply(tz_to_continent)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, "id": "f8906707", "metadata": {}, "outputs": [ @@ -1125,12 +1174,12 @@ " \n", " \n", " Albania\n", - " 18.5\n", - " 31.000000\n", + " 0.0\n", + " 0.000000\n", " 0.00\n", " 0.0\n", " 56.000000\n", - " 63.0\n", + " 0.0\n", " \n", " \n", " Algeria\n", @@ -1153,7 +1202,7 @@ " \n", " Angola\n", " 28.0\n", - " 34.500000\n", + " 35.000000\n", " 36.00\n", " 45.0\n", " 51.666667\n", @@ -1167,21 +1216,21 @@ "delay_duration_bin (15.999, 30.0] (30.0, 35.0] (35.0, 41.0] (41.0, 47.0] \\\n", "country \n", "Afghanistan 0.0 0.000000 0.00 44.0 \n", - "Albania 18.5 31.000000 0.00 0.0 \n", + "Albania 0.0 0.000000 0.00 0.0 \n", "Algeria 26.5 33.857143 38.75 43.0 \n", "American Samoa 0.0 0.000000 0.00 43.0 \n", - "Angola 28.0 34.500000 36.00 45.0 \n", + "Angola 28.0 35.000000 36.00 45.0 \n", "\n", "delay_duration_bin (47.0, 59.0] (59.0, 850.0] \n", "country \n", "Afghanistan 0.000000 60.0 \n", - "Albania 56.000000 63.0 \n", + "Albania 56.000000 0.0 \n", "Algeria 51.200000 73.0 \n", "American Samoa 48.000000 0.0 \n", "Angola 51.666667 0.0 " ] }, - "execution_count": 81, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -1209,31 +1258,9 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 40, "id": "a677ce07", "metadata": {}, - "outputs": [], - "source": [ - "# 4.2\n", - "# TODO: continents\n", - "df_4_2 = df_del.loc[:, ['country', 'delay_duration', 'flights_cancelled', 'flights_delayed', 'flights_planned']] \\\n", - " .groupby('country') \\\n", - " .agg(dur_min=('delay_duration', 'min'), \\\n", - " dur_mean=('delay_duration', 'mean'), \\\n", - " dur_max=('delay_duration', 'max'), \\\n", - " cancelled_sum=('flights_cancelled', 'sum'), \\\n", - " cancelled_mean=('flights_cancelled', 'mean'), \\\n", - " delayed_sum=('flights_delayed', 'sum'), \\\n", - " delayed_mean=('flights_delayed', 'mean'), \\\n", - " planned_sum=('flights_planned', 'sum'), \\\n", - " planned_mean=('flights_planned', 'mean'))" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "id": "a29b8c2f", - "metadata": {}, "outputs": [ { "data": { @@ -1256,34 +1283,20 @@ " \n", " \n", " \n", - " airport_name\n", - " city\n", - " country\n", - " IATA\n", - " ICAO\n", - " latitude\n", - " longitude\n", - " altitude\n", - " timezone\n", - " DST\n", - " tz_database_timezone\n", - " type\n", - " source\n", - " flights_planned\n", - " flights_cancelled\n", - " flights_delayed\n", - " delay_duration\n", + " \n", + " dur_min\n", + " dur_mean\n", + " dur_max\n", + " cancelled_sum\n", + " cancelled_mean\n", + " delayed_sum\n", + " delayed_mean\n", + " planned_sum\n", + " planned_mean\n", " \n", " \n", - " ID\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " continent\n", + " country\n", " \n", " \n", " \n", @@ -1297,297 +1310,161 @@ " \n", " \n", " \n", - " 1600\n", - " Bar Yehuda Airfield\n", - " Metzada\n", - " Israel\n", - " MTZ\n", - " LLMZ\n", - " 31.328199\n", - " 35.388599\n", - " -1266\n", - " 2.0\n", - " E\n", - " Asia/Jerusalem\n", - " airport\n", - " OurAirports\n", - " 62\n", - " 0\n", - " 9\n", - " 32.0\n", - " \n", - " \n", - " 1595\n", - " Ein Yahav Airfield\n", - " Eyn-yahav\n", - " Israel\n", - " EIY\n", - " LLEY\n", - " 30.621700\n", - " 35.203300\n", - " -164\n", - " 2.0\n", - " E\n", - " Asia/Jerusalem\n", - " airport\n", - " OurAirports\n", - " 56\n", - " 0\n", - " 7\n", - " 24.0\n", - " \n", - " \n", - " 7646\n", - " Jacqueline Cochran Regional Airport\n", - " Palm Springs\n", - " United States\n", - " TRM\n", - " KTRM\n", - " 33.626701\n", - " -116.160004\n", - " -115\n", - " -8.0\n", - " A\n", - " America/Los_Angeles\n", - " airport\n", - " OurAirports\n", - " 60\n", - " 0\n", - " 7\n", - " 28.0\n", - " \n", - " \n", - " 4357\n", - " Atyrau Airport\n", - " Atyrau\n", - " Kazakhstan\n", - " GUW\n", - " UATG\n", - " 47.121899\n", - " 51.821400\n", - " -72\n", - " 5.0\n", - " U\n", - " Asia/Oral\n", - " airport\n", - " OurAirports\n", - " 71\n", - " 0\n", - " 9\n", - " 35.0\n", - " \n", - " \n", - " 2151\n", - " Ramsar Airport\n", - " Ramsar\n", - " Iran\n", - " RZR\n", - " OINR\n", - " 36.909901\n", - " 50.679600\n", - " -70\n", - " 3.5\n", - " E\n", - " Asia/Tehran\n", - " airport\n", - " OurAirports\n", - " 62\n", - " 1\n", + " Africa\n", + " Algeria\n", + " 26.0\n", + " 43.739130\n", + " 82.0\n", " 6\n", - " 47.0\n", + " 0.26087\n", + " 360\n", + " 15.652174\n", + " 1864\n", + " 81.043478\n", " \n", " \n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", + " Angola\n", + " 28.0\n", + " 42.714286\n", + " 53.0\n", + " 9\n", + " 1.12500\n", + " 97\n", + " 12.125000\n", + " 472\n", + " 59.000000\n", " \n", " \n", - " 3039\n", - " Lengpui Airport\n", - " Aizwal\n", - " India\n", - " AJL\n", - " VELP\n", - " 23.840599\n", - " 92.619698\n", - " 1398\n", - " 5.5\n", - " N\n", - " Asia/Calcutta\n", - " airport\n", - " OurAirports\n", - " 118\n", + " Benin\n", + " 69.0\n", + " 69.000000\n", + " 69.0\n", " 0\n", - " 23\n", - " 38.0\n", + " 0.00000\n", + " 7\n", + " 7.000000\n", + " 28\n", + " 28.000000\n", " \n", " \n", - " 1670\n", - " Emmen Air Base\n", - " Emmen\n", - " Switzerland\n", - " EML\n", - " LSME\n", - " 47.092444\n", - " 8.305184\n", - " 1400\n", - " 1.0\n", - " E\n", - " Europe/Zurich\n", - " airport\n", - " OurAirports\n", - " 124\n", - " 0\n", - " 19\n", - " 38.0\n", - " \n", - " \n", - " 6215\n", - " Long Lellang Airport\n", - " Long Datih\n", - " Malaysia\n", - " LGL\n", - " WBGF\n", - " 3.421000\n", - " 115.153999\n", - " 1400\n", - " 8.0\n", - " N\n", - " Asia/Kuala_Lumpur\n", - " airport\n", - " OurAirports\n", - " 126\n", + " Burkina Faso\n", + " 35.0\n", + " 35.000000\n", + " 35.0\n", " 0\n", + " 0.00000\n", " 18\n", - " 32.0\n", + " 18.000000\n", + " 65\n", + " 65.000000\n", " \n", " \n", - " 7375\n", - " Minaçu Airport\n", - " Minacu\n", - " Brazil\n", - " MQH\n", - " SBMC\n", - " -13.549100\n", - " -48.195301\n", - " 1401\n", - " -3.0\n", - " S\n", - " America/Sao_Paulo\n", - " airport\n", - " OurAirports\n", - " 119\n", - " 1\n", - " 25\n", - " 48.0\n", - " \n", - " \n", - " 9253\n", - " Bubovice Airport\n", - " Bubovice\n", - " Czech Republic\n", - " NaN\n", - " LKBU\n", - " 49.974400\n", - " 14.178100\n", - " 1401\n", - " 1.0\n", - " E\n", - " Europe/Prague\n", - " airport\n", - " OurAirports\n", - " 128\n", - " 0\n", - " 15\n", - " 32.0\n", + " Cameroon\n", + " 28.0\n", + " 51.250000\n", + " 83.0\n", + " 3\n", + " 0.75000\n", + " 61\n", + " 15.250000\n", + " 339\n", + " 84.750000\n", " \n", " \n", "\n", - "

6029 rows × 17 columns

\n", "" ], "text/plain": [ - " airport_name city country IATA \\\n", - "ID \n", - "1600 Bar Yehuda Airfield Metzada Israel MTZ \n", - "1595 Ein Yahav Airfield Eyn-yahav Israel EIY \n", - "7646 Jacqueline Cochran Regional Airport Palm Springs United States TRM \n", - "4357 Atyrau Airport Atyrau Kazakhstan GUW \n", - "2151 Ramsar Airport Ramsar Iran RZR \n", - "... ... ... ... ... \n", - "3039 Lengpui Airport Aizwal India AJL \n", - "1670 Emmen Air Base Emmen Switzerland EML \n", - "6215 Long Lellang Airport Long Datih Malaysia LGL \n", - "7375 Minaçu Airport Minacu Brazil MQH \n", - "9253 Bubovice Airport Bubovice Czech Republic NaN \n", + " dur_min dur_mean dur_max cancelled_sum \\\n", + "continent country \n", + "Africa Algeria 26.0 43.739130 82.0 6 \n", + " Angola 28.0 42.714286 53.0 9 \n", + " Benin 69.0 69.000000 69.0 0 \n", + " Burkina Faso 35.0 35.000000 35.0 0 \n", + " Cameroon 28.0 51.250000 83.0 3 \n", "\n", - " ICAO latitude longitude altitude timezone DST \\\n", - "ID \n", - "1600 LLMZ 31.328199 35.388599 -1266 2.0 E \n", - "1595 LLEY 30.621700 35.203300 -164 2.0 E \n", - "7646 KTRM 33.626701 -116.160004 -115 -8.0 A \n", - "4357 UATG 47.121899 51.821400 -72 5.0 U \n", - "2151 OINR 36.909901 50.679600 -70 3.5 E \n", - "... ... ... ... ... ... .. \n", - "3039 VELP 23.840599 92.619698 1398 5.5 N \n", - "1670 LSME 47.092444 8.305184 1400 1.0 E \n", - "6215 WBGF 3.421000 115.153999 1400 8.0 N \n", - "7375 SBMC -13.549100 -48.195301 1401 -3.0 S \n", - "9253 LKBU 49.974400 14.178100 1401 1.0 E \n", + " cancelled_mean delayed_sum delayed_mean \\\n", + "continent country \n", + "Africa Algeria 0.26087 360 15.652174 \n", + " Angola 1.12500 97 12.125000 \n", + " Benin 0.00000 7 7.000000 \n", + " Burkina Faso 0.00000 18 18.000000 \n", + " Cameroon 0.75000 61 15.250000 \n", "\n", - " tz_database_timezone type source flights_planned \\\n", - "ID \n", - "1600 Asia/Jerusalem airport OurAirports 62 \n", - "1595 Asia/Jerusalem airport OurAirports 56 \n", - "7646 America/Los_Angeles airport OurAirports 60 \n", - "4357 Asia/Oral airport OurAirports 71 \n", - "2151 Asia/Tehran airport OurAirports 62 \n", - "... ... ... ... ... \n", - "3039 Asia/Calcutta airport OurAirports 118 \n", - "1670 Europe/Zurich airport OurAirports 124 \n", - "6215 Asia/Kuala_Lumpur airport OurAirports 126 \n", - "7375 America/Sao_Paulo airport OurAirports 119 \n", - "9253 Europe/Prague airport OurAirports 128 \n", - "\n", - " flights_cancelled flights_delayed delay_duration \n", - "ID \n", - "1600 0 9 32.0 \n", - "1595 0 7 24.0 \n", - "7646 0 7 28.0 \n", - "4357 0 9 35.0 \n", - "2151 1 6 47.0 \n", - "... ... ... ... \n", - "3039 0 23 38.0 \n", - "1670 0 19 38.0 \n", - "6215 0 18 32.0 \n", - "7375 1 25 48.0 \n", - "9253 0 15 32.0 \n", - "\n", - "[6029 rows x 17 columns]" + " planned_sum planned_mean \n", + "continent country \n", + "Africa Algeria 1864 81.043478 \n", + " Angola 472 59.000000 \n", + " Benin 28 28.000000 \n", + " Burkina Faso 65 65.000000 \n", + " Cameroon 339 84.750000 " ] }, - "execution_count": 59, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_del" + "# 4.2\n", + "df_4_2 = df_del.loc[:, ['country', 'continent', 'delay_duration', 'flights_cancelled', 'flights_delayed', 'flights_planned']] \\\n", + " .sort_values(['continent', 'country']) \\\n", + " .groupby(['continent', 'country']) \\\n", + " .agg(dur_min=('delay_duration', 'min'), \\\n", + " dur_mean=('delay_duration', 'mean'), \\\n", + " dur_max=('delay_duration', 'max'), \\\n", + " cancelled_sum=('flights_cancelled', 'sum'), \\\n", + " cancelled_mean=('flights_cancelled', 'mean'), \\\n", + " delayed_sum=('flights_delayed', 'sum'), \\\n", + " delayed_mean=('flights_delayed', 'mean'), \\\n", + " planned_sum=('flights_planned', 'sum'), \\\n", + " planned_mean=('flights_planned', 'mean'))\n", + " \n", + "df_4_2.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "a29b8c2f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABREAAAK5CAYAAAAo6mkSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACjrUlEQVR4nOzdfXxT5f3/8fcJJeWmUAp01SlyJ21FhDpBh/fa4BTGNmmLQ2VgZYK6dcLU4gQU78u8Lc57USYKtlRkDJ3STt3XzenQISJSkFbUTStKoZQCoeT8/uCXLGmT0yRNm6R9PR+PPpqe6+5znXOatp9e5xzDNE1TAAAAAAAAABCALdoBAAAAAAAAAIhtJBEBAAAAAAAAWCKJCAAAAAAAAMASSUQAAAAAAAAAlkgiAgAAAAAAALBEEhEAAAAAAACAJZKIAAAAAAAAACyRRAQAAAAAAABgiSQiAAAAAAAAAEskEQEAAAAAAABYIokIAAAAAAAAwBJJRAAAAAAAAACWSCICAAAAAAAAsEQSEQAAAAAAAIAlkogAAAAAAAAALCVEOwAAAAAAAADEn8OHD+vQoUPRDgMWunbtqi5dukSkL5KIAAAAAAAACJppmvr666+1e/fuaIeCIPTp00dHHXWUDMNoVT8kEdHhmaYpp9PZYh1Jrf6Gstvtre4DAAAAAIBY5k4gfu9731OPHj34OzhGmaaphoYGffPNN5Kko48+ulX9kUREh+d0OlVYWNguYxUVFSkxMbFdxgIAAAAAoL0dPnzYk0Ds169ftMNBC7p37y5J+uabb/S9732vVZc282AVAAAAAAAABMV9D8QePXpEORIEy32sWnv/SlYiolO5bOI8JSTYfbYdanTqhTV3SJIunThPXZuUt6Sx0ann/397AAAAAAA6Ay5hjh+ROlYkEdGpJCTYLZOEXVsoBwAAAAAA6Iy4nBkAAAAAAACIM+6HxLYXkogAAAAAAACIuKlTp2rq1KnNtu/bt0+XXnqpRowYob/85S+WdUP17rvvKiMjQ++++26r+7r33nt12mmnKSsrSy+//LLfOq+88orOO+88nXTSSVqwYIHmzp2r888/31N+/vnna+7cuSGNG0ybTz/9VFOmTAmp39bicmYAAAAAAAC0i3379umqq67Sxo0b9dBDDyk7O1uSdMstt0Q5Ml9bt27Vk08+qcmTJ+unP/2phgwZ4rfewoULNWjQIN1zzz1KS0vTY4895lP+8MMPKykpKeLxvfrqq/r3v/8d8X6tkEQEAAAAAABAm2toaNBVV12ljz76SI888ojOPvtsT9nxxx8fxcia2717tyRpwoQJGj16tGW9M844Q6eddprf8uHDh7dFeFHB5cwAAAAAAABoU+4E4ubNm/X444/7JBCl5pczZ2Rk6Pnnn9fNN9+sU089VSeffLIKCgr07bff+rRbsWKFfvSjH2nkyJG6/PLL9d///jeoeF555RVNmjRJJ598ss444wwtWLBAe/bskSQtXrzYE8u0adN8Lk92c182LUl/+MMflJGRoS+//LJZvaaXJn/zzTeaPXu2Tj31VI0ZM0YLFizQAw880GyMQ4cOadGiRTrjjDOUlZWl/Px87dixwxPfww8/7NlPixcvDmrOrUUSEXHPNM12v5loLGI/AAAAAABikfcKxCeffFJjx44Nqt0DDzwgl8ul+++/XzfeeKPefPNN3XXXXZ7yZcuW6ZZbbtFZZ52lRx55RKNGjdL8+fNb7PeRRx7R7NmzNWrUKBUXF+vaa6/Va6+9pqlTp+rAgQPKy8vTggULJEkLFizwJOy8nXjiiXrxxRclSbm5uXrxxRf1ve99z3Jcp9OpadOm6YMPPtDvfvc73X333dqyZYuWLFnSrO4rr7yibdu26Z577tGCBQv00Ucfafbs2ZKkvLw85ebmSpJefPFF5eXltTjnSOByZsQ10zRVXFwsSSooKJBhGFGOKDrYDwAAAACAWOROIK5fv17SkXsiBis9PV1333235+uNGzd6HsRimqYeeeQR/ehHP9K8efMkSWeeeabq6+u1YsWKgH3u2bNHjz76qPLy8nzuw5ienq7LLrtML730ki699FLP5dXHH3+830uSk5KSlJWVJUk66qijPK+t/OlPf1JVVZXKyso0YsQISdIPf/hDORyOZnXT0tL0yCOPqGvXrpKkHTt26LHHHlN9fb2OOuooHXXUUZIU1LiRwkpExDWn06nq6mpVV1fL6XRGO5yoYT8AAAAAAGLRpk2btG3bNi1btkwDBw7U3Llz9c033wTVtmmC7KijjtL+/fslSVVVVfruu+88D2Zxu+iiiyz73LBhg5xOpyZOnOizffTo0TrmmGMi8lTnQP75z39qwIABngSidCQZed555zWrO3LkSE8CUZIGDBggSaqrq2uz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WE37cL8OpY+2EGhu4fZ15513RqQvAAAAAOjoXC6Xbr11oerq9rT72L17J+vWW2+Rzdb6tXIZGRm6++67NWnSpIjWbSvnn3++Lr74Yv36179u87FIIgIAAAAAAKBVTNNUXd0eTb/4NtlsXdptXJfrsJ5dtUCmabbbmJ0VSUQAAAAAAABEhM3WpV2TiGg/3BMRAAAAAAAAnc7XX3+tq6++WieffLLOPfdcrV271qf8jTfe0KRJkzRy5EiNGzdODz74oJxOp9++TNPUU089pYsuukgjRozQKaecopkzZ+qLL76QJN15553NHti5d+9ejRw5UhUVFZKkDz74QJdddplGjhypc889VwsXLlR9fb1P/cLCQo0ePVpjx47Vs88+G8G90TKSiIhrdrtdgwcP1uDBgzv1gy/YDwAAAAAABK+xsVEzZsxQbW2tli1bpgceeEBPPvmkp/xvf/ubfvOb3ygvL09//vOfdcstt+jVV1/VDTfc4Le/pUuX6vHHH9cNN9yg1157TY888oiqq6t1zz33SJJyc3P1xRdfaP369Z42r7zyipKSknTOOedoy5Ytmj59us444wz96U9/0r333quPP/5Y+fn5nku1r7vuOm3cuFGPPfaYlixZojfeeEP/+c9/2nAv+eJyZsQ1wzBUUFDged1ZsR8AAAAAAAjeO++8o23btmndunU67rjjJEl33323fvazn0mSHnvsMeXm5mrKlCmSpOOOO04LFy7UtGnT9OWXX+rYY4/16e+4447TPffco/PPP1+SdMwxx+iiiy7yrG7MyMjQiSeeqD/96U8aPXq0JGnVqlX66U9/qoSEBD399NMaO3asrrnmGknSoEGDdN9998nhcOi9995Tamqq3n77bT377LOe9vfdd5/OO++8tt1RXkgiIu6RNDuC/QAAAAAAQHC2bt2q5ORkTwJRkk444QR1795dkrR582Zt3LhRq1at8pS7VwRu3769WRLx/PPP14cffqji4mLt2LFD27dv17Zt25SWluapk5OTowcffFDz5s3TV199pX//+9+67bbbPOPt2LFDJ598crNYt2/frtraWknSSSed5Nnev39/DRgwoLW7ImgkEQEAAAAAANDp+Huic0LCkVSZy+XSjBkzdPHFFzerk5qa2mzbk08+qcWLF2vSpEk69dRTNXXqVFVUVPjcZ3HixIkqKirSG2+8oa1bt+qkk05Senq6Z7yJEydq1qxZzfru27ev/v73v3vq+Yu3PXBPRAAAAAAAAHQqw4cPV11dnbZt2+bZVl1drb1790qShg0bpqqqKg0cONDzUVNTo0WLFmnfvn3N+nv00Uf1q1/9SrfeeqsuueQSZWVl6bPPPvNJVPbu3Vvjxo3T66+/rtdff12TJk3ylA0bNkzbtm3zGe/w4cO6++679dVXX2n48OGSjjx8xa2urk6ff/55xPdNICQRAQAAAAAA0KmcdtppGjVqlG688UZt2LBBH330kebOnSub7Uiq7Je//KVef/11LV68WNXV1XrnnXd00003qa6uzu9KxKOPPlp///vf9emnn6qqqkoPPPCAXn/99WZPc87JyVF5ebl27NihH//4x57t+fn5+uSTT7RgwQJ9+umn+vDDD3X99derurpagwYN0nHHHacLL7xQt912m/7xj39o69atuvHGGwM+LbotdOokYn19vUaNGqXTTz+92U7fs2ePrrzySp100kk666yzmi0XlaR3331XGRkZ+vLLL9srZAAAAAAAgJjlch1u949w2Gw2Pf744xoyZIjy8/M1c+ZMjR8/Xn379pUkXXjhhXrggQdUUVGhiRMn6vrrr9fYsWP18MMP++1v0aJFOnDggHJycnT55Zdr69atWrhwob777jufvNHYsWOVkpIih8Oh3r17e7ZnZWXpqaee0tatWzVp0iRdddVVGjBggJ555hnZ7XZJUlFRkc4991zNnj1bl112mY4//niNGDEirPmHo1PfE3Ht2rXq16+fvv32W61bt04TJkzwlL388st69913tWzZMqWlpXky0d5OPvlkvf32254TDAAAAAAAoDMyDEO9eyfr2VUL2n3s3r2Tw3rYaEpKiu677z6fbdOmTfO8vuiii3TRRRcFbF9ZWel5feKJJ+rFF19sVufnP/+5z9f79+9XXV2dcnNzm9UdO3asxo4dG3C8bt26acGCBVqwoP33sdTJk4hlZWU688wzVVNToxUrVvgkEffu3avU1FRlZWUFbG+32/0uYUXsamxsvsz3kNe2Q37Kw+kTAAAAAIDOxGaz6dZbb/H7sJK2ZhiG38VfsWTPnj365z//qVdffVXf//73LZOFsarTJhG3b9+uDz/8UFdeeaUaGho0d+5cbd++XUOHDtXcuXM9j/DOyMjQr371Kx1zzDF6+OGHlZ2drVWrVmn06NG64oor9Itf/EIVFRU69thj1djYqEcffVSrVq3Sd999p6FDh+q6667T2WefLUn661//qieeeEKVlZVqbGxURkaG5syZo9NPPz2au6JTeX7NHZblL7RQ3l5M02zX+xpEkvsHRjj/BYp1dru9Q84LAAAAACIh1hN50dTY2Kibb75Zffv21YMPPhiXf1t22iTiypUr1aNHD5199tlqbGyU3W7X8uXLNW/ePN18881KSUnRK6+84qn32muv6T//+Y9qamq0atUqHThwQLt27fLp86677tIrr7yiBQsWaMSIEVq1apWuueYavfzyyzpw4ICuvfZa3XDDDfr973+vffv26YEHHtD111+vN99803N9e1PZ2dkB5/DNN99o1KhRWrZsWUT3DaLP6XSqsLAw2mGgiaKiIiUmJkY7DAAAAABAnOnXr5/Wr18f7TBapVMmERsbG7VmzRqdd9556t69uyTpnHPO0erVq/Xb3/5WvXr1Uo8ePdSlS5dmlytfc801GjBggKQjD1Zxq6+vV0lJiebNm6fx48dLkn7zm9/I5XJp3759stvtmjdvni677DJPm1/84hfKz8/Xd999p6OPPjrkeRw+fFhfffVVyO06G7vdrqKiIss6kVo9FygZDAAAAAAAEM86ZRLxrbfe0s6dOz3JPkkaP3681q1bp7Vr1/q9uaXboEGD/G6vrq7WoUOHmt1Dcfbs2Z7XycnJevLJJ1VdXa3PPvtMn3zyiaQjycBAKioqApZZrVLE/xiGEderx4ZdcYpsXeNjSbjr0GFte+YDSdKwK34gW9cuUY6o9VyHXNr2zPvRDgMAAAAAgKjqlEnEl156SZJUUFDQrGzFihWWScRu3br53d61a1fLMf/1r38pPz9f55xzjkaPHq0JEyZo//79uvbaa0OIHJ2RrastLpNxtq5d4jJuAAAAAADQXKdLIu7atUtvvfWWJk2apCuuuMKnbOnSpVq5cqU+/vjjkPsdOHCgunbtqo8++kiZmZme7bm5ubrwwgu1fv16nXbaaXr44Yc9Zc8995wkReXJRQAAAAAAAECwOl0ScfXq1WpsbNSMGTM0dOhQn7JZs2Zp1apVWr58udLS0kLqt3v37rr88sv10EMPqW/fvho2bJjKysr06aef6rzzztN//vMflZeXa/369TrqqKP07rvv6qGHHpKkuH0KLwAAAAAA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I488oszMzDYLDAAAAOhMHA6H3n33Xe3Zs0fJyclyOBzRDgkAAMAjrAer/PWvfyWBCAAAAESQ3W5XXl6eUlJSlJuby+1BAABATAnrwSoul0srV67UG2+8of379zd7kpxhGFq6dGlEAgQAAAA6ixEjRmjEiBHRDgMAAKCZsJKI9957r5YsWaJjjz1WRx11VLObPZumGZHgAAAAAAAAAERfWEnE1atX64orrlBhYWGk4wEAAAAAAAAQY8K6J+K+fft07rnnRjgUAAAAAAAAALEorCTiKaecog8++CDSsQAAAAAAAACIQWFdzjxjxgzdcMMNamxs1KhRo9S9e/dmdcaMGdPq4IB4ZbfbNXjwYM/rzoh9AAAAAABAxxFWEvGKK66QJP3hD3+QJJ8Hq5imKcMw9Mknn0QgPCA+GYahgoICz+vOiH0AAAAAAEDHEVYS8Y9//GOk4wA6HBJn7AMAAAAAADqKsJKIp556aqTjAAAAAAAAABCjwkoiStKuXbv09NNP6x//+Id27typp556SuXl5crMzJTD4YhkjAAAAAAAAACiKKynM3/xxRf6yU9+opKSEqWlpem7777T4cOHVV1drYKCAr355psRDhMAAAAAAABAtIS1ErGoqEj9+vXTc889px49emjEiBGSpPvuu08HDx7UY489pnPPPTeScQIAAAAAAACIkrBWIr7zzju65ppr1Lt372YPTrjkkku0bdu2iAQHAAAAAAAAIPrCvidily5d/G53Op08kRWIANchVyvbH/b7uq20Nl4AAAAAABC7wkoijh49Wk888YROP/10JSYmSpIMw5DL5dLy5cv1gx/8IKJBAp3Rtmfej2BfH0SsLwAAAAAA0PmElUT87W9/qylTpuiCCy7QaaedJsMw9PTTT2v79u3asWOHXnjhhUjHCQAAAAAAACBKDNM0zXAafvbZZ1q8eLHeffdd7d69W7169dKYMWN07bXXKiMjI9Jxwo/s7GxJUkVFRZQjQaSYpimn0xnR/iS1+y0G7HY7tzUAAAAAAKADCTuJiOgjiQgAAAAAAID2EPaDVUzT1CeffKKGhgb5y0OOGTOmVYEBAAAAAAAAiA1hJRE3btyo3/zmN/r6668l+V4yaZqmDMPQJ598ErkoAQAAAAAAAERNWEnEu+66SwkJCbr77rt11FFHyWazRTouAAAAAAAAADEirCTi5s2b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AAAAAADQPkgitmDt2rXq16+f6uvrtW7dupDavv322xo/fnwbRQYAAAAAAAC0D57O3IKysjKdeeaZqqmp0YoVKzRhwoSg26amprZhZAhVY6P/laSHvLYfClCnNf0DAAAAAADEO5KIFrZv364PP/xQV155pRoaGjR37lxt375dQ4cOlSR99tlnuv3227Vhwwa5XC794Ac/0I033qiMjAxJRy5nvvvuuzVp0iQ5nU4tXrxYr776qr7++mv17NlTZ5xxhubPn6+UlJRoTrPTeH7NHS3WeSGIOm3JNM2QL5uPNtM0JUmGYUQ5kuiw2+2ddu4AAAAAgM6DJKKFlStXqkePHjr77LPV2Ngou92u5cuXa968eZKkOXPmKCMjQ2VlZWpsbFRRUZF+9atf+b3sedGiRaqoqNA999yjY489Vtu2bVNhYaEeffRR/e53vwsYQ3Z2dsCyr776SkcffXTrJ4qY4XQ6VVhYGO0wEIKioiIlJiZGOwwAAAAAANoUScQAGhsbtWbNGp133nnq3r27JOmcc87R6tWr9dvf/lbdu3fX559/rjPOOEPHHnusEhISdNddd6mqqkoul0s2m+/tJk866SRdcMEFOvXUUyVJxxxzjM4880xVVla2+9w6E7vdrqKiohbrRXo1nd1uj0g/AAAAAAAAsYAkYgBvvfWWdu7c6fNglPHjx2vdunVau3atcnNzNXv2bN11111avny5fvjDH+qss87SRRdd1CyBKEk//elP9c477+j+++/XZ599pu3bt6uqqkqjR4+2jKOioiJgmdUqRRxhGEbcrhIbdsUpsnWN7WcfuQ4d1rZnPpAkDbviB7J17RLliNqH65BL2555P9phAAAAAADQbkgiBvDSSy9JkgoKCpqVrVixQrm5ubrssst04YUX6q233vIkCBcvXqyXX35Z/fv392lz66236pVXXtHPfvYznXvuubr66qv19NNPq6ampl3mg/hj62qLq6ScrWuXuIoXAAAAAAAEjySiH7t27dJbb72lSZMm6YorrvApW7p0qVauXKkPP/xQq1ev1lVXXaVJkyZp0qRJqqmp0dlnn6333nvPZwVjbW2tli9frgceeMBne1VVlXr06NFu8wIAAAAAAADCQRLRj9WrV6uxsVEzZszwPInZbdasWVq1apVWrFihd999V59//rl++9vfKikpSStXrlTXrl01YsQInza9evVSr169VFFRoRNPPFEHDhzQsmXL9PHHH2vUqFHtOTUAAAAAAAAgZLF9w7Uoeemll3T66ac3SyBK0oABAzRu3Dj95S9/0SOPPCKbzabp06drwoQJ+uc//6knnnhCxx13nE+bhIQEPfTQQ9q6dasmTpyoGTNmaP/+/ZozZ462bdumhoaG9poaAAAAAAAAEDJWIvqxZs0ay/KHHnrI8/qJJ54IWM/7yctnnHGG335nzpwZRoQAAAAAAABA+2ElIgAAAAAAAABLJBHRoZmmKdM0ox0GAEQU720AAAAA2htJRHRYpmmquLhYxcXF/LENoMPgvQ0AAABANHBPRHRYTqdT1dXVnteJiYlRjggAWo/3NgAAAADRwEpEAAAAAAAAAJZIIgIAAAAAAACwRBIRAAAAAAAAgCWSiAAAAAAAAAAs8WAVAADi1GuvvaY333xTI0eO1LZt22QYhsaOHav169crJydHO3bsUEVFhUaOHKkdO3Zo9OjRWr9+vedzTk6ORowYIUnatGmTysrKlJOTI0me1+7ytWvXqqKiQtnZ2ZowYYInhk2bNmnFihUyTVNTpkzx1PcuLysrsxzbX/1A5e5YysvLlZiYqMsvvzxgvWD6Cpb3PN55552A823rOPxxH5umxznQ8W2LGDqaWNtfsRYPYgfnBprinADQlliJCABAnHrjjTfkcrm0YcMG7du3T/X19SovL1dtba1efPFFlZeXe8pra2s9Ze7PpaWlcjqdcjqdKi0tVW1trUpKSlRSUuJT7u7X5XKpvLxc9fX1ko48HbqkpET19fXat2+fSkpK5HQ6PfF59xtobG/e9f2VS1J9fb3WrVsn0zR14MCBZmOG0lewms4j0HxbatvaOPzxPjZNj7O/49sWMXQ0sba/Yi0exA7ODTTFOQGgrZFEBAAgTpmmGXDb3r17m5W7v3Z/rqurU3l5ucrLy1VXV+fZ5v26vLxcS5Ys8Wm7ZMkSSfJp513fzbs80NjemsbRtFySZ+xAY4bSV7D8zSPYfiMZhz/ex8atpeMb6Rg6mljbX7EWD2IH5waa4pwA0Na4nBmdQrz8Fy5e4sT/cMzQ3iJ5zpmmqfLycpmmGTAh6V71562qqkrvvfdewOTdmDFjPK/99evuu6KiQmPGjFFqaqp27tzpU79puSRVVlaqqqoq4JjuesH0FaymfbU0tlXb1sThT6D94ebv+EY6ho6mrY9ZvMeD2MG5gaY4JwC0B5KI6LC8/+CbP39+FCMJT6A/WBF98X5uAd5cLpdleaD3ohUrVvht63K5VFpaKsMwghq7rKxMV111lcrKyvyOXVZWppkzZ8o0TT377LMB+1m5cqVmzZolSS32FUxs3m2s3o+9x/bu1902EnEEGnfp0qVB1WurGDqatj5m8R4PYgfnBprinADQXricGQAAhMwq+bh161ZVVlYGlaDcsmWLNm/erC1btjSr73K5tGXLFtXU1Gjz5s3av39/wL4qKytVU1OjmpqaFvsKlruvlv6p4x7bX9tIxOHP5s2b1dDQEFbbSMXQ0bT1MYv3eBA7ODfQFOcEgPbCSkR0WN7/bbv99ttlt9ujGE1wnE6nZ2Ub/y2MXfF4bqHjOHDggG655ZZohyGbzRYwSZieni7DMLRt2zbLRKJhGMrIyNDw4cOVmZmprVu3+tS32WxKT09XWlqavve976l79+4BE4mZmZlKS0vzvLbqK1hpaWnKzMxUZWWlZSIxIyOjWb/utpGIw5/hw4erR48eYSUSIxVDR9PWxyze40Hs4NxAU5wTANoLSUR0Cna7XYmJidEOAx0Q5xbinc1mC3hPROlIos9f2ZQpU7R8+fJmSUKbzabJkyfLNE3dfffdLY6dm5srm82mnJycZvUNw1Bubq4Mw5BhGJo+fboeffTRgP24E/wt9RUswzA8fQXaPzabTXl5ec369W7b2jgCjTtt2jS/+6NpvabHN1IxdDRtfcziPR7EDs4NNMU5AaC9cDkzAACdlGEYcjgcGjdunN8/MAzD0Lhx4zRkyBCf7UOGDNGYMWPkcDiatXE4HOrfv79SU1PlcDgC/uFiGIays7PVv39/SWpWv2m5dGTFX9NYvMd0C6avYLU0j6ZjW7VtTRz+BNofbv6Ob6Rj6Gja+pjFezyIHZwbaIpzAkB7IIkIAECcCpT4k6TevXv7XR3n/Tk5OVkOh0MOh0O9e/f2bPN+7XA4lJ+f79M2Pz9fknzaedd38y4PNLa3pnH4S1K6x3br3bt3wGRmS30Fy988gu03knH4431s3Fo6vpGOoaOJtf0Va/EgdnBuoCnOCQBtjSQiAABx6rzzzpPNZlNWVpZ69uyppKQkORwOpaSkaPLkyXI4HJ7ylJQUT5n7c25urux2u+x2u/Ly8pSSkqK8vDxNnjzZp9zdr81mk8PhUFJSkqQjl/NPnjxZSUlJ6tmzp/Ly8nzuEerdb6CxvXnX91cuSUlJSZ6Vdd26ddPkyZP91gumr2A1nUeg+bbUtrVx+ON9bJoeZ3/Hty1i6GhibX/FWjyIHZwbaIpzAkBbM8yWHjmImJWdnS1JqqioiHIksengwYMqLCyUJBUVFcXFfeu8Y864aoxsXbtEOSJrrkOHVfnEvyTFR7yR4j3veDm30HHE43sbAAAAgPjHSkQAAAAAAAAAlkgiAgAAAAAAALBEEhEAAAAAAACApYRoBwC0FbvdrsGDB3teA0BHwHsbAAAAgGggiYgOyzAMFRQUeF4DQEfAexsAAACAaCCJiA6NP7ABdES8twEAAABob9wTEQAAAAAAAIAlkogAAAAAAAAALJFEBAAAAAAAAGCJJCIAAAAAAAAASyQRAQAAAAAAAFji6cxAjHIdckU7hBa5Dh32+7qji4djAwAAAABAJJFEBGLUtmfej3YIIdn2zAfRDgEAAAAAALQRLmcGAAAAAAAAYImViEAMsdvtKioqinYYITFNU5JkGEaUI4kOu90e7RAAAAAAAGhzJBGBGGIYhhITE6MdBgAAAAAAgA8uZwYAAAAAAABgiSQiAAAAAAAAAEskEQEAAAAAAABYIokIAAAAAAAAwBJJRAAAAAAAAACWSCICAAAAAAAAsEQSEQAAAAAAAIAlkogAAAAAAAAALJFEBAAAAAAAAGCJJCIAAAAAAAAASyQRAQAAAAAAAFgiiQgAAAAAAADAEklEAAAAAAAAAJZIIgIAAAAAAACwRBIRAAAAAAAAgCWSiAAAAAAAAAAskUQEAAAAAAAAYCkh2gEAbcU0TTmdzqDqSZJhGGGPZbfbW9UeAAAAAAAglpFERIfldDpVWFjYLmMVFRUpMTGxXcYCAAAAAABob1zODAAAAAAAAMASKxHRKVw2cZ4SEuzNth9qdOqFNXdIki6dOE9d/dQJpLHRqef/f1sAAAAAAICOjCQiOoWEBHuLCcKuQdQBAAAAAADojLicGQAAAAAAAIAlkogAAAAAAAAALJFEBAAAAAAAAGCJJCIAAAAAAAAASyQRAQAAAAAAAFgiiYi4Z5qmTNOMdhgxgX0BAAAAAADaAklExDXTNFVcXKzi4uJOnzxjXwAAAAAAgLaSEO0AgNZwOp2qrq72vE5MTIxyRNHDvgAAAAAAAG2FlYgAAAAAAAAALJFEBAAAAAAAAGCJJCIAAAAAAAAASyQRAQAAAAAAAFjiwSpAB/Taa6/pzTffVNeuXXXw4EFJkmEYMk1TCQkJamxs1ODBg7Vjxw65XC717NlT+/fv18CBAz0PZ0lMTNTBgwc9n73b/eY3v5EkrV27VuXl5UpMTNRZZ52l9evXKycnRyNGjNCmTZtUVlamnJwcSVJZWZlGjx6t//u//9PBgwc1atQo7dixw7K+u0yST7l7m5u7bPTo0Vq/fr3ns7+6/rQ0djCs4osG733yzjvvyDRNTZkyJezYYm1+AAAAAID2RRIR6IDeeOMNmabpSSBKkmmakqTGxkZJ8iQLJWnfvn3Ntrnbuj97t6upqVHPnj1VXl4u0zR14MABz+vS0lINGjRIpaWl2rNnj0pKSiRJdXV1Wrdunaf/DRs2SJJl/dLSUqWnp3vq7dmzx7PNbrdLOvIkaneZOwbvWLzr+uPd3t/YVm399RFKu7bib59IUklJSVixxdr8AAAAAADtj8uZgQ7InTRqK/fff7+WLFniM477dV1dnZYsWaK6ujrP1+7X/ljVr6urU3l5ucrLy5ttc/Muc8fgHYt3XX+a9h1onFD6CLZdW/G3T6TwY4u1+QEAAAAA2h8rEdFhOJ1Oy6/bc+xoaM8YDh48qKqqKr9lpmkGLAu1vntVofu1+3NFRYXGjBkjST4r7fy1d9dNTU1tVr5z586A7VtqG6iPYNu1Fas5SUf2Vyixxdr8AAAAAADRQRIRcc07UTJ//vyg6rX32Ggdl8vVbJtpmlq5cqXntRXTNFVWVqaZM2fKMIxm28Np21IfLbVrK8HMyeVyaeXKlZo1a1aLscXa/AAAAAAA0cPlzADijsvlUmVlpSorK1tMIrpcLm3ZskU1NTU+22tqarRlyxa/ScqW2rbUR0vt2kowc5KkysrKoGKLtfkBAAAAAKKHlYiIa96roG6//Xafhz04nU7PCsG2WC1lNXY0HDhwQLfccktUY2gvNptN6enpMk1TW7dutUwkuuumpaX5bE9LS1NmZqa2bt0aMOkWqG1LfbTUrq0EMydJysjICCq2WJsfAAAAACB6WImIDsNutysxMdHz0Z5JvaZjR+OjW7du7Tbf9mSz2WSz+b5VGYah3Nxc5ebmtpggdtdtWs8wDOXk5ITVtqU+WmrXVoKZk81mU15eXlCxxdr8AAAAAADRQxIRQMgSExM1ZMgQv2WGYWjIkCFBJ5is6huGIYfDIYfD4Sk3DEPZ2dnq37+/UlNTfcr8tXfX9ceqfUttA/URbLu20tI+cTgcIcUWa/MDAAAAAEQHSUSgA2rrFWJz5sxRfn6+zzju18nJycrPz1fv3r09X7tf+2NVPzk52ZNEbLrNzbvMO9Hlr64/TfsONE4ofQTbrq342ydS+LHF2vwAAAAAAO2PJCLQAZ133nmy2WxKTEz0bHMnkxISjtwKdfDgwZ7LhHv27CmbzabBgwd76rvbuj97t0tLS1NSUpJnhVq3bt3kcDiUkpKi3NxcJSUlKS8vTykpKcrLy9PkyZOVkpKicePGqVu3bjIMQ1lZWS3Wz83Nld1ul91u95S7t7l5l7lj8I6lpcvavdv7GzsYVvFFQ9N9kpSUpJ49eyovLy+s2GJtfgAAAACA9meYLT3aFDErOztbklRRURHlSKLn4MGDKiwslCQVFRX5JM28y6ZdfJu6JjRPfBxqdGrpqgWWdQLxbtt07Giw2hcAAAAAAACtwUpEAAAAAAAAAJZIIgIAAAAAAACwRBIRAAAAAAAAgKWEaAcAtIbdbvc8DKSzP+yBfQEAAAAAANoKSUTENcMwVFBQ4HndmbEvAAAAAABAWyGJiLhHwux/2BcAAAAAAKAtcE9EAAAAAAAAAJZIIgIAAAAAAACw1GEuZ546daree++9gOVvv/22UlNT2zEiAAAAAAAAoGPoMElESbrooot08803+y3r169fO0cDAAAAAAAAdAwdKonYrVs3VhsCAAAAAAAAEdap7ol4/vnna/HixT7bpk6dqrlz50qS3n33XWVkZOjJJ5/UaaedposvvliHDx/WV199peuvv15nnHGGsrKydOWVV6qystLTx9y5czVnzhzdddddOuWUUzR27Fjdc889cjqdnjo1NTWaPXu2Ro8erdNOO02zZs3SZ5991i7zhtTY6NShAB9ugcoDfTR6tQUAAAAAAOjIOtRKxEh588039eKLL2r//v3av3+/pkyZogEDBujRRx+V3W7XH/7wB11++eVavXq1vv/970uSXn/9dZ177rlavny5vvjiC918883av3+/Fi5cqIaGBk2dOlWZmZlatmyZbDabnnnmGU2ePFlr1qxRWlpawFiys7MDln311Vc6+uijIz7/juj5NXe0WOeFIOq0NdM0fZLPsco0TUmSYRhRjiQ67HZ7p507AAAAAKBz6lBJxDVr1ui1115rtv28887T/fffH3Q/+fn5GjRokCTphRdeUG1trV566SX17dtXknTvvffK4XDo+eef1w033CBJSk5O1u9//3t1795d6enp+uabb3TnnXfqhhtu0Kuvvqra2lrdd9996tq1qyTpzjvv1LvvvquSkhL9+te/buXM0VE4nU4VFhZGOwy0oKioSImJidEOAwAAAACAdtOhkojnn3++rr/++mbbe/ToEVI/7gSiJG3dulWDBg3yJBAlKTExUSNHjvS5pPmkk05S9+7dPV+ffPLJOnTokKqrq7V582bV19fr1FNP9Rnn4MGD2r59u2UsFRUVAcusViniyGqxoqKiFutFYlWd3W4Puy0AAAAAAECs61BJxJ49e2rgwIGWddwJI7dDhw41q+O9wsg0Tb/JpcOHDysh4X+7z73C0M3lckmSunTpIpfLpcGDB+vRRx9t1k+oCU4EzzCMuF4tNuyKU2TrGnu3LXUdOqxtz3wgSRp2xQ9k69olyhG1D9chl7Y98360wwAAAAAAICo6VBKxJV27dtXevXs9X7tcLn355Zc+Kw+bSk9P18svv6zvvvtO/fr1k3RkBeGmTZv0s5/9zFPv448/1uHDh9Wly5GEyr///W91795dgwcPVnp6ulavXq1evXp5VjQ2NjZqzpw5uvDCCzV+/PjITxZxz9bVFvMJOlvXLjEfIwAAAAAAaL3YW+bUCgcOHNDOnTv9fhw8eFA/+MEP9Morr+hf//qXqqurdeutt/okFf2ZOHGievfureuuu04bN27Uli1bdMMNN6ihoUGXXHKJp95//vMf3Xrrrdq+fbvWrVun4uJiXX755erevbt+8pOfKDk5Wb/61a+0YcMGbd++XTfddJPeeustDRs2rK13CwAAAAAAANAqHWol4quvvqpXX33Vb9n999+v2bNna8+ePfrlL3+p7t27Ky8vT+PHj292ibO33r17a9myZSoqKtL06dMlSaeccoqWL1+uAQMGeOplZWXJMAzl5OSod+/e+sUvfqGrr75aktSrVy8tW7ZMixYt0owZM3T48GGdcMIJevrpp0kiAgAAAAAAIOZ1mCTic889F1S9Rx55JGDZaaed5vOwFLeBAwdatpOOPFjjtttu02233ea3fMCAAVq8eHFQMQIAAAAAAACx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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_4_3 = df_del.loc[:, ['continent', 'flights_planned', 'flights_delayed']] \\\n", + " .rename(columns={'flights_planned': 'planned', 'flights_delayed': 'delayed'}) \\\n", + " .melt(id_vars=['continent'], value_vars=['planned', 'delayed'], var_name=\"Kind of flight\", \\\n", + " value_name=\"# of flights\") \\\n", + " .sort_values('continent')\n", + "\n", + "f, ax1 = plt.subplots(figsize=(15, 8))\n", + "\n", + "sns.set_theme(style=\"ticks\", palette=\"pastel\")\n", + "\n", + "# Draw a nested boxplot to show bills by day and time\n", + "sns.boxplot(x=\"# of flights\", y=\"continent\",\n", + " hue=\"Kind of flight\", palette=[\"m\", \"g\"],\n", + " data=df_4_3)\n", + "sns.despine(offset=10, trim=True)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "04aa4de5", + "metadata": {}, + "source": [ + "I observe that in all continents there is a significant higher number of planned flights than the number of delayed flights. This can be determined by the inter-quartile range positions of both series' boxplots with respect to each other." ] }, { @@ -1621,7 +1498,9 @@ "id": "386875c8", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# TODO: 5" + ] }, { "attachments": {},