From 07f23051cd25c8af9715d869c5fbd2477753bc66 Mon Sep 17 00:00:00 2001 From: Diego Berny Date: Wed, 6 Sep 2017 18:17:56 -0400 Subject: [PATCH 1/9] yay --- code/chap01mine.ipynb | 1505 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1505 insertions(+) create mode 100644 code/chap01mine.ipynb diff --git a/code/chap01mine.ipynb b/code/chap01mine.ipynb new file mode 100644 index 00000000..c0afab6f --- /dev/null +++ b/code/chap01mine.ipynb @@ -0,0 +1,1505 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 1: Modeling\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Jupyter\n", + "\n", + "Welcome to Modeling and Simulation, welcome to Python, and welcome to Jupyter.\n", + "\n", + "This is a Jupyter notebook, which is a development environment where you can write and run Python code. Each notebook is divided into cells. Each cell contains either text (like this cell) or Python code (like the cell below this one).\n", + "\n", + "### Selecting and running cells\n", + "\n", + "To select a cell, click in the left margin next to the cell. You should see a blue frame surrounding the selected cell.\n", + "\n", + "To edit a code cell, click inside the cell. You should see a green frame around the selected cell, and you should see a cursor inside the cell.\n", + "\n", + "To edit a text cell, double-click inside the cell. Again, you should see a green frame around the selected cell, and you should see a cursor inside the cell.\n", + "\n", + "To run a cell, hold down SHIFT and press ENTER. If you run a text cell, it will typeset the text and display the result.\n", + "\n", + "If you run a code cell, it runs the Python code in the cell and displays the result, if any wowoowwoowwowowwoow.\n", + "\n", + "To try it out, edit this cell, change some of the text, and then press SHIFT-ENTER to run it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Adding and removing cells\n", + "\n", + "You can add and remove cells from a notebook using the buttons in the toolbar and the items in the menu, both of which you should see at the top of this notebook.\n", + "\n", + "You might want to try the following exercises:\n", + "\n", + "1. From the Insert menu select \"Insert cell below\" to add a cell below this one. By default, you get a code cell, and you can see in the pulldown menu that says \"Code\".\n", + "\n", + "2. In the new cell, add a print statement like `print('Hello')`, and run it.\n", + "\n", + "3. Add another cell, select the new cell, and then click on the pulldown menu that says \"Code\" and select \"Markdown\". This makes the new cell a text cell.\n", + "\n", + "4. In the new cell, type some text, and then run it.\n", + "\n", + "5. Use the arrow buttons in the toolbar to move cells up and down.\n", + "\n", + "6. Use the cut, copy, and paste buttons to delete, add, and move cells.\n", + "\n", + "7. As you make changes, Jupyter saves your notebook automatically, but if you want to make sure, you can press the save button, which looks like a floppy disk from the 1990s.\n", + "\n", + "8. Finally, when you are done with a notebook, selection \"Close and Halt\" from the File menu." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello\n" + ] + } + ], + "source": [ + "print('Hello')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "this is a text cell" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using the notebooks\n", + "\n", + "The notebooks for each chapter contain the code from the chapter along with addition examples, explanatory text, and exercises. I recommend you read the chapter first to understand the concepts and vocabulary, then run the notebook to review what you learned and see it in action, and then attempt the exercises.\n", + "\n", + "The notebooks contain some explanatory text, but it is probably not enough to make sense if you have not read the book. If you are working through a notebook and you get stuck, you might want to re-read (or read!) the corresponding section of the book.\n", + "\n", + "If you try to work through the notebooks without reading the book, you're gonna have a bad time. If you have previous programming experience, you might get through the first few notebooks, but sooner or later, you will get to the end of your leash, and you won't like it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Importing modsim\n", + "\n", + "The following cell imports `modsim`, which is a collection of functions we will use throughout the book. Whenever you start the notebook, you will have to run the following cell. It does two things:\n", + "\n", + "1. It uses a Jupyter \"magic command\" to specify whether figures should appear in the notebook, or pop up in a new window.\n", + "\n", + "2. It imports everything defined in `modsim`.\n", + "\n", + "Select the following cell and press SHIFT-ENTER to run it." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "If this cell runs successfully, it produces no output other than this message.\n" + ] + } + ], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# To switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib notebook\n", + "\n", + "from modsim import *\n", + "\n", + "print('If this cell runs successfully, it produces no output other than this message.')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The penny myth\n", + "\n", + "The following cells contain code from the beginning of Chapter 1.\n", + "\n", + "`modsim` defines `UNITS`, which contains variables representing pretty much every unit you've ever heard of. The following to lines create new variables named `meter` and `second`." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "meter = UNITS.meter\n", + "second = UNITS.second" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To find out what units are defined, type `UNITS.` in the next cell and then press TAB. You should see a pop-up menu with a list of units." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m UNITS.\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + ] + } + ], + "source": [ + "UNITS." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a variable named `a` and display its value:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "a = 9.8 * meter / second**2\n", + "a" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Create `t` and display its value:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "t = 4 * second\n", + "t" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "If you create a variable and don't display the value, you don't get any output:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "h = a * t**2\n", + "h" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Add a second line to the previous cell to display the value of `h`.\n", + "\n", + "Now let's solve the falling penny problem. The following lines set `h` to the height of the Empire State Building and compute the time it would take a penny to fall, assuming constant acceleration." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "h = 381 * meter\n", + "t = sqrt(2 * h / a)\n", + "t" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Given `t`, we can compute the velocity of the penny when it lands." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "v = a * t\n", + "v" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "We can convert from one set of units to another like this:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "mile = UNITS.mile\n", + "hour= UNITS.hour" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "v.to(mile/hour)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** In reality, air resistance prevents the penny from reaching this velocity. At about 20 meters per second, the force of air resistance equals the force of gravity and the penny stops accelerating.\n", + "\n", + "As a simplification, let's assume that the acceleration of the penny is `a` until the penny reaches 20 meters per second, and then 0 afterwards. What is the total time for the penny to fall 381 meters?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n", + "meter = UNITS.meter\n", + "second = UNITS.second\n", + "\n", + "a = 9.8 * meter / second**2\n", + "h = 381 * meter\n", + "v = 20 * meter / second\n", + "\n", + "t = v/a\n", + "\n", + "fall1 = a*(t**2)/2\n", + "h = h - fall1\n", + "\n", + "answer = (h / v) + t\n", + "answer" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Modeling a bikeshare system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll start with a `System` object that represents the number of bikes at each station." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you display the value of a `System` object, it lists the system variables and their values (not necessarily in the order you defined them):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can access the system variables using dot notation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bikeshare.olin" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "bikeshare.wellesley" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** What happens if you spell the name of a system variable wrong? Edit the previous cell, change the spelling of `wellesley`, and run the cell again.\n", + "\n", + "The error message uses the word \"attribute\", which is another name for what we are calling a system variable. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Add a third attribute called `babson` with initial value 0, and print the state of `bikeshare` again." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting\n", + "\n", + "`newfig` creates a new figure, which should appear either in the notebook or in a new window, depending on which magic command you ran in the first code cell.\n", + "\n", + "`plot` adds a data point to the figure; in this example, you should see a red square and a blue circle representing the number of bikes at each station." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "newfig()\n", + "plot(bikeshare.olin, 'rs-')\n", + "plot(bikeshare.wellesley, 'bo-')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use the operators `+=` and `-=` to increase and decrease the system variables. The following lines move a bike from Olin to Wellesley." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bikeshare.olin -= 1\n", + "bikeshare.wellesley += 1\n", + "bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the following lines plot the updated state of the system. You should see two new data points with lines connecting them to the old data points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "plot(bikeshare.olin, 'rs-')\n", + "plot(bikeshare.wellesley, 'bo-')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** In the cell below, write a few lines of code to move a bike from Wellesley to Olin and plot the updated state." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "\n", + "bikeshare.olin +=1\n", + "bikeshare.wellesley -=1\n", + "plot(bikeshare.olin, 'rs-')\n", + "plot(bikeshare.wellesley, 'bo-')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Functions\n", + "\n", + "Now we can take the code we've written so far and encapsulate it in functions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def bike_to_wellesley():\n", + " bikeshare.olin -= 1\n", + " bikeshare.wellesley += 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you define a function, it doesn't run the statements inside the function, yet." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_state():\n", + " plot(bikeshare.olin, 'rs-', label='Olin')\n", + " plot(bikeshare.wellesley, 'bo-', label='Wellesley')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now when we run the functions, it runs the statements inside." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_to_wellesley()\n", + "plot_state()\n", + "bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You should see two more data points that represent the current state of the system. If the figure is embedded in the notebook, you might have to scroll up to see the change.\n", + "\n", + "One common error is to omit the parentheses, which has the effect of looking up the function, but not running it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_to_wellesley" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The output indicates that `bike_to_wellesley` is a function defined in a \"namespace\" called `__main__`, but you don't have to understand what that means." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Define a function called `bike_to_olin` that moves a bike from Wellesley to Olin. Run the new function and print or plot the results to confirm that it works." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def bike_to_olin():\n", + " bikeshare.olin +=1\n", + " bikeshare.wellesley -=1\n", + "bike_to_olin()\n", + "plot_state()\n", + "bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we go on, let's start with a new state object and a new plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2)\n", + "newfig()\n", + "plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we have two similar functions, we can create a new function, `move_bike` that takes a parameter `n`, which indicates how many bikes are moving, and in which direction." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def move_bike(n):\n", + " bikeshare.olin -= n\n", + " bikeshare.wellesley += n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can use `move_bike` to write simpler versions of the other functions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def bike_to_wellesley():\n", + " move_bike(1)\n", + " \n", + "def bike_to_olin():\n", + " move_bike(-1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When we define these functions, we replace the old definitions with the new ones.\n", + "\n", + "Now we can test them and update the figure." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_to_wellesley()\n", + "plot_state()\n", + "bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, each time you run `plot_state` you should see changes in the figure." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_to_olin()\n", + "plot_state()\n", + "bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At this point, `move_bike` is complicated enough that we should add some documentation. The text in triple-quotation marks is in English, not Python. It doesn't do anything when the program runs, but it helps people understand what this function does and how to use it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def move_bike(n):\n", + " \"\"\"Move bikes.\n", + " \n", + " n: number of bikes: positive moves from Olin to Wellesley;\n", + " negative moves from Wellesley to Olin\n", + " \"\"\"\n", + " bikeshare.olin -= n\n", + " bikeshare.wellesley += n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Whenever you make a figure, you should put labels on the axes to explain what they mean and what units they are measured in. Here's how:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "label_axes(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, you might have to scroll up to see the effect.\n", + "\n", + "And you can save figures as files; the suffix of the filename indicates the format you want. This example saves the current figure in a PDF file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "savefig('chap01_fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** The following function definitions start with print statements so they display messages when they run. Run each of these functions (with appropriate arguments) and confirm that they do what you expect.\n", + "\n", + "Adding print statements like this to functions is a useful debugging technique. Keep it in mind!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def move_bike_debug(n):\n", + " print('Running move_bike_debug with argument', n)\n", + " bikeshare.olin -= n\n", + " bikeshare.wellesley += n\n", + " \n", + "def bike_to_wellesley_debug():\n", + " print('Running bike_to_wellesley_debug')\n", + " move_bike_debug(1)\n", + " \n", + "def bike_to_olin_debug():\n", + " print('Running bike_to_olin_debug')\n", + " move_bike_debug(-1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n", + "move_bike_debug(2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n", + "bike_to_wellesley_debug()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n", + "bike_to_olin_debug()\n", + "bikeshare.olin" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conditionals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The function `flip` takes a probability and returns either `True` or `False`, which are special values defined by Python.\n", + "\n", + "In the following example, the probability is 0.7 or 70%. If you run this cell several times, you should get `True` about 70% of the time and `False` about 30%." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "flip(.6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Modify the argument in the previous cell and see what effect it has.\n", + "\n", + "In the following example, we use `flip` as part of an if statement. If the result from `flip` is `True`, we print `heads`; otherwise we do nothing." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if flip(0.7):\n", + " print('heads')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With an else clause, we can print heads or tails depending on whether `flip` returns `True` or `False`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if flip(0.7):\n", + " print('heads')\n", + "else:\n", + " print('tails')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's get back to the bikeshare system. Again let's start with a new `System` object and a new plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2)\n", + "newfig()\n", + "plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose that in any given minute, there is a 70% chance that a student picks up a bike at Olin and rides to Wellesley. We can simulate that like this." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if flip(0.7):\n", + " bike_to_wellesley()\n", + " print('Moving a bike to Wellesley')\n", + "\n", + "plot_state()\n", + "bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And maybe at the same time, there is also a 60% chance that a student at Wellesley rides to Olin." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if flip(0.6):\n", + " bike_to_olin()\n", + " print('Moving a bike to Olin')\n", + "\n", + "plot_state()\n", + "bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can wrap that code in a function called `step` that simulates one time step. In any given minute, a student might ride from Olin to Wellesley, from Wellesley to Olin, or both, or neither, depending on the results of `flip`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def step():\n", + " if flip(0.7):\n", + " bike_to_wellesley()\n", + " print('Moving a bike to Wellesley')\n", + " \n", + " if flip(0.6):\n", + " bike_to_olin()\n", + " print('Moving a bike to Olin')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you run `step` a few times, it should update the current figure. In each time step, the number of bikes at each location might go up, down, or stay the same." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "step()\n", + "plot_state()\n", + "bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function labels the axes and adds a legend to the figure." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def decorate(): \n", + " legend(loc='best')\n", + " label_axes(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As always, when you define a function, it has no effect until you run it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "decorate()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Change the argument of `legend` to `'random string'` and run `decorate` again. You should get an error message that lists the valid location where you can put the legend." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optional parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again let's start with a new `System` object and a new plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2)\n", + "newfig()\n", + "plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can make `step` more general by adding parameters. Because these parameters have default values, they are optional." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def step(p1=0.5, p2=0.5):\n", + " print('p1 ->', p1)\n", + " print('p2 ->', p2)\n", + " if flip(p1):\n", + " bike_to_wellesley()\n", + " \n", + " if flip(p2):\n", + " bike_to_olin()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I added print statements, so each time we run `step` we can see the arguments.\n", + "\n", + "If you provide no arguments, you get the default values:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "step()\n", + "plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you provide one argument, it overrides the first parameter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "step(0.4)\n", + "plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you provide two arguments, they override both." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "step(0.4, 0.2)\n", + "plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can specify the names of the parameters you want to override." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "step(p1=0.4, p2=0.2)\n", + "plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Which means you can override the second parameter and use the default for the first." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "step(p2=0.2)\n", + "plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can combine both forms, but it is not very common:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "step(0.4, p2=0.2)\n", + "plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One reason it's not common is that it's error prone. The following example causes an error." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you remove the # at the beginning of the next line and run it, you get\n", + "# SyntaxError: positional argument follows keyword argument\n", + "\n", + "#step(p1=0.4, 0.2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the error message, you might infer that arguments like `step(0.4, 0.2)` are called \"positional\" and arguments like `step(p1=0.4, p2=0.2)` are called \"keyword arguments\"." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write a version of `decorate` that takes an optional parameter named `loc` with default value `'best'`. It should pass the value of `loc` along as an argument to `legend.` Test your function with different values of `loc`. [You can see the list of legal values here](https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.legend)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def decorates(loc='best'): \n", + " legend(loc=loc)\n", + " label_axes(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')\n", + "decorates('upper right')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## For loop" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we go on, I'll redefine `step` without the print statements." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def step(p1=0.5, p2=0.5):\n", + " if flip(p1):\n", + " bike_to_wellesley()\n", + " \n", + " if flip(p2):\n", + " bike_to_olin()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And let's start again with a new `System` object and a new figure." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2)\n", + "newfig()\n", + "plot_state()\n", + "decorate()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use a for loop to move 4 bikes from Olin to Wellesley." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "for i in range(4):\n", + " bike_to_wellesley()\n", + " plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or we can simulate 4 random time steps." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "for i in range(4):\n", + " step()\n", + " plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If each step corresponds to a minute, we can simulate the rest of the hour like this." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "for i in range(52):\n", + " step(p1=0.4, p2=0.2)\n", + " plot_state()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Combine the examples from the previous two sections to write a function named `run_steps` that takes three parameters, named `num_steps`, `p1`, and `p2`. It should use a for loop to run `step` the number of times specified by `num_steps`, passing along the specified values of `p1` and `p2`. After each step, it should plot the updated state.\n", + "\n", + "Test your function by creating a new `System` object, creating a new figure, and running `run_steps`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def run_steps(num_steps, p1, p2):\n", + " for i in range (num_steps):\n", + " step(p1, p2)\n", + " plot_state()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n", + "bikeshare = System(olin = 10, wellesley = 2)\n", + "newfig()\n", + "run_steps(10, .4, .8)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From 06187705fe2cef9b83392bba651f541d31346edc Mon Sep 17 00:00:00 2001 From: Diego Berny Date: Tue, 12 Sep 2017 17:22:03 -0400 Subject: [PATCH 2/9] Adding chap02mine --- code/chap02mine.ipynb | 8465 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 8465 insertions(+) create mode 100644 code/chap02mine.ipynb diff --git a/code/chap02mine.ipynb b/code/chap02mine.ipynb new file mode 100644 index 00000000..877b79f8 --- /dev/null +++ b/code/chap02mine.ipynb @@ -0,0 +1,8465 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 2: Simulation\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll start with the same code we saw last time: the magic command that tells Jupyter where to put the figures, and the import statement that gets the functions defined in the `modsim` module." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "%matplotlib notebook\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## More than one System object\n", + "\n", + "Here's the code from the previous chapter, with two changes:\n", + "\n", + "1. I've added DocStrings that explain what each function does, and what parameters it takes.\n", + "\n", + "2. I've added a parameter named `system` to the functions so they work with whatever `System` object we give them, instead of always using `bikeshare`. That will be useful soon when we have more than one `System` object." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_steps(system, num_steps=1, p1=0.5, p2=0.5):\n", + " \"\"\"Simulate the given number of time steps.\n", + " \n", + " system: bikeshare System object\n", + " num_steps: number of time steps\n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " \"\"\"\n", + " for i in range(num_steps):\n", + " step(system, p1, p2)\n", + " plot_system(system)\n", + " \n", + "def step(system, p1=0.5, p2=0.5):\n", + " \"\"\"Simulate one minute of time.\n", + " \n", + " system: bikeshare System object\n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " \"\"\"\n", + " if flip(p1):\n", + " bike_to_wellesley(system)\n", + " \n", + " if flip(p2):\n", + " bike_to_olin(system)\n", + " \n", + "def bike_to_wellesley(system):\n", + " \"\"\"Move one bike from Olin to Wellesley.\n", + " \n", + " system: bikeshare System object\n", + " \"\"\"\n", + " move_bike(system, 1)\n", + " \n", + "def bike_to_olin(system):\n", + " \"\"\"Move one bike from Wellesley to Olin.\n", + " \n", + " system: bikeshare System object\n", + " \"\"\"\n", + " move_bike(system, -1)\n", + " \n", + "def move_bike(system, n):\n", + " \"\"\"Move a bike.\n", + " \n", + " system: bikeshare System object\n", + " n: +1 to move from Olin to Wellesley or\n", + " -1 to move from Wellesley to Olin\n", + " \"\"\"\n", + " system.olin -= n\n", + " system.wellesley += n\n", + " \n", + "def plot_system(system):\n", + " \"\"\"Plot the current system of the bikeshare system.\n", + " \n", + " system: bikeshare System object\n", + " \"\"\"\n", + " plot(system.olin, 'rs-', label='Olin')\n", + " plot(system.wellesley, 'bo-', label='Wellesley')\n", + " \n", + "def decorate_bikeshare():\n", + " \"\"\"Add a title and label the axes.\"\"\"\n", + " decorate(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can create more than one `System` object:" + ] + }, + { + "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", + "
value
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare1 = System(olin=10, wellesley=2)\n", + "bikeshare1" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare2 = System(olin=10, wellesley=2)\n", + "bikeshare2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And whenever we call a function, we indicate which `System` object to work with:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bike_to_olin(bikeshare1)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bike_to_wellesley(bikeshare2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And you can confirm that the different systems are getting updated independently:" + ] + }, + { + "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", + "
value
olin11
wellesley1
\n", + "
" + ], + "text/plain": [ + "olin 11\n", + "wellesley 1\n", + "dtype: int64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare1" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin9
wellesley3
\n", + "
" + ], + "text/plain": [ + "olin 9\n", + "wellesley 3\n", + "dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Negative bikes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the code we have so far, the number of bikes at one of the locations can go negative, and the number of bikes at the other location can exceed the actual number of bikes in the system.\n", + "\n", + "If you run this simulation a few times, it happens quite often." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "IOPub data rate exceeded.\n", + "The notebook server will temporarily stop sending output\n", + "to the client in order to avoid crashing it.\n", + "To change this limit, set the config variable\n", + "`--NotebookApp.iopub_data_rate_limit`.\n" + ] + } + ], + "source": [ + "bikeshare = System(olin=10, wellesley=2)\n", + "newfig()\n", + "plot_system(bikeshare)\n", + "decorate_bikeshare()\n", + "run_steps(bikeshare, 60, 0.4, 0.2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The variables `olin` and `wellesley` are created inside `move_bike`, so they are local. When the function ends, they go away.\n", + "\n", + "If you try to access a local variable from outside its function, you get an error:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you remove the # from the last line in this cell and run it, you'll get\n", + "# NameError: name 'olin' is not defined\n", + "\n", + "#olin" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Add print statements in `move_bike` so it prints a message each time a customer arrives and doesn't find a bike. Run the simulation again to confirm that it works as you expect. Then you might want to remove the print statements before you go on." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Comparison operators" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `if` statements in the previous section used the comparison operator `<`. The other comparison operators are listed in the book.\n", + "\n", + "It is easy to confuse the comparison operator `==` with the assignment operator `=`.\n", + "\n", + "Remember that `=` creates a variable or gives an existing variable a new value." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "x = 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Whereas `==` compared two values and returns `True` if they are equal." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x == 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can use `==` in an `if` statement." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "yes, x is 5\n" + ] + } + ], + "source": [ + "if x == 5:\n", + " print('yes, x is 5')\n", + "else:\n", + " print('x is not 5')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But if you use `=` in an `if` statement, you get an error." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you remove the # from the if statement and run it, you'll get\n", + "# SyntaxError: invalid syntax\n", + "\n", + "#if x = 5:\n", + "# print('yes, x is 5')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Add an `else` clause to the `if` statement above, and print an appropriate message.\n", + "\n", + "Replace the `==` operator with one or two of the other comparison operators, and confirm they do what you expect." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Metrics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have a working simulation, we'll use it to evaluate alternative designs and see how good or bad they are. The metric we'll use is the number of customers who arrive and find no bikes available, which might indicate a design problem." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we'll make a new `System` object that creates and initializes the system variables that will keep track of the metrics." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we need a version of `move_bike` that updates the metrics." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def move_bike(system, n):\n", + " olin_temp = system.olin - n\n", + " if olin_temp < 0:\n", + " system.olin_empty += 1\n", + " return\n", + " \n", + " wellesley_temp = system.wellesley + n\n", + " if wellesley_temp < 0:\n", + " system.wellesley_empty += 1\n", + " return\n", + " \n", + " system.olin = olin_temp\n", + " system.wellesley = wellesley_temp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now when we run a simulation, it keeps track of unhappy customers." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "for p1 in p1_array:\n", + " system = run_simulation(p1=p1)\n", + " plot(p1, system.olin_empty, 'rs', label='olin')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As always, we should decorate the figure. This version of `decorate_bikeshare` takes `xlabel` as a parameter, for reasons you will see soon." + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def decorate_bikeshare(xlabel):\n", + " decorate(title='Olin-Wellesley Bikeshare',\n", + " xlabel=xlabel, \n", + " ylabel='Number of unhappy customers')" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "decorate_bikeshare(xlabel='Arrival rate at Olin (p1 in customers/min)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Wrap this code in a function named `parameter_sweep` that takes an array called `p1_array` as a parameter. It should create a new figure, run a simulation for each value of `p1` in `p1_array`, and plot the results.\n", + "\n", + "Once you have the function working, modify it so it also plots the number of unhappy customers at Wellesley. Looking at the plot, can you estimate a range of values for `p1` that minimizes the total number of unhappy customers?" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "def parameter_sweep2(p1_array):\n", + " newfig()\n", + " for p1 in p1_array:\n", + " system = run_simulation(p1=p1, p2=0.2)\n", + " plot(p1, system.olin_empty, 'rs', label='olin')\n", + "parameter_sweep2(p1_array)" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on class range in module builtins:\n", + "\n", + "class range(object)\n", + " | range(stop) -> range object\n", + " | range(start, stop[, step]) -> range object\n", + " | \n", + " | Return an object that produces a sequence of integers from start (inclusive)\n", + " | to stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1.\n", + " | start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3.\n", + " | These are exactly the valid indices for a list of 4 elements.\n", + " | When step is given, it specifies the increment (or decrement).\n", + " | \n", + " | Methods defined here:\n", + " | \n", + " | __contains__(self, key, /)\n", + " | Return key in self.\n", + " | \n", + " | __eq__(self, value, /)\n", + " | Return self==value.\n", + " | \n", + " | __ge__(self, value, /)\n", + " | Return self>=value.\n", + " | \n", + " | __getattribute__(self, name, /)\n", + " | Return getattr(self, name).\n", + " | \n", + " | __getitem__(self, key, /)\n", + " | Return self[key].\n", + " | \n", + " | __gt__(self, value, /)\n", + " | Return self>value.\n", + " | \n", + " | __hash__(self, /)\n", + " | Return hash(self).\n", + " | \n", + " | __iter__(self, /)\n", + " | Implement iter(self).\n", + " | \n", + " | __le__(self, value, /)\n", + " | Return self<=value.\n", + " | \n", + " | __len__(self, /)\n", + " | Return len(self).\n", + " | \n", + " | __lt__(self, value, /)\n", + " | Return self integer -- return number of occurrences of value\n", + " | \n", + " | index(...)\n", + " | rangeobject.index(value, [start, [stop]]) -> integer -- return index of value.\n", + " | Raise ValueError if the value is not present.\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Data descriptors defined here:\n", + " | \n", + " | start\n", + " | \n", + " | step\n", + " | \n", + " | stop\n", + "\n" + ] + } + ], + "source": [ + "# Solution goes here\n", + "help(range)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Hold `p1=0.4` and `p2=0.2`, and sweep a range of values for `num_steps`.\n", + "\n", + "Hint: You will need a version of `run_simulation` that takes `num_steps` as a parameter.\n", + "\n", + "Hint: Because `num_steps` is supposed to be an integer use `range` rather than `linrange`." + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "olin_bikes = range(0,20)\n", + "\n", + "def parameter_sweep4(olin_bikes):\n", + " newfig()\n", + " for num in olin_bikes:\n", + " average = run_simulations(40, num)\n", + " plot(num, average, 'rs', label='olin')\n", + "parameter_sweep4(array_steps)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 221, + "metadata": {}, + "outputs": [], + "source": [ + "def decorate_unhappy(xlabel):\n", + " decorate(title='Unhappy customers vs. initial number of bikes at Olin',\n", + " xlabel=xlabel, \n", + " ylabel='Number of unhappy customers')\n", + "decorate_unhappy('Bikes at olin')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From 599ebf6671675f10a3d82c6f8678965b5850a9dc Mon Sep 17 00:00:00 2001 From: dberny <31549375+dberny@users.noreply.github.com> Date: Tue, 19 Sep 2017 16:13:50 -0400 Subject: [PATCH 3/9] adding ch03 mine --- code/chap03mine.ipynb | 3924 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3924 insertions(+) create mode 100644 code/chap03mine.ipynb diff --git a/code/chap03mine.ipynb b/code/chap03mine.ipynb new file mode 100644 index 00000000..654e172f --- /dev/null +++ b/code/chap03mine.ipynb @@ -0,0 +1,3924 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 3: Explain\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# To switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pandas is a module that provides tools for reading and processing data. The `read_html` reads a web page from a file or the Internet and creates one DataFrame for each table on the page." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from pandas import read_html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The data directory contains a downloaded copy of https://en.wikipedia.org/wiki/World_population_estimates" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`tables` is a sequence of DataFrame objects. We can select the DataFrame we want using the bracket operator. The tables are numbered from 0, so `table2` is actually the third table on the page.\n", + "\n", + "`head` selects the header and the first five rows." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
United States Census Bureau (2015)[18]Population Reference Bureau (1973–2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]Maddison (2008)[8]HYDE (2007)[15]Tanton (1994)[9]Biraben (1980)[10]McEvedy & Jones (1978)[11]Thomlinson (1975)[12]Durand (1974)[13]Clark (1967)[14]
Year
195025576286542.516000e+0925251490002.544000e+092.527960e+092.400000e+092.527000e+092.500000e+092.400000e+09NaN2.486000e+09
19512594939877NaN25728509172.571663e+09NaNNaNNaNNaNNaNNaNNaN
19522636772306NaN26192920682.617949e+09NaNNaNNaNNaNNaNNaNNaN
19532682053389NaN26658653922.665959e+09NaNNaNNaNNaNNaNNaNNaN
19542730228104NaN27131720272.716927e+09NaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2015)[18] \\\n", + "Year \n", + "1950 2557628654 \n", + "1951 2594939877 \n", + "1952 2636772306 \n", + "1953 2682053389 \n", + "1954 2730228104 \n", + "\n", + " Population Reference Bureau (1973–2015)[6] \\\n", + "Year \n", + "1950 2.516000e+09 \n", + "1951 NaN \n", + "1952 NaN \n", + "1953 NaN \n", + "1954 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \\\n", + "Year \n", + "1950 2525149000 \n", + "1951 2572850917 \n", + "1952 2619292068 \n", + "1953 2665865392 \n", + "1954 2713172027 \n", + "\n", + " Maddison (2008)[8] HYDE (2007)[15] Tanton (1994)[9] \\\n", + "Year \n", + "1950 2.544000e+09 2.527960e+09 2.400000e+09 \n", + "1951 2.571663e+09 NaN NaN \n", + "1952 2.617949e+09 NaN NaN \n", + "1953 2.665959e+09 NaN NaN \n", + "1954 2.716927e+09 NaN NaN \n", + "\n", + " Biraben (1980)[10] McEvedy & Jones (1978)[11] Thomlinson (1975)[12] \\\n", + "Year \n", + "1950 2.527000e+09 2.500000e+09 2.400000e+09 \n", + "1951 NaN NaN NaN \n", + "1952 NaN NaN NaN \n", + "1953 NaN NaN NaN \n", + "1954 NaN NaN NaN \n", + "\n", + " Durand (1974)[13] Clark (1967)[14] \n", + "Year \n", + "1950 NaN 2.486000e+09 \n", + "1951 NaN NaN \n", + "1952 NaN NaN \n", + "1953 NaN NaN \n", + "1954 NaN NaN " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2 = tables[2]\n", + "table2.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`tail` selects the last five rows." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
United States Census Bureau (2015)[18]Population Reference Bureau (1973–2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]Maddison (2008)[8]HYDE (2007)[15]Tanton (1994)[9]Biraben (1980)[10]McEvedy & Jones (1978)[11]Thomlinson (1975)[12]Durand (1974)[13]Clark (1967)[14]
Year
201169440555836.986951e+096997998760NaNNaNNaNNaNNaNNaNNaNNaN
201270223492837.057075e+097080072417NaNNaNNaNNaNNaNNaNNaNNaN
201371010278957.136796e+097162119434NaNNaNNaNNaNNaNNaNNaNNaN
201471787228937.238184e+097243784000NaNNaNNaNNaNNaNNaNNaNNaN
201572564900117.336435e+097349472000NaNNaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2015)[18] \\\n", + "Year \n", + "2011 6944055583 \n", + "2012 7022349283 \n", + "2013 7101027895 \n", + "2014 7178722893 \n", + "2015 7256490011 \n", + "\n", + " Population Reference Bureau (1973–2015)[6] \\\n", + "Year \n", + "2011 6.986951e+09 \n", + "2012 7.057075e+09 \n", + "2013 7.136796e+09 \n", + "2014 7.238184e+09 \n", + "2015 7.336435e+09 \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \\\n", + "Year \n", + "2011 6997998760 \n", + "2012 7080072417 \n", + "2013 7162119434 \n", + "2014 7243784000 \n", + "2015 7349472000 \n", + "\n", + " Maddison (2008)[8] HYDE (2007)[15] Tanton (1994)[9] \\\n", + "Year \n", + "2011 NaN NaN NaN \n", + "2012 NaN NaN NaN \n", + "2013 NaN NaN NaN \n", + "2014 NaN NaN NaN \n", + "2015 NaN NaN NaN \n", + "\n", + " Biraben (1980)[10] McEvedy & Jones (1978)[11] Thomlinson (1975)[12] \\\n", + "Year \n", + "2011 NaN NaN NaN \n", + "2012 NaN NaN NaN \n", + "2013 NaN NaN NaN \n", + "2014 NaN NaN NaN \n", + "2015 NaN NaN NaN \n", + "\n", + " Durand (1974)[13] Clark (1967)[14] \n", + "Year \n", + "2011 NaN NaN \n", + "2012 NaN NaN \n", + "2013 NaN NaN \n", + "2014 NaN NaN \n", + "2015 NaN NaN " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Long column names are awkard to work with, but we can replace them with abbreviated names." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the DataFrame looks like now. \n", + "\n", + "Some of the values use scientific notation; for example, `2.544000e+09` is shorthand for $2.544 \\cdot 10^9$ or 2.544 billion.\n", + "\n", + "`NaN` is a special value that indicates missing data." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
censusprbunmaddisonhydetantonbirabenmjthomlinsondurandclark
Year
195025576286542.516000e+0925251490002.544000e+092.527960e+092.400000e+092.527000e+092.500000e+092.400000e+09NaN2.486000e+09
19512594939877NaN25728509172.571663e+09NaNNaNNaNNaNNaNNaNNaN
19522636772306NaN26192920682.617949e+09NaNNaNNaNNaNNaNNaNNaN
19532682053389NaN26658653922.665959e+09NaNNaNNaNNaNNaNNaNNaN
19542730228104NaN27131720272.716927e+09NaNNaNNaNNaNNaNNaNNaN
19552782098943NaN27616509812.769074e+09NaNNaNNaNNaNNaNNaNNaN
19562835299673NaN28115720312.822502e+09NaNNaNNaNNaNNaNNaNNaN
19572891349717NaN28630427952.879934e+09NaNNaNNaNNaNNaNNaNNaN
19582948137248NaN29160301672.939254e+09NaNNaNNaNNaNNaNNaNNaN
19593000716593NaN29703958142.995909e+09NaNNaNNaNNaNNaNNaNNaN
19603043001508NaN30260029423.041507e+093.042000e+09NaNNaNNaNNaNNaNNaN
19613083966929NaN30828302663.082161e+09NaNNaNNaNNaNNaNNaNNaN
19623140093217NaN31410715313.135787e+09NaNNaNNaNNaNNaNNaN3.036000e+09
19633209827882NaN32011782773.201354e+09NaNNaNNaNNaNNaNNaNNaN
19643281201306NaN32637388323.266477e+09NaNNaNNaNNaNNaNNaNNaN
19653350425793NaN33291224793.333138e+09NaNNaNNaNNaNNaNNaNNaN
19663420677923NaN33974752473.402224e+09NaNNaNNaNNaNNaNNaN3.288000e+09
19673490333715NaN34685217243.471464e+09NaNNaNNaNNaNNaNNaNNaN
19683562313822NaN35416748913.543086e+09NaNNaNNaNNaNNaNNaNNaN
19693637159050NaN36161087493.615743e+09NaNNaNNaNNaNNaNNaNNaN
19703712697742NaN36911726163.691157e+093.710000e+09NaN3.637000e+09NaN3.600000e+093,600,000,000– 3,700,000,0003.632000e+09
19713790326948NaN37667543453.769818e+09NaNNaNNaNNaNNaNNaNNaN
19723866568653NaN38428736113.846499e+09NaNNaNNaNNaNNaNNaNNaN
19733942096442NaN39191823323.922793e+093.923000e+09NaNNaNNaNNaNNaN3.860000e+09
19744016608813NaN39953049223.997677e+09NaNNaNNaNNaNNaNNaNNaN
19754089083233NaN40710204344.070671e+09NaNNaNNaN3.900000e+094.000000e+09NaNNaN
19764160185010NaN41461358504.141445e+09NaNNaNNaNNaNNaNNaNNaN
19774232084578NaN42208167374.213539e+09NaNNaNNaNNaNNaNNaNNaN
19784304105753NaN42956648254.286317e+09NaNNaNNaNNaNNaNNaNNaN
19794379013942NaN43715278714.363144e+09NaNNaNNaNNaNNaNNaNNaN
....................................
19864940571232NaN49533767104.920968e+09NaNNaNNaNNaNNaNNaNNaN
19875027200492NaN50453158715.006672e+09NaNNaNNaNNaNNaNNaNNaN
19885114557167NaN51382146885.093306e+09NaNNaNNaNNaNNaNNaNNaN
19895201440110NaN52300000005.180540e+09NaNNaNNaNNaNNaNNaNNaN
19905288955934NaN53208166675.269029e+095.308000e+09NaNNaNNaNNaNNaNNaN
19915371585922NaN54089087245.351922e+09NaNNaNNaNNaNNaNNaNNaN
19925456136278NaN54948995705.435722e+09NaNNaNNaNNaNNaNNaNNaN
19935538268316NaN55788651095.518127e+09NaNNaNNaNNaNNaNNaNNaN
19945618682132NaN56610863465.599396e+09NaNNaNNaNNaNNaNNaNNaN
199556992029855.760000e+0957418224125.681575e+09NaNNaNNaNNaNNaNNaNNaN
19965779440593NaN58210167505.762212e+09NaNNaNNaNNaNNaNNaNNaN
199758579725435.840000e+0958986883375.842122e+09NaNNaNNaNNaNNaNNaNNaN
19985935213248NaN59753036575.921366e+09NaNNaNNaNNaNNaNNaNNaN
19996012074922NaN60514780105.999622e+09NaNNaNNaNNaNNaNNaNNaN
200060885713836.067000e+0961277004286.076558e+096.145000e+09NaNNaN5.750000e+09NaNNaNNaN
200161652192476.137000e+0962041470266.154791e+09NaNNaNNaNNaNNaNNaNNaN
200262420163486.215000e+0962808538176.231704e+09NaNNaNNaNNaNNaNNaNNaN
200363185909566.314000e+0963579917496.308364e+09NaNNaNNaNNaNNaNNaNNaN
200463956995096.396000e+0964357055956.374056e+09NaNNaNNaNNaNNaNNaNNaN
200564730447326.477000e+0965140946056.462987e+09NaNNaNNaNNaNNaNNaNNaN
200665512635346.555000e+0965932279776.540214e+09NaNNaNNaNNaNNaNNaNNaN
200766299137596.625000e+0966731059376.616689e+09NaNNaNNaNNaNNaNNaNNaN
200867090497806.705000e+0967536492286.694832e+09NaNNaNNaNNaNNaNNaNNaN
200967882143946.809972e+0968347219336.764086e+09NaNNaNNaNNaNNaNNaNNaN
201068663323586.892319e+096916183482NaNNaNNaNNaNNaNNaNNaNNaN
201169440555836.986951e+096997998760NaNNaNNaNNaNNaNNaNNaNNaN
201270223492837.057075e+097080072417NaNNaNNaNNaNNaNNaNNaNNaN
201371010278957.136796e+097162119434NaNNaNNaNNaNNaNNaNNaNNaN
201471787228937.238184e+097243784000NaNNaNNaNNaNNaNNaNNaNNaN
201572564900117.336435e+097349472000NaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

66 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " census prb un maddison hyde \\\n", + "Year \n", + "1950 2557628654 2.516000e+09 2525149000 2.544000e+09 2.527960e+09 \n", + "1951 2594939877 NaN 2572850917 2.571663e+09 NaN \n", + "1952 2636772306 NaN 2619292068 2.617949e+09 NaN \n", + "1953 2682053389 NaN 2665865392 2.665959e+09 NaN \n", + "1954 2730228104 NaN 2713172027 2.716927e+09 NaN \n", + "1955 2782098943 NaN 2761650981 2.769074e+09 NaN \n", + "1956 2835299673 NaN 2811572031 2.822502e+09 NaN \n", + "1957 2891349717 NaN 2863042795 2.879934e+09 NaN \n", + "1958 2948137248 NaN 2916030167 2.939254e+09 NaN \n", + "1959 3000716593 NaN 2970395814 2.995909e+09 NaN \n", + "1960 3043001508 NaN 3026002942 3.041507e+09 3.042000e+09 \n", + "1961 3083966929 NaN 3082830266 3.082161e+09 NaN \n", + "1962 3140093217 NaN 3141071531 3.135787e+09 NaN \n", + "1963 3209827882 NaN 3201178277 3.201354e+09 NaN \n", + "1964 3281201306 NaN 3263738832 3.266477e+09 NaN \n", + "1965 3350425793 NaN 3329122479 3.333138e+09 NaN \n", + "1966 3420677923 NaN 3397475247 3.402224e+09 NaN \n", + "1967 3490333715 NaN 3468521724 3.471464e+09 NaN \n", + "1968 3562313822 NaN 3541674891 3.543086e+09 NaN \n", + "1969 3637159050 NaN 3616108749 3.615743e+09 NaN \n", + "1970 3712697742 NaN 3691172616 3.691157e+09 3.710000e+09 \n", + "1971 3790326948 NaN 3766754345 3.769818e+09 NaN \n", + "1972 3866568653 NaN 3842873611 3.846499e+09 NaN \n", + "1973 3942096442 NaN 3919182332 3.922793e+09 3.923000e+09 \n", + "1974 4016608813 NaN 3995304922 3.997677e+09 NaN \n", + "1975 4089083233 NaN 4071020434 4.070671e+09 NaN \n", + "1976 4160185010 NaN 4146135850 4.141445e+09 NaN \n", + "1977 4232084578 NaN 4220816737 4.213539e+09 NaN \n", + "1978 4304105753 NaN 4295664825 4.286317e+09 NaN \n", + "1979 4379013942 NaN 4371527871 4.363144e+09 NaN \n", + "... ... ... ... ... ... \n", + "1986 4940571232 NaN 4953376710 4.920968e+09 NaN \n", + "1987 5027200492 NaN 5045315871 5.006672e+09 NaN \n", + "1988 5114557167 NaN 5138214688 5.093306e+09 NaN \n", + "1989 5201440110 NaN 5230000000 5.180540e+09 NaN \n", + "1990 5288955934 NaN 5320816667 5.269029e+09 5.308000e+09 \n", + "1991 5371585922 NaN 5408908724 5.351922e+09 NaN \n", + "1992 5456136278 NaN 5494899570 5.435722e+09 NaN \n", + "1993 5538268316 NaN 5578865109 5.518127e+09 NaN \n", + "1994 5618682132 NaN 5661086346 5.599396e+09 NaN \n", + "1995 5699202985 5.760000e+09 5741822412 5.681575e+09 NaN \n", + "1996 5779440593 NaN 5821016750 5.762212e+09 NaN \n", + "1997 5857972543 5.840000e+09 5898688337 5.842122e+09 NaN \n", + "1998 5935213248 NaN 5975303657 5.921366e+09 NaN \n", + "1999 6012074922 NaN 6051478010 5.999622e+09 NaN \n", + "2000 6088571383 6.067000e+09 6127700428 6.076558e+09 6.145000e+09 \n", + "2001 6165219247 6.137000e+09 6204147026 6.154791e+09 NaN \n", + "2002 6242016348 6.215000e+09 6280853817 6.231704e+09 NaN \n", + "2003 6318590956 6.314000e+09 6357991749 6.308364e+09 NaN \n", + "2004 6395699509 6.396000e+09 6435705595 6.374056e+09 NaN \n", + "2005 6473044732 6.477000e+09 6514094605 6.462987e+09 NaN \n", + "2006 6551263534 6.555000e+09 6593227977 6.540214e+09 NaN \n", + "2007 6629913759 6.625000e+09 6673105937 6.616689e+09 NaN \n", + "2008 6709049780 6.705000e+09 6753649228 6.694832e+09 NaN \n", + "2009 6788214394 6.809972e+09 6834721933 6.764086e+09 NaN \n", + "2010 6866332358 6.892319e+09 6916183482 NaN NaN \n", + "2011 6944055583 6.986951e+09 6997998760 NaN NaN \n", + "2012 7022349283 7.057075e+09 7080072417 NaN NaN \n", + "2013 7101027895 7.136796e+09 7162119434 NaN NaN \n", + "2014 7178722893 7.238184e+09 7243784000 NaN NaN \n", + "2015 7256490011 7.336435e+09 7349472000 NaN NaN \n", + "\n", + " tanton biraben mj thomlinson \\\n", + "Year \n", + "1950 2.400000e+09 2.527000e+09 2.500000e+09 2.400000e+09 \n", + "1951 NaN NaN NaN NaN \n", + "1952 NaN NaN NaN NaN \n", + "1953 NaN NaN NaN NaN \n", + "1954 NaN NaN NaN NaN \n", + "1955 NaN NaN NaN NaN \n", + "1956 NaN NaN NaN NaN \n", + "1957 NaN NaN NaN NaN \n", + "1958 NaN NaN NaN NaN \n", + "1959 NaN NaN NaN NaN \n", + "1960 NaN NaN NaN NaN \n", + "1961 NaN NaN NaN NaN \n", + "1962 NaN NaN NaN NaN \n", + "1963 NaN NaN NaN NaN \n", + "1964 NaN NaN NaN NaN \n", + "1965 NaN NaN NaN NaN \n", + "1966 NaN NaN NaN NaN \n", + "1967 NaN NaN NaN NaN \n", + "1968 NaN NaN NaN NaN \n", + "1969 NaN NaN NaN NaN \n", + "1970 NaN 3.637000e+09 NaN 3.600000e+09 \n", + "1971 NaN NaN NaN NaN \n", + "1972 NaN NaN NaN NaN \n", + "1973 NaN NaN NaN NaN \n", + "1974 NaN NaN NaN NaN \n", + "1975 NaN NaN 3.900000e+09 4.000000e+09 \n", + "1976 NaN NaN NaN NaN \n", + "1977 NaN NaN NaN NaN \n", + "1978 NaN NaN NaN NaN \n", + "1979 NaN NaN NaN NaN \n", + "... ... ... ... ... \n", + "1986 NaN NaN NaN NaN \n", + "1987 NaN NaN NaN NaN \n", + "1988 NaN NaN NaN NaN \n", + "1989 NaN NaN NaN NaN \n", + "1990 NaN NaN NaN NaN \n", + "1991 NaN NaN NaN NaN \n", + "1992 NaN NaN NaN NaN \n", + "1993 NaN NaN NaN NaN \n", + "1994 NaN NaN NaN NaN \n", + "1995 NaN NaN NaN NaN \n", + "1996 NaN NaN NaN NaN \n", + "1997 NaN NaN NaN NaN \n", + "1998 NaN NaN NaN NaN \n", + "1999 NaN NaN NaN NaN \n", + "2000 NaN NaN 5.750000e+09 NaN \n", + "2001 NaN NaN NaN NaN \n", + "2002 NaN NaN NaN NaN \n", + "2003 NaN NaN NaN NaN \n", + "2004 NaN NaN NaN NaN \n", + "2005 NaN NaN NaN NaN \n", + "2006 NaN NaN NaN NaN \n", + "2007 NaN NaN NaN NaN \n", + "2008 NaN NaN NaN NaN \n", + "2009 NaN NaN NaN NaN \n", + "2010 NaN NaN NaN NaN \n", + "2011 NaN NaN NaN NaN \n", + "2012 NaN NaN NaN NaN \n", + "2013 NaN NaN NaN NaN \n", + "2014 NaN NaN NaN NaN \n", + "2015 NaN NaN NaN NaN \n", + "\n", + " durand clark \n", + "Year \n", + "1950 NaN 2.486000e+09 \n", + "1951 NaN NaN \n", + "1952 NaN NaN \n", + "1953 NaN NaN \n", + "1954 NaN NaN \n", + "1955 NaN NaN \n", + "1956 NaN NaN \n", + "1957 NaN NaN \n", + "1958 NaN NaN \n", + "1959 NaN NaN \n", + "1960 NaN NaN \n", + "1961 NaN NaN \n", + "1962 NaN 3.036000e+09 \n", + "1963 NaN NaN \n", + "1964 NaN NaN \n", + "1965 NaN NaN \n", + "1966 NaN 3.288000e+09 \n", + "1967 NaN NaN \n", + "1968 NaN NaN \n", + "1969 NaN NaN \n", + "1970 3,600,000,000– 3,700,000,000 3.632000e+09 \n", + "1971 NaN NaN \n", + "1972 NaN NaN \n", + "1973 NaN 3.860000e+09 \n", + "1974 NaN NaN \n", + "1975 NaN NaN \n", + "1976 NaN NaN \n", + "1977 NaN NaN \n", + "1978 NaN NaN \n", + "1979 NaN NaN \n", + "... ... ... \n", + "1986 NaN NaN \n", + "1987 NaN NaN \n", + "1988 NaN NaN \n", + "1989 NaN NaN \n", + "1990 NaN NaN \n", + "1991 NaN NaN \n", + "1992 NaN NaN \n", + "1993 NaN NaN \n", + "1994 NaN NaN \n", + "1995 NaN NaN \n", + "1996 NaN NaN \n", + "1997 NaN NaN \n", + "1998 NaN NaN \n", + "1999 NaN NaN \n", + "2000 NaN NaN \n", + "2001 NaN NaN \n", + "2002 NaN NaN \n", + "2003 NaN NaN \n", + "2004 NaN NaN \n", + "2005 NaN NaN \n", + "2006 NaN NaN \n", + "2007 NaN NaN \n", + "2008 NaN NaN \n", + "2009 NaN NaN \n", + "2010 NaN NaN \n", + "2011 NaN NaN \n", + "2012 NaN NaN \n", + "2013 NaN NaN \n", + "2014 NaN NaN \n", + "2015 NaN NaN \n", + "\n", + "[66 rows x 11 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use dot notatio to select a column from a DataFrame. The result is a Series." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2557628654\n", + "1951 2594939877\n", + "1952 2636772306\n", + "1953 2682053389\n", + "1954 2730228104\n", + "1955 2782098943\n", + "1956 2835299673\n", + "1957 2891349717\n", + "1958 2948137248\n", + "1959 3000716593\n", + "1960 3043001508\n", + "1961 3083966929\n", + "1962 3140093217\n", + "1963 3209827882\n", + "1964 3281201306\n", + "1965 3350425793\n", + "1966 3420677923\n", + "1967 3490333715\n", + "1968 3562313822\n", + "1969 3637159050\n", + "1970 3712697742\n", + "1971 3790326948\n", + "1972 3866568653\n", + "1973 3942096442\n", + "1974 4016608813\n", + "1975 4089083233\n", + "1976 4160185010\n", + "1977 4232084578\n", + "1978 4304105753\n", + "1979 4379013942\n", + " ... \n", + "1986 4940571232\n", + "1987 5027200492\n", + "1988 5114557167\n", + "1989 5201440110\n", + "1990 5288955934\n", + "1991 5371585922\n", + "1992 5456136278\n", + "1993 5538268316\n", + "1994 5618682132\n", + "1995 5699202985\n", + "1996 5779440593\n", + "1997 5857972543\n", + "1998 5935213248\n", + "1999 6012074922\n", + "2000 6088571383\n", + "2001 6165219247\n", + "2002 6242016348\n", + "2003 6318590956\n", + "2004 6395699509\n", + "2005 6473044732\n", + "2006 6551263534\n", + "2007 6629913759\n", + "2008 6709049780\n", + "2009 6788214394\n", + "2010 6866332358\n", + "2011 6944055583\n", + "2012 7022349283\n", + "2013 7101027895\n", + "2014 7178722893\n", + "2015 7256490011\n", + "Name: census, Length: 66, dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census = table2.census\n", + "census" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A Series object has two parts, `values` and `index`.\n", + "\n", + "The `values` part is an array." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2557628654, 2594939877, 2636772306, 2682053389, 2730228104,\n", + " 2782098943, 2835299673, 2891349717, 2948137248, 3000716593,\n", + " 3043001508, 3083966929, 3140093217, 3209827882, 3281201306,\n", + " 3350425793, 3420677923, 3490333715, 3562313822, 3637159050,\n", + " 3712697742, 3790326948, 3866568653, 3942096442, 4016608813,\n", + " 4089083233, 4160185010, 4232084578, 4304105753, 4379013942,\n", + " 4451362735, 4534410125, 4614566561, 4695736743, 4774569391,\n", + " 4856462699, 4940571232, 5027200492, 5114557167, 5201440110,\n", + " 5288955934, 5371585922, 5456136278, 5538268316, 5618682132,\n", + " 5699202985, 5779440593, 5857972543, 5935213248, 6012074922,\n", + " 6088571383, 6165219247, 6242016348, 6318590956, 6395699509,\n", + " 6473044732, 6551263534, 6629913759, 6709049780, 6788214394,\n", + " 6866332358, 6944055583, 7022349283, 7101027895, 7178722893,\n", + " 7256490011], dtype=int64)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census.values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `index` part is yet another kind of object, an `Int64Index`." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Int64Index([1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960,\n", + " 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971,\n", + " 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,\n", + " 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,\n", + " 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,\n", + " 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015],\n", + " dtype='int64', name='Year')" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census.index" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you ever wonder what kind of object a variable refers to, you can use the `type` function.\n", + "\n", + "The result indicates what type the object is, and the module where that type is defined.\n", + "\n", + "DataFrame, Series, and Int64Index are defined by Pandas.\n", + "\n", + "array is defined by NumPy." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.frame.DataFrame" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(table2)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.series.Series" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(census)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.indexes.numeric.Int64Index" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(census.index)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(census.values)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function plots the estimates generated by the US Censis and UN DESA, and labels the axes.\n", + "\n", + "`1e9` is scientific notation for $1 \\cdot 10^9$ or 1 billion." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_estimates(table):\n", + " \"\"\"Plot world population estimates.\n", + " \n", + " table: DataFrame with columns 'un' and 'census'\n", + " \"\"\"\n", + " un = table.un / 1e9\n", + " census = table.census / 1e9\n", + " \n", + " plot(census, ':', color='darkblue', label='US Census')\n", + " plot(un, '--', color='green', label='UN DESA')\n", + " \n", + " decorate(xlabel='Year',\n", + " ylabel='World population (billion)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can plot the estimates." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEPCAYAAACqZsSmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdUFdf6//H3oXepggg2BHuhqGAh9hqJJZoI9l7Sbkyu\nJvFrmteSxNi9aqyJMYmaYIlRkxi714YYxVCsKCpVeoczvz/8ebxcJB4UOJTntRZrwZ4zM88ofM6c\nmT17qxRFURBCCFGj6Om6ACGEEBVPwl8IIWogCX8hhKiBJPyFEKIGMtB1AdrIyckhLCwMBwcH9PX1\ndV2OEEJUeoWFhSQkJNCyZUtMTEyKLa8S4R8WFkZQUJCuyxBCiCrn22+/xcfHp1h7lQh/BwcH4OFB\nODk56bgaIYSo/GJjYwkKCtLk5/+qEuH/6FKPk5MTLi4uOq5GCCGqjpIulcsNXyGEqKLupd8jPjP+\nmdaV8BdCiCroRvINPj/5OUtPLyUlJ6XU60v4CyFEFROVFMWS/ywhKz+LpKwk1oWso7Qj9Uj4CyFE\nFeNg5oClsSUAlsaWjGg5ApVKVaptSPgLIUQVY2Nqw1u+b1HHzJVBtSfgWsu11NuQ8BdCiEouvzC/\n2GWd2ua1mdvtfaKvKGRm5pV6mxL+QghRiUWnRPPJ0U84dedUsWV6enoMHOjGwYO3Sr3dKtHPXwgh\nahq1oubX67+yO2I3akXNd5e/I/22JX06tSpyfd/KyphBg9xLvX0JfyGEqGSSs5PZdHETkYmRAGRm\n5XMjKpnY2FNYG9jj6+tc5PV6eqW72QsS/kIIUamE3g/l6z+/Jis/S9NWmGhD43t9MVVb8/33ETRt\naou1dfHB2kpDwl8IISqB3IJcdvy1g+PRxzVtKpWKfo370atnX+b/6xzJyTn0798IKyvj596fhL8Q\nQujYndQ7rL+wntiMWBQe9uqxNbVlgucE3O0eXs+fOLEVRkb6ODtblMk+K7S3z5kzZ2jSpMkTv0aP\nHl2RpVQ63bt3Z/Xq1Voty83NZfny5fTp04eWLVvSoUMHpk2bRlhY2FP3k5GRwdKlS+nXrx9t2rTB\n39+fmTNncvPmzTI7FiGE9tSKmjXn1xCbEUtuXiFXwpIwS27I3BfmaoIfoEGDWmUW/FDB4e/p6cmJ\nEyeKfC1atAg9PT0mTZpUkaVUae+//z4HDhzggw8+4MCBA2zYsAFTU1NGjhzJ9evXS1wvMTGRIUOG\ncOTIEWbOnMnPP//MsmXLSE9P59VXX+Xq1asVeBRCCAA9lR6j2owiK6uAP0MeYH+3M7mnvXkQV1i+\n+y3Xrf8PIyMjHBwcNF8mJiZ88cUXTJgwgS5dulRkKVVWRkYG+/bt45133sHf3x8XFxdatmzJ559/\njp2dHdu3by9x3Y8++ghFUdi6dSs9e/bE1dUVT09PVq1ahaOjI4sWLarAIxFCPNLUvinj24+iv8Uk\nnPJboKhVREY+KNd96vQhr9WrV2NkZMSMGTN0WUaVo6enx4kTJygsfHxmoK+vz5YtW5g8efIT10lI\nSODQoUOMGTMGC4uiHx0NDQ1ZvHgxc+bM0bRFRUUxYcIEzaWhuXPnkpaWplnevXt3Nm7cyNSpU2nT\npg2dOnVi5cqVmuWJiYm89tprtG/fnrZt2zJ27FjCw8M1y5s0acLu3buL1PHfbTdu3GD8+PF4eXnh\n7e3N9OnTiYmJeYZ/LSEqj/zCfL4P+56w+OKXaLs17MobE/ypU8ect9/2pkeP+uVai87CPykpia1b\ntzJjxgxMTU3LZR97915nypRfmTLlV/buLX45ZMeOSM3y3367VWz51q1/aZYfP148eNavv6RZfvbs\n/fI4hGIsLCwIDAzk22+/xd/fn3/+85/s2LGDe/fu4eLigp2d3RPXCw8PR61W06ZNmycud3d3p0GD\nBgDExcUxatQoPDw8CA4OZvny5Vy7do3XXnutyDrLli2jW7du/Pzzz4wdO5YVK1Zw/vx5AD7++GMK\nCgr47rvv+OmnnzA3N+f111/X+jjfeecdnJ2dCQ4O5ttvvyU5OZn3339f6/WFqGzupd9j/vH5HL55\nmPXnN3LkP8Uvszo6mvPhhx3x8LAt93pK1dsnJyeHuLg40tPTsbGxwcHBASMjo2fa8XfffYednR0B\nAQHPtH5NNmfOHFq3bs3OnTv55Zdf2L17NyqVit69e/Ovf/0LS0vLYus8Omu3srJ66va3bduGi4sL\ns2bN0rQtWbIEf39/QkND8fT0BKBbt2688sorAEyaNIl169Zx8eJFfHx8iI6OpkmTJri4uGBsbMwn\nn3zCtWvXUKvV6Ok9/ZwjOjqaTp06UbduXQwMDPj8889JTEzU6t9HiMpEURSO3DrCzr92UqAuIDUt\nl7OR94lM2Y6TzVSaNi16wlba0Tmf1VPDPy8vj507d/Lzzz9z6dKlYpca2rdvT58+fRg8eHCp3gj2\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_estimates(table2)\n", + "savefig('chap03-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From here on, we will work in units of billions." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "un = table2.un / 1e9" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "census = table2.census / 1e9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This expression computes the elementwise differences between the series, then divides through by the UN value to produce relative errors, then finds the largest element.\n", + "\n", + "So the largest relative error between the estimates is about 1.3%." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.2862470293832287" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "max(abs(census - un) / un) * 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Break down that expression into smaller steps and display the intermediate results, to make sure you understand how it works.\n", + "\n", + "Where in the series is the largest relative error between the two estimates, near the beginning or the end?\n", + "\n", + "When I computed relative errors, I used `un` as the denominator. But that was an arbitraty choice. What happens if we use `census` instead? How much difference does it make." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "percent_difference = ((census-un)/un)*100\n", + "#percent_difference" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "abs_difference = abs(percent_difference)\n", + "#abs_difference" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1.2862470293832287" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "max_difference = max(abs_difference)\n", + "max_difference\n", + "#biggest difference was 1.286%, in the first year (1950)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.2813631502151765" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "percent_difference = ((census-un)/census)*100\n", + "abs_difference = abs(percent_difference)\n", + "max_difference = max(abs_difference)\n", + "max_difference\n", + "#largest difference is almost the same when using census as the denominator, 1.281 instead of 1.286" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Constant growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can select an element from a series using bracket notation and one of the elements from the index. Here's the first element:" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.5576286540000002" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census[1950]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the last element." + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7.2564900110000004" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census[2015]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But we can get the first and last years from the index itself:" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1950, 2015)" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_year = census.index[0]\n", + "last_year = census.index[-1]\n", + "first_year, last_year" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And use them to look up the first and last elements.\n", + "\n", + "Then we can compute the average annual growth in billions of people per year." + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.07229017472307693" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total_growth = census[last_year] - census[first_year]\n", + "elapsed_time = last_year - first_year\n", + "annual_growth = total_growth / elapsed_time\n", + "annual_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's create a `TimeSeries` to contain values generated by a linear growth model." + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "results = TimeSeries()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initially the Series is empty, but we can initialize it so the starting value, in 1950, is the 1950 population estimated by the US Census." + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
19502.557629
\n", + "
" + ], + "text/plain": [ + "1950 2.557629\n", + "dtype: float64" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[1950] = census[1950]\n", + "results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After that, the population in the model grows by a constant amount each year." + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [], + "source": [ + "for t in linrange(1950, 2015):\n", + " results[t+1] = results[t] + annual_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the results looks like, compared to the actual data." + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEPCAYAAACqZsSmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdY1eX7wPH3Oey9l4AgyHAACuLI3Ks0bSha4PqW2zaV\n1devWTlLy52iOdJsmJqpZdNRlguVJSAgoqCy92Gd8fvDH0dPgB6QofK8rsvrguez7oNwn895Ps/9\nPBKVSqVCEARBaFWkLR2AIAiC0PxE8hcEQWiFRPIXBEFohUTyFwRBaIV0WzoAbZSXlxMbG4udnR06\nOjotHY4gCMJ9T6FQkJ2dTefOnTE0NKyx/YFI/rGxsYSFhbV0GIIgCA+cL7/8km7dutVofyCSv52d\nHXDzRTg6OrZwNIIgCPe/GzduEBYWps6f//ZAJP/qrh5HR0dcXFxaOBpBEIQHR11d5eKBryAIQisk\nkr8gCMIDKjMzk6tXrzboWJH8BUEQHlDGxsZcuHCBsrKyeh8rkr8gCMJ96lL+JdIK0urcbmZmhru7\nO0lJSfU+9wPxwFcQBKG1SchJYN3pdehKdXnzkTcxUZlQUlJCmzZtNPbz8vJCqVTW+/wi+QuCINxH\nVCoVv176lb3xe1GqlJSrylnwxQq6GgTi7GyOpaUlxsbG6v2lUilSaf07cUTyFwRBuE8UVRSx+dxm\n4rPjAVCVSJAnG2Fa4kSypAALC33i4uIIDg6+52uJ5C8IgnAfiM2KZev5rRRXFIMSjAqMsK6wplJh\nS6VKglKl5MYNFY8/3qFRrieSvyAIQguSK+Xsjd/Lb5d+A0BXpotxvjFtTdri5uSGzFzOuXM5+Pl1\nYty4nujpNc78ZiL5C4IgtJDMkkw2nd3ElcIrSBQSdLP0sVSa42Pjg6WhJQCenq4MGDAIBweLRr22\nSP6CIAgtJLcslyuFV1AolMgT9NArNsarQ2csDU0wMDDAz88PR0dHJBJJo19bjPMXBEFoIR3tOjKs\n/TAupRRTcqMtVlVuXEoqxsnJmQEDBuDk5NQkiR+aOfmfPHkSHx+fWv9NnDixOUO57wwcOJB169Zp\nta2iooJVq1YxbNgwOnfuTI8ePZg5cyaxsbF3vU5JSQkrVqzg8ccfJyAggL59+xIeHk5qamqjvRZB\nEGpXpagCbg7nrPakz5OsGrMQZ1V3KiqssLfvQMeOfujp6TVpLM3a7dO1a1f++usvjbbjx4/zzjvv\nMHXq1OYM5YH27rvvEh8fz3//+188PDwoKChg8+bNjB8/nt27d+Pp6VnrcTk5OYSGhmJsbEx4eDg+\nPj7k5OTw2Wef8eyzz7Jjxw68vLya+dUIwsOveuz+4dTDvBTwEsnxyXh5eeHk5ISOVIfObp6MH2+M\nUtmB7t2bppvn35r1zl9fXx87Ozv1P0NDQ5YtW8YLL7xAnz59mjOUB1ZJSQkHDx7kjTfeoG/fvri4\nuNC5c2c+/vhjbGxs+Pbbb+s8dv78+ahUKnbs2MHgwYNxdXWla9eurF27FgcHB5YuXdqMr0QQWoei\niiJWn1rN7rjdlF4vZfWOjaSmZhIbG0tVVZV6v+BgJ3r0aLpunn9r0T7/devWoa+vz+zZs1syjAeO\nVCrlr7/+QqFQqNt0dHTYtm0b06ZNq/WY7Oxsfv/9dyZNmoSpqanGNj09PZYvX87cuXPVbRcvXuSF\nF15Qdw3NmzePoqIi9faBAweyefNmZsyYQUBAAL1792bNmjXq7Tk5Obz44ot0796dLl26MHnyZOLj\n49XbfXx82Ldvn0Yct7ddunSJ559/nsDAQIKCgpg1axbp6ekN+GkJQsu5kH2BD49+SMKVBIzTTZBd\nhsycYhIuZlNaWk5+fn6LxdZiyT83N5cdO3Ywe/ZsjIyMmuQa+/enMH36L0yf/gv796fU2L5rV6J6\n+6+/Xq6xfceOC+rtf/5ZM/Fs2hSt3n7q1PWmeAk1mJqaEhoaypdffknfvn1566232LVrF9euXcPF\nxQUbG5taj4uPj0epVBIQEFDrdi8vL9zd3YGb08ROmDABb29v9u7dy6pVq0hOTubFF1/UOGblypUM\nGDCAAwcOMHnyZFavXs2ZM2cAeP/995HL5Xz11Vfs2bMHExMTXnrpJa1f5xtvvEGbNm3Yu3cvX375\nJfn5+bz77rtaHy8ILUmulLP7wm5W/b2KqmtVmGaZoqPQwajSBpsqDyrKjJHJXLG3t2+xGOvV519e\nXk5mZibFxcVYWVlhZ2eHvr5+gy781VdfYWNjw6hRoxp0fGs2d+5c/P39+e677/jxxx/Zt28fEomE\noUOHsnDhQszMzGocU33Xbm5uftfz79y5ExcXF+bMmaNu+/TTT+nbty/nzp2ja9euAAwYMIBx48YB\nMHXqVCIiIjh//jzdunUjLS0NHx8fXFxcMDAw4IMPPiA5ORmlUqnVPCRpaWn07t0bZ2dndHV1+fjj\nj8nJydHq5yMILSmrNItNZzeRcS0DszwzJEoJ+lJ9fOx9kFqbcuKEkr59O/HUUy37fO2uyb+yspLv\nvvuOAwcOEB0dXaOroXv37gwbNoynn366Xm8EP/zwA88880yTP9F+UOjq6tY5M59SqURXV/O/atSo\nUYwaNQqZTEZkZCQ//fQTe/fuRSqVsmLFihrnsLKyAqCwsPCuscTHxxMfH69O8rdLSUlRt1d/Uqhm\nZmam7sOcNWsWc+bM4ZdffiE4OJi+ffsycuRIrSegeuWVV1i6dCk7d+6kZ8+e9O/fnxEjRmh1rCC0\nlJPpJ9l5fifSLClGpcZIpBKsDK3wsfWhrXNbOnfuzJAhCuztTVo61Dsn/z179rB8+XIqKysZMGAA\njz32GM7OzhgbG1NYWMiNGzc4e/Ysn3zyCWvWrOHll18mJCTkrhdNSkoiLS2tyf+YR470ZOTI2ke+\nAISE+BAS4lPn9vHjOzJ+fMc6t0+Z4s+UKf73FGM1c3NzSkpKat1WWFiIpeXNar+TJ09y5MgR9V25\nsbExffr0oU+fPtja2rJ9+/Zaz9G5c2d0dXU5f/48/v41Y96/fz+///47S5cuRU9Pj969e2s8A6hm\nbW2t/rq2N/vqIWyPPfYYjzzyCEePHuXvv/9m3bp1bNiwgX379mFra1vjOLlcrvH9xIkTGT58OIcP\nH+bvv/9m8eLFbN68mX379jX406YgNKWk3CQ2n9uMqgrIMqCitIpAjw50cPbCz88PJycnAAwNWzbO\nanUm/+nTp5OXl8f7779P37596/yDmzx5MpWVlRw6dIgtW7bwyy+/sHHjxjte9MyZM9jZ2dU5JLE1\n6tSpE+fOnavRnpCQgEwmw8/PD7g52mfz5s088cQTdOrUSWNfMzOzOvv8LSwsGDJkCNu2bWP06NGY\nmNy686ioqGDjxo1YW1tjYGBA+/bt2b9/P23atFF/Mrt69SoLFiwgPDy81m6l28nlcpYvX86oUaMY\nOXIkI0eOJDc3l0ceeYRTp04xfPhw9PT0NN7s0tJuLViRn5/PmjVrmDp1KiEhIYSEhBAdHU1ISAgJ\nCQm1vnkJQktrb92eYOdgvvjtEPr5FvjRidLrTvQL7Y+Bwf13w1LnZ/DHH3+cXbt2MXjw4Lveaenr\n6zNq1Cj27NnD8OHD73rR+Ph4vL296x/tQ2zChAlcuHCBefPmkZCQwJUrV/jtt9947bXXGDBgAB06\n3JzJb8CAAQQHBzN9+nR27dpFWloaiYmJfP3112zYsOGOI6fefvttVCoVYWFh/PHHH1y9epUTJ04w\nZcoUMjMzmTdvHgDjx4+nqKiIt99+m8TERGJiYnj99de5fPlyja6e2ujq6hIXF8e8efOIiori6tWr\nfPPNN+jp6anfsLp06cK3335LQkICcXFxvPfee+rfMwsLC44dO6b+WaSlpbFnzx7Mzc1p167dPf6k\nBaHxKJVK9bMoiURCmF8Yz/UcRbuip6ko9sLMzB2lsnmGbtZXnXf+Tz31VL1PJpFIePrpp++6X1ZW\nFhYWjTtJ0YOuffv2fPnll6xZs4ZJkyYhk8lwdHRk+PDhGgldKpUSERHBpk2b2Lp1KwsWLEAikeDr\n68uiRYsYOnRonddwdHTkm2++YcOGDSxatIisrCysra3p3r07CxcupG3btgDY2dmxZcsWli1bxtix\nYzE0NKRHjx6sXLlS6y6X5cuXs2jRIqZPn05paSleXl6sXbsWNzc34GbNwfz58wkJCcHe3p5XXnmF\nzMxM9WvcsGEDS5YsYcKECVRWVuLn58fnn39+108dgtAcCssL2XN+D+7l7pSWlNK7d2+srKww0jNi\nZt+J/FpxGQMDHfr0cWm2cfv1JVHdXmd8F4mJiZSVldX6YDIwMLBRA7tdeno6gwYN4vfff8fFxaXJ\nriMIgnA356+d56ujX6HMU2Ikt6aDvTdOTjb07du3QStqNZW75U2thnrGxsbyyiuvcO3atRrbVCoV\nEolEo4BHEAThYVOlqGLnyZ3ExMRApYTCggoyK9KR55nRtavffXuHXxetkv/ChQuRSqUsXrwYR0fH\n++rdTRAEoaldybvCll+2UJpbihQpcqUSeaUUk/J25Je2IyVFB1/fhzD5x8XF8cknnzB48OCmjkcQ\nBOG+oVQqOXjuIH+d+QuV/FYPuaOlPX08HuXQgWIGDXJj6FD3lguygbRK/tbW1ujoNM7SYYIgCA+C\n4opiNv6ykRtXbqBSgUQCUomUAM8Anur7FIaGhnTrUoyr692r5u9HWiX/5557joiICHr27Nlk8/AI\ngiDcL7JKs/j4+McUVxUjKTGkTCbHzcWWMQNH4+fpp97vQU38oGXyz8jIIDk5mUcffRRvb+8abwAS\niYTPP/+8SQIUBEFobrbGtjiaOnLiXCr6BQbYyz2wrXyMzh6dWzq0RqNV8k9NTcXX11f9/e1zUAuC\nIDzolEolly5dQkdHh3bt2iGVSHm+6/Mkp18n56gX5vJ2lMukVFQoMDR8OJY+1+pV1DVfjCAIwoMu\nPz+fQ8cPYaoyRUdHBwcHB4yNjbEysmJdyMfsIhEzM32GDWuHVPpgjei5k3q9hSUnJ3Pq1ClKSkqw\nsrIiKCgIDw+PpopNEAShySgUCs7HnufXyF/JK8vDRqcNHjZuXLp0ic6db3bvSCQSxo71vcuZHkxa\nJX+lUsm8efPYvXu3xsLDEomEJ598ksWLFz9wBQ73m4EDBzJmzBhmzZp1x23VVXvDhw/n008/rbGv\nj48PH330EU8++WSNbdXH3s7Q0BB3d3fGjh1LaGio+v9xz549vPPOO3XGu3LlSh577DHg5jTPq1at\n4uTJk5SUlODk5MSQIUOYNWtWjVXD4OakgUeOHOHbb7+tc3EZQWhK2dnZ/PbPb8RmxFKpqKK4uIJr\npRcpyrPlmWfqnsn3YaJV8o+IiOD7778nPDyckSNHYmtrS3Z2Nvv372fVqlV4enqKBdib2Y8//siI\nESMaVHuxbt06/P39UalUFBcXc/jwYZYsWUJ6errGAi46OjocPXq01nNUz82UnZ1NaGgogwcPZsuW\nLZiZmZGYmMjixYuJjY3liy++0DguOzubv/76C3d3d7755huR/IVmVVlZSXRsNH/G/Mn1kpur78nl\nSm6UFFNR6oxRtg2HD19l8GC3Fo606WmV/L/77jtmzJjBlClT1G2Ojo5MnTqViooKvvvuO5H8m5mr\nqyvz588nODi43pPkWVhYYGdnB4C9vT2enp7o6uqydOlSRo8eTfv27dX7Vu9Xl0OHDgE3q8Crubi4\nYGJiwqRJk0hISNAYLPDDDz9gb29PWFgYn376Ke+++26tnw4EoTGpVCquX7/O8cjjxF6LpUxedrNd\nqsLQVY+hbcYS9buULl3s6dHDqYWjbR5azdOQnZ1NUFBQrdsCAwO5fr151q8VbnnzzTepqqpi8eLF\njXK+kJAQ9PX1+emnn+p1nFQqpbi4mMjISI324OBgDhw4UGMK5u+//56ePXsyZMgQysrK+OGHH+45\ndkG4G4VSwYG/D3Dmyhl14q8yqsKjiwdzR85lxphhzJgRwIwZAZiZ3X9z7zcFre78XV1dOXfuHL16\n9aqx7dy5c3e9O2wp+xP3c+DiAa327ePWh/H+4zXadkTv4M+0P7U6/gnvJxjpM7LeMTaUjY0N77zz\nDnPmzGH48OH07dv3ns5nYmKCi4sLFy9erNdxI0aM4PPPPyc0NJROnTrRo0cPevToQc+ePfHy0lyj\nNCYmhosXLxIeHo6TkxNdunRh165dhIaG3lPsgnAnheWFrD+znjRVGlKZAUWyCqw7GvBsr3H0cO6h\nfs7VtatDC0favLS68x8zZgzr169n69atZGVloVQqycrKYsuWLWzYsIFnnnmmqeMUavHUU0/Rv39/\n5s2bV+cSkPXx76UkFQoFXbt2rfFv4MCB6n0sLS3ZvXs306ZNo7S0lM2bNzN9+nR69+7NV199pXH+\nvXv3Ym5uziOPPALcfOO4cOEC0dHR9xy7INyurKxMPTjFWM+YMnkZcZezOJ+bQVJRFR0rxtLTpWer\nHqii1Z3/hAkTiI+PZ8mSJSxdulTdrlKpGDVqFDNnzmyyAFuL+i7gXu39999nxIgRfPTRR3zwwQf3\nFENJSYnGpzgdHR2+//77Gvv9e1ZXKysrwsPDCQ8P59q1a/z999/s3LmT+fPn06ZNG/r160dlZSUH\nDx5k0KBB6gVhHnvsMRYtWsQ333wjlmYUGoVSqSQlJYWLFy8SGBiIk5MTejp6vND1BWJT5lF6tT2u\nFUFcT1FRWalAX7/1zlmmVfLX0dFh6dKlTJkyhdOnT1NUVIS5uTnBwcE1PtrfT0b6jLynrpjx/uNr\ndAU1FW0XcP83R0dH5syZw7x587RaQrMuZWVlpKamMmLECI326pW36hIREYGbmxvDhg0DoE2bNowZ\nM4ZRo0bx2GOPcfToUfr168cff/xBQUEB+/bt0+jnVyqV/Pjjj7zzzjviwa9wTwoKCoiKiiI9Ox1z\nA3NiYmKwtbVFT08PVwtXtoxfxfaKZGxtjXj6aS/09Fpv4od6Fnl5eXnd18n+QabtAu61GTt2LD/+\n+CNz585t8PV37dqFUqms9xtIdHQ0P/30E4MHD9aY+VVfXx8jIyP1gvJ79+7FwcGBTZs2aRwfGRnJ\n/Pnz2b9/P88991yD4xdaL7lcTmJiIkkpSaTkpZBZmomTvjv+Hh2pqqpCT08PADMDM2bM6PJQVene\nizqT/7Bhw1i5ciW+vr4MHTr0rn1jP//8c6MH15pMmDCBp59+mnnz5hEaGoqxsTEXL15k+fLlGgu4\n12XBggWMHKndp5zCwkKys7NRqVQUFRVx7NgxVqxYwbRp09Tr+FbLzs6u9RxGRkaYmpoye/ZsQkND\nmTZtGlOmTKFt27Zcv36dvXv3UlhYyLhx49Rj+2fPno23t7fGeTw9Pdm4cSO7du0SyV+ot+zsbKKj\no7med53E3ETK5eUUFlVwpugfFFUdGDhQcxJKkfhvqTP5BwYGYmJiov66NT8YaQ7aLuBeFxcXF8LD\nw/nwww/vuu/tVcSWlpZ4enry4Ycf1qgKVigUPProo7WeIywsjHnz5tGhQwe++eYbPvvsM958800K\nCgowNzend+/efP3119ja2vL555//f5n82Brn0dHRYeLEiSxevJiYmJg7fsIRhGqVlZVcuHCBtCtp\nXC64TEZxBgDFlHOy4AqWVZ7ERxdz5swNgoNbx7j9+qrXAu4tRSzgLghCtby8PM6cOUNucS6JOYnI\n5DJUUhVllmXoW+ljmd6TjNOWdOliz/jxHVvNuP1/a/AC7pmZmfW6kIND6xojKwhCyzA0MiQlN4XL\neZdRoaLKuIoyqzI6OnVkYsBEjCSmRAdk062bo+ixuIM6k3+/fv3q9YOLj49vlIAEQRDqkiPLISIy\ngmtco6pUSmplDj7tbAjtFEqftn3UOUt09dxdncl/0aJF4l1TEIQWVVxcTG5uLu7u7sDNgq2CsgJO\nJ2dQUlyFmdyJPqrJ9HWrffoZoW51Jn9RtSsIQktRKpUkJyeTlJSESqXCwsICKysrjPWMmdhlInHJ\nS7DN7oRzRVfSE1WohqvEzWo91Zn8169fr/VJJBIJ06dPb5SABEFo3fLz84mKiqK4uJiiiiJ1wVaf\nPje7dTrbd2b7pNVsWptEQIAdQ4a4i8TfAHUm/xUrVmh9EpH8BUG4V9XFWqmpqVTIK7iYe5H88nzc\nTDrz7COPaiR4axMr3ngjWIzbvwd1Jv+EhITmjEMQhFYsKyuLmJgYZDIZWaVZpOSnUC6vJKkom19S\nL2Nu6MeEZ600jhGJ/948HMvQC4LwQKqsrCQuLo709HSqlFUk5SaRW5aL3FBOmjSHlMJcnKu6cuzw\ndXoGuePlZXX3kwpaEdM7CILQYqKiorhx4wY5shyS85KppJIymzKqjKvwMXGhY9kzZCeYMGhwW9zd\nzVs63IeKmN5BEIQW09azLUcvHCWrJItKo0rKrctR6ajo596P0R1GU94NMjNL8fa2bulQHzp1Jv/b\nlwdcsmRJo150165dbNq0ievXr9O+fXvefPPNWlcJExrXmTNnCAsL03qajD179jB37lwuXLjQDNEJ\nD7vqmWSqbyRT8lJYf2Y9pdIy0koLKC4tp5erJ5O6TKKjXUcADCzAwsKgxWJ+mGnd569UKjl8+DCR\nkZGUlJRgY2ND9+7d65209+7dy/vvv69efHznzp3MmjWL/fv3i3l7BOEhVVxcTFRUFE5OTnh6egJg\naWhJaUU5f1+8QkWFAsfKjjzRdxod7TxbONrWQavkn5OTw5QpU0hISEBfXx9ra2tyc3NZv349vXr1\nYs2aNRgbG9/1PCqVitWrVzN16lTGjBkDwJw5czhx4gTnzp0TyV8QHjK3F2splUqKiopwdHTExMQE\nG2MbQgPGcTnlc4yTemAj9yDjchX0bOmoWwet1vBdsmQJ2dnZbNy4kejoaI4cOUJMTAyrV68mLi5O\nY2nHO7l06RIZGRkaC4ZIpVL27dun9Vz0DysfHx927drFs88+i5+fH8OHD+f8+fPs3LmTfv36ERgY\nyOuvv05lZaX6mDNnzjB+/Hi6du3KI488woIFCygrK1NvT0hIYPz48QQEBPDEE08QFxencU2lUsn6\n9esZMGAAXbp0YfTo0Rw9erTZXrPwcMvPz+fYsWMkJiYiV8jJL89HpVKRn5+v3qe3a292vLCSIJeu\nzJgRwLPP+rZgxK2LVnf+hw8f5n//+x99+vTRaB88eDB5eXksW7aM999//67nuXz5MgBFRUVMnDiR\npKQkPDw8CA8PJzAwsP7R30ViYiIXL17Ual83N7ca68hGR0eTlpam1fHe3t74+PjUO8bbffLJJyxc\nuBB3d3fefvttpk2bhp+fHxs3biQ1NZXw8HC6detGaGgoUVFRTJ48mQkTJvD++++Tnp7O/PnzSU9P\nZ/369RQWFjJ58mR69uzJ7t27uXz5Mv/73/80rrd8+XJ+/fVXPvjgA9q2bcuff/7Jiy++yKZNm+jR\no8c9vRah9ZLL5SQkJHD58uWbCwZVFJGYm0ippJSu+k/Qpo2zel+JRIK1mTlvv91dDCppZlolf319\nfczMzGrd1qZNG60vVr1G7dtvv83LL7+Mh4cHu3btYtKkSXz//ffqvsDWauzYsQwcOBCAJ598kg8+\n+ID58+fj6uqKt7c3mzZtIikpCYDNmzfTuXNn5syZA9xcEWv+/PlMmzaNpKQkTp8+TVVVFQsXLsTE\nxIT27duTmZmpXuS9tLSUL774gtWrV6vf1N3c3EhISCAiIkIkf6FBsrKyiI6OpqysDKVKeXOhlZIM\n8gyKOXf1GkcTt2Bj6Mrjw9prHCcSf/PTKvk/99xzrFy5koCAAGxtbdXtMpmMiIgIQkJCtLpY9Vqa\nM2bMUHfzdOzYkcjISL766qt7WoP2YXD7EopGRkZIpVKN5yCGhobqbp+kpCT69euncXy3bt3U25KS\nkmjXrp16uC5Aly5d1F+npKRQWVnJK6+8glR6q/evqqpK4/9YELRRVVVFbGws6enpAJRUlpCYk0iR\nbhEyJxnp1wqpLNWhfUU39v+QSnBQG2xt7/6cUGg6dSb/559/Xv21SqUiJSWFwYMHExgYiI2NDUVF\nRZw9exa5XI69vb1WF6ve7/Z1XCUSCR4eHupfmsbk4+NzT10x/v7+NbqCmpKuruZ/h0QiqfOOyNDQ\nsEZb9VA6XV1dJBIJ/16krfrNF25+mgNYvXo1bm5uGvvd/mYgCNqQSqXk5+ejQsWVgitcKbmCzEpG\nlXEVSOCxwJ7k5HekqELKmDHe2NgY3f2kQpOqM/lXVVVpfF/dJ19VVcWNGzcA8PW9+XAmKytLq4t1\n6tQJY2NjjbVaq99YxDj/+vH09OTcuXMabZGRkepthYWF6kXULSwsAIiNjVXv6+bmhp6eHpmZmfTt\n21fdvmbNGhQKBa+88kozvArhYaGjo4OjpyPf/fIdebp5yBzLkOiCga4BIR1DeLTto2R5yJBKJdjZ\niTv++0GdyX/79u2NfjEjIyMmTZrEihUrsLW1xdvbm507d3LlyhVWrVrV6Nd7mE2dOpWnn36apUuX\nEhISQkZGBu+//z79+vXD09MTBwcH1q5dy1tvvUV4eDiZmZkaP2MjIyMmT57M8uXLMTExwc/Pj8OH\nD7N27VoWLlzYgq9MuN+pVCoyMzNxcHBQfzI9kX6C7bHbKTOtIv5SDqZFejwW3J1JXSZha3yzG9HB\nweROpxWaWZ3JPzIykqCg+q+Oc+bMGXXfc21eeeUVjIyMWLRoEbm5uXTo0IHNmzfj4eFR72u1Zt7e\n3qxfv54VK1awfft2LC0tGTFiBK+++ioApqambNu2jQ8++ICQkBDs7e2ZOnWq+oEvwKuvvoqenh4f\nffQROTk5uLq68sEHH4iFfIQ6VRdr5efnExQUpB7w4WTqRImsgrPRN1AqpFjf6M6IYZOxNbZp4YiF\nukhU/+4Y/n+jRo3C09OTmTNnavTR1yU6OpqNGzdy+fJl9u/f36hB3m0VekEQmpZSqSQpKYnk5GSU\nSiUABgYG9O/fX/386EDiATbsO4Rlam9MVLaEhHgzaJDbnU4rNKG75c067/x3797NmjVrGD16NO7u\n7gwdOhR8eoPeAAAgAElEQVR/f39cXFwwMjKiqKiIzMxMIiMjOXbsGKmpqYwfP57ly5c36QsSBKF5\n5eXlER0dTXFxMQBypRyZXEawT7DGIIXh3sN5ZOpANkbEEBLig4eHZUuFLGihzuSvp6fHa6+9Rmho\nKFu3buXbb79l7dq1GqNPVCoVbdq0YdiwYWzYsAEHB4dmCVoQhKb372ItgILyAhJKEiixKsX2RgDe\n3rdGhkklUqytjHnrLVGw9SC46zh/BwcH5syZw5w5c0hJSSE9PZ3i4mKsrKxo06YN7dq1a444BUFo\nRpmZmcTExKinC1GqlKQVpZEkTSLfsJT487mcKlqFleF8unfXLPQUif/BUK+VvDw9PVt9Fa4gPOwu\nX75MTEyM+ntZlYyEsgSum1xHpasiI6kEeakeHhVB7NyZgK+vDebmYtrlB41YxlEQBA1OTk4kJiZS\nWVlJZnkmMcoYys3K4f9v6J/s+SjpB32oKNdl9GhvzMz0WzZgoUFE8hcEQYOBgQHuXu7sP7efZL1k\nVDo3+/v1dPQY22ksfdr24apLMQYGOmLs/gNMJH9BaKVUKhWpqalUVFTQoUMHdXt8djybkzdToFvI\npdQCjIz06OHry5TAKTiZOQHQtq1YT/dBJ5K/ILRCRUVFREVFUVBQgEQiwcHBAWvrm+vkVigqyC7K\nIyY2B5lMTlt5IBOHv4iTmVULRy00JjGDlyC0IkqlkoSEBI4dO0ZBQQFw8xPApUuX1Pt0cezCYK+B\nGElN6Vz6JO6lfThzKrulQhaaiFZ3/hUVFWzYsIEjR44gk8lqzBYJ8PPPPzd6cIIgNJ68vDyioqLU\n62rAzdk4Xdu50tm3s8a+4zqPpYfVQNavTOCpp7x49FHnf59OeMBplfwXLlzIrl276N69O15eXmLK\nX0F4gMjlcuLj49Ur6VWzsLQgRT+Fv679xXSL13F3tlNv09PRw6utE4sW2WFgIHqHH0Za/a/+/PPP\nvPbaa0ybNq2p4xEEoRFlZmYSHR1NeXm5uk1XVxd7N3sOZB4gPS+D1NRCjv+4gE0z3sPb21rjeJH4\nH15a3cJXVlY266ImgiDcu+q1Mm5P/A4ODph4mbD18laulVwj5VIBGddKkKikbNp8Hpms6g5nFB4m\nWiX/Rx99lGPHjjV1LIIgNCKJRIK/vz9SqRQDAwP8Avy4oHeBL+O/pFJxczlQT3dr/FRD8ZE9Rjs3\n61qf5wkPJ60+040aNYq5c+eSn59PYGBgrUsIVq/JKwhCy5DJZBgZGWnMrWNqakq3bt2o1K9kc9Rm\nrhVfU29zNHVkWtA0cj31KSgop08fFzEvTyuiVfJ/6aWXANi7dy979+6tsV0ikYjkLwgtpLpYKyEh\nAR8fnxrzb12RX2H72e3k5Bchl6uwsjKkp0tPQv1CMdA1wFn06LZKWiX/33//vanjEAShAW4v1gJI\nTEzE0dERE5Ob0y7EZ8ez8exGrmWUcCm1EH0dPRaHTeLxTgNbMmzhPqBV8nd2vjXGVyaTUVpaiqWl\nJXp6ek0WmCAIdVMoFOqVtW7vpzcxMUGhUKi/97X1pYNVZ06d/A1DhSUdioaTetQKOrVE1ML9ROtx\nXCdPnmTZsmXExcWpf9n8/f159dVX6dWrV5MFKAiCptzcXKKjo2sUa3l7e+Pp6alRhyORSJjeYwqU\nG3NhtyMebe0YO9anJcIW7jNaJf/Tp0/zwgsv0K5dO15++WVsbGzIysri0KFDTJ06la1bt95x0XZB\nEO5dVVUV8fHxpKWlabTb2Njg7++PiYkJJzNOEtwmGB2pjnq7sZ4xrw2eQrxzLl5eVujqiiJNQcvk\nv3LlSnr16kVERITGaIBZs2Yxbdo0Vq9ezbZt25osSEFo7YqLizlx4kSNYq2OHTvStm1byuXlrD+z\nntNXI9l89U8+GDcLR0fN6ZY7dLBp7rCF+5hWtwCxsbGEhYXVGAYmkUgICwvTWPVHEITGZ2xsjI7O\nrbt5BwcH+vfvj5ubGzdKbrD4r8UcvXiSyLNZ/JlxhIUR31NVpbjDGYXWTqvkb25ujkwmq3VbaWmp\nxi+lIAiNT0dHh4CAAAwMDAgKCiI4OBgjIyOibkSx5K8lZJZkoqsjRS5X4lzRhfIMa+Licls6bOE+\nplXy79mzJ6tXryYzM1OjPTMzk9WrV4sHvoLQiEpLS0lMTKxRbWtjY8OgQYNo0+bmgukHLx5k3el1\nlMtvdgVZmZvw0iPT6aI3hFdfDqZLF/tmj114cGjV5x8eHs7o0aMZNmwYQUFB2NrakpOTQ2RkJKam\nprz55ptNHacgPPSq59VPTExEoVBgZmamTvTVdHR0KJeXs/X8Vs5eP4vk/xfWtTG2YVbwLJzNnJEN\nqsLERKyrK9yZVsnfwcGBvXv3snnzZiIjI0lPT8fc3JzQ0FD+85//YGdnd/eTCIJQp8LCQqKjo9XF\nWgBxcXE4OjpqDN3MkeWw5tQaIi8mceN6KQEBdnRy6MjUoKmY6psCiMQvaEXrcf52dnbMmTOnKWMR\nhFZHoVBw8eJFUlJSNLp5zM3NCQgIqLF2xtbzWzl27gLXr5cCILnsxcujXtYY2ikI2qgz+a9fv55n\nnnkGe3t71q9ff8eTSCQSpk+f3ujBCcLDLDc3l6ioKEpLS9VtdRVrVZsUMInIixfJvF6Ol2wgbiU9\nqChXYmwskr9QP3Um/xUrVvDII49gb2/PihUr7ngSkfwFQXt3K9YyNTWt81g7Ezvee+J1fpZexVLl\nRGhoB/T0ROIX6q/O5J+QkFDr14Ig3JuEhASNxH97sdbttTRFFUWk5l3Gx6ojhoa3/lR9bX3xHu+D\nVCqmXxYaTquhnmvWrKkxzLNaRkYGCxYsaNSgBOFh5u3tjb7+zYeyjo6ODBgwADc3N43Ef7XwKu/9\n9iEzN3/I4vU/1hj2KRK/cK+0Sv5r166tM/mfP3+eb775plGDEoSHhUqlQqlUarQZGBjg7+9Pt27d\n6NatW43FkSKvRbLw6GL++CeR/EIZ+9J3sP/gxeYMW2gF6uz2ee655zh//jxw8xd43LhxdZ7Ez89P\n6wsmJyczYsSIGu1ffvmlmBxOeKiUlpYSHR2Nqalpjb8RJyenGvurVCoOXDzAgYsHQAIODsZcv1KB\nd/kQ9HXF8E2hcdWZ/BcsWMAvv/yCSqVi1apVjB07FkdHR419dHR0MDMzY/DgwVpf8OLFi1hZWbF/\n/36NdktLy3qGLgj3p+qF0y9evIhCoSAnJwdnZ2esra3rPKZCXqEu3KrWvWN7LHQH8ET/LmJSNqHR\n1Zn8PT09mTlzJgBKpZKQkBAcHBzu+YIXL16kffv2ojBMeCgVFhYSFRVFYWGhuk0ikVBQUFBn8s+V\n5fLxkRXkKTLVFbsd7DowNXAqJoNMaj1GEO6VVkVeL774IgD5+flUVVWpHz6pVCpkMhmRkZGEhIRo\ndcGkpCQ8PDwaGK4g3J/qKtaysLAgICAACwuLWo9Lyk3ivQPLiY5Pp42zKe3cLRjQbgBjO41FKhHz\n7gtNR6vkn5iYyBtvvEFycnKt2yUSSb2Sf0VFBWPHjiUjIwMvLy9ef/11/P3FKtLCgyknJ4fo6GiN\nYi0dHR28vb3x8PCotVgLbg7lnPfjEs7H3QAg42opoZ3G82znJ5olbqF10+rW4qOPPqKgoIA5c+bQ\nvXt3Hn30Uf73v//Rr18/JBIJX3zxhVYXKy8v5+rVq5SUlPDWW2/x2WefYW9vz/jx40lJSbmnFyII\nzU2hUBAVFcU///yjkfhtbGzo168f7du3rzPxA5gbmDOldyjW1oboq4wYYDieob79myFyQdDyzv/8\n+fO88847jBkzBiMjI/bv309oaCihoaG8/PLLbN++XauROoaGhpw+fRp9fX31OOclS5YQFxfHzp07\n+d///ndvr0YQmpFUKtVI+np6enTs2BFXV9caCx/VZWC7gRSNKCU32p7xo7tpFHMJQlPS6s6/srIS\nd3d3ANzd3TUqfp955hn1kFBtmJqaqhM/3PwDat++PdevX9f6HIJwP5BIJPj7+yOVSnFycqJ///41\nqnRvl5idxO9/x9c4x9N+o5gS1lMkfqFZaZX827RpQ3p6OnAz+ZeUlJCRkQHcLFi5fWTDncTGxhIY\nGEhsbKy6TaFQkJCQgJeXV31jF4Rmo1KpuHbtWo2CLVNTU/r3719rsdbtfoj+hUnr3+ad3R/xz8kr\nTR2uINyVVsl/8ODBLFu2jF9//RUHBwc8PDxYuXIlKSkpbN26FVdXV60u5uvri7OzM/PmzSMqKoqk\npCTeeecd8vPzmThx4j29EEFoKqWlpfzzzz9ERkZy6dKlGttNTOoejlmlqOKLqC9Y8dsmCovLKdbJ\n4v1dEeTllTVlyIJwV1ol/xdffJEuXbrw7bffAvDOO+/w888/88QTT3D8+HFeeuklrS6mq6vLpk2b\naNeuHTNmzCAkJIScnBx27NiBjY0oYhHuL0qlkuTkZI4cOUJu7s31cBMTEzX6+e8kR5bD0uNLOX7l\nOB4eFhgZ6WKmtGPaoDFYWdX9KUEQmoNWnYxGRkasWbOGyspKAPr06cP+/fuJi4ujU6dOtG3bVusL\nOjg4sHz58oZFKwjNpKCggOjo6BrFWh4eHnfs3qkWnRnNlnNbkFXJANDRkRLabxgj247Bp71YW1do\nefV6wnT7g9q2bdvWK+kLwoNAoVCQmJjIpUuX6lWspT5eqWDxni2cyjuMk9PNefl1pbqM6zyOPm37\naD0KSBCaWp3Jf+jQofX6Rf35558bJSBBaCl1FWv5+Pjg4eFx17+HG/m5zP58EReyEpBKJZiZ6+Nq\n68CMbjNwt3Rv4ugFoX7qTP6BgYHiLkVoNa5fv86ZM2c02mxtbfH397/jA93bnbjxF1fLbhYrKpUq\nqq7ZMveZueqF1QXhflJn8l+yZElzxiEILcre3h5TU1NKSkoaVKwFMNLnCc4ER7Pv6Cke9xzOhxOn\nYKCv14RRC0LDadXnf/bs2bvuExgYeM/BCEJL0dHRwd/fn9TUVDp37qzVQ93CwgosLAxunUOqQ3i/\nFxnlc4Xu7QKaMlxBuGdaJf/Q0NC73gHFx8ffcbsg3A9UKhVXrlwhNzeXrl27avxe29jYaDXkWKVS\nsWnfb3z158+sm/oOvr63jrEysqJ7O6smiV0QGpNWyb+2idtkMhlnzpxh3759rF69utEDE4TGVlJS\nQnR0tHrMvoODA87OzvU6h0Kp4L/b1/ND3I+odGDeti1smfsyJiZipS3hwaJV8u/evXut7f3798fY\n2JjPPvuMDRs2NGpggtBYlEqlemWt26dnuHz5Mm3atNG6Xz9Xlsums5vINE1CV09KVZWSLJNoSsrK\nRfIXHjj3PJNUt27d2LhxY2PEIgiNrqCggKioKIqKitRtEomE9u3b4+XlpXXiP3PtDDuid1BWVYa+\nvg7e3lZYVrXl49A3sDI2b6rwBaHJ3HPyP3z4sNZD4QShucjlci5evFijWMvS0pKAgADMzbVL2Emp\nWXx74RuuKG9NRiiVSJnaO4yhnvWrhRGE+4lWyf/555+v0aZQKLhx4wZXrlxh6tSpjR6YIDRUdnY2\n0dHRyGQydZuOjg6+vr60a9dOq4StUqnYceA4K46to1KvmKBAewwMdLE1tuWFwBfwsBJLkQoPNq2S\nf1VVVY02iUSCp6cnU6ZMYfTo0Y0emCA0VHp6ukbit7W1JSAgAGNjY63PcTY9ik9PL6NMUgVySEou\n4IVhIwj1C8VQV0zKJjz4tEr+27dvb+o4BKHRdOrUiezsbJRKJZ06dcLFxaXe3TOdnHx5JMCLP05e\nwNLMlLnDZ/K4f/+mCVgQWkC9+vyPHj1KZGQkhYWF2Nra0rNnT4KDg5sqNkG4q7KyMnR1ddHTu1VJ\nq6+vT1BQEKamphgYGNzh6LoZ6hryxqDZGOtsI3zQTBzMxEycwsNFq+Sfn5/P1KlTiY2NRV9fH2tr\na3Jzc1m3bh29e/dm7dq1Df4jE4SGUKlUpKWlER8fj7OzM/7+/hrb67M+RHpmLku2f8d/w8LUM3EC\nuFu6s/TJeeKhrvBQ0moxlwULFpCens769euJjo7myJEjxMTEsGbNGmJjY1m2bFlTxykIaiUlJfzz\nzz/ExMQgl8tJS0tTF27V1/d/HeepT2fze9YPvBfxDVVVCo3tIvELDyutkv+xY8eYM2cO/fv312gf\nNGgQ4eHhHDx4sCliEwQNSqWSpKQkjh49qpHsTU1NkUq1+lVWq1RU8nXs1+y5vpkySgA4UXqQqAsZ\njRqzINyvtOr20dHRwczMrNZtdnZ2tY4GEoTGdLdiLR0dHa3PlZqfypbzW8gsycTIUBd3N3Pybih5\nd+QsugWIBYqE1kHrid0+/fRT/Pz8cHBwULeXlJQQERHB+PHjmyxAoXWTy+UkJiaSmpp6T8VaAKlp\nefyU8iMxsuMoVbemeXg88BGe6xSGjamYkE1oPbRK/llZWWRlZTFkyBCCgoKwt7enoKCAs2fPUlpa\nir6+vroQTCKR8Pnnnzdp0ELrUFZWxt9//31PxVoAcrmSL/YdZ/0/m6g0zCcoyAFdXSkGugaM6zSO\nR1wfEX37QqujVfJPS0vD19cXuHkndu3aNQB1m0KhQKFQ1Hm8IDSEoaEhRkZG6uRvZ2eHv79/vYq1\nAE6mnWHV2WVUSOVQCamXCxneozuTu0zG1ti2KUIXhPueKPIS7lsSiYSAgAD+/vtvfH19G1SsBeDv\n0oHOvk5ExlzF2sKYWf0mMrrrCHG3L7Rq9SrySk5O5tSpU5SUlGBlZUVQUBAeHmKOE+HelZWVcenS\nJTp06KAxcsfExIRBgwbVazRPUVEF5ua36k7MDMx4ffA0thvtZc6w2TiaOTZq7ILwINIq+SuVSubN\nm8fu3bs1HrpJJBKefPJJFi9eLO6ihAZRqVRcvnyZhIQE5HI5+vr6eHl5aeyjbeIvK6ti4zd/8UfM\naT5/9yVsbIzU2wKdAuk6uqv4PRWE/6dV8o+IiOD7778nPDyckSNHYmtrS3Z2Nvv372fVqlV4enqK\nmT2FeisuLiY6Opq8vDx1W1JSEm5ubujr129xFIVSwatr1/FX1m8odZSs2O7FB688pZHsReIXhFu0\nSv7fffcdM2bMYMqUKeo2R0dHpk6dSkVFBd99951I/oLWlEolycnJJCUlaaysZWZmhr+/f70Tf3pR\nOtvOb6OoTRKqrJvnO1t1iMrKkRgY3POSFYLwUNLqLyM7O5ugoKBatwUGBhIREdGoQQkPr/z8fKKi\noiguLla3SaVSdbFWffr2FUoFh5IPcTDpIAqlAnMzA9q6mdPe1oN3H58tEr8g3IFWfx2urq6cO3eO\nXr161dh27tw57OzsGj0w4eFSV7GWlZUVAQEBdVaQ1+bGjVLWbj+MzPsEJdJsdbuuVJfXhk1miOcQ\npJL6TfcgCK2NVsl/zJgxfPLJJxgbGzN8+HBsbW3Jycnh4MGDbNiwgenTpzd1nMID7vLly1y6dEn9\nva6uLr6+vri7u9erL/6fk1dZ8PU2UvVOYCzTJbCrPRKJBA8rDyZ1mYSjqRjJIwja0Cr5T5gwgfj4\neJYsWcLSpUvV7SqVilGjRjFz5swmC1B4OHh4eHD16lVKSkqwt7fHz8+v3sVaAOflv5BmcAKVUoVM\nVoWsRMmkHuMY5DFI3O0LQj1oPbHb0qVLmTJlCmfOnKGwsBBzc3OCg4NrDMsTBJVKhUKhQFf31q+X\nVColICAAmUyGs7Nzg0fejO4ykp9ijpKZXczgoEBe7jsNB1OHux8oCIKGej0Rc3JywtXVFQsLC6yt\nrXF1db2ni58/f57Q0FC2bNlCjx497ulcwv1BJpMRExMDQPfu3TWSvLW1NdbW1lqf69y5TPT0pHTu\nfOuZkr2JPa8O/Q9ypZzBnuJuXxAaSusir48//pgdO3Ygl8vVD+yMjIyYOXMm06ZNq/eFZTIZb731\nlpgT6CHx72ItgIyMDFxcXOp9ruLiSnZ8GccPFw5ibmzMlnkvYWx8a5nGgR4DGi1uQWittEr+q1ev\n5osvvmDixIkMGzYMGxsbcnJyOHToEKtWrcLExISwsLB6XXjJkiU4ODiQlpbWoMCF+0dxcTFRUVHk\n5+er2yQSCaWlpQ06X1bZdXZeWUuO4XWkSh12fB/MtNA+jRWuIAjUo8hr1qxZzJ49W93m6upK165d\nMTExYdu2bfVK/kePHuXIkSNs3LiRUaNG1T9q4b5QvbJWcnJyrcVa9eniAVCqlPya8is/JP6AvVcl\nOfFg72iIrvclQCR/QWhMWiX/kpKSGgtkVwsKCmLz5s1aXzAvL4///ve/LFq0CAsLC62PE+4veXl5\nREdH33Oxlkql4saNUqRmpWw5v4XU/FQAbG2N6N6tDaGBYxjiOaRJXoMgtGZaJf/+/fvz9ddf06dP\nzbuvgwcP0rdvX60v+N577zFw4ED69u3LjRs3tI9UuC+oVCri4uK4fPnyPRdr5eaWsW1bLH+mH8Hm\n0RR09G6dz83Sjf/0/w9OZk6NGr8gCDdplfy7devGihUrGDlyJCNGjMDOzo6CggKOHDlCZGQkkydP\nZv369cDNvt66ir727t3LhQsX+OGHHxrvFQjNSiKRUFVVpU78DS3WUqlUfLL+KL/n7qZQ9xpWiQZ0\n7myLrlSXJ7yf4LH2j4mRPILQhLRK/h9++CFw88HeihUramy/vdvnTsl/z549ZGZm8uijjwKoE8jU\nqVN56qmn+OCDD+oXvdAiOnXqRHZ2NhYWFg0u1gIo6/QXRX9fQwKYmurjbObCC4HP42Je/xFCgiDU\nj1bJPyEhoVEutmzZMsrLy9XfZ2dnExYWxoIFC+jdu3ejXENoPCqVimvXrmFvb4+e3q2hlvr6+vTp\n0wdDQ8MGF2tJJBJm9/0PyVmXMTczYGzgkwz3Go6uVEzGJgjNoVn/0hwcNCsxDQwM1O02NjbNGYpw\nF9XFWllZWbi5udV44G9kZFTHkTXl55ezY0ccI0d64u5uqW73tPbktSEv4GHlgZulW6PFLgjC3Ynb\nLEGDSqUiNTWVhIQEdQFeWloazs7ODXqDjovLYc3Gf4iR/ELMti6s++9/0NW91Zc/oJ0o2BKEltCi\nyd/R0ZHExMSWDEG4TVFREVFRURQUFKjbJBIJ7u7uDRqWq1KpSFdd4B/DbVQoyzhRksHpmP706urZ\nmGELgtAA4s5fUBdrJSUlaQzfNDMzIyAgACsrq3qfs7iimJ0xOzl7/Syu7QzIyKjC28ccufU1QCR/\nQWhpIvm3cnl5eURFRVFSUqJuk0qleHl50b59+3qtrCWTVZGbW0au3iV2RO+guOJmAZhTGxN83V14\nIeg/+Nr6NvprEASh/upM/pmZmfU60b8f5gr3v/z8fI4fP67RZm1tjb+/f72KtQDi43OJ2HqaBJ3D\ntAnO0+jX79O2DyGdQjDUNWyUuAVBuHd1Jv9+/frVaxhffHx8owQkNB9LS0v1qmy6urp06NABNze3\neg/frKiQs2TL95xXHaJSJUOWbISvrw2WhpZMCJhAZ/vOTfQKBEFoqDqT/6JFi9RJoLCwkGXLltGr\nVy8ef/xxdYXvH3/8wZEjR3j77bebLWCh4VQqlUZil0gk+Pv7Ex8fT6dOneo1fFODjgKVfySV0TL0\n9KTY2hnT06Un4zqPw1ivYQVggiA0rTqT/zPPPKP+evbs2Tz11FMsWLBAY5+RI0eyYMECfvrpJ8aN\nG9d0UQr3RKVSkZ6eztWrV+nZs6dGP76JiQndunWr9/lufxMx0DXg1UFTeE+2nHZtHJgSPBl/h9on\nAhQE4f6g1dO848eP8/jjj9e6bcCAAZw7d65RgxIaj0wm4+TJk5w/f57c3FxSUlLu6XyXLhWwYNFx\ncnPLNNoDnQIJHzqVxUM/FIlfEB4AWiV/KysroqOja9126tQp8bD3PqRSqbh06RJHjhwhOztb3Z6e\nnq4x9359HD58hbc/+Zbd+atZtuVHjWGhAP3d+2Oib3JPcQuC0Dy0GuoZEhLC2rVrKS8vZ9CgQVhZ\nWZGbm8uhQ4fYvn077777blPHKdRDXcVa7dq1w8fHp17DN6vJqmSckR8g1vggKuC37D1Mz+iPu4uY\nlkMQHkRaJf+ZM2dSXFzM559/TkREhLrdwMCAV155pd5LOApNQ6FQqFfWaqxiLYCoG1F8GfMlheWF\nuLiaUVxcSWAnO6RmpYBI/oLwINIq+UskEubMmcOsWbM4d+4cRUVFWFlZ0bVr1wZP5ys0rrqKtby9\nvfH09Kz33X5KSgFySRl/FfzIqYxT6nZ3N3OCnYN5zu85TPVNGy1+QRCaV70qfM3MzOq1apfQfLKz\nszUSv7W1NQEBAZia1i9Bl5fL2bMnid1//8F1u+N06mqK9P9H9pgbmBPmH0YXxy6NGrsgCM2vzuQ/\ndOjQehX7/Pzzz40SkNAwXl5eXL9+nbKysgYXawHcKMhl47kN3DBOglK4elWFW1tzerj0YFynceKB\nriA8JOpM/oGBgQ1eqENoWhUVFSiVSo2iLKlUSmBgIHp6eg0v1gJMzXWw9CrgRjLY2Bji3daJKd3F\nuH1BeNjUmfyXLFmi/vrgwYP06tULa2vrZglKqF11sVZcXByWlpb06NFD4w3a3Ny8XudTKlVkZclw\ndLx1N29rbMusQeOJMPyCUQFDGN1xtKjSFYSHkFZ9/nPnzmXJkiUMGzasqeMR6iCTyYiKiiInJwe4\n2cefkZGBi0vD1rtNSytk+444LuVfYvX7YzEx0VdvG+QxEE9rDzysPBoldkEQ7j9aJX8HBwfKysru\nvqPQ6KqLtRITE9UrawEYGxtjaNiwWTKVShUfRfzMqfIfKdXJ4fNvnXn5P7dW1JJKpCLxC8JDTqvk\n/9xzz7Fo0SKioqLw9fWtdXjnyJEjGz241u5uxVq6uvVfjqFcXs4PiT+Q5X2QkrgcpFIJ55WHUCr7\nNaj4SxCEB5NW2WPx4sUAfPXVV7Vul0gkIvk3orqKtczNzQkICMDS0vIOR9dUWalAT0/KmWtn2HVh\nF73UposAABwPSURBVIXlhVhbG+Lubk4bB3PGBgwE8WxfEFoVrZL/77//3tRxCP9PLpfz559/Nkqx\nlkKh5I8/rrDr0BlcHksho/ySxvbHAnsS5h+GrbFto8UvCMKDQavk7+zsrP5aJpNRWlqKpaUlenp6\nTRZYa6Wrq4uVlZU6+dvY2ODv71/vYi2AzV+cZ9f5fWQYnMX8tB5+frZIkGBhaEFIxxC6tekmhvMK\nQiuldafxyZMnWbZsGXFxcequCH9/f1599VV69erVZAG2Rh07diQvLw9PT0/atm3b4ASd7XKU9Pgz\nqICqKiUKuYph3oMZ5TNKLKkoCK2cVsn/9OnTvPDCC7Rr146XX34ZGxsbsrKyOHToEFOnTmXr1q31\nXhBEuFmslZiYSIcOHTQ+Renr6zNgwIB7visPC36Go4mn0NGR0LdzAOMDwnAxb9jQUEEQHi5aJf+V\nK1fSq1cvIiIiNBLSrFmzmDZtGqtXr2bbtm1NFuTDRqVScfXqVS5cuEBVVRUqlYqAgACNfeqT+LOy\nSvn8y9M8PaITvt526nY3SzdmDh6Hg4kDPV16ii4eQRDUtHp6GBsbS1hYWI3kIZFICAsLIyYmpkmC\nexiVlpZy4sQJoqKiqKqqAuDKlSsaD3jr48SZNCYvWc6O65+waOdO5HLNhVqe8n2KXq69ROIXBEGD\nVnf+5ubmyGSyWreVlpaio6PTqEE9jO5UrNWQ2TeVKiXHrxzn2+t7uGKQhFKh4nzpUaIuPE2Qf9vG\nDl8QhIeMVsm/Z8+erF69mqCgII0lGzMzM1m9erV44HsXhYWFREVFUVhYqG6TSCR4eHjg4+NTrzdP\nlUrF+Rvn2Ze4j+vF1wFo527BjcxS+nXpiLOH/l3OIAiCoGXyDw8PZ/To0QwbNoygoP9r786jorqy\nPQD/iqFkUmQGFYmAhcqshYyhQWkbhzh12kTFRNt2aHu1+pJFR42y+rVJx3YI4pREOzEah0Rf1IT0\nM52EKDwIIlNKQQZBoVApoUBQFEqo2u8PmqslElGgKGR/a9Va4Z5bh71Tl+2te889ZxxsbW2hVCqR\nnZ0NCwsLxMbG9nScfZJarUZxcTFKS0u7/LAWEeHLs2lIqf4WKtNqrbbRI4Zi7eRZCHbm6/qMsc7p\n9Nw+J0+exCeffILs7Gxcu3YNgwYNwrx587Bo0SLY2dk9uZN+SKFQoKSkRPjZwMAAHh4ecHV1faqH\ntYoVV7DmwAcoqLkEsbEBxkkdYGxkCBMjE/zG/TeIco2C2JDP+Bljnddh8T9//jz8/f2FIYh2dnZ4\n6623dBbY82DIkCGQy+VQKpWwsbGBr68vzM2ffjGUK3cuo/xeMQDgfrMG1ysa8YeJMzF55GReSpEx\n9kw6LP6vvfYaTE1NERAQgNDQUISEhGDkyJG6jK3PaW5u1hqvLxKJ4Ovri+rq6qd6WIuItPad4BqJ\n0a6nkJNfgV+5hWHDnN9jiJV9t8fPGOs/Oiz+u3btQnZ2NrKzs7Flyxao1WrY2toiJCREeD3L5R6F\nQoG///3vOHfuHDQaDV588UWsWbNG60ZyX9PU1IS8vDw0NDQgPDxc65KOmZkZXFxcntiHStWCH9ML\n8dm5LxHgEIr/WhQltIkNxXjrN3+CKkgMqYekR3JgjPUvHRb/qKgoREW1FqDGxkb8/PPPyM7ORmZm\nJv7617+iqakJ7u7uwreCzizsTkRYunQprK2tcfDgQQDAO++8gz/+8Y84ceJEN6WkO48+rAUAJSUl\nkEierkDXNtbii9xT2Pm/J0AgVFQrsUAZAlvbB1Nnezt6AY7dGj5jrB/r1A1fU1NTBAcHC0M6W1pa\nkJmZiS+++AKHDh3CgQMHUFBQ8MR+lEol3Nzc8OabbworUC1cuBB/+tOfUF9fD0tLyy6kolt3796F\nTCZDTU2N1naVSvXE91ZWNsDW1hQNLbdxuuQ0UuWpUGvUsLQUo65ehRrDKziblY+XowN6KnzGWD/X\n6YndVCoVMjIykJ6ejoyMDBQVFUEkEsHb2xuhoaGd6sPOzg7x8fHCzwqFAl988QW8vb37TOEnIpSW\nlqK4uFjrYS1zc3P4+PjA1rbj6ZHPnbuBM2cqUFheAffJN1FplA+15kEfQ4dZwHvoKCz91VxIR3j3\naB6Msf7tF4t/cXExUlNTkZqaiuzsbKhUKgwfPhyhoaFYsWIFgoKCnmmqYaB1XqCkpCRYWloKl4D0\nXUcPa7m5uUEikTzxYa2Ccjm+u3kCNwddQsmlAfDyevAPhZu1G1YHvYRRtqN4rD5jrMd1WPzDw8NR\nXV2NQYMGITAwEOvWrUNoaOgzLxj+qFWrVmH58uXYs2cPFi1ahFOnTun1Td/CwsJ2K2tZWlrC19f3\nsd9aWlo0MDLSHstf45iBqgH5EIlEMDQSgUBwt3bHNMk0jLYdzUWfMaYzHRb/qqoqWFlZ4eWXX0ZI\nSAikUmm3Lt7i4eEBAIiPj0dERAROnjyJ5cuXd1v/3c3AwEAo/IaGhsLKWo8W7Fu3mnD69FXk5Snx\n3/8dAmPjB98GZvu8hPPyHFhYGGOMwyhMk0yDh40HF33GmM51WPz379+P1NRUpKSk4J///CdMTEyE\nMf9hYWFwc3N76l+mVCqRkZGBqVOnCttMTU3h7OyMmzdvPlsGOuLu7o4bN25ALBZ3+LCWRkP4xz/O\no/z2VVSKLyD1p2GI/NUIod3VyhWvSmfAy94LEhsesskY6z0dFv+20T2xsbFQKpVITU1FWloa9u7d\ni/feew+Ojo4ICQlBWFgYQkJCOjVPzY0bN/DGG29g+PDh8PZuvaF5584dXL16FbNmzeq+rLqAiKBQ\nKGBpaQkzswdDLQ0MDBAcHAyxWPzYM3UiQoHyEmpGfYufL8kAAKfzf0TkrxZr7Td79OyeTYAxxjqh\nU6N9bG1tMXPmTMycORMAUFBQgLS0NGRlZWHNmjVQq9XIz89/Yj9eXl6QSqVYv349Nm7cCCMjI2zb\ntg3W1tZC372pqakJFy9ehEKhgJ2dHQIDA7UK/YABA4T/rqtrQkXFHXh62SD7Rjb+XfpvVNRXgKwI\nNjYmGOJkAcMhJdCQBgaizs/jwxhjutDpoZ4AcPv2beTm5iI3NxcXLlxAXl4e1Go1PD09O/V+AwMD\n7Ny5E5s3b8ayZcugUqkQFhaGQ4cOPdOcN92FiCCXy3Hp0iW0tLQAAKqrq3H9+vV2N7hVqhacPFmC\ns/93BVUmBXD7dRVuN9cJ7YYGInh72iNoWBAmuU3iws8Y00u/WPzLysqQm5uLnJwc5Obm4sqVK9Bo\nNHB3d0dQUBDmz5+PwMDApxruaW1tjU2bNnU58O7S0NCACxcutHtYy8XF5bGjjzQGzThVeAr5ZufR\nIlLhbslAvODSOtrH2NAYLw5/Eb92+zWsTa11Ej9jjD2LDot/UFAQ6uvrQUQYMmQIgoKCsGzZMgQF\nBT0XUzhrNBrhYS2N5sHSh+bm5vD19YWNjQ0AQK3WwNDwwdm7oYEhDF2voiVPhYEDxbC0HABzsTki\nX4hE5IhInmWTMdYndFj8AwMDERISguDgYAwf/nwtC1hXVweZTIbbt28L20QiEdzd3TFy5EgYGBig\nsLAG//53GYzN1FixZLywn9hQjDnjp6JF9CXchgzFJLdJCHEO4fn0GWN9SofFPyEhQZdx6My9e/eQ\nmpqq9bDW4MGD4ePjIzysVXatBrG7P8GNATKYaazwu2ov2Nk9GPkzYUQkhg0aCn8nf76mzxjrk57q\nhu/zwMzMDM7OzpDL5TA0NBRW1hKJRFDeU+LM1TNIq0hDzRA57t1SodGgDukXijF9op/Qx8ABAzFu\nyLhezIIxxrrmuS/+jy6MAgBjxoyBWq2GlZUz0tOrIatMRaX4Ai5WXRS+ETg7D4Kp6T24DbfFsDGa\nx3XNGGN91nNb/IkIlZWVuHz5svBwVhtjY2PU3R2EuP2f4MaACxhwtRE+Pto3sT2GDsfy0EgEOwfD\nxMhE1+EzxliPei6Lf2NjI/Ly8qBQKAAAly5dgp+fn9Y++aIkXDFLARHQWA/cu9cMMzNjeNp7YsKI\nCfC08+Q5dxhjz63nqvgTEcrLy1FQUICWlhYQATU1jSgszIe7uwcsLEyFfSePmYj/Sf8eag3B1dkO\nUz0jEfFCBBws9HdmUcYY6y7PTfFvaGiATCZDbW2tsC334nUU11WiiEohzQ1G5IuuQpublRvmT/gN\nRtuOwvih4zHAaMDjumWMsedSny/+Go0GJSUlKCoqBtB6s7a2sRaK+wpcsCzApfpqQAQcTfkekS8u\nE94nEomwdNySXoqaMcZ6V58u/nL5TZw+/RMqK2swwFSEwcPuo7KhEvVm9WiybIKlmRFMq41gb2eK\nEaMbejtcxhjTG326+NfV3UbhlTLcM6xBU0sdrBvEaLJthEbcOjRTLDbC65MnIHJEJLzsvXo5WsYY\n0x99uvhr7O7iutklGDcbo1JTB5W5GJbi1rl2Qp1DEe4SDjvzvj8PEWOMdbc+Xfw97T1h8oIRmlru\nwdXWAiOsXBA5IhIBQwJgbNh9S04yxtjzpk8Xf2NDY/w2MBrV96oR+UIkXK1ceWw+Y4x1Qp8u/gAw\nY9SM3g6BMcb6HJ6SkjHG+qE+ceavVqsBQJiugTHG2C9rq5dt9fNRfaL4V1dXAwDmz5/fy5Ewxljf\nUl1dDRcXl3bbRfTwqiZ6qqmpCXl5ebCzs4OhoWFvh8MYY3pPrVajuroaXl5eMDFpPzNxnyj+jDHG\nuhff8GWMsX6Iiz9jjPVDXPwZY6wf4uLPGGP9EBd/xhjrh/Su+MfFxeHtt9/W2nbq1ClMmzYNfn5+\n+N3vfoe0tDSt9sOHD8PDw0PrNWbMGK19Pv30U0RGRsLX1xeLFi1CWVmZXuVw//59bNq0CaGhofD3\n98fSpUtRUVHRZ3LYuXNnu8+g7bVr1y6d5/Asn0FFRQWWL18OqVSKsLAwrF+/Hrdv39baR58/AwAo\nKyvDkiVLIJVKER4ejh07dqClpUWnOSiVSrz11lsICwuDVCrF4sWLUVxcLLSnpqZixowZ8PHxwUsv\nvYTk5GSt99fU1GDVqlWQSqUIDg7Gli1bdJpDV+Nvc//+fUyfPh1fffVVuzZdHkcdIj2h0Who+/bt\nJJFIaN26dcL2xMRE8vDwoA8//JCuXLlChw4dIm9vbzp37pywT1xcHC1fvpyqqqqEV3V1tdB+7Ngx\n8vf3p9OnT1NhYSEtW7aMJk6cSCqVSm9yWLNmDYWHh9NPP/1ERUVFtGDBApo2bRppNJo+kUNDQ4PW\n//+qqiqKi4uj4OBgUigUOsvhWeNvbm6m6OhoWrFiBZWUlFB2djZFR0fTn//8Z6EPff8M6urqKCQk\nhBYsWED5+fmUmZlJ0dHRtHbtWp3loFar6ZVXXqE5c+aQTCajy5cv08qVKyk4OJhqa2vp8uXL5OXl\nRXv27KGSkhKKj48nT09PKi4uFvqYO3cuzZs3jwoKCujs2bMUFBRE77//vk5y6I74iYju3LlDf/jD\nH0gikdCpU6e02nR1HD2JXhR/uVxOMTExFBgYSBEREVoH/PTp0+nNN9/U2v/tt9+mmJgY4ee5c+dS\nQkJCh/1PmjSJduzYIfzc0NBAfn5+9PXXX+tFDnK5nCQSCf30009Ce2lpKUVERFBZWVmfyOFROTk5\nNGrUKEpOTha29XQOXYm/qKiIJBIJFRYWCu2HDh0if39/ncXf1Rz2799P/v7+dOvWLaE9KyuLJBIJ\nVVRU6CSH/Px8kkgkVFJSImxTqVTk6+tLJ0+epA0bNrQ7ZmJiYmj9+vVE1HrcSCQSksvlQvuJEyfI\n399fKI49mUNX4yciSktLo4kTJ9KsWbMeW/x1cRx1hl5c9snJyYGTkxMSExMxbNgwrbby8nJIpVKt\nbaNHj0Zubq7wVbCkpARubm6P7bumpgZlZWUYP368sM3c3BxeXl7IysrSixxSU1NhbW2N4OBgod3V\n1RVnzpyBi4tLn8jhYUSEd999F5MmTUJ4eDgA3XwOXYnf0tISBgYGOHbsGFQqFWpra/Htt9/Cy8tL\nZ/F3NYfy8nKMHDkSgwcPFtrbLn9mZWXpJAcnJyd89NFHGDFihLCtbZr1+vp6ZGVlaf1+AAgMDBR+\nf1ZWFoYOHQpnZ2ehffz48bh79y4KCgp6PIeuxg8AP/74I2bOnInPP/+8Xf+6Oo46Qy/m9pkxYwZm\nzHj81Mz29vaorKzU2nb9+nU0Nzfj9u3baG5uRn19PVJSUrBz5040NjYiICAAsbGxcHBwECY3cnBw\naNdvd04U15UcysrK4OzsjMTEROzbtw+1tbUYO3Ys1q1bB0dHxz6Rg7W1tbA9KSkJly5dwrZt24Rt\nusihK/E7ODhg/fr12Lp1K44cOQKNRgM3NzccOnRIZ/F3NQd7e3ucOXMGGo0GBgYGQjvQWnR0kYOV\nlRUiIiK0tn322WdoampCWFgYEhISfvH337x5E/b29u3aAaCyshJGRkY9mkNX4weA9evXd9i/ro6j\nztCLM/9fMn36dBw+fBjp6elQq9U4d+4cvvzySwBAc3MzLl++DAAwMjJCfHw83nvvPZSVlWHhwoVo\nampCY2MjAGDAgAFa/YrFYqhUKr3IoaGhAVeuXMH+/fuxdu1aJCQkoKamBq+//jpUKlWfyOFhBw4c\nQHR0tNZkUr2dw5Pi12g0uHr1KoKDg3H06FF8/PHHMDQ0xOrVq6FWq3s9/s7kMHnyZNTU1GDLli1o\nbGyEUqnEO++8AyMjIzQ3N/dKDklJSXj//fexaNEiuLm5oampCWKxuMPf39jY2C4+Y2NjiESiXvlb\neNr4n0QfjqM2enHm/0uWLl2K2tpaLFmyBGq1Gu7u7li8eDG2bduGgQMHIiwsDOnp6Vpnnu7u7ggP\nD0dycjKGDh0KoPXO+8Pu378PU1NTvcjByMgId+7cQUJCgvB1d8eOHQgLC0NycjKGDBmi9zm0USgU\nOH/+PA4cOKD1/raJpXorhyfF//XXXyMxMRFnzpyBmZkZAMDFxQVRUVFITk4Wzj71+TNwcHBAQkIC\n4uLi8Omnn8LMzAwrV65EUVERBg4cqPPP4MSJE9iwYQOmTJmC2NhYAK1F79GThYd/v4mJSbv4mpub\nQUQwMzPTaQ7PEv+T9PbfwcP0/sxfLBYjLi4OOTk5SElJQWJiIkxMTGBrayv8kT5c+IHWr1BWVlao\nrKyEk5MTgAfTQrepqqpq99Wrt3JwcHCAmZmZ1nVOGxsbDB48GNeuXesTObRJSkqCnZ1du+uivZ3D\nk+KXyWRwdXXVysXZ2RlWVlaQy+W9Hn9ncgCACRMmIDU1FcnJyUhPT8dvf/tb1NbWwtnZWac5fPDB\nB1i7di1effVVbN68WbgM5eTkhKqqqg5/v6Oj42PjA1ovlegqh2eN/0n04Thqo/fFPz4+Hnv37oVY\nLIadnR0A4IcffkBoaCgA4ODBgwgLC9P61/j69euora3FyJEjYWNjgxdeeAHnz58X2u/evYu8vDwE\nBAToRQ5SqRT37t1DaWmp8J7q6mrcunULw4cP7xM5tGm7Idb2x9Kmt3N4UvyOjo4oKyvTOiOrqqpC\nXV0dXFxcej3+zuSQlZWF119/HWq1Gvb29hCLxfjhhx9gZmaGsWPH6iyHffv2Yfv27Vi5ciU2bNig\nta72uHHjkJmZqbV/RkaGcCN73LhxqKio0Lq3kZGRAXNzc4waNUonOXQl/ifRh+NIoNOxRZ0QExOj\nNbzt2LFjNHbsWDp79izJ5XLauHEj+fn5UWlpKRERlZeXk5+fH8XGxlJJSQllZWXRrFmzaO7cuUIf\nR44cIT8/P/rmm2+oqKiIli1bRpMmTeqxcbVPm4NGo6F58+bR9OnTKScnhwoKCmjBggUUHR0txKjv\nObSZNGkSffDBB4/tU5c5PG38CoWCpFIprVy5koqLi0kmk9Grr75KM2fOpObmZp3H/yw51NTUkFQq\npU2bNpFcLqfvvvuOxo4dq/V59HQOBQUFNHr0aFq7dm275z7u3r1LhYWF5OnpSQkJCVRSUkLbt28n\nb29vYWilRqOhOXPm0CuvvEJ5eXnCOP+Hh0b2ZA5djf9RjxvqqevjqCN6X/yJiHbv3k3h4eHk5+dH\nMTExJJPJtNpzc3MpJiaG/P39afz48bRmzRqqq6vT2ufDDz+k0NBQ8vPzo9///vda44j1IYf6+npa\nt24dBQQEkJ+fH61YsYIqKyv7VA5ERP7+/nTkyJEO+9VVDs8Sf1FRES1evJgCAgIoNDSUYmNjqaam\nplfif9YcMjMz6eWXXyYfHx+Kioqi/fv3t+u3J3PYtm0bSSSSx752795NRERnzpyhKVOmkJeXF02f\nPp3S0tK0+qiqqqIVK1aQr68vhYSE0LZt20itVuskh+6I/2GPK/49Gf/T4MVcGGOsH9L7a/6MMca6\nHxd/xhjrh7j4M8ZYP8TFnzHG+iEu/owx1g9x8WeMsX6Iiz/r1+Li4uDh4dHhakxJSUnw8PDAnj17\ndBwZYz2Lx/mzfq2hoQHTpk2DSCTCN998A3Nzc6Htzp07mDJlChwdHfH555/D0NCwFyNlrHvxmT/r\n1ywsLPC3v/0NN27cQHx8vFbb5s2bUV9fj02bNnHhZ88dLv6s3wsPD8esWbNw+PBhyGQyAEBmZiaO\nHz+ON954Q2uVuKNHj2Ly5Mnw8vLCxIkTsW/fPjz65fnIkSOYNWsWfH194ePjg9mzZ+P7778X2o8f\nPw5/f38cPnwYwcHBCAwMxLVr13STLGP/wZd9GEPrEn1Tp06Fo6Mjjhw5gtmzZ8PKygoHDx4UZnXc\nvXs3du3ahYULFyI0NBQymQx79uzBwoULhfne9+/fj61bt2LVqlXw9fVFXV0d9u7di+LiYiQlJcHe\n3h7Hjx9HXFwc3NzcEBsbi1u3bmHmzJm9mT7rj3Q+mxBjeur7778niURC8+fPJ39/f2HRcyKiuro6\n8vb2pnfffVfrPR9//DGNGTOGFAoFERFt3LiR4uPjtfaRyWQkkUjou+++I6LW2TklEgmdPn26hzNi\nrGN82Yex/4iKisLUqVORmZmJNWvWaC2gnpOTA5VKhcjISLS0tAivCRMmoKWlBefOnQPQun7r6tWr\nUV9fj59//hlfffUVjh49CqD9cpejR4/WXXKMPULvl3FkTJfCwsLwr3/9C+Hh4Vrb6+rqAAALFy58\n7PvaVncqKytDXFwcMjIyIBaL4erqipEjRwJAu3sDD68axpiucfFnrBPa1ilOSEgQ1oV+mIODA9Rq\nNZYuXQoLCwucOHECHh4eMDIyQmFhIRITE3UdMmO/iC/7MNYJfn5+MDY2hlKphLe3t/BSqVTYvn07\nlEollEolysvLMWfOHHh6esLIqPXcKiUlBQCg0Wh6MwXGtPCZP2OdYGtri9deew1bt25FfX09xo4d\ni+vXryM+Ph6DBw+Gu7s7jI2N4eTkhAMHDsDGxgYWFhZISUnBZ599BgBobGzs5SwYe4DP/BnrpNjY\nWKxevRqJiYlYsmQJtm/fjoiICBw4cABisRgikQh79uyBjY0N/vKXv2D16tW4ePEiPvroI7i4uCAr\nK6u3U2BMwOP8GWOsH+Izf8YY64e4+DPGWD/ExZ8xxvohLv6MMdYPcfFnjLF+iIs/Y4z1Q1z8GWOs\nH+Lizxhj/dD/Ax5g0dPfawoUAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_estimates(table2)\n", + "plot(results, '--', color='gray', label='model')\n", + "decorate(xlabel='Year', ylabel='World population (billion)')\n", + "savefig('chap03-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model fits the data pretty well after 1990, but not so well before." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Try fitting the model using data from 1965 to the present, and see if that does a better job.\n", + "\n", + "Hint: Copy the code from above and make a few changes.\n", + "\n", + "Make sure your model starts in 1950, even though the estimated annual growth is based on later data. You might have to shift the first value in the series up or down to match the data." + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEPCAYAAACqZsSmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VFX6wPHvTCadhPSEkJCQQBLSSeglgKIoCBaKGuoq\nRdQVV1axLYssUhQUKUpRVJoFEBFR0GWpogIhhfRCCklIJX3SZub+/siPgTGETBr1fJ7H54Fz5957\nBpN3zpx7zvvKJEmSEARBEO4p8lvdAUEQBOHmE8FfEAThHiSCvyAIwj1IBH9BEIR7kOJWd0AfNTU1\nxMbGYm9vj4GBwa3ujiAIwm1PrVZTWFiIv78/JiYmjY7fEcE/NjaWyZMn3+puCIIg3HF27NhBnz59\nGrXfEcHf3t4eaHgTTk5Ot7g3giAIt7+8vDwmT56sjZ9/dUcE/ytTPU5OTri4uNzi3giCINw5mpoq\nFw98BUEQ7kEi+AuCINzGOioJgwj+giAIt6nS0lKOHz9OSUmJTntVVRXFxcVturYI/oIgCLcZtVpN\nfHw8J0+epLy8nOjoaDQaDXV1dZw/f54jR44QFRWFRqNp9T1E8BcEQbiNXL58mePHj5OWlqad8qmu\nrqasrAy5XE5ubi6SJKFUKsnIyGj1fUTwFwRBuA2oVCri4uI4deoUlZWV2nZ7e3uGDRuGtbU1CoWC\nnj17ao+lpKRQX1/fqvvdEUs9BUEQ7mbFxcVERUWhVCq1bQqFAl9fX7p164ZMJtO2u7u7k56ejlKp\npK6ujrS0NHx8fFp8TzHyFwRBuEVUKhXnz5/n1KlTOoHfwcGB4cOH4+bmphP4AeRyuU6wv3DhAjU1\nNS2+twj+giAIt0h1dTVZWVnavxsaGhIcHEy/fv0wNTXVeW2tqpZiZcMKH2dnZzp37gw0PBxOTk5u\n8b1F8BcEQbhFLCws8PLyAhoyGAwfPhxXV9dGo/2K2gpW/b6KD//4kIraCmQyGb169dIez8rKoqqq\nqkX3FnP+giAIN0l1dXWjEb2npycWFhY4Ojo2CvoABVUFrPlzDYVVhQCsPb2WBYMXYG9vj729PTU1\nNfj4+GBmZtaivojgLwiC0MHq6uqIi4vj0qVLDBs2DHNzc+0xuVzeZMLKjNIM1p1eR0VtBQAymYwh\n3YZgIG/I19O7d2+MjIyu+6HRHDHtc5u47777+Pjjj/U6Vltby5o1axg1ahT+/v7079+fuXPnEhsb\n2+x9KisrWb16NQ8//DBBQUGEhYUxf/580tPT2+29CIJwVV5eHkePHiU7Oxu1Wk10dLReKRtiC2JZ\ndWqVNvAbGhgyt89cwtzCtK8xNjZuVeAHMfK/I7355pskJCTw1ltv4eHhQWlpKVu2bGHKlCns2bMH\nT0/P655XVFREeHg4ZmZmzJ8/H29vb4qKivjkk0946qmn2L59u84aYkEQWq+uro7Y2FhycnJ02k1M\nTFCr1SgU1w+/9ep69iXt478X/qv9kDA3MufFfi/iYe3Rbv0TI/87TGVlJQcOHOCf//wnYWFhuLi4\n4O/vz/vvv4+trS3ffvttk+cuWrQISZLYvn07I0eOxNXVld69e7N+/XocHR1ZsWLFTXwngnD3ys3N\n5ejRozqB39jYmL59+xISEtJk4FdpVCw/uZxf035FkiTKK2ox1liwYPCCdg38IIL/HUkul3Py5EnU\narW2zcDAgC+//JLZs2df95zCwkIOHz7M9OnT6dSpk84xQ0NDVq1axdtvv61tS05O5tlnn9VODS1c\nuJDy8nLt8fvuu48tW7bw3HPPERQUxODBg1m3bp32eFFRES+++CL9+vUjODiYGTNmkJCQoD3u7e3N\nvn37dPpxbduFCxd45plnCAkJITQ0lOeff57s7OxW/GsJws1TW1vL2bNniYiIoLa2Vtvu6urK8OHD\nmy1GpZArCHQMRK2RuHChlKyzZljHjcbezKHd+3pXB//9+9OYM+cX5sz5hf370xod37UrSXv8118z\nGh3fvj1ee/zEicaB59NPY7THT5++1BFvoZFOnToRHh7Ojh07CAsL47XXXmPXrl3k5ubi4uKCra3t\ndc9LSEhAo9EQFBR03eM9e/bE3d0dgPz8fKZOnYqXlxd79+5lzZo1pKam8uKLL+qc89FHHzFixAh+\n/PFHZsyYwdq1azl79iwA77zzDiqViq+++orvvvsOc3Nz/v73v+v9Pv/5z3/i7OzM3r172bFjByUl\nJbz55pt6ny8IN9uVuf1Ll67GAhMTE/r3709wcDBGRkZ6XWeM1xi6mrhjnt4Pv6pHyctU8d//ZrZ7\nf1s0519TU0N+fj4VFRVYW1tjb2+v9xsS2s/bb79NYGAgu3fv5qeffmLfvn3IZDIefPBB3n33XSws\nLBqdc2XUbmlp2ez1d+7ciYuLCwsWLNC2ffjhh4SFhREZGUnv3r0BGDFiBE8++SQAs2bNYtOmTURF\nRdGnTx8yMzPx9vbGxcUFY2NjFi9eTGpqKhqNBrm8+TFHZmYmgwcPpmvXrigUCt5//32Kior0+vcR\nhFtBoVBQV1en/Xu3bt3w9fXF0NDwuq+XJImTWSfxd/DH2tT66nXkChY9+AYHNel8/30qvXrZEhrq\n2P79be4FdXV17N69mx9//JGYmJhGUw39+vVj1KhRPP744+KDoA0UCkWT6Vk1Gk2jOcJx48Yxbtw4\nlEolERER/Pzzz+zduxe5XM7q1asbXcPauuGHq6ysrNm+JCQkkJCQoA3y10pLS9O2X/mmcIWFhYU2\nydTzzz/PggUL+OWXX+jbty9hYWGMHTtWr8APMG/ePFasWMHOnTsZMGAAw4cPZ8yYMXqdKwi3gp2d\nHW5ubhQUFBAUFNRk7VyAspoytkZvJbYgll72vZgT9AKmplc/JBoGc+44OprTu7dDq1f03MgNg/93\n333HqlWrqKurY8SIETz00EN07doVMzMzysrKyMvL49y5c3zwwQesW7eOl156iYkTJzZ5vT///JNp\n06Zd91j//v3ZunVr297NX4wd68nYsddf+QIwcaI3Eyd6N3l8yhRfpkzxbfL4zJmBzJwZ2KY+XmFp\naamTye9aZWVlWFlZAQ3/hkePHtWOys3MzBg6dChDhw7Fzs6Obdu2Xfca/v7+KBQKoqKiCAxs3Of9\n+/dz+PBhVqxYgaGhIYMHD9Z5BnCFjY2N9s/X+7C/sjrhoYceYtCgQRw7doxTp07x8ccfs3HjRvbt\n24ednV2j81Qqlc7fp02bxujRozly5AinTp1i2bJlbNmyhX379olBhnDLVVdXo1QqG02z+vr64uvr\n2+QDXYDIS5Fsi9lGVV0VKrWGfadOEfmjEZv+NRtj46vnGRjICQlp/xH/FU32cM6cOVy+fJl33nmH\nsLCwJn/hZsyYQV1dHQcPHuTzzz/nl19+YfPmzdd9be/evTl58qRO22+//cYbb7zBrFmz2vA27nx+\nfn5ERkY2ak9MTESpVBIQEAA0rPbZsmULjzzyCH5+fjqvtbCwaHLOv3PnzjzwwAN8+eWXjB8/XmeT\nSW1tLZs3b8bGxgZjY2N69OjB/v37cXZ21n5lvXjxIkuWLGH+/PnXnVa6lkqlYtWqVYwbN46xY8cy\nduxYiouLGTRoEKdPn2b06NEYGhrqfNhlZl6d0ywpKWHdunXMmjWLiRMnMnHiRGJiYpg4cSKJiYnX\n/fAShJtBkiSysrKIj4/HwMCA4cOH68TGGwX96vpqvo79mj+y/2i4FhIx0YV0vuyHUY07332XwtNP\n92ry/PbWZE8ffvhhHnvsMb0uYmRkpP1F//7772/4umu/ClVUVLBy5UqeffZZhg4d2oJu332mTp3K\n448/zsKFC7Vr8ZOTk1m1ahUjRozQ5vEYMWIEffv2Zc6cOcybN49+/fpRU1NDZGQkGzdu5K233mry\nHq+//jrh4eFMnjyZl156iZ49e5KTk8P69evJz8/XThdNmTKFHTt28PrrrzN79mzq6upYvHgx5eXl\njaZ6rkehUBAXF8fZs2d5++23sbGxYf/+/RgaGmo/sIKDg/n2228JDQ1FrVazbNky7S9R586dOX78\nOBcvXuSVV17B1NSU7777DktLS7p3797Gf2lBaB2lUklMTAyFhQ1pFq7k37/e9OhfJRcn83nk51yu\nvqxtszG14Z9DpvC/bxsyclZW1qPRSMjl7T/Fcz1NBn99A/+1ZDIZjz/+uN6v//jjjzEyMuKFF15o\n8b3uNj169GDHjh2sW7eO6dOno1QqcXJyYvTo0Tr/PnK5nE2bNvHpp5/yxRdfsGTJEmQyGT4+Pixd\nupQHH3ywyXs4OTnxzTffsHHjRpYuXUpBQQE2Njb069ePd999l27dugENxSM+//xzVq5cyaRJk7Qr\nFj766CO9p1xWrVrF0qVLmTNnDlVVVfTs2ZP169fj5uYGNOw5WLRoERMnTsTBwYF58+aRn5+vfY8b\nN25k+fLlTJ06lbq6OgICAvjss8+a/dYhCO1NkiQyMzNJSEjQmZ7s1KmT9ue5KfXqer5P/J7D6Yd1\ndvX2d+nPU/5PYaowpTYnHj8/W0JDb7wMtL3JpBaUhk9KSqK6uvq6DyZDQkJadOPi4mKGDx/OokWL\nGD9+/A1fm52dzf3338/hw4dxcXFp0X0EQRBaq6qqiujoaJ1i6TKZDA8PD7y9vTEwMGjy3BpVDStO\nriC3Ipd6lZqMjHJ6eTrxbN8ZhHRpWbxsjebipl5LPWNjY5k3bx65ubmNjkmShEwm09nAo4+vvvoK\nW1tbxo0b16LzBEEQOpokSaSnp5OYmKizwtHCwoKgoCDt6rkbMVGY4G7lTtzFCyQlXaaTshsehhPo\nPbb5aaKbQa/g/+677yKXy1m2bBlOTk56L9e7kR9++IEnnniiyTWwgiAIt8qZM2e005DQMNrv0aMH\nXl5eLYp/T/o/ydm0eKrLAuhSF0Dy+RrS0krp0aP5D4+Oplfwj4uL44MPPmDkyJHtctOUlBQyMzPF\num1BEG5Lzs7O2uBvaWlJUFCQdrn19UiSxO/Zv9PbqTemhlfz9ZsoTPjoiWV8U5fEuXP5TJnie1sE\nftAz+NvY2Nxwbqulzp49i729fZPZJwVBEG6lrl27kpeXh6WlJT169LjhaL+0ppSt0VuJK4gj2i6e\n8Z5P4+BwTb5+mZwnnujJuHGemJvfPntU9Ar+Tz/9NJs2bWLAgAGNqtC0RkJCgrZ0mSAIwq2i0WhI\nS0vDzs5OZx5fJpMRGhra7M7aMzln2Hl+J1X1VRQUKPn4930kmpvx4RtP6yzZNDZWYGzcYW+jVfQK\n/jk5OaSmpjJkyBC8vLwafQDIZDI+++wzvW9aUFCgLT4sCIJwK5SXlxMVFUVZWRmdOnUiLCxMZ4bj\nRoG/qq6Kned3cja3IZFhba2alJRSnKt7oyy24tdfMxg16vbek6JX8E9PT8fHx0f79yv5W1prw4YN\nbTpfEAShtTQaDSkpKaSkpGjX3ldWVpKVlaXXJsLYgli+jPqS8tqrKc67WjsypF84Zw+psbU1xc2t\n+QSKt5pewb+pfDGCIAh3ktLSUqKioqioqNC2GRgY4O3t3ezu9RpVDbvjd3Mi8wQSEjIavhkM7jaY\nSX6TMJIb0808g+HDXXVy9NyuWtTD1NRUTp8+TWVlJdbW1oSGhuLh0b7VZQRBENqbWq0mOTmZtLQ0\nnZ22NjY2BAUFNSpw9FelNaW8/9v7FCoLyctTcim3kqH9PJkRMp1Ax6u5pm73qZ5r6RX8NRoNCxcu\nZM+ePTr/cDKZjEcffZRly5Z1SMrRe8l9993HhAkTeP7552947MquvdGjR/Phhx82eq23tzfvvfce\njz76aKNjV869lomJCe7u7kyaNInw8HDt/8fvvvuON954o8n+fvTRRzz00ENAQ5rnNWvW8Oeff1JZ\nWUmXLl144IEHeP7556/7SzVnzhyOHj3Kt99+22RxGUFoLyUlJURHRzca7ffq1Qt3d3e9Yldn4844\nmDtw8lwSBYXV2NX3IODy0zqB/06jV/DftGkT33//PfPnz2fs2LHY2dlRWFjI/v37WbNmDZ6envd8\nVs6b7aeffmLMmDGt2nvx8ccfExgYiCRJVFRUcOTIEZYvX052drZOARcDAwOOHTt23WtceWBfWFhI\neHg4I0eO5PPPP8fCwoKkpCSWLVtGbGxsozTdhYWFnDx5End3d7755hsR/IUOVVdXx++//66zS9fW\n1pagoCCdzLbNkclkTAuaRmTKBWwyPbGv9yYjuZbaWtUdMcVzPXr1evfu3Tz33HPMnDlT2+bk5MSs\nWbOora1l9+7dIvjfZK6urixatIi+ffu2eOVU586dtdlVHRwc8PT0RKFQsGLFCsaPH0+PHj20r71R\nQQqAgwcPAg27wK9wcXHB3Nyc6dOnk5iYqLNY4IcffsDBwYHJkyfz4Ycf8uabbzb7lVsQWsvIyIie\nPXuSmJiIQqGgV69euLm53XC0r9KoOJ55nDC3MBTyqyHS2tSazyZ/wOaq89jZmfLooz0wNGy//U83\nm177lAsLCwkNDb3usZCQEJ2alcLN8eqrr1JfX8+yZcva5XoTJ07EyMiIn3/+uUXnyeVyKioqiIiI\n0Gnv27cvP/74Y6PVE99//z0DBgzggQceoLq6mh9++KHNfReEK66Xp7JHjx50796dYcOGNTvNk12e\nzbITy/g69mtW7ttKWVmtznEDuQFz5gQxYYL3HR34Qc+Rv6urK5GRkQwcOLDRscjIyGZHh7fK/qT9\n/Jj8o16vHeo2lCmBU3Tatsds50TmCb3Of8TrEcZ6j21xH1vL1taWN954gwULFjB69GjCwsLadD1z\nc3NcXFxITk5u0Xljxozhs88+Izw8HD8/P/r370///v0ZMGAAPXv21Hnt+fPnSU5OZv78+XTp0oXg\n4GB27dpFeHh4m/ouCABFRUXExsbSt29fnSkdmUyGv7//Dc9Va9QcSjvEj8k/oqypIyW5hJMle1Bd\ndOatv4/S+cC4W55v6jXynzBhAhs2bOCLL76goKAAjUZDQUEBn3/+ORs3buSJJ57o6H4K1/HYY48x\nfPhwFi5c2GQJyJb4aylJtVpN7969G/133333aV9jZWXFnj17mD17NlVVVWzZsoU5c+YwePBgvvrq\nK53r7927F0tLSwYNGgQ0fHDEx8cTExPT5r4L9y6VSkVMTAy///47FRUVREdHX/cbQFNyK3JZ8dsK\n9iXuQ61RU1OtorSkHo/qMLLiZERE5Dd/kTuQXiP/qVOnkpCQwPLly1mxYoW2XZIkxo0bx9y5czus\ng/eKlhZwv+Kdd95hzJgxvPfeeyxevLhNfaisrNT5FmdgYHDdymx/zXNibW3N/PnzmT9/Prm5uZw6\ndYqdO3eyaNEinJ2dGTZsGHV1dRw4cID7779fWxDmoYceYunSpXzzzTeiNKPQKoWFhURHR1NdXa1t\nKy8vp6qqqtlnSRpJw69pv/JD0g+oNFeLtPR278VwaRBRv9Vw/8huBAbenjMbbaVX8DcwMGDFihXM\nnDmTM2fOUF5ejqWlJX379m301f52MtZ7bJumYqYETmk0FdRR9C3g/ldOTk4sWLCAhQsXMnr06Fbf\nv7q6mvT09EaZVpurVLRp0ybc3NwYNWoU0JANccKECYwbN46HHnqIY8eOMWzYMP73v/9RWlrKvn37\ndOb5NRoNP/30E2+88YZ48Cvorb6+nvj4eLKysnTanZycCAgIwMTE5Ibn51Xm8UXUF1wouYBKpcFQ\nYYBCrmCc9zge8HyA+r4acgZX4uHRdCbPO12L1ij17Nnztg72dzJ9C7hfz6RJk/jpp594++23W33/\nXbt2odFoWvwBEhMTw88//8zIkSN18qIYGRlhamqqLSi/d+9eHB0d+fTTT3XOj4iIYNGiRezfv5+n\nn3661f0X7h35+fnExMRQU1OjbTMyMsLf3x9nZ+dm5+TTLqfxwe8fUFldQ0pKCSqVhkeH9eVvvf+G\ns4UzAMbG8rs68MMNgv+oUaP46KOP8PHx4cEHH2z2H/TQoUPt3rl7ib4F3JuyZMkSxo7V71tOWVkZ\nhYWFSJJEeXk5x48fZ/Xq1cyePVtbx/eKK8Wq/8rU1JROnTrxwgsvEB4ezuzZs5k5cybdunXj0qVL\n7N27l7KyMp588knt2v4XXnihUTZXT09PNm/ezK5du0TwF26orq6OuLg4srOzddqdnZ3x9/fHWM+0\nme5W7tibOnLi1BnU9dCtpj9BlZO0gf9e0WTwDwkJ0T4xDwkJuWuecN+u9C3g3hQXFxfmz5/Pf/7z\nn2Zfe+0uYisrKzw9PfnPf/7TaFewWq1myJAh173G5MmTWbhwIb169eKbb77hk08+4dVXX6W0tBRL\nS0sGDx7M119/jZ2dHZ999hkymYxJkyY1uo6BgQHTpk1j2bJlnD9//obfcIR7W0VFhU7gNzY2JiAg\ngC5durToOgZyA2b2eYasjCpqzwRiITmgqmvv3t7+WlTA/VYRBdwFQYCG5cIZGRl07doVf39/7eKB\nplyquMSJrBNM9J3YaACrVmv48ss4hg93vSuneFpdwP3a+pX6cHR0bHnvBEEQrkOSJGpraxs9uO3V\nqxcODg7NxhuNpOFQasO6/fLKak7/r5Ils6ZhYnI15BkYyHnmmXv3m2aTwX/YsGEtmupJSEholw4J\ngnBvq62t5fz581y+fJnhw4frjO4VCkWzgT+7PJut0VvJLM0kN7eSC+llGKgPELgnlGmTRS6pK5oM\n/kuXLhXz/IIg3DSSJJGTk0NcXBx1dQ2T8LGxsYSEhOh1vkqj4ueUn/kp5Sc0UsOeGUNDOeb19ngp\nH+TPU4WMHV2DtfWNl4HeK5oM/mLXriAIN0tNTQ0xMTGNppsVCgWSJDU7EM0szeTL6C/JKc+5eq5c\nwayh4aQqHagor2faND8R+K/RZPBvSalFmUzGnDlz2qVDgiDcOyRJIjs7m7i4OJ3ysGZmZgQGBjab\nN6xeXc/+5P38kvYLZeU1DYXSjQzwsPZgevB0nDo5oexaj4mJQqegunCD4L969Wq9LyKCvyAILVVd\nXU1MTAwFBQU67e7u7vTq1avJlCbXOph6kJ+SfyYjo5zcnErsbS3414SZ3OdxH3JZQxoSMzPDDun/\nna7Jf93ExMSb2Q9BEO4h2dnZnD9/HpXqak4dc3NzgoKCtLvC9fGA5wP8eP4wOTm5WKm64pYxEsti\nP+SeeuWsvKfdmSVoBEG4410J/DKZjO7du+Pt7d3saF8jabQjegAThQnzhs3GqSyCS6cd8Pezx9Pz\n7luz3xFEegdBEG66rl27kpubS1VVFUFBQdjY2Nzw9VV1VXwb9y0aSUN4r2mYml6dyvG19+WNyV7E\nBBTSt6+TWKWoJ5HeQRCEDlVVVYVKpdIpNyqTyQgODsbAwEAnIeBfSZJExKUIvo79muKKUlLTSok8\nYMxHb4ZjYHDNNwATBf36tSzNw72uyeB/bXnA5cuX35TOCB3r7NmzTJ48We80Gd999x1vv/028fHx\nN6F3wt1GkiTS09NJTEzE1NSUsLCwRplfb6S0ppSd53cSnReNRiNxLrKAujo1SbWJ/PprJg891P2G\n5ws3pvecv0aj4ciRI0RERFBZWYmtrS39+vW7bmlHQRDubZWVlURFRVFSUqL9e3JycrPZaaHhQ+Nk\n1kl2x++mRtWQtlkul+HdrQua6N7YqjwoLa1t5ipCc/QK/kVFRcycOZPExESMjIywsbGhuLiYDRs2\nMHDgQNatW4eZmVlH91UQhNucJEmkpaWRlJSkU5nO0tISZ+fmUyYXVBWwLXobycW6taTD3MJ47MHH\n2fFlCsOGueLtfeNnBELz9FoPtXz5cgoLC9m8eTMxMTEcPXqU8+fPs3btWuLi4nRKOwqt4+3tza5d\nu3jqqacICAhg9OjRREVFsXPnToYNG0ZISAivvPKKdts7NEzjTJkyhd69ezNo0CCWLFmiU84uMTGR\nKVOmEBQUxCOPPEJcXJzOPTUaDRs2bGDEiBEEBwczfvx4jh07dtPes3B3qaio4OTJkyQkJGgDv1wu\nx9vbm6FDh+rM+f+VJEkcSj3E4mOLibwYR3xCMWq1BgdzB+YPms/kwMmYG5sxe3aQCPztRK+R/5Ej\nR/jXv/7F0KFDddpHjhzJ5cuXWblyJe+8806HdLAtkpKSSE5Obv6FNJQr/Gsd2ZiYGDIzM/U638vL\nC29v7xb38VoffPAB7777Lu7u7rz++uvMnj2bgIAANm/eTHp6OvPnz6dPnz6Eh4cTHR3NjBkzmDp1\nKu+88w7Z2dksWrSI7OxsNmzYQFlZGTNmzGDAgAHs2bOHjIwM/vWvf+ncb9WqVfz6668sXryYbt26\nceLECV588UU+/fRT+vfv36b3Itw7NBoNqamppKSk6Iz2raysCAoKwtLSUq/rpF5OJePiZdIvlCFJ\nMiysAlg4di6GBmKTVkfQK/gbGRlhYWFx3WP6fJUT9DNp0iTuu+8+AB599FEWL17MokWLcHV1xcvL\ni08//ZSUlBQAtmzZgr+/PwsWLAAaKmItWrSI2bNnk5KSwpkzZ6ivr+fdd9/F3NycHj16kJ+fry3y\nXlVVxdatW1m7dq32Q93NzY3ExEQ2bdokgr+gF0mSOHXqlHZuH66O9j09PfVeJSiTyQgPCOdEQiRm\nKiO8qkdSF+1EVYUaKysR/DuCXsH/6aef5qOPPiIoKAg7Ozttu1KpZNOmTUycOLFFN921axeffvop\nly5dokePHrz66qviwTHolFA0NTVFLpfrrMoxMTHRTvukpKQwbNgwnfP79OmjPZaSkkL37t21y3UB\ngoODtX9OS0ujrq6OefPmIZdfnf2rr6/X+X8sCDcik8lwcnLSBn9ra2uCgoKaHCxekXo5FbfObjqj\nemtTa957dCH7KgpQVqmZNs0PKyuRiK2jNBn8n3nmGe2frzzEGTlyJCEhIdja2lJeXs65c+dQqVQ4\nODjofcO9e/fyzjvvsGjRIvr27cvOnTt5/vnn2b9/f7tX6fL29m7TVExgYGCjqaCO9NfdjTKZrMmR\n01+LXEDD/6cr15HJZPy1SJuh4dVftCvL7NauXYubm5vO6679MBCE5nh6elJQUICjoyMeHh43HO0r\n65V8l/Bl+vvHAAAgAElEQVQdJzJP4GcyiCmhk7CxMdUe72bVjZnPdsHYWCRi62hNBv9rM+wB2pza\n9fX15OXlAeDj4wPQKDFTUyRJYu3atcyaNYsJEyYAsGDBAv744w8iIyNFicYW8PT0JDIyUqctIiJC\ne6ysrExbRP3Kg7bY2Fjta93c3DA0NCQ/P5+wsDBt+7p161Cr1cybN+8mvAvhTqJWq0lJScHV1VXn\nG6VMJmPgwIHNTvFEXorkq9ivKKpsmNc/kb+L0jh7/jXvYZ1zr929K3ScJoP/tm3b2v1mFy5cICcn\nh9GjR2vb5HI5+/bta/d73e1mzZrF448/zooVK5g4cSI5OTm88847DBs2DE9PTxwdHVm/fj2vvfYa\n8+fPJz8/nzVr1mjPNzU1ZcaMGaxatQpzc3MCAgI4cuQI69ev5913372F70y4HZWUlBAVFUVlZSWX\nL19uFOxvFPjLasr4OvZrzl06B0C1UkV+vhLbeg8uJNZw5kye2J17CzQZ/CMiIggNDW3xBc+ePaud\ne/6rjIwMAMrLy5k2bRopKSl4eHgwf/58vav1CA28vLzYsGEDq1evZtu2bVhZWTFmzBhefvllADp1\n6sSXX37J4sWLmThxIg4ODsyaNUv7wBfg5ZdfxtDQkPfee4+ioiJcXV1ZvHixKOQjaKnVahITE0lP\nT9dOIxYXF3Pp0qVmF3tIksSpi6fYHb8bZb1S2+5ib0+g71gyfregTx8nfHzE0s1bQSb9dWL4/40b\nNw5PT0/mzp2Ll5dXsxeKiYlh8+bNZGRksH///uu+Zt++fbz22mt069aNl156CQ8PD3bt2sWePXv4\n/vvv8fT0vO55zVWhFwSh/RUXFxMdHU1VVZW2TaFQ4OvrS7du3W442i9SFrE9ZjvxhfGoVBoMFQ1p\nHQZ3G8wE3wnI1UYkJ5cQGHjjYi1C6zUXN5sc+e/Zs4d169Yxfvx43N3defDBBwkMDMTFxQVTU1PK\ny8vJz88nIiKC48ePk56ezpQpU1i1alWTnbnywPG5555j7NixAPj6+hIREcFXX33F22+/3db3KwhC\nG6lUKu1o/1r29vYEBgY2u5s/szSTladWUq5UkpJSQn29hpGDfJkePA0fu4bnhBgiAv8t1mTwNzQ0\n5B//+Afh4eF88cUXfPvtt6xfv17n016SJJydnRk1ahQbN27E0dHxhje7siro2m8SMpkMDw8PsrOz\n2/peBEFoo6KiIqKjo1Eqr07TGBoa4uvri6urq17r9l07u2Jv6sCx306jqtfQtTaEgbWTrwZ+4bbQ\n7Dp/R0dHFixYwIIFC0hLSyM7O5uKigqsra1xdname3f9M+v5+flhZmbG+fPnCQgIAK4uIxXr/AXh\n1qqqquKPP/7QWSLs6OhIYGDgdZcWN0Uuk/O3kBlcSC+j7mwglpouqOuaTtss3BotquTl6enZ5Ly8\nPkxNTZk+fTqrV6/Gzs4OLy8vdu7cSVZWls5KFEEQbj5zc3Pc3d1JT0/H0NAQf39/unbtesPR/sWy\nixzPPE54QLjO61w7u/LZ9Pf4kjiGD3fFw0NU17rd3PQyjvPmzcPU1JSlS5dSXFxMr1692LJlCx4e\nHje7K4JwT5MkqVFg9/HxQZIkvLy8MDY2bvJclUbFgeQDHEw9SGVVLRFHq1k6ewYmJldDioGBnGee\nCeiw/gttc9ODv0wmY86cOcyZM+dm31oQhP+Xn59PUlIS/fv31wnyCoVCOyXblKyyLD6P/Jzcilxy\nL1Vy4UIZCvVBvtndl+lTgjq660I7EQXcBeEeUldXR1xcnHaBRWxsrN77ea4d7Wukhuydhgo5FnVd\n8Kp+gNO/FzJ2dLVOugbh9iWCvyDcIy5dusT58+eprb1aBau4uJja2tobTvFAw9z+F1FfkF1+dVWe\noYEhLwyfQXKtDSUltUyf7icC/x1EBH9BuMvV1tYSGxtLbm6uTruLiwt+fn43rKWrkTQcTD3I/qT9\nVFXXYSCXYWRkQE/bnkwLmoaDuQODZtSLRGx3IL2Cf21tLRs3buTo0aMolcpG2SIBDh061O6dEwSh\n9SRJIjc3l9jYWJ0KcCYmJgQGBja7LwfgYOpBvk/8nkuXqki/UIaNlTkLJ87ifo/7tQ+LRSK2O5Ne\nwf/dd99l165d9OvXj549e4qUv4Jwm6utrSUmJkabgfcKV1dX/Pz8dNJ738h93e/jwPnDpKbmYKl2\nwj1zFGb5vZB5ilH+nU6v4H/o0CH+8Y9/MHv27I7ujyAI7aCoqEgn8JuamhIYGNii2hsAJgoT5g2b\nQ+eS4xSddqGrsyVdu3Zq7+4Kt4Bewb+uru6mFjURBKFtnJ2dyc3NJS8vDzc3N3x9fRsVC7qWJEn8\nmfMnmaWZPOn/pM4xL1svFk315IhLFvff74ZCIb753w30Cv5Dhgzh+PHjDBgwoKP7IwhCC0mSRF1d\nnc6KHZlMRkBAAN27d2+2LGdlXSXbY7YTeSmSwiIlEb+oWTbvKQwMrgZ5IyMDRo3SP5WLcPvTK/iP\nGzeOt99+m5KSEkJCQq6b5+NKlk5BEG4epVJJTEwMSqWSYcOGYWBwNYeOiYlJszl54gri+CLqC8pq\ny0hOLiE/X0mO+jA//9yPRx7p0dHdF24hvYL/3//+d6Ch/u7evXsbHZfJZCL4C8JNJEkSmZmZJCQk\noFKpAEhKSsLX11ev8+vV9exJ2MOR9CMAyJBhZmZIl7oAPKqH8McfeYwa1R1DQ5GQ7W6lV/A/fPhw\nR/dDEAQ9KZVKoqOjKSoq0rZdWXZ5vXw9f5Vdns1n5z4jt+Lqun9LY0uWP/4iB7dW4+RkzqRJ3iLw\n3+X0Cv5du3bV/lmpVFJVVYWVlZXey8UEQWg7SZLIyMggISEBtVqtbe/UqRPBwcFYW1s3e/7h9MPs\nTdjL5dIqzDsZYiCXE+QUxNTAqVgYW9DrH2oR9O8Reu/w/fPPP1m5ciVxcXHaTV6BgYG8/PLLIhe/\nIHSwqqoqoqKiuHz5srZNJpPh6emJl5eXzlx/U/Yl7eNA8k9kZpaTfbECF2cr/vX4cwzpNkT7bUEE\n/nuHXsH/zJkzPPvss3Tv3p2XXnoJW1tbCgoKOHjwILNmzeKLL75osmi7IAhtk56e3mi0b2FhQXBw\nMFZW+ufJH+Y2jF1nfubixQos1A44Jj2EdYWPXtW5hLuPXsH/o48+YuDAgWzatEnnB+X5559n9uzZ\nrF27li+//LLDOikI9zKNRqMN/DKZjJ49e7Zqp721qTXz75/DpstHUcf3wq+XA127WnREl4U7gF7B\nPzY2ltWrVzcaIchkMiZPnswrr7zSIZ0TBAE8PDzIzc1FkiSCgoLo3Llzs+cUVBWQdjmNga66U7Ih\nziGsfNafc+fyGTrURYz672F6BX9LS0udgs7Xqqqq0mu+URCE5pWXl2NgYIC5ubm2TSaT0bdvX4yM\njPQa7Z/NPcu26G3kFZbxh6acl6c/qBPkO3UyIizMtUP6L9w59PreOGDAANauXUt+fr5Oe35+PmvX\nrhUPfAWhjTQaDcnJyZw4cYKoqKhGmXNNTEyaDfz16nq2x2xnU8Qm4pLyiIktZHvsVk6cvNiRXRfu\nUHqN/OfPn8/48eMZNWoUoaGh2NnZUVRUREREBJ06deLVV1/t6H4Kwl2rrKyMqKgoysvLAbh8+TLp\n6ektqmudV5nHpohN5JTnIOP/Uy1rOuOtfIhff8li8CAXnXQNgqBX8Hd0dGTv3r1s2bKFiIgIsrOz\nsbS0JDw8nL/97W/Y29t3dD8F4a5zZbSfmpqqM9K3trZuUfbNMzln2BazjVrV1Qpd4wfdR/aBnrh4\n2jB1qq8I/EIjeq/zt7e3Z8GCBR3ZF0G4Z5SWlhIVFUVFRYW2zcDAAB8fH7p3767Xg1iVRsWuuF0c\nSj6MkZEcGTIMDQx50u9JhnQbQpVvPebmhuKhrnBdTQb/DRs28MQTT+Dg4MCGDRtueBGZTMacOXPa\nvXOCcLdRq9UkJSVx4cIFndG+ra0tQUFBOg96b6RYWcymiE2cTUsgObkEV1cLQr09mdNnDi6WLkDD\ng11BaEqTwX/16tUMGjQIBwcHVq9efcOLiOAvCM1Tq9WcOHFCZ7SvUCjw8fHB3d29RSP0iroKItOT\niY8vBqAqxZ6n738BF0undu+3cHdqMvgnJiZe98+CILSOgYEBdnZ22uBvZ2dHUFAQZmZmLb6Wu5U7\ncwZP5a2sddjl9yfAYiBmRqbt3WXhLqbXU6B169Y1WuZ5RU5ODkuWLGnXTgnC3crHxwdLS0sCAwMZ\nMGCA3oH/r0s/Ae7zGMHn0z9gYp8x/Ovtgbi7N7/5SxCu0Cv4r1+/vsngHxUVxTfffNOunRKEO51K\npSI+Pp7a2lqddoVCQVhYGG5ubnpP82SUZrDof4v59bdYnXaZTEYvV3emT/fHzExk2BVapslpn6ef\nfpqoqCigYdTx5JNPNvVSAgIC2r9ngnCHKiws1FbXqq6uJjQ0VOe4vkFfkiROZJ3g0z+2ERtfwE+V\n6dhZLKV3oHNHdFu4xzQZ/JcsWcIvv/yCJEmsWbOGSZMm4eSk+zDJwMAACwsLRo4c2eEdFYTbXX19\nPfHx8WRlZWnbcnNzcXd3x9bWtmXXUtez4/wOfr/4O+kZJVRXq1DIy/l46zE+WjxBjPSFNmsy+Ht6\nejJ37lygYTPKxIkTcXR0vGkdE4Q7SUFBATExMVRXV2vbjIyM8PPzw8bGpkXXKlIWseHsBi6WNaRl\n6NnTCso741M5hpnhA0XgF9qFXpu8XnzxRQBKSkqor6/XPnySJAmlUklERAQTJ07U64apqamMGTOm\nUfuOHTtETQDhjlNfX09sbCzZ2dk67V26dCEgIABjY+MWXS+uII5Pz32Ksv5qIsVhHkNZEDgaa0sz\nHBz02wcgCM3RK/gnJSXxz3/+k9TU1Osel8lkegf/5ORkrK2t2b9/v057S4pSCMLtIC8vj/Pnz1NT\nU6NtMzIyIiAggC5durRo3b4kSfyYfIBPDu/ExMQAe3szDOQGPOX/FEO7DRW7dIV2p1fwf++99ygt\nLWXBggUcOXIEIyMjRowYwfHjxzl+/Dhbt27V+4bJycn06NFD5AMS7mglJSWcOXNGp83Z2Rl/f/8W\nj/Y1koYPTqxhz8njlJbWYmAgo6utPf8Y8iIe1vondxOEltBrqWdUVBTz5s1jxowZjB49murqasLD\nw9mwYQMjR45k27Ztet8wJSWlRdkKBeF2ZGVlRZcuXQAwNjamT58+hIaGtjjwA8hlcrpYOlFb21Ct\ny6LWmaDyp0XgFzqUXiP/uro63N3dAXB3d9fZ8fvEE0/w73//W+8bpqSkUFtby6RJk8jJyaFnz568\n8sorBAYGtqzngnATSZKkM/Uik8kICAjAyMgIHx8fjIzalkfnqcCJxOekcu5wPXOGTWbc2J5t7bIg\n3JBeI39nZ2ftAy13d3cqKyvJyckBGkY9ZWVlet2spqaGixcvUllZyWuvvcYnn3yCg4MDU6ZMIS0t\nrZVvQRA6jiRJ5OTk8Ntvv+kUUIeGn/3AwMAWB/46dR2XK8p12gzkBrzz8Ot8/e83eexRL+RyMccv\ndCy9gv/IkSNZuXIlv/76K46Ojnh4ePDRRx+RlpbGF198gaurfiXhTExMOHPmDFu3bqVPnz4EBgay\nfPlyXF1d2blzZ5veiCC0t5qaGs6ePcu5c+coKSlplxxXeRV5zN3xJuOXvEVGRqnOMYVcQefOLZ82\nEoTW0Cv4v/jiiwQHB/Ptt98C8MYbb3Do0CEeeeQRfvvtN/7+97/rfcNOnTrpjJTkcjk9evTg0qVL\nLey6IHQMSZK4ePEiR48eJS8vT9uel5eHSqVq9XXP5p5l5tbXOBWbQJ50gbe2fEZtbeuvJwhtodec\nv6mpKevWraOurg6AoUOHsn//fuLi4vDz86Nbt2563Sw2NpZp06axdetW/P39gYY0t4mJiTz00EOt\nfAuC0H6qq6uJiYmhoKBAp93d3Z1evXqhUOhd/0jrStGVoxlHsXFQkJEtQ1LLMZabUlFRh7Fxy68p\nCG3Vop+6a0fs3bp10zvoX+Hj40PXrl1ZuHAh//73vzEzM2Pz5s2UlJQwbdq0Fl1LENqTJElkZWUR\nHx+vM7o3MzMjKCgIOzu7Vl03vzKfzec2a3frmpoY0qdXD/owjtlPDcPIyKBd+i8ILdVk8H/wwQdb\ntLHk0KFDzd9MoeDTTz/lvffe47nnnqO6upqQkBC2b9/e4twngtBelEolMTExFBYWattkMhnu7u74\n+Pi0arQP8P3Zw+xJ/gYzi6u/RyFdQpj20DRMDUXufeHWavKnOiQkpEN2FTo6OrJq1ap2v64gtFZe\nXp5O4Dc3Nyc4OLjFOXmuqK6r4c2v13Ao7hiGhnJCQx0xNTJmgu8EhrsPF7t1hdtCk8F/+fLlN7Mf\ngnDLdO/endzcXEpLS/Hw8MDb2xsDg9ZPx3wXt4//JZ9AkqCuTkNhhgEfP/M6rp31WxUnCDeDXt9n\nz5071+xrQkJC2twZQehokiRRX1+v8/xKJpMRHBxMfX091tbWbb7H+IBHOZr0ByfPJeNvFcKqJ1/G\ntbOY1hRuL3oF//Dw8Ga/qiYkJLRLhwSho1RWVhIdHY0kSQwePFjnZ7pTp06tvm5trUpnxY6JwoS3\nH3qZE13iCB/6sNiwJdyW9Ar+10vcplQqOXv2LPv27WPt2rXt3jFBaC+SJHHhwgWSkpK0u3TT09Pb\nnGNKo5HYtO8gB34/zZZXX8Xe/mo9XjcrN9yGubXp+oLQkfQK/v369btu+/DhwzEzM+OTTz5h48aN\n7doxQWgPFRUVREVFUVp6dTetTCZrlKqhpWpVtby08UOOZ54A4N0tu/nwtaniYa5wx2jz7pI+ffqw\nefPm9uiLILQbjUZDWloaycnJaDQabXvnzp0JCgqic+fOrb72hZILfB75ORU22ciyQJIgpvY4FRVP\nYmkp0jMId4Y2B/8jR45gbi6qCwm3j/LycqKionQSDsrlcry8vPD09EQu1yurSSNqjZqfUn7ip5Sf\n0EgaLDoZ4dbNEg8zP5Y9NQ9LUxH4hTuHXsH/mWeeadSmVqvJy8sjKyuLWbNmtXvHBKE1kpOTSU5O\n1pYahYbc+8HBwVhYWLTqmpIk8fOJGI6WfUcZV3P9mChM+Pejf6N/1/5iuke44+gV/Ovr6xu1yWQy\nPD09mTlzJuPHj2/3jglCa1xbY1oul+Pj44OHh0erg3N5eS3/+vxz/pvzEyZmMkJ6OyKXy+hp25O/\nBf8NWzOxhFO4M+kV/FtSqUsQbiVvb2/y8vIwMTEhKCioTUs4AfYl7uNw3o9okFAq4VKOkpdGTWOk\nx0jkstZNHwnC7aBFc/7Hjh0jIiKCsrIy7OzsGDBgAH379u2ovgnCDZWWlmJqaqpTOlGhUDBo0CBM\nTEzaZSpmXOAo9p//lfNJufi7erJ84nw87cUSTuHOp1fwLykpYdasWcTGxmJkZISNjQ3FxcV8/PHH\nDB48mPXr17eqdqkgtIZarSYpKYkLFy7g5OREnz59dI6bmrY+aVpNjQoTk6u/Fp1NOvPaQ3M41zOZ\nZ4ZMQiEX6ZeFu4Ne31uXLFlCdnY2GzZsICYmhqNHj3L+/HnWrVtHbGwsK1eu7Oh+CgIAly9f5tix\nY6SlpSFJEpcuXWqXQkB1dSr+8+VOpix+n6qqOp1jfbr2YXZYuAj8wl1Fr+B//PhxFixYwPDhw3Xa\n77//fubPn8+BAwc6om+CoKVSqYiNjeXUqVNUVVVp2+3t7du0Zh+gpLqEpz58g51xO4hXneTDL37R\nWS0kCHcjvYYyBgYGTS6Ts7e3v+5qIEFoL8XFxURFRaFUKrVtCoUCX19funXr1uq5fUmSOJF1gj3x\ne5A7lUAxSEBU1Qnq6x8WhVaEu5reid0+/PBDAgICcHR01LZXVlayadMmpkyZ0mEdFO5dKpWK+Ph4\nMjMzddodHBwIDAxs09x+YVUh22K2kVSUBICtjSkuXS0Y7DyMNx5/BiOFCPzC3U2v4F9QUEBBQQEP\nPPAAoaGhODg4UFpayrlz56iqqsLIyEi7EUwmk/HZZ591aKeFu19tbS0nTpygurpa22ZoaIifnx8u\nLi6tHu0XFFayZPt2Kl2iMDS5OrXj2MmR16a+hqeNZ5v7Lgh3Ar2Cf2ZmJj4+PkDDaCw3NxdA26ZW\nq9ucKEsQrmVkZISVlZU2+Ds5OREQEICJiUmrr3ngeCTv7l9PiewSnZXGBAbaIZfJedDzQcZ6jcXQ\nwLC9ui8Itz2xyUu4LclkMgICAqioqMDLywtnZ+c2r9s/rTxIqfwSSFBeVou52o6Xh8/BzUqs2xfu\nPS1au5aamsrp06eprKzE2tqa0NDQNudEF4S6ujpSU1Px8vLSKZZubGzM8OHtV/N27pC/cTo1luLi\naubc9yTTB48XyzeFe5ZeP/kajYaFCxeyZ88enSVwMpmMRx99lGXLlonEVkKr5OXlERMTQ21tLZIk\n4efnp3O8NT9XkiTx2+kMrC3M8fN10LY7dXLirbEv4Na5G65WLm3uuyDcyfQK/ps2beL7779n/vz5\njB07Fjs7OwoLC9m/fz9r1qzB09NTZPYUWqSuro7Y2FhycnK0benp6bi5ubUpH09xsZKlX+zlv3n7\n8DXpz9aFL2NoeHXlzhC3QW3qtyDcLfQK/rt37+a5555j5syZ2jYnJydmzZpFbW0tu3fvFsFf0Ftu\nbi6xsbHU1tZq24yNjQkMDGxT4C+pLuGL+G38UvwrKpmGmNpjfHdwOE+ODW2PbgvCXUWv4F9YWEho\n6PV/gUJCQti0aVO7dkq4O9XW1nL+/PlG6RhcXFzw8/PDyMioVdfVSBqOZRxjb+JealW1uLtbkpZa\nioerPb1CWr86SBDuZnoFf1dXVyIjIxk4cGCjY5GRkdjb27d7x4S7hyRJ5OTkEBcXR13d1bw5V9Iu\nOzg43ODsphUXVxN1IYXTNQfIKM3QtnfpYs6D3iN4dlA4ZoZmTV9AEO5hegX/CRMm8MEHH2BmZsbo\n0aOxs7OjqKiIAwcOsHHjRubMmdPR/RTuYHl5eURGRuq0devWDV9fXwwNW762XqXS8NOhZD45/BU5\nJpH06eOgndfvYtGFKYFT6GHTo136Lgh3K72C/9SpU0lISGD58uWsWLFC2y5JEuPGjWPu3Lkd1kHh\nzufk5IS1tTUlJSWYmZkRGBjYpm+LlyouseLPpVxWFIMK0tPL8PVxYHTP0YzqMUos3xQEPeid2G3F\nihXMnDmTs2fPUlZWhqWlJX379qVnz54d3UfhDiNJks4STZlMRnBwMBkZGfj4+Ois5W8NJ0sH/P3s\nOR5RTKdOhgz0DmLesFk4dnJs/mRBEIAWbvLq0qULrq6udO7cGRsbG1xdXTuqX8IdSJIksrKyuHTp\nEv376xY179SpE/7+/i2+pkqlITW1BB+fq7VyDQ0MeeX+2SjrP2T20CkM6TZY7DMRhBbSe5PX+++/\nz/bt21GpVNqNXqampsydO5fZs2e36uZRUVGEh4fz+eef079//1ZdQ7g9KJVKoqOjKSoqAhrW7Ld1\n93dS0mU27zxFXNk5PnvtHzg7X00r7m3nzadPfYSxQlSQE4TW0Cv4r127lq1btzJt2jRGjRqFra0t\nRUVFHDx4kDVr1mBubs7kyZNbdGOlUslrr70mEsLd4SRJIiMjg8TERFQqlbb94sWLdO/evdUjcrVG\nzcq92zlV/V80Rmre37GXD/45Ved6IvALQuvpvcnr+eef54UXXtC2ubq60rt3b8zNzfnyyy9bHPyX\nL1+Oo6Njo1ztwp2jqqqK6OhoiouLtW0ymQwPDw+8vb1bHfgzSzPZFrON6u4XkErUKOQyLlmfQqV5\nWmTeFIR2olfwr6ysJDAw8LrHQkND2bJlS4tueuzYMY4ePcrmzZsZN25ci84Vbj1JkkhPTycxMVHn\nm5uFhQVBQUFYW1u3+JolJTWYW8rZn7SfXy/8iiRJmJsZ4u1tg5+LJ7P6/U0EfkFoR3oF/+HDh/P1\n118zdOjQRscOHDhAWFiY3je8fPkyb731FkuXLm1z7VXh5qusrCQqKoqSkhJtm0wmo0ePHnh5eSGX\n61UWWquuTs2PP6bx7f9O0DksDkyv1uc1NDDkubApjPQYiYFcVNYShPakV/Dv06cPq1evZuzYsYwZ\nMwZ7e3tKS0s5evQoERERzJgxgw0bNgANgeBGm77+/e9/c9999xEWFkZeXl77vAvhpsnKytIJ/JaW\nlgQHB7f6g/yrPdF88edX5JnFYxqrIDTUEblchredN1MCp+Bg3rrdv4Ig3Jhewf8///kPABUVFaxe\nvbrR8WunfW4U/Pfu3Ut8fDw//PBDa/oq3Aa8vb3Jy8tDqVTi5eVFjx49Wjzav5bK8zxF5xNBBUbG\nBhhizOSgpxjkOkgs3xSEDqRX8E9MTGyXm3333Xfk5+czZMgQAO2S0VmzZvHYY4+xePHidrmP0D40\nGg1qtVonBYOBgQEhISHI5XIsLS1bdL0r/7+vDeqTgp7gv/G/oVQpGR08lKcDnsbSuGXXFQSh5W7q\nPviVK1dSU1Oj/XthYSGTJ09myZIlDB48+GZ2RWhGWVkZ0dHRmJmZERoaqhOwraysWny9oiIl27fH\nE9LHnrAhV8smWhhb8NqouchlcoKcgtql74IgNO+mBn9HR93t98bGxtp2W1vb650i3GQajYaUlBRS\nUlKQJImysjIuXbqEs7Nzq6+ZnHyZFev+R7ziFw7lOhAc+C8sLa+u0e/dpXd7dF0QhBZo/WStcNcp\nLS3l+PHjJCcna6doDAwMqK+vb/U11Ro1SerfibLaQakih0yi+DXiXHt1WRCEVrql6Q+dnJxISkq6\nlV0QALVaTXJyMmlpaTo1mm1sbAgKCmp1da0rm7Uull3Es6clFy6U4eNli417TfMnC4LQoUTu23tc\nSUkJ0dHRVFRUaNsMDAzw8fFpVXqGCxdKycy+zGW7SO1mLQBrKxMeG96T6cHTce0sEgIKwq3WZPDP\nz5H31PIAACAASURBVM9v0YX+Op8v3N4kSSIhIYELFy7ojPZtbW0JCgrC3Ny8Rderr1fz/fep7D52\nklSzw/iGmmBm1rBKyNDAkHHe4xjpMRK5TMw0CsLtoMngP2zYsBaN+hISEtqlQ8LNIZPJUCqV2sCv\nUCjo1asXbm5urVpfr0HNt0k7iDWLACDtQg0B/vZis5Yg3KaaDP5Lly7VBoGysjJWrlzJwIEDefjh\nh7U7fP/3v/9x9OhRXn/99ZvWYaH9BAQEUFxcTOfOnQkMDMTMrPX1bo0UhvTqY0z8EehsZUxgr65M\nFZu1BOG21WTwf+KJJ7R/fuGFF3jsscdYsmSJzmvGjh3LkiVL+Pnnn3nyySc7rpdCm10J8tdW0TI2\nNmbo0KGYmpq2OEBnZpbh5nY1pYNMJuOFITPJLM9gkEcfsVlLEG5zek3A/vbbbzz88MPXPTZixIhG\nxbmF24dKpSImJoZTp05dd6e2mZlZiwJ/aWkN6z8+x0vvbyE2rkDnmGMnR1aOWcqcPnNE4BeE25xe\nwd/a2pqYmJjrHjt9+rR42HubKigo4OjRo9qaCRkZGTq591vjs90n+TJtLclm/+Xdr7ZRV6dbjMfe\nvPWF2QVBuHn0Wuo5ceJE1q9fT01NDffffz/W1tYUFxdz8OBBtm3bxptvvtnR/RRaoL6+nvj4eLKy\nsnTaHR0dW7yK54paVS0/Jv9IvO0hqo2LQAVFthEUVBbiYuPUHt0WBOEm0iv4z507l4qKCj777DM2\nbdqkbTc2NmbevHktruIldJz8/HxiYmJ0cigZGRnh7++Ps7Nzi6Z46uvVKBRy4grj2Hl+J8XKYhQK\nGV49rTExNmRK3wk4Wdl1xNsQBKGD6RX8ZTIZCxYs4PnnnycyMpLy8nKsra3p3bt3m1aICO2nrq6O\nuLg4srOzddqdnZ3x9/fX5lHSV0JCMVt2nkEeEEOpaZrOscE+wWL5piDc4Vq0w9fCwqJFVbuEm6Oq\nqorffvuN2tpabZuxsTEBAQF06dKlxdc7fSaX/2zdSYbJbxClok8fR4wMDTA3MmeC7wQGugwUyzcF\n4Q7XZPB/8MEHW/QLfujQoXbpkNByZmZmmJuba4N/165d8ff3x8jIqFXXq7JJJtv6OKoaNQpJRlVV\nPWH+g5ngOwELY4v27LogCLdIk8E/JCREjO7uEDKZjKCgIP7880/8/PxwcmrZA1hJknT+Xw/tPoT+\nfvtJvJhFP/8ePNNnOj52Pu3dbUEQ/q+9O49q6sz/B/4OCQFC2PcioiwBZEeUtRwUx1K1LrW1dWtx\nHK3DnLF+64+pWst3vtPNb9Uiam1rp6O2Lm3tqC3t0W9bhuKAimwygqwq+xowLBECJM/vD8vVFJGg\nEEA+r3Nyjtzn5ubzMZcPN8998jyjaMDiv2PHDu7fP/zwA0JCQmBubq6VoMjAFAoFbt68CTc3N7WC\nLRaLMXv27CH9wb51qwvffFMMsakOlj/vzW0X6AjwX1HrUdJcgmiXaOjydR9wFELIeKTROP/t27cj\nMzNzpGMhD8AYQ3V1NVJSUlBaWoobN27022cohb+urgOb//s7/KPwI+y/dAB1dR1q7W6WbnjG7Rkq\n/IQ8pjQq/jY2Nujs7BzpWMgAurq6kJmZidzcXG5hleLiYrUbvEOh6FXgwq3/Q6HNV5AJqtDCr8Sp\niynDGTIhZIzTaLTP8uXL8e677yIvLw/u7u73Hd75zDPPDHtwEx1jDFVVVbh27ZraaloikQi+vr5D\nGr7ZN3vn5ZrLOFV4CrIuGZycjVFSooSzsxmmevOHPX5CyNilUfF/7733AAAnTpy4bzuPx6PiP8w6\nOzuRl5eHpqYmte1TpkyBh4eH2gRtD6JQ9OLcuXIUN5SBTcvDjVt3u4vEhkI8HxWKFd4rMMl40rDG\nTwgZ2zSqIMnJySMdB/kVYwyVlZW4du0aent7ue2Ghobw9fUd0kL3XV292Po/PyK3819oEBbC28AS\nZqb6AABjPWMsnbYUQfZBNKqLkAlIo+Jvb2/P/fv27duQy+UwNTWFri7dDBxuFRUVuHr1Kvczj8fD\n1KlT4e7uDj5/aF0zKn438i2PoaFBBgBobLgNK3MxopyiMM91HvQF+sMaOyFk/ND4G74ZGRnYtWsX\nCgoKuP5jHx8fbNq0CSEhISMW4ETj4OCAGzduQC6XQywWw9fX96GH2Ip0RVgaGoWDZ7+Fw2QjzPUJ\nwfOez9O0DIQQzYp/ZmYm1q5di6lTp2Ljxo2wsLBAY2Mjzp07h3Xr1uHw4cMIDAwc6VgfS7/9ghWf\nz4efnx8aGhogkUg0utpnjOHf/65GWm4Jtm5UH+u/3H8pZL2NWOS+CB5WHiOSAyFk/NGo+CcmJiIk\nJAQHDx5UKyyxsbFYv3499u3bhyNHjoxYkI8jxhhu3rwJmUwGf39/tf9Xc3Nzja/2GWPYsvMUUuvP\noYPfhOm/2OOpWXe/jWuib4ItT9Iym4QQdRqN88/Pz8fKlSv73Rjk8XhYuXKlWh81GVxHRwfS09NR\nUFCAmpoa1NbWPtRxqlqrsP/yfuSJTqJVUAslrweH07/huuUIIWQgGl35Gxsb4/bt2/dtk8vlQ74R\nOVExxnD9+nUUFxdDpVJx2ysrK4c0135dex2+L/keWbVZAIBJDsZoknbCxkqMxRFuNHqHEDIojYp/\ncHAw9u3bh+nTp6st2djQ0IB9+/bRDV8NtLe348qVK5DJZNw2HR0duLq6wsXFRaOCnZFfgr3/dwwi\nlzro6NzdX8DXQewzC7HIYxEsRbS4CiFkcBoV/82bN2Pp0qV46qmnMH36dFhaWkIqlSI7OxtisRhx\ncXEjHee4pVKpUFZWhtLSUrWrfVNTU/j6+sLYePCFzjt7OrH5cAJ+KU0HAzBZaIQpU0wAAL62vljs\nvhhPGD0xUikQQh5DGhV/GxsbnD59Gv/4xz+QnZ2N6upqGBsbY8WKFVizZg2srGjR7vtpbW3FlStX\n0NbWxm3T0dGBm5sbnJ2dNe6e0RPo4bZeI/p68mvr5HgqIBjPei7GFNMpwx84IeSxN2Dxv3z5Mvz9\n/bkvcllZWeH111/XWmCPg+vXr6sVfjMzM/j6+sLI6MELotQ1tMHO5u4nAh2eDtZHLkNhxU44Grri\n9cUxmO40bcTiJoQ8/gYs/i+99BIMDAwwY8YMhIWFITQ0FK6uro/8gvX19Xj33Xdx6dIlqFQqPPnk\nk9iyZYvavYTHhaenJ6RSKXp7e+Hu7o6pU6c+8Gr/y3MXcPzyGTS23sLp/5cAOzsx1xbsEIzD6/8X\nHjYSbYROCHnMDVj89+/fj+zsbGRnZ2Pnzp1QKpWwtLREaGgo9xhqdw9jDOvXr4e5uTk+//xzAMDb\nb7+NP/7xjzh16tSjZTLKlEolAKiNfNLT00NAQAAMDAxgaGg44HNLm0txtuwsTl9LQ32HHOADh7//\nF7auW8jto8PTocJPCBk2Axb/OXPmYM6cOQDuzDB55coVZGdnIzMzE3/961/R1dUFFxcX7lOBJgu7\nS6VSODs7Y/PmzZg06c4skjExMfjTn/6E1tZWmJiYDFNa2nXr1i1cuXIFVlZW8PLyUmuztFQffaNQ\n9CI3txF8Pg8Gjs04V3YOpc2lAAArKwPU18uho8NDfW95v2//EkLIcNHohq+BgQFCQkK4IZ29vb3I\nzMzEV199haNHj+LIkSMoLCwc9DhWVlZISEjgfq6vr8dXX30Fb2/vcVn4lUolioqKcPPmTTDG0NHR\nATs7uwFn3rx+XYaEPZmoYUWQWfwHroE88HC3uJuZ6uPZoFlY8+RzcLGeoqUsCCETkcYTuykUCmRk\nZODixYvIyMhAcXExeDwevL29ERYWNuQXjo2NRXJyMkxMTLguoPGkubkZeXl5kMvl3DaBQPDA1bW6\nDOuRITqMDiYDOoEnOqwhFgvB1+EjeFIwol2iadI1QohWPLD4l5SUIC0tDWlpacjOzoZCocDkyZMR\nFhaG2NhYBAcHQywWP+gQA3r11VexYcMGHDhwAGvWrMGZM2fGxU3f3t5e7mr/XlZWVvDx8YFIJEJ3\ntxLp6TWYOdMWhobCu/sYmUNs3QPWoQtraxHEIgNEOUXid06/g5mBmZYzIYRMZAMW/4iICDQ1NcHY\n2BhBQUHYtm0bwsLCuL76R+Xm5gYASEhIQGRkJE6fPo0NGzYMy7FHilQqRV5entpUF7q6upg2bRoc\nHBzA4/GQllaN06dLIb0tRVvnNCya58nta21ojReejEJxSxGinKIwa8osGAoHvhFMCCEjZcDi39jY\nCDMzMzz33HMIDQ1FYGDgIy/eIpVKkZGRgfnz53PbDAwM4ODggIaGhkc69khSKpUoKChARUWF2nYb\nGxv4+PhAX//uoig1tyuQqfoWUqNStKeFYsFTHuDz786ft9znRegL9KEn0Hz9XUIIGW4DFv9Dhw4h\nLS0N58+fx9///nfo6+tzY/7Dw8Ph7Ow85Berra3Fa6+9hsmTJ8Pb2xvAnTlvbt68iSVLljx8FiNM\nR0cH7e3t3M+6urrw8vKCubk19PWFUDEVrtRfwc83fkZpVxnaDOuhx+OD73gTXT0KGPINuOea6I+/\nG9uEkMcPj2kw/69UKkVaWhrS09Nx4cIFNDc3w9bWFqGhoQgPD0doaChMTU0HfTGVSoXVq1ejo6MD\nb731FgQCAXbv3o3KykqcOXNmwLHw1dXViIqKQnJy8rB1Ow2VXC5HamoqrK2tYW3thJSUWmRkV+J3\na4EsaTqkt6Xcvrdv98DAQIBp1tOw2mc1LESar7tLCCHDYbC6qVHx/63CwkKkp6cjKysLFy5c4LpF\nNNHS0oL3338fqampUCgUCA8PxxtvvPHAm73aLv5SqRQWFhb9xtjL5XKIRCL8985zSK89jwbdQthN\n0oOT090/fHwdPoLsgxDlFIVJxqPzh4oQQgarmxoP9QSAtrY25ObmIjc3F//5z3+Qn58PpVIJT0/P\nwZ/8K3Nzc+zYsWMoL6s13d3dKCgoQHV1NTw8PODi4qLWbmhoCMYYpFNSUCu988fudicfDAxioRgR\njhGYNWUWde0QQsa8Bxb/8vJy5ObmIicnB7m5ubhx4wZUKhVcXFwQHByMlStXIigo6KGHe44ldXV1\nuHr1KjdO/9q1IpSW9qCxUYmXX777rV0ej4cXZs5HSW0FrKwM4GY/BVFToxA0KQhCvnCgwxNCyJgy\nYPEPDg5Ga2srGGN44oknEBwcjFdeeQXBwcGP1RTOCoUC+fn5akspqlQMyRdqUKA4jw5+C2ZXfQAH\nh7uzbAZPCsYLT5YgfHI43C3daQoGQsi4M2DxDwoKQmhoKEJCQjB58mRtxqQVjDHU1tYiPz8f3d3d\nAAAVU0HWK0O1QTWuWOaiqakTAHAy+QJei4nmnqsn0MO66etGJW5CCBkOAxb/xMREbcahVV1dXbh6\n9Sqqq2vR0HAbKr4CPXqtqOHVoM24DayXwd5eDLm8B/b2YtgHtA9+UEIIGUeGdMP3cSCTyXDp0iU0\nNLYiu/AG5DotUAjlMPYAlAZKbj9zE0PELnwSkVMi4WTmNIoRE0LI8Jtwxd/IyAh6enqQsQbIBNVo\n7G1HlbwFPr2WMIYerAytEOEYgVCHUIiF4/9GNiGE3M9jXfy7unqRl9eEixmV+H2MH4yN9cDn8+Hr\n6wt5txw/Nl5GS5ccEjtzhDnNRJTzLLqBSwiZEB7b4s8Yw46PknC1JgMlvGJM+nc8npvvD+DOdw3m\nz50PqXUz7IxsEeIQAmM940GOSAghj4/HovgrFL1oa+uGlZUI8m45LlZdRPrVdDSpZBDpd8O4Vxf/\nzPwRS+f5cVf1PB4PMf4vj3LkhBAyOsZ18W9slOObb0pQcE0K8eQ2uP2uFTkVORBKhRAoBBAJBejU\n7YW3sR0cAnSoO4cQQn41ros/E/TgbNFPqNW/ik5pC9qvToFhhwg8dqfI8/l8+Lg5Y1bwLPg4+oxy\ntIQQMnaM6+J/S1WPJptLULYq4S2yh16LAXi6PBgJjWArtkWQdxA8PTzB5/NHO1RCCBlTxnXxl5hL\nEObgBmbUDT2BENaG1rAV28LOwg5+fn4aTTNNCCET0bgu/qWlpfDUc4XSSgkrQysIdARwdXWFq6sr\ndHR0Bj8AIYRMUOO6+E+dOhUVFRVQKBQwMTGBr68vTExoOmVCCBnMuC7+QqEQ3t7eaG9vh4uLC13t\nE0KIhsZ18QcAOzs72NnZjXYYhBAyrtClMiGETEDj4spfqbwz22Z9ff0oR0IIIeNDX73sq5+/NS6K\nf1NTEwBg5cqVoxwJIYSML01NTXB0dOy3nccYY6MQz5B0dXUhPz8fVlZW9IUtQgjRgFKpRFNTE7y8\nvKCvr9+vfVwUf0IIIcOLbvgSQsgERMWfEEImICr+hBAyAVHxJ4SQCYiKPyGETEBjrvjHx8fjjTfe\nUNt25swZLFiwAH5+fnj++eeRnp6u1n7s2DG4ubmpPaZNm6a2z+HDhzFr1iz4+vpizZo1KC8vH1M5\ndHd3Y8eOHQgLC4O/vz/Wr1+PqqqqcZPDvn37+r0HfY/9+/drPYeHeQ+qqqqwYcMGBAYGIjw8HNu3\nb0dbW5vaPmP5PQCA8vJyrFu3DoGBgYiIiMDevXvR29ur1RykUilef/11hIeHIzAwEGvXrkVJSQnX\nnpaWhkWLFsHHxwfPPPMMUlNT1Z7f3NyMV199FYGBgQgJCcHOnTu1msOjxt+nu7sbCxcuxLffftuv\nTZvn0YDYGKFSqdiePXuYRCJh27Zt47YnJSUxNzc39vHHH7MbN26wo0ePMm9vb3bp0iVun/j4eLZh\nwwbW2NjIPZqamrj2r7/+mvn7+7OzZ8+yoqIi9sorr7CoqCimUCjGTA5btmxhERER7MKFC6y4uJit\nXr2aLViwgKlUqnGRQ0dHh9r/f2NjI4uPj2chISGsvr5eazk8bPw9PT0sOjqaxcbGsrKyMpadnc2i\no6PZn//8Z+4YY/09kMlkLDQ0lK1evZoVFBSwzMxMFh0dzbZu3aq1HJRKJXvhhRfYsmXLWF5eHist\nLWUbN25kISEhrKWlhZWWljIvLy924MABVlZWxhISEpinpycrKSnhjrF8+XK2YsUKVlhYyH755RcW\nHBzMPvjgA63kMBzxM8ZYe3s7+8Mf/sAkEgk7c+aMWpu2zqPBjIniX1lZyVatWsWCgoJYZGSk2gm/\ncOFCtnnzZrX933jjDbZq1Sru5+XLl7PExMQBjz937ly2d+9e7ueOjg7m5+fHvvvuuzGRQ2VlJZNI\nJOzChQtc+/Xr11lkZCQrLy8fFzn8Vk5ODnN3d2epqanctpHO4VHiLy4uZhKJhBUVFXHtR48eZf7+\n/lqL/1FzOHToEPP392e3bt3i2rOysphEImFVVVVayaGgoIBJJBJWVlbGbVMoFMzX15edPn2avfnm\nm/3OmVWrVrHt27czxu6cNxKJhFVWVnLtp06dYv7+/lxxHMkcHjV+xhhLT09nUVFRbMmSJfct/to4\njzQxJrp9cnJyYGdnh6SkJEyaNEmtraKiAoGBgWrbPDw8kJuby30ULCsrg7Oz832P3dzcjPLycsyc\nOZPbZmhoCC8vL2RlZY2JHNLS0mBubo6QkBCu3cnJCSkpKXB0dBwXOdyLMYZ33nkHc+fORUREBADt\nvA+PEr+JiQl0dHTw9ddfQ6FQoKWlBefOnYOXl5fW4n/UHCoqKuDq6qq2gl1f92dWVpZWcrCzs8Mn\nn3yCqVOnctt4vDtrare2tiIrK0vt9QEgKCiIe/2srCzY29vDwcGBa585cybkcjkKCwtHPIdHjR8A\n/vWvf2Hx4sX48ssv+x1fW+eRJsbE3D6LFi3CokWL7ttmbW2Nuro6tW01NTXo6elBW1sbenp60Nra\nivPnz2Pfvn3o7OzEjBkzEBcXBxsbG25yIxsbm37HHc6J4h4lh/Lycjg4OCApKQmffvopWlpaEBAQ\ngG3btsHW1nZc5GBubs5tT05OxrVr17B7925umzZyeJT4bWxssH37duzatQvHjx+HSqWCs7Mzjh49\nqrX4HzUHa2trpKSkQKVScWtb1NTUALhTdLSRg5mZGSIjI9W2ffHFF+jq6kJ4eDgSExMf+PoNDQ2w\ntrbu1w4AdXV1EAgEI5rDo8YPANu3bx/w+No6jzQxJq78H2ThwoU4duwYLl68CKVSiUuXLuGf//wn\nAKCnpwelpaUAAIFAgISEBLz33nsoLy9HTEwMurq60NnZCQDQ09NTO65QKIRCoRgTOXR0dODGjRs4\ndOgQtm7disTERDQ3N+Pll1+GQqEYFznc68iRI4iOjlabTGq0cxgsfpVKhZs3byIkJAQnTpzAZ599\nBj6fj02bNkGpVI56/Jrk8PTTT6O5uRk7d+5EZ2cnpFIp3n77bQgEAvT09IxKDsnJyfjggw+wZs0a\nODs7o6urC0KhcMDX7+zs7Befrq4ueDzeqPwuDDX+wYyF86jPmLjyf5D169ejpaUF69atg1KphIuL\nC9auXYvdu3fDyMgI4eHhuHjxotqVp4uLCyIiIpCamgp7e3sAd+6836u7uxsGBgZjIgeBQID29nYk\nJiZyH3f37t2L8PBwpKam4oknnhjzOfSpr6/H5cuXceTIEbXn900sNVo5DBb/d999h6SkJKSkpEAk\nEgEAHB0dMWfOHKSmpnJXn2P5PbCxsUFiYiLi4+Nx+PBhiEQibNy4EcXFxTAyMtL6e3Dq1Cm8+eab\nmDdvHuLi4gDcKXq/vVi49/X19fX7xdfT0wPGGEQikVZzeJj4BzPavwf3GvNX/kKhEPHx8cjJycH5\n8+eRlJQEfX19WFpacr+k9xZ+4M5HKDMzM9TV1XGrfPVNC92nsbGx30ev0crBxsYGIpFIrZ/TwsIC\npqamqK6uHhc59ElOToaVlVW/ftHRzmGw+PPy8uDk5KSWi4ODA8zMzFBZWTnq8WuSAwDMnj0baWlp\nSE1NxcWLF7F06VK0tLTAwcFBqzl89NFH2Lp1K1588UW8//77XDeUnZ0dGhsbB3x9W1vb+8YH3Okq\n0VYODxv/YMbCedRnzBf/hIQEHDx4EEKhEFZWVgCAn3/+GWFhYQCAzz//HOHh4Wp/jWtqatDS0gJX\nV1dYWFhgypQpuHz5Mtcul8uRn5+PGTNmjIkcAgMDcfv2bVy/fp17TlNTE27duoXJkyePixz69N0Q\n++16yqOdw2Dx29raory8XO2KrLGxETKZDI6OjqMevyY5ZGVl4eWXX4ZSqYS1tTWEQiF+/vlniEQi\nBAQEaC2HTz/9FHv27MHGjRvx5ptvcjdMAWD69OnIzMxU2z8jI4O7kT19+nRUVVWp3dvIyMiAoaEh\n3N3dtZLDo8Q/mLFwHnG0OrZIA6tWrVIb3vb111+zgIAA9ssvv7DKykr21ltvMT8/P3b9+nXGGGMV\nFRXMz8+PxcXFsbKyMpaVlcWWLFnCli9fzh3j+PHjzM/Pj33//fesuLiYvfLKK2zu3LkjNq52qDmo\nVCq2YsUKtnDhQpaTk8MKCwvZ6tWrWXR0NBfjWM+hz9y5c9lHH31032NqM4ehxl9fX88CAwPZxo0b\nWUlJCcvLy2MvvvgiW7x4Mevp6dF6/A+TQ3NzMwsMDGQ7duxglZWV7Mcff2QBAQFq78dI51BYWMg8\nPDzY1q1b+33vQy6Xs6KiIubp6ckSExNZWVkZ27NnD/P29uaGVqpUKrZs2TL2wgsvsPz8fG6c/71D\nI0cyh0eN/7fuN9RT2+fRQMZ88WeMsQ8//JBFREQwPz8/tmrVKpaXl6fWnpuby1atWsX8/f3ZzJkz\n2ZYtW5hMJlPb5+OPP2ZhYWHMz8+P/f73v1cbRzwWcmhtbWXbtm1jM2bMYH5+fiw2NpbV1dWNqxwY\nY8zf358dP358wONqK4eHib+4uJitXbuWzZgxg4WFhbG4uDjW3Nw8KvE/bA6ZmZnsueeeYz4+PmzO\nnDns0KFD/Y47kjns3r2bSSSS+z4+/PBDxhhjKSkpbN68eczLy4stXLiQpaenqx2jsbGRxcbGMl9f\nXxYaGsp2797NlEqlVnIYjvjvdb/iP5LxDwUt5kIIIRPQmO/zJ4QQMvyo+BNCyARExZ8QQiYgKv6E\nEDIBUfEnhJAJiIo/IYRMQFT8yYQWHx8PNze3AVdjSk5OhpubGw4cOKDlyAgZWTTOn0xoHR0dWLBg\nAXg8Hr7//nsYGhpybe3t7Zg3bx5sbW3x5Zdfgs/nj2KkhAwvuvInE5pYLMbf/vY31NbWIiEhQa3t\n/fffR2trK3bs2EGFnzx2qPiTCS8iIgJLlizBsWPHkJeXBwDIzMzEyZMn8dprr6mtEnfixAk8/fTT\n8PLyQlRUFD799FP89sPz8ePHsWTJEvj6+sLHxwfPPvssfvrpJ6795MmT8Pf3x7FjxxASEoKgoCBU\nV1drJ1lCfkXdPoTgzhJ98+fPh62tLY4fP45nn30WZmZm+Pzzz7lZHT/88EPs378fMTExCAsLQ15e\nHg4cOICYmBhuvvdDhw5h165dePXVV+Hr6wuZTIaDBw+ipKQEycnJsLa2xsmTJxEfHw9nZ2fExcXh\n1q1bWLx48WimTyYirc8mRMgY9dNPPzGJRMJWrlzJ/P39uUXPGWNMJpMxb29v9s4776g957PPPmPT\npk1j9fX1jDHG3nrrLZaQkKC2T15eHpNIJOzHH39kjN2ZnVMikbCzZ8+OcEaEDIy6fQj51Zw5czB/\n/nxkZmZiy5Ytaguo5+TkQKFQYNasWejt7eUes2fPRm9vLy5dugTgzvqtmzZtQmtrK65cuYJvv/0W\nJ06cANB/uUsPDw/tJUfIb4z5ZRwJ0abw8HD88MMPiIiIUNsuk8kAADExMfd9Xt/qTuXl5YiPj0dG\nRgaEQiGcnJzg6uoKAP3uDdy7ahgh2kbFnxAN9K1TnJiYyK0LfS8bGxsolUqsX78eYrEYp06dgpub\nGwQCAYqKipCUlKTtkAl5IOr2IUQDfn5+0NXVhVQqhbe3N/dQKBTYs2cPpFIppFIpKioqsGzZbKBA\nFAAAAOVJREFUMnh6ekIguHNtdf78eQCASqUazRQIUUNX/oRowNLSEi+99BJ27dqF1tZWBAQEoKam\nBgkJCTA1NYWLiwt0dXVhZ2eHI0eOwMLCAmKxGOfPn8cXX3wBAOjs7BzlLAi5i678CdFQXFwcNm3a\nhKSkJKxbtw579uxBZGQkjhw5AqFQCB6PhwMHDsDCwgJ/+ctfsGnTJly9ehWffPIJHB0dkZWVNdop\nEMKhcf6EEDIB0ZU/IYRMQFT8CSFkAqLiTwghExAVf0IImYCo+BNCyARExZ8QQiYgKv6EEDIBUfEn\nhJAJ6P8DxzZf4/4x3I8AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "total_growth = census[last_year] - census[1965]\n", + "elapsed_time = last_year - 1965\n", + "annual_growth = total_growth / elapsed_time\n", + "#annual_growth\n", + "\n", + "#add = (t - 1965)*annual_growth\n", + "\n", + "for t in linrange(1950, 2015):\n", + " add = (t - 1965)*annual_growth\n", + " results[t] = results[1965] + add\n", + " \n", + "newfig()\n", + "plot_estimates(table2)\n", + "plot(results, '--', color='gray', label='model')\n", + "decorate(xlabel='Year', ylabel='World population (billion)')\n", + "savefig('chap03-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now with system objects" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can rewrite the code from the previous section using system objects." + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "t0 = census.index[0]\n", + "t_end = census.index[-1]\n", + "total_growth = census[t_end] - census[t0]\n", + "elapsed_time = t_end - t0\n", + "annual_growth = total_growth / elapsed_time" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the system object." + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system = System(t0=t0, \n", + " t_end=t_end,\n", + " p0=census[t0],\n", + " annual_growth=annual_growth)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can encapsulate the code tha runs the model in a function that stores the resulting Series as a new system variable." + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation1(system):\n", + " \"\"\"Runs the constant growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: system object\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " results[t+1] = results[t] + system.annual_growth\n", + " system.results = results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also encapsulate the code that plots the results." + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(system, title=None):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " system: System object with `results`\n", + " \"\"\"\n", + " newfig()\n", + " plot_estimates(table2)\n", + " plot(system.results, '--', color='gray', label='model')\n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation1(system)\n", + "plot_results(system, title='Constant growth model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`plot_results` uses `decorate`, which takes parameters that specify the title of the figure, labels for the $x$ and $y$ axis, and limits for the axes. To read the documentation of `decorate`, run the cells below." + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [], + "source": [ + "#help(decorate)" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "#plt.getp(plt.gca())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** The constant growth model doesn't make a lot of sense, because it seems like the number of deaths and births should depend on the size of the population. As a small improvement, let's write a version of `run_simulation1` where the number of deaths is proportional to the size of the population, but the number of births is constant. This model doesn't make a lot of sense, either, but it's a good exercise.\n", + "\n", + "Write a function called `run_simulation1b` that implements a model where the number of births is constant, but the number of deaths is proportional to the current size of the population. Set the death rate to `0.01`, which means that 1% of the population dies each year; then choose the number of annual births to make the model fit the data as well as you can.\n", + "\n", + "Hint: It probably won't fit very well." + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def run_simulation1b(system, num_births = .1, death_rate = 0.01):\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " results[t+1] = results[t] + num_births - results[t]*death_rate\n", + " system.results = results" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEjCAYAAADaCAHrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdcVfX/wPHXZW9kigxBEFBREdyaC7emfk2xUkQrVzas\nrMyGX/f6au5yktvcmQ0rzTQzU1FDFAWULXvPC1zO7w9+XL0CelFZ8nk+Hjwe8DnrfS7wPud8zmfI\nJEmSEARBEBoUjdoOQBAEQah5IvkLgiA0QCL5C4IgNEAi+QuCIDRAIvkLgiA0QCL5C4IgNEAi+T/H\ncnJyCAgI4KWXXqJ9+/a0a9eO0aNHs3//fkpKSmo7PKA0xrS0tGo9RmFhIYmJidV6jJoQExOj/P6f\nf/7B3d2dI0eO1GJEVXfkyBHc3d35559/amQ7oXIi+T+n7t69y6hRo/jyyy9xd3fngw8+YMaMGejq\n6jJnzhw+/vhjaruLR3BwMIMHDyYsLKzajhEXF8ewYcP466+/qu0YNeGNN95gw4YNtR2G8BzRqu0A\nhGdPLpczffp0MjIyOHToEC1atFAue+2115g3bx579+6lbdu2+Pv711qcoaGhJCUlVesxYmNjiYyM\nrNZj1IRz584xcuTI2g5DeI6IO//n0N69e4mIiGD27Nkqib/MrFmzMDU15dtvv62F6ARBqAtE8n8O\n/fjjjxgYGDB06NAKl+vp6XHgwAG+++47lfLLly8zceJEvLy88PLywt/fn0uXLqms4+Pjw5w5czh2\n7BhDhw6lTZs2DBgwgD179qisl5mZySeffELv3r1p3bo1/fr1Y+XKlcjlcgDWrVvH7NmzAfD398fH\nx0e57d9//82kSZPo3LkzHh4e9OjRgzlz5pCVlaVc55NPPmHQoEEEBQXh5+eHp6cn3bp1Y+HChRQU\nFACl9cRlTzazZ8/G3d39kZ9bYmIiH330EV26dKF9+/Z89NFHnDx5UqWuuazu+ZdffsHHxwdPT0/W\nrVsHQH5+PitXrsTHx4fWrVvj4+PDihUryM/PB1Du6+TJk8pjSpJEly5d6NChg8p7mLJ1g4KClHEf\nPXq0XL13Xl4e8+bNo2vXrrRr144JEyZw+/btR55n2fuC8+fP89lnn9GxY0fat2/P7NmzycvL48yZ\nM4wYMQJPT09GjBjB33//rbL9486zTGpqKrNnz1Z+nrNnzyY7O7tcPHK5nFWrVin317dvX9asWUNh\nYeEjz0N4OqLa5zkjSRIhISF4e3ujra1d6XpOTk4qP586dYq3336bpk2b8uabbwJw8OBBJk6cyNq1\na+nbt69y3T///JMTJ07g5+eHpaUl+/fvZ/78+djb29OrVy8A3nvvPW7evIm/vz/W1tZcvXqVzZs3\nk5GRwYIFC+jfvz/Jycns37+fadOm0aZNG6C0emPy5Ml4e3vz7rvvIpPJ+Ouvv9i/fz+ZmZmsWbNG\nGUdaWhpvvPEGgwcPZvjw4Zw9e5Zdu3aho6PDxx9/TMeOHZk2bRobN27k5Zdfpn379pV+Hjk5Ofj5\n+ZGcnMyECRMwMzPj4MGDnD17tsL1P/vsM/z8/DAyMqJdu3YUFhby2muvce3aNV566SVat25NUFAQ\nW7ZsITAwkJ07d9K1a1e0tbW5cOEC/fr1A0qrvtLT05Xflz2p/fnnn1hYWNC8eXOWL1/Oxx9/TIcO\nHRgzZgwuLi7cuXMHgBUrVuDu7s4777xDYmIi33zzDW+88QYnT55ET0+v0vOF0gto8+bNmTlzJhcv\nXuTIkSMkJCRw8+ZNxo8fj7GxMZs3b2bGjBmcPHkSExMTtc5TW1sbuVyOn58fsbGx+Pv7Y2VlxdGj\nRzlx4oRKDAqFgqlTp3LlyhXluQUHB7Nx40ZCQkL4+uuvkclkjzwP4QlJwnMlNTVVcnNzk95//321\ntykqKpJ69uwp9erVS8rOzlaWZ2ZmSj169JB69OghFRYWSpIkSX369JHc3d2lkJAQ5XpJSUmSu7u7\n9MEHH0iSJEkpKSmSm5ubtHXrVpXjfPLJJ9KECROUPx8+fFhyc3OTLly4oCx74403pD59+khyuVxl\n2zFjxkheXl7Kn2fNmiW5ublJO3fuVFlv8ODB0gsvvKD8+cKFC5Kbm5t0+PDhR34G69evl9zc3KS/\n/vpLWZadnS317t1bJcaymOfMmaOy/d69eyU3Nzfpm2++USnfsmWL5ObmJu3evVuSJEny9/eXhg4d\nqly+Y8cOqWvXrpKHh4fKufj4+EizZs1S/uzm5qbyc9l5jRw5UioqKlKWr1u3TnJzc5POnz9f6bmW\nbTtq1ChJoVBIkiRJCoVC6t69u+Tm5iadOXNGue6BAwckNzc36dy5c1U6z127dklubm7Sb7/9plwn\nNzdXGjJkSIWf59mzZ1X29+2336psX9HfivB0RLXPc0ZDo/RXqlAo1N7m5s2bJCQkMG7cOIyMjJTl\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "run_simulation1b(system)\n", + "plot_results(system, title='Constant growth model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Proportional death, proportional birth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's get to a more realistic model where the number of births and deaths is proportional to the current population." + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation2(system):\n", + " \"\"\"Runs the constant growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: system object\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " births = system.birth_rate * results[t]\n", + " deaths = system.death_rate * results[t]\n", + " results[t+1] = results[t] + births - deaths\n", + " system.results = results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I kept the death rate at 1% and chose the birth rate to fit the data." + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system.death_rate = 0.01\n", + "system.birth_rate = 0.027" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEjCAYAAADaCAHrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVPX++PHXsO/7poIKCKggyKa470ualBmWisstl1zK\nSkvzmmlfzfRmuXbdK3fTJLcWu2aamikoIsjqgqCyI/s2zPn9wY/RicVBBUE/z8fDx2Pmc875nPeM\nzHvOfM5nkUmSJCEIgiA8VzSedgCCIAhCwxPJXxAE4Tkkkr8gCMJzSCR/QRCE55BI/oIgCM8hkfwF\nQRCeQyL5C9WaO3cubm5uKv/atWuHj48PQUFBhISEPO0QH1lmZiaFhYXK55Wv9WlrLHHUZOzYsfTt\n27fBjhPql9bTDkBo3D766CPMzc0BkCSJ/Px8Dh06xNy5c8nOzuaNN954yhHWzcmTJ5k9ezYhISEY\nGBgA8Nprr9GlS5enHJkgNCyR/IVa9e/fH3t7e5WyV199lSFDhrBu3TqCg4PR0dF5StHVXUREBLm5\nuSpl3t7eeHt7P6WIBOHpEM0+Qp3p6enRt29f8vPziY+Pf9rhCILwCMSVv/BIZDIZAOXl5QD07duX\nrl27olAoOHLkCGZmZvz4449YWFgQGhrK2rVruXz5MgAdOnTg7bffxt/fX1lf37596dKlCx07dmT9\n+vVkZmbStm1b3n33XQICAlTOrW59/4ynXbt2/PHHHwD069ePTp06sX37dubOnUtISAixsbHK42/f\nvs3KlSv5888/KSgowNHRkeDgYEaOHKncZ+7cuYSHh7N8+XKWL1/OlStXMDQ0ZMiQIcyePRs9PT3l\nvn/99RdbtmzhypUr5OfnY2FhQZ8+fZg9ezYmJiZqv+9z584lMjKSRYsWsXz5cqKjo7G2tmbGjBm8\n+OKLrF69mh9++IGysjK6devGJ598omy2A4iNjWXVqlWcP3+e0tJS2rZty+TJk+nfv7/Kec6ePcvq\n1auJiYnBysqKKVOmVBtPQkICX331FX///TdlZWW0a9eO6dOn06NHD7Vfk/B0iOQv1JlCoeD8+fPo\n6Ojg7OysLD969ChOTk7MmzePjIwMLCwsOH78ODNmzKBly5ZMnToVgH379jFhwgRWr15Nv379lMef\nPXuWQ4cOMXbsWKytrdm9ezcTJ05k69atdOrUCaBO9f0znm7duqGtrc1vv/3GRx99hIuLS7WvLykp\niZEjR1JSUkJwcDDW1tYcO3aMjz/+mJs3b/Lhhx8q983KyuLNN9/khRdeIDAwkFOnTrF9+3Z0dHSU\n+50+fZpJkybh4+PDO++8g0wm48yZM+zdu5ecnBxWrVpVp/c/PT2dt956i6CgIAIDA9m2bRvz5s3j\n8OHD5OXlMX36dK5du8bOnTvR19dn6dKlQEWT17hx4zAyMuJf//oXhoaGHDx4kOnTp7NgwQLGjBmj\n/H+YNGkSrVu35t133yUrK4slS5Ygk8mqfJGMHj1a+eWgra3NkSNHmDx5MitWrGDIkCF1el1CA5ME\noRpz5syRXF1dpaioKCkzM1PKzMyU0tLSpEuXLkkzZ86UXF1dpc8++0y5f58+faS2bdtKKSkpyrKy\nsjKpZ8+eUq9evaS8vDxleU5OjtSjRw+pR48eUmlpqfJ4V1dX6bffflPul5mZKfn5+UkjR458pPr+\nGY8kSdLq1aslV1dXKSkpqcprrfTuu+9Kbdu2lSIjI5Vl5eXl0pQpUyQ3NzcpLi5O5bht27apnOOF\nF16Qunfvrnz+5ptvSn369JFKSkpU9hs5cqTk7e1dYxzVqdxn+/btyrI//vhDcnV1rXKO119/XSWO\noKAgqWPHjtLdu3eVZcXFxdLw4cMlT09PKTMzU5IkSRo+fHiV9/ivv/5SnqNScHCw1L9/f6mgoEBZ\nVlZWJo0ePVrq2rWrMpbg4GCV44TGQbT5C7UaPnw4Xbp0oUuXLnTv3p3XXnuN48ePM3bsWGbNmqWy\nb8uWLbG1tVU+v3r1KikpKYwZMwYjIyNluYmJCcHBwaSmphIZGaksd3JyUml+sLCw4KWXXuLy5ctk\nZmbWub5/xqOO8vJy/vjjD7p37467u7uyXENDg7feegtJkvj9999VjnnhhRdUnrdt25aMjAzl8w0b\nNvDDDz+o3BjPzs7GyMhIpctpXQwYMED5uHXr1gD06NFD5Rz29vakp6cDkJGRweXLl3nppZews7NT\n7qOrq8ubb75JcXExZ8+eJTMzk6ioKIYOHaryHgcEBKh0Q83Ozub8+fP06tWL4uJisrKyyMrKIjc3\nlwEDBpCRkcGVK1ce6bUJDUM0+wi1+s9//oOVlRVQkQBNTExwdnZGV1e3yr6WlpYqz5OTkwFwdHSs\nsq+TkxMAd+7cUfa0adOmTZX9WrVqhSRJ3L59u871/TMedWRnZ1NYWFjtOSqbuG7fvq1SbmFhofJc\n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\nFi9eTFFRkXJ7TEwMwcHBeHl58eKLLxIVFaVyToVCwfr16+nTpw8dO3ZkxIgRnDx5ssFesyA8KoVU\ndcnTMV6jGOreg170xUrTGkODiqUU3d3dReKvhlpX/idOnODjjz+mR48eKuX9+/cnKyuLL774gkWL\nFtVLgI8jNjaWuLg4tfZt1apVlXVkIyIiSExMVOt4V1dX3Nzc6hzjg7788kuWLFlC69atmTt3LpMn\nT6ZDhw5s2rSJGzduMGvWLPz8/Bg9ejSXL19mwoQJjB07lkWLFpGcnMzChQtJTk5m/fr15OTkMGHC\nBAICAvjhhx+4efMmH3/8scr5VqxYwW+//cann35Ky5Yt+fPPP5kxYwabN2+mc+fOj/VaBKE+KCQF\nJ2+e5GTiSd7zn42p4f2lP410jBjQzJ/oe3extTVET08Lb29vmjdv/hQjbrzUSv46OjoYGxtXu028\nsU/OyJEj6du3LwAvvfQSn376KQsXLsTBwQFXV1c2b95MfHw8AFu3bsXDw4M5c+YAFStiLVy4kMmT\nJxMfH8+FCxcoKytjyZIlGBoa0qZNG1JTU5WLvBcUFLBt2zbWrFmj/FJv1aoVMTExbNy4USR/odFJ\nykliR8QOrmfdICk5j9E/L2PH3H9jbl6xwpZMJsPPz4/i4tNoaGjg7++PhYXFU4668VIr+Y8aNYpV\nq1bh5eWFldX9LlKFhYVs3LiRoKCgegvwefLgEor6+vpoaGio9MrR09NTNvvEx8fTq1cvleP9/PyU\n2+Lj43F0dFR21wXo2LGj8vG1a9coLS1l5syZaGjcb/0rKytT+T8WhKetRF7C4bjDHL9+HIWkIDom\nk8zMYgwUN9m15wrTp/or9zU2NqZTp07o6emp/O0LVdWY/N944w3lY0mSuHbtGv3798fHxwdLS0ty\nc3O5ePEicrkcGxubBgm2rtzc3B6rKcbT07NKU1B90tJS/e+QyWQ1tlPq6elVKatclE1LSwuZTMY/\nF2nT1tZWPq7s6rZmzRpatWqlst+DXwaC8DRdSb3Criu7yCrKUpa1cjDH6HZLHEp8yb2XT3GxHD29\n+58dS8umt5j601Bj8i8rK1N57uPjoyxPSUkBoG3biiXN0tLS6is+oQbOzs5cunRJpSwsLEy5LScn\nR7mIuqmpKQCRkZHKfVu1aoW2tjapqan07NlTWb527VrKy8uZOXNmA7wKQajeveJ77I3cy8W7F1XK\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation2(system)\n", + "plot_results(system, title='Proportional model')\n", + "savefig('chap03-fig03.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model fits the data pretty well for the first 20 years, but not so well after that." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** In this implementation, we compute the number of deaths and births separately, but since they are both proportional to the current population, we can combine them.\n", + "\n", + "Write a function called `run_simulation2b` that implements a model with a single parameter, `alpha`, that represents the net growth rate, which is the difference between the birth and death rates. For example, if `alpha=0.01`, the population should grow by 1% per year.\n", + "\n", + "Choose the value of `alpha` that fits the data best." + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEjCAYAAADaCAHrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVPX++PHXsO/7poIKCKggyKa470ualBmWisstl1zK\nSkvzmmlfzfRmuXbdK3fTJLcWu2aamikoIsjqgqCyI/s2zPn9wY/RicVBBUE/z8fDx2Pmc875nPeM\nzHvOfM5nkUmSJCEIgiA8VzSedgCCIAhCwxPJXxAE4Tkkkr8gCMJzSCR/QRCE55BI/oIgCM8hkfwF\nQRCeQyL5C9WaO3cubm5uKv/atWuHj48PQUFBhISEPO0QH1lmZiaFhYXK55Wv9WlrLHHUZOzYsfTt\n27fBjhPql9bTDkBo3D766CPMzc0BkCSJ/Px8Dh06xNy5c8nOzuaNN954yhHWzcmTJ5k9ezYhISEY\nGBgA8Nprr9GlS5enHJkgNCyR/IVa9e/fH3t7e5WyV199lSFDhrBu3TqCg4PR0dF5StHVXUREBLm5\nuSpl3t7eeHt7P6WIBOHpEM0+Qp3p6enRt29f8vPziY+Pf9rhCILwCMSVv/BIZDIZAOXl5QD07duX\nrl27olAoOHLkCGZmZvz4449YWFgQGhrK2rVruXz5MgAdOnTg7bffxt/fX1lf37596dKlCx07dmT9\n+vVkZmbStm1b3n33XQICAlTOrW59/4ynXbt2/PHHHwD069ePTp06sX37dubOnUtISAixsbHK42/f\nvs3KlSv5888/KSgowNHRkeDgYEaOHKncZ+7cuYSHh7N8+XKWL1/OlStXMDQ0ZMiQIcyePRs9PT3l\nvn/99RdbtmzhypUr5OfnY2FhQZ8+fZg9ezYmJiZqv+9z584lMjKSRYsWsXz5cqKjo7G2tmbGjBm8\n+OKLrF69mh9++IGysjK6devGJ598omy2A4iNjWXVqlWcP3+e0tJS2rZty+TJk+nfv7/Kec6ePcvq\n1auJiYnBysqKKVOmVBtPQkICX331FX///TdlZWW0a9eO6dOn06NHD7Vfk/B0iOQv1JlCoeD8+fPo\n6Ojg7OysLD969ChOTk7MmzePjIwMLCwsOH78ODNmzKBly5ZMnToVgH379jFhwgRWr15Nv379lMef\nPXuWQ4cOMXbsWKytrdm9ezcTJ05k69atdOrUCaBO9f0znm7duqGtrc1vv/3GRx99hIuLS7WvLykp\niZEjR1JSUkJwcDDW1tYcO3aMjz/+mJs3b/Lhhx8q983KyuLNN9/khRdeIDAwkFOnTrF9+3Z0dHSU\n+50+fZpJkybh4+PDO++8g0wm48yZM+zdu5ecnBxWrVpVp/c/PT2dt956i6CgIAIDA9m2bRvz5s3j\n8OHD5OXlMX36dK5du8bOnTvR19dn6dKlQEWT17hx4zAyMuJf//oXhoaGHDx4kOnTp7NgwQLGjBmj\n/H+YNGkSrVu35t133yUrK4slS5Ygk8mqfJGMHj1a+eWgra3NkSNHmDx5MitWrGDIkCF1el1CA5ME\noRpz5syRXF1dpaioKCkzM1PKzMyU0tLSpEuXLkkzZ86UXF1dpc8++0y5f58+faS2bdtKKSkpyrKy\nsjKpZ8+eUq9evaS8vDxleU5OjtSjRw+pR48eUmlpqfJ4V1dX6bffflPul5mZKfn5+UkjR458pPr+\nGY8kSdLq1aslV1dXKSkpqcprrfTuu+9Kbdu2lSIjI5Vl5eXl0pQpUyQ3NzcpLi5O5bht27apnOOF\nF16Qunfvrnz+5ptvSn369JFKSkpU9hs5cqTk7e1dYxzVqdxn+/btyrI//vhDcnV1rXKO119/XSWO\noKAgqWPHjtLdu3eVZcXFxdLw4cMlT09PKTMzU5IkSRo+fHiV9/ivv/5SnqNScHCw1L9/f6mgoEBZ\nVlZWJo0ePVrq2rWrMpbg4GCV44TGQbT5C7UaPnw4Xbp0oUuXLnTv3p3XXnuN48ePM3bsWGbNmqWy\nb8uWLbG1tVU+v3r1KikpKYwZMwYjIyNluYmJCcHBwaSmphIZGaksd3JyUml+sLCw4KWXXuLy5ctk\nZmbWub5/xqOO8vJy/vjjD7p37467u7uyXENDg7feegtJkvj9999VjnnhhRdUnrdt25aMjAzl8w0b\nNvDDDz+o3BjPzs7GyMhIpctpXQwYMED5uHXr1gD06NFD5Rz29vakp6cDkJGRweXLl3nppZews7NT\n7qOrq8ubb75JcXExZ8+eJTMzk6ioKIYOHaryHgcEBKh0Q83Ozub8+fP06tWL4uJisrKyyMrKIjc3\nlwEDBpCRkcGVK1ce6bUJDUM0+wi1+s9//oOVlRVQkQBNTExwdnZGV1e3yr6WlpYqz5OTkwFwdHSs\nsq+TkxMAd+7cUfa0adOmTZX9WrVqhSRJ3L59u871/TMedWRnZ1NYWFjtOSqbuG7fvq1SbmFhofJc\n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\nFi9eTFFRkXJ7TEwMwcHBeHl58eKLLxIVFaVyToVCwfr16+nTpw8dO3ZkxIgRnDx5ssFesyA8KoVU\ndcnTMV6jGOreg170xUrTGkODiqUU3d3dReKvhlpX/idOnODjjz+mR48eKuX9+/cnKyuLL774gkWL\nFtVLgI8jNjaWuLg4tfZt1apVlXVkIyIiSExMVOt4V1dX3Nzc6hzjg7788kuWLFlC69atmTt3LpMn\nT6ZDhw5s2rSJGzduMGvWLPz8/Bg9ejSXL19mwoQJjB07lkWLFpGcnMzChQtJTk5m/fr15OTkMGHC\nBAICAvjhhx+4efMmH3/8scr5VqxYwW+//cann35Ky5Yt+fPPP5kxYwabN2+mc+fOj/VaBKE+KCQF\nJ2+e5GTiSd7zn42p4f2lP410jBjQzJ/oe3extTVET08Lb29vmjdv/hQjbrzUSv46OjoYGxtXu028\nsU/OyJEj6du3LwAvvfQSn376KQsXLsTBwQFXV1c2b95MfHw8AFu3bsXDw4M5c+YAFStiLVy4kMmT\nJxMfH8+FCxcoKytjyZIlGBoa0qZNG1JTU5WLvBcUFLBt2zbWrFmj/FJv1aoVMTExbNy4USR/odFJ\nykliR8QOrmfdICk5j9E/L2PH3H9jbl6xwpZMJsPPz4/i4tNoaGjg7++PhYXFU4668VIr+Y8aNYpV\nq1bh5eWFldX9LlKFhYVs3LiRoKCgegvwefLgEor6+vpoaGio9MrR09NTNvvEx8fTq1cvleP9/PyU\n2+Lj43F0dFR21wXo2LGj8vG1a9coLS1l5syZaGjcb/0rKytT+T8WhKetRF7C4bjDHL9+HIWkIDom\nk8zMYgwUN9m15wrTp/or9zU2NqZTp07o6emp/O0LVdWY/N944w3lY0mSuHbtGv3798fHxwdLS0ty\nc3O5ePEicrkcGxubBgm2rtzc3B6rKcbT07NKU1B90tJS/e+QyWQ1tlPq6elVKatclE1LSwuZTMY/\nF2nT1tZWPq7s6rZmzRpatWqlst+DXwaC8DRdSb3Criu7yCrKUpa1cjDH6HZLHEp8yb2XT3GxHD29\n+58dS8umt5j601Bj8i8rK1N57uPjoyxPSUkBoG3biiXN0tLS6is+oQbOzs5cunRJpSwsLEy5LScn\nR7mIuqmpKQCRkZHKfVu1aoW2tjapqan07NlTWb527VrKy8uZOXNmA7wKQajeveJ77I3cy8W7F1XK\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "def run_simulation2b(system, alpha = .017):\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " results[t+1] = results[t]*(1+alpha)\n", + " system.results = results\n", + " \n", + "run_simulation2b(system)\n", + "plot_results(system, title='Proportional model')\n", + "savefig('chap03-fig03.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Factoring out the update function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The functions that run the model all look the same except the body of the loop. So we can factor that part out into a function." + ] + }, + { + "cell_type": "code", + "execution_count": 159, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func1(pop, t, system):\n", + " \"\"\"Compute the population next year.\n", + " \n", + " pop: current population\n", + " t: current year\n", + " system: system object containing parameters of the model\n", + " \n", + " returns: population next year\n", + " \"\"\"\n", + " births = system.birth_rate * pop\n", + " deaths = system.death_rate * pop\n", + " return pop + births - deaths" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now the name `update_func1` refers to a function object." + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 160, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "update_func1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Which we can confirm by checking its type." + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "function" + ] + }, + "execution_count": 161, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(update_func1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`run_simulation` takes the update function as a parameter and calls it just like any other function." + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + "\n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " system.results = results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we use it." + ] + }, + { + "cell_type": "code", + "execution_count": 163, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "run_simulation(system, update_func1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Remember not to put parentheses after `update_func1`. What happens if you try?" + ] + }, + { + "cell_type": "code", + "execution_count": 164, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEjCAYAAADaCAHrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYVNX/wPH3sO+bbCqoiIIKsqO4574lZoYrqJVballh\nuWRmpbl8s1zLvXI3THJps8wtzRRcEJRNBUVlR/ZtmPv7gx+jI6CDiqKe1/PwPDPn3nvuZ2aYz9x7\n7rnnyCRJkhAEQRBeKBpPOwBBEAThyRPJXxAE4QUkkr8gCMILSCR/QRCEF5BI/oIgCC8gkfwFQRBe\nQCL51wEzZszA2dlZ5a9ly5Z4eXkREBBAaGjo0w7xoWVkZFBQUKB8XvFan7a6Ekd1goKC6Nat2xPb\nDuD777+nY8eOuLm58eWXXz5UHfeTl5dHZmbmY6/3YdX1/4HapvW0AxDumDlzJubm5gBIkkReXh57\n9+5lxowZZGVl8cYbbzzlCGvmyJEjTJs2jdDQUAwMDAAYOnQo7dq1e8qRCfeKiYlhwYIFeHh4MHXq\nVFq0aPFY64+MjOStt97iyy+/pG3bto+1buHhiORfh/To0QM7OzuVstdee41+/fqxatUqAgMD0dHR\neUrR1VxERAQ5OTkqZZ6ennh6ej6liITqxMbGAjBhwoSHPnN4UP2pqamPvV7h4YlmnzpOT0+Pbt26\nkZeXR1xc3NMOR3hOlZaWAmBoaPiUIxGeFJH8nwEymQyAsrIyALp168bs2bOZNWsWbm5udO7cWdmW\nGhYWxpgxY5RH2KNGjeL06dMq9XXr1o2PPvqIkJAQunfvjoeHB8OGDePkyZOV9q1ufffGM2HCBFau\nXAlA9+7dCQoKAqpuZ71x4wYffPABfn5+tG7dGn9/f3788UeVdWbMmEGfPn2IiIggMDAQd3d32rdv\nz7x58ygqKlJZ999//2Xs2LG0bdsWFxcXOnXqxJw5cyqdhTzIjBkzePnllwkPD2fo0KG4ubnRvXt3\nQkNDKS0tZcmSJbRv3x5fX1/effddsrKyVLaPiYlh0qRJ+Pj44ObmxpAhQ/jrr78q7efEiRMMGzYM\nDw8PevToQUhISJXxxMfHM3nyZHx8fHB3d2fYsGEcO3asRq+pKkFBQcycOROAUaNGqXw+v/32G4GB\ngXh7e+Pq6kq3bt1YvHgxJSUlKnVcvnyZqVOn0rZtW7y9vQkKCiIsLAyAFStWqNR/95lFTT77rVu3\n4uvri6+vL0ePHgUgOTmZDz/8ULn9K6+8wt69eyu9xsjISN544w08PT3p1KkTa9as4UUf2UY0+9Rx\nCoWCU6dOoaOjg6Ojo7L8l19+oWnTpsyaNYv09HQsLCw4ePAgU6ZMoVGjRrz11lsAhISEMGbMGJYv\nX0737t2V2584cYK9e/cSFBSElZUV27dvZ+zYsWzcuJE2bdoA1Ki+e+Pp0KED2tra/Pnnn8ycOZPm\nzZtX+fquX7/OkCFDKC4uJjAwECsrKw4cOMDHH39MQkICH374oXLdzMxM3nzzTfr27Yu/vz9Hjx5l\n8+bN6OjoKNf7559/GDduHF5eXrzzzjvIZDKOHz/Ozp07yc7OZtmyZTV6/9PS0pg4cSIBAQH4+/uz\nadMmZs2axb59+8jNzWXy5MlcvnyZrVu3oq+vz4IFC4DyJq9Ro0ZhZGTE66+/jqGhIXv27GHy5MnM\nmTOHkSNHKj+HcePG0aRJE959910yMzOZP38+MplMef0Hyn9IRowYgaWlJRMmTEBbW5v9+/czfvx4\nlixZQr9+/Wr0uu42ceJEHBwc2LlzJxMnTqRp06ZA+Wc9e/ZsunXrxrRp0ygtLeXPP/9kw4YNAMr3\nPCEhgSFDhqClpUVgYCAWFhbs2LGD119/na1bt9KzZ0/S0tKU9bdu3Rqo2Wd/69Ytvv32W6ZMmUJq\naioeHh6kpKQQEBCAJEkEBQVhamrKwYMH+eCDD0hNTWXs2LEAxMXFERQUhImJCZMmTaK0tJSNGzdW\n+gF74UjCUzd9+nTJyclJioqKkjIyMqSMjAwpNTVVOnv2rDR16lTJyclJ+uKLL5Trd+3aVWrRooWU\nnJysLCstLZU6d+4sdenSRcrNzVWWZ2dnS506dZI6deoklZSUKLd3cnKS/vzzT+V6GRkZko+PjzRk\nyJCHqu/eeCRJkpYvXy45OTlJ169fr/RaK7z77rtSixYtpMjISGVZWVmZNGHCBMnZ2VmKjY1V2W7T\npk0q++jbt6/UsWNH5fM333xT6tq1q1RcXKyy3pAhQyRPT89q46hKxTqbN29Wlh0+fFhycnKqtI9h\nw4apxBEQECB5eHhIt27dUpYVFRVJgwYNktzc3KSMjAxJkiRp0KBBld7jf//9V7mPCoGBgVKPHj2k\n/Px8ZVlpaak0YsQIqX379spYAgMDVbZT108//SQ5OTlJJ0+eVJb16dNHGjp0qKRQKFT22blzZ+nl\nl19Wlk2dOlVyc3OTEhISlGWZmZmSt7e39M4771Rbf00/+19++UUl5unTp0tt2rSRUlJSlGUKhUJ6\n//33JVdXVyk9PV2SJEl6++23JQ8PD+nmzZvK9eLj4yVXV9cH/g88z0SzTx0yaNAg2rVrR7t27ejY\nsSNDhw7l4MGDBAUFERwcrLJuo0aNsLGxUT6/ePEiycnJjBw5EiMjI2W5iYkJgYGBpKSkEBkZqSxv\n2rQpPXr0UD63sLBg4MCBnD9/noyMjBrXd2886igrK+Pw4cN07NgRFxcXZbmGhgYTJ05EkiT+/vtv\nlW369u2r8rxFixakp6crn69Zs4affvpJ5cJ4VlYWRkZGKl1Oa6Jnz57Kx02aNAGgU6dOKvuws7Mj\nLS0NgPT0dM6fP8/AgQOxtbVVrqOrq8ubb75JUVERJ06cICMjg6ioKPr376/yHvv5+ak0vWRlZXHq\n1Cm6dOlCUVERmZmZZGZmkpOTQ8+ePUlPT+fChQsP9druZ+/evaxdu1bZ7AjlXXdNTEyU76VCoeDI\nkSN06dKFxo0bK9czNzdn27ZtzJ49u8q6H+az9/HxUT5WKBT89ddf+Pj4oKWlpXxPsrKy6NWrFyUl\nJRw/fhyFQsGxY8fo0qUL9evXV27v6OhIx44dH+0NesaJZp865H//+x+WlpZA+ZfAxMQER0dHdHV1\nK61br149ledJSUkAODg4VFq34jT+5s2byp42zZo1q7Re48aNkSSJGzdu1Li+e+NRR1ZWFgUFBVXu\no6KJ68aNGyrlFhYWKs91dHRQKBTK55qamly/fp1ly5YRHx/PtWvXSElJqXFsd7v7tWlqalYqqyiX\n/r8NuSLm+72umzdvKtdr1KhRpfWaNm1KREQEUN48ArB582Y2b95cZYy3bt1S/wWpSVtbm9OnT7N/\n/36uXLnCtWvXyMjIAKBhw4YA3L59m4KCApXEX8HJyanauh/ms7/7Pc/KyiI3N5e//vqryusoUP6e\nVMRX3Xt87w/Mi0Qk/zrEy8urUlfP6lQkoQrSfS5eVSzT1tZWlt39uELFBeW7E5m69d0bjzrut4+K\nhH5v11YNjfufrG7YsIHFixfj4OCAj48PvXr1wt3dnc2bN7Nv374axwigpVX5a3L30fC91Hld2tra\nyjruvWB993pw53MZOXKkytna3ar6MX9Un3/+OVu2bKFVq1Z4eHgwcOBAPD09+fzzz5U/NhWx3e/9\nqMrDfPZ3/49V7Ld3794MGzasynrs7e2Vjx/0Hr+IRPJ/TlQciV25cqXSsqtXrwKoNEFcu3at0nqJ\niYloampiZ2en7Pqnbn0Pw8LCAgMDg8e2j+LiYlasWEHbtm3ZuHGjStKu6YXeR6HuZ9GwYUNkMhmJ\niYmV1qs487q7Pk1NTdq3b6+yXnx8PElJSejr6z+2+KH8qHvLli0MHDiQxYsXqyy7u5nN3NwcPT29\nKv+fNmzYQFpaGjNmzKi07FE/ewsLC/T19ZHL5ZXek5s3b3Lx4kX09fUxNzfHyMjoge/xi0i0+T8n\nXFxclL128vLylOV5eXls27YNKysrXF1dleUXLlzg3Llzyufp6ens3bsXPz8/TE1Na1xfVSqO0qs7\nytPU1KRTp04cP36cqKgoZbkkSaxbtw6ZTMZLL72k9ntQVFREYWEhTZo0UUn8ly5d4tSpUwDI5XK1\n63tYFe/N3r17SU5OVpaXlJTw3XffoaOjQ4cOHbCwsMDX15e9e/eqJNSzZ8+qvB/W1ta4uroSGhqq\n0oRVWlrKrFmzeOeddx7768rOzgYqn1EcOXKEhIQE5f60tLTo0KEDR44cUWl6ys7OZsOGDcomq4r/\nhYqj7Uf97LW0tOjcuTNHjhwhOjpaZdnChQuZPHkyWVlZyGQyevbsybFjx1Tuk0lKSuLw4cM1fFee\nL+LI/zmhra3N7Nmzee+99xg8eDCvvfYaALt27SI1NZXly5erNJno6Ogwbtw4Ro8ejZ6eHtu2bUOh\nUCi719W0vqpUtM+vX7+ezp07q3QNrTBt2jT+++8/goKClN1O//zzT06ePMnrr79eo+YMU1NT3N3d\n2b17N0ZGRjg4OBAXF0dISIgy1vz8fExNTdWu82HNnj2b0aNH89prrzF8+HAMDQ3Zu3cvUVFRzJ49\nGxMTEwCmT5/OyJEjGTJkCCNHjqSwsJDvv/9epZvn3fUNHjyY4cOHY2Zmxi+//ML58+cJDg6utH6F\n9PR0jh8/jrOzc42GbGjWrBkNGjRg9erVFBcXY2trS0REBKGhoejq6pKfn69cNzg4mICAAAICApQd\nBH788UcKCgp49913gTv/C9u3byc9PZ0BAwY88mdfsf3IkSMZOXIkDRo04PDhwxw6dIihQ4cquxdP\nnTqVw4cPExgYyJgxY9DU1GTz5s0YGhq+0N09RfJ/jvTp0wdTU1O++eYbVq1ahZaWFu7u7syfP1+l\npwSAh4cH/fv355tvviE3NxcfHx+Cg4NVEkRN6qtK//79OXDgALt37+bUqVNVJv9GjRrx448/snTp\nUnbs2EFRURGOjo7Mnz9f+YNTE8uWLWPBggX89NNPlJSU0LBhQ8aPH4+joyNvv/02J0+epHfv3jWu\nt6Y8PT3Zvn07y5cvZ+PGjSgUClq0aMGqVatU2u1dXV3ZvHkzS5YsYeXKlZiYmDBlyhQiIyM5c+ZM\npfpWrFjBd999h1wux8HBgYULFzJo0KBq47h8+TIffvghU6ZMqVHy19HRYe3atSxcuJBNmzYhSRKN\nGjVi1qxZyOVy5s+fT2RkJK6urjg6OrJz506++uor1q9fj4aGBm5ubixatEiZgNu1a0ffvn05dOgQ\nJ0+epFevXo/82Vdsv3z5cuWPjb29PTNnzlTeVAhQv359tm/fzuLFi1m/fj06OjoEBAQA5b3DXlQy\n6X5XXoTnUrdu3WjYsGG1PUeE58sPP/xAUVEREyZMeNqhCHWIaPMXhOdYxciwbm5uTzsUoY4RyV8Q\nnmOFhYViGG2hSiL5C8JzzMrKiiFDhjztMIQ66Jlo8y8qKiIyMhIrK6uHuplIEAThRVNWVkZaWhqu\nrq7o6elVWv5M9PaJjIxUjoIoCIIgqG/r1q1V9s57JpK/lZUVUP4iHvWuUkEQhBdBxcCMFfnzXs9E\n8q9o6rG1tVV77BtBEASh+nG3xAVfQRCEZ1ReXh7FxcUPta1I/oIgCM+ggoIC/v33X44fP/5Qc1WI\n5C8IgvCMKSoq4uTJkxQVFZGfn8+pU6dqPCexSP6CIAjPkJKSEk6ePKkcXE9DQwNXV9caz6kgkr8g\nCMIzJDY2ltzcXKB8Eh1vb2/lDIA1IZK/IAjCM6Rly5ZYW1sjk8nw9PR86O7vz0RXT0EQBKGcpqYm\nvr6+ZGRkVNuHXx3iyF8QBKEOq+pCroaGxiMlfhDJXxAEoc6SJImzZ89y+fLlx163aPYRBEGogyRJ\nIiIighs3bnDjxg3Kyspo3rx5jXv1VEcc+QuCINQxkiQRFRXFtWvXlGUPeydvdUTyFwRBqEMkSeLS\npUtcvXpVWWZvb/9QffnvRyT/OqJbt2588803ai0rLi5m+fLl9O7dG1dXV9q2bctbb71FZGTkA/eT\nl5fH0qVL6du3L+7u7nTu3Jng4GCVfzRBEJ4OSZKIiYlRaeNv0KAB7u7ujzXxg0j+z6RZs2bx+++/\n89FHH/H777+zYcMG9PX1CQwMvO+FofT0dF599VUOHz5McHAw+/fvZ9myZeTm5jJs2DDi4uKe4KsQ\nBOFecXFxKt9DW1tbPD09H3viB5H8nzl5eXn88ssvTJs2jc6dO2NnZ4erqyv/+9//qFevHj/++GO1\n286dOxdJktiyZQs9evTA3t4eT09PVq1ahY2NDYsWLXqCr0QQhLvFx8cTExOjfG5jY4O3tzcaGrWT\npkXyfwZpaGjwzz//UFZWpizT1NTkhx9+YPz48VVuk5aWxsGDBxk9ejRGRkYqy7S1tVmyZAmzZ89W\nlsXGxvLmm28qm4bmzJlDTk6Ocnm3bt3YuHEjEydOxN3dnQ4dOrBy5Url8vT0dKZMmUKbNm3w8PBg\nzJgxXLp0Sbnc2dmZPXv2qMRxd9mVK1d444038PLywtvbm0mTJpGUlPQQ75Yg1H1XrlxR+X5YWVnV\nauKH5zz579t3mQkTDjBhwgH27avcHBISEqNc/uefCZWWb9lyUbn82LHKiWf9+gjl8lOnbtXGS6jE\nyMiIESNGsHXrVjp37syHH35ISEgIN2/exM7Ojnr16lW53aVLl1AoFLi7u1e5vHnz5jRp0gSAlJQU\ngoKCcHJyIjQ0lOXLlxMfH8+UKVNUtlm2bBldu3Zl//79jBkzhhUrVhAWFgbAp59+ilwuZ/v27eze\nvRtDQ0PefvtttV/ntGnTaNCgAaGhoWzdupWsrCxmzZql9vaC8CwxNjZWTrpiaWmJr69vrc9XXqN+\n/kVFRaSkpJCbm4u5uTlWVlbo6OjUVmxCNWbPno2bmxu7du3i119/Zc+ePchkMnr16sX8+fMxNjau\ntE3FUbuJickD69+2bRt2dnZMnz5dWfb111/TuXNnzp49i6enJwBdu3Zl6NChAIwbN461a9dy7tw5\nfHx8SExMxNnZGTs7O3R1dfnss8+Ij49HoVCodTSTmJhIhw4daNiwIVpaWvzvf/8jPT1drfdHEJ41\nVlZW+Pr6cvnyZXx8fKpM/EXyInKKc7A2tH4s+3xg8i8pKWHXrl3s37+fiIiISk0Nbdq0oXfv3gwa\nNEj8EDwCLS0tFApFlcsUCgVaWqoflb+/P/7+/hQUFBAeHs5vv/1GaGgoGhoaLF26tFId5ubmAGRn\nZz8wlkuXLnHp0iVlkr/b5cuXleUVZwoVjI2NKS0tBWDSpElMnz6dAwcO4OvrS+fOnRkwYIDap7FT\np05l0aJFbNu2DT8/P1566SX69++v1raC8CyysrLC0tKyyou7WYVZrDi1giJ5ETM6zsBE98EHcQ9y\n3+S/e/dulixZQklJCV27dqVPnz40bNgQAwMDsrOzSU5O5syZM3z11VesXLmSd955h4CAgEcO6nEZ\nMMCRAQMcq10eEOBMQIBztcsDA1sRGNiq2uVjx7oxdqzbI8VYwcTEhLy8vCqXZWdnY2ZmBsB///3H\n4cOHlUflBgYGdOrUiU6dOmFpacnmzZurrMPV1RUtLS3OnTuHm1vlmPft28fBgwdZtGgR2tradOjQ\nQeUaQAULCwvl46p+7CvGIenTpw/t27fnyJEjnDhxgm+++YY1a9awZ8+eKoeflcvlKs9HjRpFv379\nOHToECdOnGDBggVs3LiRPXv2iIMM4ZmXlJREvXr10NfXVymvKvEn3k5k1elVZBeVH7itOrWK6R2n\noyF7tFb7apP/hAkTyMzM5NNPP6Vz587VfuHGjBlDSUkJv//+O9999x0HDhxg3bp1jxTUi8jFxYWz\nZ89WKo+OjqagoIDWrVsD5b19Nm7cyMsvv4yLi4vKusbGxtW2+ZuamtKzZ09++OEHBg8ejKGhoXJZ\ncXEx69atw8LCAl1dXZo1a8a+ffto0KAB2traAFy/fp158+YRHBxcZbPS3eRyOUuWLMHf358BAwYw\nYMAAMjIyaN++PadOnaJfv35oa2ur/NglJiYqH2dlZbFy5UrGjRtHQEAAAQEBREREEBAQQHR0dJU/\nXoLwrEhMTCQiIgIDAwPatWuHgYFBtetGpESwLnwdJWUlAGhqaNLVoesjJ364zwXfvn37EhISQo8e\nPR54pKWjo4O/vz+7d++mX79+jxzUiygoKIiLFy8yZ84coqOjuXbtGn/99RfvvfceXbt2pWXLlkB5\nO7uvry8TJkwgJCSExMREYmJi2LFjB2vWrGHy5MnV7mPGjBlIksTIkSP5+++/uX79OidPnmTs2LGk\npKQwZ84cAAIDA8nJyWHGjBnExMRw4cIF3n//fRISEio19VRFS0uLqKgo5syZw/nz57l+/To7d+5E\nW1tb+YPl4eHBjz/+SHR0NFFRUXzyySfK/zNTU1OOHj2qfC8SExPZvXs3JiYmODg4POI7LQhPT0JC\nAhEREUD5HLx39/C51/Xs63xz+htKykqQkMjJlHij1Vv42fk9lliqTf6vvPJKjSuTyWQMGjTokQJ6\nUTVr1oytW7eSnJzM6NGj6d+/P4sWLaJXr14sX75cuZ6GhgZr165lyJAhfP/99/j7+zN06FB+/vln\nvvjii/u+/7a2tuzcuRMfHx+++OIL+vfvz4wZM6hfvz4hISE0bdoUKG97/O6770hPT2fIkCGMHTuW\n+vXr891336nd5LJkyRLs7OyYMGEC/fr146+//mLVqlU0btwYKL/nwNjYmICAAN555x2GDBminJRC\nQ0ODNWvWAOU/iv7+/sTHx7Nhw4YHnnUIQl2VkJDAhQsXlM/NzMzuexZrZ2JH58adKSqWk3ixDK2T\nXQn7o6za9WtKJtVg1t+YmBgKCwurvDDp5eX12IK6V1JSEt27d+fgwYPY2dnV2n4EQRBqw9WrV1WG\nXzEzM8PPz0/ZrFodhaTgm783Ex5iio5U3jw0ebInbm4PHsv/QXlTra6ekZGRTJ06lZs3b1ZaJkkS\nMpnsvqcvgiAIL6orV64QFRWlfG5ubk7btm1VEn9GQQa7Lu5ieOvhKj15NGQaTOk+mk03ojhx4iYv\nvWSPk5P5Y4lLreQ/f/58NDQ0WLBgAba2trV615kgCMLzoqrE7+fnp+y6LUkSx64dY9fFXRTLiymR\nyxne7HUsLVUvAg8e3JyOHRvStKnZY4tNreQfFRXFV199RY8ePR7bjgVBEJ5n8fHxKi0iFhYWtG3b\nVpn4Mwsz2XR+E5fSytfJul3Ed6cPkKRnz4IZA9DQuNPt09BQh6ZNH28XZ7WSv4WFRa3faiwIgvC8\nkCSJ27dvK5/fnfglSeKfa/+w6+IuiuRFAJSUlnH1QhnOea9yu0yPQ4eu0b1741qNUa3kP3z4cNau\nXYufn1+lmxJq4r///mPUqFFVLmvbti2bNm166LoFQRDqCplMhpeXF2FhYZSVleHr64uWlhZZhVls\njthMVGqUyrovt+jLK9ou/Lr/GgYG2hgZ1f6NjGol/xs3bhAfH0/Hjh1xcnKq8q60DRs2PLAeT09P\n/vnnH5Wy48ePM3PmTMaNG1eDsAVBEOo2DQ0NvL29lY+PXzvOj1E/UiQvQkJChgwbIxtGu4/G0cIR\nuZMCeYkGvXo1wdi4jiT/q1ev0qJFC+XzivFbakpHRwcrqztdlHJzc/nyyy9588036dSp00PVKQiC\n8LRJkkRKSgo2NjYqQzRUNJfHZsSy6fwmJCRu3swnOTmf918ZRoDrYLQ1y3v9aGlpMHiw0xOLWa3k\nX914MY/qm2++QUdH5753pQqCINRlkiQRERHBtWvXcHJywtm58nhhTvWc8Gngww9//k5Buh5OBQPR\nivFA2/3+/fxrU42GdI6Pj+fUqVPk5eVhbm6Ot7e38q7QmsrIyGDLli3MnTv3ka4jCIIgPC0KhYJz\n585x48YNoHwSJFNT00pnAADDWw8nM0mTuF9t0ESb6OhM5HIFWlpPp+u8WntVKBTMnj2bAQMG8Nln\nn/HVV1/x8ccfK4cHqMFNwkrbt2+nXr16+Pv713jb55G6E7gnJSXh7OzMe++9V+W6Vc2QVaFi27v/\n3N3dGThwIFu3blX5HHfv3l1p3bv/fv/9d+W6ly9fZurUqfj5+eHq6krPnj1ZvHhxtaOUTpgwAWdn\nZ86fP6/WeyMIdZFCoeDMmTPKxA9gZ2fHlZIrfHHsC4rlxSrrG+kY8aH/63i6NWDAAEdmzfJ7aokf\n1DzyX7t2LT///DPBwcEMGDAAS0tL0tLS2LdvH8uXL8fR0bHGF2z37t3Lq6+++sDbm4Wq/frrr/Tv\n3/+h7r345ptvcHNzQ5IkcnNzOXToEAsXLiQpKUllAhdNTU2OHDlSZR2mpqZA+fSQI0aMoEePHnz3\n3XcYGxsTExPDggULiIyMrNSDKy0tjX/++YcmTZqwc+fOamcWE4S6rKysjLCwMFJTU5VlVg2s+Kfk\nHyLPRyKXK5i2YSWfD52MmZmech2ZTMakSR61MiF7TamV/Hft2sXEiRMZO3assszW1pZx48ZRXFzM\nrl27apT84+LiSExMFJNzPAJ7e3vmzp2Lr6+vMhGry9TUVHnh3draGkdHR7S0tFi0aBGDBw+mWbNm\nynXvvkBflYozgPnz5yvL7OzsMDQ0ZPTo0URHR6t0Fti7dy/W1taMHDmSr7/+mlmzZlWaU1gQ6jK5\nXM6pU6fIyMi4U2YqZ0fqDgrlhWRmFRIbm4VmUQGbt0fw9lttVLavC4kf1Gz2SUtLU3ZZupeXlxe3\nbtVs/tqwsDCsrKxwdKx+ohXh/j744ANKS0tZsGDBY6kvICAAHR0dfvvttxptp6GhQW5uLuHh4Srl\nvr6+7N+/v9IQzD///DN+fn707NmTwsJC9u7d+8ixC8KTUlJSwr///qtM/CVlJcQSy++3f6dQXgiA\npoYGlrmt8codTuS521y+fPt+VT41ah3529vbc/bsWdq1a1dp2dmzZx94dHivS5cu4eRU+12a9sXs\nY3/sfrXW7dS4E4FugSplWyK2cCzxmFrbv+z0MgOcB9Q4xodVr149Zs6cyfTp0+nXrx+dO3d+pPoM\nDQ2xs7N+3aONAAAgAElEQVQjNja2Rtv179+fDRs2MGLECFxcXGjbti1t27bFz8+P5s2bq6x74cIF\nYmNjCQ4Opn79+nh4eBASEsKIESMeKXZBeBKKioo4efIkubm5AKTkpRBNNLlGufD/B/OWBpYEtx/N\nSUUpUVHpDBvWAkfHxzcez+OkVvJ/7bXX+OqrrzAwMKBfv35YWlqSnp7OL7/8wpo1a5gwYUKNdpqa\nmlrjpgqhsldeeYXffvuNOXPmsH///kduPrl3KsmysrIq5/E1Nzfn77//BsqHpv3pp5/YuHEjBw4c\nYOPGjWzcuBEjIyOmTZvG8OHDlduFhoZiYmJC+/btgfIfjnnz5hERESFm5xLqvKKiIgoLCykuKyYu\nM46bejfJ0sxHVlA+9k43h24MdB6IrpYu9gGlBAQ4oa9fd69pqpX8g4KCuHTpEgsXLmTRokXKckmS\n8Pf356233qrRTlevXl2zKF8ANZ3AvcKnn35K//79Wbx4MZ999tkjxZCXl6dyFqepqcnPP/9cab17\nR3U1NzcnODiY4OBgbt68yYkTJ9i2bRtz586lQYMGdOnShZKSEn755Re6d++unBCmT58+fPHFF+zc\nuVMkf6HOMzMzo02bNuz+azdJeknEZ2RwPSkXWyMbvp34Ps5Wd1oz6nLSr6BW8tfU1GTRokWMHTuW\n06dPk5OTg4mJCb6+vpVO7euSAc4DHqkpJtAtsFJTUG1RdwL3e9na2jJ9+nTmzJnzSFNoFhYWcvXq\n1UoX4Stm3qrO2rVrady4Mb179wagQYMGvPbaa/j7+9OnTx+OHDlCly5d+Pvvv7l9+zZ79uxRaedX\nKBT8+uuvzJw5U1z4Feq8evXqMeqVUVw/nMrhiEQaFHnQ5HZ7kiJ0ce7+tKOrmRrd5NW8efM6neyf\nZepO4F6VIUOG8OuvvzJ79uyH3n9ISAgKhaLGPyARERH89ttv9OjRQ2XkVx0dHfT19ZUTyoeGhmJj\nY8P69etVtg8PD2fu3Lns27dPpYlIEJ62jIwMtLW1kenKMNa9M32orq4uUzqOo3F+e079UUqzZma0\nalXvKUb6cKpN/r1792bZsmW0aNGCXr16PbB70h9//PHYg3uRBAUFMWjQIObMmcOIESMwMDAgNjaW\nJUuWqEzgXp158+YxYIB6ZznZ2dmkpaUhSRI5OTkcPXqUpUuXMn78eBo1aqSyblpaWpV16OvrY2Rk\nxOTJkxkxYgTjx49n7NixNGrUiFu3bhEaGkp2djZDhw5V9u2fPHlypQv9jo6OrFu3jpCQEJH8hToj\nOTmZf/77h9jbsWAPb7d5H2OjO/31rQ2tGTPQktZ2Kfj62taZ7ps1UW3y9/LywtDQUPn4WXxxz5KK\nCdxXrlzJ6NGjKSgowNbWln79+qk19pGdnR3BwcF8/vnnD1x30qRJysdmZmY4Ojry+eefM3DgQJX1\nysrK6NixY5V1jBw5kjlz5tCyZUt27tzJt99+ywcffMDt27cxMTGhQ4cO7NixA0tLSzZs2IBMJmPI\nkCGV6tHU1GTUqFEsWLCACxcu3PcMRxCehGvXrvHb8d+4mnUVeVkZySdzGXdwFT/MmYqu7p2Uqamp\nQZs29Z9ipI+mRhO4Py1iAndBEJ6E05Gn+ePfP8gpyQHgRloOUQXJ1C/yZkyHAIYObfGAGuqOh57A\nPSUlpUY7srGxqXl0giAIdYC8TM6OwzuIjI5EQXmvuzLtMowcjXE50REjhTWFhXIkSXpuWkGqTf5d\nunSp0Yu8e65KQRCEZ0VCVgKbDmwiL/1ObzuFnoIu7brQ17kvO4jFy8sGFxfLpxjl41dt8v/iiy+e\nm184QRCEqoRGhfLPf/8g5crIySnB1FQXcytTxvQdg51ZeVNJUJDLU46ydlSb/F999dUnGYcgCMIT\nJZfLSY1NpThDQU52CSBDVlSfGUPeQUuzRr3gn0nVvsKa3IUrk8lqPMSDIAjC06SpqYlvE1+uXL9G\nkUIb7QInCjIbkZ5WjK3tC5z8ly5dqnYlIvkLglDXRaREYG9ij7m+OVCetzzcPcgtzCX6Qhm3bxsS\nFOSCra3hU470yag2+UdHRz/JOARBEGpFTnEOOyJ3EH4zHAu5A5N8JmFvbwKUj1PVuV1n2vmUT6eo\nofHiXOd8/s9tBEF4IUmSxInrJ9h1cRe3C3JJjS0iMfsiC6N+YsWsMcpEL5PJ0NHRfEBtzx8xvIMg\nCM+d1PxUtkRsISY9BgCdbB3q5euiLzOHNE2OHLlO166NHlDL800M7yAIwnOjTFHGgcsH+CXuF0rL\nSkECvdt6mJaYYmRVn/QkaOCgi5fX89Vn/2FUm/zvnh5w4cKFTyQYoXaFhYUxcuRItYfJ2L17N7Nn\nz+bixYtPIDpBeDRXs66yOWIz128nUVgkx1BfG4MMAxy0HGhcvzEyNJAa69G3bxflnBIvMrXb/BUK\nBYcOHSI8PJy8vDzq1atHmzZtqpzaURAE4UlKzktm0fFFZGUVEhd/G5lChn9zL5xMmmOkUz5PRP36\n9fH09FQZevxFplbyT09PZ+zYsURHR6Ojo4OFhQUZGRmsXr2adu3asXLlSgwMDGo7VkEQhCrZGtni\nYe3Ft//uQ7NEG28NL0yzGmNkXp74HRwccHFxEc3Xd9F48CrlzT5paWmsW7eOiIgIDh8+zIULF1ix\nYgVRUVEqUzsKD8fZ2ZmQkBCGDRtG69at6devH+fOnWPbtm106dIFLy8v3n//fUpKSpTbhIWFERgY\niKenJ+3bt2fevHkUFhYql0dHRxMYGIi7uzsvv/wyUVFRKvtUKBSsXr2arl274uHhweDBgzly5MgT\ne82C8LAUUuUpT0e6D6e/Sye60A1LTSsMDcqnUnRxcRGJvwpqHfkfOnSIjz/+mE6dOqmU9+jRg8zM\nTL788ks+/fTTWgnwUcTExBAbG6vWuo0bN640j2xERASJiYlqbe/k5ISzs3ONY7zbV199xfz582nS\npAkzZsxg/PjxtG7dmnXr1nH16lWCg4Px8fFhxIgRnD9/njFjxhAUFMSnn35KUlISc+fOJSkpidWr\nV5Odnc2YMWPw8/Pjp59+IiEhgY8//lhlf0uWLOHPP//ks88+o1GjRhw7dowpU6awfv162rZt+0iv\nRRBqg0JScCThCEcSj/Ce7zRMDe9M/WmkY0TP+r5cun0LGxtD9PS08PT0pEGDBk8x4rpLreSvo6OD\nsbFxlcvEG/v4DBkyhG7dugEwcOBAPvvsM+bOnYu9vT1OTk6sX7+euLg4ADZu3IirqyvTp08HymfE\nmjt3LuPHjycuLo7Tp09TWlrK/PnzMTQ0pFmzZqSkpCgnec/Pz2fTpk2sWLFC+aPeuHFjoqOjWbt2\nrUj+Qp1zPfs6WyK2cCXzKteTchnx2yK2zPgIc/PyGbZkMhk+Pj4UFf2DhoYGvr6+WFhYPOWo6y61\nkv/w4cNZtmwZ7u7uWFre6SJVUFDA2rVrCQgIqLUAXyR3T6Gor6+PhoaGSq8cPT09ZbNPXFwcXbp0\nUdnex8dHuSwuLg4HBwdld10ADw8P5ePLly9TUlLC1KlT0dC40/pXWlqq8hkLwtNWLC9mX+w+Dl45\niEJScCk6g4yMIgwUCWzbcYHJb/kq1zU2NqZNmzbo6emp/O8LlVWb/N944w3lY0mSuHz5Mj169MDL\ny4t69eqRk5PDmTNnkMvlWFtbP5Fga8rZ2fmRmmLc3NwqNQXVJi0t1Y9DJpNV206pp6dXqaxiUjYt\nLS1kMhn3TtKmra2tfFzR1W3FihU0btxYZb27fwwE4Wm6kHKBbRe2kVmYqSxrbG+O0Y1G2Bd7k3M7\nj6IiOXp6d7479eo9e5OpPw3VJv/S0lKV515eXsry5ORkAFq0KJ/SLDU1tbbiE6rh6OjI2bNnVcrC\nw8OVy7Kzs5WTqJuamgIQGRmpXLdx48Zoa2uTkpJC586dleUrV66krKyMqVOnPoFXIQhVu110m52R\nOzlz64xKubOlMyO7juSQRgpFRQlYWxdRXJyPnp7pU4r02VVt8t+8efOTjEOooXHjxjFo0CAWLVpE\nQEAAN27c4NNPP6VLly44OjpiY2PDqlWr+PDDDwkODiYlJYXly5crt9fX12fMmDEsWbIEQ0NDWrdu\nzaFDh1i1ahXz589/iq9MeNEdv3acH6N+JCs3l/jLt3FoYoqNhTkBrQLws/MjOzsbC4tkiotllJXJ\nOXXqFF27dq105izcX7XvVnh4ON7e3jWuMCwsTNn2LNQeJycnVq9ezdKlS9m8eTNmZmb079+fd999\nFwAjIyN++OEHPvvsMwICArC2tmbcuHHKC74A7777Ltra2ixevJj09HTs7e357LPPxEQ+wlMlIXH9\nViYxsVkoFBINyuyYO+hDTPSMuXXrFmfPnqWsrAwob6Js2bKlSPwPQSbd2zD8//z9/XF0dOStt97C\nycnpgRVFRESwbt06EhIS2Ldv32MN8kGz0AuC8PyQJIlPDsznt4PRNM3rhoVkz3vveSOTZagMNa+j\no4OPj49o46/Gg/JmtT+XP/30EytXrmTw4ME0adKEXr164ebmhp2dHfr6+uTk5JCSkkJ4eDhHjx7l\n6tWrBAYGsmTJklp9QYIgPD/OJ5/HTM+MxmZ3Oh3IZDLe7zIFX3kqkRFZjBjhREbGVW7cuKFcx9DQ\nkLZt24oePY+g2iP/CikpKXz//ffs37+ftLQ0ld4nkiTRoEEDevfuzZgxY7CxsVFrpyEhIaxfv55b\nt27RrFkzPvjgg/uOESSO/AXh+ZJVmMX2yO2cSz4HOWZMcQvGrbVq/igrU1BSUkJ4eBhZWVnKcktL\nS7y9vcXgbA/w0Ef+FWxsbJg+fTrTp0/n8uXLJCUlkZubi7m5OQ0aNMDBwaFGAYWGhvLpp58yd+5c\nfH192bZtG5MmTWLfvn0isQvCc04hKfj76t/sjdlLTn4+MTFZ3M6+QW7Udr5rPkWly6YkKThx4jgF\nBQXKssaNG+Pq6iq6Iz8GNbpK4ujoiKOj40PvTJIkVqxYwbhx43jttdcAmD59OidPnuTs2bMi+QvC\ncyzhdgJbIrZwPfs6ABqaMgoKSrEtcUE/pyl//pnIgAF38ouWlhaNGjUiOjoamUxGq1atcHBwEGP0\nPCZP9BL5lStXuHHjBv369VOWaWhosGfPnicZhiAIT1BhaSE/R//MkcQjKjceNja3p1/3NzgYkk+P\nno3p1atxpW2bNWtGYWEhtra2dfZm0mfVE03+CQkJAOTk5DBq1Cji4uJo2rQpwcHBypvIBEF4PkiS\nxJlbZ9gRuYOM/Czy8koxN9NDW1Obl51epkfTHmjKNOnkUoCNjSFlZWWUlJSotOXLZLInepf9i+SJ\nNpzl5eUBMGPGDAICAli/fj3Nmzdn9OjRXL58+UmGIghCLcsozGDdmXXEXb9FWFgKFy9m0NTYmbkv\nzaVPsz5oaZQPQ2JjY0hhYSHHjx/n9OnTKBSVh2sWHr8nmvwrxpaZOHEiAwYMwMXFhU8++YQmTZqw\nffv2JxmKIAi1zNLAkp4Ovbh+PRdZiT5OuX0xvtgVSwPVgQMzMjI4duwY2dnZZGZmcuHChUrjUgmP\n3xNt9qlos7v7pjGZTEbTpk1JSkp6kqEIgvCY5ZfkY6ij2u/ev8UAUrsUErbDBCtzUzp2VO3UkZiY\nqJLsZTIZZmZm4qLuE6BW8i8uLmbNmjUcPnyYgoKCKn+V//jjjwfW4+LigoGBARcuXKB169bAnRFD\nxVzAgvBsKpIXsSd6Dyeun2Cqx3Sa1r8zx4e2pjZvdR1JmHEyrVtboqtbnnIUCgWRkZEqkyXp6uri\n7e0t7th9QtRK/vPnzyckJIQ2bdrQvHnzh+5jq6+vz+jRo1m6dCmWlpY4OTmxbds2rl27pjLomCAI\nz4aIlAi2XdhGel4GCQk5jP7rC7a8M5/GjVVH2fTxsVU+Li4uJiwsjMzMO8M0m5qa4uvri76+/hOL\n/UWnVvL/448/eO+99xg/fvwj73Dq1Kno6+vzxRdfkJGRQcuWLdm4cSNNmzZ95LoFQXgycopz2H5h\nu3LI5bj426SmFmAh1eOHLeeZPbMTGhqVm26ysrIICwujqKhIWdawYUPc3d3R1NR8YvELaib/kpKS\nx9bdSiaTMWHCBCZMmPBY6hME4cmRJIl/k/4lJCqEgtI7d966NGuA1fXmWBQ1x9zBiKIiOQYG2irb\nZmRkcPLkSWVvHplMRosWLXB0dBRt/E+BWsm/Y8eOHD16FD8/v9qORxCEOiqjIIPNEZu5lHZJpby9\nfXtea/Uap80yMDTUxsfHtspkbmZmhomJCbdv30ZbWxtvb2+srKyeVPjCPdRK/v7+/syePZusrCy8\nvLyqnEJwwIABjz04QRDqhn+v/8u2C9vILSwkPj6L+vUNcWpoT6BbIC2tWgLw0kv3H2FTU1MTHx8f\nzp8/j5ubGwYGBk8idKEaaiX/t99+GygflC00NLTScplMJpK/IDzHjHWNSc3I4eLFDMrKJCyz3fjw\n1WmYGlWf8HNzczEyMlI5C9DX1xctCHWEWsn/4MGDtR2HIAh1mKu1K12bd+L6peM0yeuKcZktcdG5\n+PhUTv6SJHH16lUuXrxIq1atRGeOOkqt5N+wYUPl44KCAvLz8zEzM1PesSsIwvPjVu4t8kryaF6v\nuUr5GJ9APDT68Mu+BEaNcqF5c/NK28rlcs6fP8/NmzcBuHjxIqampqLvfh2k9h2+//33H19++SVR\nUVHKm7zc3Nx49913xQ1agvAcUEgK/rz8J3tj9iKT6zKq0bu08WykXK6npUdb34b4eDVAS6vyvT65\nubmEh4eTm5urLDMzMxNt+3WUWsn/9OnTvPnmmzg4OPDOO+9Qr149UlNT+f333xk3bhzff/+9mLRd\nEJ5hyXnJfH/ue65kXeFGUh4JiTnE/bOaHU3mYG5+p4OHTCZDS6tyT54bN24QERGBXC5XljVp0gQX\nFxcx8UodpVbyX7ZsGe3atWPt2rUqF28mTZrE+PHjWbFiBT/88EOtBSkIQu1QSAr+uvIXe6L3IFfI\nkRSQnJyPYakVVgWt2bbtEpMne1a/vULBxYsXuXr1qrJMU1OT1q1bY29v/yRegvCQ1Er+kZGRLF26\ntFLfXZlMxsiRI3n//fdrJThBEGpPWn4a3537jsuZd4ZT19bSYnL3QP7bZoK9nQn+/tXP3FdYWEh4\neLjK/LqGhob4+PhgYmJSq7ELj06t5G9iYqIyj+bd8vPzxW3ZgvAMkSSJY9eOseviLvKKCtDWKv/+\n2pvaM8ZjDHYmdvhZpuPsbIGmZtVNNpIkERYWxu3bt5Vl9evXx93dXXQEeUao1Rjn5+fHihUrSElJ\nUSlPSUlhxYoV4oKvIDxD1oavZfP5LcReSePUf8kUFMgZ4DyAmR1nYmdSPuRyq1aW1SZ+KD/rb926\nNRoaGsr5db29vUXif4aodeQfHBzM4MGD6d27N97e3lhaWpKenk54eDhGRkZ88MEHtR2nIAiPSUur\nluw8dpBbt/IxUFhgHdOfPoP7oVnDC7NmZmbKO3VFV85nj1qfto2NDaGhoQwfPpzc3FzOnTtHTk4O\nI0aMIDQ0VFzYEYRnSKdGnejeug2N5d545Q7HRs+OgoLS+26Tnp5e6cwfwN7eXiT+Z5Ta/fytrKyY\nPn16bcYiCMJjFpsRi7GOMfWN6yvLZDIZM7u/TwetJORyiW7dGlU5/DKUt+3HxsYSFxeHlpYWnTp1\nwtDw/mP4CM+GapP/6tWrefXVV7G2tmb16tX3raRimGZBEOoGuULO3pi9/HH5D0rTjXm/zQe4trJR\nLteQafDSS43uUwMUFRVx5swZMjIyACgtLSUyMpK2bdvWauzCk1Ft8l+6dCnt27fH2tqapUuX3rcS\nkfwFoe5IyUthw9kNxKZeITY2k6ysJObGbmTT7GmVxtivTlpaGmfPnqW4uFhZZmlpibu7e22FLTxh\n1Sb/6OjoKh8LglA3SZLEiesn2BG5g5KyEmQyyMsrxVxuj1GOMwcOJPDKK83vW4dCoSAmJob4+Hhl\nmUwmw8nJiebNm4tJV54jal3wXblyZZUXe6D8tu558+Y91qAEQaiZgtIC1p1Zx6bzmygpKwHAQFeX\nSV1G07rgVfx7ufLyy9XfsAXlgzaeOHFCJfHr6uri5+eHk5OTSPzPGbUu+K5atYrOnTtjY2NTadm5\nc+fYuXMns2fPfuzBCYLwYJczL7PuzDpuZaWhp1f+la5vXJ+xXmOxM7EjxT0fG5v7X6RNTk7m3Llz\nlJbe6fVjZWWFp6cnurq6tRq/8HRUm/yHDx/OuXPngPLTyaFDh1ZbSevWrR9/ZIIgPNAf8X8QEvnT\n/7ftF+HtbUNPp24EuASgo6kD8MDED+VNOxWJX8yt+2KoNvnPmzePAwcOIEkSy5cvZ8iQIdja2qqs\no6mpibGxMT169Kj1QAVBqCy3JJcLkWnk5JSgJelimdiNEYNH1Dhp29jY4ODgQEpKCl5eXpibVx6r\nX3i+VJv8HR0deeutt4Dyi0ABAQFVNvsIgvD0vNLiFf5rfYFjR2/inN8bD/dWlJVJVQ67XEGSJIqK\nitDX11cpb9WqFc7OzmKIhheEWm3+U6ZMASArK4vS0lLlZC6SJFFQUEB4eDgBAQG1F6UgCCgkBSVl\nJehp3RlfX0tDizl9pnFcP5UGtia4uVndt47i4mLlHfpdunRBR0dHuUxDQ0OMvf8CUSv5x8TEMG3a\nNJVeAHeTyWQi+QtCLcouymb9mfVcTyjggy7v0rChsXKZsa4xfXoZ32frcqmpqZw7d07Zdz8iIgJv\nb2/Rrv+CUiv5L168mNu3bzN9+nQOHTqEjo4OXbt25ejRoxw9epRNmzbVdpyC8MK6lHaJb/9by5mo\na2RkFJEVv4ENs96pcirFqpSVlXHp0iWVCVcAMb3iC06t/55z584xdepUxowZQ79+/SgsLGTEiBGs\nXr2aHj16sHnz5tqOUxBeOApJwb6YfSz7bxlZ+dlkZRUjA1LT8zh4MFGtOrKzszl27JhK4q/ou9+q\nVStx1P8CU+vIv6SkhCZNmgDl83Lefcfvq6++yieffFIrwQnCiyqnOIcNZzYQnV7+XTMw0KZ184ZI\nZ3x5tXNHunW7/7g8kiRx5coVoqOjUSgUynJbW1vc3NxE331BveTfoEEDkpKS8PHxoUmTJuTl5XHj\nxg0aNmyIrq4u2dnZtR2nILwwYjNiWRO2lrySXGVZC8sWvNHzDTK7STg4mN13+8LCQs6dO0d6erqy\nTFNTExcXFxo1aiSO9gVAzeTfo0cPvvzySwwNDenZsydNmzZl2bJlTJgwge+//75G4/nHx8fTv3//\nSuVbt27Fx8dH/cgF4TkjSRK/xf3Gt4e2cvNmHh6e1mhradK/eX/6O/VHQ6aBqcOD60lPT1dJ/GZm\nZnh6emJkZFSL0QvPGrW7eiYmJvLjjz/Ss2dPZs6cyZQpU9i3bx+ampp89dVXau8wNjYWc3Nz9u3b\np1JuZnb/oxlBeN79cfkPFu3ZSGpaIQBJV0pYGjSDllYta1SPnZ0dycnJpKSk0KxZM5ycnEQXTqES\ntZK/vr4+K1eupKSkfMCoTp06sW/fPqKiopSnkuqKjY2lWbNmWFndvz+yILxoujTuwo8NfiM1LR5T\neQN88gNwML7/KJwAcrkcLa07X2WZTIabmxv5+flYWFjUZsjCM0ztmbwAlRtCGjVqVKOkXyEuLo6m\nTZvWeDtBeN7pa+vzSf/3+SpnDx2tejHoFaf7dueUy+VcvHiRzMxMOnXqhKampnKZrq6uuKgr3Fe1\nyb9Xr141ujD0xx9/qLVeXFwcxcXFDBkyhBs3btC8eXPef/993Nzc1N6XIDzrcotz+e3cMXo5d8PM\n7M4du43NGrN04tsP/O5lZGRw7tw5CgoKgPI5N1xcXGo1ZuH5Um3y9/Lyeuy9AoqKirh+/ToWFhZ8\n+OGH6OjosGXLFgIDAwkNDcXR8f7jjQvC8+BSajQfh37FxSs3+M86ky/fH6nyXbvf966srIyYmBiu\nXLmiHGYFynv4SJIkevIIaqs2+S9cuPCx70xPT4/Tp0+jo6OjbEJauHAhUVFRbNu2jY8//vix71MQ\n6oqKm7Z+PLuHi5dTkIADyT/x658+9O/V4oHbZ2Vlce7cOfLy8pRl2trauLq60rBhQ5H4hRpRq83/\nzJkzD1zHy8tLrR3e291MQ0ODZs2acevWLbW2F4RnUWZhJuvPrOdy5mWMjLSxszcm5Zqcbhav0sbz\n/tfOFAoFsbGxxMfHqxztW1lZ4e7uXml0TkFQh1rJf8SIB48PfunSpQfWExkZyahRo9i0aROurq5A\n+WlsdHQ0ffr0UScUQXjmhN8MZ0vEFgpKC5Rlvbza0MqlN31eaoWGRvXfrezsbM6ePUtu7p0bvrS0\ntGjVqpW4YUt4JGol/6oGbisoKCAsLIw9e/awYsUKtXbWokULGjZsyJw5c/jkk08wMDBg3bp1ZGVl\nMWrUqJpFLgh1XFFpEfN+Xs2fMUdwc7NCQyZDQ6aBv7M/vZv1RkP24L73aWlpKom/Xr16eHh4iEHZ\nhEemVvJv06ZNleUvvfQSBgYGfPvtt6xZs+bBO9PSYv369SxevJiJEydSWFiIl5cXW7ZsoV69ejWL\nXBDqsKTsJMav+5SrqTcBuJaYg1dLB8Z6jcXRQv2ODY6Ojty6dYvc3FxatmxJkyZNxNG+8FjUqJ9/\nVXx8fFi3bp3a69vY2LBkyZJH3a0g1GlGukYYmkmQWv5cN6MJMzt8hIl+9UMslJWVUVpaip7ena6f\nMpkMT09PZDIZhoYPnotXENT1yPd8Hzp0SPxTCsI9zPTMmNV/MlbmxgS5jGbXrHn3TfyZmZkcPXqU\n8PBwlYu6UN5JQnzHhMdNrSP/N954o1JZWVkZycnJXLt2jXHjxj32wAThWVFWpmDnH//i39kXI6M7\nd8F71vfkl/fWY6xXfdKXy+VER0eTkJCgTPoJCQk4OKgxgpsgPAK1kn9paWmlMplMhqOjI2PHjmXw\n4EWq7ygAACAASURBVMGPPTBBeBZcunKD6Vu/Jj73EteS3mLG+JdVlt8v8aelpREREaG8SxfKr4vd\nPUyDINQWtZK/mKlLECoLvxnO8n/XE5d7DYCdsVvpd9ELt1YN7rtdSUkJFy9e5Pr16yrl1tbWuLm5\niX77whNRowu+R44cITw8nOzsbCwtLfHz88PX17e2YhOEOimvJI/tF7YTdjMMPROwttInPaOIPm7t\ncWpWfa81SZK4efMmUVFRyknUoXzARBcXF3GXrvBEqZX8s7KyGDduHJGRkejo6GBhYUFGRgbffPMN\nHTp0YNWqVWIEQeG5J5cr+C8xnNDLO8ktvtP33tvFgVebDqdji+rvcpckibCwMJKTk1XKGzRogKur\nq/j+CE+cWsl/3rx5JCUlsXr1al566SVl+cGDB/noo4/48ssv+eijj2orRkF46qJibzBr20pSdWJo\n3doSGeVH6B0adSCgVQD62vdvqpHJZCo3Zunp6dG6dWtsbW1rNW5BqI5ayf/o0aPMmjVLJfEDdO/e\nnczMTL7++muR/IXnVnhCJGPXf0YR+VAAycn5tGxiR5B7EK7WrmrX4+zsTHJyMtbW1rRs2VJlAhZB\neNLU+u/T1NTE2Ni4ymVWVlZV9gYShOeFvZU1tvY6JFzPR1NThoupJx+/NAkD7aqHWJDL5cTHx9Ok\nSROVG7a0tLTo0qWLSPpCnaDWTV4jRozg66+/JiUlRaU8Ly+PtWvXEhgYWCvBCUJdYG1ozdTeQTRt\naMOqMR+zYMi0ahN/amoqR44cIS4ujqioqErLReIX6gq1/hNTU1NJTU2lZ8+eeHt7Y21tze3btzlz\n5gz5+fno6OgobwSTyWRs2LChVoMWhNoSFnWVXX/9y7zJw1SmUOzVvCedHTpVm/QLCwuJiopSGZr8\n5s2bODg4iHl0hTpJreSfmJhIixblk03I5XJu3iwfrKqirKysjLKysloKURBqnyRJfLF1OzsiQlBQ\nhlNoY94I6KBcriHTqDLxS5LE1atXiYmJQS6XK8t1dHRo1aoV5ubmTyR+QagpcZOX8MJLyUthc8Rm\nTuafRU4JAN+Hb2JYf18MDHSq3S4rK4sLFy6QnZ2tUm5vb0+rVq2Us9UJQl1UowbI+Ph4Tp06RV5e\nHubm5v/X3p2HNXWt+wP/hoQwT2EIqAgSCCigjDJKnY6zOLRH69TqqSN9jvqr11at5dxftda2WkWr\nbfW21tah1dZaqa21ImBxQEDEggyCMogiBATCFEmy7h9ct6ZAjQMB5P08D88De+3svK9JXnfWXnst\n+Pv7w8XFpaNiI6RDKdVKnCw4ieN5x6FUK+HQywSyykZY8K3x3rR/t1v47927h5ycHBQXF2tMwmZm\nZgZvb2+anpx0C1oVf7VajejoaPzwww8ab3Yej4dJkybh/fffpzsTSbehUqlx4NckZPJPolpZwW3n\n8/j4fxNmYfKAiRAK2j9rr66uRlFR0YPH8flwc3ODRCKBnt5TT5RLiE5oVfx37dqFo0ePYsWKFZg4\ncSJsbGxQUVGB2NhYbNu2DRKJhGb2JN1CVu5tRB/8DNkNqbC1NYKHR8tZupOlE+YMnANHC8dHHsPO\nzg729vYoKyuDWCyGl5cXraxFuh2tiv/333+PxYsXY/78+dw2e3t7LFiwAAqFAt9//z0Vf9ItHMj9\nClcbUgEA5RWNcHYEXhk8DcP6DWtzWcXm5mY0NDTAwsJCY7unpyccHR3pDl3SbWn1HbWiogL+/v5t\ntvn5+WkMbyOkK5s/5GXY2RqDz+dhuOdgfDhuPUa4jGhV+BljKC4uRnx8PFJSUjRG8gCAsbExFX7S\nrWl15u/o6Ij09HSEhIS0aktPT4etre0zD4yQp3WtQAYTIwP06vXg7vR+Vv0Q9Y+XYWdkj6HS0Dav\nVVVXVyMzMxN3797ltuXn53NDmwl5HmhV/F966SV8/PHHMDY2xrhx42BjYwOZTIbjx4/j888/x6JF\nizo6TkK0VlurwI7vfsP3ud8hyHoodqyar1Hkp/u0vfiQQqFATk4OSkpKNAY2GBkZter2IaS706r4\nz5kzB9nZ2di4cSM++OADbjtjDJGRkViyZEmHBUjI46hV1OKL9H3YV/AL1HoMSVUncOpMBP7xgnu7\nj1Gr1SgsLEReXp7GPFV6enqQSCRwdXWlaRnIc0frid0++OADzJ8/H6mpqaipqYG5uTkCAwPh5ubW\n0TES8khqpkZiYSKO5hxFk7IJvXuboqREDmtbA5g41Lf7uIqKCmRlZUEul2tsF4vF8PT0pIXTyXPr\nsU5nHBwc4OjoCAsLC4hEIjg6PnpYHCEdSSZrQGbpNZyt+RnFNcXc9r59zTDEJRhLR8yDhWHbXTZK\npRJpaWkaZ/smJibw8vKCnZ1dh8dOSGfS+iavjz76CPv27YNSqeT6Q42MjLBkyRIsXLiwQ4Mk5K8U\nCiWOHr+K3UkHUGWaDX9/MfT0Wvr1xaZizPSeCQ+bv79AKxAI4O7ujszMTAgEAri5ucHFxYVu1CI9\nglbFf/v27fj666/xyiuvYPTo0bC2toZMJsOJEyewbds2mJiYYNasWR0dKyGc/MoCfJi6Hg2CeqAJ\nKLkph2s/a4xzG4dRklEQ6Gm+tRljqKqqajX1gpOTExQKRau59wl53ml9k1dUVBRef/11bpujoyN8\nfX1hYmKCvXv3UvEnOiWxc4K7mzXSs+thZiZEiIsfXn9hHmyMbVrtK5PJuH798PBwWFpacm16eno0\nhJP0SFp9v62rq8PAgQPbbPP390d5efkzDYqQh8nl95CVJdPYZigwxLJ/zEPwIAl2zf8Posf8V6vC\nX19fj5SUFJw/fx61tbVgjOHq1asawzgJ6am0Kv5Dhw7Ft99+22bb8ePHERER8URPfvnyZQwYMADJ\nyclP9HjyfFOrGU6dKsTC/+zByj3bUVur0Ggf3DsQn7+8CT4OPhrj+O/du4esrCwkJCSgrKyM287n\n82FtbU3FnxBo2e0TEBCArVu3YuLEiRg/fjxsbW1RXV2NhIQEpKWlYe7cufjss88AtMz0qc1NXw0N\nDXjzzTdpERjSroo6GT7+YxtuCHIBADu++w2rF0Ry7TweD0L+g9k32xuvDwB9+vSBh4cHjIyMdBM8\nIV2cVsV/3bp1AAC5XI6tW7e2av/yyy+537Ut/hs3boRYLNaYGpcQAFCpVTh1/RRi82Jh6ioH/gSM\njQSQWV8CENlqf8YYysrKkJ2djfp6zTH9IpEInp6eGv38hBAti39OTs4zfdLExEQkJCRg9+7diIxs\n/WEmPY9SqUZ+/l0I7O5i/5X9uCVvWSrUytIQngNsEOkzEi95tj0tA4/HQ1FRkUbhNzExQf/+/WFv\nb09rTRDSBp3fs15VVYW3334bGzZsoPlSCAAgJ6cSew+mI7n2JHoFyWBios+19THvg7fCZ8HF6u9X\njBswYADOnDkDgUAAqVQKZ2dnGq9PyN/QefH/z3/+g+HDhyMiIkLjYhzpmdRqNT6NPYb4hp/RrN+E\n+nwhBg2yhaHAEJHukRjeb7jGdMsKhQLXr1+HVCoFn8/ntpubm8PX1xe2tra0di4hWtBp8f/xxx9x\n9epVHDt2TJdPS7owHo8HW59KqE41ga/Hg62tEQaJB2GG9wyIjETcfkqlEgUFBbh+/TqUSiWEQiEk\nEonGsXr37q3r8AnptnRa/I8cOYI7d+4gPDwcALghdwsWLMDkyZPx7rvv6jIc0gkqKhpga/tgyUMe\nj4clYfNwpfQqetmIMC9gDgbZD+La1Wo1ioqKcO3aNSgUD4Z6Xrt2DU5OTjTbJiFPSKefnE2bNqGp\nqYn7u6KiArNmzcL69esRFhamy1CIjjU2NuOnnwpw9I/zeGvRaPgO7MW1WRtbY92Et+Bs6QwDgQGA\nlhOD0tJS5ObmoqGhQeNY5ubm6N+/v0a3DyHk8bRb/O/cufNYBxKLxY+9j4GBAbf9r3OukOfLtz9e\nwVcXD6DcJAcbDpVhv8ebEAofFG93m5b59hljKC8vR05ODmprazWOYWRkBA8PD/Tu3ZtG8BDylNot\n/i+88MJjfcCys7OfSUDk+cIYQ1JxElLNDuOu8Q1ACdw2uYSiyptwc3BqtX9qamqrgQBCoRCurq5w\ndnams31CnpF2i/+GDRu44l9TU4NNmzYhJCQEY8eO5e7wPX36NBISErBq1aonenJ7e3vk5uY+WeSk\ny1Iq1dDT4+F23S3s/3M/CqoKAACubi03Wo0ZOARikVWbjxWJRFzx5/P5cHFxgUQigb6+fpv7E0Ke\nTLvFf+rUqdzvr7/+OiZPnoz169dr7DNx4kSsX78ev/76K6ZPn95xUZJu4/r1auz5JgNCz1zcMkyH\nmqm5tv59+2Km90x42nkCAJqamlpNo+zs7IzCwkKIxWK4ublxXYOEkGdLqwu+Z8+exY4dO9psGzZs\nGA4fPvxMgyLd05UrFVi36wjyDeOhvFSHgAB7CPX54OvxMUoyCuPcxkHIF6K+vh55eXkoLS1FREQE\nzM3NuWPw+XwMGzaMbtAipINpVfytrKxw5cqVNkfkXLx4UauLveT5pxAVo8D6FzQ1KsFX81BXdw9B\nrgMxy3sWHMwc0NDQgOxr2SgpKeGG+ebm5iIwMFDjOFT4Cel4WhX/f/7zn9ixYweampowYsQIWFlZ\nobKyEidOnMA333yDNWvWdHScpBvw6+WDIQM9kXotFwM9emO233SEOoaiqakJf/75J4qLi6FWqzUe\no1aroVKp6EIuITqmVfFfsmQJ5HI5vvjiC+zatYvbbmBggGXLltEqXj2MSqVGXFwxGpoUmBzpzm3n\n6/GxbPh8JLkmYWr/qRCoBcjKykJRUVGrom9jYwMPDw9YWbV94ZcQ0rG0Kv48Hg9vvfUWoqKikJ6e\njtraWlhZWcHX1xfGxsaPPgB5bsjl9/DBx3/g7N3f0MSvRoDfJvTp86DP3sXKBf0s+7Vb9EUiEdzd\n3WFj03q5RUKI7jzWHb5mZmZPvGoX6f4YY8iouog/9L9AubAGAPDZ8WNYv2i2xn48Hg91dXUahd/K\nyoor+nSDFiGdr93iP2rUqMf6kP7222/PJCDSNd2svYkDfx5AQVUB+koMUZUhR19HM7gOVkKtVre6\nSCuVSlFRUQFLS0u4u7vD1taWij4hXUi7xd/Pz48+rD3czZtyJKeVQOWaifgb8dyYfWNjfYwd6olp\n7i/BoNYACQkJGDp0qMZ/ACKRCGFhYbCysqL3ESFdULvFf+PGjdzvx48fR0hICEQiUXu7k+cIYwyH\nDuXgUNJp5BsmQlpjCJFVy9q3fD0+hvUeBhfmgrLMMq5rp6SkBE5OmtM10PuFkK5LqwHVa9euRUpK\nSkfHQroIBoZj5Xtx1egX3OPV4/r1GjAwuJm5YZr1NBjdNMKtm7c0+vQrKio6MWJCyOPS6oKvWCxG\nY2NjR8dCugg9nh5GBnvhyq1MmJoJ4S9xwjDjcBjUGUAul2vsKxKJIJVKafQOId2MVsV/xowZ2LBh\nAzIyMuDh4dHm8M6JEyc+8+BIx6uqakR8fAmmTHGDnt6DvvnpPlNxuSQdHnqucOA5gN/ABwPj2m1s\nbCCVSiESiahPn5BuSKvi//777wMADh482GY7j8ej4t8NnThxAwd+OYd8QRIMLKIwYaQ312asb4z3\nxv5/JCUmobm5mdtuZ2cHNzc36s8npJvTqvjHxcV1dBxEx2oVtThVcQSphqfBAGw/9Q2GhbwLE5MH\ns2yaGpnC2dkZ+fn5sLe3h5ubGywsLDovaELIM6NV8X94YeyGhgbU19fD0tKS5ljvhpRqJU7fOI3j\necfRYN4IQ0M+bPlmcBcpkZ6ZivCgcI39XVxc0Lt3b5iZmXVSxISQjqD1Hb7JycnYtGkTsrKyuBkZ\nBw4ciOXLlyMkJKTDAiRPr7KyEcePF8AlvA6/3oiFrEEGqAGjOkO8YOcGsbEtJFYSVFdUo76+HiYm\nJtxjhUIhhEJhJ0ZPCOkIWhX/lJQUvPbaa+jXrx+WLl0Ka2trlJeX48SJE1iwYAG++uorBAQEdHSs\n5AnExxfjyx8TkKefCIvqerg4WsJQbghhnRAmAhO4iF1gZdgyuZpAIIBcLtco/oSQ55NWxT8mJgYh\nISHYtWuXxsiOqKgoLFy4ENu3b8fevXs7LEjy5NLq45Bq+D0MefrQv2MBE54ZDAT6cLJ0goOZA3jg\nwdDQEC4uLnBycoJA8FjTPRFCuimtPumZmZnYunVrqyF9PB4Ps2bNwhtvvNEhwZGnNzowAInpCbBV\nm8PS3BBOlo5wNHeEQE8AU1NTuLq6onfv3rSACiE9jFbF39zcHA0NDW221dfX00IcXUBFRQO+/eEK\npk/1hp3dg24bLzsvBPt5QFgugLOlMwwFhhCJRJBIJBCLxTRGn5AeSqviHxwcjO3bt8Pf319jycY7\nd+5g+/btdMG3k51KuIYtP32HUsEllO0fh3XL/sWdyfN4PKwcvQLJ55NhZGQEiURCC6gQQrQr/itW\nrMCLL76I0aNHw9/fHzY2NpDJZEhLS4OpqSlWrlzZ0XGSNiiUCpy+cRo/lP4MpWEtPPli3JJlISMj\nD76+Htx+QoEQYWFh1LVDCOFoPbfPjz/+iC+//BJpaWm4efMmzM3NMXPmTMybNw+2trYdHSd5iEKp\nQPyNeMRlxUFZpYSo0QR6pgIolWqIRSa4JSuAD3PX6NKhwk8IeVi7xf/ixYvw9fXlbuSytbXFW2+9\npbPASGu3K6rx4Xf70WiSB5NmAfjNfOij5fWxE5mjn5UzXOxdIHGRdHKkhJCurt3i/8orr8DIyAiB\ngYEICwtDaGgo3NzcdBkbecgnvxzEz0m/wUrPEEb6+jC3abnIbigwRF/zvvDq5wWJRELLJBJCtNJu\n8f/kk0+QlpaGtLQ0fPTRR1CpVLCxsUFoaCj3Q909umNipYY13wh6TA/NzWpAKYDU3gUBHgGQuEho\n+gVCyGNpt/iPHDkSI0eOBAA0Njbi8uXLSEtLQ0pKCv77v/8bTU1NcHV15b4V0MLuz05+URnsrMxg\nbv5gyOaLfhMRd/4PGMmN4O0kxeiwoXB2cqapFwghT0SrC75GRkYICQnhhnQqlUqkpKTgu+++w759\n+7B3715kZ2dr9YRlZWXYsGEDLly4ALVajSFDhmDVqlUaQ0h7ql+TLuJQ/DE0NVVihPtozH9lMtdm\nbmCONdOWwZSZog/dlEUIeUpa38uvUCiQnJyM8+fPIzk5Gbm5ueDxePD29kZYWJhWx2CMYeHChRCJ\nRPj6668BAOvXr8eSJUtw5MiRJ8ugm1Or1UgtSEXC5QSUFJdBqVBAwNPD5fx01NePgonJg4VzBvTp\n34mREkKeJ39b/PPy8pCUlISkpCSkpaVBoVCgb9++CAsLQ1RUFIKDg2Fqaqr1k8lkMkgkEqxYsQJ9\n+vQBAMydOxevv/46ampqesRc8XL5PVy6dAfFJXdh53EbF7MuQl7XsjSioQEfPB4ABvAMVZDJajSK\nPyGEPCvtFv+IiAhUVFTA3NwcQUFBWLNmDcLCwrii/SRsbW2xZcsW7u+ysjJ899138Pb27hGFX6FQ\nYtXbv0AuvAoY3IFtlT74/AfdNzweDxJnR/wjcBhCvAfTqB1CSIdpt/iXl5fDysoKL730EkJDQxEQ\nEPBMF2+JiopCXFwcLCwsuC6g551cVY1q8UnoNbYU9cZGPZia6oGnx0O/vv0wOmA0+on7dXKUhJCe\noN3iv2fPHiQlJeHMmTP4n//5HxgaGnJj/sPDwyGRPN2NRMuWLcPixYuxc+dOzJs3D0ePHn1uLvrK\nZA34/fciSKXm8Pd/sAqatZE1LB3M0HSzAUZGAhhbCDHIYyDG+o+FyITWxCWE6A6P3V+W62/IZDIk\nJSXh7NmzOHfuHCorK2Fvb4/Q0FCEh4cjNDQUlpaWTxRAY2Mjhg4dinnz5mHx4sVt7nPz5k2MGDEC\ncXFxT9XtpAvnzt3EgYPJaDYohI2VPt5d9brGrKfni8/jl3O/IGRACEYMGAEDgUHnBUsIeW49qm5q\nNdrHxsYGkydPxuTJLUMPs7OzcfbsWaSmpmLVqlVQqVTIysp65HFkMhmSk5Mxfvx4bpuRkREcHR1x\n584dbXPqkurr63Ht+jVcvpGMeoscKHEPtxoMcOVKAXx9pdx+QY5BCJoeBD0eDdUkhHSex1q2qba2\nFunp6UhPT8eVK1eQmZkJlUoFT09PrR5/69YtvPHGG+jbty+8vb0BAHK5HDdu3MCUKVMeP/pOpFKp\nkZZ2G2KxGrk3snG1+Cru1N2Biqmgb6QGX82HiQkPFYpCAA+KPxV9QkhX8LfFv7CwEOnp6bh06RLS\n09Nx/fp1qNVquLq6Ijg4GLNmzUJQUJDWwz29vLwQEBCAtWvXYt26dRAIBNi8eTNEIhH3raI7SEjI\nx++/X0KtshCmDo1Q6ddrtJuL9MGz5GHwgMEY7D64k6IkhJD2tVv8g4ODUVNTA8YYevXqheDgYCxa\ntAjBwcFPPKePnp4etm/fjg8//BCLFi2CQqFAeHg49u3b160WDU8u/AOlyIBKvxl11TzY2raMxW82\naoal2BLDPIch2DEYQj5NvUAI6ZraLf5BQUEIDQ1FSEgI+vbt+8yeUCQSYePGjc/seB1JrVbj+vXb\nkEh6aYy57zvIBH8W3IOApweBMQ+N5k1wl0gxUjoS7tbuND6fENLltVv8Y2JidBlHl1Jf34CTJzNw\n+UoOapoq8F+vv4I+fey59tEeI3HK+TQsrAwR7hGOF5xfgLWxdSdGTAghj+exLvg+z1QqFe7cuYPi\n4mIU3CxAclYeqpsrAT7DL3EXsPDVB9ckREYirJy0HBIrCfT5z+7GN0II0ZUeXfwZY5DJqnD9ehEq\nKm+htLoUt+tuo6G5AcxYCVbDwHgMxY2FrR7rYePR+oCEENJN9NjiX1h4G8d/ScKNW8VQGdXCwFIB\nNdRcu8CSodmwCVJ3R4wfENKJkRJCyLPXY4t/3t1rSCk9CxWvGbxGwNbMGDwhwz3Te+CZ8xDgFIAh\nTkPgZOFEF3AJIc+d57r4M8ZQVlaO1NRcDBniA0tLc65N4tQbCsMG8BR8yPUawcwU6C9xwRCnIQjs\nHQhDgWEnRk4IIR3ruSv+jDHU1tbi5s2b+OOPLOSXlELOqqAEw5SJL3D7uVi5wNrNAnJVHWYPGoch\nTuHoZdarEyMnhBDdeW6Kf0NDA0pLS1FaWorK6kqU15cjV16ESp4c4AHJmamYPCGC68Lh8XiInrgS\nIiMRBHrPzT8DIYRopVtXPbm8EX/8kYXs7EIw1MGmD1BWV4aqpioAgJ5QjWamgpzfAH3LO2CMafTf\n25nYdVbohBDSqbp18b99uwqnEpPQoHcXCkE1bAwMwOMBjMfQbNSMZpNmGDkAY6UjEN43nBY9J4SQ\n/9Oti7/CvAplhjngq/hgjEEONQTWLYXf3c4doY6h8LX3pTnzCSHkL7p18few9YDATg8KZRMM7ABz\nG2uEOYYhrG8YbIxtOjs8Qgjpsrp18dfn6yNy2HDIGmQI7xuOAbYDaL58QgjRQrcu/gDwYv8X6SYs\nQgh5TN3+NJkKPyGEPL5uceavUqkAAGVlZZ0cCSGEdA/36+X9+vlX3aL4V1RUAABmzZrVyZEQQkj3\nUlFRAScnp1bbeYwx1gnxPJampiZkZmbC1tYWfD6/s8MhhJAuT6VSoaKiAl5eXjA0bD1XWbco/oQQ\nQp6tbn/BlxBCyOOj4k8IIT0QFX9CCOmBqPgTQkgPRMWfEEJ6oC5X/KOjo/H2229rbDt69CgmTJgA\nHx8f/POf/8TZs2c12vfv3w93d3eNnwEDBmjs89VXX2HYsGEYNGgQ5s2bh8LCwi6Vw71797Bx40aE\nhYXB19cXCxcuRElJSbfJYfv27a1eg/s/n3zyic5zeJLXoKSkBIsXL0ZAQADCw8Oxdu1a1NbWauzT\nlV8DACgsLMSCBQsQEBCAiIgIbNu2DUqlUqc5yGQyvPXWWwgPD0dAQABee+015OXlce1JSUmYNGkS\nBg4ciIkTJyIxMVHj8ZWVlVi2bBkCAgIQEhKCjz76SKc5PG389927dw+RkZH46aefWrXp8n3ULtZF\nqNVqtnXrViaVStmaNWu47bGxsczd3Z199tln7Pr162zfvn3M29ubXbhwgdsnOjqaLV68mJWXl3M/\nFRUVXPuhQ4eYr68v+/XXX1lOTg5btGgRGzFiBFMoFF0mh1WrVrGIiAh27tw5lpuby+bMmcMmTJjA\n1Gp1t8ihrq5O49+/vLycRUdHs5CQEFZWVqazHJ40/ubmZjZmzBgWFRXF8vPzWVpaGhszZgz797//\nzR2jq78G1dXVLDQ0lM2ZM4dlZWWxlJQUNmbMGLZ69Wqd5aBSqdj06dPZtGnTWEZGBrt27RpbunQp\nCwkJYVVVVezatWvMy8uL7dy5k+Xn57MtW7YwT09PlpeXxx1jxowZbObMmSw7O5slJCSw4OBg9vHH\nH+skh2cRP2OMyeVyNn/+fCaVStnRo0c12nT1PnqULlH8i4uL2ezZs1lQUBAbOnSoxhs+MjKSrVix\nQmP/t99+m82ePZv7e8aMGSwmJqbd448aNYpt27aN+7uuro75+PiwY8eOdYkciouLmVQqZefOnePa\nCwoK2NChQ1lhYWG3yOGvLl26xDw8PFhiYiK3raNzeJr4c3NzmVQqZTk5OVz7vn37mK+vr87if9oc\n9uzZw3x9fdndu3e59tTUVCaVSllJSYlOcsjKymJSqZTl5+dz2xQKBRs0aBD78ccf2TvvvNPqPTN7\n9my2du1axljL+0YqlbLi4mKu/ciRI8zX15crjh2Zw9PGzxhjZ8+eZSNGjGBTpkxps/jr4n2kjS7R\n7XPp0iU4ODggNjYWffr00WgrKipCQECAxrb+/fsjPT2d+yqYn58PiUTS5rErKytRWFiIwYMHc9tM\nTEzg5eWF1NTULpFDUlISRCIRQkJCuHYXFxfEx8fDycmpW+TwMMYY3nvvPYwaNQoREREAdPM6IADr\njQAACrNJREFUPE38FhYW0NPTw6FDh6BQKFBVVYUTJ07Ay8tLZ/E/bQ5FRUVwc3ODpaUl136/+zM1\nNVUnOTg4OODzzz9Hv379uG33J1+sqalBamqqxvMDQFBQEPf8qamp6N27NxwdHbn2wYMHo76+HtnZ\n2R2ew9PGDwCnT5/G5MmT8e2337Y6vq7eR9roEnP7TJo0CZMmTWqzzc7ODrdv39bYVlpaiubmZtTW\n1qK5uRk1NTU4c+YMtm/fjsbGRgQGBmLlypUQi8Xc5EZisbjVcZ/lRHFPk0NhYSEcHR0RGxuL3bt3\no6qqCn5+flizZg3s7e27RQ4ikYjbHhcXh6tXr2Lz5s3cNl3k8DTxi8VirF27Fps2bcKBAwegVqsh\nkUiwb98+ncX/tDnY2dkhPj4earWaW7K0tLQUQEvR0UUOVlZWGDp0qMa2b775Bk1NTQgPD0dMTMzf\nPv+dO3dgZ2fXqh0Abt++DYFA0KE5PG38ALB27dp2j6+r95E2usSZ/9+JjIzE/v37cf78eahUKly4\ncAE//PADAKC5uRnXrl0DAAgEAmzZsgXvv/8+CgsLMXfuXDQ1NaGxsREAYGCguZSjUCiEQqHoEjnU\n1dXh+vXr2LNnD1avXo2YmBhUVlbi1VdfhUKh6BY5PGzv3r0YM2aMxmRSnZ3Do+JXq9W4ceMGQkJC\ncPDgQXzxxRfg8/lYvnw5VCpVp8evTQ5jx45FZWUlPvroIzQ2NkImk2H9+vUQCARobm7ulBzi4uLw\n8ccfY968eZBIJGhqaoJQKGz3+RsbG1vFp6+vDx6P1ymfhceN/1G6wvvovi5x5v93Fi5ciKqqKixY\nsAAqlQqurq547bXXsHnzZpiZmSE8PBznz5/XOPN0dXVFREQEEhMT0bt3bwAtV94fdu/ePRgZGXWJ\nHAQCAeRyOWJiYrivu9u2bUN4eDgSExPRq1evLp/DfWVlZbh48SL27t2r8fj7E0t1Vg6Piv/YsWOI\njY1FfHw8jI2NAQBOTk4YOXIkEhMTubPPrvwaiMVixMTEIDo6Gl999RWMjY2xdOlS5ObmwszMTOev\nwZEjR/DOO+9g3LhxWLlyJYCWovfXk4WHn9/Q0LBVfM3NzWCMwdjYWKc5PEn8j9LZn4OHdfkzf6FQ\niOjoaFy6dAlnzpxBbGwsDA0NYWNjw31IHy78QMtXKCsrK9y+fRsODg4AHkwLfV95eXmrr16dlYNY\nLIaxsbFGP6e1tTUsLS1x8+bNbpHDfXFxcbC1tW3VL9rZOTwq/oyMDLi4uGjk4ujoCCsrKxQXF3d6\n/NrkAADDhw9HUlISEhMTcf78ebz44ouoqqqCo6OjTnP49NNPsXr1arz88sv48MMPuW4oBwcHlJeX\nt/v89vb2bcYHtHSV6CqHJ43/UbrC++i+Ll/8t2zZgl27dkEoFMLW1hYAcOrUKYSFhQEAvv76a4SH\nh2v8b1xaWoqqqiq4ubnB2toazs7OuHjxItdeX1+PzMxMBAYGdokcAgIC0NDQgIKCAu4xFRUVuHv3\nLvr27dstcrjv/gWx+x+W+zo7h0fFb29vj8LCQo0zsvLyclRXV8PJyanT49cmh9TUVLz66qtQqVSw\ns7ODUCjEqVOnYGxsDD8/P53lsHv3bmzduhVLly7FO++8o7Hanr+/P1JSUjT2T05O5i5k+/v7o6Sk\nROPaRnJyMkxMTODh4aGTHJ4m/kfpCu8jjk7HFmlh9uzZGsPbDh06xPz8/FhCQgIrLi5m69atYz4+\nPqygoIAxxlhRURHz8fFhK1euZPn5+Sw1NZVNmTKFzZgxgzvGgQMHmI+PD/v5559Zbm4uW7RoERs1\nalSHjat93BzUajWbOXMmi4yMZJcuXWLZ2dlszpw5bMyYMVyMXT2H+0aNGsU+/fTTNo+pyxweN/6y\nsjIWEBDAli5dyvLy8lhGRgZ7+eWX2eTJk1lzc7PO43+SHCorK1lAQADbuHEjKy4uZidPnmR+fn4a\nr0dH55Cdnc369+/PVq9e3eq+j/r6epaTk8M8PT1ZTEwMy8/PZ1u3bmXe3t7c0Eq1Ws2mTZvGpk+f\nzjIzM7lx/g8PjezIHJ42/r9qa6inrt9H7enyxZ8xxnbs2MEiIiKYj48Pmz17NsvIyNBoT09PZ7Nn\nz2a+vr5s8ODBbNWqVay6ulpjn88++4yFhYUxHx8f9q9//UtjHHFXyKGmpoatWbOGBQYGMh8fHxYV\nFcVu377drXJgjDFfX1924MCBdo+rqxyeJP7c3Fz22muvscDAQBYWFsZWrlzJKisrOyX+J80hJSWF\nvfTSS2zgwIFs5MiRbM+ePa2O25E5bN68mUml0jZ/duzYwRhjLD4+no0bN455eXmxyMhIdvbsWY1j\nlJeXs6ioKDZo0CAWGhrKNm/ezFQqlU5yeBbxP6yt4t+R8T8OWsyFEEJ6oC7f508IIeTZo+JPCCE9\nEBV/Qgjpgaj4E0JID0TFnxBCeiAq/oQQ0gNR8Sc9WnR0NNzd3dtdjSkuLg7u7u7YuXOnjiMjpGPR\nOH/So9XV1WHChAng8Xj4+eefYWJiwrXJ5XKMGzcO9vb2+Pbbb8Hn8zsxUkKeLTrzJz2aqakp3n33\nXdy6dQtbtmzRaPvwww9RU1ODjRs3UuEnzx0q/qTHi4iIwJQpU7B//35kZGQAAFJSUnD48GG88cYb\nGqvEHTx4EGPHjoWXlxdGjBiB3bt3469fng8cOIApU6Zg0KBBGDhwIKZOnYrff/+daz98+DB8fX2x\nf/9+hISEICgoCDdv3tRNsoT8H+r2IQQtS/SNHz8e9vb2OHDgAKZOnQorKyt8/fXX3KyOO3bswCef\nfIK5c+ciLCwMGRkZ2LlzJ+bOncvN975nzx5s2rQJy5Ytw6BBg1BdXY1du3YhLy8PcXFxsLOzw+HD\nhxEdHQ2JRIKVK1fi7t27mDx5cmemT3oinc8mREgX9fvvvzOpVMpmzZrFfH19uUXPGWOsurqaeXt7\ns/fee0/jMV988QUbMGAAKysrY4wxtm7dOrZlyxaNfTIyMphUKmUnT55kjLXMzimVStmvv/7awRkR\n0j7q9iHk/4wcORLjx49HSkoKVq1apbGA+qVLl6BQKDBs2DAolUruZ/jw4VAqlbhw4QKAlvVbly9f\njpqaGly+fBk//fQTDh48CKD1cpf9+/fXXXKE/EWXX8aREF0KDw/H8ePHERERobG9uroaADB37tw2\nH3d/dafCwkJER0cjOTkZQqEQLi4ucHNzA4BW1wYeXjWMEF2j4k+IFu6vUxwTE8OtC/0wsVgMlUqF\nhQsXwtTUFEeOHIG7uzsEAgFycnIQGxur65AJ+VvU7UOIFnx8fKCvrw+ZTAZvb2/uR6FQYOvWrZDJ\nZJDJZCgqKsK0adPg6ekJgaDl3OrMmTMAALVa3ZkpEKKBzvwJ0YKNjQ1eeeUVbNq0CTU1NfDz80Np\naSm2bNkCS0tLuLq6Ql9fHw4ODti7dy+sra1hamqKM2fO4JtvvgEANDY2dnIWhDxAZ/6EaGnlypVY\nvnw5YmNjsWDBAmzduhVDhw7F3r17IRQKwePxsHPnTlhbW+PNN9/E8uXL8eeff+Lzzz+Hk5MTUlNT\nOzsFQjg0zp8QQnogOvMnhJAeiIo/IYT0QFT8CSGkB6LiTwghPRAVf0II6YGo+BNCSA9ExZ8QQnog\nKv6EENID/S9s8sixJDKW5AAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system, title='Proportional model, factored')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** When you run `run_simulation`, it runs `update_func1` once for each year between `t0` and `t_end`. To see that for yourself, add a print statement at the beginning of `update_func1` that prints the values of `t` and `pop`, then run `run_simulation` again." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Combining birth and death" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since births and deaths get added up, we don't have to compute them separately. We can combine the birth and death rates into a single net growth rate." + ] + }, + { + "cell_type": "code", + "execution_count": 165, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func1b(pop, t, system):\n", + " \"\"\"Compute the population next year.\n", + " \n", + " pop: current population\n", + " t: current year\n", + " system: system object containing parameters of the model\n", + " \n", + " returns: population next year\n", + " \"\"\"\n", + " net_growth = system.alpha * pop\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how it works:" + ] + }, + { + "cell_type": "code", + "execution_count": 166, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEjCAYAAAAlhuZMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8jef/+PHXySJ7SxCCcIIsWcRI1B6ptGjMBK0RRUsb\nrfFR1Zaqtvq1a7e1d2p0aVGKomYkRBIjJIjsITvn/v2RXw5H1gkycD0fjzweOde93vd9zn3e577u\n674umSRJEoIgCIKgJo2aDkAQBEF4sYjEIQiCIFSKSByCIAhCpYjEIQiCIFSKSByCIAhCpYjEIQiC\nIFRKtSeO6dOnY29vr/LXqlUr3Nzc8Pf3JyQkpLpDem6SkpLIyspSvi7e15pWW+IoS2BgIF27dq22\n5WqLrl27EhgYWOF8NbWf6mxX3dgq8xnMy8sjPj5e+Xrp0qXY29sTGxur1vI14VlirI79UygUKuvf\ns2cP9vb2nD59+qnWp/W8AqusGTNmYGpqCoAkSWRmZrJv3z6mT59OSkoK77zzTk2F9lSOHj3K1KlT\nCQkJQU9PD4DBgwfTvn37Go5MeNGNHz+e7Ozsmg7jmah7LsTFxfHOO+8QFBTEgAEDqiGyl19mZiaj\nRo2ic+fOvPfee89lnTWWOLp3746NjY1K2VtvvUXfvn1Zvnw5AQEB6Ojo1FB0lRcaGkp6erpKmaur\nK66urjUUkfCy6NixY02H8MzUPRdiY2O5detW1Qf0CklNTeXy5ct07tz5ua2zVt3jqFu3Ll27diUz\nM5OoqKiaDkcQBEEoRa1KHAAymQyAwsJCoKgeeNasWcycORNnZ2d8fHxITk4G4OzZs4waNUr5a2bE\niBH8999/Kuvr2rUr//vf/9i5cyfdunWjTZs2DBkyhFOnTpXYtrrrezKeoKAgli1bBkC3bt2U9dal\n1evGxcXx0Ucf4eXlhZOTE35+fuzYsUNlnunTp9O7d29CQ0MJCAjAxcWFDh06MHfuXHJyclTm/fff\nfxkzZgzt2rXDwcEBb29vZs+eXeLqpyLTp0/n9ddf59y5cwwePBhnZ2e6detGSEgI+fn5LFy4kA4d\nOuDp6cmUKVNISUlRWf7atWtMmDABDw8PnJ2dGTRoEH/99VeJ7Zw8eZIhQ4bQpk0bunfvzs6dO0uN\nJzo6mokTJ+Lh4YGLiwtDhgzhn3/+qdQ+lef69etMnjyZdu3a4e7uTmBgIGfPnq30PgUGBhIUFMRf\nf/2Fn58fTk5O+Pr6cvToUTIzM5k9ezaenp60b9+e2bNnl3j/AOVn08nJCX9//xL7+eR9hMDAQEaP\nHs2xY8cYMGAATk5OdO7cmaVLl6JQKFSWVfc4qvu+lOXw4cP4+vri5OREv3792Ldvn8r0J8+F4s/4\n5s2b8fT0xNPTk61btzJixAigqCr7yXPn9u3bjB8/HldXV9q2bcv06dNJTU2tMLbw8HDee+89OnTo\ngIODA+3btyc4OJj79+8r51m6dClOTk7cunWLoKAgXF1d8fT0ZNq0aSU+67dv3+a9997D09OTdu3a\nsWDBAvLz89U6Tuoum5aWxhdffIG3tzeOjo706dOHn376iSd7iKpo306fPk23bt0AWLZsWYl7KUlJ\nSUydOhUPDw/c3NyYOHEid+/erXA/aqyqqjQKhYIzZ86go6ODnZ2dsvyXX36hWbNmzJw5k8TERMzM\nzDh06BCTJk2icePGvPvuu0DRCThq1CiWLFmiPFhQdFLs27ePwMBALC0t2bp1K2PGjGH9+vW0bdsW\noFLrezKejh07oq2tzZ9//smMGTNo0aJFqft3584dBg0aRG5uLgEBAVhaWnLw4EE++eQTbt26xccf\nf6ycNzk5mdGjR9OnTx/8/Pw4duwYGzduREdHRznf8ePHGTt2LG5ubrz//vvIZDJOnDjB9u3bSUtL\nY/HixZU6/gkJCYwfPx5/f3/8/PzYsGEDM2fOZP/+/WRkZDBx4kSuX7/O5s2b0dXVZf78+UBRNd2I\nESMwMDDg7bffRl9fn7179zJx4kRmz57N8OHDle/D2LFjadKkCVOmTCE5OZl58+Yhk8mU97ug6At7\n2LBhWFhYEBQUhLa2NgcOHGDcuHEsXLiQvn37Vmq/nnTr1i0GDRqElpYWAQEBmJmZsW3bNt5++202\nb96Ms7Oz2vsERSfvhQsXGDFiBIaGhqxatYopU6bQqlUrdHV1+fDDDzl79izbt2+nXr16TJo0Sbls\nWFiYclvFcQQFBbF27Vo6dOhQ5j5ERkYyZcoUBg8ezODBgzlw4ADLli3DzMxMGZu6x1Hd96UsCQkJ\nvP/++wwaNIghQ4awd+9ePvroIwoKCsq9T3Hv3j2+//57Jk2axIMHD3B2dmb8+PGsXLmSwYMH4+7u\nrjL/hAkT6NatG9OnT+f8+fOEhISQnp7OihUrytxG8TGwtbVl3Lhx6Orqcv78efbu3UtMTAy7du1S\nzqtQKBgxYgQeHh5MmzaNy5cvs2vXLnJycpTnUmJiIkOGDCE/P5+RI0dSt25dtmzZUiK5lEbdZbOy\nsggICODevXsMGzYMa2trTp06xZdffsmtW7f49NNP1d43Ozs7ZsyYwfz58+nRowc9evTAzMxMua2Z\nM2fi4eHB1KlTiY6OZsuWLcTGxrJ3797yd0aqZtOmTZPkcrkUHh4uJSUlSUlJSdKDBw+kCxcuSJMn\nT5bkcrn05ZdfKufv0qWL1LJlS+n+/fvKsvz8fMnHx0fq3LmzlJGRoSxPS0uTvL29JW9vbykvL0+5\nvFwul/7880/lfElJSZKHh4c0aNCgp1rfk/FIkiQtWbJEksvl0p07d0rsa7EpU6ZILVu2lMLCwpRl\nhYWFUlBQkGRvby9FRkaqLLdhwwaVbfTp00fq1KmT8vXo0aOlLl26SLm5uSrzDRo0SHJ1dS0zjtIU\nz7Nx40Zl2d9//y3J5fIS2xgyZIhKHP7+/lKbNm2ke/fuKctycnKk/v37S87OzlJSUpIkSZLUv3//\nEsf433//VW6jWEBAgNS9e3fp4cOHyrL8/Hxp2LBhUocOHZSxBAQEqCynrsmTJ0vOzs7SrVu3lGXJ\nycmSu7u79P7771dqnwICAiS5XC4dPnxYOd+mTZskuVyu/HxJkiQpFArJx8dHGjx4sLKs+LP5999/\nK8tSUlKktm3bSv3791c5Hk8eH7lcLh06dEglNk9PT5X1q3sc1X1fSlMcy6ZNm5Rlubm5Uu/evaUO\nHTpI+fn5kiSV/AwWv/7ll19U1nfq1ClJLpdLu3fvVpYVn1tffPGFyryBgYGSg4NDic//42bPni25\nuLhIKSkpKuUffPCBJJfLleXF25g/f77KfKNHj5Zat24tZWVlSZIkSV999ZVkb2+vcg4nJiZKXl5e\nJc7/J6m77JIlSyQHBwcpIiJCZfmFCxdKcrlcunr1aqX27c6dO5JcLpeWLFminGf37t2SXC6X3n33\nXZVlp0+fLsnlcun27dtl7ockSVKNVVX179+f9u3b0759ezp16sTgwYM5dOgQgYGBBAcHq8zbuHFj\nrKyslK+vXLnC/fv3GT58OAYGBspyIyMjAgICiI+PJywsTFnerFkzunfvrnxtZmbGG2+8waVLl0hK\nSqr0+p6MRx2FhYX8/fffdOrUCQcHB2W5hoYG48ePR5IkDh8+rLJMnz59VF63bNmSxMRE5etVq1ax\ne/dulUYEKSkpGBgYqDQLrowePXoo/2/SpAkA3t7eKtuwsbEhISEBKPoVdenSJd544w2sra2V89Sp\nU4fRo0eTk5PDyZMnSUpKIjw8HF9fX5Vj7OXlpVIlkZKSwpkzZ+jcuTM5OTkkJyeTnJxMeno6PXr0\nIDExkcuXLz/VvkHRr8qjR4/SuXNnbG1tleWmpqZs2bKFWbNmqb1Pj5d7e3srXzdt2hRA5SpVJpPR\nsGFD5XErJpfLVW5ampiY0K9fP8LDw0vM+zhdXV1ee+01lRiaNm2q/HyoexzVfV/KY2RkxODBg5Wv\ndXR0GDx4MImJiSrnTWk8PDzU2gbA66+/rvLaycmJ/Pz8cn/tz5kzh8OHD2NiYqIsy8zMpE6dOgAl\nzpMnz7lWrVpRUFCgrBI7duwYTk5OKuewubk5vr6+Fcav7rIHDx5ELpdjaWmpfN+Sk5OV32FHjhx5\nqn0rzZPbdnJyAij3swc1WFX1zTffYGFhARR9eRoZGWFnZ6fc6ceZm5urvC6uoys+QR/XrFkzAO7e\nvatsxdG8efMS89na2iJJEnFxcZVe35PxqCMlJYWsrKxSt1FcLRcXF6dS/vglJRSdkI/XYWtqanLn\nzh0WL15MdHQ0t2/fVmn//jQe3zdNTc0SZcXl0v+vay2Oubz9unv3rnK+xo0bl5ivWbNmhIaGAkXV\neQAbN25k48aNpcZ479499XfoCampqWRlZakkjWJyuRyAS5cuARXvUzETExO0tB6dSuoct2KlbaP4\nGMXFxWFpaVnqfpiYmKChofq77/HPh7rHUVtbW2Wbj3v8fSlPo0aNVPa/uKx4H9q0aVPmspU5l56c\nt27dugDl3l+QyWSkpKSwatUqrl27xu3bt7l7967yfXjynlBp5xw8uucaFxen8oOgWPH3RHnUXfb2\n7dvk5OSU2Xy5+PNf2X0rzZP7q84xhRpMHG5ubiWa45al+EQs9uTJV9q04hPiyf+LFX8QSjuZK1rf\nk/Goo7xtFL/BTzY/fvKL4Unr1q3j66+/pmnTpnh4eNCzZ09cXFzYuHEj+/fvr3SMQIkvAHjUYKE0\n6uyXtra2ch2l3Rx+/ANe/L4MHz5c5SrxcaX9EFBX8fqfxz4VK+2YVbSN8hRvv7z3v6LPhrrHsfiH\nRkXvS3lK20919gEqdy49zfH89ddfmTp1KvXq1cPLywsfHx8cHR05fvw4q1atqvQ2ZDJZqceqvM9M\nZZctLCzE3d1d5V7Y4+rVqwdUft9KU9H7U5ZadXNcXQ0bNgTgxo0bJabdvHkTQKWK4fbt2yXmi4mJ\nQVNTExsbG2V2VXd9T8PMzAw9Pb3nto3c3FyWLl1Ku3btWL9+vcqXV2Vvij8Ldd+Lhg0bIpPJiImJ\nKTHf4608itenqalZ4uZwdHQ0sbGx6OrqPnW8pqam1K1bt9TPxLp160hISGD06NFq7dPz8ORVJqB8\njqH4V/vTUPc4qvu+lOfevXtIkqTypVu8D6VdyVSnhQsXYmtry+7du5UP5gJP/cPKxsam1GNVfIX3\nPJZt2LAhDx8+LPG+paWl8e+//yqvlp/3vlVGrWuOqw4HBwdl66jMzExleWZmJlu2bMHS0hJHR0dl\n+eXLl7l48aLydWJiIvv27cPLywtjY+NKr680xZm7rF8empqaeHt7c+LECcLDw5XlkiSxZs0aZDKZ\nSp11RXJycsjOzqZJkyYqSePq1aucOXMGgIKCArXX97SKj82+fftUmjfm5eXxww8/oKOjQ8eOHTEz\nM8PT05N9+/ap3Ke5cOGCyvGoV68ejo6OhISEqFS75efnM3PmTN5///1n2i8tLS06duzI0aNHVaq8\n0tLSWLduHXfu3FF7n56H8PBwrly5onxd/Nn08PBQq0VTWdQ9juq+L+VJSkri0KFDytdZWVls3bqV\nhg0b0qpVq0rFXXwFou7VTkVSU1Np0KCByhfrvXv3OHjwIPDoykxdPXv2JCoqimPHjinLMjIyKm6F\nVIllu3btSkREBEePHlUp//7775k8ebLyGTd19+15H1N4Qa84tLW1mTVrFh988AEDBw7krbfeAmDX\nrl08ePCAJUuWqFyC6ejoMHbsWJUmcAqFQtmstbLrK01xXeHatWvx8fEptS5z6tSpnD59msDAQGXT\n4D///JNTp07x9ttvV6oKxtjYGBcXF/bs2YOBgQFNmzYlKiqKnTt3KmN9+PAhxsbGaq/zac2aNYuR\nI0fy1ltvMXToUPT19dm3bx/h4eHMmjULIyMjAKZNm8bw4cMZNGgQw4cPJzs7mx9//LHEF2Tx+gYO\nHMjQoUMxMTHhl19+4dKlSwQHB5f5hZqYmMiJEyewt7enZcuWZcYbHByMv78//v7+ygYRO3bsICsr\niylTplRqn56VsbExo0eP5u2330ZTU5PNmzdTUFDAjBkznnnd6h5Hdd+X8vbh448/ZuTIkZiYmLB7\n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\npFf+H1sFbMS2u8i2AAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "system.alpha = system.birth_rate - system.death_rate\n", + "\n", + "run_simulation(system, update_func1b)\n", + "plot_results(system, title='Proportional model, combined birth and death')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Maybe the reason the proportional model doesn't work very well is that the growth rate, `alpha`, might be changing over time. So let's try a model with different growth rates before and after 1980 (as an arbitrary choice).\n", + "\n", + "Write a function called `update_func1c` that takes `pop`, `t`, and `system` as parameters. The system object, `system`, should contains two parameters: the growth rate before 1980, `alpha1`, and the growth rate after 1980, `alpha2`. It should compute and return the simulated population one year later.\n", + "\n", + "Note: Don't forget the `return` statement." + ] + }, + { + "cell_type": "code", + "execution_count": 167, + "metadata": { + "collapsed": true, + "scrolled": false + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def update_func1c(pop, t, system):\n", + " if (t < 1980):\n", + " net_growth = system.alpha1 * pop\n", + " return pop + net_growth\n", + " else:\n", + " net_growth = system.alpha2 * pop\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Quadratic growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the implementation of the quadratic growth model." + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func2(pop, t, system):\n", + " \"\"\"Compute the population next year.\n", + " \n", + " pop: current population\n", + " t: current year\n", + " system: system object containing parameters of the model\n", + " \n", + " returns: population next year\n", + " \"\"\"\n", + " net_growth = system.alpha * pop + system.beta * pop**2\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here are the results. Can you find values for the parameters that make the model fit better?" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nCCHkwVHxJ4SQcYiKPyGEjENU/AkhZByi4k8IIePQqCv+CQkJePXVV5Xazp49i8WLF8Pb2xvPPfcc\nLly4oNR/4sQJuLm5KT2mTZumtM3Ro0cxa9YseHl5Yd26daioqBhVOfT29iIxMRGhoaHw8fHBxo0b\nUV1dPWZyOHDgwKD3YODx/vvvqz2Hh3kPqqursXnzZvj5+SEsLAzx8fFoa2tT2mY0vwcAUFFRgQ0b\nNsDPzw/h4eHYv38/+vv71ZqDVCrFK6+8grCwMPj5+WH9+vUoKSnh+jMyMrB06VLMmDEDTz/9NNLT\n05We39jYiK1bt8LPzw/BwcF499131ZrDcOMf0NvbiyVLluCrr74a1KfO42hIbJRQKBRs3759TCQS\nsd27d3PtqampzM3NjX300UesvLycHT9+nHl6erJLly5x2yQkJLDNmzcziUTCPRoaGrj+L774gvn4\n+LDvvvuOFRUVsU2bNrE5c+YwmUw2anLYuXMnCw8PZ7/99hsrLi5mq1evZosXL2YKhWJM5NDR0aH0\n+5dIJCwhIYEFBwczsVisthweNv6+vj42f/58Fhsby8rKylhOTg6bP38++8tf/sLtY7S/By0tLSwk\nJIStXr2aFRQUsKysLDZ//ny2a9cuteUgl8vZ888/z5YvX87y8/NZaWkp27JlCwsODmZNTU2stLSU\neXh4sIMHD7KysjKWlJTEpk+fzkpKSrh9rFixgq1cuZIVFhayX375hQUFBbH33ntPLTk8ivgZY6y9\nvZ39+c9/ZiKRiJ09e1apT13H0f2MiuJfVVXFYmJiWGBgIIuIiFA64JcsWcJ27NihtP2rr77KYmJi\nuJ9XrFjBkpOTh9z/3Llz2f79+7mfOzo6mLe3N/v6669HRQ5VVVVMJBKx3377jeu/ceMGi4iIYBUV\nFWMih9/Lzc1l7u7uLD09nWsb6RyGE39xcTETiUSsqKiI6z9+/Djz8fFRW/zDzeHIkSPMx8eHNTc3\nc/3Z2dlMJBKx6upqteRQUFDARCIRKysr49pkMhnz8vJiZ86cYa+99tqgYyYmJobFx8czxm4fNyKR\niFVVVXH9p0+fZj4+PlxxHMkchhs/Y4xduHCBzZkzh0VHR9+z+KvjOFLFqLjsk5ubC1tbW6SmpmLS\npElKfZWVlfDz81Nqmzp1KvLy8riPgmVlZXB2dr7nvhsbG1FRUYGAgDsreRkaGsLDwwPZ2dmjIoeM\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "system.alpha = 0.025\n", + "system.beta = -0.0018\n", + "\n", + "run_simulation(system, update_func2)\n", + "plot_results(system, title='Quadratic model')\n", + "savefig('chap03-fig04.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To understand the quadratic model better, let's plot net growth as a function of population." + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "pop_array = linspace(0.001, 15, 100)\n", + "net_growth_array = system.alpha * pop_array + system.beta * pop_array**2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like. Remember that the x axis is population now, not time.\n", + "\n", + "The function `sns.set` sets the style for the plots. I added a grid to this one to make it easier to read." + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig05.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "sns.set(style='whitegrid', font_scale=1.5)\n", + "plot(pop_array, net_growth_array, '-')\n", + "decorate(xlabel='Population (billions)',\n", + " ylabel='Net growth (billions)',\n", + " legend=False)\n", + "savefig('chap03-fig05.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using `sns.set` to reset the plot style." + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sns.set(style='white', font_scale=1.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the book we found that the net growth is 0 when the population is $-\\alpha/\\beta$:" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "13.88888888888889" + ] + }, + "execution_count": 175, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "-system.alpha / system.beta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is the equilibrium the population tends toward." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** In the book, I presented a different way to parameterize the quadratic model:\n", + "\n", + "$ \\Delta p = r p (1 - p / K) $\n", + "\n", + "where $r=\\alpha$ and $K=-\\alpha/\\beta$. Write a version of `update_func2` that implements this version of the model. Test it by computing system variables `r` and `K` equivalent to `alpha` and `beta`, and confirm that you get the same results. " + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def update_func2b(pop, t, system):\n", + " net_growth = (system.r * pop)*(1-(pop/system.K))\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nCCHkwVHxJ4SQcYiKPyGEjENU/AkhZByi4k8IIePQqCv+CQkJePXVV5Xazp49i8WLF8Pb2xvPPfcc\nLly4oNR/4sQJuLm5KT2mTZumtM3Ro0cxa9YseHl5Yd26daioqBhVOfT29iIxMRGhoaHw8fHBxo0b\nUV1dPWZyOHDgwKD3YODx/vvvqz2Hh3kPqqursXnzZvj5+SEsLAzx8fFoa2tT2mY0vwcAUFFRgQ0b\nNsDPzw/h4eHYv38/+vv71ZqDVCrFK6+8grCwMPj5+WH9+vUoKSnh+jMyMrB06VLMmDEDTz/9NNLT\n05We39jYiK1bt8LPzw/BwcF499131ZrDcOMf0NvbiyVLluCrr74a1KfO42hIbJRQKBRs3759TCQS\nsd27d3PtqampzM3NjX300UesvLycHT9+nHl6erJLly5x2yQkJLDNmzcziUTCPRoaGrj+L774gvn4\n+LDvvvuOFRUVsU2bNrE5c+YwmUw2anLYuXMnCw8PZ7/99hsrLi5mq1evZosXL2YKhWJM5NDR0aH0\n+5dIJCwhIYEFBwczsVisthweNv6+vj42f/58Fhsby8rKylhOTg6bP38++8tf/sLtY7S/By0tLSwk\nJIStXr2aFRQUsKysLDZ//ny2a9cuteUgl8vZ888/z5YvX87y8/NZaWkp27JlCwsODmZNTU2stLSU\neXh4sIMHD7KysjKWlJTEpk+fzkpKSrh9rFixgq1cuZIVFhayX375hQUFBbH33ntPLTk8ivgZY6y9\nvZ39+c9/ZiKRiJ09e1apT13H0f2MiuJfVVXFYmJiWGBgIIuIiFA64JcsWcJ27NihtP2rr77KYmJi\nuJ9XrFjBkpOTh9z/3Llz2f79+7mfOzo6mLe3N/v6669HRQ5VVVVMJBKx3377jeu/ceMGi4iIYBUV\nFWMih9/Lzc1l7u7uLD09nWsb6RyGE39xcTETiUSsqKiI6z9+/Djz8fFRW/zDzeHIkSPMx8eHNTc3\nc/3Z2dlMJBKx6upqteRQUFDARCIRKysr49pkMhnz8vJiZ86cYa+99tqgYyYmJobFx8czxm4fNyKR\niFVVVXH9p0+fZj4+PlxxHMkchhs/Y4xduHCBzZkzh0VHR9+z+KvjOFLFqLjsk5ubC1tbW6SmpmLS\npElKfZWVlfDz81Nqmzp1KvLy8riPgmVlZXB2dr7nvhsbG1FRUYGAgDsreRkaGsLDwwPZ2dmjIoeM\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "system.alpha = 0.025\n", + "system.beta = -0.0018\n", + "system.r = system.alpha\n", + "system.K = -system.alpha/system.beta\n", + "\n", + "run_simulation(system, update_func2b)\n", + "plot_results(system, title='Quadratic model')\n", + "savefig('chap03-fig04.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** On the Wikipedia page about world population estimates, the first table contains estimates for prehistoric populations. The following cells process this table and plot some of the results." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Select `table1`, which is the second table on the page." + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Population Reference Bureau (1973–2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]Maddison (2008)[8]HYDE (2010)[citation needed]Tanton (1994)[9]Biraben (1980)[10]McEvedy & Jones (1978)[11]Thomlinson (1975)[12]Durand (1974)[13]Clark (1967)[14]
Year
-10000NaNNaNNaN2M[15]NaNNaN4.01–10MNaNNaN
-9000NaNNaNNaN4.NaNNaNNaNNaNNaNNaN
-80005.0NaNNaN5.NaNNaNNaNNaN5–10MNaN
-7000NaNNaNNaN8.NaNNaNNaNNaNNaNNaN
-6000NaNNaNNaN11.NaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " Population Reference Bureau (1973–2015)[6] \\\n", + "Year \n", + "-10000 NaN \n", + "-9000 NaN \n", + "-8000 5.0 \n", + "-7000 NaN \n", + "-6000 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \\\n", + "Year \n", + "-10000 NaN \n", + "-9000 NaN \n", + "-8000 NaN \n", + "-7000 NaN \n", + "-6000 NaN \n", + "\n", + " Maddison (2008)[8] HYDE (2010)[citation needed] Tanton (1994)[9] \\\n", + "Year \n", + "-10000 NaN 2M[15] NaN \n", + "-9000 NaN 4. NaN \n", + "-8000 NaN 5. NaN \n", + "-7000 NaN 8. NaN \n", + "-6000 NaN 11. NaN \n", + "\n", + " Biraben (1980)[10] McEvedy & Jones (1978)[11] Thomlinson (1975)[12] \\\n", + "Year \n", + "-10000 NaN 4.0 1–10M \n", + "-9000 NaN NaN NaN \n", + "-8000 NaN NaN NaN \n", + "-7000 NaN NaN NaN \n", + "-6000 NaN NaN NaN \n", + "\n", + " Durand (1974)[13] Clark (1967)[14] \n", + "Year \n", + "-10000 NaN NaN \n", + "-9000 NaN NaN \n", + "-8000 5–10M NaN \n", + "-7000 NaN NaN \n", + "-6000 NaN NaN " + ] + }, + "execution_count": 185, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table1 = tables[1]\n", + "table1.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Not all agencies and researchers provided estimates for the same dates. Again `NaN` is the special value that indicates missing data." + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Population Reference Bureau (1973–2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]Maddison (2008)[8]HYDE (2010)[citation needed]Tanton (1994)[9]Biraben (1980)[10]McEvedy & Jones (1978)[11]Thomlinson (1975)[12]Durand (1974)[13]Clark (1967)[14]
Year
1913NaNNaN1793.NaNNaNNaNNaNNaNNaNNaN
1920NaN1860.01863.1912.NaNNaNNaNNaNNaN1968.
1925NaNNaNNaNNaNNaNNaN2000.0NaNNaNNaN
1930NaN2070.0NaN2092.NaNNaNNaNNaNNaN2145.
1940NaN2300.02299.2307.NaNNaNNaNNaNNaN2340.
\n", + "
" + ], + "text/plain": [ + " Population Reference Bureau (1973–2015)[6] \\\n", + "Year \n", + "1913 NaN \n", + "1920 NaN \n", + "1925 NaN \n", + "1930 NaN \n", + "1940 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \\\n", + "Year \n", + "1913 NaN \n", + "1920 1860.0 \n", + "1925 NaN \n", + "1930 2070.0 \n", + "1940 2300.0 \n", + "\n", + " Maddison (2008)[8] HYDE (2010)[citation needed] Tanton (1994)[9] \\\n", + "Year \n", + "1913 1793. NaN NaN \n", + "1920 1863. 1912. NaN \n", + "1925 NaN NaN NaN \n", + "1930 NaN 2092. NaN \n", + "1940 2299. 2307. NaN \n", + "\n", + " Biraben (1980)[10] McEvedy & Jones (1978)[11] Thomlinson (1975)[12] \\\n", + "Year \n", + "1913 NaN NaN NaN \n", + "1920 NaN NaN NaN \n", + "1925 NaN 2000.0 NaN \n", + "1930 NaN NaN NaN \n", + "1940 NaN NaN NaN \n", + "\n", + " Durand (1974)[13] Clark (1967)[14] \n", + "Year \n", + "1913 NaN NaN \n", + "1920 NaN 1968. \n", + "1925 NaN NaN \n", + "1930 NaN 2145. \n", + "1940 NaN 2340. " + ] + }, + "execution_count": 186, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table1.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Some of the estimates are in a form we can't read as numbers. We could clean them up by hand, but for simplicity I'll replace any value that has an `M` in it with `NaN`." + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table1.replace('M', np.nan, regex=True, inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, we'll replace the long column names with more convenient abbreviations." + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table1.columns = ['prb', 'un', 'maddison', 'hyde', 'tanton', \n", + " 'biraben', 'mj', 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function plots selected estimates." + ] + }, + { + "cell_type": "code", + "execution_count": 189, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_prehistory(table):\n", + " \"\"\"Plots population estimates.\n", + " \n", + " table: DataFrame\n", + " \"\"\"\n", + " plot(table.prb, 'ro', label='PRB')\n", + " plot(table.un, 'co', label='UN')\n", + " plot(table.hyde, 'yo', label='HYDE')\n", + " plot(table.tanton, 'go', label='Tanton')\n", + " plot(table.biraben, 'bo', label='Biraben')\n", + " plot(table.mj, 'mo', label='McEvedy & Jones')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are the results. Notice that we are working in millions now, not billions." + ] + }, + { + "cell_type": "code", + "execution_count": 190, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\ngg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_prehistory(table1)\n", + "decorate(xlabel='Year', \n", + " ylabel='World population (millions)',\n", + " title='Prehistorical population estimates')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use `xlim` to zoom in on everything after Year 0." + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nmjZtKrVr105tf3t7e+nGjRtyWXh4uGRvby+NHTtWLuvRo4fUqFEj+XX16tWlqVOnqsW+YMECyd3d\nXYqLi5MkSZLOnTsn2dnZSTt27JDrzJkzR7Kzs5OOHDmitu+UKVMkOzs76cSJE5IkSdLixYslOzs7\naeXKlWr1duzYIdnZ2Unnzp2TJEmSTpw4IdnZ2UnLly9Xqzd69Gjp888/l2JiYqSVK1dK9vb20t27\nd9XqzJ07V7Kzs5PPPXPb2mTU6dixo5SUlCSXz58/X7Kzs5NOnTolSZIk/fLLL5KdnZ30888/q+2/\nevVqyc7OTtq0aVO22ssqtszlmV/reu6SJEl2dnbSuHHj5NdhYWGSnZ2dtHjxYkmSJCk0NFSyt7eX\nhgwZIqWlpcn1rl69Ktnb20vDhw9X269BgwZSfHy8XG/fvn2SnZ2dtHXr1ix/vg8fPpQcHBykuXPn\nqpX/9ddf0ueffy7NmDFDra1r167JdZKSkqQOHTqo7Zvx+/SmzO/lHj16SHZ2dtKxY8fksk2bNkl2\ndnZS586d5bK0tDSpfv36UpcuXSRJkiSVSiW5uLhIPj4+au2/evVKcnR0lLy9veWyjPdzWFiY2nGb\nNGmi9jNKTk6WunfvLtWrV09+P+jyu1aQidt9+VSHDh2oW7cudevWxdXVlS5duhAcHIynpyejR49W\nq1u+fHlKliwpv/7zzz8JCwujSZMmxMTEEB0dTXR0NK9fv6ZRo0bcunVLbVi4jY0Nn3/+ufy6TJky\nmJub8/z58yzjK1WqFPv37ycwMFDuEB45ciQ7duzA2Ng4y/2OHTuGra2txhXa4MGDAQgODlYrr127\ndpZtAZw4cQI9PT169OihVj5u3Dh27dqFsbExAwYM4MyZM2pXn69fv0ZPL/3t/z7Dgvv06aM2cMXL\nywtIP7+Mf01MTPDw8FDbr2fPnpiYmMj1dG3vfX3Mcz9+/DiSJDFgwAD5tjNAjRo1+Oqrrzh58iQp\nKSlyeYMGDdRGsjk4OADw7NmzLI9x5MgR0tLScHNzk9+30dHRWFhYULVqVU6cOAGkv/8A5s2bx8WL\nF0lNTUWpVBIYGKjx+6ELAwMDvv76a/l1xYoVgfTbcxkUCgVlypSR49fX1+fs2bNMmzZNra0XL15g\nYmLy1p/tixcvuHDhAg0aNOD169fyecbGxtK0aVOeP3/O9evX5XN9n9+1gkLc7sun5syZg4WFBQB6\nenqYmppia2uLgYGBRt0SJUqovX748CEAs2fPZvbs2Vrbf/TokZzYMu8P6YM0kpOTs4xvypQpjBw5\nkgkTJjB58mScnJxo2rQpHTt2pGjRolnuFx4ervZhkMHS0hJTU1MiIiLeem6ZRUREUKJECUxMTDTa\ns7S0lF8nJyezYMECbt68ycOHDwkPD5f7rNLS0t56DG0yD4E3MzPDzMxMjj88PJxy5cpp3EZUKpWU\nK1dO4zzf1d6H+FjnntHvlPEB/iZbW1tOnz7Nixcv5DJzc3O1OhlJ+G3HzHjvdu3aVev2jJ+ni4sL\nPXv2ZOPGjfz++++YmZnh6upK27Ztadiwoc7nlMHMzIzChf/9OCxUqBCg+f4rVKiQ3NeUEc+JEycI\nDg7m/v37PHjwQO4rkt6yClLGs1sbN25k48aNWutERkYC7/+7VlCIJJVPubi4aAxBz0rGL1SGjA+B\nESNG4OTkpHWfSpUqyd9n/FWdHXXr1uX48ePy15kzZ5g5cybr1q0jMDBQ4wMqw9t+cdPS0jQ+1N8V\n25uDI7Jy8eJF+vbti5GREfXq1aNjx4589tlnPHz4UOOvYF1p68NKTU2V483ueb6rvay86/w/5rm/\n65wg/Twyhny/z/sqo53ly5dTpEiRt9adOHEinp6eHDp0iFOnTnHo0CH27t1Lly5dsn1ubyaoN715\nxZiZJEkMHjyY48ePU7NmTZydnenSpQu1a9emV69ebz1exv+bh4dHlv2+lStXBt7/d62gEEmqACpT\npgyA/MH0pmvXrhETE/POD4C3UalU3Lp1i1KlStG6dWtat25NWloaP//8M7Nnz2bfvn1ZzmJRpkwZ\n7t+/r1H+7Nkz4uLisLa2zlYspUuX5uzZs8THx6vd+rh58yZr165l0KBBLF68mCJFirBv3z61X+gV\nK1Zk61hvCgsLU0v00dHRvHr1ChsbGyD9PK9evUpycrJaAlKpVISHh6sNXNGlvYwPfJVKpbbf227J\nAh/13DP+aPq///s/atSoobbt/v37GBkZUaxYMeLi4rLddoaM9661tTVVq1ZV23by5En5ivn58+eE\nhoZSt25d+vfvT//+/Xnx4gVDhgxh27ZtjB07NsevMi5evMjx48cZPHgwI0aMkMtTUlJ4+fLlW5/n\nyzjPQoUKafyO3r17l/DwcAwNDT/od62gEH1SBZCjoyOWlpZs3LiR+Ph4uTwuLk6+bZD56is7Xrx4\nQZcuXVi5cqVcpqenR7Vq1eTv4d8rvDdv7zRq1Ih79+5x9OhRtTZXrVoFkO1bNQ0aNCAtLY3t27er\nlW/ZsoUDBw5gYWHBy5cvMTc3V/uQfvXqlTw8WZerscw2bdqkdmWRMQqvadOmAPLzbJs3b1bb75df\nfiE+Pl7jPN/VXsaty1u3bsl1UlJSOHz48FvjzM656+npvfVWXKNGjQBYvXq1Wqw3b97k7NmzNGjQ\n4K1XHrrIOMbKlSvVjnHr1i0GDRrE+vXrgfQh6r1795b7bQCKFy9OhQoVUCgU8nsw49/3uaX7Li9f\nvgT+veLJsG3bNhITE9X65zJfYVtZWeHo6EhQUJBa/3BycjLff/89w4cPJyUlRefftYJMXEkVQPr6\n+kyaNAkfHx/c3d359ttvMTAwYPv27Tx69Ii5c+dmeXtDFyVLlqRt27b88ssvJCYm4uzszMuXL9m0\naRMWFha0bNkSQB5mvHv3biRJokOHDnh7e3P48GFGjhxJt27dsLGx4dy5cxw+fJhmzZrRoEGDbMXi\n5uaGq6srfn5+hIaGUq1aNa5cucLOnTsZMmQIZmZm1K9fn9WrVzNixAhcXV159uwZv/32m3wV8mYi\n19X58+fp378/jRo14o8//mDXrl20b99eHmqfMc+in58fd+7cwdHRkRs3bhAYGIiTkxOdOnXKVnt1\n6tTB0tKSZcuWkZSURIkSJdi1a9c7Bz5k59zNzc25cOEC27Ztw9XVVaOtKlWq4OnpycaNG/Hy8qJJ\nkyY8e/aMjRs3Ympq+l4DFjKzs7OTj/Hy5UuaNGkiv7eMjY3lK5b27dvz888/M3DgQLp160bJkiW5\nceMGO3fupEOHDvJVdUZyXrx4MV988QV169b94BgzODs7Y2JiwsyZM4mIiKBYsWKcP3+e/fv3Y2Bg\noPGzBQgICKB+/fo0btyYSZMm0atXLzp27Ei3bt0wMzNj3759/PHHH4wePVr+/dHld60gE0mqgGrR\nogXFihVj+fLlLFu2DD09PapUqcLy5cvlv1Y/xPTp0ylXrhz79u1j3759GBoaUrduXXx8fORfSFtb\nWzw9PQkMDOT69et88cUXlC9fnq1bt7Jw4UL2799PbGws5cqV47vvvqN3797ZjkNPT49ly5axdOlS\n9uzZw+7duylfvjy+vr5069YNgGHDhpGamsr+/fs5fvw4VlZW1KtXjz59+tC6dWvOnTsnX7Ho6qef\n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\nyMhQ5s2bp8TGxip5eXlKenq60qNHD2XlypVKZmamsmLFCqVXr162oa1Wq1WZOHGi8uCDDyqpqam2\n+RRXD01tLiZPnlxtyLQzrt3HH3+s9OnTR/nqq6+UX375RXnyySeVkSNHNovh/ddez40bNyo9e/ZU\ndu7cqZw+fVr5/PPPlZiYGOXzzz9XFEWu59XS0tKUbt26KS+++KLd/Eej0djon81mn6QuXbqkvPHG\nG8rAgQOVfv36Kc8884ySn5/f2GG5rPPnzytz585V4uLilJiYGGXatGnKL7/8Ytv+zTffKHfffbfS\ns2dP5d5771X27dtXbf+cnBxl5syZSkxMjDJkyBDl7bffViwWS0OfRqO79ktVUZxz7davX6/Ex8cr\nffr0UX73u9/VOk+oqbn2elqtVuW9995TRo4cqfTs2VMZOXKk8umnn1bbR65nlbffflvp2rVrjT9r\n165VFKVxP5tS9FAIIYTLatbPpIQQQrg2SVJCCCFcliQpIYQQLkuSlBBCCJclSUoIIYTLkiQlhBDC\nZUmSEqKeLVy4kKioKLtqppft2bOHqKgo1q1b18CRCeH6ZJ6UEPWstLSUe+65B41Gw1dffYWPj49t\nW0lJCXfffTft2rXj008/pUWLFo0YqRCuR+6khKhnrVq14tVXX+XcuXMsX7682ra33nqLoqIilixZ\nIglKiBpIkhKiAQwbNoz77ruPjz76iCNHjgCg1+vZvn07c+fOJSIiwvbeTz75hISEBHr27Mntt9/O\npk2buLbD4+OPP+a+++4jJiaG3r17M378eP75z3/atm/fvp2+ffvy0UcfMXjwYAYNGsTZs2cb5mSF\ncCLp7hOigRQVFTF69GjatWvHxx9/zPjx4wkICGDr1q22VafXrl3LmjVrmDp1KvHx8Rw5coR169Yx\ndepUW32f999/n2XLlvHMM88QExNDYWEhGzduJCMjgz179hASEsL27dtZuHAhERERzJs3j4sXLzJu\n3LjGPH0hfpNmXfRQiIbk5+fHokWLmDVrFr/73e84d+4c69evtyWooqIiNmzYwKOPPsoLL7wAwNCh\nQ/Hy8uLtt99mypQptG3bluzsbKZPn84TTzxhO7ZOp+OBBx7gyJEj3HnnnQBYrVb+93//l9tuu63h\nT1YIJ5HuPiEa0B133MHo0aPR6/XMnz+f9u3b27YdOnQIk8nEiBEjqKystP38z//8D5WVlfz4448A\nvPzyy8yePZuioiJ++ukn/u///o9PPvkEwK6Cardu3Rru5ISoB3InJUQDGzp0KLt372bYsGHV2gsL\nCwGYOnVqjftdrnZ66tQpFi5cyP79+9FqtXTu3JnIyEgAu2dX3t7eTo5eiIYlSUoIF9G6dWsAVq5c\nSVhYmN32tm3bYrFYeOKJJ2jVqhU7duwgKioKd3d30tPT2bVrV0OHLES9k+4+IVxEnz59aNmyJXl5\nefTq1cv2YzKZWLFiBXl5eeTl5XH69GkmTpxIjx49cHev+j1z7969QNVzKCGaErmTEsJFtGnThilT\nprBs2TKKioro168f2dnZLF++HH9/f7p06ULLli3R6XRs2bKFoKAgWrVqxd69e/nwww8BKC8vb+Sz\nEMK55E5KCBcyb948Zs+eza5du5g+fTorVqxg+PDhbNmyBa1Wi0ajYd26dQQFBfH8888ze/Zsjh49\nyoYNG+jYsSMHDx5s7FMQwqlknpQQQgiXJXdSQgghXJYkKSGEEC5LkpQQQgiXJUlKCCGEy5IkJYQQ\nwmVJkhJCCOGyJEkJIYRwWZKkhBBCuKz/ByMlQGdaI70dAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_prehistory(table1)\n", + "decorate(xlim=[0, 2000], xlabel='Year', \n", + " ylabel='World population (millions)',\n", + " title='Prehistorical population estimates')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See if you can find a model that fits these data well from Year -1000 to 1940, or from Year 0 to 1940.\n", + "\n", + "How well does your best model predict actual population growth from 1950 to the present?" + ] + }, + { + "cell_type": "code", + "execution_count": 243, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nysjIkNOTkpKk9u3bS927d9c43tnZWbp27ZqcFhYWJjk7O0tffvmlnDZw4ECpTZs28nb9+vWl6dOn\na9R98eLFUs+ePaXExERJkiTp7NmzkpOTk7Rt2zY5z/z58yUnJyfp0KFDGsdOmzZNcnJyko4fPy5J\nkiQtW7ZMcnJyktasWaORb9u2bZKTk5N09uxZSZIk6fjx45KTk5O0atUqjXzjx4+X3n77bSkuLk5a\ns2aN5OzsLN25c0cjz4IFCyQnJyf52l8sOy/ZeXr16iWlpaXJ6YsWLZKcnJykkydPSpIkSb/88ovk\n5OQk/fjjjxrHr127VnJycpI2btxYoPLyq9uL6S9ua3vtkiRJTk5O0sSJE+Xt0NBQycnJSVq2bJkk\nSZIUEhIiOTs7S2PGjJHUarWc7/Lly5Kzs7P0+eefaxzXqlUrKSkpSc63d+9eycnJSdq8eXO+f9+H\nDx9KLi4u0oIFCzTSb926Jb399tvSrFmzNMq6cuWKnCctLU3q0aOHxrHZ76fnvfhaHjhwoOTk5CQd\nPXpUTtu4caPk5OQk9enTR05Tq9VSy5Ytpb59+0qSJEkqlUpyc3OTfH19NcpPSEiQXF1dpZEjR8pp\n2a/n0NBQjfO2a9dO42+Unp4uDRgwQGrevLn8etDmvVaeiea+UqpHjx54eHjg4eGBp6cnffv25ciR\nIwwaNIjx48dr5K1RowZVq1aVt//66y9CQ0Np164dcXFxxMTEEBMTQ2pqKm3atOHGjRsaw8Lt7e15\n++235W1bW1vMzc2JiorKt37VqlUjMDCQ7du3yx3C48aNY9u2bRgbG+d73NGjR3F0dMx1hzZ69GgA\njhw5opHu7u6eb1kAx48fR0dHh4EDB2qkT5w4kZ07d2JsbMyIESM4ffq0xt1namoqOjpZL//XGRY8\ndOhQjYErPj4+QNb1Zf9rYmKCt7e3xnEfffQRJiYmcj5ty3tdhXntx44dQ5IkRowYITc7AzRo0IB3\n332XEydOkJGRIae3atVKYySbi4sLAE+fPs33HIcOHUKtVuPl5SW/bmNiYrCwsKBu3bocP34cyHr9\nASxcuJALFy6QmZmJUqlk+/btud4f2jAwMKBFixbytoODA5DVPJdNoVBga2sr119fX58zZ84wY8YM\njbKePXuGiYnJS/+2z5494/z587Rq1YrU1FT5OuPj42nfvj1RUVFcvXpVvtbXea+VF6K5r5SaP38+\n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\nOLB48WKGDRtGYGDgK9dLEgRB+De4cDOSR1GJQNbnd4dmNbGxMEGp7MD+mCbcUKmwUSrpaW6Ou6lp\nidZVqyB15MiRQjnZzZs3uXTpEoGBgfJSDvPnz6dp06acOHGCixcv0rBhQ3lGi3HjxhEcHMzPP//M\nzJkzuXTpEsHBwRw+fBg7OztcXFz46quvmDlzJmPGjEGpVLJu3Tp8fHzo9M+ErQsXLsTT05MDBw5o\nfbcnCIJQXj16mkjQX5HytvtbVbGxMCE+KB7LfTH0jVChtFZi3tkcU/uSDVCgZZ+Ura2t/FO5cmWU\nSiVWVlYa6dqwtrZmzZo1ODg4yGnZK7jGxcVx4cIFmjZtqnHMO++8w4ULFwC4cOECtra22NnZyfub\nNm1KUlISN27cIDo6mvv372uUYWxsjKurq1zGv5mXlxcrV6586b6wsDCcnZ3lO9MXOTs7s3PnzqKs\npiAIRSQ1LYOD5x7Iz7raWJjQxKUq8UHxRKyLIC08DUktkRaeRsS6COKD4l9RYtHT+oGnc+fO0bt3\nb5o0aULLli2pX78+ffv25Y8//tD6ZJUrV6Z169Yaz1lt2LCB1NRUPD09efz4MVWrVtU4xsrKiseP\nHwMQGRmJlZVVrv0AERERcr6XlSFoJzAwkMOHD5d0NQRBKCSSJHEsOJTElHQAKij16PBODXR0FMTs\ni8nzmJj9eacXJ62a+4KCgvj4449xcHDg888/p0qVKjx58oT9+/czfPhw1q9fT5MmTQp88iNHjrBo\n0SJ8fHxwdHQkNTU1V7+RUqkkLS0NyFrGPHvJkGz6+vooFArS0tJIScmac+rFPM+XURoExcezLyaG\nCJUKa6WSzqWg3fdFdnZ2TJs2DXd3dypVqlTS1REE4Q1d/zuau+Fx8nZbdztMjLI+b1URqjyPUT3K\nO704aXUntXTpUjw8PNi1axeffPIJvXv3ZsyYMezatQsPDw/8/f0LfOLt27fz+eef07lzZ7788ksg\nK7ikp6dr5FOpVBgaGgJQoUIFVCrNP1p6ejqSJGFkZCSPOnwxz/NllLSg+HjWRUQQnpaGWpIIT0tj\nXUQEQfElf1v9vC+//JL09HRmz55d0lURBOENRcWmcOrPR/J2PUcLHGxyvnwqrfMeVKa0KfnBZloF\nqWvXruHt7S33H2VTKBR4e3tz9erVAp101apVTJ48mX79+jFv3jy5+c/a2ponT55o5H3y5IncfFet\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "pop_sys = System(t0=1, t_end=2016, p0=table1.mj[1], r=0.00132, K = 100000)\n", + "run_simulation(pop_sys, update_func2b)\n", + "\n", + "newfig()\n", + "plot_prehistory(table1)\n", + "plot(pop_sys.results, label='model')\n", + "\n", + "decorate(xlim=[0, 2000], xlabel='Year', \n", + " ylabel='World population (millions)',\n", + " title='Prehistorical population estimates')" + ] + }, + { + "cell_type": "code", + "execution_count": 246, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAakAAAEjCAYAAACIB/7lAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFf78PHv0pRiQ8GKDQXzxALYojEWEI0SYsQuWDAq\nUWIMUWMnltg72FuseWLFihpj/amxYInlMRF9TQRFUVERVOq8f5CdsCzoEgER7891ecmemTlzD+7u\n7SkzR6MoioIQQgiRDxm96QCEEEKIrEiSEkIIkW9JkhJCCJFvSZISQgiRb0mSEkIIkW9JkhJCCJFv\nSZLKZ0aMGIGjo6POn/feew8XFxc6depESEhIjp7P1dWVHj16vHK/Hj164Orqmu36ExMTuXfv3r8J\nLVNbt27F0dGRU6dO5VideVF3Xnnda4iIiFB/joyMxNHRkeDg4JwK741If03w79/Lr+vhw4c8e/Ys\nz8/7tjN50wGIzI0cOZISJUoAoCgKcXFx7NixgxEjRvDo0SP69OmTp/F88cUXPH/+PFvH3L59mz59\n+uDn54eXl1eOxFG/fn2mT5+Ovb19jtQn/vH5559jY2PD1KlTAbC2tmb69Ok4Ojq+4cj+vS1btjB+\n/HguXryolv2b9/LrOnLkCEOHDiUkJAQLC4s8PffbTpJUPtWyZUsqVKigU9axY0fatm3LggUL8PHx\nwczMLM/i+fDDD7N9TGRkJH/++WeOxmFnZ4ednV2O1inSHDt2jPbt26uvLSwsaNeu3RuM6PWdOXOG\nhIQEnbJ/815+XRcvXiQ2NjbPz1sQSHffW6Rw4cK4uroSFxdHeHj4mw5HCCFynSSpt4xGowEgJSUF\nSBtTGjNmDKNGjaJ27do0bdqUmJgYAM6fP4+vry/Ozs44OzvTp08fnW6P9Hbs2IGHhwc1a9akdevW\n/Pe//9XZnrEfPzExkUmTJuHm5kbNmjVp1qwZ48eP58mTJ0Da2EjPnj2BtK7L9F1Gjx49Yty4cXz0\n0Ufq+ZYuXapeE0BwcDC1atVi//79fPjhhzg7O7Np06ZMx1wSExMJDg6mVatW1K5dO9P6/vrrL4YP\nH07Tpk2pWbMmDRo04Isvvsh2stee/+LFiwwYMAAnJyeaNGnClClTePHihc6+z58/Z9asWbi6ulKz\nZk1cXV2ZOXOmTleTofVlNdZkyBjUq65dO/YEEBISotaX1ZjUpk2baNeuHbVq1eKDDz5gyJAhREZG\nqtu1x23bto05c+bQtGlTatWqRadOnTh58qTBv+fPPvtMPceIESOIjo7W2eePP/7g888/54MPPqB2\n7dq0b9+ezZs3q9t79OihjuE6OjoyYsQItTz9e7lHjx74+fnxyy+/8Omnn1KrVi08PDw4cuQIcXFx\nBAYGUr9+fRo1akRgYKDOv4uiKPz3v/+lY8eOODs7U6tWLT7++GOWLl2K9olzI0aMYP78+QC4ubnp\njAFfv34df39/6tWrR506dejatSv/93//p3Odr/qsFXTS3fcWSU1N5fTp05iZmemMyezevZuqVasy\natQoHjx4gLW1NcePH8fPz48aNWowePBgEhMT2bp1K97e3vzwww/Uq1dPPf7SpUtcu3YNHx8frK2t\n+emnnxg3bhw2Nja0bNky01gmTJjArl276NmzJ3Z2doSHh7N+/Xr++usvVq5cSf369fniiy9YvHgx\nXbp0oW7dugA8efKErl27cvv2bbp27UqVKlU4fvw4s2bN4n//+x9z585Vz5GcnExgYCC+vr4kJiZS\nt25dLly4oBeLv78/R48exdPTE19fXy5evMisWbN4+PAhI0eO5MGDB3Tu3BkrKyt8fHwoUaIEV69e\nZePGjVy5coWDBw9iamqarX+LwYMHY2try5AhQ7h69SqrVq3i+vXrrFixAkj7YvH19eXChQt4eXlR\ns2ZNLl68yLJlyzh79ixr1qzROeer6vu3DLl27djTt99+S7169ejcuTP29vZ6SRdg2rRprFy5kkaN\nGvHtt98SHR3NunXrOHHiBJs2bdLpop43bx7m5ub06dOHpKQkVq5ciZ+fH4cPH1bHWzMzf/58goOD\nad26NZ07d+bevXusW7eO06dPs3nzZqytrYmJieHzzz+nRIkSDBgwgEKFCrF7925Gjx5NoUKF8PT0\n5IsvviA1NZWwsDCmT59OxYoVszznlStXOH/+PD179qRIkSIsWbKEr7/+mvfeew9zc3O++eYbwsLC\n2LBhA7a2tnz55ZcAzJ07l8WLF9O+fXs6d+5MfHw827ZtY9asWVhaWuLt7U2XLl2Ii4tj//79jBw5\nkurVqwNpSbZ79+6UKlUKPz8/TE1N2bVrF/3792fWrFm0bdsWePVnrcBTRL4yfPhwxcHBQbly5Yry\n8OFD5eHDh0p0dLRy/vx5ZfDgwYqDg4MyefJkdf8WLVooNWrUUO7evauWpaSkKG5ubkrXrl2V5ORk\n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\nUkIIISqt/wewMuQc3gRjJAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "newfig()\n", + "plot_prehistory(table1)\n", + "plot(pop_sys.results, label='model')\n", + "decorate(xlim=[1950, 2000], xlabel='Year', \n", + " ylabel='World population (millions)',\n", + " title='Prehistorical population estimates')" + ] + }, + { + "cell_type": "code", + "execution_count": 248, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From 6028dfd9ea89d9f4e47138e5b75f58a457df6ac7 Mon Sep 17 00:00:00 2001 From: dberny <31549375+dberny@users.noreply.github.com> Date: Wed, 27 Sep 2017 21:12:13 -0400 Subject: [PATCH 4/9] submitting ch04 --- code/chap04mine.ipynb | 1034 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1034 insertions(+) create mode 100644 code/chap04mine.ipynb diff --git a/code/chap04mine.ipynb b/code/chap04mine.ipynb new file mode 100644 index 00000000..3a9a5d63 --- /dev/null +++ b/code/chap04mine.ipynb @@ -0,0 +1,1034 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 4: Predict\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# To switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "import math\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Functions from the previous chapter" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_estimates(table):\n", + " \"\"\"Plot world population estimates.\n", + " \n", + " table: DataFrame with columns `un` and `census`\n", + " \"\"\"\n", + " un = table.un / 1e9\n", + " census = table.census / 1e9\n", + " \n", + " plot(census, ':', color='darkblue', label='US Census')\n", + " plot(un, '--', color='green', label='UN DESA')\n", + " \n", + " decorate(xlabel='Year',\n", + " ylabel='World population (billion)')" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(system):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " system: System object with `results`\n", + " \"\"\"\n", + " \n", + " plot_estimates(table2)\n", + " plot(system.results, '--', color='gray', label='model')\n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)')" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Run a model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + "\n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \"\"\"\n", + " results = Series([])\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " system.results = results" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### Reading the data" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# The data directory contains a downloaded copy of\n", + "# https://en.wikipedia.org/wiki/World_population_estimates\n", + "\n", + "from pandas import read_html\n", + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": true, + "scrolled": true + }, + "outputs": [], + "source": [ + "table2 = tables[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_estimates(table2)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### Running the quadratic model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the update function for the quadratic growth model with parameters `alpha` and `beta`." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func2(pop, t, system):\n", + " \"\"\"Update population based on a quadratic model.\n", + " \n", + " pop: current population in billions\n", + " t: what year it is\n", + " system: system object with model parameters\n", + " \"\"\"\n", + " net_growth = system.alpha * pop + system.beta * pop**2\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Select the estimates generated by the U.S. Census, and convert to billions." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "census = table2.census / 1e9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Extract the starting time and population." + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "t0 = census.index[0]\n", + "p0 = census[t0]\n", + "t_end = census.index[-1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initialize the system object." + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
t01950.000000
t_end2015.000000
p02.557629
alpha0.025000
beta-0.001800
\n", + "
" + ], + "text/plain": [ + "t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "alpha 0.025000\n", + "beta -0.001800\n", + "dtype: float64" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(t0=t0, \n", + " t_end=t_end,\n", + " p0=p0,\n", + " alpha=0.025,\n", + " beta=-0.0018)\n", + "\n", + "system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the model and plot results." + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation(system, update_func2)\n", + "plot_results(system)\n", + "decorate(title='Quadratic model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generating projections" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To generate projections, all we have to do is change `t_end`" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap04-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "system.t_end = 2250\n", + "run_simulation(system, update_func2)\n", + "plot_results(system)\n", + "decorate(title='World population projection')\n", + "savefig('chap04-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The population in the model converges on the equilibrium population, `-alpha/beta`" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "13.856665141368708" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results[system.t_end]" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "13.888888888888889" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "-system.alpha / system.beta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** What happens if we start with an initial population above the carrying capacity, like 20 billion? The the model with initial populations between 1 and 20 billion, and plot the results on the same axes." + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nde+/6gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "pop_array = linrange(1, 20, 4)\n", + "\n", + "newfig()\n", + "for p1 in pop_array:\n", + " system.p0 = p1\n", + " run_simulation(system, update_func2)\n", + " plot(system.results)\n", + "# system.p0 = p1\n", + "# run_simulation(system, update_func2)\n", + " \n", + "# plot(p1, system.results[system.t_end], 'rs', label='population')\n", + " \n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Comparing projections" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can compare the projection from our model with projections produced by people who know what they are doing." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "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", + "
United States Census Bureau (2015)[18]Population Reference Bureau (1973-2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]
Year
20167.334772e+09NaN7.432663e+09
20177.412779e+09NaNNaN
20187.490428e+09NaNNaN
20197.567403e+09NaNNaN
20207.643402e+09NaN7.758157e+09
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2015)[18] \\\n", + "Year \n", + "2016 7.334772e+09 \n", + "2017 7.412779e+09 \n", + "2018 7.490428e+09 \n", + "2019 7.567403e+09 \n", + "2020 7.643402e+09 \n", + "\n", + " Population Reference Bureau (1973-2015)[6] \\\n", + "Year \n", + "2016 NaN \n", + "2017 NaN \n", + "2018 NaN \n", + "2019 NaN \n", + "2020 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \n", + "Year \n", + "2016 7.432663e+09 \n", + "2017 NaN \n", + "2018 NaN \n", + "2019 NaN \n", + "2020 7.758157e+09 " + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table3 = tables[3]\n", + "table3.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`NaN` is a special value that represents missing data, in this case because some agencies did not publish projections for some years." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table3.columns = ['census', 'prb', 'un']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function plots projections from the UN DESA and U.S. Census. It uses `dropna` to remove the `NaN` values from each series before plotting it." + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_projections(table):\n", + " \"\"\"Plot world population projections.\n", + " \n", + " table: DataFrame with columns 'un' and 'census'\n", + " \"\"\"\n", + " census = table.census / 1e9\n", + " un = table.un / 1e9\n", + " \n", + " plot(census.dropna(), ':', color='darkblue', label='US Census')\n", + " plot(un.dropna(), '--', color='green', label='UN DESA')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the model until 2100, which is as far as the other projections go." + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system.p0 = census[t0]\n", + "system.t_end = 2100\n", + "run_simulation(system, update_func2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap04-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nC/UAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system)\n", + "plot_projections(table3)\n", + "decorate(title='World population projections')\n", + "savefig('chap04-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "People who know what they are doing expect the growth rate to decline more sharply than our model projects." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose there are two banks across the street from each other, The First Geometric Bank (FGB) and Exponential Savings and Loan (ESL). They offer the same interest rate on checking accounts, 3%, but at FGB, they compute and pay interest at the end of each year, and at ESL they compound interest continuously.\n", + "\n", + "If you deposit $p_0$ dollars at FGB at the beginning of Year 0, the balanace of your account at the end of Year $n$ is\n", + "\n", + "$ x_n = p_0 (1 + \\alpha)^n $\n", + "\n", + "where $\\alpha = 0.03$. At ESL, your balance at any time $t$ would be\n", + "\n", + "$ x(t) = p_0 \\exp(\\alpha t) $\n", + "\n", + "If you deposit \\$1000 at each back at the beginning of Year 0, how much would you have in each account after 10 years?\n", + "\n", + "Is there an interest rate FGB could pay so that your balance at the end of each year would be the same at both banks? What is it?\n", + "\n", + "Hint: `modsim` provides a function called `exp`, which is a wrapper for the NumPy function `exp`." + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def fbg(p0 = 1000, years = 10, interest = 0.03):\n", + "# balance = TimeSeries()\n", + "# balance[0] = p0\n", + "# year_array = linrange(0, years)\n", + "# for y in year_array:\n", + "# balance[y+1] = balance[y] + balance[y]*interest\n", + "# return balance[years]\n", + " balance = p0*((1+interest)**years)\n", + " return balance" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1343.9163793441223" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "fbg(p0 = 1000, years = 10, interest = 0.03)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def esl(p0 = 1000, years = 10, interest = 0.03):\n", + " balance = p0*exp(interest*years)\n", + " return balance" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1349.8588075760031" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here'\n", + "esl(1000, 10, 0.03)" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.030454533953516938" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "next = esl()/1000\n", + "answer = next**(1/10)-1\n", + "answer" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1349.858807576004" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "fbg(interest = 0.030454533953516938)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose a new bank opens called the Polynomial Credit Union (PCU). In order to compete with First Geometric Bank and Exponential Savings and Loan, PCU offers a parabolic savings account where the balance is a polynomial function of time:\n", + "\n", + "$ x(t) = p_0 + \\beta_1 t + \\beta_2 t^2 $\n", + "\n", + "As a special deal, they offer an account with $\\beta_1 = 30$ and $\\beta_2 = 0.5$, with those parameters guaranteed for life.\n", + "\n", + "Suppose you deposit \\$1000 at all three banks at the beginning of Year 0. How much would you have in each account at the end of Year 10? How about Year 20? And Year 100?" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def pcu(p0 = 1000, b1 = 30, b2 = 0.5, years = 10):\n", + " balance = p0 + b1*years * b2*(years**2)\n", + " return balance" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PCU 10: 16000.0\n", + "FBG 10: 1343.9163793441223\n", + "ESL 10: 1349.85880758\n" + ] + } + ], + "source": [ + "# Solution goes here\n", + "print(\"PCU 10:\", pcu(years = 10))\n", + "print(\"FBG 10:\", fbg(years = 10))\n", + "print(\"ESL 10:\", esl(years = 10))" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PCU 20: 121000.0\n", + "FBG 20: 1806.111234669415\n", + "ESL 20: 1822.11880039\n" + ] + } + ], + "source": [ + "# Solution goes here\n", + "print(\"PCU 20:\", pcu(years = 20))\n", + "print(\"FBG 20:\", fbg(years = 20))\n", + "print(\"ESL 20:\", esl(years = 20))" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PCU 100: 15001000.0\n", + "FBG 100: 19218.6319808563\n", + "ESL 100: 20085.5369232\n" + ] + } + ], + "source": [ + "# Solution goes here\n", + "print(\"PCU 100:\", pcu(years = 100))\n", + "print(\"FBG 100:\", fbg(years = 100))\n", + "print(\"ESL 100:\", esl(years = 100))" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From 17a4867af74e1572af445edbd3d0894b3ea4b455 Mon Sep 17 00:00:00 2001 From: Diego Berny Date: Thu, 5 Oct 2017 10:14:50 -0400 Subject: [PATCH 5/9] submitting ch05 --- code/chap05mine.ipynb | 2008 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2008 insertions(+) create mode 100644 code/chap05mine.ipynb diff --git a/code/chap05mine.ipynb b/code/chap05mine.ipynb new file mode 100644 index 00000000..da9f7cb8 --- /dev/null +++ b/code/chap05mine.ipynb @@ -0,0 +1,2008 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 5: Design\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# To switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### SIR implementation\n", + "\n", + "We'll use a `State` object to represent the number or fraction of people in each compartment." + ] + }, + { + "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", + "
value
S89
I1
R0
\n", + "
" + ], + "text/plain": [ + "S 89\n", + "I 1\n", + "R 0\n", + "dtype: int64" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(S=89, I=1, R=0)\n", + "init" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To convert from number of people to fractions, we divide through by the total." + ] + }, + { + "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", + "
value
S0.988889
I0.011111
R0.000000
\n", + "
" + ], + "text/plain": [ + "S 0.988889\n", + "I 0.011111\n", + "R 0.000000\n", + "dtype: float64" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init /= sum(init)\n", + "init" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`make_system` creates a `System` object with the given parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(beta, gamma):\n", + " \"\"\"Make a system object for the SIR model.\n", + " \n", + " beta: contact rate in days\n", + " gamma: recovery rate in days\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " init = State(S=89, I=1, R=0)\n", + " init /= sum(init)\n", + "\n", + " t0 = 0\n", + " t_end = 7 * 14\n", + "\n", + " return System(init=init, t0=t0, t_end=t_end,\n", + " beta=beta, gamma=gamma)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an example with hypothetical values for `beta` and `gamma`." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "system = make_system(beta, gamma)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The update function takes the state during the current time step and returns the state during the next time step." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update1(state, system):\n", + " \"\"\"Update the SIR model.\n", + " \n", + " state: State with variables S, I, R\n", + " system: System with beta and gamma\n", + " \n", + " returns: State object\n", + " \"\"\"\n", + " s, i, r = state\n", + "\n", + " infected = system.beta * i * s \n", + " recovered = system.gamma * i\n", + " \n", + " s -= infected\n", + " i += infected - recovered\n", + " r += recovered\n", + " \n", + " return State(S=s, I=i, R=r)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To run a single time step, we call it like this:" + ] + }, + { + "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", + "
value
S0.985226
I0.011996
R0.002778
\n", + "
" + ], + "text/plain": [ + "S 0.985226\n", + "I 0.011996\n", + "R 0.002778\n", + "dtype: float64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = update1(init, system)\n", + "state" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run a simulation by calling the update function for each time step." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \n", + " returns: State object for final state\n", + " \"\"\"\n", + " state = system.init\n", + " for t in linrange(system.t0, system.t_end):\n", + " state = update_func(state, system)\n", + " return state" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is the state of the system at `t_end`" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
S0.520453
I0.000615
R0.478933
\n", + "
" + ], + "text/plain": [ + "S 0.520453\n", + "I 0.000615\n", + "R 0.478933\n", + "dtype: float64" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(system, update1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise** Suppose the time between contacts is 4 days and the recovery time is 5 days. After 14 weeks, how many students, total, have been infected?\n", + "\n", + "Hint: what is the change in `S` between the beginning and the end of the simulation?" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "S 0.988889\n", + "I 0.011111\n", + "R 0.000000\n", + "dtype: float64\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
S0.609458
I0.004450
R0.386091
\n", + "
" + ], + "text/plain": [ + "S 0.609458\n", + "I 0.004450\n", + "R 0.386091\n", + "dtype: float64" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "thing = make_system(beta = 1/4, gamma = 1/5)\n", + "print(thing.init)\n", + "run_simulation(thing, update1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using Series objects" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to store the state of the system at each time step, we can use one `TimeSeries` object for each state variable." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " Add three Series objects to the System: S, I, R\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \"\"\"\n", + " S = TimeSeries()\n", + " I = TimeSeries()\n", + " R = TimeSeries()\n", + "\n", + " state = system.init\n", + " t0 = system.t0\n", + " S[t0], I[t0], R[t0] = state\n", + " \n", + " for i in linrange(system.t0, system.t_end):\n", + " state = update_func(state, system)\n", + " S[i+1], I[i+1], R[i+1] = state\n", + " \n", + " system.S = S\n", + " system.I = I\n", + " system.R = R" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we call it." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "system = make_system(beta, gamma)\n", + "run_simulation(system, update1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then we can plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(S, I, R):\n", + " \"\"\"Plot the results of a SIR model.\n", + " \n", + " S: TimeSeries\n", + " I: TimeSeries\n", + " R: TimeSeries\n", + " \"\"\"\n", + " plot(S, '--', color='blue', label='Susceptible')\n", + " plot(I, '-', color='red', label='Infected')\n", + " plot(R, ':', color='green', label='Recovered')\n", + " decorate(xlabel='Time (days)',\n", + " ylabel='Fraction of population')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what they look like." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system.S, system.I, system.R)\n", + "savefig('chap05-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using a DataFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Instead of making three `TimeSeries` objects, we can use one `DataFrame`.\n", + "\n", + "We have to use `loc` to indicate which row we want to assign the results to. But then Pandas does the right thing, matching up the state variables with the columns of the `DataFrame`." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " Add a DataFrame to the System: results\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \"\"\"\n", + " frame = DataFrame(columns=system.init.index)\n", + " frame.loc[system.t0] = system.init\n", + " \n", + " for i in linrange(system.t0, system.t_end):\n", + " frame.loc[i+1] = update_func(frame.loc[i], system)\n", + " \n", + " system.results = frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it, and what the result looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "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", + "
SIR
00.9888890.0111110.000000
10.9852260.0119960.002778
20.9812870.0129360.005777
30.9770550.0139340.009011
40.9725170.0149880.012494
\n", + "
" + ], + "text/plain": [ + " S I R\n", + "0 0.988889 0.011111 0.000000\n", + "1 0.985226 0.011996 0.002778\n", + "2 0.981287 0.012936 0.005777\n", + "3 0.977055 0.013934 0.009011\n", + "4 0.972517 0.014988 0.012494" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "sir = make_system(beta, gamma)\n", + "run_simulation(system, update1)\n", + "system.results.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can extract the results and plot them." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAETCAYAAAD+spv+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYVOXbwPHvsC8CsqrgjlupCO77hlpaSlZWrmlirpW5\n5FamZT9zSU3MzLIMNTVNKtO3RdNsMZVQc8MFU0NRWRRlHWbmvH+cGBgGdFRgEO/PdZ0LOM+Zc+4h\nm5tn1yiKoiCEEEIUAxtrByCEEKL8kKQihBCi2EhSEUIIUWwkqQghhCg2klSEEEIUG0kqQgghio1V\nk8rMmTOZMWPGLa85cuQIzz33HE2aNKFHjx58/fXXpRSdEEKIO2WVpKIoCu+//z4bN2685XUpKSmE\nh4fTsGFDtmzZwuDBg5kxYwa//fZbKUUqhBDiTtiV9gP//fdfpk+fzunTp/H397/ltZs2baJChQrM\nmDEDGxsbAgMDOX78OJ9++int27cv8nVZWVkcPXoUX19fbG1ti/stCCFEuaTX60lMTKRRo0Y4OTnd\n1T1KPanExMRQpUoVFi1axIQJE255bXR0NC1atMDGJq9C1bJlS2bPno2iKGg0mkJfd/ToUQYOHFis\ncQshxINi3bp1NG/e/K5eW+pJJSwsjLCwMIuuvXz5Mg8//LDJOT8/PzIzM7l27RpeXl6Fvs7X1xdQ\nfzGVK1e+t4CFEOIBcfnyZQYOHGj8DL0bpZ5U7kRWVhYODg4m53J/1mq1Rb4ut8mrcuXKVK1ateQC\nFEKIcuheug3KdFJxcnIySx65Pzs7O9/VPRMSYPVqqFMH6tZVD1fXe41UCCEElPGkUrlyZRITE03O\nXb16FRcXF9zc3O7qnqdPw7lz6rFjB2g0EBAADRpA/frq4eh477ELIcSDqEwnlWbNmrFlyxaTTvl9\n+/bRtGlTk877O3HmjOnPigLx8eqxYwfY2kJgIDz8MAQHQ5Uq9/ouhBDiwVGmZtRrtVoSExONTVxP\nP/00KSkpvPnmm8TFxbFmzRq+++47wsPD7/oZzz4LY8dCjx5QqxYUzE16PZw6BV9/Dbt338ObEUKI\nB1CZqqkcPHiQIUOGEBkZSatWrfDx8eGTTz5hzpw5PPHEE/j7+zNv3jzatGlz189wdYWgIPUAyMpS\nay+xsXDihFpjydW4sfnrf/oJvLygUSNpJhNCiIKsmlTWrFlj8nOrVq04efKkybng4GA2b95cYjE4\nOakJolEj9efUVDW5HD+u9q/kl50N33wDOTng4KAmpmbN1ORjb19iIQohxH2jTNVUygIPD2jdWj0K\nOn5cTSgAWi1ER6uHs7OaXFq3VkeVFTEnUwghyj1JKnegWjV4/HH46y91aHKuzEz47Tf18PGBdu2g\nTRvw9LRerEIIYQ2SVO6Ajw/07q0ely6ptZR9+yApKe+apCS1iSw2Fm6zCo0QQpQ7klTukr8/9Omj\nJpizZ+HPP9Ukk5GhlrdrZ/4ag8F8tJkQQpQnklTukUajzmsJDIRnnoFDh+DAAQgJMb1OUeCdd6B6\ndejaVW1KE0KI8kb+bi5G9vbQogWMGaOODsvv+HF1uPIff8CcObB4MRw9qiYbIYRlvv76a55++mmC\ng4MJCQnhueeeY/v27dYOy2IJCQls27bN+HPuHlEAW7ZsMVtAt6D69evzzTfflGiM90pqKqXk+HHT\nn2Nj1cPfHx59VE1G0jQmRNE2btzIvHnzeP3112nWrBk5OTn89NNPTJgwgezsbPr27WvtEG9r+vTp\nVKpUicceewyAiIgI7OzK18dw+Xo3ZVi/ftC8OezcqY4eMxjU85cuwaefwrffqsmlTRsoZ//GhCgW\nGzdu5JlnnuHJJ580nqtTpw7nzp0jMjLyvkgqSoGmiYoVK1opkpIjfxuXolq1IDxcbf4KDTWdkZ+U\nBGvXwuuvq8vECCFM2djYEBMTw82bN03OT5kyhYiICKDw5qH8586ePcsLL7xA06ZNadasGWPGjCE+\n3zIaSUlJTJw4kZYtW9KiRQtefvllrl69aiz/8ssveeSRRwgKCqJ3795ERUUZy/bt28fDDz/M999/\nT9euXQkJCWHkyJEk/Df/YOrUqezdu5eoqCjq/zezOn/zV65169bRvn17QkJCGD9+PCkpKUX+Tm4V\nj7VIUrECb2+1U//dd9XRY/mX3k9NVZeBEUKYGj58OH///TcdOnRg1KhRrFq1ihMnTuDl5WXxvkmT\nJk3C39+fqKgo1q1bx7Vr15g+fToAOp2OF154gfj4eFauXMnatWtJSkri5ZdfBuCLL75g8eLFvPrq\nq8Y1CN955x2TD3K9Xs97773HnDlzWLduHampqYSHh6PT6ZgxYwbNmzenZ8+e/Pbbb4XGp9fr+eqr\nr1i+fDmrVq3i9OnTTJs2rdBrLYnHGqShxYpcXNTJlN26wZ498OOP0KSJOh8mP51OXT1ZZuqL4rZ1\nK3z3nWXXdugAgwaZnlu7Fn791bLXP/64+kfU3erZsyeVKlXi888/5/fff2fXrl0APPzww8yfP5+6\ndeve9h7nz5+nXbt2BAQEYGdnx4IFC0j6b6LZ3r17OXnyJDt27KDaf8Mz58yZw5YtW8jOzmbFihWM\nGzeORx99FIDq1atz6dIlVqxYYdL0Nm3aNNq2bQvA/Pnz6d69O3v37qVDhw7Y29vj5OR0y50VFyxY\nQGBgIABvvvkmgwcP5vz589SoUcPkOkvjKW2SVMoAJyd11eROndQEUtD//Z86Uuypp6BevdKPT4iy\nomnTpjRt2hS9Xs+xY8f4+eefWbt2LSNGjODHH3+87etfeeUV5s2bxxdffEHr1q3p3LmzsdP81KlT\neHl5GRMKQO3atZk0aRIpKSlcuXKFefPmsXDhQmO5TqdDr9ebbCbYsmVL4/fVq1fHy8uLU6dO0aFD\nh9vG5+HhYUwoAI3+W5Tw9OnTJknFkngK7ppbWiSplCGOjuYrH9+8qa6MnJ0N772n1mSeegoqVbJO\njEJYQ0JCAh999BFjx47F19cXW1tbgoKCCAoKonnz5gwfPtxsMVpQP2TzGzJkCL169WLXrl388ccf\nzJ07l08//ZRvvvnmlqOw7P9bMfaNN94wSRq58r+24H0MBoPF+z8VvC63Y9++wIq1dxJPaZOkUsad\nPavu8ZLr8GE4ckSt1fTpozahCXG3cpcduluDBpk3iZUER0dHNm/eTI0aNRg2bJhJmbu7OxqNBm9v\nb+zt7UlLSzOWnT9/3vj9tWvXWLZsGSNGjKBfv37069ePv//+m379+hEbG0tgYCApKSlcvHiRgIAA\nAOLi4hg4cCCbN2+mUqVKxMfH069fP+M9169fz4kTJ3jrrbeM544ePUrz5s0B+Oeff7h+/ToPPfQQ\ngHGzwaJcv36dhIQEqvy3O2BMTAwajYY6deqYXOfm5mZxPKVNOurLuCZN1NFi+VdNNhhg1y51pNgv\nv+QNTxaivPLy8mL48OG89957REREcPLkSc6fP89PP/3EtGnT6Nu3L/7+/gQHB/Pll18SGxvLsWPH\nePPNN43NQB4eHuzZs4eZM2cSGxvL+fPn2bJlC+7u7tSqVYu2bdvy8MMPM2XKFI4ePUpsbCxvvPEG\ngYGBVK1aldGjR7N69Wo2btzIhQsX2Lp1K++++65Z/8js2bOJiYnhyJEjvPbaazRu3NhYm3B1dSU+\nPp6LFy8W+j41Gg2vvvoqR44cYd++fbz11lv07t3bmOTyszSe0iY1lfuApycMG6YOQ960KW/IcXo6\nfPGF2sk/YIC6VIwQ5dWrr75KjRo1+PLLL1m9ejXZ2dlUr16dvn37MnToUABmzZrFrFmz6NevH35+\nfrzyyitcuXIFUJuWPvroI959910GDx6MVqulcePGrFq1Cjc3NwA+/PBD3nnnHQYPHoyDgwPt27c3\njg7r378/Wq2WVatW8fbbb1OpUiXGjBnDiy++aBLnE088wfjx40lLS6NLly7MmDHD2Kw1cOBAJk2a\nRK9evdixY4fZe/T19aV79+7GEWM9e/Y0Pr8gS+MpbRql4GycciA+Pp7Q0FB27txp8VDD+4WiqOuL\nbdoEycmmZWPGqDUbIUTp27dvH0OGDOGXX36hcuXK1g7nrhTHZ6fUVO4zGo26WGWjRmoH/vbt6sZh\nvr5wm2WDhBCixElSuU/Z20OvXtCqlVprad/efEtjRZG5LUKI0iVJ5T7n7Q2jRpmfVxRYsUJdsLJX\nL/OEI4QoXq1atSp0WPODRpJKOXXwoNr3cugQxMTA4MFQYFSiEEIUOxlSXE799Vfe95cvw4IFsH69\nOolSCCFKiiSVcio8XB1m7OSUd273bpg9W93HRQghSoJFzV/Z2dl89NFH7N69m4yMDLM9AQB++OGH\nYg9O3D2NRp11HxQE69aps/BBHYa8eLFa9tRT5svCCCHEvbAoqbzzzjts2rSJli1bUrduXYvXsRHW\n5+kJY8fC/v2wYQNkZKjnf/kFjh2DoUPBgsVdhRDCIhYllR9++IFXX33V6jM1xd3RaNShxw0aqLWW\nw4fV80lJ6k6UklSEEMXFoiqHVqslKCiopGMRJczDA0aPVpd8cXaGChVg4EBrRyWEKE8sSirt27dn\nz549JR2LKAUajbo45axZ6vyW/5Y8MtLpZIFKUTZNnTrVuMaXJebMmUNISAjNmjUzbsR1txRF4euv\nvya54NpId+jhhx9my5Yt93SPss6i5q8+ffrw+uuvc+3aNZo2bYpT/iFF/+l9L+tni1JXsaJ6FPT1\n1+py+y+8YL4DpRD3izNnzrBmzRpmz55N+/bt8bnHf8wxMTFMmTKFnTt3FlOE5ZdFSeWll14CICoq\nqtD9jzUajSSVcuDkSdixQ52N//bb0L+/2hcjS72I+01qaioA7dq1K5ZFZcvhurslxqKkUpzZWa/X\ns2TJEqKiokhPT6dDhw7MnDmzyL8k9u7dy3vvvceZM2fw8fHh2WefJTw8/Lab3Yg7l5CgJhBFgaws\n+OwzdSjywIGyGZgoW7p27cqgQYPYv38/e/fupUKFCvTv359x48axZcsWpk2bBkC3bt3o27cv7777\nLqdOnWLevHlER0fj4eFB586dmTRpEu7u7gDk5OSwbNkyvv76a1JTU2nQoAFTp07Fx8eHgf91PoaG\nhjJu3Dheeuml297v+vXrvP322+zevRtnZ2cmTpxonV9WKbMoqeTfICYjI4P09HQqVqxotsWlJSIi\nIoiKimLevHlUrFiR2bNn89JLL7F+/Xqza8+fP8+oUaMYMWIEixcv5tixY0ydOhUXFxfjf2RRfDp3\nhpo1YdUquHpVPRcdDXFxMHy4jBIrd376CbZutc4yC46O6paT3bvf9S3ef/99pk+fzowZM/j+++9Z\nuHAhrVu3plevXnh4eDBmzBg2bdpErVq1uHLlCoMHD+bJJ59kxowZ3Lhxg/nz5zNu3DgiIyMBtQ9m\n586dzJo1i7p167J69WrCw8P5/vvvWb58ufF+gYGBFt3vlVdeISUlhU8++QRbW1tmz56NPv82ruWU\nxRNO9u3bR79+/WjevDkdO3YkKCiIZ599lr1791r8MK1WS2RkJBMmTKBdu3Y0bNiQRYsWERMTQ0xM\njNn1v/76K05OTowbN45q1arx6KOP0qlTJ3799VeLnynuTM2a6o6SHTrknbt2Dd57D775xnRrY3Gf\n++kn663bk52tPv8edOnShWeffZZq1aoxYsQI3N3dOXToEE5OTnh4eADqjpFubm588cUXVK1alSlT\nplC7dm2Cg4NZvHgx+/bt4+DBg6SlpfHVV18xYcIEunXrRo0aNZgxYwb9+vXjxo0bJvdzdXW97f3i\n4uL4888/efPNNwkJCSEoKIh58+bd86/tfmBRTeXAgQMMHz6cWrVq8fLLL+Pt7c3Vq1f5/vvvGTFi\nBKtXrzbuyXwrsbGxpKenG7fWBKhatSoBAQFER0fTtGlTk+u9vLy4fv063333Hb169eLMmTNER0fT\nv3//O3yb4k44Oqr7jjdsCGvWqDtMKoq6d0tsrFprkU78cqB7d+vWVO6hlgJQs2ZNk5/d3NzIyckp\n9NoTJ05w4sQJQkJCzMri4uKws7MjJyfHZOqEnZ0dU6ZMASAlJeWO7ufq6gpAw4YNjefr1KljPF+e\nWZRU3n//fdq0acPKlStN+jJyt66MiIjg888/v+19Ll++DEClSpVMzvv5+RnL8uvRowdPP/00kyZN\n4rXXXkOv19OzZ0/GjBljSdjiHoWEQK1aat9K7nphZ8/C55/DA9I8XL51737PH+zWlLv3fH5Fdajb\n29vTrl07Xn/9dbMyLy+vIveML8rt7vf7778XGs/ddBncbyxq/jp69CgDBw406xzXaDQMHDiQI7kL\nS91GZmYmNjY2Zr9YBwcHsgv5a+nGjRtcvHiR8PBwNm/ezLx58/jjjz9YtmyZRc8T965iRXjlFejb\nF2xswMFBrcUIcT+pU6cOcXFx+Pv7U6NGDWrUqIGNjQ3/+9//SEhIoHr16tjZ2XH06FHjawwGA488\n8gjbtm0z++y73f0aNGgAwMGDB42viY+P5/r166Xzhq3IopqKu7s7GbmLRhWQnp6Ora2tRQ9zcnLC\nYDCg0+mws8t7tFarxdnZ2ez6hQsXYmtry6RJkwB14pBOp2PWrFkMHjwYT09Pi54r7o2NDTz6qLrM\nS3IyFKhoClHmDRo0iHXr1jF16lRefPFFtFotb731Fjdu3KBmzZo4ODgwYMAAFi9ejKenJzVq1GD1\n6tWkpqbSqlUr4+TJEydO4OHhYdH9QkNDmT17NnPmzMHNzY05c+Y8EOsmWvQOW7duTUREBFeuXDE5\nf+XKFSIiImjTpo1FD6tSpQoAiYmJJuevXr1q1iQGcPjwYRo1amRyrkmTJuTk5JCQkGDRM0XxqVkT\nmjUzP79nj9rnKkP5RVnl6+vLZ599RlJSEs888wzh4eFUqVKFzz77zNiMNnnyZHr27Mn06dN54okn\niIuLY9WqVfj4+FCnTh0eeeQRXn31VZYuXWrR/RYuXEirVq0YO3YsQ4cOpUuXLvj6+lrz11AqNIoF\ns3quXLnCU089RVpaGs2aNcPHx4ekpCT++usvKlSowPr166lWrdptH6bVamndujVvvvkmYWFhgFol\nDA0NZePGjQQHB5tcP3z4cOzt7VmxYoXx3Pbt25k4cSIHDhygQoUKhT4n9547d+4slolPomjx8TB3\nrrq8S8OG6qrH/w3TF0LcZ4rjs9OimkqlSpWIioqif//+3Lx5k0OHDnHjxg0GDBhAVFSURQkFMFYx\n58+fz549ezh27BgTJkygZcuWBAcHo9VqSUxMRKvVAjBkyBB2797N8uXL+ffff9m1axdz585lwIAB\nRSYUUbp++klNKKAupf/223D8uHVjEkJYj0U1leKk0+lYuHAhUVFR6HQ644x6Ly8v9u3bx5AhQ4iM\njKRVq1YA7Nixg+XLl/PPP//g4+NDWFgYI0eOvOUoCqmplB6dDr79Fgru0dajB4SFgZ1FvXZCiLKg\nOD47i0wqK1as4Mknn8TPz8+k+anQm2g0jBw58q4CKAmSVErfiRPw6adw40beuRo11G2N/fysF5cQ\nwnLF8dlZ5N+RS5YsoW3btvj5+bFkyZJb3qSsJRVR+h56CGbOhNWrIXdU5vnzMGcOPPcctGkjC1MK\n8SAoMqnE5s52K/C9EEVxc4Nx4+Dnn+Grr9QlXbKz1cmSFy9Cv37WjlAIUdIs6qhftmyZ2XDiXBcv\nXmTOnDnFGpS4f2k0EBoK06blzWfRaNTZ+UKI8s+ipPLBBx8UmVQOHTrExo0bizUocf+rVg1mzID2\n7eGxx6BOHWtHJIQoDUU2f/Xv359Dhw4B6vo1zz77bJE3ady4cfFHJu57jo4weHDhkyJjY8HbGx6A\nuWBCPFCKTCpz5szhxx9/RFEUli5dyjPPPEPlypVNrrG1tcXNzY1u3bqVeKDi/lWwg/76dVi5Uh2O\n/Oyz0LatdOILUV4UmVQCAwMZPXo0oC6s1q9fv0KXUhHiTkVGqsvp535/5Ii6SKXMZxW30rVrV7PV\nhJ2cnPD39+fZZ59l6NCh1gnMSrp3706fPn2M272XFRZNTRs3bhwA165dIycnx7ics6IoZGRk8Ndf\nf9FPhvYIC4WFQVIS5HbTHTyo7i45ZAhIS6q4lREjRvD8888bf75+/TobNmxg7ty5+Pn50atXLytG\nJ8DCpHLy5EkmTZrEmTNnCi3XaDSSVITFatRQd5f86ivYvVs9d+MGLFum7jjZr5/aHyNEQS4uLiaL\nMvr6+vLGG2+wZ88etm/fLkmlDLBo9Nf8+fO5fv06U6ZMoWXLlrRv35433niDTp06odFojHsyC2Ep\nBwfo3x9eesl0Acpff4W33oLTp60Xm7j/2NvbG7fgSEhI4OWXX6Zp06a0bduWV1991WT0qqIorF69\nmh49etCkSRPCwsL45ZdfjOWnTp1ixIgRtGjRgpYtW/Laa68Zd36cOnUqgwcPNnn233//Tf369Tl3\n7hygLi3Vp08fGjduzKOPPsqqVaswGAyAOmO9fv36rFixgjZt2tCzZ0+0Wu1tY87Ozuatt96iVatW\ntGzZkpUrV5bI77E4WJRUDh06xCuvvMLQoUPp1asXmZmZDBgwgBUrVtCtWzfWrFlT0nGKcqpRI3jz\nTci/k3RSErz3nrp9sRC3kpmZySeffEJcXBx9+vQhIyODwYMH4+joyIYNG1i1ahU5OTk8//zzxoVq\nP/74Y5YuXcqYMWPYunUrjz76KGPHjuX06dPEx8fTv39/PDw8WLduHcuXLyc2NpYXXngBvV7PE088\nQXR0tMkH/tatWwkJCaFmzZr88ssvTJo0iSFDhrBt2zYmT55MZGQky5cvN4l727ZtrF27loULF6LT\n6W4b8+zZs9m5cyeLFi1izZo17N+/nwsXLpTeL/pOKBZo1KiRcuDAAUVRFOXPP/9UmjVrZizbtWuX\n0rFjR0tuU2r+/fdfpV69esq///5r7VCEhQwGRdm7V1FeeUVRXnxRPQ4dsnZU5d+3sd8qL377ovLi\nty8q38Z+a1b+5dEvjeU/nvnRrHzN4TXG8j3n9piVf/zXx8byffH77inWLl26KA0bNlSCg4OV4OBg\npUmTJkqDBg2UsLAw5bvvvlPj/fJLpW3btopOpzO+Ljs7WwkODla2bt2qGAwGpV27dsrSpUtN7r10\n6VLl0KFDyrx585TOnTsrWq3WWHbmzBmlXr16yq5duxSDwaB06dJF+fTTTxVFURSdTqe0bdtWWb9+\nvaIoivLcc88p7777rsm9v/nmGyUoKEjR6/XGz6bc6y2J+ebNm0rDhg2VqKgoY3lKSooSFBRk9j7u\nVXF8dlrUp+Lv7098fDzNmzenZs2apKWlcfHiRQICAnB0dCQ1NbWkc58o5zQaaN0a6teHNWvUJV+a\nNLF2VKKsGThwIAMGDECv17Nz506WL1/Ok08+yWOPPQbA8ePHSUlJoXnz5iavy8zMJC4ujmvXrpGY\nmEhQUJBJee4IqmXLltG4cWOTVdADAwPx9PTk1KlTdO7cmT59+vDdd98xbNgw9u7dy40bN4x9OSdO\nnODIkSNs2LDB+HqDwUBWVhYXL140bkucf7uQ28VcvXp1cnJyTDYs9PT0pHr16nf9eyxJFiWVbt26\nsXDhQlxdXenevTu1a9fm/fffZ+TIkaxevdri/VSEuB1PT7WfJXePlvxOnVK/1qtXujGJssPDw4Ma\nNWoAULt2bWxsbHjnnXfw8vLi8ccfx97enjp16rBs2TKz17q5ud1yywxQhygXxmAwGF/7xBNP8OGH\nH3Lu3Dm+++47unbtivt/HYP29vaEh4fTu3dvs3tUqlSJq1evAuCYbyTK7WLOHUatFJhFfLv3Yi0W\nDyk+f/48X375Jd27d2fatGmMGzeOrVu3Ymtry6JFi0o6TvEA0Wig4P8vWVnq0vrXrqkjxJ56Cpyd\nrRNfedK7fm961zf/AMzVr2E/+jUsemTnoKBBDAoaVGR5eNNwwpuG31OMtzJs2DB27tzJ7NmzadWq\nFXXr1mXTpk1UrFgRDw8PANLS0pg0aRJDhw6ldevW+Pr6cuTIETp16mS8z+DBg+nUqROBgYF88803\n5OTkGD+0z5w5Q2pqKoGBgQDUrFmTkJAQtm3bxo4dO1iwYIHxPnXq1OHcuXPGxAfw008/sW3bNubP\nn1/oe7hdzI0bN8bBwYGDBw9St25dY3nuwICyxqKOemdnZ5YtW8YHH3wAQIcOHdi6dSuLFi1i+/bt\n9OjRo0SDFOLbb9WEAuoIsVmz1PktpbvFnChrbGxsePvtt8nKymLOnDn07t0bT09Pxo8fz5EjRzh1\n6hQTJ07k8OHDxg/k8PBwVq9ezbZt27hw4QLLly/n8OHDdOrUiUGDBnHz5k2mTZvG6dOniY6OZtKk\nSTRo0IA2bdoYn9u3b19WrVqFg4MDHTp0MJ4fPXo027ZtY+XKlZw7d47du3czc+ZMnJycjHvXF3S7\nmF1dXXnuuedYsmQJP//8M2fOnGH69OlkZWWV7C/3Lt3Rvnz5fynVq1cvs216ovzp0UMdFXb4sPrz\n9euwYgUEBan7tXh7Wzc+YT2BgYGMHDmSiIgIwsLC+Oyzz3j33Xd5/vnn0Wg0BAcH8/nnn+P93z+S\nIUOGkJWVxYIFC0hJSaFu3bqsWLHCmHQ+/fRTFixYwFNPPYWzszNdu3Zl8uTJJs1NPXv25J133uHx\nxx/HLt/2ph07dmT+/PmsXLmSpUuX4uXlxRNPPMGrr75aZPxOTk63jXnKlCk4OTkxY8YMsrOz6dev\nn1m/UFlR5M6PPXr0MHYqWeKHgvvJWpHs/Fg+KYpaO1m/3nSHSQcH6N1bXXL/v6kKQoi7UKI7PzZt\n2vSOkooQJU2jUeezNGgAUVGwZ496XqtVZ+f/8QcMGCAd+UJYU5FJ5d133y3NOISwmIsLDByoDkFe\nuxYuXVLPJyTAhx/C3LlQxCAeIUQJs6hPJSYm5rbXNM0/JVqIUhAYqK4h9vPPsHWrunXxE09IQhHC\nmixKKgMGDLhtU9iJEyeKJSAh7oStLXTvDi1aqItT5huIYxQXB7Vry54tQpQGi5JKYQtGZmRkEB0d\nzTfffEPWoNm5AAAgAElEQVRERESxBybEnahYUa2lFHT2LMyfryaVp59WazdCiJJjUVJp2bJloec7\nd+6Mi4sLH374IR999FGxBibEvVIU2LxZ/T43uYSEqMmnwCamQohiYtHkx1tp3rw5+/fvL45YhChW\ner1aM8k3jYCDB9WJk5GReZMphRDF544mPxZm165duLq6FkcsQhQrOzt1OZdOndQhyNHR6nlFgd9/\nh3371D6Ynj3hv9UxhBD3yKKk8sILL5id0+v1XL58mQsXLjBixIhiD0yI4uLjAyNGqLPyo6Igd0yJ\nTge7dsFvv0GXLvDkk9KZL8S9siip5OTkmJ3TaDQEBgYSHh7OU089VeyBCVHcatSA8eMhNha+/hr+\n+Uc9n5MDycmSUIQoDhYlFdnZUZQnDRrAlClw7Ji6UOX581DY1uYZGepESyGE5e6oT+WXX37hr7/+\nIjU1FR8fH1q3bk2LFi1KKjYhSoxGo25l3LChWmMpuMxRVhbMmAF16qjNZnXqSE1GCEtYlFSuXbvG\niBEjOHr0KA4ODnh5eZGcnMzy5ctp164dH3zwgcmmM0LcLzQadQ5LQb/+qtZU/v5bPapVg27doHlz\n09FkQghTFg0pnjNnDvHx8axYsYK///6b3bt3c+TIEZYtW8bRo0dZuHChxQ/U6/W89957tG/fnpCQ\nEF5++WWSkpKKvP7y5cu8/PLLhISE0KZNG2bNmkVmZqbFzxPibvy3QZ/Rv//CZ5/B1KnwzTeQkmKd\nuIQo6yxKKnv27GHKlCl07tzZ5HxoaCgTJ05k27ZtFj8wIiKCqKgo5s2bx9q1a7l8+bJxf+iCtFot\nw4YN4/r166xfv57Fixeze/duk53WhCgJAweq81k6dDDdhfLmTdi+HaZPh+XL4cgRMBisFqYQZY5F\nScXW1hY3N7dCy3x9fQsdHVYYrVZLZGQkEyZMoF27djRs2JBFixYRExNT6KKVW7duJTExkYiICBo0\naEDr1q156aWX+Pvvvy16nhD3okoVGDQI3n1XnYVfsWJemaKoG4YtW6YmFiGEyqKkMmDAABYvXsyV\nK1dMzqelpbFy5UoGDSp6j+r8YmNjSU9PN1n2pWrVqgQEBBCdOzMtn99++422bdsa920GeOqpp9ic\nu/aGEKWgQgV1guTcuTBqlDp6LJe7u9rhn59Op/bHCPEgsqjL8erVq1y9epXu3bvTrFkz/Pz8uH79\nOjExMaSnp+Pg4GCcIKnRaFi1alWh97l8+TIAlSpVMjnv5+dnLMvv3LlztG7dmiVLlvDtt9+i0Wjo\n0aMH48ePl4EBotTZ2Khrh4WEwJUr6qTJChXMd5s8fBg+/RQaN4aWLdWv+ZvQhCjPLEoq58+fp8F/\nf57pdDou/bcrUu45vV6PXq+/7X0yMzOxsbEx2esZwMHBgezsbLPr09LS2Lx5Mx07duT999/nypUr\nvP322yQnJzN//nxLQheiRFSqpC4BU5i9e9XaysGD6uHoqCaWpk3VWo38PSTKs1Kd/Ojk5ITBYECn\n02GXb1ymVqvF2dnZPDg7Ozw8PJg/fz62trY0btwYnU7HK6+8wrRp0/D09CyWuIQoLnq92pmfX3a2\nuu5YdLRaY3noIQgOhqAgKKKrUoj71h2NuD9z5gz79+8nLS0NT09PmjVrRu3CBvkXoUqVKgAkJiYa\nvwe1ea1gkxiozWSOjo7Y5mtfqFOnDgAXL16UpCLKHFtbmDZNbR7bvx8OHFC/z5WTkzf3RaOBCROg\nXj3rxStEcbMoqRgMBmbOnMlXX32FoijG8xqNhrCwMObOnXvbnSFBbS5zdXVl//79hIWFARAfH8/F\nixcLnZnfvHlzvvzyS3JycoxNZqdOncLW1paAgACL3qAQ1lCpEvTuDY8/DgkJ8NdfEBMD/7UcA2oC\nqlHD9HW5tZqHHgIvr9KNWYjiYFFSWblyJV9//TUTJ06kd+/e+Pj4kJiYyNatW1m6dCmBgYEWrVTs\n4ODAgAEDmD9/Pp6ennh7ezN79mxatmxJcHAwWq2W1NRUPDw8cHBw4LnnnmPNmjVMmTKFsWPHcuXK\nFRYsWEBYWJjUUsR9QaMBf3/16N0bEhPVjvxDh8DJybx/5eRJda8XUFdXrl9frcnUrasmGVkqRpR1\nFiWVzZs3M2rUKMLDw43nKleuzIgRI8jOzmbz5s0WL38/fvx4dDodkydPRqfT0aFDB2bOnAnAwYMH\nGTJkCJGRkbRq1QofHx/WrVvH3LlzefLJJ3FxcaFPnz5MnDjxLt6qENbn66su99KtW+GTJnOX5QdI\nSlKP339Xf/b0VNcgCwxUl5apWtV85JkQ1mZRUklMTKRZs2aFljVt2pSVK1da/kA7O6ZOncrUqVPN\nylq1asXJkydNztWpU6fIIcpC3M9sCpklVr06PPwwnDkDWq1p2bVrah/NgQPqzx06qJMzhShLLEoq\n1apV4+DBg7Rp08as7ODBg/j6+hZ7YEI8iNq0UQ+dDs6dU5vDTp+Gs2fV/pb8atUyf/2KFXDjhroA\nZtWqEBCgHjKMWZQWi5LK008/zaJFi3BxcaFXr174+PiQlJTEtm3b+Oijjxg5cmRJxynEA8XOTm3q\n+m+wIwaDuqhlXJyaYM6eNV9dWVHUBJSWpl6Xn7e3uuyMv7/6tVIltVYkkzJFcbMoqQwePJgTJ07w\n7rvvMm/ePON5RVHo06cPo0ePLrEAhRBqU1mNGurRtWvh11y/riaUwiQnq8fRo3nnZs+GypXzftbp\n1FFqvr7qUaGCDAwQd86ipGJra8u8efMIDw8nOjqa1NRU3N3dadGiBXXr1i3pGIUQFvD0hPnz1RpN\nfHzeceWK+aAAGxs1ceSXlKQuL5PLwUGt4Xh7qyPPcg9PT/WQVm9RmDua/FilShWqVauGh4cHXl5e\nVKtWraTiEkLcBQ8P9ci/yKVOp+4Pc+mSOmfm8mV1EmbBkWMFtzXSatXrExLMn+Ppqa7enN+FC+oc\nG3f3vMPNTT0qVCh8YIIofyye/LhgwQLWrl2LTqczToB0dnZm9OjRvPjiiyUapBDi7tnZ5c2VuRVn\nZ3WxzKQkdT5NVlbR1xY2TezcOfjhh6Jf4+KiJhhXV3VyZ58+puUJCermZ87O6uHion61t5dmuPuJ\nRUklIiKCyMhIhgwZwiOPPIK3tzdJSUl8//33LF26FFdXVwYOHFjSsQohSlBgoHqA2umfman2wyQl\nqcOZU1LU4/p1dWRZQTdu3Pr+GRl5WwJ4e5uX//EH/Pij+XkbGzW5ODnlfW3VCjp2NL3u8GE1XkdH\nteku92vuYW+f972jo2wLXVIsnvw4ZswYxo4dazxXrVo1QkJCcHV15fPPP5ekIkQ5otGoNQUXF3V4\nsiUeekhtUktNVRPMzZvqceOGmkzyrfBEhQrmr09PL/y+BoNalr+8sPXSfv9dTSyW6N8fCmxky/Ll\natOgnZ162Nubfm9rm/dzly7miXXXrrxmxcIOG5u87+vUUZNjLkVRmw9zr8t/aDTm51xcTGtviqIe\nGo31a3UWJZW0tDSCgoIKLWvWrBmf5u/dE0I8kPLXdAoyGNTEcvOmmhwKSypVqqgTP3NrNJmZ6qHT\nmV+b/wM5VyG7ZxTJwcH8XFKS6eKftxISYp5Uvvuu6NF3Bb3xhunrDQb43/8sey3AwoWmK1ynpKhb\nXOfKTUa5CSn/93Z2UJI7sluUVDp37syGDRvo0KGDWdm2bdvoWLAeKoQQ+djYqImksGSSq3t39Sgo\nJ0ft38k9MjMLbz4LCVETU3a2Osgg92vukZOT931hScXCXdGBwpvOLNhSyqjgIInCluy5lYKDHvLX\nAm93v5Ju9rPo9s2bN2fJkiX07t2bxx57DF9fX65fv87u3bv566+/GDp0KCtWrADUlYtlMqQQorjY\n26vH7faeKdicdacmTFATkU6nJhidzvR7vT7vXP75Pbm6dlVfr9ebHgaD6Ve93rympShqM6PBkHco\niulrc39WlMKTkkZjnlwKU9LNYxpFuX0YDfJvyn27G2o0nMi/Kp4VxMfHExoays6dO6laWI+iEEKU\nU7n9KwUTUW7tRVHUEXiFKY7PTotqKrGxsXd1cyGEEKUrf/+JNch0JCGEEMVGkooQQohiI0lFCCFE\nsZE5pUIIcZ9TFAUFBYNiwKAYcLA1HTNtUAykZqViUNTeem+XQsZkF5Mik8pbb73FsGHDqFatGpcu\nXcLX1xd72XxBCPGAStOmka3LRqvX4u3ibfbB/feVv7mZfROdQUeLgBa42LuYlG89uZUb2TfQGXQ8\n/fDTuDqYDsH6YP8HpOekozfoebXNqzjZmY47nr5zOjn6HPSKnvnd52Nnk/fxrVf0jN2mrnhia2PL\n8seWm7w2MyeTqTvU3XZd7F1Y/Ojie/tl3EKRSWXTpk306tWLatWqERoaysaNG4ucVS+EEGWBoihk\n67Ox1dhib2v6R/Cxq8dISEsgS5dFsyrNqOJWxaR8/ZH1nEk5Q7Y+m2HBwwj0Ml0eIGJfBOeunwNg\nSvsp1PY03SUt6kQUl25eAqCOVx2zpLI3fi/JGckAPFbvMbOkcvbaWdK06pT8HH2OWVK5kX2DHH2O\n8X3mZ6PJ68nIrY3kp8k3OUXBgsks96DIpOLr68vChQtp3749iqKwadMm9uzZU+i1Go3GZF0wIYQo\nbnEpcfxz/R/StGk09mts9qG/9u+1/HbhNxRFYVjIMFpXbW1S/tuF34hJiAGgcoXKZkklKSOJ+Bvx\nAKTnmC9Elr9mkvvhnl/+JKYzmK8tk79mUVi5rU3ejEa9Yj49P3/i0Ct67Ml7ngYNGo0GDRpsbWxR\nFMUkkdhqbKnoVBGNRoOznbPZvYtTkUll8uTJvPPOO6xYsQKNRsOWLVuKvIkkFSGEJQyKgRvZN7DR\n2ODu6G5S9se/f/DLuV+4qb1J11pd6Va7m0l5TEIMO87uAMDZztksqdhqbI1/wWfkZJg9O/9f/tk6\n84XC8pdr9Vqzcg8nD7ycvbC3tTdJALka+zXG380fext7s1oIwGN1HyNLl4WdjZ3ZewcY2WwkBsWA\nrY0tFRzM17N5q8tb2GhssNHY4GjraFKm0WhY8fgKs9fkcrRzZF73eUWWF6cik0rPnj3p2bMnoM6o\nX79+vTR/CSFuKVuXTXJmMho0ZjWB3ed2s/HoRgyKga61uvJso2dNytO0acbmpZTMFLN75/+gLawm\nkdvc5GDrUGgT0MO+D+Ns74yjrSNV3c1ni4c1COPROo/iaOeIh6OHWXl40/BC3nGe3vV737K8VdVW\ntywvmCQLquhU8ZblZYVFo78iIyMJLGr5USHEAyUjJ4PMnEyzEUQHLh7gk5hPAGhapSkjm5uuAehq\n72r8sL+edd3svvn/er+Rbb45Sy3PWnSt1RVXB1fqeplvY96rbi8er/d4obUIgBYBLWgR0KLI9+Xn\n6ldkmbCcRUmlZcuWxMXFERERwf79+7l58yaenp40b96c0aNHyz71QjwAzl47y/IDy7mZfZO63nWZ\n1HaSSbmnc952kIXVNHL/0q7gUMFs5BSoNYnX2r2Gm6NboTWFBj4NaOBT9DqEBTvmhXVYlFROnjxJ\n//79cXZ2JjQ0FG9vbxITE9m1axe7du1i48aN1Cts1xwhxH0jXZvOttPbiL8Rj86g47V2r5mUuzu6\nczP7JgCX0y6bvd7HxQdbG1u8nb3xdfU1K6/tWZtlvZYV+eHv7uheaF+DuL9YlFQWLlxI7dq1iYyM\nxMUlb5hcRkYGQ4cOZfHixXz44YclFqQQongYFAOX0y7zb+q/tAxoaTJCyM7Gjp//+dk4cihHn2OS\nALydvY0/uzu6m5V7OHrwQa8PTO6Zn62NLbYU3jQlyg+Lkkp0dDQLFiwwSSgALi4uhIeHM2PGjBIJ\nTghRfBRFYcpPU4z9FfW865k0WTnaOeLn6seVtCsoikJCWgLVPaobyzUaDXO6zsHD0aPQxFFUMhEP\nFouSirNz0eOaNRoN+jvZ8kwIUWLStemcSj7F6ZTTdK3VFR8XH2OZRqOhcoXKxqRy7vo5k6QCEFY/\nDFsbW6q6V8Xb2Xwpj/tlBJKwHouSSnBwMB9//DEdOnTA0TFvfHRWVhaffPIJISEhJRagEMJynx36\njCNXjgBQpUIVOtQw3QI80CuQy2mXqeVZC2d78z8Wm/k3K5U4RfllUVKZOHEiTz/9NKGhoXTt2hUf\nHx+SkpL4+eefSU9PZ926dSUdpxDiP1fTr3LkyhF8XX0JqmQ6d6yBTwNjUjmdctosqTxe73HC6odJ\nU5UoMRYllcDAQDZs2MAHH3zAzp07SU1Nxd3dnRYtWjB27Ng7Gvml1+tZsmQJUVFRpKen06FDB2bO\nnImPj89tXzty5EgyMjJYs2aNxc8Tojz5/cLvRB6OBCCoUlChSaWWZy3qe9enoV9Ds9fnXypEiJJg\n8b+w+vXrs3Tp0nt+YEREBFFRUcybN4+KFSsye/ZsXnrpJdavX3/L123YsIHdu3fTsmXLe45BiLJO\nb9CTkJZgNvO7rnfenLCTySfRGXQmiaKqe1Wmtp9aanEKUVCp/tmi1WqJjIzk9ddfp127dgAsWrSI\n0NBQYmJiaNq0aaGvO3/+PIsXL5a+G1HuZemy2Hh0I4cuH8KgGFjYY6HJsF0/Vz+qeVTDy9mLxn6N\nzVarFcLaSjWpxMbGkp6eblLbqFq1KgEBAURHRxeaVPR6PVOmTCE8PJxz585x4cKF0gxZiFLlaOvI\nqeRTxgURjycep0nlJibXzOgwQ/pERJlVqtsJX76szsKtVKmSyXk/Pz9jWUEfffQRAMOHDy/Z4IQo\nRalZqfwY9yP/pv5rcl6j0dAyQP2jy9PZk2y9+Wq6klBEWVaqNZXMzExsbGzMdpB0cHAgO9v8f56j\nR4/y2WefsXnzZmxsSjX/CVFidpzdwVfHv8KgGOhUsxMDGg8wKe9YoyONKzWmVsVakkDEfadUP6md\nnJwwGAzodKYb1Gi1WrMJltnZ2bz22muMHz+eGjVqlGaYQpSoau7VjKv1Hrh4wGzDJk9nT2p71paE\nIu5LFtVUFEVhy5Yt7N69m4yMDLPOQY1Gw6pVq257nypV1P0VEhMTjd8DXL161axJ7PDhw8TFxbFw\n4UIWLlwIqMnHYDAQEhLCtm3b8Pf3tyR8IUqdoij8c/0fDl8+zBMNnjBJEPW86+Hn6oeHkwftqrWz\nYpRCFD+LksqiRYv4+OOPqVq1KpUrV77rv6AaNGiAq6sr+/fvJywsDID4+HguXrxIixam+xwEBQXx\n448/msVx6dIlFi5ciJ+f7H0gyiZFUXhv73ucTj4NQHDlYGp51jKWazQaZnScYbYHuRDlgUVJJSoq\nimHDhjFlypR7epiDgwMDBgxg/vz5eHp64u3tzezZs2nZsiXBwcFotVpSU1Px8PDAycnJrNmrQoUK\nhZ4XoizRaDT4uPgYk8ruc7tNkgogCUWUWxb1qaSlpdGlS5dieeD48ePp3bs3kydPZsiQIfj7+/P+\n++8DcPDgQdq3b8/BgweL5VlClLSb2TfNRnABhNYKxc7GjnbV29E9sLsVIhPCOjSKBbOnhg0bRqtW\nrRg1alRpxHTP4uPjCQ0NZefOnVStar4XtRD3Kl2bzvbT29lzfg8+Lj7M7DTTrFk4IyfDuG+6EPeD\n4vjstKj5a9SoUUycOBGdTkfTpk1xcjKvuhc1G16I8urXC7+i1Wu5dPMSh68cJrhysEm5JBTxILIo\nqTz//PMALFu2DDCdfJW7S9yJEydKIDwhyiZXB1c61+zMD2d+oKp7VRxtHW//IiEeABYllcjIyJKO\nQ4gyKTMnkx/jfsTX1Ze21dqalHWr3Y06XnVo7NdY5pQI8R+LkoqsDCweRGevnWXZ/mWka9PxcPKg\nuX9zHGwdjOXuju5mS88L8aCzeEZ9XFwc48ePp23btjRu3JiOHTsyYcIEzpw5U5LxCWE1AW4BxmXl\nU7NS+TP+TytHJETZZ1FN5eTJk/Tv3x9nZ2dCQ0Px9vYmMTGRXbt2sWvXLjZs2ED9+vVLOlYhSlRu\n/2AuRztHwuqHsf30dvrU70OLgBa3eLUQAixMKgsXLqR27dpERkbi4pI3oiUjI4OhQ4eyZMkSPvzw\nwxILUoiSlJKZwpYTW6hcoTKP13vcpKxNtTa0qtpKdkwUwkIWNX9FR0czatQok4QC4OLiQnh4ONHR\n0SUSnBAl7fz188zcNZMDFw/w/ZnvuZZ5zaTcRmMjCUWIO2BRUim4gnB+Go0GvV5fbAEJUZqqeVSj\ncoXKAOToczh0+ZCVIxLi/mZRUgkODubjjz822/MkKyuLTz75RLb5FfctG40NzzV6juoe1ZnUdhJd\nahXPckRCPKgsqtdPnDiRp59+mtDQULp27YqPjw9JSUn8/PPPpKens27dupKOU4h7ojPo+OHMD6Tn\npPNMw2dMyup41WF6h+ky10SIYmBRUgkMDGTDhg188MEH7Ny5k9TUVNzd3WnRogVjx46lXr16JR2n\nEHctTZvG/N/ncyXtChqNhub+zantWdvkGkkoQhQPi3sg69evz9KlS0syFiFKhKu9K36uflxJu4Ki\nKOw5v8csqQghikeRSWXr1q106NCBihUrsnXr1tveqHfv3sUamBDFRaPR0L9Rfy6kXqBnnZ50qtnJ\n2iEJUW4VmVQmT57Ml19+ScWKFZk8efItb6LRaCSpiDLhetZ19sXvo0dgD5MmLW8Xb/4X+j8ZHixE\nCSvy/7CdO3fi6+tr/F6Isu6Pf//gy2NfkpmTibeLN839m5uUS0IRouQVOaQ4ICAABwd18bwDBw7g\n4uJCQECA2eHg4MAPP/xQagELUZSz186SmZMJwMajG8nR51g5IiEePBbNU5k2bRr//mu+ZSrAiRMn\nWLx4cbEGJcTdeOqhp/B09sTX1ZcRzUZgb2tv7ZCEeOAU2R4wcuRI4wrEiqIwduxYY80lv+TkZKpX\nr15yEQpRiBvZN6jgUAEbTd7fRc72zrzc6mV8XHxMlqgXQpSeIpPK6NGj2bx5MwCbN2+mcePGeHl5\nmVxjY2ODu7s7ffv2LdkohfiPoigcuHSA9UfW81i9x+hWu5tJub+bv5UiE0LALZJKcHAwwcHqntt6\nvZ4xY8ZQrVq1UgtMiMJEX4pmVcwqAKJORNHIr5Fx7S4hhPVZ1Kcyd+5czp49y7x584zn/v77b4YN\nG8aff8rGRaL0hFQJoZqH+sdNRaeKZOmyrByRECI/i5LK9u3bGTVqFHFxccZzzs7OGAwGhg8fzp49\ne0osQCHys7Ox44WQF+hUsxNvdHqDmhVrWjskIUQ+FiWVFStWMHDgQFauXGk8V7duXT7//HOee+45\nWb5FlIiz186y86z5HCl/N38GNB6Ak52TFaISQtyKRUnlwoULdOvWrdCybt26mdRghLhXBsXAd6e+\nY8HvC9h0fBOnk09bOyQhhIUsSire3t4cO3as0LKTJ0/i4eFRrEGJB5sGDWdSzmBQDCiKwoajG1AU\nxdphCSEsYFFS6d27N8uWLWP9+vUkJSWhKArJycls2rSJiIgIWfdLFCuNRsPQ4KG42LtQ17suY1qM\nkaXphbhPWLQY0tixYzl79iyzZ8/mrbfeMp5XFIUePXrw8ssvl1iAovzL1mXjaOdocq6iU0Vea/ca\nlSpUMpngKIQo2yxKKvb29ixdupRTp07x119/kZqaipubG82aNaNBgwYlHaMox2KTYvns4Gc81+g5\nQqqYbktdxa2KlaISQtytO1q2tV69eoXu8pieno6rq2uxBSUeDAcuHuCTmE8AWPP3Gmp51qKiU0Ur\nRyWEuBcWJRWtVsuaNWs4cOAAOTk5xk5Tg8FAZmYmJ0+e5NChQxY9UK/Xs2TJEqKiokhPT6dDhw7M\nnDkTHx+fQq/fvn07H330EefPn8fX15d+/foxfPhwbG1tLXyLoqxq6NcQL2cvUjJT0KAhKSNJkooQ\n9zmLksrChQuJjIykXr16pKSk4OjoiJeXF6dOnSInJ4dx48ZZ/MCIiAiioqKYN28eFStWZPbs2bz0\n0kusX7/e7NpffvmFSZMmMX36dDp27Mjx48d54403yMnJYezYsZa/S1Emudi78ELIC3x/5nueD34e\nd0d3a4ckhLhHFvWA/vDDDwwbNoxvv/2WQYMG0ahRIzZt2sSPP/5IQEAABoPBoodptVoiIyOZMGEC\n7dq1o2HDhixatIiYmBhiYmLMrt+wYQM9evRg0KBBVK9enUcffZShQ4eyZcuWO3uXwupuZt/k6NWj\nZufretflpVYvSUIRopywKKkkJyfTsWNHQO1XOXLkCACVKlXixRdfZPv27RY9LDY2lvT0dFq2bGk8\nV7VqVQICAoiOjja7fvTo0Wa1IBsbG27cuGHR80TZcPTqUd765S1WRK8g4WaCtcMRQpQgi5KKm5sb\nOTnqLno1atQgISGBtLQ0AGrWrElCgmUfFJcvXwbUZJSfn5+fsSy/oKAg6tSpY/w5LS2N9evX06FD\nB4ueJ6zPoBiIOhHFjewb5OhzWHVwlUxkFKIcsyipNGvWjLVr15KVlUWNGjVwdnZmx44dABw+fJgK\nFSpY9LDMzExsbGywtzfdkc/BwYHs7OzbvnbMmDFkZ2czceJEi54nrM9GY8MLIS9gZ2OHu6M7fRv0\nlYmMQpRjFk9+HDRoEC+++CKRkZEMGDCAmTNnsm7dOo4fP07//v0tepiTkxMGgwGdToedXd6jtVot\nzs7ORb4uJSWFMWPGcObMGT799FMCAgIsep4ofYqimCWNAPcARjYfSa2KtXBzdLNSZEKI0mBRUnno\noYfYvn07p06dAmDixIlUqFCBmJgYRo8ezYsvvmjRw6pUUSezJSYmGr8HuHr1qlmTWK74+HiGDx9O\neno6a9eulcmWZVhKZgqfH/qcPvX7EOgVaFIWVCnISlEJIUqTRUnl7bff5oknnjD2ZWg0GkaNGnXH\nD2vQoAGurq7s37+fsLAwQE0aFy9epEWLFmbXJycnM2TIEGxtbVm/fr3sPFmGnUg8wYroFWTpskjK\nSOG7e+cAABtySURBVOKNTm/I0vRCPIAs6lPZvHlzsYy4cnBwYMCAAcyfP589e/Zw7NgxJkyYQMuW\nLQkODkar1ZKYmIhWqwVg9uzZXLt2jffeew8nJycSExNJTEwkKSnpnmMRxatyhcrGNbqSM5OJTYq1\nckRCCGuwqKbSpEkToqOjadeu3T0/cPz48eh0OiZPnoxOpzPOqAc4ePAgQ4YMITIykiZNmvDTTz9h\nMBjo16+fyT1sbW05fvz4Pcciio+nsycDGg/gm5Pf8ELIC9T2rG3tkIQQVqBRLBjfOW/ePNasWUP1\n6tV56KGHcHFxMb2JRmOyerG1xcfHExoays6dO6lataq1wyl3snRZJNxMoJZnLbOyHH0O9rb2hbxK\nCFHWFcdnp0U1lR9++AE/Pz+ysrI4ePCgWbkMEX1wxCbFEnk4kixdFrM6zzKbCS8JRYgHm0VJ5eef\nfy7pOMR9QGfQsebwGpIzkgFYc3iNbKAlhDBRZEf93r17SU9PL81YRBlnZ2PH4CaDAXUxyFZVW0lC\nEUKYKDKpvPDCC8TFxZmc27hxI9euXSvxoETZYFDMFwpt4NOAwU0GM7vLbJr7N7dCVEKIsqzIpFKw\n/16v1zNr1iwuXbpU4kEJ6zt69Sgzd83k0k3z/97tq7eXVYWFEIW6o82/ZSHAB8P/nf4/IvZFkJie\nyOeHPi+0xiKEEIW5o6QiHgzBlYOxs1HHcCRnJnM1/aqVIxJC3C/uaI968WCo4laFnnV7kpieSL+G\n/ajgYNkq1EIIccdJRUb7lB9avZb/O/1/BHoF0sivkUnZY3Ufk//WQog7dsuk8sorr+Dg4GBybuzY\nsWbnQJ0gKe4fF1IvsCJ6BckZyXi7eDOr8ywcbPP+u0pCEULcjSKTSt++fc3ONW3atESDEaXH29mb\nLF0WAMkZyfx+4Xe61Opi5aiEEPe7IpPK3LlzSzMOUcpcHVzp26AvUbFRPPnQk7Srdu+LhQohhHTU\nl3MGxcDvF35HQaFjjY4mZe2rt6eZfzNc7F2KeLUQQtwZSSrlWEpmCkv3LSXhZgKOdo4EVw42mbSo\n0WgkoQghipXMUynHKjpVRIPa4Z6ty+aHMzKYQghRsiSplCMFVzyw0djw1MNP4WjnSFiDMMIahFkp\nMiHEg0Kav8qBpIwktp3aBsDzwc+blDX0bcjc0Lm4OrhaIzQhxANGksp9LjkjmTd+fgODYkCj0dA9\nsDv+bv7Gco1GIwlFCFFqpPnrPuft4k1Dv4aA2vwVkxBj5YiEEA8yqancR85dP4dBMVDbs7bJ+d71\neqPVa+ldrzd1vetaKTohhJCkcl9IuJnAF0e+4FTyKWp71ua1dq+ZLKNSo2INJrSZYMUIhRBCJc1f\n9wEXexfOXjsLwNlrZ4m7FnebVwghhHVIUiljEm4mkJmTaXLOw8mDVlVbYaOxoVXVVrg5uFkpOiGE\nuDVp/iojTiSeYPvp7ZxKPsUzDZ8htHaoSXnver3pXa83ns6eVopQCCFuT5JKGZGSmcKp5FMA/HL+\nF7rW6mrSb3LfJBODAfR60OnUw2DIOwpuR63RqIeNjXrY2qqHnZ36VZbfF+K+I0mllF3Pus7p5NO0\nCGhhcr6ZfzM2HttIjj4Hfzd/MnWZpbcul6JAdjakpUF6OmRk5H3NzFSPjAzIyso7srPVQ6tVj5wc\n9auhGPezt7NTDweHvMPJCRwd1cPJST2cnfMOF5e8w9VVPZydJUEJUUokqZQSg2Lg/T/f52TySQDq\netelolNFY7mTnRPhTcOp5l6teGol2dlw40becfNm4UduItHr7/2ZxS23tpOVdW/30WjyEkyFCqaH\nm1ve4e6ufq1QQU1mQog7Jv/nlBBFUUyar2w0Nmg0GuP6XPsv7qdHYA+T1wRVCrr1TQ0GNRGkpqqJ\nIjW18O9v3FCTijVoNHnNV7mHjU1eM1fuNYqSd+Q2j+n1eU1nxZnkFEVNnmlpcOXK/7d37lFVVXkc\n//K4vOUNgoiWOFeRtzwUBAVd+UrRCCkLU8sxh2XYapxSAR1HnTLkkZmmMdlgjU04gNo4OpOFo6WM\nwDJFUUFLhQJ8IC953MeeP67ncM+9Fy7iBere32etvc4+e+9zzj4/8Xzv/u1X766xshIKja2tMCin\nadgJlSAMFRIVHVLXUoezP53F+brziBoRhaiRUYL80GGhuHznMsY4jYGbjVtXhnKrQpNQcKG5Wb1f\nQleYmQl/zSu7kZTdS5zbiXNBmZsrrhWJFEFXfSGMKcSFc6txgXO7Kbvi2toUxwcPhKG1VRH60tLh\n7tEbETI3VxcdVeHh4ubm5Ioj9BoSFR1ScacCh68cBsBgDTNEWY5RCMFDwQhpvAe/xhDYVkuBk0eB\npi/6r1Vhaqr4kNnZCT9qnHvH1lboBhKJdF+Hx8HIqEuorB6zb0kmU4gL5+rj3H4tLUI3oLKb8FHE\nu6MDuH1bEbTB/btw9ld2vym75Lg49QcRvzJIVLTBdWK3tkLa3IgrteW4XF+BB22NWGQd0fVxammB\nf1Md9ncWAxIJKtm36Pj0Msxhwt/K/GF4LKytFULBBVtb4TknJPQx6sLEpKvF0Bs4dxn3g0Dph4Gg\nj4qLP4qrTioFGhoUoTcYGwtbkFxcOXCDErgj16o0pmloxMAz4KIik8mQnZ2NgoICtLa2IioqCuvX\nr4ezs7PG8hcuXMCWLVtQUVGBoUOHIikpCfPnz+97BWpqFP+huVFNyqObuNDWJhwF9XBEU4eRBNtt\nTwMAjGGEhMZ6gWg4Aphp4QpPmQ3GSR0EeT1iatr10dMmGNSB3P8YGXW1HoYN67ksY4q/E1Wh6S4u\nkTxaXbh+tObmR38PCwt196WVVdeIOeWjclB1cZr08u+YIDAIovL++++joKAAW7duhb29PTZu3IjX\nXnsN+/fvVyt77949LFu2DHPmzMGWLVvw3XffISUlBc7OzoiMjHz0h+flAV991WORU2a1uGJ6H9dN\nmrC6JQAOrKttYc1E8JBZo8akFXIwVJo2wlfqKLj+mfYnFRFzc6GbQ5OfnQvUqvj1ojyyzN1de/mO\nDs0j8FSPXHickW9cn9Pjwg3rVu1H447KQSQSxrsLpqZdR+W4SNQ1f4n4VTKgotLZ2Ync3FykpqZi\n0qRJAIDMzExMmzYNZWVlGD9+vKB8Xl4ebGxskJKSAmNjY3h5eeHSpUv4+OOP+yYqVVUAgFYjCaqN\nW+Eit4AjsxAUOSuqx2XT+wCA66ZNCJa4KP7QH7oeJpoxNJgzjLV9EqPtRwO2jur+8CFDfnl9FMQv\nA+6j3E3LXA2ptGvAASc0XCu6pUU4p0h5gIIuxES5DlKp4t4DgfIIQk50lCfFqsZVg/JEWuVz5Um2\n3NHISJinKXAjF1WPmvKVJ/RqSu8pKI+OVBZW1XI9leHi2o5cvfqBARWVy5cvo7W1FWFhYXza8OHD\n4eHhgZKSEjVRKSkpQWhoKIyVfMNhYWHYuHGj2pDdXpGQgC8OvY3j7VcAUxMk2EVgmlNol1vA0hJP\n3j+Dy3fOAKamuDZqGoKDEgUup+k93J4gdI6paZf781GQy7tGxKm6epUDN5FVOa567K8Rh93BmMJN\n+KiuQqL3iETAnDnAzJk6v/WAikptbS0AYOjQoYJ0V1dXPk+1/Lhx49TKtrW1oaGhAY6OjmrX9IiX\nF5zmLQQufgEAqPb0BgKfFRQJuu8GuwZ/PGH/BDztPAFj6sMgfoUYG3cNCX8cuA88t3qC8ioKynHV\nlRWU4xJJ1/BwLnDnqkeZTLerMhCakUgUXQEzZui8xTKgX8y2tjYYGxtDpOIaMjMzQ4eGYbXt7e0w\nU5lYxp13dnb2qQ6edp4QmYgwbMgwOFupuyBG2o/ESPuRfbo3QegdRkZdfSQDhVze5XJTngyrnNab\noDqpVjnOTbrl4srlVder03SunK48iVd1Um93cUBYtrvAlVO9RvV67ly1THfp5uaKVko/uMAGVFQs\nLCwgl8shlUphquRS6uzshKWlpcbyquLBnWsq3xtGO47G9lnbYWxEwy0J4heJsfHACxmhMwb0y+r+\ncHTMbZVJYvX19WouMQBwc3PTWNbKygpDhvRtTxFjI2MSFIIgiH5iQFsqY8eOhbW1Nf73v/9h3rx5\nAIDq6mrU1NQgNDRUrXxwcDDy8/MFnfLFxcUYP368oPNeFdnDyWia+mkIgiAIzXDfTNljrL03oKJi\nZmaGF154Ae+++y4cHBzg5OSEjRs3IiwsDIGBgejs7ERjYyPs7OxgZmaG+Ph45OTkYMOGDVi8eDG+\n++47fPnll/joo496fA7XunnxxRcH4rUIgiD0itu3b2PkyL71LRsxptyj0/9IpVJs27YNBQUFkEql\n/Ix6R0dHFBcX46WXXkJubi4mTJgAADh37hw2b96MK1euYNiwYUhOTsbTTz/d4zPa29tRXl4OFxcX\nmNBsYIIgiF4hk8lw+/Zt+Pr6wsLCQvsFGhhwUSEIgiD0F+qxJgiCIHQGiQpBEAShM0hUCIIgCJ1B\nokIQBEHoDIMRFZlMhoyMDERGRiIoKAjJycm4c+fOYFerX7lz5w7eeustREZGIiQkBK+88gquXr3K\n5586dQrz5s2Dv78/5s6dixMnTgxibfufc+fOYdy4cSguLubTDMUGeXl5mDFjBvz9/REXF4fTp0/z\neYZggwcPHmDTpk38/4Vly5ah6uGq5YD+22D9+vVISUkRpGl757t372LVqlUICQlBeHg40tPTIZVK\ntT+MGQhZWVls0qRJ7NSpU6y8vJwtWLCAPf/884NdrX5DJpOx5557jiUkJLDvv/+eVVZWsuTkZBYe\nHs7u3bvHKisrma+vL9u5cyerqqpiWVlZzMfHh129enWwq94vtLa2sqeeeoqJxWJ25swZxhgzGBvk\n5+czHx8flpeXx3788Uf25z//mQUGBrJbt24ZjA3WrVvHZs6cyUpKSlhVVRVLSkpiU6ZMYe3t7Xpt\nA7lczrKzs5lYLGbr1q3j03vzzgsXLmQvvPACq6ioYEVFRWzixIksMzNT6zMNQlQ6OjpYUFAQ+8c/\n/sGn3bp1i4nFYlZaWjqINes/Ll68yMRiMauqquLTOjo6WEBAACsoKGBpaWksMTFRcE1iYiJLTU0d\n6KoOCNz7KouKIdhALpezmJgYlp2dzafJZDIWGxvLDh06ZBA2YIyxsLAwlpuby59XVlYysVjMysvL\n9dYGN2/eZImJiWzChAksOjpaICra3rmsrIyJxWJ28+ZNPj8/P58FBQWxjo6OHp9rEO4vbfu46CPu\n7u7YvXs3nnzyST6NW+qmsbERJSUlAnsAwIQJE/TSHidOnEBRURFSU1MF6YZgg+vXr6OmpgazZ8/m\n04yNjXHw4EHMnTvXIGwAAI6Ojjhy5Aju3r2Lzs5OHDhwAHZ2dvD09NRbG5SVlcHd3R2HDx/G8OHD\nBXna3rmkpAQeHh7w9PTk88PCwtDa2oqKiooen2sQovKo+7joAw4ODoiOjhaskbZv3z60t7cjMjIS\ntbW1BmGPe/fuISUlBZs3b4adykZXhmCDH3/8EQDQ1NSEl156CeHh4XjxxRdRVlYGwDBsAACbNm1C\nbW0tIiIiEBgYiC+++AJ79uyBra2t3tpg3rx5ePfdd+Hi4qKWp+2d6+rq4OrqqpYPAD///HOPzzUI\nUXnUfVz0kePHjyMzMxNLly6Fl5dXt3vV6Js9NmzYgKlTp2Ly5MlqeYZgg5aWFgDAmjVrsGDBAuTk\n5OA3v/kNFi9ejGvXrhmEDQDgxo0bcHZ2xp49e7B//35ERkYiOTkZtbW1BmMDZbS9c1tbG8zNzQX5\nIpEIRkZGWu1iENsaPuo+LvpGfn4+0tLSMHv2bPzhD38AAJibm0Oisl2rvtmjoKAAly5dwqFDhzTm\nG4INuB9SK1aswNy5cwEA48aNQ2lpKfbv328QNrh16xbS0tLwt7/9DYGBgQCAjIwMzJ49G5988olB\n2EAVbe+saS8riUQCxhistOwmahCioryPCxcHut/HRZ/YtWsXsrOzkZiYiNTUVL5fxd3dHfX19YKy\n+maP/Px81NXVITIyEgDAHi5z99vf/hbz5883CBtwLguxWMynGRkZYdSoUaiurjYIG5SXl0Mmk8HX\n15dPE4lE8Pb2xo0bNwzCBqpoe2c3Nze1IcZceW12MQj3l/I+Lhw97eOiL3z00UfIzs5GcnIy0tLS\neEEBFHvVnD17VlC+uLgYISEhA13NfmPbtm345z//icLCQhQWFiInJwcAsHnzZqxatcogbODj4wMr\nKytcuHCBT2OM4dq1a/D09DQIG7i5uQEArly5wqdxNnjiiScMwgaqaHvn4OBg3Lp1S9B/UlxcDGtr\na4wdO7bnm+to9NovnvT0dBYREcFOnDjBz1NRHVKnT1RUVDBvb2+2du1aVl9fLwitra3s8uXLzMfH\nh7333nusqqqKZWdnMz8/P8EQZH3j559/FgwpNhQbZGVlsdDQUHbs2DH2ww8/sC1btjA/Pz927do1\ng7CBVCplCQkJbM6cOezs2bOsqqqKpaWlscDAQFZdXW0QNkhMTBQMKdb2znK5nCUkJLDnnnuOlZeX\n8/NUtm/frvVZBiMqEomEvf322ywsLIyNHz+erVq1it29e3ewq9VvZGRkMLFYrDF88MEHjDHGvvnm\nGzZ79mzm6+vLYmNj2bfffjvIte5fVEWFMcOwgVwuZx9++CGbMmUK8/X1ZQsWLGBnz57l8w3BBnfv\n3mUpKSksKiqKBQcHs8WLF7NLly7x+fpuA1VRYUz7O9fX17OkpCQWEBDAIiIiWEZGBpPJZFqfRfup\nEARBEDrDIPpUCIIgiIGBRIUgCILQGSQqBEEQhM4gUSEIgiB0BokKQRAEoTNIVAiCIAidQaJC6AVr\n1qzBmDFjegyLFi0CACxatAhLliwZ1Prev38fU6dOxY0bN7otk5+fjzFjxgz4armLFy/GkSNHBvSZ\nhP5gEGt/EfpPUlISnn/+ef5848aNMDExEeyhYmNjA0CxcrHykjWDwaZNmzBz5kyMHDlyUOuhibVr\n1+Lll1/GhAkT4OTkNNjVIX5lkKgQesGIESMwYsQI/tzGxgYmJib8qrTKjB49eiCrpsb58+dx7Ngx\n/Pe//x3UenTH2LFjERAQgF27dqltbEYQ2iD3F2FwqLq/xowZg7///e9YvXo1goKCMHHiROzYsQMt\nLS1Yu3YtgoODMWnSJKSnp0N5AYqGhgakpqYiPDwc/v7+WLhwIUpLS7U+PycnBxEREXB0dOTT5HI5\ndu7ciejoaAQEBCApKQmNjY1q137++eeIi4tDYGAg/P398cwzz+DYsWMAFC41Pz8/vPfee4Jrmpub\n4e/vj88++wwA8OWXXyI2Nhb+/v4IDw/H6tWrUVdXJ7hm7ty5OHDgAO7du6fdoAShBIkKQQDYunUr\nHBwcsHPnTsTExOD9999HfHw8LC0tsWPHDjz11FPIycnBv//9bwBAR0cHlixZgqKiIrzxxhvYvn07\n7OzssGTJEpw/f77b57S2tuLrr7/G9OnTBenp6en44IMPEB8fjx07dsDe3h4ZGRmCMrm5ufjTn/6E\n6dOnY/fu3di2bRtMTU3x+9//HnV1dbC3t8fUqVNx+PBhwXVHjhwBYwxPP/00SktL8eabb2L69OnI\nycnBmjVrcObMGaxevVpwTXR0NGQyGb766qvHMSthgJD7iyCgWCI+JSUFgML9k5+fDycnJ6xfvx4A\nMHHiRBw+fBjnzp3DjBkzcPDgQVy5cgV5eXnw8/MDAEyePBnx8fHIysrC3r17NT6npKQEEokE/v7+\nfFpTUxP27duHl19+GStXrgQAREVFob6+HidPnuTLVVdXY9myZVixYgWf5uHhgbi4OJSVlWHWrFl4\n9tlncfToUZSWliI4OBgAUFhYiJiYGNjb26O0tBQWFhZYvnw5v/Ofvb09Lly4AMYY39dkZWUFLy8v\nFBcXIyEhQSc2JgwDEhWCAAQfeQcHB5iYmAjSjIyMYGdnh6amJgDA6dOnMXToUHh7e0MqlfLlYmJi\nsHv3bnR2dqpt1woohAEAhg8fzqedO3cOEokE06ZNE5SdNWuWQFTWrVsHQCFC169fx40bN1BcXAwA\n/C5+kZGRcHNzw6FDhxAcHIybN2+irKwMu3fvBgCEhoYiKysLc+bMwYwZMzBlyhRERkZiypQpanX1\n8PBATU1Nb8xHEDwkKgQBwNraWi2tp21T79+/j9raWvj4+GjMb2ho0LhDXnNzMwAItqrl+k6U+1gA\nwMXFRXB+8+ZNrF+/HqdPn4ZIJMKoUaP4DZO4vh5jY2PMnz8fn3/+OVJSUlBYWAgXFxdERUUBAIKC\ngrBnzx588skn2Lt3L/bs2QNnZ2esWLGCH3LNYWlpydeXIHoLiQpB9IEhQ4bAy8sLW7du1Zjv4ODQ\nY3pzczNsbW0FaXfu3BGMYLt//z4fl8vlWL58OczNzXHgwAF4e3vD1NQUVVVVOHjwoOAZcXFx+PDD\nD3H69Gn861//QmxsLExMTPj8qKgoREVFoa2tDWfOnEFubi42b96MoKAgwZa7TU1N3b4HQXQHddQT\nRB8IDQ3FTz/9BFdXV/j5+fHh+PHj2LdvH0Qikcbrhg0bBgCCCY1BQUGwsLDA0aNHBWW/+eYbPt7Q\n0IAffvgBCQkJ8PPzg6mp4vcgNyxZeVTayJEjERoaipycHFy/fh1xcXF8Xnp6OuLj48EYg6WlJWJi\nYvDWW2+p1Yk7d3d3f2TbEIYNtVQIog/ExcXh008/xdKlS/Hqq69i6NChKCoqwt69e7Fy5cpuJ1eG\nhITAwsICpaWlEIvFABSut6SkJGRnZ8PCwgJhYWEoKioSiIqTkxM8PDyQm5sLV1dX2NjY4OTJk8jN\nzQUAPHjwQK1+a9euhZ+fn2BeTkREBP7yl79gzZo1iI2NhUQiQU5ODhwcHBAWFsaXa25uRmVlJV55\n5RWd2YwwDKilQhB9wNraGp999hkCAgLwzjvvYPny5Th58iTS0tLw2muvdXudpaUlJk+erDbx8dVX\nX8W6detw5MgR/O53v8PVq1f5FgTHzp074erqijfffBOvv/46vv/+e+zatQujRo1Smx8THR0NAIJW\nCgBMmjQJmZmZqKysxMqVK/HGG2/AysoKubm5vDsOAE6dOgWRSMTfhyB6C20nTBADzPnz57Fw4UJ8\n/fXXGjvzdUFhYSE2bNiAU6dOYciQIY98/dKlSzF69Gh+mDVB9BZqqRDEAOPv749p06bh448/1vm9\n//Of/yAzMxNbtmzBggUL+iQoFy9exKVLl7B8+XKd14/Qf0hUCGIQ+OMf/4hjx471uEpxX6ipqcFf\n//pXBAYG4vXXX+/TPd555x2kpaWpDWkmiN5A7i+CIAhCZ1BLhSAIgtAZJCoEQRCEziBRIQiCIHQG\niQpBEAShM0hUCIIgCJ1BokIQBEHojP8DRPD4ChRIKg0AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frame = system.results\n", + "plot_results(frame.S, frame.I, frame.R)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise** Suppose the time between contacts is 4 days and the recovery time is 5 days. Simulate this scenario for 14 days and plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nyZMn4+npiaWlJf7+/vj7+xMYGMjYsWM5V3iv2P/RFln/In/48a5du9i3bx8LFy7k448/5ptvvrnt\nKKz8Pwxef/31YlexLvzeotfR6/VYmLm5RtHz8jv2i/5hcjflEUKUnbvaNufChQt88cUXrF27ls2b\nN/P333/f1c3q/W8zhcTERKPjCQkJJk1ioDaT+fn5YVko1DZt2hSAuNutRlcD2NrasmXLFr4rpgPI\n2dkZjUaDu7s71tbW3Co01fjSpUuG56mpqbz11ltotVqGDRvGihUr+OSTT/j77785e/Ysfn5+pKSk\nGP1bx8TE0KVLF9LT06lTpw6xsbE0bNjQkPbt28dHH31kFAxOnTpleP7PP/+QlpbGAw88AHDHzd/S\n0tKIj483vD5y5Agajcbwc5DPycnJ7PIIIcqOWX++6fV65s2bx9dff200BFSj0TB48GAWLlx4xy8H\nUJvLHB0dOXjwoGE0UmxsLHFxccXOzA8MDOSrr74iLy/P8JdodHQ0lpaWNGjQwKwPWF3Vrl2bsWPH\nsmzZMm7dukX//v2xs7MjOjqalStX8vjjj1O/fn3at2/PV199RceOHdHpdCxcuNDQDOTi4sKePXu4\ncuUKU6dOxd7enq1bt+Ls7Ezjxo1xdHSkVatWzJgxg5kzZ2JlZcX8+fPx8/PD29ubiRMnsmjRIurX\nr0/Xrl05fvw4ixYtYty4cUZlDQ0NJTQ0FGtra+bPn0/btm0NtQlHR0fDz0Bx/6cajYZXXnmFOXPm\nkJmZyfz58xk0aFCx55pbHiFEGVLM8MEHHyitW7dW1q1bp1y7dk3RarVKfHy8snbtWqVNmzbK2rVr\nzbmMoiiKsmTJEqVbt27K7t27lVOnTinDhg1TRo4cqSiKouTk5CgJCQlKTk6OoiiKkpiYqAQFBSmv\nvPKKcuHCBeWPP/5QevfurcycOfO297hy5YrSvHlz5cqVK2aXq6r6+uuvlaeeekoJCAhQWrdurQwc\nOFBZu3atkpubqyiKopw/f14ZMWKE0qZNG6VPnz7KN998o/Tt21fZtm2boiiKEhMTo4wfP14JDAxU\n/P39lREjRijHjx83XD8+Pl6ZMmWK0r59eyUoKEiZOnWqkpSUZMj/5JNPlH79+imtW7dW+vTpo6xZ\ns0bR6/WKoijKn3/+qTRv3lxZv369EhwcrHTo0EGZOnWqkpycbHj/vn37lG7duin+/v5KQkKCMnLk\n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\nISo5s4LK0qVLadKkCRERETg4OBiOZ2Zm8swzz7BixQo++OCDMiukEEKIqsGsPpVDhw7x/PPPGwUU\nAAcHB8aNG8ehQ4fKpHBCCCGqFrOCir29fYl5Go1GVpoVQggBmBlU2rdvz7p168gpstBidnY269ev\nL3YRQSGEEDWPWX0q06ZNY+jQoYSEhNCnTx88PDxISkri119/JSMjg88//7ysyymEEKIKMCuo+Pn5\nsWnTJt5//3127txJeno6zs7OdOrUicmTJ9/VyC+dTsfKlSuJjIwkIyOD4OBg5s2bZ9ae6RMmTCAz\nM5PPPvvM7PtVZ3369DFZTdjOzo769evz1FNP8cwzz1RMwSpIv379eOyxx3jhhRcquihC1FhmL33f\nokUL3nvvvfu+YXh4OJGRkYSFheHq6kpoaCgvvPACGzduvO37Nm3axG+//UZQUNB9l6E6GT9+PP/5\nz38Mr9PS0ti0aRMLFy7Ey8uLhx9+uAJLJ4Soacp1idjc3FwiIiKYOnUq3bt3p3Xr1ixfvpwjR45w\n5MiREt936dIlVqxYIX03xXBwcMDT09OQmjVrxuuvv46vry87duyo6OIJIWqYcg0qZ8+eJSMjw6i2\n4e3tTYMGDUoclqzT6ZgxYwbjxo2TpWLugrW1NZaWlgDEx8fz4osvEhAQQLdu3XjllVcM2xqAunHW\nJ598Qv/+/WnXrh2DBw9m9+7dhvzo6GjGjx9Pp06dCAoK4rXXXjPs/Dhz5kxGjRpldO8TJ07QokUL\nLl68CMAvv/zCY489Rtu2bXnooYf46KOP0Ov1gLqAXYsWLVizZg1du3Zl4MCB5Obm3rHMOTk5zJ8/\nn86dOxMUFMTatWvL5N9RCHF3yjWoXLt2DYA6deoYHffy8jLkFfXhhx8CMHbs2LIt3P9sP7edCdsn\nMGH7BLaf226Sv/n0ZkP+zzE/m+RvOLHBkL/30l6T/PVH1hvyD8YdLPXyZ2VlsX79emJiYnjsscfI\nzMxk1KhR2NrasmnTJj766CPy8vL4z3/+Q25uLgDr1q3jvffeY9KkSWzfvp2HHnqIyZMnc/78eWJj\nY3n66adxcXHh888/Z/Xq1Zw9e5Znn30WnU7HkCFDOHTokNEX/vbt2+nQoQONGjVi9+7dTJ8+ndGj\nR/P999/z6quvEhERwerVq43K/f3337NhwwaWLl2KVqu9Y5lDQ0PZuXMny5cv57PPPuPgwYNcvny5\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "newsystem = make_system(beta = 1/4, gamma = 1/5)\n", + "run_simulation(newsystem, update1)\n", + "frame1 = newsystem.results\n", + "plot_results(frame1.S, frame1.I, frame1.R)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Metrics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Given the results, we can compute metrics that quantify whatever we are interested in, like the total number of sick students, for example." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def calc_total_infected(system):\n", + " \"\"\"Fraction of population infected during the simulation.\n", + " \n", + " system: System object with results.\n", + " \n", + " returns: fraction of population\n", + " \"\"\"\n", + " frame = system.results\n", + " return frame.S[system.t0] - frame.S[system.t_end]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an example.|" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.333 0.25 0.467162931836\n" + ] + } + ], + "source": [ + "system.beta = 0.333\n", + "system.gamma = 0.25\n", + "run_simulation(system, update1)\n", + "print(system.beta, system.gamma, calc_total_infected(system))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write functions that take a `System` object as a parameter, extract the `results` object from it, and compute the other metrics mentioned in the book:\n", + "\n", + "1. The fraction of students who are sick at the peak of the outbreak.\n", + "\n", + "2. The day the outbreak peaks.\n", + "\n", + "3. The fraction of students who are sick at the end of the semester.\n", + "\n", + "Hint: If you have a `TimeSeries` called `I`, you can compute the largest value of the series like this:\n", + "\n", + " I.max()\n", + "\n", + "And the index of the largest value like this:\n", + "\n", + " I.idxmax()\n", + "\n", + "You can read about these functions in the `Series` [documentation](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html)." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.030935774348911121" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "def peak_percent(system):\n", + " #return max(system.results.I)\n", + " return system.results.I.max()\n", + "peak_percent(newsystem)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "39" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "def peak_day(system):\n", + " return system.results.I.idxmax()\n", + "peak_day(newsystem)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0046720377653628846" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "def final_percent_sick(system):\n", + " return system.results.I[system.t_end]\n", + "final_percent_sick(newsystem)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "scrolled": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What if?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use this model to evaluate \"what if\" scenarios. For example, this function models the effect of immunization by moving some fraction of the population from S to R before the simulation starts." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def add_immunization(system, fraction):\n", + " \"\"\"Immunize a fraction of the population.\n", + " \n", + " Moves the given fraction from S to R.\n", + " \n", + " system: System object\n", + " fraction: number from 0 to 1\n", + " \"\"\"\n", + " \n", + " system.init.S -= fraction\n", + " system.init.R += fraction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's start again with the system we used in the previous sections." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0.3333333333333333, 0.25)" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "system = make_system(beta, gamma)\n", + "system.beta, system.gamma" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And run the model without immunization." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.46832081102878098" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(system, update1)\n", + "calc_total_infected(system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now with 10% immunization." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.30650802853979753" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system2 = make_system(beta, gamma)\n", + "add_immunization(system2, 0.1)\n", + "run_simulation(system2, update1)\n", + "calc_total_infected(system2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10% immunization leads to a drop in infections of 16 percentage points.\n", + "\n", + "Here's what the time series looks like for S, with and without immunization." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(system.results.S, '-', label='No immunization')\n", + "plot(system2.results.S, 'g--', label='10% immunization')\n", + "\n", + "decorate(xlabel='Time (days)',\n", + " ylabel='Fraction susceptible')\n", + "\n", + "savefig('chap05-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can sweep through a range of values for the fraction of the population who are immunized." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.468320811029\n", + "0.1 0.30650802854\n", + "0.2 0.161365457006\n", + "0.3 0.0728155898425\n", + "0.4 0.035520216753\n", + "0.5 0.0196887157825\n", + "0.6 0.0116220579983\n", + "0.7 0.00683873780062\n", + "0.8 0.00369649625371\n", + "0.9 0.00148153267227\n", + "1.0 -0.000161212109412\n" + ] + } + ], + "source": [ + "immunize_array = linspace(0, 1, 11)\n", + "for fraction in immunize_array:\n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " run_simulation(system, update1)\n", + " print(fraction, calc_total_infected(system))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function does the same thing and stores the results in a `Sweep` object." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_immunity(immunize_array):\n", + " \"\"\"Sweeps a range of values for immunity.\n", + " \n", + " immunize_array: array of fraction immunized\n", + " \n", + " returns: Sweep object\n", + " \"\"\"\n", + " sweep = SweepSeries()\n", + " for fraction in immunize_array:\n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " run_simulation(system, update1)\n", + " sweep[fraction] = calc_total_infected(system)\n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "immunize_array = linspace(0, 1, 21)\n", + "infected_sweep = sweep_immunity(immunize_array)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's what the results look like." + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(infected_sweep)\n", + "\n", + "decorate(xlabel='Fraction immunized',\n", + " ylabel='Total fraction infected',\n", + " title='Fraction infected vs. immunization rate',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig03.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If 40% of the population is immunized, less than 4% of the population gets sick." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Logistic function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To model the effect of a hand-washing campaign, I'll use a [generalized logistic function](https://en.wikipedia.org/wiki/Generalised_logistic_function), which is a convenient function for modeling curves that have a generally sigmoid shape. The parameters of the GLF correspond to various features of the curve in a way that makes it easy to find a function that has the shape you want, based on data or background information about the scenario." + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def logistic(x, A=0, B=1, C=1, M=0, K=1, Q=1, nu=1):\n", + " \"\"\"Computes the generalize logistic function.\n", + " \n", + " A: controls the lower bound\n", + " B: controls the steepness of the transition \n", + " C: not all that useful, AFAIK\n", + " M: controls the location of the transition\n", + " K: controls the upper bound\n", + " Q: shift the transition left or right\n", + " nu: affects the symmetry of the transition\n", + " \n", + " returns: float or array\n", + " \"\"\"\n", + " exponent = -B * (x - M)\n", + " denom = C + Q * exp(exponent)\n", + " return A + (K-A) / denom ** (1/nu)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following array represents the range of possible spending." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0., 60., 120., 180., 240., 300., 360., 420.,\n", + " 480., 540., 600., 660., 720., 780., 840., 900.,\n", + " 960., 1020., 1080., 1140., 1200.])" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spending = linspace(0, 1200, 21)\n", + "spending" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`compute_factor` computes the reduction in `beta` for a given level of campaign spending.\n", + "\n", + "`M` is chosen so the transition happens around \\$500.\n", + "\n", + "`K` is the maximum reduction in `beta`, 20%.\n", + "\n", + "`B` is chosen by trial and error to yield a curve that seems feasible." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def compute_factor(spending):\n", + " \"\"\"Reduction factor as a function of spending.\n", + " \n", + " spending: dollars from 0 to 1200\n", + " \n", + " returns: fractional reduction in beta\n", + " \"\"\"\n", + " return logistic(spending, M=500, K=0.2, B=0.01)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "percent_reduction = compute_factor(spending) * 100\n", + "\n", + "plot(spending, percent_reduction)\n", + "\n", + "decorate(xlabel='Hand-washing campaign spending (USD)',\n", + " ylabel='Percent reduction in infection rate',\n", + " title='Effect of hand washing on infection rate',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig04.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Modify the parameters `M`, `K`, and `B`, and see what effect they have on the shape of the curve. Read about the [generalized logistic function on Wikipedia](https://en.wikipedia.org/wiki/Generalised_logistic_function). Modify the other parameters and see what effect they have." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Hand washing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can model the effect of a hand-washing campaign by modifying `beta`" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def add_hand_washing(system, spending):\n", + " \"\"\"Modifies system to model the effect of hand washing.\n", + " \n", + " system: System object\n", + " spending: campaign spending in USD\n", + " \"\"\"\n", + " factor = compute_factor(spending)\n", + " system.beta *= (1 - factor)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's start with the same values of `beta` and `gamma` we've been using." + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0.3333333333333333, 0.25)" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "beta, gamma" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can sweep different levels of campaign spending." + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.332887143272 0.466770231236\n", + "100.0 0.332134252669 0.464141650401\n", + "200.0 0.330171608455 0.457217006313\n", + "300.0 0.325386471865 0.439887202912\n", + "400.0 0.315403905242 0.401630646271\n", + "500.0 0.3 0.33703425949\n", + "600.0 0.284596094758 0.267317030568\n", + "700.0 0.274613528135 0.22184699046\n", + "800.0 0.269828391545 0.200791598416\n", + "900.0 0.267865747331 0.192392183393\n", + "1000.0 0.267112856728 0.189213207818\n", + "1100.0 0.26683150821 0.18803175228\n", + "1200.0 0.266727403413 0.187595503995\n" + ] + } + ], + "source": [ + "spending_array = linspace(0, 1200, 13)\n", + "\n", + "for spending in spending_array:\n", + " system = make_system(beta, gamma)\n", + " add_hand_washing(system, spending)\n", + " run_simulation(system, update1)\n", + " print(spending, system.beta, calc_total_infected(system))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a function that sweeps a range of spending and stores the results in a `Sweep` object." + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_hand_washing(spending_array):\n", + " \"\"\"Run simulations with a range of spending.\n", + " \n", + " spending_array: array of dollars from 0 to 1200\n", + " \n", + " returns: Sweep object\n", + " \"\"\"\n", + " sweep = SweepSeries()\n", + " for spending in spending_array:\n", + " system = make_system(beta, gamma)\n", + " add_hand_washing(system, spending)\n", + " run_simulation(system, update1)\n", + " sweep[spending] = calc_total_infected(system)\n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "spending_array = linspace(0, 1200, 20)\n", + "infected_sweep = sweep_hand_washing(spending_array)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's what it looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig05.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ4AAAEjCAYAAAACKGekAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlclNX+wPHPDPu+KYuAigsgIoKIK+aebYqZS6ZipeVy\nM5dSy6vevHorTcu1sizNTLuZ6y/1Zmri1a7irrivCCqLICgIDDPz/P4gRkdAh2QR/L5fL14w59m+\nM8wz3znPOc85KkVRFIQQQogKoq7sAIQQQjxZJPEIIYSoUJJ4hBBCVChJPEIIISqUJB4hhBAVShKP\nEEKICiWJ5x7vvfceAQEBD/wZOXKkYX1FUfjkk09o2bIloaGh/PDDD8WWlbW0tDTu3LlTZvtbtmwZ\nkZGRhISEMHv27GLXGTRoEJ06dSqzYz6qxy2e4hS+nx5mwYIFBAQEkJiYWAFRVbyEhIQK3TYxMZGA\ngAAWLFjwwPUCAgJ47733Sr1/jUbD+++/T7NmzWjWrBk7duwo9T4e5v7nXRXe76VhXtkBPI7ef/99\nXFxcil3m5eVl+Hvnzp0sWbKEDh060KVLF8LDw4stK0sxMTG8++67rFu3Dltb20fe35kzZ/joo48I\nDQ1l9OjRBAYGlkGUojS6du1K7dq1cXV1rexQytyQIUOoWbMmH3/8cam3nTp1KpcuXeL7778vh8hg\n1qxZ1K5du9Tb/fTTT6xdu5aoqCgiIiIIDg4u07jWrFnDtGnTOHbsmKFs+PDh5OTklOlxKpMknmJ0\n6dIFHx+fh6535swZAMaNG2f4Zrt169YiZWXp2LFj3Lp1q8z2d/bsWQCGDRtWrb5RVSWBgYHVNuHv\n3r2bF1988S9v6+3tXcYR3RUVFfWXtis876dOnYq9vX1ZhgTA/v37ycvLMypr27ZtmR+nMsmltkeQ\nn58PgJ2d3QPLHmdVLV4hKlvhOVMeSedJIYnnL+rUqRMLFy4EoHPnznTq1KnYskKHDx/mtddeIyws\njLCwMF5//XWjqnSho0eP8sYbb9C8eXNatmzJm2++afiG9d577xntf9CgQQ+M8cyZM4wcOZLmzZsT\nEhJC37592bZtm2H5oEGDeP/99wGIjo42qYa2e/duevXqRZMmTejQoQOff/45er3eaJ0tW7YwcOBA\nwsPDCQ4OplOnTsyaNQuNRmN07CFDhrBr1y7D/tq3b8+CBQuK7O+PP/7g5ZdfJjQ0lC5durB69eqH\nxvm3v/2NFi1aGO3r999/JyAggBkzZhitO3LkSJ577rlSxa/RaPjXv/5F586dCQ4Opn379kybNo3M\nzMwisRw/fpxBgwYREhJC27Zt+fDDD42+0d7fxrNgwQKaNGnC5cuXGTZsGGFhYURERDBx4kRu3rxp\ntO/k5GTGjx9Pq1atCA8PZ/z48Wzbto2AgAD27dv3wNcoJyeHOXPm0KlTJ8PznD17ttElnbVr1xIQ\nEMDp06d55513iIiIICwsjJEjRz6wTaqwnQVg3bp1RvHodDqWLFlCt27dCA4OJjIykn/84x+kp6cb\ntg8ICODq1avExsYSEBDA2rVrAcjKymLOnDk888wzNGnShLCwMPr27cv27dsf+FyLc38bT0BAAF99\n9RVLly6lS5cuBAcH0717d7Zs2WK0zrp16wx/33sO/v7777z88ss0bdqUiIgIRo0axaVLl4ocNyYm\nhoEDBxIWFkbbtm0ZO3as4bUcNGiQ0f4L4yuujedh53fhdqacZ6V5P5cFudRWjFu3bhmdBPdycnLC\nzMyMSZMmsX79en777Tfef/99w6W54sr27NnDsGHDCAwMZPTo0Wg0GtauXcuAAQNYunQpzZs3B+DA\ngQO8+uqruLu7M3ToUKytrVm+fDnR0dGsWbOGfv36kZWVZdh/w4YNS3wOx44dIzo6Gnt7e1577TXs\n7OzYsGEDf/vb35g6dSoDBgxg+PDh+Pn58e9//5vhw4dTr169B74uqampjBo1iv79+9OnTx/+7//+\nj3nz5mFra8urr74KwOrVq5k8eTKdOnXi3XffJT8/n99++41vvvkGgAkTJhj2d/bsWcaMGUO/fv3o\n168fv/zyCwsXLsTV1ZUBAwYABUnnjTfeoG7duowZM4b09HT+9a9/oVKpSmyHA3jqqafYtm0bp06d\nonHjxgCGD74DBw4Y1svPz2fv3r3069evVPH/85//5JdffiE6OhpfX1/OnTvHDz/8QHx8PN9++61R\nLIMHD6ZHjx48//zz7Ny5k++++w5FUfj73/9eYvx6vZ7o6GiaN2/OxIkTOX78OD///DO5ubnMmzcP\nKPgQHjhwIKmpqQwePBgXFxdWr17Nrl27Hvh/hIIPmtdee40jR47Qq1cvgoODOXbsGF9//TUHDx5k\n+fLlWFhYGNYfMWIE9evXZ+zYsSQkJPDdd9+RkpLCzz//XOz+XV1dmTVrFhMmTKB58+b07duX+vXr\nAzB27Fh+/fVXnn76aaKjo7l06RKrVq1i7969rF69GkdHR2bNmsVHH32Ei4sLw4cPp1mzZiiKwrBh\nwzh58iQDBw6kdu3aJCUl8eOPP/LWW2+xfv36R768vWrVKvR6PQMGDMDa2prvvvuOsWPHUr9+ffz9\n/Zk1axY//fQTBw4cYNasWdSoUQMoSNCTJk2idevWjB8/nszMTFatWkXfvn356aef8PPzA2DTpk28\n8847NGzYkFGjRpGfn8+3337L8ePHWbt2LcOHD0ev1xv2X1IblCnndyFTzrPSvJ/LhCIMJk6cqPj7\n+z/w5+TJk4b158+fr/j7+ysJCQkllul0OqVz587Kyy+/rGi1WsN62dnZSteuXZWoqChDWe/evZW2\nbdsq6enphrKLFy8qgYGBysyZM0s8ZnH69OmjhIaGKtevXzeU5ebmKi+++KISEhKipKWlKYqiKGvW\nrFH8/f2VvXv3PnB/AwcOVPz9/ZWtW7caym7fvq00a9ZMeeWVVwxlzzzzjNKvXz9Fr9cbyvLz85Wn\nnnpKeeGFF4rsb/v27UbxRUREKP369TOUvfjii0r79u2V27dvG8r+97//Kf7+/krHjh1LjPfatWuK\nv7+/smTJEkNZz549lXbt2imBgYHKrVu3FEVRlNjYWKPnb2r8ISEhyrRp04yO+dlnnym9evVSsrKy\nFEW5+35aunSpYR2dTqd07dpVad++vaHs/v9p4eOPPvrIaP9DhgxRgoKClDt37iiKoigLFy5U/P39\nlT179hjWuX37ttKhQ4eH/k9XrlxZJDZFUZSvv/5a8ff3V1asWKEoyt33x1tvvWW03tSpUxV/f3/l\n0qVLJR5DURTF399fmThxouFxTEyM4u/vr8yYMcNovc2bNyv+/v6G97miKErHjh2VgQMHGh4fOXJE\n8ff3V1atWmW07a5duxR/f3/l22+/VRRFURISEhR/f39l/vz5pYrN399fCQ0NVVJSUooc89NPPzWU\nFf5fCxWeB2PHjjXaf0pKihIREaGMHDlSUZSC/33btm2V7t27Kzk5OYb19uzZY/Sa379/RSk4X+59\nv5t6fpt6npnyfi5LcqmtGJ988glLly4t9qe0vWBOnjxJQkICXbp0ITMzk/T0dNLT08nNzaVjx46c\nOnWK5ORk0tLSOHbsGN27dzf6Ju/n58eaNWt44403TD7mjRs3OHr0KFFRUXh6ehrKraysGDJkCLm5\nufzxxx+leh4ANjY2RtV9e3t76tWrx40bNwxlGzdu5KuvvkKlUhnK0tLScHR0LNIF3MbGhg4dOhjF\n5+fnZ9hfWloaJ06c4Pnnnze6nt6qVauHfrP18vKiYcOG7N27F4DMzExOnz7N4MGD0ev1HDp0CID/\n/ve/ODg4GHofmhq/p6cnmzdvZu3atYbOHmPGjGHNmjVF2suef/55w99qtZqgoCCj16wkzz77rNHj\nRo0aodVqycjIAGDbtm34+/vTpk0bwzr29vb079//ofvesWMH9vb2Rt+MAcO36Pu7CBcXC2DS87j/\nuFDQmeX+/fv5+T3wklnTpk3Zv38/vXr1MpTpdDrDJaPs7OxSxVKc8PBwatasaXhc+DxTU1NL3GbP\nnj1kZWXRpUsXw/mdnp6OmZkZrVq1Yvfu3Wi1WuLi4khNTaVv375YW1sbtm/Tpg2rV682ubNDac/v\nh51nULr3c1mQS23FaNasmUm92kxx5coVoKDr5qxZs4pd59q1a5iZmQFQp06dIsuDgoJKdcyrV68C\nGKr39yq83HHt2rVS7RPA2dnZEGcha2tr0tLSDI8tLCzYv38/v/zyCxcvXuTKlSuG5ff3UHJ2dkat\nNv7uY2lpafggKXwexSX7evXqFdtGdq927drx448/otVq2b9/PyqVir59+7J48WL2799P+/bt2b17\nN23atMHc3LxU8X/wwQeMGTOG999/nylTphAaGkrXrl156aWXcHBwMIrDzc2tyGtW2ED9IPd3r7a0\ntAQKPmwBLl++TGRkZLGvzcMkJibi6+trdDmt8Bi+vr6G177Q/Zc174/FVImJiTg6OhouUd2rfv36\nD71MaG5uzo8//khsbCzx8fFcuXKF3NxcoOC+ukdV0mt+f7vjvQrP8bFjx5a4Tnp6uuE1Le4cDwkJ\nMTnG0p7fDzvPoHTv57IgiaecFf5zR48eTWhoaLHr1KtXz9AIee837b/qQSdgYTz3f+CY4v43b3Gm\nT5/OihUrCAoKIjQ0lKioKMLCwpg+fTrXr18v1f4KX4vCD5Z7PeiDoFD79u359ttvOXbsGHv37iUo\nKMhQuzlw4ADp6emG9oLSxt+6dWt+//13w8+ePXv46KOPWLZsGWvXrjX6ADPldXvQ8y+JVqs1fDDe\ny8rK6qH7fth75P73x199Do963Hulp6fTp08fUlJSaNu2LZ06dSIwMBBvb2/69OlTJvH9ledZ+F6c\nPn16iV9YnZycDOs96jle2vPblOdUmvdzWZDEU84KvyXb2toaXRKBggbCzMxMrK2tDTemFn57utcn\nn3yCk5MTb775ZqmOefHixSLLChPcvVX0snL16lVWrFhBVFRUkdpdaS/JQMHzUKlUxMfHF1lmyl3+\n4eHh2NnZsXfvXg4cOEDr1q0BaNGiBXPmzDFc1nnqqadKFb9Go+HUqVN4enry/PPP8/zzz6PX61m6\ndCmzZs1i06ZND+1xWBZ8fX2L7TVV3Ot1P29vb44cOUJ+fr7Rh5RGoyExMdHQ4aWseXt7s3v3bm7c\nuFGk1nPp0iWjG7Tvt3LlShITE1m2bJnhfwkYLptWlsLzzdXVtcg5vm/fPvR6PZaWlg88xwtHQjAl\ngZb1+V0Z72dp4ylnwcHB1KxZk++//97oGnRWVpahamtmZoaHhweBgYFs2rSJrKwsw3oJCQksX77c\n8MFX+O3lQd96atasSXBwMBs3biQpKclQrtFoWLp0KZaWluVyQ1ph18sGDRoYlcfExHD58mW0Wm2p\n9ufq6kpERAQbN240+uA/fPgwJ06ceOj2FhYWtG7dmm3btnHmzBlatGgBFCSe/Px8Fi9eTHBwsOED\n0NT4b968Sb9+/Vi8eLFhHbVaTZMmTQx/V4SuXbty8uRJjhw5YijTaDQl9jS7V6dOncjKyioypNPK\nlSvJzs42ahN4FGq12qh2WthGeO9rBwXtVZcuXTI67v3bFrZt3fv/URSFFStWAJT6/VVW2rRpg5WV\nFUuWLDG6hJqcnMzIkSOZPXs2KpWK4OBgXF1dWbt2rVHX/IMHD7J27VpDG2Lh+6ekWn1Zn9+V8X6W\nGk8xtm3b9sCuuqW549nCwoLJkyczduxYevXqRe/evbGysmL16tVcu3aN2bNnG9oX3n//fYYOHcpL\nL71Enz59UKvVrFixAkdHR0PngsIq75IlS3jqqafo3LlzscedPHkygwcPpnfv3vTv3x87Ozs2btzI\niRMnmDx5Mo6OjiY/B1M1aNCAWrVq8eWXX5KXl4enpyfHjh1j3bp1WFlZ/aXG34kTJzJgwAD69u3L\ngAEDyMnJYdmyZQ/8/9zrqaeeYurUqajVakMHgkaNGuHg4EBCQgI9e/YsdfweHh50796dlStXkpOT\nQ1hYGBkZGaxYsYIaNWoUaYgvL6+//jobNmzgtddeIzo6GldXVzZs2GD4JvygSzp9+vRh3bp1fPzx\nx5w9e5bg4GDi4uJYu3YtoaGhZXbpytXVldjYWH766SciIyNp3749nTt3Zvny5SQnJ9OyZUsuX77M\nqlWr8PX1Nep04OrqyunTp1m5ciUtWrTgqaee4vvvv2fYsGH07t2b/Px8tmzZQlxcHGq1ukw6F/zV\n5zhu3Dg++ugj+vXrR48ePdBqtaxcuZK8vDwmTpwIFLSrvPfee0ycOJH+/fvTo0cPsrOzWb58OfXr\n1ze85oXn+Pz582nZsqVR7a5QWZ7flfF+lsRTjI8++uiBy0s71MYzzzyDk5MTX3zxBZ9//jlqtZqG\nDRvyxRdf0LFjR8N6rVq14rvvvmP+/PksWrQIKysrIiIiGD9+vKGnzfPPP8/WrVtZu3YtsbGxJSae\nsLAwVq1axfz58/n222/R6/UEBgayaNEiunTpUqr4TWVpaclXX33Fxx9/zPLly1EUhdq1azNp0iS0\nWi3/+te/iIuLK9XYVsHBwXz//ffMmTOHhQsX4ujoyFtvvUVcXJxJl1gKL6MFBAQYTsbCJLRz507D\n8tLGP336dHx9fdm0aRObNm3CxsaG1q1bM3bs2Aobc83JyYkVK1bw8ccf8/3336NSqXj66ad54YUX\nmDlzZrHtP/c+12XLlrFo0SK2bNnCxo0b8fT0ZNiwYYwYMeIvtQEW591332XOnDlMnz6d6dOn07Nn\nT+bNm8fXX3/N+vXr2bFjB25ubvTr149Ro0YZfWCOGjWKf/zjH3z44Yf87W9/Y8SIEcyYMYNvv/2W\njz/+GCcnJxo3bsy///1vpkyZ8tAbZsvTq6++ioeHB0uXLuWzzz7D2tqaxo0b88knnxiN1xgVFYWD\ngwNffvklc+bMwdHRkY4dO/LOO+8Yxl7s378/e/fuZcmSJRw/frzYxFPW53dFv59VSll0BRFCVLj0\n9HTDDc33+vbbb5k5cybbtm3D19e3kqITomTSxiNEFTVr1ixat25t1OtPp9Pxn//8B1dX13IdYFOI\nRyGX2oSooqKioli/fj3R0dH06NEDlUrFr7/+ytGjR5kxY0aFdXIQorTkUpsQVdiePXv48ssvOXPm\nDPn5+QQEBPD666/z9NNPV3ZoQpToiUw8ubm5xMXFUbNmzSLXx4UQQhRPp9ORmppKcHCw0bA/pfVE\nXmqLi4srMkaVEEII0/zwww+PdJPxE5l4Crsm//DDD+VyB78QQlRHSUlJDBgwwGgg1b/iiUw8hZfX\nPD09y2wwUCGEeFI8ahPFE5l4SnLzdi6/7btCZnYeVhZmWFmYYfnnj5WF+p6/7/62sixcR20oNzeT\n3kRCCFESSTz3OBN/k5SbBeMl5WlKN9z7vczUKmyszLG3tcTB1gI7GwvsbSywt7U0/La1MketfvSR\nqIUQoqqRxHOP+t7OnL1yk1vZmoev/AA6vUJWTj5ZOfkkpRW/jlqlwtb6wcnJztq8TKZJEEKIx4kk\nnnvUdLFh4DONyNVo0eTr0eTryMvXocnXocnXk5ev/fN3YZmOvPvWy9Po0JvQQ12vPDw5WVqYUdPZ\nBndXW9xdbHB3scXRzlKSkRCiSpPEcx+1WoWttQW2f7GLuqIoaHV67uRqCxLLHc2fv/ONHufkPXwI\nd02+jqupWVxNvTtNgpWlGe4utn/+2ODhaoudjYUkIyFElSGJp4ypVCoszM1wsjfDyb7kmSC1Oj3Z\nOfnFJ6ccDbez88nVFE1OeRodCcm3SUi+bSizsTLH3cUWD1dbav6ZjGyty2Z0YSGEKGuSeCqJuZka\nJ3urEpOToihk5+STnH6HlJs5pN68Q/LNO8V2esjJ0xKfdIv4pFuGMnsbC2q62FLbw4EGvs7YWMm/\nWgjxeJBPo8eUSqUq6Ghga0l9H2egIBndytaQcrMgGaWk3yE1IwdNftFkVFBzyuTStUz+e/Qqdb0c\nCajtQl0vR8yku7cQohJJ4qlCVCqVoZbU0LdgBk5FUcjIyiMl3TgZaXV3p83V6xUuXs3k4tVMrC3N\naejrTEAdFzxcbaVtSAhR4So88eh0OubOncu6devIzs6mXbt2TJ061TDv/YMMGzaMO3fu8P333xvK\nYmJiePPNN4usGxMT80QMh6NSqXBxsMbFwZqAOgVler3Czdu5XEvN5syVmySl3Z0SOFej5fiFGxy/\ncANnBysC67jiX9sFR7uSZ6sUQoiyVOGJZ8GCBaxbt46ZM2fi7OzMtGnTGDVqFKtWrXrgdj/++CM7\nd+6kRYsWRuVnzpwhKCiIr776yqjczc2tzGOvKtRqFW5ONrg52dCkQQ1u3s7lTPzNIvcoZdzOY2/c\ndfbGXce7pj2BdVyp7+OEpYWM2C2EKD8Vmng0Gg3Lly9n8uTJtG3bFoBPP/2Uzp07c+jQIZo1a1bs\ndvHx8Xz22WeEhYUVWXbu3Dn8/f0fedC66szFwZpWwV60bOzJtRvZnIlP53xiplHbUGG37ZjDaup5\nOxFQxwVfdwcZXUEIUeYqNPGcPn2a7Oxso1qLj48P3t7eHDhwoNjEo9PpmDhxIkOHDuXy5ctcuXLF\naPm5c+d47rnnyj326kClUuFd0x7vmva0C9Vz6Vomp+PTSUjOonBaJq1Oz9krBbUjO2sL/Ou40NjP\nDWeHkruGCyFEaVRo96akpCQAPDw8jMrd3d0Ny+63ePFiAIYMGVJkmU6n4+LFi8TFxdGjRw8iIyMZ\nMWIEFy9eLOPIqx8LczX+tV3o0a4+rz4fRNuQWrg52Ritk52bz+EzKazaeprYk0no7umwIIQQf1WF\n1nhycnJQq9VYWBjf3GhpaUleXl6R9ePi4li6dCk///xzsfPHX7lyhby8PDQaDTNmzECj0fDFF18w\nYMAAfvnllye6nac07GwsCAtwJyzAnRsZOZyOT+fslQzu5OYDBWPPxZ5I4kJCBh2b++LpZlfJEQsh\nqrIKTTzW1tbo9Xq0Wi3m5ncPrdFosLEx/radl5fHhAkTGDNmDHXq1Cl2f35+fuzbtw9HR0dDYlq4\ncCEdOnRgw4YNvP766+X3ZKqpGs42RDp706ZJLRKSbxN7Monk9IIRu9Nu5bLm9/ME13OjdRMv6YQg\nhPhLKjTxeHl5AZCammr4GyAlJaXI5bejR49y4cIFZs+ezezZs4GCBKXX6wkLC2PTpk3UqlULZ2dn\no+1sbGzw9fXl+vXr5fxsqje1WkUdL0d8PRw4fuEGe+Ouk6/VoygKxy/c4NK1TNo388GvllNlhyqE\nqGIqtI0nMDAQOzs7YmNjDWWJiYlcvXqViIgIo3VDQkLYunUr69evN/x06dKF4OBg1q9fj7u7O9u2\nbSMsLIz09HTDdllZWVy+fJmGDRtW2POqztRqFU0b1qT/04HU8XQ0lGfl5LNpzyV+3XvZcElOCCFM\nUaE1HktLS1555RVmzZqFi4sLbm5uTJs2jRYtWhAaGopGoyEzMxMnJyesra2LXGKzt7c3Ko+IiMDe\n3p7x48czfvx4dDodn376KS4uLkRFRVXkU6v2HO0seSHSj3MJGfz3yFXD6NrnEjK4knybtiG1aFTX\nVUZCEEI8VIUP2jVmzBi6d+/O+PHjiY6OplatWsybNw+Aw4cPExkZyeHDh03al5OTE8uWLcPCwoLo\n6GgGDRqEra0t3333HVZW0v23rKlUKvxruzCgWyCN6roayvM0OnYcSGDDrgtk3C7aSUQIIe6lUhQT\nZi2rZhITE+ncuTPbt2/Hx8enssOpshKSb/P7wQSj0RDMzdREBHkQ6u+Omdx8KkS1UlafnTJMsfjL\nfD0c6P90IGEB7qj/vMSm1en53/HrrN5+1tAbTggh7iWJRzwSC3M1bUNq0aezPzVd7naJv5GRw887\nzrH76FXytUWnbRBCPLkk8YgyUdPFhj6d/GkbUgvzP+f7URSFI2dTWbX1jNGMqUKIJ5skHlFm1GoV\nYQHu9H86AF8PB0P5rWwN//ffi1y+fusBWwshnhSSeESZc7K3oke7enRpURtry4Ie+3pFYcsfl6Tm\nI4SQxCPKh0qlIrCOKy939TdMMqfTK2zec4lrN7IqOTohRGWSxCPKlb2tJT3bN8DepmBg2Hydnl92\nX5Ieb0I8wSTxiHLnaGdJVPv62FoXJB9Nvo6N/73AjYycSo5MCFEZShwy54MPPijVjkq7vniyuDhY\nE/VUPdbtvECuRkueRseGXRfo1aEBLo7WlR2eEKIClZh4fv/9d6PHaWlpaLVa3N3dqVmzJhkZGVy7\ndg0rKysaNGhQ7oGKqs/NyYYeT9VjQ8wF8vJ15ORp2bDrAi92aICTvQxxJMSTosTEExMTY/h78+bN\nfPzxx8ydO9doeurTp0/z1ltv0bNnz/KNUlQb7i62dG9Xjw27LpCv1ZOVk2+o+djbWlZ2eEKICmBS\nG8+cOXMYN26cUdKBgmkOxowZw1dffVUuwYnqydPNjhci6xluNL2VrWF9zAWyc2R6BSGeBCYlnvT0\n9CITrhWytrYmOzu7TIMS1Z93TXuebVMX9Z8DiWZk5bFh1wXDdAtCiOrLpMTTtGlTvvzyS7KyjO+/\nSE9PZ+HChUUmcRPCFHU8HXmmVV3DAKPpt3LZuKug84EQovoyaSK4iRMnMnDgQDp06EDz5s1xdXUl\nLS2N2NhY7OzsWLBgQXnHKaqpet5OdGlRm99ir6AoCqkZOfyy+xI92tXD0sKsssMTQpQDk2o8jRo1\n4pdffqFXr16kpqYSGxtLeno6gwYNYuPGjfj6+pZ3nKIa86/tQsfwu3N7JKVls2nPJfK1+kqMSghR\nXkye+trLy4tJkyaVZyziCRbk54ZOpxBzOBGAq6lZbPnfJZ5v44eZmdznLER1YvIZrSgKW7ZsYcqU\nKQwfPpz4+Hj+7//+j4sXL5ZnfOIJ0qRBDdqE1DI8vpJ0m1/3xaPTP3GT5ApRrZmUeLKyshgwYABj\nx45l9+7dxMTEkJWVxfr16+nbty+nT58u7zjFE6JZgDstgjwNjy9ezWRb7BX0knyEqDZMSjyzZs3i\nypUrrF2t9V0eAAAgAElEQVS7lt9++w1FKfgQmDt3LnXr1mXu3LnlGqR4skQEeRAW4G54fC7hJr8f\nTDC874QQVZtJiee3335j3LhxBAUFofqz6yuAg4MDw4cP5/Dhw+UWoHjyqFQq2jTxokn9GoayU5fT\n2X30WiVGJYQoKyYlnjt37uDm5lbsMisrK/Ly8so0KCFUKhVPhXnTqK6roezouVTik2QWUyGqOpMS\nT+PGjfnpp5+KXbZlyxaCgoLKNCghoCD5dAz3xa+Wk6Fs58FENPm6SoxKCPGoTEo8o0ePJiYmht69\ne/PFF1+gUqnYunUro0ePZsOGDYwcObK84xRPKLVaRcdwH8MU2rfvaPjf8euVHJUQ4lGYlHhatmzJ\nkiVLUKlULFq0CEVRWLx4MZcvX2bRokVERkaWd5ziCWZrbcFTYd6Gx8cv3OBaqkyfLURVZfINpK1a\ntWL16tVkZ2eTmZmJg4MDDg4O5RmbEAYNfZ05e+Uml68XtPHsOJDAy08HGEa4FkJUHSadtd26dTPc\nq2NnZ0etWrUMSefYsWO0adPG5APqdDrmzJlDZGQkYWFhvP3229y4ccOkbYcNG8agQYOMynJycpgy\nZQotW7akefPmTJ48WUbLroZUKhUdmvkYxm/LyMoj9kRSJUclhPgrSqzxbN68GZ2uoBE3Pj6eHTt2\ncO7cuSLr/fHHH+Tm5pp8wAULFrBu3TpmzpyJs7Mz06ZNY9SoUaxateqB2/3444/s3LmTFi1aGJVP\nnTqVEydOsHjxYrRaLZMmTWLq1KnMmTPH5JhE1WBva0mbJl7sPFQwrM6Rs6k08HHG3dW2kiMTQpRG\niYnnyJEjLF++HCj4tjl//vwSd/Lqq6+adDCNRsPy5cuZPHkybdu2BeDTTz+lc+fOHDp0qMhEc4Xi\n4+P57LPPCAsLMypPSkril19+YdmyZYSGhgIwY8YMoqOjmTBhAh4eHibFJaqOxvXcOJeQwdXULPSK\nwo6DCfTp7I+ZWvXwjYUQj4USE8+7777L4MGDURSFLl26sHDhQho1amS0jpmZGfb29tjb25t0sNOn\nT5OdnW1Ua/Hx8cHb25sDBw4Um3h0Oh0TJ05k6NChXL58mStXrhiWHTp0CLVabbRds2bNMDMz4+DB\ngzz33HMmxSWqjsIu1j/+dgatTs+NjBwOn0mheSP5kiFEVVFiG4+lpSXe3t74+PiwdetW2rdvj0ql\nwtvbG29vb2xtbUlOTjY56UBBDQUoUhNxd3c3LLvf4sWLARgyZEiRZcnJybi6umJhYWEoMzc3x9XV\nlevXpcttdeXsYEXLxnfHc9t/Mon0W6Zf7hVCVC6TOhfY29sTHR3Na6+9Zig7duwY/fr1Y8iQIUVm\nJi1JTk4OarXaKFFAQZIrbvSDuLg4li5dysyZM1Gri4aak5ODlZVVkfKS9ieqj6YNa+LxZ9uOTq+w\n40CCDCQqRBVhUuL55JNPSEpKYsqUKYaydu3asWzZMi5dusRnn31m0sGsra3R6/VotcZTG2s0Gmxs\nbIzK8vLymDBhAmPGjKFOnTol7k+j0RQp12g02NpKg3N1plar6NTcF/WfbTtJadkcP29a70ghROUy\nKfHs2rWLCRMmGN0oqlaradWqFePGjeO3334z6WBeXl4ApKamGpWnpKQUufx29OhRLly4wOzZswkL\nCyMsLIz169dz4MABwsLCuHbtGp6enqSnpxt63wFotVrS09Nxd3dHVG9uTjZGbTt7466TmSU1XSEe\ndyYlnpycnCI1kkIODg7cumXawI2BgYHY2dkRGxtrKEtMTOTq1atEREQYrRsSEsLWrVtZv3694adL\nly4EBwezfv163N3dCQ8PR6vVGo2OffDgQfR6PeHh4SbFJKq28AB33BytAcjX6fn9YKJMnyDEY86k\nxNO0aVO+//77IpfI9Ho9P/zwA8HBwSYdzNLSkldeeYVZs2axa9cuTpw4wbhx42jRogWhoaFoNBpS\nU1PRaDRYW1tTp04dox97e3tDubm5OR4eHjz77LP8/e9/5+DBgxw4cIApU6YQFRUlXamfEGZmajpF\n1DZM15GYcptTl9MrOSohxIOYNGTOqFGjiI6Oplu3bnTo0AFXV1du3rzJrl27uH79OsuWLTP5gGPG\njEGr1TJ+/Hi0Wi3t2rVj6tSpABw+fJjo6GiWL19Oy5YtTdrfjBkzmDFjBm+++Sbm5uZ069aNSZMm\nmRyPqPo8XG0JbViTw2dTANhz9Bq1PR2xt7F4yJZCiMqgUky8LnH8+HG++OILDh06RGZmJvb29oSH\nhzNy5EhCQkLKO84ylZiYSOfOndm+fTs+Pj6VHY4oA/laPf/+7QwZf7bx+NVy4rk2dY0mLhRCPJqy\n+uw0eZDQJk2a8Pnnn//lAwlRnizM1XRs7su6necBuHQtk/OJGTT0dankyIQQ9zM58UDBvTt//PEH\nqampDB06lEuXLhEYGIirq+vDNxainHnXtCe4nhtxF9MA2HX4Kj7uDthYleptLoQoZyadkfn5+Uyc\nOJHNmzdjbm6OTqejV69efP3111y4cIEffvgBX1/f8o5ViIdqE1KLy9dvkZWTT06elt1HrtK1ZfH3\ngQkhKodJvdrmzZvHzp07WbBgAfv37zd0V502bRo2NjYm30AqRHmztDCjQ/jdL0Fn7pnDRwjxeDAp\n8WzcuJFx48bRtWtXLC0tDeW1a9fm7bffZt++feUWoBClVdfLkYDad9t2dh5MQJOve8AWQoiKZFLi\nycjIwM/Pr9hlLi4uJo/VJkRFiQz1NrTtZOXk88exa5UckRCikEmJp0GDBmzevLnYZf/973+pX79+\nmQYlxKOysTLnqTBvw+O4i2lcTZUvSEI8DkzqXDBs2DBGjx7N7du36dixIyqViiNHjrBp0ya+//57\nPv744/KOU4hSa+DjzNlaGVy6lgnAjgMJvNw1AAtzk75vCSHKiUlnYLdu3fj44485fPgw77//Poqi\nMH36dNauXcukSZN44YUXyjtOIUpNpVLRvpkPVhZmAGRm5RF7svh5n4QQFafEGs/SpUt5/vnnDaM8\n9+zZk6ioKM6fP09GRgYODg40aNAAc3O5R0I8vuxtLGjbtBY7DiQAcPRsKsH13HCyLzqPkxCiYpRY\n45k3bx4JCQUna3BwMMePH0elUtGwYUMiIiIIDAyUpCOqhEZ1XalVww4AvaJw4FRyJUckxJOtxMxh\nb2/Pd999x9WrV9FqtezatYvLly+XuKPu3buXR3xCPDKVSkWrYC/W/jmczun4mzQLdMfFwbqSIxPi\nyVRi4hk6dCizZs1i69atqFQqFixYUOJOVCqVJB7xWKtV0x5fDwcSkm+jKAqxJ5Lp1kpGNBCiMpSY\neF599VV69+5NZmYmnTt3ZuHChTRq1KgiYxOiTLVs7ElC8m0Azidm0DzTHTen4ic4FEKUnwc20tjb\n22Nvb8/06dMJDw/HxUVG+hVVl6ebHX5ejly6fuvPWk8Sz7Yp/sZoIUT5Mal3QJ8+fbhz5w4xMTHk\n5OSg1+uLrPPcc8+VeXBClLUWjb249OfYbReuZpJy8w7uLraVHJUQTxaTEs8ff/zB22+/TXZ2drHz\n2atUKkk8okqo6WJDfR9nLiRmABB7IokXIutVclRCPFlMSjyffPIJtWvXZsKECXh6eqJWy53foupq\nEeTBxauZKIrC5eu3SErLxtPNrrLDEuKJYVLiOX/+PIsWLaJVq1blHY8Q5c7NyQZ/X2fOXLkJwN64\nJHq2l/EGhagoJlVdvLy8uHPnTnnHIkSFiQjyRK1SAZCYclsGEBWiApmUeIYOHcqiRYtITpY7vkX1\n4OxgRWDdu70098VdL7b9UghR9ky61LZjxw6SkpLo2LEjnp6eWFsb3/GtUqnYtGlTuQQoRHlp3siT\n0/E30esVrt3IJiH5NrU9HSs7LCGqPZMSj4ODAx06dCjnUISoWI52lgT5uRF34QYA+04k4evhgOrP\nS3BCiPJhcq82Iaqj5o08OHUpDZ1eITn9Dpev38KvllNlhyVEtVZi4klLS8PZ2RkzMzPS0tIeuiM3\nN7cyDUyIimBvY0GTBjU4cjYVKKj11PVylFqPEOWoxMQTGRnJv//9b0JCQmjbtu1DT8RTp06ZdECd\nTsfcuXNZt24d2dnZtGvXjqlTp1KjRo1i1//555/55ptvSExMxNfXlyFDhvDSSy8ZlsfExPDmm28W\n2S4mJgZPT0+TYhJPtmYB7py4kEa+Ts+NjBwuJGbSwNe5ssMSotoqMfH885//xNfXF4Dp06eX2QEX\nLFjAunXrmDlzJs7OzkybNo1Ro0axatWqIuv++uuvfPDBB/zzn/8kIiKCvXv3MmXKFJydnencuTMA\nZ86cISgoiK+++spoW6mBCVPZWlsQ0rAGB0+nABB7Mol63k6o1VLrEaI8lJh4+vTpU+zfj0Kj0bB8\n+XImT55M27ZtAfj000/p3Lkzhw4dolmzZkbr37x5k7fffptevXoB4Ovryw8//MD//vc/Q+I5d+4c\n/v7+1KxZs0xiFE+mMH93jl9IQ5OvI/1WLucSbhJQx7WywxKiWqrQsW9Onz5NdnY2LVq0MJT5+Pjg\n7e3NgQMHiqz/8ssvGy6jabVatmzZwoULFwxJCwoST/36cte5eDTWVuaENrz75SX2ZDI6vdzXI0R5\nqNDEk5SUBICHh4dRubu7u2FZcY4fP05ISAhjxoyhR48ehq7dOp2OixcvEhcXR48ePYiMjGTEiBFc\nvHix3J6DqL6a+tfEytIMgMysPM7Ep1dyREJUTxWaeHJyclCr1VhYWBiVW1pakpeXV+J2Pj4+rFmz\nhg8//JAtW7Ywd+5cAK5cuUJeXh4ajYYZM2Ywd+5cNBoNAwYMMKknnhD3srIwI8zf3fB4/8lkdLqi\nU4AIIR5NhSYea2tr9Ho9Wq3WqFyj0WBjU/JMkC4uLjRq1IiXXnqJ4cOHs2zZMnQ6HX5+fuzbt4/P\nP/+ckJAQmjdvzsKFC9Hr9WzYsKG8n46ohpo2rIGNVUHT5+07Gk5eklqPEGWtQhOPl5cXAKmpqUbl\nKSkpRS6/AcTGxhbpph0QEEBubi6ZmZkAODs7G03TYGNjg6+vL9evXy/r8MUTwMLcjPDAu7WeA6eS\n0UqtR4gyZdLIBQDr169n586dxc5AqlKpinRnLk5gYCB2dnbExsYSFRUFQGJiIlevXiUiIqLI+l9/\n/TVqtZrFixcbyo4dO4abmxsuLi5s27aN8ePHs337dlxdC3ogZWVlcfnyZfr27WvqUxPCSHD9Ghw+\nk0p2bj7ZufnEXbhB6D2X4IQQj8akGs9nn33Ge++9x9GjR8nMzCQ7O9voJyvLtCHlLS0teeWVV5g1\naxa7du3ixIkTjBs3jhYtWhAaGopGoyE1NRWNRgPA4MGDiYmJ4ZtvviE+Pp7Vq1ezZMkSRo0ahUql\nIiIiAnt7e8aPH8/p06c5ceIEo0ePxsXFxZDYhCgtczM1zRvdrYEfPJ1CvlZXiREJUb2YVONZs2YN\n0dHRTJo06ZEPOGbMGLRaLePHj0er1RpGLgA4fPgw0dHRLF++nJYtWxIZGcn8+fNZuHAh8+bNw8vL\ni8mTJxvuK3JycmLZsmV88sknREdHo9Vqadu2Ld999x1WVlaPHKt4cgX5uXLoTAq372jIydNy9NwN\no2QkhPjrVIoJk5A0bdqUr7/+2uj+m6osMTGRzp07s337dnx8fCo7HPGYOnkpjR0HEgCwsjQj+rkg\nrCzMKjkqISpPWX12mnSpLTQ0lCNHjvzlgwhRFQXUccXJvqDmnKfRcfRs6kO2EEKYwqRLbW+99Rbj\nxo1Dr9cTFhZWbNfnkJCQMg9OiMpkplbRIsiD32KvAHDkXCohDWpgbWVynxwhRDFMOoMGDRoEwNy5\nc4uMUq0oCiqVyuTRqYWoShr6unDwdArpt3LR5Os4fDaF1k1qVXZYQlRpJiWepUuXlnccQjyW1GoV\nLYI8+c/eywAcO3eDpg1rYmtt8eANhRAlMinxtG7durzjEOKxVd/HiRrONtzIyCFfp+fg6RTahXpX\ndlhCVFkmj1xw+fJl3nnnHdq1a0dYWBidOnVi/PjxMiCnqPZUKhUtG9+dVPDExTSyc/IrMSIhqjaT\najznzp3j5ZdfxsLCgo4dO1KjRg1SU1PZuXMn27Zt46effqJhw4blHasQlaaulyPuLrak3LyDVqfn\n0Bmp9QjxV5mUeGbPnk2dOnVYvnw59vb2hvKsrCwGDx7MZ599xueff15uQQpR2VQqFRFBHmzacwko\nqPWEB7pLW48Qf4FJl9r279/PiBEjjJIOgL29PcOGDSt2EjchqpvCWg9gqPUIIUrPpMRjZWVlNAK0\n0Q7UavLz5Xq3qP4Kaz2F4i6kcSdX3vtClJbJIxcsWbLEMHhnoby8PJYsWUKzZs3KJTghHjd1vRyp\n6VxwA7VWp+fwGRnNQIjSMqmNZ9y4cfTt25cuXbrQuXNnatSowY0bN9i+fTu3bt1ixYoV5R2nEI8F\nlUpFi8aehrae4xduEBYg9/UIURomJZ6GDRuyatUqFixYwObNm7l16xaOjo5ERETw1ltvERgYWN5x\nCvHYKKz1pGbkFNR6zqbSNkRGMxDCVCYPOhUYGMiiRYvKMxYhqgSVSkXzRh5s+d9lAOLO3yDMX2o9\nQpiqxMSzefNm2rZti5OTE5s3b37ojp577rkyDUyIx1k9b+PRDI6cTaWN1HqEMEmJiWfcuHH89NNP\nhISEMG7cuAfuRKVSSeIRTxSVSkXEPbWegrYed2xk5GohHqrEs2Tr1q14enoa/hZCGKvn7YSbkw1p\nmTnka/UckZGrhTBJid2pa9eujaWlJQBHjx7F0dGR2rVrF/mxtbXl999/r7CAhXhc3H9fz7HzN8jN\n01ZiREJUDSbdxzNhwgSuXLlS7LJTp04xe/bsMg1KiKqivrcTbo7WAORrC3q4CSEerMRLbcOHD+fS\npYJ7FRRFYfTo0YYa0L1SUlLw9fUtvwiFeIypVCqaB3nw69544M+2Hv+aMkupEA9Q4tnxxhtv8PPP\nPwMQHx+Pv78/rq6uRuuo1WocHR158cUXyzdKIR5jDXyc2e+YbJil9Mi5VFoFe1V2WEI8tkpMPOHh\n4YSHhwOg1Wp5++23pWYjRDEK23oKaz3Hzt8gtKHUeoQoiUltPJ988gnx8fHMmTPHUHbs2DGGDh3K\n/v37yy04IaqK+t7OuP7Z1qPJ13H0nLT1CFESkxLPf/7zH9544w1OnjxpKLO2tiY3N5fXXnuNPXv2\nlFuAQlQFanXBaAaFjp6/Qa5GergJURyTEs8XX3zByy+/zDfffGMo8/f3Z8WKFfTu3Zu5c+eWW4BC\nVBUNfJxxcbhb6zl27kYlRyTE48mkxBMfH0+3bt2KXdatWzfOnz9fpkEJURWp1cb39Rw9lyq1HiGK\nYVLicXV15dSpU8UuO3fuHI6OjiYfUKfTMWfOHCIjIwkLC+Ptt9/mxo2Svxn+/PPPPPvsszRp0oTn\nnnuONWvWGC3PyclhypQptGzZkubNmzN58mSys7NNjkeIstTAxxlnBysA8vJ1HDsvtR4h7mdS4une\nvTsLFixg9erV3Lx5E4CMjAzWrVvH/PnzeeGFF0w+4IIFC1i3bh0zZ85kxYoVJCUlMWrUqGLX/fXX\nX/nggw9444032Lx5M6+99hpTpkxh+/bthnWmTp3KwYMHWbx4MV9++SWxsbFMnTrV5HiEKEtqdcEY\nboWOnkslL19XiREJ8RhSTJCXl6eMHDlSCQgIUAIDA5WgoCAlMDBQCQgIUEaMGKHk5eWZshslLy9P\nCQsLU9asWWMoS0hIUPz9/ZWDBw8WWX/VqlXK4sWLjcqioqKU6dOnK4qiKNevX1cCAwOVvXv3Gpbv\n27dPCQgIUJKSkkqMo/CYCQkJJsUtRGnodHrl+80nlQU/HVYW/HRYiT1xvbJDEqJMlNVnp0k3Glha\nWrJo0SJOnTrFwYMHycjIwMHBgfDwcIKDg01OcqdPnyY7O5sWLVoYynx8fPD29ubAgQNFptB++eWX\nDX9rtVp+++03Lly4wOjRowE4dOgQarXaaLtmzZphZmbGwYMHZcRsUSnU6oLRDLbFFgwzdeRcKk0b\n1sTSwqySIxPi8VCqO9waNWpEo0aNipTn5ORgY2Pz0O2TkpIA8PDwMCp3d3c3LCvO8ePH6devHzqd\njt69e9OhQwcAkpOTcXV1xcLi7gRc5ubmuLq6cv36dVOekhDlwt/XhQMnk8nIyiNPU9DWc293ayGe\nZCYlnvz8fH744Qf2799Pfn4+iqIAoNfrycnJ4dSpUxw+fPih+8nJyUGtVhslCiioUeXl5ZW4nY+P\nD2vWrOHkyZP861//okaNGowdO5acnBysrKyKrP+w/QlR3grv69m2v6DWc/hsCiENakitRwhMTDxz\n5sxh2bJl1K9fn5s3b2JtbY2zszPnzp1Dp9MxcuRIkw5mbW2NXq9Hq9Vibn730BqN5oE1JhcXF1xc\nXGjUqBFpaWksWrSIt99+G2trazQaTZH1NRoNtra2JsUkRHnxr+3C/lPJZEqtRwgjJo9cMHjwYDZt\n2sSgQYMICQlh7dq1/Prrr3h5eaFWm7QbvLwKBk5MTTUeTiQlJaXI5TeA2NjYIt24AwICyM3NJTMz\nE09PT9LT09Hp7vYa0mq1pKen4+7ublJMQpQXtVpF88C77+sjZ1PRSA83IUxLPDdu3DC0q/j7+3Ps\n2DEAatWqxbBhw9i0aZNJBwsMDMTOzo7Y2FhDWWJiIlevXiUiIqLI+l9//XWRURGOHTuGm5sbLi4u\nhIeHo9VqjS7zHTx4EL1ebxjgVIjK5F/HBUe7gulEcjVajl+Q+3qEMCnx2Nvbk5+fD0DdunW5fv26\n4SZNPz8/rl27ZtLBLC0teeWVV5g1axa7du3ixIkTjBs3jhYtWhAaGopGoyE1NdVw+Wzw4MHExMTw\nzTffEB8fz+rVq1myZAmjRo1CpVLh4eHBs88+y9///ncOHjzIgQMHmDJlClFRUcXWoISoaGb3jeF2\n+Ewq+Vqp9Ygnm0mJJzw8nJUrV6LRaKhTpw7W1tbs2LEDgLi4OOzs7Ew+4JgxY+jevTvjx48nOjqa\nWrVqMW/ePAAOHz5MZGSkoQYTGRnJ/Pnz2bBhA927d2fJkiVMnjyZ/v37G/Y3Y8YMmjVrxptvvsnf\n/vY3WrVqxQcffGByPEKUt4A6rsa1nvNplRyREJVLpRR2UXuAEydOMHDgQJo0acLy5cuZOXMmK1eu\npFGjRsTFxdG3b98qNVpAYmIinTt3Zvv27fj4+FR2OOIJcOJiGr8fTADAxsqc6OcaYWEuPdxE1VJW\nn50m9Wpr3LgxW7Zs4cyZMwBMmDABOzs7Dh8+zNChQxkxYsRfDkCIJ0FgHRcOnk7mVraGnDwtxy+k\n0SxAOsCIJ5NJiefDDz8kKiqK9u3bAwUzLr711lvlGpgQ1YmZmZrwQA9Drefg6WQa1XXFRmYpFU8g\nk9p4/v3vf5ORkVHesQhRrQXe08MtT6Njb5yMriGeTCYlnpCQEJNGJhBClMzMTE27UG/D45OX0klO\nv1OJEQlROUyq5zdp0oQvv/ySX3/9lUaNGhUZFUClUvGPf/yjXAIUojrxq+WEn5cjl67fQlEUdh1O\npHenhqhUqsoOTYgKY1Li2bRpE25ubty6dYt9+/YVWS6JRwjTRYZ6cyX5Njq9QnL6HU5eSqdxPbfK\nDkuIClNi4tmyZQtt2rTBycmJmJiYioxJiGrNyd6K8EAPYk8WjMj+v+PXqe/thLV0NBBPiBLbeCZN\nmsT58+cB6NatG6dPn66woISo7poFuhvdVCodDcSTpMSvWJaWloYx2OLj4zl+/Dh37pTcEHr/JG5C\niJKZ/9nRYNOeSwCcuJROkJ8b7q4yqrqo/kpMPL179+abb75h1apVqFSqEkcmUBQFlUpVZBRpIcSD\n1fVypI6nI/FJf3Y0OHKVlzo2kI4GotorMfGMHz+enj17cvPmTaKjo5k6dSoNGjSoyNiEqNZUKhXt\nQr1J3FrQ0SApLZvTl2/SyM+1skMTolw9sDWzYcOGAAwfPpzOnTvLiM9ClDFnBytC/d05eDoZgD+O\nX8PP2xFrS+loIKovk24gHTNmjCQdIcpJ80bu2NsUTAefk6cl9kRSJUckRPkybepQIUS5sTA3I/Ke\nEQ2OX0gj9WZOJUYkRPmSxCPEY6C+txO+Hg4AhhENTJixRIgqSRKPEI8BlUrFU2HeqNUFPdqup2Vz\n5srNSo5KiPIhiUeIx4SLgzWhDWsaHv9x7Dp5+TJNtqh+Suw6U5rpo2WsNiHKRkSQB2ev3CQrJ587\nufnEnkgyGtFaiOqgxMTz+++/m7wTSTxClA0LczPaNq3Fr3vjATh+/gZBfq64OdlUcmRClJ0SE48M\nDCpE5Wjg48wJ93QSU26jVxRiDl3lxQ71ZUQDUW08chuPTqcrdqoEIcRfY+ho8GeiuXYji3MJMgOw\nqD5Muj06KSmJf/7zn+zfv5/8/HxDN0+9Xo9WqwWQsdqEKEOujtY0bViTw2dTANhz9Bp1vRyxtDCr\n5MiEeHQm1Xg+/PBD9u7dywsvvICfnx9BQUH079+funXrolKpWLBgQXnHKcQTJyLIAzvrghENsnPz\n2X8yuZIjEqJsmJR49u3bx5gxY/jHP/5Br169sLW15b333mPdunWEh4ezc+fOcg5TiCePpUVBR4NC\nR8+lkn4rtxIjEqJsmJR4srOzadSoEQD16tXj5MmTAJibmzNgwAD++OOP8otQiCdYQ19natWwB0Av\nIxqIasKkxFOzZk3S0tIAqFOnDhkZGaSmpgLg4uJiWGYKnU7HnDlziIyMJCwsjLfffpsbN26UuP7m\nzZuJiooiNDSUrl278tVXX6HT3b2pLiYmhoCAgCI/SUky0KKo+lQqFe2b3e1okJiSxflE6WggqjaT\nEk+7du1YsGABx48fx8fHBw8PD5YvX45Go2Hjxo2lGrl6wYIFrFu3jpkzZ7JixQqSkpIYNWpUsevG\nxK+zOAcAACAASURBVMTw7rvv0qdPHzZu3Mg777zD119/zZdffmlY58yZMwQFBbF7926jH3d3d5Nj\nEuJx5uZkQ5MGNQyP9xy9Rr5WRjQQVZdJiWf06NFYWFgwe/ZsoGCahCVLlhAaGsratWsZPHiwSQfT\naDQsX76ccePG0bZtWxo3bsynn37KoUOHOHToUJH1f/zxR55++mkGDhxI7dq1eeaZZ3j11VdZu3at\nYZ1z587h7+9PzZo1jX7UahkNSFQfLRp7YvtnR4OsHOloIKo2k7pTu7m5sW7dOsPlq549e+Ll5cWR\nI0cICQmhdevWJh3s9OnTZGdn06JFC0OZj48P3t7eHDhwgGbNmhmtP2LECGxtjeegV6vV3Lp1y/D4\n3LlzPPfccyYdX4iqysrCjDYhXmyLvQLAkXOpNPJzxcXBupIjE6L0TKoWfPnll6SmpuLl5WUoa9my\nJcOGDaN27dp89NFHJh2sMHHdf2nO3d292DaZkJAQo+m2s7KyWLVqFe3atQMK2osuXrxIXFwcPXr0\nIDIykhEjRnDx4kWT4hGiKgmo7YKXmx0Aer3CttgraHX6So5KiNIzKfHMmzevxMb6Y8eOsXLlSpMO\nlpOTg1qtxsLCwqjc0tKSvLy8h247cuRI8vLyeOeddwC4cuUKeXl5aDQaZsyYwdy5c9FoNAwYMKBU\nHR6EqAoKOhr4GIbOSU6/w2+xV6SXm6hySrzUNmDAAI4ePQoUTEz1yiuvFLueTqejcePGJh3M2tra\nMNqBufndQ2s0GmxsSh4EMT09nZEjR3L+/Hm+/fZbvL0LRuv18/Nj3759ODo6Gtp0Fi5cSIcOHdiw\nYQOvv/66SXEJUVXUcLYhsmkt/nvkKgAXEjP433FL2oTUesiWQjw+Skw806ZN4z//+Q+KorBo0SJ6\n9uyJp6en0TpqtRpHR0e6du1q0sEKL9Xdf9kuJSWlxJ5xiYmJDBkyhOzsbFasWEFgYKDRcmdnZ6PH\nNjY2+Pr6cv36dZNiEqKqadqwJplZeRw7X3AbwqEzKTjZW9G4nlslRyaEaUpMPA0aNOCtt94CCmo1\n/fv3L1W36eIEBgZiZ2dHbGwsUVFRQEFiuXr1KhEREUXWT0tLIzo6GjMzM1atWoWvr6/R8m3btjF+\n/Hi2b9+Oq6srUNAOdPnyZfr27ftIsQrxOIts6s3tbA2Xrhd0tIk5lIi9rQV1PB0rOTIhHs6kXm1j\nxowBYM+ePcTGxnL79m1cXFxo3ry5yT3aoKAt55VXXmHWrFm4uLjg5ubGtGnTaNGiBaGhoWg0GjIz\nM3FycsLS0pJp06Zx8+ZNvvvuO6ytrQ03rapUKmrUqEFERAT29vaMHz+e8ePHo9Pp+PTTT/+/vfsO\ni+L4/wD+vjs4qiIgiEFEUSmCcBQBBUTEQogGTawRwRZrAE3siuWHFewtoEGNYonmKwajiTFGjQ2U\nohEVlaKIEalSjnLc3fz+wFtZmihwSJzX8/AczO7tzWdv2c/t7NwMNDU1mcRGUf9FXC4Hgx0NcfJS\nMrLzSyElBOein+KL/t3Rvh2du4f6sDUo8YhEIsyePRtXrlyBgoIC2rVrh/z8fEilUvTp0wehoaHg\n8/kNesE5c+ZALBZj/vz5EIvFcHFxwfLlywEACQkJ8PHxwcGDB2FlZYXz589DKpVi1KhRrG3weDzc\nv38fGhoaOHDgAEJCQuDj4wOxWAwnJyf8+OOPUFJSesddQVGti6ICD0OdjHDiwiMUl1ZAVCHBr1dT\nMdLdGOoqim/fAEW1EA5pQJeYkJAQHDlyBEFBQfD09ASXy4VEIsHZs2exYsUKTJgwAXPnzpVHfZtE\nRkYG3N3dceHCBXTq1Kmlq0NRjZJbUIr/XUyGqKJyNAOddir4wq07FBXoFApU02qqc2eDulOfOXMG\nAQEBGDp0KNN7jMfjYdiwYfD398fp06ffuwIURTWOtoYKPBwNmfHcsl+V4o/op5BKaTdr6sPUoMTz\n6tUrGBsb17rM2NiYufdCUVTL6KzXFq42bz6Bpr0oxNU7z+l3fKgPUoMST9euXXH16tVal125coU2\nV1HUB8DcSBu2pm8Gx/0nOQf/PK575HeKaikN6lzg4+ODpUuXQiqVwtPTEzo6OsjOzsaZM2cQERGB\nRYsWNXc9KYpqAEeLjigUivD4WeXUCVf/+Rdt1Pgw0tdo4ZpR1BsNSjwjRozAkydPEB4ejh9//JEp\n5/F4mDJlCiZMmNBsFaQoquE4HA7ce3dGUUkFMnOFIITgj5inGNG/Ozpoqb59AxQlBw1KPAAwd+5c\n+Pr64s6dOygoKEDbtm0hEAiYL25SFPVhUOBx4dm3C37+6zEKhSKIJVKcuZaGkQN6oK1aw772QFHN\nqc57PD4+PkhJSWGVaWlpwc3NDcOHD8eAAQNo0qGoD5SqsiKGuRhBiV/ZpbqkrAK/Xk1FmUjcwjWj\nqHoSz82bNyEUCuVZF4qimpBmG2V81rcreNzKbtZ5hWX4/cZTSOhUClQLo9N0UtR/2Cc66hhg92aM\nw4ysIlxOyKDdrKkWRRMPRf3HmRhqwcH8zcjy99PyEJeU1YI1oj529XYuWL16NdTV1d+6EQ6Hg/Dw\n8CarFEVRTcvOrAMKhSI8eJIHAIhOfIG2anwYd9Zs4ZpRH6N6E49YLEZFRYW86kJRVDPhcDjob9MJ\nRSUVyMgqAgBcuJUOJT6PTqVAyV29iWflypWwtLSUV10oimpGPB4XHn0McfJiMvIKyyCREpy+kgpr\nY104WuiBx6Mt75R80CONoj4iynwFDHU2gprym2kTEh5l4cRfj5FXWNaCNaM+JjTxUNRHpq0aH2MG\nGbOa2HJeleL4n49wNzmH9nijml2diWfEiBHQ1KQ3Hinqv0hVWRFDnbuin7U+FF43sYklUlxOyMCv\nV9NQUkbv7VLNp87Es27dOhgYGNS1mKKoVo7D4cCyuw5GufdgTZf9NLMQR/94iCcvCluwdtR/GW1q\no6iPnLaGCkYN6AGBsQ5TVlouxq9XU3E5PgMVYjrSAdW0aOKhKAo8HhfOVvrw6teN1fHgbkoOTlx4\nhOz80hasHfVfQxMPRVEMgw5tMG6wCbpVmb8nr7AMJ/56hPiHWbTjAdUkaOKhKIpFWUkBHn26YICd\nARRfdzyQSgmu//Mvfvk7FcUlohauIdXa0cRDUVQNHA4HPbtqY8wgE9YEchlZRTh6/iGSM161YO2o\n1o4mHoqi6tSujRK+cOsBO7MO4HAqp1coF0nw+40n+Cs2HRViSctWkGqVaOKhKKpePC4HjhYdMcK1\nG9qovpnB9H5aHo6df4SkJ3kQ0zl+qHdAEw9FUQ3yiY46xgwyZo1oXVBcjj9vpWP/r/dw5fZz5NNh\nd6gGqHeQUIqiqKqU+QoY7GAIQ702uJzwHKKKyqa2cpEEdx5n487jbOjrqMPcSBvd9DXowKNUreR+\nVEgkEmzatAnOzs6wtraGv78/cnJy6lz/7Nmz8PLygkAgwKBBg7Bnzx5IJG/alUtLSxEYGAgHBwfY\n2dlh2bJldMpuimpmJoZa8PYwRd9en6CtGp+17Hl2Mf6IeYoDZ+7j+j//oqC4vIVqSX2o5J54duzY\ngcjISGzYsAERERHIzMyEn59fretevnwZ8+bNw6hRoxAVFYXvvvsOe/fuRWhoKLPO8uXLERcXh7Cw\nMISGhuLmzZtYvny5vMKhqI+WqrIibEx1MeFTM3zuYoRu+hrgvu6AAFSOfhD/MAuHfnuAqL9TkJLx\nClIp/R4QJeemNpFIhIMHD2LZsmVwcnICAGzevBnu7u6Ij4+HjY0Na/1jx45h8ODB8Pb2BgB07twZ\nKSkpOHnyJGbPno3MzEz8+uuvOHDgAAQCAYDKWVN9fHywYMECdOjQQZ7hUdRHicPhoLNeW3TWa4vi\n0grcT8vF/dRcFJe+GWg0/WUR0l8WQV1FET27aqNnVy2oq/Lr2Sr1XybXxJOUlAShUAh7e3umrFOn\nTtDX10dsbGyNxDNz5kyoqqqyyrhcLgoLKwcvjI+PB5fLZT3PxsYGPB4PcXFx8PT0bMZoKIqqTl1F\nEfY99WBn2gFPMwuRmJKL9JdFzIgHxaUVuHk/E7cevESXjm1hYaQNgw5twOVy3rJl6r9EroknMzMT\nAGpciejq6jLLqqo++2lxcTGOHj0KFxcXAMDLly+hpaUFRcU3Y0spKChAS0sLL168aOrqUxTVQFwu\nB10/0UDXTzRQKBThXmouHjzJY6ZbIIQg7d8CpP1bAHUVRejrqENPWw0dtFXRXkOFJqL/OLkmntLS\nUnC5XFaiAAA+n4/y8vpvQJaWlmLWrFkoLy/Hd999x5QpKSnVWLch26MoSj7aqvHRp1dH2PfsgLQX\nlVdBGVlFzPLi0go8TM/Hw/R8AIAijwtdLVXoaatBT7vyUUWJdsD9L5Hru6msrAypVAqxWAwFhTcv\nLRKJoKKiUufz8vLyMGvWLCQnJ2Pfvn3Q19dnticS1Rw3SiQS1WiioyiqZfF4XHTv1A7dO7XDq6Jy\n3EvLxYO0PJSJxKz1KiRSPM8uxvPsYqasnboSk4T0tNWg1VaZXhW1YnJNPB07dgQAZGdnM78DQFZW\nVp0dATIyMjBlyhQIhUJERETA1NSUWaanp4e8vDxIJBLweDwAgFgsRl5eHnR1dZsxEoqiGqNdGyU4\nWX4CR3M9ZL8qxcvcEmTmCfEiR8jqlCDzqrgcr4rLkfS08qqIr8iDrqYq9LRV0VFbDTqaKlBRUmCG\n9aE+bHJNPKamplBTU8PNmzfh5eUFoDKxPH/+HL17966xfm5uLnx8fMDj8XD06NEaM6La2tpCLBYj\nISEBdnZ2AIC4uDhIpVLY2to2f0AURTUKj8dlrmKsUDkRXXGJCJmvE1Fmbgmy8ktqdMMWVUiQkVXE\narJT5HHRRo0PdVVFtFXlQ12Vj7ZqfLRR5aONqiJUlRXpVdIHQq6Jh8/n46uvvkJwcDA0NTWhra2N\nVatWwd7eHgKBACKRCAUFBdDQ0ACfz8eqVauQn5+PH3/8EcrKysjOzgZQ2X2zffv26NChAz799FMs\nXboUa9euBSEEgYGB8PLyol2pKaqVUlflo7sqH90N2gEAxBIpsvNLkZkrRGZeCTJzhBCW1bwqqpBI\nkVdYhrw6hu3hcjlQV1Gskowqf9RVK8vUVBShQEdakAu537GbM2cOxGIx5s+fD7FYDBcXF+YLnwkJ\nCfDx8cHBgwdhZWWF8+fPQyqVYtSoUaxt8Hg83L9/H0Dl93ZWr16NadOmQUFBAUOGDMGSJUvkHRZF\nUc1EgcdFx/Zq6NheDUBlj7iikgpk5grxMrcEL3KFyC8qe+sU3VIpQaFQhEJh3fMJ8bgcKPEVoMzn\nga/Ig5Ii783v/Mq/2Y8KlY98HvgKXNrU10Ac8hFOKZiRkQF3d3dcuHABnTp1aunqUBTVSIQQlIsk\nKCqpQFGJCEVCEYpKXz+WVKBQKKrRiaGpcTgcKCpwocDjQoHHgQKPCx6PAwUuFwoKXChwOeCxlr1Z\nl8fjQvH1+jwuB1wuB1zO68eqv7MeUesyDqcygQIcVD68fnxdx8ZoqnMn7aNIUVSrx+FwoKykAGUl\nBeho1t5DtkL8OjEJRZXJqUSEQmEFil//XlIubtSQPoQQiCokzMCpHyIOpzIxcYDK4Y041R5fl3M4\nQJdPNOBqrd8sV3E08VAU9VFQVOBBqy0PWm2Va11OCIFYQlBeIUG5SPz6UVLzsUZZ5bpva+r7EBBC\nIGvjkqD+JJuYkoOeXbSgq9X0X02hiYeiKAqyprLK5jJ1FcW3P6EaiZSgQiyBREIglkghlkjZv0sJ\nKsR1lEmlEIulEEsIJFICQgikhEAqff1D8PqRsB9ZZW/WkSUYKSGA7PEdtW+nAi2N2pN0Y9HEQ1EU\n1QR4XA54/A/3lCpLRoQQkCp/V09OstZGNeXm+17Uh7uXKIqiqCYju79TeYenZX2UiUc2kVxtA5NS\nFEVRtZOdM6tOxvk+PsrEI/si6vjx41u4JhRFUa1PdnY2DA0N3/v5H+X3eMrKypCYmAgdHR1mjDeK\noiiqfhKJBNnZ2bCwsICy8vt3PPgoEw9FURTVcujARBRFUZRc0cRDURRFyRVNPBRFUZRc0cRDURRF\nyRVNPBRFUZRc0cTzmkQiwaZNm+Ds7Axra2v4+/sjJyenpatVr5ycHCxcuBDOzs6ws7PDlClT8OjR\nI2b51atX4eXlBUtLSwwbNgyXL19mPT83NxcBAQGws7NDnz59EBISArG4eYeOf1e3b99Gz549ERMT\nw5S15rhOnDiBIUOGwNLSEl988QVu3LjBLGutcZWUlCAoKIg5DqdOnYrk5GRmeWuLa/ny5Vi6dCmr\nrCliOHDgANzc3GBlZYVJkybhyZMnzR0KS21xRUREwMPDAwKBAJ6enjhx4gRrebPFRShCCCFbtmwh\nTk5O5OrVqyQxMZGMGjWKjB07tqWrVSeJRELGjBlDRo8eTe7cuUMeP35M/P39SZ8+fUheXh55/Pgx\nsbCwILt37ybJyclky5YtxNzcnDx69IjZxrhx48hXX31FHjx4QC5dukQcHR3J5s2bWzAqNqFQSAYN\nGkSMjY1JdHQ0IYS06rhOnjxJzM3NyYkTJ8iTJ0/I2rVriUAgIM+ePWvVcS1ZsoR4eHiQ2NhYkpyc\nTGbNmkVcXV1JWVlZq4pLKpWSrVu3EmNjY7JkyRKmvCliOH78OLG2tia//fYbSUpKItOnTyfu7u6k\nvLy8xeI6fPgwEQgE5NSpU+Tp06fk+PHjxNzcnERGRjZ7XDTxEELKy8uJtbU1+d///seUPXv2jBgb\nG5O4uLgWrFnd7t27R4yNjUlycjJTVl5eTqysrEhkZCQJDAwk3t7erOd4e3uTZcuWEUIIiY+PJ8bG\nxiQ9PZ1ZfvLkSWJtbS2Xf4aGkMVQNfG01rikUilxc3MjW7duZcokEgn5/PPPSVRUVKuNixBC7O3t\nycGDB5m/Hz9+TIyNjUliYmKriSs9PZ14e3sTBwcH0r9/f9YJuiliGDx4MNm+fTuzvLi4mAgEAhIV\nFdWcYdUb17Bhw0hwcDBr/cWLF5MJEyYQQpo3LtrUBiApKQlCoRD29vZMWadOnaCvr4/Y2NgWrFnd\nOnbsiLCwMHTt2pUpk40kW1BQgNjYWFY8AODg4MDEExsbC319fRgYGDDL7e3tIRQK8eDBAzlEUL/L\nly/j0qVLWLZsGau8tcaVmpqK58+fw9PTkynjcrn45ZdfMGzYsFYbFwBoaWnh7NmzyM3NhUgkws8/\n/wwNDQ0YGBi0mrji4+PRsWNHnD59usbMmo2NITc3F0+ePGFtQ01NDRYWFs1+fqkvrmXLlmHs2LGs\nMi6Xi8LCQgDNGxdNPHgz8F2HDh1Y5bq6uh/sQKKampro378/uNw3b+GhQ4dQVlYGZ2dnZGZm1hvP\ny5cvoaurW2M5ALx48aKZa1+/vLw8LF26FKtXr4aGhgZrWWuNS9buXVhYCB8fH/Tp0wfjx49HfHw8\ngNYbFwAEBQUhMzMTffv2hUAgwPHjx7Fnzx60bdu21cTl5eWF4OBg6Ojo1FjW2Bha8vxSX1z29vas\npPLvv//izJkzcHFxAdC8cdHEA6C0tBRcLheKiuzJn/h8PsrLy1uoVu/mwoUL2Lx5MyZNmoRu3bqh\nrKwMfD6ftU7VeEpLS6GkpMRarqioCA6H0+Ixr1ixAgMGDEC/fv1qLGutcRUXFwMAFi1ahFGjRuGH\nH35Ajx494Ovri5SUlFYbFwA8ffoU7du3x549e3D06FE4OzvD398fmZmZrToumcbGUFpaCgA11vmQ\nzi95eXmYPn062rdvj2nTpgFo3rg+ytGpq1NWVoZUKoVYLIaCwptdIhKJoKJS+/ztH5KTJ08iMDAQ\nnp6emD9/PoDKg6GiooK1XtV4lJWVIRKJWMsrKipACIGqatNPddtQkZGRuH//PqKiompd3lrjkn2o\nmTFjBoYNGwYA6NmzJ+Li4nD06NFWG9ezZ88QGBiII0eOQCAQAAA2bdoET09PHDhwoNXGVVVjY5AN\npll9nQ/l/PLs2TNMnToVZWVliIiIQJs2bQA0b1z0igeV90uAN9MlyGRlZdW4jPzQfP/991i8eDHG\njh2L4OBgpumtY8eOyMrKYq1bNR49Pb1a4wVqXjrL08mTJ/Hy5UumW7uHhwcA4Ouvv8by5ctbbVyy\nJgpjY2OmjMPhwMjICBkZGa02rsTEREgkElhYWDBlioqKMDMzw9OnT1ttXFU1NoYP+fxy7949jBkz\nBlwuF8eOHWM1vTVnXDTxADA1NYWamhpu3rzJlGVkZOD58+fo3bt3C9asfnv37sXWrVvh7++PwMBA\n1jS1tra2uHXrFmv9mJgY2NnZMcufPXvGakePiYmBmpoaTE1N5RNALTZu3IgzZ87g1KlTOHXqFH74\n4QcAwOrVqxEQENBq4zI3N4eqqiru3r3LlBFCkJKSAgMDg1Ybl56eHgDg4cOHTJksri5durTauKpq\nbAza2tro0qUL6/wiFAqRmJjYoueXlJQUTJ48Gfr6+jhy5AiTSGSaNa737qf3HxMSEkL69u1LLl++\nzHyPp3oXyg/JgwcPiJmZGVm8eDHJyspi/QiFQpKUlETMzc3Jtm3bSHJyMtm6dSvp1asX0/1aKpWS\n0aNHkzFjxpDExESmj37VrpEfghcvXrC6U7fmuLZs2UJ69+5Nzp07R9LS0siaNWtIr169SEpKSquN\nSywWk9GjR5OhQ4eSW7dukeTkZBIYGEgEAgHJyMholXF5e3uzuh03RQxHjhwhAoGA/Prrr+Thw4dk\n+vTpZPDgwXLtMl49ri+//JI4OzuT1NRU1vkjNze32eOiiee1iooKsm7dOmJvb09sbGxIQEAA8wZ8\niDZt2kSMjY1r/dm1axchhJCLFy8ST09PYmFhQT7//HNy7do11jaysrLIrFmziJWVFenbty/ZtGkT\nkUgkLRFOnaonHkJab1xSqZSEhoYSV1dXYmFhQUaNGkVu3brFLG+tceXm5pKlS5cSFxcXYmtrS3x9\nfcn9+/eZ5a0truonaEKaJobQ0FDi5OREBAIBmTx5Muv7MfJQNa7U1NQ6zx8DBw5s9rjoRHAURVGU\nXNF7PBRFUZRc0cRDURRFyRVNPBRFUZRc0cRDURRFyRVNPBRFUZRc0cRDURRFyRVNPO9p0aJFGDRo\nUJ3LBwwYUGO2v+Yk79drqJiYGJiYmLx1mHQTExPs3r1bTrVq/d52/H1sduzYgZ49ezJ/T5gwARMn\nTpRrHQIDA7Fr1y4AlUM/mZiY1DlK89KlSzFgwABWWV5eHtauXYuBAwfCwsIC9vb28PX1xfnz51nr\nybZd9adXr14YOHAgVq9ejby8PNb6O3fuxMqVK5su0CZABwmlPgg//fRTjSE7qLrNmjULQqGwpavx\nwVqxYgVrCKnmdvXqVVy9ehW///77ez2/tLQUX331FQBg+vTp6Ny5M4qKinD27Fl88803WLJkCXx9\nfVnP+f7776GlpQVCCEpLS3Hv3j3s3bsXf//9N44dOwYtLS0AwNSpU+Hh4YEbN26gT58+jQu0idDE\nQ30QZCMbUw3TuXPnlq7CB6179+5yey1CCNavX4+JEyfWmCKgoc6dO4e0tDT8+eefrIE6Bw4ciLKy\nMmzfvh3e3t7g8XjMsp49ezJj5QFA37594ezsjNGjR2Pjxo1Yu3YtgMpRpidOnIh169bVOeq7vNGm\nNjkpKSlBSEgIBg8eDAsLC9jY2GDKlClISkpi1lm0aBGmTJmCEydOMOt5eXnhypUrrG0lJSVh0qRJ\nsLa2hpubW4MOprVr18LR0RFVB6qYM2cOTExMkJOTw5Rt2bIFbm5uAACJRIKwsDAMHToUlpaWEAgE\nGDduHGJiYpj1y8rKsHLlSvTr1w8WFhbw8PBAeHh4jddPSUnBpEmTYGlpCScnJ2zevBkSiYRZXrWp\nTdY8Fx0djYkTJ8LKygpOTk7YuHEj6zlFRUVYvHgxHBwcYGtri8DAQGzevLlGE0Z1WVlZWLBgARwd\nHWFjYwNfX1/cu3ePWZ6Xl4cVK1bAzc2NafLw8/PD8+fPmXUmTJiAlStXYseOHXBycoK1tTXmzp2L\n4uJi7NmzBy4uLrC1tYWfnx/y8/NZcR4+fBhz5syBQCCAs7Mztm7dyoqrocdK1aY2kUiE9evXw9nZ\nGQKBAAEBAThw4ABMTExYdV6+fDlCQ0Ph6uqKXr16YezYsayBS2uTmJgIX19f2NrawtraGhMnTsTt\n27dZdZk4cSIOHz4MFxcXWFtbY9q0aUhPT2dt5+HDh/j6669hbW0NW1tbBAQEsJqiGvq+l5eXY926\ndcx+X7x4cY35X6o3tZmYmODYsWNYvHgxevfuDWtrawQEBCA3N5dZhxCCsLAwuLm5wdLSEpMnT8ap\nU6dgYmKCjIyMOvfPpUuXkJKSwppd9l3J/gdrG0hmxowZmDVrVo3pB2pjZmaGIUOGICoqipkvBwA8\nPT3x+PFjXLp06b3r2JRo4mkksVhc6091CxYswKlTpzB9+nTs27cPixcvxsOHDzFv3jzWwXbnzh3s\n378fAQEB2LVrF3g8Hvz9/VFUVASgclZAb29vFBUVISQkBAEBAdi4cSNevnxZbz379++P/Px85uRF\nCGESSNWRd69cuQJXV1cAQHBwMEJDQzFu3Dj88MMPCAoKQn5+PgICApiDeu3atfj777+xaNEihIeH\nw93dHcHBwYiMjGS9/po1a2Bvb4+wsDB4eHggLCwMx48fr7fO3333HfOcoUOHYu/evTh58iSzfObM\nmfjrr78wb948hISEIDk5Gfv37693m0KhEOPGjUNsbCwWLVqEbdu2QSqVYtKkScjMzAQhBFOnTkV0\ndDTmzZuH8PBwfPPNN7h27VqNdvKoqCgkJCRgw4YN8Pf3x9mzZzFy5EhcvXoVq1evxrfffosLFy5g\n586drOdt2bIF5eXl2LZtG8aOHYs9e/YgODiYWd7QY6WqwMBAHD16FFOmTMG2bdsgEomwadOmWJzg\n0gAAD7NJREFUGuudPXsWly5dYpJ0Tk4OAgICIJVKa91ucXExpk6dCk1NTezYsQNbtmxBaWkppk6d\nykxuB1Qmp9DQUMybNw9r1qxBSkoKfHx8UFJSAgBIS0vDuHHjUFBQgJCQEAQFBeHRo0cYP348c2zL\nvO19nz9/Po4fP47p06dj69atKCgowIEDB2qtf1UbN24EAGzduhXz58/HxYsXsX79emb5jh07sG3b\nNgwfPhy7du2Cnp4eAgMD37rd06dPw8bGptZZPhvK2dkZPB4P3t7e2LVrF+7cucPMAWRpaYkpU6Y0\neO6evn37oqKigvWBQldXF9bW1jh9+vR717Ep0aa2RkhPT4e5uflb15PN1hcYGMjML2Nvb4/i4mKs\nX78e+fn5THtsUVERIiMjmcttVVVVeHt7IyYmBgMHDsSBAwcgkUiwd+9eaGpqAgC6du2K0aNH11sH\nOzs7qKqq4saNGzAzM8PDhw+Rn58PMzMz3Lp1C59++ilyc3Nx//59BAQEAKi8Mvj2228xfvx4ZjtK\nSkrw8/PD48ePYWlpiZs3b8LJyYn5tOfg4ABVVVWmbjKTJk3CzJkzAQCOjo64cOECoqOjMW7cuDrr\nPGbMGMyaNYt5zp9//olLly5h1KhRuHHjBm7duoWwsDD079+fWcfd3b3e/RAZGYnnz58jKiqKmRtH\nIBBgxIgRiI+Ph42NDdTU1LBs2TLY2NgwMaWnp+Pnn39mbYsQgu3bt0NdXR3Ozs44efIknj9/jhMn\nTjCTaV25cgUJCQms53Xo0AG7du0Cl8uFq6srhEIhDh06hNmzZ0NJSanBx4pMeno6fvnlFwQGBjLv\nlYuLCz7//HM8fvyYta5EIsEPP/wAdXV1AJWJeOHChXj06FGt0xAkJycjPz8fPj4+zP4wMjLCTz/9\nBKFQyGynqKgI4eHhsLKyAgB069YNXl5eiIyMxPjx47Fz506oqqpi//79UFNTAwD07t0bAwcORERE\nBHNsAPW/748fP8a5c+ewatUqjB07lol12LBhSEtLq++th6mpKdatWwcAcHJywt27d/Hnn38CqLzK\nDA8Ph6+vL3P8u7i4IDs7G3///Xe9242OjoaXl1e967yNqakpNm/ejKCgIGzfvh3bt2+HiooK7Ozs\n8OWXX+LTTz9t8La0tbUBgNWSAQAWFhY4e/Zso+rZVGjiaQQ9Pb0an2Zlqv4jKSkpMc1PL1++RFpa\nGp48eYKLFy8CAGt2Qx0dnRqTMQFgrjDi4uJgY2PDOrFbWVnhk08+Yf6WSCSsT8YcDgd8Ph99+/bF\njRs3MHnyZERHR8PExASurq7466+/AFSeJJWVleHo6Aig8pM5UNn0lJqaiqdPn9aos4ODA44dO4bM\nzEy4urrC1dUVs2fPrrE/ZHOXyOqjr69f45NudbITXdV9IdsP0dHRUFJSYq7OgMok3b9/f1ZTYHVx\ncXEwNDRkTcjWpk0b5gQEAIcOHQIhBBkZGXj69ClSU1MRHx9fYxbK7t27MydeoPIfns/nM0kHANq1\na4eUlBTW8zw9PZkJ+wBg8ODB2LdvH27fvo1+/fo1+FiRiYmJASEEgwcPZsq4XC48PDxqJB4TExNW\nnWUTdsmuTKrr0aMHtLS0MGPGDHh4eMDFxQVOTk7MTLcyBgYGTNKRvY6hoSFiY2Mxfvx4REdHo0+f\nPlBSUmJaBDQ1NWFpaYnr16+z/l/qe99lvSOrfsDgcrkYMmQIQkNDa42hIdu9ffs2ysrKMGTIENY6\nnp6e9SaekpIS5ObmolOnTqzy9+nY4OHhAXd3d0RHR+P69euIiYnBtWvXcOXKFfzxxx/YvHlzozpM\n6OvrIzs7GyKRqMZU3vJGE08j8Pl89OrVq85lVV25cgVr165FamoqM5GSbGrfqkmi+uW07ECTNYUU\nFBTA0NCwxutVvcyfOHEia3Ime3t7HDp0CP3798fatWtRUVGB6Oho2Nvbw87ODmFhYcjPz8eVK1fg\n6OjI3CC9e/cuVq1ahbt370JFRQXdu3dnEpyszkuXLoWenh6ioqIQFBSEoKAgWFtbY+XKlaxP0NXj\n4nK5dTbvyMim1q3tOfn5+dDU1Kzxj9i+fft6t/nq1SvmE2FdoqKisHnzZrx48QLt2rWDmZkZlJWV\nazRzyT65V9WQ6Zpls5HKyOpTWFgIoOHHioys+2z1K6Ha9kVt+xRAne+FmpoaDh8+jO+//x6//fYb\nfvrpJygrK8PLywvLli1jjvPqMcniksX06tUrnD59utamni5dury1jlWP/9pibUgzV33bfZd9WJXs\nw1P141v2d133ZSoqKmo9VhQVFeHi4gIXFxcAlR8+Vq9ejbNnz2LEiBHo169fvfUB3swSWv09kb1e\ncXFxjTjljSYeOUhPT8fs2bMxaNAg7NmzB506dQKHw8Hhw4drdBx4G01NTdYNUZlXr14xv69atYrV\n1VZ2guzXrx+WLVuGhIQExMXFYeTIkbC1tYWCggJu3ryJq1ev4ttvvwXwpm3fzMwMZ86cgZGREbhc\nLi5fvoxz584x2+bz+Zg5cyZmzpyJf//9FxcvXsTu3bsxf/78Zm1P1tXVRV5eHgghrORT276pqk2b\nNqwZFWViY2PRvn175OTkYOHChfD19cWkSZOYK4Lg4GDWDfXGqPpeAW+aRLS1td/rWJHVMTc3l3Wy\nedu+aCgjIyOEhIRAIpHgn3/+wS+//IKjR4+iS5cumDx5cq0xyV7f0tISAKCuro5+/frBx8enxnrv\n8ulbdqWfk5PDml65ttd/F1X3YdUeg2/bh7L6yBKsjCxhZWVl1doDMTMzk5XUxowZAyMjI6YpsGq9\n1qxZgz/++AMpKSkNSjzR0dFQUVGpcRugoKAAXC4XGhoab91Gc6OdC+QgMTER5eXlmDFjBgwMDJgT\npexE8rZP/lU5OjoiLi6ONc95cnIynj17xvxtZGSEXr16MT9GRkYAKg9iMzMz/PjjjygqKmLu+1hY\nWGD//v149eoVc78kNTUVr169wsSJE9G9e3fmk7Gs2YEQgvLycgwZMgT79u0DAHzyyScYP348Pvvs\ns1pP7k2pd+/eEIlErJNx9b9rY2NjwzSfyQiFQsyYMQNnzpxBQkICpFIp/Pz8mJORRCLB9evX3+l9\nqk/1nkXnzp2DiooKrKys3utYsbGxAY/Hw4ULF1jl1f9+H+fPn4ejoyOys7PB4/GYq9m2bduy3uMn\nT57gyZMnzN9JSUl4+vQp02xrb2+PlJQUmJubM8dlz549sWfPnrfeQ6lKtr3q35eRNUW+LzMzM6ir\nq7/zPuTz+dDR0anRuadXr15QVVWt9Z5KdnY2EhIS4ODgwJTp6+vj999/Z/0fy8juXVVtHq7Lw4cP\nce7cOQwfPrzGVVhmZiZ0dXVZXbJbCr3ikQNzc3MoKCggJCQEEydORHl5OU6ePMmcgKp2e3wbX19f\n/Pzzz5g8eTL8/PwgFouxZcsWKCoqNuj5rq6uCA0NhampKdq1aweg8j5NaGgoevbsyZxsu3btCnV1\ndezevRscDgdcLhfnzp3D//73PwCVbdtKSkqwtLTEzp07oaioCBMTE6SlpSEyMrJGW3lTc3BwgIOD\nAxYtWoS5c+dCR0cHBw8eRE5ODut+V3UjR47EoUOHMGPGDPj5+UFDQwPh4eFQUlLCqFGjmH/yoKAg\nDB8+HAUFBYiIiEBSUhIIISgrK6vRZPOu4uLisHjxYnz22WeIj4/HoUOH4OfnB1VV1fc6Vjp37gwv\nLy8EBwejvLwc3bp1Q2RkJB48eNDoL1Ha2NiAEILZs2dj2rRpUFNTw2+//Ybi4mLWPSWpVIqZM2di\nzpw5EIvF2LRpE7p3745hw4YBAGbPno3Ro0dj5syZGD16NBQUFBAREYHr16/X28GkOkNDQ4wZMwab\nNm2CSCSCqakpTp06hYcPHzYqTnV1dUyaNAnff/89lJWVYW1tjb/++otJPFXvyVXn5OSEuLg4VpmS\nkhL8/f2xfv16lJeXY/DgwVBUVERqair27dsHPT09TJgwgVl/7ty5iImJwciRI+Hj4wNra2twuVzc\nvXsX+/btg5ubG5ycnFivcf/+faY7eklJCRITE7Fv3z507twZc+fOrVHP+Ph4ODs7v/c+ako08ciB\noaEhNm3ahJ07d2LGjBnQ0NCAQCDAoUOHMGHCBMTGxqJbt24N2pampiaOHj2KNWvWYOHChVBTU8PU\nqVMb3Fulf//+CA0Nhb29PVMmSzyyqx2gsklq9+7dCA4Ohr+/P9TU1GBmZoaIiAh8/fXXiIuLg6ur\nK1atWgVNTU3s27cP2dnZ0NbWxsiRIzFnzpx32kfvY9u2bVi7di3Wr18PDoeDYcOGQV1dvd7eTerq\n6jh8+DA2bNiA//u//wMhBDY2Njh48CB0dXWhq6uL5cuXY//+/Thz5gzat28PBwcH+Pr6Yvbs2YiN\njW30P++kSZOQkZGBWbNmQVdXF4sXL2ZOQu97rKxYsQKqqqoIDQ1FWVkZ3N3dMXbsWPzyyy+Nqqu2\ntjbCw8OxZcsWLF26FKWlpejRowd27NiB3r17M+sZGBjgq6++wqpVqyASidC/f38sWbKEaUYzNTXF\n4cOHsXXrVsybNw8cDgempqbYs2cP+vbt+051WrFiBdq3b49Dhw6hoKAALi4umDFjBnbs2NGoWGfN\nmgVCCH766SeEhYXB0dER06dPx+7du+u9dzdkyBD4+fkhNzeXdf9Q1lR75MgRzJ8/H6WlpejQoQPc\n3d0xc+ZMVicPAwMDREZGYs+ePTh9+jT27t0LQggMDQ0xderUWpsoq3bI4PP5MDAwwOjRo/H111+z\nOrgAlVdZSUlJTI+9Fvc+c3dTVEvLyMggZ86cIeXl5azyL7/8ksyePbuFavV2xsbGZNeuXU26zfz8\nfBIVFUUKCgpY5f7+/mT48OFN+lq1WbhwIRk4cGCzv05zEolEJDIykmRmZrLKN2zYQOzt7et9rlQq\nJUOHDiVhYWHNWcVG2b17N/Hy8iJSqbSlq0IIIYRe8VCt1oIFC+Dp6Ynhw4eDEILffvsNiYmJ+O67\n71q6anKlrKyMoKAgREVFwdvbG0pKSrh27Rr++OMPrFmzpqWr1yooKioiNDQUR44cwbRp09C2bVvc\nvn2bucKvD4fDwbfffouVK1diwoQJDf6ip7yUlJTgyJEjWLNmjVzHr6sP7VxAtUr6+voICwtDRkYG\n/Pz88M033yAlJQV79+79YAZClBdlZWWEh4dDKpViwYIFmD59Oq5du4YNGzbgiy++aOnqtRphYWHM\naAVTpkzBqVOnMG/ePHzzzTdvfa7sHkxtw0W1tPDwcLi5uTWoR5y8cAipYwwOiqIoimoG9IqHoiiK\nkiuaeCiKoii5oomHoiiKkiuaeCiKoii5oomHoiiKkqv/B4Kg2Mv8Sez4AAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(infected_sweep)\n", + "\n", + "decorate(xlabel='Hand-washing campaign spending (USD)',\n", + " ylabel='Total fraction infected',\n", + " title='Effect of hand washing on total infections',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig05.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's put it all together to make some public health spending decisions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Optimization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose we have \\$1200 to spend on any combination of vaccines and a hand-washing campaign." + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "12" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "num_students = 90\n", + "budget = 1200\n", + "price_per_dose = 100\n", + "max_doses = int(budget / price_per_dose)\n", + "dose_array = linrange(max_doses)\n", + "max_doses" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can sweep through a range of doses from, 0 to `max_doses`, model the effects of immunization and the hand-washing campaign, and run simulations.\n", + "\n", + "For each scenario, we compute the fraction of students who get sick." + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.988888888889 0.266727403413 0.187595503995\n", + "1.0 0.977777777778 0.26683150821 0.174580718826\n", + "2.0 0.966666666667 0.267112856728 0.162909838349\n", + "3.0 0.955555555556 0.267865747331 0.153508349478\n", + "4.0 0.944444444444 0.269828391545 0.148565092315\n", + "5.0 0.933333333333 0.274613528135 0.152945950611\n", + "6.0 0.922222222222 0.284596094758 0.174964415024\n", + "7.0 0.911111111111 0.3 0.217343161684\n", + "8.0 0.9 0.315403905242 0.259071044488\n", + "9.0 0.888888888889 0.325386471865 0.278402884103\n", + "10.0 0.877777777778 0.330171608455 0.277914534623\n", + "11.0 0.866666666667 0.332134252669 0.267357496693\n", + "12.0 0.855555555556 0.332887143272 0.252796945636\n" + ] + } + ], + "source": [ + "for doses in dose_array:\n", + " fraction = doses / num_students\n", + " spending = budget - doses * price_per_dose\n", + " \n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " add_hand_washing(system, spending)\n", + " \n", + " run_simulation(system, update1)\n", + " print(doses, system.init.S, system.beta, calc_total_infected(system))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function wraps that loop and stores the results in a `Sweep` object." + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_doses(dose_array):\n", + " \"\"\"Runs simulations with different doses and campaign spending.\n", + " \n", + " dose_array: range of values for number of vaccinations\n", + " \n", + " return: Sweep object with total number of infections \n", + " \"\"\"\n", + " sweep = SweepSeries()\n", + " for doses in dose_array:\n", + " fraction = doses / num_students\n", + " spending = budget - doses * price_per_dose\n", + " \n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " add_hand_washing(system, spending)\n", + " \n", + " run_simulation(system, update1)\n", + " sweep[doses] = calc_total_infected(system)\n", + "\n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can compute the number of infected students for each possible allocation of the budget." + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "infected_sweep = sweep_doses(dose_array)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig06.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n4uPjo7z//vvGMoPBoEyePFnx8fFRvvjiC0VRFCU+Pl7x8fFRJk+ebHJ+bGys4uPjo0yfPl1RFEVZ\nu3at4uPjoxw7dsx4zPXr15UePXoY65+VlaX4+/srb7zxhsm1UlJSlMDAQOM9bl5769atJnUbMmSI\nMmvWrDI9p1AUaQoTZjt48CCXLl1iyJAh2NnZGcudnZ0ZMGAAycnJJCQklHr+xo0bWbx4sUlZZmYm\nDg4OXLt2rVzq+Mwzzxi/VqvVNG3alEuXLpV6vE6nY+vWrbRr185Yn8zMTLKysujatSt5eXns2bMH\ngO3btxMQEGDyV7qtrS1fffUVCxYsMLuOW7duxcnJqVjngeHDh2NtbU1MTEypzwTg6+sLYHwud3d3\nsrKymDdvHmfOnAGgVatWbNq0iSeffLLUenTs2BFnZ2c2btxoLNu0aRMGg4EePXoYrw0wZ84cjh49\nCoCrqyu//PIL/fv3N/uZAWPzWb9+/YxlKpXK+EZ4083nf/XVV03K27ZtS3BwMFu3bkVRFNzc3ACY\nP38++/fvx2AwYG1tzfr16xk/frzxnnl5eYSFhRl/tpmZmWg0GoKDg9m+fbvJtT777DN2795NQUEB\nKpWKiIgI5s6dW6bnFNIUJsogKSkJoMQuuo899hgAFy5coHnz5iWer9Fo+PPPP9m4cSNnzpwhMTGR\nzMzMUq9ZVlZWVtSsWbPYPfV6fann3BxrEx0dXWJOBQrzKoqikJKSQtu2bYvtv9nUZ66kpCTq16+P\nhYWFSbmNjQ2enp5cuHDBpNzZ2dlkW6PRAGAwGAB4+eWX+eOPP/jmm2/45ptv8Pb2JjQ0lN69e+Pj\n41NqPSwtLXn22Wf58ccfjc1h0dHRtGzZ0tiL7fnnnycmJob169ezfv163Nzc6Ny5My+88EKpTX2l\nSU5ORq1W4+XlZVJ++/cvOTkZlUpV4u9Eo0aNiI2N5erVq7Rv357+/fuzcuVKdu3ahZOTE506deL5\n55/niSeeADDmUcaOHVtqvbKzs/H29mbSpEksWrSIYcOGUaNGDTp27MgzzzzD008/jVotf4OXhQQW\nYTblDknMmx9yVlZWpR4za9YsfvjhB1q2bIm/vz8vvvgirVu35s033yQnJ+e+66dSqcp8zs2g0717\nd1566aUSj6lfvz6KotwxQJUXg8FQ7Ht4tw+1WrVqsXLlSvbt28evv/7Kb7/9xrfffst3333HwoUL\n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\nhRBCiEr9P+AKxQwmJbnhAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(infected_sweep)\n", + "\n", + "decorate(xlabel='Doses of vaccine',\n", + " ylabel='Total fraction infected',\n", + " title='Total infections vs. doses',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig06.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose the price of the vaccine drops to $50 per dose. How does that affect the optimal allocation of the spending?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose we have the option to quarantine infected students. For example, a student who feels ill might be moved to an infirmary, or a private dorm room, until they are no longer infectious.\n", + "\n", + "How might you incorporate the effect of quarantine in the SIR model?" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig07.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nHyvSSQOB3mBYAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution goes here\n", + "num_students = 90\n", + "budget = 1200\n", + "price_per_dose = 50\n", + "max_doses = int(budget / price_per_dose)\n", + "dose_array = linrange(max_doses)\n", + "\n", + "for doses in dose_array:\n", + " fraction = doses / num_students\n", + " spending = budget - doses * price_per_dose\n", + " \n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " add_hand_washing(system, spending)\n", + " \n", + " run_simulation(system, update1)\n", + " #print(doses, system.init.S, system.beta, calc_total_infected(system))\n", + " \n", + "infected_sweep1 = sweep_doses(dose_array)\n", + "plot(infected_sweep1)\n", + "\n", + "decorate(xlabel='Doses of vaccine',\n", + " ylabel='Total fraction infected',\n", + " title='Total infections vs. doses',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig07.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def add_quarantine(system, quarantine_rate):\n", + " system.gamma -= quarantine_rate" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From c9fc680fca39c8c91a5f69b416f1a58699d48a7e Mon Sep 17 00:00:00 2001 From: Diego Berny Date: Thu, 5 Oct 2017 10:15:03 -0400 Subject: [PATCH 6/9] figs --- code/111Project.ipynb | 1181 +++++++++++++++++++++++++++++++++++++++ code/Project1.ipynb | 76 +++ code/chap01_fig01.pdf | Bin 0 -> 15066 bytes code/chap02mine.ipynb | 8 +- code/chap03-fig01.pdf | Bin 0 -> 16801 bytes code/chap03-fig02.pdf | Bin 0 -> 17654 bytes code/chap03-fig03.pdf | Bin 0 -> 18105 bytes code/chap03-fig04.pdf | Bin 0 -> 18591 bytes code/chap03-fig05.pdf | Bin 0 -> 16454 bytes code/chap03mine.ipynb | 152 ++--- code/chap04-fig01.pdf | Bin 0 -> 17620 bytes code/chap04-fig02.pdf | Bin 0 -> 18307 bytes code/chap05-fig01.pdf | Bin 0 -> 17122 bytes code/chap05-fig02.pdf | Bin 0 -> 16468 bytes code/chap05-fig03.pdf | Bin 0 -> 12447 bytes code/chap05-fig04.pdf | Bin 0 -> 15330 bytes code/chap05-fig05.pdf | Bin 0 -> 15723 bytes code/chap05-fig06.pdf | Bin 0 -> 11147 bytes code/chap05-fig07.pdf | Bin 0 -> 11607 bytes code/rabbits-mine.ipynb | 773 +++++++++++++++++++++++++ code/rabbits2.ipynb | 399 ------------- code/rabbits2mine.ipynb | 377 +++++++++++++ code/rabbits3mine.ipynb | 703 +++++++++++++++++++++++ 23 files changed, 3201 insertions(+), 468 deletions(-) create mode 100644 code/111Project.ipynb create mode 100644 code/Project1.ipynb create mode 100644 code/chap01_fig01.pdf create mode 100644 code/chap03-fig01.pdf create mode 100644 code/chap03-fig02.pdf create mode 100644 code/chap03-fig03.pdf create mode 100644 code/chap03-fig04.pdf create mode 100644 code/chap03-fig05.pdf create mode 100644 code/chap04-fig01.pdf create mode 100644 code/chap04-fig02.pdf create mode 100644 code/chap05-fig01.pdf create mode 100644 code/chap05-fig02.pdf create mode 100644 code/chap05-fig03.pdf create mode 100644 code/chap05-fig04.pdf create mode 100644 code/chap05-fig05.pdf create mode 100644 code/chap05-fig06.pdf create mode 100644 code/chap05-fig07.pdf create mode 100644 code/rabbits-mine.ipynb delete mode 100644 code/rabbits2.ipynb create mode 100644 code/rabbits2mine.ipynb create mode 100644 code/rabbits3mine.ipynb diff --git a/code/111Project.ipynb b/code/111Project.ipynb new file mode 100644 index 00000000..1d34167a --- /dev/null +++ b/code/111Project.ipynb @@ -0,0 +1,1181 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Population models for Syria\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from pandas import read_csv\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import csv\n", + "#myfile = open('C:/Users/epan/Desktop/popdata.csv') # Windows\n", + "#mycsv = myfile.read()\n", + "\n", + "filename = 'C:/Users/dberny/Desktop/popdata1.csv'\n", + "tables = read_csv(filename, header = 1, index_col=0, usecols=[0, 226], skiprows=[2,3])\n", + "#tables = read_csv(filename, header=1, index_col=1, nrows=1, skiprows=226)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Population
Year
19604573512
19614721896
19624875422
19635034646
19645200336
19655373137
19665553246
19675740710
19685935860
19696139048
19706350541
19716570857
19726800141
19737037851
19747283177
19757535714
19767794662
19778060649
19788336418
19798625690
19808930774
19819252851
19829590227
19839938847
198410293049
198510648632
198611004272
198711360852
198811719071
198912080444
199012446171
199112815219
199213187085
199313564167
199413949697
199514345492
199614755286
199715177456
199815602210
199916016092
200016410848
200116766899
200217087901
200317415266
200417806638
200518294611
200618914977
200719632806
200820325443
200920824893
201021018834
201120863993
201220420701
201319809141
201419203090
201518734987
201618430453
\n", + "
" + ], + "text/plain": [ + " Population\n", + "Year \n", + "1960 4573512\n", + "1961 4721896\n", + "1962 4875422\n", + "1963 5034646\n", + "1964 5200336\n", + "1965 5373137\n", + "1966 5553246\n", + "1967 5740710\n", + "1968 5935860\n", + "1969 6139048\n", + "1970 6350541\n", + "1971 6570857\n", + "1972 6800141\n", + "1973 7037851\n", + "1974 7283177\n", + "1975 7535714\n", + "1976 7794662\n", + "1977 8060649\n", + "1978 8336418\n", + "1979 8625690\n", + "1980 8930774\n", + "1981 9252851\n", + "1982 9590227\n", + "1983 9938847\n", + "1984 10293049\n", + "1985 10648632\n", + "1986 11004272\n", + "1987 11360852\n", + "1988 11719071\n", + "1989 12080444\n", + "1990 12446171\n", + "1991 12815219\n", + "1992 13187085\n", + "1993 13564167\n", + "1994 13949697\n", + "1995 14345492\n", + "1996 14755286\n", + "1997 15177456\n", + "1998 15602210\n", + "1999 16016092\n", + "2000 16410848\n", + "2001 16766899\n", + "2002 17087901\n", + "2003 17415266\n", + "2004 17806638\n", + "2005 18294611\n", + "2006 18914977\n", + "2007 19632806\n", + "2008 20325443\n", + "2009 20824893\n", + "2010 21018834\n", + "2011 20863993\n", + "2012 20420701\n", + "2013 19809141\n", + "2014 19203090\n", + "2015 18734987\n", + "2016 18430453" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tables" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\ngIjIjf0/3Ll67goxmfAAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(tables, 'ro', label = 'Population of Syria')" + ] + }, + { + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SYR
Country Code
196048.441
196148.087
196247.729
196347.374
196447.034
196546.729
196646.482
196746.303
196846.192
196946.144
197046.147
197146.185
197246.231
197346.255
197446.236
197546.156
197646.002
197745.776
197845.476
197945.096
198044.627
198144.064
198243.414
198342.684
198441.885
198541.011
198640.057
198739.034
198837.969
198936.898
199035.878
199134.971
199234.211
199333.609
199433.160
199532.831
199632.566
199732.301
199831.984
199931.595
200031.133
200130.620
200230.095
200329.585
200429.095
200528.620
200628.148
200727.660
200827.139
200926.579
201025.963
201125.276
201224.526
201323.735
201422.930
201522.158
\n", + "
" + ], + "text/plain": [ + " SYR\n", + "Country Code \n", + "1960 48.441\n", + "1961 48.087\n", + "1962 47.729\n", + "1963 47.374\n", + "1964 47.034\n", + "1965 46.729\n", + "1966 46.482\n", + "1967 46.303\n", + "1968 46.192\n", + "1969 46.144\n", + "1970 46.147\n", + "1971 46.185\n", + "1972 46.231\n", + "1973 46.255\n", + "1974 46.236\n", + "1975 46.156\n", + "1976 46.002\n", + "1977 45.776\n", + "1978 45.476\n", + "1979 45.096\n", + "1980 44.627\n", + "1981 44.064\n", + "1982 43.414\n", + "1983 42.684\n", + "1984 41.885\n", + "1985 41.011\n", + "1986 40.057\n", + "1987 39.034\n", + "1988 37.969\n", + "1989 36.898\n", + "1990 35.878\n", + "1991 34.971\n", + "1992 34.211\n", + "1993 33.609\n", + "1994 33.160\n", + "1995 32.831\n", + "1996 32.566\n", + "1997 32.301\n", + "1998 31.984\n", + "1999 31.595\n", + "2000 31.133\n", + "2001 30.620\n", + "2002 30.095\n", + "2003 29.585\n", + "2004 29.095\n", + "2005 28.620\n", + "2006 28.148\n", + "2007 27.660\n", + "2008 27.139\n", + "2009 26.579\n", + "2010 25.963\n", + "2011 25.276\n", + "2012 24.526\n", + "2013 23.735\n", + "2014 22.930\n", + "2015 22.158" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "birth_filename = 'C:/Users/dberny/Desktop/birthrates1.csv'\n", + "birth_table = read_csv(birth_filename, header = 1, index_col=0, usecols=[0, 226], skiprows=[2,3])\n", + "birthrate = birth_table.SYR/1000\n", + "birth_table\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#birth_table" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SYR
Country Code
196016.102
196115.583
196215.063
196314.543
196414.025
196513.509
196612.994
196712.481
196811.970
196911.464
197010.967
197110.484
197210.017
19739.568
19749.138
19758.730
19768.340
19777.966
19787.606
19797.260
19806.927
19816.608
19826.304
19836.015
19845.743
19855.489
19865.253
19875.038
19884.842
19894.665
19904.509
19914.372
19924.255
19934.153
19944.066
19953.991
19963.925
19973.867
19983.815
19993.767
20003.716
20013.651
20023.576
20033.497
20043.427
20053.396
20063.438
20073.572
20083.798
20094.103
20104.457
20114.818
20125.142
20135.391
20145.545
20155.589
\n", + "
" + ], + "text/plain": [ + " SYR\n", + "Country Code \n", + "1960 16.102\n", + "1961 15.583\n", + "1962 15.063\n", + "1963 14.543\n", + "1964 14.025\n", + "1965 13.509\n", + "1966 12.994\n", + "1967 12.481\n", + "1968 11.970\n", + "1969 11.464\n", + "1970 10.967\n", + "1971 10.484\n", + "1972 10.017\n", + "1973 9.568\n", + "1974 9.138\n", + "1975 8.730\n", + "1976 8.340\n", + "1977 7.966\n", + "1978 7.606\n", + "1979 7.260\n", + "1980 6.927\n", + "1981 6.608\n", + "1982 6.304\n", + "1983 6.015\n", + "1984 5.743\n", + "1985 5.489\n", + "1986 5.253\n", + "1987 5.038\n", + "1988 4.842\n", + "1989 4.665\n", + "1990 4.509\n", + "1991 4.372\n", + "1992 4.255\n", + "1993 4.153\n", + "1994 4.066\n", + "1995 3.991\n", + "1996 3.925\n", + "1997 3.867\n", + "1998 3.815\n", + "1999 3.767\n", + "2000 3.716\n", + "2001 3.651\n", + "2002 3.576\n", + "2003 3.497\n", + "2004 3.427\n", + "2005 3.396\n", + "2006 3.438\n", + "2007 3.572\n", + "2008 3.798\n", + "2009 4.103\n", + "2010 4.457\n", + "2011 4.818\n", + "2012 5.142\n", + "2013 5.391\n", + "2014 5.545\n", + "2015 5.589" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "death_filename = 'C:/Users/dberny/Desktop/deathrates1.csv'\n", + "death_table = read_csv(death_filename, header = 1, index_col=0, usecols=[0, 226], skiprows=[2,3])\n", + "deathrate = death_table.SYR/1000\n", + "death_table\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#death_table\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system = System(t0=1960, t_end=2015, p0=4573512, birthrate = birthrate, deathrate = deathrate)\n", + "def run_simulation(system):\n", + " model = TimeSeries()\n", + " model[1960]=4573512\n", + " for t in range(system.t0, system.t_end):\n", + " rate_birth = system.birthrate[t]\n", + " births = model[t]*rate_birth\n", + " deaths = model[t]*system.deathrate[t]\n", + " model[t+1] = model[t] + births - deaths\n", + " system.model = model\n", + " return model\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n0NbWxueff46bN28iNjYWc+fOxY0bN2BqagptbW0EBATgq6++Qnx8POLj4xEQEAAjIyOhF5qIiIga\nHqlUioSEBPz+++949uyZ0N60aVO89957aNq0qRyjq/9YGt1AiMVi9O/fH0eOHBGW83lZr1694O3t\njZ07d+Kbb75B06ZN4e7ujunTpwMoThD27t2Lr7/+GiNGjECbNm0wdepUmbGfq1atwsaNG7F48WJk\nZmbCxMREmF23Ktq1a4cDBw7Az89PWIanefPmGDRoED799FPhuBkzZiAnJwfLly9HWloaDAwMMHv2\nbIwYMeK13o+fnx+WL18OV1dXaGpqYtq0aYiKiqq0PLiwsBCOjo7CtpqaGtq2bYs1a9bggw8+qPK9\np06dim3btgk99tXl7e2NFStWYMSIEWjcuDG6dOmCuXPnYseOHcjOzq7SNTZs2IA1a9bg008/hVgs\nxtSpU6s0a3bJ+xaJRNDV1RWWhypZYggAPv74Y+Tl5WHPnj1YuXIlmjVrBg8PD0ybNg0A8Nlnn+Gf\nf/7B5MmToaCgADMzM6xduxaenp64efMmOnfujAkTJmDVqlUIDg7G1atXq/2OKjNjxgxcuHABX331\nFc6ePfvK96mhoQE3Nzds2LAB165dw9atW/H9999j7dq1GD9+vLC0wb59+6CrqwuguJd5/fr1GDNm\nDIqKitClSxd8++23VfqwgYiIiOqf/Px83LhxA8nJyUKbWCyGubk52rRpwwmx6oBIWp0aznokMTER\nffr0QWBgIAwNDeUdDsmRRCJBZGQkevXqJZSepKamwtHREQcOHKhwrC8RERER0esoLCzE77//LgzF\n09TUhJ2dHRo3biznyOqPV+V77I6gBk9BQQFz5szBli1b8OjRI8TExGDZsmVo3br1a5VaExERERFV\nRkFBAXZ2dhCLxTA2NkavXr2YBNexOk+E09LSsGDBAjg6OqJz586YPHmyzHqnLzt//jyGDRsGGxsb\n9O3bF99++60wkzEABAUFCTM5l/568uRJXTwO1QNaWlrYsWMHQkJCMHToULi5uUFRURHffffda8+c\nTERERERUIicnp8xEpo0bN4azszMsLCw4IZYc1OkY4aKiIsyaNQtSqRTbtm1Do0aN4OvriwkTJuDc\nuXNlJo4JCgrCF198gcWLF8PJyQnR0dHw8vJCfn6+MF70zp07MDc3x7fffitzbsnYPKKq6N69e5XH\n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\nAgC65FYQTktL09dff63Zs2d3OFZcXHzuuzoCAIBBqa2tTTt27FBVVZVmz56tyMhI5zGDwaBRo0ad\n/STMAgYAeIlbQfjuu+/WAw88oObmZl1xxRUaMWKEjh07pg0bNuiNN97QI488ooKCAuf7c3JyvNYw\nAADov+x2uyoqKlRSUqITJ05IkgoLCzVnzpzuPf/LLGAAgBe5FYSXLFkiSfrd736n9957z1lvH3r/\n2GOPOV8bDAaVlJR4uE0AANDfNTY2qrCwUHV1dS718PBwWa1W+fm5PayCWcAAAK9y6zvSO++84+0+\nAADAAGW1WrV7926VlZU5f0kuSaGhocrKylJsbGz3T8osYACAF7kVhGfMmOHtPgAAwABUU1Oj7du3\nq7m52VkzGAwaP368JkyYIF9f33M7MbOAAQBe1I01SgAAACft3r1bO3fudKlFRUUpOztb4eHhPTu5\n0ej6jHA7ZgEDADygT4PwihUrZLVa9eSTT3b5ns8++0yvvvqq9u/fr9jYWF133XX6z//8T+dvmDdu\n3Kjbbrutw+c2btyouLg4r/UOAMBQFxcXp9LSUtntdvn7+ys9PV0pKSnd2xSrK8wCBgB4UZ8EYbvd\nrhdeeEEffPCBrr322i7ft3HjRj344INatmyZLrjgAhUXF2v58uU6ceKE7rzzTklSaWmpMjIytGrV\nKpfPRkdHe/XPAADAUBceHq7x48fr+PHjyszMVGBgoGcvwCxgAICX9HoQPnDggJYtW6bdu3cr4SzP\n+bz//vu69NJLdcMNN0iSUlJStGfPHn300UfOILx7926lpqae20YcAADgrKxWq8rKyhQQEKAxY8a4\nHJs4caJn7gADANCLPBKE9+/fr1GjRrn13oKCAsXHx+v555/Xj370ozO+94c//KFCQkJcaj4+Pmpo\naHC+3r17ty6//PLuNw0AAM7qyJEjKiwsVHNzs/z8/BQXF6fg4GDn8bOG4Px8xygkk8mxAZbRyF1e\nAECfcysINzY26le/+pXy8/NlNpuddZvNppaWFtXW1ro9O3jBggVasGCBW+/Nzs52ed3U1KT33ntP\nc+bMkeT4DXV5ebmKiop05ZVXqq6uTllZWXrooYc0duxYt64BAAA6amtrU3FxsQ4ePOisWSwW7du3\nT+np6e6dJD/fdcOrysqTrwnDAIA+5OPOm5566il9+OGHSkpKkiQFBwcrPT1dra2tqqur089+9jOv\n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\n//33hxoZSdLZZ5+trVu3hu2/efPmUKO2s88+W0VFRWHz1Tdv3qy4uDhNmjSJOoOk46ux3lBjQwtB\nuBfp6el69tlntWnTJhUVFWnlypX6/PPPdcstt0iSZsyYoenTp+vOO+/Ujh07tGfPHt11110aO3Zs\nqKvvddddp3Xr1ulPf/qT8vPzdddddyk1NVUXXnjhQN4aBoneaqzTF198oaysrB7PQY3h2/RWY5de\neql8Pp9ycnK0b98+/fOf/9SyZct02mmn6dxzz5VEjeHb9VZj48aN0xdffKFHHnlERUVF+stf/qL/\n/M//1M0336z4+HhJ1BikPXv2aPXq1frRj36kK664QlVVVaGPlpYWXX311dq2bZsef/xxffXVV1q7\ndq127typa6+9VpI0bdo0TZ06VXfccYd2796tTZs26eGHH9b1118fmvdJnQ1vx1tjR4MaGzqYI9yL\nyy+/XFVVVcrNzdWhQ4c0efJkrV+/XuPGjZMUbLn+9NNP66GHHtLNN9+s9vZ2zZ49W6tWrQp90/3J\nT36iQ4cO6b//+7/V3Nys7OxsPf/8890m42N46q3GOlVVVSkhIaHHc1Bj+Da91ZjL5dIrr7yiVatW\n6aqrrpLdbtfs2bN19913h7qsUmP4Nr3VWHJycuhn5auvvqrU1FTddtttuu6660LnoMbw5z//WX6/\nX6+//nqo2VqnZcuW6dZbb9WTTz6phx9+WOvWrdO4ceP0zDPPaPz48ZKCv5M9+eST+uUvf6mrrrpK\ncXFxuvzyy/Wzn/0sdB7qbHg73ho7GtTY0GExxpiBvggAAAAAAPoLr0YDAAAAAIYVgjAAAAAAYFgh\nCAMAAAAAhhWCMAAAAABgWCEIAwAAAACGFYIwAAAAAGBYIQgDADDI5ebmauLEidq0aVOP43l5eZo4\ncaKeeuqpfr4yAACGJtYRBgBgkGtqatLFF18si8Wid955R3FxcaGxxsZGXXTRRUpLS9Pvf/97RURE\nDOCVAgAwNPBEGACAQS4+Pl6/+tWvVFpaqtWrV4eNrVq1Sg0NDXrwwQcJwQAAHCWCMAAAQ8C8efN0\n2WWX6ZVXXtHOnTslSVu3btVrr72mO++8U+PHjw/tu2HDBi1atEiTJ0/WggULtG7dOn3zBbBXX31V\nl112mc466yydeeaZ+uEPf6i//OUvofHXXntN06ZN0yuvvKJZs2bpnHPOUXFxcf/cLAAAfYxXowEA\nGCIaGhr0/e9/X2lpaXr11Vf1wx/+UElJSXrppZdksVgkSb/5zW/05JNP6rrrrtOcOXO0c+dOPfXU\nU7ruuuuUk5MjSXrhhRf0yCOPaNmyZTrrrLNUX1+v5557Tvn5+crLy1Nqaqpee+015ebmavz48crJ\nyVFdXZ0uvfTSgbx9AABOGNtAXwAAADg6CQkJ+uUvf6mf/exnuuGGG1RaWqpnnnkmFIIbGhr07LPP\n6pprrtEvfvELSdLcuXMVExOjRx99VEuWLJHL5VJJSYluuukmLV26NHRut9utyy+/XDt37tSFF14o\nSQoEAvqP//gPfec73+n/mwUAoA/xajQAAEPIBRdcoO9///vaunWr7r77bqWnp4fGtm/fLo/Ho/PO\nO08+ny/0cf7558vn8+mTTz6RJK1YsULLly9XQ0ODPvvsM7399tvasGGDJKm9vT3s3zvttNP67+YA\nAOgnPBEGAGCImTt3rv70pz9p3rx5Ydvr6+slSdddd12Px1VWVkqSCgoKlJubq82bN8tut2vcuHE6\n9dRTJanbXOLY2NgTfPUAAAw8gjAAACeJESNGSJLWrl2rUaNGdRt3uVzy+/1aunSp4uPj9cYbb2ji\nxImy2Wzas2ePNm7c2N+XDADAgODVaAAAThJTp05VZGSkqqurNWXKlNCHx+PRmjVrVF1drerqah08\neFBXXHGFzjjjDNlswb+Jf/jhh5KC84IBADjZ8UQYAICTREpKipYsWaJHHnlEDQ0Nys7OVklJiVav\nXq3ExERNmDBBkZGRcrvdWr9+vRwOh+Lj4/Xhhx/qd7/7nSSptbV1gO8CAIC+xxNhAABOIjk5OVq+\nfLk2btyom266SWvWrNH8+fO1fv162e12WSwWPfXUU3I4HPr5z3+u5cuX6/PPP9ezzz6rzMxMbdu2\nbaBvAQCAPsc6wgAAAACAYYUnwgAAAACAYYUgDAAAAAAYVgjCAAAAAIBhhSAMAAAAABhWCMIAAAAA\ngGGFIAwAAAAAGFYIwgAAAACAYYUgDAAAAAAYVgjCAAAAAIBh5f8DW7RIuzbBtcUAAAAASUVORK5C\nYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "simulation = run_simulation(system)\n", + "newfig()\n", + "plot(tables, 'ro', label = 'Population of Syria') \n", + "plot(simulation, '--', color='gray', label='Model Using Birth and Death Rates')\n", + "decorate(xlabel='Year', ylabel='Syria population (1e7)', title='Population Growth in Syria', )\n", + "plt.rcParams[\"figure.figsize\"] = [16,9]\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/code/Project1.ipynb b/code/Project1.ipynb new file mode 100644 index 00000000..387df96b --- /dev/null +++ b/code/Project1.ipynb @@ -0,0 +1,76 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'xlrd'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mpandas\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpyplot\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mxlrd\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 5\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'matplotlib inline'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmath\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'xlrd'" + ] + } + ], + "source": [ + "# import numpy as np\n", + "# import pandas as pd\n", + "# import matplotlib.pyplot as plt\n", + "# import xlrd\n", + "# %matplotlib inline\n", + "# import math\n", + "# from modsim import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# import csv\n", + "# with open('popdata.csv', newline='') as csvfile:\n", + "# spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')\n", + "# for row in spamreader:\n", + "# print(', '.join(row))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/code/chap01_fig01.pdf b/code/chap01_fig01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b32f1498152e23024db88ec2fbb0520b7eabf8f7 GIT binary patch literal 15066 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 G$o~TixXhXW literal 0 HcmV?d00001 diff --git a/code/chap02mine.ipynb b/code/chap02mine.ipynb index 877b79f8..7dba6ded 100644 --- a/code/chap02mine.ipynb +++ b/code/chap02mine.ipynb @@ -3205,7 +3205,9 @@ { "cell_type": "code", "execution_count": 24, - "metadata": {}, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "# Solution goes here\n", @@ -8421,7 +8423,9 @@ { "cell_type": "code", "execution_count": 221, - "metadata": {}, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "def decorate_unhappy(xlabel):\n", diff --git a/code/chap03-fig01.pdf b/code/chap03-fig01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..71c00cb200965452d58d7b261016e1856bb1f910 GIT binary patch literal 16801 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 literal 0 HcmV?d00001 diff --git a/code/chap03-fig04.pdf b/code/chap03-fig04.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7ccb708f67b1e7ff233fdda9ca8164601e4f9468 GIT binary patch literal 18591 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 AS^xk5 literal 0 HcmV?d00001 diff --git a/code/chap03mine.ipynb b/code/chap03mine.ipynb index 654e172f..31ae4d6f 100644 --- a/code/chap03mine.ipynb +++ b/code/chap03mine.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 39, "metadata": { "collapsed": true }, @@ -48,7 +48,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 40, "metadata": { "collapsed": true }, @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 41, "metadata": { "collapsed": true }, @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 42, "metadata": { "scrolled": true }, @@ -265,7 +265,7 @@ "1954 NaN NaN " ] }, - "execution_count": 4, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -284,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 43, "metadata": { "scrolled": true }, @@ -462,7 +462,7 @@ "2015 NaN NaN " ] }, - "execution_count": 5, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -480,7 +480,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 44, "metadata": { "collapsed": true }, @@ -504,7 +504,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 45, "metadata": {}, "outputs": [ { @@ -1611,7 +1611,7 @@ "[66 rows x 11 columns]" ] }, - "execution_count": 7, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -1629,7 +1629,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 46, "metadata": {}, "outputs": [ { @@ -1700,7 +1700,7 @@ "Name: census, Length: 66, dtype: int64" ] }, - "execution_count": 8, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -1721,7 +1721,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 47, "metadata": {}, "outputs": [ { @@ -1743,7 +1743,7 @@ " 7256490011], dtype=int64)" ] }, - "execution_count": 9, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -1761,7 +1761,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -1776,7 +1776,7 @@ " dtype='int64', name='Year')" ] }, - "execution_count": 10, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -1800,7 +1800,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 49, "metadata": {}, "outputs": [ { @@ -1809,7 +1809,7 @@ "pandas.core.frame.DataFrame" ] }, - "execution_count": 11, + "execution_count": 49, "metadata": {}, "output_type": "execute_result" } @@ -1820,7 +1820,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 50, "metadata": {}, "outputs": [ { @@ -1829,7 +1829,7 @@ "pandas.core.series.Series" ] }, - "execution_count": 12, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } @@ -1840,7 +1840,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 51, "metadata": {}, "outputs": [ { @@ -1849,7 +1849,7 @@ "pandas.core.indexes.numeric.Int64Index" ] }, - "execution_count": 13, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } @@ -1860,7 +1860,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 52, "metadata": {}, "outputs": [ { @@ -1869,7 +1869,7 @@ "numpy.ndarray" ] }, - "execution_count": 14, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -1889,7 +1889,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 53, "metadata": { "collapsed": true }, @@ -1919,7 +1919,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 54, "metadata": { "scrolled": false }, @@ -1933,9 +1933,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEPCAYAAACqZsSmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdUFdf6//H3oXepggg2BHuhqGAh9hqJJZoI9l7Sbkyu\nJvFrmteSxNi9aqyJMYmaYIlRkxi714YYxVCsKCpVeoczvz/8ebxcJB4UOJTntRZrwZ4zM88ofM6c\nmT17qxRFURBCCFGj6Om6ACGEEBVPwl8IIWogCX8hhKiBJPyFEKIGMtB1AdrIyckhLCwMBwcH9PX1\ndV2OEEJUeoWFhSQkJNCyZUtMTEyKLa8S4R8WFkZQUJCuyxBCiCrn22+/xcfHp1h7lQh/BwcH4OFB\nODk56bgaIYSo/GJjYwkKCtLk5/+qEuH/6FKPk5MTLi4uOq5GCCGqjpIulcsNXyGEqKLupd8jPjP+\nmdaV8BdCiCroRvINPj/5OUtPLyUlJ6XU60v4CyFEFROVFMWS/ywhKz+LpKwk1oWso7Qj9Uj4CyFE\nFeNg5oClsSUAlsaWjGg5ApVKVaptSPgLIUQVY2Nqw1u+b1HHzJVBtSfgWsu11NuQ8BdCiEouvzC/\n2GWd2ua1mdvtfaKvKGRm5pV6mxL+QghRiUWnRPPJ0U84dedUsWV6enoMHOjGwYO3Sr3dKtHPXwgh\nahq1oubX67+yO2I3akXNd5e/I/22JX06tSpyfd/KyphBg9xLvX0JfyGEqGSSs5PZdHETkYmRAGRm\n5XMjKpnY2FNYG9jj6+tc5PV6eqW72QsS/kIIUamE3g/l6z+/Jis/S9NWmGhD43t9MVVb8/33ETRt\naou1dfHB2kpDwl8IISqB3IJcdvy1g+PRxzVtKpWKfo370atnX+b/6xzJyTn0798IKyvj596fhL8Q\nQujYndQ7rL+wntiMWBQe9uqxNbVlgucE3O0eXs+fOLEVRkb6ODtblMk+K7S3z5kzZ2jSpMkTv0aP\nHl2RpVQ63bt3Z/Xq1Voty83NZfny5fTp04eWLVvSoUMHpk2bRlhY2FP3k5GRwdKlS+nXrx9t2rTB\n39+fmTNncvPmzTI7FiGE9tSKmjXn1xCbEUtuXiFXwpIwS27I3BfmaoIfoEGDWmUW/FDB4e/p6cmJ\nEyeKfC1atAg9PT0mTZpUkaVUae+//z4HDhzggw8+4MCBA2zYsAFTU1NGjhzJ9evXS1wvMTGRIUOG\ncOTIEWbOnMnPP//MsmXLSE9P59VXX+Xq1asVeBRCCAA9lR6j2owiK6uAP0MeYH+3M7mnvXkQV1i+\n+y3Xrf8PIyMjHBwcNF8mJiZ88cUXTJgwgS5dulRkKVVWRkYG+/bt45133sHf3x8XFxdatmzJ559/\njp2dHdu3by9x3Y8++ghFUdi6dSs9e/bE1dUVT09PVq1ahaOjI4sWLarAIxFCPNLUvinj24+iv8Uk\nnPJboKhVREY+KNd96vQhr9WrV2NkZMSMGTN0WUaVo6enx4kTJygsfHxmoK+vz5YtW5g8efIT10lI\nSODQoUOMGTMGC4uiHx0NDQ1ZvHgxc+bM0bRFRUUxYcIEzaWhuXPnkpaWplnevXt3Nm7cyNSpU2nT\npg2dOnVi5cqVmuWJiYm89tprtG/fnrZt2zJ27FjCw8M1y5s0acLu3buL1PHfbTdu3GD8+PF4eXnh\n7e3N9OnTiYmJeYZ/LSEqj/zCfL4P+56w+OKXaLs17MobE/ypU8ect9/2pkeP+uVai87CPykpia1b\ntzJjxgxMTU3LZR97915nypRfmTLlV/buLX45ZMeOSM3y3367VWz51q1/aZYfP148eNavv6RZfvbs\n/fI4hGIsLCwIDAzk22+/xd/fn3/+85/s2LGDe/fu4eLigp2d3RPXCw8PR61W06ZNmycud3d3p0GD\nBgDExcUxatQoPDw8CA4OZvny5Vy7do3XXnutyDrLli2jW7du/Pzzz4wdO5YVK1Zw/vx5AD7++GMK\nCgr47rvv+OmnnzA3N+f111/X+jjfeecdnJ2dCQ4O5ttvvyU5OZn3339f6/WFqGzupd9j/vH5HL55\nmPXnN3LkP8Uvszo6mvPhhx3x8LAt93pK1dsnJyeHuLg40tPTsbGxwcHBASMjo2fa8XfffYednR0B\nAQHPtH5NNmfOHFq3bs3OnTv55Zdf2L17NyqVit69e/Ovf/0LS0vLYus8Omu3srJ66va3bduGi4sL\ns2bN0rQtWbIEf39/QkND8fT0BKBbt2688sorAEyaNIl169Zx8eJFfHx8iI6OpkmTJri4uGBsbMwn\nn3zCtWvXUKvV6Ok9/ZwjOjqaTp06UbduXQwMDPj8889JTEzU6t9HiMpEURSO3DrCzr92UqAuIDUt\nl7OR94lM2Y6TzVSaNi16wlba0Tmf1VPDPy8vj507d/Lzzz9z6dKlYpca2rdvT58+fRg8eHCp3gj2\n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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1957,7 +1957,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 55, "metadata": { "collapsed": true }, @@ -1968,7 +1968,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 56, "metadata": { "collapsed": true }, @@ -1988,7 +1988,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 57, "metadata": {}, "outputs": [ { @@ -1997,7 +1997,7 @@ "1.2862470293832287" ] }, - "execution_count": 20, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" } @@ -2019,8 +2019,9 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 58, "metadata": { + "collapsed": true, "scrolled": true }, "outputs": [], @@ -2032,8 +2033,9 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 59, "metadata": { + "collapsed": true, "scrolled": true }, "outputs": [], @@ -2045,7 +2047,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 60, "metadata": { "scrolled": true }, @@ -2056,7 +2058,7 @@ "1.2862470293832287" ] }, - "execution_count": 57, + "execution_count": 60, "metadata": {}, "output_type": "execute_result" } @@ -2070,7 +2072,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 61, "metadata": {}, "outputs": [ { @@ -2079,7 +2081,7 @@ "1.2813631502151765" ] }, - "execution_count": 59, + "execution_count": 61, "metadata": {}, "output_type": "execute_result" } @@ -2109,7 +2111,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 62, "metadata": {}, "outputs": [ { @@ -2118,7 +2120,7 @@ "2.5576286540000002" ] }, - "execution_count": 84, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" } @@ -2136,7 +2138,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 63, "metadata": {}, "outputs": [ { @@ -2145,7 +2147,7 @@ "7.2564900110000004" ] }, - "execution_count": 85, + "execution_count": 63, "metadata": {}, "output_type": "execute_result" } @@ -2163,7 +2165,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 64, "metadata": {}, "outputs": [ { @@ -2172,7 +2174,7 @@ "(1950, 2015)" ] }, - "execution_count": 86, + "execution_count": 64, "metadata": {}, "output_type": "execute_result" } @@ -2194,7 +2196,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 65, "metadata": {}, "outputs": [ { @@ -2203,7 +2205,7 @@ "0.07229017472307693" ] }, - "execution_count": 87, + "execution_count": 65, "metadata": {}, "output_type": "execute_result" } @@ -2224,7 +2226,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 66, "metadata": { "collapsed": true }, @@ -2242,7 +2244,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 67, "metadata": {}, "outputs": [ { @@ -2283,7 +2285,7 @@ "dtype: float64" ] }, - "execution_count": 89, + "execution_count": 67, "metadata": {}, "output_type": "execute_result" } @@ -2302,8 +2304,10 @@ }, { "cell_type": "code", - "execution_count": 90, - "metadata": {}, + "execution_count": 68, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "for t in linrange(1950, 2015):\n", @@ -2319,7 +2323,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 69, "metadata": {}, "outputs": [ { @@ -2331,9 +2335,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nBM33y9YAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2368,7 +2372,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 70, "metadata": {}, "outputs": [ { @@ -2380,9 +2384,9 @@ }, { "data": { - "image/png": "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\nhJAJ6P8DxzZf4/4x3I8AAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2394,13 +2398,18 @@ "total_growth = census[last_year] - census[1965]\n", "elapsed_time = last_year - 1965\n", "annual_growth = total_growth / elapsed_time\n", - "#annual_growth\n", + "annual_growth\n", "\n", "#add = (t - 1965)*annual_growth\n", "\n", - "for t in linrange(1950, 2015):\n", - " add = (t - 1965)*annual_growth\n", - " results[t] = results[1965] + add\n", + "for i in linrange(1950, 1965):\n", + " results[i+1] = census[1965]\n", + "for t in linrange(1965, 2015):\n", + " results[t+1] = results[t] + annual_growth\n", + "\n", + "# for t in linrange(1950, 2015):\n", + "# add = (t - 1965)*annual_growth\n", + "# results[t] = results[1965] + add\n", " \n", "newfig()\n", "plot_estimates(table2)\n", @@ -2554,7 +2563,9 @@ { "cell_type": "code", "execution_count": 117, - "metadata": {}, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "#help(decorate)" @@ -2564,6 +2575,7 @@ "cell_type": "code", "execution_count": 118, "metadata": { + "collapsed": true, "scrolled": true }, "outputs": [], @@ -3030,7 +3042,7 @@ }, { "cell_type": "code", - "execution_count": 167, + "execution_count": 1, "metadata": { "collapsed": true, "scrolled": false @@ -3050,7 +3062,9 @@ { "cell_type": "code", "execution_count": 169, - "metadata": {}, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "# Solution goes here\n" @@ -3257,7 +3271,9 @@ { "cell_type": "code", "execution_count": 182, - "metadata": {}, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "# Solution goes here\n", @@ -3865,7 +3881,7 @@ "source": [ "# Solution goes here\n", "newfig()\n", - "plot_prehistory(table1)\n", + "plot_prehistory(table1)o\n", "plot(pop_sys.results, label='model')\n", "decorate(xlim=[1950, 2000], xlabel='Year', \n", " ylabel='World population (millions)',\n", @@ -3875,7 +3891,9 @@ { "cell_type": "code", "execution_count": 248, - "metadata": {}, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "# Solution goes here\n" diff --git a/code/chap04-fig01.pdf b/code/chap04-fig01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..78f6ddf0c04f2bd35d57fa3058a49762a0582961 GIT binary patch literal 17620 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 Fe*k@s^(X)U literal 0 HcmV?d00001 diff --git a/code/chap05-fig01.pdf b/code/chap05-fig01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..98a7347dcbd6781f0cc2a49cf4da57209768eced GIT binary patch literal 17122 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 literal 0 HcmV?d00001 diff --git a/code/chap05-fig03.pdf b/code/chap05-fig03.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5b344c450cbe6814114d752f059e57136c905da7 GIT binary patch literal 12447 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 literal 0 HcmV?d00001 diff --git a/code/chap05-fig04.pdf b/code/chap05-fig04.pdf new file mode 100644 index 0000000000000000000000000000000000000000..269385632a21388bd39c19c10d2cdcef37012925 GIT binary patch literal 15330 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 literal 0 HcmV?d00001 diff --git a/code/chap05-fig07.pdf b/code/chap05-fig07.pdf new file mode 100644 index 0000000000000000000000000000000000000000..83e5bb26b2bed9c8f2eb23d2b905444e6ff5d0f5 GIT binary patch literal 11607 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
|y1N!cn?Cp4vC^ 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\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook develops a simple growth model, like the ones in Chapter 3, and uses it to demonstrate a parameter sweep.\n", + "\n", + "The system we'll model is a rabbit farm. Suppose you start with an initial population of rabbits and let them breed. For simplicity, we'll assume that all rabbits are on the same breeding cycle, and we'll measure time in \"seasons\", where a season is the reproductive time of a rabbit.\n", + "\n", + "If we provide all the food, space and other resources a rabbit might need, we expect the number of new rabbits each season to be proportional to the current population, controlled by a parameter, `birth_rate`, that represents the number of new rabbits per existing rabbit, per season. As a starting place, I'll assume `birth_rate = 0.9`.\n", + "\n", + "Sadly, during each season, some proportion of the rabbits die. In a detailed model, we might keep track of each rabbit's age, because the chance of dying is probably highest for young and old rabbits, and lowest in between. But for simplicity, we'll model the death process with a single parameter, `death_rate`, that represent the number\n", + "of deaths per rabbit per season. As a starting place, I'll assume `death_rate = 0.5`.\n", + "\n", + "Here's a system object that contains these parameters as well as:\n", + "\n", + "* The initial population, `p0`,\n", + "* The initial time, `t0`, and\n", + "* The duration of the simulation, `t_end`, measured in seasons." + ] + }, + { + "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", + "
value
t00.0
t_end10.0
p010.0
birth_rate0.9
death_rate0.5
\n", + "
" + ], + "text/plain": [ + "t0 0.0\n", + "t_end 10.0\n", + "p0 10.0\n", + "birth_rate 0.9\n", + "death_rate 0.5\n", + "dtype: float64" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(t0 = 0, \n", + " t_end = 10,\n", + " p0 = 10,\n", + " birth_rate = 0.9,\n", + " death_rate = 0.5)\n", + "\n", + "system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a version of run_simulation, similar to the one in Chapter 3, with both births and deaths proportional to the current population." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system):\n", + " \"\"\"Runs a proportional growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: System object with t0, t_end, p0,\n", + " birth_rate and death_rate\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " births = system.birth_rate * results[t]\n", + " deaths = system.death_rate * results[t]\n", + " results[t+1] = results[t] + births - deaths\n", + " system.results = results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run the simulation and display the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
010.000000
114.000000
219.600000
327.440000
438.416000
553.782400
675.295360
7105.413504
8147.578906
9206.610468
10289.254655
11404.956517
\n", + "
" + ], + "text/plain": [ + "0 10.000000\n", + "1 14.000000\n", + "2 19.600000\n", + "3 27.440000\n", + "4 38.416000\n", + "5 53.782400\n", + "6 75.295360\n", + "7 105.413504\n", + "8 147.578906\n", + "9 206.610468\n", + "10 289.254655\n", + "11 404.956517\n", + "dtype: float64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(system)\n", + "system.results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that the simulation actually runs one season past `t_end`. That's an off-by-one error that I'll fix later, but for now we don't really care.\n", + "\n", + "The following function plots the results." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(system, title=None):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " system: System object with `results`\n", + " \"\"\"\n", + " newfig()\n", + " plot(system.results, 'bo', label='rabbits')\n", + " decorate(xlabel='Season', \n", + " ylabel='Rabbit population',\n", + " title=title)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's how we call it." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nyIIo+AAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system, title='Proportional growth model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's suppose our goal is to maximize the number of rabbits, so the metric we care about is the final population. We can extract it from the results like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def final_population(system):\n", + " t_end = system.results.index[-1]\n", + " return system.results[t_end]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And call it like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "404.95651696640027" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_population(system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To explore the effect of the parameters on the results, we'll define `make_system`, which takes the system parameters as function parameters(!) and returns a `System` object:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(birth_rate=0.9, death_rate=0.5):\n", + " \n", + " system = System(t0 = 0, \n", + " t_end = 10,\n", + " p0 = 10,\n", + " birth_rate = birth_rate,\n", + " death_rate = death_rate)\n", + " return system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can make a `System`, run a simulation, and extract a metric:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "404.95651696640027" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = make_system()\n", + "run_simulation(system)\n", + "final_population(system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To see the relationship between `birth_rate` and final population, we'll define `sweep_birth_rate`:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_birth_rate(birth_rates, death_rate=0.5):\n", + " \n", + " for birth_rate in birth_rates:\n", + " system = make_system(birth_rate=birth_rate,\n", + " death_rate=death_rate)\n", + " run_simulation(system)\n", + " p_end = final_population(system)\n", + " plot(birth_rate, p_end, 'gs', label='rabbits')\n", + " \n", + " decorate(xlabel='Births per rabbit per season',\n", + " ylabel='Final population')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first parameter of `sweep_birth_rate` is supposed to be an array; we can use `linspace` to make one." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0. , 0.05, 0.1 , 0.15, 0.2 , 0.25, 0.3 , 0.35, 0.4 ,\n", + " 0.45, 0.5 , 0.55, 0.6 , 0.65, 0.7 , 0.75, 0.8 , 0.85,\n", + " 0.9 , 0.95, 1. ])" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "birth_rates = linspace(0, 1, 21)\n", + "birth_rates" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can call `sweep_birth_rate`.\n", + "\n", + "The resulting figure shows the final population for a range of values of `birth_rate`.\n", + "\n", + "Confusingly, the results from a parameter sweep sometimes resemble a time series. It is very important to remember the difference. One way to avoid confusion: LABEL THE AXES.\n", + "\n", + "In the following figure, the x-axis is `birth_rate`, NOT TIME." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "birth_rates = linspace(0, 1, 21)\n", + "sweep_birth_rate(birth_rates)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The code to sweep the death rate is similar." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_death_rate(death_rates, birth_rate=0.9):\n", + " \n", + " for death_rate in death_rates:\n", + " system = make_system(birth_rate=birth_rate,\n", + " death_rate=death_rate)\n", + " run_simulation(system)\n", + " p_end = final_population(system)\n", + " plot(death_rate, p_end, 'r^', label='rabbits')\n", + " \n", + " decorate(xlabel='Deaths per rabbit per season',\n", + " ylabel='Final population')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here are the results. Again, the x-axis is `death_rate`, NOT TIME." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "death_rates = linspace(0.1, 1, 20)\n", + "sweep_death_rate(death_rates)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the previous sweeps, we hold one parameter constant and sweep the other.\n", + "\n", + "You can also sweep more than one variable at a time, and plot multiple lines on a single axis.\n", + "\n", + "To keep the figure from getting too cluttered, I'll reduce the number of values in `birth_rates`:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.4, 0.6, 0.8, 1. ])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "birth_rates = linspace(0.4, 1, 4)\n", + "birth_rates" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By putting one for loop inside another, we can enumerate all pairs of values.\n", + "\n", + "The results show 4 lines, one for each value of `birth_rate`.\n", + "\n", + "(I did not plot the lines between the data points because of a limitation in `plot`.)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nRK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for birth_rate in birth_rates:\n", + " for death_rate in death_rates:\n", + " system = make_system(birth_rate=birth_rate,\n", + " death_rate=death_rate)\n", + " run_simulation(system)\n", + " p_end = final_population(system)\n", + " plot(death_rate, p_end, 'c^', label='rabbits')\n", + " \n", + "decorate(xlabel='Deaths per rabbit per season',\n", + " ylabel='Final population')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you suspect that the results depend on the difference between `birth_rate` and `death_rate`, you could run the same loop, plotting the \"net birth rate\" on the x axis.\n", + "\n", + "If you are right, the results will fall on a single curve, which means that knowing the difference is sufficient to predict the outcome; you don't actually have to know the two parameters separately." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for birth_rate in birth_rates:\n", + " for death_rate in death_rates:\n", + " system = make_system(birth_rate=birth_rate,\n", + " death_rate=death_rate)\n", + " run_simulation(system)\n", + " p_end = final_population(system)\n", + " net_birth_rate = birth_rate - death_rate\n", + " plot(net_birth_rate, p_end, 'mv', label='rabbits')\n", + " \n", + "decorate(xlabel='Net births per rabbit per season',\n", + " ylabel='Final population')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On the other hand, if you guess that the results depend on the ratio of the parameters, rather than the difference, you could check by plotting the ratio on the x axis.\n", + "\n", + "If the results don't fall on a single curve, that suggests that the ratio alone is not sufficient to predict the outcome. " + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nM2fOHJo0aUJ6enqV11lZmX483M37aG9vT3BwMLt37zZpzX7zzTcm54WGhnLu3Dn8/Pzo2LGj+mfr\n1nmdCl8AAAL+SURBVK3q38GBAwdo1qwZL774opqIdDodBw4cuKP/HyqzefNm+vTpg16vx87OjrCw\nMN566y2AW75HovpIMhJ1xj/+8Q9sbW2ZO3cuRqNR7a9/6623+Omnn9i9ezdjx47l+PHjKIpCUVER\nAI0bNyYnJ4fk5GSysrIq1BsdHU1+fj5jx47lq6++4quvvmLs2LEUFBRUuXutlZUVU6dO5bvvvmP6\n9Ol8//33bNu2jaioKB588EGGDBlyx/e3adMmNmzYwN69e4mJieHkyZPExMTcUR23u9fKdO7cWZ0M\n8fXXX/Pjjz8ya9Ys8vPzefzxx6u8rkmTJvz+++/s37+foqKiu3ofAV5++WVOnjzJlClT+P7779mw\nYUOFyQ4RERHo9XpeeOEFvvzyS/bt28f06dPZunUrbdu2BcpaLlevXmXBggXs37+f7du3Ex4eTk5O\nDoWFhSbv0blz5/jxxx/VKd+3U56so6OjSU5OZu/evbz22mvY29urE2pEzZJkJOoMX19fRo0axYkT\nJ9iyZYv6vExqairjxo1j/vz5eHl5qVOoy5d3GTJkCF5eXkRHR7N9+/YK9fr7+/PRRx/h5OTEjBkz\neO2112jWrBkJCQn4+/tXGc+wYcNYvHgxJ0+eJCoqiqVLl9KnTx+2bNliMohvrjlz5rB9+3YmTJhA\nWloaq1atIiws7I7quN29VsbFxYX169fTuHFjXn/9dcaPH8/Ro0dZvnw5Xbt2rfK6iIgIcnJyePHF\nF/n999/v+n0MCQlh7dq1pKenM2nSJLZu3cq8efNMzmnRogWffPIJ7u7uxMbGEhUVxenTp1m8eDHP\nPPOMeu/R0dF88cUXREZGsnz5ckJCQnjzzTfJzc3l3LlzAIwYMQJbW1vGjRvHDz/8YNZ71KZNG9as\nWUN+fj4vv/wykyZNIi8vjw8++AAfHx+z6hD3RrYdF0IIYXHSMhJCCGFxkoyEEEJYnCQjIYQQFifJ\nSAghhMVJMhJCCGFxkoyEEEJYnCQjIYQQFifJSAghhMX9fynbOMZMAneAAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for birth_rate in birth_rates:\n", + " for death_rate in death_rates:\n", + " system = make_system(birth_rate=birth_rate,\n", + " death_rate=death_rate)\n", + " run_simulation(system)\n", + " p_end = final_population(system)\n", + " birth_ratio = birth_rate / death_rate\n", + " plot(birth_ratio, p_end, 'y>', label='rabbits')\n", + " \n", + "decorate(xlabel='Ratio of births to deaths',\n", + " ylabel='Final population')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/rabbits2.ipynb b/code/rabbits2.ipynb deleted file mode 100644 index f77cb8cf..00000000 --- a/code/rabbits2.ipynb +++ /dev/null @@ -1,399 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Modeling and Simulation in Python\n", - "\n", - "Rabbit example\n", - "\n", - "Copyright 2017 Allen Downey\n", - "\n", - "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "\n", - "from modsim import *" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Rabbit Redux\n", - "\n", - "This notebook starts with a version of the rabbit population growth model and walks through some steps for extending it.\n", - "\n", - "In the original model, we treat all rabbits as adults; that is, we assume that a rabbit is able to breed in the season after it is born. In this notebook, we extend the model to include both juvenile and adult rabbits.\n", - "\n", - "As an example, let's assume that rabbits take 3 seasons to mature. We could model that process explicitly by counting the number of rabbits that are 1, 2, or 3 seasons old. As an alternative, we can model just two stages, juvenile and adult. In the simpler model, the maturation rate is 1/3 of the juveniles per season.\n", - "\n", - "To implement this model, make these changes in the System object:\n", - "\n", - "0. Before you make any changes, run all cells and confirm your understand them.\n", - "\n", - "1. Then, add a second initial populations: `juvenile_pop0`, with value `0`.\n", - "\n", - "2. Add an additional variable, `mature_rate`, with the value `0.33`." - ] - }, - { - "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", - "
value
t00.0
t_end10.0
adult_pop010.0
birth_rate0.9
death_rate0.5
\n", - "
" - ], - "text/plain": [ - "t0 0.0\n", - "t_end 10.0\n", - "adult_pop0 10.0\n", - "birth_rate 0.9\n", - "death_rate 0.5\n", - "dtype: float64" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "system = System(t0 = 0, \n", - " t_end = 10,\n", - " adult_pop0 = 10,\n", - " birth_rate = 0.9,\n", - " death_rate = 0.5)\n", - "\n", - "system" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now update `run_simulation` with the following changes:\n", - "\n", - "1. Add a second TimeSeries, named `juveniles`, to keep track of the juvenile population, and initialize it with `juvenile_pop0`.\n", - "\n", - "2. Inside the for loop, compute the number of juveniles that mature during each time step.\n", - "\n", - "3. Also inside the for loop, add a line that stores the number of juveniles in the new `TimeSeries`. For simplicity, let's assume that only adult rabbits die.\n", - "\n", - "4. During each time step, subtract the number of maturations from the juvenile population and add it to the adult population.\n", - "\n", - "5. After the for loop, store the `juveniles` `TimeSeries` as a variable in `System`." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def run_simulation(system):\n", - " \"\"\"Runs a proportional growth model.\n", - " \n", - " Adds TimeSeries to `system` as `results`.\n", - " \n", - " system: System object with t0, t_end, p0,\n", - " birth_rate and death_rate\n", - " \"\"\"\n", - " adults = TimeSeries()\n", - " adults[system.t0] = system.adult_pop0\n", - " \n", - " for t in linrange(system.t0, system.t_end):\n", - " births = system.birth_rate * adults[t]\n", - " deaths = system.death_rate * adults[t]\n", - " \n", - " adults[t+1] = adults[t] + births - deaths\n", - " \n", - " system.adults = adults" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Test your changes in `run_simulation`:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
value
010.000000
114.000000
219.600000
327.440000
438.416000
553.782400
675.295360
7105.413504
8147.578906
9206.610468
10289.254655
11404.956517
\n", - "
" - ], - "text/plain": [ - "0 10.000000\n", - "1 14.000000\n", - "2 19.600000\n", - "3 27.440000\n", - "4 38.416000\n", - "5 53.782400\n", - "6 75.295360\n", - "7 105.413504\n", - "8 147.578906\n", - "9 206.610468\n", - "10 289.254655\n", - "11 404.956517\n", - "dtype: float64" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "run_simulation(system)\n", - "system.adults" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, update `plot_results` to plot both the adult and juvenile `TimeSeries`." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def plot_results(system, title=None):\n", - " \"\"\"Plot the estimates and the model.\n", - " \n", - " system: System object with `results`\n", - " \"\"\"\n", - " newfig()\n", - " plot(system.adults, 'bo-', label='adults')\n", - " decorate(xlabel='Season', \n", - " ylabel='Rabbit population',\n", - " title=title)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And test your updated version of `plot_results`." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_results(system, title='Proportional growth model')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This notebook demonstrates the steps we recommend for starting your project:\n", - "\n", - "1. Start with one of the examples from the book, either by copying a notebook or pasting code into a new notebook. Get the code working before you make any changes.\n", - "\n", - "2. Make one small change, and run the code again.\n", - "\n", - "3. Repeat step 2 until you have a basic implementation of your model.\n", - "\n", - "If you start with working code that you understand and make small changes, you can avoid spending a lot of time debugging.\n", - "\n", - "One you have a basic model working, you can think about what metrics to measure, what parameters to sweep, and how to use the model to predict, explain, or design." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Bonus question\n", - "\n", - "Suppose you only have room for 30 adult rabbits. Whenever the adult population exceeds 30, you take any excess rabbits to market (as pets for kind children, of course). Modify `run_simulation` to model this strategy. What effect does it have on the behavior of the system? You might have to run for more than 10 seasons to see what happens." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "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.6.1" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/code/rabbits2mine.ipynb b/code/rabbits2mine.ipynb new file mode 100644 index 00000000..3d685fff --- /dev/null +++ b/code/rabbits2mine.ipynb @@ -0,0 +1,377 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Rabbit example\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Rabbit Redux\n", + "\n", + "This notebook starts with a version of the rabbit population growth model and walks through some steps for extending it.\n", + "\n", + "In the original model, we treat all rabbits as adults; that is, we assume that a rabbit is able to breed in the season after it is born. In this notebook, we extend the model to include both juvenile and adult rabbits.\n", + "\n", + "As an example, let's assume that rabbits take 3 seasons to mature. We could model that process explicitly by counting the number of rabbits that are 1, 2, or 3 seasons old. As an alternative, we can model just two stages, juvenile and adult. In the simpler model, the maturation rate is 1/3 of the juveniles per season.\n", + "\n", + "To implement this model, make these changes in the System object:\n", + "\n", + "0. Before you make any changes, run all cells and confirm your understand them.\n", + "\n", + "1. Then, add a second initial populations: `juvenile_pop0`, with value `0`.\n", + "\n", + "2. Add an additional variable, `mature_rate`, with the value `0.33`." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "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", + "
value
t00.00
t_end25.00
adult_pop010.00
birth_rate0.90
death_rate0.50
juvenile_pop00.00
mature_rate0.33
\n", + "
" + ], + "text/plain": [ + "t0 0.00\n", + "t_end 25.00\n", + "adult_pop0 10.00\n", + "birth_rate 0.90\n", + "death_rate 0.50\n", + "juvenile_pop0 0.00\n", + "mature_rate 0.33\n", + "dtype: float64" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(t0 = 0, \n", + " t_end = 25,\n", + " adult_pop0 = 10,\n", + " birth_rate = 0.9,\n", + " death_rate = 0.5,\n", + " juvenile_pop0 = 0,\n", + " mature_rate = 0.33)\n", + "\n", + "system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now update `run_simulation` with the following changes:\n", + "\n", + "1. Add a second TimeSeries, named `juveniles`, to keep track of the juvenile population, and initialize it with `juvenile_pop0`.\n", + "\n", + "2. Inside the for loop, compute the number of juveniles that mature during each time step.\n", + "\n", + "3. Also inside the for loop, add a line that stores the number of juveniles in the new `TimeSeries`. For simplicity, let's assume that only adult rabbits die.\n", + "\n", + "4. During each time step, subtract the number of maturations from the juvenile population and add it to the adult population.\n", + "\n", + "5. After the for loop, store the `juveniles` `TimeSeries` as a variable in `System`." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system):\n", + " \"\"\"Runs a proportional growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: System object with t0, t_end, p0,\n", + " birth_rate and death_rate\n", + " \"\"\"\n", + " adults = TimeSeries()\n", + " adults[system.t0] = system.adult_pop0\n", + " juveniles = TimeSeries()\n", + " juveniles[system.t0] = system.juvenile_pop0\n", + " \n", + " for t in linrange(system.t0, system.t_end):\n", + " births = system.birth_rate * adults[t]\n", + " deaths = system.death_rate * adults[t]\n", + " juveniles_matured = juveniles[t] * system.mature_rate\n", + " \n", + " adults[t+1] = adults[t] + juveniles_matured - deaths\n", + " juveniles[t+1] = juveniles[t] + births - juveniles_matured\n", + " \n", + " system.juveniles = juveniles\n", + " system.adults = adults" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test your changes in `run_simulation`:" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "run_simulation(system)\n", + "# system.adults\n", + "# system.juveniles" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, update `plot_results` to plot both the adult and juvenile `TimeSeries`." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(system, title=None):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " system: System object with `results`\n", + " \"\"\"\n", + " newfig()\n", + " plot(system.adults, 'bo-', label='adults')\n", + " plot(system.juveniles, 'ro-', label='juveniles')\n", + " decorate(xlabel='Season', \n", + " ylabel='Rabbit population',\n", + " title=title)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And test your updated version of `plot_results`." + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEjCAYAAAAc4VcXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl4TVf3xz83s8SYSIhEYkzSmoKYSszU8DO0Wq/XrFXz\nWK2iw1ulozmo1tCB0qqiNZcqWhQJWkOlYqqECAmCyJzz+2O7N7kZuCHJTW7W53ny5Jx9zj1n7RvO\n9+y111pbp2mahiAIgiDkEitzGyAIgiAUTURABEEQhMdCBEQQBEF4LERABEEQhMdCBEQQBEF4LERA\nBEEQhMdCBKSYMGXKFHx9fY1+nnrqKRo0aMCLL77Ixo0bzW3iYxMTE8P9+/cN+/q+mpvCYseTkJaW\nRkREhGF/w4YN+Pr6cvjwYTNalXsWLlyIr6+vUV/y83PFBRtzGyAULFOnTqVcuXIAaJrGvXv32LRp\nE1OmTOHWrVu89NJLZrYwd+zbt4/XXnuNjRs34ujoCMB//vMfmjVrZmbLij737t1j8ODBtGrVirFj\nx5rbHKEQIgJSzGjfvj2enp5GbS+88AJdunRh8eLF9O/fHzs7OzNZl3tOnDjBnTt3jNrq169P/fr1\nzWSR5XD79m1OnjxJq1atzG2KUEgRF5aAg4MDbdu25d69e4SFhZnbHEEQiggiIAIAOp0OgNTUVADa\ntm3LW2+9xbRp06hbty4tW7bk5s2bAISEhDB48GDDm/7AgQMJDg42ul7btm158803WbduHe3atcPf\n358+ffpw6NChLPc29XqZ7Rk+fDiLFi0CoF27dgwYMADIfu7hypUrvP766zRt2pQ6derQvXt3vv/+\ne6NzpkyZQqdOnThx4gT9+/enXr16PPPMM8ycOZOEhASjc//44w+GDh1KkyZNqFWrFoGBgbzzzjtZ\nRkOmcOHCBUaOHElAQABNmjRh5syZfP/990a+94ULF1KnTh127dpF8+bNqV+/PuvWrQPg1q1bvPvu\nuwQGBlK7dm2effZZli5davhbfv311/j6+nLmzBnDPe/evcvTTz9Nt27djGz56quv8PPzY+vWrbRr\n1w6ARYsWZZkHiImJ4bXXXiMgIIAGDRowevRorl69+tB+6udPQkNDGTduHPXr16dp06Z8/PHHpKam\nsnHjRp599lnDv5XQ0FCjzz+qn3ouX77M2LFjadSoEU2aNOHjjz8mOTk5iz2xsbHMmDHDcL3OnTvz\n9ddfI9WdTEdcWAJpaWkcOXIEOzs7qlevbmjfunUr1apVY9q0aURHR+Ps7Mzu3bsZM2YMXl5ejBw5\nEoB169YxePBggoKCDA8dgIMHD7Jp0yYGDBiAq6sr3377LUOHDuWLL76gcePGALm6XmZ7mjdvjq2t\nLbt27WLq1KnUrFkz2/6Fh4fTu3dvEhMT6d+/P66uruzcuZO3336bS5cuMXnyZMO5N2/e5OWXX6Zz\n5850796d3377jVWrVmFnZ2c4b//+/bzyyis0aNCAcePGodPpOHDgAGvXriU2NpYFCxaY/N1fvXqV\nvn37AvDSSy9hY2PD6tWr2bx5c5ZzU1JSeOeddxgyZAhJSUk0bNiQ2NhY+vTpw5UrV+jTpw9Vq1bl\nwIEDzJkzh7///pv58+fTsmVLPvjgAw4dOsRTTz0FQHBwMKmpqYSFhREbG0uZMmUMfatVqxZNmjRh\n6tSpfPjhh3To0IEOHTrg7OxssGXatGkEBATw2muvce7cOdasWUNERAQ//fTTI/s8bNgwGjZsyJQp\nU9i5cydffPEFZ8+e5Z9//mHQoEFomsaSJUsYN24c27Ztw8bGxqR+AkRHR9OnTx+Sk5MZNGgQDg4O\nrFmzhlu3bhnZcP/+ffr3709kZCR9+/alYsWKHDp0iA8++IBLly7xv//9z+S/YbFGE4oFb7zxhubj\n46OdPn1ai4mJ0WJiYrTr169rx48f18aPH6/5+PhoH3zwgeH8Nm3aaH5+ftq1a9cMbcnJyVrLli21\nVq1aaXfv3jW0x8bGaoGBgVpgYKCWlJRk+LyPj4+2a9cuw3kxMTFaQECA1rt378e6XmZ7NE3TgoKC\nNB8fHy08PDxLX/VMmDBB8/Pz006dOmVoS01N1YYPH675+vpqZ8+eNfrcypUrje7RuXNnrUWLFob9\nl19+WWvTpo2WmJhodF7v3r21+vXr52hHdkydOlV7+umntXPnzhnarl27pvn7+xv1S9/Pzz//3Ojz\ns2bNyvI9a5qmvfvuu5qPj4+2d+9eTdM0rV27dtqwYcMMxz/44AMtMDBQ8/Hx0Xbv3q1pmqYlJCRo\ndevW1YKCgjRN07Tw8HDNx8fHsK9pmrZ+/XrNx8dHGzlypNH9pkyZovn4+GiXL1/Osa/6z44dO9bQ\ndufOHa1WrVqan5+f4e+gaZo2d+5czcfHR7t48WKu+vnRRx9pvr6+Rn/r6OhorWnTplm+z1q1ammh\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system, title='Proportional growth model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook demonstrates the steps we recommend for starting your project:\n", + "\n", + "1. Start with one of the examples from the book, either by copying a notebook or pasting code into a new notebook. Get the code working before you make any changes.\n", + "\n", + "2. Make one small change, and run the code again.\n", + "\n", + "3. Repeat step 2 until you have a basic implementation of your model.\n", + "\n", + "If you start with working code that you understand and make small changes, you can avoid spending a lot of time debugging.\n", + "\n", + "One you have a basic model working, you can think about what metrics to measure, what parameters to sweep, and how to use the model to predict, explain, or design." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Bonus question\n", + "\n", + "Suppose you only have room for 30 adult rabbits. Whenever the adult population exceeds 30, you take any excess rabbits to market (as pets for kind children, of course). Modify `run_simulation` to model this strategy. What effect does it have on the behavior of the system? You might have to run for more than 10 seasons to see what happens." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation1(system):\n", + " \"\"\"Runs a proportional growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: System object with t0, t_end, p0,\n", + " birth_rate and death_rate\n", + " \"\"\"\n", + " adults = TimeSeries()\n", + " adults[system.t0] = system.adult_pop0\n", + " juveniles = TimeSeries()\n", + " juveniles[system.t0] = system.juvenile_pop0\n", + " \n", + " for t in linrange(system.t0, system.t_end):\n", + " births = system.birth_rate * adults[t]\n", + " deaths = system.death_rate * adults[t]\n", + " juveniles_matured = juveniles[t] * system.mature_rate\n", + " \n", + " #extra = adults[t] - 30\n", + " adults[t+1] = adults[t] + juveniles_matured - deaths #- extra\n", + " if adults[t+1] > 30:\n", + " adults[t+1] = 30\n", + " juveniles[t+1] = juveniles[t] + births - juveniles_matured\n", + " \n", + " system.juveniles = juveniles\n", + " system.adults = adults" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEjCAYAAAAomJYLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl8TOf3x9+TlVhCInYJQoJYgqCWqF3xs7S09bWU1k4o\nVUWri9JVbbG1tiqlRa1BLVWitEjsW+z7EgSJiESW+/vjMTOZLEzIOjnv12tecu/cuffcSTyf+5xz\nnnN0mqZpCIIgCEISrLLaAEEQBCF7IgIhCIIgpIgIhCAIgpAiIhCCIAhCiohACIIgCCkiAiEIgiCk\niAiEBTBmzBg8PT1NXpUrV6ZWrVq8+eabrFmzJqtNfGHCwsKIiooybOvvNavJLna8DAkJCVy7ds2w\nvXr1ajw9Pdm3b18WWpV2ZsyYgaenp8m9ZOTnchM2WW2AkH6MHTuWwoULA6BpGpGRkaxfv54xY8Zw\n//593nvvvSy2MG0EBgby4YcfsmbNGhwcHAB4++23qV+/fhZblvOJjIykd+/evPrqqwwdOjSrzRGy\nKSIQFkSLFi0oXbq0yb4uXbrQtm1bZs2aRY8ePbCzs8si69LO0aNHiYiIMNlXs2ZNatasmUUWWQ4P\nHjzg2LFjvPrqq1ltipCNEReThZMnTx6aNWtGZGQkZ8+ezWpzBEHIQYhA5AJ0Oh0A8fHxADRr1oxx\n48bx8ccfU716dRo3bsy9e/cACA4Opnfv3oYn9XfeeYegoCCT8zVr1oxPPvmElStX0rx5c7y9vena\ntSt79+5Ndm1zz5fUngEDBjBz5kwAmjdvTs+ePYGUff/Xr19n1KhRvPLKK1SrVo0OHTqwYsUKk2PG\njBnDa6+9xtGjR+nRowc1atSgQYMGTJw4kejoaJNj//vvP/r27Uu9evXw8vLC19eXzz77LNlsxhwu\nXLjAoEGD8PHxoV69ekycOJEVK1aY+L5nzJhBtWrV2LZtGw0bNqRmzZqsXLkSgPv37/PFF1/g6+tL\n1apVad26NXPnzjX8Ln/55Rc8PT05deqU4ZoPHz6kSpUqtG/f3sSWRYsWUalSJTZu3Ejz5s0BmDlz\nZjI/fFhYGB9++CE+Pj7UqlWLIUOGcOPGjWfepz5+ERISwrBhw6hZsyavvPIK3333HfHx8axZs4bW\nrVsb/lZCQkJMPv+8+9Rz5coVhg4dSp06dahXrx7fffcdsbGxyewJDw9nwoQJhvO1adOGX375Baks\nlDbExWThJCQksH//fuzs7HB3dzfs37hxI+XLl+fjjz/m7t27ODk5sX37dvz8/HB1dWXQoEEArFy5\nkt69e+Pv728YVAD+/fdf1q9fT8+ePXFxceG3336jb9++LFy4kLp16wKk6XxJ7WnYsCG2trZs27aN\nsWPHUrFixRTv7+rVq7z11lvExMTQo0cPXFxc2Lp1K59++imXLl3io48+Mhx77949+vTpQ5s2bejQ\noQO7du1iyZIl2NnZGY7bvXs3/fr1o1atWgwbNgydTseePXtYvnw54eHhTJ8+3ezv/saNG3Tr1g2A\n9957DxsbG5YuXUpAQECyY+Pi4vjss8949913efLkCbVr1yY8PJyuXbty/fp1unbtSrly5dizZw+T\nJ0/m5MmTTJs2jcaNG/P111+zd+9eKleuDEBQUBDx8fGcPXuW8PBwHB0dDffm5eVFvXr1GDt2LN98\n8w0tW7akZcuWODk5GWz5+OOP8fHx4cMPP+TcuXMsW7aMa9eusW7duufec//+/alduzZjxoxh69at\nLFy4kDNnznD69Gl69eqFpmnMmTOHYcOGsWnTJmxsbMy6T4C7d+/StWtXYmNj6dWrF3ny5GHZsmXc\nv3/fxIaoqCh69OjBzZs36datG8WLF2fv3r18/fXXXLp0ic8//9zs32GuRxNyPKNHj9Y8PDy0EydO\naGFhYVpYWJh2+/Zt7dChQ9r777+veXh4aF9//bXh+KZNm2qVKlXSbt26ZdgXGxurNW7cWHv11Ve1\nhw8fGvaHh4drvr6+mq+vr/bkyRPD5z08PLRt27YZjgsLC9N8fHy0t95664XOl9QeTdM0f39/zcPD\nQ7t69Wqye9UzfPhwrVKlStrx48cN++Lj47UBAwZonp6e2pkzZ0w+t3jxYpNrtGnTRmvUqJFhu0+f\nPlrTpk21mJgYk+PeeustrWbNmqnakRJjx47VqlSpop07d86w79atW5q3t7fJfenv86effjL5/KRJ\nk5J9z5qmaV988YXm4eGh7dy5U9M0TWvevLnWv39/w/tff/215uvrq3l4eGjbt2/XNE3ToqOjterV\nq2v+/v6apmna1atXNQ8PD8O2pmnaqlWrNA8PD23QoEEm1xszZozm4eGhXblyJdV71X926NChhn0R\nERGal5eXVqlSJcPvQdM0bcqUKZqHh4d28eLFNN3nt99+q3l6epr8ru/evau98soryb5PLy8vLSQk\nxOR8kydP1jw8PLRTp04Zjkv69yWYIi4mC+L111+nfv361K9fn0aNGvH222+zfft2evbsyciRI02O\ndXV1pVixYobtkydPcuvWLbp3707+/PkN+wsWLEiPHj0IDQ3l+PHjhv3ly5enRYsWhm0nJyc6duzI\nkSNHCAsLS/P5ktpjDvHx8ezcuZNGjRrh5eVl2G9lZcXAgQPRNI2///7b5DNt2rQx2a5UqRJ37941\nbP/000+sWrXKJJh///598ufPb5Ju+zw0TWP79u34+vqazNyKFStGhw4dUvxMnTp1TLb//vtv3N3d\nTb5ngMGDBwNqhgbQuHFjgoODDe6Yffv20aFDBwoXLkxwcDCgZhXR0dFmBaXbtWtnsl2tWjUA7ty5\n89zPJra1QIECODk5UbZsWZMZoD6RQn8+c+9z165dVKtWzeR37ezsnMzerVu34uHhgYuLC/fu3TO8\n9OffsWPHc+9DUIiLyYKYNGkSRYoUAdQgWbBgQdzd3bG3t092rLOzs8m23gddrly5ZMeWL18eUC4T\nfQZRhQoVkh3n5uaGpmlcv349zedLao853L9/n6ioqBSvoR+Ur1+/brI/sSsFwM7OjoSEBMO2tbU1\nV69eZfr06Zw7d44rV64QGhqaZtsePHjAgwcPKFu2bLL39PeflJR+J76+vsmOc3FxoWDBgoZ7a9y4\nMUuXLuXYsWOULVuWkJAQRowYwYULFwwCsXv3bpydnQ2D/bNI+h3lyZMHIEVff1L0f396bGxskt2X\ntbU1gOF7N/c+r1+/buKW1JP0+7xy5QrR0dGppkPfvHnzufchKEQgLIhatWolS3NNDf1/Uj3aM4J3\n+vdsbW0N+xL/rEf/BGttbZ3m8yW1xxyedQ394JM0rdfK6tmT5gULFvD9999Trlw5fHx8aNWqFTVq\n1GDJkiUpxg5SIy4uLsXrAykKdkq2Pe/+9N/fK6+8gr29PXv37uXOnTtYWVlRu3ZtLl68yA8//MDj\nx4/ZvXs3jRs3NiQsPIvnfUfPIqXf4/Ouae596nS6ZAkFKX0+Pj6e2rVr4+fnl+I5ixYt+kx7BCMi\nEAIApUqVAlTWTVIuXrwIQPHixQ37rly5kuy4y5cvY21tTenSpQ1Pm+ae70VwcnLCwcEh3a4RExPD\njBkzqFevHgsXLsTGxvjfIy3BaVCzAQcHBy5dupTsvcuXL5t1jlKlShnuIzF37twhMjKSEiVKAOoJ\n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\nlnhFtYQAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation1(system)\n", + "plot_results(system, title='Proportional growth model')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/rabbits3mine.ipynb b/code/rabbits3mine.ipynb new file mode 100644 index 00000000..2f0f4ebd --- /dev/null +++ b/code/rabbits3mine.ipynb @@ -0,0 +1,703 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Rabbit example\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Rabbit is Rich\n", + "\n", + "This notebook starts with a version of the rabbit population growth model. You will modify it using some of the tools in Chapter 5. Before you attempt this diagnostic, you should have a good understanding of State objects, as presented in Section 5.4. And you should understand the version of `run_simulation` in Section 5.7.\n", + "\n", + "### Separating the `State` from the `System`\n", + "\n", + "Here's the `System` object from the previous diagnostic. Notice that it includes system parameters, which don't change while the simulation is running, and population variables, which do. We're going to improve that by pulling the population variables into a `State` object." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
t00.00
t_end20.00
juvenile_pop00.00
adult_pop010.00
birth_rate0.90
mature_rate0.33
death_rate0.50
\n", + "
" + ], + "text/plain": [ + "t0 0.00\n", + "t_end 20.00\n", + "juvenile_pop0 0.00\n", + "adult_pop0 10.00\n", + "birth_rate 0.90\n", + "mature_rate 0.33\n", + "death_rate 0.50\n", + "dtype: float64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(t0 = 0, \n", + " t_end = 20,\n", + " juvenile_pop0 = 0,\n", + " adult_pop0 = 10,\n", + " birth_rate = 0.9,\n", + " mature_rate = 0.33,\n", + " death_rate = 0.5)\n", + "\n", + "system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following cells, define a `State` object named `init` that contains two state variables, `juveniles` and `adults`, with initial values `0` and `10`. Make a version of the `System` object that does NOT contain `juvenile_pop0` and `adult_pop0`, but DOES contain `init`." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "init = State(juveniles = 0, adults = 10)\n", + "system = System(t0=0, t_end = 20, init = init, birth_rate = 0.9, mature_rate = 0.33, death_rate = 0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "system.init.adults" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Updating `run_simulation`\n", + "\n", + "Here's the version of `run_simulation` from last time:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system):\n", + " \"\"\"Runs a proportional growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: System object\n", + " \"\"\"\n", + " juveniles = TimeSeries()\n", + " juveniles[system.t0] = system.juvenile_pop0\n", + " \n", + " adults = TimeSeries()\n", + " adults[system.t0] = system.adult_pop0\n", + " \n", + " for t in linrange(system.t0, system.t_end):\n", + " maturations = system.mature_rate * juveniles[t]\n", + " births = system.birth_rate * adults[t]\n", + " deaths = system.death_rate * adults[t]\n", + " \n", + " if adults[t] > 30:\n", + " market = adults[t] - 30\n", + " else:\n", + " market = 0\n", + " \n", + " juveniles[t+1] = juveniles[t] + births - maturations\n", + " adults[t+1] = adults[t] + maturations - deaths - market\n", + " \n", + " system.adults = adults\n", + " system.juveniles = juveniles" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the cell below, write a version of `run_simulation` that works with the new `System` object (the one that contains a `State` object named `init`).\n", + "\n", + "Hint: you only have to change two lines." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def run_simulation(system):\n", + " \"\"\"Runs a proportional growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: System object\n", + " \"\"\"\n", + " juveniles = TimeSeries()\n", + " juveniles[system.t0] = system.init.juveniles\n", + " \n", + " adults = TimeSeries()\n", + " adults[system.t0] = system.init.adults\n", + " \n", + " for t in linrange(system.t0, system.t_end):\n", + " maturations = system.mature_rate * juveniles[t]\n", + " births = system.birth_rate * adults[t]\n", + " deaths = system.death_rate * adults[t]\n", + " \n", + " if adults[t] > 30:\n", + " market = adults[t] - 30\n", + " else:\n", + " market = 0\n", + " \n", + " juveniles[t+1] = juveniles[t] + births - maturations\n", + " adults[t+1] = adults[t] + maturations - deaths - market\n", + " \n", + " system.adults = adults\n", + " system.juveniles = juveniles" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test your changes in `run_simulation`:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
010.000000
15.000000
25.470000
36.209900
47.057723
58.021560
69.117031
710.362107
811.777219
913.385586
1015.213601
1117.291261
1219.652658
1322.336542
1425.386953
1528.853947
1632.794414
1734.478600
1836.487431
1937.893339
2039.401924
2140.546917
\n", + "
" + ], + "text/plain": [ + "0 10.000000\n", + "1 5.000000\n", + "2 5.470000\n", + "3 6.209900\n", + "4 7.057723\n", + "5 8.021560\n", + "6 9.117031\n", + "7 10.362107\n", + "8 11.777219\n", + "9 13.385586\n", + "10 15.213601\n", + "11 17.291261\n", + "12 19.652658\n", + "13 22.336542\n", + "14 25.386953\n", + "15 28.853947\n", + "16 32.794414\n", + "17 34.478600\n", + "18 36.487431\n", + "19 37.893339\n", + "20 39.401924\n", + "21 40.546917\n", + "dtype: float64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(system)\n", + "system.adults" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plotting the results\n", + "\n", + "Here's a version of `plot_results` that plots both the adult and juvenile `TimeSeries`." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(system, title=None):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " system: System object with `results`\n", + " \"\"\"\n", + " newfig()\n", + " plot(system.adults, 'bo-', label='adults')\n", + " plot(system.juveniles, 'gs-', label='juveniles')\n", + " decorate(xlabel='Season', \n", + " ylabel='Rabbit population',\n", + " title=title)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If your changes in the previous section were successful, you should be able to run this new version of `plot_results`." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n7cnLy+PXX38lOjqayZMnl+seqoq299mgQYNSf3Y3b94scb6MjAw6d+6sUZ6SksLff/9No0aNKjD6\n2k20QQgAeHp6Kr2R0tPTlfL09HS2bt2Kvb09LVu2VMrPnz/P2bNnldeJiYn89NNPdOzYEUtLy3Kf\nrzRFn2TL+oSpp6dHt27dOHbsGBEREUq5JEmsXbsWlUpFjx49tP4ZZGdnk5WVRePGjTWSQ2RkJCdO\nnAAePBk8jlqtplevXvzxxx8ab2ApKSns3btXq3P07NmTK1eu8Ntvv2mUr1mzBkDj3vz8/Dh9+jR/\n//230ousefPm1KlTh+XLl6Ovr0/Xrl2V/YtX8+iStvfZt29foqOj+eOPP5R90tLSSvSu6tWrF1FR\nURw5ckSjfNWqVUybNk2MByoH8QQhAHJ1zwcffMD06dMZOnQoL730EgDff/898fHxBAcHa1Q9GBoa\nMnbsWI3uhoWFhUp30fKerzRFdeHr1q3Dz8+v1Prnt99+m+PHjzN8+HCly+2BAwcIDQ1l1KhRpbaV\nlMXS0pLWrVuza9cuzM3NcXFxITo6mp07dyqxZmRkKN1GH2fatGkcOXKEV199leHDh2NoaMh3331H\nSkoK8Piql/Hjx7N//34CAwP597//TePGjQkNDWX//v307dtXo8G5qLvrpUuXmD59OiAnKR8fHw4f\nPkyHDh2oU6eOsr+VlRVqtZqDBw/i5ORE3759tf45VTRt73PUqFGEhIQwZcoURowYgY2NDdu3by/x\nAaLofJMnT+a1116jadOmnDp1ij179uDn54efn58ubrNGEglCUPTv3x9LS0tWrlzJihUr0NfXp3Xr\n1nz66af4+Pho7Ovt7Y2/vz8rV64kLS0NHx8fZs6cSbNmzZ7ofKXx9/dn//797Nq1ixMnTpSaIJyd\nndmxYwdBQUF89913ZGdn4+bmxqeffqokpfJYunQpn332GT/88AO5ubnUr1+fcePG4ebmxpQpUwgN\nDaVfv35ancvZ2Zlvv/2WL774gtWrV2NkZMSQIUPQ09Nj/fr1j532xMrKiu3btxMUFMTPP/9Mamoq\nDRs25J133mHkyJEa+7q4uODs7MytW7do166dUt6+fXsOHz5coveSiYkJ06dPZ/369cyfPx9nZ2ft\nfkCVQNv7NDc3Z8uWLSxcuJDt27dTUFDAwIEDadq0KfPnzy9xvuDgYH755Re2b9+Ok5MTkyZNYty4\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system, title='Proportional growth model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's the end of the diagnostic. If you were able to get it done quickly, and you would like a challenge, here are two bonus questions:\n", + "\n", + "\n", + "### Bonus question #1\n", + "\n", + "Write a version of `run_simulation` that puts the results into a single `TimeFrame` named `results`, rather than two `TimeSeries` objects.\n", + "\n", + "Write a version of `plot_results` that can plot the results in this form.\n", + "\n", + "WARNING: This question is substantially harder, and requires you to have a good understanding of everything in Chapter 5. We don't expect most people to be able to do this exercise at this point." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "\n", + "def update(state, system):\n", + " juveniles, adults = state\n", + " \n", + " matured = system.mature_rate * juveniles\n", + " births = system.birth_rate * adults\n", + " deaths = system.death_rate * adults\n", + " \n", + " \n", + " \n", + " if adults > 30:\n", + " market = adults - 30\n", + " else:\n", + " market = 0\n", + " adults = adults + matured - deaths -market\n", + " juveniles = juveniles - matured + births\n", + " \n", + " return State(juveniles = juveniles, adults = adults)\n", + "\n", + "\n", + "def run_simulation(system, update):\n", + " \"\"\"Runs a proportional growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: System object\n", + " \"\"\"\n", + " frame = TimeFrame(columns = system.init.index)\n", + " frame.loc[system.t0] = system.init\n", + " for t in linrange(system.t0, system.t_end):\n", + " frame.loc[t+1] = update(frame.loc[t], system)\n", + " system.results = frame" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "run_simulation(system, update)\n", + "#system.results\n", + "frame = system.results" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here\n", + "def plot_results(adults, juveniles):\n", + " plot(adults, 'bo-', label = 'adults')\n", + " plot(juveniles, 'gs-', label = 'juveniles')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n/wHdsCMPSX/ylAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system.results.adults, system.results.juveniles)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Bonus question #2\n", + "\n", + "Factor out the update function.\n", + "\n", + "1. Write a function called `update` that takes a `State` object and a `System` object and returns a new `State` object that represents the state of the system after one time step.\n", + "\n", + "2. Write a version of `run_simulation` that takes an update function as a parameter and uses it to compute the update.\n", + "\n", + "3. Run your new version of `run_simulation` and plot the results.\n", + "\n", + "WARNING: This question is substantially harder, and requires you to have a good understanding of everything in Chapter 5. We don't expect most people to be able to do this exercise at this point." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "run_simulation(system, update)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "plot_results() missing 1 required positional argument: 'juveniles'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mplot_results\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msystem\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m: plot_results() missing 1 required positional argument: 'juveniles'" + ] + } + ], + "source": [ + "plot_results(system)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From cca0e270dbec7a505b49c5e0421275330dfdbe1d Mon Sep 17 00:00:00 2001 From: dberny <31549375+dberny@users.noreply.github.com> Date: Thu, 12 Oct 2017 23:34:49 -0400 Subject: [PATCH 7/9] something --- code/chap07mine.ipynb | 1926 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1926 insertions(+) create mode 100644 code/chap07mine.ipynb diff --git a/code/chap07mine.ipynb b/code/chap07mine.ipynb new file mode 100644 index 00000000..0d80c47f --- /dev/null +++ b/code/chap07mine.ipynb @@ -0,0 +1,1926 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 7: Thermal systems\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# tempo switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The coffee cooling problem.\n", + "\n", + "I'll use a `State` object to store the initial temperature.\n" + ] + }, + { + "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", + "
value
temp90
\n", + "
" + ], + "text/plain": [ + "temp 90\n", + "dtype: int64" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(temp=90)\n", + "init" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And a `System` object to contain the system parameters." + ] + }, + { + "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", + " \n", + "
value
inittemp 90\n", + "dtype: int64
volume300
r0.01
T_env22
t00
t_end30
dt1
\n", + "
" + ], + "text/plain": [ + "init temp 90\n", + "dtype: int64\n", + "volume 300\n", + "r 0.01\n", + "T_env 22\n", + "t0 0\n", + "t_end 30\n", + "dt 1\n", + "dtype: object" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee = System(init=init,\n", + " volume=300,\n", + " r=0.01,\n", + " T_env=22,\n", + " t0=0, \n", + " t_end=30,\n", + " dt=1)\n", + "coffee" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `update` function implements Newton's law of cooling." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update(state, system):\n", + " \"\"\"Update the thermal transfer model.\n", + " \n", + " state: State (temp)\n", + " system: System object\n", + " \n", + " returns: State (temp)\n", + " \"\"\"\n", + " unpack(system)\n", + " T = state.temp\n", + " T += -r * (T - T_env) * dt\n", + "\n", + " return State(temp=T)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how it works." + ] + }, + { + "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", + "
value
temp89.32
\n", + "
" + ], + "text/plain": [ + "temp 89.32\n", + "dtype: float64" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "update(init, coffee)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run simulations using the same function from the previous chapter." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " Add a TimeFrame to the System: results\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " frame = TimeFrame(columns=init.index)\n", + " frame.loc[t0] = init\n", + " ts = linrange(t0, t_end-dt, dt)\n", + " \n", + " for t in ts:\n", + " frame.loc[t+dt] = update_func(frame.loc[t], system)\n", + " \n", + " system.results = frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's how it works." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
temp
090.000000
189.320000
288.646800
387.980332
487.320529
586.667323
686.020650
785.380444
884.746639
984.119173
1083.497981
1182.883001
1282.274171
1381.671430
1481.074715
1580.483968
1679.899128
1779.320137
1878.746936
1978.179466
2077.617672
2177.061495
2276.510880
2375.965771
2475.426114
2574.891852
2674.362934
2773.839305
2873.320912
2972.807702
3072.299625
\n", + "
" + ], + "text/plain": [ + " temp\n", + "0 90.000000\n", + "1 89.320000\n", + "2 88.646800\n", + "3 87.980332\n", + "4 87.320529\n", + "5 86.667323\n", + "6 86.020650\n", + "7 85.380444\n", + "8 84.746639\n", + "9 84.119173\n", + "10 83.497981\n", + "11 82.883001\n", + "12 82.274171\n", + "13 81.671430\n", + "14 81.074715\n", + "15 80.483968\n", + "16 79.899128\n", + "17 79.320137\n", + "18 78.746936\n", + "19 78.179466\n", + "20 77.617672\n", + "21 77.061495\n", + "22 76.510880\n", + "23 75.965771\n", + "24 75.426114\n", + "25 74.891852\n", + "26 74.362934\n", + "27 73.839305\n", + "28 73.320912\n", + "29 72.807702\n", + "30 72.299625" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(coffee, update)\n", + "coffee.results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the results look like." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAERCAYAAACO6FuTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VGX2wPHvpPfeK5AGJARCQkIJEBITF1hXQUAULCzs\nrriCwGJBZC3oKiogwooi6i7+QCmCyoLSQVApCTVAKiG9ERLS22R+f8QMRAgMkGSScD7Pk+fR987c\nOZcLc3Lfcl6FSqVSIYQQQtyAjrYDEEII0XFJkhBCCNEiSRJCCCFaJElCCCFEiyRJCCGEaJEkCSGE\nEC3Sa+8PLC8v591332Xv3r3U1tYybNgw5s2bh62tLQCHDh3ivffeIy0tDU9PT+bOncvw4cNves7q\n6mri4+Oxt7dHV1e3PS5DCCE6PaVSSWFhIQEBARgZGd3wNYr2XicxdepULly4wBtvvIGTkxNLly4l\nPT2dLVu2kJGRwZgxY3jmmWeIiYlh69atrF69mi1btuDj49PiOWNjY5k0aVI7XoUQQnQda9euJSQk\n5IbH2jVJnD9/noceeogvvviCwYMHA1BRUUFERAQvv/wyJ06cIC0tjS+//FL9nscff5xu3bqxcOHC\nFs+bnp5OTEwMa9euxcnJqc2vQwghuoK8vDwmTZrEzp078fT0vOFr2rW76eLFiwAEBwer20xNTfH0\n9OTo0aOcOnWKkSNHNntPWFgY27Ztu+l5m7qYnJyccHNza3ZMpVKhUChaIXohhOiabtZN364D1w4O\nDkBj9mqiVCrJy8vj8uXL5OXl4ejoeN17rn397Th6No/V38ezNzaDunrlnQcuhBD3qHZNEn369KFH\njx68+uqrFBQUUF1dzeLFiykuLqauro7q6moMDAyavcfAwICamprb/iyVSsWplEJqapWcS7vM+t1J\nXCqpaq1LEUKIe0K7JgkDAwNWrFhBaWkpQ4cOJSQkhOLiYoYNG4aZmRmGhobU1dU1e09tbS3Gxsa3\n/VkKhYK+Pvbq/y8pq2HT3mTOXihCahoKIYRm2n0KrJeXF5s3b6a4uBh9fX3MzMwYM2YMQ4YMwdnZ\nmYKCgmavLygouK4LSlOhvZ2wMDXgQFwWdcoG6pUN7IvLJLuwnIj+bhjoy3RZIYS4mXZ9kigvL2fy\n5MkkJSVhbW2NmZkZWVlZJCQkMGTIEIKDgzl27Fiz9xw5cqTFqVma6Olpw/j7fLG1uDoHOCmjmA17\npPtJCCFupV2ThJmZGUqlkn/961+kpKRw+vRpnn76aQYNGsSgQYOYPHkysbGxfPjhh6SmprJs2TJO\nnTrFk08+eVefa2NhxLgoX3p3t1G3lZTVsHFPknQ/CSHETbR7WY6lS5diYmLCI488wvTp0xkwYADL\nly8HwM/PjxUrVrBjxw4eeugh9u7dy8cff4yXl9ddf66+ng6RIR5Eh3qgr9d42coGFfviMtl5JIPa\nOpn9JIQQv9fuYxJOTk589NFHLR6PiIggIiKizT7fz9MGB2sTfvz1IkWl1QAkZxZTWFzJHwZ1w87q\n9gfJhRCiq7onC/xZq7ufbNVtJeWN3U/xqZek+0kIIX5zTyYJaOp+cr+u+2n/8Sx2HE6nRrqfhBDi\n3k0STfw8bZhwn2+zbqaUrBLW70ok/3KlFiMTQgjtu+eTBIC1uRHjIn0I6HG1+6m0opZv9iVzMqlA\nup+EEHft22+/JTw8nMDAQHbt2sXZs2cZNWoUAQEBLFq0SNvhtajdB647Kj1dHSKC3XFzMGdvXCa1\ndUoaGlQcOpVDdkE5UQM8MDKUPy4hxJ1ZtGgRERERPPvss9jY2PDSSy+hp6fH9u3bMTc313Z4LZIn\nid/xdrfikft8cbA2Ubel5Zby9a5Eci6VazEyIURnVlpaSkhICK6urhgbG1NaWkqvXr3w8PDA2tpa\n2+G1SJLEDViaGfLwCG/6+V6t/VReVce3+1OJPZ9PQ4N0PwlxLyovL+f1119n8ODBBAUFqTdRA9iz\nZw9jx46lb9++REREsHz5curr68nKysLPz4/6+npefvllIiMjiYyM5JdffuHbb7/Fz8+PrKwsGhoa\n+PjjjxkxYgT9+vXj4Ycf5sCBA80+PzY2lokTJxIYGEhUVBSLFy++owKot0OSRAt0dXUI7+vK6CHd\nMTJo7GZqUKk4HJ/L1kMXqKyuu8UZhBBdzaxZs/j1119ZvHgx33zzDSYmJkybNo3t27czY8YMRo4c\nyXfffccLL7zAl19+ydtvv42zszOHDh1CV1eXl19+mU2bNrFp0yZCQkIYOXIkhw4dwtnZmcWLF7N5\n82beeOMNvvvuO8aMGcOzzz7LkSNHgMZN26ZOnUp0dDRbt27lzTffZN++fbz22mttes3SyX4L3V0s\nmRhtzM4j6eRcqgAgM7+Mr3clER3qgbtjx+1LFKIjO5FYwNFzedTVN7T7Z+vr6RDa24kgPweN33Ph\nwgUOHjzImjVrCAsLA+CNN97gk08+YdmyZYwcOZK//OUvAHTr1o2SkhLeeustZs2ahb19Y6+Eubk5\nNjaN5YH09fUxMjLC3t6eiooK1qxZw/Llyxk6dCgAnp6eJCQksGrVKsLCwvjss88YPnw4U6dOVR9/\n/fXXeeyxx5g9e7Z6v57WJklCA2YmBjw03Juj5/KIS2ic7VRZXcf3By/Q38+eUH9ndHVk9zshbsfJ\npEKtJAiAuvoGTiYV3laSSEpKAiAwMFDdZm1tzUsvvcRXX33F448/3uz1AwYMoL6+ngsXLtC3b9+b\nnjs1NZXa2lqee+45dHSudvDU1dVhZ2cHND5JpKenExQUpD7eNPMyNTVVkoS26egoGBjgjKu9GbuO\nZlBZXYdKpSIuoYDswgpiwjyxMDW49YmEEAD087XX6pPEtWOOmtDTa/nr0sjI6Lo2pVJ5y/c1adps\nbfny5dftNd2UNPT19XnooYfUTyvXanpSaQuSJG6Tu6M5E6N92XU0g8z8MgDyiipYvyuRESHueLtZ\naTlCITqHID+H2/pNXtuaCo3Gx8czYMAAoHEgOzo6mpKSEo4fP87kyZPVr4+Li0NfXx8PD49bntvT\n0xN9fX3y8/MZNmyYun3FihUolUqee+45vL29SU1NbZZETpw4waeffsrrr7+OiYnJjU5912Tg+g6Y\nGOnzp6E9GNzHBR1FYzdTTZ2SH3+9yP64TOqV2nmEFkK0ne7duxMVFcXrr79ObGwsqampzJs3D3Nz\nc1avXs0PP/zAp59+ysWLF/nhhx/48MMPGT9+vEZrIIyNjXnqqadYvHgx27dvJzMzkzVr1vDvf/8b\nd3d3AP7yl79w+vRp3n77bVJTUzl69CgvvvgiZWVl8iTRESkUCvr3dMDF3pSdR9IpragFIP5CEbmX\nKogZ6ImtpVSUFaIreeedd3j77bd55plnUCqVDBgwgNWrV+Ph4cGiRYvUg9gODg488cQT/O1vf9P4\n3LNmzUJfX593332XS5cu4e7uzhtvvMHYsWOBxq0Ums6/bt06zM3NGTFiBC+88EJbXS4AClUXqDmR\nlZVFVFQUe/bswc3Nrd0/v7q2nv1xWaRklajb9HR1GNrPld7dbVAoZFBbCNHxaPLdKd1NrcDIQI/7\nB3oyItgdPd3GP9Km/bR3HpGKskKIzkuSRCtRKBT497BlfJRPs/20kzMbK8rmFVVoMTohhLgzkiRa\nma2lMeOifPH/XUXZzftSiEvIl4qyQohORZJEG9DX02FEsDt/GNgNQ31doLGkx69ncvnupwuUV0lJ\nDyFE5yBJog15u1vxSLQfTram6rasgjK+3plIWs4VLUYmhBCakSTRxixMDRgb4U1IL0f1LKfq2nq2\n/ZzGwRPZsqZCCNGhSZJoB00lPR4a7oWZsb66/VRKIZv2JlNcWq3F6IQQomWSJNqRq70ZE6P96O5i\nqW67VFLFht1JnEsrkkFtIUSHI0minRkZ6jFqcDeGB7mpK8fWKRvYG5vJjsPpVNfWazlCIYS4SpKE\nFigUCvp42zHhPl9srllTkZJVwvpdSbJNqhCiw5AkoUW2lsaMj/Il4Jo1FWWVtWzZn8rRs3myTaoQ\nQuskSWiZvp4OEcHujBzUDUODxjUVKpWKo+fy2LI/RV04UAghtEGSRAfh5WbFo9F+uNqbqdtyiyr4\nelciSRnFWoxMCHEvkyTRgZiZGPDgMC8GBjir96morVOy80g6e45lUCuFAoUQ7UySRAejo6MgpJcj\nY0d4N9sO9fzFy2zYnUT+5UotRieEuNdIkuignGxNmRjth5+HtbqtpLyGb/YmczyhQNZUCCHahSSJ\nDsxAX5foME+iQz0wuKZQ4C9ncqRQoBCiXUiS6AT8PG145D5fHG2ubnTeVCgw9Zrd8IQQorVJkugk\nLM0MGTvC57pCgT/8epG9sRnU1cugthCi9UmS6ER0fysUOOZ3hQLPpV1m/S4Z1BZCtD5JEp2Qi70Z\nE2P88HG3Urc1DWrHns+XldpCiFYjSaKTMjLQIybMk/t+N6h9OD6Xbw+kUlYpK7WFEHdPkkQnplAo\n6PnboPa1u9/lXCrn652JJGfKSm0hxN2RJNEFWJoZMjbCm9DeTupB7Zo6JTsOp7P7aLqs1BZC3DE9\nTV6UlpbGtm3bOHLkCNnZ2ZSVlWFtbY2zszNDhw4lOjoaT0/Pto5V3ISOjoJQfyfcHc3ZdTRdXRgw\nIb2YnEsVRId64mxneouzCCFEczd9krh48SIzZsxg1KhRrF+/HlNTUyIjI5k4cSIDBw7EyMiITz/9\nlJEjR/Lcc89x4cKF9opbtMDZzpRHov3o6Xl1pXZpRS2b96dw9GweShnUFkLchhafJP7zn/+wcuVK\nRo8ezdq1a+nfv3+LJzlx4gQbNmxg4sSJTJ8+nSlTprRJsEIzhvq63BfqiYeTBQeOZ1FTp1SXH0/P\nKyU61BMrc0NthymE6ARaTBLnz59n69atODg43PIkQUFBBAUFkZuby5IlS1o1QHHnfD2scbI1ZffR\nDPVud/mXK1m/O5Hwvq707m6jHsMQQogbabG7adGiRRoliGs5Ozvz3nvv3XVQovVYmBrw0HAvBvdx\nQadpT+36BvbFZfLDrxepqpE9tYUQLdNodlNFRcV1bbGxsa0ejGgbOjoK+vd0YFykD9bmV/fUvpB9\nha92JpKeV6rF6IQQHdlNk8SZM2f44x//yBdffNGsvaSkhMcff5yYmBgSEhLaNEDRehysTZhwny99\nvOzUbZXVdWw9eIGfTmRRr2zQYnRCiI6oxSRx8eJFpkyZQl1dHQEBAc2OGRsbs3DhQgAmTZpEZmZm\n20YpWo2+ng7D+7vxQHgPTIyu1n86nXKJDbuTKCyu0mJ0QoiOpsUk8cknn+Ds7Mw333xDREREs2OG\nhoaMGzeOjRs3YmNjwyeffKLxB1ZWVrJw4ULCw8MJCQlh2rRppKSkqI+PGzcOPz+/Zj/z58+//SsT\nN+XpbMHEaF+6u1iq2y6XVrNxbxLHEwqk/pMQArjJ7KajR48yY8YMzMzMWnyzpaUlU6ZMua476mbe\neustjh8/zrJly7CysmLJkiVMmzaNHTt2YGBgQEpKCu+//z4DBw5Uv8fY2Fjj8wvNmRjpM2pwN86l\nXebQyWzqlA00NDRuanQxt5T7Qj2abaEqhLj3tPgkcenSJVxcXG55Ai8vLwoKCjT+wN27d/PYY48R\nHByMl5cXs2fPJjc3l5SUFDIzM6mqqqJfv37Y29urf26WqMTdUSgU+PewZUJ0802Nci6V8/WuRBLS\nL8tWqULcw1pMEnZ2duTk5NzyBPn5+djY2Gj8gTY2Nmzfvp2ioiJqa2vZtGkTlpaWuLu7k5SUhJGR\nEa6urhqfT7QOa3Mjxo7wIdTfCZ3f1k7U1inZfTSDHw+nUy1TZYW4J7WYJAYNGsSGDRtu+maVSsXG\njRuvG9i+mYULF5KXl8fgwYPp168fGzZsYNWqVVhYWJCcnIy5uTlz584lPDycBx54gC+++IKGBpl1\n0x50dRSE9nZi7AhvrMyurshOzSqRqbJC3KNaTBJPPfUUZ8+e5fnnn6e4+PqS08XFxbz00kscP36c\nJ598UuMPTE9Px87OjlWrVvHVV18RHh7OzJkzycvLIyUlhcrKSsLDw/nss8947LHH+PDDD1mxYsWd\nXZ24I062pjwS7UtAD1t1W8VvU2UPHM+irl6SthD3CoXqJh3O27ZtY/78+ahUKvr06YOLiwtKpZKc\nnBzOnDmDjo4Or7zyChMmTNDowzIzM7n//vtZt24d/fr1A6Curo5Ro0YRFRXF3LlzqaysxMLCQv2e\nVatW8fHHHxMXF9diCYmsrCyioqLYs2cPbm5ut3P94hYu5pay51hGs5XZVuaGxIR64nDNGIYQovPR\n5LvzpqXCR48ejb+/P2vWrOHQoUOcPn0aXV1dXFxcmDRpEpMnT8bd3V3jgOLj41Eqlc26p/T19enV\nqxfp6eno6ek1SxAAfn5+VFRUUFZWdt0x0fa6OVvwaIwf++KySMu5AkBJWQ2b9iYzoLcjwT0d1eU+\nhBBdzy33k+jWrRv//Oc/W+XDnJycAEhMTMTf3x9oHNdITU1l2LBhTJgwgcDAQF555RX1e86cOYOD\ng4MkCC1qmip7/uJlDp7Mpq6+gQaViiNn89RTZa8t9yGE6DpaHJM4efLkHZ3wxIkTLR4LDAykX79+\nvPTSS8TGxpKamsqrr75KTk4OkydPJjo6mvXr1/Ptt9+SkZHBxo0bWb16NTNnzryjWETrUSgU9O5u\ny8RoP5yv2So1/3Il63clcSblkkyVFaILavFJYsGCBfj5+TF9+nS8vLxueaJz586xatUqkpOT2bZt\n2w1fo6ury8qVK1myZAlz5syhsrKSgIAA1q1bh6urK9OmTUNPT4+VK1eSk5ODi4sL8+bNY/z48Xd+\nhaJVWZoZMibCm+OJBRw9l0dDg4p6ZQMHTjR2R0UO8MDMWP/WJxJCdAotDlzX1taybNky/vvf/+Lt\n7U1MTAyBgYG4ublhbGxMWVkZeXl5xMXF8dNPP5GUlMSkSZOYPXs2hobtu6GNDFxrR2FxFbuPplNU\nWq1uMzTQZXiQG74e1jd5pxCiI9Dku/Oms5sAcnJy+OKLL9QL4K6dYaRSqXB0dCQmJoYpU6ZotEK7\nLUiS0J56ZQNHzuZxMqmwWXeTj7sVw4PcMDLUaBt1IYQW3PXsJgAXFxfmz5/P/PnzSUpKIjMzk7Ky\nMqytrXF1dcXb27vVAxedh56uDkMCXejubMHuYxmUVtQCkJxZQu6lCkaEuOPpJJMOhOisbuvXPF9f\nX3x9fdsqFtGJudibMTHaj0OnsjmXdhmA8qrGBXh9vOwYHOiMvp6ulqMUQtwujXamE0ITBvq6RIZ4\nMHpId4yv6WY6k3qJ9buSyL10/Q6HQoiOTZKEaHXdXSx5NMaPHq5X96ooKa9h8/4Ufj2Tg1J2wBOi\n05AkIdqEiZE+Iwd1IyrEAwP9xm4mlUpFXEIBG/Ykc6lEdsATojOQJCHajEKhoFd3Gx6N8cPNwVzd\nXnSlig17kog9ny874AnRwd12ksjPz+fMmTNUVVVRU1PTFjGJLsbcxIAHh/VgWJArerqNf+UaGlQc\njs/lm33JFJdV3+IMQght0ThJHDhwgNGjRxMREcEjjzzChQsXmDt3Lv/85z9lvwdxSwqFgkBvex75\n3Q54TWU9TqcUSlkPITogjZLEgQMHmD59Oh4eHrzxxhvqpDBgwAA2b97Mp59+2qZBiq7D2tyIh0f4\nMDDAWV09tl7ZwE8nsvnupwuUVdZqOUIhxLU0ShLLli3jwQcfZOXKlYwdO1bd/sQTTzB9+nQ2b97c\nZgGKrkdHR0FIL0cmRPlia2msbs8qKOOrnYmcSyuSpwohOgiNkkRKSgqjR4++4bEBAwaQm5vbqkGJ\ne4OdlTETonwI7umgLvdSW6dkb2wm235Oo6KqTssRCiE0ShJWVlakp6ff8Fh6ejrW1lLMTdwZXV0d\nBvVxYWxE8321L+aWsm5nAkkZxfJUIYQWaZQkRo0axbJly9i3bx9KpRJoHIhMSUlh5cqVxMTEtGmQ\noutztjPlkWg/+nrbq9tqapXsPJLOj4fTqayWpwohtEGj2k2zZs0iMTGR6dOno6/fuFfAn//8Z65c\nuULfvn2ZNWtWmwYp7g36ejoMDXKlu6sFe2Mz1cUCU7NKyCksJ6K/G15uVlqOUoh7i0ZJwsjIiC++\n+IIDBw5w+PBhSkpKMDc3JzQ0lMjISHR0ZE2eaD1uDuZMjPbj59M5nL1QBEBVTT0//HoRPw9rhvZz\nlRLkQrQTjf6lzZgxgyeeeILhw4czfPjwto5JCAz0dRkR7E4PV0v2xWZS/tsgdmJGMVkF5USGuOPp\nLCXIhWhrGj0CHDx4UD0WIUR78nSyYGKMHz09r06OqKiuY+uhC+yNzaCmTv5eCtGWNEoSgwcP5ocf\nfpBEIbTCyECP+0I9rytBfi7tMl/tSCAjr1SL0QnRtWnU3WRlZcU333zDjz/+iLe3NyYmJs2OKxQK\nVq1a1SYBCtGku4slj91vyk8nskjOLAEaNzb6/uAF/HvYMiTQRV1xVgjROjRKEhcvXiQwMBBoLPdc\n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\nD/dBZUkAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(coffee.results.temp, label='coffee')\n", + "decorate(xlabel='Time (minutes)',\n", + " ylabel='Temperature (C)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After running the simulation, we can extract the final temperature from the results." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def final_temp(system):\n", + " \"\"\"Final temperature.\n", + " \n", + " If system has no results, return initial temp.\n", + " \n", + " system: System object.\n", + " \n", + " returns: temperature (degC)\n", + " \"\"\" \n", + " if hasattr(system, 'results'):\n", + " return system.results.temp[system.t_end]\n", + " else:\n", + " return system.init.temp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It will be convenient to wrap these steps in a function. `kwargs` is a collection of whatever keyword arguments are provided; they are passed along as arguments to `System`." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(T_init=90, r=0.01, volume=300, t_end=30):\n", + " \"\"\"Runs a simulation with the given parameters.\n", + "\n", + " T_init: initial temperature in degC\n", + " r: heat transfer rate, in 1/min\n", + " volume: volume of liquid in mL\n", + " t_end: end time of simulation\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " init = State(temp=T_init)\n", + " \n", + " system = System(init=init,\n", + " volume=volume,\n", + " r=r,\n", + " T_env=22, \n", + " t0=0,\n", + " t_end=t_end,\n", + " dt=1)\n", + " return system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we use it:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "72.299625390403094" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee = make_system()\n", + "run_simulation(coffee, update)\n", + "final_temp(coffee)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Simulate the temperature of 50 mL of milk with a starting temperature of 5 degC, in a vessel with the same insulation, for 15 minutes, and plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here\n", + "milk = make_system(T_init = 5, r = 0.01, volume =50, t_end = 15)\n", + "run_simulation(milk, update)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEPCAYAAABlZDIgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlYVGX7B/DvzMCwy74vKiAgq+wuqAgupVZmZpaKS2Zm\n5ZYmhaSVlksuZWkqaT9TKzHN1N7eUhN3lE1BRBYX9n1fh5k5vz98HRlnRgedBYb7c11elzzzcM59\nODD3POc557lZDMMwIIQQQp4RW90BEEII0QyUUAghhCgEJRRCCCEKQQmFEEKIQmipOwBlaG1tRUZG\nBiwtLcHhcNQdDiGEdAsCgQAVFRXw9vaGrq5up79fIxNKRkYGpk6dqu4wCCGkW9q/fz+CgoI6/X0a\nmVAsLS0B3P+h2NjYqDkaQgjpHkpLSzF16lTRe2hnaWRCeXCZy8bGBg4ODmqOhhBCupennSrQyIRC\nCCFEUkMzDxeuFaOgvAF+/SwR4qnYKziUUAghRMMJBEKkZlcg6WYZ+AIhACA9t5ISCiGEEPkVlDUg\nIbUQtQ1tYu0B7lYK3xclFEII0UCNLe24cK0IOQW1Yu0WJnoY7u8AWwsDhe+TEgohhGgQgZDB9ZwK\nXMksRTtfKGrnanMQ6mUDHxcLsNkspeybEgohhGiI4opGJKQUoqq+Vazd3ckUg33tYKCnrdT9U0Ih\nhJBurrm1HRevFyPrXo1Yu1kvXQwPcIC9paFK4qCEQggh3ZRQyCDjdiUuZ5SC1y4QtWtrsRHsaQO/\nfpbgKOnyljSUUAghpBsqrWpCQkohKmpbxNpdHUwQ5mcHQ32uymOihEIIId1ISxsfl9KLkXmnWqzd\nxFAHw/zt4WTTS02RUUIhhJBugWEY3LhdhUsZJWjjPby8pcVhI6i/NfzdLMHhqLciCSUUQgjp4sqr\nm5GQWoiy6max9r52xhg6wB69DFR/eUsaKrDVgxw+fBienp6ir93d3XH06FEAQHR0NGbOnKmmyAgh\n0rTy+DiTUoj40zliyaSXARfjw5wxbkjfLpNMABqh9Chjx47FsGHD1B0GIeQJGIbBrXs1uHC9GC1t\nfFE7h81CoIc1AjysoKXmy1vSUELpQXR1dZ+qChshRHWq6lqQkFKE4spGsXYnGyMMG+AAEyMdNUX2\nZF0vxRG5ubu7Iz4+HlOmTIGPjw/Gjh2LtLQ0HDhwAMOHD0dAQACWLFkCHo8HQPKSlywMw+Djjz9G\nWFgY8vLylH0YhBAA7XwBLlwvxq//ZIslE0M9bTw/qA9eCHPu0skEoBGKmNRb5RLr36iKthYbIZ42\n8O/kCqCbNm3CmjVr0KdPH0RHR2Pu3Lnw8fHBrl27cOfOHXzwwQcICgrCG2+8Ifc2P/vsM5w9exZ7\n9+6Fs7NzZw+FENIJDMPgdlEdzqUVobGlXdTOZrEwwM0SwZ7W0NZ6uoJXqkYjlA7SsivUkkwAoJ0v\nRFp2Rae/b/LkyYiIiICzszNeeukl1NXVYdWqVXBzc8OYMWPQv39/5OTkyL29devW4Z9//sFPP/1E\nyYQQJatrbMPx83fwn0t3xZKJnYUhXhvlhsG+dt0mmQA0QhEzwM1SrSOUAW6dr+Ps5OQk+r+enh7Y\nbLZY2WNdXV3RJa8nSU5OxuXLl2FnZwcrK8XXSiCE3Cet4BUA6OloYYifHdydTMFiqW7JFEWhhNKB\nv7tVpy85qZuWlvgpZLFYT/2LaGBggO3bt+O9997Dpk2bEBsbq4gQCSEdSCt4xWKx4NXXDAN9bKHL\n7b5vy903cqJwHh4e8Pf3R0xMDJYsWYLnn38eQUFB6g6LEI3Q1NKO89eKkVMgviKwpakewgMcYW2m\nr6bIFIcSCpEwduxYHDlyBDExMfjjjz+go9O17ywhpCsTChmk51Ui8Yb4isBcbQ4GetvA21l5Ba9U\njSbliVQrV65EeXk5tm7dqu5QCOm2SquaEH8qG+fSisSSiZuTKaY95wFfV0uNSSYAwGIYhlF3EIpW\nWFiIyMhInDp1SmyCmhBCVKG1jY9LGSXIvFONjm+xJkY6GO7vAEdrIzVGJ9uzvnfSJS9CCFEQhmGQ\ndbcGF9PFl0zpSisCKxMlFEIIUYD7S6YUoriySay9r20vhA2wh7Gh5s9FUkIhhJBn0M4X4EpmGa5l\nV0DY4fKWkT4Xw/zt0ce2V7d8puRpUEIhhJCndKe4DmdTi9DQ/PDh4e64ZIqiUEIhhJBOamjm4Wxq\nEe4U14m121kYYniAPcyN9dQUmXpRQiGEEDkJhAyu5VTg6o1StD+6ZIqvHdx7d88lUxRFpQklMTER\nUVFRUl8LDQ3F3r17JdrT09OxZs0a3Lx5E9bW1pg/fz4mTJig7FAJIURMSWUTziQXoKq+Vazdy9kc\ng7xtoatDn89V+hPw9/fH+fPnxdouXLiAjz76CG+99ZZE/+rqasyZMwfjx4/HmjVrcPHiRcTExMDC\nwgJhYWGqCpsQ0oO1tvFxMb0EmXeqxNrNjfUQHuAAWwsDNUXW9ag0oXC5XFhaPlxRt6GhAV999RXe\nfPNNDB06VKJ/fHw8DA0NERMTAzabDRcXF2RmZmL37t2UUAghSiWrDK82h41gLxv49bMER4OeclcE\ntY7Rtm3bBi6Xi3fffVfq60lJSQgODgab/fBBoJCQEHz66adgGKZHX6skhChPdX0rElIKUVQhXoa3\nr50xhvnbw0ifq6bIuja1JZSqqirs27cPq1atgp6e9DsiSktLJUrWWllZoaWlBTU1NTAzM1NFqISQ\nHqKdL0TSzTKkZpdDKHz4TImhnjaGBzigr52xGqPr+tSWUH7++WeYm5vjxRdflNmntbUVXK74J4EH\nX8tbNIoQQuRxr6QeCamFqG8Sf6bEz80SIT3wmZKnobaE8scff2DixInQ1taW2UdatcEHX8sa1RBC\nSGc0trTjXFoR8gprxdptzQ0wPMABFib0XiMvtSSUnJwc3Lt3D+PGjXtsPxsbG1RUiNdZLy8vh76+\nPoyMuuZqnYSQ7kEoZJCeW4nLN0rEyn7rcDkY7GMHz75mNE/bSWpJKElJSbC0tISLi8tj+wUGBuLw\n4cNiE/CJiYkICAgQm6gnhJDOKKtuxpnkAlTUtoi1e/Q2w2BfW+jryr5yQmRTy7vyzZs34ebmJtHO\n4/FQUVEhuqw1adIkVFdXY+XKlcjLy8NPP/2E48ePY86cOaoOmRCiAdraBUhIKcSh0zliycTUSBcv\nh7tiZIgTJZNnoJaEUl5eDmNjybslUlNTERYWhtTUVACAhYUF4uLikJmZiQkTJmDfvn1Yt24dBg0a\npOqQCSHdGMMwyCmowf6/spCeVykqeqXFYWOgty2mjHKDvaWhmqPs/tRyyev777+X2h4aGopbt26J\ntQ0YMACHDh1SRViEEA1U19iGhNRC5Jc2iLU72RhhuL9Dj6hToiq0+AwhRCMJhAzSsstxNbMM/A4L\nOerramPoADu4OpjQpLuCUUIhhGgcaQs5slgseDubY6CPLXS06ZkSZaCEQgjRGK08Pi6ll+DGbfGF\nHC1M9DAi0BHWZvpqiqxnoIRCCOn27k+61+JcWpHEQo6h3jbwdbUEmxZyVDpKKISQbq224f6ke0GZ\n+KR7X9teGOrvgF4GtJCjqsiVUO7cuYMTJ04gMTERRUVFaGhogKmpKWxtbTF06FCMGjUKvXv3Vnas\nhBAiIhAIkZpdgauZpRA8spDj0AH2cLY3pkl3FXtsQrl79y42btyIkydPwsLCAl5eXoiIiICenh7q\n6upQVlaGXbt2YdOmTRg1ahQWLlwIZ2dnVcVOCOmhiisacSalENWPTLr7ulog1MsGXJp0VwuZCeXH\nH3/E9u3bMW7cOOzfvx8BAQEyN5KamoqDBw9iypQpeOeddzBr1iylBEsI6dnuV08sRuadarF2S1M9\njAhwhBVNuquVzIRy8+ZNHDt2DFZWVk/ciL+/P/z9/VFSUoJNmzYpNEBCCGEYBrfya3Dh2iPVE7XY\nGOhlCx9XC5p07wJkJpR169Z1emO2trbYsGHDMwVECCEd1TS0IiGlCIXl4pPuLvbGGDrAHoZUPbHL\nkGtSvqmpCQYGBmJtSUlJCAoKUkpQhBAiEAiRfKscyTfLJCbdqXpi1/TYxSHT09Mxfvx47NmzR6y9\ntrYW06dPx+jRo5GVlaXUAAkhPU9xRSN++ScbV248vIOLxWJhgJslpj7nQcmki5KZUO7evYtZs2ah\nvb0d3t7eYq/p6enh888/BwBMnToVBQUFyo2SENIjtLbxcTopH4fP5KKm4eEdXNZm+pgc6YYwP3sq\nxduFyUwoO3bsgK2tLX777TeEh4eLvaajo4NJkyYhPj4eZmZm2LFjh7LjJIRoMIZhkJ1fg/3/zRK7\ng4urzcEwf3u8MqIfLE2pFG9XJ3MO5cqVK3j//fdhaCi7RoCxsTFmzZolcUmMEELkJWt5eZp0735k\nJpTKykrY2dk9cQMuLi4oLy9XaFCEEM0nEDK4ll2BK5mlYsvLG+ppY5i/A5ztaZ6ku5GZUCwsLFBc\nXPzEDZSVlcHMzEyhQRFCNFtZdTP+TS5AZYcyvCwWCz4u5hjobUtPundTMhPKoEGDcPDgQUyYMEHm\nNzMMg/j4eIlJe0IIkYbXLsDljBKk51WJyvACtLy8ppA5KT9z5kzcuHEDy5YtQ01NjcTrNTU1iI6O\nRkpKCmbMmKHUIAkh3d/tojoc+G8WrueK13Qf7GuHVyPdKJloAJkjFFdXV3zxxReIiYnB33//DR8f\nH9jZ2UEgEKC4uBjp6elgs9lYuXIlPeBICJGpsZmHs2lFuF1UJ9ZONd01z2OflB83bhy8vLywd+9e\nnD9/HtevXweHw4GdnR2mTp2KadOmwdHRUVWxEkK6EaGQQcbtSlzOKAWvXSBq19PRwtAB9ujnSDXd\nNc0Tl17p06cPPvnkE1XEQgjREJW1Lfg3uQBl1c1i7Z59zTHYxxa6OlTbTxPJnENJS0t7qg2mpqY+\ndTCEkO6tnS/ExevFOHgyWyyZmBrpYmK4KyKCHCmZaDCZZzY2Nhbu7u5455134OLi8sQNZWZmYufO\nncjJycGJEycUGiQhpOu7V1qPhJRC1DfxRG0cNguB/a0R6G4FDuexSwcSDSAzofz222/4+uuv8dJL\nL8HV1RWjR4+Gr68vHBwcoKenh4aGBpSWliI5ORlnz55FdnY2pk6d+lTL3hNCuq/m1nacv1aM7Hzx\nu0HtLQ0RHugAUyNdNUVGVE1mQuFyuVi2bBmmTp2KPXv2YP/+/fjmm2/EJtEYhoG1tTVGjx6NrVu3\nyvVkPSFEMzAMg6y7NbhwvRitvIdFr3S4HAzxtUP/PmY06d7DPPFipp2dHWJiYhATE4Ps7GwUFBSg\noaEBpqamsLe3h6urqyriJIR0IbUNbTiTUihR9MrNyRRhfnbQ19VWU2REnTo1O+bm5gY3NzdlxUII\n6eIEQgZp2eW4mlkmtv5WLwMuhgc4oLdNLzVGR9SNbrcghMhF1vpbA/pZIsTLmuqUEEoohJDHa+cL\ncDmjVGzJFACw/N/6W1a0ZAr5H0oohBCZ7pXU40xKIRqaH94KrMVhI8TLBgP6WYLNpkl38hAlFEKI\nhObWdpxLK0ZOgfitwI7WRggPoPW3iHSdTihlZWUoLy+Hq6sr2Gw2dHQ6/4sVHx+PuLg4lJSUwNXV\nFcuWLcOgQYOk9l24cCH++usvsbZBgwbhxx9/7PR+CSGP9+BW4PPXi9DGe7j+li5XC2ED7ODuZEq3\nAhOZ5E4oCQkJWL9+PW7fvg0Wi4X4+Hh8//33MDU1xapVq8Bmy/cU7JEjR/Dpp59i1apVCA4OxoED\nBzB//nwcO3YMDg4OEv2zs7PxwQcf4OWXXxa1cblUEpQQRZN1K7BHb1MM9qVbgcmTyZUFEhIS8M47\n78DJyQmfffYZhML7twsGBwfj8OHD2LVrl1w7YxgGW7duxVtvvYVJkyahd+/eWL58OZycnKSuAcbj\n8ZCfnw9fX19YWlqK/hkbU2lQQhRFIGSQdLMMv/xzSyyZ9DLg4sWhzhgZ0puSCZGLXCOUB0uwfPnl\nlxAIBIiNjQUAREVFoaGhAYcPH8bbb7/9xO3cvn0bRUVFGDt2rKiNzWbj6NGjMvvz+Xy51hIjhHSe\nzFuB3SwR4km3ApPOkWuEkpubi3Hjxkl9LTg4GCUlJXLt7O7duwCA+vp6REVFYdCgQZg6dSpSUlKk\n9s/Ozoa2tja2bt2K8PBwjBkzBps3b0ZbW5tc+yOESMdrF+BcWhEOnc4RSyaWJnp4NbIfhvjaUTIh\nnSZXQjExMcG9e/ekvnbv3j2YmprKtbPGxkYAQHR0NF599VXExcWhX79+mDFjBvLy8iT65+bmAgCc\nnZ2xY8cOvPfeezh06BDVZyHkGdwtqceB/2bhWk6FWCneIf8rxWtlSs+VkKcj1yWvsWPH4uuvv4ad\nnR2GDBkC4P6wODc3F9u3b8fo0aPl2pm29v3rsPPmzcMLL7wAAPD09ERycjJ+/vlnrFixQqz/okWL\nMHv2bJiYmAAA3N3dweFwsHjxYkRHR8udyAghsm8FdrI2wnC6FZgogFwJZdGiRbh16xbeeecdUVKY\nPXs26urq4Ofnh0WLFsm1MysrKwAQWw+MxWLB2dkZhYWFEv3ZbLYomTzw4HtLS0spoRAiB4ZhcCu/\nBufTxFcF1tPRQpifHdzoVmCiIHIlFF1dXezZswcJCQm4fPkyamtrYWRkhJCQEERERMh9y7CXlxf0\n9fWRnp4OHx8fAPd/2fPy8qQ+h7Jw4ULw+Xx89913oraMjAxwuVw4OTnJtU9CerK6xjYkpBQiv0zy\nVuAhfvbQo+qJRIHk+m16//33ERUVheHDh2P48OFPvTM9PT3MmDEDW7ZsgYWFBdzc3HDgwAHk5+fj\nm2++AY/HQ11dHYyNjcHlcjFmzBgsWbIEe/bsQWRkJDIzM7Fu3TrMnj0bBgYGTx0HIZpOKGRwPbcC\niRmlaKdVgYmKyJVQzp07h6lTpypkhwsXLoSenh6++OILVFVVoX///ti9ezecnZ2RmJiIqKgo7N27\nF6GhoRg7dix4PB5++OEHbN68Gebm5oiKipLrFmVCeqrK2hb8m1wgVtOdxWLB19UCA71t6O4tojQs\npuPyoTLMnz8flpaW+OSTT8DhdP1fxsLCQkRGRuLUqVNSn74nRBPxBUIk3SxDSlY5hB3+rM176WJE\nkCNszGlUTx7vWd875RqhmJiY4LfffsNff/0FV1dX6OuL31bIYrGwc+fOTu+cEKIYxRWNOJ1cgNqG\nh89ocdgsBHvawN/NEhyOfPOchDwLuRLK3bt34evrC+D+JHpTU5NSgyKEyIfXLsDF68XIuF0l1m5n\nYYARgY4w7aWrpshITyRXQjlw4ICy4yCEdNKd4jokpBSisaVd1MbV5mCQjy28nc3pVmCicnTPICHd\nzP0HFIuQU1Ar1t7XtheGBzjAUJ9W4ybqIVdC8fX1feKnnWvXrikkIEKIdLJqlejpaGGYvz1cHUxo\nVELUSq6EMmvWLIlf1ObmZiQnJ6O4uBhLlixRSnCEkPvqGu/XKil45AHF/n3MMMTXDrr0gCLpAuT6\nLVy8eLHM1z744ANkZWUpLCBCyENCIYNrORVIvFEK/iMPKI4IdISjtZEaoyNE3DPfSzhp0iQcP35c\nEbEQQjqorG3BodM5uHC9WJRMHtQqeX20OyUT0uU88zi5sLAQ7e3tT+5ICJGLrAcULUz0MCLQEdZm\ntLw86ZrkSijSSvwKhUKUlJTg6NGjGDZsmMIDI6QnKqlswumkAtQ0tIraRA8ouluBw6ZJd9J1yZVQ\nNm7cKLVdT08P4eHhiImJUWhQhPQ07XwBLqWXID2vCh1XQ7KzMMCIIEeYGtEDiqTrkyuh3LhxQ6KN\nxWLJvWw9IUS2/NJ6nEkpRH0TT9SmrcXGYB87eLvQA4qk+5ArI6xatQolJSXgcDiifw+SyZ07d/D+\n++8rNUhCNFFrGx+nrubjj3O3xZJJb5teeGOMB3xcLSiZkG5F5gilrKxM9P/4+HiMHDlSVK2xo3Pn\nziEhIUE50RGioXILa3E2tQjNrQ9vaNHlamHoAKqgSLovmQklNjYW586dA3D/8ta8efOk9mMYBoMH\nD1ZOdIRomKaWdpxNLUReUZ1Yez9HEwwdYA99XckPbYR0FzITyueff46LFy+CYRh8/PHHeOeddyTK\n7rLZbPTq1QuhoaFKD5SQ7kzWsikGutoID3RAXztjNUZHiGLITCjW1tZ4+eWXAQACgQCRkZEwMzNT\nWWCEaIr6Jh7+TS6QWDbFy9kcg3xsoculZVOIZpDrN/nVV18Fj8dDVlYWeLyHk4dCoRAtLS1ISkqi\niXlCHiEUMkjPq8TljBK082nZFKL55EooSUlJWLRoEaqqqqS+rqenRwmFkA6q61txOqkApVUPi9Gx\nWCz49bNAqBfVdSeaSa6EsnnzZhgYGCAmJgbHjx8Hh8PBhAkTkJCQgPj4eOzevVvZcRLSLQiEDFJv\nleNqZikEQqrrTnoWuRJKZmYmPv/8czz//PNobm7Gr7/+ioiICERERIDP52P79u3YsWOHsmMlpEsr\nr27G6eQCVNa2iNrYbBaC+lsj0N2K6roTjSdXQhEIBLCxsQEA9O7dGzk5OaLXnn/+eURHRysnOkK6\nAb5AiCs3SpGaXSG2bIq1mT4ighxhbqynxugIUR25EoqTkxNyc3MRFBQEZ2dntLS04M6dO+jbty+E\nQiGampqevBFCNFBxRSNOJxWgtrFN1KbFYWOgtw18XS3BpsUcSQ8iV0IZN24cNmzYAACYMmUKvLy8\n8MUXX2DmzJnYvn07XFxclBokIV3Ng8Ucr+dWirU7WBlhRKADjA111BQZIeojV0KZO3cuqqqqcPny\nZUyZMgUrV67EW2+9hTfffBMGBgbYtm2bsuMkpMsoKGvAv8kFYutvcbU5GOJrB8++ZrRsCumx5Eoo\nZWVlWLFihehrX19fnDx5Erm5uXBxcUGvXr2UFiAhXUUrj4+L14uReadarL2PbS+EBzjAUJ+rpsgI\n6Rrkuu3klVdewR9//CHWZmRkBH9/f0ompEe4U1yHX/6+JZZMdLlaGBXihHFD+lIyIQRyjlBYLBZM\nTU2VHQshXU5LGx/n0oqQnV8j1u7iYILh/rSYIyEdyZVQ3n33Xaxfvx6tra3w8PCAvr5kTWtzc3OF\nB0eIujAMg7zCOiSkFqKljS9q19PRwvAAB7g6mKgxOkK6JrkSyldffYW2tjYsWLBAZp+bN28qLChC\n1Km5tR0JKZJLzHv0NkWYnz10dWgxR0Kkkesv4+OPP1Z2HISoHcMwuJVfg3Np4kvMG+ppIzzQEX1s\nab6QkMeRe7VhQjRZYzMP/yYX4l5pvVi7l7M5BvvaQUebFnMk5EnkXlyIYRj85z//QWxsLObNm4d7\n9+7h2LFjuH37dqd3Gh8fjzFjxsDX1xcTJ07EpUuXZPZNT0/HlClT4Ofnh9GjR+P333/v9P4IkYVh\nGGTkVeLA37fEkkkvAy5eGuaCEYGOlEwIkZNcCaWxsRFTp07F4sWLcf78eSQkJKCxsRG///47Jk+e\njKysLLl3eOTIEXz66ad46623cOzYMQQHB2P+/PkoLCyU6FtdXY05c+bAy8sLhw8fxvTp0xETE4Pz\n58/Lf4SEyFDX2IajZ/NwJqUQvPb7l7hYLBb8XC3x+mh3qldCSCfJlVDWr1+P/Px8HD58GP/8849o\nAbwtW7agT58+2LJli1w7YxgGW7duxVtvvYVJkyahd+/eWL58OZycnJCamirRPz4+HoaGhoiJiYGL\niwumT5+OF198kZbLJ89EKGRwLbsCv/x9C4XljaJ2EyMdvBzugqH+9lSvhJCnINccyj///INly5bB\n09MTAsHDyUojIyPMmzcPMTExcu3s9u3bKCoqwtixY0VtbDYbR48eldo/KSkJwcHBYLMf5r2QkBB8\n+umnYBiGlrggnVZT34pTUgpf+btZIsTLBlq0xDwhT02uhNLc3CzzORMdHR20tbVJfe1Rd+/eBQDU\n19cjKioKOTk5cHZ2xgcffICAgACJ/qWlpfD09BRrs7KyQktLC2pqaqjGPZGbUMggLbsCiTdKJApf\nRQQ7wdpM8tkqQkjnyPVxzMvLCwcPHpT62n/+8x+JN31ZGhvvX16Ijo7Gq6++iri4OPTr1w8zZsxA\nXl6eRP/W1lZwueJLWjz4umNte0Iep6quBb/9m4OL6cWiZMJmsRDiaYPJI90omRCiIHKNUBYuXIg3\n33wTkyZNQnh4OFgsFv7++2/s3LkTJ0+elLtao7b2/WUq5s2bhxdeeAEA4OnpieTkZPz8889iC1AC\ngK6urkTiePC1nh4VLSKPJxQySJFSjtfSVA+RQU6wMKHfIUIUSa4RSmhoKOLi4sBisfDdd9+BYRjs\n2LEDd+/exXfffYewsDC5dmZlZQUAcHNzE7WxWCw4OztLvcvLxsYGFRUVYm3l5eXQ19eHkRHdgUNk\nq6xtQfzpbFzOeHiJi81mYaC3LSZFuFEyIUQJ5F5DYuDAgYiPj0dTUxPq6upgZGTU6Td1Ly8v6Ovr\nIz09HT4+PgD+t2ZSXh4GDRok0T8wMBCHDx8Wm4BPTExEQECA2EQ9IQ8IhAySs8qQdLMMwg6jEitT\nfUQGUzleQpSpU4sSXbhwAUlJSaivr4e5uTkGDhwodTJdFj09PcyYMQNbtmyBhYUF3NzccODAAeTn\n5+Obb74Bj8dDXV0djI2NweVyMWnSJMTFxWHlypWYMWMGLl68iOPHj2PXrl2dPlCi+SpqWnA6KR8V\ntS2iNg6bhVAvWwxwo3K8hCibXAmltrYW8+bNQ1paGrS0tGBiYoLa2lps3boVw4YNw9atWyUmz2VZ\nuHAh9PT08MUXX6Cqqgr9+/fH7t274ezsjMTERERFRWHv3r0IDQ2FhYUF4uLisHr1akyYMAF2dnZY\nt26d1NEM6bkEAiGSs8rvj0qYh6MSG3MDRAQ5wqyXrhqjI6TnYDFMh79AGZYuXYpz585hzZo1iIyM\nBIvFglAoxMmTJxEbG4sJEybgo48+UkW8ciksLERkZCROnToFBwcHdYdDlKi8phmnrhagqu7hqESL\nw0aolw3MOb3kAAAgAElEQVT8+tGohJDOeNb3TrlGKGfPnsXy5csxcuRIURubzcbo0aNRW1uLr7/+\nukslFKL5BAIhrt4sQ0pWudioxNbcABHBjjA1olEJIaomd8VGExPpBYWsrKzomRCiUmXVzTh9NR9V\n9a2iNi0OG4O8beHjakGjEkLURK6E8vrrr2PLli3w9fWFpaWlqL2pqQlxcXF44403lBYgIQ/wBUJc\nuVGK1OwKdLxSa2dhiIggR5gY6agxOkKIXAmluroapaWlGDlyJIKDg2FlZYXa2lokJyejoaEBOjo6\neOuttwDcH83s3LlTqUGTnqe0qgmnrhagpuHhqESbw8YgX1v4uFjQum6EdAFyJZTc3Fz069cPwP11\nvR6syeXi4gIAaGlpkfWthDwTvkCIxIxSpOWIj0ocrAwxItARxoY0KiGkq5AroRw4cEDZcRAioaSy\nCaeS8lHb8HDxUW0tNob42sHL2ZxGJYR0MZ16sJHH46GhoUHqa7JWIyaks9r5QiTeKMG1nEqxUYmj\ntRFGBDqil4F8zzwRQlRLroRy69YtfPTRR8jKyoKsx1Zu3ryp0MBIz1RS2YRTV/NR2/hwVMLV5mCI\nrx08+5rRqISQLkyuhLJy5UqUlZVh8eLFMm8fJuRZ8AVCXM6QHJU42dwflRjp06iEkK5OroSSlZWF\nTZs2ISIiQtnxkB6otKoJJ6+Kz5VwtTkI87ND/z40KiGku5AroTg4OMhdlZEQefEFQiTeKEXaI8+V\nOFobISKIRiWEdDdyJZRFixbhq6++gpWVFXx8fOReCJIQWaQ9V0JzJYR0b3IllH79+kEoFGLatGkA\nAA6HI9EnIyNDsZERjSTraXcalRDS/cmVUJYvX466ujq89tprsLCwUHZMREOVVTfj1NV8VHdYg0tb\ni40wP3salRCiAeRKKDdv3sT69esxZswYZcdDNJCsUYmD1f1RCT1XQohmkCuh2NraUsld8lRkjUro\naXdCNI9cCWXBggXYvHkzLCws4OvrK3UOhZCOBAIhrmSWIfWWeL0SGpUQornkSig7d+5ESUmJaJn6\nR+/yYrFYSEtLU3x0pFsq/9+opOqRUclgHzt4u9CohBBNJVdCCQ8PV3IYRBPIGpXYW96vV0IrAxOi\n2eR+DoWQx5E6KuGwMdiXRiWE9BSdWm34+vXruHjxIioqKjBnzhzcuXMHHh4eMDMzU1Z8pIsTCIRI\nulmG5CwalRDS08mVUNrb27F8+XL8+eef0NLSgkAgwMSJE7Fr1y7k5eVh//79cHR0VHaspIuprG3B\nyav5qKx9WGCNqigS0nPJdS/w119/jTNnzmDr1q24evWq6FmCTz/9FHp6eti8ebNSgyRdi1DIIOlm\nGQ6eyhZLJnYWhpgy2h2+rpaUTAjpgeQaofzxxx9YsmQJRo0aBYFAIGp3cnLCggUL8MUXXygtQNK1\nVNe34uSVfJTXNIvatDhsDPK2hW8/GpUQ0pPJlVBqa2vRt29fqa+ZmpqisbFRoUGRrkcoZJCWU4HE\njBIIhA/nSmzMDRAZ7AhTI101RkcI6QrkSiiurq74888/MWTIEInXzp07BxcXF4UHRrqO2oY2nLqa\nj5KqJlEbh81CqJctBrhZgs2mUQkhRM6E8vbbb2PhwoVoaGjAiBEjRA8ynjhxAj/99BPWrl2r7DiJ\nGjAMg+u5lbiUXgK+QChqtzLVR2SwI8yN9dQYHSGkq5EroYwZMwZr167Fxo0b8ffffwMAPv/8c5iY\nmODjjz/G+PHjlRokUb26xjacTipAUcXDy5lsFgvBntYI8LAGh0YlhJBHyP0cyoQJE/DSSy8hNzcX\ntbW1MDIygqurK7S0OvUoC+niGIbBjdtVuHC9GO38h6MSCxM9RAY5wdKURiWEEOlkZoOoqCisXLlS\nbH6ExWKhX79+KgmMqF5jMw+nkgpQUNYgamOzWAjwsEJwf2twOLTiNCFENpkJ5cqVK2hqapL1MtEg\nDMMg624Nzl0rAq/94W3hZr10ERnsBGszfTVGRwjpLuh6VQ/X2NKOhOQC3CmpF7WxWCwMcLNEqJcN\ntGhUQgiRk8oTSm5uLsaNGyfRvn//fgQFBUm0L1y4EH/99ZdY26BBg/Djjz8qK8QegWEYZOfX4Gxa\nEdp4D0clJoY6iAx2gq2FgRqjI4R0R49NKKtXr4ahoeETN8JisfDDDz/ItcPs7GyYmpri2LFjYu0m\nJiYy+3/wwQd4+eWXRW2P1mMhndPc2o6ElELkFdWJtfu5WmKgjy20tWhUQgjpvMcmFD6fj/b2doXu\nMDs7G66urrC0tHxiXx6Ph/z8fPj6+srVnzxZbmEtElIK0dLGF7X1MuAiMtgJ9pZP/vBACCGyPDah\nrFq1Cr6+vgrdYU5ODpydneXqe/v2bfD5fHoSXwFa2/g4m1aE7PwasXZvZ3MM9rUDV5vKOhNCno3K\n51BycnLQ1taGyZMno6ioCP369cOSJUukJq7s7Gxoa2tj69atOHv2LHR0dPDcc89h/vz50NGhOhvy\nuldSj9NJBWhqfTjaNNTTRkSQI5xseqkxMkKIJlFpQmltbUVBQQHMzMzw4YcfgsvlYt++fZg2bRqO\nHDkiMRLJzc0FADg7O2Pq1KnIzs7G2rVrUVpainXr1qky9G6J1y7AhevFuHG7Sqzdo7cZwgbYQZdL\nN/kRQhRH5jvKyy+/DFNTU4XuTFdXF1evXgWXyxVNrK9duxY3btzAgQMHEBsbK9Z/0aJFmD17tmjC\n3t3dHRwOB4sXL0Z0dLTC49MkxRWNOHk1H/VNPFGbno4WIoIc0dfOWI2REUI0lcyE8uWXXyplh4/e\nNcZms+Hq6oqSkhKJvmw2W+LuLzc3NwBAaWkpJRQp+AIhLmeU4FpOpagQGgC4OJhguL899HW11Rgd\nIUSTqfT+0IyMDAQEBCAjI0PUJhAIkJWVJXVJl4ULF+Ldd9+V2AaXy4WTk5PS4+1uyqqbcfBkNtKy\nK0TJRIfLwejQ3nhuYG9KJoQQpVJpQvHw8IC9vT0++eQTXLt2DTk5Ofjoo49QU1ODqKgo8Hg8VFRU\ngMe7f5lmzJgxOHXqFPbs2YP8/Hz89ddfWLduHWbPng0DA3rw7gGBQIjEjBL8djoH1fWtonYnGyO8\nPtoDbk6mVEmREKJ0Kp2V1dLSQlxcHNavX4958+ahpaUFAQEB2LdvH8zNzZGYmIioqCjs3bsXoaGh\nGDt2LHg8Hn744Qds3rwZ5ubmiIqKwttvv63KsLu0qroWnLySj4oOtd21tdgI87OHZ18zSiSEEJVh\nMR0vtGuIwsJCREZG4tSpU3BwcFB3OEohFDJIy65A4g3xkrx2FoaIDHaEsSHdVk0I6Zxnfe+k+0a7\nIVkleQf52MLXlUryEkLUgxJKN8IwDDLyqnDxejHaHynJOzLECWa9dNUYHSGkp6OE0k3IKn4V5GmN\nQCrJSwjpAiihdHEMw+BWfg3OpRah7ZHiVyODnWBFxa8IIV0EJZQurLm1HWdSCnG7wzLzVPyKENJV\nUULpovIKa3FGyjLzI0OcYGdBy8wTQroeSihdTFu7AOdSC5F175Fl5l0sMMTXFtpatMw8IaRrooTS\nhRSUNeDU1Xw0ttAy84SQ7ocSShfAFwhxKb0E13IqxNrdnUwx1N+elpknhHQL9E6lZuXVzfjnSj5q\nGh6uwaXL1UJ4oANcHUwe852EENK1UEJRE4GQQXJWGZIyyyDssPpNb5teiAhyhIEerQxMCOleKKGo\nQU1DK05eyUdZdbOojRZ0JIR0d5RQVIhhGKTnVeLi9RLwOyydYmtugJEhTrSgIyGkW6OEoiJSl05h\nszDQyxYD3GhBR0JI90cJRckYhkF2fg3OPrJ0ioWJHkYGO8HCRE+N0RFCiOJQQlGiljY+zqQUIq+w\nVtTGYrHg/7+lUzi0dAohRINQQlGSuyX1OJ1UgObWhw8p0tIphBBNRglFwdr5Apy/Vowbt6vE2r2c\nzRHmZ0dLpxBCNBYlFAUqrmzEySv5qG/iidr0dbURGeSI3ra0dAohRLNRQlEAgUCIxBulSM2uANPh\nIUUXBxOEBzhAT4d+zIQQzUfvdM+osrYFJ6/mo7K2RdSmw+VguL8D+jma0EOKhJAegxLKUxIKGaTl\nVCAxowQC4cNRiaO1ESKDHGGoz1VjdIQQonqUUJ5CfRMPp67mo6iiUdSmxWFjsK8tfFwsaFRCCOmR\nKKF0woP67mdTi8Dr8JCilak+RoU4wbSXrhqjI4QQ9aKEIqfWNj7+feQhRTaLhaD+1gjsbw0OLZ1C\nCOnhKKHI4V5pPU5fLUBTh4cUTQx1MDLECTbmBmqMjBBCug5KKI/Rzhfi4vVipOdVirV7O5tjCD2k\nSAghYiihyFBW3Yx/rtxDbUObqE1f93599z70kCIhhEighPIIoZBBkpRKis72xggPcIC+LlVSJIQQ\naSihdFDb0IZ/rtyTqKQ4bIADPPqY0u3AhBDyGJRQcP924Bu3q3DhWjHaO1RStLMwQGQwVVIkhBB5\n9PiE0tzajlNXC3CvtF7URpUUCSGk81SeUHJzczFu3DiJ9v379yMoKEiiPT09HWvWrMHNmzdhbW2N\n+fPnY8KECQqJJa+wFv8mF6KVxxe1mffSxciQ3rA0pUqKhBDSGSpPKNnZ2TA1NcWxY8fE2k1MTCT6\nVldXY86cORg/fjzWrFmDixcvIiYmBhYWFggLC3vqGHjtApxLK8LNu9Vi7QPcLDHQ2xZaVEmREEI6\nTS0JxdXVFZaWlk/sGx8fD0NDQ8TExIDNZsPFxQWZmZnYvXv3UyeU4opGnLwqXrPEUE8bkcFOcLQ2\neqptEkIIAVT+UTwnJwfOzs5y9U1KSkJwcDDY7IdhhoSEICUlRazuiLyy7lXjSEKeWDJxdzLFlNHu\nlEwIIeQZqSWhFBcXY/LkyRgyZAhmzpyJ69evS+1bWloKa2trsTYrKyu0tLSgpqam0/u+1qEAlg6X\ngzEDe2NUaG/ocnv8vQmEEPLMVJpQWltbUVBQgMbGRnz44YfYvn07rKysMG3aNOTl5Untz+WK1xV5\n8DWPx5Po/yRezubQ4XLQ184Yr4/2QD9H06c7EEIIIRJU+tFcV1cXV69eBZfLFSWGtWvX4saNGzhw\n4ABiY2Ml+j+aOB58rafX+buwvF0s4OVsTg8oEkKIEqj8Wo+hoaHY12w2G66urigpKZHoa2Njg4qK\nCrG28vJy6Ovrw8jo6eY8KJkQQohyqDShZGRkICoqCnv37oW3tzcAQCAQICsrC88995xE/8DAQBw+\nfBgMw4gSQWJiIgICAsQm6h8lENwvflVaWqqEoyCEEM304D3zwXtoZ6k0oXh4eMDe3h6ffPIJVq5c\nCX19fezatQs1NTWIiooCj8dDXV0djI2NweVyMWnSJMTFxWHlypWYMWMGLl68iOPHj2PXrl2P3c+D\nUc3UqVNVcViEEKJRKioq0Lt3705/H4t5mvtvn0FZWRnWr1+PixcvoqWlBQEBAYiOjoabmxsSExNF\nI5jQ0FAAQFpaGlavXo1bt27Bzs4OCxYskPqkfUetra3IyMiApaUlOByqWUIIIfIQCASoqKiAt7c3\ndHU7X9Jc5QmFEEKIZqI1RgghhCgEJRRCCCEKQQmFEEKIQlBCIYQQohCUUAghhCiExiUUgUCAjRs3\nIiwsDP7+/liwYAEqKytl9k9PT8eUKVPg5+eH0aNH4/fff1dhtPKprKzE8uXLERYWhqCgILz55pvI\nzs6W2X/hwoVwd3cX+zdz5kzVBSyn3NxciTjd3d2RlJQktX93OFeJiYlSj8nd3R1RUVFSv6ern69P\nPvkEMTExYm3nz5/HSy+9BF9fX7zwwgtISEh47DZaWloQGxuL0NBQBAUFYcWKFWhqalJm2E8k7bj2\n7duH5557DgMGDMDYsWMRHx//2G0kJCRIPdfqfKha2nFNmjRJIsZH+3T01OeL0TCbN29mhgwZwpw/\nf57JyMhgXn31VWbKlClS+1ZVVTEhISHMZ599xuTm5jJ79+5lPD09mXPnzqk4atkEAgHz2muvMZMn\nT2auXbvG5OTkMAsWLGAGDRrEVFdXS/2e5557jtmxYwdTXl4u+ldbW6viyJ/sxIkTTGhoqFic5eXl\nDI/Hk+jbHc4VwzBMW1ubxPEcOXKE8fDwYM6ePSv1e7rq+RIKhcyWLVsYNzc35uOPPxa15+TkMN7e\n3sy2bduY3NxcZvPmzYyXlxeTnZ0tc1tLly5lnn/+eSY1NZW5evUqM2rUKGbJkiWqOAwJso5r//79\nzIABA5jff/+duXfvHnPw4EHGy8uLOXLkiMxt7dixg5kwYYLEORcIBKo4FDGyjksoFDJ+fn7MH3/8\nIRZjQ0ODzG097fnSqITS1tbG+Pv7M7/99puoraCggHFzc2OSk5Ml+n///fdMRESE2MmPjo5mZs2a\npZJ45XHjxg3Gzc2Nyc3NFbW1tbUxfn5+Un/R29raGE9PT+bSpUuqDPOpbN68mZk6dapcfbvDuZKm\nvr6eGTJkCLNhwwapr3fV85Wfn89MmzaNCQ0NZcLDw8XeoGJjY5lp06aJ9Z82bRqzYsUKqdsqKSlh\nPDw8mMuXL4vaEhMTGXd3d6a0tFQ5ByDD447rhRdeYNavXy/W/6OPPmKmT58uc3tLly5lPvzwQ6XF\nK6/HHde9e/cYNzc3Jj8/X65tPcv50qhLXllZWWhqakJISIiozcHBAfb29lIvoyi6gJcy2NraYseO\nHejbt6+o7cG6ZnV1dRL9b9++DT6fDxcXF5XF+LTUWWxNVbZt2wYul4t3331X6utd9XylpKTA1tYW\nx44dg4ODg9hrSUlJYn9jABAaGirzUmVKSgrYbDYCAgJEbQEBAeBwOEhOTlZ88I/xuONasWIFpkyZ\nItbGZrNRX18vc3s5OTld4tw97riys7Ohq6sLe3t7ubf1tOdLoypLPbhuKa0ol7RrmqWlpfD09JTo\n+6CAl5mZmfKClZOpqSnCw8PF2n766Se0trZKLYOcnZ0NbW1tbN26FWfPnoWOjg6ee+45zJ8/Hzo6\nOiqKWj45OTloa2vD5MmTUVRUhH79+mHJkiXw9fWV6NsdztWjqqqqsG/fPqxatUpmuYWuer5eeukl\nvPTSS1Jfk1X4Tta8QVlZGczMzKCtrS1q09LSgpmZmdRVxpXpccf1aJIsLi7GiRMnMG3aNKn9BQIB\nbt++jYyMDLz44ouorq6Gj48Pli1bJvcHJUV53HHl5OTAyMgIS5cuxZUrV2BqaoqJEydixowZUhfZ\nfZbzpVEjlJaWFrDZbLEfBHC/KFdbW5tEf0UX8FKFU6dOYdOmTZg1a5bUT0a5ubkAAGdnZ+zYsQPv\nvfceDh06hE8++UTVoT6WuoutqcLPP/8Mc3NzvPjiizL7dJfz1ZGscyHtbwy4/3cpLTk+7nvUrbq6\nGm+//TYsLCwwd+5cqX3y8/PR1tYGHo+H1atXY8uWLeDxeJg6dSqqqqpUHLFsubm5aG5uRlhYGH74\n4Qe88cYb+Oabb/Dtt99K7f8s50ujRii6uroQCoXg8/nQ0np4aDweT+onREUX8FK2w4cPIzY2FmPH\njsWyZcuk9lm0aBFmz54NExMTAIC7uzs4HA4WL16M6OhomJp2jSqV6i62pgp//PEHJk6cKPEBp6Pu\ncr460tHRQXt7u1ibrL8xQPq5e/A9+vr6SonxWRQUFGDOnDlobW3Fvn37ZNZe6tu3LxITE9GrVy/R\nJ/1vv/0W4eHhOHr0KGbPnq3KsGVat24dmpub0atXLwD3f8caGhrw/fff4/3335eoEfUs50ujRii2\ntrYAILUo16NDdEA5BbyUZfv27fjoo48wZcoUrF+/XmY9GDabLXpzesDNzQ1A16sPY2hoKPZJV9XF\n1pQpJycH9+7de+LK2N3pfD1ga2uL8vJysTZZf2PA/XNXXV0tVmODz+ejuroaVlZWSo21s27cuIHX\nXnsNbDYbv/zyCxwdHR/b38TEROxvUU9PD46Ojiq/lPc4WlpaomTygLu7O5qamtDQ0CDR/1nOl0Yl\nFA8PDxgYGODKlSuitsLCQhQVFSE4OFiif2BgIJKSksQmdeUp4KVqu3btwpYtW7BgwQLExsY+turk\nwoULJSaAMzIywOVy4eTkpOxQ5ZaRkYGAgABkZGSI2h4UW+vXr59E/+5yrh5ISkqCpaXlEydsu8v5\n6igwMBBXr14Va0tMTERQUJDM/nw+H6mpqaK25ORkCIVCBAYGKjXWzsjLy8Ps2bNhb2+PAwcOiD6g\nynLy5En4+/ujurpa1NbY2Ii7d+9K/R1Wl8mTJ2P16tVibenp6bCyspJINMCznS/OqlWrVikk6i6A\nw+GgoaEBP/zwA/r164fGxkZ8/PHH6N27N+bPnw8ej4fq6mpoa2uDw+GgT58+2LVrF4qKiuDk5IQT\nJ05gz549WLVq1RM/mahKVlYWFi9ejIkTJ2LOnDlobm4W/WOxWGAYRuyYGIbB999/DwMDA5ibm+PS\npUtYs2YNpk2bhmHDhqn7cETMzMzw559/4uzZs/Dw8EBDQwPWr1+PrKwsbNiwAVpaWt3uXHUUHx8P\nbW1tiYnSR38Hu8P5OnLkCIyNjREZGQkAsLe3x5YtW8Dn82FhYYGffvoJ//nPf/Dll1+Kbo6orq4G\nn8+Hjo4ODA0NkZeXh19//RWenp4oLi7GihUrMGLECEyYMKHLHNfcuXPR2tqKbdu2QUtLS/R31tbW\nJrqc1/G4zM3NcejQIaSkpMDd3R1lZWVYuXIleDwePvvsM7HL7uo8rtraWuzevRt2dnbQ19fH33//\nja+//hrLli2Dl5eXxHE90/nq5O3OXV57ezvz5ZdfMiEhIUxAQACzcOFCpqqqimEYhrl8+TLj5uYm\ndn91amoq88orrzDe3t7M6NGjmePHj6srdKk2btzIuLm5Sf333XffST2mI0eOMOPHj2d8fHyY8PBw\nZtu2bWp50OpJSktLmSVLljADBw5k/Pz8mFmzZjG3bt1iGKZ7nquO3n77bWbRokUS7d3xfE2bNk3s\nuQaGYZh///2XGTt2LOPt7c28+OKLzIULF8ReHzFiBLN8+XLR142NjUx0dDQTEBDAhISEMLGxsUxL\nS4tK4pel43Hdvn1b5t/ZyJEjRd/z6HHl5uYyb7/9NhMcHMz4+/sz7733HlNUVKTyY+no0fMlFAqZ\n3bt3M6NHjxb97fzyyy9i36Oo80UFtgghhChE17v4TAghpFuihEIIIUQhKKEQQghRCEoohBBCFIIS\nCiGEEIWghEJID0E3dBJlo4RCuqTo6GiZlQ8f/Js+fToAYPr06WqvcFhbW4uIiAjcu3fvqbdRWFgI\nd3d3HD16VIGR3ffbb79h3bp1Ct/ujBkz8Oeffyp8u6R7oudQSJeUn58vtqTFp59+Cg6HgxUrVoja\nDA0N4erqitzcXLBYLLXWpfjggw9gbW2NDz/88Km3wePxkJmZCScnJ4Uvxz9q1CgEBgZi7dq1Ct1u\nVlYWZs+ejWPHjsHc3Fyh2ybdj0atNkw0h5OTk9haVoaGhuBwOBgwYIBEX1dXV1WGJuH69ev473//\ni7Nnzz7TdrhcrtTj68o8PDzg5+eH7du3iyV70jPRJS/S7T16ycvd3R2//vorli5dCn9/fwwcOBDf\nfvstGhsb8dFHHyEwMBBDhgzBhg0bxOYVampqsGLFCgwaNAi+vr54/fXX5aooGBcXh8GDB4uNKiIi\nIrBt2zZ8/vnnCAkJQWBgID777DO0tLRg3bp1CA0NRWhoKGJiYkQ1Jh695HX48GH4+PggJSUFr776\nKnx8fDBixAjs3r1btJ/ExES4u7tLVEvs+DOJiIhAfn4+jhw5And3dxQWFgIAioqKsGjRIgQHB2PA\ngAF48803RfVZHjh+/DhefPFF+Pr6YtCgQVi6dCnKysrE+rzwwgs4dOiQ2IiS9EyUUIhGWrduHUxN\nTbFt2zaMGDECW7duxaRJk6Cnp4dvv/0Wo0aNQlxcHP7++28AQFtbG2bOnIkzZ85gyZIl+Oabb2Bs\nbIyZM2fi+vXrMvfT1NSE06dPY/To0RKvxcXFoba2Fl9//TWmTJmC/fv34+WXX0ZJSQk2btyI6dOn\n49ChQ9i/f7/M7fP5fCxZsgQvvPACdu3ahYCAAKxbtw6XLl2S+2fx7bffwsbGBsOHD8evv/4KKysr\nVFdX4/XXX0dWVhZWrVqFr776Ck1NTXjjjTdQVFQE4P4Ksx9++CFGjx6NuLg4REdH4/Lly1i6dKnY\n9sPDwyEQCHDy5Em5YyKaiS55EY3k5eWFmJgYAPcvyxw+fBjm5uaiSogDBw7EsWPHkJaWhjFjxuDo\n0aO4desW4uPj4ePjAwAYNmwYJk2ahM2bN2PPnj1S95OUlIT29napZYtNTU2xYcMGsNlshIaG4tdf\nf0V7ezu++uoraGlpISwsDP/973+RlpYm8ziEQiHef/99vPLKKwDu1/b+559/8O+//2LQoEFy/Sw8\nPT3B5XJhZmYmuqT2f//3f6irq8PBgwdhY2MDAAgLC8OoUaOwfft2rF69GsnJydDV1cXcuXNFdWtM\nTEyQnp4OhmFEZRT09fXh4uKCxMRETJ48Wa6YiGaiEQrRSB3f4E1NTcHhcMTaWCwWjI2NUV9fDwC4\ndOkSrK2t0b9/f/D5fPD5fAiFQowYMQJXr16VWWb4weUjBwcHidd8fHxEtVrYbDZMTU3h5eUltqy5\niYmJKAZZAgICRP9/kBhaWlqe9CN4rEuXLsHLywsWFhai49XS0sKQIUNw8eJFAEBwcDBaWlowfvx4\nbNy4EUlJSQgLC8N7770nUZPH3t5eNLIhPReNUIhGMjAwkGh7XPnS2tpalJaWiupDPKqmpkZqRcIH\nFe+klb/tbAyyPLptNpsNoVDY6e10VFtbi3v37kk93gcli/39/bFz5078+OOP2LNnD3bu3AkLCwvM\nmzdPdMt2xxilVf8jPQslFEIAGBkZwcXFReazGrJquz9ob2hokFr9TtkejBQeTTBNTU2PjcfQ0BAD\nB8QxG9YAAAJ8SURBVA6UmA951NChQzF06FC0tLTg8uXL2Lt3L1avXg1/f394e3uL+tXX18v8GZGe\ngy55EYL7l3eKi4thZWUFHx8f0b9Tp07hp59+En1qf5SdnR0A9dV/NzQ0BACxGuZ1dXXIy8sT6/do\nmeSQkBDcuXMHLi4uYsd78OBBnDhxAgCwYcMGTJo0CQzDQE9PDyNGjMDy5csBSB5vaWnpE0vmEs1H\nCYUQABMnToS1tTVmzZqFo0eP4vLly1i7di22b98OR0dHiTmDB4KCgqCrqyvX7cXK4O7uDltbW2zd\nuhUnT57EyZMnMWfOHInLZL169UJmZiauXLmC1tZWzJo1CzweD7Nnz8Zff/2Fixcv4sMPP8TBgwfh\n5uYGABg8eDAyMjIQHR2NCxcu4MyZM1i9ejVMTU0REhIi2nZDQwNycnIQFham0mMnXQ8lFEJwf75j\n//798PPzw9q1azF37lycO3cOsbGxeP/992V+n56eHoYNG/bMDzU+LQ6Hg2+++QYWFhZYvHgx1qxZ\ng3Hjxkncxjxr1ixUVlbizTffRGZmJqytrfHLL7/AysoKsbGxmD9/PnJzc7Fp0yZMnDgRADBkyBBs\n2rQJOTk5eO+997BkyRLo6+tj7969YpfTzp8/D21tbYSHh6vy0EkXREuvEPKMrl+/jtdffx2nT5+W\nOnGv6WbNmgVXV1fRbdqk56IRCiHPyNfXF5GRkWJPsPcUN27cQGZmJubOnavuUEgXQCMUQhSguroa\nEydOxP/93/+hd+/e6g5HZaZPn47XXnsN48ePV3copAughEIIIUQh6JIXIYQQhaCEQgghRCEooRBC\nCFEISiiEEEIUghIKIYQQhfh/8JrY1G86jmwAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(milk.results.temp, label='milk')\n", + "decorate(xlabel='Time (minutes)',\n", + " ylabel='Temperature (C)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using `fsolve`\n", + "\n", + "As a simple example, let's find the roots of this function; that is, the values of `x` that make the result 0." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def func(x):\n", + " return (x-1) * (x-2) * (x-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`modsim.py` provides `fsolve`, which does some error-checking and then runs `scipy.optimize.fsolve`. The first argument is the function whose roots we want. The second argument is an initial guess." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1.])" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fsolve(func, x0=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Usually the root we get is the one that's closest to the initial guess." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 2.])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fsolve(func, 1.9)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 3.])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fsolve(func, 2.9)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But not always." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 3.])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fsolve(func, 1.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We want to find the value of `r` that makes the final temperature 70, so we define an \"error function\" that takes `r` as a parameter and returns the difference between the final temperature and the goal." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def error_func1(r):\n", + " \"\"\"Runs a simulation and returns the `error`.\n", + " \n", + " r: heat transfer rate, in 1/min\n", + " \n", + " returns: difference between final temp and 70 C\n", + " \"\"\"\n", + " system = make_system(r=r)\n", + " run_simulation(system, update)\n", + " print(final_temp(system)-70)\n", + " return final_temp(system) - 70" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With `r=0.01`, we end up a little too warm." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.2996253904\n" + ] + }, + { + "data": { + "text/plain": [ + "2.2996253904030937" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "error_func1(r=0.01)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The return value from `fsolve` is an array with a single element, the estimated value of `r`." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.2996253904\n", + "[ 2.29962539]\n", + "[ 2.29962539]\n", + "[ 2.29962539]\n", + "[ 2.29962516]\n", + "[ 0.05010007]\n", + "[ 0.00112417]\n", + "[ 5.66726257e-07]\n", + "[ 6.39488462e-12]\n", + "[ 0.]\n" + ] + }, + { + "data": { + "text/plain": [ + "0.011543084583978345" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "solution = fsolve(error_func1, 0.01, xtol=1e-8)\n", + "r_coffee = solution[0]\n", + "r_coffee" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we run the simulation with the estimated value of `r`, the final temperature is 70 C, as expected." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "70.0" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee = make_system(r=r_coffee)\n", + "run_simulation(coffee, update)\n", + "final_temp(coffee)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** When you call `fsolve`, it calls `error_func1` several times. To see how this works, add a print statement to `error_func1` and run `fsolve` again." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Repeat this process to estimate `r_milk`, given that it starts at 5 C and reaches 20 C after 15 minutes. \n", + "\n", + "Before you use `fsolve`, you might want to try a few values for `r_milk` and see how close you can get by trial and error. Here's an initial guess to get you started:" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "18.499850754390966" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r_milk = 0.1\n", + "milk = make_system(T_init=5, t_end=15, r=r_milk)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "19.501444483698084" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "milk = make_system(T_init=5, t_end=15, r=0.12)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "19.895069743979544" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "milk = make_system(T_init=5, t_end=15, r=0.13)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "20.069407861638226" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "milk = make_system(T_init=5, t_end=15, r=0.135)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "20.000007288423909" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "milk = make_system(T_init=5, t_end=15, r=0.132961)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.10493025602\n", + "[-0.10493026]\n", + "[-0.10493026]\n", + "[-0.10493026]\n", + "[-0.10493019]\n", + "[-0.00240621]\n", + "[ -5.69514455e-05]\n", + "[ -3.19499520e-08]\n", + "[ -4.22772928e-13]\n", + "[ 0.]\n", + "0.132960789355\n" + ] + }, + { + "data": { + "text/plain": [ + "20.0" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def error_func2(r):\n", + " \"\"\"Runs a simulation and returns the `error`.\n", + " \n", + " r: heat transfer rate, in 1/min\n", + " \n", + " returns: difference between final temp and 70 C\n", + " \"\"\"\n", + " system = make_system(r=r, T_init=5, t_end=15)\n", + " run_simulation(system, update)\n", + " print(final_temp(system)-20)\n", + " return final_temp(system) - 20\n", + "\n", + "solution = fsolve(error_func2, 0.13, xtol=1e-8)\n", + "r_milk = solution[0]\n", + "print(r_milk)\n", + "\n", + "milk = make_system(r=r_milk, T_init=5, t_end=15)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Mixing liquids" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function takes `System` objects that represent two liquids, computes the temperature of the mixture, and returns a new `System` object that represents the mixture." + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def mix(s1, s2):\n", + " \"\"\"Simulates the mixture of two liquids.\n", + " \n", + " s1: System representing coffee\n", + " s2: System representing milk\n", + " \n", + " returns: System representing the mixture\n", + " \"\"\"\n", + " #assert s1.t_end == s2.t_end\n", + " \n", + " volume = s1.volume + s2.volume\n", + " \n", + " temp = (s1.volume * final_temp(s1) + \n", + " s2.volume * final_temp(s2)) / volume\n", + " \n", + " mixture = make_system(T_init=temp,\n", + " volume=volume,\n", + " r=s1.r)\n", + " \n", + " return mixture" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we'll see what happens if we add the milk at the end. We'll simulate the coffee and the milk separately." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "70.0" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee = make_system(T_init=90, t_end=30, r=r_coffee, volume=300)\n", + "run_simulation(coffee, update)\n", + "final_temp(coffee)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "21.764705882352942" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "milk = make_system(T_init=5, t_end=30, r=r_milk, volume=50)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the results look like." + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap07-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nBCGEEIf+H0W9gvkl+IxjAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(coffee.results.temp, label='coffee')\n", + "plot(milk.results.temp, '--', label='milk')\n", + "decorate(xlabel='Time (minutes)',\n", + " ylabel='Temperature (C)',\n", + " loc='center left')\n", + "\n", + "savefig('chap07-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what happens when we mix them." + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "63.109243697478988" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mix_last = mix(coffee, milk)\n", + "final_temp(mix_last)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's what we get if we add the milk immediately." + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "coffee = make_system(T_init=90, r=r_coffee, volume=300)\n", + "milk = make_system(T_init=5, r=r_milk, volume=50)" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "61.428571428571438" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mix_first = mix(coffee, milk)\n", + "mix_first.t_end = 30\n", + "run_simulation(mix_first, update)\n", + "final_temp(mix_first)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function takes `t_add`, which is the time when the milk is added, and returns the final temperature." + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_and_mix(t_add, t_total=30):\n", + " \"\"\"Simulates two liquids and them mixes them at t_add.\n", + " \n", + " t_add: time in minutes\n", + " t_total: total time to simulate, min\n", + " \n", + " returns: final temperature\n", + " \"\"\"\n", + " coffee = make_system(T_init=90, t_end=t_add, \n", + " r=r_coffee, volume=300)\n", + " run_simulation(coffee, update)\n", + "\n", + " milk = make_system(T_init=5, t_end=t_add, \n", + " r=r_milk, volume=50)\n", + " run_simulation(milk, update)\n", + " \n", + " mixture = mix(coffee, milk)\n", + " mixture.t_end = t_total - t_add\n", + " run_simulation(mixture, update)\n", + "\n", + " return final_temp(mixture)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can try it out with a few values." + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "61.428571428571438" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_and_mix(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "62.90280912845234" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_and_mix(15)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "63.109243697478988" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_and_mix(30)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then sweep a range of values for `t_add`" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sweep = SweepSeries()\n", + "for t_add in linrange(0, 30, 2):\n", + " temp = run_and_mix(t_add)\n", + " sweep[t_add] = temp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the result looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap07-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nMdGkZRzHsYSEBP5zX18f4ziOvf7663yZwWBgEomE5efnM8YYq66uZiKRiF2+fJmvMzo6yjZt2sSS\nkpKmjKumpoa9+eabzGAwGK0XHBzMcnNzGWP3H7LIcRxramri6wwNDbG1a9ey9evXM8YYGxgYYP7+\n/qy4uNho+9u3b2ccx7Fbt24xxhh79dVX2caNG9no6Chf55dffmEikYjV1tYyxhjLz89na9asYX19\nfXydixcvMo7jJjxYdbxjx44xkUjEtFqtUfls+vPHH39kHMcxtVrNGGOstLSUcRzHLly4wK/T0dHB\nOI5jn332mVF7v/76K+M4jp07d27KWMnCR0c85D8nMDCQf+/q6gqBQGBUZmNjA2dnZ/4U1YULF7Bs\n2TI8++yz0Ov10Ov1MBgMiIyMhFqthk6nm7SdTZs24eDBg9DpdNBoNKivr0dpaSlGR0f5mRt//vln\n2NnZ4YUXXuDXc3R0RHh4OP/54sWLGBkZ4adDGPPyyy/z7//++29cunQJERER/Ey5er0efn5+8PDw\nwA8//AAAaGlpgUQigaurK79uUFAQPDw8pu2zmzdvwsXFhb9pYy79ORWJRMK/f+qpp/j9Gm/58uUA\ngI6Ojmm3RRY2urmA/OcIhcIJZdPNPdTf34+urq4pL2jfuXNn0lkX//nnH3z00Ueora2FXq+Hp6cn\nxGIxbG1t+esdAwMDRklgzNKlS/n3Y9dyHpzjZHydu3fvwmAwoKKiAhUVFRO2NzZT5MDAAHx8fKZt\nbzKDg4NT9tHD9udkBALBhJlwAUy41jU2rfJCnbWTmIYSDyEzePzxx/HMM8+goKBg0uWTJQ4AyMvL\n4yf8kkql/JexVCo1Wrevrw+MMaPbvvv7+ydsv6enx+huvvF1hEIhbGxsIJfLjY6Exi8f21Zvb++E\n5eO3NdU+LoTf0IzFMFWfE+tAp9oImUFISAg6Ozvh5uaG1atX86+GhgYcPXrU6C6v8VpaWiCVShEV\nFcUnnba2NvT19fH/yUulUuh0OjQ0NPDr6XQ6nD9/nv8sFothb2/P35Aw5syZM/x7JycnrFq1Cu3t\n7UYxrlixAkqlEpcuXQIAhIWFoaWlBX/99Re/7rVr13Dz5s1p+8DDwwNarRaDg4OmdNm/ZuzHsjOd\nGiQLGx3xEDKDzZs344svvoBMJsOOHTuwbNkyNDY24vDhw3jnnXem/IFqYGAg6urqUF1djRUrVkCj\n0aC8vBw2Njb8tQupVIrnn38eu3btQk9PD9zd3XHkyBH09fXBzc0NwP2jlZSUFCiVStjb2yM0NBSN\njY1GiQcA0tLS8NZbbyEjIwNxcXHQ6XQ4dOgQfv/9dygUCgBAYmIijh8/DrlcjtTUVOj1euzdu3fK\n5Dlm3bp1AIDW1la8+OKLc+rPuWhtbYWjo6PR9SBifSjxEDIDoVCIY8eOoaSkBPn5+RgaGoKXlxey\ns7ORkJAw5XoZGRkYGRnBxx9/DJ1OB09PT7z99tu4du0azp49C4PBgEWLFkGlUqG4uBhKpRL37t1D\nXFwc4uPj0djYyG9rx44dcHR0xOeff47Dhw9DLBZDoVAgNzeXrxMeHo7KykqoVCqkpqbCzs4Oq1ev\nxpEjR8BxHID7p6i++uor5OXlQaFQQCgUIjk5ecLt2w/y8vKCv78/mpqaLJp4mpqaEB4eDjs7O4vF\nQOaOpr4mhJjk9OnTyMnJwblz5yzyxd/Z2Yn169fj+PHjWLVqldnbJ/OHrvEQQkwSGxsLb29vVFdX\nW6T9qqoqxMbGUtJ5BNARDyHEZNevX4dMJsPJkyfn9KDQh9Xe3g65XI6amhq4uLiYrV3y76DEQwgh\nxKzoVBshhBCzosRDCCHErCjxEEIIMStKPIQQQsyKEg8hhBCz+h8L96aNgHvdaQAAAABJRU5ErkJg\ngg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(sweep, color='purple')\n", + "decorate(xlabel='Time added (min)',\n", + " ylabel='Final temperature (C)',\n", + " legend=False)\n", + "\n", + "savefig('chap07-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose the coffee shop won't let me take milk in a separate container, but I keep a bottle of milk in the refrigerator at my office. In that case is it better to add the milk at the coffee shop, or wait until I get to the office?\n", + "\n", + "Hint: Think about the simplest way to represent the behavior of a refrigerator in this model. The change you make to test this variation of the problem should be very small!" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAAEPCAYAAABhkeIdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYlOX6B/Dvy76K7KugAwyr7JsrkKbpLzJNrURFTcrM\n/ZimSYqZmtoRl1w6aqZHzTyJS1ZaKqCkyC4gIIvIvgiC7MvM+/uD49AcRUeYYRi4P9fldeUzM+98\nhzfn5l2e+2FYlmVBCCGEiImctAMQQgjpW6iwEEIIESsqLIQQQsSKCgshhBCxUpB2AGlpampCamoq\n9PX1IS8vL+04hBDS6/F4PFRUVMDR0REqKiqdPq/fFpbU1FQEBgZKOwYhhMicEydOwMPDo9PH+21h\n0dfXB9D+AzIyMpJyGkII6f1KS0sRGBgo+P7sTL8tLE9PfxkZGcHMzEzKaQghRHa87PJBvy0sz9NY\n1YiEQwlgWRaWr1vCyNUIDMNIOxYhhMgUKix/U5pciqqcKgBA3ME4aHO0YT/VHjqWOlJORgghsoNu\nN/4bQydDKGsqC/7+OPcxordFI+5AHOrK6qSYjBBCZAcVlr9R01WD/0Z/WI6zhJxCx4+mJLEEERsi\nkHIqBc21zVJMSAghvR8Vlv+hqKYI+3fs4b/RH6ZepoJxls8iLyIP1z6/hqxfs8Br4UkxJSGE9F5S\nKSxnzpzB+PHj4eTkhClTpuDWrVvPPCc+Ph6Ojo6vtN3ff/8dNjY2KCws7HZGNV01uH3ghlFrR0HP\nRk8w3tbchozzGbgWcg350flg+dQcmhBC/q7HC0t4eDhCQ0MRHByMixcvwtPTEwsXLhQqBsnJyVi4\ncCH4fL7I2y0vL8f69evFnnegxUD4LPeB1yIvaBprCsabqpuQfCwZkV9Gojy1HLT6ACGEtOvRwsKy\nLPbs2YPg4GBMnToVFhYWWL16NczNzZGYmAgA2LFjBwIDA2FiYvJK2167di24XK4kYoNhGBgONYTv\nF75wnuUMFa2OVga1xbWI2ROD22G3UZNfI5H3J4QQWdKjhSU3NxdFRUWYOHFiRwA5OZw/fx4BAQEA\ngKioKBw8eBCzZs0SebsnTpxARUUFFi5cKPbMf8fIMTAfaQ7/L/1h85YNFJQ77tZ+lPEIUV9FIfFI\nIhoqGySagxBCerMeLSx5eXkAgCdPnmD27NkYNmwYAgMDkZCQIHjOhQsXMGLECJG3+eDBA4SFheHr\nr7+GoqKiuCM/l4KyArj/x8Vrm17DYN/BYOQ6JlEWxhTi+hfXce/ne2htaO2RPIQQ0pv0aGGpq2uf\nC/LZZ59h2rRpOHToEKytrREUFIScnJxX3l5bWxtWrVqF+fPnw9bWVtxxX0p5gDKGzhgKv/V+MHLu\n6DfGb+Mj50oOrq27htw/c8FvE/1aESGEyLoeLSxPjygWLFiAgIAAODg4YP369Rg8eDBOnTr1yts7\ncOAA5OTkMH/+fHFHfSUaRhrwXOiJ4SuHQ3uItmC8pb4FaWfScH39dRTFFtEFfkJIv9CjLV0MDAwA\nQOgiO8Mw4HA4XbpF+OzZsygvLxe0b356F9mbb76JBQsWYMGCBWJILTpda12MWD0CJfElSA9PR8Oj\n9mstDY8akHAoAbl/5sJhugO1iCGE9Gk9WlgcHBygpqaGlJQUDB06FED7nWI5OTkYNmzYK2/v+PHj\naGtrE/w9LS0Ny5cvx3fffSexO8RehmEYmHiYwMjFCHmReci6lIWW+hYAQHVeNaK3RcPE3QR2U+yg\npqcmlYyEECJJPVpYVFVVERQUhLCwMOjp6YHL5eLkyZPIz8/H7t27RdpGVVUVFBUVoampCVNTU6HH\nKioqAAAmJiYYOHCg2PO/CjkFOXDGcDBo2CBk/56N3Ksd11qK44tRmlyKIa8NgfUEayiq9cxNB4QQ\n0hN6vLvx0qVLoaqqis2bN6OyshJ2dnY4cuQIOByOSK+fOnUqvLy8sHXrVgknFQ9FNUXYTbGDha8F\nMsIzUBRbBKDjAn/BXwWwCbCB+ShzyMlThx1CiOxj2H56RbmwsBBjxozB1atXe3Shr8e5j5F2Jg2P\ncx8LjWsYacB+qj0MHA1oDRhCSK8k6vcm/Yrcw7Q52hixagTcg92hpttxjaWutA539t5BzK4YPCl8\nIsWEhBDSPVRYpODpBX6/UD/YTbGDgkrHGcmK9ApEbYpC8vFkND+hFv2EENlDK0hKkbyiPKzGW2HQ\n8EG4f/E+HkY9BMuyYFkW+TfzURxbDKs3rMAZy4G80ovXmCaEkN6Cjlh6AWXN9hn8vl/4wsDRQDD+\ntEX/9S+uozCmkCZYEkJkAhWWXkTTRBPei73hvcQbmiYdLfobHzci8Ugibm65icqsSikmJISQl6NT\nYb2QgYMB9O30kR+dj8zzmYLlkKsfVuOvHX/B2M0YdlPsoK6vLuWkhBDyLCosvRQjx8BilAVMPU2R\n/Xs2cv7IEUywLEkoQVlyWfsEy4k0wZIQ0rvQqbBeTkFFAbZv28J/oz9MPTs6DfB5fOT80d5BOS8i\nj5ZIJoT0GlRYZISarhrc5rth5OqR0OYId1BOOZWCyC8j8SjjkRQTEkJIOyosMqazCZa1xbW4tfMW\nYvfFor68XooJCSH9HV1jkUFPJ1gaOhsi989cZP+Wjbbm9i7PpcmlKE8rB2cMB9YTrYUmXxJCSE+g\nIxYZJq8oD+sJ1vDf6A8zn46+Pfw2PrIvZ+NayDXkR+fT9RdCSI+iwtIHqAxUgetcV4xaM0ro+kvz\nk2YkH0vGjS03aP4LIaTHiHSeJDs7G7/88gtiYmJQVFSE2tpaaGtrw8TEBKNGjcLYsWNhaWkp6azk\nJQYOHogRq0ag6E4R0s+mo6m6CQBQk1+Dv3b8BROP/y4wpksLjBFCJOeFhSU3Nxfbt29HREQEDA0N\n4ejoCCcnJ6iqquLJkycoLS3F0aNHERYWhjFjxmDZsmWwsrLqqezkORiGgZm3GYxcjJBzJQc5l3PA\na+UBAIrjilGWXAbLcZawHG8JBWW6/kIIEb9Ov1kOHTqEQ4cOISAgAKdPn4aTk1OnG7l79y5++ukn\nzJgxA8HBwQgODpZIWCI6BWUF2ATYYNDwQUg/m47iuGIAAK+Vh/uX7iM/Oh92U+xg6mVK678QQsSq\n08KSm5uLS5cuQVdX96UbcXJygpOTExYvXoywsDCxBiTdo6arBvdgdwzxH4LU06moya8BADRVNyHx\nSCLyIvLg+K4jBg6W7lLOhJC+g1aQ7OEVJKWJZVkU/FWAjHMZz6z1YuZjBrvJdlAZqCKldISQ3k6s\nK0jW1dU9MxYTE0Nt3GUMwzAwH2GO1758DVbjrSCn0LH7C28X4voX15H1a5bgmgwhhHTFCwtLcnIy\nJkyYgO+//15o/PHjx5gzZw7Gjh2LtLQ0iQYk4qegogC7KXbw2+AHIxcjwfjT9V8i1kegJKGEfnEg\nhHRJp4XlwYMHmDdvHliWfebCvbq6OrZs2QIFBQXMmjULBQUFEg9KxE9dXx2eH3ti2PJhGGA6QDDe\nUNmAuINxuB12G7UltVJMSAiRRZ0WlgMHDsDU1BQ///wzfH19hR5TUlLC22+/jTNnzkBfXx/79++X\neFAiOXq2ehi9bjSGzhgKJXUlwfijjEeI3BiJtJ/S0NrYKsWEhBBZ0mlhiY2Nxbx586Cu3vliUgMG\nDMCcOXMQGxsrkXCk5zByDAb7DsZrm17DEP8hgluQWT6L3Ku5uB5yHQV/FdDpMULIS3VaWCorK2Fq\natrZwwIcDgfl5eViDUWkR1FNEY7vOWJ0yGjocjtuNW+ubUbSD0m4ufUmqvOqpZiQENLbdVpY9PT0\nUFRU9NINlJWVQUdHR6yhiPQNMB2AYSuGwT3YHaraqoLx6rxq3NhyA8nHkgVLJhNCyN91WliGDx+O\nH3/88YUvZlkWp0+fxtChQ8UejEjf0/b8fqF+sJ5oLXR7cn50Pq6HXEfu1VzweXwppiSE9DadFpY5\nc+YgIyMDK1asQFVV1TOPV1VVYeXKlUhKSkJQUJBEQxLpUlBWgO0kW/ht8IOhk6FgvLWxFWk/pSFq\nUxStXkkIEei0pYulpSW2bNmCtWvX4o8//oCDgwNMTU3B4/FQXFyMe/fuQV5eHqGhoXB3d+/JzERK\n1PXV4fWJF8pTy5H2Uxrqytonzj5dvdLYzRgO0xygqqP6ki0RQvqyF7a3nTBhAhwcHHD8+HHcvHkT\nmZmZkJeXh4mJCWbPno0ZM2b0m3YopIOBowH0bPWQezUXWZeyBKtXliSUoDylHFZvWMFyvCXkFeWl\nnJQQIg0v7Ztubm6Ozz//vCeyEBkipyAHq/FWMPM2Q/rZdBTGFAJo756ceTETBX8VwGG6AwydDal7\nMiH9TKfXWOLj47u0wbi4uC6HIbJHZaAKXOe5YsSqEdAapCUYb6hsQOz+WMTsjkFd6bO95gghfVen\nhSU0NBTLly/H/fv3RdrQ3bt3sXjxYoSGhootHJEdOpY6GLV2FJwCnYRm71fcq0BEaATu/ece2pra\npJiQENJTOj0V9vPPP2Pv3r145513MHjwYIwbNw5OTk4wMzMTrCBZVlaG+Ph4REVF4cGDB5g5cya+\n+eabnsxPehFGjoHFaAsYuxsj80ImHkY+BMuyYPkscv7IQWFMIeyn2tPiYoT0cS9dj6WsrAxHjx7F\nL7/8goqKCqEvBJZlYWJigvHjx2POnDkwNDR8wZZ6l/64HktPe1L4BKk/pqIyq1JoXJeri6HvD4Wm\niaaUkhFCukLU781XWugrJycHhYWFqK2thba2NkxMTDBkyBCxBO5pVFh6BsuyKI4rxr3/3ENTdZNg\nnJFjwBnDAfdNLhRUXnoPCSGkFxD1e/OV/kVbWlrC0tKy2+FI/8EwDEw9TWE41BD3L91H7p+5YPkd\np8eKYovgMM0Bxu7GdHqMkD5CpBUkCekuBRUF2L9jD98QX6Hmlk3VTYj/Vzyt/UJIH0KFhfQoTRNN\nDFsxDG4fuEF5gLJg/FHGI0R9GYX0s+mCCZeEENlEhYX0OIZhYOplCv+N/uCM4YCRaz8FxufxkX05\nm5ZGJkTGUWEhUqOoqgiH6Q4Y/flo6Fh1LL3Q+LgRcQfj2idXltHkSkJkzSsXluLiYiQlJaGhoQGN\njY2SyET6mQFmAzB85XC4znWFsmbH6bGKexWIDI1ExrkMOj1GiAwR+a6wa9euYdu2bXj48CEYhsGZ\nM2ewb98+aGlp4csvv4S8PDUcJF3HMAzMfMxg6GSIzAuZyIvIA8uy4PP4yPotC4UxhXB815F6jxEi\nA0Q6Yrl27Ro++eQTWFlZYdOmTeDz2xd2Gj58OC5cuICDBw9KNCTpP54ujTzq81HQ5mgLxhurGhG7\nPxZ39t5BfXm9FBMSQl5GpMKyZ88eTJ48GXv37sXbb78tGA8MDMQnn3yC8+fPSywg6Z+0BmlhxKoR\ncJ7tDCWNjt5j5anliAiNQOaFTPBaeVJMSAjpjEiFJScnBxMnTnzuY+7u7igpKRFrKEKA9tNj5iPM\n4b/RH4N9BwtOgfHb+Lh/6T4i1keg7G6ZlFMSQv6XSIVFW1sbeXl5z30sLy8P2traz32MEHFQUlfC\n0BlDMXLNSAwcPFAw3lDZgDvf3kHsvlg0VDZIMSEh5O9EKiwTJ07Erl278Oeff6K1tRVA+2+TGRkZ\n2LdvH9544w2JhiQEAAZaDMTIz0bCaaZwa/7S5FJEbIhAzpUc8Hl8KSYkhAAiFpZly5bB2dkZixYt\ngoeHBwBgzpw5mDx5MkxMTLB06dJXetMzZ85g/PjxcHJywpQpU3Dr1q1nnhMfHw9HR8eXbuvhw4dY\nuHAhvL294ePjgyVLlqC4uPiV8hDZwTAMLEZZwH+jP8xHmgvGeS083Pv5HqI2RaEqp0qKCQkhIt1u\nrKysjEOHDiE6Ohq3b99GdXU1NDQ04OXlBT8/v1e6/TM8PByhoaHYsGEDPD09cfLkSSxcuBAXL14U\ndMtMTk7GwoULBXefdaahoQEffPABrKys8MMPP4DH42Hr1q0IDg5GeHg4lJSUXvh6IruUNJTgPMsZ\ng4YPQsqJFDwpegIAqC2uRfS2aJiPNIfdFDuhIxtCSM8QqbB8/PHHmDNnDkaMGIERI0Z0+c1YlsWe\nPXsQHByMqVOnAgBWr16N27dvIzExEWZmZtixYweOHj0Ka2trZGZmvnB70dHRKCkpwblz56ChoQEA\n2LZtG/z8/JCcnAxPT88uZyWyQcdSB6M+H4UHVx8g82ImeC3td4rl38xHaVIp7N+xh9kwM5r7QkgP\nEulU2K1bt8TStyk3NxdFRUVCd5jJycnh/PnzCAgIAABERUXh4MGDmDVr1ku35+TkhO+++05QVJ5u\nDwBqamq6nZfIBjl5OViOs4R/qD+MXIwE4y11LUj6IQm3vrlFnZMJ6UEiFZaRI0fi0qVLaGvrXluN\np3eWPXnyBLNnz8awYcMQGBiIhIQEwXMuXLgg8lGRoaHhM8/97rvvoKamJrgWRPoPVR1VeH7sCc+F\nnlDVURWMV2ZVInJje2uYp0c0hBDJEelUmIaGBsLDw/Hbb7/BysoKampqQo8zDIPDhw+/dDt1de0N\nBT/77DMsWbIEHA4HZ86cQVBQEM6dO9ftRcROnjyJf//73wgJCcHAgQNf/gLSJxk5G0HPVg9Zl7KQ\n80eOYGGxrN+yUHSnCENnDIWBo4G0YxLSZ4lUWIqKiuDq6ir4+9Nbjl+VoqIiAGDBggWCU1/29vaI\nj4/HqVOnsG7dui5tFwD279+PsLAwfPTRR5g5c2aXt0P6BgVlBdhNsYOptylSTqQI7hRrqGxAzJ4Y\nGLsZw/FdR6gMVJFyUkL6HpEKy/Hjx8XyZgYG7b8lcrlcwRjDMOBwOCgsLOzSNvl8PjZs2IDTp09j\n5cqVCA4OFktW0jcMMB2A4Z8OR8FfBUj/OR0t9S0AgJKEElSkVcBmkg2G+A8RrAlDCOm+Hl2PxcHB\nAWpqakhJSRGMsSyLnJwcDBo0qEvb3LhxI/7zn/9gy5YtVFTIcz1tDeMX6odBwzv+P2trbkPaT2m4\nsfkGqvOqpZiQkL5FpCMWBweHl96umZqa+tLtqKqqIigoCGFhYdDT0wOXy8XJkyeRn5+P3bt3ixS4\nqqoKioqK0NTUREREBE6dOoVFixZh1KhRqKioEDxvwIABUFZWfsGWSH+jrKkMlyAXDBo2CCknUwR3\nitUU1ODm1puwGG0B27dtoaimKOWkhMg2kQrLggULniks9fX1SEhIQH5+PlauXCnyGy5duhSqqqrY\nvHkzKisrYWdnhyNHjoDD4Yj0+qlTp8LLywtbt27FxYsXAQB79+7F3r17hZ63bds2TJo0SeRcpP/Q\n5epi9LrRyP0zF/d/uQ9eKw8syyIvMg8liSVwmOYAE08TmvtCSBcxbDcnqKxatQrq6upYv369uDL1\niMLCQowZMwZXr14VzPgn/U/DowaknEpBeWq50LierR6cAp2gbqAupWSE9D6ifm92+xrL5MmT8euv\nv3Z3M4RIhZqeGrwWecFjgYfQHWKPMh4hcmMksn7LosaWhLyibheW/Pz8bk+cJESaGIaBsasx/EP9\nwRnDEZwC47XykHEuA1GbovA497GUUxIiO0S6xnLgwIFnxng8HkpLS3Hx4kX4+/uLPRghPU1BRQEO\n0x1g6m2Ku/++i5r89rZATxtbWvhawG6yHRRURPpnQ0i/JdK/kLCwsOeOa2hoYOzYsVizZo1YQxEi\nTQMtBmLUmlF4cO0BMs63t4FhWRZ5EXkoTSqF43uOMHY1lnZMQnotkQpLRkaGpHMQ0qswcgw4Yzkw\ncjVCysmOi/tN1U2IOxAHIxcjOL7nCFVt1ZdsiZD+R6RrLGvWrEFBQcFzH8vNzcXHH38s1lCE9BZq\nuu0X992D3aE8oGNeVGlS+6qVD64/AMvvfudvQvqSTo9Y/r4KY3h4OMaOHQt5eflnnhcVFYXo6GjJ\npCOkF2AYBiYeJtC310f62XQ8vPEQANDW1IbUH1NRFFMEp5lOGGA2QMpJCekdOi0sGzduRGRkJID2\nf1iLFi167vNYlu3W4l+EyApFNUU4zXQSXNyvK23v1v34wWNEfRUFy3GW4L7Jhbzis7+AEdKfdFpY\nQkNDERMTA5ZlsXr1aixatAjm5uZCz5GXl4empia8vLwkHpSQ3kLXWhe+Ib7I/j27fZ5LGx8sn0X2\n79koiS/B0MCh0LfTl3ZMQqSm08JiaGiIt956C0B7B2FfX1/o6Oj0WDBCejM5BTlw3+TCxMMEd/99\nF5VZlQCA+op63A67DTMfM9hPtYeyJvWrI/2PSHeFTZ48Gc3NzUhNTUVra6tgmWI+n4/GxkbExcVh\n+fLlEg1KSG+kYaSBYf8YhoK/CnDvP/fQ2tC+VlHh7UKUp5TDfpo9zHzMqO8Y6VdEKix37tzBsmXL\n8Pjx82cfq6urU2Eh/dbTtvyGQw2R9lMaimKLAAAt9S1IOpqEwtuF1HeM9Csi3W4cFhYGLS0t7N69\nG2PHjsW4ceNw4MABzJgxAwzD4F//+pekcxLS6ykPUIbbfDd4L/aGmm7H8t3Ud4z0NyIVlvT0dCxa\ntAivv/46/P39UVJSAl9fX4SEhOCdd97B/v37JZ2TEJlh4GgA3/W+sHzd8pm+Yzc230D1Q1pUjPRt\nIhUWPp8PQ0NDAICFhQWysrIEj40fPx737t2TTDpCZJSCsgLsp9pj1NpRGGgxUDD+pPAJbm65iXv/\nuQdeC0+KCQmRHJEKi7m5uaCYDBkyBI2NjcjNzQXQ3oyyvr5ecgkJkWFa5loY+dlIOExzgLxS+/wW\nlmWR80cOIkIj8CjjkZQTEiJ+IhWWN998E9u3b8eJEyego6MDR0dHfPXVV4iMjMT+/fthZWUl6ZyE\nyKynfcf81vtBz1ZPMN7wqAG3dt5C8vFkwd1khPQFIhWW4OBgTJs2DQkJCQCA9evXIy0tDR999BGy\ns7OxatUqiYYkpC9Q01ODzzIfuAS5QFFNUTCefzMfERsiUJJYIsV0hIiPSLcbFxUVCbXGHzp0KP78\n80/k5uaCw+FAQ0NDYgEJ6UsYhsGg4YOg76CP1B9TUZLQXkyaatq7Jhu7GWPo+0OFGl4SImtEOmKZ\nNm0azp8/LzSmoaEBJycnKiqEdIGKlgo8PvKAxwIPoSJSklCC6+uvo+CvAsFEZEJkjUiFRV5eHtra\n2pLOQki/83RJZPMRHX34WhtakfRDEmJ2xaDhUYMU0xHSNSKdCluyZAm2bduG+vp62NraQk1N7Znn\nPL0dmRDyahTVFOE82xmmXqZIPp4sKCYV6RWICI2A7SRbDHltCBg5agtDZINIheWrr75Ca2srVqxY\n0elz0tPTxRaKkP5Iz1YPvl/4IvNCJh5cfQCWZcFr4SHtTBqK44rhPNsZmiaa0o5JyEuJVFhCQ0Ml\nnYMQgvaJlQ7THGDqaYqkH5JQW1wL4L9rvmyKgtUEK1hPsIacgkhnsQmRCpG7GxNCes7AwQMx+vPR\nyL6cjaxL7T3G+Dw+7v9yHyXxJXCe7QxtDl33JL2TyL/28Pl8/PLLL1izZg3mz5+PvLw8nDt3DtnZ\n2ZLMR0i/JacgB+7/cTE6ZLRQEaktqUX0tmik/ZSGtuY2KSYk5PlEKiy1tbV4//338emnn+LOnTuI\njo5GfX09Ll68iOnTp1OvMEIkSNNYEyM+HQHH9xyhoNx+koFlWeRezUVkaCQq0iuknJAQYSIVlm3b\ntqG4uBjh4eG4fPmy4P76Xbt2wdraGmFhYRINSUh/x8gxGOI/BL7rfWHgYCAYb6hswO2w20g+lozW\nRmoLQ3oHkQrLH3/8gRUrVsDW1lZoJTwNDQ0EBwcjOTlZYgEJIR3UdNXgtdgLrnNdoaSuJBjPj85H\nZGgkylPLpZiOkHYiFZampqZO17tXVlZGS0uLWEMRQjrHMAzMfMzgt8EPxm7GgvHGx42I2RODpKNJ\n1NSSSJVIhcXR0RGnTp167mO//vor7O3txRqKEPJyygOU4fGRB9w/dIeyZkdbmIJbBYjYEIGyu2VS\nTEf6M5FuN166dCnmzp2LKVOmwNfXFwzD4LfffsP+/ftx/fp1HDp0SNI5CSGdMHE3gS5XF2mn01AU\nWwSgvanlnW/vwMzbDA7vOgidNiNE0kQ6YvH09MT3338PJSUlHDx4ECzL4vDhwyguLsb+/fsxbNgw\nSeckhLyAsqYy3Oa7PdPUsjCmkFrykx4n0hEL0F5cfvzxRzQ1NaGmpgYaGhpQV1eXZDZCyCsydjUW\nHL0UxhQCAJqfNCPuQBxMPEzg+J6j0GkzQiRB5MICAJGRkYiPj0dNTQ309PTg4+MDT09PSWUjhHSB\nkroSXOe5wsTDBHdP3EVTdRMAoDiuGJWZlXB83xEm7iZSTkn6MpEKy+PHjxEcHIzU1FQoKSlBR0cH\nlZWV2LdvH0aMGIFvv/0Wysr0WxAhvYmhkyH8rPyQdiYNBX8VAACaa5sR/108it2KaUExIjEiXWPZ\ntGkTCgsLceDAAdy9excRERFISUnB3r17kZqaih07dkg6JyGkCxTVFOES5ALvxd5Q1VYVjJcklCBi\nQwSKYotoQTEidiIVlqioKKxevRp+fn5C42PGjME//vEPXLp0SRLZCCFiYuBoAN/1vjAf2bGgWEt9\nCxIOJSBufxyaapqkmI70NSKvIKmp+fx1IPT19dHaSpOxCOntFFUV4TzLGT7LfKCq03H0UppciogN\nESi8XUhHL0QsRCosM2bMwM6dO1FWJjzhqq6uDt999x1mzpwpkXCEEPHTt9OH33o/WIy2EIy1NrQi\n8ftExH4bK7jYT0hXiXTxvry8HOXl5Xj99dfh7u4OAwMDVFdXIyEhAfX19VBSUsK8efMAtLebOHz4\nsERDE0K6R0FFAU6BTjBxNxFaDrkspQwRGyJgP80eg4YPEuoNSIioRCosDx8+hK2tLQCgra0NxcXF\nACAY4/F44PF4EopICJGUp8shZ4Rn4MH1BwCA1sZWJB9LRklCCZxnOUNloIqUUxJZI1JhOX78uKRz\nEEKkREFZAY7vOcLY3RjJPySjvqIeAFCeWo6I0Ag4vucIUy9TOnohInulCZKNjY148uTJcx8zNDQU\nSyBCiHQP4MMRAAAgAElEQVToWuu2H72cy0Du1VwA/732ciQRpYmlGBo4lGbtE5GIVFgyMjKwatUq\nZGVldfqc9PR0sYUihEiHvJI8HKY7wMjFCEk/JAmuvZQklqAyqxJOgU5CrfoJeR6RCsv69etRVVWF\nVatWYeDAgZLORAiRMl2uLnxDfHHv53t4GPUQANBS14K4g3Ew9TSF4/uO1DGZdEqkwpKZmYmdO3fC\n399fLG965swZHDp0CCUlJbCyssKnn376TIfk+Ph4BAUFITU19YXbamxsxObNm3HlyhXweDy88cYb\nWLNmDTXIJKSbnt45ZuxqjORjyWh83AgAKIotwqPMR3Ce5QxDJzoFTp4l0jyWQYMGobGxUSxvGB4e\njtDQUAQHB+PixYvw9PTEwoULUVhYKHhOcnIyFi5cCD6f/9LtffHFF4iPj8fBgwdx4MAB3LlzB198\n8YVYshJCAH17ffh+4YtBwwcJxpqfNOPOt3eQ9EMSWhtpgjQRJlJhWbFiBXbt2oU7d+6gqanrk6dY\nlsWePXsQHByMqVOnwsLCAqtXr4a5uTkSExMBADt27EBgYCBMTF7efbW0tBS//PIL1q9fDxcXF3h4\neGDTpk24dOnSM5M5CSFd97TnmNcnXkKNKwv+KkBkaCQq0iukmI70NiKdChs8eDBYlkVQUNBzH2cY\nBvfu3XvpdnJzc1FUVISJEycKxuTk5HD+/HnB36OionDw4EGUlZVh3bp1L9xeQkIC5OTk4ObmJhhz\nc3ODvLw84uPjhd6HENJ9hk6G8Nvgh9RTqYLVKhsfN+J22G0M9h0Mu3fsoKD8Sjebkj5IpP8D1qxZ\ngydPniAwMBC6urpdfrO8vDwAwJMnTzB79mxkZWWBw+HgH//4h6A4XLhwAQBw9uzZl26vrKwMOjo6\nUFRUFIwpKChAR0cHJSW0Yh4hkqCkrgS3+W4wcjVCyokUtNS3AADyIvNQnlYOlzku0LXu+vcEkX0i\nFZZ79+5hx44dGDduXLferK6uDgDw2WefYcmSJeBwODhz5gyCgoJw7tw5WFpavtL2Ghsbn7sOjJKS\nEpqbm7uVlRDyYibuJtC11sXdE3dRmlQKAGh41IBb39zCkDFDYPu2LeQV5aWckkiDSNdYTE1NxfJm\nT48sFixYgICAADg4OGD9+vUYPHgwTp069crbU1FRQUtLyzPjLS0tUFNT63ZeQsiLKQ9QhscCD7jO\nc4WiWvu/b5ZlkftnLqK+jMLjB4+lnJBIg0iFZenSpfjnP/+JuLi4536Ri8rAwAAAwOVyBWMMw4DD\n4QjdFSYqIyMjVFVVCfUpa2trQ1VVleC9CCGSxTAMzLzN4LfeDwYOHf/u6srqEP11NDLOZYDf9vI7\nPEnfIdKpsG+//RZlZWWYNWsWgPb1Wf7Xy+abAICDgwPU1NSQkpKCoUOHAmj/7SYnJ+eZeSyicHd3\nR1tbGxITE+Hh4QGgff4Ln8+Hu7v7K2+PENJ1KgNV4LXYCwXRBUj7KQ1tzW1gWRZZv2Wh7G4ZXOa6\nQGuQlrRjkh4gUmEZP368WN5MVVUVQUFBCAsLg56eHrhcLk6ePIn8/Hzs3r1bpG1UVVVBUVERmpqa\nMDQ0xIQJE/D5559j8+bNYFkWISEhmDRpEvUuI0QKGIaB+Uhz6NnpIfmHZDzKfAQAeFL0BDc23wD3\n/7iwnmgNRo4aWvZlIhWWRYsWie0Nly5dClVVVWzevBmVlZWws7PDkSNHwOFwRHr91KlT4eXlha1b\ntwIANm3ahE2bNuHDDz+EgoICxo8fj7Vr14otLyHk1anpqsFnuQ/yIvKQ/nM6eK08sHwWmRczUZZS\nBtd5rtAw1JB2TCIhDPsKa5EmJiYiOjoaFRUV+Oijj5CTkwN7e/tu3YIsLYWFhRgzZgyuXr0KMzMz\nacchpM+qL69H0tEkVOVUCcbkFeVhP9UeFr4W1I5fhoj6vSnSEUtLSwtWrlyJK1euQFFREW1tbZg+\nfToOHz6M7OxsnDx5Eubm5mILTwjpO9QN1DF85XDk/JGDzPOZ4PP44LXykHIqBWV3y+A8mxYT62tE\nuissLCwM0dHR2LdvH+Li4vD0IGfTpk3Q1NTEzp07JRqSECLbGDkGVuOtMGrtKGiaaArGy9PaFxMr\njiuWYjoibiIVlosXL2LFihV47bXXoKDQcZBjZmaGRYsW4c6dOxILSAjpOwaYDcCotaNgOc5ScAqs\ntaEV8f+KR8LhBLQ2UEPLvkCkwlJTUwMLC4vnPqatrS2YUU8IIS8jrygP+3fsMWzFMKjpdkxkLrpT\nhIjQCGpo2QeIVFisrKxw6dKl5z4WFRX1yq1YCCFEl6v7TDv+puom3A67jdTTqeC18l7watKbiXTx\n/uOPP8bixYtRU1MDf39/MAyDhIQEXLhwASdOnMC2bdsknZMQ0gcpqCjAJcgFhk6GuPvvu2ipa+/s\n8eDaA1Tcq4DrPFcMtKBVa2WNyLcbX7x4Ed988w1KS0sFYzo6Oli2bBmmT58usYCSQrcbE9K7ND9p\nRvLxZJTd7VhLiZFjwH2TC+sJNKmyNxDr7cYAEBAQgICAAOTm5qK6uhqampqwtLSEnJxIZ9MIIeSF\nlAcow3Ohp3BLGD6LzAuZKE8ph8tcF5pUKSNEqgqzZ89GTk4OAIDD4cDNzQ3W1taQk5NDRkYGJk2a\nJNGQhJD+4WlLmNEho6FjqSMYf/zgMaI2RSEvMg+vMKebSEmnRyx/n69y584dxMbGoqqq6pnnXb9+\nHQ8fPpRcQkJIv6Ou/99JlVdykHnhv5MqW3hIOZmCsmSaVNnbdVpYfv75Z4SHh4NhGDAMg9DQUKHf\nFBiGEfw9ICBA8kkJIf0KI8fA6g0r6DvoI/FIImqLawG0T6qM3BiJoYFDYeJuIuWU5Hk6LSyff/45\npk6dCpZlMXPmTGzcuPGZ24rl5eWhqakpcgNJQgh5VVqDtDBq7ShknMvAg6sPwLIsWupbEP9dPMq8\ny+D4nqNgkTHSO3RaWDQ0NARrmhw7dgwODg5QV1fvsWCEEPKUvKI8HKY5wMjZCInfJ6KxqhEAUBhT\niMr7lXCZ6wI9Gz0ppyRPiXTx3svLi4oKIUTqnk6qNPPpuNW18XEjbu+8jfSz6bRSZS9B9woTQmSK\noqoiXOe6wuMjDyipKwFoX4k2+3I2bn59E3Wl1GJK2qiwEEJkkrGbMXy/8IW+vb5grCa/BlGbovAw\n6iHdlixFVFgIITJLZaAKvJd4w2G6A+QU2r/OeK083D1xF7H7YtFc2yzlhP0TFRZCiExjGAacMRyM\nWiO81kvZ3TJEboxEeWq5FNP1T53eFTZv3jyRN8IwDA4fPiyWQIQQ0hVP13rJCM9A7tVcAO39x2L2\nxGCI/xDYvWMHeUV5KafsHzotLK2ttOAOIUS2yCvKw2G6A/Qd9JF0NAnNT9pPhT24/gCPMh/B7QM3\nDDAbIOWUfV+nheX48eM9mYMQQsTGwMEAvl/44u7xuyhNbu/IXltcixtbbsBush2GjBkiWMGSiJ/I\n3Y0B4PHjx2htbRXcbcGyLBoaGhAfH49p06ZJJCAhhHSFsqYyPD72QP6NfKT9lAZeKw/8Nj7SzqSh\nPLUcLnNcqN+YhIhUWDIzM7Fy5UpkZ2c/93GGYaiwEEJ6HYZhYDHaArpcXSQcTkBNfg0AoCK9ApEb\nI+E0ywnGrsZSTtn3iHRX2LZt21BdXY3Vq1fDy8sLI0eOREhICHx9fcEwDI4dOybpnIQQ0mUaRhoY\nuXokrN6wEpwCa6lvQdyBOCQfT0Zbc5uUE/YtIhWWpKQkLF26FHPmzMHEiRPR2NiIGTNm4MCBAxg7\ndixdjyGE9HpyCnKwm2yHYSuGQVVbVTCefzMfUZuiUJ1XLcV0fYtIhaWlpQWDBw8GAAwePBgZGRmC\nx6ZMmYKkpCSJhCOEEHF72m/MxKOj5X59eT1ufn0TWb9lgeXTjP3uEqmwmJiYoLCwEEB7Yamrq0NR\nUREAQFlZGTU1NZJLSAghYqaopgi3+W5wnesKBeX2S80sn0XGuQzc+uctNFQ2SDmhbBOpsIwdOxY7\nduzAH3/8AUNDQ3A4HOzatQs5OTk4evQoBg0aJOmchBAiVgzDwMzHDL5f+EKboy0Yr8yqRNSXUSiK\nLZJiOtkmUmFZtGgRXFxc8NNPPwEA1qxZg8uXL+PNN99EdHQ0Fi9eLNGQhBAiKWp6ahjx6QjYBNiA\nkWu/sN/a2IqEQwlI+iGJLux3gUi3G6uqqmLv3r1oaWkBAIwaNQoXL15EWloaHBwcYG5uLtGQhBAi\nSYwcA+6bXOjb6yPhcAIaHrWfCiv4qwBV2VVwD3aHlrmWlFPKjldqQqmkpCT4b3Nzc0yYMIGKCiGk\nz9DmaMM3xBdm3h0LidWX1+Pm1pvI/TOXWvGLSKQjlubmZhw8eBARERFoaGh47g/38uXLYg9HCCE9\nTUFFAa7zXKFvr4+Ukyloa24Dn9c+Y7/iXgVc5rhAeYCytGP2aiIVlq+++gpnzpyBl5cXrK2tISdH\n3fYJIX2bmY8ZtDnaSDiUgOqH7XNcytPKEfllJFznugotMEaEiVRYLl++jOXLl+PDDz+UdB5CCOk1\n1A3UMWLVCGScz0DOlRwA7a34b++6DctxlrCdZCtYYIx0EHmCpJOTk6SzEEJIryOnIAf7d+zhs9RH\n6BRYzpUcRG+LRn15vRTT9U4iFZaRI0ciKipK0lkIIaTX0rfXh+8XvjBwMBCMVT+sRtSmKBTeLpRi\nst5HpFNhb731FtatW4fHjx/Dzc0NKirPtpoOCAgQezhCCOlNlDWV4bXYCw+uPkD62XTweXy0Nbch\n8ftEVNyrwNAZQ6Gg8kqrkfRJIv0Enk6ADA8PR3h4+DOPMwxDhYUQ0i8wDAPOWA50ubqI/1e84FRY\nYUwhHuc+htt8NwwcPFDKKaVLpMJy9epVSecghBCZomWuhdHrRiP1x1QU/FUAAKivaG9mafu2LSzH\nWfbbVSpFKiympqaSzkEIITJHQVkBLkEu0LfXx91/30VbUxtYPov0s+l4lP4ILnNdoKLV/1ap7LSw\nhISE4KOPPoKZmRlCQkJeuBGGYbBx40axhyOEEFlg6mkK7SHtc14eP3gMoH2Vyqgvo+AyxwUGjgYv\n2ULf0mlhiY6ORmBgoOC/X6S/Hu4RQshTanpqGP7pcNy/eB/Zv2eDZVk01zYjZk8MOGM4sJti12/m\nvHRaWK5du/bc/yaEEPJ8cvJysH3bFnq2ekg8koimmiYAQO7VXFTer4RbsBs0DDWknFLyOi2ft27d\nQn09TfwhhJBXpWerB98vfGHoZCgYqymoQdSmKBTcKpBisp7RaWGZN28ecnJyhMZOnz6Nx48fSzwU\nIYTIOiUNJXgu9ITje46CU2C8Fh6SjiYh8fvEPr3OS6eF5X87GPN4PGzYsAHFxcUSD0UIIX0BwzAY\n4j8Eo9aMEjoFVni7EDc238CTwidSTCc5r3QlidYiIISQVzfAbABGfT4KZj4d67zUldbh5tabeHjj\nYZ/7bpXKLQpnzpzB+PHj4eTkhClTpuDWrVuCx27evIlJkybByckJAQEBiIyMfOG2qqqq8Omnn8LH\nxwfe3t5YunQpSktLJf0RCCHklSgoK8B1ritc5rhAXkkeAMBr5eHuv+8i4VAC2pr6zqmxHi8s4eHh\nCA0NRXBwMC5evAhPT08sXLgQhYWFyM7Oxscff4w33ngD4eHhGDNmDD755BNkZWV1ur0VK1agsLAQ\nR44cwdGjR1FeXo5PPvmkBz8RIYSIbtCwQRi1dhQGmA4QjBXHFSNqU5Rg3RdZ98qFpTtzVliWxZ49\nexAcHIypU6fCwsICq1evhrm5ORITE3Hs2DG4uLjg448/hqWlJZYtWwZXV1ccO3bsudurq6vD7du3\nERwcDHt7e9jZ2WHBggVITU1FdXXf2EGEkL5H01gTI9eMhMUoC8FYfUU9or+OxoNrD2T+1NgLW7os\nXbpUaJ17APjkk0+eGQNEW5o4NzcXRUVFmDhxomBMTk4O58+fBwDs378fEyZMEHqNt7c3Ll269Nzt\nKSsrQ01NDefOnYOXlxcYhsG5c+dgYWGBAQMGPPc1hBDSG8grysNpphN0bXQF7WD4PD5ST6fiUeYj\nuAS5QFFNUdoxu6TTwjJ58uRnxtzc3Lr1Znl5eQCAJ0+eYPbs2cjKygKHw8E//vEPuLm5obS0FIaG\nhkKvMTAw6PSaiaKiIrZu3YqQkBB4eHiAYRjo6urixIkTtHwyIUQmmHqaYqDFQMT/Kx41+TUAgNKk\nUkQVRMFtvhu0OdpSTvjqOi0sW7ZsEfub1dXVAQA+++wzLFmyBBwOB2fOnEFQUBDOnTuHpqamZ46G\nlJSU0Nzc3Ok2c3NzweVysXjxYsjJyWHXrl1YtGgRTp06BQ2Nvj/DlRAi+9QN1DFy9Ujc+/keHlx7\nAABoqGxA9PZo2E22A+d1jky1zurRFWkUFdsP6xYsWCBYv8Xe3h7x8fE4deoUlJWV0draKvSalpYW\nqKqqPnd7cXFx2LVrFyIiIgRHOt9++y38/f0RHh6OWbNmSfDTEEKI+MgpyMHxXUfo2egh6YcktDa0\nguWzuPfzvfZTY3NcoKyp/PIN9QI9er7IwKC9wyeXyxWMMQwDDoeDwsJCGBsbo7y8XOg15eXlz5we\neyopKQn6+vpCjw8YMACDBw/Gw4cPJfAJCCFEsoxcjDB63WhoD+k4BVaeWo6oTVGozKqUYjLR9Whh\ncXBwgJqaGlJSUgRjLMsiJycHgwYNgru7O2JjY4VeExMTAw8Pj+duz8jICJWVlais7PhhNzY2orCw\nEIMHD5bIZyCEEElT023vlGw5zlIw1lTdhFvf3ELWr1lg+b37rrEeLSyqqqoICgpCWFgYrly5gry8\nPGzZsgX5+fl4//33MXPmTMTFxWH37t3IycnBrl27kJycjKCgIME2qqqqUFtbCwDw9/eHkZERli1b\nhtTUVGRmZmLlypVQVlbG22+/3ZMfjRBCxEpOXg7279jDe7E3lNTbrz2zLIuM8xm4ves2mp90fu1Z\n2nr81qmlS5figw8+wObNmxEQEICkpCQcOXIEHA4HNjY22Lt3Ly5fvoy3334b165dw4EDB2Bp2VG1\np06diq+++goAoK6ujmPHjkFHRwcffvghZs+eDZZlceLECbpwTwjpEwwcDTA6ZDR0rXUFY48yHiFy\nYyQq0iukmKxzDCvrM3G6qLCwEGPGjMHVq1dhZmb28hcQQogUsXwW93+5334q7L9f2wzDwGqCFWwC\nbMDISf6uMVG/N2myByGEyABGjoHNWzbwXuoN5QHtd4exLIusX7Nw65+30FTdJOWEHaiwEEKIDNG3\n04dviC/0bPUEY5VZlYjaFIVHGY+kmKwDFRZCCJExygOU4bPUB7aTbAUTJ5trm3E77DbuX7ov9V5j\nVFgIIUQGMXIMrCdaw2e5j9CpscwLmbiz5w6aa6V31xgVFkIIkWF6NnoYvW40dLkdd42Vp7VPqKzK\nqZJKJioshBAi41S0VDBs+TBYT7AWjDVVN+GvHX8h98/cHj81RoWFEEL6AEaOge3btsITKvks0s6k\nIe5AHFobWl+yBfGhwkIIIX2IgaPBM73GSpNKEfVVz61QSYWFEEL6GFUdVQxfORycMRzBWMOjBkRv\ni8bDqIcSPzVGhYUQQvogOQU5OEx3gMdHHlBQaV8hhd/Gx90Td5F4JBFtzW2Se2+JbZkQQojUGbsZ\nY/TnozHArGO59qI7Rbix+QZqi2sl8p5UWAghpI9TN1DHyM9GwnykuWCsrrQON7bcQOHtQrG/HxUW\nQgjpB+QV5eE8yxmuc10hryQPAOC18JD4fSLu/vsueK08sb0XFRZCCOlHzHzMMGrNKGgYdSwt8vDG\nQ0R/HY368nqxvAcVFkII6Wc0TTQxau0omHqaCsZqCmoQ9VUUShJKur19KiyEENIPKSgrwPUDVzgF\nOkFOob0UtDW1Ie5gHNJ+SgO/jd/lbVNhIYSQfophGFiMtsCIVSOgpqcmGM+9motbO2+B5XdtvgsV\nFkII6ecGWgzE6M9Hw8jZSDBWlV3V5aWPqbAQQgiBopoiPD72gP1UeyiqKkLDUANa5lpd2paCmLMR\nQgiRUQzDwPJ1S3DGcMCyLOTku3bsQYWFEEKIEEaOAQOmy6/vt4WFx2ufDFRaWirlJIQQIhuefl8+\n/f7sTL8tLBUV7RelAgMDpZyEEEJkS0VFBSwsLDp9nGF7emmxXqKpqQmpqanQ19eHvLy8tOMQQkiv\nx+PxUFFRAUdHR6ioqHT6vH5bWAghhEgG3W5MCCFErKiwEEIIESsqLIQQQsSKCgshhBCxosJCCCFE\nrKiw/BePx8M333yDkSNHwtXVFUuWLMGjR4+kHavbsrOzYWNj88yfuLg4aUfrsi+++AKff/650NjN\nmzcxadIkODk5ISAgAJGRkVJK1zXP+0xTp059Zr/973N6o0ePHmH16tUYOXIkPDw88MEHH+D+/fuC\nx2VxX73sM8nqviotLcWSJUvg5eUFDw8PLF++HGVlZYLHu7yvWMKyLMvu3LmTHTFiBHvz5k02NTWV\nnTZtGvvee+9JO1a3Xbp0ifX29mbLy8uF/rS0tEg72ivj8/lsWFgYy+Vy2bVr1wrGs7KyWEdHR3bf\nvn1sdnY2u3PnTtbBwYG9f/++FNOKprPPxOfzWWdnZ/bChQtC+622tlaKaV+Ox+Ox7777Ljt9+nQ2\nOTmZzcrKYpcsWcIOGzaMraqqksl99bLPJKv7is/nswEBAWxQUBCbnp7Opqens4GBgezkyZNZlu3e\nvysqLCzLNjc3s66uruzPP/8sGCsoKGC5XC4bHx8vxWTdt3PnTjYwMFDaMbotPz+fnTlzJuvt7c36\n+fkJfQmHhISwM2fOFHr+zJkz2XXr1vV0zFfyos/08OFDlsvlsvn5+VJM+OrS0tJYLpfLZmdnC8aa\nm5tZZ2dnNjw8XCb31cs+k6zuq/LycnbZsmVsQUGBYOyPP/5guVwuW11d3a19RafCAGRkZKC+vh5e\nXl6CMTMzM5iamsr0KSMAyMrKAofDkXaMbktISICxsTEuXrwIMzMzocfi4uKE9h0AeHt79/p996LP\ndP/+faioqMDU1LSTV/dOxsbGOHjwIIYMGSIYY5j2ZoY1NTUyua9e9plkdV/p6+tj586dgv/3SktL\ncfr0aQwdOhRaWlrd2lf9tlfY3z1trGZoaCg0bmBgIPNNKrOystDc3Izp06ejqKgI1tbWWLFiBZyc\nnKQd7ZVMmjQJkyZNeu5jpaWlMrnvXvSZsrKyoKmpiZUrV+LOnTvQ1tbGlClTEBQUBDm53vv7oLa2\nNvz8/ITGjh8/jqamJowcORK7du2SuX31ss905coVmdxXf7dw4UJcvXoVWlpaOHbsGIDu/buSjU8t\nYY2NjZCTk4OioqLQuJKSEpqbm6WUqvuamppQUFCAuro6rFq1Cvv374eBgQFmzpyJnJwcaccTm6am\nJigpKQmNyfq+y87ORkNDA0aOHInDhw9jxowZ2L17N/bu3SvtaK/k6tWr+Oc//4m5c+fC0tKyT+yr\n//1MfWFfLV26FGfOnIGbmxvmzp2LsrKybu0rOmIBoKKiAj6fj7a2NigodPxIWlpaoKqqKsVk3aOi\nooLY2FgoKSkJ/gfZunUr0tLScPLkSYSEhEg5oXgoKyujtbVVaEzW993XX3+NhoYGDBgwAABgY2OD\n2tpaHDhwAIsXLxaciunNzp49i5CQEEycOBGffvopANnfV8/7TH1hX9nY2AAAdu7cCT8/P4SHh3dr\nX9ERC9rPoQIdrfSfKi8vf+ZQUNZoaGgI/dYhJycHKysrlJSUSDGVeBkbG6O8vFxoTNb3nYKCguCL\n6ikbGxvU19ejtrZWSqlEt3//fqxZswbvvfcetm3bJjglJMv7qrPPJKv76tGjR7h06ZLQmKqqKgYN\nGoSysrJu7SsqLABsbW2hrq6OO3fuCMYKCwtRVFQET09PKSbrntTUVLi5uSE1NVUwxuPxkJGRAWtr\naykmEy93d3fExsYKjcXExMDDw0NKibpv+vTp2LRpk9BYSkoKDAwMnvkS623+9a9/ISwsDEuWLEFI\nSIjQb+yyuq9e9JlkdV8VFxdjxYoVSElJEYzV1tbiwYMHsLKy6ta+kt+wYcMGcQeWNfLy8qitrcXh\nw4dhbW2Nuro6rF27FhYWFli4cKG043WZjo4Ofv31V0RFRcHW1ha1tbXYtm0bMjIysH37dqipqUk7\nYpeEh4dDS0sLY8aMAQCYmpoiLCwMbW1t0NPTw/Hjx/Hbb79hy5Yt0NHRkXJa0fzvZ6qursaRI0dg\nYmICNTU1XLlyBbt27cKnn34KBwcHKaftXEZGBpYvX44pU6Zg/vz5aGhoEPxhGAaDBw+WuX31ss9U\nX18vk/tKX18fMTEx+P333+Hg4IDKykqsX78eLS0t2LBhQ/f2ldhvjpZRra2t7JYtW1gvLy/Wzc2N\nXbp0KVtZWSntWN1WWlrKrlixgvXx8WGdnZ3ZuXPnspmZmdKO1S0zZ84UmvPBsix7/fp1duLEiayj\noyP71ltvsdHR0VJK1zX/+5n4fD575MgRdty4cayjoyM7btw49scff5RiQtF88803LJfLfe6fb7/9\nlmVZ2dtXL/tMsrqvWJZlKysr2dWrV7M+Pj6sq6sru3jxYra0tFTweFf3FS30RQghRKzoGgshhBCx\nosJCCCFErKiwEEIIESsqLIQQQsSKCgshhBCxosJCCCFErKiwkF7ns88+e+6ql3//M2vWLADArFmz\nMGfOHOkG7oLPPvsMr7/++gufc/bsWdjY2Iil8+9rr70m0oqGDx8+hL+/P2pqarr8XjExMa+8SunD\nhw8xZswYPHnypMvvS3oPakJJep2FCxfivffeE/w9NDQU8vLyWLdunWBMQ0MDALB+/XqZaPInC/h8\nPtasWYP58+dDS0ury9txcHDA6dOnYWVlJfJrLCwsMG7cOGzatAnbtm3r8nuT3oEKC+l1zM3NYW5u\nLiMd+rwAAAgNSURBVPi7hoYG5OXl4eLi8sxzX+XLi7zY5cuXkZeXh+nTp3drOxoaGs/dVy8zf/58\n+Pr6IigoqFe3QiEvR6fCiEz731NhNjY2OH36NFauXAlXV1f4+Phg7969qKurw5o1a+Du7o4RI0Zg\n+/bt+HvTicePH2PdunUYNmwYnJyc8P777yM+Pv6l7x8TE4N58+bB09MTjo6OGDNmDPbu3Qs+ny94\nTk1NDdasWQMvLy94enpi+/btQo8D7UcL+/btg5+fH5ydnbFw4cLnno6KjY1FYGAgnJ2d4e3tjXXr\n1j1z+igjIwNz586Fq6sr/P39ceHCBZF+locOHcL48eOF1iXqys/zf0+F7dmzB2+88QauXr2KgIAA\nODo6Yvz48Th//rzQ++vq6sLHxwcHDx4UKS/pvaiwkD7n66+/hra2Nvbt2wd/f3/s2bMHU6dOhaqq\nKvbu3YvXX38dhw4dwpUrVwAAzc3NmDNnDiIiIrBixQrs3r0bWlpamDNnDu7evdvp+6SlpWHevHnQ\n1dVFWFgY9u/fD3d3d+zZswe///47gPaCMX/+fERGRmL16tXYunUrEhIS8Ouvvwpta/v27fj2228x\ndepU7N27FwMHDsQ333wj9JzY2FjMnTsX6urq2LVrF1atWoWIiAh88MEHaGtrAwCUlZVh5syZqK2t\nxfbt27F06VLs2LEDZWVlL/yZ5ebmIjU1FePGjev2z/N5ysrK8NVXXyEoKAjfffcdzMzMsHr1auTl\n5Qk9b/z48bh27RoaGhpemJf0cpJobEaIOM2cOZMNCgoS6TEul8vOnDlT8PeqqiqWy+WyM2bMEIzx\n+XzWzc2N3bp1K8uyLHv69GnWxsaGvXv3ruA5PB6PnTx5MjtnzpxOc509e5b98MMPWT6fL/Q6d3d3\ndsOGDSzLtjfx43K5bFRUlOA59fX1rLe3Nzt27FiWZVm2pqaGdXBwYHfs2CG0/Q8++IDlcrlsSUkJ\ny7Is++6777JvvfUWy+PxBM+5d+8ea2Njw54/f55lWZbdunUr6+LiwlZVVQmek5SUxHK53Gcad/7d\niRMnWBsbG7a2tlZovCs/z9u3b7NcLpeNjY1lWZZld+/ezXK5XPbWrVuC1xQVFbFcLpc9evSo0Pul\np6ezXC6XvXHjRqdZSe9HRyykz3FychL8t7a2NuTl5YXGGIaBlpaW4BTSrVu3YGhoCDs7O7S1taGt\nrQ18Ph/+/v6IjY1FS0vLc9/n/9u7v5Cm3jCA418r2NgK5oX/1lSG6IWyYoLSoT8L6kK9ywuvBHEE\nVji6nAiSIIJBf0YMWhRJVoQgQd4ogTgVvWqS4IWEiCBKoC5XRnac9ruIvbjm7BeutHw+MDjbOe97\nzt6L8+yc5z17Ll26xIMHD9B1nampKV6/fs29e/fY2NhQlffevHmDwWDg7Nmzqp3JZMLlcqn3b9++\nZX19Xf1lfkxlZaVa/vLlCxMTE5w/f15VO41GoxQWFmK1WhkbGwMgFApRWlpKenq6anvy5EmsVuuO\nYzY3N4fFYlGTInYznsmUlpaq5ezsbPW9tjp+/DgA8/PzO/Yl9jdJ3ot/jtlsTvhsp9ozKysrvH//\nPmnC+MOHD9tWzVtbW6OtrY1Xr14RjUax2Ww4nU6OHDmi8g2RSCTuJB+TkZGhlmO5lB9rXGzd5uPH\nj2xubhIIBAgEAgn9xSr9RSIR8vPzd9zfdlZXV5OO0a+O53YOHz6cUMkUSMg1xcre7ufKi+LnJLCI\nA+/YsWMUFBRw8+bNbddvFxgA2tvbVVEnTdPUyVbTtLi24XCYb9++xU2LXllZSeh/aWkpbjbc1m3M\nZjNpaWm43e64K5mt62N9LS8vJ6zf2ley77gfniGJHUOyMRd/B7kVJg68srIyFhYWyMzMxOFwqNfA\nwABPnz6NmyW1VSgUQtM0Lly4oILK5OQk4XBY/RLXNA1d1xkYGFDtdF1ndHRUvXc6nRiNRpXwjxkc\nHFTLR48epbi4mNnZ2bhjtNvt+Hw+JiYmADh16hShUIjFxUXVdnp6mrm5uR3HwGq18unTJ1ZXV//P\nkP02sYdBf3brTuxvcsUiDrzq6mqePXtGfX09DQ0NZGVlEQwG6ezspLGxMekDmCdOnKC/v5/u7m7s\ndjtTU1Pcv3+ftLQ0lTvQNI0zZ87Q3NzM0tISOTk5dHV1EQ6HyczMBL5fbVy7dg2fz4fRaKS8vJxg\nMBgXWACuX7/OlStXaGpqoqqqCl3XefjwIe/evcPr9QJQV1dHT08Pbrcbj8dDNBrl7t27SYNjzOnT\npwEYHx/n3LlzuxrP3RgfH8dkMsXlY8TfRwKLOPDMZjPPnz/n9u3bdHR08PnzZ3Jzc2lpaaG2tjZp\nu6amJtbX17lz5w66rmOz2bh69SrT09MMDQ2xubnJoUOH8Pv93Lp1C5/Px9evX6mqqqKmpoZgMKj6\namhowGQy8eTJEzo7O3E6nXi9XlpbW9U2LpeLR48e4ff78Xg8GAwGHA4HXV1dFBUVAd9vIb148YL2\n9na8Xi9ms5nLly8nTG/+UW5uLiUlJQwPD+9pYBkeHsblcmEwGPbsGMTuSWliIQQAfX193Lhxg5GR\nkT05sS8sLHDx4kV6enooLi7+4/sXqSM5FiEEABUVFeTl5dHd3b0n+3/8+DEVFRUSVP4BcsUihFBm\nZmaor6+nt7d3V39E+atmZ2dxu928fPkSi8Xyx/Yrfg8JLEIIIVJKboUJIYRIKQksQgghUkoCixBC\niJSSwCKEECKlJLAIIYRIqf8AV6HXj4PQOcMAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def run_and_mix2(t_add, t_total=30):\n", + " \"\"\"Simulates two liquids and them mixes them at t_add.\n", + " \n", + " t_add: time in minutes\n", + " t_total: total time to simulate, min\n", + " \n", + " returns: final temperature\n", + " \"\"\"\n", + " coffee = make_system(T_init=90, t_end=t_add, \n", + " r=r_coffee, volume=300)\n", + " run_simulation(coffee, update)\n", + "\n", + " milk = make_system(T_init=5, t_end=0, \n", + " r=r_milk, volume=50)\n", + " run_simulation(milk, update)\n", + " \n", + " mixture = mix(coffee, milk)\n", + " mixture.t_end = t_total - t_add\n", + " run_simulation(mixture, update)\n", + "\n", + " return final_temp(mixture)\n", + "sweep1 = SweepSeries()\n", + "for t_add in linrange(0, 30, 2):\n", + " temp = run_and_mix2(t_add)\n", + " sweep1[t_add] = temp\n", + "sweep1.idxmax()\n", + "plot(sweep1, color='purple')\n", + "decorate(xlabel='Time added (min)',\n", + " ylabel='Final temperature (C)',\n", + " legend=False)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Analysis" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can use the analytic result to compute temperature as a function of time. The following function is similar to `run_simulation`." + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_analysis(system):\n", + " \"\"\"Computes temperature using the analytic solution.\n", + " \n", + " Adds TimeFrame to `system` as `results`\n", + " \n", + " system: System object\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " T_init = init.temp \n", + " ts = linrange(t0, t_end, dt)\n", + " \n", + " temp_array = T_env + (T_init - T_env) * exp(-r * ts)\n", + " temp_series = TimeSeries(temp_array, index=ts)\n", + " \n", + " system.results = TimeFrame(temp_series, columns=['temp'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it. From the analysis, we have the computed value of `r_coffee2`" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "r_coffee2 = 0.011610223142273859" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "70.0" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(temp=90)\n", + "coffee2 = System(init=init, T_env=22, r=r_coffee2, \n", + " t0=0, t_end=30)\n", + "run_analysis(coffee2)\n", + "final_temp(coffee2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can compare to the results from simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "70.0" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(temp=90)\n", + "coffee = System(init=init, T_env=22, r=r_coffee, \n", + " t0=0, t_end=30, dt=1)\n", + "run_simulation(coffee, update)\n", + "final_temp(coffee)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "They are identical except for small roundoff errors." + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
temp
00.000000e+00
10.000000e+00
20.000000e+00
30.000000e+00
40.000000e+00
50.000000e+00
60.000000e+00
70.000000e+00
80.000000e+00
90.000000e+00
100.000000e+00
110.000000e+00
120.000000e+00
13-1.421085e-14
14-1.421085e-14
150.000000e+00
16-1.421085e-14
17-1.421085e-14
18-1.421085e-14
190.000000e+00
20-1.421085e-14
210.000000e+00
220.000000e+00
230.000000e+00
240.000000e+00
250.000000e+00
26-1.421085e-14
270.000000e+00
28-1.421085e-14
290.000000e+00
300.000000e+00
\n", + "
" + ], + "text/plain": [ + " temp\n", + "0 0.000000e+00\n", + "1 0.000000e+00\n", + "2 0.000000e+00\n", + "3 0.000000e+00\n", + "4 0.000000e+00\n", + "5 0.000000e+00\n", + "6 0.000000e+00\n", + "7 0.000000e+00\n", + "8 0.000000e+00\n", + "9 0.000000e+00\n", + "10 0.000000e+00\n", + "11 0.000000e+00\n", + "12 0.000000e+00\n", + "13 -1.421085e-14\n", + "14 -1.421085e-14\n", + "15 0.000000e+00\n", + "16 -1.421085e-14\n", + "17 -1.421085e-14\n", + "18 -1.421085e-14\n", + "19 0.000000e+00\n", + "20 -1.421085e-14\n", + "21 0.000000e+00\n", + "22 0.000000e+00\n", + "23 0.000000e+00\n", + "24 0.000000e+00\n", + "25 0.000000e+00\n", + "26 -1.421085e-14\n", + "27 0.000000e+00\n", + "28 -1.421085e-14\n", + "29 0.000000e+00\n", + "30 0.000000e+00" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee.results - coffee2.results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From 2e8afec58a27b36869e9ee96bc512c8affcd2154 Mon Sep 17 00:00:00 2001 From: dberny <31549375+dberny@users.noreply.github.com> Date: Wed, 1 Nov 2017 23:05:01 -0400 Subject: [PATCH 8/9] update --- code/11 Project 2.ipynb | 776 ++ code/chap01mine.ipynb | 1197 ++- code/chap05-fig01.pdf | Bin 17122 -> 17122 bytes code/chap05-fig04.pdf | Bin 15330 -> 14731 bytes code/chap05-fig05.pdf | Bin 15723 -> 15820 bytes code/chap05-fig06.pdf | Bin 11147 -> 15609 bytes code/chap05mine.ipynb | 124 +- code/chap05soln.ipynb | 4 +- code/chap06-fig01.pdf | Bin 0 -> 13608 bytes code/chap06-fig02.pdf | Bin 0 -> 14990 bytes code/chap06-fig03.pdf | Bin 0 -> 13099 bytes code/chap06-fig04.pdf | Bin 0 -> 15688 bytes code/chap06mine.ipynb | 1247 +++ code/chap07-fig01.pdf | Bin 0 -> 13619 bytes code/chap07-fig02.pdf | Bin 0 -> 11633 bytes code/chap07sympy.ipynb | 35 +- code/chap08-fig01.pdf | Bin 0 -> 15006 bytes code/chap08-fig02.pdf | Bin 0 -> 17028 bytes code/chap08-fig03.pdf | Bin 0 -> 16674 bytes code/chap08-fig04.pdf | Bin 0 -> 13118 bytes code/chap08mine.ipynb | 2763 ++++++ code/chap09-fig01.pdf | Bin 0 -> 10663 bytes code/chap09-fig02.pdf | Bin 0 -> 10478 bytes code/chap09mine.ipynb | 12869 ++++++++++++++++++++++++++++ code/chap09soln.ipynb | 20 +- code/project 2/better labels.png | Bin 0 -> 41554 bytes code/project 2/better.png | Bin 0 -> 40852 bytes code/project 2/fraction model.png | Bin 0 -> 26867 bytes code/project 2/initial better.png | Bin 0 -> 43678 bytes code/project 2/initial pop.png | Bin 0 -> 21927 bytes code/project 2/model.png | Bin 0 -> 21491 bytes 31 files changed, 18866 insertions(+), 169 deletions(-) create mode 100644 code/11 Project 2.ipynb create mode 100644 code/chap06-fig01.pdf create mode 100644 code/chap06-fig02.pdf create mode 100644 code/chap06-fig03.pdf create mode 100644 code/chap06-fig04.pdf create mode 100644 code/chap06mine.ipynb create mode 100644 code/chap07-fig01.pdf create mode 100644 code/chap07-fig02.pdf create mode 100644 code/chap08-fig01.pdf create mode 100644 code/chap08-fig02.pdf create mode 100644 code/chap08-fig03.pdf create mode 100644 code/chap08-fig04.pdf create mode 100644 code/chap08mine.ipynb create mode 100644 code/chap09-fig01.pdf create mode 100644 code/chap09-fig02.pdf create mode 100644 code/chap09mine.ipynb create mode 100644 code/project 2/better labels.png create mode 100644 code/project 2/better.png create mode 100644 code/project 2/fraction model.png create mode 100644 code/project 2/initial better.png create mode 100644 code/project 2/initial pop.png create mode 100644 code/project 2/model.png diff --git a/code/11 Project 2.ipynb b/code/11 Project 2.ipynb new file mode 100644 index 00000000..2ff87bad --- /dev/null +++ b/code/11 Project 2.ipynb @@ -0,0 +1,776 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# S = % SUSCEPTIBLE, I = % INFECTED, R = % RECOVERED" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(S=89, I=1, N=0, D=0, contact_rate = .11, safe_rate = .02, death_rate=.006, t_end = 200):\n", + " \n", + " pop = State(S = S, I = I, N = N, D=D) #creates initial population\n", + " pop /= sum(pop) #converts population to percentages\n", + "\n", + " t0 = 0\n", + "\n", + " return System(init=pop, t0=t0, t_end=t_end,\n", + " contact_rate = contact_rate, death_rate = death_rate, safe_rate = safe_rate)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update(state, system):\n", + " \n", + " unpack(system)\n", + " \n", + " s, i, n , d = state \n", + " \n", + " infected = contact_rate * i * s\n", + " non_infectious = safe_rate*i\n", + " dead = death_rate * i\n", + " \n", + " s -= infected\n", + " i += infected - non_infectious - dead\n", + " n += non_infectious\n", + " d += dead\n", + " \n", + " return State(S=s, I=i, N=n, D=d)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# def run_simulation(system, update_func):\n", + "# unpack(system)\n", + "# state = pop\n", + "# for t in linrange(t0, t_end):\n", + "# state = update_func(state, system)\n", + "# return state" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \n", + " \n", + " frame = DataFrame(columns = system.init.index)\n", + " frame.loc[system.t0] = system.init\n", + " \n", + " for i in linrange(system.t0, system.t_end):\n", + " frame.loc[i+1] = update_func(frame.loc[i], system)\n", + " \n", + " system.results = frame\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(S, I, N, D):\n", + " \"\"\"Plot the results of a SIR model.\n", + " \n", + " S: TimeSeries\n", + " I: TimeSeries\n", + " R: TimeSeries\n", + " \"\"\"\n", + " plot(S, '--', color='blue', label='Susceptible')\n", + " plot(I, '-', color='red', label='Infected')\n", + " plot(N, ':', color='green', label='Non-Infectious')\n", + " plot(D, '-', color='black', label='Dead')\n", + " decorate(xlabel='Time (Years)',\n", + " ylabel='Fraction of population')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "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", + "
value
S0.996553
I0.001724
N0.001724
D0.000000
\n", + "
" + ], + "text/plain": [ + "S 0.996553\n", + "I 0.001724\n", + "N 0.001724\n", + "D 0.000000\n", + "dtype: float64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test_system = make_system(S=318000, I=550, N=550, D=0, contact_rate = .11, safe_rate = .02, death_rate=.006, t_end =75)\n", + "test_system.init" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxIAAAH9CAYAAACOSUq1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8Tff/wPHXzRIjoiFixGpIiCCxYgRNjBqlqFGVKBW7\nvxrVrxE1o4hVovZqapQSVIvaVUVURY3Gpk1ii0QEmef3x+m9yU1uhsjC+/l4fB733s/5nHM+515u\nzvt+lkZRFAUhhBBCCCGEeAFG+V0BIYQQQgghxKtHAgkhhBBCCCHEC5NAQgghhBBCCPHCJJAQQggh\nhBBCvDAJJIQQQgghhBAvTAIJIYQQQgghxAuTQEKIXOLv74+Dg0OGKSQkJE/r9PDhQ54+fap7PXbs\nWBwcHPK0Di9i586deHh4UKtWLT7//HODZQIDAw2+t7Vr16Zt27YsXLiQ2NjYPK55Wi/zXsfFxXH3\n7l3da+01BwUF5VT1ssTDwwMPD49s7RsSEkLXrl2pVasWHh4e5MbM46GhoTl2rKCgIBwcHAgMDMyx\nYwKEhYXh4OCAv7+/Xn7qujs4ODB27NhsnUP7by0sLMzgdu21payD9t+U9nr79OlDjRo1uH//frrn\niYqKwsnJiU8//TTTOsXFxbFmzRq6detG3bp1qVevHl26dGHlypVER0e/4BXmDu37llnSfi5eXl7Z\n/v8gxOvCJL8rIMTrbvDgwbz99tsGt5UrVy7P6vHrr78yevRotm3bRpEiRQDo2bMnjRs3zrM6vIhH\njx4xbtw4bG1tmTBhApUqVcqwfM+ePalXr57u9fPnzzl58iTffPMNf//9N0uXLs3tKueK8PBwPvnk\nEwYNGkTXrl0BaNCgAX5+ftjZ2eVz7bLOx8eHGzduMGrUKEqVKoVGo8nR4/fv3x9ra2tmzpyZo8fN\naVZWVvj5+ekFlYsXL2bbtm3s27cvH2umr2PHjgQFBbF371569+5tsMzevXuJj4+nU6dOGR7r7t27\neHt7c+XKFVq1akWXLl1QFIXg4GDmzZvHpk2bWLZsWbrfk3kl9ffhn3/+yaZNm9J8t1SsWBFQv9uf\nPXuW5/UUoiCRQEKIXNakSRNcXV3zuxqcPXuWx48f6+W5uLjg4uKSTzXK2I0bN4iPj6d379707Nkz\n0/LOzs68//77enk9e/YkMTGR3bt3c+bMGZydnXOrurkmLCyMmzdv6uVVqFCBChUq5E+Fsuny5cu4\nu7vTr1+/XDn+0aNH6dKlS64cOycVKVIkzb/T48ePk5iYmE81Mqxt27ZMnTqVX375Jd1AYteuXRQv\nXpx33nkn3ePExcUxZMgQwsLCWLNmjd6NuqenJ3369GHgwIEMHDiQnTt3Urhw4Zy+lCxL/X2YmJjI\npk2bDH63ADRt2jQvqydEgSRdm4QQBVJ8fDwARYsWfanjtG/fHoDg4OCXrpPIvvj4+Jf+LEXesbCw\nwN3dnVOnTvHw4cM02x8+fEhQUBBt27bFzMws3eNs376dCxcuMGbMGIOtn3Xq1MHHx4fQ0FBWrVqV\no9cghMh9EkgIUQB4eHgwYcIExo8fT+3atWnevDkREREoisLGjRvp1q0bLi4u1KpVi7Zt27J8+fI0\nfcz/+usvBgwYQP369XF1dWXgwIFcunQJUPv+Llq0CICWLVvi5eWly0/dbz88PJwvvviCRo0aUatW\nLTp16sTmzZv1yowdO5a2bdty9uxZPD09qVOnDk2aNMHX15fnz59ner2ZnWPs2LH06dMHgHHjxmXY\n3zszRkbq11xCQsILX2Pr1q0JDg6ma9euujEXGzduTFPO0NiHrIyJOH78ON7e3ri6ulKzZk2aNWvG\nxIkTdS1HgYGBad4HbX7qMRLPnj1j7ty5eHh44OTkhIeHB3PmzNHreqHd7+LFi3z++ec0aNAAFxcX\nhg4dmq33NyvH05YB2LZtm14//NjYWObPn6+rc8uWLVmwYAFxcXF654mLi8Pf3582bdpQu3Zt3n33\nXZYvX05iYqJuzEHK42vfl6SkJFavXk3btm1xcnKiWbNm+Pr68uTJE73jP336lOnTp+Pm5oazszPD\nhg3j3r17GV77xYsXcXBwYO3atXr5Xbt2pXr16jx69EiXFxISgoODA7t27UozRsLDw4OTJ08SHh5u\ncOzE2rVradWqFbVq1aJjx4788ssvmX4uOaVjx44kJiYa7HK1Z88eEhMTM+3WtH37dooUKZJha1HH\njh2xtrZm586dAEyaNAlHR0ciIiL0yj19+hRnZ2fGjRunywsODqZfv3661oRPPvmEs2fP6u2X3vfr\ny0o9RsLLy4tBgwaxf/9+OnXqRK1atejQoQO//vorT548YeLEiTRo0IDGjRszceLENN+VWbkWIQoa\n6dokRC6Ljo42+EfLwsICU1NT3euff/6Zt99+m/Hjx/PgwQOsrKyYP38+S5cupUuXLvTo0YOYmBi2\nb9/O3LlzKVq0qK7LwalTp+jbty+lS5fG29sbc3NzAgIC6NOnD1u3bqVnz548efKEffv2MW7cOKpV\nq2awrqGhofTo0YPY2Fg8PT2xtrZm7969fPnll9y8eZP//e9/urIRERH079+fdu3a0alTJ44cOcJ3\n332HmZmZXrnsnKNnz57Y2NiwdOlSXf9kKyurbL3/x48fB6BmzZovfI2RkZF4e3vTokULunbtyt69\ne5k8eTKPHz9m0KBB2aqP1tGjRxkwYAB169bls88+Q6PR8Pvvv7Np0yaioqJYsGABDRo0YPDgwXrv\ngyFxcXH069ePM2fO0LVrV5ycnDh79iwrVqzgzz//JCAgQO/f2pAhQ7Czs2PkyJGEhoby7bffcu/e\nPbZs2ZKta8noeNrxHP/73/+oX78+PXr0oG7duiQmJjJo0CBOnz5Njx49sLOz4/z58yxdupSQkBCW\nLFmiG0cxbNgwjhw5QseOHenXrx9nz55l7ty5PHz4kOHDh6c5vnbsiI+PDzt27KBz58707duXa9eu\nsXHjRk6fPs3GjRspVKgQiqIwePBg/vjjD3r06EG1atXYs2cPEydOzPCaq1evTunSpTlx4gR9+/YF\n4PHjx4SEhKAoCn/++SetWrUC4LfffsPExAQ3N7c03QvHjx/P3LlzdWOCUgafe/bs4fjx4/Tu3Rsz\nMzPWrl3LiBEj2LJli+7fc0YeP35s8Lsnq4ObW7RogaWlJXv27OHDDz/U27Zr1y7Kly9P/fr1090/\nMTGRc+fOUbt2bQoVKpRuOY1Gg6urKz/99BP379+nY8eOfP/99/zyyy/06tVLV+7w4cM8e/ZMF7z8\n/vvvDBo0iOrVqzN8+HDi4uIIDAykd+/erFmzRq9uhr5fc8OFCxcIDg6mT58+WFhYsGzZMkaMGEGN\nGjUoXLgwo0aN4tSpU2zatInSpUvrBqq/yLUIUaAoQohcsXDhQsXe3j7ddOLECV1Zd3d3pXr16sqd\nO3d0eXFxcUrdunWVkSNH6h03OjpacXJyUgYNGqTL69atm9K0aVMlIiJCl3f9+nWlevXqyqxZs/Tq\nExoaqiszZswYxd7eXvd6xIgRSvXq1ZXz58/r8hITE5VBgwYpDg4OyuXLl/X2CwgI0Ktbu3btFDc3\ntwzfl6ye48SJE4q9vb2ydevWDI+3detWxd7eXvnuu++Uhw8f6lJISIji7++vODo6Kl26dFGSkpKy\ndY2+vr66cgkJCUrv3r2V2rVrK5GRkQbfQ63U+alf9+/fX3F3d1diY2P19uvRo4fi4uKie23ofdBe\ns/bf0IYNGxR7e3tlzZo1esdasWKFYm9vr6xbt05vv08//VSv3MSJExV7e3vlxo0b6bzLKnd3d8Xd\n3T1NPbJyPHt7e2XMmDFp9j1y5Ijevt9//71ib2+v7Nu3T1EURTl8+LBib2+vLFmyRK/c559/rtSs\nWVOJiooyeHzt+7Zx40a9/X777TfF3t5eWbt2raIoinLw4ME07118fLzy8ccfZ/rvb9y4cUq9evWU\nhIQERVEUZf/+/Yqjo6PSpEkTZcaMGbpyXl5eiqenp6IoihIaGqrY29srCxcu1G339PTUe1+11+Ps\n7Kzcvn1bl3fy5EnF3t5e+frrr9Otk6Ik/1vLLKWsg/bzSH29EyZMUBwdHfW+W+7cuaM4ODgoc+fO\nzbAeDx8+VOzt7ZXhw4dnWE5RFGXmzJmKvb29cv78eSUpKUlxd3dX+vTpo1dm2LBhipubm5KYmKgk\nJiYqLVu2VD788EPd+68oihITE6O0bt1aef/993V5hr5fsyK990Qr9efm6emp2NvbKwcPHtTlrVu3\nTrG3t1d69Oihy0tKSlKaN2+u9OzZU1EU5YWuRYiCRro2CZHLxowZw5o1a9Kk6tWr65WrWLEiNjY2\nutempqYcO3aMqVOn6pV79OgRxYoV003j+vDhQ86ePUvHjh156623dOWqVKnC1q1bGTBgQJbqmZiY\nyOHDh3Fzc9P7tdPIyIjBgwejKAoHDx7U26ddu3Z6r6tXr86DBw9y9BxZNW3aNBo3bqxL77//PosW\nLaJx48a6X7ezc/6ULQ/Gxsb06dOH58+fc+zYsWzVU2vZsmVs3bpVr3956s82qw4ePEixYsXSDIrt\n06cPxYoVy/Rzq1GjBkCGn11GsnO8vXv3YmVlRc2aNYmIiNClFi1aYGxszOHDhwH1V2gjIyM8PT31\n9h8zZgw7duxId9zF3r170Wg0tGjRQu/4jo6OWFtb645/5MgRjIyM6N69u25fExOTdAcYp9S8eXOi\no6O5cOECoE6rWrNmTerVq8epU6cAiImJ4fTp07Ro0SLT46VWt25dypQpo3tdq1YtIOuf0+zZsw1+\n94wZMybLdejUqRMJCQns379fl7d7924URcm0W5PyX/dLY2PjTM9jYmKi20ej0fDee+/xxx9/6MZn\nPHnyhCNHjtChQweMjIz4+++/CQ0NpVWrVkRFRek+3+fPn+Pu7k5ISIjelMmpv19zS6FChWjWrJnu\ndZUqVQC1S6mWRqOhfPnyuql1X/RahChIpGuTELmsZs2aWZq1qWTJkmnyTE1NOXz4MAcOHODGjRv8\n888/REVFAcl/pMPDwwEMTo/q6OiY5Xo+evSIp0+f6v7wpaTtKqI9l1bq7gFmZmYkJSXl6Dmyqn//\n/ri5uQHqH+oiRYpQqVIlSpQoke3zlyhRglKlSumV077P2a2nlrGxMaGhoSxYsICrV6/y77//Zvtm\nISwsjAoVKuh1XwL186hQoUKauqYMOLXlgGzPHJSd4/37779ERESkO/3w7du3AfV9LlmyJMWKFdPb\nbm1tjbW1dYbHVxQl3RmFtAGI9vipA5KsTEXatGlTTExMOHHiBLVr1yYoKAg3Nzesra05cOAAMTEx\nBAUFER8fn61AIvV3grm5OZA8EUFm6tati62tbZr8rNzYa9WvX59y5cqxZ88eXbD1888/4+joSNWq\nVTPc18rKClNTU4ODtVPTjkkpXbo0oI6bWLZsGXv37qVXr17s37+f2NhY3nvvPUD9fAH8/Pzw8/Mz\neMxbt27pggdD36+5oUSJErqgCJLf69TnNzY21n2Hv+i1CFGQSCAhRAGR+o+7oigMHTqUQ4cOUa9e\nPVxcXOjZsycNGjTg448/1pXT3ri/7Lz8SgYLhGnPkXp2Fu1A5tw8R1ZVrVqVJk2a5Oj5U9+YpyyX\n2c1YZjflq1atws/PjypVqlC/fn3atGlDnTp1+O6773SDTrMqs+tKfR0v+rllJjvHS0xMpHLlykya\nNMng9uLFi+vKZUdSUhJFixbVTTKQmrbPvkajMbhgYUYBsZaFhQUuLi6cOHGCHj16cOnSJUaNGoW1\ntTUJCQmcOXOGo0ePUr58+XTHJWUkpz+n7NBoNHTo0IE1a9YQGRlJdHQ0Z8+ezdJieRqNBhcXF86d\nO0dsbGy64ySU/8aUVKhQQRdIVKtWDQcHB3bv3k2vXr3YvXs3VapUwcnJCUj+fIYPH57utM4pg8EX\nCZ5eRsogIqWMvp9f9FqEKEgkkBCigDp16hSHDh1i6NChDB8+XJefkJBAZGSkbh2BsmXLAsm/aqU0\ne/ZsLC0tGThwYKbns7KyokiRIly/fj3Nths3bgDodbPIjrw4R06e/8GDB8TExOj9Wq1d00HbMqG9\n2YuLi9MLQjLqfhIbG4u/vz+urq6sXr1a7+ZjwYIFL3xd5cuX58yZM8THx+sFDXFxcYSFhRXIgZq2\ntracP3+eRo0a6d0wx8fHs2/fPt3nUK5cOY4dO5bmc7hw4QKrV69myJAhBn8ZL1++PEePHsXJyUkX\nlGjt2bNHt6hYhQoVOHz4MBEREXotbFldJbt58+YsXryYY8eOYWRkRL169ShSpAjFixfnjz/+4OjR\no9lqjShIOnXqxIoVKzh06BAREREYGxvToUOHLO3buXNnTp48yaZNm3QzkKV24MABQkNDGTp0qF5+\nx44dmT9/PqGhofz+++8MGTJEt618+fKAui5H6h8Qzp49S1RUlK4Fp6B7na5FvHny/+cOIYRBkZGR\nAGlukjZv3syzZ89005na2NhQvXp1fv75Z71pLUNDQwkICNDd0Gpv1tL79drY2JhmzZrx+++/6/p8\na8uvWLECjUaT4cJTWZEX58jJ8yuKwvr163WvExIS+Pbbb7GwsNB1ydF2rwkJCdGVu3PnTobrVjx/\n/pxnz55RuXJlvSAiJCSEkydP6s6lrTNk/Au5h4cHT5480asrwIYNG4iJicnV9zS7PDw8iIyMTDOd\n7vfff8/IkSN1s221aNGCpKQkfvjhB71yGzduZPfu3bquZ0ZGRnrvkXZaziVLlujtd/DgQYYPH65r\n9WndujUAq1ev1pVRFIUNGzZk6TqaN2/Os2fPWL16NdWrV6dYsWK6gOKnn37in3/+yfT9T133gsbe\n3h4HBwcOHz7MoUOHaNSoka7lIDNdunTBxcWFuXPncvTo0TTbQ0JC+PLLL7G1tcXb21tv23vvvUdS\nUhLTp08nPj6ejh076rY5OTlhbW3Nd999R0xMjC7/yZMnjBgxgnHjxuVZK8TLep2uRbx5pEVCiALK\nxcWFYsWKMWPGDMLDw7G0tCQoKIhdu3ZRqFAhvT8448aNw9vbmw8++IDu3btjZGTEunXrKF68uG6w\ntfbX1pUrV9K8eXO9wX9ao0ePJigoCC8vL7y8vLC2tmbfvn2cOHGCfv36ZdonOivy4hw5ef7FixcT\nHh5OtWrV2L17N8HBwUyfPl23Am+7du1YtmwZI0eOpG/fvsTGxrJ+/XpsbGzSrEitZWlpSZ06dQgM\nDKRYsWJUqVKFK1eu8MMPP+gCvpiYGCwtLXXjD3788UcURTE4H3/37t3Ztm0bM2fO5PLlyzg5OXH+\n/HkCAwNxdnbWG0hcUGjrPG3aNC5cuEDt2rW5fPkymzZtombNmnTt2hVQAwI3NzdmzpzJlStXqFWr\nFsHBwWzfvp1hw4bpxsBYWVlx8uRJNm/ejJubGy1atKBly5asXr2a8PBwGjduTHh4OOvXr6dcuXL0\n798fAFdXV9q1a8eKFSu4f/8+tWvX5uDBg3qBZka008CeO3dOb9Xuhg0bcujQIczNzTMdI2VlZcUf\nf/zB6tWrqVevHnXq1MnOW5qrOnXqxOLFi3n+/DlfffVVlvczMjJi0aJFDBkyBG9vb9q0aYOrqyvG\nxsb89ddf7Ny5k7Jly7J48eI041TKli1LgwYNOHToEM7OzrpWJFC7HU6YMIGRI0fStWtXunXrRqFC\nhfjhhx+4desWc+bMSbebUUHzOl2LePNIi4QQBVSpUqVYvnw5FSpUYMmSJcybN49bt24xb948Pvro\nI65evaprbWjUqBHffvstZcqU4ZtvvmH58uXUrFmTjRs36n4x79ChA02aNCEwMJA5c+YYPGfFihXZ\nvHkzLVq04Pvvv2f27NlER0czffr0LPWJzoq8OEdOnn/VqlWcPn0aPz8/nj17xqJFi+jWrZtue/Xq\n1fn6668pWrQofn5+bN68mQEDBtCjR48M67FgwQI8PDzYunUrX331FceOHWPgwIG6z+bEiROAOgjc\ny8uL8+fP89VXX3Hr1q00x9KuMdCvXz+OHTvGV199xcmTJxk0aBDffvutwbEe+S1lnU+cOIGvry+H\nDx+mV69erFq1SheoGRkZsXjxYgYOHMixY8eYPn0658+fZ+LEibo5+EENEBMSEpg2bRonT55Eo9Gw\nYMECRowYwaVLl5g+fTo//vgjbdq0Yf369XqD6GfPns3QoUMJCgpi1qxZKIrCvHnzsnwt2ll6UnYh\na9CgAaAGKpl1S/H29qZy5crMmzePrVu3Zvm8eem9997j2bNnmJmZ6VpxsqpUqVKsX7+eqVOncu/e\nPRYuXMjs2bO5ePEiw4cPJzAwMN0xJNpWCO0g65Tatm3L6tWrsbGxYfHixSxYsICiRYuyZMkSg+UL\nstfpWsSbRaNkNEpPCCHeUGPHjmXbtm261cGFEEIIoU9aJIQQQgghhBAvTAIJIYQQQgghxAuTQEII\nIYQQQgjxwmSMhBBCCCGEEOKFvZbziT1//pzz589jbW0tcy8LIYQQQgiRTYmJidy/fx8nJ6c0s9C9\nloHE+fPn6d27d35XQwghhBBCiNfC+vXr9aa5htc0kNDOm79+/XrKlCmTz7URQgghhBDi1XTnzh16\n9+6tu79OKV8DiYkTJ5KYmMj06dPTLXPu3DmmT59OSEgINjY2DB06lM6dO2d4XG13pjJlymBra5uj\ndRZCCCGEEOJNY2i4QL7M2qQoCgsWLGDTpk0ZlouIiMDb25uaNWsSGBiIl5cXPj4+HD16NI9qKoQQ\nQgghhDAkz1skQkNDGT9+PFeuXKFcuXIZlv3hhx8oVqwYPj4+GBkZYWdnx99//83q1atxc3PLoxoL\nIYQQQgghUsvzFonTp09TtmxZdu7cmWm3o1OnTtGgQQOMjJKr2bBhQ06fPo3MWiuEEEIIIUT+yfMW\niffff5/3338/S2Xv3LmDo6OjXl7p0qV59uwZjx49wsrKKsfrFxoKiYmg0YCRkf5j6uclSoBJqncw\nJsbwvin3E0IIIYQQ4lVXoGdtev78OWZmZnp52tdxcXG5cs5FiyAyMmtlx42DypX18z7/HDJqLEkZ\nkPj6wltvJW+LjoapU5O3GwpGUqaxY9VHrfv3YePG5LLGxmmfGxurrwsXhg8+0K/b3btw8mTy8bVl\ntY8p84sVAycn/f0jI9VjaMuk3D91MjVV6yCEEEIIIV5NBTqQMDc3TxMwaF8XzqW70KSkrJdN3bqg\nKBkHESnLJCWl3T8xER4/zv75nz6FCxeytm/x4oYDiZ9+ytr+FSqkDSTOnYN167K2v5MT/N//6eft\n3g0//2w4CDEx0Q9EnJ2hXTv9/Y8dg0uX0u5j6LFKFTWlFBqqtiiZmCQnU9PkfUxNk/O1wZ0QQggh\nxJuqQAcSZcqU4f79+3p59+7do0iRIlhYWOTKOStUgCdP9G/4Uz/XPpqapt2/SJG0ZVMeIyWjVCNU\nXmTYh6FuUi+yf+pzw4sFUbmxf3x8cspMhQpp865fhxMnsnb+995LG0j8+COcPZu1/T/6CFq00M9b\ntkwNxlIGHaamySnl6yZNIPVcA2fOJP+7SpnMzNI+N/T+CSGEEELkpQIdSNSrV4/AwEAURUHz311z\nUFAQdevW1RuAnZM++yz7+2o0MH9++tu1N/rawCL1dLyWljB7tn7woX1u6HVqpUur9U9MTC6rfZ6Y\nmHyMxET1hjS1MmXUG+yU59Dup33UPi9VKu3+lpZgb69uT10+ZUpKgqJF0+6fmJj+e5eagamMSUjI\n+v6px7bkxP5370J4eNb2r149bSCxfn3WW6TGj4dKlZJfKwrMmpUcbGSWGjaEQoWS909KgocP1Twz\nM/VRWlyEEEIIkZECFUjExcURFRWFpaUlZmZmdOvWjZUrVzJp0iQ+/vhjjh07xk8//cSKFSvyu6rZ\nor0xM3QTDOqvzMWLZ//4RYpAzZrZ379MGejYMfv7OzurKbvefx86dEgbdCQkJL/WPjf0PjVrpt6g\nJyQY3idlfsqbcC1bW/2y8fHJr7XPtSk3ApEXGfaTujUsIQFu3Mj6/s7O+oFEZCRMmKBfRhtQpE7m\n5jBokH6gER2ttuZot2sftalwYcPXLIQQQohXV4H60x4cHEyfPn0ICAjA1dWVUqVKsXLlSnx9fenc\nuTPlypVj1qxZNG7cOL+rKnKBkZHhlpKssrNTU3alHjOSEUPdyP7v/yA2Vj8ISfmYMtnYpN3f2Rme\nP08uExen7hsXl/xa+zz1+/Sicw+kDCJArXdq2vNFR6fdN3VrxZ07EBCQ8TmNjdWgomxZ+OIL/W1h\nYepA/8KF009Fiqj7S0uJEEIIUTDkayDx3Xff6b12dXXl0qVLennOzs5s2bIlL6slRKYM3cxaW7/c\nMfv1y1o5Q0GMubk6i5f25t9Qio1NfkzdoqEoane1lGXSkzoIgYzLayUmqoPZnz5Nuy0sDH75JfNj\naDRqq1vqgfohIXD+vBpsFC2qPhp6LmNLhBBCiJxToFokhBCZMxTEGBunHTz+IsqVg+nTk18rSnJA\nkTI9f254f0tLdQD58+fJ5VKmZ8+Sx/WYm6fd/9mzrNVTUQwHA9euwf79me9vbg5Nm0KPHvr5Fy6o\nY1yKFlWnNk6ZzMykFUQIIXLa9u3bWbduHVevXkWj0eDg4ECfPn1o3759flctS27fvs3p06fp0KED\nAF5eXlSsWJHp06cTGBjIhAkT+Pvvv9Pd38HBAT8/vyyvrVZQSSAhhEhDo0keE5EVFSrAxx+nv11R\n1G5az58bnijg7behc2c1oEgvPX2qBilFiqTd31ArhyHpBUJ//AHHjxveZmqqH1i4uUH9+vpl7t5V\n3zMLC+l+JYQQmdm0aROzZs1iwoQJ1KtXj/j4ePbt28eoUaOIjY2lS5cu+V3FTI0fPx4bGxtdIOHv\n74/JGzgY8M27YiFEntNokqewNaRSJcMD4FPTDr5PzcVFXWn+6dPk7lOpnz99qgY0hgKRmJj0zxkf\nD48eqQmgVq20Zdatg8uX1ecmJmrAYWGhTgpgaak+alO1ampdhRDiTbVp0yZ69OhB165ddXlVq1bl\n5s2bBATSUUIPAAAgAElEQVQEvBKBhJKqn3GJN/SLXQIJIcQrI70B+dWqqSkjiqK2bBjqGuXsDFZW\nakDx5Elyio5OG7gUK5Z2/5QD0hMS1FmwIiMN12PwYDXwSWnZMrV+lpb6qUQJ9bFYMWnlEEK8PoyM\njDh9+jTR0dF664KNGTOGp/81MRvq+pMy7/r16/j6+nLmzBk0Gg2urq6MHz8eW1tbAB48eMCMGTP4\n7bffUBSFxo0bM2HCBEqXLg3A5s2bWbVqFbdv36ZSpUp88sknugAmKCiIfv36MW/ePPz8/Hj06BEN\nGzZk8uTJlC1blrFjx3L8v2bsbdu2cenSJb2uTVrr169nyZIlxMTE0KJFCyZOnIiVlZXB9ySj+hRk\nEkgIId4IGo3h1ghQx000bZo2XztWJGVwUb582nIlS6otF9HRmQ88Tz11saKoA8UzmnnL2FgNKkqU\nUAflpxzYrygQEaEGHG9gq7oQAti5E376KWtlmzUDT0/9vHXr4Lffsrb/e++93FTxAP3792fkyJE0\na9aMRo0a0aBBA5o0aUKNGjXSvdFObfTo0Tg6OjJp0iSePXvGlClTGD9+PAEBASQkJPDJJ59QuHBh\nli9fTuHChZkyZQqfffYZ33//PRs2bMDf359Jkybh6OhIcHAw06ZNA9DdvCcmJjJ37lx8fX0pUaIE\nU6dOxdvbmx07duDj40NoaCjW1tb4+PgYrF9iYiJbt25l8eLFJCQk8OWXXzJu3DiWLVuWpmxW6lNQ\nyZ8dIYRIR8qxIiVLpl8u5SxS2ilzo6PVBQajotTnUVHq69R/I58/z3z63sREdcHAhw/Tdg97+lRd\noFCjUYOUt95Sz5EyafMsLKRlQwiR/9q1a4eNjQ3ffvstv//+O4cOHQLA0dERPz8/qmXWxAz8888/\nNG3alPLly2NiYsLs2bN58OABAMePH+fSpUvs37+fChUqAODr60tgYCCxsbEsXbqUTz/9lLZt2wJQ\nsWJFbt26xdKlS/Vu3MeNG0eTJk0A8PPzo3Xr1hw/fpxmzZphamqKubk51hlM2Th79mzs/puXftKk\nSXh5efHPP/9QKVVf3qzWpyCSQEIIIXKQmZkadGQUeKRkagqjR6uBRsoUGZn8XDuY3NCildqxG4qS\nXP7mTcPnKlQIvv5av3vX06dw+7ZaX0tLCTSEEHmjbt261K1bl8TERC5cuMDBgwdZt24dAwYMYO/e\nvZnuP3z4cGbNmsWGDRto1KgR77zzjm7g8+XLl7GystIFEQBvv/02o0ePJiIigrt37zJr1izmzJmj\n256QkEBiYiJxKX7Zadiwoe55xYoVsbKy4vLlyzRr1izT+llaWuqCCAAnJycArly5ohdIZKU+Zi+z\nyFYuk0BCCCHykYlJ5uM74uLUwCI6Ou0Yj9hYNQB4/NjwGiMpGVpL48YNWLgwuS5WVmrXKWtrdW2R\nUqWSnxuaulcIkf86dny57kaenmm7O+WW27dvs2zZMoYNG4a1tTXGxsbUrl2b2rVrU79+ffr3759m\nTTFQb6xT0k4Ve+jQIY4dO8aMGTNYvXo1O3bsyHD2JNP/mnW//PJLvUBBK+W+qY+TlJSEURYXJEpd\nTjs42zRVs/KL1KcgKti1E0IIgZkZlC6tptTs7MDPTx3kHRWljpeIiFBbKlI+RkQYbiV5+DD5eUIC\n3LunJkNq1IARI/TztDNeFS2avWsTQrxZChUqxJYtW6hUqRL9Uq3EWrx4cTQaDSVLlsTU1JQnT57o\ntv3zzz+6548ePWLRokUMGDCA7t270717d86ePUv37t25ePEidnZ2REREEB4eTvn/BrZdu3aN3r17\ns2XLFmxsbAgLC6N79+66Y27cuJGQkBCmTp2qyzt//jz1/5vv+8aNG0RGRlKjRg0ANJk030ZGRnL7\n9m3Kli0LwOnTp9FoNFStWlWvnIWFRZbrUxBJICGEEK8BE5PMu1QZmjq3UCF16t0HDzKeBhcMBwuH\nDqkDPYsUUQMdGxv10doaypRRX0tLhhBCy8rKiv79+zN37lyePHlCmzZtMDc35/Lly3z99dd06dKF\ncuXK4ezszObNm6lXrx6JiYnMmDFD18XH0tKSI0eOEBoayqhRoyhcuDCBgYEUL16cKlWqULRoURwd\nHRkzZgxjx47FxMSEqVOnYmdnh62tLUOGDGHmzJmUK1eOxo0b89dffzFz5ky8vb316jplyhSmTJmC\nqakpU6dOpVatWrpWg6JFixIWFqYXrKSk0WgYOXIkPj4+PH36lKlTp9KxY0eDZbNan4JIAgkhhHhD\nGGohd3VVE6jdpB48UNP9+8mP9++rLReGxhRqWy+ePlXHZhgan1GihBpUuLlBgwY5dTVCiFfVyJEj\nqVSpEps3b2bt2rXExsZSsWJFunTpQt++fQGYPHkykydPpnv37pQuXZrhw4dz9+5dQO02tGzZMmbO\nnImXlxdxcXHUqlWLVatW6aaTXbJkCdOnT8fLywszMzPc3NwYP348AL169SIuLo5Vq1Yxbdo0bGxs\nGDp0KAMHDtSrZ+fOnRkxYgRPnjzB3d0dHx8fXZel3r17M3r0aNq3b8/+/fvTXKO1tTWtW7fG29ub\nhIQE2rVrpzt/almtT0GkUVKvqPEaCAsLo2XLlhw4cEA3n7AQQojs065OnnrWqNWrITg485mnAHr0\ngJYt9fO2bFHHfpQtC+XKqalkSRn0LYTIP0FBQfTp04dff/2VMmXK5Hd18l1G99XSIiGEECJT2tXJ\nU/vkk+QZo+7dg7t3k8dZ3L2rpqQktayhv8fBwWrLR0qmpvqBRdmyYGurTmMrAYYQQhQcEkgIIYR4\nKRpN8oJ59vb62xIT1UDh7l2oXFl/W1yc/mBvrfh4+PdfNaU0enTaGa5iY9VxHkIIIfKeBBJCCCFy\njbGxOuDaxsbwtlGj4NYtdS0L7WN0tOFjpR6j+PSpun+pUmqLRYUKaqpYUdbEEEJkn6urq8EpaEVa\nEkgIIYTIF8bGagtG6laM6Gj9wCI8HJ49U2eGSik8XO1WpR0QHhycvM3CQg0otIFFxYqGB4sLIYTI\nPgkkhBBCFCgWFmpKHWCk9vChusCedgxGStHRcOGCmkBttZg+Xb9MUpLaaiEtF0IIkT0SSAghhHgl\nNWoE9eqprRZhYeqYitBQNcXG6petUCHt/r/+Cj//rK6jUbly8mPx4nlReyGEePVJICGEEOKVZWqa\n3HWpSRM1T1HUWaO0gcW//xpu3bh5U225OH9eTVolS8LbbycnW1vDa3AIIcSbTr4ahRBCvFY0muQB\n3hktgHfnjuH8hw/V9Mcf6mtTU3UNjObNc76uQgjxKpNAQgghxBtp7Fi15eLmTfjnH/Xx33/V6WdT\nio9X17BI7aef1NmhqlVTgxYZayGEeNNIICGEEOKNlLLlwtVVzUtMVMdbXL+enB48gCpV9PeNj4dd\nu9TyAMWKQdWqalBRtara1crIKG+vR4hXxdixY7lz5w5r167NUnlfX1+2bt2KkZERv/zyC6VKlcr2\nuRVFYceOHTRr1oySJUtm+ziOjo74+vrStWvXbB/jdSCBhBBCCPEfY2N10HWlSuDuruZFR6uBQko3\nbiQHEQBPnsCZM2oCdZG8t98GBwc1VakiLRZCZMfVq1f57rvvmDJlCm5ubi8VRACcPn2aMWPGcODA\ngRyq4ZtNfi8RQgghMmBhkTbP2ho++ADq1IGiRdNuj42FkBDYvh38/dUB4EKIFxcVFQVA06ZNsbW1\nfenjKfKfMUdJICGEEEK8oLfegjZtYOhQmDsXJk+G3r3VLlJWVvplq1VL283p9Gn45hs4cEBdeE/u\nbcSbysPDg9WrVzN48GDq1KlD06ZNWbRoEQCBgYF89NFHALRq1YqxY8cCcPnyZfr370+dOnVo3rw5\nEydO5PHjx7pjxsfHM3/+fFq0aIGzszMffvghZ86cISwsjN69ewPQsmVL/P39s3S8yMhIPv/8c+rV\nq4ebmxvbtm3Lk/fmVSBdm4QQQoiXoNFA2bJq0s7sFBEBly/DpUtq16bUzp2Ds2fVBFCiBNSoAY6O\n6qOhVhAhXlcLFixg/Pjx+Pj4sGfPHubMmUOjRo1o3749lpaWDB06lB9++IEqVapw9+5dvLy86Nq1\nKz4+Pjx+/Bg/Pz8+/fRTAgICAHVMxYEDB5g8eTLVqlVj7dq1eHt7s2fPHhYvXqw7np2dXZaON3z4\ncCIiIli5ciXGxsZMmTKFxJR9G99gEkgIIYQQOczKSl0wr1Ejw9svXdJ/HRkJx4+rCdQF9LSBRdWq\n6hS0Qhi0bx/s3Jl2Fca8UKgQdOwIrVu/1GHc3d3p2bMnAAMGDGD58uWcOXOG+vXrY2lpCYCVlRUW\nFhasXLkSW1tbxowZo9t//vz5NG/enODgYKpVq8bWrVuZOnUqrVq1AsDHxwdzc3MeP36sd7yiRYuy\nfPnyDI9XvHhxTpw4wfr163FxcQFg1qxZdOjQ4aWu+XUhgYQQQgiRhxQFhg9Xg4mQELh4EZ4+1S+j\nXaF7717w9s54PQzxhtu3L3+CCFDPu2/fSwcSlStX1nttYWFBfOp5mP8TEhJCSEiI7qY+pWvXrmFi\nYkJ8fDy1a9fW5ZuYmOgChYiIiBc6XtH/BkHVrFlTl1+1alVd/ptOAgkhhBAiD6WcdrZ5c0hKUtex\nCAmBv/+Ga9fUPG3ZGjX0909Kgh9/VPOrVlVnmhJvsNat87dF4iWDCAAzM7M0eekNijY1NaVp06ZM\nmDAhzTYrKyvCw8Nf6NyZHe/33383WB9TaSYEJJAQQggh8pWRkTo9bJUq0L49PH+ujq/4+294/Djt\n1LM3b8Lu3WoyN1e7Pzk5Qa1aULx4vlyCyE+tW+fIzfyromrVquzcuZNy5crpbuZDQ0Px9fXl888/\np2LFipiYmHD+/HmqVq0KQFJSEu3ateOzzz6jTJkyL3S86tWrAxAcHEzTpk0BCAsLIzIyMq8uuUCT\nQEIIIYQoQMzNoXZtNRly7lzy8+fP1RmgTp9WWy/efludktbZWW3xEOJ14+npyfr16xk7diwDBw4k\nLi6OqVOn8vjxYypXroyZmRkfffQR8+fP56233qJSpUqsXbuWqKgoXF1defDgAaB2abK0tMzS8Vq2\nbMmUKVPw9fXFwsICX19fjGTFSUACCSGEEOKVUrOmOqbi3Dl4+DA5X1HUblHXrkFgIJQpAy1bJs8k\nJcTrwNramjVr1jBnzhx69OiBubk5rq6uLFiwQNdF6osvvsDY2Jjx48cTExNDrVq1WLVqFaVKlaJE\niRK8++67jBw5kl69euHj45Pp8ebMmcOMGTMYNmwYRkZGDBgwgNDQ0Px8GwoMjfIarswRFhZGy5Yt\nOXDgQI4sXiKEEEIUNIoCd+4kTyV79Wra9Sg6d4Z27fKnfkKI10NG99XSIiGEEEK8glKuX9GmDTx5\nogYUf/0FFy5AfLzaxSm1hQvB0hLq1YPq1cFE7gSEENkkXx9CCCHEa6BYMWjSRE1xcXDlitq9KaUH\nD9QgA+DYMShSRB1TUbeuOmhbggohxIuQrwwhhBDiNWNmpo6lSC3lQG1Qx1poF8IzN1eDivr1JagQ\nQmSNfE0IIYQQb4h33oHKldVZnv78U3+w9vPnEBSkpqJFoVkz6NIlv2oqhHgVSCAhhBBCvCE0muQ1\nK7p2hX//VQOKP/9Uuz1pxcTAs2f5V08hxKtBAgkhhBDiDaTRQKVKaurSBUJD4dQp+OMPiIiAhg3T\n7vPDD+q4ioYNwdo67+sshChYJJAQQggh3nAaDVSsqKYuXeD6dXVxu5SePoXDhyEhAX78EapVg8aN\n1dmfzM3zpdpCiHwmgYQQQgghdDQasLNLmx8crAYRWleuqGnjRnXWp8aN1elkNZq8q6sQIn9JICGE\nEEKITNWvr84GFRSkTiGblKTmx8cnD9J+6y01oGjcGEqXzt/6CiFynwQSQgghhMhUoULQoIGaHj+G\nkyfVtSjCw5PLPHoEu3ap4y0+/TT/6iqEyBtG+V0BIYQQQrxaiheHVq3gyy9hwgTw8FCnjNVq0iTt\nPk+e5F39RMHl4eFBq1ateGZgWjAvLy98fHxy7dxhYWE4ODhw6tSpLO9z4cIF2rdvj5OTE7NmzXrp\nOty+fZuff/5Z9zq3rzm3SYuEEEIIIbJFo4EKFaBnT/jgA3XBuz//hNq19cslJcG0aVCihLo+RYMG\naguHeDOFhoYyb968V+IGevny5ZiYmLBr1y4sLCxe+njjx4/HxsaGDh06AODv74/JK7z646tbcyGE\nEEIUGCYm4OKiptTOnYPISDXdvAmbN4OrK7i5qdPPijdLhQoVWLduHe3ataNu3br5XZ0MPX78mBo1\nalCxYsUcOZ6iKHqvS5QokSPHzS/StUkIIYQQuerePTXQ0IqNhSNH4KuvYMYMOHFCHbQt3gxdunTB\nxcUFHx8fYmNjDZa5desWI0eOpFGjRri4uDB06FBCQ0N12z08PFi9ejWDBw+mTp06NG3alEWLFr1Q\nPQIDA2nbti2bNm3Cw8MDJycnPvroI65du6Y7x7Fjx9i+fTsODg6EhYWRlJTE0qVLcXd3x9nZmQ8+\n+IBff/1V77hnz57Fy8sLZ2dn3Nzc8PPzIyEhgbFjx3L8+HG2bduGg4MDkLZr06lTp/D09MTFxYUm\nTZrg6+ur6wZmqGtW6rwzZ87w4Ycf4uzsjKurK1988QWRkZEv9L68CAkkhBBCCJGrWreGWbOge3co\nU0Z/282bsGYNjB0L27eri+GJF7Pz0k4G7RzEoJ2D2HlpZ5rtP1z4Qbd937V9abavO7tOt/23f35L\ns33l6ZW67SfDT750fTUaDdOnTyc8PBx/f/802588eUKvXr2Iiopi1apVfPfdd0RHR+Pp6Ul0dLSu\n3IIFC3B3d+enn36ib9+++Pv7v9D4B1BvxHfu3MnChQvZvHkzUVFRTJs2DYAtW7ZQv3592rVrx9Gj\nRylbtixz584lMDCQqVOnsmPHDrp06cKnn35KUFAQoHbb6tOnD5UqVWLLli3Mnj2bH3/8EX9/f3x8\nfPSOl9pff/1F3759qVWrFlu2bGHGjBkcOHCAkSNHZulaEhMTGTJkCI0bN+ann35i+fLlnDt3LkfG\ndqRHujYJIYQQItcVK6YO0G7ZEq5dU1sk/vwzeW2KJ09g924oXBjefTd/6ypyX5UqVfjss8+YN28e\nbdu2xcnJSbdtx44dPH78mHnz5um6/ixYsAAPDw9+/PFHevfuDYC7uzs9e/YEYMCAASxfvpwzZ85Q\nv379LNcjPj6eKVOmYPff4ik9evRg/vz5AFhZWWFqaoq5uTnW1tbExMQQEBCAv78/zZo1A6BSpUpc\nvHiR5cuX4+rqyubNmylVqhRTpkzB2NiYqlWrMm3aNG7duoWFhYXe8VJbvXo1Tk5OjBkzBgA7Ozsm\nT57MwIEDuXLlCoULF87wWqKjo3n06BGlSpWifPny2Nra8s033xCfi819EkgIIYQQIs9oNFC1qpq6\nd4fff4dff1VbIkxMoGnTtPvEx4Opad7XVeSufv368csvvzBu3DgCAwN1+VeuXKFKlSp64wesrKyw\ns7Pj8uXLurzKlSvrHc/CwkJ30+ySarBOcHCwwTpoNBoqpRiok/IYqV27do24uDiGDx+OkVFyp574\n+HhKlSoFwOXLl6lZsybGxsa67e7u7gaPl9qVK1do0aKFXp42KLpy5Qq1U89ikEqJEiXo168fU6dO\nxd/fn6ZNm+Lu7s67uRiZSyAhhBBCiHxhYQFt20KbNnD2LDx4oLZcpHT7Nvj5qQOz3d3Byip/6lqQ\ndXToSEeHjulu716zO91rdk93u2dtTzxre6a73buuN951vV+qjoYYGxvz1Vdf0aVLF5YuXarLNzc3\nN1g+KSkJ0xQRpZmZWZoy2sHM27dvz1IdjIyM0syalHpAdOrz+fv76wUf2uMALzUDk6Hr1tYlveMm\nJibqvR4zZgy9e/fm119/5ejRo4wbN47NmzcTEBCQ7XplRMZICCGEECJfGRmBs7Pa9Sm1Awfg6VPY\nuxd8fGDlSnVchXg9VKtWjSFDhrBs2TL+/fdfQO3Sc+PGDb1BwhEREdy4cUPXBSkzlSpV0ks5oVKl\nSpiamnL37l29Y+/cuVPXomJnZ0dISAhJ2qXfgU2bNtG1a1dAbQFJj52dXZqWkz///FO3TRtExcTE\n6LbfTPGf4d9//2XSpElYW1vTu3dvlixZwqxZswgKCuLhw4cvd/HpkEBCCCGEEAVSUhLcuKH/+o8/\n1JmeZs+G4GA1T7zaBg4ciJ2dHXfu3AGgU6dOWFlZMWrUKC5cuMCFCxcYNWoUxYsX162/kB8KFy5M\n3759mTt3Lrt27SI0NJSAgAC++eYbKlSoAEDv3r25f/8+06ZN49q1a/z+++/4+/vruiwVLVqUsLAw\nwlMuCf+fAQMG6AZHX79+nd9++40pU6bQokUL7OzsKF26NOXLl2ft2rVcv36dU6dO8fXXX+uCk7fe\neovdu3czefJkrl27xrVr19i9ezcVK1bkrbfeypX3RAIJIYQQQhRIRkbqytnDhsF/s2XqXL0KS5eq\nq2sfOqROKSteTaampsyYMUPXfadQoUKsWrUKMzMzPD09+fjjj7GwsGD9+vUUL148X+s6YsQIevXq\nhZ+fH+3atWPjxo1MnTpV1+JgY2PDihUrCAkJoXPnzowfP55u3brx6aefAmqgcePGDdq3b8/9+/f1\njm1vb8/SpUs5efIknTp1Yty4cbRu3ZoFCxYAamuGn58fUVFRdOrUiUmTJvH555/rulVZWFiwYsUK\nQkND6dGjB926dSMuLo7ly5frjenISRolvY5gr7CwsDBatmzJgQMHsLW1ze/qCCGEECIHhIbC/v1w\n8mTalogiRdSgQsZQCJGzMrqvlhYJIYQQQrwSKlSAfv3Urk1t26rBg5aNDeRS7w0hRDpk1iYhhBBC\nvFJKlIAuXaB9ezh+HPbtg3bt1KllU7pyRZ0ZKvUieEKInCGBhBBCCCFeSYUKwTvvQPPmaYOIpCT4\n7ju4d0+dEaptW0i17IAQ4iVJICGEEEKIV5qhcaRnzsDdu+rz4GA1Va8O770H1arlbf2EeF1JICGE\nEEKI106pUlC7trrQndbFi2qyt4eOHdVHIUT2SSAhhBBCiNdOxYrqtLHh4fDLL+r6E9qZni5fhrlz\n1ZYJbUCRwTphQoh0yKxNQgghhHhtlS8Pn3wCU6dC06b63aCuXIF58+DgwfyrnxCvMgkkhBBCCPHa\ns7aGPn1g2jRwc0sOKExNoX79/K2bEK8q6dokhBBCiDdGqVLg5aVOHbt7NxQuDJaW+mWio9XZnuzs\n8qeOQrwqJJAQQgghxBunZEnw9ARFSbtt9244cACcnKBzZ3UhPJEzPDw8CA8P1702NTXFxsaGNm3a\nMGzYMIoVK5Zr5+7bty9lypRh5syZuXaON40EEkIIIYR4Y6UeZB0RAb/+qj4/f15N9etDp07q6tni\n5Q0YMICPP/4YgGfPnnH+/HlmzpxJcHAwAQEBmJmZ5XMNRVZJICGEEEII8R+NRg0cgoKSWytOnYI/\n/4TGjdV1KEqWzN86vuqKFCmCtbW17nXFihWpVKkSH3zwAVu3bqVXr175WDvxImSwtRBCCCHEf956\nC/r1g4kTwcUlOV9R4NgxNf/779VxFCLn1KxZk3r16rFr1y4ALl++TP/+/alTpw7Nmzdn4sSJPH78\nWFc+LCyMzz77DFdXV2rWrImHhwcrV67UbU9KSmLhwoW4ubnh4uLCjBkzSExMzPPret1JICGEEEII\nkUq5cjB4MIwbBzVqJOcnJMChQ+DjA0eO5F/9Xkf29vZcvnyZu3fv4uXlhb29Pdu2bWPhwoVcvXqV\nTz/9VFd2yJAhxMXFERAQwK5du3j//feZPXs2ISEhACxZsoSAgAAmTJjAli1biIqK4uTJk/l1aa8t\n6dokhBBCCJGOypVhxAi4dAm2b4fr19X82FgoCF359+3bx86dO4mNjc3zcxcqVIiOHTvSunXrHDle\n8eLFefLkCRs2bMDW1pYxY8bots2fP5/mzZsTHBxMjRo16NKlCx06dMDmv4Erw4YNY+nSpVy6dInq\n1auzYcMG+vXrR9u2bQGYOnUqx44dy5F6imQSSAghhBBCZMLBAf73Pzh3DgIDwcQEXF3TllOUvF0l\ne9++ffkSRADExsayb9++HAskYmJisLCwICQkhJCQEFxS9i37z7Vr13BxccHT05Ndu3Zx9uxZ/vnn\nH0JCQkhKSiIpKYlHjx7x4MEDnJycdPuZmZnh6OiYI/UUySSQEEIIIYTIAo0GatdWp4WNikobMISE\nwJ498MEHULFi3tSpdevW+doikVNBBMCFCxdwdHTE1NSUpk2bMmHChDRlrKysiImJoXfv3iQmJvLu\nu+/i6upKnTp1cHd31yurpJrbV2aDynl5HkgkJiby9ddfs23bNmJiYmjWrBkTJ06kVKlSBssfP36c\nuXPncvXqVUqVKkXPnj3x9vZGk5fhvhBCCCHEf4yM1EHZKSkKbN0KoaEwfbraWtG5M1hZ5W5dWrdu\nnaM38/nl4sWLBAcHM2PGDG7evMnOnTspV64cpqamAISGhuLr68vnn3/OjRs3CAkJISgoiBIlSgBw\n/fp1kpKSUBQFKysrbGxsCA4O5p133gHUwdd///039WUZ8xyV54Ot/f392bZtG7NmzWLdunXcuXOH\n//u//zNY9p9//mHw4MG888477Ny5k9GjR/PNN9+wYcOGPK61EEIIIUT6bt6EFOusERSkzvC0c6c6\nnkIke/r0Kffv3+f+/fuEhoby888/M2TIEBo0aECnTp3w9PTk8ePHjB07lkuXLnHu3DlGjRrFzZs3\nqVy5MmXLlgVg586dhIeHc/z4cUaMGAFAXFwcAJ988gkBAQFs376d69evM23aNG7dupVv1/y60iip\n231yUVxcHI0aNWLChAl07doVUKfvatmyJRs3bqRu3bp65detW4e/vz9BQUG6vOHDhxMbG8vSpUvT\nPZYScdAAACAASURBVI/2mAcOHMDW1jZ3LkYIIYQQIoU7d9TxE3/9pZ9fogR07QoNG+bt+ImCKPXK\n1kWLFqV8+fK0b9+evn37UrhwYQDOnTvHnDlzOHPmDObm5ri6ujJ27FjKlSsHwKpVq/j222+Jioqi\nXLlyfPDBBxw5cgRbW1u++uorANasWcO3337Lo0ePePfdd3n+/DlFihSRla1fUEb31XnatenixYvE\nxMTQsGFDXZ6trS3ly5fn1KlTaQIJKysrIiMj+emnn2jfvj1Xr17l1KlTslCJEEIIIQqcMmVg6FC4\ncgU2b4Z//1XzIyNh9Wo4fBh69lRngnpTHTx4MEvlatWqxbfffpvu9v79+9O/f3+9PG9vb73X/fr1\no1+/fi9eSZFledq16c6dOwC6qbq0SpcurduWUps2bejWrRujR4/GycmJjh070qBBA4YOHZon9RVC\nCCGEeFHVqsH48dCnDxQvnpx//TrMmKGuQyHE6yBPA4lnz55hZGSkGzijZWZmZnC2gcePHxMeHo63\ntzdbtmxh1qxZHDt2jEWLFuVVlYUQQgghXphGA02bwrRp8O67YGys5hsbQ82a+Vs3IXJKnnZtMjc3\nJykpiYSEBExMkk8dFxen6xOX0pw5czA2Nmb06NEAODo6kpCQwOTJk/Hy8uKt1FMmCCGEEEIUIObm\n6vgINzfYsgVsbKB0af0yeb32hBA5JU9bJLSj7O/fv6+Xf+/evTTdnQD++usvvcVEAOrUqUN8fDy3\nb9/OvYoKIYQQQuSg0qXV8RNduqTdtns3LF4MDx/mfb2EeBl5GkhUr16dokWLcvLkSV1eWFgY4eHh\nNGjQIE35MmXKcOnSJb28K1euYGRkRMW8WulFCCGEECKHGKW683r4EHbtUmd6mjRJfR4fnz91E+JF\n5WkgYWZmxkcffYSfnx9HjhzhwoULjBo1ioYNG+Ls7ExcXBz379/XzQHcp08fDh8+zOLFiwkNDeXQ\noUPMmDGDjz76iGLFiuVl1YUQQgghctz588mBQ3w87NgBU6fChQv5Wy8hsiLPV7YeMWIECQkJfPHF\nFyQkJOhWtgYIDg6mT58+BAQE4OrqSosWLVi0aBGLFy9mxYoVupWtBw0alNfVFkIIIYTIcS1aQIUK\nsGGDuio2wL17sHAhuLhA9+5QsmT+1lGI9OTpgnR5RRakE0IIIcSrJCkJjhyB7dvh2bPkfFNT6NAB\nWrcGkzz/+VeIjO+r87RrkxBCCCGESMvICN55R50utkmT5Pz4eDW4mD4dHjzIt+oJYZAEEkIIIYQQ\nBYSFBXz8Mfzvf5Dyx9/ERLC0zL96CWGIBBJCCCGEEAWMnR34+KhjJAoVAk9PtZuTEAWJ9LYTQggh\nhCiAjIygVSto3BiKFtXfpijqVLGNGslgbJF/pEVCCCGEEKIASx1EAJw6BT/+CJMnw/796mBtIfKa\nBBJCCCGEEK+Q+Hj44Qf1eVyc+vyrr5KnjxUir0ggIYQQQgjxCjE1hcGDoVy55LzQUDWY2LEDEhLy\nr27izSKBhBBCCCHEK+btt2HCBOjcOXkQdlKSOm7C1xeuX8/f+ok3gwQSQgghhBCvIGNjaNcOvvwS\nqlZNzr99G/z81C5PcXH5Vz/x+pNAQgghhBDiFWZjA6NHQ69e6lSxoM7qtH+/upidELlFAgkhhBBC\n/D979x1edXn/f/x1svcgA0ISkA0GkLBFwBHAUUcdVEVrnYjgahHR/qzfYrUKWrGiFRzfb0W9RKWi\nVVG0CGKtimHIBgEZCZABZK+TnPP7427G4SRwgLOSPB/X9bnO59z3Ge9Q2ubFvdDKWSzmZOz/+R+p\nXz/TFhVlRiwAT+EcCQAAgDYiIUG67z7pP/+RIiLMSdlN2e0mdADuQJAAAABoQywW6Zxzmu9bvNjs\n6nTVVY3ToIBTRZAAAABoB3bsMOsmJGnzZunmmx0XaQMnizUSAAAA7cDatY33BQXSM89I//iHOeAO\nOBUECQAAgHbg2mulW26RwsPNc7td+vxz6YknpL17fVsbWieCBAAAQDtgsUgjR5qdnc48s7H94EHp\nqaekjz7iVGycHIIEAABAOxIfL917r3TDDY0Lrm026eOPTaA4cMC39aH1IEgAAAC0MxaLNHas9Oij\nUq9eje3790tvvWWmPQEnQpAAAABopxITpenTpYkTpaAgKSREuukmzpqAa9j+FQAAoB2zWKRx46SM\nDLNeomNHx34OsUNLCBIAAABQSoq5jvXll1JurvSrX0lhYd6vC/6LIAEAAIBm5eZK779vdnPavl26\n7Tape3dfVwV/wRoJAAAANGvNmsYtYQsLpaefNtvE2my+rQv+gSABAACAZl1+uRmFqJ/SVL9N7NNP\nm2CB9o0gAQAAgBYNH+68Tezu3dKf/iRlZ/uuLvgeQQIAAADHlZAg/e530pVXSgH//e2xqkp65RVp\n4UKputq39cE3CBIAAAA4oYAA6aKLpAcfNOdP1PvmG2n+fN/VBd8hSAAAAMBl3bpJjzwiDRtmnlss\n0qWX+rYm+AbbvwIAAOCkhIebRdgZGVJpqdSjh68rgi8QJAAAAHDSLBbp7LOb79u0SQoOlvr08W5N\n8C6CBAAAANzm6FHpf/9XqqgwU54uuaRxgTbaFv5jBQAAgNu8+65UXi7Z7ebwur/+VSop8XVV8ASC\nBAAAANzmuuuk3r0bn2/bZs6c2LbNdzXBMwgSAAAAcJvYWOm3vzXTmiwW01ZSIj33nBmhsNl8Wx/c\nhyABAAAAtwoIkC67TLrvPik62rTZ7dLHH5tAwVSntoEgAQAAAI/o10/6wx8cpzpt385Up7aCIAEA\nAACPaWmqU2mpb+vC6WP7VwAAAHhU/VSnnj2l116TMjMbT8ZG60WQAAAAgFf06yc9+qg5GftYdXVS\nYKD3a8KpY2oTAAAAvCYmxpx63VRVlfT449KKFWZRNloHggQAAAB8xm6XXn9dOnBAWrRIevVVqbra\n11XBFS5NbaqurtaCBQu0cuVKVVRUyN5MVFy2bJnbiwMAAEDbVlkpHT7c+Dw7W8rJkaZMkVJSfFcX\nTsylIPHEE0/ovffe0/Dhw9WrVy8FBDCQAQAAgNMXESHNmCG9+660apVpO3RIevJJ6de/ZlG2P3Mp\nSCxbtky//e1vNXnyZE/XAwAAgHYmOFi64QapRw/pzTclq9VMb3r1VWnnTmniRCmILYL8jktDCzU1\nNRo4cKCnawEAAEA7NnKk9PDDUnJyY9vKldJf/iIVFfmsLLTApSAxevRoraofawIAAAA8JDVV+n//\nz5w1UW/3bumJJ6SCAt/VBWcuDRJdfvnleuSRR3T06FENHjxYYWFhTq+57LLL3F4cAAAA2p+wMOnO\nO6UvvpDef9/s7JSWJiUk+LoyNOVSkLjnnnskSUuWLNGSJUuc+i0WC0ECAAAAbmOxSBMmSF26SEuW\nSLffbk7Ihv9wKUgsX77c03UAAAAATvr2lR56yASLpmw2qbhYio/3TV1wMUikpqY23FdUVKi8vFxx\ncXEKPvZYQgAAAMDNjg0RkvTPf0pffSXddpvUv7/3a8JJnGz9/fffa+LEiRo6dKjGjh2rgQMH6tpr\nr9W3337ryfoAAAAAB+vWSZ9+KlVUSC+8IC1datZRwLtcChI//PCDbrvtNlVVVenee+/VY489prvv\nvlsVFRW64447lJ2d7ek6AQAAAElSXJy5JBMgPvxQmj9fqqrybV3tjcVuP3F+u/HGGxUeHq6XX35Z\nliZjS3a7XZMnT1ZNTY1ef/11jxZ6MnJycpSVlaXly5crLS3N1+UAAADAzUpKpFdekXbsaGxLSZGm\nTnU8hwKn53i/V7s0IrFp0ybdcMMNDiFCMrs13XDDDdq4caP7qgUAAABOICZGuv9+KSurse3gQenP\nf5Y2bfJdXe2JS0EiJiZGFRUVzfaVl5crMDDQrUUBAAAAJxIYKP3qV9Itt0hB/91CqLLSrJv47DPW\nTXiaS0Fi5MiRmjdvnvLy8hza8/LyNG/ePJ199tkeKQ4AAAA4kZEjpQcfbNwK1m43Z080c/wZ3Mil\n7V+nT5+uq6++WhdeeKGGDBmixMREFRYWas2aNYqKitKMGTM8XScAAADQoq5dpd//XlqwQNq505yO\nPWqUr6tq21wakejYsaOWLFmi66+/XqWlpVq/fr1KSko0adIkLVmyROnp6Z6uEwAAADiumBjpt7+V\nzjvPnC/RqZOvK2rbXBqRkKSkpCTNnDnTk7UAAAAApyUoSLr++ub78vOlpKTmD7jDyWsxSMyfP19X\nXXWVkpOTNX/+/ON+iMVi0Z133un24gAAAAB32LdPmjNHGj5cmjSpcXE2Tl2Lf4TPPfecRo0apeTk\nZD333HPH/RCCBAAAAPxVaan0t79JVqv0zTfSoUPSlClmKhROXYtBYtu2bc3eAwAAAK1JWJjUt6/0\n7bfm+a5d5ryJqVOlLl18W1tr5tJi6xdeeMFp69d6ubm5evzxx91aFAAAAOAuwcHSb34jTZzYuD7i\n6FEz1Sk727e1tWYuBYkXX3yxxSCxfv16vfPOO24tCgAAAHAni0UaN0665x4pPNy0Wa3SK69IH37I\n4XWnosWpTddff73Wr18vSbLb7br22mtb/JABAwa4vzIAAADAzTIypIcfll58Uar/d/KlS6XcXOnW\nW800KLimxSDx+OOP6/PPP5fdbtfzzz+vX/3qV+p0zGa8gYGBio6O1rhx4zxeKAAAAOAOHTtKDz0k\nvfqqtHmzafvxR+npp03IYEcn17T4x9SjRw/dddddkiSbzaaJEyeqY8eOXisMAAAA8JSICOnuu6X3\n35e++MK0DR9OiDgZLv1R3X333ZKko0ePymq1yv7fSWR2u10VFRVas2aNJk6c6LkqAQAAADcLCJCu\nuUZKS5N27JAmTPB1Ra2LS0Fi+/bteuCBB7Rz585m+y0WC0ECAAAArdLIkeY6VmWlFBpqAgecuRQk\n5syZo6KiIs2cOVMrVqxQSEiIzj//fK1atUqrVq3SwoULPV0nAAAA4DW1tdILL5ggcccdjTs9oZFL\n+Wr9+vW67777dPPNN+uSSy5RZWWlJk2apPnz52vcuHF64403XP7Curo6/eUvf9Ho0aOVmZmpe++9\nV4WFhS2+/tChQ7r33nuVmZmps88+W3/84x9VWVnp8vcBAAAAJ8Nul956S9q50yzGnj1bKijwdVX+\nx6UgUVNTozPOOEOSdMYZZzicdH3VVVc1bBPrinnz5mnJkiWaPXu23nzzTR06dEj33HNPi997yy23\nqKioSG+//bbmzp2rlStX6umnn3b5+wAAAICTFRfXeH/woPTkk2YdBRq5FCQ6d+6snJwcSSZIlJWV\nKTc3V5IUGhqq4uJil76spqZGCxcu1O9+9zudc845ysjI0LPPPqu1a9dq7dq1Tq//6KOPVFBQoHnz\n5qlv374aOXKk7rnnHm3YsMHVnw8AAAA4KRaLdMUV0m23Ne7iVF4uzZ0rff21b2vzJy4FiXHjxumZ\nZ57RF198oY4dO6p79+7661//ql27dunvf/+70tPTXfqybdu2qby8XMOHD29oS0tLU2pqqrKbOZ/8\n3//+t0aNGqXY2NiGtquvvlqLFy926fsAAACAUzV8uPTAA1JMjHlus0lvvim98465b+9cChJ33323\nBg0apHfffVeS9PDDD2vZsmW69NJL9c0337Q4NelYhw4dkiSn8yiSk5Mb+pras2ePUlNT9dxzz+mC\nCy5QVlaWZs+ererqape+DwAAADgd3bpJv/+91KVLY9uXX5qTsauqfFeXP3Bp16bw8HC98MILqqmp\nkSSNGTNGH330kTZv3qyMjAx1afonexyVlZUKCAhQcHCwQ3tISEiz4aCsrEyLFy/W2LFj9de//lV5\neXn605/+pMOHD2vOnDkufScAAABwOuLjzcjE3/8u1c/G37TJLMK+7z7H9RTtyUmd3RcSEtJw36VL\nF5cDRL2wsDDZbDbV1tYqqMmxgTU1NQpvZk+toKAgxcbGas6cOQoMDNSAAQNUW1ur++67Tw8//LDi\n4+NP6vsBAACAUxEaKk2eLP3zn9LSpaYtOLh9bwvbYpCYMGGCLBaLyx+0bNmyE74mJSVFklRQUNBw\nL0n5+flO050kMwUqNDRUgYGBDW09e/aUJOXm5hIkAAAA4DX1i7A7dTKBYupUEzDaqxaDxODBg08q\nSLiib9++ioyM1OrVq3XFFVdIknJycpSbm6thw4Y5vX7o0KF69913ZbVaG6ZD7dixQ4GBgUpNTXVr\nbQAAAIArRoyQhgxp3NGpKbvdBI72oMUg8dRTT7n9y0JCQjRp0iTNmTNH8fHxSkhI0KxZszR8+HAN\nGjRINTU1Ki4uVmxsrEJCQnTdddfpjTfe0MyZMzVt2jTl5eXp6aef1hVXXMFoBAAAAHymuRCxcqW0\nfbt0yy1SkxUBbZZLaySaO+PhWIMHD3bpC++//37V1tZqxowZqq2t1ZgxY/Too49KktatW6ebbrpJ\nCxcu1IgRI5SYmKi33npLTz75pK666ipFRETo8ssv1/Tp0136LgAAAMAbtmxp3Bb28GFp2jSpyQkG\nbZLFbrfbT/Sivn37nnCa09atW91W1OnKyclRVlaWli9frrS0NF+XAwAAgDbugw+kTz9tfB4XJ919\nt+TicWt+63i/V7s0IrFw4UKntoqKCmVnZ+vDDz/UvHnz3FMpAAAA0Ar98pdmm9hFi8yoRFGR9PTT\n5nTss87ydXWe4VKQaHoSdVPnnXeeIiIi9NJLL2nBggVuLQwAAABoTc49V0pOlhYskCorpepq6aWX\npGuukbKy2t4ibJdOtj6eoUOHavXq1e6oBQAAAGjV+vWTZs6UEhPNc7tdeu896a23pLo639bmbqcd\nJFasWKHIyEh31AIAAAC0eikp0kMPST16NLZ9/bU0b55UUeG7utzNpalNt956q1NbXV2dDh06pH37\n9umOO+5we2EAAABAaxUdLf32t9LChVL95J0dO6RDh6Tu3X1bm7u4FCSsVqtTm8ViUY8ePXT77bfr\n6quvdnthAAAAQGsWHCzdeqvUsaP00UfSTTe1nRAhuRgk3njjDU/XAQAAALQ5Fot06aVSZqaUmurr\natzLpSBR76uvvtKaNWtUXFysxMREjRw5UsOGDfNUbQAAAECb0FyIKCyU1qyRJkxonTs6uRQkjh49\nqjvuuEObNm1SSEiIOnTooMOHD+tvf/ubzjnnHL344osKDQ31dK0AAABAm1BRIb3wgnTwoJSTY6Y9\nBQf7uqqT49KuTY8//rhycnI0f/58bdiwQStXrtTGjRv1wgsvaNOmTXrmmWc8XScAAADQZnzxhQkR\nklmMPXeuVFrq25pOlktBYtWqVZo5c6bOO+88h/asrCxNnz5dn3zyiSdqAwAAANqkSy+Vxo5tfL5r\nl/TUU2ZXp9bCpSARGBio6OjoZvuSkpKa3dUJAAAAQPMCA6VJk6SJExvXRxQWSrNnS9u2+bY2V7kU\nJCZNmqS5c+cqLy/Pob2srEwvv/yybrzxRo8UBwAAALRVFos0bpw0ZYoUEmLaKiqkv/5V+s9/fFub\nK1xabJ2fn6/8/HyNHz9eQ4YMUXJysoqKirR27VqVl5crJCSk4dA6i8Wi1157zaNFAwAAAG3FoEHS\nAw9IL74oFRdLNpv0+utSXp70y1/6745OLgWJvXv3qm/fvpKk2tpaHThwQJIa2urq6lRXV+ehEgEA\nAIC2rWtX6eGHzU5OOTmm7bPPpORk6ZxzfFtbSziQDgAAAPAD8fHSjBnSq69KGzdKGRnS2Wf7uqqW\nndSBdDt37tTq1atVVlam+Ph4DRkyRN3b0jnfAAAAgA+FhUlTp5rtYc89VwpwaUWzb7gUJGw2mx59\n9FH94x//kN1ub2i3WCy64oor9OSTT8rir5O3AAAAgFYkIEC68ELndrvdTHtKT/d+Tc1xKeO8/PLL\n+uCDDzR9+nR99dVX2rx5s1auXKnf/e53+uSTT/Tqq696uk4AAACgXfvwQ+nPf5a+/trXlRgujUgs\nXrxYU6ZM0e23397Q1qlTJ91xxx2qrq7W4sWLdccdd3isSAAAAKA9+/576dNPzf2bb0r5+dJVV/l2\nRyeXRiQKCgo0ZMiQZvsGDx6sg/XnewMAAABwuz59pC5dGp9//rm0YIFUU+O7mlwKEunp6Vq3bl2z\nfevWrVNSUpJbiwIAAADQKC7OnDVx1lmNbevWSX/5i1RS4puaXAoS11xzjebPn6+///3vys/Pl81m\nU35+vv7v//5PCxYs0FVXXeXpOgEAAIB2LTTUnII9blxj25490pNPSrm53q/HpTUSv/71r7V161Y9\n9dRTmj17dkO73W7X5ZdfrrvuustjBQIAAAAwAgKkiRPNQXWLFplTsI8ckebMkSZPNmdPeItLQSIw\nMFCzZ8/W7bffruzsbBUXFysmJkbDhg1Tr169PF0jAAAAgCbOPVdKTJReflmqqjLXvHnSzTdLI0d6\np4aTOuIiJSVF6enp6tKli7p37650f9nEFgAAAGhnMjKkBx+UOnQwz8PCpK5dvff9Lh9I9/TTT+vN\nN99UbW1tw6F04eHhuuuuuzR58mSPFgkAAADAWWqq9PDD0vz50uWXSykp3vtul4LEvHnztHDhQt10\n00268MILlZCQoMLCQn322Wd6/vnnFRkZqRtuuMHTtQIAAAA4RkyMNGNG82dK2GxmXYUnuHwg3dSp\nUzVt2rSGtvT0dGVmZioyMlKvv/46QQIAAADwkeZCxN690muvSXfcIXliRYJL+aSsrEwDBw5stm/I\nkCHKz893a1EAAAAATt3Ro9KLL0p5edLTT0sbNrj/O1wKEuedd54WLVrUbN8nn3yisWPHurUoAAAA\nAKfu8OHGU6+rq6W//c39YcKlqU1Dhw7Vc889p8suu0y/+MUvlJSUpKKiIq1cuVJr1qzRzTffrPnz\n50uSLBaL7rzzTvdWCQAAAMBlPXtKM2dKL7wgFRZKXbpIffq49zss9votmI6jb9++rn+gxaKtW7ee\nVlGnKycnR1lZWVq+fLnS0tJ8WgsAAADgK6Wl0ttvS9deK8XGnvz7j/d7tUsjEtu2bTv5bwUAAADg\nU9HR5sRrT/DQZlAAAAAA2jKCBAAAAICTRpAAAAAAcNIIEgAAAABOWotB4rHHHtP+/fslSQcOHJDV\navVaUQAAAAD8W4tB4r333lNeXp4kKSsry+dbugIAAADwHy1u/5qUlKRnnnlGo0ePlt1u13vvvadV\nq1Y1+1qLxaJp06Z5rEgAAAAA/qXFIDFjxgw98cQTmj9/viwWi95///0WP4QgAQAAALQvLQaJiy++\nWBdffLEkc7L122+/rYEDB3qtMAAAAAD+y6VdmxYuXKgePXp4uhYAAAAArUSLIxJNDR8+XLt27dK8\nefO0evVqlZaWKj4+XkOHDtVdd92lXr16ebpOAAAAAH7EpSCxfft2XX/99QoPD1dWVpYSEhJUUFCg\nFStWaMWKFXrnnXfUu3dvT9cKAAAAwE+4FCSeeeYZde/eXQsXLlRERERDe0VFhW6++WbNnTtXL730\nkseKBAAAAOBfXFojkZ2drSlTpjiECEmKiIjQ7bffruzsbI8UBwAAAMA/uRQkwsPDW+yzWCyqq6tz\nW0EAAAAA/J9LQWLQoEF65ZVXVF1d7dBeVVWlV199VZmZmR4pDgAAAIB/cmmNxPTp03XNNdcoKytL\nF1xwgRITE1VYWKgvv/xS5eXleuuttzxdJwAAAAA/4lKQ6NGjhxYtWqQXX3xRy5cvV3FxsWJiYjRs\n2DBNmzaNHZsAAACAdsalICFJffr00fPPP+/JWgAAAAC0Ei6tkQAAAACApggSAAAAAE4aQQIAAADA\nSSNIAAAAADhpBAkAAAAAJ82lXZvsdrvef/99rVy5UhUVFbLb7Q79FotFr732mkcKBAAAAOB/XAoS\nzz77rF555RWlpaWpU6dOslgsnq4LAAAAgB9zKUgsWbJEt9xyi2bOnOnpegAAAAC0Ai6tkSgrK9P5\n55/v6VoAAAAAtBIuBYnMzEytXbvW07UAAAAAaCVcmto0ZcoUTZ8+XbW1tRo8eLDCwsKcXjN48GC3\nFwcAAADAP7kUJH7zm99Ikl544QVJclhsbbfbZbFYtHXrVg+UBwAAAMAfuRQkFi5c6Ok6AAAAALQi\nLgWJ4cOHe7oOAAAAAK2IS0FCknbt2qV58+Zp9erVKi0tVXx8vIYOHaqpU6eqZ8+enqwRAAAAgJ9x\nKUhs375d119/vcLDw5WVlaWEhAQVFBRoxYoVWrFihRYtWqQ+ffp4ulYAAAAAfsKlIPHMM8+oe/fu\nWrhwoSIiIhraKyoqdPPNN+u5557TSy+95LEiAQAAAPgXl86RyM7O1pQpUxxChCRFRETo9ttvV3Z2\ntkeKAwAAAOCfXAoS4eHhLfZZLBbV1dW5rSAAAAAA/s+lIDFo0CC98sorqq6udmivqqrSq6++qszM\nTJe/sK6uTn/5y180evRoZWZm6t5771VhYaFL773zzjv161//2uXvAgAAAOAZLq2RmD59uq655hpl\nZWXpggsuUGJiogoLC/Xll1+qvLxcb731lstfOG/ePC1ZskSzZ89WXFycZs2apXvuuUdvv/32cd+3\naNEirVy5kq1oAQAAAD/gUpDo0aOHFi1apBdffFHLly9XcXGxYmJiNGzYME2bNk29e/d26ctqamq0\ncOFCPfLIIzrnnHMkSc8++6yysrK0du1aDR48uNn37d27V3Pnzj2pkQ8AAAAAnuPyORJ9+vTR888/\nf1pftm3bNpWXlzuMKqSlpSk1NVXZ2dnNBom6ujrNnDlTt99+u/bs2aN9+/adVg0AAAAATl+LQeKj\njz7SmDFjFBcXp48++uiEH3TZZZed8DWHDh2SJHXs2NGhPTk5uaHvWAsWLJAk3XbbbfrDH/5wwu8A\nAAAA4HktBokZM2bo3XffVVxcnGbMmHHcD7FYLC4FicrKSgUEBCg4ONihPSQkxGkhtyRt2rRJZ1XA\nlAAAIABJREFU//d//6fFixcrIMCldeEAAAAAvKDFILF8+XIlJSU13LtDWFiYbDabamtrFRTU+NU1\nNTVOW8xWV1frwQcf1P3336+uXbu65fsBAAAAuEeL/8yfmpqqkJAQSdIPP/ygiIgIpaamOl0hISFa\ntmyZS1+WkpIiSSooKHBoz8/Pd5ru9OOPP2rXrl165plnlJmZqczMTH3wwQfKzs5WZmamDhw4cFI/\nKAAAAAD3cWm+0MMPP6z9+/c327d161bNnTvXpS/r27evIiMjtXr16oa2nJwc5ebmatiwYQ6vHThw\noD7//HN98MEHDde4cePUv39/ffDBB0pOTnbpOwEAAAC4X4tTm+68807t3LlTkmS32zVt2rSGEYqm\nDh8+rC5durj0ZSEhIZo0aZLmzJmj+Ph4JSQkaNasWRo+fLgGDRqkmpoaFRcXKzY2VmFhYU5TmqKi\nopptBwAAAOBdLQaJu+66S4sXL5YkLV68WAMGDFCHDh0cXhMQEKCYmBhdeeWVLn/h/fffr9raWs2Y\nMUO1tbUaM2aMHn30UUnSunXrdNNNN2nhwoUaMWLEqfw8AAAAALzAYrfb7Sd60cMPP6ypU6cqPT3d\nGzWdtpycHGVlZWn58uVKS0vzdTkAAABAq3S836tdWiPx5JNPavfu3Zo9e3ZD24YNG3TLLbfou+++\nc2+1AAAAAPyeS0Fi6dKlmjJlinbt2tXQFh4eLpvNpttuu02rVq3yWIEAAAAA/I9LQWL+/Pm64YYb\n9PLLLze09erVS6+//rquu+46Pf/88x4rEAAAAID/cSlI7Nu3T+PGjWu2b9y4cQ4jFQAAAADaPpeC\nREJCgjZv3txs3/bt2xUbG+vWogAAAAD4txa3f23qsssu0wsvvKCIiAiNHz9eCQkJOnLkiL788kvN\nmzdPkyZN8nSdAAAAAPyIS0Fi2rRp2r17t2bNmqXHHnusod1ut2vChAm69957PVYgAAAAAP/jUpAI\nDg7W888/rx07dmjNmjUqLi5WdHS0hgwZor59+3q6RgAAAAB+xqUgUa93797q3bu3U3t5ebkiIyPd\nVhQAAAAA/+ZSkKipqdEbb7yhH374QVarVfWHYdtsNlVWVmr79u1av369RwsFAAAA4D9cChLPPPOM\nFi5cqN69e+vIkSMKDQ1Vhw4dtGPHDlmtVt19992erhMAAACAH3Fp+9dly5bplltu0T//+U/deOON\n6t+/v9577z19/vnnSk1Nlc1m83SdAAAAAPyIS0Hi8OHDGjt2rCSzTmLjxo2SpI4dO2ry5MlaunSp\n5yoEAAAA4HdcChLR0dGyWq2SpK5du+rgwYMqKyuTJJ1xxhk6ePCg5yoEAAAA4HdcChJDhgzRm2++\nqaqqKnXt2lXh4eH617/+JUn68ccfFRUV5dEiAQAAAPgXl4LEtGnTtGbNGk2ePFlBQUGaNGmSHn30\nUU2cOFFz587VhRde6Ok6AQAAAPgRl3Zt6tevn5YuXaodO3ZIkqZPn66oqCitXbtWd911lyZPnuzR\nIgEAAAD4F5eCxJ/+9Cf98pe/1JgxYyRJFotFU6ZM8WhhAAAAAPyXS1ObFi9erJKSEk/XAgAAAKCV\ncClInHXWWcrOzvZ0LQAAAABaCZemNmVkZOiVV17RsmXL1K9fP0VERDj0WywWPfbYYx4pEAAAAMBp\nKC+X9u2T0tKk6Gi3faxLQWLZsmVKTk5WVVWV1q1b59RvsVjcVhAAAAAANygqkr74Qvr6a6m6WurU\nSZo1y20f71KQ+PLLL932hQAAAAA8KC9PWrZM+u47qa6usb2oSLLbJTcNArQYJL799lsNHDhQkZGR\nbvkiAAAAAB60b5/06afSunUmMDTVubN0ww1uCxHScYLErbfeqnfeeUcDBw5saHvnnXc0YcIExcfH\nu60AAAAAAKfIbpd++skEiC1bnPt79JAuukgaMMCtIUI6TpCwH5Ni6urq9Mc//lH9+/cnSAAAAAC+\nZLdLmzdLn3wi7d7t3N+/vwkQPXu6PUDUc2mNRL1jwwUAAAAAL7LbpfXrTYDYv9+xz2KRhgwxASI9\n3eOlnFSQAAAAAOADNpu0Zo20dKl04IBjX1CQdPbZ0oQJUnKy10oiSAAAAAD+qq5O+v57swYiP9+x\nLzhYGjtWGj9e8sHSg5MOEpwZAQAAAHhYba30n/9In30mHT7s2BcaKp13njRunBQT45PypBMEifvu\nu08hISEObdOmTXNqk8yhdQAAAABOQ22t9O9/mwBx9KhjX3i4lJUlXXCB5AdHNLQYJK688kqntsGD\nB3u0GAAAAKBdslqlb74xU5iKihz7IiPN9KXzzjNhwk+0GCSefPJJb9YBAAAAtD9Wa+MIxLEBIjra\nLKA+91wzncnPsNgaAAAA8DarVfr6a2nZMucAERMjXXihWUjdzJICf0GQAAAAALylPkB89plUXOzY\nFxNjzoAYM8avA0Q9ggQAAADgafWLqJtbAxEb2xgggoN9U98pIEgAAAAAnlJb27iI+thdmOLiTIAY\nPbpVBYh6BAkAAADA3WprpW+/NSdRHzni2BcTI11ySasNEPUIEgAAAIC71NVJ330nffKJ80Fy9Wsg\nxo5t1QGiHkECAAAAOF02m7R6tfTRR1JhoWNfdLTZhencc1vFImpXESQAAACAU2W3S9nZJkDk5Tn2\nRUWZcyDOO88vz4E4XQQJAAAA4GTZ7dL69dI//ykdOODYFxFhAsQFF7TJAFGPIAEAAAC4ym6XNm40\nAWL/fse+sDBp/Hhp3Dhz38YRJAAAAIATsdulrVulDz+U9uxx7AsNNaMP48dLkZE+Kc8XCBIAAADA\n8fz0kwkQP/3k2B4cLJ1/vpnGFB3tm9p8iCABAAAANOfnn02A2LrVsT0oyOzAdNFFZkvXdoogAQAA\nADS1f79ZA7Fhg2N7QIA5RO6SS6T4eN/U5kcIEgAAAIAkHTxotnFds8ax3WKRzj5b+sUvpMRE39Tm\nhwgSAAAAaN8KCqSPP5a+/94sqq5nsUhDh0qXXSZ17Oi7+vwUQQIAAADt05Ej0tKl0jffmJOpm8rM\nNAEiNdU3tbUCBAkAAAC0LyUlJkB8/bVUW+vYl5EhXXGF1LWrb2prRQgSAAAAaB/Ky6Vly6Qvv5Ss\nVse+3r2lX/5S6tHDN7W1QgQJAAAAtG2VldK//mWuqirHvu7dzQhEnz5mTQRcRpAAAABA21RdLa1Y\nYUYhKioc+9LTTYDo358AcYoIEgAAAGhbrFZp1Srp00+l0lLHvpQU6fLLzWJqAsRpIUgAAACgbait\nNTswLV0qFRU59iUlmV2Yhg0zB8vhtBEkAAAA0LrZbNJ335mzIA4fduzr0EG69FJp5EgpMNA39bVR\nBAkAAAC0TjablJ1tTqPOz3fsi4kxJ1GPHi0F8SuvJ/CnCgAAgNbFbpfWrTMB4sABx76oKOmii6Rz\nz5VCQnxTXztBkAAAAEDrYLdLGzaYALF/v2NfeLg0YYJ0wQVSWJhv6mtnCBIAAADwb3a7tGWL9M9/\nSnv2OPaFhkpZWdL48VJEhE/Ka68IEgAAAPBf27dLH34o7drl2B4SIp1/vhmFiIryTW3tHEECAAAA\n/mfnTjMCsX27Y3tQkFn/cNFFZkE1fIYgAQAAAP+xe7cJEFu3OrYHBkpjxkgXXyzFxfmmNjggSAAA\nAMD39uwxAWLzZsf2gABp1CjpkkukhASflIbmESQAAADgO3v3ml2YNm50bLdYpLPPNgEiKck3teG4\nCBIAAADwvv37TYD48UfHdotFGjHCHCaXnOyb2uASggQAAAC8Z/9+6eOPpfXrHdstFmnoUOnSS6VO\nnXxTG04KQQIAAACe19IIhNQYIFJSvF8XThlBAgAAAJ5zvACRmSlddpmUmur9unDaCBIAAABwv337\nzBSm5gLE4MFmDURamvfrgtsQJAAAAOA+e/dKn3xCgGgHvB4k6urq9Nxzz2nJkiUqLy/XmDFj9Oij\njyoxMbHZ1y9dulQLFizQ3r17lZSUpIkTJ+q2225TYGCglysHAABAi3bvNgFi0ybnviFDTIBgClOb\n4vUgMW/ePC1ZskSzZ89WXFycZs2apXvuuUdvv/2202u/+uorPfDAA/r973+vsWPHasuWLfrDH/4g\nq9WqadOmebt0AAAAHOunn0yAOPYkaokA0cZ5NUjU1NRo4cKFeuSRR3TOOedIkp599lllZWVp7dq1\nGjx4sMPrFy1apAkTJujGG2+UJHXp0kW7du3S+++/T5AAAADwFbtd2r7drIH46SfHPoulMUB07uyb\n+uAVXg0S27ZtU3l5uYYPH97QlpaWptTUVGVnZzsFibvuuksREREObQEBASopKfFKvQAAAGjCbpc2\nbzYjELt3O/YFBEjDh0sXX8w5EO2EV4PEoUOHJEkdO3Z0aE9OTm7oa2rgwIEOz8vKyvT2229rzJgx\nnisSAAAAjux2c4Dcp5+axdRNBQRIZ59tAkRSkm/qg094NUhUVlYqICBAwcHBDu0hISGqrq4+4Xun\nTp2q6upqTZ8+3ZNlAgAAQJJsNmn1aumzz6SDBx37goKkUaOkiy6SEhJ8Ux98yqtBIiwsTDabTbW1\ntQoKavzqmpoahYeHt/i+I0eOaOrUqdq5c6f+93//V6ks2AEAAPAcq1X69ltp2TKpsNCxLzhYGj1a\nuvBCKT7eN/XBL3g1SKT899jzgoKChntJys/Pd5ruVC8nJ0e33XabysvL9eabb6pv375eqRUAAKDd\nqa6Wvv5a+vxzqbjYsS8sTDr3XGncOCkmxjf1wa94NUj07dtXkZGRWr16ta644gpJJijk5uZq2LBh\nTq8/fPiwbrrpJgUGBurtt99Wenq6N8sFAABoH8rLpRUrpC+/NPdNRUZKWVnS+edLx2yCg/bNq0Ei\nJCREkyZN0pw5cxQfH6+EhATNmjVLw4cP16BBg1RTU6Pi4mLFxsYqJCREs2bN0tGjR/X6668rLCxM\nBQUFkiSLxdLiAXYAAABw0dGj0hdfSP/+txmNaCo2VpowQRozRgoN9U198GteP5Du/vvvV21trWbM\nmKHa2tqGk60lad26dbrpppu0cOFCnXXWWfriiy9ks9k0ceJEh88IDAzUli1bvF06AABA23DwoFn/\n8P33ZkF1U4mJZv3DqFFmQTXQAq//7QgKCtJDDz2khx56yKlvxIgR2r59e8Pzrc2dkAgAAIBTs2uX\n2YFpwwbnvtRUEyCGDTNbugInQMwEAABoy+x2aeNGMwKxc6dzf69eZgvXjAxzKjXgIoIEAABAW2S1\nmjMgvvjC+QwISTrrLBMgunf3fm1oEwgSAAAAbUl5ufTVV2YXppISx76AAGnkSLOIuslW/MCpIEgA\nAAC0BQUF0r/+Jf3nP1JNjWNfWJg5RG7cOA6Rg9sQJAAAAFqz3bvN9KV168x6iKbi4swZEGPGSOHh\nvqkPbRZBAgAAoLWx2aS1a6Xly02QOFZampm+NGQIW7jCY/ibBQAA0FpUVEhff23WPxw96tyfkSGN\nHy/17csOTPA4ggQAAIC/y8szow/ffuu8/iEoyJz9MG6cGYkAvIQgAQAA4I/sdmnbNrOAetMm5/7o\naOncc80VE+P9+tDuESQAAAD8SVWV9N13ZvrSoUPO/WlpZgH1sGFScLD36wP+iyABAADgD/LyTHj4\n9lsTJpqyWKSBA02A6N2b9Q/wCwQJAAAAX7HZpI0bTYDYutW5PyxMOvts6YILpORk79cHHAdBAgAA\nwNvKy6VvvpFWrpQOH3buT0mRzjvPnEIdFubt6gCXECQAAAC8wW43Zz589ZW0Zo1UW+vYb7FIZ50l\nnX++1KcP05fg9wgSAAAAnlS/eHrVKik317k/MlIaPdrsvpSQ4P36gFNEkAAAAPCE/fvN6MPq1VJ1\ntXP/GWeY8MDuS2ilCBIAAADuUl0tZWeb0Yc9e5z7Q0Kk4cOlsWOlrl29Xh7gTgQJAACA02G3S3v3\nSl9/Lf3wQ/OjD507m9GHESOk8HDv1wh4AEECAADgVJSXm7UP33zT/NqHoCBpyBAz+tCjB4un0eYQ\nJAAAAFxlt0vbt0v//re0bp3zzkuS2br1nHPM+Q9RUd6vEfASggQAAMCJFBaaE6e/+87cHyskRBo6\n1Oy+1L07ow9oFwgSAAAAzamqktauNQFix47mX3PGGSY8DBvGwXFodwgSAAAA9eqnLn37rQkRNTXO\nr4mIMIumR4+W0tK8XyPgJwgSAAAAhw5J339vpi4dOeLcHxAgZWRIo0ZJAweahdRAO8d/CwAAQPtU\nXGy2a1292mzf2pzOnc2i6REjpNhY79YHuIHNbtOeoj1KCE9QbJh7/w4TJAAAQPtRVSWtX29GHrZt\nM1OZjhUZaQ6NO/tsqUsXFk6jVZv979naU7RH15x5jcb3GO/WzyZIAACAtq22VtqyxYw8rF8vWa3O\nrwkKkgYMMAGCqUtoZex2uw6VHVJwYLASIxId+rrFd9Oeoj3amL+RIAEAAHBCdXVmxCE724SHiorm\nX9e7twkPQ4aYRdRAK7Pu4Dot3rJYhRWFyuqepV9l/Mqhf0DyAK05sEbJkcmy2+2yuHGEjSABAADa\nBpvNbNOanW12XCovb/51qalmzcOwYVKHDt6tEThFdrtd5dZyRYU4HnIYFhSmwgpztsmGvA2aeOZE\nh7DQL6mf5oyf49YAUY8gAQAAWi+7Xdq1y4SHNWukkpLmX5eQYA6MGz6cLVvRqpTXlOvD7R9qU/4m\nSdITFzzhEAp6duipkMAQWSwWpcWkqaauRqFBoQ39AZYAj9VGkAAAAK1L/cjDunXmKi5u/nVxcSY8\nDB1qDo5j0TT8nP2/i/+bBoWwoDB9n/O9qmqrJEl55XnqFNWpoT84MFgPnvOgUqJTFBTg3V/tCRIA\nAMD/1daaNQ9r15o1Dy1NW4qJkQYPNuGhZ0/CA1qFtQfXat3BddpauFX3j7xfaTGNo2aBAYHql9RP\n6w6uU2hQqPLKHIOEJKXHpnu7ZEkECQAA4K+qq81uS2vXShs2mK1bmxMdLQ0aZMJD797m8DigFVlz\nYI2yD2RLkrYUbHEIEpJ0YY8Ldf4Z56tHhx5eH3U4Hv+pBAAAoKRE+vFHExy2bm1+q1bJTFvKzDSj\nDz17Eh7g1/LK8vTDgR+0rXCbMpIydHGvix36M5IzGoLE7qO7nd7fLb6bV+o8WQQJAADgO3a7dPCg\nCQ8//ij9/HPLr01MNMEhM1Pq1o1pS2g19pfs10fbP5Jk1kE4BYmkDF3Z70plJGU4jUb4M4IEAADw\nrtpas9PShg0mPBQUtPzazp3NtKXBg81uS4QH+KHq2mp9n/u9thVuU4W1QvePvN+hv09Cn4b7n4t+\nVk1djUICQxraYsNidVHPi7xWr7sQJAAAgOcVF0ubNplry5aW1zsEBJipSoMGmROmk5K8WydwAs0d\n6maXXW9vfFs2u02SVFZT5nDeQ3RotH7R+xdKiUpRn8Q+DiGiNSNIAAAA97PZpD17pI0bzbV/f8uv\nDQ2V+veXzjrLPEZGeq1MwFXf53yvzQWbtePwDs0YNUMJEQkNfWFBYToj7oyG9Q0/Hf5JmSmZDu+/\nvM/lXq3XGwgSAADAPYqLzWjDli3S5s0tb9EqmQPiBgwwow59+khB/EoC/2C321Vnr3PaHen73O+1\nOX+zJGn74e0aFTHKof+8M87T0M5D1Sexj1KjU71Wry/x31oAAHBqrFbpp58aw0NubsuvDQiQevUy\nIw4DBkidOrHeAX5lU/4mrdq7SjuP7NQvev1CWd2zHPp7dejVECR2HtmpUemOQWJE2giv1eovCBIA\nAMA1drsJC1u3muDw008tb88qmcPhBgww4eHMM6WwMO/VCrSg0lqp0ppSJUcmO7QfqTyiHw/9KEn6\n6chPTkFiUKdBCgoIUq+EXuoS28Vr9fozggQAAGie3W52VNq+3ZwqvX27VFra8usDA81C6TPPNFd6\nOqMO8Bv7ivfp9fWvK7c0V7069NL0UdMd+nt26Nlwf6jskNP7U6JTlBKd4vE6WxOCBAAAaFRUZEJD\n/XX06PFf36mTlJFhgkOvXmbhNOAj1jqr9hTt0aGyQxrTdYxDX0xojHJKciSZLVhrbbUO6yBSolJ0\n48Ab1SuhlzpGdvRq3a0VQQIAgPbs6FFpxw4zTWnHDikv7/ivj4oyi6MzMqR+/aQOHbxTJ3ACtbZa\n/XbZb2WtM9PthnQeoojgiIb+uLA4JUYk6nDlYaVEpaikukQdwhv//losFqfwgeMjSAAA0F7Y7VJh\noWNwOHz4+O8JC5N69zbhoW9fKTWV6UrwmR2Hd2jH4R36+ejPuq7/dUqKbDxnJCggSJ2jO2tv0V5J\n0s9Hf1ZGcobD+6cNn6YO4R0UFsR6HXcgSAAA0FbZbGZx9K5d0s6dJjwUFR3/PUFBZp1D374mPJxx\nhtlxCfCimroa2ew2p1/4l+1cpk35myRJu4/udggSktQ9vruqa6vVPb67w4Fw9TpHd/Zc0e0QQQIA\ngLaiqkravdsEh127zH119fHfExIi9ehh1jf06iV16yYFB3unXuAY/9n/H/1r9790oPSAru53tcb3\nGO/Qf0bcGQ1B4uein522XL0241qnU6fhOQQJAABaI7tdys+Xfv65MTzk5pr24wkLMyMOvXub4NCl\nC4fBwWusdVbtL9mvfcX7FBUSpaGdhzr155aY80j2Fu91en9GcobKreXqFtfNYZeleoQI7+J/OQAA\naA3Ky01oaHpVVJz4fXFxJjh0726CQ1oaU5XgFdY6q4IDHUe3thRs0d9++JskqXdCb6cg0TWuqyQT\nCCqtlU6f2T2+u7rHd/dQxThZBAkAAPxNdbWUkyPt3Svt2WNCQ37+id9nsZig0KNH49WhA4uj4TUl\n1SV6c8ObyinJUXBAsGadP8uhPz02veF+f8l+2e12h1GEtJg0PTDqAaXHprMguhUgSAAA4EtWq7R/\nvwkN+/aZ4HDw4ImnKElSZKRZ09CtmwkN3bpxejQ8ym636+ein5VTkqMDpQec1iSEB4VrQ96GhoBQ\nXVut0KDGs0Xiw+LVPb67EiMSlR6brjp7nYIsjb+O1p8cjdaBIAEAgLdUVZnQkJNjQsO+fdKBA2Z3\npRMJDDQnRdcHh+7dpcRERhvgEbW2Wh0qO6TkyGSFBIY0tFssFr30w0sqqS6RJGV1y3LYOSk4MFid\nojrpYOlBBVoClV+e7zAKYbFYNHP0TO/9IPAoggQAAO5mt0slJSY07N9vAsP+/VJBgWvvt1jMidFd\nu5qrWzcTIlgUDS94ec3LWndwnWx2mx4Y9YDTCEHn6M4NQSKnJMdpC9YbBtyg8OBwdYrq5HByNNoe\n/tMFAOB01NSYqUi5uWakITfXXKWlrn9Gx47mvIauXc0uSl26SKGhJ3wbcCqyD2Rr7cG1Olh6UJf0\nukTDUoc59AcHBMtmN6NkuaW5TkEiIzlD0aHRSo9Jb/ZcBqYmtR8ECQAAXGGzmRGFAwcaw0JurlkE\n7cp6BsnslpSSYkYX0tMbQwPrGuBGBeUF2n54uw6VHdIZcWc47YyUU5KjNQfWSDJBYZgcg0RqTKok\nKTEisdnPn9BjggeqRmtEkAAAoKm6usbAcPCguQ4ckPLypNpa1z8nNNTsoFQfGNLSpM6dOewNp81a\nZ1VeeZ7yy/MVEhii/sn9Hfq3Fm7VWxvekiSNTBvpFCRSolIa7g+WHnT6/DFdxmhs17HsmoQTIkgA\nANqnqioTDg4dcrzy8kyYcJXFIiUnS6mp5kpLM48shMZpsNZZVVhRqMraSqdzE7Yf3q5538+TZM5i\nODZIdIrq1HB/qOyQ02f3Tuit3wz6jTpHd3Z4bb3w4HB3/AhoBwgSAIC2y2aTDh8204/qQ0P9Y1HR\nyX9eXJyZmlQfGlJTGWXAKauwVqioqshpnUFeWZ7+Z+X/yG63KykySY9f8LhDf3JkcsN9frnz+SIp\nUSkaljpMnaI6KT0m3ak/Pjxeo9JHuemnQHtGkAAAtG42m3T0qAkI+fmNoSE/XyosdG1r1WPFx5uA\nkJLS+JiSIoXzL7VwnbXOqiOVR5Qcmexw1oK1zqoHv3hQFdYKBQUEad4l8xRgaTxtvEN4B9n/u+7m\ncMVh1dpqHXY/SoxIVKeoTkqMSFTHqI5Oh7pFh0br9sG3e+EnRHtHkAAA+L/qarNuobDQ8bGgwIw4\nnMxUpHqBgWZKUqdOjVfHjiYwsPgZLqipq9GRyiNKCE9QcKDjqNRjXz2m3JJcSdKc8XMUGxbb0Bcc\nGKzAgEBJ5ryGoqoidQjv4NCfEJEgiyxKikxSpbVS0aHRDf0BlgCnE6MBXyBIAAB8z2qVjhwxoaCw\n0DzWXwUFJ7eV6rFiY01gODY0JCaaXZSAZtjtdhVXF+to5VElRyYrMiTSoX/ut3O1rXCbJGnm6JlO\n6xgCLYEN94UVhQ5BQpISwhNUaa1UUmSSKqwVDkFCkh6/4HGHUQrgVNhsNpWVlamkpERWq1Vdu3ZV\ngBv/d48gAQDwLLtdqqw0QeHYqz4sFBef3ndER5ug0LFjY2iovziPAc0orS5VYUVhwxqFjlEdHfoX\nrFmgdQfXSZImD5msIZ2HOPSHBjX+vTpSecQpSCREJGh/yX51CO+gmroap++/f+T9CgsKc5iS1BQh\nAs2x2+2qqalRaWmpSkpKVFZW1nB/7GNJSYnKy8sbpslJUvfu3fXggw+2+PfuZBEkAACnp6rKrFEo\nKjKPTa/6wFBVdXrfERgoJSRISUnmSkx0fCQs4BiHyg5p99HdKqoqUre4buqX1M+h/5OfPtGKn1dI\nkq4+82pNiHI8GyEuLK7h/kjlEafPTwhPUIAlwGE9Q1O/Hvhr3TH4joYpTMdiZyRIJhhUV1c3BILS\n0tKG+6Zt9c/rRxZO1YEDB1RXV6egIPdEAIIEAKB5dXVSSYkZLSgqMlf9fdPgcLohQTLbpHboYMJC\n0ysx0TzGxzMNqR07djGxJP189Gd9m/OtSqpL1LNDT43rPs6hf0PeBv1jyz8kSVnds5zUZXGRAAAg\nAElEQVSCRHxYfMN9UZXzDl4dwjsoMiRSHcI7NHuewpX9rtTEjIktjhwcOxUK7UNdXZ3Ky8tVVlbm\ncNUHgebua0/mfJqTZLFYFBkZqejoaMXFxemCCy5wW4iQCBIA0P5UV5tAUFLSGBTqH+uvoiKprMz1\nE5tPJCTEBIWmV3x8Y1iIizOjDmg3am21Olp5VKU1Zv3LsVODfjr8k97c8KZKqkvUK6GXpg6b6tB/\nuPKwvtrzVcPzY4NE0xGF5oJCcmSy0mPTFR8W73BAW73x3ccf9wTnkMCQ4/x0aO3qpxCVl5c3BIP6\n+6ZB4djQUOWOf1g5geDgYEVHRztdMTExDY/199HR0W5dE3EsggQAtHZ2u1RRYcJAaWnjY3P3JSUm\nSLhTcLAJBXFxjo9NQ0NEBIeztWE2u83pX+bLa8q1au8qldaUKtASqKvPvNqhP7ckV3/++s+SpPTY\ndD0y9hGH/gBLQMNhasVVzmtoYkMbFy83158SlaIRaSMUGxqrrnFdnfozUzKVmZLZ4s/krjnk8C27\n3a7KykpVVFSooqKiIQjU3zdtO/by5EhBU8HBwYqKimr4xb/+PioqSjExMQ3P68NBSEiI3/z9JEgA\ngL+xWs1oQHm5eSwrM0Gg6X3T52Vlp3ZWwolYLGYRc1ycuWJjGx+bBgZCQptkt9u1rXCbyq3lKq8p\n19iuYx1+eamqrdITq55QWU2Z7LLruYuec3i/1WbVB9s+kCRFhUQ5BYmokKiG+9Jq5125mm53Wj9q\n0VSnqE66rv91igmNUUJEglN/emy6bs281cWfFv7MZrM1BIGKigpVVlaqvLzcISA0DQpN7ysrK5td\nw+IpFotFUVFRioyMdAgEx7tCQ0P9JhicLIIEAHhKba0ZKSgvd7yObTs2NJzGQjqXBAWZMBAbK8XE\nmKv+vr49Ls48Z11Cq5ZbkqvSmlJVWCt0ZtKZTnP9X1nzigorClVhrdDM0TMdfrm3WCx68YcXZa0z\nfx9HpI1weH9oYKgKKgoafkk79tC0pp9Vbi13GrWIDo1WfHi8YkJjHNYr1EsIT9Cj5z6q6NBoh89q\n+v7zu51/sn8k8DK73a6qqipVVlY6XVVVVQ3BoP6x6VXfVu3uUVQXBQUFNYSC+mBQf1///NgrPDy8\n1YaCU0GQAICW2Gxm29L6q6LC8f5EV43zlo8eExZmfvGPjm75MTrahISwMEYQWon9xft1pPKIKmsr\n1Sehj+LDHX/hfm/ze/q56GdVWit1S+Yt6hLbxaH/tXWvNRyK9odz/6C0mDSH/r3Fe1VQXiDJTEU6\n9hf2yOBIFdUVNfQ3DRIWi0VRIVEqrS6VxWJRhbVCMaExDf1BAUH6Re9fKCwoTNEh0SZwNPlrFxIY\noqfGPdXizx4YEKjUmNQT/RHBQ2pra1VVVXXcqz4M1D82DQxN230tNDRUkZGRioiIcAgC9c+btkdE\nRDQEhpAQ1sGcCEECQNtTV2d2Ejr2qq5uDAJVVY73TZ/XXz76VzAFBkqRkVJUlHmMjjb3UVGNgaDp\n86goM8oAr7PWWVVZW6nq2mrzC3OT6TiStL1wu3Yf3a3qumoNSB6gHh16OPS/v/V9/ZD7g6pqq3T9\ngOs1PHW4Q//HOz7W+kPrJUlThk5xChIHSg9o15FdkpqfHhQRHNFwX2GtOG5/ubXcqT8jOUOV1kpF\nhUQ5jDbUe2j0QwoLClNEcESzuxdd3udypza4n81mU01NjaqqqlRdXe1wHdtW/wt/076mj/X33lof\n4AqLxaLw8HBFREQ4XM21NQ0H9VcgGzl4DP/PA8B37HYz/aeqyvzrfXV142P9VVPTGALqH5teTfvq\nL3/5P8CAABMEIiLMY9Pr2Lb6YBAZac5EYMTALWpttaq0VqqmrkZBAUFOpwvnleVpx+EdqqmrUceo\njuqf3N+hf93BdVq5Z6Wq66o1tPNQp52BPtv5mT7e8bEk6dLel+qyPpc59G/I26B/7f6XJPNL+7FB\notJa2XBGQXO/6DcdAaisrTxuf3Pv///t3Xl4FFW6+PFv9d5ZCBBI2EGWBAHZZBUUhFGeQXHhB44O\nq3cUVwS5LiiIoHJVXBJnBHFkdBxU9GGGjIheHZdRRtRAAAlbNCyJCSErISQk6a3O749ON13pDhJv\nIIrv53nq6arznqo6fWjS51SfOtUlrgsaGlHWqIhTmN7U7yYUiihrFPHO8PsMZg6YGZYWqk1Um9PG\nhV+goR9YPB4Pbrcbl8tlSA9sh6aHpgWW+ts/p0Z/JHa7HafTedol0DGovx0VFfWLvofgfCcdCSFE\nOKX84/Q9Hn9DPrAeuu12G5dIaaGdg4bSzuFNcI2maeB0Rl4CHYFI64FFOgQopdCVjkf3oCvdcAUc\nwOV1cfj4YTw+DxaTJWyu//KacjbnbsbtcxPniAubjjPneA7rdq/D7XPTrWU3Zg2cZYhnFmXycsbL\ngH+WntuH3G6IHyw/yBuZbwAwotOIsI5EhauCrNIsADq36Bz2/kKnAI309OLQxrvLG/4L14/Fu8R1\n4aTnJE6Lk9bO1mHxq5KuYtwF43BanREb9Tf0vSEsLdQFrS44bfx8pJTC5/Ph8XhOu4Q2+L1er2E7\nNE9oev08gbSfe0M/EpPJhMPhwOl0YrfbI647nU4cDkdwO/Q1dP1sTj8qmtc570j4fD5SU1NJS0vj\n5MmTXHrppSxZsoQ2bSJf1di9ezfLly9n//79JCYmcuedd3Lddded41ILcY4o5R+W4/X6Xz0e/3ro\ncrq0SK/11+svXu+pjkBg/Rf4pWdgMvnvA7Db/a9Op3/d6Ty17XCcWq+fHhV1ap9fQEfAq3vx6l58\nug+n1Rk2xCT/RD5unxuv7qV7q+5hQ1S+yf8Gl9eFV/cyptsYQ1wpxdt73saje/DpPmYPnG24Muj2\nuXn2q2fx+DyYTeawKTwrXBU8+PGDAMQ54lhxxQpD/HjtcVK+TgH88/o/Pu5xQ/yE6wQfZH8A+Gfh\nqd+RcPvc5BzPASI/AOzHGvp2s/208R/bP8oaRaw9FrvZHvGKf8/WPZnQcwIOi4NerXuFxa/ocQVj\nuo3BaXFG3H989/GM7z4+LD2g/j0PP0dKKXRdx+v14vV68fl8wfXTLR6PJ5jX4/EYXuvna+g1sIRu\ne73eczqLz7mgaRo2my3YyLfb7YYlNC2wfrpXh8OBxWKRXwHEjzrnHYk//elPpKWl8fTTT9OyZUuW\nLVvG3LlzWbduXVjeY8eOccstt3D11VezfPlyvvrqKxYtWkSbNm0YPXr0uS66+CVQ6lRj3Ofz3ywb\naf10aadbAg38+usNbQfSQl/rpwUa8IG0XxuLxd9gt9n8r4HFZvM36gPpoR2D0HwOB8pmQ9lt+Ow2\nNKcTi814M3Gtt5ZqTzW60nFanGENzvKacspry/HpPuKjnLSuNw49ryKPopNF6EqnS1wX2sW0M8T3\nFu8l/0Q+PuWjf2L/sMbdf3L/Q25FLrrSGdN1TNic9mn708g5noNP+ZjSZwrdWnYzxFdnrPbHdR93\nD7s7bP8nNj/B0cqjADw69lE6xHYwxF/c+iLlNeUAPPmbJ8OubL+z553gsJgRnUZgsZ36atA0jc25\nm9GVf3rZGQNmYNFOxU2aidzjuYD/5tj6rCZrcD0w+0+o0E6LRw+PW82n3/9MOgoxthisZmvEmX8S\nohMY3WU0NrONznHhvzj0aduHeSPmYTfbw4ZFAVza9VIu7XppWHrAhW0vDPuVJVTozcmRBBrhuq7j\n8/mCS2O3z3QJNPTrrzcUj5S/fofB5/Oddw33xgo09OsvVqsVu90e3D7demA7tIMQ2LZardLoF83i\nnHYk3G43f/vb31i8eDGjRo0C4Pnnn2f8+PHs2LGDwYMHG/KvX7+emJgYFi1ahMlkokePHuzbt49X\nX331/OpIBP7A6vqphnDoeuh2pDyNeT2T9dC0SPnqp/l8keMNLYH8gYZ83aJ8PnSfF6X7MOkKk8KQ\n1+vz4NO9KJ8Piw4WHUOHwOVz41FeFAqHsmCl3sORNA9udBSKaGXFjrHRc1xz4dJ8ALTU7WHxElMN\ntfjjbXUHjnr/ffJNVbg0//E7+2LC9j9oPoFL86FQ9PTGhcX3WI7hsegoDS7ytA4r/1ZrMf69FcM9\nCZhD4grFF7ajqLr1cW7jTCcedD6x56MAMxoTXMYGUw1ePnD8gAIcyszVrq7+Br7NBlYrFVYfG22H\nUWYzLSzRXOcc5I/VLcVaNRtqdqCbTSQ42zCl/Xj/Q8rqOgS5nhLWF3yCbjbRpWVXbuz7O3/MagWz\nmazSLN7e8za60kmO78q0/tMM5csoyOCt3W+hK50h8UOY3n+6If5Fzues2+q/GDGm2xh+f9Hv68W/\nYMP+DQBM6DmByRdONsQ3524OXvW+tve1TOw10RD/Ku8rPjv8GeAfKlK/I5FRkMFXeV8B/odk1e9I\n7C/dz/aC7YC/YVq/I5B3Ii84fKbKXUV9J1wngh2BSI1ls3bqs+TTfWHx0Ma6Vw/vrIbGfSry/oHz\n+nSfIX/9c4c2GHVdBx2UT2E1WTHrZqqrq4ONY6UULpeLzrbOWDQLsZZYSkpKDPFqVzWXxF2CWTMT\nbY3m8OHDwZiu67g8Lqa0nYJJM+EwO8jMzDQ0vnVd54aWN/jTanS2bNkSbGQH8rXT26HrOhV5FXyw\n+wPDvvXzRloPNNwjLaGN+kjpDeUJXRdNz2KxYLFYsFqtYYvFYgk28q1Wa3DdZrMZYqGdgYbSAotc\n3Rfnq3PakcjKyuLkyZMMG3ZqVopOnTrRsWNHMjIywjoSGRkZDB061DC2btiwYSxbtgylVNP+p9R1\nVFoaz+/6C5XKBUpxB0OJ1WynHvSkFCl8javui3i+bwh2ZTY0+J8yfwMoULDQPfRUAxuo1b0859gO\nKKy6iftODji1L1CpeXghZg8AMbqV+SeNY3XLTC5ejN4DCuJ1O3dVG+MFpmr+HLUfhaK9HsXt1X0M\n8UOmE7wW/R0KuMAby83VyYb4fks5a50HAOjtbcnMml6EXkP61lLK285DAAz0tObG2p7BmFKKb2zF\nbHAcRgHD3Qn8v1rj2NvPbQVstOcCijHuDlzj6maIf2TL4yN7HgBXujozweVvjAXKsNGey2ZbAQBX\nu7oyxtXesP/fHYf5xlYECibXXsBIT6Kh/G86s9llKQPgxpoeDPIYh9O95vyO/RZ/Y21WbTIXelsa\n4quj9nHYUgkK5tRcSHffqSuJCvhj1G4KTP6rundV96WTL9pQ/tToTMpMtSgF957sT1vdYSjfCzG7\nqcIDmsaDrqHEmhxgsaDMZjCbedF0CLdJgaaxODYZm8Xun93HYkE3mXipMhPQwGSiQ8eJKJPJ31C3\nWHBpPl7LfQM0MzaLjU59r/Z3FOqOf0K5eDtzNWgasY44uoy8M3hFXylFWXUZ725bhVI68VE2ug65\nLBgD/8wx/9rxESho59PoFhPjjymFqq0l53gZW77zN5TzW1TSzdQ/uL9SiuyybHbu3wkKqlpX0fVE\nV8Px9xbt5UD2ARQK6w9WOh3rFIwppdhVuIsjh/xTXGYezSShKCF4bIDtR7aT90MeKMg4koEzx2nY\nf3vednILckHB1/lf49nnMZw/IzeDw4WHAfj8h8853u548PhKKTJyMzhQ7P+/86/D/yK3Ta7h+OmH\n0zl0zP9/Z+OBjexptcdQvvRD6eRX5KOU4p2sd9jSYotx/4PpFFUVoZTi9T2vkxCdABBsUG89vJXy\nmnJMmFi9azUt7S0N5dubt5caTw2appGakYrT4gzuq5TicPFhvD4vJkw8seUJLCZLsAGrlKL0eClK\nKUyYePCzB9HQDPvX1NaAAg2N2zcZ70EAf7oXL5VUcu+794bFQ2WSedr4h3x42rj4eTKZTMHGu9ls\nDq6HpgUa8Q0tgXj910idgobyB9ZlzL4QTeOcdiQKC/2Puk9MTDSkJyQkBGP18/fp0ycsb01NDeXl\n5bRuHX7j2U9Vs3Mnzz71FH93H8KN/ws0x3MEuzL+sdliK8JX1/wrcJdgxtiZ2Ww79T6K3BWGqA/F\nFlsR4L8qXOg2TrXn0nTSrcUA2DCRX+/KZI3mZZu1FAAnZnLqxStNHnbWNZRjlIWDnhOGeIXJzS6L\nf3aQOGUjy3PcEC8zudhb15DO1MvY6z1miBebasmy+PfJ0sv51ltmiB81V5Nt9p/zsF7Jdm+JIZ5v\nPskhs396wgK9hnRvsSGea64i1+x/T8W+Wv7jO2qIH7JUkm/y11mZz8WnviOGeLblBEfrGvIVupcP\nVYG/MVy3ZJmOUWyqATSqtFwStDJDfK8qpUzVgAa1lqPEmyv9Y+3r4pnuKo7rNaBprHKW09LiMcR3\nFHioqutkroxzEWu1nIqbTGTkalT7/HlfTLDgtNmCMUwmth6x4db9n5jUTnbsgSEbdTMb7TjsC15t\nTu18LGwYSWZuRXD9+ZJvDR1tn+5jd56/Ps0mM388vMmwr9vnZk/+94B/qMjKnasM8RpPDXsL9gLg\ntDhZnbHaEK9yV7H/6H4A8mx5+DKMV7UraivIKvJ3JI46juLabryptKymjO+L/ecvdZZyMsP4f6Pk\nZAnZpdn+Y0VVcGK78bNdWFXIobJD/rnso6spjy83xI9WHqXgRAEaGipGURZXFrZ/eVXdZ/9QJsUx\nxs9m0ckiaqtr0TSN/Uf2U+w0xkurSzG7zGiaRnZJNoV249+zyppKYr2xaJpGTkUORdYiQxw3JPoS\nMWkmjnx3hGKz8fgtfC2IVf79iw4XUaIZ/291oAMdTP7hTKV5pZRSaognkBCcv7+s0PjeAeKJD8Yr\nyivC4i1oEYzXVIfPHOQ0OcPSRNMxmUyYzWbMZnPE9dC0SPkauwQa9pG2I63X7yCExgPb0nAX4vx0\nTjsSNTU1mEwmrFarId1ms0V8amFtbW3Yw0AC2+4mftBTtstFfm0tNNffOk3zXwAOtv00/9XmQGMw\n0OA1Bwpo9o8VD8QANIt/AcAG9phT+wFQC3qV/xyaE2JbG/dX1eD1N6QxxYAt0XB+Ta889YAtSxw4\nOhnL5i2H2roHDllbQ1Qn4/ndpVBT4H9vzrb+eODLRdPQagrRquviMR0gxnh8U1U+5upCQENr0QUC\nDyqqO4a5IgfrySJAw9SqO8QYO6zWYwexV5f6L9q36gH1ZjixlWXjrPV3lMzxvcBh/EXCUaaIqeu8\nmVt3gXrzxceUncRUN87cHN8W6s1O08LbFnvdrCwmZzRY7IZ466j44LATU4QPYkJUgn+cuuFzckpg\nXLwWIahpGp1bdEbTtIi/5Jk1Mxe0vABN0wxDVQKsZiu9WvdC07SIc8k7LA76tPV3+kPHxAdE26IZ\nkDgAIOL+Le0tubjDxWhoEcfZx0fFM7LTSICIDZJ2Me3ChhuFah/bnvax7RuM/9j+idGJJEYnNhhv\nE9XmtNNg1p/7v75IY/dDhd4H8EtiMpkwmUzBz52maYbtwPqPvQbWzyR//fX6eQKN2vp56i+R8prN\nZsN6pP1C96nf2G9ov4Y6BqHvXwghfo7OaUfC4XAEZ26whDw8ye1243SGX9FyOBxhHYbAdqT8/xcX\nDh3KgDlz8G37su7pmxox1mj/7CchjekRnioU/sZajD3mVKOtrrE7yl0VzB9tjz31BaBpKOBSTzVo\n/v2jbdFoIQ1ppRRj6hqimqYFp0kMHCNa6Vzu9T8h0qSZwp8wqnRaBxqqmgl7vYZqjNJpWzfO2ayZ\nsZqNN2fFKp1Outf/RYkJi9n48WihdC6oG+5gMpnCGnwtlSK57oZMTTM2CDVNo7VS9A/JX/8Lsg1J\nGAe3GfO2pRtDQ+qjvsQOHSKmB/K3a9euwX01TaNDhP1D83fqFHl2lECezp07G7brn6tr164Rzx9I\n6969+2nP36NHj4iNisB2EkkNnl/TNPrSN2yf0Dz96R+2T/3t+udt6FwN7ddQ7Ez3iZT/x47xU/YP\nbfieSZ6G9gt0eiJtn+5YZxKLdMwzXT/dMSPlibTP6dLq/xsKIYQ4P53TjkT79v4rgiUlJcF1gOLi\n4rDhTuBv+JWUGH/CLy4uJioqitjY2LD8/xdWq5U7584F5jbpcYUQQgghhDgfndOBPL179yY6Opqt\nW7cG0/Lz8zly5AhDhw4Ny3/xxReTkZFhmAUkPT2dwYMHy3hLIYQQQgghmtE5bY3bbDZ+//vfs2LF\nCjZv3szevXtZsGABw4YNY+DAgbjdbkpKSoLDl6ZMmcKxY8d49NFHOXjwIGvXrmXTpk3ccsst57LY\nQgghhBBCiHrO+WX9+fPnM2nSJO6//35mzpxJhw4deOGFFwDYuXMno0ePZufOnQC0adOGNWvWsG/f\nPq677jreeOMNnn76aUaOHHmuiy2EEEIIIYQIoanz8HGT+fn5jB8/nk8//bTBG2SFEEIIIYQQp3e6\ndrXcaCCEEEIIIYRotHM6a9O54vP5H4YV6SF3QgghhBBCiDMTaE8H2tehzsuORGDK2GnTpjVzSYQQ\nQgghhPjlKykpoWvXroa08/IeidraWvbs2UPbtm0xm8OfkiuEEEIIIYT4cT6fj5KSEvr164fD4TDE\nzsuOhBBCCCGEEOLskputhRBCCCGEEI0mHQkhhBBCCCFEo0lHQgghhBBCCNFo0pEQQgghhBBCNJp0\nJOr4fD6ee+45Ro8ezaBBg7jnnnsoLS1t7mKdd5YsWcKiRYsMaV9++SXXXnst/fv3Z9KkSXzxxRfN\nVLrzQ2lpKQ8++CCjR49myJAh/OEPf+D7778PxqW+m1ZhYSH33HMPw4YNY8iQIdx7770UFRUF41Lf\nZ8e3335Lnz59SE9PD6ZJXTetAwcOkJycHLZkZGQAUt9nw/r165kwYQL9+/dn8uTJfP3118GY1HfT\nSU9Pj/jZTk5OZubMmYDU9xlTQimlVEpKiho1apT68ssv1Z49e9TUqVPVjTfe2NzFOm/ouq5SU1NV\nUlKSevjhh4Pp2dnZql+/fmrVqlXqwIEDKiUlRfXt21d9//33zVjaXy6fz6d+97vfqRtuuEHt2rVL\nZWdnq3vuuUeNHDlSHTt2TOq7iem6riZNmqRmzZql9u/fr/bv36+mTZumrr/+eqWUfL7PlpMnT6or\nrrhCJSUlqW+++UYpJXV9Nrz//vtq+PDhqri42LC43W6p77Ngw4YNqm/fvmr9+vUqJydH/c///I8a\nOHCgysvLk/puYi6XK+xznZaWpnr37q02b94s9d0I0pFQ/g/UoEGD1D/+8Y9gWl5enkpKSlLbt29v\nxpKdH3744Qc1ffp0NXz4cDV27FhDR+KRRx5R06dPN+SfPn26Wrx48bku5nlh7969KikpSR04cCCY\n5nK51IABA1RaWprUdxMrLi5W8+fPV3l5ecG0jz/+WCUlJanjx49LfZ8lgXoN7UhIXTe9lJQUNW3a\ntIgxqe+mpeu6uvzyy1VqamowzefzqWuuuUZt3LhR6vssO3HihBo1apR65plnlFLy+W4MGdoEZGVl\ncfLkSYYNGxZM69SpEx07dgz+hCt+uh07dtC+fXvee+89OnXqZIhlZGQY6h1g+PDhUu8/Ufv27Xn5\n5Ze54IILgmmapgFQUVEh9d3E2rZtS0pKSvBzXVhYyDvvvMNFF11EXFyc1PdZ8MUXX/D555+zePFi\nQ7rUddPLzs6me/fuEWNS303r0KFDHDlyhIkTJwbTTCYT7777LpMmTZL6PstWrVqFzWbjrrvuAuTz\n3RjSkcD/5Q+QmJhoSE9ISAjGxE937bXXsmLFCtq2bRsWKywslHpvQq1atWLs2LGYTKf+a69du5ba\n2lpGjx4t9X0W3XnnnYwZM4Zdu3bxxBNPAPL5bmrHjh1j0aJFPPHEE8TFxRliUtdNLzs7m4KCAm64\n4QZGjRrF7NmzyczMBKS+m1pOTg4AJ06cYObMmYwcOZJp06axY8cOQOr7bCorK+ONN97grrvuwul0\nAlLfjSEdCaCmpgaTyYTVajWk22w2XC5XM5Xq16G2thabzWZIk3pvOp9++inPP/88N998Mz169JD6\nPovmzZvH+vXrGTx4MDfffDNFRUVS303s0UcfZdy4cVx22WVhManrplVbW0teXh5VVVU88MADvPTS\nSyQkJDB9+nQOHjwo9d3EqqqqAFi4cCFTp05lzZo19OrVi1mzZkl9n2Xr1q0jPj6ea665Jpgm9X3m\nLM1dgJ8Dh8OBrut4vV4sllNV4na7g71TcXbY7XY8Ho8hTeq9aWzYsIFHHnmEiRMncv/99wNS32dT\ncnIyACkpKYwdO5a0tDSp7yaUlpbGvn372LhxY8S41HXTcjgcbNu2DZvNFmxQPfXUU+zdu5e33npL\n6ruJBS5k3n777UyaNAmAPn36sH37dtatWyf1fRZt3LiRyZMnGy4mS32fOelI4B9XDlBSUhJcBygu\nLg77aUs0rfbt21NcXGxIk3r/v3vppZdITU1l+vTpLF68OHifhNR30yotLSU9PZ2rrroqmOZ0Ounc\nuTNFRUVS301ow4YNFBUVMXr0aACUUgDceuutXHfddVLXZ0FMTIxh22Qy0bNnT44ePSr13cQSEhIA\nSEpKCqZpmkb37t3Jz8+X+j5LsrOzyc3NNfwNB/mubAwZ2gT07t2b6Ohotm7dGkzLz8/nyJEjDB06\ntBlLdv67+OKL2bZtmyEtPT2dIUOGNFOJfvleeeUVUlNTueeee3jkkUeCnQiQ+m5qBQUFLFiwgN27\ndwfTKisrOXz4MD179pT6bkLPPvss77//Pv/85z/55z//yZo1awB44oknmDdvntR1E9uzZw+DBw9m\nz549wTSfz0dWVha9evWS+m5iffv2JSoqyvC3RCnFwYMH6dy5s9T3WZKRkUHbtm3p0aOHIV3q+8yZ\nly5durS5C9HczGYzlZWV/OUvf6FXr15UVVXx8MMP07VrV+68887mLt55JS0tjbi4OMaPHw9Ax44d\nSU1Nxev10qZNG9auXcv//u//8uSTT9K6detmLu0vT1ZWFvfeey+TJ0/mlltuoUUXz4wAAAoESURB\nVLq6Orhomka3bt2kvptQ27ZtSU9P58MPP6Rv376UlZXx6KOP4na7Wbp0qdR3E4qJiaFly5bBxWQy\n8de//pUZM2bQq1cv+VvSxFq3bs0HH3zA5s2b6d27N5WVlaxYsYKsrCyeeeYZevbsKfXdhKxWK7W1\ntbzyyit07doVs9nMSy+9xJYtW1i+fDn9+vWT+j4L1q9fj9Vq5dprrzWky9+TRmju+Wd/Ljwej3ry\nySfVsGHD1ODBg9W8efNUWVlZcxfrvDN9+nTDcySUUurf//63mjhxourXr5+65ppr1JYtW5qpdL98\nzz33nEpKSoq4rFy5Uikl9d3UysrK1IMPPqhGjBihBg0apObOnasKCwuDcanvs+Po0aOG50goJXXd\n1AoLC9WCBQvUiBEj1IABA9TNN9+svvvuu2Bc6rtp6bquVq9ercaMGaP69eunpk6dqrZt2xaMS303\nvdtuu03Nnz8/Ykzq+8xoStUNNBVCCCGEEEKIMyT3SAghhBBCCCEaTToSQgghhBBCiEaTjoQQQggh\nhBCi0aQjIYQQQgghhGg06UgIIYQQQgghGk06EkIIIYQQQohGk46EEEL8gi1cuJDk5OTTLjNmzABg\nxowZzJ49u1nLe/z4ccaNG0dubi5LliwhOTmZL774ImLeTz/9lOTkZFatWnWOSxnZ3//+d+64447m\nLoYQQvxsyHMkhBDiF+yHH37g2LFjwe1ly5ZhNptZvHhxMC0mJoaePXty4MABNE2jR48ezVFUAP77\nv/+bxMREHnjgAaqqqrj66qvRNI1NmzYRHR0dzFdZWcnEiRNp164db7/9NmazudnKHKCUYvLkycya\nNYvrrruuuYsjhBDNztLcBRBCCPHTdenShS5dugS3Y2JiMJvNDBw4MCxvz549z2XRwmRmZvLRRx+x\nefNmwF/Wxx57jFtvvZWUlBRD52fFihVUVFTw17/+9WfRiQDQNI05c+awfPlyJk6ciM1ma+4iCSFE\ns5KhTUII8StRf2hTcnIy77zzDvfddx+DBg1ixIgRvPjii1RVVfHQQw9x8cUXM2rUKJ555hlCf7wu\nLy9n8eLFjBw5kv79+3PTTTexffv2Hz3/mjVruOSSS2jdunUw7bLLLuP666/nzTffZNeuXQBs27aN\n9evXs2DBgrBfT9atW8dvf/tb+vXrx/jx43nllVeo/8P6W2+9xfXXX8+AAQPo378/kydP5uOPPw7G\n169fz6BBg3jzzTcZOXIkw4cPJz8/n5ycHG677TaGDx/OgAEDuPHGG4OdnoBx48ZRXV3Nhg0bfrzC\nhRDiPCcdCSGE+BV7+umnadWqFatWreLyyy/nT3/6E1OmTMHpdPLiiy9yxRVXsGbNGv71r38B4HK5\nmD17Np9//jkLFizgj3/8I3FxccyePZvMzMwGz3Py5Ek+++wzrrzyyrDYQw89RHx8PI8//jhut5tl\ny5YxdOhQZs2aZci3cuVKHnvsMcaOHcvq1auZPHkyqampPPvss8E8r732GsuXL+e3v/0tf/7zn3nm\nmWfQNI0FCxZQXFwczFdbW8u6det46qmneOihh2jfvj233XYbbrebFStWsHLlSmJjY7njjjvIz88P\n7me32xk7diybNm36yXUuhBDnCxnaJIQQv2J9+/Zl0aJFAPTu3ZsNGzYQHx/PkiVLABgxYgTvvfce\n3377LRMmTODdd9/lu+++Y/369Vx00UWA/1eFKVOmkJKSwmuvvRbxPBkZGXg8Hvr37x8Wi4uLY+nS\npdx1113813/9FwUFBaxevRpN04J5KioqePnll5kxYwYPPvggAKNHj8bpdPLcc88xc+ZMEhMTOXLk\nCLfeeitz5swJ7tu+fXumTp3Krl27uOKKKwDQdZ27776bMWPGAFBYWEhOTg7z5s0LpvXr14/Vq1fj\ncrkM5e3Xrx/PP/88LpcLu93e+EoXQojzhPwiIYQQv2KhDftWrVphNpsNaZqmERcXx4kTJwD4+uuv\nSUxM5MILL8Tr9eL1etF1ncsvv5xt27bhdrsjnidwVb9Tp04R47/5zW+46qqr2LZtGwsXLgzLt2PH\nDlwuF5dffnnwvF6vl3HjxuH1evnmm28AWLx4MfPnz6eiooJvv/2Wd999l3Xr1gHg8XgMx7zwwguD\n6wkJCXTr1o2HH36YhQsXsmnTJjRNY+HChWHDqzp27IjH4zH8wiGEEL9G8ouEEEL8ioXOlBQQFRXV\nYP7jx49TWFhI3759I8bLy8tJTEwMS6+srATA6XQ2eOzRo0fz/vvvc9lll0U8L9Dg9LWBRn1OTg5L\nliwhPT0dm81G9+7d6dWrF0DYvRSh79NkMvG3v/2NlStX8sknn5CWlobVauXKK69k6dKltGjRIpg3\n8B4C70kIIX6tpCMhhBDijMXGxtKjRw+efvrpiPFWrVqdNr2ystLQKG/MeQFeeOEFOnbsGBZPTEzE\n5/MxZ84cYmJi2LBhA8nJyVgsFrKysnjvvfd+9ByJiYk89thjLFu2jP379/Phhx+yZs0a2rRpw8MP\nPxzMF/h1pqH3KoQQvxYytEkIIcQZGzp0KAUFBSQkJHDRRRcFl08//ZS1a9ditVoj7tehQwfAfy/C\nTzFw4ECsViulpaWG87pcLlJTUyktLaW0tJTc3FxuuOEG+vbti8Xiv1YWmHlJ1/UGj79z504uueQS\n9u3bh6Zp9OnTJzhrVP0yFxYWYrVaadOmzU96L0IIcb6QXySEEEKcscmTJ/PGG29w8803c9ttt5GY\nmMjnn3/Oa6+9xt133224QTrUkCFDcDgcbN++naSkpEaft02bNsycOZNnn32WiooKBg8ezJEjR0hJ\nSaFly5b07NkTq9VK+/btef3114mPjycmJobNmzezdu1aAGpqaho8fp8+fXA4HNx3333cfffdxMfH\ns2XLFr7//ntuv/12Q94dO3YwfPjwBjtNQgjxayG/SAghhDhj0dHRvPnmmwwYMICnnnqKOXPm8J//\n/IdHHnmEuXPnNrif0+nksssuC3suQ2Pcf//9zJ8/n/fee49bb72V1NRUxo4dy+uvv47NZkPTNFat\nWkV8fDwPPPAA8+fPZ/fu3bz88st07dqVjIyMBo9tt9t59dVX6d69O48//jh/+MMf+Pe//83y5cu5\n6qqrgvlqa2vZunUrEyZM+MnvQwghzheaqn/3mRBCCHEWZGZmctNNN/HZZ59FvCH7lyAtLY2UlBQ+\n+eQTebK1EOJXT36REEIIcU7079+f8ePH8+qrrzZ3UX4SXdd59dVXmTt3rnQihBAC6UgIIYQ4h5Yu\nXcpHH31Ebm5ucxel0f7xj3/QoUMHpk6d2txFEUKInwUZ2iSEEEIIIYRoNPlFQgghhBBCCNFo0pEQ\nQgghhBBCNJp0JIQQQgghhBCNJh0JIYQQQgghRKNJR0IIIYQQQgjRaNKREEIIIYQQQjTa/wfwB/8F\nPhEwBAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation(test_system, update)\n", + "frame= test_system.results\n", + "plot_results(frame.S, frame.I, frame.N, frame.D)\n", + "decorate(title='Fraction of Population Infected with HIV Over Time')\n", + "#plt.rcParams[\"figure.figsize\"] = [13,8]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def logistic(x, A=0, B=1, C=1, M=0, K=1, Q=1, nu=1):\n", + " \"\"\"Computes the generalize logistic function.\n", + " \n", + " A: controls the lower bound\n", + " B: controls the steepness of the transition \n", + " C: not all that useful, AFAIK\n", + " M: controls the location of the transition\n", + " K: controls the upper bound\n", + " Q: shift the transition left or right\n", + " nu: affects the symmetry of the transition\n", + " \n", + " returns: float or array\n", + " \"\"\"\n", + " exponent = -B * (x - M)\n", + " denom = C + Q * exp(exponent)\n", + " return A + (K-A) / denom ** (1/nu)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def compute_factor(spending):\n", + " \"\"\"Reduction factor as a function of spending.\n", + " \n", + " spending: dollars from 0 to 1200\n", + " \n", + " returns: fractional reduction in beta\n", + " \"\"\"\n", + " return logistic(spending, M=40000, K=.35, B=0.0001)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0., 5000., 10000., 15000., 20000., 25000.,\n", + " 30000., 35000., 40000., 45000., 50000., 55000.,\n", + " 60000., 65000., 70000., 75000., 80000., 85000.,\n", + " 90000., 95000., 100000.])" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spending = linspace(0, 100000, 21)\n", + "spending" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "percent_reduction = compute_factor(spending) * 100\n", + "\n", + "plot(spending, percent_reduction)\n", + "\n", + "decorate(xlabel='condom campaign spending (USD)',\n", + " ylabel='Percent reduction in infection rate',\n", + " title='Effect of providing condoms on infection rate',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig04.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def calc_total_infected(system):\n", + " \"\"\"Fraction of population infected during the simulation.\n", + " \n", + " system: System object with results.\n", + " \n", + " returns: fraction of population\n", + " \"\"\"\n", + " frame = system.results\n", + " return frame.S[system.t0] - frame.S[system.t_end]\n", + "\n", + "def add_condoms(system, spending):\n", + " \"\"\"Modifies system to model the effect of hand washing.\n", + " \n", + " system: System object\n", + " spending: campaign spending in USD\n", + " \"\"\"\n", + " factor = compute_factor(spending)\n", + " system.contact_rate *= (1-factor)\n", + " \n", + "def sweep_condoms(spending_array):\n", + " \"\"\"Run simulations with a range of spending.\n", + " \n", + " spending_array: array of dollars from 0 to 1200\n", + " \n", + " returns: Sweep object\n", + " \"\"\"\n", + " sweep = SweepSeries()\n", + " for spending in spending_array:\n", + " #system = test_system = make_system(S=318000, I=550, N=550, D=0, contact_rate = .11, safe_rate = 0, death_rate=.006, t_end =75)\n", + " add_condoms(system, spending)\n", + " run_simulation(system, update)\n", + " sweep[spending] = calc_total_infected(system)\n", + " return sweep " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'system' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0minfected_sweep\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msweep_condoms\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mspending\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minfected_sweep\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m decorate(xlabel='Condom campaign spending (USD)',\n", + "\u001b[1;32m\u001b[0m in \u001b[0;36msweep_condoms\u001b[1;34m(spending_array)\u001b[0m\n\u001b[0;32m 28\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mspending\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mspending_array\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;31m#system = test_system = make_system(S=318000, I=550, N=550, D=0, contact_rate = .11, safe_rate = 0, death_rate=.006, t_end =75)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 30\u001b[1;33m \u001b[0madd_condoms\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msystem\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mspending\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 31\u001b[0m \u001b[0mrun_simulation\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msystem\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mupdate\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[0msweep\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mspending\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcalc_total_infected\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msystem\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'system' is not defined" + ] + } + ], + "source": [ + "infected_sweep = sweep_condoms(spending)\n", + "\n", + "plot(infected_sweep)\n", + "\n", + "decorate(xlabel='Condom campaign spending (USD)',\n", + " ylabel='Total fraction infected',\n", + " title='Effect of condoms on total infections',\n", + " legend=False)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def linear(x, slope=1):\n", + " value = slope*x\n", + " return value\n", + "\n", + "def compute_factor_ARV(spending):\n", + " return linear(spending,slope=.000015)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# def compute_factor_ARV(spending):\n", + "# \"\"\"Reduction factor as a function of spending.\n", + " \n", + "# spending: dollars from 0 to 1200\n", + " \n", + "# returns: fractional reduction in beta\n", + "# \"\"\"\n", + "# return logistic(spending, M=40000, K=.2, B=0.0001)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "percent_reduction = compute_factor_ARV(spending) * 100\n", + "\n", + "plot(spending, percent_reduction)\n", + "\n", + "decorate(xlabel='ARV campaign spending (USD)',\n", + " ylabel='multiplier increase safe rate',\n", + " title='Effect of providing ARV on safe rate',\n", + " legend=False)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def add_ARV(system, spending):\n", + " \"\"\"Modifies system to model the effect of hand washing.\n", + " \n", + " system: System object\n", + " spending: campaign spending in USD\n", + " \"\"\"\n", + " factor = compute_factor_ARV(spending)\n", + " system.safe_rate *= factor\n", + " \n", + "def sweep_ARV(spending_array):\n", + " \"\"\"Run simulations with a range of spending.\n", + " \n", + " spending_array: array of dollars from 0 to 1200\n", + " \n", + " returns: Sweep object\n", + " \"\"\"\n", + " sweep = SweepSeries()\n", + " for spending in spending_array:\n", + " system = test_system = make_system(S=318000, I=550, N=550, D=0, contact_rate = .11, safe_rate = .02, death_rate=.006, t_end =75)\n", + " add_ARV(system, spending)\n", + " run_simulation(system, update)\n", + " sweep[spending] = calc_total_infected(system)\n", + " return sweep " + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig05.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nPgsXLtT5fa1OSUkJ48aNo0uXLrz77rucPn2aDRs2oNFoWLhwIU8//TTW1tbMmzePsLAwQkND8fLy\nIj8/nzFjxpCRkcGYMWNwcnLiyJEj/Otf/+LGjRvaJKrRaBgzZgzXrl1j5MiRqNVq9u7dy3vvvUdR\nUREDBw7knXfeqXL+mu5BzZgxgx07dhAWFsb48eO5evUqa9as4ejRo6xduxYLCwvtse+99x5OTk68\n9tprZGVl8dVXXzFlyhR27dqFvr4+V65c4ZVXXsHf35+ZM2dSXl7OmjVreOWVV/j+++8JCgp6qPf1\niaGIRvXOO+8oarX6vn8uXLigPf6TTz5R1Gq1kpCQUGNbWVmZEhoaqowaNUopLS3VHldQUKAMGDBA\nGTZsmLZtxIgRSkhIiJKVlaVtu3btmuLr66vMmzevxmtW54UXXlACAwOVlJQUbVtRUZHy3HPPKQEB\nAUpmZqaiKIqyfv16Ra1WK0ePHn3g+3Pw4EFFrVYr//d//6dt+9vf/qao1WolIiKiyrEfffSRolar\nlT179iiZmZnaPwkJCUp4eLjSpUsXpXv37kpubm6V57377ruKn5+fkpOTo21LSkpSfHx8lMWLF983\nPo1Go4SEhCh9+/ZV8vPzte3Z2dlKSEiI0rt3b6WkpERRFEXp2bOn4uPjo8TGxmqPS0lJUdRqtfL2\n22/f9zqVr+3u9/a5555TOnTooKSmpmrbioqKlKFDhyqBgYHa1/Pjjz8qarVaOX78uPa4iRMnKqGh\noYpGo6lyneHDhyudO3fW/vsvf/mL0qZNm1rFVvnv+fPnVzlu4sSJip+fn1JcXKwoiqLExcUparVa\nWbp0aZVz+fv7V3mPFEVR5s2bp6jVaiUmJkZRFEVZsWKFolarlS1btmiPKSsrU0aOHKn07NlTKSsr\nq/b8hw4dUtRqtbJx40ZFURRl9+7dilqtVv7zn/9Uud7mzZsVtVqtLFy4sMrzRo4cqZSVlWmP++yz\nzxS1Wq0cOXJEURRF+fzzzxW1Wl3ld+zmzZvKwIEDlZUrV973fWxKZKjtEfHhhx+yfPnyav94eHjU\n6lwXLlwgISGB/v37k5ubS1ZWFllZWRQVFdG3b18uXrxIWloamZmZREdHM2TIkCoz6lq2bMn69et5\n+eWXdb7mzZs3OXPmDMOGDcPZ2VnbbmxszEsvvURRURGHDx+u1euAikkFgHbY5O6/1zTcNmXKFLp1\n66b9ExoayuzZswkMDGTt2rVYWVlVOX7o0KGUlJRUGaLaunUriqI8cJjt7NmzZGRkMG7cuCr3Kmxs\nbBgzZgwpKSlcuHBB2966desqvUZnZ2dsbW25efPmg96KKtLS0jh//jzPPfccTk5O2nZjY2P++Mc/\ncvv27fu+38uWLWPdunVVeoxZWVlYWlrW2bT5p59+usq/fX19KSkp0Q63VSciIgJfX1/s7Oy0v7dZ\nWVnaIcLKIau9e/fi4OBQ5Rp6enosWLCAlStXolKpdIpx9+7dAPzpT3+q0j548GA8PT2r/E5Axe+e\nnt6dj802bdoAaH9+lb/7c+fO1f7c7ezs2L59O2PHjtUppqZAhtoeER06dNBpVpsuKteqzJ8/n/nz\n51d7THJyMvr6+gB4enre8/iD1m78VlJSElCRtH6rVatW2mvWRnFxMREREVhZWeHk5KRdj+Hm5oaZ\nmRkHDhwgMzMTOzu7Ks+bNWsWarWasrIyoqKi+PrrrwkJCWH+/Pn3JB2ALl264OjoyLZt2xg+fDhQ\nkXjatWtX7eu5W2VMD3rdAQEBANVOmTcyMqKsrOxBb8fvum5N9PX1uXHjBosWLeLq1avcuHGD9PR0\n7WN14bdTt42MjICKtTU1SUhIoKSkhG7dulX7eEpKClDx+j08PO5JMLX9P5SYmIitrW21PxcvLy+O\nHTtWpa2m11T583vmmWfYuXMnP//8Mz///DOOjo707t2b5557rs6XOTzOJPE8gSr/Y0+fPp3AwMBq\nj/Hy8uL69esAOn87vB/lPts6VcZT25lhu3fv1t7ovntK7N02bdrEpEmTqrT5+/tr72H17NkTf39/\nXnvtNV5++WW+++477YdFJT09PQYPHsx3333HrVu3yMrK4vz58/z1r399YIy1fd13f1t+GA/7fn/5\n5ZcsXLgQLy8vOnXqRFhYGO3bt+ebb75h27ZtdRLj73mt5eXlBAcH88orr1T7eGXvrry8vEF+b3/7\nHj7omoaGhnz66adcunSJiIgIDhw4wPr161m7di1vv/02L7300kPH/CSQxPMEcnV1BcDMzIzu3btX\neSw6Oprc3FxMTEy0C/buXs1f6cMPP8Ta2vqeIYgHXfPatWv3PFaZ4O4egtNF5TDbe++9pz1/pbS0\nNP7xj3+wYcOGexLPbw0YMICxY8eyatUqPvroI9599917jhk6dChff/01e/bsITU1FQMDA5555pkH\nxnj36757EgHced11vTAS7nyzv9/7XdN1CwsL+fTTTwkJCeF///tflR5ObYf86lrz5s0pKCi45/c2\nOzubyMhI7cJgFxcX7eu82549e9i+fTtvv/22TtdzdXXlyJEjZGdn39PriYuLq/XvbFJSEqmpqXTs\n2BFfX1/eeOMNkpOTmTBhAl999ZUknl/JPZ4nkL+/Pw4ODnz33XcUFBRo2/Pz85kxYwazZs1CX18f\nJycnfH192bJlS5UptAkJCaxYsUL7IVT5zfV+3w4dHBzw9/dn06ZNVUqnaDQali9fjpGRESEhITq/\nhry8PPbt20eLFi2YMGEC/fv3r/Jn7Nix+Pj4EBsby7lz5x54vjfffBNXV1e+/fbbaqeUt2nTBm9v\nb/bt28fu3bvp3r37PUN41QkICMDe3p6VK1dWea9v3brF6tWrcXZ21t4HeBiVyaGyN1N53o0bN5KW\nlqY9TqPR8O2332JiYqIdrvrtz6+wsJDi4mJatGhRJemcO3eOkydP1nrYry7169eP8+fPa2cgVlq6\ndClvvPEGV69eBSqmlaenp2vv0VRavnw5+/fvx8bGRvu67ze017dvX6CiB3i3bdu2cePGDe3juvrs\ns8+YNGmSdtgSKpKpo6NjnfV2nwTS43lE7Ny5s8aSOUCtVlsbGhoye/Zs/vznPzN8+HBGjBiBsbEx\na9euJTk5mQULFmBgUPGjnzVrFpMnT+b555/nhRdeQE9Pj5UrV2JlZaWdXFA5rr1s2TJ69epFaGho\ntdedPXs2EyZMYMSIEYwePRpzc3M2bdrE+fPnmT17drX3V2qyfft2SkpKeP7552s8ZtSoUcydO5fw\n8HD8/f3vez4zMzPef/99/vSnPzF79mw2bNigfQ8qDR06lC+//JLbt2/XeG/st4yMjPjrX//KX/7y\nF55//nlGjBhBeXk5a9euJSsriyVLltTJkFDlz+B///sfPXv2pF+/fsyePZtJkyZp328zMzPt+z1n\nzhztNODK565atYq0tDQGDx6Mn58fP/74I6amprRo0YLY2FjWrVun/XDMz8+vMo24oUydOpWdO3cy\nbdo0Ro8eTatWrTh+/DibN2+mb9++2inno0ePJjw8nOnTpzN27Fg8PT3Zu3cvx44dY968eejp6WFr\na4tKpWLXrl04OTnx1FNP3XO90NBQ+vTpw9dff01ycjJdunTh2rVr/PDDD7Ro0aJWE2wA/vCHP7B5\n82b+8Ic/8OKLL2JpacmRI0eIiopi5syZdfIePQkk8TwiPvjgg/s+XtsyH0899RTW1tZ8/vnnfPbZ\nZ+jp6dG6dWs+//zzKt/iunbtyrfffssnn3zC0qVLMTY2pnPnzrz11ls4ODgAFTdMIyIi2LBhA5GR\nkTUmnqCgIFavXs0nn3zC119/TXl5Ob6+vixdurTGezQ12bRpE/r6+jz77LM1HjN06FA+/PBD7Zqe\nB+nduzeDBg1i69atLFu2jKlTp1Z5fPDgwSxatAhTU9NaxTto0CCsra357LPP+PTTTzEwMKB9+/b8\n5z//qbMbyoMHD2bHjh2sXbuWqKgo+vXrR6dOnfj+++/55JNPWLZsGYqi0KZNGz7//PMqC4lDQkII\nCwtj9+7dHDlyhIEDB/Lpp5/ywQcfsG7dOkpKSnB1dWXq1Km4u7vz5z//maNHj9b6Z1YXmjVrxg8/\n/MAnn3zC1q1byc3NpXnz5tp7dJVJ3MzMjO+++45FixaxefNm8vPzadWqFZ988glhYWEAWFhYMH36\ndJYvX87//d//VTsRQ6VSsWTJEr788kt++ukndu3ahb29PaNGjeL111+vdfJt06YNX3/9NZ999hlf\nffUV+fn5tGzZkvfff79eygI9rlTK/cZPhBBCiDomg45CCCEalCQeIYQQDUoSjxBCiAb1RE4uKCoq\n4ty5czg4ONTZKmwhhHjSlZWVkZGRgb+/PyYmJvV2nScy8Zw7d07qIgkhxO+0atWqezZTrEtPZOKp\nnAa8atWqWq88FkKIpio1NZWxY8dqP0PryxOZeCqH15ydneus8KYQQjQV9X2L4olMPDU5e/UmZ2Iz\ncHW0oIufM2Ymsp2xEEI0tCaVeE5cTCO/sISc/GKuJOQQ7OdMu1b26Ok9fEkTIYQQumlS06nbet0p\n+lhcUsaB00ms2RlLckbt9pgXQgjx+zWpxBPc1pkhPb2wsTDWtmXmFrJh7xUijt0gv7CkEaMTQoim\noUkNtQF4OlvhNtCC05cziLqQRklZRcn02Phsrifn0rmtM+297dHXb1I5WQghGkyT/HTV19ejo68T\nY5/ypbW7jba9pLScw9HJ/LAjloS0W40YoRBCPLmaZOKpZGFmRFjXFgzr1YpmVndW6WbfKuKn/Vf5\n5UgceQWaxgtQCCGeQE068VRyd7Jk5AAferRvjpHhnfnrVxNz+H77JaIuplFaVvMuhkIIIXQniedX\n+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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "infected_sweep_ARV = sweep_ARV(spending)\n", + "\n", + "plot(infected_sweep_ARV)\n", + "\n", + "decorate(xlabel='Condom campaign spending (USD)',\n", + " ylabel='Total fraction infected',\n", + " title='Effect of ARV on total infections',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig05.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "9090" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "population = 318000\n", + "budget = 100000\n", + "price_per_dose = 11\n", + "max_doses = int(budget / price_per_dose)\n", + "dose_array = linrange(max_doses)\n", + "max_doses" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# def sweep_doses(dose_array):\n", + "# \"\"\"Runs simulations with different doses and campaign spending.\n", + " \n", + "# dose_array: range of values for number of vaccinations\n", + " \n", + "# return: Sweep object with total number of infections \n", + "# \"\"\"\n", + "# sweep = SweepSeries()\n", + "# for doses in dose_array:\n", + "# fraction = doses / population\n", + "# spending = budget - doses * price_per_dose\n", + " \n", + "# system = make_system(S=318000, I=550, N=550, D=0, contact_rate = .11, safe_rate = .02, death_rate=.006, t_end =75)\n", + "# add_condoms(system, fraction)\n", + "# add_ARV(system, spending)\n", + " \n", + "# run_simulation(system, update)\n", + "# sweep[doses] = calc_total_infected(system)\n", + "\n", + "# return sweep" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#infected_sweep = sweep_doses(dose_array)\n", + "# plot(infected_sweep)\n", + "\n", + "# decorate(xlabel='Doses of vaccine',\n", + "# ylabel='Total fraction infected',\n", + "# title='Total infections vs. doses',\n", + "# legend=False)\n", + "\n", + "# savefig('chap05-fig06.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "spending_array= linspace(0, 100000, 21)\n", + "\n", + "def sweep_spending(system,spending):\n", + " sweep = SweepSeries()\n", + " for spending in spending_array:\n", + " system = make_system(S=318000, I=550, N=550, D=0, contact_rate = .11, safe_rate = .02, death_rate=.006, t_end =75)\n", + " #print('1')\n", + " #print(system)\n", + " add_ARV(system, 100000-spending)\n", + " #print('2')\n", + " #print(system)\n", + " add_condoms(system, spending)\n", + " #print('3')\n", + " #print(system)\n", + " run_simulation(system, update)\n", + " sweep[spending] = calc_total_infected(system)\n", + " return sweep" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig06.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "spending_array= linspace(0, 1, 50)\n", + "\n", + "def sweep_spending(system,spending):\n", + " sweep = SweepSeries()\n", + " for spending in spending_array:\n", + " system = make_system(S=318000, I=550, N=550, D=0, contact_rate = .11, safe_rate = .02, death_rate=.006, t_end =75)\n", + " #print('1')\n", + " #print(system)\n", + " add_ARV(system, (1-spending)*100000)\n", + " #print('2')\n", + " #print(system)\n", + " add_condoms(system, spending*100000)\n", + " #print('3')\n", + " #print(system)\n", + " run_simulation(system, update)\n", + " sweep[spending] = calc_total_infected(system)\n", + " return sweep" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig06.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nUStnohDQJ9BTal+4loei0tp/TCEiIiJqas0apAICAmBtbY24uDipLy0tDenp6ejVq1et/desWSNd\nxlctISEBzs7OcHR0REREBHQ6HeLj46XtZ86cgcFgQERERNOdCBHJpou3PTycrQEAeoOIuEu8H5KI\niIiaX7MGKaVSiQkTJmDJkiU4cuQILl26hDlz5qB3794IDQ1FRUUFcnNzpcv1Jk+ejMOHD+PTTz9F\namoqtm/fjrVr12L69OkQBAHu7u549NFH8fe//x1nzpzB6dOnsXDhQowYMaLOES4iav0EQUC/oLuj\nUldvFSKvsFzGioiIiKg9avYFeWfNmoVhw4YhNjYWkyZNgpeXFz7++GMAQHx8PAYMGCCNMA0YMADL\nli3DN998g2HDhmHt2rVYsGABxo8fLx3vH//4B8LDw/HCCy/g5ZdfRp8+ffDmm28292kRUTPycrVB\nJ087AIAoijh+IUPmioiIiKi9EURRFOUuormlpaUhJiYGBw8ehI+Pj9zlENEfkH+nHFv3J6H6I2zE\nA13g624rc1VERETUltwvNzT7iBQRUWNwtrdE946OUvvEhUy0w78LERERkUwYpIio1erdwwOmJlUf\nYzkFZUi+XShzRURERNReMEgRUatlY6VEcFcXqR13KQsGA0eliIiIqOkxSBFRqxYe4AZzpQkAoLBE\ni2tpHJUiIiKipscgRUStmoXSFCHdXKX26SvZvFeKiIiImhyDFBG1esFdXGBmWvVxpi7SICX9jswV\nERERUVvHIEVErZ6FuSmCuty9V4qjUkRERNTUGKSIqE0IVblKM/jlFpbjVlaxzBURERFRW8YgRURt\ngpWFGXp2dpbav3BUioiIiJoQgxQRtRlhKlcoFAIAICu/FOm5JTJXRERERG0VgxQRtRk2Vkp07+gk\ntU9fyZGxGiIiImrLGKSIqE0J93eDQqgalUrLKUZWfqnMFREREVFbxCBFRG2KvY05VB0cpPbpK9ky\nVkNERERtFYMUEbU5EQHuEH4dlbqZWYTcgnKZKyIiIqK2hkGKiNocRzsLdPG2l9qnEzkqRURERI2L\nQYqI2qTI7u7Sv6+nFUJdpJGxGiIiImprGKSIqE1ycbBEJ087qX2G90oRERFRI2KQIqI2K6LGqFTS\n7ULcKdHKWA0RERG1JQxSRNRmeThbw9fdFgAgiiLOJHJdKSIiImocDFJE1KbVvFcqMVWNkrIKGash\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "test_system = make_system(S=318000, I=550, N=550, D=0, contact_rate = .11, safe_rate = .02, death_rate=.006, t_end =75)\n", + "infected_sweep = sweep_spending(test_system,spending_array)\n", + "plot(infected_sweep)\n", + "\n", + "decorate(xlabel='Fraction Spent on Condom Distribution',\n", + " ylabel='Total fraction infected',\n", + " title='Total infections vs. spending on condoms',\n", + " legend=False)\n", + "plt.rcParams[\"figure.figsize\"] = [13,8]\n", + "\n", + "savefig('chap05-fig06.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/code/chap01mine.ipynb b/code/chap01mine.ipynb index c0afab6f..b5511d95 100644 --- a/code/chap01mine.ipynb +++ b/code/chap01mine.ipynb @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -164,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -183,15 +183,15 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [ { "ename": "SyntaxError", - "evalue": "invalid syntax (, line 1)", + "evalue": "invalid syntax (, line 1)", "output_type": "error", "traceback": [ - "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m UNITS.\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m UNITS.\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" ] } ], @@ -208,9 +208,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "9.8 meter/second2" + ], + "text/latex": [ + "$9.8 \\frac{meter}{second^{2}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a = 9.8 * meter / second**2\n", "a" @@ -227,9 +244,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "4 second" + ], + "text/latex": [ + "$4 second$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t = 4 * second\n", "t" @@ -246,9 +280,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "156.8 meter" + ], + "text/latex": [ + "$156.8 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "h = a * t**2\n", "h" @@ -267,9 +318,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "8.817885349720552 second" + ], + "text/latex": [ + "$8.817885349720552 second$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "h = 381 * meter\n", "t = sqrt(2 * h / a)\n", @@ -287,9 +355,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "86.41527642726142 meter/second" + ], + "text/latex": [ + "$86.41527642726142 \\frac{meter}{second}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "v = a * t\n", "v" @@ -306,7 +391,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": true }, @@ -318,9 +403,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "193.30546802805438 mile/hour" + ], + "text/latex": [ + "$193.30546802805438 \\frac{mile}{hour}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "v.to(mile/hour)" ] @@ -336,9 +438,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "20.070408163265306 second" + ], + "text/latex": [ + "$20.070408163265306 second$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Solution goes here\n", "meter = UNITS.meter\n", @@ -373,7 +492,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": true }, @@ -391,9 +510,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare" ] @@ -407,20 +574,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.olin" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.wellesley" ] @@ -454,9 +643,799 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap09-fig01.pdf\n" + ] + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap09-fig02.pdf\n" + ] + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap10-fig01.pdf\n" + ] + } + ], + "source": [ + "newfig()\n", + "plot(xs, label='x')\n", + "plot(ys, label='y')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Position (m)')\n", + "\n", + "savefig('chap10-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot the velocities the same way." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "vxs = system.results.vx\n", + "vys = system.results.vy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The x velocity slows down due to drag. The y velocity drops quickly while drag and gravity are in the same direction, then more slowly after the ball starts to fall." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap10-fig02.pdf\n" + ] + } + ], + "source": [ + "newfig()\n", + "plot(xs, ys, label='trajectory')\n", + "\n", + "decorate(xlabel='x position (m)',\n", + " ylabel='y position (m)')\n", + "\n", + "savefig('chap10-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also animate the flight of the ball. If there's an error in the simulation, we can sometimes spot it by looking at animations." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "animate2d(system.results.x, system.results.y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Run the simulation for a few different launch angles and visualize the results. Are they consistent with your expectations?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Finding the range" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we'll find the time and distance when the ball hits the ground." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "condition.set(duration=7*s)\n", + "system = make_system(condition)\n", + "run_odeint(system, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have to interpolate y to find the landing time, then interpolate x to find the range." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def interpolate_range(results):\n", + " \"\"\"Computes the range of the ball when it lands.\n", + " \n", + " results: TimeFrame with x and y\n", + " \n", + " returns: distance in meters\n", + " \"\"\"\n", + " xs = results.x\n", + " ys = results.y\n", + " t_end = ys.index[-1]\n", + " \n", + " if ys[t_end] > 0:\n", + " msg = \"\"\"The final value of y is still positive;\n", + " looks like the simulation didn't run\n", + " long enough.\"\"\"\n", + " raise ValueError(msg)\n", + " \n", + " t_peak = ys.argmax()\n", + " descent = ys.loc[t_peak:]\n", + " T = interp_inverse(descent, kind='cubic')\n", + " \n", + " t_land = T(0)\n", + " X = interpolate(xs, kind='cubic')\n", + " return X(t_land)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the result." + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(102.72237841710975)" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "interpolate_range(system.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** The baseball stadium in Denver, Colorado is 1,580 meters above sea level, where the density of air is about 1.0 kg / meter$^3$. How much farther would a ball hit with the same velocity and launch angle travel?" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Hint: rather than modify `condition`, make a copy\n", + "\n", + "condition2 = Condition(condition)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(109.07212101030548)" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Solution goes here\n", + "condition2.rho = 1 * kg/m**3\n", + "system2 = make_system(condition2)\n", + "run_odeint(system2, slope_func)\n", + "interpolate_range(system2.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Optimal launch angle\n", + "\n", + "To find the launch angle that maximizes range, we need a function that takes launch angle and returns range." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def range_func(angle, condition): \n", + " \"\"\"Computes range for a given launch angle.\n", + " \n", + " angle: launch angle in degrees\n", + " condition: Condition object\n", + " \n", + " returns: distance in meters\n", + " \"\"\"\n", + " condition.set(angle=angle)\n", + " system = make_system(condition)\n", + " run_odeint(system, slope_func)\n", + " x_range = interpolate_range(system.results)\n", + " return x_range" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's test `range_func`." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Wall time: 277 ms\n" + ] + }, + { + "data": { + "text/plain": [ + "array(109.07212101030548)" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%time range_func(45, condition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And sweep through a range of angles." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "30.0 102.22512880611951\n", + "33.0 105.61073422582602\n", + "36.0 107.97200490961362\n", + "39.0 109.32525682573122\n", + "42.0 109.68662225002511\n", + "45.0 109.07212101030548\n", + "48.0 107.49791212235652\n", + "51.0 104.98068732786591\n", + "54.0 101.53816371252147\n", + "57.0 97.1896982361027\n", + "60.0 91.95703077946803\n" + ] + } + ], + "source": [ + "angles = linspace(30, 60, 11)\n", + "sweep = SweepSeries()\n", + "\n", + "for angle in angles:\n", + " x_range = range_func(angle, condition)\n", + " print(angle, x_range)\n", + " sweep[angle] = x_range" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting the `Sweep` object, it looks like the peak is between 40 and 45 degrees." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('