{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Musterlösung zu Projektaufgabe Deskriptive Statistik und offene Fragen\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Grundlage: Datensatz der San Francisco Public Library, s.a. https://zbmed.github.io/2020-2021-ZK_Data_Librarian_Modul_3/organisation/dataset/"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 1: Wie viele Senioren und Kinder sind Kunden der San Francisco Public Library?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 2: Wie viele Nutzer möchten per Mail informiert werden?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 3: Wie alt sind diese Nutzer durchschnittlich im Vergleich zu Nutzern, die per Post informiert werden möchten?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 4: Wie viele Ausleihen werden im Mittel pro Altersgruppe und pro Jahr getätigt? Ist die Streuung zwischen den Gruppen gleich?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 5: Welche Altersgruppe verlängert im Mittel wie oft?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 6: Wie ist die Verteilung der Altersgruppen im Mission District"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 7: Erklärung von Normalisierung von Kreuztabellen (Kapitel 3 im Skript)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import numpy as np\n",
"%matplotlib inline\n",
"sns.set()\n",
"# das was wir brauchen in abgekürzter Form"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(\n",
" \"../data/Library_Usage.csv\",\n",
" na_values=\"none\"\n",
")\n",
"# Einlesen des Datensatzes in das neu definierte DataFrame df mit Überschreibung \n",
"#fehlender Werte"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Patron Type Code
\n",
"
Patron Type Definition
\n",
"
Total Checkouts
\n",
"
Total Renewals
\n",
"
Age Range
\n",
"
Home Library Code
\n",
"
Home Library Definition
\n",
"
Circulation Active Month
\n",
"
Circulation Active Year
\n",
"
Notice Preference Code
\n",
"
Notice Preference Definition
\n",
"
Provided Email Address
\n",
"
Year Patron Registered
\n",
"
Within San Francisco County
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
1
\n",
"
Juvenile
\n",
"
0
\n",
"
0
\n",
"
0 to 9 years
\n",
"
r3
\n",
"
Richmond
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2022
\n",
"
True
\n",
"
\n",
"
\n",
"
1
\n",
"
2
\n",
"
Teen
\n",
"
0
\n",
"
0
\n",
"
10 to 19 years
\n",
"
x
\n",
"
Main
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2022
\n",
"
True
\n",
"
\n",
"
\n",
"
2
\n",
"
0
\n",
"
Adult
\n",
"
0
\n",
"
0
\n",
"
35 to 44 years
\n",
"
m4
\n",
"
Merced
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2019
\n",
"
True
\n",
"
\n",
"
\n",
"
3
\n",
"
2
\n",
"
Teen
\n",
"
0
\n",
"
0
\n",
"
10 to 19 years
\n",
"
x
\n",
"
Main
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2021
\n",
"
True
\n",
"
\n",
"
\n",
"
4
\n",
"
2
\n",
"
Teen
\n",
"
0
\n",
"
0
\n",
"
10 to 19 years
\n",
"
b2
\n",
"
Bayview
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2013
\n",
"
True
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Patron Type Code Patron Type Definition Total Checkouts Total Renewals \\\n",
"0 1 Juvenile 0 0 \n",
"1 2 Teen 0 0 \n",
"2 0 Adult 0 0 \n",
"3 2 Teen 0 0 \n",
"4 2 Teen 0 0 \n",
"\n",
" Age Range Home Library Code Home Library Definition \\\n",
"0 0 to 9 years r3 Richmond \n",
"1 10 to 19 years x Main \n",
"2 35 to 44 years m4 Merced \n",
"3 10 to 19 years x Main \n",
"4 10 to 19 years b2 Bayview \n",
"\n",
" Circulation Active Month Circulation Active Year Notice Preference Code \\\n",
"0 NaN NaN z \n",
"1 NaN NaN z \n",
"2 NaN NaN z \n",
"3 NaN NaN z \n",
"4 NaN NaN z \n",
"\n",
" Notice Preference Definition Provided Email Address \\\n",
"0 Email True \n",
"1 Email True \n",
"2 Email True \n",
"3 Email True \n",
"4 Email True \n",
"\n",
" Year Patron Registered Within San Francisco County \n",
"0 2022 True \n",
"1 2022 True \n",
"2 2019 True \n",
"3 2021 True \n",
"4 2013 True "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#df\n",
"df.head()\n",
"#Überblick über das DataFrame"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 1: Wie viele Senioren und Kinder sind Kunden der San Francisco Public Library?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Um diese Frage zu beantworten, kommen die Spalten \"Patron Type Definition\" oder \"Age Range\" in Frage, also schauen wir uns die Einträge (Merkmalsausprägungen) an: "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Adult 271588\n",
"Juvenile 58767\n",
"Senior 47366\n",
"Teen 40340\n",
"Welcome 10587\n",
"Digital Access Card 3707\n",
"Teacher Card 3161\n",
"Staff 808\n",
"Retired Staff 209\n",
"At User Adult 128\n",
"Library By Mail 117\n",
"Visitor 111\n",
"Bibliocommons 109\n",
"At User Senior 76\n",
"At User Welcome 14\n",
"At User Teen 10\n",
"At User Juvenile 9\n",
"Business 8\n",
"Name: Patron Type Definition, dtype: int64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Patron Type Definition'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Man sieht, dass es sich um nominale Werte handelt."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"25 to 34 years 92790\n",
"35 to 44 years 80477\n",
"10 to 19 years 67320\n",
"45 to 54 years 48752\n",
"0 to 9 years 34642\n",
"65 to 74 years 31906\n",
"20 to 24 years 24484\n",
"55 to 59 years 19281\n",
"75 years and over 18872\n",
"60 to 64 years 17664\n",
"Name: Age Range, dtype: int64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Age Range'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Man sieht, dass es sich um ordinale Werte handelt."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In der Beschreibung des Datensatzes steht, dass sich die Spalte 'Age Range' nach dem Geburtsdatum richtet. D.h. es ist davon auszugehen, dass die Nutzer der Bibliothek zum Zeitpunkt der Bereitstellung des Datensatzes (2023) in die Kategorien von 'Age Range' einsortiert werden. In der Spalte 'Patron Type Definition' sind verschiedene Merkmalsausprägungen zu finden, die nicht unbedingt etwas mit dem Alter zu tun haben (z.B. VISITOR oder SPECIAL). Daher ist davon auszugehen, dass wir mit 'Age Range' am nähesten Fragestellungen zu Alter beantworten zu können. Richtige Angaben zu tatsächlichem Alter der Nutzer liegen bei diesem Datensatz nicht vor."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"An dieser Stelle ist also zu definieren, was Senioren und Kinder sind. Eine Möglichkeit ist, Senioren als Age Range = 65 to 74 years und Age Range = 75 years and over zu definieren, man könnte aber auch Age Range = 60 to 64 years dazunehmen. Für das weitere Vorgehen, definieren wir Senioren als über 65-jährige und Kinder als bis 19-jährige. Um die Frage 1 zu beantworten, reicht es also, die entsprechenden Einträge zu summieren."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"kinder=df.loc[df['Age Range'] == \"0 to 9 years\"] \n",
"kinder=df.loc[\n",
" (df['Age Range'] == \"0 to 9 years\") | \n",
" (df['Age Range'] == \"10 to 19 years\")\n",
"] \n",
"#Hilfsvariable"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"101962"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(kinder) "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"senioren=df.loc[\n",
" (df['Age Range'] == \"65 to 74 years\") | \n",
" (df['Age Range'] == \"75 years and over\")\n",
"] \n",
"#Hilfsvariable\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"50778"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(senioren)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Antwort auf Frage 1:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Es sind 101962 Kinder (bis 19 Jahre) und 50778 Senioren (ab 65 Jahren) registriert.\n"
]
}
],
"source": [
"print('Es sind ' + str(len(kinder)) + ' Kinder (bis 19 Jahre) und ' + str(len(senioren)) + ' Senioren (ab 65 Jahren) registriert.' )\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"-----"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 2: Wie viele Nutzer möchten per Mail informiert werden?"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"391614"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(df.loc[(df['Notice Preference Definition'] == \"Email\")])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Antwort auf Frage 2:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"391614 Nutzer möchten per Mail informiert werden.\n"
]
}
],
"source": [
"print(str(len(df.loc[(df['Notice Preference Definition'] == \"Email\")])) + ' Nutzer möchten per Mail informiert werden.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 3: Wie alt sind diese Nutzer durchschnittlich im Vergleich zu Nutzern, die per Post informiert werden möchten?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Die relevante Spalte über die gewünschte Benachrichtigungsart schauen wir uns genauer an:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Email 391614\n",
"Phone 35559\n",
"Print 7242\n",
"None 2700\n",
"Name: Notice Preference Definition, dtype: int64"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Notice Preference Definition'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Es handelt sich um ein nominales Merkmal."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Auch hier stoßen wir auf eine Interpretationsfrage. Da der Datensatz kein Alter ausgibt, sondern nur Altersstufen (Age Range) bzw. Kategorien, die nicht immer etwas mit dem Alter zu tun haben sondern eher mit dem Nutzerstatus (Patron Type Definition), müssen wir überlegen, was ein Durchschnitt bedeuten kann. Age Range ist ein ordinales Merkmal, d.h. wir können keinen Erwartungswert berechnen, aber uns dennoch Häufigkeitstabellen anschauen."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Um diese beiden Merkmale (nominal und ordinal) zu verbinden, können wir uns einen Plot angucken, dafür definieren wir eine neue Variable indem wir nach den Merkmalen filtern, die uns interessieren:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"benachrichtigung=df.loc[\n",
" (df['Notice Preference Definition'] == \"Email\") | \n",
" (df['Notice Preference Definition'] == \"Print\")\n",
"] #Hilfsvariable für den Plot, damit nur die Merkmale 'email' und 'print' angezeigt werden"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABqQAAAHkCAYAAABYL07aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABrDUlEQVR4nO3dd5gV5d0//vcuiNgQJCp2jboUqQqCBUUU81hiRJKosbfYe8MSNTGWROwtilgSjSWiRNE81keNDSW2RCEGBVSMokiJ0oSd3x/+OF83C4ILh4X19bquva49U+65Z+bDObPnzdxTURRFEQAAAAAAACiTyvruAAAAAAAAAA2bQAoAAAAAAICyEkgBAAAAAABQVgIpAAAAAAAAykogBQAAAAAAQFkJpAAAAAAAACgrgRQAAAAAAABlJZACAAAAAACgrARSAAAAAAAAlFXj+u5AQzV7dnU+++yL+u4GAAAAAECDsuqqK9V3F4A6cIcUAAAAAAAAZSWQAgAAAAAAoKwEUgAAAAAAAJSVQAoAAAAAAICyEkgBAAAAAABQVgIpAAAAAAAAykogBQAAAAAAQFkJpAAAAAAAACgrgRQAAAAAAABlJZACAAAAAACgrARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWQmkAAAAAAAAKCuBFAAAAAAAAGUlkAIAAAAAAKCsGtd3BwCAxa+ysiKVlRX13Y2yqK4uUl1d1Hc3AAAAAPgagRQAfMdUVlakefPl06hRw7xRevbs6kyaNFUoBQAAALAEEUgBwHdMZWVFGjWqzLV3Ppdx4yfXd3cWqbVWWzlH771VKisrBFIAAAAASxCBFAB8R40bPzljxk2s724AAAAA8B3QMMfqAQAAAAAAYIkhkAIAAAAAAKCsBFIAAAAAAACUlUAKAAAAAACAshJIAQAAAAAAUFYCKQAAAAAAAMpKIAUAAAAAAEBZCaQAAAAAAAAoK4EUAAAAAAAAZSWQAgAAAAAAoKwEUgAAAAAAAJSVQAoAAAAAAICyEkgBAAAAAABQVgIpAAAAAAAAykogBQAAAAAAQFkJpAAAAAAAACgrgRQAAAAAAABlJZACAAAAAACgrARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWQmkAAAAAAAAKCuBFAAAAAAAAGUlkAIAAAAAAKCsBFIAAAAAAACUlUAKAAAAAACAsqr3QOrLL7/M5Zdfnl69eqVLly752c9+lldeeaU0f8SIEdl3333TuXPn9OrVK4MGDaqxfnV1da666qr07NkznTp1ysEHH5yxY8fWWGZRtAEAAAAAAEDd1Hsgdf3112fw4MH59a9/nSFDhuT73/9+DjvssHz88ceZOHFiDjrooKy//voZPHhwjj322Fx55ZUZPHhwaf3rrrsud911V37961/n7rvvTkVFRQ477LDMnDkzSRZJGwAAAAAAANRdvQdSTzzxRHbddddsvfXWWW+99dK/f/98/vnnee2113LPPfekSZMmOe+887LhhhumX79+OfDAAzNw4MAkycyZM3PzzTfn2GOPzbbbbps2bdrk8ssvz8cff5zHHnssSRZJGwAAAAAAANRdvQdSzZs3z//93//lgw8+yOzZs3P33XenSZMmadu2bYYPH55u3bqlcePGpeV79OiR0aNHZ8KECRk5cmS++OKL9OjRozS/WbNmadeuXV5++eUkWSRtAAAAAAAAUHeN579IeZ111lk58cQTs/3226dRo0aprKzMlVdemXXXXTcfffRRqqqqaiy/2mqrJUk+/PDDfPTRR0mSNdZYo9Yy//73v5NkkbRRV40b13veBwC1NGrU8D+fvgv7CAAAALA0qfdA6p133kmzZs1y7bXXZvXVV8+f/vSnnH766bn99tszffr0NGnSpMbyyy67bJJkxowZmTZtWpLMdZnJkycnySJpoy4qKyvSosUKdV4fAKi7Zs2Wq+8uAAAAAPA19RpIjRs3LqeeempuvfXWdO3aNUnSoUOHjBo1KldffXWaNm2amTNn1lhnxowZSZLll18+TZs2TfLVc6Dm/D5nmeWW++qLqEXRRl1UVxeZMmVqndcHgHJp1KiywQc2U6ZMy+zZ1fXdDQAAAMrAjQCwdKrXQOqNN97Il19+mQ4dOtSY3qlTpzzzzDNZc801M378+Brz5rxeffXVM2vWrNK0ddddt8Yybdq0SZK0atVqoduoq1mzfBEGAPVh9uxqn8MAAAAAS5B6fcDCnOc2/fOf/6wx/e233856662Xbt265W9/+1tmz55dmvfCCy9kgw02SMuWLdOmTZusuOKKGTZsWGn+lClT8tZbb5XuuFoUbQAAAAAAAFB39RpIdezYMV27ds3pp5+eF198MWPGjMkVV1yRF154IT//+c/Tr1+/fP755znrrLMyatSo3Hfffbntttty+OGHJ/nquU/77rtvBgwYkCeeeCIjR47MiSeemFatWqVPnz5JskjaAAAAAAAAoO7qdci+ysrKXHfddbniiityxhlnZPLkyamqqsqtt96azp07J0luuummXHDBBenbt29WXXXVnHbaaenbt2+pjeOOOy6zZs3K2WefnenTp6dbt24ZNGhQmjRpkiRp2bLlQrcBAAAAAABA3VUURVHUdycaotmzq/PZZ1/UdzcAoJbGjSvTosUKOfPKhzNm3MT67s4itf5aLXLh8Ttn4sQvPEMKAACggVp11ZXquwtAHdTrkH0AAAAAAAA0fAIpAAAAAAAAykogBQAAAAAAQFkJpAAAAAAAACgrgRQAAAAAAABlJZACAAAAAACgrARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWjeu7AwAALJkqKytSWVlR390oi+rqItXVRX13AwAAAL4zBFIAANRSWVmR5s2XT6NGDfOG+tmzqzNp0lShFAAAACwmAikAAGqprKxIo0aVufbO5zJu/OT67s4itdZqK+fovbdKZWWFQAoAAAAWE4EUAADzNG785IwZN7G+uwEAAAAs5RrmGCwAAAAAAAAsMQRSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWQmkAAAAAAAAKCuBFAAAAAAAAGUlkAIAAAAAAKCsBFIAAAAAAACUlUAKAAAAAACAshJIAQAAAAAAUFYCKQAAAAAAAMpKIAUAAAAAAEBZCaQAAAAAAAAoK4EUAAAAAAAAZSWQAgAAAAAAoKwEUgAAAAAAAJSVQAoAAAAAAICyEkgBAAAAAABQVgIpAAAAAAAAykogBQAAAAAAQFkJpAAAAAAAACgrgRQAAAAAAABlJZACAAAAAACgrARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWQmkAAAAAAAAKCuBFAAAAAAAAGUlkAIAAAAAAKCsBFIAAAAAAACUlUAKAAAAAACAshJIAQAAAAAAUFYCKQAAAAAAAMpKIAUAAAAAAEBZCaQAAAAAAAAoK4EUAAAAAAAAZSWQAgAAAAAAoKwEUgAAAAAAAJSVQAoAAAAAAICyEkgBAAAAAABQVgIpAAAAAAAAykogBQAAAAAAQFkJpAAAAAAAACgrgRQAAAAAAABlJZACAAAAAACgrARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWQmkAAAAAAAAKCuBFAAAAAAAAGUlkAIAAAAAAKCsBFIAAAAAAACUlUAKAAAAAACAshJIAQAAAAAAUFYCKQAAAAAAAMpKIAUAAAAAAEBZCaQAAAAAAAAoK4EUAAAAAAAAZSWQAgAAAAAAoKyWiEBqyJAh2XnnndOhQ4fssssu+ctf/lKaN2LEiOy7777p3LlzevXqlUGDBtVYt7q6OldddVV69uyZTp065eCDD87YsWNrLLMo2gAAAAAAAKBu6j2Q+vOf/5wzzzwze+65Z4YOHZqdd945J510Ul599dVMnDgxBx10UNZff/0MHjw4xx57bK688soMHjy4tP51112Xu+66K7/+9a9z9913p6KiIocddlhmzpyZJIukDQAAAAAAAOqucX1uvCiKXHnllTnggANywAEHJEmOPvrovPLKK3nppZfy0ksvpUmTJjnvvPPSuHHjbLjhhhk7dmwGDhyYfv36ZebMmbn55ptz6qmnZtttt02SXH755enZs2cee+yx7LLLLrnnnnsWug0AAAAAAADqrl7vkHr33Xczbty4/PCHP6wxfdCgQTn88MMzfPjwdOvWLY0b/7/crEePHhk9enQmTJiQkSNH5osvvkiPHj1K85s1a5Z27drl5ZdfTpJF0gYAAAAAAAB1V693SI0ZMyZJMnXq1BxyyCF56623svbaa+fII49M796989FHH6WqqqrGOquttlqS5MMPP8xHH32UJFljjTVqLfPvf/87SRZJG3XVuHG9j4gIALU0atTwP5++C/tYbt+FY/hd2EcAAABYUtRrIPX5558nSU4//fQcc8wxOeWUU/LII4/kqKOOyi233JLp06enSZMmNdZZdtllkyQzZszItGnTkmSuy0yePDlJFkkbdVFZWZEWLVao8/oAQN01a7ZcfXeBpYA6AQAAgMWnXgOpZZZZJklyyCGHpG/fvkmStm3b5q233sott9ySpk2bZubMmTXWmTFjRpJk+eWXT9OmTZMkM2fOLP0+Z5nllvvqC4ZF0UZdVFcXmTJlap3XB4ByadSossF/ET9lyrTMnl1d391YqqkTAABgSeVGAFg61Wsg1apVqySpNaTeRhttlKeeeiprrbVWxo8fX2PenNerr756Zs2aVZq27rrr1limTZs2pW0sbBt1NWuWLzgAoD7Mnl3tc5j5UicAAACw+NTrwPnt2rXLCiuskNdff73G9LfffjvrrrtuunXrlr/97W+ZPXt2ad4LL7yQDTbYIC1btkybNm2y4oorZtiwYaX5U6ZMyVtvvZWuXbsmySJpAwAAAAAAgLqr10CqadOmOfTQQ3Pttddm6NChee+993L99dfnueeey0EHHZR+/frl888/z1lnnZVRo0blvvvuy2233ZbDDz88yVfPfdp3330zYMCAPPHEExk5cmROPPHEtGrVKn369EmSRdIGAAAAAAAAdVevQ/YlyVFHHZXlllsul19+eT7++ONsuOGGufrqq9O9e/ckyU033ZQLLrggffv2zaqrrprTTjut9LypJDnuuOMya9asnH322Zk+fXq6deuWQYMGpUmTJkmSli1bLnQbAAAAAAAA1F1FURRFfXeiIZo9uzqfffZFfXcDAGpp3LgyLVqskDOvfDhjxk2s7+4sUuuv1SIXHr9zJk78wrOBFpI6AQAAllSrrrpSfXcBqIN6HbIPAAAAAACAhk8gBQAAAAAAQFkJpAAAAAAAACgrgRQAAAAAAABlJZACAAAAAACgrARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWQmkAAAAAAAAKCuBFAAAAAAAAGUlkAIAAAAAAKCsBFIAAAAAAACUVeP67gDw7VRWVqSysqK+u1EW1dVFqquL+u4GAAAAAACLmEAKliKVlRVp3nz5NGrUMG9unD27OpMmTRVKAQAAAAA0MAIpWIpUVlakUaPKXHvncxk3fnJ9d2eRWmu1lXP03lulsrJCIAUAAAAA0MAIpGApNG785IwZN7G+uwEAAAAAAAukYY77BQAAAAAAwBJDIAUAAAAAAEBZCaQAAAAAAAAoK4EUAAAAAAAAZSWQAgAAAAAAoKwEUgAAAAAAAJSVQAoAAAAAAICyEkgBAAAAAABQVgIpAAAAAAAAykogBQAAAAAAQFkJpAAAAAAAACgrgRQAAAAAAABlJZACAAAAAACgrARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWdUpkBoyZEgmTpw413mffPJJBg4cuFCdAgAAAAAAoOGoUyB1xhln5P3335/rvBEjRuSqq65aqE4BAAAAAADQcDRe0AUPP/zwjBo1KklSFEWOPvroNGnSpNZyEyZMyLrrrrvoeggAAAAAAMBS7VsFUn/605+SJPfff3/atWuXVVZZpcYylZWVadasWfbYY49F20sAAAAAAACWWgscSG266abZdNNNS6+POuqorLPOOmXpFAAAAAAAAA3HAgdSX3fRRRct6n4AAAAAAADQQNUpkPrss89ywQUX5Kmnnsq0adNSFEWN+RUVFXnrrbcWSQcBAAAAAABYutUpkDrvvPPy9NNPZ5dddkmrVq1SWVm5qPsFAAAAAABAA1GnQOqvf/1rzjzzzOy5556Luj8AAAAAAAA0MHW6talJkyZZZ511FnVfAAAAAAAAaIDqFEj16dMnQ4cOXdR9AQAAAAAAoAGq05B97dq1yxVXXJH3338/nTp1StOmTWvMr6ioyNFHH71IOggAAAAAAMDSrU6B1K9+9askycsvv5yXX3651nyBFAAAAAAAAHPUKZAaOXLkou4HAAAAAAA0CEVRpKKior67wXfUklp/dXqGFAAAAAAALO3222+/tGvXLn//+9/nOr93797p37//t2pz1KhR2XvvvWtMa926da6++uo693NBtW7dutZPx44ds8suu2TgwIGprq5eJNsZNmxYfvCDH6R9+/Y55JBDFkmbS7LevXvXOKZt27ZN165ds/fee+fPf/5zndr8/PPPc+SRR6ZTp07p1q1bxowZk9atW+e+++5b4DY++OCDGutMmTIlp59+eoYPH15aZr/99st+++1Xpz4uanW6Q+qMM86Y7zIXXXRRXZoGAAAAAIDFZvbs2TnjjDNy3333pUmTJgvd3l/+8pe8+uqrNabdfffdadWq1UK3vSB+/OMf5yc/+Unp9bRp0/Loo49mwIABmTJlSk4++eSF3sZvfvObVFdX58Ybb0zLli0Xur2lwbbbbpujjjoqSTJr1qxMnDgxDz/8cE477bSMHDkyp59++rdqb8iQIXnyySdzzjnnZOONN86aa66Zu+++O+uuu+4Ct7HaaqvVWGfEiBEZMmRI9thjj9Iy55577rfqVznVKZAaNmxYrWlTp07NpEmT0rx583To0GGhOwYAAAAAAOW20kor5V//+leuvfbanHjiiWXZRufOncvS7ty0atWq1va22GKLvPvuu7njjjty3HHHZZllllmobUyaNCndunXLlltuuVDtLE1WWWWVWse1T58+admyZW6++ebssMMO2WyzzRa4vUmTJiVJfvazn5WG1/u2ddKkSZP5rrPRRht9qzbLqU5D9j355JO1fl588cU8/PDDadmyZXbfffdF3E0AAAAAAFj02rZtm9133z033XRT/vGPf3zjsrNnz84dd9yRH/7wh+nYsWN69eqVAQMGZMaMGUmSq6++Otdcc02SmsP0/feQfRMmTMiZZ56ZLbfcMl26dMk+++yTv/3tb6X5c+4+6tOnT9q3b58f/OAH+cMf/rBQ+9m+fft88cUXmTx5cqlP11xzTfr165fNNtss1113XZLkww8/zEknnZTNN988nTp1ygEHHJC33noryf8bIm7cuHEZMmRIWrduXbqB5e23387hhx+eTTfdNJtuummOPvrovP/++6XtDxs2LK1bt85dd92V7bbbLltuuWWeffbZJMnw4cOz7777plOnTtl8881z+umn57PPPiute99996Vdu3Z5/fXXs+eee6ZDhw7p1atXBg4cWGMfv/jii1x00UXZZptt0rlz5+yxxx558sknayzzpz/9Kbvsskvat2+fXr165eqrr86sWbPqfFyPO+64NGnSJHfddVdp2vzO33777VeqhzZt2qR///61ht9bkH3++jrDhg3L/vvvnyTZf//9S8P0/feQfTNmzMi1116b//mf/0mHDh2y44475sYbb6wxnON+++2Xs846KzfeeGN69eqVDh06ZK+99srrr79e5+OULOJnSH3/+9/P0UcfXfoHBwAAAAAAS7qzzjorq6yySs4444zMnDlznsudc845ufDCC9O7d+9cf/312WeffXL77bfnqKOOSlEU+clPfpIf//jHSb4apu/rQ+fNMXXq1Oy11155/vnnc/LJJ+eaa67JCiuskEMPPTTvvPNOkuS8887LVVddld122y2/+93v8j//8z+58MILc+2119Z5H0ePHp3ll1++xhB7119/fX7wgx/ksssuy/bbb5/PPvsse+21V95888384he/yKWXXprq6urss88+eeedd0pDxK266qrZdtttc/fdd2eTTTbJ6NGjs9dee2XChAm5+OKLc8EFF+T999/P3nvvnQkTJtTox+WXX57TTz89p59+ejp37pyXX345Bx54YJo2bZorrrgiZ555Zl566aXsv//+mT59emm96urqnHDCCdl5551z4403ZrPNNsuAAQPy17/+tTT/0EMPzf3335+f//znuf7661NVVZVjjjmmFJrdcMMN+cUvfpEtttgiv/vd77LPPvtk4MCBOeecc+p8XJs1a5aOHTvWCBTnd/7OPffcGnUyZyjA/za/ff66TTbZpLQf55xzzlyH6iuKIkcccURuuumm/PjHPy717Yorrqi1/COPPJInnngiZ599di677LJ8+umnOe644zJ79uy6HajUcci+b7Liiitm3Lhxi7pZAAAAAAAoi2bNmuWXv/xljjzyyHkO3Tdq1Kjce++9OeGEE3LkkUcmSbbaaqusttpqOe200/LMM89k2223LT0ral5Dqd1///15//33M2TIkLRp0yZJ0rVr1+y+++55+eWXU1lZmXvuuScnnXRSfv7znydJtt5661RUVOSGG27Iz372s7Ro0WKe+1JdXV2646coinz66ad58MEH8+STT+aQQw4pDQ+XJB07dixtI/kqLJo0aVLuvPPOrLXWWkmSbbbZJjvvvHOuvPLKXHXVVencuXOaNGlSYwi7c889N02bNs2tt96aFVdcMclXwwTusMMOuemmm2o8X2mvvfbK//zP/5ReX3rppdlggw1yww03pFGjRkmSTp06ZZdddsngwYOzzz77lPblqKOOKoV8m222WR577LE89dRT6dmzZ5555pm88sorue6667L99tsnSXr06JGxY8fmxRdfTLt27XL99ddnzz33zNlnn106rs2bN8/ZZ5+dgw46KBtvvPE8j+s3+d73vle6u2706NHzPX8bbbRRrTr54IMParU7v33+uhVXXLE0PN9GG20016H6nnnmmTz//PO55JJLsttuuyX5qoabNm2aK6+8MgcccEBpvVmzZmXQoEGl8/nFF1/k9NNPz4gRI9K+ffs6Hac63SH14Ycf1vp5//338/LLL+eKK67IhhtuWKfOAAAAAABAfejdu3d222233HTTTXnzzTdrzX/ppZeSJD/84Q9rTN9ll13SqFGj0l048zN8+PCsvfbapTAqSZZddtn85S9/yV577ZUXX3wxRVGkd+/emTVrVumnd+/emTFjRo07cebmuuuuyyabbJJNNtmkNCzdNddckz333DPHHXdcjWWrqqpqvH7hhRfStm3brL766qXtVlZWZptttsnzzz8/z22++OKL6d69e5o2bVpab8UVV0zXrl1rrde6devS79OmTcvrr7+ebbfdNkVRlNZdZ511suGGG+a5556rsW6XLl1Kv88JxaZOnVo6rssss0y222670jIVFRW58847c/zxx+fVV1/NtGnT5npck9TaVl0t7Pn7b9+0z9/WSy+9lEaNGmXnnXeuMX1OOPX1Gt5oo41KYVSSrL766km+Omd1Vac7pHr37l0jRZ2jKIost9xyNcbCBAAAAACApcHZZ5+dF154If3798/gwYNrzJvz7KVVV121xvTGjRunRYsW+c9//rNA25g0aVKNYfPmNj/5Kuiam48//vgb2//pT3+an/70p0m+CmRWWGGFrL322llmmWVqLfu9732v1rbHjh2bTTbZZK5tT5s2Lcstt9xc+/zwww/n4YcfrjVvlVVWqfH66/s+ZcqUVFdXZ+DAgbWeB5V8FdR9XdOmTWu8rqysTFEUpT40b948lZVzvw9nznH9+h1hXzd+/Pi5Tl8QH3/8cemOp4U9f//tm/b525o8eXJatGiRxo1rRkNzavrrNfzf53nOcf36s6a+rToFUhdeeGGtQKqioiIrrrhievToUSM1AwAAGqbKyopUVtb+j2oNQXV1kerquv2RBwDA0mvllVfOeeedl6OPPjrXX399rXlJ8sknn2TttdcuTf/yyy8zceLEbxxG7+tWWmmluQ7P9uqrr2bFFVdMs2bNkiS33XZbVlhhhVrLrbnmmt/Y/mqrrZYOHTosUF/m1rfNN988p5122lznN2nSZJ7rbbnlljnooINqzfvv8OPrVlhhhVRUVOTAAw+ca4Azt/BrXlZaaaVMmjQp1dXVNUKpESNGZNasWaXjOmDAgKy//vq11v/vcG5BTZ48OW+++WZ+9KMfJclCn79yWnnllTNx4sTMmjWrxnmZE8YtaA3XVZ0CqT322GNR9wMAAFiKVFZWpHnz5dOoUZ1GAV/izZ5dnUmTpgqlAAC+g3bYYYfsuuuuufHGG2vcVbT55psnSR588MHSM6SS5KGHHsrs2bOz2WabJck879CZo2vXrnn00Ufzz3/+szR83cyZM3Psscdmp512Kj0vaOLEienRo0dpvb/+9a+59dZbc+aZZ37jHVYLY/PNN8+DDz6YDTbYoMaNJxdccEFmzJiRX/3qV/Ncb9SoUWnbtm0p6CiKIqecckrWW2+9tG3bdq7rrbjiimnXrl3efffdGiHa9OnTc/zxx2ebbbaZ67OQ5qZr1665+eab8/TTT5eG7SuKImeddVZatWqVCy64IMsss0w+/vjjGsMujhw5MhdffHGOPvrorLHGGgu0ra/73e9+ly+//DJ77rlnkqRbt25J6uf8zXkG17xsvvnmuemmm/Lwww+XhulLkgceeCBJSjVcLnUKpJLks88+yy233JJhw4ZlypQpadGiRbp27ZoDDzywbAcTAABYMlRWVqRRo8pce+dzGTd+cn13Z5Faa7WVc/TeW6WyskIgBQDwHfWLX/wiL774Yj799NPStI022ih9+/bNNddck+nTp6d79+4ZMWJErrnmmnTv3j09e/ZM8v/ukBk6dGg6deqUddZZp0bbe+yxR/7whz/kyCOPzPHHH59VVlkld9xxR6ZPn5799tsv6667bnbbbbf84he/yLhx49K+ffuMHj06l19+edZee+253t2zqBx44IH585//nAMPPDAHH3xwWrRokYcffjj33HNPzjjjjHmud9RRR2WvvfbK4Ycfnr333jvLLrts7r777jz++OO56qqrvnGbJ510Un7+85/n5JNPzm677ZbZs2fn5ptvzuuvv14j+JufXr16pUuXLjnjjDNy/PHHZ7311suDDz6Yt99+O7/4xS/SokWLHHroobnyyivz+eefp3v37vn4449z5ZVXpqKiosYzvebms88+y2uvvZYkmT17diZMmJBHHnkkQ4cOzRFHHFEK1Kqqqurt/K200kpJkqeeeiorr7xyrX3aZptt0r1795x77rkZP3582rVrl5deeikDBw5M3759Fzj8q6s6BVIfffRR9txzz3z22Wfp3Llz2rVrl08++SS33HJLhgwZknvvvbf0gCsAAKDhGjd+csaMm1jf3QAAgEWqefPmOe+883LMMcfUmH7BBRdkvfXWy+DBgzNo0KCsttpq2W+//XL00UeX7ozacccd8+c//zn9+/fPj3/845x33nk12lhxxRVz++2357e//W0uuOCCzJo1K506dcof/vCHrLvuukmSiy66KDfccEPuuuuufPTRR2nZsmV23nnnnHDCCfO9C2ZhrL766rnrrrty6aWX5rzzzsuMGTOy/vrr54ILLsiPf/zjea7Xpk2b3HHHHbn88stz2mmnpSiKVFVV5dprr83222//jdvceuutM2jQoFxzzTU57rjjsswyy2STTTbJLbfcks6dOy9w3xs1apSBAwfm0ksvzdVXX52pU6emTZs2uemmm9KlS5ckyQknnJBVV101f/zjH3PTTTdl5ZVXzhZbbJGTTjqpFObMy9NPP52nn346yVfDEH7ve99LVVVVfve735XuyJqjvs7fxhtvnF133TV33HFH/vrXv2bo0KE15ldUVOSGG27IVVddld///vf57LPPsvbaa+fEE0+c63CLi1pFUYenX5188sl57bXXcuutt9ZId99///0cfPDB2WyzzXLxxRcv0o4ubWbPrs5nn31R392ggWncuDItWqyQM698uMF98bP+Wi1y4fE7Z+LELzJrVt0fjAfMn/cSFoQ6YX7UCAAA9WXVVb85OACWTHUa8P3ZZ5/NcccdV+tWw3XWWSdHH310nnnmmUXSOQAAAAAAAJZ+dQqkZs+enRYtWsx13iqrrJLPP/98oToFAAAAAABAw1GnQKp169b585//PNd5Q4YMSVVV1UJ1CgAAAAAAgIajcV1WOuqoo3LIIYdk0qRJ+eEPf5jvfe97+fTTT/Pggw/m+eefz1VXXbWo+wkAAAAAAMBSqk6B1FZbbZXf/va3+e1vf5vnnnuuNH3VVVfNRRddlD59+iyyDgIAAAAAALB0q1MglSTjxo1L69atc9ttt2Xy5MkZOXJkrrzyykyaNGkRdg8AAAAAAIClXZ0CqZtuuinXXHNN9t9//2y44YZJkjXXXDPvvfdeLr300iy33HLZc889F2lHAQAAAAAAWDrVKZC65557cuKJJ+bQQw8tTWvVqlX69++fVVZZJb///e8FUgAAAAAAACRJKuuy0scff5xNNtlkrvM6dOiQDz74YKE6BQAAAAAAQMNRp0BqnXXWyfPPPz/XecOGDUurVq0WqlMAAAAAAAA0HHUasm/vvffOhRdemFmzZmWHHXZIy5Yt89lnn+Xxxx/P73//+5xyyimLup8AAAAAAMAiUF1dpLKyYqnZ9n777ZeXXnppnvOfffbZrLrqqgvbtVr69++fcePG5Q9/+EOGDRuW/fffP0888UTWXnvtRb6t74I6BVL77LNPPvroo9xyyy259dZbS9MbNWqUAw44IAceeOAi6h4AAAAAALAoVVZW5No7n8u48ZMX63bXWm3lHL33VnVad6eddspZZ50113ktW7ZcmG7N01lnnZXZs2eXpe3vojoFUkly8skn5+c//3lee+21TJo0Kc2aNUvHjh3TokWLRdk/AAAAAABgERs3fnLGjJtY391YYE2bNi3LXVDfZKWVVlqs22vo6hxIJV+djJ49ey6qvgAAAAAAAHxrvXv3zkEHHZSXXnopzzzzTFZeeeUce+yx2WijjfLLX/4yo0ePTtu2bfPb3/426667bpLkb3/7W6655pq88cYbmTFjRtZff/0cccQR2XXXXZPUHLKPhVdZ3x0AAAAAAABYWJdeeml69uyZoUOHplevXjnvvPNy7rnnpn///rn99tvzySefZMCAAUmSjz/+OAcffHDatGmT++67L3/+85/ToUOHnHHGGfn000/reU8apiUqkBo9enS6dOmS++67rzRtxIgR2XfffdO5c+f06tUrgwYNqrFOdXV1rrrqqvTs2TOdOnXKwQcfnLFjx9ZYZlG0AQAAAAAA1I8HH3wwXbp0qfVz0kknlZbZZptt8tOf/jTrrLNO9t9//8yaNSv77bdfevTokQ4dOmSnnXbK22+/nSSZOXNmjjnmmJx66qlZb731suGGG+bwww/PzJkzM2bMmHray4ZtoYbsW5S+/PLLnHLKKZk6dWpp2sSJE3PQQQdlhx12yC9/+cu89tpr+eUvf5nmzZunX79+SZLrrrsud911Vy666KKsvvrqueSSS3LYYYdl6NChadKkySJpAwAAAAAAqD+9e/fOKaecUmv68ssvX/p9gw02KP3etGnTJMnaa69dmrbssstm5syZSZJ11lkn/fr1y+23355Ro0ZlzJgxGTFiRJJk9uzZZdmH77olJpC6+uqrs8IKK9SYds8996RJkyY577zz0rhx42y44YYZO3ZsBg4cmH79+mXmzJm5+eabc+qpp2bbbbdNklx++eXp2bNnHnvsseyyyy6LpA0AAAAAAKD+rLDCCllvvfW+cZnGjWtHHpWVcx8o7p133snee++ddu3aZauttsr222+fFi1a5Cc/+cki6S+1LRFD9r388su5++6785vf/KbG9OHDh6dbt241iqhHjx4ZPXp0JkyYkJEjR+aLL75Ijx49SvObNWuWdu3a5eWXX15kbQAAAAAAAA3HnXfemZYtW+bWW2/NYYcdlm233bb07KiiKOq5dw1Tvd8hNWXKlJx22mk5++yzs8Yaa9SY99FHH6WqqqrGtNVWWy1J8uGHH+ajjz5Kklrrrbbaavn3v/+9yNqoq8aNl4i8jwakUaOGX1PfhX2E+vZd+Hf2XdjHcvsuHMPvwj6W03fh+H0X9hEAAJYW06dPzyeffDLXec2aNfvW7bVq1SofffRRnn766Wy00UZ588038+tf/zpJSsP6sWjVeyB13nnnpXPnzvnhD39Ya9706dNrPcNp2WWXTZLMmDEj06ZNS5K5LjN58uRF1kZdVFZWpEWLFea/IFBDs2bL1XcXgAbAewkLQp0wP2oEAICGbK3VVl6qtvmXv/wlf/nLX+Y677LLLvvW7e2///559913c9ppp2XmzJlZf/31c9JJJ+Wqq67KG2+8kW222abOfWXu6jWQGjJkSIYPH54HH3xwrvObNm1aK4mcMWNGkq8eVDbnoWQzZ84s/T5nmeWWW26RtVEX1dVFpkyZWuf1YW4aNaps8F+MTJkyLbNnV9d3N6BB817CglAnzI8aAQCgvrgRYOFVVxc5eu+t6m3blZUV32qdP/zhD/NdZpdddqnxeu21184///nPGtOOPfbYHHvssUm+uknlwgsvrNXO7rvvXvr94osvLv3evXv3Wu3x7dRrIDV48OBMmDAhvXr1qjH93HPPzaBBg7Lmmmtm/PjxNebNeb366qtn1qxZpWnrrrtujWXatGmT5Kvb7ha2jbqaNcsfr/BtzZ5d7d8OsNC8l7Ag1Anzo0YAAGiovm0g1FC2Tf2q10BqwIABmT59eo1pO+64Y4477rjsvPPOeeihh3LXXXdl9uzZadSoUZLkhRdeyAYbbJCWLVtmpZVWyoorrphhw4aVwqQpU6bkrbfeyr777psk6dat20K3AQAAAAAAQN3V61N6V1999ay33no1fpKkZcuWWWuttdKvX798/vnnOeusszJq1Kjcd999ue2223L44Ycn+eqWun333TcDBgzIE088kZEjR+bEE09Mq1at0qdPnyRZJG0AAAAAAABQd/V6h9T8tGzZMjfddFMuuOCC9O3bN6uuumpOO+209O3bt7TMcccdl1mzZuXss8/O9OnT061btwwaNChNmjRZZG0AAAAAAABQd0tcIPXfDwXr2LFj7r777nku36hRo5x66qk59dRT57nMomgDAAAAAACAuqnXIfsAAAAAAABo+ARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWjeu7AwAAAAAAwOJTVFenorJ+7lepy7Z79+6dcePGlV5XVlZmhRVWSNu2bXP88cena9euc11vv/32y1prrZWLL754gbYzceLEPP744/nJT37yrfrHghFIAQAAAADAd0hFZWVGDx2YaRP+vVi3u1zLNbLBrofVad2DDz44Bx98cJKkKIpMmjQpl112WQ499ND87//+b1q1alVrnauvvjqNGjVa4G389re/zQcffCCQKhOBFAAAAAAAfMdMm/DvTPv4vfruxgJbfvnls+qqq5Zer7baavnlL3+ZbbbZJo8++mj233//Wus0b978W22jKIqF7SbfwDOkAAAAAACApU7jxl/dc9OkSZP07t07F154YXbeeed07949L774Yvbbb7/0798/SXLfffeld+/euf/++9OnT5+0b98+/fr1y6uvvpok6d+/f+6///689NJLad26db3tU0MmkAIAAAAAAJYqH3/8cX71q19l+eWXzzbbbJMkufPOO3P22WfnpptuyqabblprnfHjx+euu+7KJZdckrvvvjuVlZU5/fTTUxRFzjrrrOy0007p0qVLnn322cW9O98JhuwDAAAAAACWaDfccENuvvnmJMmsWbMyc+bMbLjhhrniiiuy5pprJkm23XbbbLnllvNs48svv8x5552Xtm3bJkkOP/zwHH300fnkk0+y2mqrpWnTpllmmWVqDA3IoiOQAgAAAAAAlmh77bVX9ttvvyRJZWVlmjdvnpVWWqnGMuutt95829lwww1Lv89Z/8svv1yEPWVeBFIAAAAAAMASbeWVV55v4NS0adP5ttOkSZNa04qiqHO/WHCeIQUAAAAAAHznVVRU1HcXGjSBFAAAAAAA8J23/PLLZ/z48Xn//ffruysNkiH7AAAAAADgO2a5lmt8J7b5bey+++557LHHsuuuu+axxx7LaqutVt9dalAEUgAAAAAA8B1SVFdng10Pq7dtV1R+u8HbnnzyyTot84c//KH0+x577JE99tijxvzu3bvnn//8Z+l1hw4d8swzz3yrvrHgDNkHAAAAAADfId82EGoo26Z+OfMAAAAAAACUlUAKAAAAAACAshJIAQAAAAAAUFYCKQAAAAAAAMpKIAUAAAAAAEBZCaQAAAAAAAAoK4EUAAAAAAAAZSWQAgAAAAAAoKwEUgAAAAAAAJSVQAoAAAAAAICyEkgBAAAAAABQVgIpAAAAAAAAykogBQAAAAAAQFkJpAAAAAAAACgrgRQAAAAAAABlJZACAAAAAACgrARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWAikAAAAAAADKqnF9d4CaKisrUllZUd/dKIvq6iLV1UV9dwMAAAAAAFjMBFJLkMrKijRvvnwaNWqYN67Nnl2dSZOmCqUAAAAAAOA7RiC1BKmsrEijRpW59s7nMm785PruziK11mor5+i9t0plZYVACgAAAAAAvmMEUkugceMnZ8y4ifXdDQAAAAAAgEWiYY4NBwAAAAAAwBJDIAUAAAAAAEBZCaQAAAAAAAAoK4EUAAAAAAAAZSWQAgAAAAAAoKwEUgAAAAAAAJSVQAoAAAAAAICyEkgBAAAAAABQVgIpAAAAAAAAykogBQAAAAAAQFk1ru8OAAAAAMA3qaysSGVlRX13oyyqq4tUVxf13Q0AKDuBFAAAAABLrMrKijRvvnwaNWqYA/3Mnl2dSZOmCqUAaPAEUgAAAAAssSorK9KoUWWuvfO5jBs/ub67s0ittdrKOXrvrVJZWSGQAqDBE0gBAAAAsMQbN35yxoybWN/dAADqqGHe6wwAAAAAAMASQyAFAAAAAABAWQmkAAAAAAAAKCuBFAAAAAAAAGUlkAIAAAAAAKCsBFIAAAAAAACUlUAKAAAAAACAshJIAQAAAAAAUFYCKQAAAAAAAMpKIAUAAAAAAEBZCaQAAAAAAAAoK4EUAAAAAAAAZSWQAgAAAAAAoKwEUgAAAAAAAJSVQAoAAAAAAICyEkgBAAAAAABQVgIpAAAAAAAAykogBQAAAAAAQFkJpAAAAAAAACirxvXdAQAWvcrKilRWVtR3N8qiurpIdXVR390AAAAAAL4FgRRAA1NZWZHmzZdPo0YN8ybY2bOrM2nSVKEUAAAAACxFBFIADUxlZUUaNarMtXc+l3HjJ9d3dxaptVZbOUfvvVUqKysEUgAAAACwFBFIATRQ48ZPzphxE+u7GwAAAAAAqffxnCZNmpRzzjkn22yzTTbddNPsvffeGT58eGn+iBEjsu+++6Zz587p1atXBg0aVGP96urqXHXVVenZs2c6deqUgw8+OGPHjq2xzKJoAwAAAAAAgLqp90DqpJNOyuuvv57LLrss9957bzbZZJMccsgheeeddzJx4sQcdNBBWX/99TN48OAce+yxufLKKzN48ODS+tddd13uuuuu/PrXv87dd9+dioqKHHbYYZk5c2aSLJI2AAAAAAAAqLt6HbJv7Nixee6553LnnXdm0003TZKcddZZeeaZZzJ06NA0bdo0TZo0yXnnnZfGjRtnww03zNixYzNw4MD069cvM2fOzM0335xTTz012267bZLk8ssvT8+ePfPYY49ll112yT333LPQbQAAAAAAAFB39XqHVIsWLXLjjTemffv2pWkVFRUpiiKTJ0/O8OHD061btzRu/P9ysx49emT06NGZMGFCRo4cmS+++CI9evQozW/WrFnatWuXl19+OUkWSRsAAAAAAADUXb3eIdWsWbPSXUlz/OUvf8l7772XrbfeOpdffnmqqqpqzF9ttdWSJB9++GE++uijJMkaa6xRa5l///vfSZKPPvpooduoq8aNv13e16hRvY+gWHbfhX0sp+/C8fsu7GO5fReO4XdhH8vpu3D8vgv7WG7fhWP4XdjHcvouHL/vwj4CLA2+C+/H34V9BIB6DaT+29/+9receeaZ2X777dO7d+9cdNFFadKkSY1lll122STJjBkzMm3atCSZ6zKTJ09OkkyfPn2h26iLysqKtGixQp3Xb6iaNVuuvrvAEk6NsCDUCfOjRlgQ6oT5USMALC4+cwD4LlhiAqnHH388p5xySjp16pTLLrssSdK0adPMnDmzxnIzZsxIkiy//PJp2rRpkmTmzJml3+css9xyyy2yNuqiurrIlClTv9U6jRpVNvgLkClTpmX27Or67sZSS42wINQJ86NGWBDqhPlRIwAsLj5zgP/mRgBYOi0RgdTtt9+eCy64IH369MmAAQNKdyu1atUq48ePr7HsnNerr756Zs2aVZq27rrr1limTZs2i6yNupo1y4XEf5s9u9px4RupERaEOmF+1AgLQp0wP2oEgMXFZw4A3wX1PkDtH//4x5x//vnZZ599csUVV9QYOq9bt27529/+ltmzZ5emvfDCC9lggw3SsmXLtGnTJiuuuGKGDRtWmj9lypS89dZb6dq16yJrAwAAAAAAgLqr10Bq9OjRufDCC9OnT58cfvjhmTBhQj755JN88skn+c9//pN+/frl888/z1lnnZVRo0blvvvuy2233ZbDDz88yVfPfdp3330zYMCAPPHEExk5cmROPPHEtGrVKn369EmSRdIGAAAAAAAA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CfOzuGskadh14jNn0WjINdK46Qr13YWyWdzXJUD98a89Kd0VNXPmzBrTZ8yYkeWWa5i3wwIAAAAAACwuAqkka6yxRpJk/PjxNaaPHz8+rVq1qo8uAQAAAAAANBgCqSRt2rTJiiuumGHDhpWmTZkyJW+99Va6du1ajz0DAAAAAABY+nmGVL56dtS+++6bAQMGZJVVVslaa62VSy65JK1atUqfPn3qu3sAAAAAAABLNYHU/++4447LrFmzcvbZZ2f69Onp1q1bBg0alCZNmtR31wAAAAAAAJZqFUVRFPXdCQAAAAAAABouz5ACAAAAAACgrARSAAAAAAAAlJVACgAAAAAAgLISSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWQmkGpjq6upcddVV6dmzZzp16pSDDz44Y8eO/cZ1/va3v2X48OELtd0333wz+++/fzbddNP06tUrV199dWbPnr1QbbLwrrvuuuy33361po8YMSL77rtvOnfunF69emXQoEHf2M7UqVNzxx13LLJ+/fnPf07v3r1rTVdHi8+kSZNyzjnnZJtttsmmm26avffeu9b7QH3UyfTp03PppZemd+/e6dKlS/bYY4888cQT81z++uuvT+vWrRdqm8zdgtTIGWeckdatW9f42WabbebZ5qKokalTp+b888/P1ltvnU6dOmWfffbJK6+8Ms/l1Uj5TJgwIaeeemp69OiRLl265Oc//3lGjRpVY5n6qJGv++yzz7L11lvn6quvnucyamTxGT16dLp06ZL77ruvxvT6qJMvv/wy7du3r7Xdyy+/fK7Lq5PyGTduXK3z0Lp16/zpT38qLbOk1ohr18VryJAh2XnnndOhQ4fssssu+ctf/lJjfn39jfP0009njz32SIcOHbLDDjt8Y5veS8prfjWyuN9LPvjgg7m+v7Vu3Tpt2rSZ6zpqZMEMGzZsnsd2++23Ly33bc/5d13r1q1rXacBLHIFDcrVV19dbLHFFsVTTz1VjBgxojj44IOLPn36FDNmzJjnOlVVVcXgwYPrvM333nuv6NSpU3HUUUcVI0eOLIYNG1b84Ac/KM4666w6t8nCu+WWW4rWrVsX++67b43pn332WdG9e/firLPOKkaNGlXce++9RYcOHYp77713nm1dffXVxXbbbbdI+vXQQw8Vm2yySa321NHiddBBBxW77bZb8fLLLxfvvPNOcf755xcdO3YsRo0aVRRF/dXJWWedVfTq1at45plnijFjxhS/+93vijZt2hQvvvhirWVff/31ol27dkVVVdVCbZO5m1+NFEVR9O3bt7jsssuK8ePHl34mTJgwzzYXRY2ccMIJxQ9+8IPi5ZdfLsaMGVP88pe/LDp16lR89NFHtZZVI+X1k5/8pNhzzz2LN954oxg1alRx7LHHFltttVUxderU0jL1USNfd9RRRxVVVVXFVVddNdf5amTxmTlzZrHHHnvM9bqzPupk5MiRRVVVVTFixIga2/38889rLatOyuuJJ54oOnToUHz88cc1zsW0adNKyyyJNeLadfEaMmRI0bZt2+LWW28txowZU1xzzTVFmzZtildeeaUoivq7dh02bFjRtm3b4tJLLy3Gjh1b3HXXXUXbtm2Lhx56qNay3kvKa341UhSL/71k1qxZNbY1fvz44s033yy6dOlSXHbZZbWWVyMLbsaMGbWO7bPPPlu0a9euuOeee0rLfdtz/l23sN8PAiwId0g1IDNnzszNN9+cY489Nttuu23atGmTyy+/PB9//HEee+yxsm339ttvT/PmzXP55ZendevW2XzzzXPBBRfk3nvvzYcffli27TJ3H3/8cQ499NBceeWV2WCDDWrNv+eee9KkSZOcd9552XDDDdOvX78ceOCBGThw4DzbLIpiofv1+eef55RTTsmpp56aDTfcsNZ8dbT4jB07Ns8991zOPffcdO3aNd///vdz1llnZfXVV8/QoUOT1E+dTJs2LUOGDMlJJ52Unj17Zr311svhhx+e7t27Z/DgwTWWnTp1ak499dR07dp1obbJ3C1IjcyePTujRo1Khw4dsuqqq5Z+VllllXm2u7A1MmvWrDRt2rTUr/XWWy8nnnhipk2bVusuKTVSXhMnTszaa6+d888/Px06dMiGG26Yo446Kp988kn+9a9/JamfGvm6u+++O6NHj86qq6461/lqZPG6+uqrs8IKK9SaXl918vbbb2ellVZKmzZtamz3v/uoTsrv7bffzgYbbJDVVlutxrlo2rRpkiW3Rly7Lj5FUeTKK6/MAQcckAMOOCDrrbdejj766Gy55ZZ56aWXktTf3zhXX311dthhh5x00klZd911s+eee2b33XevdVe595LyWpAaqY/3kkaNGtXY1qqrrppLL700VVVVOf7442ssq0a+nSZNmtQ4rs2bN89FF12UHXfcMT/5yU+S1O2cA1B+AqkGZOTIkfniiy/So0eP0rRmzZqlXbt2efnll+e6zpxbwc8444z0798/SfLvf/87p5xySrbaaqt07tw5hxxySP75z3/Oc7ujR49Ox44d06RJk9K0du3apSiKuW535MiRad26da15J554Yo455pgkyX/+85/84he/SI8ePbLZZptl//33z9///vfSskVR5KabbspOO+2U9u3bZ7PNNsvhhx+e999/v8a+XX755dluu+2y1VZb5d13380bb7yRn/3sZ+nSpUu6deuWY489tsH9wfjmm29m5ZVXzgMPPJBOnTrVmj98+PB069YtjRs3Lk3r0aNHRo8enQkTJtRa/uqrr84111xTGk7lgw8+SPLVcAi77bZbOnbsmN69e+d3v/tdqqur59mvDz74IJMnT869996bHXbYodZ8dbT4tGjRIjfeeGPat29fmlZRUZGiKDJ58uQk9VMnFRUV+d3vfpeePXvWmjenX3NccMEFqaqqyo9+9KNv3Fd1UjcLUiNjxozJjBkz5howz82iqJHGjRvnoosuyhZbbJEkmTJlSq677rqssMIK6dy5c41l1Uh5tWjRIpdddlk23njjJMmnn36aQYMGpVWrVtloo42S1E+NzDF69OgMGDAgl1xySY3Pla9TI4vPyy+/nLvvvju/+c1vas2rrzr55z//WarVb6JOym9+52JJrRHXrovPu+++m3HjxuWHP/xhjemDBg3K4YcfnqR+rl2nTZuW4cOH1+rXhRdemHPOOafGNO8l5bUgNVKf1yVzPP7443nhhRdy3nnnpbKy5tdxamTh3HHHHfn3v/+dM844ozTt257zxx9/PG3atMm4ceNqTP/pT3+aiy66KMlX/wH4xBNPTNeuXdO9e/ccccQRGTNmTGnZmTNn5tJLL80OO+yQ9u3bp3v37jnppJMyceLEJP9vGMfrrrsuW221VXr37p0pU6aUhv7s1KlTtthii/Tv37/W38Bf969//StHHXVUunfvnvbt26dPnz657bbbSvOvvvrq7Lfffhk4cGC22WabdOjQIfvvv3/efffd0jIfffRRjjzyyHTp0iW9evXKQw89NN9j9M477+SII45I9+7ds9lmm+W4444r1cB9992XDh06ZMqUKTXW+cEPfpArrrhigY5f//79c8wxx+Tggw/OpptumhtuuGG+fQKWQovvZizK7ZFHHimqqqpqDG9RFEVx3HHHFT//+c/nus748eOLqqqq4tZbby2mTJlS/Oc//ym23XbbYt999y1ef/31YsSIEcUxxxxTdO3atRg3btxc2zjzzDOLH//4xzWm/etf/yqqqqqKQYMGzXWd3XffvTjzzDNLr6dMmVJ06NCheOKJJ4rq6upizz33LPbdd9/itddeK0aNGlVceumlxSabbFK8+eabRVF8NRxd165diyeeeKL44IMPihdffLHo06dPcdRRR5XarKqqKrp371688cYbxauvvlrMnj276NGjR3HZZZcV7733XvGPf/yj2GOPPYoDDjhgvsd2aXX66afXGrJv1113LX7729/WmDbnfL3xxhu12vj888+Liy++uNhmm22K8ePHF7NmzSpuueWWon379sXtt99ejB49unjggQeKrl27FhdddNEC9euqq66qNfSBOqpfDz/8cFFVVVU88cQTRVEsGXVSFEXx2muvFa1bty5+//vfl6Y9+uijxVZbbVV89tlnxeDBg+c7pIU6WTT+u0YefvjhonXr1sW5555bbLfddsX2229f/OpXvyqmTJky1/UXdY1cf/31RVVVVdG6detaw/GokcXr7LPPLqqqqor27dsXf/3rX0vT66tGZs6cWfTt27e4/vrri6Ioiu22267WkH1qZPGZPHly0atXr+KBBx4oiqL2UDD1VSeHHXZY0a9fv+Lggw8utthii6Jv377FkCFDaiyjThaPnXfeuTjggAOKvffeu9hiiy2Kvfbaq3jmmWdK85fUGnHtuvg8/vjjRVVVVfHyyy8XBx98cNGjR4/ixz/+cemapCjq59p1xIgRpWujY489tujRo0ex22671RgurCi8lywOC1Ij9X3tWhRf1elpp51Wa7oaWTjTp08vunfvXlx55ZU1pn/bc/7ll18WW265ZXHttdeWpr377rul4Vu/+OKLok+fPsWxxx5bjBgxovjnP/9Z9O/fv+jWrVtp+PDzzz+/6NWrV/Hiiy8WH3zwQfF///d/xeabb15ccMEFRVEUxfvvv19UVVUVP/jBD4p//etfxRtvvFFMmDChVFcffPBBMXz48KJ37941zvHXTZ06tdhqq62Kk08+uRg1alQxZsyY4tJLLy2qqqqKt956qyiKr75z2WSTTYrDDjusGDFiRDF8+PBi++23L/bff//Svu6yyy7FnnvuWfzjH/8oXnnlleJHP/rRNw7Z98EHHxSbbbZZaf9ff/314mc/+1mx3XbbFf/5z3+KL774oujcuXON98DXXnutqKqqKkaPHr1Ax+/0008vqqqqioEDBxbvvvtu8eGHH873/ANLH4FUAzJkyJCiqqqqmD17do3pp5566jdeJHz9A+eOO+4oOnbsWGNM3enTpxdbb711rQv8OV5++eWidevWxQ033FBMnz69+Pjjj4v999+/aNeuXenLoP/2hz/8odhss82K6dOnF0VRFHfffXex5ZZbFl9++WXx/PPPF1VVVbXG9d1nn32K008/vSiKr8aaf/zxx2vMv+yyy4rtt9++xn5deOGFpdeTJk0qWrduXdx+++1FdXV1URRfjf3+6quvzvPYLO3mFkjtsMMOxRVXXFFj2nvvvVe6gJ+brwdI1dXVxZZbbllcfPHFNZb5/e9/X2yyySbzvLibV3tzqKP6M3z48KJz587FkUceWZq2JNTJO++8U2y11VZFv379Ss/B++ijj4ru3bsXTz/9dFEUxQL9waZOFt7cauTKK68s2rZtW9x4443FP//5z+LRRx8ttt9++2Lfffet9Tk0x6KskTFjxhRvvfVWcdlllxVt2rQpnnzyyaIo1Eh9+Ne//lX8/e9/L84888yiY8eOxT/+8Y+iKOqvRgYMGFDstddexaxZs4qiqB1IqZHF68QTTyxOOOGE0uv//qKjvuqkV69exQ477FA8/fTTxVtvvVVcd911Rdu2bYs//elPRVGok8VlxowZRbt27Yp+/foVw4YNK/7+978XF1xwQdG6devi+eefL4piya0R166Lz5y/c3v37l3cd999xVtvvVVcfvnlNeqkPq5dX3755aKqqqrYaqutittuu6146623iltuuaXYZJNNvJcsZgtSI/V97frss88WrVu3rvE81qJQI4vC3XffXXTu3Ln47LPPakyvyzm/+OKLix133LH0+rLLLiv69u1bFEVR3HPPPUXXrl2LmTNnlubPnj27xrXmkCFDimHDhtVo86STTioFQXMCqdtuu600/6233iqqqqpKf88URVG8/fbbxYgRI+baxwkTJhQ33HBD8Z///Kc0bcaMGUVVVVVx//33F0XxVe22bt26mDhxYmmZW2+9tdhkk02KoiiKZ555pqiqqirGjh1bqx/zCqR++9vfFj179qzxjPpPP/206NixY3HHHXcURVEU/fv3r/Ed1K9+9atir732WuDjd/rppxfdunWb6/aBhqPx/O+hYmkxZ5z1mTNnln5PkhkzZmS55ZZboDbefvvtrL/++jXG1F122WXTsWPHeQ7b17Vr11x44YX5zW9+k8svvzwrrLBCjjvuuLzzzjtZaaWV5rrOD3/4w/zmN7/JE088kZ133jn3339/dttttzRu3DhvvvlmkmT77bevsc7MmTMzY8aMJEnv3r3z+uuv56qrrsrYsWPzzjvv5F//+ldWX331Guust956pd9XXnnlHHrooTn//PNzzTXXZMstt8w222yTH/zgBwt0bBqKpk2bZubMmTWmzTmuyy+//HzX/+yzz/Lpp59ms802qzG9W7du+fLLL/Puu+/OdajA+VFH9ePxxx/PKaeckk6dOuWyyy4rTa/vOnnllVdy1FFHZdVVV82NN96YJk2apCiK9O/fPzvttFO22WabBd5HdbJw5lUjxx57bA488MA0a9YsSVJVVZVVV101e+65Z/7+97/P931gYWtkzvFu27Zt3nzzzdxyyy3p1auXGqkHc4a0Ov/88/Paa6/l9ttvz0UXXVQvNfLSSy/lzjvvzP33359GjRrVatP7yOI1ZMiQDB8+PA8++OA8l6mv95L//d//TXV1dekauW3btvn3v/+dQYMGpV+/fupkMWnSpElefvnlNG7cuDT0Xfv27fPOO+9k0KBB2WKLLZbIGvnxj3/s2nUxWmaZZZIkhxxySPr27Zvkq/Px1ltv5ZZbbskWW2xRL9euc2r2Rz/6Ufbff/9Sv8aOHZtbbrnFe8litCA1Ut/XrkOGDEnXrl1rDB/numTRGDJkSHbccce0aNGixvS6nPN+/frl5ptvzuuvv56OHTvmgQceyKGHHpokeeutt/L5559n8803r7HOjBkz8s477yT56v3ghRdeyGWXXZYxY8bknXfeybvvvlvr2WBfP7Zt27bNrrvumiOOOCJrrLFGttxyy/Tq1Su9e/ee6/6ussoq+dnPfpaHH344I0eOzNixYzNixIgkqTF85Pe+9700b9689HqllVbKl19+meSr7/5WXnnlrLvuujX68U3fHb799ttp3759jaFqW7ZsmQ022KD0fWHfvn2z//7756OPPsr3vve9PPzwwznxxBMX+Pj997EBGiaBVAOyxhprJEnGjx9f40Nl/PjxadOmzQK1URRFKioqak2fPXt2jfG4/9see+yRvn37Zvz48WnRokVmzZqVCy+8cJ4fJCuvvHJ22GGHPPDAA+nQoUNeffXV/OpXv0ry1QfoiiuumPvuu6/WenM++AYOHJirr746e+yxRzbffPPst99+eeKJJ2qNefv1YC5JTjnllPzsZz/L008/XRq7+YYbbsiQIUPm+YyJhqZVq1YZP358jWlzXv/3BejcFPN4sOvs2bOT5BvrZH7U0eJ1++2354ILLkifPn0yYMCAGn2vzzp57LHHcvLJJ6dDhw65/vrrS39AfPjhh3n++efzyiuvZMiQIUmSWbNmJUm6dOmSww8/PEcccUSt9tRJ3X1TjVRUVJTOzRxVVVVJvhqPfH5/1NelRj7//PM8++yz2XLLLWtse+ONN86TTz6pRhajCRMm5IUXXshOO+1UCn4qKyuz4YYblt4r6qNG7r///kydOjW77bZbadq0adNyww035Oabb87QoUPVyGI0ePDgTJgwIb169aox/dxzz82gQYPy0EMP1UudJF/9h6v/1rp16zz44IPeSxazuYUFVVVVefbZZ5PUz3tJ8s01Modr18WjVatWSf7feZ9jo402ylNPPVVaZnFfu85pd279uu+++7yXLEYLUiP19V6SfHXen3rqqdIX83OokYX32Wef5dVXXy09K+zr6nLON9poo3Tq1CkPPPBApk+fnk8//TS77LJLkq+O7QYbbJDrr7++1npzPsvOO++8PPzww9l9993Tq1evHHnkkRk0aFA+/vjjGsv/97G99NJLc/TRR+eZZ57J888/n5NOOimbbrppfv/739fa1qeffpqf/vSnadGiRbbffvtsscUW6dChQ7bddtsay83vnMytpr+pjr/p+8I5oXC3bt2y9tprZ+jQodlwww0zderU7LTTTkkW7PgltY8N0PBUzn8RlhZt2rTJiiuumGHDhpWmTZkyJW+99Vat/40xL1VVVbUe/Dpjxoz84x//mOdDfR955JEcffTRqaioyOqrr54mTZrkkUceyfLLL58uXbrMc1v9+vXLc889lz//+c/p0KFD6cHoVVVV+fzzzzNz5syst956pZ+BAwfmiSeeSJJcf/31OeaYY3Leeedlzz33TOfOnTNmzJh5XiQmXz3o9Nxzz03Lli2z995756qrrspNN92Ud955JyNHjlyg49MQdOvWLX/7299KF85J8sILL2SDDTZIy5Yt57rO1y86WrZsmZYtW+Zvf/tbjWWGDx+eZZZZpkYY+m2oo8Xrj3/8Y84///zss88+ueKKK2pdrNZXnTz55JM54YQT0qtXr9xyyy01/oBYffXV8+ijj+aBBx7IkCFDMmTIkBx33HFJvvpfcXvttdc891edfHvzq5GTTz45hxxySI1pcx6WPK/Pi4WtkVmzZuXEE0/Mo48+WmP6G2+8kY022kiNLEbjx4/PySefnJdeeqk07csvv8xbb71V+p+/9VEjp5xySv7yl7+Uzv+QIUOy2mqrZa+99sqQIUPUyGI2YMCAPPzwwzXOR5Icd9xxufHGG5PUT51MmjQpXbt2zZ///Oda2914443VyWI0cuTIdOnSJcOHD68x/et/eyyJNZK4dl2c2rVrlxVWWCGvv/56jelvv/126fzVx7Xr6quvnnXXXXee/fJesvgsSI3Ux3vJHKNGjcqUKVPSo0ePGtPVyMJ75ZVXUlFRUeuum6Ru5zz56tg++uijefTRR7P99tuX7jKqqqrKhx9+mJVWWql0XNdaa61ceumlefnllzNx4sTceeedOe+883LmmWdmjz32SNu2bfPuu+9+47F97bXXcuGFF+b73/9+DjzwwNx444258MILM2zYsBrfzc3x4IMPZtKkSbnrrrty1FFHpU+fPpk8eXKSeQen/61du3aZMmVK/vWvf5WmjR49Ov/5z3/muU5VVVXeeOONGnejfvrppxk7dmzp+r+ioiK77757HnnkkTz00EPZYYcdSncNz+/4Ad8dAqkGpEmTJtl3330zYMCAPPHEExk5cmROPPHEtGrVKn369Jnnessvv3zeeeedTJw4MT/84Q/TrFmznHDCCXnjjTcycuTInHrqqZk6dWr23HPPua6/8cYb55lnnsl1112XDz74II888kjOP//8HHXUUVlhhRXmud0tt9wy3/ve9zJw4MDssccepek9e/ZM27Ztc8IJJ+SFF17I2LFj85vf/CaDBw8ufcitscYaee655zJq1Ki8++67ufzyy/Poo4/WGqbh65o3b56hQ4fmnHPOyTvvvJPRo0dn8ODBWXnllfP9739/foe3wejXr18+//zznHXWWRk1alTuu+++3HbbbXP9H0VzLL/88pk8eXJGjx6dWbNm5eCDD87tt9+eO+64I2PHjs2DDz6Ya665Jnvuuec8hyiZH3W0+IwePToXXnhh+vTpk8MPPzwTJkzIJ598kk8++aR0AVofdTJ58uScfvrp2WSTTXLWWWdl8uTJpX5NmjQpjRs3rvFH1XrrrVf6gmG99darMRzBf1Mn386C1Miuu+6a5557Ltdff33ee++9PP300znzzDOz66671hiK5OsWtkaaN2+en/zkJ7n88svz9NNP5913382FF16Y119/PUceeaQaWYzatGmTrbfeOr/85S8zfPjwvP322zn99NMzZcqUHHjggUnqp0ZatmxZqwYaN26clVdeufS7Gll8Vl999VrHO/nqPK211lpJ6u+9ZMstt8xll12Wv/71rxkzZkxuvPHGPPDAAzn22GPVyWJUVVWVjTfeuPRe8s477+Siiy7Ka6+9VrorYEmskcS16+LUtGnTHHroobn22mszdOjQvPfee7n++uvz3HPP5aCDDkpSf3/jHHPMMbn77rtzxx135P3338/dd9+dwYMH55BDDvFeshgtSI3Ux3vJHCNHjkyTJk2ywQYb1JiuRhbeyJEjs84668x1qLm6nPMk2WWXXfKf//wn9957b41ju9tuu2XllVfOMccck9deey3vvPNOzjjjjDz99NPZeOONs9JKK2WllVbKE088kbFjx+af//xnfvGLX+TNN9/8xmO74oor5o9//GMuueSS0noPPfRQ1l9//VrDECZf3RE4bdq0/OUvf8mHH36YZ599NieddFKSfON2vq579+7p1KlTTjvttLz22mv5+9//nv79+6eyct5fE++99975/PPPc8opp2TkyJF54403cvzxx6dFixalu8iSr4bte/PNN/PEE0+UhtBckOMHfIcstqdVsVjMmjWr+O1vf1v06NGj6Ny5c3HYYYcV77///jeuc9VVVxUdO3YsjjjiiKIovnpQ/JFHHll06dKl6NKlS3HooYcWI0eO/MY2nnrqqeKHP/xh0bFjx2LHHXcsbr/99gXq72WXXVZ06NChmDx5co3pEyZMKPr3719079696NixY9G3b9/iscceK83/xz/+Ufz0pz8tOnbsWGyxxRbFEUccUdx5551F69atS/s7t4cxvvLKK8U+++xTbLrppkWnTp2KAw44oPTw9Ybo9NNPr/FAyTlef/314qc//WnRvn37Yrvttiv+8Ic/fGM777//fvGDH/ygaN++ffHaa68VRVEUt912W9GnT59ik002KbbffvvihhtuKD1Afn6+/nDYr1NHi8f1119fVFVVzfVnzoNui2Lx18kDDzwwz37NrY6LYsEe+juHOllwC1oj//u//1vsvvvuRceOHYutttqquPjii0sPV56bRfFeMmPGjOKyyy4revXqVbRv377Yc8895/mw8qJQI+U0ZcqU4txzzy222mqromPHjsXBBx9cvP322zWWqY8a+W9ff1Dy3KiRxWtu+1kfdfLFF18UF198cbHtttsW7du3L370ox/VOGf/TZ2Uz4QJE4ozzjij2GqrrYoOHTrM9X19Sa0R166L180331z07t272GSTTYrddtut1vmor79xhgwZUuy0007FJptsUuy4447FPffcM89lvZeU1/xqpL6uS2688cZiq622WqB9UCPfzrnnnlv89Kc/nef8b3vO5zj55JOLnj171jq37733XnHMMccUm222WdG5c+di7733rvGZ9eyzzxa77rpr0aFDh2LrrbcuTj755OJ3v/td0blz5+KLL74o3n///aKqqqp48cUXa7T75JNPFnvssUfRuXPnYtNNNy2OOuqoYuzYsXPtW3V1dXHJJZcUW265ZdGxY8dip512Km6++eZin332Kfr3718Uxdy/c/nv2vrss8+Kk046qejSpUuxxRZbFLfeemux5ZZb1jrvX/f3v/+9OOCAA4qOHTsWXbt2LY4//vhi3LhxtZY74IADip49exazZ8/+VsdvXt9hAQ1LRVEs4P2cUAZnnHFGvvzyywwYMKC+u8JSTB2xINQJ86NGmB81woJQJ8yPGmFBqBPmR42Uz/77758uXbrUeu4XAAtv3k+rgzKac3v40KFDc8cdd9R3d1hKqSMWhDphftQI86NGWBDqhPlRIywIdcL8qJHyefzxxzNixIi8+uqr+c1vflPf3QFokARS1IvBgwfnqaeeyrHHHpuOHTvWd3dYSqkjFoQ6YX7UCPOjRlgQ6oT5USMsCHXC/KiR8hk4cGDGjBmT888/P2ussUZ9dwegQTJkHwAAAAAAAGVVWd8dAAAAAAAAoGETSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWQmkAAAAAAAAKCuBFAAALGannXZaWrdunRtvvHGxbvfqq69O69ata/107tw5O+20U6666qrMmjVrsfYJAACA74bG9d0BAAD4Lvn888/z6KOPpqqqKvfcc08OO+ywVFRULNY+3H333TVeT5w4MUOHDs21116bL7/8MieffPJi7Q8AAAANn0AKAAAWo4ceeiizZ8/O2Wefnf333z/PPvtsevbsuVj70Llz51rTtttuu3zwwQe59957BVIAAAAscobsAwCAxWjw4MHp3r17unfvng022CB33XVXrWUGDRqU7bffPh07dsxee+2VJ598Mq1bt86wYcNKy7z99ts5/PDDs+mmm2bTTTfN0Ucfnffff3+h+rbiiivWmvanP/0pe+yxRzp37pyOHTvmRz/6UR5++OHS/Pvuuy/t2rXL66+/nj333DMdOnRIr169MnDgwBrtjB8/PieeeGI233zzdOvWLeecc04uv/zy9O7du9b2dtlll7Rv3z69evXK1VdfbRhBAACABkAgBQAAi8k777yT119/PX379k2S7LHHHvm///u/fPzxx6VlrrnmmgwYMCA77bRTrrvuunTq1CknnnhijXZGjx6dvfbaKxMmTMjFF1+cCy64IO+//3723nvvTJgwYb79mDVrVuln5syZGT9+fG655ZY899xz2X333UvL3XHHHTnnnHOy/fbb54Ybbsgll1ySZZZZJqeeemo+/PDD0nLV1dU54YQTsvPOO+fGG2/MZpttlgEDBuSvf/1rkmTmzJk54IAD8sorr+TMM8/MRRddlJEjR+bmm2+u0a8bbrghv/jFL7LFFlvkd7/7XfbZZ58MHDgw55xzzrc+1gAAACxZDNkHAACLyb333ptmzZplhx12SJLsvvvuueKKK/KnP/0pxxxzTKZOnZqBAwdmn332ySmnnJIk2XrrrTNt2rQaz3265ppr0rRp09x6662lu5q22GKL7LDDDrnpppty+umnf2M/Ntlkk1rT1lxzzRx77LH5+c9/Xpr2/vvv5+CDD87RRx9dmrb22mtnjz32yCuvvJI111wzSVIURY466qj85Cc/SZJsttlmeeyxx/LUU0+lZ8+eeeCBB/Luu+9m8ODBad++fZKkR48epeOQJP/5z39y/fXXZ88998zZZ59d2vfmzZvn7LPPzkEHHZSNN954AY80AAAASxqBFAAALAazZs3KAw88kB122CEzZszIjBkz0rRp03Tv3j1/+tOfcuSRR+a1117L9OnT8z//8z811t11111rBFIvvvhiunfvnqZNm5aGs1txxRXTtWvXPP/88/Pty7333psk+eKLL/L73/8+w4YNy1lnnVUjIEqS/v37J/kqLBozZkzGjBmTF154IUny5Zdf1li2S5cupd+bNGmSVVZZJVOnTi31d5111imFUXP6u91225WGIXz11Vczbdq09O7du8YQfXOG9HvuuecEUgAAAEsxgRQAACwGTz31VD799NPcd999ue+++2rN/7//+79Mnz49SbLKKqvUmPe9732vxutJkybl4YcfrvEspzn+e9256dChQ+n3zTffPIccckhOOOGE3HLLLenWrVtp3nvvvZdzzjknL774Yho3bpzvf//7ad26dZKv7or6uqZNm9Z4XVlZWVpm4sSJadmyZa1+fH2/Jk2alCQ17tD6uvHjx893vwAAAFhyCaQAAGAxuPfee7PWWmvloosuqjXvuOOOy1133ZUjjjgiSfLZZ5/l+9//fmn+Z599VmP5lVZaKVtuuWUOOuigWm01bvztLvErKytz4YUXZuedd84ZZ5yRhx56KMsuu2yqq6vz85//PMsss0zuueeetGvXLo0bN86oUaPywAMPfKttrL766hk7dmyt6V9/3lWzZs2SJAMGDMj6669fa9n/DuUAAABYulTWdwcAAKCh+/TTT/PXv/41u+yyS7p3717rZ+edd85zzz2XlVZaKSuttFIeffTRGus/8sgjNV5vvvnmGTVqVNq2bZsOHTqkQ4cOad++fW699dY89thj37p/a6yxRo488si8//77ufHGG5N8dVfT6NGj8+Mf/zgdO3YsBV3PPPNMkqS6unqB2998883z/vvvZ8SIEaVpM2bMKLWVJJ06dcoyyyyTjz/+uLRPHTp0yDLLLJNLL700H3zwwbfeLwAAAJYc7pACAIAyu//++zNr1qzssssuc53ft2/f/PGPf8zQoUNz6KGH5qqrrspyyy2XzTffPC+99FLuvPPOJF/dzZQkRx11VPbaa68cfvjh2XvvvbPsssvm7rvvzuOPP56rrrqqTn088MADc++992bgwIHZfffds84662SttdbKHXfckVatWqVZs2Z59tlnc9tttyVJpk2btsBt77rrrrnxxhtz9NFH5/jjj0+zZs1y8803Z8KECVlzzTWTJC1atMihhx6aK6+8Mp9//nm6d++ejz/+OFdeeWUqKirSpk2bOu0XAAAASwZ3SAEAQJndf//92XjjjecZqnTs2DHf//73M3jw4Bx88ME55phjMmTIkBx++OEZPnx4TjnllCTJ8ssvnyRp06ZN7rjjjlRUVOS0007Lcccdl08++STXXnttdtxxxzr1sUmTJjnzzDMzY8aM0rCC1113XVZfffX0798/J5xwQl577bVcf/31+f73v5/hw4cvcNuNGzfOoEGD0q5du5x33nk57bTTUlVVlT59+pT2KUlOOOGE9O/fP4899lgOO+ywXHLJJdlss81y++23Z6WVVqrTfgEAALBkqCj++2nEAABAvZg1a1aGDh2a7t27Z4011ihNv+OOO/LrX/86w4YNKz1raWnyr3/9K++++2523HHHVFRUlKb369cva6yxRq655pp67B0AAACLgyH7AABgCdG4ceMMHDgwt912W4488si0aNEiI0eOzJVXXpndd999qQyjkmTq1Kk5/vjj87Of/Sx9+vTJ7NmzM3To0Lz55ps59dRT67t7AAAALAbukAIAgCXI+++/n8suuyzDhg3LlClTsuaaa2a33XbL4YcfnmWWWaa+u1dn//u//5tBgwblnXfeSVEUadeuXY488shsvfXW9d01AAAAFgOBFAAAAAAAAGVVWd8dAAAAAAAAoGETSAEAAAAAAFBWAikAAAAAAADKSiAFAAAAAABAWQmkAAAAAAAAKCuBFAAAAAAAAGUlkAIAAAAAAKCsBFIAAAAAAACUlUAKAAAAAACAsvr/AERNp3SqVe0nAAAAAElFTkSuQmCC\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.catplot(x='Age Range', kind='count', hue='Notice Preference Definition', data=benachrichtigung, aspect=3, order=[\"0 to 9 years\",\"10 to 19 years\",\"20 to 24 years\",\"25 to 34 years\",\"35 to 44 years\",\"45 to 54 years\",\"55 to 59 years\",\"60 to 64 years\",\"65 to 74 years\",\"75 years and over\"])\n",
"#wenn data=df gewählt wird, würden wir auch die Werte für 'print' sehen"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Um besser die Zahlen zu verstehen, hilft uns eine Kreuztabelle:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
All
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Email
\n",
"
29979
\n",
"
55109
\n",
"
21740
\n",
"
88098
\n",
"
76322
\n",
"
45360
\n",
"
17403
\n",
"
15438
\n",
"
26988
\n",
"
14340
\n",
"
390777
\n",
"
\n",
"
\n",
"
Print
\n",
"
1276
\n",
"
665
\n",
"
338
\n",
"
1210
\n",
"
1064
\n",
"
683
\n",
"
328
\n",
"
346
\n",
"
703
\n",
"
579
\n",
"
7192
\n",
"
\n",
"
\n",
"
All
\n",
"
31255
\n",
"
55774
\n",
"
22078
\n",
"
89308
\n",
"
77386
\n",
"
46043
\n",
"
17731
\n",
"
15784
\n",
"
27691
\n",
"
14919
\n",
"
397969
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"Email 29979 55109 21740 \n",
"Print 1276 665 338 \n",
"All 31255 55774 22078 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"Email 88098 76322 45360 \n",
"Print 1210 1064 683 \n",
"All 89308 77386 46043 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"Email 17403 15438 26988 \n",
"Print 328 346 703 \n",
"All 17731 15784 27691 \n",
"\n",
"Age Range 75 years and over All \n",
"Notice Preference Definition \n",
"Email 14340 390777 \n",
"Print 579 7192 \n",
"All 14919 397969 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True\n",
")\n",
"# Beachte, dass wir hier eine Teilmenge des Datensatzes betrachten über die Variable \"benachrichitigung\". \n",
"# D.h. wir blenden die Ereignisse aus, wo in der Spalte 'Notice Preference Definition' nicht \n",
"# 'Email' oder 'Print' steht."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"###### WICHTIG:\n",
"Beachte, dass die Summe der Nutzer, die per Mail informiert werden hier 390777 ergibt. Wir haben aber bei Frage 2 festgestellt, dass eigentlich 391614 Nutzer per Mail informiert werden möchten.\n",
"Dies liegt daran, dass offensichtlich in einigen Einträgen (Zeilen des Datensatzes) zwar im Feld \"Notice Preference Definition\" der Wert \"Email\" steht, aber offensichtlich im Feld \"Age Range\" kein Eintrag steht. In der Kreuztabelle werden die beiden Merkmale 'Age Range' und 'Notice Preference Definition' betrachtet und somit nur die Einträge, wo entsprechednd beide Felder ausgefüllt sind.\n",
"\n",
"(Das ist übrigens unabhängig ob man die Kreuztabelle über die \"große\" Variable \"df\" oder \"benachrichtigung\" berechnet, probiere es gerne aus!)\n",
"\n",
"----"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Email
\n",
"
0.076716
\n",
"
0.141024
\n",
"
0.055633
\n",
"
0.225443
\n",
"
0.195308
\n",
"
0.116076
\n",
"
0.044534
\n",
"
0.039506
\n",
"
0.069062
\n",
"
0.036696
\n",
"
\n",
"
\n",
"
Print
\n",
"
0.177419
\n",
"
0.092464
\n",
"
0.046997
\n",
"
0.168242
\n",
"
0.147942
\n",
"
0.094967
\n",
"
0.045606
\n",
"
0.048109
\n",
"
0.097747
\n",
"
0.080506
\n",
"
\n",
"
\n",
"
All
\n",
"
0.078536
\n",
"
0.140147
\n",
"
0.055477
\n",
"
0.224409
\n",
"
0.194452
\n",
"
0.115695
\n",
"
0.044554
\n",
"
0.039661
\n",
"
0.069581
\n",
"
0.037488
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"Email 0.076716 0.141024 0.055633 \n",
"Print 0.177419 0.092464 0.046997 \n",
"All 0.078536 0.140147 0.055477 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"Email 0.225443 0.195308 0.116076 \n",
"Print 0.168242 0.147942 0.094967 \n",
"All 0.224409 0.194452 0.115695 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"Email 0.044534 0.039506 0.069062 \n",
"Print 0.045606 0.048109 0.097747 \n",
"All 0.044554 0.039661 0.069581 \n",
"\n",
"Age Range 75 years and over \n",
"Notice Preference Definition \n",
"Email 0.036696 \n",
"Print 0.080506 \n",
"All 0.037488 "
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Nun möchten wir das prozentual betrachten:\n",
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True, normalize=0\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Antwort auf Frage 3:\n",
"\n",
" Die Frage können wir wie folgt beantworten. \n",
" Von allen Nutzern, die per Mail informiert werden möchten, sind\n",
" - ca. 8% in der Alterklasse 0 bis 9 Jahre,\n",
" - ca. 14% in der Altersklasse 10 bis 19 Jahre,\n",
" \n",
" ...\n",
" \n",
" - ca. 7% in der Altersklasse 65 bis 74 Jahre,\n",
" - ca. 4% in der Altersklasse 75 Jahre und älter.\n",
"\n",
"Im Vergleich dazu, sind von allen Nutzern, die per Post informiert werden möchten\n",
"- ca. 18% in der Altersklasse 0 bis 9 Jahre,\n",
"- ca. 9% in der Altersklasse 10 bis 19 Jahre,\n",
"\n",
"...\n",
"\n",
"- ca. 10% in der Altersklasse 65 bis 74 Jahre,\n",
"- ca. 8% in der Altersklasse 75 Jahre und älter.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 4: Wie viele Ausleihen werden im Mittel pro Altersgruppe und pro Jahr getätigt? Ist die Streuung zwischen den Gruppen gleich?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Für diese Fragestellung sind die Spalten 'Total Checkouts' und 'Age Range' relevant. Bei der ersten handelt es sich um ein metrisches Merkmal, die zweite ist ordinal.\n",
"Wir definieren eine neue Spalte, die die durchschnittliche jährliche Ausleihe eines Nutzers ausgibt.\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"df['Circulation Active Year'] = pd.to_numeric(df['Circulation Active Year'], errors='coerce')\n",
"df['Membership Duration Years'] = (df['Circulation Active Year'] - df['Year Patron Registered'])+1 \n",
"# hier werden der Einfachheit ganze Jahre angenommen\n",
"df[\"Average Checkouts per Year\"] =(df['Total Checkouts']/df['Membership Duration Years'])\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Patron Type Code
\n",
"
Patron Type Definition
\n",
"
Total Checkouts
\n",
"
Total Renewals
\n",
"
Age Range
\n",
"
Home Library Code
\n",
"
Home Library Definition
\n",
"
Circulation Active Month
\n",
"
Circulation Active Year
\n",
"
Notice Preference Code
\n",
"
Notice Preference Definition
\n",
"
Provided Email Address
\n",
"
Year Patron Registered
\n",
"
Within San Francisco County
\n",
"
Membership Duration Years
\n",
"
Average Checkouts per Year
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
1
\n",
"
Juvenile
\n",
"
0
\n",
"
0
\n",
"
0 to 9 years
\n",
"
r3
\n",
"
Richmond
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2022
\n",
"
True
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
1
\n",
"
2
\n",
"
Teen
\n",
"
0
\n",
"
0
\n",
"
10 to 19 years
\n",
"
x
\n",
"
Main
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2022
\n",
"
True
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
2
\n",
"
0
\n",
"
Adult
\n",
"
0
\n",
"
0
\n",
"
35 to 44 years
\n",
"
m4
\n",
"
Merced
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2019
\n",
"
True
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
3
\n",
"
2
\n",
"
Teen
\n",
"
0
\n",
"
0
\n",
"
10 to 19 years
\n",
"
x
\n",
"
Main
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2021
\n",
"
True
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
"
4
\n",
"
2
\n",
"
Teen
\n",
"
0
\n",
"
0
\n",
"
10 to 19 years
\n",
"
b2
\n",
"
Bayview
\n",
"
NaN
\n",
"
NaN
\n",
"
z
\n",
"
Email
\n",
"
True
\n",
"
2013
\n",
"
True
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Patron Type Code Patron Type Definition Total Checkouts Total Renewals \\\n",
"0 1 Juvenile 0 0 \n",
"1 2 Teen 0 0 \n",
"2 0 Adult 0 0 \n",
"3 2 Teen 0 0 \n",
"4 2 Teen 0 0 \n",
"\n",
" Age Range Home Library Code Home Library Definition \\\n",
"0 0 to 9 years r3 Richmond \n",
"1 10 to 19 years x Main \n",
"2 35 to 44 years m4 Merced \n",
"3 10 to 19 years x Main \n",
"4 10 to 19 years b2 Bayview \n",
"\n",
" Circulation Active Month Circulation Active Year Notice Preference Code \\\n",
"0 NaN NaN z \n",
"1 NaN NaN z \n",
"2 NaN NaN z \n",
"3 NaN NaN z \n",
"4 NaN NaN z \n",
"\n",
" Notice Preference Definition Provided Email Address \\\n",
"0 Email True \n",
"1 Email True \n",
"2 Email True \n",
"3 Email True \n",
"4 Email True \n",
"\n",
" Year Patron Registered Within San Francisco County \\\n",
"0 2022 True \n",
"1 2022 True \n",
"2 2019 True \n",
"3 2021 True \n",
"4 2013 True \n",
"\n",
" Membership Duration Years Average Checkouts per Year \n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 NaN NaN "
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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8WjRokWKjo72FRibNm2qtWvXaurUqYqLi1N2drblPgUFx/Lly5ckdJ/cXGfNrWHM4TlFnPa7Ox35jnwZGRm+lnw7C/l2FvLtLOTbWch35CtXrpwyMjJUrlw58u0w5DvyFXT0crnc5LsIfhcef/rpJ915551KT08v8vYKFSoUu/AoFV1ATExM1Pfff69atWpp+/btltsK/l2zZk0/ogYAAAAAwB5HflEMILIUdPQqaGHl96yXzz//vKpWraoXXnhBnTt31gUXXKCXX35Z1113nVwulyZPnlzsY61atUotWrTQ4sWLLdv/+OMPNWjQQK1atdIvv/yivLw8320LFixQ3bp1S7WwDAAAAAAAAIDg8rvwuHr1ag0aNEhdunRRx44dtWXLFp133nn673//qyuvvFITJkwo9rESExPVsGFDDR8+XIsXL9batWv15JNPasmSJerfv7+6d++ujIwMDR06VKmpqZozZ46mT5+ufv36+Rs2AAARwe12W1oAAAAAKKv8/tSSn5+vWrVqSZLq1q2r1NRU320XXnihVqxYUfyTu916+eWX1axZM911111KSUnR0qVLNW3aNCUlJSkhIUFTpkzR+vXrlZKSovHjx+v+++9XSkqKv2EDABAR8vPzLS0AAAAAlFV+z/F4yimnaPXq1WrZsqXq1KmjzMxMrV27VvXr11dubq727/dvBZ9q1app5MiRR709OTlZM2fO9DdMAAAAAAAAADbyu8dj165dNWrUKL3++uuKj49X06ZN9cQTT+jLL7/Uiy++qAYNGgQjTgDAUVSoUOFQW9HmSAAAQHHFxHgsLSKd6+D/XS6b4wCA0PK7x+Ott96qtLQ0LVu2TJL06KOPqk+fPho4cKAqVqzo1xyPAIDS83q9h9osmyMBAADFlZOTbWkR2WrUqKHt27epevUadocCACHld+HR7XZryJAhvn83a9ZMn3/+udatW6d69eqpYkV63ABAKOXm5lpaRLb4+GpKS9ut+PhqdocCAACKafv2bZYWAJzC78Jjgb1792rx4sXavn27LrzwQlWsWNE33A8AAARHbGycpQUAAACAsqpEhccJEyZo4sSJysrKksvlUnJyssaMGaM9e/bolVdeUeXKlQMdJwDgKNxut/Lz8+V2+z1tL8LQ1q1bLC0AAAAAlFV+f0qdMWOGxo0bp169eumdd96RMUaS1LNnT23a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AAAAgKIUq/A4aNCgQttycnIUExMjSTpw4ICys7NVtWrVgAYHAAAAAAAAIDz5PcdjTk6OHn74YV199dW+bUuWLNE555yjESNGKC8vL6ABAgAAAAAAAAg/fhcex44dq48++khXXHGFb1uTJk00ZMgQvffee5o8eXIg4wMAAAAAAAAQhoo11PpIH374oYYMGaIePXr4tlWpUkU33nij3G63Xn31VfXv3z+gQQIAAAAAAAAIL373eExLS9PJJ59c5G1169bVtm3bSh0UAAAAAAAAgPDmd+Gxfv36+uSTT4q87bPPPlOdOnVKHRQAAAAAAACA8Ob3UOtbbrlF9957r/bs2aPOnTsrISFBu3fv1ueff65PP/1UTz75ZDDiBAAAAAAAABBG/C48XnLJJdq3b5/Gjx+vTz/91Lc9Pj5e//3vfy2LzgAAAAAAAABwJr8Lj5J0zTXXqEePHlq/fr327NmjypUrq169enK7/R65DQAAAAAAACAClbhSmJ6ervXr12v16tWqVq2aNmzYIGNMIGMDAPjFZXcAAAAAAAD4lKjH44QJEzRx4kRlZWXJ5XIpOTlZY8aM0Z49e/TKK6+ocuXKgY4TAHBcfPkDAAAAACg7/O7xOGPGDI0bN069evXSO++84+vl2LNnT23atEljx44NeJAAAAAAAAAAwovfhcfXX39dffv21Z133qkmTZr4trdv31533XWXvvzyy4AGCAAAAAAAACD8+F143LJli1q3bl3kbfXq1dPOnTtLHRQAAAAAAACA8OZ34bF27dr67bffirztjz/+UO3atUsdFAAAAAAAAIDw5vfiMldeeaXGjRunuLg4dejQQZJ04MABffLJJ5o4caJ69eoV6BgBAAAAAAAAhBm/C499+vTR5s2bNWrUKI0aNUqSdNNNN0mSunbtqn79+gU2QgAAAAAAAABhx+/Co8vl0mOPPaZevXrpp59+0t69e1WpUiW1bt1aDRs2DEaMAAAAAAAAAMKM34XHAnXr1lXdunVLHcCuXbv01FNP6bvvvpPX61WrVq10//33q0GDBpKklStXasSIEfrjjz9UtWpV3Xjjjerdu3epzwsAAAAAAAAgePwuPObn5+utt97SwoULlZ6ervz8fMvtLpdL06dPL/bxBgwYILfbrcmTJ6t8+fIaO3asbr75Zn322WfKyspSr1691LlzZw0fPlxLlizR8OHDVbVqVXXv3t3f0AEAAAAAAACEiN+FxzFjxmjy5MmqXbu2TjrpJLlcLsvtxphiHystLU0nn3yyBgwY4BumPXDgQF1++eX6888/tWDBAnk8Hg0bNkzR0dGqX7++Nm7cqMmTJ1N4BAAAAAAAfjHGKDvbG7Lzeb1ZQTu2xxNbqCYDlDV+Fx7fe+89XX/99frvf/9b6pPHx8dr9OjRvn/v3LlTU6dOVa1atdSgQQONGzdOrVq1UnT04TDbtm2riRMnateuXUpISCjxuaOj3aWKPZzk5h7+XaOi3I763Z2IfDsb+XYW8u0s5NtZyLezkG9nId/2McZo+PBH9Oefq0N2zr59ewbt2ImJSXrkkccpPtqIz9/H53fhMSMjQxdccEHAA/nvf/+rd955Rx6PRxMmTFD58uW1detWJSYmWvarUaOGJGnLli0lLjy63S7Fx1codczhIisryvdzfHwFxcXF2RgNgo18O5uT/raBfDsN+XYW8u0s5NtZyLd9jDGKiYk6/o5hIjo6SvHxFSg82ojP38fnd+HxzDPP1JIlS9SmTZuABtKzZ0/16NFDb731lm677Ta9+eabysrKksfjsewXGxsrSfJ6S941Oj/fKD39QKniDSdZWYe7dqel7VdcXJ6N0SDYyLezpaXttzsEhBD5dhby7Szk21nIt7OQb3s99NCwUtUTjsfrzdLAgX0kSeedd75uuumWoJ0rNjZWe/Y4p7ZRFjn583flyuUUFXX8Hp7FKjwuWrTI93OXLl301FNP6cCBAzrjjDNUvnz5Qvu3atXKj1APKljF+vHHH9eSJUs0Y8YMxcXFKTs727JfwR+Ios7rj9zc/OPvFCHy8vItPzvpd3ci8u1s5NtZyLezkG9nId/OQr6dhXzbLzrac/ydSujIz2PXX39zkM9lJBV/nQ0EHp+/j69Yhccbb7zR0nXXGKOJEydKUqHtLpdLK1euLNbJd+3apQULFuiiiy5SVNTB7qlut1v169fX9u3bVatWLW3fvt1yn4J/16xZs1jnAAAAAAAAABB6xSo8vvbaa0E5+fbt23XvvfcqISFBZ511liQpJydHK1asUMeOHXXCCSfo7bffVl5enq8wuWDBAtWtW7dUC8sAAAAAAAAACK5iFR5bt24dlJM3atRI55xzjoYPH64nnnhClStX1ssvv6z09HTdfPPNio2N1ZQpUzR06FDdeuutWrZsmaZPn67hw4cHJR4AAAAAAAAAgeHXOt+ff/65FixYYNlmjFGfPn300Ucf+X1yl8ul559/Xm3bttVdd92lq666Snv37tUbb7yhE088UQkJCZoyZYrWr1+vlJQUjR8/Xvfff79SUlL8PhcAAAAAAACA0ClWj0djjB566CHNnTtX119/vW9YtHRwuPSKFSv0/fff66efftJjjz3mVwCVKlXSsGHDNGzYsCJvT05O1syZM/06JgAAAAAAAAB7FavH4/vvv6/3339fgwcP1pAhQyy31axZU999953uuusuzZo1q0Q9HwEAAAAAAABElmIVHt9++21dc8016t27t2JiYgofxO1Wv379dPHFF2vGjBkBDxIAAAAAAABAeClW4XHdunU677zzjrvf//3f/2nt2rWlDgoAAAAAAABAeCtW4dEYo6ioqOPuV6FCBeXm5pY6KAAAAAAAAADhrViFxzp16mjZsmXH3W/JkiU68cQTSx0UAAAAAAAAgPBWrMLjpZdeqtdee02bNm066j6bNm3Sa6+9pk6dOgUsOAAAAAAAAADhqViFx+uuu061atVSjx499Morr2jdunXKzs5WVlaW1q5dq2nTpunqq69W5cqVdfPNNwc5ZAAAAAAAAABlXXRxdvJ4PJo6daruv/9+PfPMM3r22WcttxtjdO6552r48OGqWrVqMOIEAAAAAAAAEEaKVXiUpISEBE2dOlWrVq3St99+q23btsnlcunkk0/WOeecowYNGgQzTgAAAAAAAABhpNiFxwKNGjVSo0aNghELAAAAAAAAgAhRrDkeAQAAAAAAAMAfFB4BAAAAAAAABByFRwAAAAAAAAABR+ERAAAAAAAAQMCVqvC4b98+rV27VtnZ2crLywtUTAAAAAAAAADCXIkKjwsXLtRVV12l1q1bq2vXrvrzzz9177336qmnngp0fAAAAAAAAADCkN+FxwULFqh3796Ki4vT4MGDZYyRJDVu3Fivvfaapk2bFvAgAQAAAAAAAISXaH/v8Pzzz6tTp04aO3ascnNz9eyzz0qS+vbtq4yMDL377rvq1atXwAMFAAAAgFAwxig72xuy83m9WUE7tscTK5fLFbTjAwBwLH4XHleuXKnbbrtNkgq9gbVr107Tp08PTGQAAAAAEGLGGD3xxCNKTV0TsnP27dszaMdu2DBJQ4cOp/gIALCF34XH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jxUfH69JkyZZ7uNyuWSM0d69e/XHH3+oVatWio4+HGbbtm01ceJE7dq1SwkJCf6G7xMd7Xdnz7CVm3v4d42Kcjvqd3ci8u1s5NtZyLezkO/Ixvu3s5BvZyHfzkK+nYV8H5/fhcc777xTN998sy6//HKdd955crlcmj9/vsaNG6fvv/9eU6ZMKfaxKleuXKiA+fHHH+uvv/7SOeecozFjxigxMdFye40aNSRJW7ZsKXHh0e12KT6+QonuG46ysqJ8P8fHV1BcXJyN0SDYyLezOelvG8i305DvyMb7t7OQb2ch385Cvp2FfB+f34XHli1batq0aXruuec0ZcoUGWP06quvqnHjxpo4caLatm1b4mB++eUXPfTQQ+rUqZM6duyoJ598Uh6Px7JPbGyspINDvksqP98oPf1Aie8fbrKysnw/p6XtV1xcno3RINjIt7Olpe23OwSEEPl2FvId2Xj/dhby7Szk21nIt7M4Od+VK5dTVNTxe3j6XXiUpFatWuntt99WVlaW9u7dq4oVK6pChdJ9C//5559r8ODBOv300zV69GhJUlxcnLKzsy37FRQcy5cvX6rz5ebml+r+4SQvL9/ys5N+dyci385Gvp2FfDsL+Y5svH87C/l2FvLtLOTbWcj38fldeOzatasuv/xyde3aVTVr1gxIN9IZM2ZoxIgR6tKli0aNGuXr5VirVi1t377dsm/Bv2vWrFnq8wJAsBljlJ1d8h7a/vJ6s46/Uwl5PLFyuVxBOz4AAAAAILL4XXisX7++xo8fr9GjR6t169a64oor1KVLlxL3eHzzzTf1+OOP68Ybb9RDDz0kt/twN82CnpV5eXmKijo4bn7BggWqW7duqRaWAYBQMMboiSceUWrqmpCds2/fnkE7dsOGSRo6dDjFRwAAAABAsfi93M7zzz+vH3/8USNHjpTH49HDDz+sc845R/fee6++/fZb5ecXv1vp+vXrNXLkSHXp0kX9+vXTrl27tGPHDu3YsUP79u1T9+7dlZGRoaFDhyo1NVVz5szR9OnT1a9fP3/DBgBbUKQDAAAAADhVieZ4LF++vK644gpdccUVSktL0//+9z/973//08CBA1W1alV9//33xTrOJ598opycHH322Wf67LPPLLelpKToqaee0pQpUzRixAilpKSoevXquv/++5WSklKSsAEgpFwul4YOHR7UodZe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deumL7744qj7T5gwQUlJSaU6pxMUJ98PPvigkpKSLP+de+65Rz1mIPJ94MABPf744zrnnHN0+umn6/rrr9evv/561P3Jd/Hs2rVL9913n9q2basWLVqob9++Sk1NtexjR76PtHv3bp1zzjkaN27cUfch3/5bv369WrRooTlz5li225HvnJwcNW3atNB5x4wZU+T+5Lt4/v7770KPaVJSkt59913fPmU131yvlczcuXN18cUXq1mzZrrkkkv08ccfW2636/r8m2++Ubdu3dSsWTN17tz5mMfk9V18x8t3qF/fmzdvLvJvTlJSkho1alTkfZyY74ULFx71cerUqZNvP3/z53RJSUmFrmnCgkFAjRs3zpx11lnm66+/NitXrjS33HKL6dKli/F6vUe9T2Jiopk9e3aJz/nXX3+Z008/3QwcONCsWrXKLFy40Fx44YVm6NChJT4mDps2bZpJSkoyN9xwg2X77t27TZs2bczQoUNNamqqmTVrlmnWrJmZNWvWUY81btw4c/755wckrg8//NA0adKk0PF4PpRMr169zGWXXWYWLVpk1q5dax5//HGTnJxsUlNTjTH25Xvo0KGmQ4cO5ttvvzUbNmwwL7/8smnUqJH56aefCu27dOlS07hxY5OYmFiqczrB8fJtjDEpKSlm9OjRZvv27b7/du3addRjBiLfd911l7nwwgvNokWLzIYNG8zw4cPN6aefbrZu3VpoX/JdfFdddZXp0aOHWbZsmUlNTTWDBg0y7dq1MwcOHPDtY0e+jzRw4ECTmJhoXnjhhSJvJ9/+y87ONt26dSvyOsuOfK9atcokJiaalStXWs6bkZFRaF/yXXxffPGFadasmdm2bZvlcc3MzPTtUxbzzfVaycydO9ecdtpp5tVXXzUbNmww48ePN40aNTK//vqrMca+67WFCxea0047zTz33HNm48aN5u233zannXaa+fDDDwvty+u7+I6Xb2NC//rOzc21nGv79u1m+fLlpkWLFmb06NGF9ndqvr1eb6HH6fvvvzeNGzc277zzjm8/f/PndKWtHdmFHo8BlJ2drVdeeUWDBg3Seeedp0aNGmnMmDHatm2bPvvss6Cdd8aMGapatarGjBmjpKQktW7dWiNGjNCsWbO0ZcuWoJ030m3btk233nqrxo4dq7p16xa6/Z133pHH49GwYcNUv359de/eXTfffLMmT5581GMaY0odV0ZGhgYPHqz77rtP9evXL3Q7zwf/bdy4UT/88IMeffRRtWzZUvXq1dPQoUNVs2ZNzZ8/X5I9+c7MzNTcuXN1zz33qH379qpTp4769eunNm3aaPbs2ZZ9Dxw4oPvuu08tW7Ys1TmdoDj5zsvLU2pqqpo1a6bq1av7/qtWrdpRj1vafOfm5iouLs4XV506dXT33XcrMzOzUK9H8l18aWlpOvnkk/X444+rWbNmql+/vgYOHKgdO3bozz//lGRPvo80c+ZMrV+/XtWrVy/ydvJdMuPGjVOFChUKbbcr32vWrFGlSpXUqFEjy3n/HSP59s+aNWtUt25d1ahRw/K4xsXFSSq7+eZ6zX/GGI0dO1Y9e/ZUz549VadOHd122206++yz9fPPP0uy7/p83Lhx6ty5s+655x6dcsop6tGjh6644opCoyl4fRdfcfJtx+s7KirKcq7q1avrueeeU2Jiou68807Lvk7Ot8fjsTxGVatW1ZNPPqkLLrhAV111laSS5Q/hicJjAK1atUr79+9X27ZtfdsqV66sxo0ba9GiRUXep6DL9YMPPqgHHnhAkvTPP/9o8ODBateunZo3b67evXtr9erVRz3v+vXrlZycLI/H49vWuHFjGWOKPO+qVauUlJRU6La7775bt99+uyRp3759+u9//6u2bdvqzDPP1E033aTff//dt68xRlOmTNFFF12kpk2b6swzz1S/fv20adMmy+82ZswYnX/++WrXrp3WrVunZcuW6brrrlOLFi3UqlUrDRo0qMxeXC1fvlxVqlTRvHnzdPrppxe6ffHixWrVqpWio6N929q2bav169dr165dhfYfN26cxo8f7xsStHnzZkkHhw9cdtllSk5OVseOHfXyyy8rPz//qHFt3rxZe/fu1axZs9S5c+dCt/N88F98fLwmTZqkpk2b+ra5XC4ZY7R3715J9uTb5XLp5ZdfVvv27QvdVhBXgREjRigxMVGXX375MX9X8l28fG/YsEFer7fI4n5RApHv6OhoPfnkkzrrrLMkSenp6XrppZdUoUIFNW/e3LIv+S6++Ph4jR49Wg0bNpQk7dy5U1OnTlWtWrXUoEEDSfbku8D69es1atQoPfvss5a/20ci3/5btGiRZs6cqaeffrrQbXble/Xq1b7n3LGQb/8c73Etq/nmes1/69at099//62uXbtatk+dOlX9+vWTZM/1WmZmphYvXlworpEjR+qRRx6xbOP1XXzFybed798FPv/8cy1YsEDDhg2T220tr5Dvw9544w39888/evDBB33b/M3f559/rkaNGunvv/+2bL/66qv15JNPSjrYeejuu+9Wy5Yt1aZNG/Xv318bNmzw7Zudna3nnntOnTt3VtOmTdWmTRvdc889SktLk3R4KP1LL72kdu3aqWPHjkpPT/dNpXD66afrrLPO0gMPPFDo89iR/vzzTw0cOFBt2rRR06ZN1aVLF02fPt13+7hx43TjjTdq8uTJOvfcc9WsWTPddNNNWrdunW+frVu3asCAAWrRooU6dOigDz/88LiP0dq1a9W/f3+1adNGZ555pu644w5fPufMmaNmzZopPT3dcp8LL7xQzz//fLEevwceeEC33367brnlFp1xxhmaOHHicWOSxFDrQPrkk09MYmKiZWiHMcbccccdpm/fvkXeZ/v27SYxMdG8+uqrJj093ezbt8+cd9555oYbbjBLly41K1euNLfffrtp2bKl+fvvv4s8xkMPPWSuvPJKy7Y///zTJCYmmqlTpxZ5nyuuuMI89NBDvn+np6ebZs2amS+++MLk5+ebHj16mBtuuMEsWbLEpKammueee840adLELF++3BhzcPhxy5YtzRdffGE2b95sfvrpJ9OlSxczcOBA3zETExNNmzZtzLJly8xvv/1m8vLyTNu2bc3o0aPNX3/9Zf744w/TrVs307Nnz+M+tnYbMmRIoaHWl156qXnmmWcs2woe92XLlhU6RkZGhnnqqafMueeea7Zv325yc3PNtGnTTNOmTc2MGTPM+vXrzbx580zLli3Nk08+Way4XnjhhUJDBXg+BMZHH31kEhMTzRdffGGMKRv5NsaYJUuWmKSkJPPaa6/5tn366aemXbt2Zvfu3Wb27NnHHcpBvgv7d74/+ugjk5SUZB599FFz/vnnm06dOpnHHnvMpKenF3n/QOd7woQJJjEx0SQlJRUaHka+S+7hhx82iYmJpmnTpua7777zbbcr39nZ2SYlJcVMmDDBGGPM+eefX2ioNfn23969e02HDh3MvHnzfPEeOSzJrnz36dPHdO/e3dxyyy3mrLPOMikpKWbu3LmWfci3/y6++GLTs2dPc+2115qzzjrLXHPNNebbb7/13V5W8831mv8+//xzk5iYaBYtWmRuueUW07ZtW3PllVf63ruNsed6beXKlb5riEGDBpm2bduayy67zDKc1Bhe3/4qTr7tvl4z5uBz7v777y+0nXwflpWVZdq0aWPGjh1r2e5v/nJycszZZ59tXnzxRd+2devW+aa12L9/v+nSpYsZNGiQWblypVm9erV54IEHTKtWrXzTFj3++OOmQ4cO5qeffjKbN282X331lWndurUZMWKEMcaYTZs2mcTERHPhhReaP//80yxbtszs2rXL9xzZvHmzWbx4senYsaMlX0c6cOCAadeunbn33ntNamqq2bBhg3nuuedMYmKiWbFihTHm4Of4Jk2amD59+piVK1eaxYsXm06dOpmbbrrJ97tecsklpkePHuaPP/4wv/76q7n88suPOdR68+bN5swzz/T9/kuXLjXXXXedOf/8882+ffvM/v37TfPmzS1/m5YsWWISExPN+vXri/X4DRkyxCQmJprJkyebdevWmS1bthw3/8YYQ+ExgObOnWsSExNNXl6eZft99913zBfvkU+eN954wyQnJ1vmNcjKyjLnnHNOoTfRAosWLTJJSUlm4sSJJisry2zbts3cdNNNpnHjxr4PM//2+uuvmzPPPNNkZWUZY4yZOXOmOfvss01OTo758ccfTWJiYqG5Fa6//nozZMgQY8zB+XQ+//xzy+2jR482nTp1svxeI0eO9P17z549JikpycyYMcPk5+cbYw7Ob/Pbb78d9bEpK4oqPHbu3Nk8//zzlm1//fWX7w2yKEcWCvPz883ZZ59tnnrqKcs+r732mmnSpMlR/+Ae7XgFeD6U3uLFi03z5s3NgAEDfNvKQr7Xrl1r2rVrZ7p37+6bN3br1q2mTZs25ptvvjHGmGJd2JBvq6LyPXbsWHPaaaeZSZMmmdWrV5tPP/3UdOrUydxwww2F/sYXCGS+N2zYYFasWGFGjx5tGjVqZL788ktjDPkurT///NP8/vvv5qGHHjLJycnmjz/+MMbYl+9Ro0aZa665xuTm5hpjChceyXfJ3H333eauu+7y/fvfF+l25btDhw6mc+fO5ptvvjErVqwwL730kjnttNPMu+++a4wh3yXh9XpN48aNTffu3c3ChQvN77//bkaMGGGSkpLMjz/+aIwpu/nmes1/BZ+1OnbsaObMmWNWrFhhxowZY8m3HddrixYtMomJiaZdu3Zm+vTpZsWK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ww8/6P3331ezZs18E+8nJiYqIyND2dnZqlOnju+/yZMn64svvpAkTZgwQbfffruGDRumHj16qHnz5tqwYcMxVwlbt26dHn30USUkJOjaa6/VCy+8oClTpmjt2rVatWpVsR6fsqRVq1b65ZdffG9MkrRgwQLVrVtXCQkJRd7nyD8ECQkJSkhI0C+//GLZZ/HixYqJibEUr/3B86Fk3nzzTT3++OO6/vrr9fzzzxd6I7Ar319++aXuuusudejQQdOmTbO8OdesWVOffvqp5s2bp7lz52ru3Lm64447JB38ZvGaa6456u9Lvo+d73vvvVe9e/e2bCuYwPtof4tLm+/c3Fzdfffd+vTTTy3bly1bpgYNGpDvEtq+fbvuvfde3wqYkpSTk6MVK1b4eijYke/Bgwfr448/9uVy7ty5qlGjhq655hrNnTuXfJfQqFGj9NFHH1keV0m64447NGnSJEn25HvPnj1q2bKl3n///ULnbdiwIfkuoVWrVqlFixaFVg4+8rq5LOZb4nqtJBo3bqwKFSpo6dKllu1r1qzx5cGO67WaNWvqlFNOOWpcvL5Lpjj5tuP1XSA1NVXp6emWhWUlrs//7ddff5XL5SrUi04qWf6kg4/Tp59+qk8//VSdOnXy9RpMTEzUli1bVKlSJd9jdNJJJ+m5557TokWLlJaWprfeekvDhg3TQw89pG7duum0007TunXrjvk4LVmyRCNHjlS9evV08803a9KkSRo5cqQWLlxY5KJVH3zwgfbs2aO3335bAwcOVJcuXXwL0RzrPEdq3Lix0tPT9eeff/q2rV+/Xvv27TvqfRITE7Vs2TJLr++dO3dq48aNvmtel8ulK664Qp988ok+/PBDde7c2dfL/niPX2lQeAwgj8ejG264QaNGjdIXX3yhVatW6e6771atWrXUpUuXo96vfPnyWrt2rdLS0tS1a1dVrlxZd911l5YtW6ZVq1bpvvvu04EDB9SjR48i79+wYUN9++23eumll7R582Z98sknevzxxzVw4EBVqFDhqOc9++yzdcIJJ2jy5Mnq1q2bb3v79u112mmn6a677tKCBQu0ceNGPf3005o9e7bvCVu7dm398MMPSk1N1bp16zRmzBh9+umnhYY2HKlq1aqaP3++HnnkEa1du1br16/X7NmzVaVKFdWrV+94D2+Z0717d2VkZGjo0KFKTU3VnDlzNH369CK/zSlQvnx57d27V+vXr1dubq5uueUWzZgxQ2+88YY2btyoDz74QOPHj1ePHj2OOszmeHg++G/9+vUaOXKkunTpon79+mnXrl3asWOHduzY4fvjbke+9+7dqyFDhqhJkyYaOnSo9u7d64trz549io6Otlx81KlTx3dRXadOHUvX/X8j38fO96WXXqoffvhBEyZM0F9//aVvvvlGDz30kC699NKjrrxX2nxXrVpVV111lcaMGaNvvvlG69at08iRI7V06VINGDCAfJdQo0aNdM4552j48OFavHix1qxZoyFDhig9PV0333yzJHvynZCQUCif0dHRqlKliu9n8u2/mjVrFnrcpIOP90knnSTJvtf32WefrdGjR+u7777Thg0bNGnSJM2bN0+DBg0i3yWUmJiohg0b+l7fa9eu1ZNPPqklS5b4ehSVxXxLXK+VRFxcnG699Va9+OKLmj9/vv766y9NmDBBP/zwg3r16iXJvuvz22+/XTNnztQbb7yhTZs2aebMmZo9e7Z69+7N67uEipNvO17fBVatWiWPx6O6detatpNvq1WrVuk///lPkUOES5I/Sbrkkku0b98+zZo1y/I4XXbZZapSpYpuv/12LVmyRGvXrtWDDz6ob775Rg0bNlSlSpVUqVIlffHFF9q4caNWr16t//73v1q+fPkxH6eKFSvqzTff1LPPPuu734cffqhTTz210PBx6WBv3czMTH388cfasmWLvv/+e91zzz2SdMzzHKlNmzY6/fTTdf/992vJkiX6/fff9cADDxRaOf1I1157rTIyMjR48GCtWrVKy5Yt05133qn4+Hhfr1Dp4HDr5cuX64svvvBNY1Ccx69U/J4VEseUm5trnnnmGdO2bVvTvHlz06dPH7Np06Zj3ueFF14wycnJpn///saYg4sKDBgwwLRo0cK0aNHC3HrrrWbVqlXHPMbXX39tunbtapKTk80FF1xgZsyYUax4R48ebZo1a2b27t1r2b5r1y7zwAMPmDZt2pjk5GSTkpJiPvvsM9/tf/zxh7n66qtNcnKyOeuss0z//v3NW2+9ZZKSkny/b1ETn/7666/m+uuvN2eccYY5/fTTTc+ePX2T+5dlRS0uY4wxS5cuNVdffbVp2rSpOf/8883rr79+zONs2rTJXHjhhaZp06ZmyZIlxhhjpk+fbrp06WKaNGliOnXqZCZOnOhbaOB4ilpcxhieD/4qWEG4qP8KJmw2JvT5njdv3lHjKur5aEzxJq8uQL6Pne///e9/5oorrjDJycmmXbt25qmnnvJN+F2UQLy+vV6vGT16tOnQoYNp2rSp6dGjx1EnwzeGfBdXenq6efTRR027du1McnKyueWWW8yaNWss+9iR738ralXrI5HvkikqXjvyvX//fvPUU0+Z8847zzRt2tRcfvnllsf+38h38ezatcs8+OCDpl27dqZZs2ZF/t0sq/nmeq1kXnnlFdOxY0fTpEkTc9lllxV6XO26Pp87d6656KKLTJMmTcwFF1xQaFXrI/H6Lr7j5duu9+9JkyaZdu3aFet3cHK+H330UXP11Vcf9XZ/81fg3nvvNe3bty+Up7/++svcfvvt5swzzzTNmzc31157reU94fvvvzeXXnqpadasmTnnnHPMvffea15++WXTvHlzs3//ft/iMj/99JPluF9++aXp1q2bad68uTnjjDPMwIEDLQu/HCk/P988++yz5uyzzzbJycnmoosuMq+88oq5/vrrzQMPPGCMKfpz/L+fJ7t37zb33HOPadGihTnrrLPMq6++as4+++yjLi5jjDG///676dmzp0lOTjYtW7Y0d955p/n7778L7dezZ0/Tvn37Qov4HO/xO1pd5HhcxhSzryci0oMPPqicnByNGjXK7lBQBvB8cBby7Szk21nIt7OQb2ch385Cvp2FfBfPTTfdpBYtWhSaYxNlE4vLOFRBN+z58+frjTfesDsc2Izng7OQb2ch385Cvp2FfDsL+XYW8u0s5Lt4Pv/8c61cuVK//fabnn76abvDQTFReHSo2bNn6+uvv9agQYOUnJxsdziwGc8HZyHfzkK+nYV8Owv5dhby7Szk21nId/FMnjxZGzZs0OOPP67atWvbHQ6KiaHWAAAAAAAAAAKOVa0BAAAAAAAABByFRwAAAAAAAAABR+ERAAAAAAAAQMBReAQAAAAAAAAQcBQeAQAAAAAAAAQchUcAAACHu//++5WUlKRJkyaF9Lzjxo1TUlJSof+aN2+uiy66SC+88IJyc3NDGhMAAAACJ9ruAAAAAGCfjIwMffrpp0pMTNQ777yjPn36yOVyhTSGmTNnWv6dlpam+fPn68UXX1ROTo7uvffekMYDAACAwKDwCAAA4GAffvih8vLy9PDDD+umm27S999/r/bt24c0hubNmxfadv7552vz5s2aNWsWhUcAAIAwxVBrAAAAB5s9e7batGmjNm3aqG7dunr77bcL7TN16lR16tRJycnJuuaaa/Tll18qKSlJCxcu9O2zZs0a9evXT2eccYbOOOMM3Xbbbdq0aVOpYqtYsWKhbe+++666deum5s2bKzk5WZdffrk++ugj3+1z5sxR48aNtXTpUvXo0UPNmjVThw4dNHnyZMtxtm/frrvvvlutW7dWq1at9Mgjj2jMmDHq2LFjofNdcsklatq0qTp06KBx48Yx/BsAAKCYKDwCAAA41Nq1a7V06VKlpKRIkrp166avvvpK27Zt8+0zfvx4jRo1ShdddJFeeuklnX766br77rstx1m/fr2uueYa7dq1S0899ZRGjBihTZs26dprr9WuXbuOG0dubq7vv+zsbG3fvl3Tpk3TDz/8oCuuuMK33xtvvKFHHnlEnTp10sSJE/Xss88qJiZG9913n7Zs2eLbLz8/X3fddZcuvvhiTZo0SWeeeaZGjRql7777TpKUnZ2tnj176tdff9VDDz2kJ598UqtWrdIrr7xiiWvixIn673//q7POOksvv/yyrr/+ek2ePFmPPPKI3481AACAEzHUGgAAwKFmzZqlypUrq3PnzpKkK664Qs8//7zeffdd3X777Tpw4IAmT56s66+/XoMHD5YknXPOOcrMzLTMyzh+/HjFxcXp1Vdf9fVSPOuss9S5c2dNmTJFQ4YMOWYcTZo0KbTtxBNP1KBBg9S3b1/ftk2bNumWW27Rbbfd5tt28sknq1u3bvr111914oknSpKMMRo4cKCuuuoqSdKZZ56pzz77TF9//bXat2+vefPmad26dZo9e7aaNm0qSWrbtq3vcZCkffv2acKECerRo4cefvhh3+9etWpVPfzww+rVq5caNmxYzEcaAADAmSg8AgAAOFBubq7mzZunzp07y+v1yuv1Ki4uTm3atNG7776rAQMGaMmSJcrKytL//d//We576aWXWgqPP/30k9q0aaO4uDjfMOSKFSuqZcuW+vHHH48by6xZsyRJ+/fv12uvvaaFCxdq6NChlkKgJD3wwAOSDhYFN2zYoA0bNmjBggWSpJycHMu+LVq08P3s8XhUrVo1HThwwBfvf/7zH1/RsSDe888/3zd8/LffflNmZqY6duxoGVpdMBT7hx9+oPAIAABwHBQeAQAAHOjrr7/Wzp07NWfOHM2ZM6fQ7V999ZWysrIkSdWqVbPcdsIJJ1j+vWfPHn300UeWuRYL/Pu+RWnWrJnv59atW6t379666667NG3aNLVq1cp3219//aVHHnlEP/30k6Kjo1WvXj0lJSVJOtjL8UhxcXGWf7vdbt8+aWlpSkhIKBTHkb/Xnj17JMnS4/JI27dvP+7vBQAA4HQUHgEAABxo1qxZOumkk/Tkk08Wuu2OO+7Q22+/rf79+0uSdu/erXr16vlu3717t2X/SpUq6eyzz1avXr0KHSs62r/LTbfbrZEjR+riiy/Wgw8+qA8//FCxsbHKz89X3759FRMTo3feeUeNGzdWdHS0UlNTNW/ePL/OUbNmTW3cuLHQ9iPno6xcubIkadSoUTr11FML7fvv4isAAAAKY3EZAAAAh9m5c6e+++47XXLJJb4VrY/87+KLL9YPP/ygSpUqqVKlSvr0008t9//kk08s/27durVSU1N12mmnqVmzZmrWrJmaNm2qV199VZ999pnf8dWuXVsDBgzQpk2bNGnSJEkHeymuX79eV155pZKTk30FzW+//VbSwQVliqt169batGmTVq5c6dvm9Xp9x5Kk008/XTExMdq2bZvvd2rWrJliYmL03HPPafPmzX7/XgAAAE5Dj0cAAACHee+995Sbm6tLLrmkyNtTUlL05ptvav78+br11lv1wgsvqFy5cmrdurV+/vlnvfXWW5IO9k6UpIEDB+qaa65Rv379dO211yo2NlYzZ87U559/rhdeeKFEMd58882aNWuWJk+erCuuuEL/+c9/dNJJJ+mNN95QrVq1VLlyZX3//feaPn26JCkzM7PYx7700ks1adL/t3e/Lq2GYRzGrxemQXCwJDMOlLFgMaxYtyiCzSjKGIpbcQyTwSYIL/gDjkwQXBQNC4J/wWDBMhBEi2mIRUQwyE448IbDEQ7jhaFen/iEh/uuX577uX+xtrZGpVIhmUxycnLC8/NztKAmlUqxsrJCGIa8vr6Sz+fp9XqEYUgQBGSz2YH6kiRJ+kl88ShJkvTDXFxcMDU19Wl4NjMzQyaT4fz8nOXlZdbX17m8vKRUKtHpdKIN12NjYwBks1mazSZBEFCr1djY2ODp6YmDgwOKxeJANY6OjrK1tcX7+3s0Dn54eMjExAT1ep1qtcrNzQ1HR0dkMhk6nc5/351IJGg0GuRyOba3t6nVakxPT1MoFKKeAKrVKvV6nevra1ZXV9nd3WV2dpazszPGx8cH6kuSJOknCfp//8QtSZIk8WfzdavVIp/Pk06no/Nms8nOzg7tdjv6C/Erubu74+HhgWKxSBAE0fni4iLpdJr9/f0hVidJkvR9OGotSZKkf0okEhwfH3N6ekq5XCaVSnF7e0sYhiwsLHzJ0BHg7e2NSqXC0tIShUKBj48PWq0W3W6Xzc3NYZcnSZL0bfjiUZIkSZ96fHxkb2+PdrvNy8sLk5OTzM/PUyqVGBkZGXZ5A7u6uqLRaHB/f0+/3yeXy1Eul5mbmxt2aZIkSd+GwaMkSZIkSZKk2LlcRpIkSZIkSVLsDB4lSZIkSZIkxc7gUZIkSZIkSVLsDB4lSZIkSZIkxc7gUZIkSZIkSVLsDB4lSZIkSZIkxc7gUZIkSZIkSVLsDB4lSZIkSZIkxe43x2dgswPAiXUAAAAASUVORK5CYII=\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib inline\n",
"sns.set()\n",
"plt.figure(figsize=(16, 6))\n",
"my_order =['0 to 9 years', '10 to 19 years', '20 to 24 years', '25 to 34 years', '35 to 44 years', '45 to 54 years', '55 to 59 years', '60 to 64 years', '65 to 74 years', '75 years and over']\n",
"\n",
"plt = sns.boxplot(y='Average Checkouts per Year', x='Age Range', data=df[df['Average Checkouts per Year']"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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hg4dmh49eqRjx47p379/pkyZUqvPysYAAAAAAICyB+Ynnnhipk6dmmHDhuWee+5JkyZNcvTRR2fBggWZNWtWjjnmmHz5y1/OyJEjM2DAgFxzzTUZOXJkaf/rr78+d911V376059mxIgRqaioyHHHHZfFixcnySqNAQAAAAAAjcr54rNmzcoXv/jFnHjiidl+++2TJCeddFK+8Y1v5KWXXsrTTz+dxo0b5+KLL06jRo2y3XbbZcqUKRk2bFj69u2bxYsX55ZbbsnAgQOz5557JkmGDBmSHj165OGHH84BBxyQu++++yPHAAAAAACApMx3mLdo0SKDBw8uheXvvPNOhg8fnlatWuUrX/lKxo4dm65du6ZRo//L9bt3757JkydnxowZmTBhQt5777107969tL158+Zp27ZtxowZkyQrHQMAAAAAAJIy32H+YT/84Q9Ld4PfcMMNadq0aaZNm5bq6upa/TbffPMkyRtvvJFp06YlSbbccss6fd58880kWekYLVu2rPecGzUq+4o2fEpVVamtTwPHkbWRulz3NdQxVCufDo4jAACsnrUmMD/qqKNy6KGH5je/+U1OPvnk/PrXv87ChQvTuHHjWv3WX3/9JMmiRYuyYMGCJFlunzlz5iTJSseor8rKirRosWG99wc+/Zo336DcUwA+hZxbWB3qBQAAVs9aE5h/5StfSZJccsklefbZZ3PHHXekSZMmpYd3LrMs5G7atGmaNGmSJFm8eHHp78v6bLDBB78crGyM+qqpKTJ37vx67w8fpaqq0i+4nwJz5y7I0qU15Z4G1OL8su5rqHOLWvl08LMIAAA+sKo3P5c1MJ8xY0aefvrp7LfffqmqqkqSVFZWZrvttsv06dPTqlWrTJ8+vdY+y77eYostsmTJklLbVlttVatPmzZtkmSlY3wcS5b45QNYsaVLa5wngDXOuYXVoV4AAGD1lHVRw+nTp+fMM8/M3//+91Lb+++/n3HjxmW77bZL165d849//CNLly4tbX/66aezzTbbpGXLlmnTpk022mijjB49urR97ty5GTduXLp06ZIkKx0DAAAAAACSMgfmbdq0yR577JEf//jHGTt2bF588cWcc845mTt3bo4++uj07ds38+bNywUXXJCJEyfm3nvvze23357jjz8+yQdrl/fr1y+DBg3Ko48+mgkTJuT0009Pq1at0rt3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oK/HmtXQ9dJ8g2YN+nqsWQ1dL+s3d35ZVzV0rWzoumWd1tD10nQj55Z1WUPWy3pNG6+8E2utBj+3NG3aoK/HmtXQ9dJ4/Q0b9PVYcxq6Vpo18bNoXfZJ1stnYkmWZXeV//cDPhctWpQNNtigHFMCAAAAAGAt85kIzLfccsskyfTp02u1T58+Pa1atSrHlAAAAAAAWMt8JgLzNm3aZKONNsro0aNLbXPnzs24cePSpUuXMs4MAAAAAIC1xWdiDfPGjRunX79+GTRoUDbddNN84QtfyJVXXplWrVqld+/e5Z4eAAAAAABrgc9EYJ4kp556apYsWZILL7wwCxcuTNeuXTN8+PA6DwIFAAAAAOCzqaIoiqLckwAAAAAAgHL7TKxhDgAAAAAAKyMwBwAAAACACMwBAAAAACCJwBwAAAAAAJIIzAEAAAAAIInAHAAAAAAAkgjM10k1NTUZOnRoevTokY4dO6Z///6ZMmXKR+7zj3/8I2PHjv1Yr/vCCy/kyCOPzE477ZSePXvm2muvzdKlSz/WmKw5119/fb773e/WaR8/fnz69euXTp06pWfPnhk+fPhHjjN//vzceeeda2xev//979OrV6867eqpYc2ePTsXXXRRvvrVr2annXbK4YcfXuecUI5aWbhwYa666qr06tUrnTt3ziGHHJJHH310hf1vuOGGtG7d+mO9Jiu3KvVy3nnnpXXr1rX+fPWrX13hmGuiXubPn59LLrkke+yxRzp27JgjjjgizzzzzAr7q5eGMWPGjAwcODDdu3dP586d8/3vfz8TJ06s1acc9fJhM2fOzB577JFrr712hX3US8OaPHlyOnfunHvvvbdWezlq5f3330+7du3qvO6QIUOW21+tNIzXX3+9zjFp3bp1fvvb35b6rK314jq34Y0aNSr7779/2rdvnwMOOCB//OMfa20v1+9Ejz/+eA455JC0b98+++yzz0eO6dzScFZWLw19bnnttdeWe75r3bp12rRps9x91MvqGT169Arf47333rvUb3WP/Wdd69at61zLfWoUrHOuvfbaYtdddy0ee+yxYvz48UX//v2L3r17F4sWLVrhPtXV1cXIkSPr/Zqvvvpq0bFjx+Kkk04qJkyYUIwePbr42te+VlxwwQX1HpM159Zbby1at25d9OvXr1b7zJkzi27duhUXXHBBMXHixOKee+4p2rdvX9xzzz0rHOvaa68t9tprrzUyrwceeKDYcccd64ynnhreMcccUxx00EHFmDFjikmTJhWXXHJJ0aFDh2LixIlFUZSvVi644IKiZ8+exRNPPFG88sorxS9/+cuiTZs2xd/+9rc6fZ977rmibdu2RXV19cd6TVZuZfVSFEXRp0+fYvDgwcX06dNLf2bMmLHCMddEvZx22mnF1772tWLMmDHFK6+8Uvz4xz8uOnbsWEybNq1OX/XScL71rW8Vhx56aPH8888XEydOLAYMGFDsvvvuxfz580t9ylEvH3bSSScV1dXVxdChQ5e7Xb00rMWLFxeHHHLIcq9Py1ErEyZMKKqrq4vx48fXet158+bV6atWGs6jjz5atG/fvnjrrbdqHZcFCxaU+qyN9eI6t+GNGjWq2GGHHYrbbruteOWVV4rrrruuaNOmTfHMM88URVG+69zRo0cXO+ywQ3HVVVcVU6ZMKe66665ihx12KB544IE6fZ1bGs7K6qUoGv7csmTJklqvNX369OKFF14oOnfuXAwePLhOf/Wy+hYtWlTnPX7yySeLtm3bFnfffXep3+oe+8+6j5s1rs3cYb6OWbx4cW655ZYMGDAge+65Z9q0aZMhQ4bkrbfeysMPP/yJve4dd9yRTTbZJEOGDEnr1q2zyy675NJLL80999yTN9544xN7XT7aW2+9lWOPPTbXXHNNttlmmzrb77777jRu3DgXX3xxtttuu/Tt2zdHH310hg0btsIxi6L42POaN29ezjrrrAwcODDbbbddne3qqWFNmTIlTz31VH70ox+lS5cu2XbbbXPBBRdkiy22yP3335+kPLWyYMGCjBo1KmeccUZ69OiRrbfeOscff3y6deuWkSNH1uo7f/78DBw4MF26dPlYr8nKrUq9LF26NBMnTkz79u2z2Wablf5suummKxz349bLkiVL0qRJk9K8tt5665x++ulZsGBBnbvM1UvDmTVrVr74xS/mkksuSfv27bPddtvlpJNOyttvv52XXnopSXnq5cNGjBiRyZMnZ7PNNlvudvXS8K699tpsuOGGddrLVSsvvvhimjVrljZt2tR63f+eo1ppWC+++GK22WabbL755rWOS5MmTZKsvfXiOrdhFUWRa665JkcddVSOOuqobL311jn55JOz22675e9//3uS8v1OdO2112afffbJGWecka222iqHHnpoDj744Dqf2nNuaTirUi/lOLdUVVXVeq3NNtssV111Vaqrq/ODH/ygVl/1Uj+NGzeu9f5usskmufzyy7PvvvvmW9/6VpL6HXs+vQTm65gJEybkvffeS/fu3UttzZs3T9u2bTNmzJjl7rPsYzrnnXdezj333CTJm2++mbPOOiu77757OnXqlO9973v5z3/+s8LXnTx5cjp06JDGjRuX2tq2bZuiKJb7uhMmTEjr1q3rbDv99NNzyimnJEnefffd/PCHP0z37t2z884758gjj8y//vWvUt+iKHLzzTdnv/32S7t27bLzzjvn+OOPz9SpU2t9b0OGDMlee+2V3XffPS+//HKef/75fOc730nnzp3TtWvXDBgw4FN7cfrCCy9k4403zn333ZeOHTvW2T527Nh07do1jRo1KrV17949kydPzowZM+r0v/baa3PdddeVPgL72muvJfngI2sHHXRQOnTokF69euWXv/xlampqVjiv1157LXPmzMk999yTffbZp8529dSwWrRokZtuuint2rUrtVVUVKQoisyZMydJeWqloqIiv/zlL9OjR48625bNa5lLL7001dXV+cY3vvGR36ta+fhWpV5eeeWVLFq0aLn/IbY8a6JeGjVqlMsvvzy77rprkmTu3Lm5/vrrs+GGG6ZTp061+qqXhtOiRYsMHjw422+/fZLknXfeyfDhw9OqVat85StfSVKeellm8uTJGTRoUK688spaP3M+TL00rDFjxmTEiBH52c9+VmdbuWrlP//5T6leP4paaVgrOy5ra724zm1YL7/8cl5//fV8/etfr9U+fPjwHH/88UnKc527YMGCjB07ts68Lrvsslx00UW12pxbGs6q1Es5r1uWeeSRR/L000/n4osvTmVl7dhOvawZd955Z958882cd955pbbVPfaPPPJI2rRpk9dff71W+7e//e1cfvnlST64yfH0009Ply5d0q1bt5xwwgl55ZVXSn0XL16cq666Kvvss0/atWuXbt265YwzzsisWbOS/N9yPddff31233339OrVK3Pnzi0t99SxY8fsuuuuOffcc+v8Dv1hL730Uk466aR069Yt7dq1S+/evXP77beXtl977bX57ne/m2HDhuWrX/1q2rdvnyOPPDIvv/xyqc+0adNy4oknpnPnzunZs2ceeOCBlb5HkyZNygknnJBu3bpl5513zqmnnlqqhXvvvTft27fP3Llza+3zta99LVdfffUqvX/nnntuTjnllPTv3z877bRTbrzxxpXOaZU13M3srAl/+tOfiurq6lofRSyKojj11FOL73//+8vdZ/r06UV1dXVx2223FXPnzi3efffdYs899yz69etXPPfcc8X48eOLU045pejSpUvx+uuvL3eM888/v/jmN79Zq+2ll14qqquri+HDhy93n4MPPrg4//zzS1/PnTu3aN++ffHoo48WNTU1xaGHHlr069evePbZZ4uJEycWV111VbHjjjsWL7zwQlEUHywz0qVLl+LRRx8tXnvtteJvf/tb0bt37+Kkk04qjVldXV1069ateP7554t//vOfxdKlS4vu3bsXgwcPLl599dXi3//+d3HIIYcURx111Erf23XdOeecU2dJlgMPPLD4+c9/Xqtt2XF7/vnn64wxb9684oorrii++tWvFtOnTy+WLFlS3HrrrUW7du2KO+64o5g8eXJx3333FV26dCkuv/zyVZrX0KFD63w8TT2V34MPPlhUV1cXjz76aFEUa0etFEVRPPvss0Xr1q2LX/3qV6W2hx56qNh9992LmTNnFiNHjlzpRw/Vypr33/Xy4IMPFq1bty5+9KMfFXvttVex9957Fz/5yU+KuXPnLnf/NV0vN9xwQ1FdXV20bt26zsep1Uv5XHjhhUV1dXXRrl274i9/+UupvVz1snjx4qJPnz7FDTfcUBRFUey11151lmRRLw1rzpw5Rc+ePYv77ruvKIq6H+MtV60cd9xxRd++fYv+/fsXu+66a9GnT59i1KhRtfqolYa3//77F0cddVRx+OGHF7vuumtx2GGHFU888URp+9paL65zG9YjjzxSVFdXF2PGjCn69+9fdO/evfjmN79ZumYpivJc544fP7507TRgwICie/fuxUEHHVRr6YeicG5paKtSL+W+zi2KD2r27LPPrtOuXtaMhQsXFt26dSuuueaaWu2re+zff//9Yrfddit+8YtflNpefvnl0rJd7733XtG7d+9iwIABxfjx44v//Oc/xbnnnlt07dq1tKTkJZdcUvTs2bP429/+Vrz22mvF//7v/xa77LJLcemllxZFURRTp04tqquri6997WvFSy+9VDz//PPFjBkzSvX12muvFWPHji169epV61h/2Pz584vdd9+9OPPMM4uJEycWr7zySnHVVVcV1dXVxbhx44qi+CC32XHHHYvjjjuuGD9+fDF27Nhi7733Lo488sjS93rAAQcUhx56aPHvf/+7eOaZZ4pvfOMbH7kky2uvvVbsvPPOpe//ueeeK77zne8Ue+21V/Huu+8W7733XtGpU6da58Vnn322qK6uLiZPnrxK798555xTVFdXF8OGDStefvnl4o033ljp8V9VAvN1zKhRo4rq6upi6dKltdoHDhz4kSegDxfxnXfeWXTo0KHWOkwLFy4s9thjjzoXEsuMGTOmaN26dXHjjTcWCxcuLN56663iyCOPLNq2bVv6RfS//b//9/+KnXfeuVi4cGFRFEUxYsSIYrfddivef//94q9//WtRXV1dZy2oI444ojjnnHOKovhg3cJHHnmk1vbBgwcXe++9d63v67LLLit9PXv27KJ169bFHXfcUdTU1BRF8cE6gv/85z9X+N58WiwvMN9nn32Kq6++ulbbq6++WrpIWJ4PB9w1NTXFbrvtVlxxxRW1+vzqV78qdtxxxxX+4FjReMuop/IaO3Zs0alTp+LEE08sta0NtTJp0qRi9913L/r27Vt6JsO0adOKbt26FY8//nhRFMUqXRiqlTVrefVyzTXXFDvssENx0003Ff/5z3+Khx56qNh7772Lfv361fn5tMyarJdXXnmlGDduXDF48OCiTZs2xZ///OeiKNRLub300kvFv/71r+L8888vOnToUPz73/8uiqJ89TJo0KDisMMOK5YsWVIURd3AXL00vNNPP7047bTTSl//9y9Z5aqVnj17Fvvss0/x+OOPF+PGjSuuv/76Yocddih++9vfFkWhVsph0aJFRdu2bYu+ffsWo0ePLv71r38Vl156adG6devir3/9a1EUa2+9uM5tWMt+P+7Vq1dx7733FuPGjSuGDBlSq1bKcZ07ZsyYorq6uth9992L22+/vRg3blxx6623FjvuuKNzSxmtSr2U+zr3ySefLFq3bl3r2UFFoV7WpBEjRhSdOnUqZs6cWau9Psf+iiuuKPbdd9/S14MHDy769OlTFEVR3H333UWXLl2KxYsXl7YvXbq01jXpqFGjitGjR9ca84wzzigF1csC89tvv720fdy4cUV1dXXpd6CiKIoXX3yxGD9+/HLnOGPGjOLGG28s3n333VLbokWLiurq6uJ3v/tdURQf1HDr1q2LWbNmlfrcdtttxY477lgURVE88cQTRXV1dTFlypQ681hRYP7zn/+86NGjR63nLb7zzjtFhw4dijvvvLMoiqI499xza+VYP/nJT4rDDjtsld+/c845p+jatetyX//jarTye9BZmyxbs2/x4sWlvyfJokWLssEGG6zSGC+++GK+/OUv11qHaf3110+HDh1WuCxLly5dctlll+VnP/tZhgwZkg033DCnnnpqJk2alGbNmi13n69//ev52c9+lkcffTT7779/fve73+Wggw5Ko0aN8sILLyRJracRL/u+Fi1alCTp1atXnnvuuQwdOjRTpkzJpEmT8tJLL2WLLbaotc/WW29d+vvGG2+cY489Npdcckmuu+667LbbbvnqV7+ar33ta6v03nzaNGnSJIsXL67Vtuz9bdq06Ur3nzlzZt55553svPPOtdq7du2a999/Py+//PJyl4JZGfVUPo888kjOOuusdOzYMYMHDy61l7tWnnnmmZx00knZbLPNctNNN6Vx48YpiiLnnntu9ttvv9V6MrlaWXNWVC8DBgzI0UcfnebNmydJqqurs9lmm+XQQw/Nv/71r5WeFz5uvSx773fYYYe88MILufXWW9OzZ0/1UmbLlii45JJL8uyzz+aOO+7I5ZdfXpZ6+fvf/57f/OY3+d3vfpeqqqo6Yzq/NLxRo0Zl7Nix+cMf/rDCPuU6t/zP//xPampqStfSO+ywQ958880MHz48ffv2VStl0Lhx44wZMyaNGjUqLW3Srl27TJo0KcOHD8+uu+66VtbLN7/5Tde5DWy99dZLknzve99Lnz59knxwTMaNG5dbb701u+66a1muc5fV7Te+8Y0ceeSRpXlNmTIlt956q3NLmaxKvZT7OnfUqFHp0qVLrWVBXLesWaNGjcq+++6bFi1a1Gqvz7Hv27dvbrnlljz33HPp0KFD7rvvvhx77LFJknHjxmXevHnZZZddau2zaNGiTJo0KckH54inn346gwcPziuvvJJJkybl5ZdfrrNG/Yff4x122CEHHnhgTjjhhGy55ZbZbbfd0rNnz/Tq1Wu53++mm26a73znO3nwwQczYcKETJkyJePHj0+SWssEfe5zn8smm2xS+rpZs2Z5//33k3yQI2688cbZaqutas3jo3LIF198Me3atau1RFnLli2zzTbblLLHPn365Mgjj8y0adPyuc99Lg8++GBOP/30VX7//vu9WZME5uuYLbfcMkkyffr0WoU6ffr0tGnTZpXGKIoiFRUVddqXLl1aa123/3bIIYekT58+mT59elq0aJElS5bksssuW2Fxbrzxxtlnn31y3333pX379vnnP/+Zn/zkJ0k++Ee50UYb5d57762z37J/TMOGDcu1116bQw45JLvssku++93v5tFHH62zTtKH/+MgSc4666x85zvfyeOPP15a9+vGG2/MqFGjVrh+6adVq1atMn369Fpty77+7x9yy1Os4OElS5cuTZKPrJeVUU8N74477sill16a3r17Z9CgQbXmX85aefjhh3PmmWemffv2ueGGG0oXKG+88Ub++te/5plnnsmoUaOSfPDgxyTp3Llzjj/++Jxwwgl1xlMra8ZH1UtFRUXpOC1TXV2d5IO17Vb2i0R96mXevHl58skns9tuu9V67e233z5//vOf1UuZzJgxI08//XT222+/UjBdWVmZ7bbbrnQOKUe9/O53v8v8+fNz0EEHldoWLFiQG2+8Mbfcckvuv/9+9dLARo4cmRkzZqRnz5612n/0ox9l+PDheeCBB8pSK8kHN478t9atW+cPf/iDc0sZLS/IrK6uzpNPPpmkPOeW5KPrZRnXuQ2nVatWSf7v2C/zla98JY899lipT0Nf5y4bd3nzuvfee51bymRV6qVc55bkgxp47LHHSoHhMuplzZk5c2b++c9/ltas/7D6HPuvfOUr6dixY+67774sXLgw77zzTg444IAkH7zH22yzTW644YY6+y37GXfxxRfnwQcfzMEHH5yePXvmxBNPzPDhw/PWW2/V6v/f7/FVV12Vk08+OU888UT++te/5owzzshOO+2UX/3qV3Ve65133sm3v/3ttGjRInvvvXd23XXXtG/fPnvuuWetfis7Nsur7Y+q54/KHpf951XXrl3zxS9+Mffff3+22267zJ8/P/vtt1+SVXv/krrvzZrioZ/rmDZt2mSjjTbK6NGjS21z587NuHHjVvkpydXV1XUecLJo0aL8+9//XuEDbP70pz/l5JNPTkVFRbbYYos0btw4f/rTn9K0adN07tx5ha/Vt2/fPPXUU/n973+f9u3blx4KVl1dnXnz5mXx4sXZeuutS3+GDRuWRx99NElyww035JRTTsnFF1+cQw89NJ06dcorr7zykU+gfvnll/OjH/0oLVu2zOGHH56hQ4fm5ptvzqRJkzJhwoRVen8+Tbp27Zp//OMfpR/OSfL0009nm222ScuWLZe7z4dPaC1btkzLli3zj3/8o1afsWPHZr311qv1nzarQz01vF//+te55JJLcsQRR+Tqq6+u88OwXLXy5z//Oaeddlp69uyZW2+9tdYFyhZbbJGHHnoo9913X0aNGpVRo0bl1FNPTfLBXQGHHXbYCr9ftfLxrKxezjzzzHzve9+r1bbsAUEr+jnycetlyZIlOf300/PQQw/Van/++efzla98Rb2UyfTp03PmmWfm73//e6nt/fffz7hx40p3RpWjXs4666z88Y9/LNXCqFGjsvnmm+ewww7LqFGj1EsZDBo0KA8++GCtY5Ikp556am666aYk5amV2bNnp0uXLvn9739f53W33357tVImEyZMSOfOnTN27Nha7R/+fWVtrJfEdW5Da9u2bTbccMM899xztdpffPHF0jEsx3XuFltska222mqF83JuKY9VqZdynFuWmThxYubOnZvu3bvXalcva84zzzyTioqKOnctJ/U79skH7/FDDz2Uhx56KHvvvXfpLu3q6uq88cYbadasWen9/cIXvpCrrroqY8aMyaxZs/Kb3/wmF198cc4///wccsgh2WGHHfLyyy9/5Hv87LPP5rLLLsu2226bo48+OjfddFMuu+yyjB49erkPMv7DH/6Q2bNn56677spJJ52U3r17lx4Q+lGv82Ft27bN3Llz89JLL5XaJk+enHfffXeF+1RXV+f555+v9Qmfd955J1OmTCn9nlBRUZGDDz44f/rTn/LAAw9kn332KX0aa2Xv3ydNYL6Oady4cfr165dBgwbl0UcfzYQJE3L66aenVatW6d279wr3a9q0aSZNmpRZs2bl61//epo3b57TTjstzz//fCZMmJCBAwdm/vz5OfTQQ5e7//bbb58nnngi119/fV577bX86U9/yiWXXJKTTjopG2644Qpfd7fddsvnPve5DBs2LIccckipvUePHtlhhx1y2mmn5emnn86UKVPys5/9LCNHjiz9w9lyyy3z1FNPZeLEiXn55ZczZMiQPPTQQ3U+Tvdhm2yySe6///5cdNFFmTRpUiZPnpyRI0dm4403zrbbbruyt/dTp2/fvpk3b14uuOCCTJw4Mffee29uv/325f5v6jJNmzbNnDlzMnny5CxZsiT9+/fPHXfckTvvvDNTpkzJH/7wh1x33XU59NBDV/ix0pVRTw1r8uTJueyyy9K7d+8cf/zxmTFjRt5+++28/fbbpR9w5aiVOXPm5JxzzsmOO+6YCy64IHPmzCnNa/bs2WnUqFGti7ett9669EvN1ltvXevjYv9NrdTfqtTLgQcemKeeeio33HBDXn311Tz++OM5//zzc+CBB67wqfIft1422WSTfOtb38qQIUPy+OOP5+WXX85ll12W5557LieeeKJ6KZM2bdpkjz32yI9//OOMHTs2L774Ys4555zMnTs3Rx99dJLy1EvLli3r1EOjRo2y8cYbl/6uXhrWFltsUec9Tz44Vl/4wheSlO/csttuu2Xw4MH5y1/+kldeeSU33XRT7rvvvgwYMECtlEl1dXW233770rll0qRJufzyy/Pss8+W7qJcG+slcZ3b0Jo0aZJjjz02v/jFL3L//ffn1VdfzQ033JCnnnoqxxxzTJLy/U50yimnZMSIEbnzzjszderUjBgxIiNHjsz3vvc955YyWZV6Kce5ZZkJEyakcePG2WabbWq1q5c1Z8KECfnSl7603KVE6nPsk+SAAw7Iu+++m3vuuafWe3zQQQdl4403zimnnJJnn302kyZNynnnnZfHH38822+/fZo1a5ZmzZrl0UcfzZQpU/Kf//wnP/zhD/PCCy985Hu80UYb5de//nWuvPLK0n4PPPBAvvzlL9dZZib54JMVCxYsyB//+Me88cYbefLJJ3PGGWckyUe+zod169YtHTt2zNlnn51nn302//rXv3LuueemsnLFsfLhhx+eefPm5ayzzsqECRPy/PPP5wc/+EFatGhRugs/+WBZlhdeeCGPPvpoaamkVXn/PnGfyMrofKKWLFlS/PznPy+6d+9edOrUqTjuuOOKqVOnfuQ+Q4cOLTp06FCccMIJRVF88MC0E088sejcuXPRuXPn4thjjy0mTJjwkWM89thjxde//vWiQ4cOxb777lvccccdqzTfwYMHF+3bty/mzJlTq33GjBnFueeeW3Tr1q3o0KFD0adPn+Lhhx8ubf/3v/9dfPvb3y46dOhQ7LrrrsUJJ5xQ/OY3vylat25d+n6X94CBZ555pjjiiCOKnXbaqejYsWNx1FFHlR489mm2vId+FkVRPPfcc8W3v/3tol27dsVee+1V/L//9/8+cpypU6cWX/va14p27doVzz77bFEURXH77bcXvXv3Lnbcccdi7733Lm688cbSQ9RWZnkP/SwK9dSQbrjhhqK6unq5f5Y90KUoGr5W7rvvvhXOa3m1XBSr9nCbZdRK/axqvfzP//xPcfDBBxcdOnQodt999+KKK64oPVBoedbEuWXRokXF4MGDi549exbt2rUrDj300BU+rKso1EtDmTt3bvGjH/2o2H333YsOHToU/fv3L1588cVafcpRL//tvx/6+d/US8Nb3vdajlp57733iiuuuKLYc889i3bt2hXf+MY3ah23/6ZWGsaMGTOK8847r9h9992L9u3bL/ecv7bWi+vchnfLLbcUvXr1KnbcccfioIMOqnNMyvU70ahRo4r99tuv2HHHHYt99923uPvuu1fY17ml4aysXsp13XLTTTcVu++++yp9D+qlfn70ox8V3/72t1e4fXWP/TJnnnlm0aNHjzrH+NVXXy1OOeWUYueddy46depUHH744bV+lj355JPFgQceWLRv377YY489ijPPPLP45S9/WXTq1Kl47733Sg/9/Nvf/lZr3D//+c/FIYccUnTq1KnYaaedipNOOqnWAzk/rKamprjyyiuL3XbbrejQoUOx3377FbfccktxxBFHFOeee25RFMvPbf67xmbOnFmcccYZRefOnYtdd921uO2224rddttthQ/9LIqi+Ne//lUcddRRRYcOHYouXboUP/jBD4rXX3+9Tr+jjjqq6NGjR52Hq67s/VtRDrYmVBTFKt5/D/V03nnn5f3338+gQYPKPRU+BdQTq0qtsDrUC6tDvbCq1AqrQ72wqtQKq0O9fPKOPPLIdO7cuc7686y7PPSTT8yyj+7cf//9ufPOO8s9HdZx6olVpVZYHeqF1aFeWFVqhdWhXlhVaoXVoV4+eY888kjGjx+ff/7zn/nZz35W7umwBgnM+cSMHDkyjz32WAYMGJAOHTqUezqs49QTq0qtsDrUC6tDvbCq1AqrQ72wqtQKq0O9fPKGDRuWV155JZdcckm23HLLck+HNciSLAAAAAAAkGTFjzMFAAAAAIDPEIE5AAAAAABEYA4AAAAAAEkE5gAAAAAAkERgDgAAAAAASQTmAABQNmeffXZat26dm266qUFf99prr03r1q3r/OnUqVP222+/DB06NEuWLGnQOQEAwNqgUbknAAAAn0Xz5s3LQw89lOrq6tx999057rjjUlFR0aBzGDFiRK2vZ82alfvvvz+/+MUv8v777+fMM89s0PkAAEC5CcwBAKAMHnjggSxdujQXXnhhjjzyyDz55JPp0aNHg86hU6dOddr22muvvPbaa7nnnnsE5gAAfOZYkgUAAMpg5MiR6datW7p165Ztttkmd911V50+w4cPz957750OHTrksMMOy5///Oe0bt06o0ePLvV58cUXc/zxx2ennXbKTjvtlJNPPjlTp079WHPbaKON6rT99re/zSGHHJJOnTqlQ4cO+cY3vpEHH3ywtP3ee+9N27Zt89xzz+XQQw9N+/bt07NnzwwbNqzWONOnT8/pp5+eXXbZJV27ds1FF12UIUOGpFevXnVe74ADDki7du3Ss2fPXHvttZaJAQDgEycwBwCABjZp0qQ899xz6dOnT5LkkEMOyf/+7//mrbfeKvW57rrrMmjQoOy33365/vrr07Fjx5x++um1xpk8eXIOO+ywzJgxI1dccUUuvfTSTJ06NYcffnhmzJix0nksWbKk9Gfx4sWZPn16br311jz11FM5+OCDS/3uvPPOXHTRRdl7771z44035sorr8x6662XgQMH5o033ij1q6mpyWmnnZb9998/N910U3beeecMGjQof/nLX5IkixcvzlFHHZVnnnkm559/fi6//PJMmDAht9xyS6153XjjjfnhD3+YXXfdNb/85S9zxBFHZNiwYbnoootW+70GAIDVYUkWAABoYPfcc0+aN2+effbZJ0ly8MEH5+qrr85vf/vbnHLKKZk/f36GDRuWI444ImeddVaSZI899siCBQtqrTt+3XXXpUmTJrnttttKd4Xvuuuu2WeffXLzzTfnnHPO+ch57LjjjnXaPv/5z2fAgAH5/ve/X2qbOnVq+vfvn5NPPrnU9sUvfjGHHHJInnnmmXz+859PkhRFkZNOOinf+ta3kiQ777xzHn744Tz22GPp0aNH7rvvvrz88ssZOXJk2rVrlyTp3r176X1IknfffTc33HBDDj300Fx44YWl732TTTbJhRdemGOOOSbbb7/9Kr7TAACwegTmAADQgJYsWZL77rsv++yzTxYtWpRFixalSZMm6datW37729/mxBNPzLPPPpuFCxfm//v//r9a+x544IG1AvO//e1v6datW5o0aVJarmSjjTZKly5d8te//nWlc7nnnnuSJO+9915+9atfZfTo0bngggtqBdhJcu655yb5IMx+5ZVX8sorr+Tpp59Okrz//vu1+nbu3Ln098aNG2fTTTfN/PnzS/P90pe+VArLl813r732Ki0z889//jMLFixIr169ai3BsmzJlqeeekpgDgDAJ0ZgDgAADeixxx7LO++8k3vvvTf33ntvne3/+7//m4ULFyZJNt1001rbPve5z9X6evbs2XnwwQdrrSW+zH/vuzzt27cv/X2XXXbJ9773vZx22mm59dZb07Vr19K2V199NRdddFH+9re/pVGjRtl2223TunXrJB/cVf5hTZo0qfV1ZWVlqc+sWbPSsmXLOvP48Pc1e/bsJKl1h/uHTZ8+faXfFwAA1JfAHAAAGtA999yTL3zhC7n88svrbDv11FNz11135YQTTkiSzJw5M9tuu21p+8yZM2v1b9asWXbbbbccc8wxdcZq1Gj1LvUrKytz2WWXZf/99895552XBx54IOuvv35qamry/e9/P+utt17uvvvutG3bNo0aNcrEiRNz3333rdZrbLHFFpkyZUqd9g+vt968efMkyaBBg/LlL3+5Tt///k8DAABYkzz0EwAAGsg777yTv/zlLznggAPSrVu3On/233//PPXUU2nWrFmaNWuWhx56qNb+f/rTn2p9vcsuu2TixInZYYcd0r59+7Rv3z7t2rXLbbfdlocffni157flllvmxBNPzNSpU3PTTTcl+eCu8MmTJ+eb3/xmOnToUArin3jiiSQfPOhzVe2yyy6ZOnVqxo8fX2pbtGhRaawk6dixY9Zbb7289dZbpe+pffv2WW+99XLVVVfltddeW+3vCwAAVpU7zAEAoIH87ne/y5IlS3LAAQcsd3ufPn3y61//Ovfff3+OPfbYDB06NBtssEF22WWX/P3vf89vfvObJB/cDZ4kJ510Ug477LAcf/zxOfzww7P++utnxIgReeSRRzJ06NB6zfHoo4/OPffck2HDhuXggw/Ol770pXzhC1/InXfemVatWqV58+Z58sknc/vttydJFixYsMpjH3jggbnpppty8skn5wc/+EGaN2+eW265JTNmzCg9OLRFixY59thjc80112TevHnp1q1b3nrrrVxzzTWpqKhImzZt6vV9AQDAqnCHOQAANJDf/e532X777VcY+nbo0CHbbrttRo4cmf79++eUU07JqFGjcvzxx2fs2LE566yzkiRNmzZNkrRp0yZ33nlnKioqcvbZZ+fUU0/N22+/nV/84hfZd9996zXHxo0b5/zzz8+iRYtKy8Zcf/312WKLLXLuuefmtNNOy7PPPpsbbrgh2267bcaOHbvKYzdq1CjDhw9P27Ztc/HFF+fss89OdXV1evfuXfqekuS0007Lueeem4cffjjHHXdcrrzyyuy8886544470qxZs3p9XwAAsCoqiv9+Sg8AAFBWS5Ysyf33359u3bplyy23LLXfeeed+elPf5rRo0eX1vpel7z00kt5+eWXs++++6aioqLU3rdv32y55Za57rrryjg7AACwJAsAAKx1GjVqlGHDhuX222/PiSeemBYtWmTChAm55pprcvDBB6+TYXmSzJ8/Pz/4wQ/yne98J717987SpUtz//3354UXXsjAgQPLPT0AAHCHOQAArI2mTp2awYMHZ/To0Zk7d24+//nP56CDDsrxxx+f9dZbr9zTq7f/+Z//yfDhwzNp0qQURZG2bdvmxBNPzB577FHuqQEAgMAcAAAAAAASD/0EAAAAAIAkAnMAAAAAAEgiMAcAAAAAgCQCcwAAAAAASCIwBwAAAACAJAJzAAAAAABIIjAHAAAAAIAkAnMAAAAAAEgiMAcAAAAAgCTJ/w9n1J7kTVWjfgAAAABJRU5ErkJggg==\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"my_order =['0 to 9 years', '10 to 19 years', '20 to 24 years', '25 to 34 years', '35 to 44 years', '45 to 54 years', '55 to 59 years', '60 to 64 years', '65 to 74 years', '75 years and over']\n",
"sns.catplot(x='Age Range', kind=\"count\", data=mission_district, order=my_order, aspect=3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Die obere Grafik beantwortet die Frage schon ganz gut, dennoch können wir uns auch die genauen Werte über eine Kreuztabelle ausgeben lassen:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
\n",
"
\n",
"
Home Library Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Mission
\n",
"
0.056841
\n",
"
0.171199
\n",
"
0.050172
\n",
"
0.227154
\n",
"
0.225018
\n",
"
0.122017
\n",
"
0.041523
\n",
"
0.034855
\n",
"
0.048348
\n",
"
0.022872
\n",
"
\n",
"
\n",
"
All
\n",
"
0.056841
\n",
"
0.171199
\n",
"
0.050172
\n",
"
0.227154
\n",
"
0.225018
\n",
"
0.122017
\n",
"
0.041523
\n",
"
0.034855
\n",
"
0.048348
\n",
"
0.022872
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Home Library Definition \n",
"Mission 0.056841 0.171199 0.050172 \n",
"All 0.056841 0.171199 0.050172 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Home Library Definition \n",
"Mission 0.227154 0.225018 0.122017 \n",
"All 0.227154 0.225018 0.122017 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Home Library Definition \n",
"Mission 0.041523 0.034855 0.048348 \n",
"All 0.041523 0.034855 0.048348 \n",
"\n",
"Age Range 75 years and over \n",
"Home Library Definition \n",
"Mission 0.022872 \n",
"All 0.022872 "
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(\n",
" mission_district['Home Library Definition'],\n",
" mission_district['Age Range'],\n",
" margins=True, normalize=0\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"###### Antwort auf Frage 6\n",
"Die Verteilung der Altersgruppen im Mission District ist wie folgt:\n",
"- ca. 6% der Nutzer sind zwischen 0 und 9 Jahren,\n",
"- ca. 17% der Nutzer sind zwischen 10 und 19 Jahren,\n",
" \n",
"...\n",
"\n",
"- ca. 5% der Nutzer sind zwischen 65 und 74 Jahren,\n",
"- ca. 2% der Nutzer sind 75 Jahre und älter.\n",
"\n",
"\n",
"----"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 7: Erklärung von Normalisierung von Kreuztabellen (Kapitel 3 im Skript)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Wir nutzen das Beispiel von oben (Alterskategorien und Benachrichtigungsart aus Frage 3).\n",
"Zuerst einmal eine nicht normalisierte Kreuztabelle:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
All
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Email
\n",
"
29979
\n",
"
55109
\n",
"
21740
\n",
"
88098
\n",
"
76322
\n",
"
45360
\n",
"
17403
\n",
"
15438
\n",
"
26988
\n",
"
14340
\n",
"
390777
\n",
"
\n",
"
\n",
"
Print
\n",
"
1276
\n",
"
665
\n",
"
338
\n",
"
1210
\n",
"
1064
\n",
"
683
\n",
"
328
\n",
"
346
\n",
"
703
\n",
"
579
\n",
"
7192
\n",
"
\n",
"
\n",
"
All
\n",
"
31255
\n",
"
55774
\n",
"
22078
\n",
"
89308
\n",
"
77386
\n",
"
46043
\n",
"
17731
\n",
"
15784
\n",
"
27691
\n",
"
14919
\n",
"
397969
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"Email 29979 55109 21740 \n",
"Print 1276 665 338 \n",
"All 31255 55774 22078 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"Email 88098 76322 45360 \n",
"Print 1210 1064 683 \n",
"All 89308 77386 46043 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"Email 17403 15438 26988 \n",
"Print 328 346 703 \n",
"All 17731 15784 27691 \n",
"\n",
"Age Range 75 years and over All \n",
"Notice Preference Definition \n",
"Email 14340 390777 \n",
"Print 579 7192 \n",
"All 14919 397969 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Nun möchten wir das prozentual betrachten:\n",
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True\n",
")\n",
"# die Reihenfolge der betrachteten Spalten 'Notice Preference Definition' und 'Age Range' spielt keine Rolle, \n",
"# probiere es ruhig aus\""
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Email
\n",
"
0.076716
\n",
"
0.141024
\n",
"
0.055633
\n",
"
0.225443
\n",
"
0.195308
\n",
"
0.116076
\n",
"
0.044534
\n",
"
0.039506
\n",
"
0.069062
\n",
"
0.036696
\n",
"
\n",
"
\n",
"
Print
\n",
"
0.177419
\n",
"
0.092464
\n",
"
0.046997
\n",
"
0.168242
\n",
"
0.147942
\n",
"
0.094967
\n",
"
0.045606
\n",
"
0.048109
\n",
"
0.097747
\n",
"
0.080506
\n",
"
\n",
"
\n",
"
All
\n",
"
0.078536
\n",
"
0.140147
\n",
"
0.055477
\n",
"
0.224409
\n",
"
0.194452
\n",
"
0.115695
\n",
"
0.044554
\n",
"
0.039661
\n",
"
0.069581
\n",
"
0.037488
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"Email 0.076716 0.141024 0.055633 \n",
"Print 0.177419 0.092464 0.046997 \n",
"All 0.078536 0.140147 0.055477 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"Email 0.225443 0.195308 0.116076 \n",
"Print 0.168242 0.147942 0.094967 \n",
"All 0.224409 0.194452 0.115695 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"Email 0.044534 0.039506 0.069062 \n",
"Print 0.045606 0.048109 0.097747 \n",
"All 0.044554 0.039661 0.069581 \n",
"\n",
"Age Range 75 years and over \n",
"Notice Preference Definition \n",
"Email 0.036696 \n",
"Print 0.080506 \n",
"All 0.037488 "
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Nun normalisieren wir nach Zeilen (normalize=0)\n",
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True, normalize=0\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Hier sehen wir, dass jede Zeile in der Summe 1 ergibt. D.h. wir können die Tabelle prozentual nach Zeilen interpretieren.\n",
"Also z.B. erste Zeile: Von allen Nutzern, die per Mail informiert werden möchten, befinden sich ca. 13% (0.128020 von 1) in der Altersgruppe 45 bis 54 Jahre.\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
All
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Email
\n",
"
0.959175
\n",
"
0.988077
\n",
"
0.984691
\n",
"
0.986451
\n",
"
0.986251
\n",
"
0.985166
\n",
"
0.981501
\n",
"
0.978079
\n",
"
0.974613
\n",
"
0.96119
\n",
"
0.981928
\n",
"
\n",
"
\n",
"
Print
\n",
"
0.040825
\n",
"
0.011923
\n",
"
0.015309
\n",
"
0.013549
\n",
"
0.013749
\n",
"
0.014834
\n",
"
0.018499
\n",
"
0.021921
\n",
"
0.025387
\n",
"
0.03881
\n",
"
0.018072
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"Email 0.959175 0.988077 0.984691 \n",
"Print 0.040825 0.011923 0.015309 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"Email 0.986451 0.986251 0.985166 \n",
"Print 0.013549 0.013749 0.014834 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"Email 0.981501 0.978079 0.974613 \n",
"Print 0.018499 0.021921 0.025387 \n",
"\n",
"Age Range 75 years and over All \n",
"Notice Preference Definition \n",
"Email 0.96119 0.981928 \n",
"Print 0.03881 0.018072 "
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Als Vergleich normalisieren wir nach Spalten (normalize=1)\n",
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True, normalize=1\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Hier sehen wir, dass jede Spalte in der Summe 1 ergibt. D.h. wir können die Tabelle prozentual nach Spalten interpretieren.\n",
"Also z.B. erste Spalte: Von allen Nutzern, die zwischen 0 und 9 Jahren sind, möchten sich ca. 4% (0.040825 von 1) per Post informieren lassen.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 4
}