{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [ "remove-input" ] }, "outputs": [], "source": [ "from datascience import *\n", "import numpy as np\n", "path_data = '../../../assets/data/'\n", "%matplotlib inline\n", "import matplotlib.pyplot as plots\n", "plots.style.use('fivethirtyeight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualizing Numerical Distributions\n", "\n", "Many of the variables that data scientists study are *quantitative* or *numerical*. Their values are numbers on which you can perform arithmetic. Examples that we have seen include the number of periods in chapters of a book, the amount of money made by movies, and the age of people in the United States.\n", "\n", "The values of a categorical variable can be given numerical codes, but that doesn't make the variable quantitative. In the example in which we studied Census data broken down by age group, the categorial variable `SEX` had the numerical codes `1` for 'Male,' `2` for 'Female,' and `0` for the aggregate of both groups `1` and `2`. While 0, 1, and 2 are numbers, in this context it doesn't make sense to subtract 1 from 2, or take the average of 0, 1, and 2, or perform other arithmetic on the three values. `SEX` is a categorical variable even though the values have been given a numerical code." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For our main example, we will return to a dataset that we studied when we were visualizing categorical data. It is the table `top`, which consists of data from U.S.A.'s top grossing movies of all time (as of 2017). For convenience, here is the description of the table again.\n", "\n", "The first column contains the title of the movie. The second column contains the name of the studio that produced the movie. The third contains the domestic box office gross in dollars, and the fourth contains the gross amount that would have been earned from ticket sales at 2016 prices. The fifth contains the release year of the movie. \n", "\n", "There are 200 movies on the list. Here are the top ten according to the unadjusted gross receipts in the column `Gross`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Title Studio Gross Gross (Adjusted) Year
Gone with the Wind MGM 198,676,459 1,796,176,700 1939
Star Wars Fox 460,998,007 1,583,483,200 1977
The Sound of Music Fox 158,671,368 1,266,072,700 1965
E.T.: The Extra-Terrestrial Universal 435,110,554 1,261,085,000 1982
Titanic Paramount 658,672,302 1,204,368,000 1997
The Ten Commandments Paramount 65,500,000 1,164,590,000 1956
Jaws Universal 260,000,000 1,138,620,700 1975
Doctor Zhivago MGM 111,721,910 1,103,564,200 1965
The Exorcist Warner Brothers 232,906,145 983,226,600 1973
Snow White and the Seven Dwarves Disney 184,925,486 969,010,000 1937
\n", "

... (190 rows omitted)

" ], "text/plain": [ "Title | Studio | Gross | Gross (Adjusted) | Year\n", "Gone with the Wind | MGM | 198,676,459 | 1,796,176,700 | 1939\n", "Star Wars | Fox | 460,998,007 | 1,583,483,200 | 1977\n", "The Sound of Music | Fox | 158,671,368 | 1,266,072,700 | 1965\n", "E.T.: The Extra-Terrestrial | Universal | 435,110,554 | 1,261,085,000 | 1982\n", "Titanic | Paramount | 658,672,302 | 1,204,368,000 | 1997\n", "The Ten Commandments | Paramount | 65,500,000 | 1,164,590,000 | 1956\n", "Jaws | Universal | 260,000,000 | 1,138,620,700 | 1975\n", "Doctor Zhivago | MGM | 111,721,910 | 1,103,564,200 | 1965\n", "The Exorcist | Warner Brothers | 232,906,145 | 983,226,600 | 1973\n", "Snow White and the Seven Dwarves | Disney | 184,925,486 | 969,010,000 | 1937\n", "... (190 rows omitted)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "top = Table.read_table(path_data + 'top_movies_2017.csv')\n", "# Make the numbers in the Gross and Gross (Adjusted) columns look nicer:\n", "top.set_format([2, 3], NumberFormatter)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section we will draw graphs of the distribution of the numerical variable in the column `Gross (Adjusted)`. For simplicity, let's create a smaller table that has the information that we need. And since three-digit numbers are easier to work with than nine-digit numbers, let's measure the `Adjusted Gross` receipts in millions of dollars. Note how `np.round` is used to retain only two decimal places in each entry of the column." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Title Adjusted Gross
Gone with the Wind 1796.18
Star Wars 1583.48
The Sound of Music 1266.07
E.T.: The Extra-Terrestrial 1261.08
Titanic 1204.37
The Ten Commandments 1164.59
Jaws 1138.62
Doctor Zhivago 1103.56
The Exorcist 983.23
Snow White and the Seven Dwarves 969.01
\n", "

... (190 rows omitted)

" ], "text/plain": [ "Title | Adjusted Gross\n", "Gone with the Wind | 1796.18\n", "Star Wars | 1583.48\n", "The Sound of Music | 1266.07\n", "E.T.: The Extra-Terrestrial | 1261.08\n", "Titanic | 1204.37\n", "The Ten Commandments | 1164.59\n", "Jaws | 1138.62\n", "Doctor Zhivago | 1103.56\n", "The Exorcist | 983.23\n", "Snow White and the Seven Dwarves | 969.01\n", "... (190 rows omitted)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "millions = top.select(0).with_columns('Adjusted Gross', \n", " np.round(top.column(3)/1e6, 2))\n", "millions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Binning the Data ##\n", "Look at the values of the quantitative variable `Adjusted Gross`. There is likely to be only one movie at each individual value, since the values are being measured rather finely. It is more interesting to group the values into intervals, known as *bins*, and see how many movies are in each bin. This process is called *binning*.\n", "\n", "The counts of individuals (that is, rows) in the bins can be computed using the `bin` method, analogous to the `group` method used in the case of categorical data. The `bin` method takes as its argument a column label or index, and an optional argument in which you can specify the bins that you want. \n", "\n", "The result is a two-column table that contains the number of rows in each bin. The first column lists the left endpoints of the bins (but see the note about the last bin, below). \n", "\n", "Let's try out the method and examine the details of the output. To choose some bins, we will start by looking at the smallest and largest values of `Adjusted Gross`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(338.41, 1796.18)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "adj_gross = millions.column('Adjusted Gross')\n", "min(adj_gross), max(adj_gross)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's try bins of width 100, starting at 300 and going to 2000. You are welcome to make other choices. It is common to start with something that seems reasonable and then adjust based on the results." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bin Adjusted Gross count
300 68
400 60
500 32
600 15
700 7
800 7
900 3
1000 0
1100 3
1200 3
1300 0
1400 0
1500 1
1600 0
1700 1
1800 0
1900 0
2000 0
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bin_counts = millions.bin('Adjusted Gross', bins=np.arange(300,2001,100))\n", "bin_counts.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's examine Column 0, the `bin` column. This column specifies the left end of each bin, except in the last row as explained below. \n", "\n", "Since the bins split the number line into intervals, they are contiguous. So we must be careful about values at the endpoints. By the usual Python convention, each bin except the last includes its left endpoint but not its right endpoint.\n", "\n", "To make this point, we will use the notation [*a, b*) to refer to the bin that contains all the values that are greater than or equal to *a* and strictly less than *b*.\n", "\n", "To understand the first row of the table, you have to look at the second row as well. These two rows tell us that there were 68 movies in the bin [300, 400). That is, 68 movies had adjusted gross receipts of at least 300 million dollars but less than 400 million dollars.\n", "\n", "In general, each element in the `Adjusted Gross count` column counts all the `Adjusted Gross` values that are greater than or equal to the value in `bin`, but less than the next value in `bin`.\n", "\n", "**The last bin:** Notice the `bin` value 2000 in the last row. That's not the left endpoint of any bin. Instead, it's the right endpoint of the last bin. This bin is different from all the others in that it has the form [a, b]. It includes the data at *both* endpoints. In our example it doesn't matter because no movie made 2 billion dollars (that is, 2000 million). But this aspect of binning is important to keep in mind in case you want the bins to end exactly at the maximum value of the data. All the counts for this last bin appear in the second-to-last row, and the count for the last row is always zero. \n", "\n", "There are other ways to use the `bin` method. If you don't specify any bins, the default is to produce 10 equally wide bins between the minimum and maximum values of the data. This is often useful for getting a quick sense of the distribution, but the endpoints of the bins tend to be alarming." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bin Adjusted Gross count
338.41 115
484.187 50
629.964 14
775.741 10
921.518 3
1067.3 4
1213.07 2
1358.85 0
1504.63 1
1650.4 1
1796.18 0
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.bin('Adjusted Gross').show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can specify a number of equally wide bins. For example, the option `bins=4` leads to 4 equally spaced bins." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bin Adjusted Gross count
338.41 177
702.852 15
1067.3 6
1431.74 2
1796.18 0
" ], "text/plain": [ "bin | Adjusted Gross count\n", "338.41 | 177\n", "702.852 | 15\n", "1067.3 | 6\n", "1431.74 | 2\n", "1796.18 | 0" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "millions.bin('Adjusted Gross', bins=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But with quantitative data, the bins don't have to be equally wide. We will see an example of unequal bins later." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Histogram\n", "A *histogram* is a visualization of the distribution of a quantitative variable. It looks very much like a bar chart but there are some important differences that we will examine in this section. First, let's just draw a histogram of the adjusted receipts.\n", "\n", "The `hist` method generates a histogram of the values in a column. The optional `unit` argument is used in the labels on the two axes. The histogram below shows the distribution of the adjusted gross amounts, in millions of 2016 dollars. We have not specified the bins, so `hist` creates 10 equally wide bins between the minimum and maximum values of the data." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.hist('Adjusted Gross', unit=\"Million Dollars\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This figure has two numerical axes. We will take a quick look at the horizontal axis first, and then examine the vertical axis carefully. For now, just note that **the vertical axis does not represent percents**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Horizontal Axis\n", "\n", "Although in this dataset no movie grossed an amount that is exactly on the edge between two bins, `hist` does have to account for situations where there might have been values at the edges. So `hist` uses the same *endpoint convention* as the `bin` method. Bins include the data at their left endpoint, but not the data at their right endpoint, except for the rightmost bin which includes both endpoints. \n", "\n", "We can see that there are 10 bins (some bars are so low that they are hard to see), and that they all have the same width. We can also see that none of the movies grossed fewer than 300 million dollars; that is because we are considering only the top grossing movies. \n", "\n", "It is a little harder to see exactly where the ends of the bins are situated. So it is hard to judge exactly where one bar ends and the next begins.\n", "\n", "The optional argument `bins` can be used with `hist` to specify the endpoints of the bins exactly as with the `bin` method. We will start by setting the numbers in `bins` to be 300, 400, 500, and so on, ending with 2000. " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAb8AAAEdCAYAAACcx2mXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXhMZ/vA8e8YIpogJDGxJLXljdBECJLSWqJSS1EhCG1tISUlRVtRxWtp0dTSaugS+RWtJQhiqaWa2iKopbUUaWMtCRJBQkSS+f3hMq+R7YSZZJLcn+uai3nOM8/c95yZuXPOnHMeVUpKihYhhBCiDClX3AEIIYQQRU2KnxBCiDJHip8QQogyR4qfEEKIMkeKnxBCiDJHip8QQogyR4qfEEKIMqfYi19YWBiurq5oNBratWtHTExMnn3PnDnDG2+8gaOjIxqNhqZNmzJ9+nQyMjJ0ffbu3YuVlVWO27lz54oiHSGEECVA+eJ88sjISIKDg5k7dy6enp6EhYXh6+tLbGws9vb2OfqbmZnh5+eHq6srVatW5eTJkwQFBZGZmcn06dP1+sbGxlKtWjXdfRsbG6PnI4QQomQo1i2/0NBQBgwYwKBBg3ByciIkJASNRkN4eHiu/evXr8/AgQNxcXHBwcGBrl274uvry4EDB3L0tbW1RaPR6G5qtbrQ8cXFxRX6MaZI8jA9pSUXycO0lJY8wPi5FFvxy8jI4Pjx43h5eem1e3l5cfDgQUVjxMfHs2vXLtq0aZNjWfv27XFycqJHjx7s2bPHIDELIYQoHYqt+CUlJZGVlYWtra1eu62tLdevX8/3sd7e3mg0Gpo3b46npydTpkzRLbOzs2PevHksX76c5cuX4+joSM+ePdm/f79R8hBCCFHyqIrrwtbXrl3D2dmZrVu30rp1a1377NmzWbduHYcPH87zsVeuXCE1NZWTJ08yZcoU/P39GTduXJ79fX19UavVrFq1Ks8+pWl3gRBClHWOjo75Li+2A16sra1Rq9U5tvJu3ryZY2vwaXXq1AGgUaNGZGVlMWbMGMaMGUP58rmn4+7uTmRkZL5j5vZCxcXFFfgClgSSh+kpLblIHqaltOQBxs+l2HZ7mpmZ4ebmRnR0tF57dHQ0Hh4eisfJzs4mMzOTrKysPPucOHECjUbzzLEKIYQoXRRv+d2/f5+0tDS9UwZu3rzJsmXLSElJoWfPnri7uxfqyQMDAwkICMDd3R0PDw/Cw8NJSEhgyJAhAEybNo0jR44QFRUFwKpVqzA3N6dx48aYmZlx7Ngxpk+fTs+ePalYsSIAixYtwsHBAWdnZzIyMoiIiGDLli0sW7asULEJIYQovRQXv7Fjx/LXX3+xe/duANLS0ujYsSOXLl0CYPHixWzatAlPT0/FT+7j40NycjIhISEkJibi7OxMREQEDg4OACQkJHD+/Pn/BVu+PPPmzSM+Ph6tVou9vT3+/v6MGjVK1+fhw4dMnjyZa9euYW5urhvT29tbcVxCCCFKN8XFLzY2lv79++vur127lkuXLrF27VpcXFzw8fHhiy++YO3atYUKwN/fH39//1yXLV68WO9+nz596NOnT77jBQUFERQUVKgYhBBClC2Ki19iYiK1a9fW3f/5559p1aoVHTt2BGDgwIHMnz/f8BGWAIk3bnHz1h2DjWdTrQoa22oFdxRCCPFMFBc/CwsLUlJSAMjMzCQmJoaRI0fqlleqVIm7d+8aPsIS4OatO0z/6ieDjTdlzEApfkIIYUSKi1+zZs1Yvnw5bdu25eeffyY1NZXOnTvrlp8/f54aNWoYJUghhBDCkBQXv0mTJtGrVy86dOiAVqulR48eNGvWTLd88+bNhTpFQQghhCguioufm5sbv//+OwcPHqRy5cq8+uqrumUpKSn4+/vneo1NIYQQwtQoKn7p6el8+eWXtGzZkq5du+ZYbmVlpff7nxBCCGHKFF3hxdzcnPnz53PlyhVjxyOEEEIYneLLm7m4uBAfH2/MWIQQQogiobj4TZkyhWXLlrF9+3ZjxiOEEEIYneIDXr766iusrKzw8/OjVq1a1K1bl0qVKun1UalUREREGDxIIYQQwpAUF78zZ86gUql00wk9vqbnk1QqleEiE0IIIYxEcfE7ceKEMeMQQgghikyxzecnhBBCFJdnmsn97t273Llzh+zs7BzL7O3tnzsoIYQQwpgKVfyWLVvGV199le8pD8nJyc8dlBBCCGFMind7Ll++nKCgIOzt7fnkk0/QarWMHDmSsWPHUqNGDVxcXFi4cKExYxVCCCEMQnHxW7x4Ma+++irr169n8ODBAHh7ezN58mRiY2NJSUnhzh3DzWknhBBCGIvi4hcfH88bb7zx6EHlHj3s4cOHwKNre77zzjuEhYUZIUQhhBDCsBQXPwsLC7RaLQCWlpao1WoSEhJ0y6tXr87Vq1cNH6EQQghhYIqLn6OjI6dPnwagfPnyuLi4sGrVKh4+fEh6ejqrV6/mxRdfNFqgQgghhKEoPtqzW7duLF68mPT0dMzNzfnggw94++23qVu3LiqVirS0NL755htjxiqEEEIYhOLiN3r0aEaPHq27361bN7Zu3crGjRtRq9V07tyZV155xShBCiGEEIb0XFd48fT0ZNasWcycOdOohS8sLAxXV1c0Gg3t2rUjJiYmz75nzpzhjTfewNHREY1GQ9OmTZk+fToZGRlGi08IIUTJ8kxXeClKkZGRBAcHM3fuXDw9PQkLC8PX15fY2NhcryZjZmaGn58frq6uVK1alZMnTxIUFERmZibTp08vhgyEEEKYmjyLX/fu3Qs9mEqlIioq6rkCelpoaCgDBgxg0KBBAISEhLBr1y7Cw8OZOnVqjv7169enfv36uvsODg7s27ePAwcOGDQuIYQQJVeeuz2zs7PRarWFuuV2rc/nkZGRwfHjx/Hy8tJr9/Ly4uDBg4rGiI+PZ9euXbRp08agsQkhhCi58tzy27JlS1HGkaukpCSysrKwtbXVa7e1teX69ev5Ptbb25s//viDBw8eMGjQIKZMmZJv/7i4uEK1Pyk1LYO0tLQC+ymVmfmQg8dOGWw8K8sXFOVREpSWPKD05CJ5mJbSkgc8Xy6Ojo75Ljf53/wg5yS5Wq22wIlzw8PDSU1N5eTJk0yZMoUFCxYwbty4PPvn9kLFxcUV+AICnDp3EQsLiwL7KXUv/SELwjcabLxxw3ri0ayJwcYrLkrXR0lQWnKRPExLackDjJ+LSRc/a2tr1Gp1jq28mzdv5tgafNrjGecbNWpEVlYWY8aMYcyYMZQvb9IpCyGEKAJ5VoJq1aoVuHX1NJVKRVJS0nMH9ZiZmRlubm5ER0fz5ptv6tqjo6Pp0aOH4nGys7PJzMwkKytLip8QQoi8i99HH31U6OJnDIGBgQQEBODu7o6Hhwfh4eEkJCQwZMgQAKZNm8aRI0d0R5muWrUKc3NzGjdujJmZGceOHWP69On07NmTihUrFmcqQgghTESexW/ixIlFGUeefHx8SE5OJiQkhMTERJydnYmIiMDBwQGAhIQEzp8/r+tfvnx55s2bR3x8PFqtFnt7e/z9/Rk1alRxpSCEEMLElIh9gP7+/vj7++e6bPHixXr3+/TpQ58+fYoiLCGEECVUoYrfnTt3WLhwITt27ODSpUvAo5PIX3/9dd577z2qVKlilCCFEEIIQ1J8bc+EhATatm3LF198wf3792nTpg2tW7fm/v37hISE0K5dO735/YQQQghTpXjL77///S+JiYn89NNPdO3aVW/Zzz//zNChQ5k+fTqLFi0yeJBCCCGEISne8tu1axcjRozIUfgAunTpwvDhw9mxY4dBgxNCCCGMQXHxu3v3ru7E8dzUqVOH1NRUgwQlhBBCGJPi4tegQQOioqJyvXh1dnY2mzZtokGDBgYNTgghhDAGxcUvICCAffv20atXL7Zv3058fDzx8fFs27YNHx8f9u/fz7vvvmvMWIUQQgiDUHzAyzvvvENSUhJz5sxh7969unatVkvFihWZMmUKb7/9tlGCFEIIIQypUOf5jR07lkGDBhEdHc3ly5eBR+f5tW/fnurVqxslQCGEEMLQCn2Fl+rVq9O7d29jxCKEEEIUCcXF759//uG3337j/PnzpKamYmlpSf369enQoQP16tUzZoxCCCGEQRVY/O7evUtQUBAbN27M9UjPcuXK0bt3b+bPn2/QCV2FEEIIY8m3+Gm1WgYMGMC+ffvw8vKiX79+ODs7Y2lpSWpqKn/99RerVq1izZo1XL9+nQ0bNhRV3EIIIcQzy7f4bdq0iX379vHf//6XoKCgHMtdXFzo27cv8+fPZ8aMGWzevJk33njDaMEKIYQQhpDveX7r1q3jpZdeyrXwPWns2LE0btyYtWvXGjQ4IYQQwhjyLX5//PEHnTt3VjRQly5dOH78uEGCEkIIIYwp3+J38+ZN7O3tFQ1kb2/PzZs3DRKUEEIIYUz5Fr+0tDQqVaqkaCBzc3Pu3btnkKCEEEIIYyrw2p4qlaoo4hBCCCGKTIHn+QUGBjJ69OgCB8rtHEAhhBDCFOVb/Pz8/IoqDiGEEKLI5Fv8Fi1aVFRxCCGEEEVG8Xx+xhIWFoarqysajYZ27doRExOTZ9+9e/fi5+eHk5MTNWvWpHXr1ixfvjxHHysrqxy3c+fOGTsVIYQQJUShZ3UwpMjISIKDg5k7dy6enp6EhYXh6+tLbGxsrqdYHDp0iCZNmhAUFISdnR27du3i/fffx9zcHF9fX72+sbGxVKtWTXffxsbG6PkIIYQoGYq1+IWGhjJgwAAGDRoEQEhICLt27SI8PJypU6fm6D9+/Hi9+8OGDWPv3r1ERUXlKH62trZYW1sbL3ghhBAlVrHt9szIyOD48eN4eXnptXt5eXHw4EHF49y9excrK6sc7e3bt8fJyYkePXqwZ8+e545XCCFE6VFsW35JSUlkZWVha2ur125ra8v169cVjbFt2zZ2797N9u3bdW12dnbMmzeP5s2bk5GRwerVq+nZsyebN2+mTZs2eY4VFxdXqPYnpaZlkJaWpihmJTKzMg06HijLoyQoLXlA6clF8jAtpSUPeL5cHB0d811erLs9IedJ9FqtVtGJ9bGxsQwfPpw5c+bg7u6ua3d0dNRLulWrVly6dImFCxfmW/xye6Hi4uIKfAEBTp27aNC5DMuryxt8bkQleZg6peujJCgtuUgepqW05AHGz6XYdntaW1ujVqtzbOXdvHkzx9bg0w4cOICvry8TJ05k2LBhBT6Xu7s78fHxzxWvEEKI0qNQxW/ZsmV07NiRBg0aUL169Ry3whxgYmZmhpubG9HR0Xrt0dHReHh45Pm4/fv34+vry0cffcSoUaMUPdeJEyfQaDSKYxNCCFG6Kd7tOX36dBYsWECTJk3w9fXN9SCTwgoMDCQgIAB3d3c8PDwIDw8nISGBIUOGADBt2jSOHDlCVFQU8Ogcvn79+jFs2DD69u1LYmIiAGq1Wncqw6JFi3BwcMDZ2ZmMjAwiIiLYsmULy5Yte+54hRBClA6Ki9+PP/5I165d+fHHHw325D4+PiQnJxMSEkJiYiLOzs5ERETg4OAAQEJCAufPn9f1X7FiBffu3WPhwoUsXLhQ125vb8+JEycAePjwIZMnT+batWuYm5vrxvT29jZY3EIIIUo2xcUvLS2N1157zeAB+Pv74+/vn+uyxYsX57j/dNvTgoKCCpx5XgghRNmm+Dc/T09PTp06ZcxYhBBCiCKhuPiFhISwfft2fvzxR7RarTFjEkIIIYxK8W5PPz8/MjIyGDNmDB999BG1atVCrVbr9VGpVMTGxho8SCGEEMKQFBc/GxsbbG1tadiwoTHjEUIIIYxOcfHbsmWLMeMQQgghikyxz+cnhBBCFLVCXdszKyuLFStWsGPHDi5dugSAg4MDr7/+On5+fjl+AxRCCCFMkeLid+fOHXx8fDh69CiWlpbUrVsXrVbL7t272bJlC0uXLiUyMpLKlSsbM14hhBDiuSne7Tlz5kyOHTvGZ599xt9//82ePXvYu3cv//zzD7NmzeLo0aPMnDnTmLEKIYQQBqG4+G3evJkhQ4bw7rvvYmZmpmuvUKECAQEBDB48mE2bNhklSCGEEMKQFBe/pKQknJ2d81zeuHFjkpKSDBKUEEIIYUyKi5+9vX2O6YeeFB0djb29vUGCEkIIIYxJcfF766232LJlCyNHjuSvv/7i4cOHPHz4kNOnTxMYGMjWrVt55513jBmrEEIIYRCKj/YMCgri4sWL/PDDD6xevRqVSgWAVqtFq9UyZMgQxowZY7RAhRBCCENRXPxUKhXz589nxIgRbN++Xe88P29vbxo3bmy0IIUQQghDKtRJ7gDOzs75HvgihBBCmDq5vJkQQogyJ88tP1dXV8qVK8fhw4epUKECrq6uut/58qJSqTh+/LjBgxRCCCEMKc/i16ZNG1QqFeXKldO7L4QQQpR0eRa/xYsX53tfCCGEKKnkNz8hhBBlTp5bfpcvX36mAY1xlZewsDC++uorEhMTadSoEbNmzaJ169a59t27dy+LFi3i6NGj3Llzh3r16jFy5Ejefvttg8clhBCiZMr3gJdn+Y0vOTn5uQJ6WmRkJMHBwcydOxdPT0/CwsLw9fUlNjY210J76NAhmjRpQlBQEHZ2duzatYv3338fc3NzfH19DRqbEEKIkinP4vf111+bxAEuoaGhDBgwgEGDBgEQEhLCrl27CA8PZ+rUqTn6jx8/Xu/+sGHD2Lt3L1FRUVL8hBBCAPkUv4EDBxZlHLnKyMjg+PHjjB49Wq/dy8uLgwcPKh7n7t271KpVy9DhCSGEKKEKfYWXopSUlERWVha2trZ67ba2tly/fl3RGNu2bWP37t1s377dGCEKIYQogfIsfitXrnymAf38/J45mLw8vftVq9Uq2iUbGxvL8OHDmTNnDu7u7vn2jYuLK1T7k1LTMkhLSyuwn1KZWZkGHQ+U5VESlJY8oPTkInmYltKSBzxfLo6Ojvkuz7P4jRo1qtBPplKpDFr8rK2tUavVObbybt68mWNr8GkHDhygb9++TJw4kWHDhhX4XLm9UHFxcQW+gACnzl3EwsKiwH5KlVeXN+h4UPAboSRQuj5KgtKSi+RhWkpLHmD8XPIsfn/88YfRnlQpMzMz3NzciI6O5s0339S1R0dH06NHjzwft3//fvr168eECROeqYgLIYQo3fIsfg4ODkUZR54CAwMJCAjA3d0dDw8PwsPDSUhIYMiQIQBMmzaNI0eOEBUVBTw6z69fv34MGzaMvn37kpiYCIBarcbGxqbY8hBCCGE6TPqAFwAfHx+Sk5MJCQkhMTERZ2dnIiIidMU5ISGB8+fP6/qvWLGCe/fusXDhQhYuXKhrt7e358SJE0UevxBCCNOTZ/ELDAxEpVLx5ZdfolarCQwMLHAwlUrF119/bdAAAfz9/fH39891WW7XIJXrkAohhMhPnsVvz549lCtXjuzsbNRqNXv27FE0pZEQQghh6vIsfk/vIpRdhkIIIUoLmdVBCCFEmSPFTwghRJmT79GeHh4ehRpMpVIRGxv7XAEJIYQQxpZv8Tt37hyVKlXCzc2NcuVkI1EIIUTpkG/xa9asGceOHSM+Ph4fHx/69u2Lm5tbUcUmhBBCGEW+m3O//vorR44cYdCgQWzfvh0vLy9atmxJSEgIFy5cKKIQhRBCCMMqcF9m/fr1mThxIkeOHGHHjh20b9+e77//nubNm9OpUye+//57g8/eLoQQQhhToX7Ia9GiBSEhIfz1119ERERQsWJFJkyYwPfff2+s+IQQQgiDK/S1PW/fvs3GjRtZs2YNMTExVKlSpdRMoSGEEKJsUFT8Hj58yLZt21izZg07duwAwNvbm6VLl/L6669jZmZm1CCFEEIIQ8q3+O3bt481a9awceNG7t69S5s2bQgJCaFnz55UqVKlqGIUQgghDCrf4te9e3cqVaqEt7c3vXv3platWkD+U8u7u7sbNkIhhBDCwArc7Xn//n02btyomyw2L1qtFpVKJUd+CiGEMHn5Fr/Q0NCiikMIIYQoMvkWvwEDBhRVHEIIIUSRkQt2CiGEKHOk+AkhhChzpPgJIYQocwp9hRdR8phXrMipcxcNNp5NtSpobKsZbDwhhChqUvzKgDtp9/l6aYTBxpsyZqAUPyFEiaZot2d6ejpz5szh119/NXgAYWFhuLq6otFoaNeuHTExMfnGMXLkSFq3bo2NjQ3dunXL0Wfv3r1YWVnluJ07d87gsQshhCiZFBU/c3Nz5s+fz5UrVwz65JGRkQQHBzN+/Hj27NlDq1at8PX15fLly7n2z8rKwtzcnBEjRuDt7Z3v2LGxsZw9e1Z3a9CggUFjF0IIUXIpPuDFxcWF+Ph4gz55aGgoAwYMYNCgQTg5ORESEoJGoyE8PDzX/hYWFsyfP5/BgwdTu3btfMe2tbVFo9Hobmq12qCxCyGEKLkUF78pU6awbNkytm/fbpAnzsjI4Pjx43h5eem1e3l5cfDgwecev3379jg5OdGjRw/27Nnz3OMJIYQoPRQf8PLVV19hZWWFn58ftWrVom7dulSqVEmvj0qlIiJC2YEVSUlJZGVlYWtrq9dua2vL9evXlYaVg52dHfPmzaN58+ZkZGSwevVqevbsyebNm2nTpk2ej8vrYt35XcT7sdS0DNLS0p455qdlZmUadDzAoOOlpqUqel2Mobie1xhKSy6Sh2kpLXnA8+VS0DyziovfmTNnUKlU1KlTB4BLly7l6KNSqQoZXs7HPL5A9rNydHTUS7pVq1ZcunSJhQsX5lv8cnuh4uLiFE3Ue+rcRSwsLJ4t4FyUV5c36HiAQceztLDE0fFFg42nlNL1URKUllwkD9NSWvIA4+eiuPidOHHCoE9sbW2NWq3OsZV38+bNHFuDz8vd3Z3IyEiDjimEEKLkKrYrvJiZmeHm5kZ0dLRee3R0NB4eHgZ9rhMnTqDRaAw6phBCiJKrUCe5Z2VlsW7dOvbs2cONGzeYPHkyL730EikpKURHR/Pyyy9jZ2eneLzAwEACAgJwd3fHw8OD8PBwEhISGDJkCADTpk3jyJEjenMJnjlzhoyMDJKSkkhLS+PPP/8EwNXVFYBFixbh4OCAs7MzGRkZREREsGXLFpYtW1aYVIUQQpRiiovf7du38fHx4ejRo1haWpKWlsaoUaMAqFy5MpMmTaJ///5MmTJF8ZP7+PiQnJxMSEgIiYmJODs7ExERgYODAwAJCQmcP39e7zFPnwfYtm1bAFJSUgB4+PAhkydP5tq1a5ibm+vGLOi8QCGEEGWH4uI3bdo0zpw5w5o1a2jWrBkNGzbULVOr1XTv3p2dO3cWqvgB+Pv74+/vn+uyxYsX52gr6LfHoKAggoKCChWDEEKIskXxb35btmxhxIgRvPbaa7kejdmgQYM8r8wihBBCmBLFxS8lJYV69erluVyr1ZKRkWGQoIQQQghjUlz8HBwcOH36dJ7L9+/fr7crVAghhDBVioufr68vy5YtY//+/bq2x7s/v/32WzZv3syAAQMMH6EQQghhYIoPeBk7diy///47PXr0oGHDhqhUKoKDg0lOTiYxMZFu3boREBBgzFiFEEIIg1Bc/CpUqEBERARr1qxhw4YNqFQqMjMzadq0KT4+PvTt2/e5LksmhBBCFJVCz+Tu6+uLr6+vMWIRQgghikShix/AyZMndac12Nvb06RJE9nqE0IIUWIUqvitW7eOqVOncvXqVbRaLfDooJdatWoxdepU2SIUQghRIigufj/99BPvvfcejo6OTJs2jYYNG6LVavnnn39YtmwZAQEBZGRkMHDgQGPGK4QQQjw3xcVv3rx5uLu7s3nzZszNzfWWDR8+nK5duzJv3jwpfkIIIUye4vP8/v33X3x9fXMUPgBzc3P69evH1atXDRqcEEIIYQyKi1+jRo24du1ansuvXr2Kk5OTQYISQgghjElx8Zs+fTpLly5l/fr1OZatW7eOZcuWMWPGDIMGJ4QQQhiD4t/8Fi5ciLW1NcOGDSM4OJh69eqhUqmIj4/nxo0bNGjQgK+++oqvvvpK9xiVSkVERIRRAhdCCCGeleLid+bMGVQqFXXq1AHQ/b5XsWJF6tSpw4MHDzh79qzeY+TcPyGEEKZIcfEraBJZIYQQoqRQ/JufEEIIUVpI8RNCCFHmSPETQghR5kjxE0IIUeZI8RNCCFHmlIjiFxYWhqurKxqNhnbt2hETE5Nn3/T0dEaOHEnr1q2xsbGhW7duRRipEEKIkkBx8WvatClbt27Nc/m2bdto2rSpQYJ6UmRkJMHBwYwfP549e/bQqlUrfH19dfMJPi0rKwtzc3NGjBiBt7e3weMRQghR8ikufpcuXSItLS3P5WlpaXkWpOcRGhrKgAEDGDRoEE5OToSEhKDRaAgPD8+1v4WFBfPnz2fw4MHUrl3b4PEIIYQo+Qq12zO/K7b8/fffVK5c+bkDelJGRgbHjx/Hy8tLr93Ly4uDBw8a9LmEEEKUHfle4WXFihWsXLlSd/+LL75g6dKlOfqlpKRw+vRpXn/9dYMGl5SURFZWFra2tnrttra2XL9+3aDPFRcXV6j2J6WmZeS7VVxYmVmZBh0PMOh4qWmpil4XYyiu5zWG0pKL5GFaSkse8Hy5ODo65rs83+KXlpZGYmKi7v7t27fJzs7W66NSqXjhhRcYNGgQwcHBzxxofp7e4tRqtQa/bmhuL1RcXFyBLyDAqXMXsbCwMFgs5dXlDToeYNDxLC0scXR80WDjKaV0fZQEpSUXycO0lJY8wPi55Fv8hg8fzvDhwwFwdXVl9uzZdO3a1WjBPM3a2hq1Wp1jK+/mzZs5tgaFEEIIpRT/5vfnn38WaeEDMDMzw83NjejoaL326OhoPDw8ijQWIYQQpYfiWR0eu3v3LleuXOHWrVtotdocy9u0aWOQwB4LDAwkICAAd3d3PDw8CA8PJyEhgSFDhgAwbdo0jhw5QlRUlO4xZ86cISMjg6SkJNLS0vjzzz+BR1uvQgghhOLid+vWLSZMmMD69evJysrKsfzx73DJyckGDdDHx4fk5GRCQkJITEzE2dmZiIgIHBwcAEhISOD8+fN6j3n6PMC2bdsCj23E6SAAACAASURBVA7MEUIIIRQXv7Fjx7J582aGDx9OmzZtsLKyMmZcevz9/fH398912eLFi3O0ydyDQggh8qO4+P3yyy8EBATw6aefGjMeIYQQwugUH/BiZmZGgwYNjBmLEEIIUSQUF7+ePXuyc+dOY8YihBBCFAnFxW/06NEkJCTw7rvvcvjwYRISErhx40aOmxBCCGHqFP/m5+7ujkql4vjx40REROTZz9BHewohhBCGprj4ffTRRwa/pJgQQghRHBQXv4kTJxozDiGEEKLIPNNM7llZWSQnJ5OZmWnoeIQQQgijK1TxO3r0KG+++Sa1atWiYcOG7N+/H3g09VDfvn3ZvXu3UYIUQgghDEnxbs9Dhw7Ro0cPNBoN/fv3Z9myZbpl1tbWpKamsnz5ctq1a2eUQIXpUKkeTeNkKDbVqqCxrWaw8YQQoiCKi9+MGTNo0KABu3btIi0tTa/4Abz66qusXr3a4AEK03P77j0WhK832HhTxgyU4ieEKFKKd3sePXqUt956C3Nz81yP+qxdu7bexLdCCCGEqVJc/MqVK0e5cnl3T0xMpFKlSgYJSgghhDAmxcXPzc2Nbdu25bosIyODNWvW0KpVK4MFJoQQQhiL4uI3btw49uzZw3vvvaebMighIYFffvmFHj16cP78ecaPH2+0QIUQQghDUXzAS4cOHfj222/58MMPWbFiBQAjR45Eq9VStWpVwsLCaNmypdECFUIIIQxFcfED6NOnD127diU6Opp//vmH7Oxs6tWrR8eOHbG0tDRWjEIIIYRBFar4Abzwwgt069bNGLEIIYQQRULxb35bt27lww8/zHP5hx9+mOcBMUIIIYQpUVz8Fi5cyL179/Jcnp6ezpdffmmQoIQQQghjUlz8Tp8+jZubW57LmzZtypkzZwwSlBBCCGFMiotfZmYm9+/fz3P5/fv3efDgQaEDCAsLw9XVFY1GQ7t27YiJicm3/6lTp+jatSt2dnY4OzszZ84ctFqtbvnevXuxsrLKcTt37lyhYxNCCFE6KS5+jRs3Jioqiuzs7BzLsrOziYqKolGjRoV68sjISIKDgxk/fjx79uyhVatW+Pr6cvny5Vz737lzh169elGjRg1+/fVXZs+ezcKFC/n6669z9I2NjeXs2bO6W4MGDQoVmxBCiNJLcfF79913OXLkCH5+fhw/fpwHDx7w4MEDjh8/zoABAzhy5AgBAQGFevLQ0FAGDBjAoEGDcHJyIiQkBI1GQ3h4eK7916xZw/3791m8eDGNGzemZ8+eBAUFsWjRIr2tPwBbW1s0Go3uplarCxWbEEKI0ktx8evduzeTJk3il19+wcvLi5o1a1KrVi28vLzYuXMnEyZMoF+/foqfOCMjg+PHj+Pl5aXX7uXlxcGDB3N9zKFDh3j55Zf1riHasWNHrl27xsWL+lPstG/fHicnJ3r06MGePXsUxyWEEKL0K9R5fh988AF9+vRh06ZNXLhwAa1WS7169ejevTt169Yt1BMnJSWRlZWFra2tXrutrS3Xr1/P9THXr1+nVq1aOfo/Xla3bl3s7OyYN28ezZs3JyMjg9WrV9OzZ082b95MmzZtChWjEEKI0klR8bt//z59+/alX79+vPXWW4wePdpgATw9PZJWq811yqT8+j/Z7ujoiKOjo255q1atuHTpEgsXLsy3+MXFxRWq/UmpaRmkpaUV2E+pzKxMg44HmHR8qWmpil5nULY+SorSkovkYVpKSx7wfLk8WQdyo6j4VapUiT/++IM+ffo8cyBPs7a2Rq1W59jKu3nzZo6twcdq1KiRa38gz8cAuLu7ExkZmW88ub1QcXFxBb6A8GhWcwsLiwL7KVVeXd6g4wEmHZ+lhSWOji8W2E/p+igJSksukodpKS15gPFzUfyb3yuvvFLgaQiFYWZmhpubG9HR0Xrt0dHReHh45PqYVq1aceDAAdLT0/X616xZkxdfzPvL88SJE2g0GsMELoQQosRTXPzmzJnD0aNHmTx5MhcuXMj1lIfCCgwMZMWKFSxbtoyzZ88yYcIEEhISGDJkCADTpk2jR48euv59+vShUqVKjBo1itOnTxMVFcWCBQsYNWqUbrfnokWL2Lx5M//88w9//fUX06ZNY8uWLQwfPvy54xVCCFE6KD7gpWXLlmi1WkJDQwkNDaVcuXJUqFBBr49KpeLq1auKn9zHx4fk5GRCQkJITEzE2dmZiIgIHBwcgEfzBZ4/f17Xv2rVqqxfv54PPviADh06YGVlRWBgIO+9956uz8OHD5k8eTLXrl3D3NxcN6a3t7fiuIQQQpRuiotfr1698j0Q5Vn5+/vj7++f67LFixfnaGvSpAk///xznuMFBQURFBRksPiEEEKUPoqLX26FSAghhCiJFP/mJ4QQQpQWhSp+ly5dYsyYMbi5uWFvb8++ffuARyesjx8/nuPHjxslSCGEEMKQFO/2PHv2LJ07dyY7O5sWLVpw6dIlsrKygEfn7B0+fJgHDx7kepFpIfKjUj06V7IgqWkZivq9YF6Re+mFn2EkLzbVqqCxrWaw8YQQxU9x8Zs6dSqVK1fml19+Qa1W07BhQ73l3t7ebNiwweABitLv9t17LAhfX2C/tLQ0RSfXvz+0l6LxlJoyZqAUPyFKGcW7PWNiYvD396dGjRq5HvVpb2/PtWvXDBqcEEIIYQyFmsw2v7+6b926JdMGCSGEKBEKNZnt3r17c12m1WrZtGkTbm5uBgtMCCGEMBbFxW/kyJFs3LiRzz//nOTkZODRDO7nzp1j6NChHDt2zKCzPQghhBDGoviAl969e3P58mU+/fRTZs+erWsDUKvVzJw5k06dOhknSiGEEMKACjWZ7fvvv0+fPn2IiooiPj6e7Oxs6tWrR48ePfKdVUEIIYQwJQUWvwcPHrB161YuXLhA9erVef311xk1alRRxCaEEEIYRb7FLzExka5du3L+/HndjOkWFhasXr0631nRhRBCCFOW7wEvM2fO5MKFC4waNYrVq1cza9YsKlasyEcffVRU8QkhhBAGl++W36+//oqfnx8zZ87UtdWoUQN/f3/+/fdfateubfQAhRBCCEPLd8svMTERDw8PvTZPT0+0Wi1XrlwxamBCCCGEseS75ZeVlYW5uble2+P76enpxotKCBOi9MLbhVFeVagDrQuUeOMWN2/dMdh4Si8OrvRi43JxcGFqCvwEXrhwgSNHjuju37nz6AMWFxeHpaVljv7u7u4GDE+I4qf0wtuFMW5YT4OOd/PWHaZ/9ZPBxlN6cXClFxuXi4MLU1Ng8Zs1axazZs3K0f70QS9arRaVSqW7+osQQghhqvItfqGhoUUVhxBCCFFk8i1+AwYMKKo4hBBCiCKj+MLWQgghRGlRaotfWFgYrq6uaDQa2rVrR0xMTHGHJIQQwkQY9nhrExEZGUlwcDBz587F09OTsLAwfH19iY2Nxd7evrjDE0KYmGzKG/R0FkOf2qH0VBY59US5Uln8QkNDGTBgAIMGDQIgJCSEXbt2ER4eztSpU4s5OiGEqUlJvce8JRsNNp6hT+1QeiqLnHqinColJUVb3EEYUkZGBjVr1mTJkiW8+eabuvYPPviA06dPs3Xr1mKMTgghhCkodb/5JSUlkZWVha2trV67ra0t169fL6aohBBCmJJSV/weU6lUevcfn4QvhBBClLriZ21tjVqtzrGVd/PmzRxbg0IIIcqmUlf8zMzMcHNzIzo6Wq89Ojo6xwwVQgghyqZSebRnYGAgAQEBuLu74+HhQXh4OAkJCQwZMqS4QxNCCGECSt2WH4CPjw+zZs0iJCSEV199ldjYWCIiIli7di0dOnTA3t6eBg0a0K9fP06fPq332JEjR2JlZaV3e+211/T6PHjwgA8//JD69etTq1Yt+vfvz7///ltk+c2aNStHjP/5z390y7VaLbNmzaJRo0bY2dnRrVs3/vrrL5PKAcDFxSVHHlZWVvTt2xcw3XWxf/9++vfvj7OzM1ZWVvz0k/4h6IZ6/VNSUhgxYgQODg44ODgwYsQIUlJSiiyXhw8fMnXqVFq3bk2tWrVwcnLC39+fy5cv643RrVu3HOtp6NChRZpLQevEUO+l4s4jt8+LlZUVH3zwga6PKayPefPmFfhdW9yfk1JZ/AD8/f05ceIE169fZ/fu3bRp04Z9+/YxbNgwtm/fTlRUFOXLl+fNN9/k1q1beo9t3749Z8+e1d3WrFmjt3zixIls2rSJJUuWsHXrVu7evUu/fv3IysoqsvwcHR31YnzyCjZffvkloaGhzJkzh19//RVbW1t69erF3bt3TSqH6OhovRx2796NSqXSO0XFFNdFWloajRs3Zvbs2VSqVCnHckO9/v7+/vz555+sWbOGtWvX8ueffxIQEFBkudy7d48//viDDz74gN27d7NixQr+/fdf+vTpQ2Zmpl7fgQMH6q2n+fPn6y03di4FrRMwzHupuPN4Mv6zZ8+yatUqAL3PDBT/+lDyXVvcn5NSd55fYaSmpuLg4MBPP/1Ely5dgEd/ISYnJ7N69epcH3P79m0aNmxIaGiobgvlypUruLi4sHbtWjp27Gj0uGfNmkVUVBQHDhzIsUyr1dKoUSOGDx+u+2vw/v37ODo6MmPGDIYMGWISOeTmiy++4KuvvuLMmTO88MILJWJd1K5dm88//5yBAwcChnv9z549i4eHB9u2bcPT0xOAAwcO0KVLFw4fPoyjo6PRc8nNmTNn8PT0ZP/+/TRp0gR4tKXRuHFjQkJCcn1MUeeSWx6GeC+ZQh5PGzNmDDExMfz++++6NlNbH5Dzu9YUPieldstPidTUVLKzs7GystJrP3DgAA0bNsTd3Z0xY8Zw48YN3bLjx4/z8OFDvLy8dG116tTBycmJgwcPFlnsFy5cwNnZGVdXV4YOHcqFCxcAuHjxIomJiXrxVapUidatW+viM5UcnqTValm+fDn9+vXjhRde0LWXhHXxJEO9/ocOHcLS0lLvIC1PT08sLCyKLTdA91f505+ZdevWUb9+fTw9Pfnkk0/0/no3lVye971kKnk8lpqaSmRkpO5KVk8ytfXx9HetKXxOSuUBL0oFBwfj4uJCq1atdG2vvfYa3bt358UXX+TSpUvMnDmTHj168Ntvv1GxYkWuX7+OWq3G2tpab6yiPIm+RYsWLFq0CEdHR27evElISAje3t7ExsaSmJioi+fp+K5duwZgEjk8LTo6mosXL/L222/r2krCuniaoV7/69evY21trXduqkqlwsbGpthyy8jI4JNPPqFz587Url1b1+7r64u9vT12dnacOXOGadOmcfLkSTZs2ACYRi6GeC+ZQh5PWrt2LQ8ePMDPz0+v3RTXx9PftabwOSmzxe/jjz8mNjaWbdu2oVarde29e/fW/b9Jkya4ubnh4uLC9u3b6dGjR57jFeVJ9J06ddK736JFC9zc3FixYgUtW7YEnu0k/+K8EMDSpUtp3rw5rq6uuraSsC7yYojXP7f+xZVbZmYmI0aM4Pbt26xcuVJv2eDBg3X/b9KkCXXr1qVjx44cP34cNzc3oPhzMdR7qbjzeNLSpUvp1q0bNjY2eu2mtj7y+q7NLY6i/JyUyd2eEydOZN26dURFRVG3bt18+9asWZNatWoRHx8PQI0aNcjKyiIpKUmvX3GeRG9paUmjRo2Ij49Ho9EA5HuSv6nlcOPGDbZu3Zrr7psnlYR1YajXv0aNGty8eROt9n8/yWu1WpKSkoo8t8zMTIYNG8apU6fYuHEj1atXz7d/s2bNUKvVeuvJVHJ57FneS6aUx59//smxY8cK/MxA8a6PvL5rTeFzUuaK34QJE1i7di1RUVF6pwfkJSkpiWvXrulWlpubGxUqVNA7if7ff//V/fBaHNLT04mLi0Oj0fDiiy+i0Wj04ktPT+fAgQO6+EwthxUrVlCxYkV8fHzy7VcS1oWhXv9WrVqRmprKoUOHdH0OHTpEWlpakeb28OFDhgwZwqlTp9i0aZPutc/PqVOnyMrK0vU1lVye9CzvJVPKY+nSpTg4ONC+ffsC+xbX+sjvu9YUPifq4ODg/z5vkiXFBx98wKpVq/jhhx+oU6cOaWlppKWlAY+uDJOamsr06dOxtLQkMzOTEydOMHr0aLKysggJCaFixYqYm5uTkJDA999/z0svvcTt27cZO3YsVapUYdq0aZQrZ/y/Jz755BPMzMzIzs7m77//5sMPPyQ+Pp758+djZWVFVlYW8+fPp2HDhmRlZTFp0iQSExNZsGCByeTwmFarJTAwkNdff13vcG1TXhepqamcOXOGxMREli9fTuPGjalSpQoZGRlUrVrVIK+/jY0Nv//+O2vXrsXV1ZV///2XsWPH0rx5c4Mekp5fLhYWFgwaNIijR4+ybNkyKleurPvMqNVqKlSowPnz5/nuu++wsLAgIyODQ4cO8f7771O7dm0++eSTIsslvzzUarVB3kvFnUfVqlWBR6egjBo1ihEjRtCmTRu9x5vK+ijou1alUhX756RMnerw9BFqj02YMIGJEydy//59Bg4cyJ9//snt27fRaDS8+uqrTJo0iTp16uj6p6enM3nyZNauXUt6ejpt27Zl7ty5en2MaejQocTExJCUlISNjQ0tWrRg0qRJNGrUCHhUUGbPns0PP/xASkoK7u7ufPHFFzRu3Nhkcnhsz5499OjRg127duHu7q5rN+V1sXfvXrp3756j3c/Pj8WLFxvs9b916xYTJkzg559/BqBLly58/vnneb6PDZ1LcHAwTZs2zfVxoaGhDBw4kCtXrjBixAj++usv0tLSqF27Nt7e3gQHB1Ot2v/mizN2LvnlMW/ePIO9l4ozj8WLFwPw448/EhQUxMmTJ6lZs6ZeP1NZHwV914LhvqeeNZcyVfyEEEIIKIO/+QkhhBBS/IQQQpQ5UvyEEEKUOVL8hBBClDlS/IQQQpQ5UvyEEEKUOVL8BACjR4/GysqKjz/+uFCPs7KyYtasWbr7jyfaNYbNmzfz9ddfG3zckSNH4uLioqhvamoq8+fP103UaWtry0svvcSgQYPYsmWL3mWWTFlaWhpOTk5s3LhR1/Z43dnZ2XH79u0cj/npp590k6M+vlQWPJpCp1u3brr7e/fuxcrKir179xaqT1F4eiLoOnXq0Lx5c/z9/dm1a9dzj/ukpz8bRWHChAm66X9E/qT4Ce7fv6/7ElyzZk2OiUoL45133mHnzp2GCk3Pli1bWLRokVHGVuLq1at07NiRBQsW0KFDB8LDw1m/fj3BwcHcu3ePgQMHcuTIkWKLrzC+/vprrK2tc72oc4UKFfSK4mOrVq2icuXKOdrnzp3L3LlzC/X8TZs2ZefOnXmeRG9s27ZtY+fOnfz000+8//77pKSk0Lt3b0aMGEF2dnaxxGQIY8eOZc+ePezevbu4QzF5ZXZWB/E/mzdv5s6dO3h7e7Njxw5++eUXOnfu/Exj1a5dW2+6m9Jk+PDh3Lhxg99++4169erp2l955RXeeustfvvtN6pUqZLvGA8ePKBixYrGDjVfGRkZfPfddwQHB+d65fs33niD1atX88477+jarly5wv79++nfvz8rVqzQ6//4ykKFUaVKFd0MJMWhRYsWlC//v6+/d955h9DQUCZNmoSLiwujR48utthyo/R9Y2dnR+fOnfn6669p165dEURWcsmWn2DlypVYWVmxaNEiKlWqxKpVq3L0ycrKYubMmTg5OVGzZk26devGX3/9laPf07t/Ll68iJWVFT/99JNev9x2e+3atQtvb28cHByoXbs2LVq0YM6cOcCjXZMrV67k6tWrul1WT+6qTEpKYty4cTg7O1OjRg1atmzJDz/8kCO+3bt307ZtWzQaDW5ubvzf//2fotfo8OHD7N+/n/Hjx+sVvie1b99e7wK+I0eOpHHjxhw6dAhvb2/s7OyYMmUKAHFxcQwcOBAHBwfs7Ox47bXX+OWXX/TG+/vvvxk4cCANGzZEo9Hodq8+3jJPTU3lww8/5KWXXqJGjRo4OjrSs2dPzp07l28umzdv5tatW3leSLx///7ExMRw6dIlXdvq1aupU6cOrVu3ztH/6V2aSuS2/rVaLaGhobRo0QJbW1ucnJz48MMPuXPnjt5jraysmDlzJt988w2urq7UqVOHrl275vp+LIzAwEBcXV355ptv9NqVrCsl4uPjGTFiBK6urtjZ2dG0aVPGjRtHSkqKXr/83jdr1qzh1VdfpXbt2jg4ONC6desc72EfHx927drFlStXCh1jWSJbfmXctWvX+O233xg8eDA2NjZ069aNTZs2kZKSolfEZs2axdy5cwkMDMTLy4tjx47lmETzeVy4cAE/Pz969uzJRx99RIUKFYiPj9fNUP/RRx+RlJTE0aNHdfPJmZmZAXDnzh1ef/110tPTCQ4O5sUXX2TXrl2MGzeOBw8e6C5we/bsWXx9fWnWrBlLliwhIyOD2bNnk5aWVuBFsB/vRirsFvGdO3cYOnQoo0ePZvLkyVSqVIlr167RuXNnLC0tCQkJoUqVKoSFhdG3b19Wr16tm6+xX79+VK1alblz52Jtbc21a9fYuXOnbrfcxx9/zM8//8zkyZNp0KABycnJHDx4MNff6570yy+/4OTklGOS0Mdat26Ng4MDa9asYfz48cCj4te3b1+jzls3Y8YM5s2bx/Dhw+ncuTNnzpzhs88+4+TJk2zZskVvHa1evRpHR0dmz57Nw4cPmTx5MgMGDODw4cN6W3SF1alTJ+bOncvly5ext7dXvK6UuHbtGrVr19b9gXjhwgXmzZuHr69vjp8KcnvfHDhwgBEjRhAQEMCMGTPIzs7m3LlzOdZ3mzZtyM7OJjo6Wm9yaKFPil8Zt3r1arKzs+nfvz/w6AK6a9euJTIykqFDhwKQkpLC4sWLGTx4MDNnzgTAy8sLtVrNf//7X4PE8ccff5CRkcHcuXN1uw6f3G1Tr149rK2tMTMzy7G77JtvvuHy5cvExMTQoEED4NFW2O3bt5kzZw7Dhg2jfPnyfPHFF1haWhIZGYmFhQXwaEqUZs2aYWdnl298V69eBchxwezs7Gy934jKlSun9yWdmprKt99+q7dl9Mknn5CSksLOnTupX78+AN7e3nh4eDBjxgw6depEUlIS//zzDytWrKBr1666x/r6+ur+f/jwYXx9ffV2T+Z2UeSn/f777/n+1qZSqXRf7uPHj+fIkSOcO3cOPz8/YmNjCxz/Wdy6dYvQ0FD8/PwICQkBoGPHjtjY2BAQEMC2bdv0XocKFSqwevVqKlSooGsbNGgQR44cea5peR6v38TEROzt7QkNDS1wXSnVpk0bvVkYPDw8qF+/Pl26dOGPP/7QWye5vW8WLlxI1apVmT17tq7Ny8srx/NYW1tTu3Ztfv/9dyl++ZDdnmXcqlWraNCgAa1atQIeFY2aNWvq7fo8deoUaWlpelMOAQXOv1cYLi4uVKhQgWHDhrFx40Zu3Lih+LGPZ4R48cUXyczM1N06duxIcnIyZ86cAR7N89WpUydd4YNHX3ZKvizzOopz/Pjx2NjY6G6fffaZ3vLy5cvn2FqMiYmhZcuWui9TALVaTe/evTlx4gR37tyhevXq1K1bl2nTprF06VL++eefHM/drFkzVqxYwdy5czl27BhZWVkF5gGQkJCQ51bfY35+fpw7d46jR4+yatUqWrZsqfvDwhgOHz7MgwcP6Nevn1577969KV++PPv379dr79Chg17hezwTwPPu6nu8nh9v4SpZV0o9/uOuZcuW2NnZYWNjQ5cuXYBHu7iflNv7plmzZqSkpDBixAi2bduWY3fpk6ytrUlISFAcW1kkxa8MO3r0KGfOnKF79+6kpKSQkpLC3bt3eeONNzh06JDuA5mYmAg8mjX5SU/ffx7169dn3bp1ZGdnExAQwH/+8x86duzIvn37CnzsjRs3iImJ0StCNjY2ulmuk5OTdXnkFrOSPB4fxPP0l+u4ceOIjo7Wm3DzSba2tqjVar22W7du5ToprEajQavVkpKSgkqlYsOGDbi5uTFt2jTc3d1p2rQpS5Ys0fX//PPPGTJkCD/++CMdOnSgYcOGTJw4kXv37uWbS3p6eoEHT9SvX59WrVqxfPly1q1bp9szYCy3bt0CyPG6lC9fnurVq+uWP/bk9Dzwv13g6enpzxXHv//+qxeHknWl1LRp05g9e7Zuq/rXX39l+fLlucad2/vmlVdeYenSpVy5coW33nqLhg0b0rNnT06ePJnjuSpVqsT9+/cVx1YWSfErwx7/drZgwQLq1q2ru33//fcAuq2/xx/+69ev6z3+6fu5MTc3Bx7NCP6kxwXpSW3btmXdunVcvHiRDRs2UKFCBfr160dSUlK+z1G9enU8PDx0RejpW7NmzXR55Bazkjzatm0LPDpE/kn29vY0a9ZM9xxPy+03smrVquX6nImJiahUKt0Xe926dfn222/5559/2LNnD23btmX8+PG634csLS2ZOnUqx44d488//2TcuHF8//33uoOE8lK9enVFX9r9+/dn6dKlpKamGnQrPzePc376dcnMzCQ5OZnq1asb9fkf27FjB3Xq1NHt/lS6rpSIjIykf//+fPjhh7Rr147mzZvrJqh9Wl6/rfbs2ZOtW7dy4cIFfvzxRxITE+nTp0+O0zNu3bpV4NZ9WSfFr4zKyMhg3bp1tGjRgk2bNuW4ubi4sGrVKrRaLU2aNMHCwoINGzbojREZGVng89SoUYOKFSty+vRpvfYdO3bk+ZiKFSvSrl07xowZQ1paGhcvXtS15/bXbMeOHTl37hx16tTRFaInb4/PTWvVqhU7d+7UzSgNj7bkDh48WGAerVq14uWXX2bu3LmcP3++wP75adOmDYcPH9blBY+Opl2/fj2urq45zqVTqVS4urry6aefAuR6VKODgwOjR4+mcePGBR716OjoqDuQKD8+Pj506dKF999/v1Bf8s+iZcuWVKxYkXXrrN61rwAABJRJREFU1um1R0ZGkpmZmWPGcmMIDQ3lxIkTBAYG6toKu67yc+/ePb1dtUCOo6CVsrS0pHPnzgwePJiEhAS9PyazsrL4999/adiw4TONXVbIAS9l1LZt20hOTmbmzJm8+uqrOZYPGTKEcePGsXfvXtq2bcvIkSOZO3culpaWeHl5cfToUd0um/yoVCp69erFjz/+SMOGDXF0dGT79u05dmeGh4cTExNDp06dqF27NklJScyfP5+aNWvi7OwMgJOTE7du3WLJkiU0a9aMihUr0qRJE0aNGsX69evp0qULo0aNomHDhty7d4+4uDhiYmJ0W7gffPABGzZswMfHh9GjR/Pw4UNmzZqlePdtWFgYPXv2pH379vj7+/Pyyy/zwgsvcPPmTd1uT0tLywLHGTVqFCtWrKBXr15MnDiRypUrs2TJEv7++28iIiIAOHnyJMHBwfj4+FC/fn2ysrJYsWIF5cuX122FdurUiS5dutC4cWMsLCzYv38/J0+eLPAo3NatW7N48WKys7PzPco1t1NUjKVatWoEBgYyb948XnjhBby9vTl79iyffvopL7/8Mq+//rpBn+/3339HrVaTnp7OhQsXiIqKYufOnfj5+fHuu+/q+ilZV0q99tprrFy5ksaNG1O/fn02bdrEoUOHFD/+008/5caNG7z66qvY2dlx9epVvv32W1xcXLCxsdH1O336NGlpaUXyB0NJJsWvjFq5ciWVK1fOcRDLY71792bSpEmsXLmStm3bMnHiRACWLVvG999/j7u7O6tWrcLT07PA55o9ezbZ2dm6f3v16sXnn3+ud3DDSy+9xM6dO5k+fTo3btygWrVqeHp68v3331OpUiXg0YnIv//+O9OnT+f27dvY29tz4sQJqlatyo4dO5gzZw4LFizg2rVrVK1aFUdHR72jH52cnFizZg2TJ09m6NCh1KxZk/fff59Dhw4p+m2xdu3aREdH89133xEVFcW3337LgwcP0Gg0uLu7s3LlSt0BDPmpWbMm27ZtY+rUqYwfP54HDx7g4uJCREQEr732GvBoF22dOnUIDQ3l6tWrVKxYkcaNG7N69Wrc3NyAR0Vs/fr1LFiwgMzMTOrWrctnn32m9+WdGx8fH+bMmUNMTAyvvPJKgfEWlcmTJ2Ntbc3//d//sWTJEqpXr07//v2ZMmVKgaeiFNbjg0leeOEF3fpbt24dHTt21OunZF0p9fnnn6PVapkxYwbw6KjRJUuW5HrEZm5atGjBt99+y8cff8ytW7ewtbWlQ4cOTJo0Sa/f9u3b0Wg0JrVuTZEqJSWlZFyMUJQIH3/8MatWrdK79qMwPd26daN+/fosXLiwuEMRBubh4UH37t355JNPijsUkya/+QmDuHXrFj///DObN28u1stWCWUmT57MmjVrdOcvitJhy5YtXL9+nffee6+4QzF5UvyEQezfv59hw4bh4OBQ5FeyF4Xn6enJZ599xuXLl4s7FGFA6enpfPfdd0abWaU0kd2eQgghyhzZ8hNCCFHmSPETQghR5kjxE0IIUeZI8RNCCFHmSPETQghR5kjxE0IIUeb8P56Ip7QzMTTGAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.hist('Adjusted Gross', bins=np.arange(300,2001,100), unit=\"Million Dollars\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The horizontal axis of this figure is easier to read. For example, you can see exactly where 600 is, even though it is not labeled.\n", "\n", "A very small number of movies grossed a billion dollars (1000 million) or more. This results in the figure being *skewed to the right*, or, less formally, having *a long right hand tail*. Distributions of variables like income or rent in large populations also often have this kind of shape." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Area Principle ##\n", "Both axes of a histogram are numerical, so you can do arithmetic on both of them. For example, you can multiply the values on either or both of the axes by a factor. To see how this could affect visual perception, let's step back from histograms and look at a graphic provided for this purpose by the site [Flowing Data](https://flowingdata.com/2012/03/16/new-ipad-battery-size-is-huge/). It is a comparison between the battery sizes of two iPad models.\n", "\n", "![iPad batteries](../../../images/ipad_battery.png)\n", "\n", "The larger of the batteries is supposed to be 70% bigger than the smaller. So it's meant to be bigger but not quite twice as big. However, the larger battery in the picture looks almost four times the size of the smaller one.\n", "\n", "The reason for this problem is that the eye picks up *area* as the measure of size, not just height or just width. In the picture, both dimensions have been increased by 70%, leading to a multiplicative effect in the area.\n", "\n", "The area principle of visualization says that when we represent a magnitude by a figure that has two dimensions, such as a rectangle, then the *area* of the figure should represent the magnitude." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Histogram: General Principles and Calculation\n", "\n", "Histograms follow the area principle and have two defining properties:\n", "\n", "1. The bins are drawn to scale and are contiguous (though some might be empty), because the values on the horizontal axis are numerical and therefore have fixed positions on the number line.\n", "2. The **area** of each bar is proportional to the number of entries in the bin. \n", "\n", "Property 2 is the key to drawing a histogram, and is usually achieved as follows:\n", "\n", "$$\n", "\\mbox{area of bar} ~=~ \\mbox{percent of entries in bin}\n", "$$\n", "\n", "Since areas represent percents, heights represent something other than percents. The numerical calculation of the heights just uses the fact that the bar is a rectangle:\n", "\n", "$$\n", "\\mbox{area of bar} = \\mbox{height of bar} \\times \\mbox{width of bin}\n", "$$\n", "\n", "and so\n", "\n", "$$\n", "\\mbox{height of bar} ~=~ \n", "\\frac{\\mbox{area of bar}}{\\mbox{width of bin}} ~=~\n", "\\frac{\\mbox{percent of entries in bin}}{\\mbox{width of bin}}\n", "$$\n", "\n", "The units of height are \"percent per unit on the horizontal axis.\" The height is the percent in the bin relative to the width of the bin. So it is called *density* or *crowdedness*.\n", "\n", "When drawn using this method, the histogram is said to be drawn on the *density scale*. On this scale:\n", "- The area of each bar is equal to the percent of data values that are in the corresponding bin.\n", "- The total area of all the bars in the histogram is 100%. In terms of proportions, we can say that the areas of all the bars in a histogram \"sum to 1\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Vertical Axis: Density Scale\n", "\n", "As we have just seen, the height of each bar is the percent of elements that fall into the corresponding bin, relative to the width of the bin. We will now see how `hist` calculated the heights of all the bars of the histogram above. \n", "\n", "Here is the histogram again for ease of reference. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAb8AAAEdCAYAAACcx2mXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXhMZ/vA8e8YIpogJDGxJLXljdBECJLSWqJSS1EhCG1tISUlRVtRxWtp0dTSaugS+RWtJQhiqaWa2iKopbUUaWMtCRJBQkSS+f3hMq+R7YSZZJLcn+uai3nOM8/c95yZuXPOnHMeVUpKihYhhBCiDClX3AEIIYQQRU2KnxBCiDJHip8QQogyR4qfEEKIMkeKnxBCiDJHip8QQogyR4qfEEKIMqfYi19YWBiurq5oNBratWtHTExMnn3PnDnDG2+8gaOjIxqNhqZNmzJ9+nQyMjJ0ffbu3YuVlVWO27lz54oiHSGEECVA+eJ88sjISIKDg5k7dy6enp6EhYXh6+tLbGws9vb2OfqbmZnh5+eHq6srVatW5eTJkwQFBZGZmcn06dP1+sbGxlKtWjXdfRsbG6PnI4QQomQo1i2/0NBQBgwYwKBBg3ByciIkJASNRkN4eHiu/evXr8/AgQNxcXHBwcGBrl274uvry4EDB3L0tbW1RaPR6G5qtbrQ8cXFxRX6MaZI8jA9pSUXycO0lJY8wPi5FFvxy8jI4Pjx43h5eem1e3l5cfDgQUVjxMfHs2vXLtq0aZNjWfv27XFycqJHjx7s2bPHIDELIYQoHYqt+CUlJZGVlYWtra1eu62tLdevX8/3sd7e3mg0Gpo3b46npydTpkzRLbOzs2PevHksX76c5cuX4+joSM+ePdm/f79R8hBCCFHyqIrrwtbXrl3D2dmZrVu30rp1a1377NmzWbduHYcPH87zsVeuXCE1NZWTJ08yZcoU/P39GTduXJ79fX19UavVrFq1Ks8+pWl3gRBClHWOjo75Li+2A16sra1Rq9U5tvJu3ryZY2vwaXXq1AGgUaNGZGVlMWbMGMaMGUP58rmn4+7uTmRkZL5j5vZCxcXFFfgClgSSh+kpLblIHqaltOQBxs+l2HZ7mpmZ4ebmRnR0tF57dHQ0Hh4eisfJzs4mMzOTrKysPPucOHECjUbzzLEKIYQoXRRv+d2/f5+0tDS9UwZu3rzJsmXLSElJoWfPnri7uxfqyQMDAwkICMDd3R0PDw/Cw8NJSEhgyJAhAEybNo0jR44QFRUFwKpVqzA3N6dx48aYmZlx7Ngxpk+fTs+ePalYsSIAixYtwsHBAWdnZzIyMoiIiGDLli0sW7asULEJIYQovRQXv7Fjx/LXX3+xe/duANLS0ujYsSOXLl0CYPHixWzatAlPT0/FT+7j40NycjIhISEkJibi7OxMREQEDg4OACQkJHD+/Pn/BVu+PPPmzSM+Ph6tVou9vT3+/v6MGjVK1+fhw4dMnjyZa9euYW5urhvT29tbcVxCCCFKN8XFLzY2lv79++vur127lkuXLrF27VpcXFzw8fHhiy++YO3atYUKwN/fH39//1yXLV68WO9+nz596NOnT77jBQUFERQUVKgYhBBClC2Ki19iYiK1a9fW3f/5559p1aoVHTt2BGDgwIHMnz/f8BGWAIk3bnHz1h2DjWdTrQoa22oFdxRCCPFMFBc/CwsLUlJSAMjMzCQmJoaRI0fqlleqVIm7d+8aPsIS4OatO0z/6ieDjTdlzEApfkIIYUSKi1+zZs1Yvnw5bdu25eeffyY1NZXOnTvrlp8/f54aNWoYJUghhBDCkBQXv0mTJtGrVy86dOiAVqulR48eNGvWTLd88+bNhTpFQQghhCguioufm5sbv//+OwcPHqRy5cq8+uqrumUpKSn4+/vneo1NIYQQwtQoKn7p6el8+eWXtGzZkq5du+ZYbmVlpff7nxBCCGHKFF3hxdzcnPnz53PlyhVjxyOEEEIYneLLm7m4uBAfH2/MWIQQQogiobj4TZkyhWXLlrF9+3ZjxiOEEEIYneIDXr766iusrKzw8/OjVq1a1K1bl0qVKun1UalUREREGDxIIYQQwpAUF78zZ86gUql00wk9vqbnk1QqleEiE0IIIYxEcfE7ceKEMeMQQgghikyxzecnhBBCFJdnmsn97t273Llzh+zs7BzL7O3tnzsoIYQQwpgKVfyWLVvGV199le8pD8nJyc8dlBBCCGFMind7Ll++nKCgIOzt7fnkk0/QarWMHDmSsWPHUqNGDVxcXFi4cKExYxVCCCEMQnHxW7x4Ma+++irr169n8ODBAHh7ezN58mRiY2NJSUnhzh3DzWknhBBCGIvi4hcfH88bb7zx6EHlHj3s4cOHwKNre77zzjuEhYUZIUQhhBDCsBQXPwsLC7RaLQCWlpao1WoSEhJ0y6tXr87Vq1cNH6EQQghhYIqLn6OjI6dPnwagfPnyuLi4sGrVKh4+fEh6ejqrV6/mxRdfNFqgQgghhKEoPtqzW7duLF68mPT0dMzNzfnggw94++23qVu3LiqVirS0NL755htjxiqEEEIYhOLiN3r0aEaPHq27361bN7Zu3crGjRtRq9V07tyZV155xShBCiGEEIb0XFd48fT0ZNasWcycOdOohS8sLAxXV1c0Gg3t2rUjJiYmz75nzpzhjTfewNHREY1GQ9OmTZk+fToZGRlGi08IIUTJ8kxXeClKkZGRBAcHM3fuXDw9PQkLC8PX15fY2NhcryZjZmaGn58frq6uVK1alZMnTxIUFERmZibTp08vhgyEEEKYmjyLX/fu3Qs9mEqlIioq6rkCelpoaCgDBgxg0KBBAISEhLBr1y7Cw8OZOnVqjv7169enfv36uvsODg7s27ePAwcOGDQuIYQQJVeeuz2zs7PRarWFuuV2rc/nkZGRwfHjx/Hy8tJr9/Ly4uDBg4rGiI+PZ9euXbRp08agsQkhhCi58tzy27JlS1HGkaukpCSysrKwtbXVa7e1teX69ev5Ptbb25s//viDBw8eMGjQIKZMmZJv/7i4uEK1Pyk1LYO0tLQC+ymVmfmQg8dOGWw8K8sXFOVREpSWPKD05CJ5mJbSkgc8Xy6Ojo75Ljf53/wg5yS5Wq22wIlzw8PDSU1N5eTJk0yZMoUFCxYwbty4PPvn9kLFxcUV+AICnDp3EQsLiwL7KXUv/SELwjcabLxxw3ri0ayJwcYrLkrXR0lQWnKRPExLackDjJ+LSRc/a2tr1Gp1jq28mzdv5tgafNrjGecbNWpEVlYWY8aMYcyYMZQvb9IpCyGEKAJ5VoJq1aoVuHX1NJVKRVJS0nMH9ZiZmRlubm5ER0fz5ptv6tqjo6Pp0aOH4nGys7PJzMwkKytLip8QQoi8i99HH31U6OJnDIGBgQQEBODu7o6Hhwfh4eEkJCQwZMgQAKZNm8aRI0d0R5muWrUKc3NzGjdujJmZGceOHWP69On07NmTihUrFmcqQgghTESexW/ixIlFGUeefHx8SE5OJiQkhMTERJydnYmIiMDBwQGAhIQEzp8/r+tfvnx55s2bR3x8PFqtFnt7e/z9/Rk1alRxpSCEEMLElIh9gP7+/vj7++e6bPHixXr3+/TpQ58+fYoiLCGEECVUoYrfnTt3WLhwITt27ODSpUvAo5PIX3/9dd577z2qVKlilCCFEEIIQ1J8bc+EhATatm3LF198wf3792nTpg2tW7fm/v37hISE0K5dO735/YQQQghTpXjL77///S+JiYn89NNPdO3aVW/Zzz//zNChQ5k+fTqLFi0yeJBCCCGEISne8tu1axcjRozIUfgAunTpwvDhw9mxY4dBgxNCCCGMQXHxu3v3ru7E8dzUqVOH1NRUgwQlhBBCGJPi4tegQQOioqJyvXh1dnY2mzZtokGDBgYNTgghhDAGxcUvICCAffv20atXL7Zv3058fDzx8fFs27YNHx8f9u/fz7vvvmvMWIUQQgiDUHzAyzvvvENSUhJz5sxh7969unatVkvFihWZMmUKb7/9tlGCFEIIIQypUOf5jR07lkGDBhEdHc3ly5eBR+f5tW/fnurVqxslQCGEEMLQCn2Fl+rVq9O7d29jxCKEEEIUCcXF759//uG3337j/PnzpKamYmlpSf369enQoQP16tUzZoxCCCGEQRVY/O7evUtQUBAbN27M9UjPcuXK0bt3b+bPn2/QCV2FEEIIY8m3+Gm1WgYMGMC+ffvw8vKiX79+ODs7Y2lpSWpqKn/99RerVq1izZo1XL9+nQ0bNhRV3EIIIcQzy7f4bdq0iX379vHf//6XoKCgHMtdXFzo27cv8+fPZ8aMGWzevJk33njDaMEKIYQQhpDveX7r1q3jpZdeyrXwPWns2LE0btyYtWvXGjQ4IYQQwhjyLX5//PEHnTt3VjRQly5dOH78uEGCEkIIIYwp3+J38+ZN7O3tFQ1kb2/PzZs3DRKUEEIIYUz5Fr+0tDQqVaqkaCBzc3Pu3btnkKCEEEIIYyrw2p4qlaoo4hBCCCGKTIHn+QUGBjJ69OgCB8rtHEAhhBDCFOVb/Pz8/IoqDiGEEKLI5Fv8Fi1aVFRxCCGEEEVG8Xx+xhIWFoarqysajYZ27doRExOTZ9+9e/fi5+eHk5MTNWvWpHXr1ixfvjxHHysrqxy3c+fOGTsVIYQQJUShZ3UwpMjISIKDg5k7dy6enp6EhYXh6+tLbGxsrqdYHDp0iCZNmhAUFISdnR27du3i/fffx9zcHF9fX72+sbGxVKtWTXffxsbG6PkIIYQoGYq1+IWGhjJgwAAGDRoEQEhICLt27SI8PJypU6fm6D9+/Hi9+8OGDWPv3r1ERUXlKH62trZYW1sbL3ghhBAlVrHt9szIyOD48eN4eXnptXt5eXHw4EHF49y9excrK6sc7e3bt8fJyYkePXqwZ8+e545XCCFE6VFsW35JSUlkZWVha2ur125ra8v169cVjbFt2zZ2797N9u3bdW12dnbMmzeP5s2bk5GRwerVq+nZsyebN2+mTZs2eY4VFxdXqPYnpaZlkJaWpihmJTKzMg06HijLoyQoLXlA6clF8jAtpSUPeL5cHB0d811erLs9IedJ9FqtVtGJ9bGxsQwfPpw5c+bg7u6ua3d0dNRLulWrVly6dImFCxfmW/xye6Hi4uIKfAEBTp27aNC5DMuryxt8bkQleZg6peujJCgtuUgepqW05AHGz6XYdntaW1ujVqtzbOXdvHkzx9bg0w4cOICvry8TJ05k2LBhBT6Xu7s78fHxzxWvEEKI0qNQxW/ZsmV07NiRBg0aUL169Ry3whxgYmZmhpubG9HR0Xrt0dHReHh45Pm4/fv34+vry0cffcSoUaMUPdeJEyfQaDSKYxNCCFG6Kd7tOX36dBYsWECTJk3w9fXN9SCTwgoMDCQgIAB3d3c8PDwIDw8nISGBIUOGADBt2jSOHDlCVFQU8Ogcvn79+jFs2DD69u1LYmIiAGq1Wncqw6JFi3BwcMDZ2ZmMjAwiIiLYsmULy5Yte+54hRBClA6Ki9+PP/5I165d+fHHHw325D4+PiQnJxMSEkJiYiLOzs5ERETg4OAAQEJCAufPn9f1X7FiBffu3WPhwoUsXLhQ125vb8+JEycAePjwIZMnT+batWuYm5vrxvT29jZY3EIIIUo2xcUvLS2N1157zeAB+Pv74+/vn+uyxYsX57j/dNvTgoKCCpx5XgghRNmm+Dc/T09PTp06ZcxYhBBCiCKhuPiFhISwfft2fvzxR7RarTFjEkIIIYxK8W5PPz8/MjIyGDNmDB999BG1atVCrVbr9VGpVMTGxho8SCGEEMKQFBc/GxsbbG1tadiwoTHjEUIIIYxOcfHbsmWLMeMQQgghikyxz+cnhBBCFLVCXdszKyuLFStWsGPHDi5dugSAg4MDr7/+On5+fjl+AxRCCCFMkeLid+fOHXx8fDh69CiWlpbUrVsXrVbL7t272bJlC0uXLiUyMpLKlSsbM14hhBDiuSne7Tlz5kyOHTvGZ599xt9//82ePXvYu3cv//zzD7NmzeLo0aPMnDnTmLEKIYQQBqG4+G3evJkhQ4bw7rvvYmZmpmuvUKECAQEBDB48mE2bNhklSCGEEMKQFBe/pKQknJ2d81zeuHFjkpKSDBKUEEIIYUyKi5+9vX2O6YeeFB0djb29vUGCEkIIIYxJcfF766232LJlCyNHjuSvv/7i4cOHPHz4kNOnTxMYGMjWrVt55513jBmrEEIIYRCKj/YMCgri4sWL/PDDD6xevRqVSgWAVqtFq9UyZMgQxowZY7RAhRBCCENRXPxUKhXz589nxIgRbN++Xe88P29vbxo3bmy0IIUQQghDKtRJ7gDOzs75HvgihBBCmDq5vJkQQogyJ88tP1dXV8qVK8fhw4epUKECrq6uut/58qJSqTh+/LjBgxRCCCEMKc/i16ZNG1QqFeXKldO7L4QQQpR0eRa/xYsX53tfCCGEKKnkNz8hhBBlTp5bfpcvX36mAY1xlZewsDC++uorEhMTadSoEbNmzaJ169a59t27dy+LFi3i6NGj3Llzh3r16jFy5Ejefvttg8clhBCiZMr3gJdn+Y0vOTn5uQJ6WmRkJMHBwcydOxdPT0/CwsLw9fUlNjY210J76NAhmjRpQlBQEHZ2duzatYv3338fc3NzfH19DRqbEEKIkinP4vf111+bxAEuoaGhDBgwgEGDBgEQEhLCrl27CA8PZ+rUqTn6jx8/Xu/+sGHD2Lt3L1FRUVL8hBBCAPkUv4EDBxZlHLnKyMjg+PHjjB49Wq/dy8uLgwcPKh7n7t271KpVy9DhCSGEKKEKfYWXopSUlERWVha2trZ67ba2tly/fl3RGNu2bWP37t1s377dGCEKIYQogfIsfitXrnymAf38/J45mLw8vftVq9Uq2iUbGxvL8OHDmTNnDu7u7vn2jYuLK1T7k1LTMkhLSyuwn1KZWZkGHQ+U5VESlJY8oPTkInmYltKSBzxfLo6Ojvkuz7P4jRo1qtBPplKpDFr8rK2tUavVObbybt68mWNr8GkHDhygb9++TJw4kWHDhhX4XLm9UHFxcQW+gACnzl3EwsKiwH5KlVeXN+h4UPAboSRQuj5KgtKSi+RhWkpLHmD8XPIsfn/88YfRnlQpMzMz3NzciI6O5s0339S1R0dH06NHjzwft3//fvr168eECROeqYgLIYQo3fIsfg4ODkUZR54CAwMJCAjA3d0dDw8PwsPDSUhIYMiQIQBMmzaNI0eOEBUVBTw6z69fv34MGzaMvn37kpiYCIBarcbGxqbY8hBCCGE6TPqAFwAfHx+Sk5MJCQkhMTERZ2dnIiIidMU5ISGB8+fP6/qvWLGCe/fusXDhQhYuXKhrt7e358SJE0UevxBCCNOTZ/ELDAxEpVLx5ZdfolarCQwMLHAwlUrF119/bdAAAfz9/fH39891WW7XIJXrkAohhMhPnsVvz549lCtXjuzsbNRqNXv27FE0pZEQQghh6vIsfk/vIpRdhkIIIUoLmdVBCCFEmSPFTwghRJmT79GeHh4ehRpMpVIRGxv7XAEJIYQQxpZv8Tt37hyVKlXCzc2NcuVkI1EIIUTpkG/xa9asGceOHSM+Ph4fHx/69u2Lm5tbUcUmhBBCGEW+m3O//vorR44cYdCgQWzfvh0vLy9atmxJSEgIFy5cKKIQhRBCCMMqcF9m/fr1mThxIkeOHGHHjh20b9+e77//nubNm9OpUye+//57g8/eLoQQQhhToX7Ia9GiBSEhIfz1119ERERQsWJFJkyYwPfff2+s+IQQQgiDK/S1PW/fvs3GjRtZs2YNMTExVKlSpdRMoSGEEKJsUFT8Hj58yLZt21izZg07duwAwNvbm6VLl/L6669jZmZm1CCFEEIIQ8q3+O3bt481a9awceNG7t69S5s2bQgJCaFnz55UqVKlqGIUQgghDCrf4te9e3cqVaqEt7c3vXv3platWkD+U8u7u7sbNkIhhBDCwArc7Xn//n02btyomyw2L1qtFpVKJUd+CiGEMHn5Fr/Q0NCiikMIIYQoMvkWvwEDBhRVHEIIIUSRkQt2CiGEKHOk+AkhhChzpPgJIYQocwp9hRdR8phXrMipcxcNNp5NtSpobKsZbDwhhChqUvzKgDtp9/l6aYTBxpsyZqAUPyFEiaZot2d6ejpz5szh119/NXgAYWFhuLq6otFoaNeuHTExMfnGMXLkSFq3bo2NjQ3dunXL0Wfv3r1YWVnluJ07d87gsQshhCiZFBU/c3Nz5s+fz5UrVwz65JGRkQQHBzN+/Hj27NlDq1at8PX15fLly7n2z8rKwtzcnBEjRuDt7Z3v2LGxsZw9e1Z3a9CggUFjF0IIUXIpPuDFxcWF+Ph4gz55aGgoAwYMYNCgQTg5ORESEoJGoyE8PDzX/hYWFsyfP5/BgwdTu3btfMe2tbVFo9Hobmq12qCxCyGEKLkUF78pU6awbNkytm/fbpAnzsjI4Pjx43h5eem1e3l5cfDgwecev3379jg5OdGjRw/27Nnz3OMJIYQoPRQf8PLVV19hZWWFn58ftWrVom7dulSqVEmvj0qlIiJC2YEVSUlJZGVlYWtrq9dua2vL9evXlYaVg52dHfPmzaN58+ZkZGSwevVqevbsyebNm2nTpk2ej8vrYt35XcT7sdS0DNLS0p455qdlZmUadDzAoOOlpqUqel2Mobie1xhKSy6Sh2kpLXnA8+VS0DyziovfmTNnUKlU1KlTB4BLly7l6KNSqQoZXs7HPL5A9rNydHTUS7pVq1ZcunSJhQsX5lv8cnuh4uLiFE3Ue+rcRSwsLJ4t4FyUV5c36HiAQceztLDE0fFFg42nlNL1URKUllwkD9NSWvIA4+eiuPidOHHCoE9sbW2NWq3OsZV38+bNHFuDz8vd3Z3IyEiDjimEEKLkKrYrvJiZmeHm5kZ0dLRee3R0NB4eHgZ9rhMnTqDRaAw6phBCiJKrUCe5Z2VlsW7dOvbs2cONGzeYPHkyL730EikpKURHR/Pyyy9jZ2eneLzAwEACAgJwd3fHw8OD8PBwEhISGDJkCADTpk3jyJEjenMJnjlzhoyMDJKSkkhLS+PPP/8EwNXVFYBFixbh4OCAs7MzGRkZREREsGXLFpYtW1aYVIUQQpRiiovf7du38fHx4ejRo1haWpKWlsaoUaMAqFy5MpMmTaJ///5MmTJF8ZP7+PiQnJxMSEgIiYmJODs7ExERgYODAwAJCQmcP39e7zFPnwfYtm1bAFJSUgB4+PAhkydP5tq1a5ibm+vGLOi8QCGEEGWH4uI3bdo0zpw5w5o1a2jWrBkNGzbULVOr1XTv3p2dO3cWqvgB+Pv74+/vn+uyxYsX52gr6LfHoKAggoKCChWDEEKIskXxb35btmxhxIgRvPbaa7kejdmgQYM8r8wihBBCmBLFxS8lJYV69erluVyr1ZKRkWGQoIQQQghjUlz8HBwcOH36dJ7L9+/fr7crVAghhDBVioufr68vy5YtY//+/bq2x7s/v/32WzZv3syAAQMMH6EQQghhYIoPeBk7diy///47PXr0oGHDhqhUKoKDg0lOTiYxMZFu3boREBBgzFiFEEIIg1Bc/CpUqEBERARr1qxhw4YNqFQqMjMzadq0KT4+PvTt2/e5LksmhBBCFJVCz+Tu6+uLr6+vMWIRQgghikShix/AyZMndac12Nvb06RJE9nqE0IIUWIUqvitW7eOqVOncvXqVbRaLfDooJdatWoxdepU2SIUQghRIigufj/99BPvvfcejo6OTJs2jYYNG6LVavnnn39YtmwZAQEBZGRkMHDgQGPGK4QQQjw3xcVv3rx5uLu7s3nzZszNzfWWDR8+nK5duzJv3jwpfkIIIUye4vP8/v33X3x9fXMUPgBzc3P69evH1atXDRqcEEIIYQyKi1+jRo24du1ansuvXr2Kk5OTQYISQgghjElx8Zs+fTpLly5l/fr1OZatW7eOZcuWMWPGDIMGJ4QQQhiD4t/8Fi5ciLW1NcOGDSM4OJh69eqhUqmIj4/nxo0bNGjQgK+++oqvvvpK9xiVSkVERIRRAhdCCCGeleLid+bMGVQqFXXq1AHQ/b5XsWJF6tSpw4MHDzh79qzeY+TcPyGEEKZIcfEraBJZIYQQoqRQ/JufEEIIUVpI8RNCCFHmSPETQghR5kjxE0IIUeZI8RNCCFHmlIjiFxYWhqurKxqNhnbt2hETE5Nn3/T0dEaOHEnr1q2xsbGhW7duRRipEEKIkkBx8WvatClbt27Nc/m2bdto2rSpQYJ6UmRkJMHBwYwfP549e/bQqlUrfH19dfMJPi0rKwtzc3NGjBiBt7e3weMRQghR8ikufpcuXSItLS3P5WlpaXkWpOcRGhrKgAEDGDRoEE5OToSEhKDRaAgPD8+1v4WFBfPnz2fw4MHUrl3b4PEIIYQo+Qq12zO/K7b8/fffVK5c+bkDelJGRgbHjx/Hy8tLr93Ly4uDBw8a9LmEEEKUHfle4WXFihWsXLlSd/+LL75g6dKlOfqlpKRw+vRpXn/9dYMGl5SURFZWFra2tnrttra2XL9+3aDPFRcXV6j2J6WmZeS7VVxYmVmZBh0PMOh4qWmpil4XYyiu5zWG0pKL5GFaSkse8Hy5ODo65rs83+KXlpZGYmKi7v7t27fJzs7W66NSqXjhhRcYNGgQwcHBzxxofp7e4tRqtQa/bmhuL1RcXFyBLyDAqXMXsbCwMFgs5dXlDToeYNDxLC0scXR80WDjKaV0fZQEpSUXycO0lJY8wPi55Fv8hg8fzvDhwwFwdXVl9uzZdO3a1WjBPM3a2hq1Wp1jK+/mzZs5tgaFEEIIpRT/5vfnn38WaeEDMDMzw83NjejoaL326OhoPDw8ijQWIYQQpYfiWR0eu3v3LleuXOHWrVtotdocy9u0aWOQwB4LDAwkICAAd3d3PDw8CA8PJyEhgSFDhgAwbdo0jhw5QlRUlO4xZ86cISMjg6SkJNLS0vjzzz+BR1uvQgghhOLid+vWLSZMmMD69evJysrKsfzx73DJyckGDdDHx4fk5GRCQkJITEzE2dmZiIgIHBwcAEhISOD8+fN6j3n6PMC2bdsCj23E6SAAACAASURBVA7MEUIIIRQXv7Fjx7J582aGDx9OmzZtsLKyMmZcevz9/fH398912eLFi3O0ydyDQggh8qO4+P3yyy8EBATw6aefGjMeIYQQwugUH/BiZmZGgwYNjBmLEEIIUSQUF7+ePXuyc+dOY8YihBBCFAnFxW/06NEkJCTw7rvvcvjwYRISErhx40aOmxBCCGHqFP/m5+7ujkql4vjx40REROTZz9BHewohhBCGprj4ffTRRwa/pJgQQghRHBQXv4kTJxozDiGEEKLIPNNM7llZWSQnJ5OZmWnoeIQQQgijK1TxO3r0KG+++Sa1atWiYcOG7N+/H3g09VDfvn3ZvXu3UYIUQgghDEnxbs9Dhw7Ro0cPNBoN/fv3Z9myZbpl1tbWpKamsnz5ctq1a2eUQIXpUKkeTeNkKDbVqqCxrWaw8YQQoiCKi9+MGTNo0KABu3btIi0tTa/4Abz66qusXr3a4AEK03P77j0WhK832HhTxgyU4ieEKFKKd3sePXqUt956C3Nz81yP+qxdu7bexLdCCCGEqVJc/MqVK0e5cnl3T0xMpFKlSgYJSgghhDAmxcXPzc2Nbdu25bosIyODNWvW0KpVK4MFJoQQQhiL4uI3btw49uzZw3vvvaebMighIYFffvmFHj16cP78ecaPH2+0QIUQQghDUXzAS4cOHfj222/58MMPWbFiBQAjR45Eq9VStWpVwsLCaNmypdECFUIIIQxFcfED6NOnD127diU6Opp//vmH7Oxs6tWrR8eOHbG0tDRWjEIIIYRBFar4Abzwwgt069bNGLEIIYQQRULxb35bt27lww8/zHP5hx9+mOcBMUIIIYQpUVz8Fi5cyL179/Jcnp6ezpdffmmQoIQQQghjUlz8Tp8+jZubW57LmzZtypkzZwwSlBBCCGFMiotfZmYm9+/fz3P5/fv3efDgQaEDCAsLw9XVFY1GQ7t27YiJicm3/6lTp+jatSt2dnY4OzszZ84ctFqtbvnevXuxsrLKcTt37lyhYxNCCFE6KS5+jRs3Jioqiuzs7BzLsrOziYqKolGjRoV68sjISIKDgxk/fjx79uyhVatW+Pr6cvny5Vz737lzh169elGjRg1+/fVXZs+ezcKFC/n6669z9I2NjeXs2bO6W4MGDQoVmxBCiNJLcfF79913OXLkCH5+fhw/fpwHDx7w4MEDjh8/zoABAzhy5AgBAQGFevLQ0FAGDBjAoEGDcHJyIiQkBI1GQ3h4eK7916xZw/3791m8eDGNGzemZ8+eBAUFsWjRIr2tPwBbW1s0Go3uplarCxWbEEKI0ktx8evduzeTJk3il19+wcvLi5o1a1KrVi28vLzYuXMnEyZMoF+/foqfOCMjg+PHj+Pl5aXX7uXlxcGDB3N9zKFDh3j55Zf1riHasWNHrl27xsWL+lPstG/fHicnJ3r06MGePXsUxyWEEKL0K9R5fh988AF9+vRh06ZNXLhwAa1WS7169ejevTt169Yt1BMnJSWRlZWFra2tXrutrS3Xr1/P9THXr1+nVq1aOfo/Xla3bl3s7OyYN28ezZs3JyMjg9WrV9OzZ082b95MmzZtChWjEEKI0klR8bt//z59+/alX79+vPXWW4wePdpgATw9PZJWq811yqT8+j/Z7ujoiKOjo255q1atuHTpEgsXLsy3+MXFxRWq/UmpaRmkpaUV2E+pzKxMg44HmHR8qWmpil5nULY+SorSkovkYVpKSx7wfLk8WQdyo6j4VapUiT/++IM+ffo8cyBPs7a2Rq1W59jKu3nzZo6twcdq1KiRa38gz8cAuLu7ExkZmW88ub1QcXFxBb6A8GhWcwsLiwL7KVVeXd6g4wEmHZ+lhSWOji8W2E/p+igJSksukodpKS15gPFzUfyb3yuvvFLgaQiFYWZmhpubG9HR0Xrt0dHReHh45PqYVq1aceDAAdLT0/X616xZkxdfzPvL88SJE2g0GsMELoQQosRTXPzmzJnD0aNHmTx5MhcuXMj1lIfCCgwMZMWKFSxbtoyzZ88yYcIEEhISGDJkCADTpk2jR48euv59+vShUqVKjBo1itOnTxMVFcWCBQsYNWqUbrfnokWL2Lx5M//88w9//fUX06ZNY8uWLQwfPvy54xVCCFE6KD7gpWXLlmi1WkJDQwkNDaVcuXJUqFBBr49KpeLq1auKn9zHx4fk5GRCQkJITEzE2dmZiIgIHBwcgEfzBZ4/f17Xv2rVqqxfv54PPviADh06YGVlRWBgIO+9956uz8OHD5k8eTLXrl3D3NxcN6a3t7fiuIQQQpRuiotfr1698j0Q5Vn5+/vj7++f67LFixfnaGvSpAk///xznuMFBQURFBRksPiEEEKUPoqLX26FSAghhCiJFP/mJ4QQQpQWhSp+ly5dYsyYMbi5uWFvb8++ffuARyesjx8/nuPHjxslSCGEEMKQFO/2PHv2LJ07dyY7O5sWLVpw6dIlsrKygEfn7B0+fJgHDx7kepFpIfKjUj06V7IgqWkZivq9YF6Re+mFn2EkLzbVqqCxrWaw8YQQxU9x8Zs6dSqVK1fml19+Qa1W07BhQ73l3t7ebNiwweABitLv9t17LAhfX2C/tLQ0RSfXvz+0l6LxlJoyZqAUPyFKGcW7PWNiYvD396dGjRq5HvVpb2/PtWvXDBqcEEIIYQyFmsw2v7+6b926JdMGCSGEKBEKNZnt3r17c12m1WrZtGkTbm5uBgtMCCGEMBbFxW/kyJFs3LiRzz//nOTkZODRDO7nzp1j6NChHDt2zKCzPQghhBDGoviAl969e3P58mU+/fRTZs+erWsDUKvVzJw5k06dOhknSiGEEMKACjWZ7fvvv0+fPn2IiooiPj6e7Oxs6tWrR48ePfKdVUEIIYQwJQUWvwcPHrB161YuXLhA9erVef311xk1alRRxCaEEEIYRb7FLzExka5du3L+/HndjOkWFhasXr0631nRhRBCCFOW7wEvM2fO5MKFC4waNYrVq1cza9YsKlasyEcffVRU8QkhhBAGl++W36+//oqfnx8zZ87UtdWoUQN/f3/+/fdfateubfQAhRBCCEPLd8svMTERDw8PvTZPT0+0Wi1XrlwxamBCCCGEseS75ZeVlYW5uble2+P76enpxotKCBOi9MLbhVFeVagDrQuUeOMWN2/dMdh4Si8OrvRi43JxcGFqCvwEXrhwgSNHjuju37nz6AMWFxeHpaVljv7u7u4GDE+I4qf0wtuFMW5YT4OOd/PWHaZ/9ZPBxlN6cXClFxuXi4MLU1Ng8Zs1axazZs3K0f70QS9arRaVSqW7+osQQghhqvItfqGhoUUVhxBCCFFk8i1+AwYMKKo4hBBCiCKj+MLWQgghRGlRaotfWFgYrq6uaDQa2rVrR0xMTHGHJIQQwkQY9nhrExEZGUlwcDBz587F09OTsLAwfH19iY2Nxd7evrjDE0KYmGzKG/R0FkOf2qH0VBY59US5Uln8QkNDGTBgAIMGDQIgJCSEXbt2ER4eztSpU4s5OiGEqUlJvce8JRsNNp6hT+1QeiqLnHqinColJUVb3EEYUkZGBjVr1mTJkiW8+eabuvYPPviA06dPs3Xr1mKMTgghhCkodb/5JSUlkZWVha2trV67ra0t169fL6aohBBCmJJSV/weU6lUevcfn4QvhBBClLriZ21tjVqtzrGVd/PmzRxbg0IIIcqmUlf8zMzMcHNzIzo6Wq89Ojo6xwwVQgghyqZSebRnYGAgAQEBuLu74+HhQXh4OAkJCQwZMqS4QxNCCGECSt2WH4CPjw+zZs0iJCSEV199ldjYWCIiIli7di0dOnTA3t6eBg0a0K9fP06fPq332JEjR2JlZaV3e+211/T6PHjwgA8//JD69etTq1Yt+vfvz7///ltk+c2aNStHjP/5z390y7VaLbNmzaJRo0bY2dnRrVs3/vrrL5PKAcDFxSVHHlZWVvTt2xcw3XWxf/9++vfvj7OzM1ZWVvz0k/4h6IZ6/VNSUhgxYgQODg44ODgwYsQIUlJSiiyXhw8fMnXqVFq3bk2tWrVwcnLC39+fy5cv643RrVu3HOtp6NChRZpLQevEUO+l4s4jt8+LlZUVH3zwga6PKayPefPmFfhdW9yfk1JZ/AD8/f05ceIE169fZ/fu3bRp04Z9+/YxbNgwtm/fTlRUFOXLl+fNN9/k1q1beo9t3749Z8+e1d3WrFmjt3zixIls2rSJJUuWsHXrVu7evUu/fv3IysoqsvwcHR31YnzyCjZffvkloaGhzJkzh19//RVbW1t69erF3bt3TSqH6OhovRx2796NSqXSO0XFFNdFWloajRs3Zvbs2VSqVCnHckO9/v7+/vz555+sWbOGtWvX8ueffxIQEFBkudy7d48//viDDz74gN27d7NixQr+/fdf+vTpQ2Zmpl7fgQMH6q2n+fPn6y03di4FrRMwzHupuPN4Mv6zZ8+yatUqAL3PDBT/+lDyXVvcn5NSd55fYaSmpuLg4MBPP/1Ely5dgEd/ISYnJ7N69epcH3P79m0aNmxIaGiobgvlypUruLi4sHbtWjp27Gj0uGfNmkVUVBQHDhzIsUyr1dKoUSOGDx+u+2vw/v37ODo6MmPGDIYMGWISOeTmiy++4KuvvuLMmTO88MILJWJd1K5dm88//5yBAwcChnv9z549i4eHB9u2bcPT0xOAAwcO0KVLFw4fPoyjo6PRc8nNmTNn8PT0ZP/+/TRp0gR4tKXRuHFjQkJCcn1MUeeSWx6GeC+ZQh5PGzNmDDExMfz++++6NlNbH5Dzu9YUPieldstPidTUVLKzs7GystJrP3DgAA0bNsTd3Z0xY8Zw48YN3bLjx4/z8OFDvLy8dG116tTBycmJgwcPFlnsFy5cwNnZGVdXV4YOHcqFCxcAuHjxIomJiXrxVapUidatW+viM5UcnqTValm+fDn9+vXjhRde0LWXhHXxJEO9/ocOHcLS0lLvIC1PT08sLCyKLTdA91f505+ZdevWUb9+fTw9Pfnkk0/0/no3lVye971kKnk8lpqaSmRkpO5KVk8ytfXx9HetKXxOSuUBL0oFBwfj4uJCq1atdG2vvfYa3bt358UXX+TSpUvMnDmTHj168Ntvv1GxYkWuX7+OWq3G2tpab6yiPIm+RYsWLFq0CEdHR27evElISAje3t7ExsaSmJioi+fp+K5duwZgEjk8LTo6mosXL/L222/r2krCuniaoV7/69evY21trXduqkqlwsbGpthyy8jI4JNPPqFz587Url1b1+7r64u9vT12dnacOXOGadOmcfLkSTZs2ACYRi6GeC+ZQh5PWrt2LQ8ePMDPz0+v3RTXx9PftabwOSmzxe/jjz8mNjaWbdu2oVarde29e/fW/b9Jkya4ubnh4uLC9u3b6dGjR57jFeVJ9J06ddK736JFC9zc3FixYgUtW7YEnu0k/+K8EMDSpUtp3rw5rq6uuraSsC7yYojXP7f+xZVbZmYmI0aM4Pbt26xcuVJv2eDBg3X/b9KkCXXr1qVjx44cP34cNzc3oPhzMdR7qbjzeNLSpUvp1q0bNjY2eu2mtj7y+q7NLY6i/JyUyd2eEydOZN26dURFRVG3bt18+9asWZNatWoRHx8PQI0aNcjKyiIpKUmvX3GeRG9paUmjRo2Ij49Ho9EA5HuSv6nlcOPGDbZu3Zrr7psnlYR1YajXv0aNGty8eROt9n8/yWu1WpKSkoo8t8zMTIYNG8apU6fYuHEj1atXz7d/s2bNUKvVeuvJVHJ57FneS6aUx59//smxY8cK/MxA8a6PvL5rTeFzUuaK34QJE1i7di1RUVF6pwfkJSkpiWvXrulWlpubGxUqVNA7if7ff//V/fBaHNLT04mLi0Oj0fDiiy+i0Wj04ktPT+fAgQO6+EwthxUrVlCxYkV8fHzy7VcS1oWhXv9WrVqRmprKoUOHdH0OHTpEWlpakeb28OFDhgwZwqlTp9i0aZPutc/PqVOnyMrK0vU1lVye9CzvJVPKY+nSpTg4ONC+ffsC+xbX+sjvu9YUPifq4ODg/z5vkiXFBx98wKpVq/jhhx+oU6cOaWlppKWlAY+uDJOamsr06dOxtLQkMzOTEydOMHr0aLKysggJCaFixYqYm5uTkJDA999/z0svvcTt27cZO3YsVapUYdq0aZQrZ/y/Jz755BPMzMzIzs7m77//5sMPPyQ+Pp758+djZWVFVlYW8+fPp2HDhmRlZTFp0iQSExNZsGCByeTwmFarJTAwkNdff13vcG1TXhepqamcOXOGxMREli9fTuPGjalSpQoZGRlUrVrVIK+/jY0Nv//+O2vXrsXV1ZV///2XsWPH0rx5c4Mekp5fLhYWFgwaNIijR4+ybNkyKleurPvMqNVqKlSowPnz5/nuu++wsLAgIyODQ4cO8f7771O7dm0++eSTIsslvzzUarVB3kvFnUfVqlWBR6egjBo1ihEjRtCmTRu9x5vK+ijou1alUhX756RMnerw9BFqj02YMIGJEydy//59Bg4cyJ9//snt27fRaDS8+uqrTJo0iTp16uj6p6enM3nyZNauXUt6ejpt27Zl7ty5en2MaejQocTExJCUlISNjQ0tWrRg0qRJNGrUCHhUUGbPns0PP/xASkoK7u7ufPHFFzRu3Nhkcnhsz5499OjRg127duHu7q5rN+V1sXfvXrp3756j3c/Pj8WLFxvs9b916xYTJkzg559/BqBLly58/vnneb6PDZ1LcHAwTZs2zfVxoaGhDBw4kCtXrjBixAj++usv0tLSqF27Nt7e3gQHB1Ot2v/mizN2LvnlMW/ePIO9l4ozj8WLFwPw448/EhQUxMmTJ6lZs6ZeP1NZHwV914LhvqeeNZcyVfyEEEIIKIO/+QkhhBBS/IQQQpQ5UvyEEEKUOVL8hBBClDlS/IQQQpQ5UvyEEEKUOVL8BACjR4/GysqKjz/+uFCPs7KyYtasWbr7jyfaNYbNmzfz9ddfG3zckSNH4uLioqhvamoq8+fP103UaWtry0svvcSgQYPYsmWL3mWWTFlaWhpOTk5s3LhR1/Z43dnZ2XH79u0cj/npp590k6M+vlQWPJpCp1u3brr7e/fuxcrKir179xaqT1F4eiLoOnXq0Lx5c/z9/dm1a9dzj/ukpz8bRWHChAm66X9E/qT4Ce7fv6/7ElyzZk2OiUoL45133mHnzp2GCk3Pli1bWLRokVHGVuLq1at07NiRBQsW0KFDB8LDw1m/fj3BwcHcu3ePgQMHcuTIkWKLrzC+/vprrK2tc72oc4UKFfSK4mOrVq2icuXKOdrnzp3L3LlzC/X8TZs2ZefOnXmeRG9s27ZtY+fOnfz000+8//77pKSk0Lt3b0aMGEF2dnaxxGQIY8eOZc+ePezevbu4QzF5ZXZWB/E/mzdv5s6dO3h7e7Njxw5++eUXOnfu/Exj1a5dW2+6m9Jk+PDh3Lhxg99++4169erp2l955RXeeustfvvtN6pUqZLvGA8ePKBixYrGDjVfGRkZfPfddwQHB+d65fs33niD1atX88477+jarly5wv79++nfvz8rVqzQ6//4ykKFUaVKFd0MJMWhRYsWlC//v6+/d955h9DQUCZNmoSLiwujR48utthyo/R9Y2dnR+fOnfn6669p165dEURWcsmWn2DlypVYWVmxaNEiKlWqxKpVq3L0ycrKYubMmTg5OVGzZk26devGX3/9laPf07t/Ll68iJWVFT/99JNev9x2e+3atQtvb28cHByoXbs2LVq0YM6cOcCjXZMrV67k6tWrul1WT+6qTEpKYty4cTg7O1OjRg1atmzJDz/8kCO+3bt307ZtWzQaDW5ubvzf//2fotfo8OHD7N+/n/Hjx+sVvie1b99e7wK+I0eOpHHjxhw6dAhvb2/s7OyYMmUKAHFxcQwcOBAHBwfs7Ox47bXX+OWXX/TG+/vvvxk4cCANGzZEo9Hodq8+3jJPTU3lww8/5KWXXqJGjRo4OjrSs2dPzp07l28umzdv5tatW3leSLx///7ExMRw6dIlXdvq1aupU6cOrVu3ztH/6V2aSuS2/rVaLaGhobRo0QJbW1ucnJz48MMPuXPnjt5jraysmDlzJt988w2urq7UqVOHrl275vp+LIzAwEBcXV355ptv9NqVrCsl4uPjGTFiBK6urtjZ2dG0aVPGjRtHSkqKXr/83jdr1qzh1VdfpXbt2jg4ONC6desc72EfHx927drFlStXCh1jWSJbfmXctWvX+O233xg8eDA2NjZ069aNTZs2kZKSolfEZs2axdy5cwkMDMTLy4tjx47lmETzeVy4cAE/Pz969uzJRx99RIUKFYiPj9fNUP/RRx+RlJTE0aNHdfPJmZmZAXDnzh1ef/110tPTCQ4O5sUXX2TXrl2MGzeOBw8e6C5we/bsWXx9fWnWrBlLliwhIyOD2bNnk5aWVuBFsB/vRirsFvGdO3cYOnQoo0ePZvLkyVSqVIlr167RuXNnLC0tCQkJoUqVKoSFhdG3b19Wr16tm6+xX79+VK1alblz52Jtbc21a9fYuXOnbrfcxx9/zM8//8zkyZNp0KABycnJHDx4MNff6570yy+/4OTklGOS0Mdat26Ng4MDa9asYfz48cCj4te3b1+jzls3Y8YM5s2bx/Dhw+ncuTNnzpzhs88+4+TJk2zZskVvHa1evRpHR0dmz57Nw4cPmTx5MgMGDODw4cN6W3SF1alTJ+bOncvly5ext7dXvK6UuHbtGrVr19b9gXjhwgXmzZuHr69vjp8KcnvfHDhwgBEjRhAQEMCMGTPIzs7m3LlzOdZ3mzZtyM7OJjo6Wm9yaKFPil8Zt3r1arKzs+nfvz/w6AK6a9euJTIykqFDhwKQkpLC4sWLGTx4MDNnzgTAy8sLtVrNf//7X4PE8ccff5CRkcHcuXN1uw6f3G1Tr149rK2tMTMzy7G77JtvvuHy5cvExMTQoEED4NFW2O3bt5kzZw7Dhg2jfPnyfPHFF1haWhIZGYmFhQXwaEqUZs2aYWdnl298V69eBchxwezs7Gy934jKlSun9yWdmprKt99+q7dl9Mknn5CSksLOnTupX78+AN7e3nh4eDBjxgw6depEUlIS//zzDytWrKBr1666x/r6+ur+f/jwYXx9ffV2T+Z2UeSn/f777/n+1qZSqXRf7uPHj+fIkSOcO3cOPz8/YmNjCxz/Wdy6dYvQ0FD8/PwICQkBoGPHjtjY2BAQEMC2bdv0XocKFSqwevVqKlSooGsbNGgQR44cea5peR6v38TEROzt7QkNDS1wXSnVpk0bvVkYPDw8qF+/Pl26dOGPP/7QWye5vW8WLlxI1apVmT17tq7Ny8srx/NYW1tTu3Ztfv/9dyl++ZDdnmXcqlWraNCgAa1atQIeFY2aNWvq7fo8deoUaWlpelMOAQXOv1cYLi4uVKhQgWHDhrFx40Zu3Lih+LGPZ4R48cUXyczM1N06duxIcnIyZ86cAR7N89WpUydd4YNHX3ZKvizzOopz/Pjx2NjY6G6fffaZ3vLy5cvn2FqMiYmhZcuWui9TALVaTe/evTlx4gR37tyhevXq1K1bl2nTprF06VL++eefHM/drFkzVqxYwdy5czl27BhZWVkF5gGQkJCQ51bfY35+fpw7d46jR4+yatUqWrZsqfvDwhgOHz7MgwcP6Nevn1577969KV++PPv379dr79Chg17hezwTwPPu6nu8nh9v4SpZV0o9/uOuZcuW2NnZYWNjQ5cuXYBHu7iflNv7plmzZqSkpDBixAi2bduWY3fpk6ytrUlISFAcW1kkxa8MO3r0KGfOnKF79+6kpKSQkpLC3bt3eeONNzh06JDuA5mYmAg8mjX5SU/ffx7169dn3bp1ZGdnExAQwH/+8x86duzIvn37CnzsjRs3iImJ0StCNjY2ulmuk5OTdXnkFrOSPB4fxPP0l+u4ceOIjo7Wm3DzSba2tqjVar22W7du5ToprEajQavVkpKSgkqlYsOGDbi5uTFt2jTc3d1p2rQpS5Ys0fX//PPPGTJkCD/++CMdOnSgYcOGTJw4kXv37uWbS3p6eoEHT9SvX59WrVqxfPly1q1bp9szYCy3bt0CyPG6lC9fnurVq+uWP/bk9Dzwv13g6enpzxXHv//+qxeHknWl1LRp05g9e7Zuq/rXX39l+fLlucad2/vmlVdeYenSpVy5coW33nqLhg0b0rNnT06ePJnjuSpVqsT9+/cVx1YWSfErwx7/drZgwQLq1q2ru33//fcAuq2/xx/+69ev6z3+6fu5MTc3Bx7NCP6kxwXpSW3btmXdunVcvHiRDRs2UKFCBfr160dSUlK+z1G9enU8PDx0RejpW7NmzXR55Bazkjzatm0LPDpE/kn29vY0a9ZM9xxPy+03smrVquX6nImJiahUKt0Xe926dfn222/5559/2LNnD23btmX8+PG634csLS2ZOnUqx44d488//2TcuHF8//33uoOE8lK9enVFX9r9+/dn6dKlpKamGnQrPzePc376dcnMzCQ5OZnq1asb9fkf27FjB3Xq1NHt/lS6rpSIjIykf//+fPjhh7Rr147mzZvrJqh9Wl6/rfbs2ZOtW7dy4cIFfvzxRxITE+nTp0+O0zNu3bpV4NZ9WSfFr4zKyMhg3bp1tGjRgk2bNuW4ubi4sGrVKrRaLU2aNMHCwoINGzbojREZGVng89SoUYOKFSty+vRpvfYdO3bk+ZiKFSvSrl07xowZQ1paGhcvXtS15/bXbMeOHTl37hx16tTRFaInb4/PTWvVqhU7d+7UzSgNj7bkDh48WGAerVq14uWXX2bu3LmcP3++wP75adOmDYcPH9blBY+Opl2/fj2urq45zqVTqVS4urry6aefAuR6VKODgwOjR4+mcePGBR716OjoqDuQKD8+Pj506dKF999/v1Bf8s+iZcuWVKxYkXXrrN61rwAABJRJREFU1um1R0ZGkpmZmWPGcmMIDQ3lxIkTBAYG6toKu67yc+/ePb1dtUCOo6CVsrS0pHPnzgwePJiEhAS9PyazsrL4999/adiw4TONXVbIAS9l1LZt20hOTmbmzJm8+uqrOZYPGTKEcePGsXfvXtq2bcvIkSOZO3culpaWeHl5cfToUd0um/yoVCp69erFjz/+SMOGDXF0dGT79u05dmeGh4cTExNDp06dqF27NklJScyfP5+aNWvi7OwMgJOTE7du3WLJkiU0a9aMihUr0qRJE0aNGsX69evp0qULo0aNomHDhty7d4+4uDhiYmJ0W7gffPABGzZswMfHh9GjR/Pw4UNmzZqlePdtWFgYPXv2pH379vj7+/Pyyy/zwgsvcPPmTd1uT0tLywLHGTVqFCtWrKBXr15MnDiRypUrs2TJEv7++28iIiIAOHnyJMHBwfj4+FC/fn2ysrJYsWIF5cuX122FdurUiS5dutC4cWMsLCzYv38/J0+eLPAo3NatW7N48WKys7PzPco1t1NUjKVatWoEBgYyb948XnjhBby9vTl79iyffvopL7/8Mq+//rpBn+/3339HrVaTnp7OhQsXiIqKYufOnfj5+fHuu+/q+ilZV0q99tprrFy5ksaNG1O/fn02bdrEoUOHFD/+008/5caNG7z66qvY2dlx9epVvv32W1xcXLCxsdH1O336NGlpaUXyB0NJJsWvjFq5ciWVK1fOcRDLY71792bSpEmsXLmStm3bMnHiRACWLVvG999/j7u7O6tWrcLT07PA55o9ezbZ2dm6f3v16sXnn3+ud3DDSy+9xM6dO5k+fTo3btygWrVqeHp68v3331OpUiXg0YnIv//+O9OnT+f27dvY29tz4sQJqlatyo4dO5gzZw4LFizg2rVrVK1aFUdHR72jH52cnFizZg2TJ09m6NCh1KxZk/fff59Dhw4p+m2xdu3aREdH89133xEVFcW3337LgwcP0Gg0uLu7s3LlSt0BDPmpWbMm27ZtY+rUqYwfP54HDx7g4uJCREQEr732GvBoF22dOnUIDQ3l6tWrVKxYkcaNG7N69Wrc3NyAR0Vs/fr1LFiwgMzMTOrWrctnn32m9+WdGx8fH+bMmUNMTAyvvPJKgfEWlcmTJ2Ntbc3//d//sWTJEqpXr07//v2ZMmVKgaeiFNbjg0leeOEF3fpbt24dHTt21OunZF0p9fnnn6PVapkxYwbw6KjRJUuW5HrEZm5atGjBt99+y8cff8ytW7ewtbWlQ4cOTJo0Sa/f9u3b0Wg0JrVuTZEqJSWlZFyMUJQIH3/8MatWrdK79qMwPd26daN+/fosXLiwuEMRBubh4UH37t355JNPijsUkya/+QmDuHXrFj///DObN28u1stWCWUmT57MmjVrdOcvitJhy5YtXL9+nffee6+4QzF5UvyEQezfv59hw4bh4OBQ5FeyF4Xn6enJZ599xuXLl4s7FGFA6enpfPfdd0abWaU0kd2eQgghyhzZ8hNCCFHmSPETQghR5kjxE0IIUeZI8RNCCFHmSPETQghR5kjxE0IIUeb8P56Ip7QzMTTGAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.hist('Adjusted Gross', bins=np.arange(300,2001,100), unit=\"Million Dollars\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Recall that the table `bin_counts` has the counts in all the bins of the histogram, specified by `bins=np.arange(300, 2000, 100)`. Also remember that there are 200 movies in all." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bin Adjusted Gross count
300 68
400 60
500 32
\n", "

... (15 rows omitted)

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bin_counts.show(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The [300, 400) bin contains 68 movies. That's 34% of all the movies:\n", "\n", "$$\n", "\\mbox{Percent} = \\frac{68}{200} \\cdot 100 = 34\n", "$$\n", "\n", "The width of the [300, 400) bin is $400 - 300 = 100$. So\n", "\n", "$$\n", "\\mbox{Height} = \\frac{34}{100} = 0.34\n", "$$\n", "\n", "**Units:** The height of the bar is 34% divided by 100 million dollars, and so the height is 0.34% per million dollars. \n", "\n", "The height of bar is **not** the percent of entries in the bin. It is the percent of entries in the bin relative to the amount of space in the bin. That is why the height measures crowdedness or density. The vertical axis is said to be on the density scale. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Why Not Simply Plot the Counts?\n", "\n", "The main reason for plotting density on the vertical axis instead of counts or percents is to be able to compare histograms and approximate them with smooth curves where proportions are represented by areas under the curve.\n", "\n", "For example, later in the course you will see histograms that are approximately bell-shaped. The figure below shows such a shape. The gold shaded area happens to be 95% of the total area under the curve. Notice that this is quite believeable based on the areas you see in the figure, even though there are no numbers on the axes. That is why we draw histograms so that areas represent percents.\n", "\n", "![shaded bell-shaped curve](../../../images/normal_shaded.png)\n", "\n", "Drawing histograms on the density scale also allows us to compare histograms that are based on data sets of different sizes or have different choices of bins. In such cases, neither bin counts nor percents may be directly comparable. But if both histograms are drawn to the density scale then areas and densities are comparable.\n", "\n", "If a histogram has unequal bins, then plotting on the density scale is a requirement for interpretability. For some variables, unequal bins may be natural. For example, in the U.S. education system, elementary school consists of Grades 1-5, middle school is Grades 6-8, high school is Grades 9-12, and a Bachelor's degree takes a further four years. Data on years of education might be binned using these intervals. In fact, no matter what the variable, bins don't have to be equal. It is quite common to have one very wide bin towards the left end or right end of the data, where there are not many values.\n", "\n", "Let's plot a histogram of adjusted gross receipts using unequal bins, and then see what happens if we plot counts instead." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "uneven = make_array(300, 350, 400, 500, 1800)\n", "millions.hist('Adjusted Gross', bins=uneven, unit=\"Million Dollars\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that the [400, 500) bar has the same height (0.3% per million dollars) as in the histograms above. \n", "\n", "The areas of the other bars represent the percents in the bins, as usual. The `bin` method allows us to see the counts in each bin." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bin Adjusted Gross count
300 14
350 54
400 60
500 72
1800 0
" ], "text/plain": [ "bin | Adjusted Gross count\n", "300 | 14\n", "350 | 54\n", "400 | 60\n", "500 | 72\n", "1800 | 0" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "millions.bin('Adjusted Gross', bins=uneven)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The [300, 350) bin has only 14 movies whereas the [500, 1800] bin has 72 movies. But the bar over the [500, 1800] bin is much shorter than the bar over [300, 350). The [500, 1800] bin is so wide that its 72 movies are much less crowded than the 14 movies in the narrow [300, 350) bin. In other words, there is less density over the [500, 1800] interval.\n", "\n", "If instead you just plot the counts using the `normed=False` option as shown below, the figure looks completely different and misrepresents the data." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.hist('Adjusted Gross', bins=uneven, normed=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Even though `hist` has been used, **the figure above is NOT A HISTOGRAM.** It misleadingly exaggerates the movies grossing at least 500 million dollars. The height of each bar is simply plotted at the number of movies in the bin, without accounting for the difference in the widths of the bins. In this count-based figure, the shape of the distribution of movies is lost entirely." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Flat Tops and the Level of Detail\n", "\n", "Even though the density scale correctly represents percents using area, some detail is lost by grouping values into bins.\n", "\n", "Take another look at the [400, 500) bin in the figure below. The flat top of the bar, at the level 0.3% per million dollars, hides the fact that the movies are somewhat unevenly distributed across that bin. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.hist('Adjusted Gross', bins=uneven, unit=\"Million Dollars\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To see this, let us split the [400, 500) bin into 10 narrower bins, each of width 10 million dollars." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "some_tiny_bins = make_array(\n", " 300, 350, 400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, 1800)\n", "millions.hist('Adjusted Gross', bins=some_tiny_bins, unit='Million Dollars')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some of the skinny bars are taller than 0.3 and others are shorter. By putting a flat top at the level 0.3 across the whole bin, we are deciding to ignore the finer detail and are using the flat level as a rough approximation. Often, though not always, this is sufficient for understanding the general shape of the distribution.\n", "\n", "**The height as a rough approximation.**\n", "This observation gives us a different way of thinking about the height.\n", "Look again at the [400, 500) bin in the earlier histograms. As we have seen, the bin is 100 million dollars wide and contains 30% of the data. Therefore the height of the corresponding bar is 0.3% per million dollars.\n", "\n", "Now think of the bin as consisting of 100 narrow bins that are each 1 million dollars wide. The bar's height of \"0.3% per million dollars\" means that as a rough approximation, 0.3% of the movies are in each of those 100 skinny bins of width 1 million dollars.\n", "\n", "We have the entire dataset that is being used to draw the histograms. So we can draw the histograms to as fine a level of detail as the data and our patience will allow. Smaller bins will lead to a more detailed picture. However, if you are looking at a histogram in a book or on a website, and you don't have access to the underlying dataset, then it becomes important to have a clear understanding of the \"rough approximation\" created by the flat tops." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing All Heights ##\n", "We know how to find the height of each histogram bar. Let's use that to develop code that computes all the heights at once. \n", "\n", "We will use the histogram below as our example. The bins are specified in the array `uneven`." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbUAAAEcCAYAAABAuSr7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deViN6f8H8PeRNoWohBZbfVOmZEJ9GYyQbTAixMwkUkOTfcjYxjKDaZJBEyN9x04Rsox1GktN9p1oZKdoQ4ekOr8/XJ2fozo9p86p05n367q6Zs793Od5Pp+e0/l4tvsWZWdnS0BERKQBalR1AERERMrCokZERBqDRY2IiDQGixoREWkMFjUiItIYLGpERKQxWNSIiEhjsKgREZHG+FcWteTk5KoOQeWYY/Wn6fkBzFFTqFOO/8qiRkREmolFjYiINAaLGhERaQwWNSIi0hgsakREpDFqCu34+vVriMVimJiYSNvS09Oxfv16ZGdnY8CAAXB2dlZJkEREREIILmqTJk3CjRs3cOzYMQCAWCxGt27dcP/+fQBAeHg49uzZA1dXV9VESkREVAbBpx8TExPRu3dv6evt27fj/v372L59O27evAlbW1v8/PPPKgmSiIhICMFHamlpaTA3N5e+/uOPP9C+fXt069YNADBixAiEhoYqP8JqJO1ZFtKzXgjub1KvDsxM66kwIiKifxfBRc3AwADZ2dkAgPz8fCQkJGDs2LHS5fr6+nj58qXyI6xG0rNeYP7yTYL7zxk/gkWNiEiJBBe1Nm3aYMOGDejcuTP++OMP5OTkoFevXtLld+7cQYMGDVQSJBERkRCCi9rMmTMxcOBAdO3aFRKJBP3790ebNm2ky/fu3QsXFxeVBElERCSE4KLm5OSEs2fP4tSpU6hduzY6deokXZadnQ1fX1907NhRJUESEREJIaio5ebm4pdffkG7du3Qp0+fYsuNjIxkrq8RERFVBUG39Ovp6SE0NBQPHz5UdTxERETlJvg5NQcHB6SkpKgyFiIiogoRXNTmzJmD9evX4+DBg6qMh4iIqNwE3yiyfPlyGBkZwcvLC40bN0bTpk2hr68v00ckEiEqKkrpQRIREQkhuKglJSVBJBLBwsICAKRjPr5PJBIpLzIiIiIFCS5qV65cUWUcREREFVbl86lFRETA0dERZmZm6NKlCxISEkrte+/ePRgZGRX7OXLkSCVGTERE6krwkdr7Xr58iRcvXqCwsLDYMktLS8HriYmJQVBQEEJCQuDq6oqIiAh4enoiMTFR7np27NiBjz76SPq6Xj2On0hERAoWtfXr12P58uVyb+3PzMwUvL6wsDAMHz4c3t7eAIDg4GAcPXoUkZGRmDt3bqnvq1+/PszMzIQHTkRE/wqCTz9u2LABEyZMgKWlJWbNmgWJRIKxY8di0qRJaNCgARwcHLBixQrBG87Ly8PFixfh5uYm0+7m5oZTp07Jfe+XX34Ja2tr9OzZE7t37xa8TSIi0myCi1p4eDg6deqEnTt3YuTIkQAAd3d3zJ49G4mJicjOzsaLF8LnEsvIyEBBQQFMTU1l2k1NTfH06dMS32NoaIgFCxbgf//7H6Kjo9G5c2f4+Phg27ZtgrdLRESaS/Dpx5SUFGkxq1HjXS18+/YtgHdjP3711VeIiIhQeAzIDx8DkEgkpT4aYGxsjMDAQOnrNm3aIDMzE7/88guGDh1a6jaSk5MFtVVUjjgPYrFYgf45KomjiCrXrS40PUdNzw9gjpqiMnO0sbEpdZlCk4RKJBIA746YtLS0kJqaKl1ev359PH78WHBQxsbG0NLSKnZUlp6eXuzoTR5nZ2ds2iR/Ys4PfwHJyclyfynlde3WPRgYGAjub2hgCBubJkqPA1BdjupE03PU9PwA5qgp1ClHwacfbWxscP36dQBAzZo14eDggK1bt+Lt27fIzc3Ftm3b0KSJ8C9oHR0dODk5IS4uTqY9Li5OoXnZrly5wptGiIgIgAJHan379kV4eDhyc3Ohp6eHqVOn4ssvv0TTpk0hEokgFouxatUqhTYeEBAAf39/ODs7w8XFBZGRkUhNTYWPjw8AYN68eTh37hxiY2MBAJs3b4a2tjYcHR1Ro0YNHDhwABEREfj+++8V2i4REWkmwUUtMDBQ5npW3759sX//fuzevRtaWlro1asXPvnkE4U27uHhgczMTAQHByMtLQ12dnaIioqClZUVACA1NRV37tyRec/PP/+MBw8eQEtLCy1atMDKlSvlXk8jIqJ/j3I9fF3E1dUVrq6uFQrA19cXvr6+JS4LDw+XeT18+HAMHz68QtsjIiLNVeXDZBERESlLqUdq/fr1U3hlIpFIev2LiIiospVa1AoLCxWeSqboln8iIqKqUGpR27dvX2XGQUREVGG8pkZERBqDRY2IiDRGqacf69Wrp/A1NZFIhIyMjAoHRUREVB6lFrVp06YpXNSIiIiqUqlFbcaMGZUZBxERUYXxmhoREWkMhYbJevHiBVasWIFDhw7h/v37AAArKyv07NkT33zzDerUqaOSIImIiIQQfKSWmpqKzp074+eff8br16/RsWNHdOjQAa9fv0ZwcDC6dOkiM78aERFRZRN8pPb9998jLS0NmzZtQp8+fWSW/fHHHxg1ahTmz5+PX3/9VelBEhERCSH4SO3o0aPw8/MrVtAAoHfv3hgzZgwOHTqk1OCIiIgUIbiovXz5EhYWFqUut7CwQE5OjlKCIiIiKg/BRa1FixaIjY1FYWFhsWWFhYXYs2cPWrRoodTgiIiIFCG4qPn7++PkyZMYOHAgDh48iJSUFKSkpODAgQPw8PBAfHw8vv76a1XGSkREJJfgG0W++uorZGRkYMmSJThx4oS0XSKRQFdXF3PmzMGXX36pkiCJiIiEUOg5tUmTJsHb2xtxcXF48OABgHfPqX366aeoX7++SgIkIiISSqGiBgD169fHoEGDVBELERFRhQguardv38Zff/2FO3fuICcnB4aGhmjevDm6du2KZs2aqTJGIiIiQcosai9fvsSECROwe/fuEu98rFGjBgYNGoTQ0FAYGBioJEgiIiIh5BY1iUSC4cOH4+TJk3Bzc8PQoUNhZ2cHQ0ND5OTk4MaNG9i6dSuio6Px9OlT7Nq1q7LiJiIiKkZuUduzZw9OnjyJ77//HhMmTCi23MHBAUOGDEFoaCgWLFiAvXv34rPPPlNZsERERPLIfU5tx44d+Oijj0osaO+bNGkS7O3tsX37dqUGR0REpAi5Re3SpUvo1auXoBX17t0bFy9eVEpQRERE5SG3qKWnp8PS0lLQiiwtLZGenq6UoIiIiMpDblETi8XQ19cXtCI9PT28evVKKUERERGVR5ljP4pEosqIg4iIqMLKfE4tICAAgYGBZa6opGfYiIiIKpPcoubl5aXyACIiIrB8+XKkpaWhZcuWWLRoETp06FDm+27fvo0uXbpAIpHg0aNHKo+TiIjUn9yi9uuvv6p04zExMQgKCkJISAhcXV0REREBT09PJCYmyr1BJS8vD6NGjUKHDh0QHx+v0hiJiKj6EDyfmiqEhYVh+PDh8Pb2hq2tLYKDg2FmZobIyEi575s7dy5atWqFAQMGVFKkRERUHVRZUcvLy8PFixfh5uYm0+7m5oZTp06V+r6DBw/i4MGDWLJkiapDJCKiakbhqWeUJSMjAwUFBTA1NZVpNzU1xdOnT0t8T2pqKiZMmIANGzagdu3alREmERFVI1VW1Ip8+MiARCIp9TECPz8/jBo1Cu3atVNoG8nJyYLaKipHnAexWKxA/xyVxFFEletWF5qeo6bnBzBHTVGZOdrY2JS6rMqKmrGxMbS0tIodlaWnpxc7eity/PhxxMfHS089SiQSFBYWwtjYGCEhIRg5cmSJ7/vwF5CcnCz3l1Je127dU2j6HUMDQ9jYNFF6HIDqclQnmp6jpucHMEdNoU45VllR09HRgZOTE+Li4vD5559L2+Pi4tC/f/8S35OQkCDzev/+/QgJCcHRo0fRuHFjlcZLRETqr0pPPwYEBMDf3x/Ozs5wcXFBZGQkUlNT4ePjAwCYN28ezp07h9jYWACAvb29zPsvXLiAGjVqFGsnIqJ/J4WK2vr167Fu3TrcvXsXWVlZxZaLRCJkZGQIXp+HhwcyMzMRHByMtLQ02NnZISoqClZWVgDe3Rhy584dRUIkIqJ/McFFbf78+Vi2bBlatWoFT09PGBkZKSUAX19f+Pr6lrgsPDxc7ntHjBiBESNGKCUOIiKq/gQXtY0bN6JPnz7YuHGjKuMhIiIqN8EPX4vFYnTv3l2VsRAREVWI4KLm6uqKa9euqTIWIiKiChFc1IKDg3Hw4EFs3LgREolElTERERGVi+Bral5eXsjLy8P48eMxbdo0NG7cGFpaWjJ9RCIREhMTlR4kERGREIKLmomJCUxNTWFtba3KeIiIiMpNcFHbt2+fKuMgIiKqsCqdT42IiEiZFBpRpKCgAJs3b8ahQ4dw//59AICVlRV69uwJLy+vYtfYiIiIKpPgovbixQt4eHjg/PnzMDQ0RNOmTSGRSHDs2DHs27cP69atQ0xMDOc5IyKiKiP49OPChQtx4cIF/Pjjj/jnn39w/PhxnDhxArdv38aiRYtw/vx5LFy4UJWxEhERySW4qO3duxc+Pj74+uuvoaOjI23X1taGv78/Ro4ciT179qgkSCIiIiEEF7WMjAzY2dmVutze3l6hEfqJiIiUTXBRs7S0RFxcXKnL4+LiYGlpqZSgiIiIykNwUfviiy+wb98+jB07Fjdu3MDbt2/x9u1bXL9+HQEBAdi/fz+++uorVcZKREQkl+C7HydMmIB79+7h999/x7Zt2yASiQAAEokEEokEPj4+GD9+vMoCJSIiKovgoiYSiRAaGgo/Pz8cPHhQ5jk1d3d32NvbqyxIIiIiIRR6+BoA7Ozs5N4wQkREVFU4TBYREWmMUo/UHB0dUaNGDZw5cwba2tpwdHSUXkcrjUgkwsWLF5UeJBERkRClFrWOHTtCJBKhRo0aMq+JiIjUValFLTw8XO5rIiIidcNrakREpDFKPVJ78OBBuVbIUUWIiKiqyL1RpDzX0DIzMysUEBERUXmVWtRWrlzJG0OIiKhaKbWojRgxojLjICIiqjDeKEJERBqj1CO1LVu2lGuFXl5e5Q6GiIioIkotauPGjVN4ZSKRiEWNiIiqTKlF7dKlS5UZBxERUYWVWtSsrKwqJYCIiAgsX74caWlpaNmyJRYtWoQOHTqU2DcpKQlTp07FzZs38eLFCzRs2BCDBg1CUFAQdHR0KiVeIiJSXwpPPaNMMTExCAoKQkhICFxdXREREQFPT08kJiaW+BC3jo4OvLy84OjoiLp16+Lq1auYMGEC8vPzMX/+/CrIgIiI1EmpRS0gIAAikQi//PILtLS0EBAQUObKRCIRVq5cKXjjYWFhGD58OLy9vQEAwcHBOHr0KCIjIzF37txi/Zs3b47mzZtLX1tZWeHkyZP4+++/BW+TiIg0V6lF7fjx46hRowYKCwuhpaWF48ePC5p6Rqi8vDxcvHgRgYGBMu1ubm44deqUoHWkpKTg6NGj6N27t+DtEhGR5iq1qF25ckXu64rKyMhAQUEBTE1NZdpNTU3x9OlTue91d3fHpUuX8ObNG3h7e2POnDly+ycnJwtqq6gccR7EYrHg/vn5b3HqwjWlxwEARoa1VJKjutH0HDU9P4A5aorKzNHGxqbUZVV6TQ0ofnQnkUjKPOKLjIxETk4Orl69ijlz5mDZsmWYPHlyqf0//AUkJyfL/aWU17Vb92BgYCC4/6vct1gWuVvpcQDA5NED4NKmlUrWrS5UtR/VhabnBzBHTaFOOVZZUTM2NoaWllaxo7L09PRiR28fsrCwAAC0bNkSBQUFGD9+PMaPH4+aNau8RhMRURWSWwVcXFwUWplIJEJiYqKgvjo6OnByckJcXBw+//xzaXtcXBz69+8veJuFhYXIz89HQUEBixoR0b+c3Cpw69Yt6Ovrw8nJCTVqKH+YyICAAPj7+8PZ2RkuLi6IjIxEamoqfHx8AADz5s3DuXPnEBsbCwDYunUr9PT0YG9vDx0dHVy4cAHz58/HgAEDoKurq/T4iIioepFb1Nq0aYMLFy4gJSUFHh4eGDJkCJycnJS2cQ8PD2RmZiI4OBhpaWmws7NDVFSU9MHv1NRU3Llz5/+DrVkTS5cuRUpKCiQSCSwtLeHr61uuIb2IiEjzyC1qf/75J1JSUrBt2zZs374dq1atQosWLTBkyBB4enqiadOmFQ7A19cXvr6+JS4LDw+XeT148GAMHjy4wtskIiLNVOY5xebNm2PGjBk4d+4cDh06hE8//RRr1qzBxx9/jB49emDNmjWc7ZqIiNSCQhfK2rZti+DgYNy4cQNRUVHQ1dXF9OnTsWbNGlXFR0REJJjCtws+f/4cu3fvRnR0NBISElCnTh21eT6BiIj+3QQVtbdv3+LAgQOIjo7GoUOHALwb1WPdunXo2bMnR8gnIiK1ILeonTx5EtHR0di9ezdevnyJjh07Ijg4GAMGDECdOnUqK0YiIiJB5Ba1fv36QV9fH+7u7hg0aBAaN24MQP4YX87OzsqNkIiISKAyTz++fv0au3fvlj4AXZqiMRt5JyQREVUVuUUtLCyssuIgIiKqMLlFbfjw4ZUVBxERUYUpf0BHIiKiKsKiRkREGoNFjYiINAaLGhERaQwWNSIi0hiCilpubi6WLFmCP//8U9XxEBERlZugoqanp4fQ0FA8fPhQ1fEQERGVm+DTjw4ODkhJSVFlLERERBUiuKjNmTMH69evx8GDB1UZDxERUbkJnk9t+fLlMDIygpeXFxo3boymTZtCX19fpo9IJEJUVJTSgyQiIhJCcFFLSkqCSCSChYUFAOD+/fvF+ohEIuVFRkREpCDBRe3KlSuqjIOIiKjC+JwaERFpDIWKWkFBAaKiovDNN99g6NChuHr1KgAgOzsbO3fuRGpqqkqCJCIiEkJwUXv+/Dnc3d3h7++P3bt34/Dhw8jIyAAA1K5dGzNnzsRvv/2mskCJiIjKIriozZs3D0lJSYiOjsbFixchkUiky7S0tNCvXz8cPnxYJUESEREJIbio7du3D35+fujevXuJdzm2aNECDx48UGpwREREihBc1LKzs9GsWbNSl0skEuTl5SklKCIiovIQXNSsrKxw/fr1UpfHx8fD2tpaKUERERGVh+Ci5unpifXr1yM+Pl7aVnQacvXq1di7dy+GDx+u/AiJiIgEEvzw9aRJk3D27Fn0798f1tbWEIlECAoKQmZmJtLS0tC3b1/4+/urMlYiIiK5BB+paWtrIyoqCqtWrYK1tTX+85//ID8/H61bt8aqVauwYcOGcg2TFRERAUdHR5iZmaFLly5ISEgote+JEyfg5eUFW1tbNGrUCB06dMCGDRsU3iYREWkmwUdqRTw9PeHp6amUjcfExCAoKAghISFwdXVFREQEPD09kZiYCEtLy2L9T58+jVatWmHChAlo2LAhjh49iokTJ0JPT09pMRERUfWlcFEDgKtXr0pv37e0tESrVq3KdZQWFhaG4cOHw9vbGwAQHByMo0ePIjIyEnPnzi3Wf8qUKTKvR48ejRMnTiA2NpZFjYiIFCtqO3bswNy5c/H48WPpw9cikQiNGzfG3LlzFSoseXl5uHjxIgIDA2Xa3dzccOrUKcHrefnyJRo3biy4PxERaS7BRW3Tpk345ptvYGNjg3nz5sHa2hoSiQS3b9/G+vXr4e/vj7y8PIwYMULQ+jIyMlBQUABTU1OZdlNTUzx9+lTQOg4cOIBjx46VOXFpcnKyoLaKyhHnQSwWC+6fX5CvUH9FqSJHdaPpOWp6fgBz1BSVmaONjU2pywQXtaVLl8LZ2Rl79+6Fnp6ezLIxY8agT58+WLp0qeCiVuTD05YSiUTQqczExESMGTMGS5YsgbOzs9y+H/4CkpOT5f5SyuvarXswMDAQ3L+mVk2F+itKFTmqE1XtR3Wh6fkBzFFTqFOOgu9+fPToETw9PYsVNADQ09PD0KFD8fjxY8EbNjY2hpaWVrGjsvT09GJHbx/6+++/4enpiRkzZmD06NGCt0lERJpNcFFr2bIlnjx5Uuryx48fw9bWVvCGdXR04OTkhLi4OJn2uLg4uLi4lPq++Ph4eHp6Ytq0aRg3bpzg7RERkeYTXNTmz5+PdevWYefOncWW7dixA+vXr8eCBQsU2nhAQAA2b96M9evX4+bNm5g+fTpSU1Ph4+MD4N3MAP3795f2P3HiBDw9PeHj44MhQ4YgLS0NaWlpSE9PV2i7RESkmQRfU1uxYgWMjY0xevRoBAUFoVmzZhCJREhJScGzZ8/QokULLF++HMuXL5e+RyQSISoqqtR1enh4IDMzE8HBwUhLS4OdnR2ioqJgZWUFAEhNTcWdO3ek/Tdv3oxXr15hxYoVWLFihbTd0tISV65cUShxIiLSPIKLWlJSEkQiESwsLABAev1MV1cXFhYWePPmDW7evCnzHiE3fPj6+sLX17fEZeHh4cVef9hGRERURHBR45EQERGpO8HX1IiIiNQdixoREWkMFjUiItIYLGpERKQxWNSIiEhjsKgREZHGEFzUWrdujf3795e6/MCBA2jdurVSgiIiIioPwUXt/v37cqdJEYvF0olDiYiIqoJCpx/ljRDyzz//oHbt2hUOiIiIqLzkjiiyefNmbNmyRfr6559/xrp164r1y87OxvXr19GzZ0/lR0hERCSQ3KImFouRlpYmff38+XMUFhbK9BGJRKhVqxa8vb0RFBSkmiiJiIgEkFvUxowZgzFjxgAAHB0dsXjxYvTp06dSAiMiIlKU4AGNL1++rMo4iIiIKkxwUSvy8uVLPHz4EFlZWZBIJMWWd+zYUSmBERERKUpwUcvKysL06dOxc+dOFBQUFFsukUggEomQmZmp1ACJiIiEElzUJk2ahL1792LMmDHo2LEjjIyMVBkXERGRwgQXtSNHjsDf3x8//PCDKuMhIiIqN8FFTUdHBy1atFBlLGop7VkW0rNeCOr7Ji9PxdEQEZE8govagAEDcPjwYYwaNUqV8aid9KwXmL98k6C+E0cNVHE0REQkj+BhsgIDA5Gamoqvv/4aZ86cQWpqKp49e1bsh4iIqKoIPlJzdnaGSCTCxYsXERUVVWo/3v1IRERVRXBRmzZtmtwBjYmIiKqa4KI2Y8YMVcZBRERUYeWa+bqgoACZmZnIz89XdjxERETlplBRO3/+PD7//HM0btwY1tbWiI+PBwBkZGRgyJAhOHbsmEqCJCIiEkJwUTt9+jT69OmDO3fuYNiwYTLjPhobGyMnJwcbNmxQSZBERERCCC5qCxYsQIsWLXDq1CnMmTOn2PJOnTrh7NmzSg2OiIhIEYKL2vnz5/HFF19AT0+vxLsgzc3NZSYUJSIiqmyCi1qNGjVQo0bp3dPS0qCvr6+UoIiIiMpDcFFzcnLCgQMHSlyWl5eH6OhotG/fXuEAIiIi4OjoCDMzM3Tp0gUJCQml9s3NzcXYsWPRoUMHmJiYoG/fvgpvj4iINJfgojZ58mQcP34c33zzDa5cuQIASE1NxZEjR9C/f3/cuXMHU6ZMUWjjMTExCAoKwpQpU3D8+HG0b98enp6eePDgQYn9CwoKoKenBz8/P7i7uyu0LSIi0nyCi1rXrl2xevVq7Nu3DwMHvhu4d+zYsfD09ERSUhIiIiLQrl07hTYeFhaG4cOHw9vbG7a2tggODoaZmRkiIyNL7G9gYIDQ0FCMHDkS5ubmCm2LiIg0n+ARRQBg8ODB6NOnD+Li4nD79m0UFhaiWbNm6NatGwwNDRXacF5eHi5evIjAwECZdjc3N5w6dUqhdREREQEKFjUAqFWrllKuZWVkZKCgoACmpqYy7aampnj69GmF1/++5ORkQW0lyRHnQSwWC+qbX5AvuG95+itKaI7VmabnqOn5AcxRU1RmjjY2NqUuE1zU9u/fj7i4OAQHB5e4/Ntvv0W3bt3Qq1cvhYL78PEAiUSi9IGTP/wFJCcny/2lvO/arXswMDAQ1LemVk3BfcvTX1FCc6yuFNmP1ZGm5wcwR02hTjkKvqa2YsUKvHr1qtTlubm5+OWXXwRv2NjYGFpaWsWOytLT04sdvREREQkhuKhdv34dTk5OpS5v3bo1kpKSBG9YR0cHTk5OiIuLk2mPi4uDi4uL4PUQEREVEXz6MT8/H69fvy51+evXr/HmzRuFNh4QEAB/f384OzvDxcUFkZGRSE1NhY+PDwBg3rx5OHfuHGJjY6XvSUpKQl5eHjIyMiAWi3H58mUAgKOjo0LbJiIizSO4qNnb2yM2NhbffPNNsZFFCgsLERsbi5YtWyq0cQ8PD2RmZiI4OBhpaWmws7NDVFQUrKysALx7Du7OnTsy7/nwObbOnTsDALKzsxXaNhERaR7BRe3rr7+Gr68vvLy8MGPGDNjZ2QEAbty4gcWLF+PcuXMIDw9XOABfX1/4+vqWuKyk9RU9+E1ERPQhwUVt0KBBuHPnDhYtWoTDhw8DeHfnYtHditOnT8fQoUNVFigREVFZFHpOberUqRg8eDD27NmDu3fvQiKRoFmzZujXrx+aNm2qohCJiIiEEVTUXr9+jSFDhmDo0KH44osvio0CQkREpA4E3dKvr6+PS5cuoaCgQNXxEBERlZvg59Q++eQTudPCEBERVTXBRW3JkiU4f/48Zs+ejbt376KwsFCVcRERESlM8I0i7dq1g0QiQVhYGMLCwlCjRg1oa2vL9BGJRHj8+LHSgyQiIhJCcFEbOHCg0gcaJiIiUibBRa08D1YTERFVJsHX1IiIiNSdQkXt/v37GD9+PJycnGBpaYmTJ08CeDfh55QpU3Dx4kWVBElERCSE4NOPN2/eRK9evVBYWIi2bdvi/v370ufWjI2NcebMGbx58wYrV65UWbBERETyCC5qc+fORe3atXHkyBFoaWnB2tpaZrm7uzt27dql9ACJiIiEEnz6MSEhAb6+vmjQoEGJd0FaWlriyZMnSg2OiIhIEYKLWn5+PgwMDEpdnpWVBS0tLaUERUREVB6Ci5q9vT1OnDhR4jKJRII9e/bAyclJaYEREREpSnBRG9sJHT4AABxBSURBVDt2LHbv3o2ffvoJmZmZAN7NeH3r1i2MGjUKFy5c4Oj9RERUpRSaJPTBgwf44YcfsHjxYmkbAGhpaWHhwoXo0aOHaqIkIiISQKFJQidOnIjBgwcjNjYWKSkpKCwsRLNmzdC/f380adJEVTESEREJUmZRe/PmDfbv34+7d++ifv366NmzJ8aNG1cZsRERESlEblFLS0tDnz59cOfOHUgkEgCAgYEBtm3bho4dO1ZKgERERELJvVFk4cKFuHv3LsaNG4dt27Zh0aJF0NXVxbRp0yorPiIiIsHkHqn9+eef8PLywsKFC6VtDRo0gK+vLx49egRzc3OVB0hERCRUmacfXVxcZNpcXV0hkUjw8OFDFjU1pqeri2u37lV1GCqVI87T6Bw1PT+AOWoKRXM0qVcHZqb1VBKL3KJWUFAAPT09mbai17m5uSoJiJTjhfg1Vq6LquowVEosFssd5aa60/T8AOaoKRTNcc74EVVT1ADg7t27OHfunPT1ixcvAADJyckwNDQs1t/Z2VmJ4REREQlXZlFbtGgRFi1aVKz9w5tFJBIJRCKRdLQRIiKiyia3qIWFhVVWHERERBUmt6gNHz68suIgIiKqMMEDGhMREam7alnUIiIi4OjoCDMzM3Tp0gUJCQlVHRIREamBalfUYmJiEBQUhClTpuD48eNo3749PD098eDBg6oOjYiIqli1K2phYWEYPnw4vL29YWtri+DgYJiZmSEyMrKqQyMioiomys7OllR1EELl5eWhUaNGWLt2LT7//HNp+9SpU3H9+nXs37+/CqMjIqKqVq2O1DIyMlBQUABTU1OZdlNTUzx9+rSKoiIiInVRrYpaEZFIJPO66MFvIiL6d6tWRc3Y2BhaWlrFjsrS09OLHb0REdG/T7Uqajo6OnByckJcXJxMe1xcXLHZBIiI6N+nzLEf1U1AQAD8/f3h7OwMFxcXREZGIjU1FT4+PlUdGhERVbFqdaQGAB4eHli0aBGCg4PRqVMnxMbGonHjxujYsSNatGiBoUOH4vr16zLvGTt2LIyMjGR+unfvLtPnzZs3+Pbbb9G8eXM0btwYw4YNw6NHjyoztVItWrSoWPz/+c9/pMslEgkWLVqEli1bomHDhujbty9u3Lghsw51zg8AHBwciuVoZGSEIUOGAKie+zA+Ph7Dhg2DnZ0djIyMsGnTJpnlytpv2dnZ8PPzg5WVFaysrODn54fs7GyV5wfIz/Ht27eYO3cuOnTogMaNG8PW1ha+vr7Fnint27dvsX07atSoapEjoLzPpjrnWNLfppGREaZOnSrtoy77sdoVNQDw9fXFlStX8PTpU9jZ2WHChAk4ePAgYmNjUbNmTXz++efIysqSec+nn36KmzdvSn+io6Nlls+YMQN79uzB2rVrsX//frx8+RJDhw5FQUFBZaZWKhsbG5n43x9F5ZdffkFYWBiWLFmCP//8E6amphg4cCBevnwp7aPu+cXFxcnkd+zYMYhEIplHN6rbPhSLxbC3t8fixYuhr69fbLmy9puvry8uX76M6OhobN++HZcvX4a/v3+V5/jq1StcunQJU6dOxbFjx7B582Y8evQIgwcPRn5+vkzfESNGyOzb0NBQmeXqmmMRZXw21TnH93O7efMmtm7dCgAyf5+AeuzHanf68UMxMTEyr1evXg0rKyskJiaid+/e0nZdXV2YmZmVuI7nz59jw4YNCAsLQ9euXaXrcXBwwF9//YVu3bqpLgGBatasWWL8EokE4eHhmDhxIgYMGAAACA8Ph42NDbZv3w4fH59qkZ+JiYnM6w0bNqB27doyfzTVbR+6u7vD3d0dADBu3DiZZcrabzdv3sSRI0dw4MAB6XXl0NBQ9O7dG8nJybCxsamyHOvWrYtdu3bJtIWGhsLV1RU3b95Eq1atpO21atUqdd+qc45FKvrZVPccP8xt//79sLa2xieffCLTrg77sVoeqcmTk5ODwsJCGBkZybT//fffsLa2hrOzM8aPH49nz55Jl128eBFv376Fm5ubtM3CwgK2trY4depUpcUuz927d2FnZwdHR0eMGjUKd+/eBQDcu3cPaWlpMrHr6+ujQ4cO0tirQ37vk0gk2LBhA4YOHYpatWpJ26v7Pnyfsvbb6dOnYWhoKHOjlKurKwwMDNQy76Kj0A//Pnfs2IHmzZvD1dUVs2bNkjlarQ45VvSzWR1yLJKTk4OYmBh4e3sXW6YO+7HaH6l9KCgoCA4ODmjfvr20rXv37ujXrx+aNGmC+/fvY+HChejfvz/++usv6Orq4unTp9DS0oKxsbHMutTloe62bdvi119/hY2NDdLT0xEcHAx3d3ckJiYiLS0NAEp8IP3JkycAoPb5fSguLg737t3Dl19+KW2r7vvwQ8rab0+fPoWxsbHMc5oikQgmJiZql3deXh5mzZqFXr16wdzcXNru6ekJS0tLNGzYEElJSZg3bx6uXr0qPcpT9xyV8dlU9xzft337drx58wZeXl4y7eqyHzWqqH333XdITEzEgQMHoKWlJW0fNGiQ9P9btWoFJycnODg44ODBg+jfv3+p61OXh7p79Ogh87pt27ZwcnLC5s2b0a5dOwDleyBdXfL70Lp16/Dxxx/D0dFR2lbd92FplLHfSuqvbnnn5+fDz88Pz58/x5YtW2SWjRw5Uvr/rVq1QtOmTdGtWzdcvHgRTk5OANQ7R2V9NtU5x/etW7cOffv2LXbJQF32o8acfpwxYwZ27NiB2NhYNG3aVG7fRo0aoXHjxkhJSQEANGjQAAUFBcjIyJDpp64PdRsaGqJly5ZISUmRnr+W90B6dcrv2bNn2L9/f4mnNt5X3fehsvZbgwYNkJ6eDonk/4dwlUgkyMjIUJu88/PzMXr0aFy7dg27d+9G/fr15fZv06YNtLS0ZPatuuf4vvJ8NqtLjpcvX8aFCxfK/PsEqm4/akRRmz59OrZv347Y2FiZW91Lk5GRgSdPnki/WJycnKCtrS3zUPejR49w8+ZNtXyoOzc3F8nJyTAzM0OTJk1gZmYmE3tubi7+/vtvaezVKb/NmzdDV1cXHh4ecvtV932orP3Wvn175OTk4PTp09I+p0+fhlgsVou83759Cx8fH1y7dg179uwp9SaC9127dg0FBQXSvuqe44fK89msLjmuW7cOVlZW+PTTT8vsW1X7USsoKOh7pa2tCkydOhVbt27F77//DgsLC4jFYojFYgDvRiDJycnB/PnzYWhoiPz8fFy5cgWBgYEoKChAcHAwdHV1oaenh9TUVKxZswYfffQRnj9/jkmTJqFOnTqYN28eatSo2to/a9Ys6OjooLCwEP/88w++/fZbpKSkIDQ0FEZGRigoKEBoaCisra1RUFCAmTNnIi0tDcuWLasW+RWRSCQICAhAz549Ze56rK77MCcnB0lJSUhLS8OGDRtgb2+POnXqIC8vD3Xr1lXKfjMxMcHZs2exfft2ODo64tGjR5g0aRI+/vjjSrkdXF6OBgYG8Pb2xvnz57F+/XrUrl1b+veppaUFbW1t3LlzB7/99hsMDAyQl5eH06dPY+LEiTA3N8esWbPUPkctLS2lfDbVOce6desCePeIxrhx4+Dn54eOHTvKvF+d9mO1mnqmJB/eRVVk+vTpmDFjBl6/fo0RI0bg8uXLeP78OczMzNCpUyfMnDkTFhYW0v65ubmYPXs2tm/fjtzcXHTu3BkhISEyfarKqFGjkJCQgIyMDJiYmKBt27aYOXMmWrZsCeBdMVi8eDF+//13ZGdnw9nZGT///DPs7e2l61Dn/IocP34c/fv3x9GjR+Hs7Cxtr6778MSJE+jXr1+xdi8vL4SHhyttv2VlZWH69On4448/AAC9e/fGTz/9VOrfRmXlGBQUhNatW5f4vrCwMIwYMQIPHz6En58fbty4AbFYDHNzc7i7uyMoKAj16tWT9lfXHJcuXaq0z6a65hgeHg4A2LhxIyZMmICrV6+iUaNGMv3UaT9W+6JGRERURD3OOxERESkBixoREWkMFjUiItIYLGpERKQxWNSIiEhjsKgREZHGYFH7FwgMDISRkRG+++47hd5nZGSERYsWSV8XTVaqCnv37sXKlSuVvt6xY8fCwcFBUN+cnByEhoaia9eusLS0hKmpKT766CN4e3tj3759MsP7qDOxWAxbW1vs3r1b2la07xo2bIjnz58Xe8+mTZukEzsWDWsEvJv4sW/fvtLXJ06cgJGREU6cOKFQn8rw4WS6FhYW+Pjjj+Hr64ujR49WeL3v+/BvozJMnz5dOmkulY5FTcO9fv1a+uUWHR1dbHJGRXz11Vc4fPiwskKTsW/fPvz6668qWbcQjx8/Rrdu3bBs2TJ07doVkZGR2LlzJ4KCgvDq1SuMGDEC586dq7L4FLFy5UoYGxuXOJiutra2TLErsnXrVtSuXbtYe0hICEJCQhTafuvWrXH48OFSH7xWtQMHDuDw4cPYtGkTJk6ciOzsbAwaNAh+fn4oLCyskpiUYdKkSTh+/DiOHTtW1aGoNY0apZ+K27t3L168eAF3d3ccOnQIR44cQa9evcq1LnNzc5kpQzTJmDFj8OzZM/z1119o1qyZtP2TTz7BF198gb/++gt16tSRu443b95AV1dX1aHKlZeXh99++w1BQUEljnz+2WefYdu2bfjqq6+kbQ8fPkR8fDyGDRuGzZs3y/QvGrVGEXXq1JHOHlEV2rZti5o1//+r7auvvkJYWBhmzpwJBwcHBAYGVllsJRH6uWnYsCF69eqFlStXokuXLpUQWfXEIzUNt2XLFhgZGeHXX3+Fvr6+dBr29xUUFGDhwoWwtbVFo0aN0LdvX9y4caNYvw9Pw9y7dw9GRkbYtGmTTL+STj8dPXoU7u7usLKygrm5Odq2bYslS5YAeHeKcMuWLXj8+LH01NH7pwwzMjIwefJk2NnZoUGDBmjXrh1+//33YvEdO3YMnTt3hpmZGZycnPC///1P0O/ozJkziI+Px5QpU2QK2vs+/fRTmcGyx44dC3t7e5w+fRru7u5o2LAh5syZAwBITk7GiBEjYGVlhYYNG6J79+44cuSIzPr++ecfjBgxAtbW1jAzM5Oe5iw6ks7JycG3336Ljz76CA0aNICNjQ0GDBiAW7duyc1l7969yMrKKnVA6GHDhiEhIQH379+Xtm3btg0WFhbo0KFDsf4fnloUoqT9L5FIEBYWhrZt28LU1BS2trb49ttv8eLFC5n3GhkZYeHChVi1ahUcHR1hYWGBPn36lPh5VERAQAAcHR2xatUqmXYh+0qIlJQU+Pn5wdHREQ0bNkTr1q0xefJkZGdny/ST97mJjo5Gp06dYG5uDisrK3To0KHYZ9jDwwNHjx7Fw4cPFY7x34JHahrsyZMn+OuvvzBy5EiYmJigb9++2LNnD7Kzs2WK06JFixASEoKAgAC4ubnhwoULxSYArIi7d+/Cy8sLAwYMwLRp06CtrY2UlBTp7N3Tpk1DRkYGzp8/L51rS0dHBwDw4sUL9OzZE7m5uQgKCkKTJk1w9OhRTJ48GW/evJEOhHrz5k14enqiTZs2WLt2LfLy8rB48WKIxeIyBzMuOp2j6BHsixcvMGrUKAQGBmL27NnQ19fHkydP0KtXLxgaGiI4OBh16tRBREQEhgwZgm3btknnxhs6dCjq1q2LkJAQGBsb48mTJzh8+LD09Nh3332HP/74A7Nnz0aLFi2QmZmJU6dOlXg97H1HjhyBra1tsQkpi3To0AFWVlaIjo7GlClTALwrakOGDFHpvF0LFizA0qVLMWbMGPTq1QtJSUn48ccfcfXqVezbt09mH23btg02NjZYvHgx3r59i9mzZ2P48OE4c+aMzBGYonr06IGQkBA8ePAAlpaWgveVEE+ePIG5ubn0H353797F0qVL4enpWeyUfUmfm7///ht+fn7w9/fHggULUFhYiFu3bhXb3x07dkRhYSHi4uJkJtGl/8eipsG2bduGwsJCDBs2DMC7wUm3b9+OmJgYjBo1CgCQnZ2N8PBwjBw5EgsXLgQAuLm5QUtLC99//71S4rh06RLy8vIQEhIiPYX3/umTZs2awdjYGDo6OsVOW61atQoPHjxAQkICWrRoAeDdUdPz58+xZMkSjB49GjVr1sTPP/8MQ0NDxMTEwMDAAMC7qS7atGmDhg0byo3v8ePHAFBs4OPCwkKZazA1atSQ+fLNycnB6tWrZY5kZs2ahezsbBw+fBjNmzcHALi7u8PFxQULFixAjx49kJGRgdu3b2Pz5s3o06eP9L2enp7S/z9z5gw8PT1lThOWNODsh86ePSv3WpZIJJJ+aU+ZMgXnzp3DrVu34OXlhcTExDLXXx5ZWVkICwuDl5cXgoODAQDdunWDiYkJ/P39ceDAAZnfg7a2NrZt2wZtbW1pm7e3N86dO1ehKUqK9m9aWhosLS0RFhZW5r4SqmPHjjIj17u4uKB58+bo3bs3Ll26JLNPSvrcrFixAnXr1sXixYulbW5ubsW2Y2xsDHNzc5w9e5ZFrRQ8/ajBtm7dihYtWqB9+/YA3hWDRo0ayZyCvHbtGsRiscxULwDKnM9MEQ4ODtDW1sbo0aOxe/duPHv2TPB7i0bsb9KkCfLz86U/3bp1Q2ZmJpKSkgC8m5epR48e0oIGvPsSE/IlWNpdjVOmTIGJiYn058cff5RZXrNmzWJHdwkJCWjXrp30SxIAtLS0MGjQIFy5cgUvXrxA/fr10bRpU8ybNw/r1q3D7du3i227TZs22Lx5M0JCQnDhwgUUFBSUmQcApKamlnqUVsTLywu3bt3C+fPnsXXrVrRr1076DwZVOHPmDN68eYOhQ4fKtA8aNAg1a9ZEfHy8THvXrl1lClrRrAUVPeVWtJ+LjkiF7Cuhiv7R1q5dOzRs2BAmJibo3bs3gHenmt9X0uemTZs2yM7Ohp+fHw4cOFDstOX7jI2NkZqaKji2fxsWNQ11/vx5JCUloV+/fsjOzkZ2djZevnyJzz77DKdPn5b+oaWlpQF4Nyvt+z58XRHNmzfHjh07UFhYCH9/f/znP/9Bt27dcPLkyTLf++zZMyQkJMgUFxMTE+nMu5mZmdI8SopZSB5FN798+KU5efJkxMXFyUzu+D5TU1NoaWnJtGVlZZU4EaaZmRkkEgmys7MhEomwa9cuODk5Yd68eXB2dkbr1q2xdu1aaf+ffvoJPj4+2LhxI7p27Qpra2vMmDEDr169kptLbm5umTcdNG/eHO3bt8eGDRuwY8cO6ZG8qmRlZQFAsd9LzZo1Ub9+fenyIu9PVQL8/6no3NzcCsXx6NEjmTiE7Cuh5s2bh8WLF0uPgv/8809s2LChxLhL+tx88sknWLduHR4+fIgvvvgC1tbWGDBgAK5evVpsW/r6+nj9+rXg2P5tWNQ0VNG1qWXLlqFp06bSnzVr1gCA9Git6I/66dOnMu//8HVJ9PT0ALyb3fh9RYXmfZ07d8aOHTtw79497Nq1C9ra2hg6dGixKe4/VL9+fbi4uEiLy4c/bdq0keZRUsxC8ujcuTOAd7eCv8/S0hJt2rSRbuNDJV2DqlevXonbTEtLg0gkkn5hN23aFKtXr8bt27dx/PhxdO7cGVOmTJFefzE0NMTcuXNx4cIFXL58GZMnT8aaNWukN9eUpn79+oK+jIcNG4Z169YhJydHqUflJSnK+cPfS35+PjIzM1G/fn2Vbr/IoUOHYGFhIT0NKXRfCRETE4Nhw4bh22+/RZcuXfDxxx9LJ9f8UGnXLgcMGID9+/fj7t272LhxI9LS0jB48OBijyFkZWWVeTT+b8aipoHy8vKwY8cOtG3bFnv27Cn24+DggK1bt0IikaBVq1YwMDDArl27ZNYRExNT5nYaNGgAXV1dXL9+Xab90KFDpb5HV1cXXbp0wfjx4yEWi3Hv3j1pe0n/+uzWrRtu3boFCwsLaYF5/6fo2ar27dvj8OHD0lnPgXdHXqdOnSozj/bt2+O///0vQkJCcOfOnTL7y9OxY0ecOXNGmhfw7u7SnTt3wtHRsdizYCKRCI6Ojvjhhx8AoMS7/KysrBAYGAh7e/sy7wK0sbGR3oAjj4eHB3r37o2JEycq9OVdHu3atYOuri527Ngh0x4TE4P8/PxisyirQlhYGK5cuYKAgABpm6L7Sp5Xr17JnDIFUOyuYKEMDQ3Rq1cvjBw5EqmpqTL/SCwoKMCjR49gbW1drnX/G/BGEQ104MABZGZmYuHChejUqVOx5T4+Ppg8eTJOnDiBzp07Y+zYsQgJCYGhoSHc3Nxw/vx56akTeUQiEQYOHIiNGzfC2toaNjY2OHjwYLHTipGRkUhISECPHj1gbm6OjIwMhIaGolGjRrCzswMA2NraIisrC2vXrkWbNm2gq6uLVq1aYdy4cdi5cyd69+6NcePGwdraGq9evUJycjISEhKkR6RTp07Frl274OHhgcDAQLx9+xaLFi0SfBo1IiICAwYMwKeffgpfX1/897//Ra1atZCeni49/WhoaFjmesaNG4fNmzdj4MCBmDFjBmrXro21a9fin3/+QVRUFADg6tWrCAoKgoeHB5o3b46CggJs3rwZNWvWlB419ujRA71794a9vT0MDAwQHx+Pq1evlnlXaocOHRAeHo7CwkK5d32W9CiGqtSrVw8BAQFYunQpatWqBXd3d9y8eRM//PAD/vvf/6Jnz55K3d7Zs2ehpaWF3Nxc3L17F7GxsTh8+DC8vLzw9ddfS/sJ2VdCde/eHVu2bIG9vT2aN2+OPXv24PTp04Lf/8MPP+DZs2fo1KkTGjZsiMePH2P16tVwcHCAiYmJtN/169chFosr5R8C1RWLmgbasmULateuXezmjyKDBg3CzJkzsWXLFnTu3BkzZswAAKxfvx5r1qyBs7Mztm7dCldX1zK3tXjxYhQWFkr/O3DgQPz0008yNwV89NFHOHz4MObPn49nz56hXr16cHV1xZo1a6Cvrw/g3QOyZ8+exfz58/H8+XNYWlriypUrqFu3Lg4dOoQlS5Zg2bJlePLkCerWrQsbGxuZuwFtbW0RHR2N2bNnY9SoUWjUqBEmTpyI06dPC7p2Z25ujri4OPz222+IjY3F6tWr8ebNG5iZmcHZ2RlbtmyRXviXp1GjRjhw4ADmzp2LKVOm4M2bN3BwcEBUVBS6d+8O4N2pUgsLC4SFheHx48fQ1dWFvb09tm3bBicnJwDvitPOnTuxbNky5Ofno2nTpvjxxx9lvpRL4uHhgSVLliAhIQGffPJJmfFWltmzZ8PY2Bj/+9//sHbtWtSvXx/Dhg3DnDlzynzkQlFFN2HUqlVLuv927NiBbt26yfQTsq+E+umnnyCRSLBgwQIA7+6iXLt2bYl3MJakbdu2WL16Nb777jtkZWXB1NQUXbt2xcyZM2X6HTx4EGZmZmq1b9WNKDs7u3oMaEdV7rvvvsPWrVtlxgYk9dO3b180b94cK1asqOpQSMlcXFzQr18/zJo1q6pDUVu8pkZlysrKwh9//IG9e/dW6fBHJMzs2bMRHR0tff6ONMO+ffvw9OlTfPPNN1UdilpjUaMyxcfHY/To0bCysqr0kclJca6urvjxxx/x4MGDqg6FlCg3Nxe//fabymbK0BQ8/UhERBqDR2pERKQxWNSIiEhjsKgREZHGYFEjIiKNwaJGREQag0WNiIg0xv8Bt6P4ciEjs7EAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.hist('Adjusted Gross', bins=uneven, unit=\"Million Dollars\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will start by getting the counts in the bins." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bin count
300 14
350 54
400 60
500 72
1800 0
" ], "text/plain": [ "bin | count\n", "300 | 14\n", "350 | 54\n", "400 | 60\n", "500 | 72\n", "1800 | 0" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "histogram_elements = millions.bin('Adjusted Gross', bins=uneven).relabeled(1, 'count')\n", "histogram_elements" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now add a column containing the percent in each bin." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bin count percent
300 14 7
350 54 27
400 60 30
500 72 36
1800 0 0
" ], "text/plain": [ "bin | count | percent\n", "300 | 14 | 7\n", "350 | 54 | 27\n", "400 | 60 | 30\n", "500 | 72 | 36\n", "1800 | 0 | 0" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "total_count = sum(histogram_elements.column('count'))\n", "percents = np.round(100*histogram_elements.column('count')/total_count, 2)\n", "histogram_elements = histogram_elements.with_columns('percent', percents)\n", "histogram_elements" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Column 0 contains the left ends of all the bins, except for its last element which is the right end of the last bin. So we can use `np.diff` to find the widths of all the bins. Then we will add the widths to the `histogram_elements` table, by first removing the last row." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bin count percent width
300 14 7 50
350 54 27 50
400 60 30 100
500 72 36 1300
" ], "text/plain": [ "bin | count | percent | width\n", "300 | 14 | 7 | 50\n", "350 | 54 | 27 | 50\n", "400 | 60 | 30 | 100\n", "500 | 72 | 36 | 1300" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bin_widths = np.diff(histogram_elements.column('bin'))\n", "num_bins = histogram_elements.num_rows - 1 # the number of bins\n", "histogram_elements = histogram_elements.take(\n", " np.arange(num_bins)).with_columns(\n", " 'width', bin_widths\n", ")\n", "histogram_elements" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we can add a column of heights." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bin count percent width height
300 14 7 50 0.14
350 54 27 50 0.54
400 60 30 100 0.3
500 72 36 1300 0.03
" ], "text/plain": [ "bin | count | percent | width | height\n", "300 | 14 | 7 | 50 | 0.14\n", "350 | 54 | 27 | 50 | 0.54\n", "400 | 60 | 30 | 100 | 0.3\n", "500 | 72 | 36 | 1300 | 0.03" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "heights = np.round(\n", " histogram_elements.column('percent')/histogram_elements.column('width'),2)\n", "histogram_elements = histogram_elements.with_columns('height', heights)\n", "histogram_elements" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is the histogram again for convenience. Compare it with the table above to confirm that the calculation of heights looks good." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.hist('Adjusted Gross', bins=uneven)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Differences Between Bar Charts and Histograms \n", "\n", "- Bar charts display one numerical quantity per category. They are often used to display the distributions of categorical variables. Histograms display the distributions of quantitative variables. \n", "- All the bars in a bar chart have the same width, and there is an equal amount of space between consecutive bars. The bars can be in any order because the distribution is categorical. The bars of a histogram are contiguous; the bins are drawn to scale on the number line.\n", "- The lengths (or heights, if the bars are drawn vertically) of the bars in a bar chart are proportional to the count in each category. The heights of bars in a histogram measure densities; the *areas* of bars in a histogram are proportional to the counts in the bins." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "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.8.5" } }, "nbformat": 4, "nbformat_minor": 1 }