{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "bc9088bd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Päivitetty 2025-11-30 / Aki Taanila\n"
]
}
],
"source": [
"from datetime import datetime\n",
"print(f'Päivitetty {datetime.now().date()} / Aki Taanila')"
]
},
{
"cell_type": "markdown",
"id": "7c925e54",
"metadata": {},
"source": [
"## Boxplot - tilastollisia tunnuslukuja grafiikkana\n",
"\n",
"**Boxplot** havainnollistaa määrällisen muuttujan arvojen jakaumaa tilastollisten tunnuslukujen avulla. Sillä on monta nimeä kuten box & whisker, ruutu- ja janakaavio, laatikko- ja viiksikaavio, tai laatikko- ja janakaavio. Kaavio esittää viiden luvun yhteenvedon:\n",
"\n",
"- pienin arvo\n",
"- alaneljännes/alakvartiili (arvo, jota pienmpiä on neljäsosa arvoista)\n",
"- mediaani (arvo, jota pienempiä on puolet arvoista)\n",
"- yläneljännes/yläkvartiili (arvo, jota pienempiä on kolme neljäsosaa arvoista)\n",
"- suurin arvo\n",
"\n",
"Lisäksi kaaviossa esitetään muista arvoista selvästi poikkeavat arvot erillisinä pisteinä, jotta niihin osataan kiinnittää huomiota.\n",
"\n",
"Kaavio koostuu laatikosta, jonka reunat vastaavat alaneljännestä ja yläneljännestä. Laatikon sisään on merkitty viivalla mediaanin sijainti. Laatikon päistä lähtee janat, joiden päätepisteet vastaavat pienintä ja suurinta arvoa paitsi silloin kun selvästi muista poikkeavia arvoja on merkitty erillisillä pisteillä. Oletuksena erillisinä pisteinä piirretään havainnot, jotka ovat yli 1,5 kvartiilivälin (yläneljännes-alaneljännes) päässä laatikon reunasta.\n",
"\n",
"Seabornin boxplotista löydät lisätietoa https://seaborn.pydata.org/generated/seaborn.boxplot.html.\n",
"\n",
"### Tuonnit ja alkuvalmistelut\n",
"\n",
"- Grafiikan tyylimäärittelyssä voit käyttää **'whitegrid'** sijasta **'white'**, **'dark'**, **'darkgrid'** tai **'ticks'**. Voit myös jättää tyylimäärittelyn tekemättä.\n",
"- **MultipleLocator** auttaa muuttamaan akselin asteikon jaotusta."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "b7193ff8",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"sns.set_style('whitegrid')\n",
"from matplotlib.ticker import MultipleLocator"
]
},
{
"cell_type": "markdown",
"id": "028c890d-436a-4039-94e9-930c5042a9be",
"metadata": {},
"source": [
"### Datan avaaminen\n",
"\n",
"Seaborn-paketin esimerkkidata **penguins** sisältää tietoja pingviinilajeista eri saarilla."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "1fbd3e5d-e7d6-40ea-83cf-ceb5beddb5ee",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
species
\n",
"
island
\n",
"
bill_length_mm
\n",
"
bill_depth_mm
\n",
"
flipper_length_mm
\n",
"
body_mass_g
\n",
"
sex
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
Adelie
\n",
"
Torgersen
\n",
"
39.1
\n",
"
18.7
\n",
"
181.0
\n",
"
3750.0
\n",
"
Male
\n",
"
\n",
"
\n",
"
1
\n",
"
Adelie
\n",
"
Torgersen
\n",
"
39.5
\n",
"
17.4
\n",
"
186.0
\n",
"
3800.0
\n",
"
Female
\n",
"
\n",
"
\n",
"
2
\n",
"
Adelie
\n",
"
Torgersen
\n",
"
40.3
\n",
"
18.0
\n",
"
195.0
\n",
"
3250.0
\n",
"
Female
\n",
"
\n",
"
\n",
"
3
\n",
"
Adelie
\n",
"
Torgersen
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
4
\n",
"
Adelie
\n",
"
Torgersen
\n",
"
36.7
\n",
"
19.3
\n",
"
193.0
\n",
"
3450.0
\n",
"
Female
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
339
\n",
"
Gentoo
\n",
"
Biscoe
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
340
\n",
"
Gentoo
\n",
"
Biscoe
\n",
"
46.8
\n",
"
14.3
\n",
"
215.0
\n",
"
4850.0
\n",
"
Female
\n",
"
\n",
"
\n",
"
341
\n",
"
Gentoo
\n",
"
Biscoe
\n",
"
50.4
\n",
"
15.7
\n",
"
222.0
\n",
"
5750.0
\n",
"
Male
\n",
"
\n",
"
\n",
"
342
\n",
"
Gentoo
\n",
"
Biscoe
\n",
"
45.2
\n",
"
14.8
\n",
"
212.0
\n",
"
5200.0
\n",
"
Female
\n",
"
\n",
"
\n",
"
343
\n",
"
Gentoo
\n",
"
Biscoe
\n",
"
49.9
\n",
"
16.1
\n",
"
213.0
\n",
"
5400.0
\n",
"
Male
\n",
"
\n",
" \n",
"
\n",
"
344 rows × 7 columns
\n",
"
"
],
"text/plain": [
" species island bill_length_mm bill_depth_mm flipper_length_mm \\\n",
"0 Adelie Torgersen 39.1 18.7 181.0 \n",
"1 Adelie Torgersen 39.5 17.4 186.0 \n",
"2 Adelie Torgersen 40.3 18.0 195.0 \n",
"3 Adelie Torgersen NaN NaN NaN \n",
"4 Adelie Torgersen 36.7 19.3 193.0 \n",
".. ... ... ... ... ... \n",
"339 Gentoo Biscoe NaN NaN NaN \n",
"340 Gentoo Biscoe 46.8 14.3 215.0 \n",
"341 Gentoo Biscoe 50.4 15.7 222.0 \n",
"342 Gentoo Biscoe 45.2 14.8 212.0 \n",
"343 Gentoo Biscoe 49.9 16.1 213.0 \n",
"\n",
" body_mass_g sex \n",
"0 3750.0 Male \n",
"1 3800.0 Female \n",
"2 3250.0 Female \n",
"3 NaN NaN \n",
"4 3450.0 Female \n",
".. ... ... \n",
"339 NaN NaN \n",
"340 4850.0 Female \n",
"341 5750.0 Male \n",
"342 5200.0 Female \n",
"343 5400.0 Male \n",
"\n",
"[344 rows x 7 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"penguins = sns.load_dataset('penguins')\n",
"penguins"
]
},
{
"cell_type": "markdown",
"id": "e3370946",
"metadata": {},
"source": [
"### Yhden muuttujan boxplot\n",
"\n",
"- Parametri `showmeans=True` tuo keskiarvon kaavioon (pieni kolmio). Keskiarvoa ja mediaania vertaamalla voit tehdä päätelmiä jakauman mahdollisesta vinoudesta.\n",
"- **plt** viittaa **matplotlib.pyplot**-pakettiin, joka sisältää oikotien moniin muotoiluihin. Lisätietoa https://matplotlib.org/stable/api/pyplot_summary.html.\n",
"- Kaikkea ei voi tehdä **plt**:n kautta, vaan vaativammassa muotoilussa viitataan suoraan kaavioon (**Axes**-luokan olio) ja sen ominaisuuksiin. Tätä varten kaavio sijoitetaan muuttujan arvoksi. Seuraavassa solussa muuttujan nimeksi on annettu **ax**. Lisätietoa **Axes**-luokasta https://matplotlib.org/stable/api/axes_api.html.\n",
"- **MultipleLocator** säätää arvoakselin jaotuksen viiden välein."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "d5d971bd",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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WrRokXr27OmemwEDBqh79+6SpNtuu02ffPKJUlJSdMcdd5x3POnp6Ro1apSaNGki6fRXeNHR0Vq9erWqV6+uWbNm6fDhw/r444/dsdWiRQv17t1br7zyijp06CBf3//1/bx58zRmzBglJCTo/vvvd2//7bff9Mgjj2jgwIHubVWqVFGXLl20adMmVapU6S8/juHDh7sPUzdu3Fh33nmnpk+frokTJ3rsGxwc7J7/W265RVWqVDnv/V6KjRs3qmTJkurbt697XZQvX15bt26V4zgeL6QXc7H1csMNN7g/lhebNm1yB0CdOnVyXWj7/PPPKyoqSvfee2+uCwfPJzExUb/88otef/31PI8DkDgygEv01VdfqU6dOu63pk2b6sknn1SdOnU0bty4Cz7Jnn2++Nprr1V6erokafPmzTp58qTatm3rsU+HDh083u/cubNOnDihVatWSTodFL/++qs6d+6c58dw5gtRzjgkucdypvT0dG3ZskUtWrRwh1BWVpauv/56Va9eXV988YXH/lFRUe6/BwQEKDg4WCdOnLjomM6cm5zx5NwuNTVVUVFRuY66dOrUSQcOHNBPP/3k3rZq1SolJCTotttuU48ePTz2j4uLU2xsrI4dO6atW7fqgw8+UHJysqTTX1n+1cfh5+en9u3bu98vVaqUmjdvro0bN17s4Re4Bg0a6OTJk+rYsaPGjx+vjRs3qlmzZoqJiclXCEgXXy8ul8u9Ls71dvZ3C1SpUkVvvfWWxo4dq+PHj6tr167u02XvvfeeNm7cqISEhDyNzXEcJSYm6q233lK/fv1055135uuxARwZwCWpU6eO+4nKx8dHJUuW1HXXXaegoKCL3jbnK/kcvr6+7ifKnPPvZ1+4V7FiRY/3r7/+et1666366KOPdM899+iDDz5Q5cqVVb9+/Tw/hrPHkfPi4HK5cu179OhRuVwuzZgx45znzc8+GlGqVCmP9898jHkdU85X+Tm3S0tLO+dXzjlzc/ToUfe2b775RtHR0Vq1apVWrlzpcerk119/1QsvvKD169fL399fN910k/vc+9ljvJTHERwcrBIlSnhsq1ChwnlPv1xOUVFRmj59uv75z38qKSlJb7zxhkJCQtS3b189/PDD+bqvi62XYcOG5brG40xz5sxRo0aN3O+HhoYqNDRU0ukjTHfffbf7Wo7Ro0dr6NChqlCh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ABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADG+Xt7ACiefE+meXsIxYpv+hGPP61iXQGXBzGAAlWuXDmVCCgp/bTa20MplgJ/XuPtIXhdiYCSKleunLeHARQrxAAKVGhoqN5+a47S0vL+FVx2drZ27NihmjVrys/P7zKOrnizMo/lypVTaGiot4cBFCvEAApcaGhovp6ss7OzdeLEiWL/Ina5MY8ALhUXEAIAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYJx/XnZyHEeSlJ2dfVkHc6XJmQ/m5a9hHgsG81gwmMeCwTwWjL86jzm3y3kdPx8f52J7SMrIyNDWrVsvaSAAAMC76tatq4CAgPN+PE8x4HK5lJWVJV9fX/n4+BToAAEAwOXhOI5cLpf8/f3l63v+KwPyFAMAAKD44gJCAACMIwYAADCOGAAAwDhiAAAA44gBAACMIwYAADCOGAAAwDhiII/WrVun7t2769Zbb9Xtt9+ukSNH6uTJk5KkF198UeHh4YqKinK/zZ8/38sjLrqys7PVq1cvxcXFubdt2bJF3bt3V1RUlFq1aqWFCxd6cYRXhnPNI2sxf5YtW6batWt7zFdsbKwk1mR+XGgeWZN5d+TIET3zzDNq1KiRGjRooAEDBuj333+XVAjr0cFFHTp0yKlbt66zaNEiJzs729m/f7/ToUMHZ8KECY7jOM59993nLF682MujvHK89tprTq1atZyhQ4c6juM4R44ccRo2bOi8/fbbTmZmprN27VonKirK2bJli5dHWrSdPY+Ow1rMr5dfftmJi4vLtZ01mT/nm0fHYU3mx4MPPugMHDjQSUtLc44dO+bExMQ4/fr1K5T1mKdfVGRdcHCw1q5dq6CgIDmOoyNHjujUqVMKDg5WRkaGduzYofDwcG8P84qwbt06LV++XHfffbd72/Lly1W+fHn17NlTktSkSRN17NhRycnJioiI8NZQi7RzzSNrMf+2bt2qdu3a5drOmsyf880jazLvtm3bpi1btrhfayRp5MiROnDgQKGsR04T5FHOJ6dFixbq2LGjQkJC1KVLF23fvl1ZWVmaOHGimjZtqjZt2mj69OlyuVxeHnHRc+jQIcXHx+vVV19VYGCge/v333+vmjVreuxbo0YNbd++vbCHeEU43zyyFvPH5XLpm2++UUpKiqKjo9W8eXM9//zzSktLY03mw4XmkTWZd19//bVq1KihBQsW6K677lKzZs2UmJiokJCQQlmPxEA+LV++XGvWrJGvr68GDRqkY8eOqWHDhurVq5dWr16tMWPG6K233tKbb77p7aEWKS6XS7GxserTp49q1arl8bE///zT40VNkkqVKqUTJ04U5hCvCBeaR9Zi/hw+fFi1a9dWmzZttGzZMs2bN087d+5UbGwsazIfLjSPrMm8S0tL03fffaedO3fqvffe05IlS7R//34NHTq0UNYjMZBPpUqVUmhoqGJjY/XZZ58pPDxcc+bMUcOGDVWiRAlFRETo4Ycf1rJly7w91CJl2rRpCggIUK9evXJ9LDAw0H0xZo6TJ0+qTJkyhTW8K8aF5vH2229nLeZDxYoVlZycrG7duikwMFCVKlVSbGys1qxZI8dxWJN5dKF5rFevHmsyj3J+vXB8fLyCgoJUsWJFDR48WKtXry6U9UgM5MGmTZvUtm1bZWRkuLdlZGSoRIkS+uKLLzRv3jyP/TMyMlSqVKnCHmaR9v777ys1NVX169dX/fr19eGHH+rDDz9U/fr1VbNmTX3//fce+//www+6+eabvTTaoutC87hixQrWYj5s375dY8eOlXPGL27NyMiQr6+vIiIiWJN5dKF5XLNmDWsyj2rUqCGXy6XMzEz3tpzTKbfccsvlX48FdiliMXb8+HGnRYsWzujRo51Tp045u3btcrp16+a8+OKLzvLly52IiAhn7dq1jsvlcjZt2uQ0atTIWbJkibeHXaQNHTrUfRX84cOHnfr16zuzZs1yMjIynHXr1jlRUVHOunXrvDzKou/MeWQt5s/evXudyMhIZ/r06U5mZqaze/du5/7773eGDRvGmsyHC80jazLvMjIynLvuusv5+9//7hw/ftw5dOiQ89BDDzkDBw4slPXo4zhn5BzO64cfftDo0aO1detWXXXVVerYsaMGDhyogIAAzZs3T7NmzdL+/ftVsWJF9enTx33VJ84t53vjX375ZUmnr0YeNWqUduzYoeDgYA0YMEBdunTx5hCvCGfPI2sxf1JTUzVu3Djt2LFDJUuWVPv27RUbG6uSJUuyJvPhQvPImsy7/fv36+WXX9ZXX32lU6dOqVWrVoqPj1fZsmUv+3okBgAAMI5rBgAAMI4YAADAOGIAAADjiAEAAIwjBgAAMI4YAADAOGIAAADjiAEAAIwjBgAAMM7f2wMAcHns2rVLrVu3VmJioiZMmKA//vhD7dq1U9euXTVixAj99ttvioiI0Pjx4/XKK6+odOnS2r17t1JTU1WxYkWNGDFCK1as0NKlSxUQEKDBgwere/fu3n5YAC4DjgwAxdzq1au1bNkyLViwQO+//75GjhypGTNm6NNPP9XevXv1zjvvSJIWLVqkvn37auPGjYqIiNCjjz6qG2+8UevWrVP//v01YsQIj9/cCaD4IAaAYu6RRx5RYGCgatasqZCQEN13330KDQ1VcHCwIiMjtXv3bklS48aNVb9+ffn6+qpx48YqXbq0evXqJX9/f0VHRysjI0MHDx708qMBcDkQA0AxV758efff/fz8VLZsWff7vr6+7t9Df6H9fHx8JP3v96sDKF6IAaCYy3khL6j9ABQ/xAAAAMYRAwAAGOfj5JwwBAAAJnFkAAAA44gBAACMIwYAADCOGAAAwDhiAAAA44gBAACMIwYAADCOGAAAwDhiAAAA44gBAACMIwYAADCOGAAAwLj/B6z7HmSVESVJAAAAAElFTkSuQmCC",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = sns.boxplot(penguins, x='bill_length_mm', showmeans=True)\n",
"plt.title(f'Pingviinien nokan pituus, n={penguins['bill_length_mm'].count()}')\n",
"plt.xlabel('mm')\n",
"ax.xaxis.set_major_locator(MultipleLocator(5))"
]
},
{
"cell_type": "markdown",
"id": "6acefae7",
"metadata": {},
"source": [
"### Useamman muuttujan boxplot\n",
"\n",
"Voit esittää useamman muuttujan boxplotin antamalla muuttujien listan parametrina.\n",
"\n",
"Vaaka-akselin nimet (**xticks**) on seuraavassa korvattu suomenkielisillä nimillä. Ennen korvaamista on tärkeää katsoa kaaviosta oletusnimien järjestys, jotta korvaaminen osataan tehdä oikeassa järjestyksessä. **plt.xticks**-funktion ensimmäinen parametri on viittaus korvattavien nimien numeroihin [0, 1] ja toinen parametri sisältää korvaavien nimien listan."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "cab98c69",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGwCAYAAACOzu5xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQqtJREFUeJzt3XlcFuX+//E3q6AYSJqmFWUGHgUSF3CpSMusk4hr2kEqC5fSbBNFJZeI0FOaW+aCZaapR0PTXDLN6pSau5JHQ+sckyiUUEIBkfue3x9+uX/duYEKNwOv5+PBQ++Za2Y+c6/v+5pr5nYyDMMQAACACTg7ugAAAICSIrgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAwEVwbU6gYiK4wPSio6MVEBBg9xcYGKj7779f48ePV05Ojl3b6Ojocq8xPT1dAQEBSklJkSSlpKQoICBA6enpJV7H1SxTEQQEBGj69OmOLuOSvvvuOwUEBOi7776TJP32228aOHCgfvnlFwdXdt5f67tacXFx6tChw3WqCnAcV0cXAFwPTZo00dixY223z507pwMHDmjy5Mk6ePCgFi9eLCcnJ7s25emmm27S0qVLddttt0mS7r//fi1dulQ33XRTiddxNcvgypo2baqlS5eqUaNGkqQtW7boyy+/1Kuvvurgys77a31AVUdwQaXg5eWlZs2a2U1r1aqVzpw5o2nTpmnfvn1q1qyZw9783d3d7erz9fWVr69vqdZxNcvgyi723KlIKnp9QHnjUBEqtcDAQElSRkaGpAsPFQUEBGjRokUaPXq0QkNDFRISoqFDhyorK8tuPfPmzdMDDzyg4OBg9enTR1988YWt+3737t0KCAjQxo0b7Zb58ccfFRAQoHXr1l3xUFFcXJyeeuopffzxx+rUqZMCAwPVpUsXffXVV7b1XexQ0c6dO9W3b1/dfffdCg0N1YgRI5SdnW23TJMmTbRv3z717t1bQUFBuv/++zV37tzL3m/Tp09Xx44d9eWXXyoiIkKBgYHq1KmTVqxYYdfu+PHjGjlypMLDwxUcHKyePXtq06ZNl1331KlT1bhxYy1fvtw2bdmyZerevbuaNWum4OBgRUZGau3atddlPzp06KDNmzfr4Ycf1t13361evXpp69attjZ/PhSTkpKikSNHSpIeeOABxcXFSZI6dOhg+/+fa/rz4zF9+nQFBARcUMNfD5WtXbtWXbp0UXBwsFq3bq1hw4bp+PHjl9yHix0q2rhxo/7xj38oJCREgYGBevjhh7Vw4cLL3hcXs2zZMj366KO2Q6vTp09XUVGRJGn16tUKCAjQoUOH7Jb56quvFBAQoP3790uSTp06pTFjxqht27YKCgrSY489Znf/Dh06VOHh4bJarXbrGTNmjB544AEZhqHs7GwNGzZM7dq1U1BQkCIjI7Vy5cpS7w+qBoILKrX//ve/kqRbb731km3efvttWa1WTZ48WcOHD9eXX36pN954wzZ/xowZeuutt/TII49o5syZuvvuu/XSSy/Z5jdv3lx+fn52H7TS+Tf+mjVrlnhcwffff6958+Zp6NCheuedd+Tq6qqhQ4fajdH5sx07duipp56Sh4eHpkyZolGjRmn79u164oknVFBQYGtntVr14osv6u9//7vmzJmjFi1a6K233tK///3vy9Zz4sQJvfbaa3riiSc0Z84c3XLLLYqLi9OPP/4oScrKylLPnj21fft2vfTSS5o+fboaNGigwYMHa9WqVRdd57x58/Tuu+/qtddeU8+ePSVJixYtsn2IzZ49W2+++abc3NwUGxtrC5zXsh/Z2dkaMWKE/vGPf2jq1Kny9PRU//799f3331/Q9v7779ezzz4r6fzj/txzz1123aW1a9cuDRs2TA899JDmzp2rkSNHatu2bXrllVdKvI4vv/xSgwcPVtOmTTVz5kzb/Z6QkKDdu3eXeD2zZ8/Wq6++qjZt2mjWrFmKiorS3LlzNWbMGElSx44dVaNGDa1Zs8ZuuU8//VR33HGHgoODdfbsWT355JPatGmTXnrpJc2YMUP16tVTTEyMLbz07NlTv/32m13wKiws1Lp169StWzc5OTkpNjZWR44c0fjx4zVnzhw1adJEI0aMuOZxPaicOFSESsEwDNs3RUnKycnR9u3b9e6776pZs2a2npeL8ff3V1JSku32/v37tX79eklSXl6e5s6dq6ioKA0bNkySdM899yg/P19Lly61LdOlSxfNmzdP+fn58vT0lCStWbNGDz/8sKpVq1aifcjNzVVKSoptHEz16tXVt29fbdu2TZ06dbqg/aRJk3THHXdo9uzZcnFxkSTdfffdevTRR/Xxxx8rKirKdt8899xz6tWrlySpRYsW+vzzz/Xll1/q3nvvvWQ9+fn5SkxMVJs2bSRJt99+u9q3b6+vvvpKd955p95//31lZ2dr3bp1tmAYHh6up556Sv/85z/VuXNnOTv//+9GS5Ys0Ztvvqnx48frscces00/duyYnn76aQ0ePNg27ZZbblH37t21e/du1a9f/5r3Y9y4cerataskqXXr1nrwwQc1Z84cTZs2za6tr6+v7f7/29/+pltuueWS670au3btUrVq1dS/f3/b88LHx0epqakyDENOTk5XXMeRI0fUtWtXjR492jYtJCREYWFh2rFjh5o3b37FdeTm5urdd99V7969FR8fL+n889rHx0fx8fHq16+f7rrrLnXq1Elr1661BauCggJt2rRJ/fv3lyR98sknOnTokP71r3/p7rvvliTdd999io6O1ltvvaWPP/5Y99xzj+rVq6eVK1fanksbN25Ubm6uunXrJknavn27nnvuOT344IOSpLCwMPn4+Nie18Cf0eOCSmHHjh1q2rSp7a9t27Z6+eWX1bRpU02ePPmyHwh/HT9Qr1495efnS5L27t2rgoICPfzww3ZtOnfubHc7MjJSeXl52rx5s6Tz4efnn39WZGRkiffhzx+axXVIstXyZ/n5+dq3b5/Cw8Ntoa2oqEi33nqr7rzzTn377bd27UNCQmz/d3d3l6+vr/Ly8q5Y05/vm+J6ipfbvn27QkJCLujN6tKli06cOKGffvrJNm3z5s0aP368WrRood69e9u1j4uLU2xsrHJzc5WamqrVq1dr0aJFks4Psr7W/XBxcdGjjz5qu+3h4aH77rtPu3btutLuX3etWrVSQUGBIiIi9Pbbb2vXrl265557NGTIkBKFFkmKiYnRxIkTlZeXp0OHDmndunWaM2eOpAvvr0vZs2eP8vPz1aFDB9tzp6ioyNY7WPz86dKli9LT07Vv3z5J0hdffKG8vDxFRERIkrZu3ao6deqoadOmtnVYLBa1b99e33//vXJycuTs7Kxu3bppw4YNtufyihUrFBYWpgYNGkg6H1SmT5+uF154QSkpKbZespYtW5bwnkVVQo8LKoWmTZtq/PjxkiQnJydVq1ZNN998s7y8vK64bHEPSTFnZ2fbNTyKx4v8dVBs7dq17W7feuutat68udasWaO///3vWr16tRo0aFCqN96/1lH8QfbXsQGS9Mcff8hqtWru3LkXHefx114eDw8Pu9t/3seS1lTce1K8XE5OzkV7JIrvmz/++MM27cCBA2rfvr02b96sL774wu7w2c8//6wxY8Zo27ZtcnV1VcOGDW1jRf5a49Xsh6+vr9zc3Oym3XjjjZc8BFeWQkJCNGfOHM2fP1/z5s3TrFmzVKdOHfXv319PPvlkidaRnZ2tsWPHauPGjXJycpKfn59atGghqeTXnjl16pQkacCAARedXzzmpnXr1rr55pu1Zs0a3X333fr000/VsmVL2+N+6tQpnThxQk2bNr3oek6cOCFvb2/16NFDs2bN0oYNG9S2bVt9++23dr2cb7/9tmbNmqV169Zp/fr1cnZ2Vtu2bTVu3LjLHuZF1URwQaVQo0YNBQUFXff1FvcyZGdnq2HDhrbpfx4AWywyMlKJiYnKzc3VunXr1KNHjxJ/iy6tGjVqyMnJSU899ZRdb0Kxv4agsuDt7X3BIGbp/IeVJNWqVcs2rXfv3ho/fryioqI0btw4hYaGysvLS1arVQMGDJCbm5v+9a9/qUmTJnJ1ddWRI0cuOU6mtE6dOnXBYZisrCzdeOONpVqPxWKxu/3Xnp7i9VssFtshjjNnzlywnnvvvVf33nuv8vPztW3bNi1YsEBvvPGGmjVrZjvccjnDhg3Tjz/+qPfff1/NmzeXu7u78vPztWzZshLvyw033CBJeuutt3T77bdfML84fDo5OSkiIkKffPKJBg8erK+//trukgI1a9bU7bffrrfeeuui2ykOOLfeeqtCQ0O1bt065ebmytPTUw899JDdemJjYxUbG6uffvpJmzZt0syZMzV+/HglJyeXeL9QNXCoCLiMxo0bq2bNmtqwYYPd9M8+++yCto888oik82fNnDhxQl26dCmzury8vNSkSRP99NNPCgoKsv3dddddmjFjRrkMamzVqpX27NmjY8eO2U1ftWqV6tSpIz8/P9u0OnXqyMnJSePGjVN2drbefPNNSdLJkyf13//+Vz179lRwcLBcXc9/l/r6668lXby3qbTOnTtnN4C3oKBAX3/9tW28xV/9eVxOMS8vL/3222920/46ELa4d+/XX3+9ZJuJEyeqZ8+eMgxDnp6eat++vUaMGHHBcpeza9cuderUSa1bt5a7u7uk0t9fd999t9zc3JSZmWn3/HFzc9OkSZPszlyLjIxUZmampk+fLicnJ7vDpqGhofr1119144032q1n69atSk5Othuj0rNnT23ZskWrVq3SI488YgvXv/zyi8LDw23jyho2bKj+/furbdu2F9zngESPC3BZXl5eiomJ0bRp0+Tp6anQ0FBt375dixcvlmT/Ieft7a327dvro48+UlBQkO68884yre3ll1/WgAED9Morr6hLly6yWCx67733tG/fPtuZMWWpX79+WrVqlfr166chQ4aoVq1aWrlypbZt26Y33njjogHA399fTz75pObNm6fOnTurVatWatCggRYtWqR69erphhtu0DfffKMPPvhA0sXH91yNUaNG6cUXX9SNN96oefPmKS8v75L3UXFvxOeff6777rtPd955p9q3b6/Zs2dr1qxZatasmb788ku7U36l8wOTk5KS9Oqrr6p///767bffNGPGDNWoUcPWpk2bNnr//fcVFxenLl266Ny5c0pOTpaPj49at25don0JDg7W6tWr1bRpU9WrV0979uzR7Nmz5eTkVOL7q1atWoqJidHUqVN1+vRphYWFKTMzU1OnTpWTk5MaN25sa9uoUSM1bdpUH330kTp27KiaNWva5nXv3l0LFy5Uv379NGjQIN18883asmWL5s6dq759+9odouvUqZMSEhK0b98+u1PLGzRooHr16un111/X6dOnddttt+n777/XV199pYEDB5Zof1C10OMCXMHAgQM1ZMgQrVy5UgMHDtTOnTttZxhVr17drm1xgCjL3pZi99xzj+bNm6fffvtNQ4cO1fDhw+Xi4qL333+/XC5YVqdOHS1evFiBgYFKTEzUCy+8oF9//VUzZ85Ujx49LrnckCFDVL9+fcXHx+vs2bOaOXOm6tatq7i4OL344ovau3ev3n33XTVs2FA7d+68LrWOGzdOM2fO1EsvvSR3d3ctXrzYrkfoz8LCwtS2bVtNmjRJEydOlHT+OdCrVy+99957evbZZ5WZmanExES75e644w5NnDhRGRkZGjBggD744AMlJCTYXen4vvvu01tvvaXDhw9ryJAhevnll+Xp6akFCxbIx8enRPsyYcIE3X333UpISNDgwYO1ceNGjR8/Xvfcc0+p7q8XX3xRcXFx+vzzz9W/f3+9+eabatGihRYuXGgXTqTzvS4Xe15Xr15dixYtUosWLfTmm2+qf//+2rBhg1555RXb9XCKVatWTW3atNHtt99+wZlPM2bM0L333qupU6fq6aef1uLFizVkyBC7M82AYk4GvyQGXFJRUZE+/fRThYWF6eabb7ZNX7RokV5//XV99913tm/oqHimT5+uGTNm6IcffnB0KVft66+/Vv/+/bVs2TIFBwc7upyrVlBQoPDwcA0cOFBPP/20o8uBiXGoCLgMV1dXzZ07Vx988IGeffZZ1apVS4cOHdLUqVPVtWtXQgvK1Oeff67Vq1fL2dn5ul9Tprz88ssvWrFihbZs2SJJtuvwAFeL4AJcwaxZszR58mSNGzdOf/zxh+rXr6+nnnqK4+8oU4WFhRo3bpysVqtefvll0/5OlbOzsz788ENVr15dkydPvuAwFFBaHCoCAACmweBcAABgGgQXAABgGgQXAABgGpVucK7ValVRUZGcnZ3L7HLrAADg+jIMQ1arVa6urhe9gGWxShdcioqKlJqa6ugyAADAVQgKCrL9nMXFVLrgUpzSgoKC7H4nAwAAVFwWi0WpqamX7W2RKmFwKT485OLiQnABAMBkrjTMg8G5AADANAguAADANAguAADANAguAADANAguAADANAguAADANAguAADANBwSXE6dOqXhw4crLCxMrVq10nPPPafjx49Lkvbt26devXopJCREHTp00LJlyxxRIgAAqIAcElyef/555eXl6fPPP9fmzZvl4uKiV199VTk5ORowYIC6du2qHTt2KDExUUlJSdq/f78jygQAABVMuV859/vvv9e+ffu0ZcsWeXl5SZISEhJ04sQJbdiwQT4+PoqKipIktWnTRhEREVq0aJGCg4PLu1QAAFDBlHtw2b9/vxo1aqR//etfWrx4sfLz83XvvfdqxIgROnz4sPz9/e3aN2rUSMuXLy/1diwWy/UqGQAAlLGSfm6Xe3DJycnRDz/8oMDAQK1YsUIFBQUaPny4RowYodq1a8vT09OuvYeHh/Ly8kq9HX4hGgCAyqfcg0vxT1WPHj1a1apVk5eXl1588UU99thj6t69uwoKCuzaFxQUqEaNGqXeDr8ODQCAeRT/OvSVlHtwadSokaxWq86dO6dq1apJkqxWqyTpb3/7mz766CO79keOHNFdd91V6u3w69BXlpGRodOnTzu6DEjy8vJS/fr1HV0GAFR45R5c2rZtq1tvvVWjRo1SUlKSzp49q7ffflsPPvigOnfurGnTpmn+/PmKiorSrl27tHr1as2cObO8y6z0Tp06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gbZeZ/x/ro4uANeXu7u7pkyZom7duum9995TrVq1bPN+//131a9fXy4uLrZpt9xyiyTpl19+kXT+BdO4cWP9+OOP+v77723dmfn5+Xrttde0Y8cO1atXT02aNLH9kmexOnXq2P7v6nr+qXW5nyf38/Oz/f/mm29WYWGhTp06dQ17f3n169fXhx9+qOTkZA0aNEgWi0Xdu3dXbGysqlWrdsXlb7zxRrtfHHdzc7N9gAwcOFC7du26YJmbb77Zrkvb3d1dktSmTRtFRkZq9erVaty4sSZNmqRFixbZ7reLKSwsVFJSktauXavZs2erdevWJd53mJ+ZXtvS+cO0FotF4eHhF+zHsWPHFBwcrIiICK1cuVKhoaFatWqVEhISbDUfOHBALVu2tC1ntVpt+xcUFKQ777xTa9asUUREhL755htbOImPj9fs2bM1b948xcXFqXHjxoqPj7db1+XUrl3bbl+LX+M7d+7UoEGDLrrM2LFjFRERYbvt4eEhDw8PxcfHq23btvrhhx/00UcfKSwsTA888MBlt79371698MILatmypZKSki77nlBVcY9UQrfddpsSEhI0fPhwde/e3Ta9QYMGysjIkMVisb0BFA8OrVOnjn766SfddNNNmjt3rv75z38qLi5OK1euVPXq1RUfHy9vb2998803qlatmqxWq1q1anVNdWZmZqphw4aSzr/JeXp62r0ZX4yzs7NtXIl0/s3sz2Hnr/P/PKL/999/l8Vi0TvvvCOr1ardu3dr6NChuuOOOxQVFXVN+zJ79uzLzi8eoBcXF2ebVlhYKB8fH3322Wf6448/1K1bN0mSxWKRJLVs2dL2hpidna1nn31WhYWFWr58uW699dZrqhfmZJbXtiTVq1dPHh4e+u6772w1FRYW6tixY7YvLY899pgef/xxdezYUU5OTrr33ntty4aFhWnevHm29Z08eVJnzpyx3e7Ro4fWrFkjNzc3tWzZ0hbU/vOf/6h37956/vnnlZ2drXfeeUdDhgyxjVW5Wi1bttTOnTsvOT89PV1PPPGElixZYuvFLe5B9vb21qpVq+Tm5qaVK1dKOn9m0d69e7Vhwwbbl5vly5fr9ddf19ChQ/X0009fU72VGYeKKqm///3v6tGjh5YuXWqbVvzN56233lJBQYFOnDihxMREtW7dWg0aNJB0vhfByclJL774opydnTVx4kRJ0unTp1WtWjU5Ozvr9OnT+uc//6nTp0/bhYTSmjRpkk6fPq3MzExNmzZNkZGRcnNzs2tT3BNSPKDvzjvv1A8//KDDhw+rqKhIycnJdmcd3Xnnnfr3v/+tP/74Q7m5uZo7d65tXkZGhp5++mlt3bpVzs7Otu7aK4Wl66Fly5ZasmSJduzYIavVqi+++EJr165Vr1699Oyzz2rv3r3auXOndu7cqVmzZkk6/w0vIiJC586dU0xMjLy8vLR48WJCSxVnhte2JAUHB8vPz08TJkzQmTNnVFBQoDfeeENPPfWULZw3btxYDRs21BtvvKFu3brZAk5ERIT27t2rVatWqaioSMePH9egQYPsztDp0qWLDh06pGXLltmFuFmzZikhIUGnT5/WDTfcUKIvRNdDgwYN5OPjo6SkJJ05c0bZ2dkaP3687rvvPjVo0ED79+/Xrl27bK/zFi1aaMCAAbbQ8tlnn2ncuHGaPn06oeUKCC6V2KhRo/S3v/3NdrtmzZp6//33lZaWpvDwcHXu3FkNGjTQ1KlTL1i2WrVqSkpK0rJly/T1118rPj5ehw4dUmhoqB5++GGdPn1a9957r9LS0q66vttuu02dO3dWly5dFBISolGjRl3Qpnbt2urYsaN69+6txYsX68EHH1RERISeeuop3XvvvTp58qRatGhhaz9w4EDdeOONeuCBBxQZGWl37YqgoCCNGTNG48aNU0hIiKKiovSPf/xDjzzyiKTzZwaNGTPmqvfnch588EHFx8crPj5erVq10jvvvKPp06dfcGbBxWzevFkHDhzQjh071KZNG7uzGTIyMsqkXlRsFf21LZ0/zDJ79mxlZWXpoYce0j333KOff/5Z77//vt2h2ccee0wZGRnq2bOnbVqDBg2UnJyspUuXqm3btoqMjFTDhg3tgouvr6/Cw8OVnp6uhx56yDb9tddek9Vq1QMPPKBWrVpp3759tvuh+MygsnjdODk5aebMmSoqKlKHDh0UGRmpm2+++YIzpy5lxowZslgsGjp0qN1rvKzek8zMyfjrKC+gjKWnp+uBBx7Qpk2bbN27FcFPP/2kDz/8UGPHjnV0KQBKICkpSQUFBRo/fnyJl3n55ZcVHx9/wWnKMA/GuAD/Z+3atXr88ccdXQaAK/j111/1v//9TytXrtT8+fNLvFx6errq1atHaDE5ggvwf4YMGeLoEgCUwL/+9S/Nnz9fMTExdofMruSWW27R8OHDy7AylAcOFQEAANNgcC4AADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADCN/weIjzsimpOZjAAAAABJRU5ErkJggg==",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(data=penguins, x='sex', y='bill_length_mm', hue='species')\n",
"plt.title('Nokan pituus eri lajeilla sukupuolen mukaan')\n",
"plt.xlabel('')\n",
"plt.ylabel('mm')\n",
"plt.xticks([0, 1], ['Uros', 'Naaras'])\n",
"plt.legend(title='Laji')"
]
},
{
"cell_type": "markdown",
"id": "538a6733-3d93-4b6a-9095-d0b531edc212",
"metadata": {},
"source": [
"Havaintojen lukumäärät eri ryhmissä (**n-arvot**) olisi aina syytä tarkistaa. Edellisen kaavion kuuden ryhmän n-arvoja on vaikea sijoittaa kaavioon, mutta ne ovat helposti laskettavissa komennolla `penguins.groupby(['sex', 'species'])['bill_length_mm'].count()`. Samassa yhteydessä voidaan laskea myös muut tunnusluvut **describe**-funktiolla kuten seuraavassa on tehty:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "f214e1e7-be19-407d-bf06-64640c30ced4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
count
\n",
"
mean
\n",
"
std
\n",
"
min
\n",
"
25%
\n",
"
50%
\n",
"
75%
\n",
"
max
\n",
"
\n",
"
\n",
"
sex
\n",
"
species
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Female
\n",
"
Adelie
\n",
"
73.0
\n",
"
37.257534
\n",
"
2.028883
\n",
"
32.1
\n",
"
35.900
\n",
"
37.00
\n",
"
38.800
\n",
"
42.2
\n",
"
\n",
"
\n",
"
Chinstrap
\n",
"
34.0
\n",
"
46.573529
\n",
"
3.108669
\n",
"
40.9
\n",
"
45.425
\n",
"
46.30
\n",
"
47.375
\n",
"
58.0
\n",
"
\n",
"
\n",
"
Gentoo
\n",
"
58.0
\n",
"
45.563793
\n",
"
2.051247
\n",
"
40.9
\n",
"
43.850
\n",
"
45.50
\n",
"
46.875
\n",
"
50.5
\n",
"
\n",
"
\n",
"
Male
\n",
"
Adelie
\n",
"
73.0
\n",
"
40.390411
\n",
"
2.277131
\n",
"
34.6
\n",
"
39.000
\n",
"
40.60
\n",
"
41.500
\n",
"
46.0
\n",
"
\n",
"
\n",
"
Chinstrap
\n",
"
34.0
\n",
"
51.094118
\n",
"
1.564558
\n",
"
48.5
\n",
"
50.050
\n",
"
50.95
\n",
"
51.975
\n",
"
55.8
\n",
"
\n",
"
\n",
"
Gentoo
\n",
"
61.0
\n",
"
49.473770
\n",
"
2.720594
\n",
"
44.4
\n",
"
48.100
\n",
"
49.50
\n",
"
50.500
\n",
"
59.6
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" count mean std min 25% 50% 75% \\\n",
"sex species \n",
"Female Adelie 73.0 37.257534 2.028883 32.1 35.900 37.00 38.800 \n",
" Chinstrap 34.0 46.573529 3.108669 40.9 45.425 46.30 47.375 \n",
" Gentoo 58.0 45.563793 2.051247 40.9 43.850 45.50 46.875 \n",
"Male Adelie 73.0 40.390411 2.277131 34.6 39.000 40.60 41.500 \n",
" Chinstrap 34.0 51.094118 1.564558 48.5 50.050 50.95 51.975 \n",
" Gentoo 61.0 49.473770 2.720594 44.4 48.100 49.50 50.500 \n",
"\n",
" max \n",
"sex species \n",
"Female Adelie 42.2 \n",
" Chinstrap 58.0 \n",
" Gentoo 50.5 \n",
"Male Adelie 46.0 \n",
" Chinstrap 55.8 \n",
" Gentoo 59.6 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"penguins.groupby(['sex', 'species'])['bill_length_mm'].describe()"
]
},
{
"cell_type": "markdown",
"id": "3d2b1960-47b6-4f8b-94b4-0d2d78385959",
"metadata": {},
"source": [
"### Usean kaavion yhdistelmä\n",
"\n",
"Usean kaavion yhdistelmä voidaan luoda **plt.subplots**-funktiolla, joka palauttaa kuvion (**figure**) ja kuvion sisään sijoitettujen kaavioiden listan. Seuraavassa nämä on sijoitettu muuttujien **fig** ja **axs** arvoiksi. Parametrin `ncols=2` mukaisesti luodaan kuvio, joka sisältää kaksi kaaviota vierekkäin. Kaavioilla on yhteinen y-akseli (`sharey=True`) ja kuvion koko on **12.8 x 4.8**. Oletuskuvion koko olisi ollut **6.4 x 4.8**. Lisätietoa usean kaavion yhdistelmistä https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.subplots.html.\n",
"\n",
"- Koko kuvion otsikko määritellään **plt.suptitle**-funktiolla.\n",
"- Kuvion sisällä sijaitseviin kaavioihin voi viitata **axs[0]** ja **axs[1]**. Kaaviot luodaan normaaliin tapaan, mutta ylimääräisenä parametrina **ax** annetaan viittaus kaavion sijaintiin kuvion sisällä, esimerkiksi `ax=axs[0]`.\n",
"- Usean kaavion yhdistelmissä kannattaa yksittäisen kaavion muotoiluun käyttää **plt**:n sijasta suoraa viittausta muotoiltavaan kaavioon (esimerkiksi `axs[0]`). Lisätietoa https://matplotlib.org/stable/api/axes_api.html."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "3640541c-989d-4a1e-9178-a8346e06f614",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABB4AAAHdCAYAAAC64rqOAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdsNJREFUeJzt3X1cVGX+//E3MwiooKOogFYEudKKTuKaRrKSZtmWZqndKXbvHVRmeUs2KCJamd0okGVmCm5tmWVl1lYrtRtp3oV2YxlEJoKGkiAiOjO/P/w53whU0BmGm9fz8fChnHPmnM+cGZnres91neNht9vtAgAAAAAAcAGDuwsAAAAAAACNF8EDAAAAAABwGYIHAAAAAADgMgQPAAAAAADAZQgeAAAAAACAyxA8AAAAAAAAlyF4AAAAAAAALkPwAAAAAAAAXIbgAQCAWrDb7e4uAQAAoEEheAAAnNXo0aPVtWtX7dixo9r1AwYM0PTp02u1z+nTp2vAgAHOKM9l/vy80tLS9PLLL7uxIucJCwvTokWL3F3GaW3cuFFhYWHauHGjJGnRokUKCwtzrB89erRGjx59Xsf49ddfFRYWprfeeuucH/PWW28pLCxMv/7663nV4koNoUYAQOPm6e4CAAANg9Vq1YwZM/TWW2/Jy8vL3eXUicWLF8vX19fx87PPPqsHHnjAjRU5z+uvv67AwEB3l3Fa4eHhev3119W5c2d3l1JJhw4d9Prrr+uiiy6SJF111VV6/fXX1aFDBzdXBgBA/UXwAACoET8/P/34449KSUnRpEmT3F1Onejatau7S3CZHj16uLuEM/L19a2XNXp5eVWqq23btmrbtq37CgIAoAFgqgUAoEb++te/6qabbtLSpUu1c+fOM25rtVqVkZGhIUOGyGw266qrrtKCBQt07Nix0z7m22+/Va9evXTfffepoqJCkvT999/rgQce0BVXXKHw8HD9/e9/V1JSksrLyx2PCwsLU0ZGhh577DH17t1bEREReuihh/Tbb7+d9linhsu///77Gj9+vC677DJFR0dr0aJFstlsju3+ONXi1DD/xYsXO/795+H/f6zp1DSG0w3n//NUkz179mjChAnq06ePLrvsMt12223KzMw87XM45Y033tANN9ygbt266aqrrtKiRYt04sSJSse56667lJCQoF69eunmm2/WiRMnzjrV4uDBg5o8ebL69u2r7t27a+jQoXr77bcrbfPVV1/pvvvu0+WXX65u3bppwIABVc7hr7/+qqlTpyoqKkrh4eGKjIzU1KlTdejQIcc2AwYMUHJysu666y717NlTFoulylSLszl48KBmz56t/v37q1u3burdu7fi4uJqPb3gbM/pbFMtpk+frrvvvlurV6/WoEGD1K1bN914441nfS1Hjx4ti8WitLQ0/f3vf9dll12mMWPG6LffftPq1at1zTXXKCIiQnfffXel51TdlJOznbvDhw9r6NChGjBggGNfNTl/VqtVL774ogYPHiyz2awePXro9ttvV1ZWlmObRYsW6ZprrtGGDRs0ZMgQdevWTYMGDdKaNWtq+hIAABohRjwAAGrsscce0xdffKEZM2Zo9erVp51yYbFY9Pbbb+v+++9X79699e233yolJUXfffedli5dKg8Pj0rb//TTT7rvvvtkNpuVmpoqLy8v7d+/X6NGjVKPHj00f/58eXl5acOGDXr11VfVrl07jR8/3vH4Z555Rtdcc40WLlyoPXv2aN68efL09NTChQvP+HxmzZrlCBy2bNmi1NRUHTlypNrrVbz++uu67bbbNGLECN1yyy3ncPZOz2azady4cWrfvr2efPJJeXp6asWKFYqNjdW6desUHBxc7eOWLFmiZ555RjExMZoxY4a+++47LVq0SPv27VNycrJju82bN8vDw0OLFi3SkSNH5Ol59o//KVOmqKioSLNnz1bLli21du1aTZs2TUFBQerTp4++//573X333bruuuv0zDPPyG6365133tHixYt18cUXa8iQITp69KjuvPNOtWnTRgkJCfLz89OWLVuUkpIib29vzZkzx3G8jIwMjRo1SmPHjpWPj0+l8ORs7Ha7xo0bp99//12PPvqo2rdvr++++07PPfecLBaLli1bVqP91OQ51cTOnTu1f/9+PfTQQ/L19dVzzz2nhx56SJ999plat2592se9//776tq1q+bOnav8/HzNmTNHMTEx8vHx0bRp01RcXKy5c+cqMTFRL774Yo1q+bMjR45ozJgxOnz4sFasWKELLrigxudvwYIFWrVqlSZPnqywsDAVFBQoJSVFEydO1IYNG9SiRQtJ0oEDB5SYmKgJEyaoU6dOevnllzV9+nSZzWZdcskl51Q3AKBhI3gAANRYq1atNHv2bE2YMOG0Uy52796tN998Uw8//LAmTJggSerbt686dOigqVOn6rPPPlN0dLRj+z179ujuu+9WWFiYUlNT5e3tLUn64Ycf9Ne//lXPPfec4zoLV155pbKysvTVV19VCh66dOmiefPmOX7Ozs7W+vXrz/p8unbtqgULFkiS+vXrp7KyMqWnpys2NlatWrWqtO2p4fWBgYFOnwJQVFSkn376SePHj3ecG7PZrMWLF592lEhJSYnS0tJ02223aebMmZKkqKgomUwmzZw5U/fcc4/+8pe/SJJOnDih2bNnnzbAqM6mTZsUGxurgQMHSpL69Okjk8kko9Eo6WQn/corr9RTTz0lg+HkAMq+fftqw4YN+uqrrzRkyBD9/PPPCgwM1Pz58x3XRLjiiiu0Y8cObdq0qdLxOnTooOnTpzv2VdORDpK0f/9+NW/eXNOmTVOvXr0c9f7666967bXXaryfmjynmigpKdFbb73leM4tWrRQTEyMvvzySw0aNOi0jzt+/LgWL17sCCf+/e9/67///a8+/vhjXXjhhZKk7777Tu+8806Nn9MfHTt2TBMmTFBBQYHS09Md+6zp+du/f78mTZpUaYSFj4+PHnzwQe3atUsRERGSpKNHj2ru3LmKjIyUJF188cXq37+/MjMzCR4AoIkieAAA1MqAAQN04403aunSpbr22msVHh5eaf2pDuWfO2k33HCDZsyYoY0bNzo610eOHNHdd9+tAwcOKCMjQz4+Po7to6KiFBUVpePHjys3N1c///yzdu3apYMHD8pkMlXa95+DgMDAQB09evSsz+XGG2+s9POgQYO0YsUKbd++Xf369Tvr452lXbt26ty5sx5//HF98cUX6tevn6KiojRjxozTPmbbtm06evSoBgwYUGl0wKnpG//73/8cwYOPj4+jE1xTffr00aJFi/T9998rOjpa/fr107Rp0xzrb7rpJt100006duyYfvnlF+Xl5embb76R1WrV8ePHJZ2cnrNq1SrZbDbt2bNHP//8s3788Ufl5ORUGdFwySWXODr7tRUQEKAVK1ZIkvLz85WXl6effvpJW7duddRSEzV5TjXRtm3bSuf71EU8z/aevOSSSyqNiGjfvr3atm3rCAgkyWQyqaSkpMa1/NHUqVO1c+dOzZ07t9I+a3r+nn76aUknp2Xk5eUpNzdXn376qSRVOT9//D956vmXlZWdU90AgIaP4AEAUGszZ85UVlaWpk+frtWrV1da9/vvv0s62Wn6I09PT7Vp06ZSp6m4uFghISEqLS3Vk08+qcWLFzvW2Ww2LVy4UBkZGSorK1NQUJDMZrNjRMQfNW/evNLPBoNBdrv9rM/jz3ciOHWRwMOHD5/1sc7k4eGhZcuWKS0tTf/+97+1Zs0aNWvWTAMHDtSsWbOqBC3SyXMnSWPHjq12n/v373f829/fv8r0lrN55pln9MILL+iDDz7Q+vXrZTAYdOWVV2rWrFm68MILVV5erjlz5uidd97RiRMndMEFFygiIkKenp6Vzv0rr7yiJUuW6NChQ2rXrp3Cw8PVvHnzKp3ndu3a1aq+P1u7dq0WLlyoffv2yWQy6dJLL60UZNVETZ/T2fz5/Xjq3P/x2hfV+eMdVE63r/NRWFiobt26KSUlRf/4xz/UsmVLx7qanL8dO3Zo9uzZ2rFjh3x8fNS5c2d16tRJkqqcnz/WfSpQqs05BAA0LgQPAIBaa926tWbNmqW4uDilpaVVWSednOd9wQUXOJYfP35chw4dUps2bRzLTCaTXn75Zb3//vt6/PHH9dFHH+naa6+VJL344otavny5Zs2apUGDBsnPz0+SNGLECKc9j1Od91OKiookneyo18SpDqXVanVMQThy5Mhpt/mjP3/7GxAQoFmzZikhIUHff/+91q9fr5deekmtW7fW7Nmzqxz71FSQBQsW6OKLL66y/nw78n5+fpoyZYqmTJminJwcffLJJ0pNTdXs2bO1dOlSzZ07Vx9++KGeffZZXXnllY75/aeG10vSu+++q/nz5+vRRx/ViBEjHMHOxIkTtWPHjvOq7482b96sadOmKSYmRvfdd5/jG/Ynn3xSW7ZsqfF+avKc6qOzvbdOOXV72JtuuknPPPOMY4pOTc5faWmp7r//foWFhem9995zjFDJzMzUhx9+6MJnBwBoDLirBQDgnAwcOFCDBw/Wiy++qIMHDzqW9+7dW9LJTucfvf/++7Jarfrb3/7mWNayZUu1bNlSt9xyiyIiIpSYmOgYbbBlyxZ17txZI0aMcIQOhYWF+uGHH876zXFNnRomfsqHH36o5s2b67LLLqt2+z9PBTj1DfW+ffscy7Zu3VrtNgUFBY5lx48fV3Z2tuPnbdu26corr1R2drY8PDz017/+VZMmTVKXLl0qPe6PLrvsMjVr1kyFhYXq3r2740+zZs309NNP1/puDn+0d+9eRUdHO66TERoaqjFjxujKK6901LNlyxb16dNHAwcOdHTQd+7cqYMHDzpeny1btsjPz09jx451hA5HjhzRli1bnPYaSifPn81m00MPPeToNFutVn3xxReSzj7S4JSaPKf6xtfXt8p75M/vwVNOTem55557lJGRoW3btkmq2fnLyclRcXGx7rzzTv3lL39x/F/47LPPHNsAAHA6jHgAAJyzxx9/XF9++WWlW1d27txZN998sxYvXqzy8nL16dNH3333nRYvXqw+ffro73//e5X9eHh4aPbs2Ro2bJieeOIJzZ0713GHixdffFE9evRQXl6elixZooqKihpdv6Em1q9fr3bt2ik6OlqbNm1SRkaGJk2a5Oh0/lmrVq20bds2ffXVV+rVq5eio6M1b948Pf744xozZowKCgq0ePHiSkPYW7durYiICKWnpys4OFht2rTRypUrVV5e7jhO165d5ePjo6lTp+rBBx9Uu3bt9MUXX+i7777TnXfeWW0tbdq00f3336/nnntOpaWl6tOnjwoLC/Xcc8/Jw8NDl1566Tmfl06dOikwMFBJSUkqLS3VRRddpJ07dyozM1Pjxo2TdPLilx988IH++c9/6pJLLtH333+vtLQ0eXh4OF4fs9msf/7zn5o/f7769++v/fv36+WXX9Zvv/12xrs71JbZbJYkJSYmavjw4Tp8+LDS09P1/fffSzo5AqC6aQzV7edsz6m+6d+/vz799FPNnTtXAwcO1JYtW6rc9vTP4uLi9P7772vmzJlas2ZNjc5fSEiIfH199cILL8jT01Oenp768MMP9eabb0o6+/UrAABNG8EDAOCcmUwmzZo1Sw888ECl5XPnzlVwcLBWr16tl19+WR06dNDo0aMVFxd32gsIhoWF6c4779SyZcs0ePBgjRs3TocOHdKKFSuUkpKioKAgDR06VB4eHlqyZIl+//338+68Tpw4UZs2bdLrr7+uoKAgWSwW3XHHHafdfvz48UpNTdWYMWO0bt06hYSE6IknnlBaWprGjh2rSy65RHPmzKl0m0hJmj9/vubMmaPHH39cvr6+GjFihCIiIvTGG29Ikry9vbVs2TI9/fTTmjt3rg4fPqyLL75YiYmJGjZs2Gnrefjhh9W+fXutWrVKS5cuVevWrRUZGalHHnnEMUrkXC1evFgLFy7Uc889p0OHDikoKEgPPPCA45oS06dP1/Hjx/Xss8+qoqJCF1xwgSZMmKDdu3fr008/ldVq1c0336xff/1Vq1ev1qpVqxQQEKDo6GiNHDlSjz/+uHbv3q3OnTufV53SyQthWiwWvfLKK44wqU+fPlq8eLHi4uK0ZcuWSndSOZ2aPKf6Zvjw4frll1+0Zs0avf766+rdu7eee+65M76PfXx8ZLFYNG7cOL3wwgt66KGHanT+UlNT9eSTT2rixIlq2bKl/vrXvyo9PV1jxozR5s2bHRc2BQDgzzzsXOkHANDE/Prrr7r66qs1b968M3bsgT/76aefdP311+vZZ5/VP/7xD3eXAwBAg8CIBwAAgBr4/PPP9fHHH0tSrW9PCgBAU0bwAAAAUANPP/209u7dqzvvvFPh4eHuLgcAgAaDqRYAAAAAAMBluJ0mAAAAAABwGYIHAAAAAADgMgQPAAAAAADAZQgeAAAAAACAyxA8AAAAAAAAlyF4AAAAAAAALkPwAAAAAAAAXIbgAQAAAAAAuAzBAwAAAAAAcBmCBwAAAAAA4DIEDwAAAAAAwGUIHgAAAAAAgMsQPACoYvTo0Ro9evRp1w8YMEDTp0+vw4oAAEBDM3r0aHXt2lU7duyodj3tCaDpIHgAAAAA4BJWq1UzZsxQRUWFu0sB4EYEDwAAAABcws/PTz/++KNSUlLcXQoANyJ4AHBeBgwYoOTkZN11113q2bOnLBaLJGn//v2aMWOGoqOjZTabNWLECH3yySeVHvvFF1/otttuU0REhC6//HLFxsYqJyfHHU8DAAC4wF//+lfddNNNWrp0qXbu3Hna7crLy/X000/r2muvVbdu3dSzZ0/dc889+u677ypt98Ybb2jYsGHq0aOHzGazhg4dqnXr1jnWv/XWW+rataveeOMNRUVFqV+/fvrxxx9ltVr14osvavDgwTKbzerRo4duv/12ZWVlOR577NgxzZ49W/369VO3bt103XXXadmyZc4/KUATRPAA4LxlZGQoLCxMixYt0tChQ/Xbb79pxIgR2rRpkyZNmqRFixapU6dOiouL09q1ayVJe/bs0YQJExQeHq60tDQlJSUpJydHY8eOlc1mc/MzAgAAzvLYY4+pbdu2Z5xyMXXqVL355psaO3asli1bpunTp+uHH37QpEmTZLfbJZ1sb1gsFl199dVasmSJnnrqKTVr1kxTpkxRfn6+Y19Wq1UvvPCCkpKS9PDDD6tz585asGCBUlJSdNttt2np0qVKTEzUoUOHNHHiRJWVlUmS5s6dq8zMTE2bNk0vv/yyrr76aj3xxBN66623XH+SgEbO090FAGj4OnTooOnTp8tgOJllPvXUUzp48KA++OADXXjhhZKk6Oho3X333XryySc1ePBgZWdnq7y8XOPGjVNAQIAkKSgoSJ988onKysrk6+vrtucDAACcp1WrVpo9e7YmTJiglJQUTZo0qdL6iooKHTlyRI8//riuv/56SVLv3r115MgRzZ8/XwcOHFCHDh20Z88e3XvvvYqLi3M89oILLtCwYcO0detWdezY0bF8/Pjxuuqqqxw/79+/X5MmTap08WwfHx89+OCD2rVrlyIiIrRp0yZdeeWVuuGGGyRJffr0UYsWLdSmTRtXnBagSSF4AHBOPDw8HP++5JJLHKGDJG3atEkRERGO0OGUG2+8UTNmzFBOTo4uu+wyeXt7a8SIEbr++usVHR2tXr16yWw219lzAAAAdWPAgAG68cYbtXTpUl177bUKDw93rPPy8tLLL78s6WRAkJeXp5ycHP3nP/+RJB0/flySHHfAKCkp0c8//6yff/7ZMVXi1DandOnSpdLPTz/9tCTp4MGDysvLU25urj799NNKj+3Tp49ee+01FRYWqn///oqOjq4UcgA4dwQPAKpo0aKFiouLT7u+oqJCzZs3d/zcrl27Sut///13XXDBBVUed2q7w4cPq3PnzkpPT9eLL76of/3rX1q+fLlatWqlkSNHauLEiZWCDAAA0PDNnDlTWVlZmj59ulavXl1p3eeff67k5GTl5OSoZcuWCgsLU8uWLSXJMdXil19+kcVi0ZdffilPT0+FhoYqLCys0jan+Pv7V/p5x44dmj17tnbs2CEfHx917txZnTp1qvTYxx57TIGBgVq7dq1mz54tSYqIiJDFYlHXrl2dfDaApoWWPYAq2rVrp/3791e7rqKiQgcPHqwSNvxR69at9dtvv1VZfuDAAUlyDFk0m81avHixNm7cqOXLl6tv37564YUXtH79eic8CwAAUJ+0bt1as2bN0g8//KC0tDTH8l9++UVxcXG69NJL9e9//1tbt27VP//5T/Xv39+xjc1m09ixY1VUVKR//etf2r59u9auXatx48ad9bilpaW6//771aJFC7333nvatm2bVq9ereHDh1fazsvLSxMmTNAHH3yg//znP7JYLNqzZ48effRR550EoIkieABQRe/evZWfn6/s7Owq6z7++GNZrVZdccUVp3385Zdfrm3btmnPnj2Vlq9du1bt27dXcHCwli9frgEDBqiiokJeXl6KjIzUnDlzJEn79u1z7hMCAAD1wsCBAzV48GC9+OKLOnjwoCRp586dOnbsmMaNG6eLLrrIse3nn38u6eSIhEOHDik3N1cjRoyQ2WyWp+fJgdufffaZJJ3xwtQ5OTkqLi7WnXfeqb/85S+OUZV/fGx5ebkGDRrkuItFx44dNWrUKN1www0qKChw8lkAmh6mWgCo4vrrr9err76qMWPGaNy4cQoPD5fNZtPWrVu1dOlS3XDDDerZs+dpH3/PPfdo7dq1uueee/TAAw+oTZs2evvtt/Xll18qOTlZBoNBV1xxhRYsWKC4uDjFxMTIaDTqtddek5eXV6VvOAAAQOPy+OOP68svv3SMjgwPD5enp6eeeuop3XvvvaqoqNBbb72lDRs2SJLKysp04YUXqlOnTsrIyFBgYKBatWql//73v3r11VclSUePHj3t8UJCQuTr66sXXnhBnp6e8vT01Icffqg333zT8VgfHx+Fh4dr8eLFatasmcLCwpSbm6s1a9Zo0KBBrj0hQBPAiAcAVTRr1kzp6em67bbb9MYbb2jcuHGKi4vTxx9/rEmTJmnBggVnfHz79u31z3/+U926ddPcuXM1ceJE7du3T6mpqY5hjZdeeqleeOEFlZaW6pFHHtEDDzyg4uJiLVu2TKGhoXXxNAEAgBuYTCbNmjXL8XNwcLCefvppFRYWasKECbJYLJKklStXysPDQ5s3b5YkpaamKiAgQNOnT9fDDz+s7du3Ky0tTaGhoY5tquPn56fU1FTZ7XZNnDhRU6dOVX5+vtLT09WyZUvHYxMTEzVs2DAtW7ZM9957r1JTUzVixIhKtQI4Nx72P1+JBQAAAAAAwEkY8QAAAAAAAFyG4AEAAAAAALgMwQMAAAAAAHAZggcAAAAAAOAyBA8AAAAAAMBlCB4AAAAAAIDLeLq7AGez2Ww6ceKEDAaDPDw83F0OAAB1zm63y2azydPTUwYD3zG4Cm0OAEBTV9M2R6MLHk6cOKEdO3a4uwwAANyue/fu8vLycncZjRZtDgAATjpbm6PRBQ+nUpbu3bvLaDS6uRoAAOqe1WrVjh07GO3gYrQ5AABNXU3bHI0ueDg11NFoNNIIAAA0aQz/dy3aHAAAnHS2NgdfhQAAAAAAAJcheAAAAAAAAC5D8AAAAAAAAFym0V3joSbsdrtOnDghq9Xq7lJQQ0ajUZ6ensxXBgAAABoo+mENj7P6YW4JHoqLi5WcnKzMzEzZbDZdfvnlmjVrljp06KCvv/5aSUlJ2r17t9q0aaMJEybolltucdqxKyoqtG/fPpWVlTltn6gbLVq0UFBQELeGAwAAABoY+mENlzP6YW4JHh588EG1bt1a//73v2UwGDRjxgw9/vjjevLJJzV27Fg99NBDuu222/TVV18pLi5OYWFhMpvN531cm82m3NxcGY1GdezYUV5eXnyD3gDY7XZVVFTowIEDys3N1V/+8hduEQcAAAA0EPTDGiZn9sPqPHjYuXOnvv76a33xxRfy9fWVJM2ZM0cHDhzQRx99JJPJpFGjRkmSIiMjNWTIEGVkZDgleKioqJDNZtOFF16oFi1anPf+UHeaN2+uZs2aKS8vTxUVFfLx8XF3SQAAAABqgH5Yw+Wsflidf22cnZ2tzp0761//+peuueYaRUVF6YknnlD79u31448/qkuXLpW279y5s77//nun1sC35Q0TrxsAAADQcNGeb5ic8brV+YiH33//Xbt27VK3bt20Zs0alZeXa+rUqZo2bZratWun5s2bV9rex8fnnOYBVXfBEqvVKrvd7viDhuXU62a1WrkgDQCcAb8j6xbnGwDOjH5Yw3amflhNPwPrPHg4dUGKxx57TN7e3vL19dXDDz+sW2+9VcOGDVN5eXml7cvLy9WyZctaH2fHjh3VLvf09NTRo0dls9lqXzzc6tixYzp+/LjTR8AAqP9sNptycnJ0+PBhtWrVSqGhoXxrgnrjdG0OAMD/oR/WcDmjH1bnwUPnzp1ls9l0/PhxeXt7S5LjzffXv/5Vq1atqrT97t279Ze//KXWx+nevbuMRmOlZeXl5crLy1Pz5s3r9TUCfv/9dz377LP6z3/+o99//12+vr668sorNWnSJAUGBjr9eGPGjNHf/vY3jR8/3un7diaDwaBmzZqpc+fO9fr1A+Bcn332mdLS0lRQUOBYFhgYqAkTJqhfv35urKz+slqtdIbrUHVtDgDA/6EfVr3G0A+raZujzoOHK6+8UhdeeKHi4+M1b948HTt2TM8884wGDhyowYMH6/nnn9fy5cs1atQobdmyRe+++65SU1NrfRyj0VilEWA0GuXh4eH4U1898sgj8vPz05tvvqn27dvrt99+09y5c3Xvvffq3Xfflaenc1+2pUuXOnV/rnLqdavutQXQOGVmZmrWrFmKjIxUQkKCQkJClJubq5UrV2rWrFlKTExUdHS0u8tEE8fnEgCcGf2w6jWlflidj1Nt1qyZVq5cKaPRqEGDBmnQoEEKDAxUcnKy2rRpo2XLlmn9+vXq06ePZs6cqZkzZ+qKK66o6zLdasuWLbrmmmvUvn17SVK7du0UHx+vyy67TIcPH9ZPP/2kcePG6aqrrpLZbNb111+v//znP47Hf/rpp7r99tsVGRmpyy67TDExMfr5558lSW+99ZaGDRume++9V7169dK7776r0aNHa9GiRe54qgBwWlarVSkpKYqMjFRycrLCw8PVokULhYeHKzk5WZGRkUpNTWV+PQAAcAr6Ya7jlgmyAQEBeuaZZ/Tf//5XX331lZ544gm1atVK0snhiq+99pq2bt2qjz/+WMOGDXNHiW51ww03KCEhQbNmzdK6deu0d+9etW/fXvPnz1fbtm314IMPqkuXLvr3v/+tzZs3KyoqSrNmzZIkFRQUaOLEiRo7dqyysrK0YcMG2e12paSkOPb/zTffaMiQIfriiy90zTXXuOlZAsCZZWdnq6CgQKNHj65yPQeDwaCYmBjt27dP2dnZbqoQAAA0JvTDXKfOp1rg7JKSktSnTx+tW7dOFotFJSUluuiii/Tggw/qxhtv1JIlSxQQECC73a69e/eqVatWKiwslCS1bdtW77//vi666CKVlpaqoKBAbdq0cayXTo46GTp0KBdmA1CvFRUVSZJCQkKqXR8aGlppOwAAgPNBP8x1CB7qIYPBoKFDh2ro0KGy2+366aef9M4772jq1Klq3769SktLFRsbqwMHDuiSSy5R27ZtHbeladasmd577z299tpr8vDwUJcuXVRaWlppPlL79u2b5JsdQMPi7+8vScrNzVV4eHiV9Tk5OZW2AwAAOB/0w1ynaT7reuzzzz9XRESEiouLJZ28kEfnzp316KOPqmvXrtqyZYsmTpyoSZMm6csvv1RGRoYGDx7sePwHH3yg9PR0rVy5UpmZmXrppZfUtWvXSseozxd0AYBT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d65OnDghSTp48KAmT56syy+/XH369NGkSZP0+++/S5L27t2rhx9+WJGRkerbt68effRR7d+/33GMb775RqNHj9bll1+ua6+9VsuXL5fdbq/DZw4AAAAA7kE/7NwRPDRAv//+u95//31de+211a6fOnWqRo8erc2bN+uVV17R+vXr9cknn0iSJk6cqNLSUn300Uf65JNPdPjwYc2ePVvHjx/XvffeK6PRqI8++kgffPCBJGn8+PE6ceKECgsLddddd+m6667TF198odTUVK1atUqvv/56nT1vAAAAAHAX+mHnjqkWDcT48eNlNBpls9l05MgR+fn5acmSJdVu6+3trQ8++EAmk0mXX365MjMzZTAYtHfvXm3atEnr169XmzZtJEnz589XcXGxNm/erD179mj16tXy9fWVJM2ePVu9e/fWzp079dVXX+mSSy7RqFGjJEmdO3fWfffdp/T0dN1+++11cxIAAAAAoA7RD3MOgocG4oUXXnDMLSovL1dGRobuuusuvf766woPD6+07auvvqpFixZp9uzZOnDggP7+979r1qxZOnDggCSpU6dOjm3bt2+v9u3ba9euXWrTpo3jzS6dHEpkMpm0d+9e7d27V99884169erlWG+z2WQ0Gl35tAFAkmS1WpWdna2ioiL5+/vLbDbz+wcAALgc/TDnIHhogHx8fHTffffpxRdf1BdffFHpDX/s2DHt3r1bs2bNkqenp3JzczVz5kwlJyfrsccekyTl5+fr4osvliTt3r1b7733nqKjo3Xo0CGVlpY63vQlJSU6dOiQ2rdvr8DAQPXp00cvv/yy41iHDh3SkSNH6u6JA+eJzmvDlJmZqZSUFBUUFDiWBQYGKi4uTtHR0W6sDAAANCX0w84d13hogE6cOKHVq1fr8OHD+tvf/lZpnYeHhx555BEtW7ZMJ06cUPv27eXp6ak2bdooICBAffv21ZNPPqnDhw+rtLRUTz31lPbs2aPu3burc+fOSkhIUElJiUpKSjRr1ixddNFF6tmzp4YMGaLt27dr7dq1OnHihPbv36/x48dr/vz5bjoLQO1kZmbqjjvu0MSJE5WYmKiJEyfqjjvuUGZmprtLwxlkZmbKYrEoNDRUaWlpWr9+vdLS0hQaGiqLxcLrBwAA6gz9sHPHiIf/L/9I3Xzrea7HGTNmjOObWQ8PD1188cVauHChevbsWWk7Ly8vpaWl6YknntCSJUtkNBrVr18/TZ48WZK0YMECzZ8/X//4xz904sQJDRgwQI899pg8PT21ZMkSzZ8/X4MGDVJFRYWuvPJKvfLKK/L09FSnTp20dOlSLViwQElJSTIajbrqqqsc6R1Qn53qvEZGRiohIUEhISHKzc3VypUrZbFYlJiYyDfn9ZDValVKSooiIyOVnJwsg+FkVh4eHq7k5GTFx8crNTVVUVFRjFwBAKABq4u+GP0w9/KwN7T7cJyF1WrV9u3b1aNHjyoN0fLycuXm5iokJEQ+Pj6SpMLCQsWMGqVjFRV1VqO3l5fSMzIUEBBQZ8dsDKp7/YCzsVqtuuOOOxQaGlqp8yqdnB8XHx+v3NxcrVq1is5rPbNt2zZNnDhRaWlpVeZQStLOnTsVGxur5557ThEREW6osP4602chnIfzDAA1c7p2fF33xeiHnZsz9cNq+lnY5Ec8BAQEKD0jQ8XFxXV2TJPJxJsdqCPZ2dkqKChQQkJCpdBBkgwGg2JiYhQbG6vs7Gw6r/VMUVGRJCkkJKTa9aGhoZW2AwAADUtd98Xoh7lPkw8epJNveN6AQONE57Xh8vf3lyTl5uZWO+IhJyen0nYAAKDhoS/WNHBxSQCN2h87r9Wh81p/mc1mBQYGauXKlbLZbJXW2Ww2paenKygoSGaz2U0VAgAAoCYIHgA0anReGy6j0ai4uDhlZWUpPj5eO3fuVFlZmXbu3Kn4+HhlZWUpNjaWufUAAAD1HMEDgEaNzmvDFh0drcTERP3000+KjY3Vddddp9jYWOXk5HA3EgAAgAaCazwAaPROdV5TUlIUGxvrWB4UFETntYHw8PBwdwkAAAA4RwQPAJqE6OhoRUVFKTs7W0VFRfL395fZbGakQz2XmZkpi8WiyMhIJSQkKCQkRLm5uVq5cqUsFgvBEQAAQAPgluBh3bp1mjx5sry9vR3LBg4cqKeeekoJCQlavXq1mjVr5lg3ffp03XbbbS6rp7CwkNtpAk2A0WjklpkNiNVqVUpKiiIjI5WcnOy4HWp4eLiSk5MVHx+v1NRURUVFESABANBA1WVfjH6Y+7gleNixY4eGDh2qefPmVbtuzpw5uvnmm+uklsLCQo2KGaWKYxV1cjxJ8vL2UkZ6Bm96ADiD7OxsFRQUKCEhwRE6nGIwGBQTE6PY2FhlZ2cTKAEA0ADVdV+Mfpj7uC14+Mc//lFleUVFhX744Qd169atzmopLi5WxbEK2XrbZG9ld/nxPA57qGJThYqLi2v8hh8wYIAOHDggT8+TL5fdbldwcLBiYmJ0yy23uLJcAHCboqIiSVJISEi160NDQyttBwAAGpa67IudSz9Moi/mLHUePNhsNn3zzTdq3ry5li5dKqvVqujoaE2ePFl5eXk6ceKEnn/+eW3ZskV+fn4aPny47r///irfdp2N1Wqtdpndbnf8+SN7K7vU5ryeWo3Y9X/H/XMNp32M3a5Zs2Zp2LBhkk4GNBs2bFB8fLwOHTqkMWPGuKTW+ubU62a1Wqt9fQE0Lm3anPyl/NNPP6lr165V1u/evduxHb8TKuN81C3ONwCc2Zn6YVLd9MXOpR92atum3hc7Uz+spp+BdR48HDx4UF27dtWgQYP0/PPP69ChQ5o2bZqmTJmiu+66S71799bo0aO1cOFCfffdd4qLi5PBYND9999fq+Ps2LGj2uWenp46evSobDabJKm8vPy8n9O5KC8vV1lZWY22tdvtqqioqLR9VFSUHn74YT311FMaOnSo+vXrp9tvv13r169X9+7d9dxzz2njxo1avHix8vLy1KFDB9177726/vrrJUmlpaV65plntHnzZh04cEB+fn669dZbdd9990mSbrjhBt1xxx169913tWfPHl166aWaMmWKUlNTtXXrVgUGBmr27Nl1Ojrl2LFjOn78uL7//vs6OyYA97HZbGrbtq1SU1N17733VgqgbTabli1bprZt28pms2n79u3uKxRN3unaHACA//Pnfpjknr5YbfphEn0xyTn9sDoPHtq1a6eMjAzHz82bN9eUKVN06623auHChVqxYoVjndls1l133aV169bVOnjo3r17lYuNlZeXKy8vT82bN5ePj48kOf6uaz4+PmrRokWNtvXw8JCXl1eV7a+99lolJSVp165dkqR9+/bpP//5j44fP65ffvlFkyZN0pNPPqmrr75aX3/9teLi4hQQEKC///3veuqpp1RQUKDVq1fLz89PH330kSZOnKgbb7xRwcHB8vDw0DvvvKOXX35Zvr6+Gj58uMaOHaulS5cqPDxc06ZNU0pKil599VWnn5vTMRgMatasmTp37uy21w1A3Zo4caJmzZql1atXa+TIkY67WqxatUrffvutZs2apZ49e7q7zHrHarXSGa5D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+59T9v/EE08oLS3NKfsCUDO0OdCQ0OZoWmh31G8ED41ARkaG7rjjDq1YsUInTpxw+v579eqlbdu2OX2/qFu5ubmaNm2a+vXrp4iICA0cOFALFizQkSNHJElhYWHauHFjtY91VkPw22+/1eDBg897P6j/fvjhB914442qqKjQSy+9pC1btuijjz7SjTfeqLi4OGVmZp73MQ4dOuSESgHUBm0O1ARtDtQ12h31H8FDA5eVlaWioiJNnz5dNptNH374oWPd/v37NX78ePXs2VNXX311lbTvl19+0fjx49WnTx/1799fzzzzjCoqKqoc48/fWtT0cag/tm7dqptvvlmdOnXS22+/rW3btumll17S119/rXvvvVdWq/WMj3dWQ7CkpETHjx8/7/2g/rNYLOrbt6/mzZunSy65REajUSaTSUOHDlVCQoLjffDFF19oxIgR6tWrl2644QatXbvWsY/p06fLYrFo/PjxioiI0NVXX60VK1ZIklJSUvTuu+/q3Xff1Y033ihJ2rt3rx5++GFFRkaqb9++evTRR7V//37H/jZv3qxRo0apV69eGjBggJ599ll+dwG1QJsDNUGbA+5Au6MBsKNBmzBhgn3BggV2u91uX7JkiX3YsGGOdSNHjrTHxcXZS0pK7Pn5+fahQ4fau3TpYrfb7fYjR47Y+/fvb1+wYIG9vLzcnp+fbx8xYoRjX6tXr7b379/fbrfb7V9++WWNH4f66YYbbrAnJCRUWX7gwAH7hAkT7Lm5ufYuXbrYn376afuNN95o79Gjh3348OH2Xbt22e32yu+BPXv22Lt06WL/17/+Ze/fv7+9Z8+e9rvvvtu+b98+u91ut5eUlNgffvhhe+/eve1XXnml/d5777Xv3r3b/ssvv9i7d+9u79Kli71Hjx72rVu32qdNm2Z/8MEH7dddd529T58+9ry8PPuWLVvso0ePtvft29ferVs3+80332zftm2bo46///3v9meffdbeu3dve+/eve1JSUn2Y8eO1cl5RM3s27fP3qVLF/sXX3xxxu2+++47u9lstn/44Yf2EydO2Lds2WLv06eP/bPPPrPb7Xb7tGnT7OHh4fb//ve/9uPHj9v/+c9/2v/617/aCwoKHOunTZtmt9vt9oqKCvu1115rf+SRR+yHDx+2//777/ZHHnnEfvPNN9uPHz9u/+mnn+zdunWzL1++3H7s2DH7zz//bB8yZIh9zpw5rj0ZQCNCmwM1QZsDdY12R8PAiIcGbO/evfr88881atQoSdKtt96q3bt3a9OmTdq7d682b96syZMny9fXV0FBQXrggQccj92wYYMqKir0yCOPyNvbW0FBQZo4caIyMjLOeMxzfRzc55dfftGPP/5Y7XDDdu3aKTU1VRdffLEkadOmTXr55ZeVlZWlNm3a6Iknnjjtfjds2KC3335bH374oX777TelpqZKkpYtW6bS0lJlZmbqP//5j9q3b68FCxbowgsv1EsvvSRJ2rZtm2MY5eeff67nnntOH330kTp06KAJEyZo0KBB+uyzz7Rx40ZddNFFevLJJx3HLSwsVG5urj755BO9/vrr2rBhg+PYqB8KCgokSYGBgY5lWVlZ6tWrl3r16qWIiAgNGjRIr732mq6++mpde+21MhqN6tmzp2699dZKv0/69Omjvn37ytPTU8OHD5fVatUvv/xS5ZibN2/Wnj17NHv2bPn5+alVq1aaPXu2vv/+e+3cuVPvvvuuwsLCdNddd8nLy0vBwcF69NFH9cYbb8hms7n+pAANHG0O1ARtDrgD7Y6GwdPdBeDcrVq1SidOnNDQoUMdy06cOKFly5Zp7NixkqSOHTs61l100UWOf+/du1cHDx7U5Zdf7lhmt9t1/PhxFRUVnfaYZ3ucv7+/U54bnOfgwYOSTn7gn80999zj2G7gwIFaunTpabcdM2aMWrVqJUkaMGCAY1ikj4+Pvv/+e7399tvq27evkpOTZTCcPuPs0aOHunTpIkmyWq16/fXXFRwcrGPHjmnv3r0ymUzasWOHY3sPDw8lJCTI19dXvr6+uv/++7VkyRI9/PDDZ31+qBvt27eXdLLBFhISIkmKjIzU5s2bJZ28kNzixYu1d+9effnll+rVq5fjsVartdLvqlP7kqRmzZpJUrUf2EVFRWrTpo18fX0dy3x9fWUymbR3714VFRXpwgsvrPSYCy64QOXl5SoqKqp0HABV0eZATdDmgDvQ7mgYCB4aqGPHjunNN9/U3LlzdeWVVzqW//DDDxo7dqzuu+8+SdKePXt0ySWXSPq/NFA6mQhedNFFWr9+vWNZaWmpioqK1LZt29Me91wfB/c59YvtwIEDjm8Z/ui3335zfPCbTCbH8mbNmp1xHuYfGxWenp6y2+2STjYOvLy89OabbyoxMVEXXnihHn30UV177bXV7qdDhw6OfxuNRm3cuFFjxoxRWVmZOnfuXGnfktS6dWu1adPG8XNQUFCl+XRwv06dOql79+564403dMUVV5x2u8DAQN18881KTEx0LNu/f3+l17s2xzx06JBKS0sdjYCSkhIdOnRI7du3V6dOnfTRRx9Veswvv/wiLy8vtW7dutbHA5oS2hyoKdoccAfaHQ0DUy0aqHfffVceHh4aMmSIAgMDHX/69eunLl26aO3atYqKitK8efP0+++/68CBA1q8eLHj8f3799eRI0e0dOlSVVRU6PDhw5o2bZomTZokDw+P0x73XB8H9+nUqZO6dOmidevWVVlXVFSk/v3767333nPa8Xbt2qUBAwbozTff1MaNGzVs2DBNmjRJJSUl1W7/x/fN119/rTlz5uiZZ57R//73P7366qvq27dvpe1LSkp09OhRx8+//vprpW/ZUD8kJyfr888/1+OPP67c3FzZ7XaVlpbq7bff1qJFi9ShQweNGDFC7733nv773//KZrPp559/VkxMjJYtW1ajY3h5eTneV927d1fnzp2VkJCgkpISlZSUaNasWbrooovUs2dP3XDDDfrpp5/06quvqqKiQr/88osWLlyoIUOGyMvLy5WnAmjwaHOgpmhzwF1od9R/BA8N1KpVqzRkyBDHEKA/uu222/TOO+/oySeflJ+fn/r376/hw4dX+pbC19dXy5cv18aNG9WvXz8NHDhQBoPhrPemPdfHwb0ef/xxrV69WosXL9ahQ4dkt9v13Xffafz48QoPD9egQYOcdqw33nhDU6dOVVFRkWNoYosWLeTl5SVvb29JOm2DoKSkRAaDQT4+PpKk7du3a8WKFZWuAGy1WvXEE0/o2LFjysnJ0csvv6wRI0Y4rX44R5cuXfTee+/Jx8dH48eP19/+9jdFR0frX//6l+6//36tWLFCl112mRYuXKiFCxfq8ssvV0xMjAYMGKBHH320Rse4/vrrtXXrVl111VXy9PTUkiVLdOLECQ0aNEj9+/fX8ePH9corr8jT01MXXHCBli5dqg8//FBXXnmlRo4cqb59+8pisbj4TAANH20O1AZtDrgD7Y76z8N+LmNLADQ42dnZeuGFF7R9+3YdPXpU7dq103XXXadx48bJ19dXYWFhWrFihfr06SPp/+bDffrpp9q4caPuvPNO7dq1S7/++quuvvpqffLJJ7rgggskSYsWLdKmTZu0cuVKHTlyRImJicrMzNSxY8cUGhqq6dOn6/LLL1dZWZnuv/9+ffvtt3ruuef0wQcfSJLmz58v6eTc3SeeeEJr1qyRzWbTBRdcoMGDB+vpp5/WZ599pp9++kl33nmnxo8fr9WrV0uSbr/9dsXGxp5xTicAAKg7tDkA/BnBA4AG44+NEQAAAFehzQE4F3EdAAAAAABwGYIHAAAAAADgMky1AAAAAAAALsOIBwAAAAAA4DIEDwAAAAAAwGUIHgAAAAAAgMsQPAAAAAAAAJcheABQY2FhYdq4ceM5Pfb+++/XCy+8IEmyWCyyWCzOLA0AADQytDuAxoO7WgCosbCwMK1YsUJ9+vRxdykAAKCRo90BNB6MeADgFBUVFXriiSf0j3/8QxEREYqMjNScOXN0KtscPXq0Fi1aJEmaPn26pk+f7s5yAQBAA0a7A2hYPN1dAIDG4dVXX9Xnn3+uV199VR06dNC2bdsUExOjgQMHKjIy0t3lAQCARoR2B9CwEDwAcIpbb71VN998s/z9/bV//36Vl5erZcuWKiwsdHdpAACgkaHdATQsBA8AnOLo0aNKTEzUV199pcDAQHXt2lV2u102m83dpQEAgEaGdgfQsBA8AHCKmTNnqnXr1vrvf/8rb29v2Ww2XX755e4uCwAANEK0O4CGheABQK0cPHhQBQUFlZa1a9dOpaWl6tChgwwGg0pLS7V48WKVlpbq+PHjbqoUAAA0dLQ7gMaB4AFArTz88MNVlq1bt04zZ86UxWJR79691bJlS1111VX6+9//rh9++KHuiwQAAI0C7Q6gcSB4AFBju3btOuP6t95667TrbDabDIaTd/CdP3++U+sCAACND+0OoPEgeADgUjabTYcOHdK+ffvUrl07d5cDAAAaMdodQP1kcHcBABq33bt3a8CAAWrfvr2uueYad5cDAAAaMdodQP3kYbfb7e4uAgAAAAAANE6MeAAAAAAAAC5D8AAAAAAAAFyG4AEAAAAAALgMwQMAAAAAAHAZggcAAAAAAOAyBA8AAAAAAMBlCB4AAAAAAIDLEDwAAAAAAACXIXgAAAAAAAAu8/8Ag1YymlkvtO8AAAAASUVORK5CYII=",
"text/plain": [
"