{
 "metadata": {
  "name": "",
  "signature": "sha256:5fe276a0f3240df9d69d21535f42fc4158d20cc0893fb90561265e15545b3e65"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "This [IPython](http://ipython.org/) notebook is a direct translation of Chapter 1 of\n",
      "\n",
      ">D. J. Higham and N.J. Higham.  \n",
      ">[MATLAB Guide](http://www.ec-securehost.com/SIAM/ot92.html), Second edition,  \n",
      ">Society for Industrial and Applied Mathematics, Philadelphia, PA, USA,  \n",
      ">2005, ISBN 0-89871-578-4\n",
      "\n",
      "with MATLAB code converted to equivalent Python/Numpy (and IPython/Matplotlib/Scipy) code. There are a small number of additions in the text to address Python/Numpy/IPython differences and additions.  You can find out more about IPython and the IPython Notebook [here](http://ipython.org/) and in reference [2].  All the errors here are, of course, mine.  I hope you find it useful.  \n",
      "\n",
      "Don MacMillen:    don (sometimes) at macmillen dot net\n",
      "\n",
      "#Chapter 1 A Brief Tutorial#\n",
      "\n",
      "The best way to learn Python/Numpy is by trying it yourself, and hence we begin with a whirlwind tour. Working through the examples below will give you a feel for the way that Python/Numpy operates and an appreciation of its power and \ufb02exibility. \n",
      "\n",
      "The tutorial is entirely independent of the rest of the book\u2014all the Python/Numpy features introduced are discussed in greater detail in the subsequent chapters. Indeed, in order to keep this chapter brief, we have not explained all the functions used here. You can use the index in [1] to \ufb01nd out more about particular topics that interest you. \n",
      "\n",
      "We will be using the IPython interactive shell as well as the IPython notebook (which is what you are reading now) throughout this tutorial.  You can install these by following the directions at [IPython install](http://ipython.org/install.html). This tutorial contains commands for you to type at the IPython command line. Alternatively, if you are viewing this notebook in a \"live\" mode served from a local IPython notebook server, you can directly modify any of the cells and rerun the cell.  Just be aware that in some cases you may need to choose the \"Run All\" option from the cell drop down menu to satisfy intercell dependences.\n",
      "\n",
      "In the last part of this brief tutorial we give examples of script files and functions. These \ufb01les are short, so you can type them in quickly or cut and paste them into an IPython shell (using the %cpaste magic), or you can just modify values in place in the IPython notebook and re-evaluate the cell. You should experiment as you proceed, keeping the following points in mind. \n",
      "\n",
      "* Upper and lower case characters are not equivalent (Python/Numpy are case sensitive). \n",
      "* Typing the name of a variable will cause IPython to display its current value. \n",
      "* Python/Numpy uses parentheses, ( ), square brackets, [ ], and curly braces, { }, and these are not interchangeable. \n",
      "* In the IPython shell, the up arrow and down arrow keys can be used to scroll through your previous commands. Also, an old command can be recalled by typing the first few characters followed by up arrow. You can also use ctrl-p (type p while holding the control key down) to scroll back through the command history stack.\n",
      "* You can type help(topic) to access online help on the command, function, or object topic. Note that hyperlinks, indicated by underlines, are provided that will take you to related help items and the Help browser. \n",
      "* If you press the tab key after partially typing a function or variable name, IPython will attempt to complete it, offering you a selection of choices if there is more than one possible completion. \n",
      "* You can quit IPython by typing exit or quit or ctrl-d twice.\n",
      "\n",
      "Having entered the IPython command, you should work through this tutorial by typing in the text that appears after the IPython prompt, 'In [n]:' where n is a number which indicates the command's location in the command stack, in the command window. After showing you what to type, we display the output that is produced. We begin with arrays.  In native Python arrays are lists denoted with the square bracket syntax.  However, we want Numpy arrays, so first you import the numpy module and shorten the prefix to \"np\" (this is a common usage convention)"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%matplotlib inline\n",
      "import numpy as np\n",
      "a = np.array([1, 2, 3])\n",
      "a"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 2,
       "text": [
        "array([1, 2, 3])"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "If you type in the three lines listed in the box 'In[1]:' above into the IPython shell, then you will see the result listed in 'Out[1]:'\n",
      "\n",
      "This example sets up a 3 element array, which is also called a vector.  In some other languages, a distinction is made between a row vector and a column vector, but that is not the case in Numpy. If you define a new vector c"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "c = np.array([4, 5, 6])\n",
      "c"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 3,
       "text": [
        "array([4, 5, 6])"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Now you can multiply the arrays a and c:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a*c"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 4,
       "text": [
        "array([ 4, 10, 18])"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Here, you performed an element by element mulitpy of the two vectors, not the scalar or dot product that some other languages would have done.  Notice that in this example, the product a\\*c was not explicitly assigned to any variable.  When there is no explicit assignment, IPython automatically assigns the result of the expression to the variable named '\\_' (underscore) as you can see by the following:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "_"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 5,
       "text": [
        "array([ 4, 10, 18])"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "If you wanted to get the dot product of the two vectors, use the dot function from numpy, as in the following"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.dot(a, c)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 6,
       "text": [
        "32"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Inputs to Python functions are speci\ufb01ed after the function name and within parentheses, as you just saw above with the 'dot' function from the numpy module. You may also form the outer product of the two vectors by calling another function from numpy"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "A = np.outer(c, a)\n",
      "A"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 7,
       "text": [
        "array([[ 4,  8, 12],\n",
        "       [ 5, 10, 15],\n",
        "       [ 6, 12, 18]])"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Here the answer is a 3-by-3 array that has been assigned to A.\n",
      "\n",
      "The product a \\* a, since the '\\*' operation is element-wise, is equivalent to squaring a, which uses the '\\*\\*' operator"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a * a"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 8,
       "text": [
        "array([1, 4, 9])"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "b = a ** 2\n",
      "b"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 9,
       "text": [
        "array([1, 4, 9])"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Arithmetic operations on matrices and vectors come in two distinct forms. Array sense operations are de\ufb01ned to act elementwise and, as mentioned before, are the default behavior of Numpy.\n",
      "\n",
      "Matrix sense operations are based on the normal rules of linear algebra and are obtained with either matrix objects, or calling the specific matrix function from numpy.  For matrix objects, the usual symbols +, -, *."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "am = np.matrix(a)\n",
      "cm = np.matrix(c)\n",
      "am * cm.T"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 10,
       "text": [
        "matrix([[32]])"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Notice that you had to take the transpose of c in order to make it into a column vector.  For numpy matrix objects, there is a difference between row and column vectors.  Also, matrix object can only have one or two dimensions.  For instance, the numpy function 'ones' takes a tuple and returns a numpy array of that dimensionality. The following will give us a 3 by 3 by 3  array of ones."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "g = np.ones( (3, 3, 3) )\n",
      "g"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 11,
       "text": [
        "array([[[ 1.,  1.,  1.],\n",
        "        [ 1.,  1.,  1.],\n",
        "        [ 1.,  1.,  1.]],\n",
        "\n",
        "       [[ 1.,  1.,  1.],\n",
        "        [ 1.,  1.,  1.],\n",
        "        [ 1.,  1.,  1.]],\n",
        "\n",
        "       [[ 1.,  1.,  1.],\n",
        "        [ 1.,  1.,  1.],\n",
        "        [ 1.,  1.,  1.]]])"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "If you try to turn this into a matrix object, you will get an error"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#h = np.matrix(g)\n",
      "print \"Error has a problemjQuery203048471758025698364_1409730694459?\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Error has a problemjQuery203048471758025698364_1409730694459?\n"
       ]
      }
     ],
     "prompt_number": 12
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Here you see how errors are displayed in Python.  You see the call stack from the top to the bottom and the error message that is finally displayed.\n",
      "\n",
      "Numpy has many mathematical functions that operate on arrays element wise when given an array argument. For example,"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.exp(a)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 13,
       "text": [
        "array([  2.71828183,   7.3890561 ,  20.08553692])"
       ]
      }
     ],
     "prompt_number": 13
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.log(_)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 14,
       "text": [
        "array([ 1.,  2.,  3.])"
       ]
      }
     ],
     "prompt_number": 14
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.sqrt(a)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 15,
       "text": [
        "array([ 1.        ,  1.41421356,  1.73205081])"
       ]
      }
     ],
     "prompt_number": 15
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "By default, Numpy displays \ufb02oating point numbers to 8 decimal digits, but always stores numbers and computes to the equivalent of 16 decimal digits. The output  format can be changed using the set_printoptions function"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.set_printoptions(precision=4)\n",
      "print (np.sqrt(a))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "[ 1.      1.4142  1.7321]\n"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "You can find out much more about the function set_printoptions by using IPython's help command"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "help(np.set_printoptions)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Help on function set_printoptions in module numpy.core.arrayprint:\n",
        "\n",
        "set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None, suppress=None, nanstr=None, infstr=None, formatter=None)\n",
        "    Set printing options.\n",
        "    \n",
        "    These options determine the way floating point numbers, arrays and\n",
        "    other NumPy objects are displayed.\n",
        "    \n",
        "    Parameters\n",
        "    ----------\n",
        "    precision : int, optional\n",
        "        Number of digits of precision for floating point output (default 8).\n",
        "    threshold : int, optional\n",
        "        Total number of array elements which trigger summarization\n",
        "        rather than full repr (default 1000).\n",
        "    edgeitems : int, optional\n",
        "        Number of array items in summary at beginning and end of\n",
        "        each dimension (default 3).\n",
        "    linewidth : int, optional\n",
        "        The number of characters per line for the purpose of inserting\n",
        "        line breaks (default 75).\n",
        "    suppress : bool, optional\n",
        "        Whether or not suppress printing of small floating point values\n",
        "        using scientific notation (default False).\n",
        "    nanstr : str, optional\n",
        "        String representation of floating point not-a-number (default nan).\n",
        "    infstr : str, optional\n",
        "        String representation of floating point infinity (default inf).\n",
        "    formatter : dict of callables, optional\n",
        "        If not None, the keys should indicate the type(s) that the respective\n",
        "        formatting function applies to.  Callables should return a string.\n",
        "        Types that are not specified (by their corresponding keys) are handled\n",
        "        by the default formatters.  Individual types for which a formatter\n",
        "        can be set are::\n",
        "    \n",
        "            - 'bool'\n",
        "            - 'int'\n",
        "            - 'timedelta' : a `numpy.timedelta64`\n",
        "            - 'datetime' : a `numpy.datetime64`\n",
        "            - 'float'\n",
        "            - 'longfloat' : 128-bit floats\n",
        "            - 'complexfloat'\n",
        "            - 'longcomplexfloat' : composed of two 128-bit floats\n",
        "            - 'numpy_str' : types `numpy.string_` and `numpy.unicode_`\n",
        "            - 'str' : all other strings\n",
        "    \n",
        "        Other keys that can be used to set a group of types at once are::\n",
        "    \n",
        "            - 'all' : sets all types\n",
        "            - 'int_kind' : sets 'int'\n",
        "            - 'float_kind' : sets 'float' and 'longfloat'\n",
        "            - 'complex_kind' : sets 'complexfloat' and 'longcomplexfloat'\n",
        "            - 'str_kind' : sets 'str' and 'numpystr'\n",
        "    \n",
        "    See Also\n",
        "    --------\n",
        "    get_printoptions, set_string_function, array2string\n",
        "    \n",
        "    Notes\n",
        "    -----\n",
        "    `formatter` is always reset with a call to `set_printoptions`.\n",
        "    \n",
        "    Examples\n",
        "    --------\n",
        "    Floating point precision can be set:\n",
        "    \n",
        "    >>> np.set_printoptions(precision=4)\n",
        "    >>> print np.array([1.123456789])\n",
        "    [ 1.1235]\n",
        "    \n",
        "    Long arrays can be summarised:\n",
        "    \n",
        "    >>> np.set_printoptions(threshold=5)\n",
        "    >>> print np.arange(10)\n",
        "    [0 1 2 ..., 7 8 9]\n",
        "    \n",
        "    Small results can be suppressed:\n",
        "    \n",
        "    >>> eps = np.finfo(float).eps\n",
        "    >>> x = np.arange(4.)\n",
        "    >>> x**2 - (x + eps)**2\n",
        "    array([ -4.9304e-32,  -4.4409e-16,   0.0000e+00,   0.0000e+00])\n",
        "    >>> np.set_printoptions(suppress=True)\n",
        "    >>> x**2 - (x + eps)**2\n",
        "    array([-0., -0.,  0.,  0.])\n",
        "    \n",
        "    A custom formatter can be used to display array elements as desired:\n",
        "    \n",
        "    >>> np.set_printoptions(formatter={'all':lambda x: 'int: '+str(-x)})\n",
        "    >>> x = np.arange(3)\n",
        "    >>> x\n",
        "    array([int: 0, int: -1, int: -2])\n",
        "    >>> np.set_printoptions()  # formatter gets reset\n",
        "    >>> x\n",
        "    array([0, 1, 2])\n",
        "    \n",
        "    To put back the default options, you can use:\n",
        "    \n",
        "    >>> np.set_printoptions(edgeitems=3,infstr='inf',\n",
        "    ... linewidth=75, nanstr='nan', precision=8,\n",
        "    ... suppress=False, threshold=1000, formatter=None)\n",
        "\n"
       ]
      }
     ],
     "prompt_number": 17
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "You set precision back to 8 to get the default behavior"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.set_printoptions(precision=8)\n",
      "np.sqrt(a)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 18,
       "text": [
        "array([ 1.        ,  1.41421356,  1.73205081])"
       ]
      }
     ],
     "prompt_number": 18
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Large or small numbers are displayed in exponential notation, with a power of 10 scale factor preceded by e:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "2 ** -24"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 19,
       "text": [
        "5.960464477539063e-08"
       ]
      }
     ],
     "prompt_number": 19
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Various data analysis functions are also available.  "
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "b.sum()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 20,
       "text": [
        "14"
       ]
      }
     ],
     "prompt_number": 20
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "c.mean()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 21,
       "text": [
        "5.0"
       ]
      }
     ],
     "prompt_number": 21
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Here you see an example of the object oriented nature of Numpy.  All Numpy arrays are of type \"ndarray\" and have many methods associated with them.  You can list them all by using a 'dir' command in IPython, use the following"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "dir(a)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 22,
       "text": [
        "['T',\n",
        " '__abs__',\n",
        " '__add__',\n",
        " '__and__',\n",
        " '__array__',\n",
        " '__array_finalize__',\n",
        " '__array_interface__',\n",
        " '__array_prepare__',\n",
        " '__array_priority__',\n",
        " '__array_struct__',\n",
        " '__array_wrap__',\n",
        " '__class__',\n",
        " '__contains__',\n",
        " '__copy__',\n",
        " '__deepcopy__',\n",
        " '__delattr__',\n",
        " '__delitem__',\n",
        " '__delslice__',\n",
        " '__div__',\n",
        " '__divmod__',\n",
        " '__doc__',\n",
        " '__eq__',\n",
        " '__float__',\n",
        " '__floordiv__',\n",
        " '__format__',\n",
        " '__ge__',\n",
        " '__getattribute__',\n",
        " '__getitem__',\n",
        " '__getslice__',\n",
        " '__gt__',\n",
        " '__hash__',\n",
        " '__hex__',\n",
        " '__iadd__',\n",
        " '__iand__',\n",
        " '__idiv__',\n",
        " '__ifloordiv__',\n",
        " '__ilshift__',\n",
        " '__imod__',\n",
        " '__imul__',\n",
        " '__index__',\n",
        " '__init__',\n",
        " '__int__',\n",
        " '__invert__',\n",
        " '__ior__',\n",
        " '__ipow__',\n",
        " '__irshift__',\n",
        " '__isub__',\n",
        " '__iter__',\n",
        " '__itruediv__',\n",
        " '__ixor__',\n",
        " '__le__',\n",
        " '__len__',\n",
        " '__long__',\n",
        " '__lshift__',\n",
        " '__lt__',\n",
        " '__mod__',\n",
        " '__mul__',\n",
        " '__ne__',\n",
        " '__neg__',\n",
        " '__new__',\n",
        " '__nonzero__',\n",
        " '__oct__',\n",
        " '__or__',\n",
        " '__pos__',\n",
        " '__pow__',\n",
        " '__radd__',\n",
        " '__rand__',\n",
        " '__rdiv__',\n",
        " '__rdivmod__',\n",
        " '__reduce__',\n",
        " '__reduce_ex__',\n",
        " '__repr__',\n",
        " '__rfloordiv__',\n",
        " '__rlshift__',\n",
        " '__rmod__',\n",
        " '__rmul__',\n",
        " '__ror__',\n",
        " '__rpow__',\n",
        " '__rrshift__',\n",
        " '__rshift__',\n",
        " '__rsub__',\n",
        " '__rtruediv__',\n",
        " '__rxor__',\n",
        " '__setattr__',\n",
        " '__setitem__',\n",
        " '__setslice__',\n",
        " '__setstate__',\n",
        " '__sizeof__',\n",
        " '__str__',\n",
        " '__sub__',\n",
        " '__subclasshook__',\n",
        " '__truediv__',\n",
        " '__xor__',\n",
        " 'all',\n",
        " 'any',\n",
        " 'argmax',\n",
        " 'argmin',\n",
        " 'argpartition',\n",
        " 'argsort',\n",
        " 'astype',\n",
        " 'base',\n",
        " 'byteswap',\n",
        " 'choose',\n",
        " 'clip',\n",
        " 'compress',\n",
        " 'conj',\n",
        " 'conjugate',\n",
        " 'copy',\n",
        " 'ctypes',\n",
        " 'cumprod',\n",
        " 'cumsum',\n",
        " 'data',\n",
        " 'diagonal',\n",
        " 'dot',\n",
        " 'dtype',\n",
        " 'dump',\n",
        " 'dumps',\n",
        " 'fill',\n",
        " 'flags',\n",
        " 'flat',\n",
        " 'flatten',\n",
        " 'getfield',\n",
        " 'imag',\n",
        " 'item',\n",
        " 'itemset',\n",
        " 'itemsize',\n",
        " 'max',\n",
        " 'mean',\n",
        " 'min',\n",
        " 'nbytes',\n",
        " 'ndim',\n",
        " 'newbyteorder',\n",
        " 'nonzero',\n",
        " 'partition',\n",
        " 'prod',\n",
        " 'ptp',\n",
        " 'put',\n",
        " 'ravel',\n",
        " 'real',\n",
        " 'repeat',\n",
        " 'reshape',\n",
        " 'resize',\n",
        " 'round',\n",
        " 'searchsorted',\n",
        " 'setfield',\n",
        " 'setflags',\n",
        " 'shape',\n",
        " 'size',\n",
        " 'sort',\n",
        " 'squeeze',\n",
        " 'std',\n",
        " 'strides',\n",
        " 'sum',\n",
        " 'swapaxes',\n",
        " 'take',\n",
        " 'tofile',\n",
        " 'tolist',\n",
        " 'tostring',\n",
        " 'trace',\n",
        " 'transpose',\n",
        " 'var',\n",
        " 'view']"
       ]
      }
     ],
     "prompt_number": 22
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "To find out more about any of these methods, use the help command"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "help(a.argmax)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Help on built-in function argmax:\n",
        "\n",
        "argmax(...)\n",
        "    a.argmax(axis=None, out=None)\n",
        "    \n",
        "    Return indices of the maximum values along the given axis.\n",
        "    \n",
        "    Refer to `numpy.argmax` for full documentation.\n",
        "    \n",
        "    See Also\n",
        "    --------\n",
        "    numpy.argmax : equivalent function\n",
        "\n"
       ]
      }
     ],
     "prompt_number": 23
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.pi"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 24,
       "text": [
        "3.141592653589793"
       ]
      }
     ],
     "prompt_number": 24
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "_"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 25,
       "text": [
        "3.141592653589793"
       ]
      }
     ],
     "prompt_number": 25
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "y = np.tan(np.pi/6)\n",
      "y"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 26,
       "text": [
        "0.57735026918962573"
       ]
      }
     ],
     "prompt_number": 26
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The Variable np.pi is a permanent Variable with value $\\pi$. The variable \"\\_\" always contains the most recent unassigned expression, as described earlier, so after the assignment to y, \"\\_\" still holds the Value $\\pi$.\n",
      "\n",
      "You may set up a two dimensional array by concatenating columns using the np.c_[ ] array notation"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "B = np.c_[[-3, 2, -1], [0, 5, 4], [-1, -7, 8]]\n",
      "B"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 27,
       "text": [
        "array([[-3,  0, -1],\n",
        "       [ 2,  5, -7],\n",
        "       [-1,  4,  8]])"
       ]
      }
     ],
     "prompt_number": 27
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "At the heart of Numpy is a powerful range of linear algebra functions. For example, recalling that c is a 3-by-1 Vector, you may wish to solve the linear system $B * x = c$. This can be done with the solve function from the numpy.linalg module"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy.linalg as nl\n",
      "x = nl.solve(B, c)\n",
      "x"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 28,
       "text": [
        "array([-1.29953917,  1.37788018, -0.10138249])"
       ]
      }
     ],
     "prompt_number": 28
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "nl.norm(np.dot(B,x) - c) / (nl.norm(B) * nl.norm(x))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 29,
       "text": [
        "3.6020385703775424e-17"
       ]
      }
     ],
     "prompt_number": 29
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Some times we see a 0 here, but we usually expect to see something nonzero because of rounding errors.\n",
      "\n",
      "The eigenvalues of B can be found using eig from the numpy.linalg module"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.set_printoptions(precision=5)  # make it the m*lab default\n",
      "w, _ = nl.eig(B)\n",
      "w"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 30,
       "text": [
        "array([-3.13605+0.j     ,  6.56803+5.10454j,  6.56803-5.10454j])"
       ]
      }
     ],
     "prompt_number": 30
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Notice two things about this code snippet.  First, nl.eig returns two values, w are the eigenvalues and v would be the eigenvectors. Since in this instance we did not want the eigenvectors we set it to the underscore '\\_', which is a common idiom in Python. Finally, the solution shows the j is the imaginary unit, $\\sqrt{-1}$.  To get the eigenvectors you can do the calculation again"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "w, v = nl.eig(B)\n",
      "v"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 31,
       "text": [
        "array([[-0.98290+0.j     ,  0.03854+0.03928j,  0.03854-0.03928j],\n",
        "       [ 0.12656+0.j     ,  0.80053+0.j     ,  0.80053-0.j     ],\n",
        "       [-0.13372+0.j     , -0.16831-0.57254j, -0.16831+0.57254j]])"
       ]
      }
     ],
     "prompt_number": 31
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The columns of v are the eigenvectors of B.\n",
      "\n",
      "To get vectors of evenly spaced values, use the np.arange function"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "v = np.arange(6)\n",
      "v"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 32,
       "text": [
        "array([0, 1, 2, 3, 4, 5])"
       ]
      }
     ],
     "prompt_number": 32
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Note that the default starting value is zero.  Also, as noted earlier, all Numpy arrays start at index zero and end at index n - 1 for an array of size n.\n",
      "\n",
      "Nonunit increments can be specified by a third number, often called the 'stride'."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "w = np.arange(2, 10, 3)\n",
      "w"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 33,
       "text": [
        "array([2, 5, 8])"
       ]
      }
     ],
     "prompt_number": 33
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "y = np.arange(1, 0, -0.25)\n",
      "y"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 34,
       "text": [
        "array([ 1.  ,  0.75,  0.5 ,  0.25])"
       ]
      }
     ],
     "prompt_number": 34
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "This last example illustrates a peculiarity of Python and numpy, that the ending value or index is actually one position short of what you might expect.  In the previous example, to have the array actually increment down to zero, you have to specify an end value that is strictly *less* than 0 (but greater than -(0.25 + delta) ).  Here we just use -0.001."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "y = np.arange(1, -0.001, -0.25)\n",
      "y"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 35,
       "text": [
        "array([ 1.  ,  0.75,  0.5 ,  0.25,  0.  ])"
       ]
      }
     ],
     "prompt_number": 35
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "You may construct big matrices out of little ones by using the numpy functions hstack and vstack and the previously mentioned c\\_[ ] and r\\_[ ] notations"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "C = np.c_[A, [8, 9, 10]]\n",
      "C"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 36,
       "text": [
        "array([[ 4,  8, 12,  8],\n",
        "       [ 5, 10, 15,  9],\n",
        "       [ 6, 12, 18, 10]])"
       ]
      }
     ],
     "prompt_number": 36
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "D = np.r_[B, B, B]\n",
      "D"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 37,
       "text": [
        "array([[-3,  0, -1],\n",
        "       [ 2,  5, -7],\n",
        "       [-1,  4,  8],\n",
        "       [-3,  0, -1],\n",
        "       [ 2,  5, -7],\n",
        "       [-1,  4,  8],\n",
        "       [-3,  0, -1],\n",
        "       [ 2,  5, -7],\n",
        "       [-1,  4,  8]])"
       ]
      }
     ],
     "prompt_number": 37
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "E = np.vstack((B, B, a))\n",
      "E"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 38,
       "text": [
        "array([[-3,  0, -1],\n",
        "       [ 2,  5, -7],\n",
        "       [-1,  4,  8],\n",
        "       [-3,  0, -1],\n",
        "       [ 2,  5, -7],\n",
        "       [-1,  4,  8],\n",
        "       [ 1,  2,  3]])"
       ]
      }
     ],
     "prompt_number": 38
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Notice well that np.vstack takes a *single* argument that is a tuple of arrays.  That way you can stack as many arrays as needed with a single call to vstack or just use the r\\_[ ] notation.\n",
      "\n",
      "The element in row i and column j of the matrix C (where i and j always start at 0) can be accessed as c[i, j]"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "C[1, 2]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 39,
       "text": [
        "15"
       ]
      }
     ],
     "prompt_number": 39
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "More generically, C[i1:i2, j1:j2] picks out the submatrix formed by the intersection of rows i1 to i2-1 and columns j1 to j2-1.  This type of operation on arrays is generally called *slicing*."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "C[1:3, 0:2]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 40,
       "text": [
        "array([[ 5, 10],\n",
        "       [ 6, 12]])"
       ]
      }
     ],
     "prompt_number": 40
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "You can build certain types of matrices automatically. For example, identities and matrices of zeros and ones can be constructed with eye, zeros, and ones:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "I3 = np.eye(3)\n",
      "I3"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 41,
       "text": [
        "array([[ 1.,  0.,  0.],\n",
        "       [ 0.,  1.,  0.],\n",
        "       [ 0.,  0.,  1.]])"
       ]
      }
     ],
     "prompt_number": 41
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "Y = np.zeros((3,5))\n",
      "Y"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 42,
       "text": [
        "array([[ 0.,  0.,  0.,  0.,  0.],\n",
        "       [ 0.,  0.,  0.,  0.,  0.],\n",
        "       [ 0.,  0.,  0.,  0.,  0.]])"
       ]
      }
     ],
     "prompt_number": 42
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "Z = np.ones((2,2))\n",
      "Z"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 43,
       "text": [
        "array([[ 1.,  1.],\n",
        "       [ 1.,  1.]])"
       ]
      }
     ],
     "prompt_number": 43
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Note that these functions take a single argument which is a tuple (except for np.eye, which has a different interface). The first argument of the tuple speci\ufb01es the size of the first dimension of the array and so on. \n",
      "\n",
      "The methods rand and randm on an object returned from numpy.random.RandomState() do not take tuples.  They are convenience functions that have a similar interface to another math envirionment.  These two methods generate random entries from the uniform distribution over [0,1] and the normal (0,1) (ie zero mean with unit variance) distribution, respectively.\n",
      "\n",
      "Note that it is always good for you to intialize a new instance of RandomState when using random numbers.  This ensures that the random stream is for you alone, and you can reset the seed to make the sequence repeatable.  Here we set the starting seed to 20."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "rn = np.random.RandomState()  # initialize a new RandomState object\n",
      "rn.seed(20)\n",
      "F = rn.rand(3, 3)\n",
      "F"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 44,
       "text": [
        "array([[ 0.58813,  0.89771,  0.89153],\n",
        "       [ 0.81584,  0.03589,  0.69176],\n",
        "       [ 0.37868,  0.51851,  0.65795]])"
       ]
      }
     ],
     "prompt_number": 44
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "G = rn.randn(1, 5)\n",
      "G"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 45,
       "text": [
        "array([[-0.62064, -0.83453,  0.91636,  0.70784,  0.41968]])"
       ]
      }
     ],
     "prompt_number": 45
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "At this point several variables have been created in the workspace.  You can obtain a list with the %who command, where the % indicates an IPython 'magic' command."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%who"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "A\t B\t C\t D\t E\t F\t G\t I3\t Y\t \n",
        "Z\t a\t am\t b\t c\t cm\t g\t nl\t np\t \n",
        "rn\t v\t w\t x\t y\t \n"
       ]
      }
     ],
     "prompt_number": 46
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The %whos magic will additionally give the types and some additional information"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%whos"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Variable   Type           Data/Info\n",
        "-----------------------------------\n",
        "A          ndarray        3Lx3L: 9 elems, type `int32`, 36 bytes\n",
        "B          ndarray        3Lx3L: 9 elems, type `int32`, 36 bytes\n",
        "C          ndarray        3Lx4L: 12 elems, type `int32`, 48 bytes\n",
        "D          ndarray        9Lx3L: 27 elems, type `int32`, 108 bytes\n",
        "E          ndarray        7Lx3L: 21 elems, type `int32`, 84 bytes\n",
        "F          ndarray        3Lx3L: 9 elems, type `float64`, 72 bytes\n",
        "G          ndarray        1Lx5L: 5 elems, type `float64`, 40 bytes\n",
        "I3         ndarray        3Lx3L: 9 elems, type `float64`, 72 bytes\n",
        "Y          ndarray        3Lx5L: 15 elems, type `float64`, 120 bytes\n",
        "Z          ndarray        2Lx2L: 4 elems, type `float64`, 32 bytes\n",
        "a          ndarray        3L: 3 elems, type `int32`, 12 bytes\n",
        "am         matrix         [[1 2 3]]\n",
        "b          ndarray        3L: 3 elems, type `int32`, 12 bytes\n",
        "c          ndarray        3L: 3 elems, type `int32`, 12 bytes\n",
        "cm         matrix         [[4 5 6]]\n",
        "g          ndarray        3Lx3Lx3L: 27 elems, type `float64`, 216 bytes\n",
        "nl         module         <module 'numpy.linalg' fr<...>mpy\\linalg\\__init__.pyc'>\n",
        "np         module         <module 'numpy' from 'C:\\<...>ages\\numpy\\__init__.pyc'>\n",
        "rn         RandomState    <mtrand.RandomState object at 0x0000000003563978>\n",
        "v          ndarray        6L: 6 elems, type `int32`, 24 bytes\n",
        "w          ndarray        3L: 3 elems, type `int32`, 12 bytes\n",
        "x          ndarray        3L: 3 elems, type `float64`, 24 bytes\n",
        "y          ndarray        5L: 5 elems, type `float64`, 40 bytes\n"
       ]
      }
     ],
     "prompt_number": 47
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Like most languages Python has loop contructs.  The following example uses a for loop to evaluate the continued fraction  $\\cfrac{1}{1+\\cfrac{1}{1+\\cfrac{1}{1+\\cfrac{1}{1+\\cfrac{1}{1+\\cfrac{1}{1 + \\cfrac{1}{1 + \\cfrac{1}{1 + \\cfrac{1}{1 + \\cfrac{1}{1}}}}}}}}}}$\n"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "which approximates the golden ratio, (1 + $\\sqrt{5}$)/2. The evaluation is done from the bottom up:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "g = 2.\n",
      "for k in range(10):\n",
      "    g = 1 + 1 / g\n",
      "g"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 48,
       "text": [
        "1.6180555555555556"
       ]
      }
     ],
     "prompt_number": 48
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Many constants can be found in the scipy submodule constants.  You can access them in the following way"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import scipy.constants as sconst\n",
      "sconst.golden"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 49,
       "text": [
        "1.618033988749895"
       ]
      }
     ],
     "prompt_number": 49
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Loops involving the while statement can be found later in this tutorial.\n",
      "\n",
      "The plot function from the matplotlib module pylab produce two dimensional pictures.  You can assess these ploting and graphics functions by importing this module.  It is a common practice to rename it to plt, as in the following example."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#import mpld3\n",
      "#mpld3.enable_notebook()\n",
      "import matplotlib.pylab as plt\n",
      "t = np.arange(0, 1.005, 0.005)\n",
      "z = np.exp(10 * t * (t - 1)) * np.sin(12 * np.pi * t)\n",
      "plt.plot(t, z)\n",
      "plt.title(\"Figure 1.2. Basic 2D picture produced by plt.plot\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 50,
       "text": [
        "<matplotlib.text.Text at 0x6446dd8>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nBdf/AyZYSF8FgWZEAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x63c80b8>"
       ]
      }
     ],
     "prompt_number": 50
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Here, plt.plot(t, z) joins the points t[i], z[i] using the default solid linetype.  Matplotlib opens a figure window in which the picture is displayed.  In this IPython notebook, the matplotlib figures are included 'in line' since the notebook was invoked with the \"ipython notebook --pylab=inline\" (the --pylab=inline option will be deprecated in the 3.0 notebook in favor of the **%matplotlib inline** cell magic) command.  When you are using IPython as a command line interpreter, after opening a plot figure window, you can close it in the normal way, ie by clicking on the x in the window title bar.\n",
      "\n",
      "You can produce a histogram with the function plt.hist"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt.hist(np.random.randn(1000))\n",
      "plt.title(\"Figure 1.3. Histogram produced by plt.hist.\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 51,
       "text": [
        "<matplotlib.text.Text at 0x66687b8>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAEKCAYAAADticXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGCZJREFUeJzt3Xu8HGV9x/HPCQlySWJIUcI9CESk2oIK1VbK1mpeYC1g\nW5FeLFFreWkFbGuB2EuOWhGst1e9thU0XggiKEKrKFC20gvBCzcNEYIJECAHkGAC3gLZ/vF7ljNn\ns7dz2Z09z/m8X699ndnZmX2enZ35zjPPzM4BSZIkSZIkSZIkSZIkSZIkTTNbgcVlV2IAfRV4bdmV\nmOaWAdf3ucwKcG+b17cDz+pDParAG8Yx/Qbgt1u8dgywdpL1mdZmlV2BAbUB+AkR4luBLcAiYF56\nrWyLgCuA+4gN74AO018HPEh8jtuBN46jrCo7bnAVxobBK4DPdvFe/QoJTS+19IDudm7F6RtdDxzW\nRZnDdLfOTjuGenM14JVEiM8D5gObeljeTuOcfjvROv79Lqc/A9iX+BynAh8Gnt3lvO02oIkYmsL3\nKhrvMuw1ty2VwhVvfIotzV8CrgR+DNwI/COjLYzFadri8q0y2uJdBvwP8AHgYWAFsDPwPuBuYgfy\ncWCXFvV4EPgE8O0u630bsK3w/DGi1T5Vqox+tkOA/wIeBR4CVqXx30x/byGOfl6dnr8RuBP4EfAV\nYO/C+y4FfpDe66Ppfdstw2cB/5mePwR8Dnh64f02AG8Dbk11uADYC/ga8T1eDSxo8RkrwEZgeXrv\n9cAfFV7/NPGdfZVYvhXgOWnZbAa+B/xuYfpfIo62fgysBg4uvLaY9usPxHJbQ3yP3weOTOP3AS4j\n1pEfAqcX5tk11fORNM9RLT5r0e8AdxGf+b3ETnnn9B7PLUz3TODx9LkaLSO+qw8T3+XtwEubTHcY\nsV6/mPh+HmlTryOJdelR4GLgaWl8hbFHkWcT39sWolvmpcBxxPf4mlTOTW3KUSbW07zPrhjqFwMX\nEcH7HOAeRoNrMTtulNcBr0/Dy4iQ/Ys0zS7AB4HLiVCZS2zw53ao52y6634B+Hfgp0S30gldTF+s\nd6ful+JnW0VsMBAb/68XpmvsfnkpERZHpGn/mQhugD2JwDuJWEZnAL+g/TI8mPje5qT5/4tYrnXr\ngf8FnkGE3wjwXeBXiVC4FviHFsuhksp7X3r/3yTCe0l6/dNEwLw4PZ8HrAPOIb6n3yKCpT79xemx\nK/DLRPB0u/68Ok3/gvT8YGIdmAV8B/i7VOZBRCAvTdOdl5bJAmA/YkdzT4vPS6rDtWn6/YkdbH1d\n+Gh6v7oziZ1yM8uIZXcmcUR1MrGs6jvQ4mc7lc7dLxuAG4huyD2Indtp6bUKo+vms4nPtyg9P4DR\n9W8F8JkO5SgjG4g9+Ob0+FIaXw+lnYiAObQwz7to31JvDPW7C68NEQFRDLwXEy2tdsYT6qR6/wHR\nAup2nirRAttceGxlbBgUP9tK4F+I7p5GjaF+AWODYXdiuR4I/CnRuiu6h9bLsJmTiNCuWw/8YeH5\npUQ41b0F+HKL96oQwbRrYdwXiACFCPVPF147Bnig4T0uIsKkvv4sKbz2brpff77O2BZ43a+x4zJZ\nDlyYhosBD9Ha73SitDj9m4BrWpT1bWLdamYZcf6naDXwJ2m4cdvoFOqNR0nnE0dJMDbUDyF23PUd\nfdEw9qnPKDXgRKIVsAfwew2vP4MI1OIGsXGcZRTnfQawG9HKqgfn14jW5lR6kgiy1cCrupynRgTI\nHoXHK2ndN35Weu1GoiX4ujbvvTdjg+Fxohtm3/Ra4zJtfN4YSHsRrd+NRCv/s+zYHTBSGP5pw/Of\nEUdJrWxO89TdzWh3Ua2hfvs0qd/dafye7Lj+tGsxN9qPCOhGB6b3L+6AlxNdI83q1E2ZjdPvk4ZX\nE8uiQnSbHEwcXbbSGOrFZTcRxXNcP6X597YOeCsR4CPEUeRkypwWDPWJeQh4gjgkrSsOP57+7lYY\nt4ixiicfHyZWzMMZDc4FxInNXphTqONEtDvZOQL8ORHMpwEfo/UVL/cz9hLR3YkQ3ki0cvdrKLP4\nHHY8gXsuseN6LtGX/lo6r+PjOXG7B2O/0wOJz9CsPvcT68RQw/T3Mbr+FI+WisOd1p97iVZoo3uI\nVmxxBzyf2AlDLNNWZbbSOH0xnFcSre3XAl8kjj5aaTxya1x2dVN5Uh4iyI9J5dWIVn0vyhkYhvrE\nPEl0yQwTh+OHESt2fUV5iFj5X0scar+esSfCGm0H/g34ENFqh9gIlracI/qQd2ky3OjZwPGpnnOI\njfCFwDfavHej8QTfqxkN30eJZbI9PR9h7HJYRbTk633a5xJ9pfcQJxyfRxwxzSb6zht3jI3mEoG4\nhVh+fzOOenfrHcRyPIY4ifjFNL5xGd1AnL84K01fIcL1YmJ5FNefw4m+5LpO688niRO+z0/lHkIE\n7o1E19hZ6X13InZwL0zzXUK03Ot96s26cBq9jdE+9TOILqe6zxFHsX9M5/7pZ6b55xDryGHEd9xo\nJNWtsbtkIpYQ522eBvycOBJ7Mr22iWhQ9OpqrNIY6uNT3Lu/hWgNbiJaLKsY21J5IxEqDxMbbbF/\nuNllgmcTh4s3MHolxhJa+wkRXjXirH6x5f1xRvsYh4h+3JFU1z8jwqh+6H0MEQTtNGvVtGrpvDB9\nhq3EibMzGL22f5hYVpuJ/tdrgb8nrta4nzixd0qa9mFi439vGn4O0W/780L5jXV4BxF0PyauTLqs\nTT2bfY5Ol29uSnW/n+jaOQ24o8W824irXY4nQvojREjXp38LsRPaRPR5X9gwf7v151KiD/4iYh34\nEtEq307sOI4gzsc8BPwro0d87yC6PdYDVxFB3Gn5fIXoFryJONl+YeG1e4lzFtuB/+7wPquJc1AP\nEeeffp9Ylo2uJa7M2URcwQPwdprvAOoal319+GnAe1KZDxDdXvWT+PWd8Y8YvYrsE4xuN9nahfgy\nbibOML8njV9IhM4dRIuveBnYcuIStbW0b2nm5nzgU2VXImOziNbrsSWVX6H9ScWZ6gLgnR2mWUb/\nfy2rNur9erOJFthLiNbTWWn82YxewXA4sQOYQxzarCPfo4FnA79CtISPJloD47lUUJ0tJRoMTyOu\nMrmP0euR+62Cod5oMdHaPrDDdMsw1AfSbsC3iGtq1xJXGkD0c9bvtbCcCPm6q4AX9auCffZC4ojk\nceJQ9+z2k2sCVhDdD1uA/6O7H8v0SoXxXaGSu3cRXWzLO01InC/4Zsep1DeziNb3VqKFDmP7woYK\nzz9MnDSp+yTd/5RdkjRJs7uYZjtx4uXpxI8efqvh9U4nl7K9dEiSBk03oV73Y+A/iJ8mjxDdLpuI\ni/nrZ6nvY+z12vux448OOPjgg2t33dXstxOSpDbuovlvFJ7S6STmnoxe2bIr8HLi0qYrGL2u9lTi\nniWk8acQ9/E4iLiE6cYdanXXXdRqtYF/rFixovQ65FLP6VBH62k9B/1B+9+7AJ1b6nsT1xXPSo/P\nEteR3kT8kOENxDXIJ6fp16Txa4hfzL0Zu18kqW86hfptxI85Gj0CvKzFPOfS+e6CkqQeyPUa8ilR\nqVTKrkJXpkM9p0MdwXpONevZf2Xd96CW+ockSV0aGhqCDrltS12SMmKoS1JGDHVJyoihLkkZMdQl\nKSOGuiRlxFCXpIwY6pKUEUNdkjJiqEtSRgx1ScqIoS5JGTHUJSkjhrokZcRQl6SMGOqSlBFDXZIy\nYqhLUkYMdUnKiKEuSRkx1CUpI4a6JGXEUJekjBjqkpQRQ12SMmKoS1JGOoX6/sB1wPeB7wFnpPHD\nwEbgpvQ4vjDPcuBOYC2wdArrKrU0f/5ChoaG+v6YP39h2R9dGmOow+uL0uNmYC7wHeAk4GRgK/CB\nhukPBy4CjgL2Ba4BlgDbG6ar1Wq1SVVcKhoaGgLKWKeGcF1Wv8R63j63O7XUNxGBDvAYcDsR1q3e\n+ERgFbAN2ACsA47uqraSpEkbT5/6YuBI4Ib0/HTgFuACYEEatw/RLVO3kdGdgCSpx7oN9bnApcCZ\nRIv948BBwBHAA8D728zrsakk9cnsLqaZA1wGfA64PI17sPD6J4Er0/B9xMnVuv3SuB0MDw8/NVyp\nVKhUKt3UV5JmjGq1SrVaHdc8nU6UDgErgR8Bf1kYvzfRQieNPwr4I0ZPlB7N6InSQ9ixte6JUk0p\nT5RqJujmRGmnlvpvAH8C3EpcugjwduAPia6XGrAeOC29tga4JP19Angzdr9IUt90aqn3ii11TSlb\n6poJpuKSRknSNNLNiVJJLc2ut576at68Pdiy5ZG+l6vBZ/eLslBm94vdPuoXu18kaYYx1CUpI4a6\nJGXEUJekjBjqkpQRQ12SMmKoS1JGDHVJyoihLkkZMdQlKSOGuiRlxFCXpIx4l0ZNqfnzF7J16+ay\nqyHNWN6lUVNqJt4t0bs0ql+8S6MkzTCGuiRlxFCXpIwY6pKUEUNdkjJiqEtSRgx1ScqIoS5JGTHU\nJSkjhrokZcRQl6SMGOqSlJFOob4/cB3wfeB7wBlp/ELgauAO4BvAgsI8y4E7gbXA0qmsrCSpvU53\naVyUHjcDc4HvACcBrwMeBt4LnA3sAZwDHA5cBBwF7AtcAywBtje8r3dpzJR3aexfuW5DM89U3KVx\nExHoAI8BtxNhfQKwMo1fSQQ9wInAKmAbsAFYBxw9vmpLkiZqPH3qi4EjgdXAXsBIGj+SngPsA2ws\nzLOR2AlIkvqg2/98NBe4DDgT2NrwWo32x59NXxseHn5quFKpUKlUuqyKJM0M1WqVarU6rnm6+c9H\nc4B/B74GfCiNWwtUiO6ZvYmTqYcR/eoA56W/VwEriNZ9kX3qmbJPvX/lug3NPFPRpz4EXACsYTTQ\nAa4ATk3DpwKXF8afAuwMHAQcCtw4nkpLkiauU0v9JcA3gVsZbY4sJ4L6EuAA4oToycCj6fW3A68H\nniC6a77e5H1tqWfKlnr/ynUbmnm6aan7j6c1pQz1/pXrNjTz+I+nJWmGMdQlKSOGuiRlxFCXpIwY\n6pKUEUNdkjJiqEtSRgx1ScqIoS5JGTHUJSkjhrokZcRQl6SMGOqSlBFDXZIyYqhLUkYMdUnKiKEu\nSRkx1CUpI4a6JGXEUJekjBjqkpQRQ12SMmKoS1JGDHVJyoihLkkZMdQlKSOGuiRlxFCXpIx0E+oX\nAiPAbYVxw8BG4Kb0OL7w2nLgTmAtsHRKailJ6spQF9McAzwGfAZ4Xhq3AtgKfKBh2sOBi4CjgH2B\na4AlwPaG6Wq1Wm2CVdYgGxoaAsr4bmdeuW5DM09sX+1zu5uW+vXA5mbv32TcicAqYBuwAVgHHN1F\nGZKkKTCZPvXTgVuAC4AFadw+RLdM3UaixS5J6oPZE5zv48A70/C7gPcDb2gxbdNjxOHh4aeGK5UK\nlUplglWRpDxVq1Wq1eq45ummTx1gMXAlo33qrV47J407L/29iuh/X90wj33qmbJPvX/lug3NPFPV\np97M3oXhVzF6ZcwVwCnAzsBBwKHAjRMsQ5I0Tt10v6wCjgX2BO4lWt4V4AiiibIeOC1Nuwa4JP19\nAngz5TRjJGlG6rb7ZarZ/ZIpu1/6V67b0MzTy+4XSdIAMtQlKSOGuiRlxFCXpIwY6pKUEUNdkjJi\nqEtSRgx1ScqIoS5JGTHUJSkjhrokZcRQl6SMGOqSlBFDXZIyYqhLUkYMdUnKiKEuSRkx1CUpI4a6\nJGXEUJekjBjqkpQRQ12SMmKoS1JGDHVJyoihLkkZMdQlKSOzy66ApImYzdDQUN9LnTdvD7ZseaTv\n5ap7/V8rQq1Wq5VUtHopgqaM79Zy+1Wu22550o68bW530/1yITAC3FYYtxC4GrgD+AawoPDacuBO\nYC2wtPvqSpImq5tQ/xRwXMO4c4hQXwJcm54DHA68Jv09DvhYl2VIkqZAN4F7PbC5YdwJwMo0vBI4\nKQ2fCKwCtgEbgHXA0ZOupSSpKxNtRe9FdMmQ/u6VhvcBNham2wjsO8EyJEnjNBVXv9Rof8am6WvD\nw8NPDVcqFSqVyhRURZLyUa1WqVar45qn26tfFgNXAs9Lz9cCFWATsDdwHXAYo33r56W/VwErgNUN\n7+fVLz02f/5Ctm5t7DXrl5l1NchMK9dttzxTdfVLM1cAp6bhU4HLC+NPAXYGDgIOBW6cYBmahAj0\nWgkPSWXqpvtlFXAssCdwL/APREv8EuANxAnRk9O0a9L4NcATwJtxS5ekvvHHR5nyR0CW26ty3XbL\n08vuF0nSADLUJSkjhrokZcRQl6SMGOqSlBFDXZIyYqhLUkYMdUnKiKEuSRkx1CUpI4a6JGXEUJek\njBjqkpQRQ12SMmKoS1JGDHVJyoihLkkZMdQlKSOGuiRlxFCXpIwY6pKUEUNdkjJiqEtSRgx1ScqI\noS5JGTHUJSkjhrokZcRQl6SMzJ7k/BuALcCTwDbgaGAh8AXgwPT6ycCjkyxHktSFybbUa0AFOJII\ndIBzgKuBJcC16bkkqQ+movtlqOH5CcDKNLwSOGkKypAkdWEqWurXAN8G3pjG7QWMpOGR9FyS1AeT\n7VP/DeAB4BlEl8vahtdr6SFJ6oPJhvoD6e9DwJeJfvURYBGwCdgbeLDZjMPDw08NVyoVKpXKJKsi\nSXmpVqtUq9VxzdPYHz4euwE7AVuB3YFvAO8AXgb8CDifOEm6gB1PltZqNRvwvTQ0NEQ5B0mWm3u5\nbrvlie26fW5PJtQPIlrnEC3+zwPvIS5pvAQ4gNaXNBrqPWaoW26vynXbLU+vQ30yDPUeM9Qtt1fl\nuu2Wp5tQ9xelkpQRQ12SMmKoS1JGDHVJyoihLkkZMdQlKSOGuiRlxFCXpIwY6pKUEUNdkjJiqEtS\nRiZ76111MH/+QrZu3Vx2NSTNEN7Qq8e8sZbl5lXuHOCJvpc6b94ebNnySN/LHTTepXEAGOqWa7lT\nU+5MyYx2vEujJM0whrokZcRQl6SMGOqSlBFDXZIyYqhLUkYMdUnKiKEuSRkx1CUpI4a6JGXEUJek\njBjqkpQRQ12SMjIj7qf+1reew6c+9em+lztrVlk3wZQ0U/Uq1I8DPgTsBHwSOL9H5XRl7dofsmXL\nO4ET+lru7ru/Cbi8r2VKmtl6Eeo7AR8BXgbcB3wLuAK4vQdljcMCYNE456kClQmXODS064TnHZ8q\nk6lnf1QZ/DrC9KnndFFlapbn7Pq9xPtqOv5zjl70qR8NrAM2ANuAi4ETe1BOH1TLrkCXqmVXoAvV\nsivQpWrZFchMdYre5wnin3P06rGi6fjp+K8oexHq+wL3Fp5vTOMkST3Wi+6XgfufU3PmzGLXXc9n\nzpzPjmu+n/3sB+yyy3cmXO4vfvHdCc8raRBMv26fXtT2RcAwcbIUYDmwnbEnS9cBB/egbEnK2V3A\nIf0udHYqeDGwM3Az8Jx+V0KSNHWOB35AtMiXl1wXSZIkSeP110R/+8KyK9LCu4BbiC6ka4H9y61O\nS/9E/A7gFuBLwNPLrU5Lrwa+DzwJPL/kujRzHLAWuBM4u+S6tHIhMALcVnZFOtgfuI74vr8HnFFu\ndZraBVhNbN9rgPeUW52OdgJuAq4suyKt7A9cBaxncEN9XmH4dOLXsYPo5Yxennpeegyiw4AlxMY+\naKG+E9FduBiYw+CeCzoGOJLBD/VFwBFpeC7RHTuIy3O39Hc2cAPwkhLr0slfAZ8nfszZUpk39PoA\ncFaJ5Xdja2F4LvBwWRXp4GriiAei5bFfiXVpZy1wR9mVaGG6/GjuemA6/CJmE7FjBHiMOJLcp7zq\ntPST9HdnYsc+qD8f3Q94BdGwbHvVYlmhfiLxo6RbSyp/PN4N3AOcyuC2gIteD3y17EpMQ/5orncW\nE0cXq0uuRzOziJ3PCHEEuabc6rT0QeBvGG28tdTLuzReTfObrfwtcUXM0sK4Mm9n2Kqebyf6rv42\nPc4hFuzr+le1MTrVE6KevwAu6lelmuimnoNo4H40l4m5wKXAmUSLfdBsJ7qJng58nbhRTbXE+jTz\nSuBBoj+9Um5VmnsusVdcnx7biEPeZ5ZYp24cQJzwGVTLgP8hTv4MukHsU38RcY6nbjmDe7J0MYPf\npw5xbuLrwFvLrkiX/h54W9mVaOJc4ihyPfAA8DjwmVJr1MEgnyg9tDB8OjC++wz0z3HEVQZ7ll2R\nLl0HvKDsSjSYTj+aW8zgh/oQETwfLLsibexJ3L4VYFfgm8Bvl1edrhzLYB/xAvBDBjfULyU2npuB\nyxjco4k7gbuJw7ObgI+VW52WXkW0OH5KnEj7WrnV2cF0+NHcKuB+4OfEsiyrO7CTlxBdGzczul4e\n13aO/nse8F2ijrcSfdaD7lg6XP0iSZIkSZIkSZIkSZIkSZIkSZIkSU39P2nwThDf79IrAAAAAElF\nTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x63c4cf8>"
       ]
      }
     ],
     "prompt_number": 51
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Here, hist is given 1000 points from the normal (0, 1) random number generator\n",
      "\n",
      "You are now ready for more challenging computations.  A random Fibonacci sequency {$x_{n}$} is generated by choosing $x_{1}$ and $x_{2}$ and setting\n",
      "\n",
      "$$  x_{n + 1} = x_{n} \\pm x_{n -1}, \\; n \\ge 2 $$\n",
      "\n",
      "Here, the $\\pm$ indicates that + and - must have equal probability of being chosen.  Viswanath [121] listed in [1] analyzed this recurrence and showed that, with probability 1, for large n the quantity $|x_{n}|$ increases like a multiple of $c^{n}$, where c = 1.13198824... (see also [25]).  You can test Viswanath's result as follows:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%reset -f\n",
      "import numpy as np\n",
      "import pylab as plt\n",
      "rd = np.random.RandomState()\n",
      "rd.seed(100)\n",
      "x = np.zeros(1000)\n",
      "x[0:2] = 1, 2\n",
      "for n in range(1, 999):\n",
      "    x[n + 1] = x[n] + np.sign(rd.rand(1) - 0.5) * x[n - 1]\n",
      "    \n",
      "xx = np.arange(1, 1001)\n",
      "plt.semilogy(xx, np.abs(x))\n",
      "c = 1.13198824\n",
      "plt.hold(True)\n",
      "plt.semilogy(xx, c ** xx)\n",
      "plt.title(\"Figure 1.4. Growth of a random Fibonacci sequence\")\n",
      "plt.hold(False)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nMtUic38AAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x6692240>"
       ]
      }
     ],
     "prompt_number": 52
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Here, %reset -f removed all variables and imported modules from the workspace, which is why we needed to import numpy and pylab again. The for loop stores a random Fibonacci sequence in the array x; we preallocate x to the size needed and initial to zero using the np.zeros() function. The plt.semilogy function then plots n on the x-axis against $|X|$ on the y-axis, with logarithmic scaling for the y-axis. Typing np.hold(True) tells matplotlib to superimpose the next picture on top of the current one. The second semilogy plot produces a line of slope c. The overall picture, shown in Figure 1.4, is consistent with Viswanath\u2019s theory.\n",
      "\n",
      "We can make the above code into a command by writing it out to a file. If you cut and paste it into a file called fib.py, you can then run it in IPython by typing \"run fib\" or \"run fib.py\" to reproduce the above graph.\n",
      "\n",
      "However, you can experiment directly in this IPython notebook by changing any of the values and then hitting the 'play' button above.\n",
      "\n",
      "Our next example involved the Collatz iteration, which, given a positive integer $x_{1}$, has the form $x_{k + 1} = f(x_{k})$, where\n",
      "\n",
      "$$f(x) = \\left\\{\n",
      "  \\begin{array}{lr}\n",
      "    3x + 1 & :  x \\: \\% \\: 2 == 0\\\\\n",
      "    x/2 & : x \\: \\% \\: 2 == 1\n",
      "  \\end{array}\n",
      "\\right.\n",
      "$$\n",
      "\n",
      "Here $x \\: \\% \\: y$ is the modulus function of x and y, sometimes also written as mod(x, y).  It is the remainder of x when divided by y.  In this case $x \\: \\% \\: 2 == 0$, if true, means that x is even and if $x \\: \\% \\: 2 == 1$ is true, then x is odd.  Note that these are perfectly good Python functions"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x = 3\n",
      "if x % 2 == 0:\n",
      "    print ('x is even')\n",
      "else:\n",
      "    print ('x is odd')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "x is odd\n"
       ]
      }
     ],
     "prompt_number": 53
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "But now returning to our quest, the equation above in words means:\n",
      "if $x$ is odd, replace it by $3x + 1$, and if $x$ is even, halve it. It has been conjectured that this iteration will always lead to a value of 1 (and hence thereafter cycle between 4, 2, and 1) whatever starting value $x_{1}$ is chosen. There is ample computational evidence to support this conjecture, which is variously known as the Collatz problem, the $3x + 1$ problem, the Syracuse problem, Kakutani\u2019s problem, Hasse\u2019s algorithm, and Ulam\u2019s problem. However, a rigorous proof has so far eluded mathematicians. For further details, see [63] listed in [1] or type \u201cCollatz problem\u201d into your favorite Web search engine. You can investigate the conjecture by creating the python script \ufb01le collatz.py shown below. In this file a while loop and an if statement are used to implement the iteration. You can run this in the notebook simply by changing the value of n and hitting the play button.  Or, you can save this to a file named collatz.py (remembering to uncommment out the line '#n = int(raw_input...\" and commenting out the line \"n = 27\". Then, from the IPython shell prompt, type \"run collatz\". The input command prompts you for a starting value. The appropriate response is to type an integer and then hit return."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#COLLATZ Collatz iteration. \n",
      "\n",
      "#n = int(raw_input(\u2019Enter an integer bigger than 2: \u2019))\n",
      "init_n = n = 27\n",
      "narray = np.zeros(1000)  # only a maximum of 1000 iterations\n",
      "narray[0] = n\n",
      "count = 0\n",
      "while n != 1:\n",
      "    if n % 2 == 1:  # Remainder modulo 2. \n",
      "        n = 3 * n + 1\n",
      "    else:\n",
      "        n = n / 2\n",
      "    count += 1\n",
      "    narray[count] = n  # Store the current iterate\n",
      "\n",
      "# Plot with * marker and solid line style.\n",
      "# Only plot the non zero entries in narray\n",
      "plt.plot(narray[narray != 0], '*-')\n",
      "plt.title('Figure 1.5. Collatz iteration starting at %d' % init_n)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 54,
       "text": [
        "<matplotlib.text.Text at 0x646f630>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x6353668>"
       ]
      }
     ],
     "prompt_number": 54
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "A couple of things you should note about the code above.  This first is that it will fail if the number of iterations goes beyond 1000.  For most of the inputs I have tried, it 'converged' in under 200 iterations.  But you should try to break it!  The second thing to note is that we only want to plot the non zero values.  All the zero values at the end of the array add no new information and we want to drop them.  That is easily accomplished by using the narray[narray != 0] syntax which selects only the non-zero values out of narray.\n",
      "\n",
      "To investigate the Collatz problem further, the script collbar in the next listing plots a bar graph of the number of iterations required to reach the value 1, for starting Values 1,2,. . . ,29. The result is shown in Figure 1.6. For this picture, the function plt.grid adds grid lines that extend from the axis tick marks, while plt.title, plt.xlabel, and plt.ylabel add further information. "
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#COLLBAR Collatz iteration bar graph.\n",
      "N = 29 # Use starting values 1,2,...,N.\n",
      "niter = np.zeros(N);  # Preallocate array.\n",
      "for i in range(N):\n",
      "    count = 0\n",
      "    n = i + 1\n",
      "    while n != 1:\n",
      "        if n % 2 == 1:\n",
      "            n = 3 * n + 1\n",
      "        else:\n",
      "            n = n / 2\n",
      "\n",
      "        count += 1\n",
      "    niter[i] = count\n",
      "\n",
      "left = np.arange(29)\n",
      "plt.bar(left, niter) # Bar graph.\n",
      "plt.grid()   # Add horizontal and vertical grid lines.\n",
      "plt.title('Figure 1.6. Col1atz iteration counts')\n",
      "plt.xlabel('Starting value') # Label X-axis.\n",
      "plt.ylabel('Number of iterations')  #Label y-axis."
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 55,
       "text": [
        "<matplotlib.text.Text at 0x64af8d0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\niEg5/X9CP/mzwvnhSgAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x665c518>"
       ]
      }
     ],
     "prompt_number": 55
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The Well-known and much studied Mandelbrot set can be approximated graphically in just a few lines of Python/Numpy. It is de\ufb01ned as the set of points c in the complex plane for which the sequence generated by the map $z \\mapsto z^{2} + c$, starting with $z = c$, remains bounded [91, Chap. 14] listed in [1]. The script mandel in the next listing produces the plot of the Mandelbrot set shown in Figure 1.7. The script contains calls to np.linspace of the form np.linspace (a, b ,n), which generate an equally spaced vector of n values between a and b. The meshgrid and complex functions are used to construct a matrix C that represents the rectangular region of interest in the complex plane. The plot itself is produced by plt.contourf, which plots a \ufb01lled contour. The expression $abs(Z)<Z\\_max$ in the call to contourf detects points that have not exceeded the threshold Z_max and that are therefore assumed to lie in the Mandelbrot set; the double function is applied in order to convert the resulting logical array to numeric form. You can experiment with mandel by changing the region that is plotted, via the linspace calls, the number of iterations it_max, and the threshold Z_max.  Also note that on some runs we may see a RuntimeWarning printed becase we have an overflow on z.  This can be silenced with a context manager but we will wait to introduce detailed control of errors and warnings."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#MANDEL Mandelbrot set.\n",
      "\n",
      "x = np.linspace(-2.1, 0.6, 301)\n",
      "y = np.linspace(-1.1, 1.1, 301)\n",
      "[X,Y] = np.meshgrid(x, y)\n",
      "C = X + 1j * Y\n",
      "\n",
      "Z_max = 1e6\n",
      "it_max = 50\n",
      "Z = C\n",
      "\n",
      "for k in range(it_max):\n",
      "    Z = Z ** 2 + C\n",
      "\n",
      "plt.contourf(x, y, np.float64(np.abs(Z) < Z_max))\n",
      "plt.title(\"Figure 1.7  Mandelbrot Set\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stderr",
       "text": [
        "-c:13: RuntimeWarning: overflow encountered in square\n",
        "-c:13: RuntimeWarning: invalid value encountered in square\n",
        "-c:15: RuntimeWarning: invalid value encountered in less\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 56,
       "text": [
        "<matplotlib.text.Text at 0x65011d0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x66923c8>"
       ]
      }
     ],
     "prompt_number": 56
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Next we solve the ordinary differential equation (ODE) system\n",
      "\n",
      "$$   d/dt \\; y_{1}(t) =  10 (y_{2}(t) - y_{1}(t)),$$\n",
      "$$ $$\n",
      "$$   d/dt \\; y_{2}(t) =  28 y_{1}(t) - y_{2}(t) - y_{1}(t) y_{3}(t),$$\n",
      "$$ $$\n",
      "$$   d/dt \\; y_{3}(t) = y_{1}(t) y_{2}(t) - 8 y_{3}(t) / 3.  $$\n",
      "\n",
      "This is an example from the Lorenz equations family; see [H1] listed in [1]. We take initial conditions y(0) = [0, 1, 0] and solve over $0 \\le t \\le 50$. The next listing, titled Lorentz, is an example of a Python function. Given t and y, this function returns the right-hand side of the ODE as the vector **yprime**. This is the form required by Scipy\u2019s ODE solving functions. The rest of the listing uses the scipy function odeint to solve the ODE numerically and then produces the (y1, y3) phase plane plot shown in Figure 1.8. You can try different values of the constants defining the derivatives to see what happens.  For instance, change the 3 to an 8 in lorenzde and observe how the plot changes"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import scipy.integrate as si\n",
      "\n",
      "def lorenzde(y, t):\n",
      "    '''LORENZDE Lorenz equations.\n",
      "        YPRIME = LORENZDE(Y,T)\n",
      "    '''\n",
      "    yprime = np.array([10. * (y[1] - y[0]), 28. * y[0] - y[1] - y[0] * y[2], \n",
      "                       y[0] * y[1] - 8. * y[2] / 3.])\n",
      "    return yprime\n",
      "\n",
      "#lrun    ODE solving example:  Lortez.\n",
      "\n",
      "t = np.arange(0, 50.01, .01)  # time points on which to solve\n",
      "yzero = np.array([0., 1., 0.])\n",
      "print (len(yzero))\n",
      "y = si.odeint(lorenzde, yzero, t)\n",
      "\n",
      "plt.plot(y[:, 0], y[:, 2])\n",
      "plt.xlabel('y_0')\n",
      "plt.ylabel('y_2')\n",
      "plt.title('Figure 1.8  Lorenz equations')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "3\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 57,
       "text": [
        "<matplotlib.text.Text at 0x7d3c278>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x647ef28>"
       ]
      }
     ],
     "prompt_number": 57
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Now we give an example of a recursive function, that is, a function that calls itself. The Sierpinski gasket [90, Sec. 2.2] listed in [1] is based on the following process. Given a triangle with vertices $P_{a}$, $P_{b}$, and $P_{c}$, We remove the triangle with vertices at the midpoints of the edges, $(P_{a} + P_{b})/2$, $(P_{b} + P_{c}) / 2$, and $(P_{c} + P_{a}) / 2$. This removes the \u201cmiddle quarter\u201d of the triangle, as illustrated in Figure 1.9. (The code in the function 'gasket' will be explained below)"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def gasket(pa, pb, pc, level):\n",
      "    '''\n",
      "    GASKET Recursively generated Sierpinski gasket. \n",
      "    GASKET(PA, PB, PC, LEVEL) generates an approximation to \n",
      "    the Sierpinski gasket, where the 2-vectors PA, PB, and PC Z define the triangle vertices. \n",
      "    LEVEL is the level of recursion.\n",
      "    '''\n",
      "    if level == 0:\n",
      "        # Fill the triangle with vertices Pa, Pb, Pc. \n",
      "        plt.fill([pa[0], pb[0], pc[0]], [pa[1], pb[1], pc[1]], 'g') \n",
      "        plt.hold(True)\n",
      "    else:\n",
      "        # Recursive calls for the three subtriangles. \n",
      "        gasket(pa, (pa + pb) / 2., (pa + pc) / 2., level - 1) \n",
      "        gasket(pb, (pb + pa) / 2., (pb + pc) / 2., level - 1) \n",
      "        gasket(pc, (pc + pa) / 2., (pc + pb) / 2., level - 1)\n",
      "        \n",
      "pa = np.array([0, 0])\n",
      "pb = np.array([1, 0])\n",
      "pc = np.array([0.5, np.sqrt(3)/2.])\n",
      "level = 1\n",
      "gasket(pa, pb, pc, level)\n",
      "plt.hold(False)\n",
      "plt.title(\"Figure 1.9  Gasket level = 1\")\n",
      "plt.axis('equal')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 58,
       "text": [
        "(0.0, 1.0, 0.0, 0.90000000000000002)"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7e403c8>"
       ]
      }
     ],
     "prompt_number": 58
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Effectively, we have replaced the original triangle with three \u201csubtriangles\u201d. We can now apply the middle quarter removal process to each of these subtriangles to generate nine subsubtriangles, and so on. The Sierpinski gasket is the set of all points that are never removed by repeated application of this process. The function gasket in the listing above implements the removal process. The input arguments $P\\_{a}$, $P\\_{b}$, and $P\\_{c}$ de\ufb01ne the vertices of the triangle and level speci\ufb01es how many times the process is to be applied. If level is nonzero then gasket calls itself three times with level reduced by 1, once for each of the three subtriangles. When level \ufb01nally reaches zero, the recursion 'bottoms-out' and the appropriate triangle is drawn. The following code generates Figure 1.10."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "level = 5\n",
      "gasket(pa, pb, pc, level)\n",
      "plt.hold(False)\n",
      "plt.title(\"Figure 1.10  Gasket level = 5\")\n",
      "plt.axis('equal')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 59,
       "text": [
        "(0.0, 1.0, 0.0, 0.90000000000000002)"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\ngiAIgpAq/gMTc7lglEYXUwAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x6501f28>"
       ]
      }
     ],
     "prompt_number": 59
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "(Figure 1.9 was generated in the same way with level = 1.) In the last line, the call to axis makes the units of the $x-$ and $y\u2014$axes equal and turns off the axes and their labels. You should experiment with different initial Vertices $P_{a}$, $P_{b}$, and $P_{c}$, and diiferent levels of recursion, but keep in mind that setting level bigger than 8 may overstretch either your patience or your computer\u2019s resources."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The Sierpinski gasket can also be generated by playing Barnsley\u2019s \u201cchaos game\u201d [90, Sec. 1.3] listed in [1]. We choose one of the vertices of a triangle as a starting point. Then we pick one of the three vertices at random, take the midpoint of the line joining this vertex with the starting point and plot this new point. Then we take the midpoint of the line joining this point and a randomly chosen vertex as the next point, which is plotted, and the process continues. The script barnsley in Listing 1.8 implements the game. Figure 1.11 shows the result of choosing 1000 iterations: "
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#BARNSLEY Barnsley\u2019s game to compute Sierpinski gasket. \n",
      "\n",
      "rd = np.random.RandomState()  # Initialize a new RandomState object\n",
      "rd.seed(1)                    # and (re)set the seed\n",
      "\n",
      "V = np.c_[[0, 0], [1, 0], [0.5, np.sqrt(3)/2]] # Columns give triangle vertices. \n",
      "point = V[:, 0]                    # Start at a Vertex. \n",
      "\n",
      "n = 1000     #  Change this number to experiment\n",
      "\n",
      "for k in range(n):\n",
      "    node = int(np.ceil(3 * np.random.rand()) - 1) # node is 0, 1, or 2 with equal prob. \n",
      "    point = (V[:, node] + point)/2; \n",
      "    plt.plot(point[0], point[1], \".\", markersize=15) \n",
      "    plt.hold(True)\n",
      "\n",
      "plt.axis('equal') \n",
      "plt.hold(False)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAEACAYAAAB8nvebAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXt809X9/59tadrQ0rSQliRQSAz3ijpuUzuxAvOyn5dN\ndBer333XMhAvmw43N5tNN1vcpsguTkDJ9t1kOp1uis4LAsNL64VSQNpCgZBwaRKatE1KS5pPb78/\nPkmbNElbpEIL5/l45NF8PufkfM4n4utz8j7vCwgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAI\nBAKBQCA4z7kW2AccAB6M0p4B/BvYDXwC5Jy5qQkEAoEgGgnAQUAPJAK7gOm9+jwO/Dzwfiqw+UxN\nTiAQCM5X4vtpn4cs3jagDfgHcFOvPtOB/wbe1yALfeagzVAgEAgEEfQn3uOAoyHHxwLnQtkN3Bx4\nPw+YCIwflNkJBAKBICr9iXfXAMb4NZAO7ATuCfztOM15CQQCgaAPRvTTXgtkhxxnI6++QzkBFIQc\nW4FDvQe6+OKLu3bv3v155igQCATnM7uBS3qf7G/lXQ5MRrZjK4BvARt79VEF2gC+D7wHNEdcffdu\nurq6hsXr4YcfPutzEPdxbt3HuXAP58p9DLd7AC6OJs79rbzbkU0h7yB7npiBvcCyQPs6YAbwf8gm\nlkqgsJ8xBQKBQHCa9CfeAG8FXqGsC3n/EbKLoEAgEAjOEP2ZTc5L8vLyzvYUBgVxH0OHc+Ee4Ny4\nj3PhHgDizuC1ugL2G4FgyOBqcWHaasLSaMGYYaR4QTGZKSJMQTB0iIuLgyhaLcRbcN6S/0o+ZUfL\nsHlt3ef0Kj25E3LZcPOGszcxgSAEId4CQQhu217euW0eWc5mDo0G0wJwp8ht2aP0VNy5HfVI9dmd\npECAEG+BoIf8fNybN6Ku6/FotaqgdALcsVg+nuRZyoHV62IMIBCcOWKJ90C8TQSCcwa3bS/0Em4A\ngxc4AmNaoD4FjrVYcLtBLRbfgiGK8DYRnDfkv5LPO7fNixDuIAYvFG+V37c6jBQVncHJCQSniBBv\nwXmBq8VF2dEyspzRhTuIsQFo1MPWEjZurDwjcxMIPg/CbCI4LzBtNWHz2jg8SkUNBfjQocSBATMK\nvN39bEk67n/tJ+hOHsMlHcO5T41mmuYszlwgiI7YsBScFyz62yIufeJSZh7OYWyTtvt8Eg5UVDKD\nlXya8DDWzoWM7epJitmc2swFN13AjA0zzsa0BQKxYSk4v7mgbQY5R8KFG8CPFi9QkzSFJv8sxvbK\nZpzanIq31IvkllCoFQgEQwWx8hac8+Tng/E/u1jg9cTsczSuheyulJjt2qVapq4TKXwEZ55YK2+x\nYSk4p3G5oKwM0rx998vq6vtHqPuz7YM4K4Hg9BFmE8E5jckENhs4UAKxV95JKh8UPAU6Ox7LGMzm\nOOxtbnToKKSQ0WMPIEluFArh+C0YGgjxFpzTWCzyXzMG5tCAFn9kp6JiyKkCrZPiYqiqAmeb3FRB\nBeXxn5DT2MifrE6mThVRl4KhgTCbCM5pjEb5rxcFlahwkBTeQeXpFm6PJyDczvAuzk4XVfvbsdv3\nnplJCwQDYCDifS2wDzgAPBilXQ28DexCrqTzv4M1OYHgdCkuhpnZEvdTQwYSu0nHRWJPhwIzaGW1\nNpsjhTuI0wlr17rOwIwFgoHRn9kkAXgKWIRcjHg7cg3L0CVIsGL8z5CFvAbYgFxCTSA4a0iSC0vB\nf3jCl4ECVff5ltA1i87e/dZup0/etY1iWU0NxQYDmQrhNig4u/S38p4HHARsQBvwD+CmXn0cQFrg\nfRpQjxBuwVmmujqf8s0LcZZnoXCrwtpS6KQjIXDg0HWf1+nok0bncZ657TYuuPVWbvnww0GesUBw\navQn3uOAoyHHxwLnQnkWyAHsyCXqfzhosxMIPgeS5MLrLePEmq+R7hwZtU9CB8SlxoO5EBxy+Hth\nIWhiRcLHx8ORI1BRQfPGjbx6663c8p3vfEF3IBD0T39mk4FE1TyEbO/OA4zAu8il6k/07vjII490\nv8/LyztnaskJhg4ul4tXX53P5Mk29h++jE1MwU4yOlopxEo6bd19ndMSuGTWdNzuL9E56jPS02vJ\nyQm0hdi+4+Li6ersDLtOh9PJOx98gNvtRi3yxgoGkW3btrFt27Z++/UXYXkp8AjypiXIdu1O4Dch\nfd4ESoDSwPEW5I3N8l5jiQhLwRdKYeFixo/fxKxZzfzxj8+xo+zreHyp3e0afOTgxcQ+AHYsVrDi\n5csBkCQ3VmsRPp+F1tZxmM3w/r+rafbUYe84EvOaS5cuZd064T4o+OL4vLlNyoHJgB7ZLPItoPdv\nxX3IG5qlwFhgKnDotGYrEJwiO3cu5tprXyMzswOPR01VVW6YcAM4UQLgJZGTmjZsD2R0tykU6jAf\n7llGiU1vfcLDHfdhJ7Z4W4KO5ALBGaY/m3c7sjfJO0A18CKyp8mywAtgJTAH2d69GfgJ0PBFTFYg\niIYkuait3URmppxUymx+FKfTELWvEyV/UBqwXRTPw7OMMce0mqyk1nago+9dTKMx9hgCwRfJQCIs\n3wq8Qgn9negGbhi0GQkEp4jVaiI1tafIgt3et6B+MmUk2tVq1L3c/VwuOZzeYgHV3jHcgZtCCimn\nHCeRDuCaBA0P/+jhwbkJgeAUEeHxgmGPzyebLjweNWbzo9jqsuD6ZZBhgUYjbC2Gk5nd/ecfaeXO\nJztZ9uMaLD4fRqUS9yOTqPg4AZst2EtNGSnk4CUHeRczVMA1aMjpyOHEkyfClzICwRlCpIQVDHtq\napZx991XUFWVi/NyE2SXQYatp0OjHo7mwr82oMHH5PsrOHBZG86Ano86nEj8XbPxnkyOGFuDj7VU\nAG7WJz6NXVOBTgdLZs1C9fxy0ufouWTzJWfiNgXnKaIYg+CcJTW1hD17/NQ1KyKFG7qPs0YeZUpb\nIvvn9gh3UTF8VGZgqy9SuEG2ka/HwIqih1mRUwVad6BlE1yxm9bWucDrX8RtCQR9IhJTCYY9eXlq\n6urGwQJTpHAHybBxyYJ7SbtnH85AMZ1gTipPDOEO4k7wEpdT0Z0DpRvtcbqm7EGS3NE/KBB8gQjx\nFgxr9h5xcehEINVORt9ue+6Mo9hDnEeCOal0tPb5uQkz3qNL2xi1zd92GKu16JTmLBAMBkK8BcOW\n/FfymffsPDrHvy+faOzby0TXqEPnCDkOJKIqxIoGX9TP6LFy52JTn+MGN0wFgjOJEG/BsMTV4qLs\naBnNI2yyuURllb1KGvVR+2saNSzZuoRCM2gCmV2DOanSaSMHb4SAj6OeXErRNdX3ORelUvh6C848\nYsNSMCwxbTVh89rkgxQ3TCiFI7myVwmE2b4njprIzJMzmXjZRJRGJXmT2vi49QTmQj9zymXTiYl9\neElkPYZALpST/IHFGPgUyQwNc8CvjZgGSUl6DIaSL/x+BYLeCPEWDEsOHD8QfmLxHdCWBFsfheqv\nw+XrYJKXlDYN5Xf+GfXInuRRLwBuSaLIasX9JTejPusktbYDFW2sYH93PyWj8KFB6XWiqgQvAQH3\nqMBcQJzTSJwhHv6UBpkIBGcU4ectGFa4JIn/LK7g1fgnuaB2PLoGHY7RDswLzHhTQkrEa66HqStI\ncIyg6pLJTJ0+NuaYklvCWmTFvdFNR3MHnc09GQRTsn1MSvoLGRMbkKaPo8IyH/+uMXQ50rv7JOmT\nSL50FGsfbMeydy9Gu53iw4fJ/PnPIVOouuD0iOXnLcRbMGzIr65mj83Do988QWfXSTJO9iSWcqgc\nVE6oZOXilUA8zP0/GJkNwLQPYO/P8wZ0jaCQ+yw+lEYlhhIDCrUcRi+5JHbM24HfFlnE2JXVwZJn\nEmgK1H3QOxzk2mxsqKqCDRtO57YF5zkiSEcwrHFJEmVeL2P+/Wv88beTdSIrrF3r1cIRSGtJoyml\nCY6+BFNXAHA8LSHakFFRqBVMXTc1apvVZI0q3ACZdQkUroc/r/BQgBmd1s6JtHScG+1o3G4QOb8F\ng4zwNhEMC0xWK7YTx/nq9osihDuI1qulcGuhfNDaU5BybFPHoMzh5N6TUc97VLDqfsj6fjFrWM6N\nvMEcKrgqZSvlJjvVr182KNcXCEIRK2/BsMDi84HVzJimK/vsp2sI+P8ly3/VjiZeveXLp3396vxq\nTuyMKA5FcRFU5YBP6+E2qtD2yj6YmtKEN0NCktwoFGL1LRg8xMpbMCwwKpXQascx2tFnP/toOyRp\n4IIljHfUkX5I2edm5UCQXBLeDxrDNjJBXnFX5YBTCwWYI4Q7iD+9VURhCgYdId6CIY0kuaipWca3\nWn7MyJGZmBeYcaiiC7hD5eCvX/4rY9u1/M872/no3xs5UPTV056D9XIz/qNtEefNBXTnSdFhj2gP\nRURhCgabgZhNrgV+ByQA6wmvXwnwAJAfMt50QA14BmmOgvOU6up8vN4y/H4b8cDsiT+ktL6CSl0l\nNIG2qydqxpHioDKlkpQXWqi4YSbqVfcNziahy4XvWGfE6d0zYd+0nmMHOqAi5jDeD8aAyBwrGET6\nE+8E4CnkGpW1wHZgI3IptCBPBF4A1wP3IYRbcJpIkguPbQ/Smm+AXQc6B78qNPOwqoXfjHqclC4l\nhRSiQ4cdO+YWM00tTQAUJSezbrC8O0wmlK2peAIFGYKYC+DglJBjCplDeVTTicOh57Vf/4LLviN1\nux0KBKdLf+I9DzgI2ALH/wBuIly8Q7kNOYBNIDgtKhb/B6n8Zz12iQpgywJ+mdxKaXwZj2NmNauj\nfnZQiwJbLBgop4E5+OlZ6XvTw7t5SacyIPChAu5w6KmszOVN+xTuuKKFp95XiLgdwaDQn3iPA46G\nHB8DYm3djwSuAe4ahHkJzmMkl4R/Rzo4eymkLwV8KeRyAxcwh0oqWcnKiM8PalFgoxHFli2oqJTD\n4wMCnu4hoqb8Skyk4aWw5S/oWo9jL70Is7mEpib5V8BL+9L5dB7k5oq4HcHp0594n0pI5A3Ah/Rh\nMnnkkUe63+fl5ZGXl3cKwwvOF6wma1j4eTS0ARFNI40mmrrP6/V6SkoGMVFUcTFs2sQM20ok0rBS\niA8d046q+ewSfU8/fxzsH0WTVctq80vQFN08YrNBV1c7bvcIEbcjiMq2bdvYtm1bv/36C4+/FHgE\nedMS4GdAJ5GblgD/Bl5ENq1EQ4THCwbErkW78GwZ2LbJRjZ2m0/0ej25ublsGOxl7e23Q2kpIdWJ\ncc2cybziYmxpaT39iqdBlQqcyn6HvPXWLbz00sLBnafgnOTzhseXA5MBPWAHvgV8J0o/FTAf2eYt\nEJwWSqNywOI9d9xcFk5biNFopKSkBHW05azLBSYTWCxgNMqr6RiGZ0lyYbWa8Pks+Hw6/vznOKxO\nJ8YrrqD4iivItNvBaCSzpITcujrwerH5AyHzpn1wyAdrs6AiHjqmAUpI6ITpTbD4KJxQgNmA1Zok\nAncEp8VAElNdR4+roBl4DFgWaFsX+PtdZHt3X+ItVt6CAdFXAqjeaJdqY+YiASA/H8rKwlbN6PVR\nDc/VOxfjrd2EP7WZ4mKoqgKnM/RjkSv7YGrZv378Mf79++Gpp6CpCXgOuBLI7hlA44McLxRa0TXW\nsXXhm0ydug6BoC9EVkHB8CCwSq5+7UK8LQb8zakxuyZmJzG3Yna3+53L4cD0xhtYEhIwdnZScuml\nqG+4IVy4gyQnw623wqpVkJmJVLiYHde+hj+zA48Hli8PF25UKigoINlo5NavfIVV06eTqZCvu7e2\nlplz5tDR/QE18ClgiLisavIRCv74A/QKCzMVTeTOLUehEO4ngtgI8RYMfXqtkiXSsKbeh7t9Hu72\ndFTtPVGODpKwpaio+voMNmyA/GefpSw9HVuIOWRDSQn5mzf3fU29HmbPpibnHRxXNQOynr/xRkif\noiLIyQFtj6ugPimJXJWKDTNmMP1b32LfSy+FfGANcGfEpYqK8snJKUOrtXWfS0rSo1LlMmOGcD8R\nREekhBUMaSTHXqyTNuL7UjNKB6Q+C7860YSl+VfoUvSUp1dyrfMYOnzYUWLGQFOLAn0p7Kt0Rgg3\nQFZDQ/8XttnA7Uaa2dx9yh4a6a5SRQg3INu5vV7ckoTlQFWvQSNdFVUqV4RwA/j9NrxehP1bcMoI\n8Racdaqr8/Ee2og/sPJ9oBiqksEZTOLX8iC0pLCXgG17pAsW3AsZFmyNRm6473+wmSJND4d0OqiQ\nQ9ZdqDHxKBaMGDlEMSYyccsdm5tJ/FDFqisLsKPDrfsbVOyR2woKIoQ7iM3vZ+mnv0eVlRAcKXjl\niL4FBaYI4Q7i99uwWouE/VtwSgjxFpxVJMkl5y9JlYXb4wlsFLp6+qhUYygoWIZOZ8GRbMN8RMKb\nEowd28LBE69DWSuMyQVDIShkH3FTYSFXl5djcj5OGbnYAjboLcAmriaXUjZwB/lFRbx3WQ61wQjK\nwknEly+l0+kCna7P+R9uj8O4oBr3J/HgkXOg3Ec9f6cZFz32ep2u76hPt3ujEG/BKSHEW3BWsVpN\n+P227mOzOXyjUDY3L0erre8+N8cIlU2wcl/gxCgHtAHON6CxHFQ5MN2EOz2dtyZfzgd1V3C0c2LY\ndYNCvk9loCwnh9qUkNV1ejqdORcRz2d0OvpOQZvma2BfZ7vsVNIFKq+KeRjYQzNVJOBE9vl2OIzI\nj43otLefEKYTwSkhUsIKziq9U6WG2pt7zM31YX20StjmirHb7neCtwra5GLEDyb9NkK4g9gw8I2C\nVdiimUVMJjrXPsu4ox+hqI8h4I4kPn7BgdMPLAaWQoG6AC1aTOxjLRVcj51ZNHDUfA8dDk30cYCu\nrhbMZlFxRzBwhHgLzipKZfjmXqiVIpa52SPBoeY+cjf4nXBoPXqXi9RjSX1e//j4jNiNKhVj77qZ\nOWMsxNGrlNrxJKhU0Rqa+icFdKN6bkBFGyvYzyo+4y5vPQmVOdBLwBvdcVRXy+aizs5juN3h1nOB\nIBbCbCI4qxgMxVgs5axZ833sdiNjxuwmK+tB6uo6Y5qbzVbk1W4faOz72X7TFRTN1/DMvtj9xqZk\n0ogrZns6Hi7lY8r4SnjDznT4zXS4Ptwc4hjtAGuMwVaaIM0LhetBZwe7jk/M4/lN01o0GkhPb+Wz\nz4pYt07YvgX9I8RbcFb53vcyee+9t6itDRYV/irJyR+QlFSGwxF9FWpv7X/c+b5LUGs0wbxSUeN0\n9Hr4902TWVTeQG1qZJHiNLx8yjy2sijyw+rA02NrMRg3QYZ8AfMCM3MOzpGr2UejSQWrV/QMQzkg\n2/mPH4fMzFjZlgWCcITZRHDGcblg2TKYPx82biREuGVaW1/D738bs1mBoy4h4vO65L7HV0pKVt8r\nJ6vKzJQj4fX68D7BCPlpGgVXjMtA02vxrWyBJlQ0k0ZU7IHkUycz4WguSa2jAfCmeKmcUIlzVN8b\nnd3DhJRP6+oClyv2rwCBIBSx8hacUaKlGonObLze31O59wcwejTaET2idv1ENR/UN+Jti1wtx3fE\n8xX/V9Bl99hcNmwAt1v2XAnmpiop6amS9sKXLqT0qUoeH9/A0VGd6Oxw6z/hwcfBGW2P0ZEE5p7Q\nd93Hq7lqFPzX8w/i0jo4NnEl9x5Mw0shJ5nAibipdHZFZhp04MCMGRUqCihAh44uTxeSS0KRKSru\nCPpGhMcLzhguF8ybNxDhDvIuev1SUoru4RuTN6PqqsOODjNL6Kh5GpoqaTnZs3Id2TmSayZdw7/u\n+Nfnmp/klrAWWfFZfCiNSh65s42PW0/0ZA0EElxJdOxSwcoZQK8cV1FSx6LXU81DHHJfSGpzzzgO\nHFRSSRxx5JDTnZ8cIEmfhCpXxYwNMz7XfQjOLURuE8FZZ9kyeOaZgfc3GJ7j+ec3M2vWEzShoshq\nxeLzYVQqKTEYoL2Joi1FWBotGDOMlCwsQT1ycP2kg1kDg9f9kcrAkw8roq7g5Q9EX+LfMF9i8gdW\ndDRh5w3M/I444ljDmjDhDpKkT2L29tmi5qVAiLfg7LNoEWyJHacShkZjZe3auahU9edE8qbwB9ft\nQCn38w1u5MaeTioPFJhlTxSHjqy2h5jxB+H7fb4jElMJzjpG48DEW6OxMnNKKXPX15Nsh1adjaPL\nJKRJwzcCMdzrZQPgRse7PR2KiiGnCrTB8NIKXJ4dVFcvGNYPLcEXhxBvwRmjL7e91FTIydlLZuZ7\n/Npr4oL99Sh7dIyMcju2bANTPj0R+eFhQNDrBYL3r8bBLMAhr7jDhFumK92B11sqwuYFURmIq+C1\nwD7gAPBgjD55wE6gEtg2GBMTnHsEBWxidmfY+YnZnVxzDYwffxDnESNPlpfQ7FTjQs0y1rCITdzn\nXEvCgWTqa2rO0uxPHcklUbOshl2LdlGzrIY/r5bYvh2WLoWFC6HtDgOJ2UmyqaSXcAcJZhwUCHrT\nn807AagBFgG1wHbkGpahkQTpQClyGbRjyGVEokVXCJu3gA8LK3lE38iHU6GDOMbuTGbi03oOtafi\nPNnjwJ2CvMJuYVT3OT1WjKP2sLnpxohxhxrV+dV4y7zdpdw8Kvi/H8ZzfHICF81VU2wwkKlQUH17\nNa7LvktXTnnMsRzt41h02U4yU0TFnfORz7theRnwMD3V438a+PvrkD53ARrgF/2MJcT7fCSk+O9t\n387n1fET8SWH/ODrAMpGwy8uGtBwY7FS6TIQrc7wUKF3Dc7iIqjKAWeIU0loJZ69u5dwvNEcczzP\nR/BoRzbTZ8xnw83C/n2+EUu8+zObjIPQzDscC5wLZTIwGvgvcrX5Oz73LAXnFvn5smP3M8+wt9zK\nxtTx4cIN8m+7SS2QJg1oyOMYuPvuxsGf6yBiNVnDVty9hRvkQg6lgUo8xumPkZSkjzpWkgO+9mt4\n+Ymj3FLyKu6TInGVQKa/DcuBLJUTgVnAQmAk8BHwMbKNPIxHHnmk+31eXh55eXkDnKZg2OFydYdS\n5vMcGwum0aJpjt5X64dCK6zuowp8CC+/vIvbbzeHVXEfSvgsvu735oJI4Q5i8/spslpZN3UqKlUu\nXi9huc2THKCqBEVToJSxpYWV/17Bk/l//ULnLzi7bNu2jW3btvXbrz/xrkVOMx8kG3n1HcpRZBu3\nL/B6H7iYfsRbcI5jMoHNhgs1ZeTSrPP23V/n67s9hM7OGkpLS3G73aiHmP3E1eLisVmPcVB3EF2j\njiPZP0Be30TH4pPve8aMDUiSm21/mEgWJ1HawWCWhTuIwQtXrd8M+V/wTQjOKr0Xtr/85S+j9utP\nvMuRzSJ6wA58C3nDMpTXgKeQfwAnAV8Gnjz1KQvOJWp32/kVa/iIy3iQX/O6YwpvMjv2B+yRuT+i\nYwVM2Gz1FBUNrfSp+a/kU3a0DFuKDYxQQQVpoy+GaFkJAxiVPfetUKjJ3pDB9N0nu8+5GU0lcxjB\nlbSTRfpOh8h9IgD6t3m3A/cA7wDVwIvInibLAi+Q3QjfBj4DPgGeDfQVnKfk58OcnU9zBR/wGl/n\nTp7hGfPvGedoif4Bzwh4LavXyRNAbzOLFdmxSa6sY7H0XRfyTOJqccnC7bV1nyuaBr/NegoN0TMM\n6pOS5DD/0HOzFiCpYNeP4Z0xl2HlRyTxv7RzOTCJDu8VlGrfpPI7O7/AuxEMBwYSpPNW4BVK7+XO\nE4GX4DzH5YL33qujXUomlzIM2KimCK83h2mVKXTQywbsTCLueCLK7/yVkyXJkGmEsRZY3ABbtpP4\n4Q1o+Ao6TjKLf/E8fyBogDEajVFmcHYwbTWFCfcFEnz3rzDmuJdxut/y08I7qUrvselPTEokV6VC\nrQhfQVvvbeHA1yGxcTTTGzw4uQB/r9wncR3puLYcorL0KS7Mje2lIji3ERGWgkHloYd81NZmsYZl\nGLAhocJLDn60mFaCNw3WF4JdB+n2eD41X0Rnp5KKcgMlR+5n09/v5njCKPjSGoq2ziYn3ou2M5g5\ncAFXMJ1KKnle/zwlJSVn9V5DsTT2/Ap47hW47ngiY+raALi+YhdXlS/n4+lT+fZ3C6HWziU177P6\nifA1UcvhUhqPbkSVBr57ZyB1zY0Q7iBxrjE0PD4eaa6IvjxfEeItGFSqqmzAdIzIYmalIEyAVE2w\nYnXwqJONHGM1U1m5cgzKuDiOd3aivunb/Obp57nuEztdnTqsFNJGOgBatMTFJzA37gDHvn2MemM9\nhmLDWbcBGzOMbLFuQd0CuUfjGONpC2tPcXYxuW4fXf/9MfXIG0W7/zub3Pnz2bBhA57rsqmc2spv\nLH/EbjeSbW/iBzj7tGt2Hh2F1VrE1KlDx+4vOHMI8RYMKlqtBZjOIeTajj5iFKIMoEP2ttiyBaax\nheeA3JdewtAY9OWuIINyvOSwDxMAms4s7rLehcfqwbPFQ8OmhrOe/7p4QTEf7f6ItX8Bg2dP1D4T\nOqE4MZHl99wDOh02h4OOF16gefFXufO/j/H+J7k4GmUbeAVQTj3TaMNEjCKcOjs+39Cx+wvOLEK8\nBYPKAw/8l7KyHEzOYq5mE0oceProb0f2tkhI8HGxv51cCBFuGSVy3o9EvLShkk+GpE/1O3R43l2O\n5J501vJfu5a6KH63mGnu6G5dQYxTpsCNPeH9tXPm8J2aQ1T+KxeHP3zzspYxdNCMl0RUhK/kG1XH\neSHPzJ1dNwzeTQiGFaKGpWBQmT37p8y8aBcjNM2UkksC75IUw9vCQRJmDGg0VlauzOWnU09iiNpT\nFnAD6+WDomJYsxxufAPmVMANbyD9rJCK1xd/MTfVD5JLwlvmJc2Vhj2l7wKbll7eJZ1aLf8t/Sa2\nGHfuJJW/EO6J046X8nY1/3zht1zzrwoMf7n+9G5AMCwRK2/BoKJQZPKtR55lcd1hXlx/L3858nV+\ndvAYyW1xtLfJBSE9JPJHjBwilTZlK5MnlzNu3E4SW/peNY9QHYY7H4MrPoCkXuH0Wid+z46zkj41\nGA7vVXrx8j2MHOr+tRDWT6PBtGRJxPmWhjF9jn9YcYK4jjKaOyZQioE/cR1NLQrYsZD2g1dz2FBB\nzTfsTE2/DZzKAAAgAElEQVTv20QlOLcQ4i04bSSXhNUk1378+eyf827u/yNJNZ7CFevRYedNdLzk\n/T7fXA+ffDiRfSeyaOhIkT/sgwMH5lBc/Bx/094R2JaMpLoIGnIOgja6PRnk/NdnYwMvGA5vy7Rx\n8ZGL8ZIDECbg1tEZlObkUK9SRQ6ga5WN3DE4POJT8qTVwKfQe4XuNdBlheuf/wUH7lp/mnciGE4I\n8RacFtX51dg+aGHN0XEcic/gwPFv4p+xD39aDqtZ0dNRBasLE8koV9DoSQkbw+mUBWnnb8Yw8pN6\n0l1hzUgq8FyYQLsmegj9CC9csB6S7dCpfwPWuuTk4WcIpVGJZ4sHpSTb7/dhIhEvBtaTjJ1PJri5\nI///UX/1N6MPUGgl5cMkWjyRK3BtohXHSRNQTIRwB/EaOPL81+T8noLzBiHegs+N5JK477VM9rQY\ncKKETqDyDnigHtbsBHWvf15mA43O6D/tnU4Da/9ZjGbyckZLch6PIHvvHoGkaY85j4ztoHsjcFBh\nh4p5ISXdv3jS7jPwmbkBn6Ln4dKGiv2Bh5ff7SGh/Sdw8goYGem3rfcdYXbzMcrj5nG4q0egR8ZZ\ncbQFI0r7Dkga0ThpUO5FMHwQ4i343OxYcYQ9LeNk4Q7FPQZ2aeASZ5iAxx2N7zNNpfWYkQW3QGIu\nFG8FYwNYRsPIy1KZ0IfPSltvW0uwzprbzReV+FtySex49CCrJnqoHgnKH8Zx+98n41Q50Xg1YX3T\nT6Yz6UgmdU1VclZmZY+A6x0Ocisr2dC+EjdjKKIYC0aMWDjU9Vs2Yw30PNTnfK6fO3SiTQVnBiHe\ngs9NyXuqSOHubrwQ1Dp44gkYNRpa7UzKjOMAmuj9gcQxFpragRRYHuIB96xCA32It9Ie5aTNBkVF\n8AUkrqpcXMn9M+upvKyrJ9R/OuzMTUPlS+DXPzvO1KNju/s7VA7yqvMom17CpLGzmdR8HW2oMNrt\nlJjNqJvk1IFq6lnH8u7PPc5C/ptwhI6ODsAEXE1U00nSERyH7mPZskyKi4vJPIMmI8HZo79KOoOJ\nqKRzDpFfXc3Lt2mRdmeEN6gkKLDKKV4dSih/HxYsRa/S89Y3yrkub0zUAsSJo4/QVjgLUurDzutV\nej763lsc+GwuHR2R+cCTHDD7zvDUqUE6r7iK+Pe3nsZdRlK5uJKD29wsfypGnu46BfyfhmkLSyn8\n03Hso+2YF5hpSmlCr9Kzfel21C1dcpGKaF9EACt6bpv0O8Zd/Byflpdz9PBhkEOYCBPw+MPQ+QHB\nGih6vZ7c3Nwhm+tccOrEqqQjVt6CU8YlSZR5vUjZ6dAt3i740t0gWeGABuYXwpx0uNRISsJKcqli\n2sQxvSqoy+j1QPZR0I3C5u0Rb71KT+6EXDSqabgzrsHtfhW5bpqM5FWSVemLKtwAdTvTaLi9etAi\nLyWXRMOmBszfj11ggSwJZvnYp03jx4X3QHtT2L2oR6rlkiW5ubR3wIijtoghrOjZnZLL6x/dhFp9\nE263m8vuuotj1t/TOvotoBiOpULNO9BxH8EsiwC2wBc7FHOdCwYXsfIWnDLLamp4xuEATyLc9mXw\nfRfiSqHrcE8njQZycsBkIluRSMWcud0Z9Nxu2aJhsYDRCCUlsmnafdJN0ZYiLI0WjBlGShaWyGIX\noLLyFl53O0nEhx0dr3pvZcudD2Jw9rjkuUaCaQEcyFAwqjGPZQd+yKIPFw1K5GXNshoczzhY8ThU\nzOmjY3k6vJfFiOv+g9r2IjdeEXkvwS9iy2VFpBzdyyi/CzdZ7GUaz2SXMGO+OmK/1S1JFFmtvHZ/\nJvXvPUj7ydiugUuXLh1Suc4Fnx+x8hYMGsHqL6S3wUU18ElZuHADBAXV6+WoStVd7gtkoY6mK+qR\natbdEFtwLrzwZX63dzfm44HweRWU5sg+1Qank/yboSwbbBkAErCJT42fMefxObz+m9c//w0HCPpz\n6xx9umXLhSXsyVw+dy7v3fX92P3UahYeWBfxMNtUEmWf1eVCbTJRvNfNpp3raD9pjTpkkKGU61zw\nxTCQ8PhrkQsuHAAejNKeB3iBnYGXabAmJxiahFZ/IfOngC16R6cT1surw27BP00eM05Hn5TUfXyH\nycTctWt5/OtfZesFioBwh0whw8mO+B2DUrhXaZTv+3/NoHSEr3tUeLifVTzu/zE/UjyOyljLtLSB\nVQcKPsw2b5b/Rgh3oJCz9OIz3OP5KrZmNf25Do6pHYPkGlhRZ8HwpL+VdwJyibNFyPUstwMbkavp\nhPIecCOC84Jig4FNDQ3Y/H6wR3P1CCHQHib4p0GmQkGuSgVer3x9oF6l4uH5SfiaoouVI9lB0Zai\nPlf1A8FQbODev49mvtfJhZUedqCgUytRRDE5VKHFKRcCvLacL3e+yeS2K4EXTuuawULO1fk2vDlw\n8ImgaBcDm4j24JxIPL/Y52DHvB1nPdui4Iujv5X3POAg8r+QNuAfwE1R+p1J27ngLBMUUH1SEuj6\nyaeh00Ut93U6bJgxg+2zZ7NUq2Vhejo5+8YycU9kLpFQQoslfF68KKhGxc+ZSc3KL3PBnVNRbRlB\njr9aFu4QsuIdtJ74GEk6zRW/yYTUKAu3Xws6XdDfO5MkZjOOhLDueuArdHIBB+i01eEt9SK5xQr8\nXKQ/8R6HXB0+yLHAuVC6gMuB3cCbgHjMn8O4Wlwse30ZzvIfcEWdmVt/tJxkbQzXC42G7Lvuilru\n63RRKxSsmzqVzZdcgubl6SS7+n44GDM+XxCL5JKoWVbDrkW7uGe+h9pA8qwmFBxsGkNBy3Nok6Jn\nTfT7bezadQWS5Ira3u+1HXupydrAnmJIqpPTABQWmtBorICLuVRhpINpwBXAUuSfxhvoycLot/mx\nFvVtHxcMT/ozmwzEPaQCyAZOAtcBrwJTTnNegiFId3X0kFqNetUWNKomqEvA1tHjxpc8ejTjs7P5\naOHC0xZulwtMpp4NveLi8NQlOp2LLa8kE2dU0pURaVuP60qg3lcfcb4/qvOr8ZZ58dtk88xBOsPa\nVSoXl176nz7HOHlyHzt2zEOlymXGjIH7Xlc/q8ebfgz/wp7vVFEHE4676erKJz7+KB92HutuawUm\nAKHmciXyJnJwo1VwbtGfeNciC3OQbOTVdygnQt6/BTwNjAYaeg/2yCOPdL/Py8sjLy9v4DMVnFWi\nVUcHsHlt6P9fAm8/3cGTPrAgb6WVNDSgTkvDdfwQy3at7nb/K15QTGbKwCMA8/OhrKzHL3zLFti0\nqSd1SX5+Ph98UAYnbXTZgTToZUmgK66DHXZ50zLCXS8GwRzdQeEG0NHa7WVSVJRPTk4ZWVm1/Y7l\n99vwehlwulrJsVcW7syO8PNZ0NgEcV0f0Rn+HOm2fLvpEfBRHGQaxXiNf+r3moKhw7Zt29i2bVu/\n/fqzVY8AaoCFgB05J+V3CN+wHAvUIa/S5wEvIZveeiP8vIcxy15fxjMVz8RsX1oO694IP5d/M5TN\nSMU2oicyMrU9lWumX8PLt73c7zVdrtiBiHo9vPWWi+uum9cdmML1QB/+10tnLR3wpmXQpzsUD4ks\nZxY+VTNr1sxDq40ysRC83jGoVD0rfq126YDS1dY8O529E/dhtoK9FXTJUGiAdAWsWgVvvBH7s0uB\n0Cs0x2Vy0/d0PPXwC0yfML3fawuGHp/Xz7sduAd4B3k9Y0YW7mWB9nXALcDyQN+TwLcHZcaCIYGr\nxYVpq4l/Vv+zz36WXi56rpEBn+sR4SHtzSOaeb3iVW55+xZe/lvfAm56wIfNFt1LxWaDb3zD1CPc\nABlRu/bM8RQ2Lbd/tJ3xjA87l04bOXi5tMDUp3AnekDzVAozGxrwjwNroZw8y739MwKu7n1yv+cQ\nO+vBGVj0VwDljZCjgsZ+nHtC79ClUmEquJ3aCTpmPLcenettan9X1f8EBMOCgQTpvBV4hRL6cP9T\n4CU4x4hm446FMbzsJCtywfYhsvFsNLAACKTxlkZ1cMLyWt8h3Pn5WP61HPhKzGseP95LjBuj9+ue\n4wA3LV0tLvY49kSIN4CJfbTpdsf87LRiSP0snlRXi3xiJ2SUgzcH9ueORXJLfUZ7ulpcfObvxBlu\nMZGF3AsXTaDPCKEZqKihgO36XA5ckMyL81PwBrIu2o/PYdzap6m9UyT+PhcQNSwFUYll446G/kQC\nJSH5n/KBf5YBOwBr4O8zwCs9fZpHtbNyxQqiIe11sOvt6SxO6OBH1KAiuqvb2LG9xHgrMQU8vc2I\n+qmreOGSF9hVsCtmAIvkknjpmpcY6x7Lh3zI0zyNp1dGw67G6GXLEj2gqoJUV7hBWukE1WfxJDy5\nuF/PD9NWE7Ud0XOXO/0QnwsTs3s7fMmspIhvsQYHNzLeNoartqawbhn8LR8eXwE/2qClJWEMNc6+\n3SoFwwMRHi+IimmriWa7jTWBvNqHRss5Q9zhRXDkhEtNoM4CbDZcQBnQ2tJrQC9kOOHbGni+Hi5s\nhKsqNkdctzq/GsvHVYz67idM1/2b6Q4d88zL+cyrZ2WIF6pGc5SXXvoRN964qcd0chJwJkJmOrT3\nuOcV/ftRco5diLZeXoJ6dnt4+423mXT1pLAAlur8ag6+dpCclpzuc0aMVFLJNrZhwoQDB4df/BJX\nXl+D328Lm7vBLAt1NJSuTgy8RJ1lZvQOAaKZdlSJUKCXbd8dUgLjrr6ULVt2hJmMZsaPJqczhzbC\n3TbH1sl/s+1ABcwpH8ur6z/lwU9ETN1wR4i3ICrfXPkaP90bUtHGClcfhNIJUHALjFPGMTtTywOz\n5jNr2hPwszgoKqJo4+vYnNH9nhtdcPQNePZOmOSH5J3hezCSS8J14X2Mun4PaIMqWMHYOeXkVl5E\n2srXaULBBIWVyTmlKBQfkBtIU9gtZLp7YN6VcGg9tNpRtRnJcV6Gtj7cBSXNlUbjh43dZgzJJdH4\nQSNpLWlh/bRoiSceCQknTnazm9eSX+NGVS5eL2ECPtKZjOy0F51k7N0h9r0JukOWNhohZ0v3+aJp\nkJMG2u6PdTC/cAd33z2btWuvxmKxYDQauevdC2m0xkp1GHI/TohvU/ZrvhEMfYR4CyJxubj4UAtq\nb/hpgxfSnfDCFBij6QLstDb8jR073pf9mNdtoPI/e4Do4g1ytHxmCrROA+PXcsPaDj66g67LQoU7\ngNbJSGC54SNeS03kn9obcf+sHp9vIRs2bMbtdlNUVMS+/fsonzmZk4kqmCqbZApWgfZ49Lm0HW7D\nWmRl6rqpWE1W2o624RnpwbzAjD3Djq5Rxz1v3cPYjrGMRS6ucC3Xkns4F1Yamf3nLKzWInw+C0ql\nkVEX+6D8uZj3LqVmYyiJDCYKc4ccWQy6TZBhQ5XYW7hlgg+MP/5xe7fr4a5Fu8Aau2BFKGPrE7vv\nWzB8EeItCENySZycfw/qusjCBwAZLrjs77A/xFwd6ses7ep79ReMpvdrwXF3MqHrXM/EVZHCHUTr\nZNaSJ/h01JV4J8jud0qlbPNWq9Xd6U+709UGr9ePd0YwgMVn8VF8czF7jEeou+R6SL4SS109d7zf\nRFZTuF/6qOZR7H9lP2sS1vCLJ0Iq1zzmgi0fRPVtbE3Q4L3mx2h6rXYDqUuw2eSgn4ICE9tG+7D4\nR1Ew+USEcAfx+21YrUWy66HLhbK2HA8Dr2MpAneGP0K8Bd0EIwoVtneZ3Ue/5CiCGBSTBxY+QNlz\nZTiJFGGNBpYs6Tn2dfUKcOlPacfZGee206aCpCQ9BkNJRJdig4G3LBaOrlkDdjsO9/8AF8ccMmjG\n8E32UXp5Hq1qI2q/kkfNZhZ8bCe1qRIrhbQRXigzvTWdxL8lMu/9eT2VazIziVZtQkrV0nr5KHym\nh6mpMWIwFKNQyIJvMgUrtslBP1qtjRsB7+/vxDPpZeSwG/CgwkwBdnTocFCIGUf9HkYXFpK5dSsG\nWyPOjDV0NfZvOgGQaiUkl4QiU5hOhitCvAVAT0ThcdtxTtDap3i3RstF5VFR/9QUlHXJ/GTET1jT\nvoYDHOhuzspSEx//KL/6lRGd7hCFhSa02h5vEZcL9nlncIH2o5jX3Ts2g1smmklUZKNS5UaNVrzv\ne9+j4b33oFZ+MLyKha+zhg4iRU1BHZ32EcBU/rTw77Sm5PLcKjO5VVUhBR4qyKAcLzns65XtWIcu\nsnLNhg1h1SYaRx/m4Pf8tCj3g2c/Hls5xx/UkHB8MuqL5uLYa0Cl8nYLt8ejxmx+lBvem8KUC47B\nxDcopogqcnAG7qECKGcO6VIjD12bSa5Gw4aVK0kaW0lrEn2U+enh5L6TIuvgMEeItwAAq8mK3+bH\njJmP8fEVopa6xacB65JeJ4uLoCoHyalFwsuX+BJrE9ayr7Ma84wVOBvNtLfnYrcbsNuhogLKy79G\nXl4mL7wg23w/KO2kyfMYz695m5HayJBzX2MWW1MuIav1MNdd/lFU4Xa5XJSVldFS2/P5H+NlDJV4\nAX+IgCfhQEUlGdueR3LPY0uiAbVf2Uu4ZZSBXxGJeGlD1X3eHsgAYbPZKCoq6qlcE0jQLUku9u2Y\nh99/NOx76nRq6QQcHztYmtrAreP3odXaKC5+jqqqXJxOA1OoIeufS3h6wRw+SLkUiaTQKeFEy3Gy\n6MpMgAsvxJ2WxizHSsp/k4b0RiHYdeAcC+2JUBe96LPf5seLV2xeDlOEeAuAHhuoV3WYOwqgRgf1\nDrjIDIrAxuXhOEiYCIb1sumkVQeHblHRXpUTsdqL74hnclwmN3/tEv741/nU1U0Ia3c6s3n99Q7G\njrVQ59ZAZwqQSWllHhfxIWO1PZV53O2j8aam80ruT1GPfKL7vCS5sFpNtLTspb3dhdXq4eabnZjN\no/F6S5Ad/X7ADFYikYaVQnzoUGLHgBkFTTQ0z2LxZT7qHtbxl5d/h/QdJ7t0oHTIrn/Bew9m6duP\nbOx3kMRH0w2o7JDohSvee49lq1Zh0ekwTp9O8YwZNFhN+P02PB54+vdadr5/EXROZhbp3EYdL5ON\nvTmZsYc0fKtydrdwA/yxqJnnclJwpVwZ879ZVyCJi02rpaiwkHWrV5N+pAnvbavxB/9zeNPgD/fC\noQvAdkHEGH6bH8vPqpn+7CV9/vsQDD1EDUsBADX/swvHhAfw5pSh0vZsZkkOSKiEAyvlhEdXj4a0\nkJRjVcr7cfli+wxX08jdfOOU5pKW5qawsAidzkJq2gUU/O/KiJV2dXU+Xm9ZhK81gMMxnsrKK1m5\ncgNrWcYyYudksXITuckv8uwvDWRMcCCFLFKTHKCqhBkr5eMGZvEZq3CQRCUq3p5VyyvJV/PA1UXs\nmJKDLSQ1rr6pieljDiM9/ANKS5+jtbVX1XfaCV07KRNa8XUkyweqQlhzLWgHnsBrYXk5m3/8YwCk\nNDkk36NT47NfCuYl0KSK+dm4OVVk/vWjU8p6KDhziBqWgpi4Cgt5dnwW182sRDU23AtBoZUd/36b\nBtuaw4UboM3XdzGGZGKLRiyamtSsXi2bIMZd1sKdS8MjgyTJFVO4AbTaY0ApaWluTE3FXM0mDFEq\nzvjQYKIYZdIh0rLrwoQbZI8YL7IYKprgCAY2osWMgSYU3KR+n3irKkK4AWxpafj9E2k7ZIgi3ND7\nf71u4cYNBeNPSbgBjCEVjRRNMPZPGtzSWhjA99+lseD1lg4466FgaCDC489z8nfuZN6119J5dSUJ\nY6M7RGu18PtlMKEzsk3Zh083QAdNpzW/Ll2kS5s1YI7oC63WRmFhEW4yKSUXa69Elz40eMlhf/J4\nnii4mQ5tR9Rx/Fp5FWtFzyLWspqpNKFAo7FSjImS6wsihDuIIz4Nd+oGou8exKIKdKNOoT+Mr6uj\nxGzuPrZqNFjUOWH2+ZhoHLDE3O0tJBg+iJX3eYxLkiirrcWWmYmOvt30eqcRCWLATANzwjYDgyTh\n4HqK0HMxtlMSsAAaH4se8BBeYgB8voFlB9Tp5H53sIExuFnLAyxgD63osLKEjtQMDJouVLoYUTwB\nWnRxbCeX+sA8NBorOTml6Nz1WPorA+eLnockNqng6PuB2Ju69HRevigVY5MGy4QpmJYsob1LxZrl\nsd3mAVm4cypBJT9gB/q9CoYGQrzPY0xWK7bUVAAc6OgrXd2IGFHfCryoqMQNdEbx5tBiJZdSmoCG\nUxFwjY+Ui5pZNWtCRJNSacTj2RLlQ+HY7T1PnHrU/JWVqNkPQEJqArPLZ/Gn0Sl8+sRYUvpISXgs\nbhx3XP9bEu1OrtK9yV1LfoJKVU/rKjA6HPQ5k+RaYGK/cw0yYkQz7WYzzJkj/+TpTZsfpOMgNUBc\nHKRfjKRQsPzRv0OHHxJ6vFIqAylawgR8ZDNMPgD3rwaNE5LaupuCQU+C4YEQ7/MYi6/HJGGmkIVs\nZmSM3Bwn9bKbYLTES6k8xu2M4hkKGdHLmwPgUe7gTS4CPgaUQCfRLXZNkFgJV2nJvs/N/IkpqBWR\ntl+DoZiGhk19mk4cDj1mc08QjwYfS5Az+iXpk1DlqkiZmkIK8G7tv7jFMZP2KKaThLp4fjh5JSlz\nD5BLGT/rfKi7zVoIRT8xs2nOnKimk+z4eDraf4qdvzIQ04leD88/n8PVV2fQXFkpnwwd97gD2ivh\n4EpI0sDstb0mG+5OuNIEaV4oXA9GZxwX6qvpur0IVJEPqlhBT4KhixDv8xijUskWjwcVHv7H83us\n9lY0Y2FMr4ynfn8SqPx4Ayu5UAGXxqVwoKMVR+cJ9tWtpvfWnBUoJYVGZiILN6SkxNPaWkdHR1ZY\nzxHKnYzJW89Nq1dTYrg4Zu1LhSITVZTEUEGczmwqK3NpapLNHHHYUI/wckJtZdqNczGUGML8mn+3\nYTp71mXTFHeUNk2PgI+oi6elLov5C+ewymik7uCzeL367mu2pYPS0M6lln0AEd4muZMmwewJvHp0\nNy0thH0zcXHtdHX1/O+n18vBmZddpuamm3Ipff55bA0NUFgo5xRw2+E9M1zbRMrIcZCWQ0tidJt2\nAhC8iyYV/PuhJC4dlcysE7/F7w8XbjkoqASX68tcfLE6oj6oYOgyEFfBa4HfIf+bWA/8Jka/ucBH\nwDeBf0VpF66CQwyXJLH+4+t541cfcKiqFacT0tJkvTAYQJJgdiDUMiFhJseOZdF4YBwXvQTzxtSi\nmGaEkhKkNKioWMETT2ym5XAn93uUpHhOsD8ujmcuv5zVxU/zlz/qugsIlwQWeCtW+NiyxUZX10EW\nLfovq1Y9FLs4QxQkyY3VWtTt552YmMXIkdNQqUp48MGUUx5bctZgff3r+BKOo+wYi+GGV1FowpM3\nBa8ZTEZlMJSgaAL3L39JkV4v+3nPmEHJ9OndDx+3282KFSvZvPkq4uImsXChnoceUvLkk4R9J6HT\nCybbslgsjJs4DhZAbUctxgwjJQtLYEQaRVYrFp+PcUnyirvW78eoVPKj8eN58tgxLD4fRqWSEoOB\nuoNLqKsLT5oVGhQUJPgQ2SC8BocMsVwF+xPvBOQalouQixFvJ7KGZbDfu8gZlf9CWNr9boR4DzEk\nycWLb1/ET5Y5iZafX6OBtWtBpYL09IVccklk/m3B0GfnzsXU17/GiBE9vyo8HjXLl38aJtxBkpPh\n1lvlepliFX72iSXe/bkKzgMOIhenbgP+AdwUpd+9wMuAK0qbYIhitZp46dnowg3gdML69fJ7sZk1\nPCksXEzFvlf5vaWDFbthVQ14JDCbH40q3ACtrfDcc3Lx59tvP8MTFgyY/mze44CjIcfHgC9H6XMT\ncpXCuchV5AVDEJfLhclk6k7gv2TJXuz9JPKz28Vm1nDF5XLx6fiNvHm4M6KYsf9A/w/jYGJEtzvc\npCMYGvQn3gMR4t8BPw30jePMhtwLBkh+fj5lZWXdWfC2bNmCRpOKTicnigJgJPIjOAO5FuRWGDcu\ngbi4EYhn8vBjxS9WUKttp9Efft7pB2XaoQGNIaerhWDOLcHQoT/xrgWyQ46zkVffocxGNqeAHE1x\nHbKJZWPvwR555JHu93l5eeTl5Z3SZAWfj2C2PZvNhhp4FJiaACNfa2bWPVBeDvVXgnIKNIVUC4uf\nAt6JHbS2HmTHjnlytRyR/2LYsCluE40xnrm+PBPKQ1fjq+/fhdEiYnfOKNu2bWPbtm399utvlTwC\necNyIWAHPiX6hmWQvwCvI7xNhhTLli3jmWee4TmIcOXzaeCtu+DOeHBFKVquSYK1s+UiuElJembP\n3i7yXwwD8l/J5x+f/YPO+Cg5DQKkb9yA0rEAh6Pv/N9Ll4qV99nk825YtgP3AO8A1cCLyMK9LPAS\nDAMsFgtqIoUbIMEHf0uLLtwg/8ReH/iFLfJfDA9cLS427n21T+EGWHDvz/nzS4/x1a/+HwrFyah9\ntONc3a6dgqHFQIJ03gq8Qon1HP7e6U1H8EVgNBq5ZcuWqDF+1oLwHelo2EOCLkX+i6HPz4rm0ZwR\nXYyDpLaNZN03P+W6PTv40UP/S2fniAif70zNEfwXjhCblf+fvXOPb6q+//+zd9KWpi1taQKFhIBc\nCigXUexEJsxdBHWyzfkt+ttaRsGpU1G/m802N9u6Ofmi25RrdWrHd16/ctlUtIhgAeUiQi+gpElb\n2oSetE1K0zSnTfv74yRN0iSl3KRAnjz6KDnnk+SkSV7nc96f9/v1HqSEKiyvAAoKCjj60nro8g9b\n2ZWgHNKfq4m0343jYByHHj2ETCNDXaAO9UAcbAgC9Z01PDxOet+MHVBsAKvHwoRwwrl9+g9JiU1B\nJ8ZSTia52seItXayYUMBDQ0aEpVGpi55l1eSHwZOY74V4qIQasZwuSMIdF1/HVTrA56pjz0CVd+F\n5QfpTSfzxjvmDcDJNDg8BYq0vR4hoR6IgwNREKl8eRwnxtcS71U5b7RDeSsUSVX8pMelY3xUci6c\n+PnnHG1vJwEruWxASQMNKClmCa3ImRAbS9WsWRfh1YRwE2rGcCWSnQ27dhFZFzwwoi6GpusgUw5Y\nfU9unNQAACAASURBVAU8PUba3ivcAMMbYXIFJFhxGOShHoiDhMrsSixHDPT8xuQj3AAKyVKGhEiQ\ntcCcyfN7972TmcmUfftoRc4qV4s3ALkF/nt1N7cccPB56udkvpNJ3ETfphghLi4h8b5cEQTYvRv6\nEW6AcBGGnATtlAisnU42VEsx7hGySHLVXb7C7UZhouyZHPZuvYHc7bno8/WMXzs+wMAQ3wSiIGLd\nbUX84WpQiAHHKGTwkBLeq4lgyLhf9m6fGBdHRkwMFsdJLCQCkF8AUw/3kCaEA07am9rZN2UfMRkx\nzNbP/iZeUogBEBLvyxWt1lMi1w9GNRwYP4H/uvZdTpz4H55KlQyXbLYqWlt3Bb1fTGozW2duZb9m\nP1Pa1Wxj93k8+BBngl6rx2FwgLL/ctn5bfDCuBtI6B7is/3YjLG8vudnvNFzK1ZBzbX7M5Fb+ySi\nOcFR58B2zEbc+NAMfDAQEu/LlQFWVuyUx/PDb+0iLjaF8eM9SUTHjuX1K97uDBRTkgnr0GaOGPcw\nRRGalV0M7Dq7FOdIMfc7ziqm03TtH9HIZD7bK3VPkNHzFSv4Ch59GfoKtxsnVFz3IbO+zgo5Vg0C\nQj0sL1c0p/euqEuOYNfS75IS658LplYXEBOjCng/ox2K9Z7b9kiR61+aw+J3Qi5GF4OOxb+F1ctB\nVRt0zElnGtkz1qCKiaFQ7Zs0WtVS4bnRktTvczmsYZjHjKHjRz86p2MOce6ExPtypaBAMmcOgjkl\nnrrZt3D8Gi15x44hiCKCKHLvnj2M+NGPGDP3diqqImjp9O3O4s5caO1T1ONw9FBWW4a5vf/ZX4jz\niygK9Iw70m+zypPOdA5HTCE5Jo0sudyvyUWDd//RpODt4ABiaCGlrQ3h3XdZFhLwi0ooVfByZvFi\nKCvziX2L0dGcSE3l5tWrqRnq6VIeFx5Ox1NP4Swvx+0RK0fOfVct5ZqoNFAYObiomNVNVl/htgHb\nIaoxisy2TKb8dQqvLn71m3l9IThU9QssJzcE3S+aR/O3MS+jjFNSqFYH7E70YOUeZjfeiQIT1GRA\nzkvQ7R9RbSSa9zjBy9wFwD/j4/muXn9GDTRCnDln24zhfBIS74uB2Qz5+Rw5fJjDw4fzq5//nCZ5\ngPZZFgssX94r3Pnkk0kmCq9ZmTHhJOWjD1O0qEja8DZQC1g9DyNLlnHn9++kJNSK5YKz6NNP+Vb1\nD5k2KvjVjncTDcEmoN2uRdeiQ5OkoeDmAlLjUl0dlRai6j6MAhOOn7yOVRhJGp7MFSMxlCNnIzL2\ncS0pNPEh8NbSpawNGZ9cUEJ53lcY3t7d44cPZ26sjJvKyjhUVkbptGk8et99mBMTPXcoLvaZcfcV\nbgBF63ConUyCLYFWWv2EG8DebOfdd9/FbDaHZmQXkEV3382mHTtQ/ZeZaaOkc29xMZhqYbwFfieH\n+NHQ/oRUHZn9dja763ZjsBoAKNWX8oHuPaYkxvDUNaNJjE7mr85VzO78J59MC+P4tpnkokeJnQZk\nFKOmFWnWnk8Ba1mODvj3v3UIQmj98mIQmnlfhnh7d7+G1CljaJ8xp4YMYVNWFvdotdKGBx+EI0cA\neJiHuY3bgj7+5hmbWcUqOBD8GO69915eeeWVc3odIQIjCAJjpk2jrb4euRwyM6G6Gp+OSCokI7KX\n4tPpvjWLidcf6BVub7wraKNiRrPri06eePh/6RHnBH3+eXzIem7hWqCJpahUa0N9Ly8gZ+sqGOIS\no6939434CzfA0I4ObjxyhGFW19TZ6plCK0/jZaFsVkJz/8dRWlp6RscdYuBotVra6usB6W2rqMCv\nlZ0BKANa20yc2v4BpxoMAR/L2zWy01GDJvUkkT3BHJ8l0iJ0lKmhaUE8xD6MwSAtrZhDa9XfKCHx\nvsQRbAJ5W/KY/+p88rbk8eivH+3tlvMUMLqf+45ubKTA3aTSK4RixNjvczYkN0By/8fldAYqzQxx\nPtD1yeG3WgOPMwD5QKrQRsH24I/n7RqZmuokJ0cL6AOOHRal5/1lWu75f8DMNvjF9+HOxb0dd0J8\nc4Ri3pcwgeKYQ3Z5qucG0jJY42piGTFqJM7DhwEoppiZzPSLeQMY5UbevO5NiENqTR1AOFJTIxg+\n/I9n+GpCDBSNRjPgKxu3zGv6uVJS+hZcMnasGWneDj4O8BF6miaUQWqTZ1uSQfoda0anC61xfJOE\nZt6XKIJN8BFuNx0yzzRqIF0KG0YMZ6lCwRd/+zNp6dJs2YqVcsr9ZuBGuZHyUeWcSDuBWh5FkiIW\nWbxv6ll6Okyd6uT3v/8tlZWhop0LQUFBAap+cvi9cZ/AG9PjA+5Pj4ElY3y3Sefze5D6ia8BPpR+\nT74WFt3jGWhD6pu12QApN6JUCgN+DSHOnYEsWH4PqclwBLAB+HOf/bcDfwS6XT+PAYEu0kILlueR\nvC15rDu4znfj20AN0CrdTEHqWxesS2F7WiSRX5QTrZRMpRYsUHPgQB0mkxOABBLIjcpFGa2kYUID\nxTcX0xrXSpg1gzXT4aqRdVitsGGD9IVXKmHJEnBnIobapl04Fi9eTFlZGQaDgbCwMAJ9t1TAPiA5\nYzT3/XEmH1h8Fy3drpHaiZ77CEIES5Y4aW3t82DJ0ZArSldcEDBNNCNDxZw5WaE00fPM2eZ5RyD1\nsJyP1Ix4H/49LOOQzsEAU4D/A8YGeKyQeJ9H5r86n1K916WzDViH68vkbjOs4TXyuZEDjMa3JVbX\nkDDa5o0mcatvbLOh4RgPP3wHNTUnMcqcdM+L54TTY3g0pEPFyO4sXvsh1NWVkZpq6Pc4FYqlPp4p\nIc4fR4+aue7Ps2ndWw3Gbh8hjYuFO9rhpbgRRN8xF0pKMLebyS/NR9eiI5kafj7agazH4zoZE6Oi\nvByKiuhdNwGky6mMcLjV9Tnw+az5olKp2LdvXyhN9DxytuI9G/g90uwb4Neu33/qZ/wq4PoA+0Li\nfR5Zsuleig+95tmwBVfqnn+b4WEc4Pm4P/CTuFJ6erqw3zAK2Ytbe2fc/eH9hdckaSicV9jrhZKb\na+bWW68hObk+6P29i0RCnD+ys2HXAYG6782S4s6uSleagWQYMSuKA/a7GP6XVQTrYyaKZvT6fOx2\nyUlSrS4kOjoFs9lMfn4+X39dxZCEcpw/vwujbDjHD67C7mj1+qwFZmmocOe8crZFOiPwbXF4Argu\nwLg7gKcBBXDL2R1iiIEi2ATMLXuJDgPRfT5sBoK0GW5iBkuca/luhYKUFDiTtgkpsSmsXej1RRQE\neDgPoaqKSEFAd5WT5ECfCBcy2UCWTUP0hyCKPFqpp7TKTk+DjKxjavbuiqbuaq1nwTAOWOi5Tz2d\nfMsSy9f9zICjo1MCXhWlpKSwdu1ajh3Lw2jchRT3hgI5VFjBFGjxM10Ov86BFCUldisPWYxMTOy/\nK32Ic+N04j3QqfK7rp8bkaZ+Aad0Tz75ZO//586dy9y5cwf48CHcZL+dza6aXdSd8jqndgN3AeUT\nYHs8tINcLpCTo0Wp1GE0aiguLiA/H85pQpSdDbt3s6ilhW05ObQplUQ1GfnbyWLGD/e/hg5vjODr\nvE2su87Or1euJDVUhnfGZFdWsum4FVuCA7nCQo6iGOVkExlz1Dy/3YSzn/uesOkwm4NOvE9L32bT\n2olSL8wHR0Ctd7RtTT6MzIQ4SazbgSmffUoGFvTf/cXZPfkVzI4dO9ixY8dpx50ubHI98CSesMlv\nkKSi76KlNzpgFtDUZ3sobHKOCDYBdZEaW7Qt+KAWFZkJPeRPDEOhMPRuNhpVmM1ZPPDAWS4mCQLM\nmsWi7Gw2ZWbiVHhmVfJ2I5mU85hYRHGxtHg5MhEemwLfel7KGP4yLo637rgjtJh1BgiiyIx9B6jr\ndJBPAZlUSOZRLp6qjGW70E+X+P1LWapce9YnbGnm7VkUt1hSKC5+ipqaYRw/vhx7WBPcGgXXXwVx\nalDnQrSnXiDCIVBx/Y2Ml6ef3QGEAM4+bLIfGIe0cN2ANL+7u88YDVJWWg8w3bWtr3CHOA88+p9H\n+xdugLQWjo/J5U9pCkZhJJdisFjZuNFAfX0tX3wh8uc/v3Dms2CtlnpnC+9fk4kzxfdy2BqrYLcR\n7nksgbZ6KU3hIHB4uxTEKQGw2fjjzp0hz5MzQKvXU9fpQI7FT7gBHhjbzpGWCISuAPPvFhVsL0R3\nDv0x1OoCmpreQxTrKCh4jYqKLOymEeSgp+dONRUZzfQkdcKpCumnZT/IM2GiZLngjEnljp3/R9XC\n5Wd/ECGCcro87y7gfuADoBJ4HSnTJM/1A7AIOAJ8ATwP/PSCHGkISg+epjBjQj5MW40jfSGHw2ey\n1XIjP3p6BneuULF1K3zxRTcvv/wm06apWbz4zHKwKydv4perc2hPCRLHVCho+0muzyYDUqmHGSkK\nv7SujvxQGd6A0dntAORQ7CfcAInRMDXZSYKzTw53iwrqsqA9ZSA9OYJy/PhDdHU1Y7GkUFGRRa7J\nzmoOMCe2Cl1GBT1Jfa6kHSawVkCnJ4RmPGXHol5w9gcRIigDqbB8z/XjjfeF2DOunxAXEMEmYKm3\nBC+bjJJDQibIXOJaUAAVFTi9TS8SEkCjof7b3+aTbe8PeBYsigJWtY26uP49T1D67zcglWivRTr0\ntwbYni0EaGQySi0WlHhSNS2i1MWooUOqjLxfA1VtV/PEzkxI0kGLBrYXQnsKiiEOCgtj+nmG4Iii\ngNW6m+5uG8XFz2I3jSCTAyhwsPLmYuxJ9sB3dJigegOMlzrR25wnWD6jlFeONRA9/jSfnxBnRKg8\n/hLAXQaf8XEGR5OPQqBOVaocj3BbLIHdilpbwWiEOXM4MXMms7ds4euf/7zf5xZFgS8+/gGOtb9A\necMoDvZ3Gd4QuAGuzuu35lymglcYBWo175mbMXYqgYMUVLmyPRzS/oPA/hZQnKonfeuHmJB6U8oR\nuZ8KxoXZacofSkKBmujUM8kxAr1ei8NhAKChQUMOehRIT9yQ1H+jYzpc++1GumqL2Tuyg7qf3Ifm\ny3fP6BhC9E+oPH6Q410Gf1f4XQypGwKBOlUN8ZrVeHlz+2EySSWRCgUnkpIwi2LgcUBlZTZ7F6zH\n/rNHYOtt5P45jfRgnlVGo/S8AdAgLVquy8igsLAw6POF8CU1Opo5SXI2nlrGMTHNR7jdmBxgtLfz\nTOx2FtDAsxziFT5nPgKj7W0Y1xnZc/V/2LvwZURx4OXrJ/QGVr45hRVvjiXmqmcZFW7p3adsOc0M\neogS7EZoLYeuVgxJUDh295m89BADIDTzHuRot2t7S5pPJnaT/M4bCOEJdI48CrdqIdEMMUCHl6oG\nmQH33d+RmEi+Xs/a8f6ZnaIoIBz/mJ4jC8AkzegTrZBZLu03eYe+nU6pW71fTbW00r0UKdtk0pw5\nocXKM6Rk0iTMY8fyg+IeP+F2Y5I38sbNa1ixdUXA/T3GRDr229lfejOJo69m0qT+M34WrFjAAQ5h\nSmuUNqQd59uTroXy+QDkbs9lv2Y/pqQAE4TIJHCOhIPLoMvzeahO+yZbB1wZhGbegxxdiyvo8PZr\nrDXk0sBCOrtvgto8olcfIv2Zj7hl/y1M+WQPiK6FogCxZx+89rsXxfyeV/coPet/2kelQVsEa5bB\ngs0w9mvXrD0iAnbskMqovYhKTiJdHs4/772XCcePE/fb3zL/0KHehschBkZKdDQJcVP7HdOU9CXR\nNPptj8LCVaxkqulZVMvAZtiJKAY33i4/Ws4+9mGKaJQqKV8BtsDfbvorJ4dKj5/YnkhmXSbpLX1S\nAG2AvQWENT7CDTDuhlDt3vkmNPMe5GiSNJSWfwm1WfS0+rpzi4wAZzLZ25ciTzxJdrYUDLfl5sL+\n/YFDJ+npknuU+/FlsoDP29JSCg0PBdwnb4UVq6BBZSX7ZVfKoVZLX5eqzgUjmars5qTmV3xfr8fg\nkKaOpRYL25qbyZLLKZk06Uz/JFckmiSNr5dNH6a01BFLLSJpvdsmUICcCmTuTJVaSMoF+8zZRG/5\n2u8xst/O5uh/jtK4r9HXdEoPp46f4qnwP/IHWRHD7Alo39FijbXy15tfpjrpJEL3VSQo3sIY5Z93\nPuqUjKcXrTqXlx8iACHxHuQUTnmIo7kz2GkN7A1oQkZRqo0f/Gs6hulSmn2+Xs/bU6fQJLZDs9cM\nKD1d6pnlsv1TxcRQqA7mOdgDSqO0KhaEQ8mfkdI8E3OyawYml8MK16W73UjG8SIenvMh36/0CLcb\ng8MBVitmUQzY0TyEVKSj1evR2e0oR/2MDN0H1Flr/MapWqBwOzTFn8LSJm2LwuIr3C5kJgg/UEff\n0kv32kpYZ1jA3qRYoUJeQcF3Crht84sMJZKGdgX7t75BsiqaO7KA2U4+rf6EGtuJ3ruNjsvgW1Pm\n9PrhhDh/hMR7MJOdTcru3UQJ6/odpmwcw/9oNOASwbbyPzL0+1/TdHWrZFbkUMHIMbDsQR/hzpLL\ngwpnYuI8GnOLce6bScTJwE0ZNsx/ifhoJXHOWGwRCb37UkzH+NNLxVxnMtP46a9ou/tun049bgwO\nR9CY+5VOdmUlu61Wz0nPEkWkfgbhQ3rojq3tHafqiidLjCNl8e0kPLyc5u/rcRgcqCn2E243MUYH\nfb0S3GsryZ8lB3QLBMAKdV/qOJLwHVLT3kI3eh4/1UBhofs8UNKvkVmI80tIvAcrggC7d4PBgIZq\n+ivPGWcvh1n3QFYWwtpVniYNvWZFBohsJvLUbq4dfjtTkoZRqFYHFW5BgDVrVnLrre+gG1VOUgco\nrB4BdzdlaIlt4cc9xyi88X5WfF1FqbGSvz71F248epzUxlPS4CNv8PnOnZRlZnKPVoscC8scxUw3\nNUCDEmP5MsTnzjyV7XJGEEVf4S6YALWxdC0ogpQGsKwhpkUgI2Ycewo94hgNDJnRTN0JM1d3+c/Q\nfajy7VPpXluxdgRTbomWOgt70sJ46x+rycqa57ffz8gMOFpm5vFbKzhpiyctzsZf/j2JCVkhQT9X\nQuI9WNFqweWpXICWbdyCIUBbBRV6CtGCQXIk+O2r92MoMfRag3Izkoh3tdKle4Ypcgt/0/wN/QN6\nTujsyDQy1F55wC7vKQyGVIYOvYPNP15JrRBD7vZclM1KGpI9TRlA+tKnREfzSubVkKaE2ifALdwu\n1K7Ye6H1d1zT8zWxiSapuebog6Sp9rN3w1RSKlYxqSQU/wapLN57xs1cATRtoHAgWVwsx2GMwWiQ\n09Xaw7G6PFpbq/jyS4Gn9v0JS9f3qYluhD5rwqIc9DlgV4LMfhi1KNDUBFu3aum0SmLuTHVKYZMg\ndHd3YzLBX/7yAddea+5ttCEIAlqtFp1Oh0ajoaCggNTUVObGbmW//X+xcRLQgLWAQ9+yMzGujG1t\nWef9b3clERLvwYrXzCgVM1munoLeAh6PHjtl5NNEAfCQwcBHv6qFTtcAPVKfyVFIJgbA5KLJHDAd\nwGGQxMFSaqF5WzPyLDmpqya5J/sAFBWVEHVnOJ1TX2PVwsALTpokr6IbrxNOX9QmEz9Zb+XEo32y\nWxQmugHLxhpE81iiU668Gbh3bFsjk1Fl8/Kv2ZgBP6x3CbcXCgcPyR9i3/6vGBovzbLHjoWhQ2Op\nJZovxau4iZO9wyvzwZoJDncdF1ZqP1HT09HDrZvbub0ePoiEh66H5iC9Sb2pq2uj8usVrK4ewqai\nTbRXt3GqUTru0tJSPvjgPTodcNLegxN3DLwU2MYJssD2NF/tbeKq64ed/R/uCick3oOR7Gz44guf\nTSXcg5lh5FOADg3d6PgYLW00sQ7Jv6AZsHX6dszBijSTsoEcOepqNY5GXyFwGBw0dVbz0hNJGAy+\n8e3O91dCxi6Pb7QXKrmKwnleRTd9St9F5OjJwY4SGUaSaouBAKmJChPid15Enz+G8WuvrPh3dmUl\nu1qs1HV6MnHiiPAMuMbiL9wgmVXFHmFon7i2Wl1NRQUcZSI3sQuQZtzewu0mKspGdEsY1p3LaGvT\n4BhpZEZzMYeTrZy04zdz90aphDLdG6z7tAO5Dk71qf+pqakjPIw+/ZtAMkyAE8h49HvlbLbcFPxJ\nQvRLKM97sOGOdbe1+e1KoYm1LOdlbuEwy/E2b6zD04vODyuwHR746AHiGwM3onXWx/Od2jU88UQf\nw6r2VMnkqEXls1klV5E1Kst3Mcqr9L2SfA6wGiO3YWEmRhby1fHVUPBE4GNUNmDXBfHLuEwRRJFN\nxz3C7caGkygLDMUKIwL/TYKZVeXmaklP16OlAD0qQAqV9BVuN2JaDydzT2DrnsnY2oX8/D+ryY1/\ngqgHwggL4mTgzjbVHe4gagdYgxRudgd1gDYQFbWCk7bAn8UQAyM08x5ECKJI5f33c1OQ0APAibBo\nPukRz9hzN6wqjL93/J01rGE601nOchLxzQCx25PYe4OGiFX7cNYlQLEarNHwTgnEmuHmfEjSEd+p\n4f1nCklO7iFvSx5V5iqEdoGxk+S8nBqHTEimidk4e7vVSnTZFVABWBOkZHFvGpTINIFzzi9XHq3U\nY+s+CSuLPR2cc3MhMZHORBjW1c5oxeeUM8Xvvt5mVd4kJprJzCzjoCOLspYsCHNiV9YFHGuxSI4G\nDUc/QQnkkistTNeCLHwoYbeF8XjxIzS1WimmGCvW3mzT9nYoXgvpCb6ttgbKVVe9wc9+3IDUmT7E\n2fBN1qyGmjH0Q+6n5Yx8tpmc7Q8z+pR/cvURMjnMVH7FCZpcl8PnwhCGkEUWWiTv5YJ8qLjWhknu\nJbjGGCiXQ5H/QuLYx7PpUuz26UYOsHVVPvHW2fT0EW4fFmyWqnx6nyed6KKXmPnxvCsq5h2b9QPs\n1V/4FlO51VErvS/Dusw0daaCzPe78wgrWcjWoI/9+uvDWNM4hpTUBtaNaydphq8hjst00vepSSeT\nTLRo2TxjM6sWrmLB/gWs2LqCpmgjJ1PKGfFiEe3t9DYqvm52Ip/tsXCmLFgAj6/I4LobDvYueoYI\nTLBmDKGwySDgi7vL+d6PzXx7Uzfdp/w/yAIp3MYWFrORJiael+fsoIMjHMGKFYscKqZ2+Qo3SLHW\nyVZI6BP8jBU4Ee4v3HKbnFYy+xdugAav8n1jOuGGqSRePfqKEm5BEBCrDvtXwZpMkqpapRXDpsgU\nIiNFMPn+bYpPLsfYPiLgYxuNUPJ/TUSov8SsqOfnYx7EiKeUPZjppAkTFVRgxYqyWXqP3A6Cw0QF\nGvtk9ryfwLJlknBDCtOumdvXFaGX8CDq4g67OKlDrw/5u58tIfG+yIiCSP2uFqJMFrLJZgofc3cE\neIcRtTzllWVSAK5YZl/i4uJIjx14y6lGGtnABorvt2FKCxJBUzggV++77WYtHUMMfkNztuf45IMH\nozY9isaa6TTuXsDRV9dx/S+2kLo2lbwtecx/dT55W/IQbAN3wLsU0Wq1OFvqA+90Oz+66IqKgkNJ\nsFkB+xNhswLr0vmUl83FaFT53NVolGbFfDse51DppGu1n6KczF4B79d0EhMb2EBDsiTa3g6CMS0K\nxDW5Xv5jT/G/G9cxZkycn4Cnp0NKcjiKJP/tXkW+fn0yQwycgca8vwc8B0QAG/DvYZkNPI40tT8F\nLAcOn6djvKzRa/U8V/8HjnCERpex0L+c8GkY3NQjtRDT+XRgSEVqLgbulXsAlUpFVlYWzz33HL9Z\n8RsqSis4LhxHOI0NaEPKl3DT18A1wQcpfRfNhih0dAQa1nx6s31jOjyw9Gpa5StJi3Yy65WXefJ3\nv8A2zEZbpLRIW6ovZZtuG1mjsii58/Lseak7XVOKvs6QKQ54zPc9KioqISHBTG5uPkqlDqs1mUOH\nTCiVE5k+7yg763dKAw3FFCWtJkEWSy4bONrwCdLXNDD6CD07b95Jeks6S7Yv8dmnxOs9jhyL1ZrK\n3Ll3cO+9O9m6ta43dL9gQQZi7TiubdlOYZ0npL9kiUe4AWSykL/72TIQ8Y4A/g7MB+qBfcBmpHZo\nbqqBOUh5Dd8D1iE1Lw5xGuqr6qmgole43Zzogfei4a10cLRXS73EeilB2pAP6JgwQcOuXYW9dqvr\nX1kPQF5eHuvWnaa0/vo6iKrjYH/i3eBZSFSpIDJOw/EANZ/GZKOUWx4EmwzKM6FVDrHGFjTlX3Dv\niX+yJxra+nwSDVYDToMTc7v5siyv1mg0lJb2Uzfb1xmyIfBibmtrCqtWSRWNS5fCli3S9rwteR7x\n7rRCazmtTGaVbAUogYPB4+VR8ihixVgy6zKRt8t99jW4FkpVKhVh4T3oq31PIjfdpKOhQcPjjxfy\n0+4PyIvYzhOr/bNdLBb4xz/iaW09yrhxeb1FPSEGzkAWLGcDv8fTQf7Xrt9/CjI+Camn5cg+20ML\nlgG4a+JdvHH0jeADUoC7kqFkPwQwp1KpYN8+H4+hXgRBYMaMGdTVBc4HyMgYwRtvzKM9uoV7bUup\n79sLEciIiuHb/5pBfVU0GpePRY9MYNb6WQFj3qvXrQ4YOummm3/8v3AqJsPEhr0UFD+NqrWVvAWw\nbmbwlz82aSxfP+jvgHep4i7Iqaqv58vsbFqDOT+uWeOZohpjYNkMaA2+JtD3cyDYBGasnUXdKYNn\nUGQCqHOJ6kzA+dgqugV///WIoRHcNPsmHvz0QT/hbotvY+20tSgnKiksLKSnJ4VZswLXZalUsO/9\nJlL+5wkqJ2/CqrbhiJeurKTF0ghMJqfXeOnKsaTk8rzSOhfOtns8wAh8s4FOANf1Mz4X+M+ZHNyV\nzCdNn/Q/wAyUNAPZRCS9jrMlo3eXSgVZWYGFGyA1NZU5c+bw7rvvYrP5ZoHHxcUxZ85crr/+FQDm\nVlZS5u2ngce86pW/9RWNVLJGZUEtPgJujbNSPqqcyBORpLZ4zaLCILwnnJxXYBK/I5lPiUQ6kesC\ntXTzorap9rKZfXubTb1WVMSbLS0cxjv4BalDYhC8gsLhxmi6y+Ue4Y5yhTs6h/beJ9DnIDUuFv5n\nLQAAIABJREFUlTmqLN49CLYo1zN0tZJeu4pMOXROjOOryFhMRo+Fa1JUEt3Obq7fdj3ttCPHI94x\nqhjSstLYUrLF5zVluSJ43gLeezzjh8HatUxiLaJoRq/Pp76+iqNHv8Bk8q1jMLgeYKB9VUMMTLzP\nZLr8bSAHT1DWhyeffLL3/3PnzmXu3Lln8NCXH0JVFbaWAWRsWyEu9TAfbbPz8mqpkFHj4+YWnJKS\nEsxmMytWrOCjjz4iLCyMefPmsXLlSp8vScmkSZhFkXyvMu3+zKtK7vQ4yB01H6WxvZHU2FTMhWZu\nvPpGrIVW7C7vlJGPjKS2qJZTH1QT3/I5kaLnI6VpoV/TLTFc5Df//g3rf7z+9H+nQYwgiuyyWKgT\nRVIsFrLKyljscHgFv6R2ccscIvfFx4MoYqmpIf1fe+g+8BinkpqwjjqI4v+9gCZtDGwvpL5G1u/n\noOTOEszfM7Pi3/lsP3SUkbGN/GxkKtdPmcjE3EJaWyE/P7/Xj8Tdoi4/P5+NVRu5TbiNa9KuIWFC\nAupCdcBsoJISyV02Pz/451IURPTaJuy65aytf5r6+sCprgaDgfz8fNauXRtw/5XCjh072LFjx2nH\nDSRscj3wJJ6wyW+Qql77LlpOBd5xjTse4HFCYRNvsrPJ27yZdQEqKYOxdOnSS/qDbb/nHmR9LouF\nWBj1MHREBb/f7I7Z7H760u6BOGbvXvQd0jLv6qefZtm2bUHHrgH+fBmEEURR4GDxL3F06+mpTofi\nXFZYn+JgPybx8+bN46OPPvoGj3Lwcy5hk/3AOKT8tAbgLuDuPmNGIQn3YgILdwhvXCXwujMQbhhA\nhsIgx7B/v1+Wemo7jGyF4/34E5224e0gZ1F5ea9wA2gO9tPhAmkGbjAYQBQv2TBCZWU21pYyHBNd\n1rSZwMz9KJ8J5+Ch4PdzOPYhigLR0aHFy9MxkDzvLuB+4AOgEngdKdMkz/UD8DukhcrVwBfA5+f9\nSC8nXO57Z5okpdFc2mlVBxMTyUNKW8rDk8u+uxgyghTphYcp+CTtIe59UES4BFO/BVFkW3Ozz7bq\n09zHfYo2NDSQH7TT0eBFFAWs1t04Ovt4iitM5C7rIi0s8MkoPR0efbSVfftmUFm5OOCYEB4Gmuf9\nnuvHG+/r9yWunxADwTWDLgC2AS3IySGHZJJ5nufplJvJyZGyxVqMMO5VuHFoOEMbN3N8j51RM1Ze\ncjOT7Oxstn71Fe78BskcVFocKWmHb9XCxxFRmIZ2eu4Uk063fBLmiV28ZjzAOxvk3FExiUspkqDV\n62nr9vXW006bxi0ffhjAnV3KtNR63da1tcGxY3AJdRvS67U4HIaA+xLHNxI5NA76JLrIhoFjBGww\nQa6sjvDwMkTRHCqd74eQMdXFQKOB0lJSgXzykZNJKlJ6nTz/7wzPDCdN4fnCx8wER3k3miITQ/e+\nhnXqOwir7mDSpEtDxQRBYPfu3bQ2hyNdnGmAagxoATMm4OldqRz6qoDnrvo3n1xXT49cAWOWQJQr\n40HhwIaVnRtFzObo0y7UDhZ0dn9XQPN991G2axd0dPgIuB4oAx/TMQ3QcN0dRH1dxaWSBl1fb2bV\nqtVYrcNYtOivTJq0l6iort79w7pTacDGlClwQoQOOdhvAnscbDXB/hbIlBt4ITmf8eMv3TWeC01I\nvC8GBQU0/vOfJNoiySQTh0u4kVuYkhkGCt+ZmkMhVT+JCVIDWbBhqNmJOPbSmJlotVoMhqeQ5tne\ncnULBsr4PfewVhCQ2YqwOyez44FnAz+QwkHdd/Tk54/nUlm3NeyRwcQ+MaHERO7JymLYkSMUNDai\nQQqVaPEVbhVQCNRFVXP7jQJzZqYO+quO7Gz45JO1/OxnvyIzczcKhcFn/5EjcNxmBODOe2CtE1r6\n2JWbHIAVGixVXDrXG988IW+Ti4AA7AYOk+MRboCcYlAENp1wKECfK/1fZoIRL146pj5VVWb8hRvX\n7SyqkFYr09pruM50kGHWftq4KO19ez4MWgQBxNVqqcimL1otTS+uY/n0H7EYeAx/4c5CqtH6bLRI\n3fdm8W74Ysxm/4caLHis6HsCCjfA8DSIGiqp9TsWl1AHwOSAv+44EXhnCCAk3hcFrVbLD202yuiT\nRaEM7NHsxu41fEjDpWPqIwgP4i/cbtQIFHhutRgp8DJlAqQ+jiuvghVT4RWVX+X4YEWrhboj0ZKt\nbl8Bt4XDEQ0pB19kP0r0wFJgnuv3PiQThJoE0N4MJBmwJZex4reDV73dXfBycrQBhRsgbbhkWQ5Q\naez/8U7UyBHN/bTzucIJhU2+YQSbwNawrXAPFLe8yh+3jyWx3dUUwaiEfnJgZV7a3qG8dEx9UlNn\nc/Ro8P1pffJuNHqvq4+CCVAhB5PH22OHFRYvZtCHEHqvEIomSba6uXrJ5KtBJjW6aI3mKfLIcPmF\nBIoEOSKhye2wm2TgI2N+kJEXH/frVSp1RFlAuR4s1VCdBO/cCT+eConRHtsWp4DUiDoI6XUj0efr\nr7jWeAMlJN7fINlvZ7O7bjcNCunLeoQjLNUsZWrdVLTvaKE4F2buDxg6iTGCulj6vz0dPv/ZcP77\nvZ9z3QsiK38bPegWs6SqOj12nR2FoAKC+3JMwPcKQhflCjXIuv2EG6CuDsrKpMq+QbdwKQjSFFSn\n43f1Gr6UPYR53nOQpIOvNbC2QGot50JD/1dPNZ0TwGaGOGnGHZY0eK+2lEoB0KL5/W4ynDDKFRKZ\nBkyvhIMqKMiDqe5JyHakFdkAFgluR0P77CurNd6ZEBLvbwBREDnwuwN8nPgxxiG+14pCksBhDmON\ntSK3Jkq2e+Aj4DFGkJdDdCuYZMPY75jGH/7xK77KdfLV8MGXQleZXYl1t7W3Q/3dVLAz7BpMPf5N\nGlToKfRKjtOjQnvoRViWAKPb/YTbjcEglWQPqoXL7Gwp6Ovy6ZhDKZ8PLeY9nZNfRgPVpRBWDBmj\niG36jGHDUqmu0+BtENC3abPhVCesexhGlcGie5g3fXBebWVnZ/PJzl2kUMc17VLVnjdqK2CAEyfg\ns3+6NrbjcU3yEnClJYo/fdTK7I7fEV0/AYS/M+hmJ4OAUBu0C8ynueU8O7KZsui/YO5y2XDaUmD7\nU9CsgeRquFnLlCoF9314H8NjhpMxO4HuReuIukYgNjqD0es7qPpXNV+2j+dR+3M04Zpuptsh0wq5\nejKKZnDw44ufQicKIgdmHegVbjcFTKCCeEx4nAtVEXVkOT+hhHsAaIxTsd0xg7u73hrQc82bB4Om\nkloQCGSxlw3sRHJz8yYiQsYdd9zJ6NhVPPrmLBQdBirJx+qdfQScJIrDJFEklxGbs4iagm2DzqRL\nEARmzZqFwWBgNbCsn7FrZsBj4+Jp+5enujgtPg3rz6yIcpFXN/eQVesSexdidDSNw4ez6vXX+fWM\nGaQG8du5XDmX8vgQZ8nS7Tv5Vu1f+OWhBr4fU4v2W2B+/zWozfLYu+qB47dwfMQX/OjEnN5SaKNR\nydatdxIRcYiPJ4/kqaH/R0NTn1mXe1Ya2z1oUuj0Wr2fcANoOYqVKP4ZHc2JaTKUI/U8vuR9Zrzd\nBvp5oNGQVljIi3cuhbbPQcyAUwlQG7yl2qAqOHWv1nnhzipyC7fcVYylRInRaeT9Pe+z5sswUrqz\nqPwwiurGTOLxtdMdTieTsZJgHUta+V8GnXCDOxXUAHDaqmFNM0yfN50JCRN6DbGOfXyMXRG7GCb6\nCzdAtCgysq6OB++4g7JrruGtVasomeTfV/VKIyTeF4iOu+9m+e7trJnaiC5Tcs/b+Eoy/9WShbmz\nT+aFVU1EzFBwzajXr1eRmHiCcePcfsctPFs0n/LyLIqK+sRGTDLYoIabGtG9f8Ff1mmx64LHKOV0\n8stxe+j502OAdNX8eY4KuTyLSZOks47qmpHsmq0DRbuUZbJ8esDQiUoludcNGjZt8tukxWP3mk8+\nmWSi8BLnmQ0z2TJ7Cx/N6mHEqZ/wgz7C7UaBg1z0HO6ed/6P+zzg7blz2tL/sdfROOoe3rr3XlKj\noxEEgTEPjqE7qZuntvgLtzejGxvpPnyYP9bUYB47Nqjj5ZVCSLwvBIJAdsQmDv7QjsEVyysFNmrC\naKv7LbzjH5xua0whPx+efLKKxMQTpKY6ffa7U68SEsy0tvaZfTUMgQbZoJiJyjQyLKXBu4n3qH3T\nIR0OA1YrvaXQYTk5UpsVgMROKSwEPgJ+Oh/zbxxBQIiIQPvww+iUSjRGIwXFxehc+epy5H7CDaBA\nQUtdC4cdh5lmn9bvUyixYxsE728gvLsCaYFbCJwYqk9PR/vL39AULWfWgQNkyeXEPf88bVFtYEtB\n89Uw4Fi/z6U2mVj64ovkjxnD2kvIMuBCEMrzvgAIv1vBwRSPcLtpS2qCjDKIDZyrq9PBpi23+wm3\nG4XCQG6uf2GOLNFKxofqQTETVReoiYkP4paYboQlxX6bHQ5Db8GRX0te7VFYcxAWNMD0ZpSLzOzb\nN7jSBLP//W9mPfss6267jdKZM1m3cCGzVq+m5oknAMghx0+43SQ5kvhO3Xcw0n/S88msduz3HUMQ\nB1/ec0FBASqVCpB6h5Th3w1Pn55OWWYmTa4mEwaHgzKrlaqGBih9DdZ9TvWpmwb0fJqGBqra/LsA\nXWmExPsCoO0p9RPuXpIMcHPgysiasFLau/p31FUqfVPFwofpiTcvodP8A/Lz8xAusvVedGo08u+O\nICbC9zjCkoyQWQ7ywF+61rYq8rbkcXTvfXBsJYhes3d5J6z4Cn5bRUJEJD/9KeTlMShcBgVRpEwu\nx6DwFWeDQoFj8mRGJiT4Nu0NgBIlxRQHFXBjOqx7TOS1FiOzDhxgcWXleTv+s0UURI7lHePQ/EM0\na5u5fsb1vQJ+D3At8ApD2K5SsWbBAq5ds4Z77r8fVq6EFStg5UoMJ09iunURGKU1IC0F6FGd9rl1\nSiVf6Ley+J0r23kwFDa5AOiSTpPEEyBXNy5eoK76/1Ff38P0ftZiGho8186RkT8iqnkXQpPUvHjd\nulK2bdt20Uz8BUFAq9Wis+iYOKqJ3MaFYEtgDw3U/7SE+T/po7YWORTnQIOSymQrry/qxJp2J3QY\n4fDjEDcKJrrSCAsmEFGRyFHTEI4CpaWwcaOZuLhD3H77mxetge0NBw9SkxT4TF2nUDA2NxfhOWO/\n/agaaMCKlXLKAXxm6cZ0T9NmkGasjmMCe1dXMf13GqJTv/m4b2V2JS2fttBZKzlAWkot3D/qfu6/\n9n5eveVVDm8+zPC24SS2/ZzHfinn4EzcjSvB3bPz4EHYv5/GCaN55OE9FBcXYLamUkYW4TgZ7dN5\n0YM+PR1t9gLajj1OWVzyZdMi72wIifcFQDPpBkqr3ww+oKVv8NKJrW0PtNVT/ALMnAyKAFfZ0Ua4\nvfhLaniTOAzs6NlMXU+nz5iL1QswOzub3bt302Jo6c2oeCdW4ItrnuVAjZn2jU4yb/R6XQX5UJEJ\nJgUWongLNSN3DkGd0sGhF/SETZ5Jzymd1PnclgKHE3EKQ3yes60thbY2DevWvX1RTlr1NiO1HW30\n9zXKUCuZ87cCLI/OJLHD/00Niwvjqq6reMTxCC/wAj30kEsuIzOu58TVaby5xMqP5Rv4Cw0YUVJM\nLsakRAqjTvLEtc3Iv5XEpJJvLvNCFESOf3icbmEYxVxFA0NQ0kFurZ7OUw003PMJU28/xR86xtDW\nnYYqrIeDlkZf4XZjMiHSzpyHPuPmmzfS0RHH7t2387v123i/7QdkUIOsx2PSpk9Pp2zCGJrCaqGr\nFYO1lfzSfNYuHEzJ/t8cIfE+jwgCVN+QzQNNe9l2L4FDJy0q2N43OB0BzAVew2q9h3JpAuYj4O5C\nnUmtn3HTkHvJi46mrrWTQHzTvQDdlq/Zhmzfhbl2mPTlNUztKaeIIs/rksl7hVvK/5ZjQgYi0ABh\neUn0TNEg/zVYD7wJ//w79BFuD2qgAINhOfDNnbQqK7N5wjwWkW/3O26E2EDcDCtklUMFYPJ6UyOg\nx9bDBNe/mcyknHImUsSaXz3L3BnreIYKFLhF7yAz2U85mbyv1OKo6cTceRzRPDZgf8kLQeWvK/mr\nMMvzniEZOuwnicwWDVPLfsCqhavY1rKRrOZNrKn6Ke99UIO9r3C7sJta2bABVqxoIy6ujYUL17F3\nxD+ZZYVIezcF26X0Ql1KNNoF8TRFlMNRT0s8XcvgrTi90AxUvL8HPIekMhvw7185AXgZqRI2H1h5\nvg7wUiE7G47uEnirbjdq6siqAxPD6Ug66RnUooK6LGgPJC4JSD5ywygqaiIhAX75S1g4DJLrpdL4\naHe4uKPjNEXV32zLNK1WS4uhJWBGRXqPgh4ggQSKilpJSIDnR+egcs24vUXATU+jDCrAahtFVNLV\ndB5JPM0RTARWYzBouPHGSnbunHNBC/LcnWLquvvPEIlx2vnRDNcCrbYIrAmwIRdqRoFuIrT7mlUp\nUBAbM4TrIpV8bj5Opo9wu8dIt782W4miB3VDMeLVRUQvuFoKTVzg0NFnn1VTwXi/98x9+0ZBuqqU\nJi42LB9uJc4uo78i9wavBCSHE6pFG9ZwIA6WL3TvEaHnuNTXywtN0iBNwfkGGMiCZQTwdyQBn4TU\nv7JvK8Im4AEgiBHz5Y3bCvMXdVrUrszeknfgJ+sfg/1LQTdP+r1+X8A0QQ/SLBKgtRVG/R1mPwrj\nV3kJtwuNV0/EQOzpiEUUv5kVPZ1O129GhQIFuUhWcq2tYD4iLeAVo/YTgV5c+evpivjA+32YhlTX\n9x2OHp3DrFmScdWFQq/XcvJkG+Yv+xeOYRFm5N4tY+StsGIVjK71E+7eIY4krLa7yOkp9hNuNwpM\n/HfXfUxnOUq2Et/wGaxbxwV/4cA/mjVB3zMTMt5u95zQDElwkJPcqTf0+5jeLpGmjuA2sX1RyVUU\nzhsEKVYXiYHMvGchNRU2uG7/C7gdqY+lG8H1c+v5PLhLBXdxXV+ToWfb/8TOrZ9jCGqHGghNgP/5\nUwC8HxNDrSPAJz09HfvPfsE7pXcydfToC95xR6PRoCw9fUaFG3dWRQPBQiEuGoag7GgLsnTlphPp\nqsWDu9DxQhlXPfzwT/jii19jso+A1QdA4f8ejIyOZB3PSKGgPoSZNP2tX2JHCSmBQ2K9j5FuRtb3\nwS/wCxcFkUrzuH7HVMb6/i2Gt3na/RkCjE9PhyVeDRTrB+hDpZKryBqVdcUuVsLAZt4jwOf7c8K1\nLYQLd4Siuo/cpmImizJUflmv/T4aAENShhA5M/gXJRVQxaVKn35v0tMhM5OesUP5768ewWqVegFe\nSAoKCjgVf6rfMRYvP1spLU5ASf9XDzJlE9MO1PYzohWICrjHbVx1vhEEOHz4akwmNVgDe3WPiGjj\npsRkRideTUyMymdfTIyKGHX/XzsZDchO43Ud1xAk3/sCvfDK7Eo+mvElnZ39x9adqb5FNifjpc9q\nFvglAbo+qrhSvwE4FLy+S8IKiZWjGf5WIcefeZi77tpJff3g9Ti/kAxk5n3e3KSefPLJ3v/PnTuX\nuXPnnq+Hvqi4WlKipYBb2IYaA5I5Jpi4hzkMY2b403yWNptpszSUlsqw2QI9ktR+VqVSkZWVxbdX\nrQpodgTQnTEaljwPVwMbNkiBQ6VSmsa4vg310XKKDht4IvYRZl/96gV7/cTC5imbmfjZRNK70/33\npxuZ9Uwxt78dz4ED0+nunkB7zFjyHPXsb0gKeBkent7G1MX/ZuPS3/duy8iAqKguLJad2O1fYbdP\nQFroDcyFCPtrtVBfn4JcLrBs2aNMv7qU1rA4Xqh9mCPNMxgZfpLduTNRxqUDJYiiGb0+H7tdh0ym\nQa0uhBcSOLDP37wLICYjCjUfQjE0z5Q6KPWl2zgEdXE/J77z/MJFQcS628rqutHY+5OMGBvkNeGy\nJ0fVAtMZTm2imRKLEzPSgthhFQwfAz9/0Fe4Af5rFOwyBwmdOECz+8+0Vv8YnRDPU2jRfKZj+5bh\nvJd1Nxs/XHB+XvBFZseOHezYseO04wYi3vVAhtftDPxN0gaEt3hfTjz0EGzcCOY2KU/1IQQOY/O6\nTGxCJXuYOfPuoKSkhMWLJT9qb02OjzcTF6fj9tsXUVhY6MmYyMqSfnsPVqk4FTmZBKsc5EhFDwFw\nWqxsFeHAtje5WddNyZ3nL3wi2AS027VsOrYJW6eNtu+2ccRyhB5dDwrRS3HSpeKc1LHJFBVl+YRw\nRLPIzNl29td2YRKH9m6XpTdx3ZQ9/M9V+1nz04fQ6aQTZGEhNDX9EqNxHVYrPPjgGmpr5wY9xgth\nF6DTQX5+NjfcsInYWOkMnAasYjntKXEcO3YTyrh/946Pjk7xb6KbCvIsOVasPgIeo4pBniUnmquh\nrA15uQErHgG3iPC3injMFifXz4GC7ZDaHuAgz/MLd5uNnS7MleRs5+l3tqOdFo+dNrKa4xg3bT5l\nw8ro/qwGldgjtZEwwPFmOPZpGLa5MQwdGkl3t1SVmxgNU5PiCG+FhnavGY4NMIGu/Y+8FvV3bgyD\n0T2ugIAd5u74mPY7byD2nYE5Ug5m+k5s//CHPwQcNxBL2Egkw4F5SOfUz5EWLasCjH0SOEXgbJPL\n0hJ22SKBG7dpSWvTUY2GJ3gIC9+lO0CkVqVSsW/fPlJSUjCbpatbb2EKGqYMMPjQT0/w5VcWcl6C\n7gCn4PAu6P70AQiT8vNUchX7lu47LzFCd1MJg9Xgty/BlkDu9lw0rWOYenUkcff9mzilErW6MGiz\nZLMZfvMbOxUVBpTK4zz66MdMn/5EwPGHDs3HYpF8NCyWFJYv/1wKYfRBpYJ9+85/6PfBBwWysmYw\nfHjgSHxbWwa33HJwQI2hRbOIPl9qWCHTyFAXqj0pf673XGyo4pVZiawO+xydaKM1wmM9oGqBrDpp\ncdyzUXXeX/ih+YewlFpYyVVs7adadOw1n/H1oevRpyRwKN3Gjf+pICVD8h9pqj3Glz9bSOQXNdSE\nR7L3ewv4w/MvkJKSEvDqpNpqZvJfJ+NscoJVDiNyIE1JjNHIpy8VM9Pi72DVmjyEhGN1g8j05vwQ\nzBJ2oH7e38eTKlgMPA3kufatBdKR2u4lAN1IAj4J8Da5uOzEu2NRNsKm3WQ4Db3b/ot4/tf9smOB\nm5GM5luA7bDkR0tY/8r6c3peo62ez/9xP5bUWg6nSYUbVgKk0zVshq9X9d5cOn3pORc0VFmMzPpo\nDR09QxnWbORkU7FUSBOAJZOWsP7H5/Za+3LsWB7mqnWoi6U+nktMr7GnKwtTo0vA5SLxv9ITP87O\nbdfKKFCrz6v/86FDeVgs64Lut4jwvycn0NQzAk2ShoKbC0iNO7f0vTnfF9g1fpZkrdAHVQvsWw8p\n7Xgcu85zodKxvGMY1xmxEMVypgfONkm3E/fMf9j/eA4TTK3o5fC3F+7lf7JfOavnzNuSx7oP3oGk\nDTBpKCg86wQqo5Gs8nJKior87udcci8R68/uOQcr5yre54PLSrzFqno6pl5HQpevldJ8XH1R7kQK\nMHkX6rRAcn0yu2J2nXVV3Po9C0h0HCDVK43MSDrlZFLk1ZEGgOb9cOSx3pvz1PP46N6z716wqLyc\nzY1GusKlRUI5FnK6/obSWY2xyUCxAaxeSRIz62fySvsr57UC0Hn3Ijp3bGKIyWPeVZc2jCciC9j6\nyCTaRkfRleIJRahiYsiSy8/J/1kQRZ7QVVLRUsVQ216oXo25oxPlEMhVA+1QXAyfHo/glHIizsWL\nIOYUGIpRxSaRNSrrnEJWEx/P42hc8BPG7RXpvJt022ku386e3EUi39t0gFSnw7eoykVYmp2eKVbQ\nHiVev5nbt66i5B3YMlfJwo/9rMYGRPrsUk7qRsPzQsBsHpXRyL5ly0hpbUWQy9Hm5KBTKhnV3cqf\nH9JeVg0bQs0YziPHFn3KyM2L/YQbpPS+0lj8hRvpth07Ne/XMPYsquKMtno/4QZP4UYCVlrxWgHq\n8LVfPZeChkXl5Wwym3G6hDufAqmIJNIkfYqUMDMJyluhyNVsON2YjrXcimgWz08FoCAQsfcgEV7C\nDZDR2MR/D3+W1zNe8hFukLxAsFoxi+JZ+T9nV1byifk49d0JUFUM1gpwSGeog8CH1dClj8a5VQSc\ncLQcKs1SGsWK1Rhay6F24zl5cKRepeNoPxq4e1QEPHthqmkFAbYfjCbdKWcy1t6mGhtQoyeWqPR2\nDq3RS+ZhQJtcSVkGmGNhbMvZzQ0FAWzVV8PipoDCDZLxV35uLm2xsezOzPQxBvvYZTd7uTdsCLkK\nniHORXczetOPieuq6d1mlsFHashbAA/FQrw7VOLGlgJbVsMr27B/uopVo0rQ559J+qDE1opH/ITb\njQITuWzwbLAbQe+xX5WJMn5/ze8D3PP0CKLI3uomHlwJf1kBv37RwhRngOo/GUxOgIRITwNZh8Fx\nVq81IH261QikkMdq5rONH6e+Smd0RMC7GRwO8vVnfgyCKFJmbZGEW7S4hNv3NTtiwakUpRCZG5Pp\n/7d37vFNl2f/f/fc9JRW0pIGKKkVESOIFplSj4z5U4eHl+7Z3OppFCnsKIc9Ks2cG4U9eyHDR/fb\nONXfpj66Z84TMsdwRTkUmEBFbAtYSkJLk9D0kLRNc+ghvz/upDmnKRMs2/f9euXVJvkmve9vv/f1\nve/rvq7PJbQ8XGmQdRV6WycV1ecevjdtfPSbrv2kifZHHz0vMoveU76GK1lMMVvJp5F0ptBDC2kc\nmQXI+5FbYOk6WPtMAffvXcYvSuSoi8+teIRWK/TtUUUP+j5ccGOI4QaP3OypU7QbR4i3vMiRZt6j\nwWxmcMceUgcDB7DCLvQX3pwGr02Hfv/8ijdDy57tSp/P0qMy3h/lZCnJEV0u9vrTBta+AMY8G1X3\nn8A6ILL74rrzkL+9iW/8Qc70r48+i/ovD9Ty3CG3rybyLVWQEOEmIoMfqmQcqNUg7xNdkS0rAAAe\nPUlEQVSrgGjVdUbCG9XS1NWEeqiOX6aJCItSXmFP3E20uCeLA+uAJZ6antrjId/TZB99G7Q6Hac9\ns2x0VSGGe5gcxN7GNr/XTCY8oh1QWEZT19FR/30vlXMree3j1+hNDNVJT3CDI3mQZX9+mZd37/7C\nfd7+UYfdJLOeoAIIhlQqKqHgqIX3zFXswoAKFd9IW8vxudOJLiAwwt80yoDIgd/t2Zmczr8k7Hv6\njAwqNmxgY1PT2BJ//wKRjPdo0GpJ7g2/fi20itCtJXdDnDdvxKYINNweXLYJHI1zjSoRrqGhlAnu\nUKPkT96nKvJqAdKZtX8qdQUr+dXgdBL1t2DqE/Pk/Ztgx47Yx7jL7CL7sJNsf7ulMkQ8HuAWyxTm\nveXzv8uKIqTAj0BIVMtEqH4ciltS2F79dWzWIL+Ut9qONWl4Ge+lSDb6NrxtbvM9cUTvc4iLDHyi\nHakqipLCBvbHRG56Lukd6fQm94b8ncE4QAN/mQYP1el5tYZ/OsNyWNq3qYnTp1ci7kzhkX+ziY9+\nVkmTsx6TZyVWSy3ViYdIbb2S3N98i72LHhuVD9qbN0FVIVmz2ujODy1OojSC3BI+QctLU2amiMk9\nX6m2XzKS22Q0jJD8UNQpfrrjgaE42PtkiOH20tqbHHMinFcIKckdLqjXg1EJVb4843xrPtc1fgV1\nwx04+4KWlXrfNT0SOq2ObGPQRrMxeip8UkvB8O8p6hQKV49GHkBgtpmpadkTEo6oz4HtBRnY+sNX\nGxqu6elHYl8vqwtH14YH3iqj3eE3002N3me6Ql9KUil4lmf4T9nr/PzmpaP6+8HcO3gvmX+EGzMh\nOYwruTMe9k6G9jY9VFRgtpkpf6+ceS/Po/y9csy22FwqpaWlzJ49m02bNlFdXc3Jk98itC6Oh0vP\n8u0PmgMMtxd7t4kuYwOfTxpP8cGDoyogUVkpAmewJlNUF48yyPvhSR2gILpuAkUGw/lLtR0DSMZ7\nNIyQ/NDkv4KLdxNXsDvq8UdfaY3JT6nTaXE69ZEPsMkCFfs9ZDuyuIezYT8S6zUd1uVRVSZuFuHw\nu4kMJ52cw2bl99+cw2lr+NFpy+6IWI0IEDU9vdiNXDKgG9VmpdlmZsfQRNyJMuIYFIWQt68BW0H4\nD3jCQANQKulf+D0OMYs7ZbXoGu6koeHcRaMqKytZWp5Bdjq4IgRtnZZDxVwoTXiX2Ztns6l2E9W6\najbVbmL25tkjVp7xSvvqAzJ6IxY2g9KDfPLp70MM9zAe11FLfz81nk3jWJDj4qpEK/mpTm5bo2DD\nYpi/Fa49JH5uWCxEGsuqIMsYfkWjNhpZXeXZ87mACpsXEsltMhoqK2l/bQeKXn3IWzo5aINWl+6U\nCLUcPYy39+EqvoPkm6+O6sOwH3wXJkb5osYpsEYb9i1VFDHO48ddQHSjtl+/n2nBIpLWbHGzAHyO\ncEhJmkycYzqp100OTToZBS6XGZ11hCTeMNWIhhnfJcIkHQbQVXGfVQU3PBizo1+7U0tvvNCVcVdq\niKvPxG1Kh/tvEjVI/eOtbTIwu6HPL13dT7TD4ElqCS60PFpyc3OZMiWDbR3Rr6ljCmgZZ0NvDbxp\n6616aCZq1ItWqw0y3F4eBsYhJKaKEPo7Wsh6CgMjuJM8riPvpvFIRYMbShuw7rNS1uXE9VgS73w8\nidmfJrF8fahQl91qpK/uBDA1QPw+w+iiuK4RRbdH0XEsVOY+D0jGO0bMLhfazk4eKJnG5Qf6UVt9\nvm+dHGoKoCM96EOdUxiX6KJjINSAKbHzXdrQtXyNqTVvR/bLmc3IGm1Yohnv5ggzQsAQSXIVaGvb\nD0Qu+mo2m/mj/UW2kM84LDhQoaOMfrJhjZYEVSuKt7bjTDEOZ8Yllyjgu1HaGgM6nRZlcnTRKhzq\n8K8r7fD138JnvwYgwwlLX+qGN2bH5Oh3ucxczjbWpiXQZLmJjfWbGGfqYxXLKHrLxNG0m6mYezMD\nyhYKZFNoy/kutm+ehe7w+jIqP+PmdOppalrOtGmRk0hcZhc6rV/WZWXhcKmz6667B9VHm6iN0n6z\nPBF9mI1NEAY8WuWZYA14OfLhqkhGjFTxFFZ8CVkZPT2YrlXBjigt8tN7HWnTuLW5lZVDK9n9SAvu\ndAUr97tZQQd948tod0xF0emLJjJipI46BtasgawsKCsTf8sgp7fqUQ53T+EhLuUPk35KwliozH0e\nkIz3CJhdLubU1nLG6cThdrPpqf9ktfUZ/mNzJ5aTdmozxFI1xHB3qZnUuJor5T182pEWkNSgxI4G\nK3L6sVHg82GEq3yj1ZLxei/P74UWi7g+y8og25NQedY4GXfV9wjnxOhKsVLljGT1deTm/jfRjPep\nOXP4veEkhcNKCLW4OcrnFGPnIdSGBqY9uNdjFL+4OGO7vYmyQjjUFV6gaHxcMpa2J3Aq7b5NShCG\ne+JuaPdllfamwJ0PQUnLyJt5DQ2lWK37KM4UBnfX/72Jl02LKGHfsE771/rg/m1qaihhz6KNLF3i\n4rpDh+kNoy+jxMhCqgJea2v7E273YFiZXu+s06t3Yqm20LmjE3mJnCtfvZLCwkqWmP7Koa6WsOdl\ncm8CucmXcJy20Dc9RKs8U1RURHW1kB6oSKhAk6wh3+6b0Xor/axhDWq1muLWVv7xwyX0fLQPq6sz\n9AuD9F6jbRqXvlnKriO7aL3CMymyw28nQ0k8vFpby8m8KXw+fjEN5hIMQ+9TxfN0e7XSu7th/XqE\nbuFBIBk9hTjjkrn7wWdwnTlDUUfHF55t+2UjGe8olDY0sMdqpcVPMzuOQf4iv505K/YA8Fo99HUi\nRAG8dKlJ7yzh5lkKfnT4Y4wd/WyhcLje30J0yBHLwKasbDbeDJXNxwi3qC9991329YDe41P11G1F\no4Gfl8XTXpeHsSeFuPgBxvuJnKSoU7AkdtJ98gCkWWDuZuFq6CqCnY9D33GmTYvgRjCbYflyCk6d\nCimvMIFmXMRzP1o09PHqCBrSZrOZFStXUl1fjzs/n6+uWMG64uKog0gmKyI7uRqNHLAGGnBlCmhS\n4mDhbuocBs6+e5XwcascjF/4GR11DzIwEOgU9paja9+uRxHhJundFPbuLSRZYNG+N5nHXmQ4aJdB\nxVehKQeKuvQ8vnOQt461c4VSwb2XyqmxWkVCkLcPViOXp9YhTwmsouF2O4Zlev3dJ17lvmClQafe\niRVvolMu6tybmZHzDnTZAs7LdEcCaw9OJKO1jzqPC689eEIBFH1yGh4Jfd1ldrHEsYQZqTP4/Vd/\nj2a3hvyewP9+PvnIUmX84Js/4GfrfoZCoeChhgZe10BcUxzubnHeFcAqmYwip5NTW7agLSsjY/z4\niJvGZpuZfS37aE0MjOTSJyto/3wVt8QXcUXbKR7Pe5FHFs2hY0MTcAn4F7pAjRCe9Z1To3sCxv/9\nJsw5QnW2hR2dnf9SyTtSenwEzC4Xsw8fDhiQXpQY2cDi4Sop1n7YcgoMDkjuvYLLz+xh3SoFCgW8\nduVrqI5FjlQ4UnCEpQuWoh7IoOSaewPSqM1mM7MvvRR9b+gyeEIWfDwEjROvQLNnD1lkDYsc2VV2\nXop7iRO6E+zP389A/hDk+N1duuJJ75Sh/7U+tN5jaakoCxTW9+ljA4v4FU9xkOtQ0AGLFoUYxdLS\nUt7dtQtbq9+gVCpJnzGD+9avjziIXC4zhw/PFn5iv3OrSoVFyZlMWrkQ54CKHk0vLz+pwpA/myKZ\nDMfx53j5yJaw3wmw6BA83DSOGxtCw2xOnCjHaBQp6FdUgrweZH77cC2ZsEsNDz8gnqu7YEJXIW9v\nPk5ucjIPLFjA1txJDORmCvdJVRXKtG40GpF0Ekx29iJmzvSdL69+SCTyF+UzdeNUz/lpp/b4cp6r\n/TsGRxy/fj0Zdb0NZYdvxu115Xnb623zwe2TUOytDbjR+s/4LWkWDl16iHl18wCwYKGKKgye+O0y\nypi2aNpwWwAeeXchr9RUwU545WQ6Ja4BCu2+caPLy+NM4aXclJEu/M9BiQbl75WzqTYo/T84PwJQ\noyN/nI60ITkTxp2Ba9/ij++04nIVAavxN9wBKH3x/+qUFA4WF59Ttu2XhZQeP0q0Ol1Yww1gIp8t\nlLEcsTyXJ8Fyz7WcnT2BmTPFRXTM0sqnWccDqsgE05wrig3oE3uhuSZgQ0mr1YY13ACt3fDzjAw2\n7tkzPBCnbpwqqrjv8UQMpAGPEyZNfwgyCMwKBF89txEMN4iqQXoKqaCSjSwJ2dE3m83sqakJNNwA\nJhM2YPfp07RfdlnYQZScnItcXkLHqX7kGa3D5zZeWwF1GixWMSNM3AXl/zAhv8/NVa9P5Yad70Vt\n8zEFrMy1MPDSTUzPvTJANMpuF+1PsoQaboBJPVDSDONswkWmzwF7civF+6uZnZDJwb9/yEBL4Hkz\neSaGVmuobnVNTRPPPedzwXcfi+4P9o/6SU5WcP2MP/DnGYDZzMCaWSR2BLpKCq2AX3uVXblc39KF\n4kQL9qefRrZZCIYFz/ir5lZxS71wpVVSST2B8duHOMQ1717D+xvfFxvLOi2PKT/nzSQlaXNNlJy0\nURjUlcK2NgrbPO2rrg5JNAhx5UTIj9BTiNOSxIf1E5k6tRi4F/cj8MorUU9dQPy/Xh7bxunFgBQq\nGAFjq02k+y6HZetAHpToZYhgkB0OkTb/wN4TzLj3M9YZb2NV0kQsQRVfkrAwIWkVd5tfYMN7oLD5\nNpRAzPy3XX45rF0Ly5aFjn7gL4NTmPeggvJyYXdDQr2C0/T9sCXZqFh2NcMfBtBqMev1lBOYLBiO\nJk/VIO/P4B19rVZLy+nTwR8TmEyofvsILxz4D37UsB+zJ4TM5TJz4kQ5R47MIyEhnekzthP/4b1g\nuoRx78pJ2qdhyBq4lO93KOnadQabwUjeCIkwtfmwZ/Ig+1v2hoTPyWSi/YVVoYbbizcRy8vZdBeT\n/7SYXatX0xJkuP26ypYwi4GmpqLhWPvSUtj2iQxLmoV189ex/OHlrJu/Dkua76JLmZDCifITHJl3\nhBPlJ3CZPWF3Wi2JLeGrDRVaYcM7CuYfms+GzZt59q0fAnD4yJHhuGudVsfZLifrlsLytXDg63No\nmtSBBUuA4R7uDyaO2o5SU/MAhw/PxmjcRLx9Dylnr2TVXzPETcODWS6nfOlS5q1dS/myZZi913BQ\nokGRLGgs7VwVMT/CODiR++7zPa/T7CduUjPML4eH54mfaX7ht2lm8drX7oYdvwOXhYaejrDffbEh\nzbzD0FDawKJdNjK8k8ZamHVIRMd5I/JUEUKk3G4n93+rj627JzNoEnf3ncBncUpmuHvRcpwrqCQj\n7igZ/WamNMNtzXD7SbHM3TS5kSkHDogN0uJi3xfPmgV1deAng9lqv47Wat9kJjExKNQrguH28tc+\nA/ZXNiF7+WWYOJHFLS38DVFr8C2EcHu4IaRDjRaxg19EE2256eStXh2Qyn78H9GzQfsN7cwd2oqx\n7WO2tM+gJukbVLBm2OdssVTTmbKDpMMrmVxdQ0/NozgjFDgeNGZSv3Qb3y3r5eMIVVgSBsEWVPPX\nP3yusLCSY80vk2qIHuVSFLQvl9LTzOU7TUTLd2puhnXrfMEo8+dPoqpqNd3d4r68bx+8cdczZE/c\njTnLb5ZbdAhNi4YV72vp2NnFwBlhsAM2Mk3RY5jnNhagaBSbqXbPhKNOqRyOu156VTuf3Aqm4VN7\nAxufPMvbN7dwtjL8Xay1t5XKX27lyRW+Uu4lZ79JUcMAIHIbSisqAnRHqoEds2b5pFy9m/S9vVQe\n3sOOO3x7E3RGD+0764mCrDttoSH5p7hLP4dUb05ANRTtgJYSwA2T9gWGdtZW82lqDg1p15732q7n\nG8l4B+FdRma0BmbwecOZs6yQmNmG61QVy23CD/uNQjl/Tl6AARWK7i4OHrEwaAqcTZjdGXyU2YX7\n5p/zvx8cIsMV6A7xLnOf6snG4LDhJkhkyRvHmpUldtdRA74QKL0e4uMD62PMVMORKH29sQsRA+Nw\nwMmT/BS4ERHV603NgHgK/XZjdYhIiw4UqNGxKFPLvknwSnU5jY2NzHtnHnd03kFbTxutRJbC80aQ\n5WOCIXjj7IN0V32LFIMCVEYoq8KZrSelYg0ZP4qnLYrrCcChTyA7mbCbnOkDIHPCqp3C+J66BNZf\nD08cgKJOPfW7bkD5szmkJMRx8C64rQmSw0uUByZiAUVdgMvFvihta2yEox5pk9pa+NvfXPT3PwG8\nyo4dcLbHDFNrMAfpxZhyTAwmQJfMSuqZwJWXU++kvb2d/jsLIlTxFNTMVJHpuQhkGNAplWgXLqTD\n6WTZyZMcLRzClBH4GXfaeNo18X7XWihtxgGSLAzrqr+g+DEHk+8Ch5hxhxWM8jxvz8oSMdjHjkFL\nC7n6Fko8aQP6HOCSUwE5QXJcLECHCjtGZOweVwgk8/jWPTid9ZAadJPJ0UOcZ/xmByV6OU0MOvow\nP92B641zi7kfK8SyYXkHvkIMW4BfhTnmBUTBhj7gMeCTMMdcFBuWI20cbbvLyW8e24uzoVK8cNkv\niEv9Cu5xfr5bY4ooTLsmdEPud4qbWNy+N+L337J+LbtnzorcwK1bYf3biJ314JlDOSA2fuRy+NWL\n8GxrmJmoDdK2w6x6uGIInsjM5PmFC2lSqcg1GvlbVRVdVmG9RGrGbVzOAJ8zDS2r6UBBUoaehJzP\nkSVbecyaxA19caT1J5LeL0IcLE88w+L/qeGseYhglErYsAHkbjlULcCy5zY2916NaTADFQ7K0JGt\nbCbu8jqeP7mGb3fA1c5lGLk74mk5M7+WiZ5wPWs//M9pmJkNE2SgOgqFv4PL/MZxfxwkuaGhAqya\nwFqRCUbIqUsiac0PsKNChpFCqmiVW7lukS8s1FsIwd0HswlfHV3UKVkB/Bd45+dyOfIHV7DgyK1M\nMMbzh5nP89m1b0Ts2+2Hbid5WzK3ciuXcRlyP9nf1PQeZlBOmi30mtXJZNy1agP/9YsC8rqNxBet\n5eklpXxYXAwWCwkbf89gW0to/KmXrVs9IXihfKiCrwwFupjOplxChsvOsicWs+meeyL2Z9HWrWxc\nv55dV8u5stE6XMqtPU2E3R6TKfhk28f02gupoAENVvLxXcQJE1IYd6uckqufxNI3koMvPNca7qBv\n8u0cW/nPyRZcCM51wzIB+A2ixkArIohyK4El0O4CLgOmAF8Bfgdc/0+3+EvC3mTnCEeYycyw79+9\nvZdrdS9S+i1g7+twXT7utKCbUr4TsEKWC7p9Rl2Bma93Rtd46JFlRn0/UT2DAVYSsrOeZoa5DshJ\ngq5+Hrwc7B1hZqJvQnwL9FnEAnc3UJWayuDRo+AZcOP8XDQdwBI+ZAZzaVPfTefgMcirp3+ulv70\nDjK7lBxt0XCPnxAVSU6yZzdy1WdDxNULv6+X4eTDFyugXkOl6bYAcf9a4BA5aExFPNsGJ4eyeJxu\nGjOr6OyZFdZ1MpBn4vTCD0hAST4m5Enwvcv8DrgBzGpw1cGVHq9TkhtccrBOB+f4wO8bzId2siHr\nFuiWYwHa4mbRTR0d6eILvCXIFB7DUwLYkpIwB0hKqj3vLAdUwCBUHKfiwzlo3k0j3yTcDq/dEt31\n8VHOR8iQ8RDfCTDcAA5bJgemaSjsclPod6J1QI3dzvHnnuR7E67gsv/8MXuvX8tQQoKI9qivZ9B7\nvH/8qV9oTHzBJEJvvTBjMsx2gCxIeWG8s5P+VGhUT4jan0ZVATo5PHC7lcxbfaXcFH2wcRtAOw9R\nw8ckhBhugMFWJ9Y3P2ecqhVLmHDIEdEBQ208+/x0Kl+tQttQdg5f8uUzkvGeDZzEN6n4I3Avgcb7\nHsCbMvYPIBsYDxFENcY4Nl104+0eGsek479Duz2eyp8qIdhwe8l3QpkO1gu/9yuUUsI+Jg2FSWbw\nI91ggCg74Sp3Ns3Bhvv+0hDf3p/iIPsDeOknvlDG0+1w0gD2oM3XQbNZ6E97wiI6Qlw0cDbth5jv\n/QHunMBNSHOOiXrAmmYdloBF5oC0PrRa8ZW/3QSfN8NVak/yoVsOSzRYTAUhVVmA4ecdQwV8jTLW\ns57mHiUJSfXi6jIHFjhO1NRxaUYtJ5hKPEOMD5Ok4swHK+DKgmSPJ0C3INRwD5NvhrItsF7M5gfd\n+XQD/+dYFpNt3aze6TPcAG5gICEB+uOBYuAqAsPXTkDcd5Fnp6E5leavKoCqS0VtlLzJki4Xy/g+\nGRF8/j9ZUMHpvGYqFy+myG73Jq/TAWAyYcjIxHB9JiQkgMUi/temIFeD97lfaMylKakMqNUB+yg3\n3QIvJUFahIJMSQ6Y0B5FQA3INmUPZyR7VzHtaYHn81Ue5jBaegivCe50ZLPijbkseSzcIn8E9KDK\nVDHenMiQW8WxT01MuzqCVs8YZqRokwkQUEn3jOe1kY6Jlsw9ZnGZXXT1hWooBDPozkfTlEtW/whu\nII+YvAJzQJZeJHRA/QcfRHxfiZFV6mUolX4OwTRz6KYM0OWGNqcw3N5QxskHxGw8LMFhEfn5YikN\n5KHBOvc9hnLCR4+Yckxsmev32W45bBGflcsh+R7o+jZ85/txwi5ULQBTPlUUhq+HiDDgWyhEhYoU\nUniSCbzzg9WwObxKUX5CG93I+STCTReEAdf5TbLsIwgFBkvf5lvzeWB/GRu3BRoaM7A7Pp4uhwPh\nYaxBlHYNusm6J7PgRXWA4QYo21mGsiu88VB3wbqdMJ7QaKPhZhqh4403WGK3czuwBI/h9nL3fGG4\nQdRrCzbcXvyuAXVKCvvLyjh48CDyEjkUgvxmyJ0Al0Sff/DTl94KUQL0ojRC8V8tAfHn+hzhLgkm\nIUqfAYqblaQPhT8mJTmTvAih3OmOdBbuFJmf+e0y/vxo9BDTscpIxjtWJ3WwP2bsO7fDoNPqyDCF\nWyiGojTHUxY5H0RgEIZpFdqYDHcN0DVuHAAyAsPelBjRUEeBXIdGU4NM5jHgc7VhC9MC2AbEjHu4\nOSNoCIUcoFKhREkiv8QRwXAPfzQn6LMGn2U0OMRNpM7qxjggH37PQCrRMJCKAQPXcA0WLFyiAuTd\nsHw9rPuJ+Cn3baipMKCIGvcRaLBlIxVaMYRa9wRX6Gs/lsk4M+S9bqJHSqi6QqVss/uy0bRoQgy4\n1zVzTR9M4c2I31lWBcnNUfRR/fRFRrwIDIbhup+K5GQUCgUzymbAo7CgHDKTwDHCTS8jYRBNHRGl\nXDtkoaGNTWEio2RE/wdlDRm4r87KJGug+clLSeLG7B6mZ4uM3IA2WPPIs+b5VolAVmdQcMC/CNcD\n2/2ePw08GXTMBuBBv+fHEW6TYI4gjLr0kB7SQ3pIj9gf0YLGIpKI0H9UI7RDj0CwPih3Ae97fr8e\nOHAuf0hCQkJC4ovlTuAEYuPyac9r5Z6Hl9943v8UuPaCtk5CQkJCQkJCQkJCYuxzB8JH30ioL9/L\nC573P4VzKoZ9IRipH6WI9h9F7IvOuHBNi5lY/hcA1wEDwP0XolHnQCz9uBWRyFYHfHRBWjU6RuqD\nArEXdgTRh8cuWMti5yVEuPJnUY65GMa2RBgSEK4eNZDEyP78rzA2/fmx9OMGGI67uoOx149Y+uA9\nbidCN+uBMO9/2cTSj2ygHl847VjLz46lD88Cv/T8rkBEJo41qY2bEAY5kvG+GMZ2VP6dVQX9E5D6\n8SUg+RMpAWksEUs/9sNw/ap/MPbi8GPpA8APgT8jQqvHIrH04zvAm4h8CGCE2MYLTyx9MAJZnt+z\nEMZ7gLHFHkRp6EhcDGM7Kv/OxvtfJQEpln74U4ZvxjFWiPV/cS9CfgFECNVYI5Z+TEGUgfkQOITQ\nARtLxNKHzYAGMCBcDj++ME37QrkYxnZUxtpS50IS6+Af6wlIo2nPbcAChODGWCKWPjwPPOU5No4L\nWwUqVmLpRxIiIuuriHIY+xFL9sbz2K7REEsfViLcKbcispI+AK4Ges5fs84LY31sR+Xf2Xi3ApP8\nnk/Ct5SNdMxEz2tjiVj6AWKTcjPC5x1tOfllEEsfihFLeBB+1jsRy/qt5711sRNLP1oQrhK757Eb\nYfjGivGOpQ9z8OkRNyEShKciVhIXCxfD2JaIwL9KAlIs/ShA+DHHqtpjLH3w5/8xNqNNYunHFcDf\nERuDaYgNtbFUETeWPvwa+Jnn9/EI4x6kdD4mUBPbhuVYHdsSUfhXSUAaqR9bEJtKn3geH1/oBsZA\nLP8LL2PVeENs/ViBiDj5DPjRBW1dbIzUBwXwHmJMfIbYhB1rvI7wybsQq50FXJxjW0JCQkJCQkJC\nQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJC4nzx/wHWsT2DFaPG4wAA\nAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7aea828>"
       ]
      }
     ],
     "prompt_number": 60
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Try experimenting with the number of points, $n$, the type and size of marker in the plot command, and the location of the starting point.\n",
      "\n",
      "We \ufb01nish with the listing of sweep, which generates a volume\u2014swept three\u2014dimensional (3D) object; see Figure 1.12. Here, the command surf (X,Y,Z) creates a 3D surface where the height Z[i, j] is speci\ufb01ed at the point (X[i, j] ,Y[i, j]) in the x-y plane. The script is not written in the most obvious fashion, which would use two nested for loops. Instead it is vectorized. To understand how it works you will need to be familiar with Chapter 5 and 21.4 of reference [1]. You can experiment with the script by changing the parameter N and the function that determines the variable radius: try replacing sqrt by other functions, such as log, sin, or abs."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#  SWEEP   Generates a volume-swept 3D object.\n",
      "import numpy as np\n",
      "import matplotlib.pylab as pld\n",
      "from mpl_toolkits.mplot3d import Axes3D\n",
      "from matplotlib import cm\n",
      "from matplotlib.ticker import LinearLocator, FormatStrFormatter\n",
      "\n",
      "fig = plt.figure()\n",
      "ax = fig.gca(projection='3d')\n",
      "\n",
      "n = 10      # Number of increments - try increasing\n",
      "\n",
      "zz = np.linspace(-5, 5, n).reshape(n, 1)\n",
      "radius = np.sqrt(1 + zz ** 2)    # Try changing sqrt to cos, sin, log or abs\n",
      "theta = 2 * np.pi * np.linspace(0, 1, n)\n",
      "x = radius * np.cos(theta)\n",
      "y = radius * np.sin(theta)\n",
      "z = zz[:, n * [0]]   #  Tony's trick!   Who is Tony?  No idea.\n",
      "\n",
      "surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=cm.coolwarm,\n",
      "        linewidth=.2, antialiased=True)\n",
      "\n",
      "fig.colorbar(surf, shrink=0.5, aspect=5)\n",
      "\n",
      "plt.title('Figure 1.12  3D picture produced by sweep')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 61,
       "text": [
        "<matplotlib.text.Text at 0xf667e48>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAVIAAADtCAYAAADtPv37AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXmYFNW9/j/V+z4bM8zGPiDDvi8CAReMCKJR3NfEJSZX\nr8ar1981GjExerOoiZrcXI2Ay40mRg0G3DUquAGCiMg27DPDMDB770ud3x9DlT093T3dPd3DDPT7\nPP1AT1Wdc6q66q3v+S7vgSyyyCKLLLLIIossssgiiyyyyCKLLLLIIossssgiiyyyyCKLLLLIIoss\nssgiiz4JKd5GIYToqYFkkUUWfRuSJMXlkxMZmuM9gCyyyCKLvo4skWaRRRZZdBNpJVK73c6+ffvS\n2WQWSeJHP/oRDzzwwPEeRo9j6dKlXHXVVT3a54oVK5gzZ07Ubfv27UOj0SDLco+OKYvjg5SIdPDg\nwVgsFux2O3a7HYfDQV1dHW1tbQwePDjNQ0wedXV1LF68mLKyMjQaDQcOHIi7/7333svYsWPR6/Xc\nf//9HbatXr2a2bNnk5eXR0lJCTfccANOpzPhsZx22mkUFRXhcDiorKzkqaeeUretWLECrVarXseh\nQ4fygx/8gF27diV3wmH4n//5H+65554u95s3bx5PP/10yv30NpzE7rksegFSIlJJkli1ahVtbW20\ntbXR2tpKcXFxusemIhQKJbW/RqPhnHPO4eWXX05o/+HDh/Ob3/yGhQsXdnogW1tb+dnPfsahQ4fY\ntm0bNTU13HnnnQmP5bHHHqOmpobW1laeeeYZbrnlFnbs2KFunzVrlnoN3333XcxmM5MnT2br1q0J\n95EKuks8yf4myUAIQTbOmUVfQlqn9hqNhj179gDQ0NDAueeeS05ODtOmTeOee+5Rp0HRpj3hFtKK\nFSuYNWsWt99+O/369eP+++/H7/dzxx13MGjQIIqLi/nRj36E1+uNOo6ioiJuuukmpkyZktC4r776\nas4++2zsdnunB/iyyy7jrLPOwmQykZubyw033MDHH3+c8DVRLF0FNpsNh8Ohflf6kySJoUOH8oc/\n/IG5c+eydOnSqO198MEHlJeX89BDD1FYWMiQIUP4y1/+om6/9tpruffee9XvK1euZMKECeTk5FBR\nUcFbb73FT3/6U9asWcPNN9+M3W7n3//93zP+myjH33LLLeTm5lJZWcn777/foa977rmHWbNmYbVa\n2bt3L5988glTp04lNzeXadOm8emnn6r77927l7lz5+JwODjrrLM4evRoh2s0YMCADv0PHjyY9957\nD2h/CTz44INUVFTgcDiYMmUK1dXVAGzfvp358+dTUFDAyJEjeemll9Q2GhoaWLx4MTk5OUyfPp3d\nu3dHPddwPP3005SVlVFaWsrDDz8MtM+YrFYrjY2N6n4bN26kqKgo6gtq3bp1TJkyhZycHIqLi7nj\njjsAuOaaa3jkkUcAqKmpQaPR8Mc//hGA3bt3U1BQoLaxatUqJkyYQF5eHrNmzWLLli3qttraWi68\n8EKKiooYOnQojz/+uLpt6dKlLFmyhEsvvRSHw8HkyZP56quvujzvkw0pE2lXFsO//du/YbfbOXz4\nMM888wzPPvtsXCtIkqQO29etW8ewYcOor6/n7rvv5q677qKqqorNmzdTVVVFTU0NP//5z1Mdfsr4\n8MMPGTNmTFLHLFq0CLPZzLx581i2bBklJSVx97/gggtYs2ZNzO2HDx+moaGB2tpannnmGW688UbV\nHRB+HdetW8c111zDww8/TEtLCx999BGDBw/ml7/8JXPmzOEPf/gDbW1tPPbYY1H7Sfdvsm7dOioq\nKmhoaOD+++/nggsuoLm5Wd3+/PPP8+c//xmn04nVamXhwoXcdtttNDY2cvvtt7Nw4UKampoAuPzy\ny5k6dSoNDQ3ce++9PPPMMwnfX4888ggvvvgib7zxBq2trSxfvhyLxYLL5WL+/PlceeWVHDlyhBdf\nfJEf//jHbNu2DWi/py0WC3V1dSxbtozly5d3adl/8MEHVFVV8fbbb/OrX/2K9957j+LiYubNm8ff\n/vY3db/nnnuOyy67DK1W26mNW2+9lZ/85Ce0tLSwZ88eLr74YqD95fPBBx8A7ffl0KFD+eijj9Tv\n3/nOdwDYtGkT1113HU899RSNjY388Ic/ZPHixQQCAWRZ5txzz2XixInU1tby3nvv8bvf/Y63335b\n7f+1117j4osvpqmpicsvv5zzzz+fYDAY97yzCIOIgUGDBgmbzSZyc3NFbm6u+N73vieEEEKSJLF7\n924RDAaFXq8XO3fuVI+55557xOzZs4UQQuzdu1dIkiRCoZC6fd68eeLpp58WQgixfPlyMXDgQHWb\nLMvCarWK3bt3q3/75JNPxJAhQ2INUQghRCAQEJIkif3798fdT8GVV14pli5dGnP722+/LfLy8sSu\nXbsSai8cwWBQvPTSSyIvL08dz/Lly9VrEo433nhD6PX6qO3861//EjqdTrjdbvVvF198sfjFL34h\nhBDi2muvFffee68QQogbb7xR3H777VHbmTdvnvjzn/+sfs/0b7J8+XJRWlra4W/Tpk0Tzz33nNrX\nfffdp2579tlnxfTp0zvsP3PmTLFixQqxf//+Ttfg8ssvF1dddZV6jcrLyzscO3jwYPHee+8JIYQY\nMWKEeO211zqN8cUXXxRz5szp8Lcbb7xR3H///eo9vWPHDnXb3XffHfX3E+Lb6xm+/3/+53+K6667\nTu1r1qxZQoj2e6O4uFisX78+alvf+c53xH333SeOHDnS4e9VVVUiLy9PyLIsbrrpJvG///u/6nlf\nffXV4tFHHxVCCHHTTTep94SCU045RXz44Yfis88+6/C7CiHEgw8+KL7//e8LIYS47777xMyZM9Vt\nsiyLkpISsWbNmk7jPN58dTyRso905cqVNDU10dTUxCuvvNJh+5EjRwgGgx2mV+Xl5Un1EX7skSNH\ncLvdTJ48mby8PPLy8liwYEGH6Vym8dlnn3HFFVfw8ssvU1FRkfTxWq2WJUuWMH36dF599dW4+9bU\n1JCfnx9ze15eHmazWf0+aNAgDh061Gm/6upqhg0bFrOdZP2k3f1NysrKOnyPHHd4+7W1tQwcOLDT\n/jU1NRw6dCjqNUj0WY51Xfbv38/nn3+unk9eXh5/+ctfOHz4MEePHu10T0eOLxoi96+trQXgvPPO\n45tvvmHfvn2888475OTkxHRFPf300+zcuZPKykqmTZvG6tWrARg2bBhWq5Uvv/ySNWvWsGjRIkpL\nS9m5cycfffQRc+fOVc/r4Ycf7nBe1dXVHDp0iP3791NbW9th20MPPUR9fb3af/izK0kS5eXlUe+3\nkxm6TDRaWFiITqfj4MGDDB8+HICDBw+q261WKwButxubzQa0+43CEf6Q9+vXD7PZzDfffNPltLi7\niEYumzZt4rzzzmPFihWcdtpp3Wo/EAio5x8Lr776qjoti4ampibcbjcWiwVof1DGjRvXab8BAwZQ\nVVUVtY3I8+yJ36SmpqbD9/3793PeeedFbb+srKzTC3r//v0sWLCAkpKSqNdAmRZbrVbcbrd6XCgU\n4siRI+p35bqMGjWqQ/sDBw5k7ty5Haa14W3odDoOHDjAKaecAtBlNoiyT/j+ysvEZDJx0UUX8fzz\nz7N9+3auvvrqmG1UVFSofvCXX36ZJUuW0NjYiNlsZu7cubz00ksEAgFKS0uZO3cuK1asoKmpiQkT\nJqjn9dOf/pS77767U9ufffYZQ4YMYefOnTH7D392ZVmmurqa0tLSLs/9ZEJGEvK1Wi0XXHABS5cu\nxePxsH37dp577jn1QSksLKSsrIznnnuOUCjEsmXL4jruNRoNN9xwA7fddpv6QNTU1ES94RV4vV41\n8BH+/2gIBoN4vV5CoRCBQACv16sGXb7++mvOPvtsnnjiCc4555ykrsOOHTt444038Hg8BAIBnn/+\neTZs2MBZZ53Vad9QKMTevXu55ZZb+Oijj7jvvvvitn3fffcRCARYs2YNq1ev5qKLLgI6Rryvu+46\nli9fzvvvv48sy9TU1KgZA/379+9wzXviN6mvr+exxx4jEAjw0ksvsX379g7XNNyiPOecc9i5cycv\nvPACwWCQv/71r2zfvp1FixYxcOBApkyZol6DtWvXsmrVKvXYESNG4PV6ef311wkEAjzwwAP4fD51\n+/XXX8+9995LVVUVQgi++uorGhsbWbRoETt37uT5558nEAgQCARYv34927dv73RPf/PNN136ZQEe\neOABPB4PW7duZcWKFVxyySXqtquvvprly5fz2muvxc2Bff7559VrnJOTgyRJaDTtj+7cuXN54okn\n1BfvvHnzeOKJJ5gzZ446thtuuIE//elPrFu3DiEELpeL1atX43Q6mTZtGna7nV//+td4PB5CoRBf\nf/01GzZsUPv/4osvePXVVwkGg/zud7/DZDIxY8aMuOedRRiiOmxER39TODQajeozO3LkiFi4cKFw\nOBxi2rRp4q677hJnnHGGuu8bb7whhgwZInJzc8V//Md/dPDHrVixopOvyuv1irvvvlsMHTpUOBwO\nUVlZKR5//PFYQxSSJAlJkoRGo1H/VXDTTTeJm266Sf1+zTXXqPsrn2eeeUYI0e5z1Gq1wmazqZ8x\nY8bE7Dcc27ZtE9OnTxd2u13k5+eLuXPnirVr16rbV6xYobZttVrFoEGDxLXXXiu2b98es03F//fL\nX/5S9OvXTwwaNEg8//zz6vZwH6kQQrz66qti3Lhxwm63i4qKCvH2228LIYT49NNPxYgRI0ReXp64\n9dZbhRCZ/U2WL18uZs2aJW6++WaRk5MjTjnlFPHOO++o28P7UrB27VoxefJkkZOTI6ZMmSI+/vhj\ndduePXvEnDlzhM1mE/Pnzxe33HKL6iNVxltSUiKKiorEb3/7WzFkyBD1ng2FQuKBBx4QQ4YMEXa7\nXUybNk3U1NQIIYTYsWOHWLhwoSgsLBQFBQXijDPOEJs3bxZCtN/TixYtEg6HQ0yfPl3ce++9na6J\ngr179wqNRiOeeuopUVpaKoqLi8VvfvObTvtVVFSIefPmRW1DwZVXXimKiorUe2/lypXqtu3btwtJ\nksSzzz4rhBCiublZ6HQ68etf/7pDG2+++aaYOnWqyM3NFSUlJeLiiy8WbW1tQgghamtrxWWXXSaK\ni4tFXl6emDlzpnqtli5dKpYsWSIuueQSYbfbxaRJk8SmTZuijvN489XxRI+Jltx1113U19ezfPny\ndDV5UuKDDz7gqquu6jDdioQQglAohFar7TWJ6itWrODpp5+Om41wMuLMM8/k8ssv5wc/+MHxHkpU\n3H///VRVVfHcc891ue/JLFqSER8ptE9rfT4fY8eOZf369SxbtuyEqqTpjVAI1O/34/P5kCQJIQQG\ngwGDwYBGo0Gj0fQacj3ZsX79ejZu3MjKlSuP91Bi4iQ3NBNGxoi0ra2Nyy67jNraWvr3788dd9zB\n4sWLM9XdSYVoRCjLMoFAgObmZqxWq+pHc7lcAPj9fvU4rVaLXq9Hq9WqVmumybUn+uhLuOaaa1i5\nciWPPfZYl8HH44ns75YYsnqkfRxCCILBoJog3dzcrFYoKRapXq9Hp9OpAQoRUYIpSRI6nQ6tVqvu\np+ybRRaJ4mSe2meJtI9CmcYHg0GVGL1eLz6fD7PZrJKox+NBq9UihECWZTQaDVqtVv1XufeV7cp3\njUajkmu45ZpFFrFwMhNpxqb2WWQOyjReSdHy+/14PB4MBoNqXSqkKUkSRqMRjUajkmUoFFJ9qUKI\nTsSqPA9+v79Dv8o+Op1OtVxP4mcniyxUZIm0DyFyGh8KhXC73UiShN1uR6fTEQgEYh4vSZJqXSqQ\nZVkl10AgQCgUUv2r4QSr9O90OlUyhePjb80ii96GLJH2AURO4wE8Hg9+vx+LxaJaoqlA8YcqxKi4\nCUKhELIs4/f7VetWsWrDE8JlWVaLHYQQUa3WrL81ixMdWSLt5YicxgcCAdxuNwaDgZycnE4k1V2L\nUDk+vF3FJRBuufr9/k5Wq3KMsk+4v1Uh16y/NYsTEVki7aUQQhAIBHC5XJhMJmRZxu12I4TAZrN1\n0DiNdqwCJejUHYS7BILBoDqVV4g1GAx26W9VSi4VKFawQq5Zf2sWfRlZIu1lUKw/xQpVps1KNN5o\nNPYKwkmHv1UJksmyrJJz1t+aRV9Elkh7ERQrVCEgRS1dluWo0/jehmT9rQqpKn8Lf3HAt2Qd7hLo\n7dcgi5MTWSLtBYiMxotjCj0KkSqydsm2ebytuUT8raFQqEO+a2R+a6S/VUnvyvpbs+hNyBLpcYZi\nqSl+TJ/Ph9frxWQyYbVaaW5uTooUwwmnNyLcJaDX61X/qsFgQJblrL81iz6JLJEeJ0SbxrtcLrRa\nLQ6HI+raPcm03ZegWJnhiOVvjZYloPhblQICRfnKaDR2SMHKkmsWmUKWSHsYis9QsaiEELjdboLB\nIBaLBb1en33g6drf6vP5Ovlblf8HAoEOFj5E97dmg1lZpAtZIu1BxCrtNBqNqvJ5JJT0pe488L3Z\nQk303BLNb1X0AsKzBcL9reGrX2b9rVmkC1ki7QEowSSn06k+vJGlnelCJBGcyMQQ6W8F1MCVJEkx\n/a3hbhNln0ixlqy/NYtkkCXSDCKaQpOyJlR3Szu76vdkRbglqpBrpNXq9XoT8rcq1nK0ktcsuWYR\njiyRZgjRSjt9Ph9arTapnNB0VCad7EjV3xqe5+p0OgFUco7mEsiS68mLLJGmGZE5oeGlnUajESDj\nSeVK/4oOaZaIOyIRf6tikSqEqvw/XE8g62/NQkGWSNOEaApN4ULLRqMRn8+nJtlnAkoeJrRbTgo5\n+Hw+AoFAp+h29kH/FrH8rYrVGu4aCK+yiuVvVfyyWX/ryYEskaYBkdP4YDCI2+1Gp9N1u7Qzkam9\nEAKfz6cGWUwmk2p1ybKs+vYira1IH+GJUn6Zrqqu8PxWWZZVAk3U3wp0yG8FOpB19oV24iBLpN1A\ntGm8x+MhFAphtVo7KTRlwt8ZDAZxuVxqBkB4rXp4v7Gsra4S3rMPeUd0J78VUElYyW8NhUIYjcas\nWEsfR5ZIU4BCoIomJ3Qs7bTZbBl/EJQ0n65UoWKRd7hPT2kvFiGEk2vW39oR8fytkUu6RF5LZZ9o\nYi3ZxQj7FrJEmiSUabzP51NJLNHSzlQs0mjH+P3+tLkOwvuJRwjhOZnhKk4nS1AlWb2DyHzV8JdU\n+LWE9llF+LUMf1FnFyPsG8gSaYKIptCk1McrOaGZhpIBoJSTRusznQ9XNEJwu92qZaoQavh+vcHv\n1xut5mh6Aor4Snh+cVf+1nAo1zwbzDr+yBJpFwgXWlYeUKW0E4hZ2hkNqfpIlaWWuyonDd8/nQ+U\n3+9nzzfbadi5G+f+GkKHG/DXHcF/6AhfN9UzUmfFUFKIvrgQfXE/dMX9sAwoZsiEcRT17x9XRzRT\ncn99gVCUWYCSFtcdf6tyvllx7OODLJHGQTSFJqW002KxqBZEppFKOWmy42ppaWHP5i207avBf+gw\nvtp6fLX1+GvrCR46QkGTG6ukxRxxXE2ZjfJ9dVBV1+HvASH4xCDhLcpFX9wPQ2kRxpIiTGX9MZb1\np3zcaAYMGZzUGI8nMkH4kW2m4m+NtERlWaatrQ1oT4F7+OGHufnmm+nfv39ax55FR2SJNApiKTQF\nAgF1Si3LcsrWZaL7eTwegsEgRqMRi8XSbeGSupoa9n+1FV/1YbyHDuOvPXKMLA+jOXSUQk8IvaTB\nABgAe3gDUnKyflpJon8AqGlu/3xRpW4LCcFXkszafnZ0xYUYSgsxlZdgKi3CWNafvIohDB1diclk\nSvl8TxR05W8NT7uLLB7QarVs2rQpG6jqAWSJNAKxFJoMBgO5ubndIrNEj1UWvVP8X4lK6wUCAXZ/\ns52jO3cTqDuKv7Yed3UtgUNH8R+qx1rfTF5QQiNJmKGTdYnUMw+cJEnkoiX3qBuO7oev96vbQsBB\nIfOlw4hUUoixtAhjWRHGkv4YyoqwlJcwdOI48vPze2SsvRGR/lbFJRCeBRAIBDj99NPRarU888wz\nzJo1i4kTJ8Z9OTU3N3P99dezdetWJEli2bJlzJgxoydOqc8jS6THEDmNl2W5Q35m5JQ6Ezmh0YJJ\nTqezQz9tbW3s/nILrfsO4K2px1dzGF/tYbw1hwnU1pPX4MQmadFCFLLUQB9wl5klDeVtAWirhZ21\nHba1CsF7JolA/wIMZUUYStqtWGNJEcbSIsrHjSK3oCDtY+qJqX2qCHcJ6HQ6hBDodDqefPJJbrvt\nNqqqqnjhhRf45S9/ydlnnx2znVtvvZVzzjmHv//972p+chaJIe6vKHpj+DPNUAjU7/er0yePx4Pf\n74+r0CTLMi0tLeTl5SXcVygUoq2tjdzc3E5jUFKaDAZDh2l81dZt/PPBRyltcuOtrUc6dJR+Tj+G\nHrIeu8IXZTYm1ziP9zCA9uvYpBG0FtoxlvbnkN3A5IvOZfYVF3ebsFwuF2azOa3TZMXfqQSb0gWP\nx4Ner0en07FgwQLWrFnT5fm3tLQwceJE9uzZk3K/0kkc1eodT+NxgrJeksfjwev1EggEaGlpAdqj\n8fGWPk6XRaqQq9frxW63Y7VaVYv4rcef5PPFNzLo9c+p/XobZVV1lLqCvYZEexskSSJfaBhc76L/\nxiq0+w/h+fdf89LVN1O9a/fxHl4nZCpjQbkvkxGs2bt3L4WFhXz/+99n0qRJ3HDDDbjd7rSP7UTF\nSflEKlaoz+dTb7ZgMIjX68Vms2G1WhO2PJIh03DyVYJJra2tGAwGHA6H6j7YueFL/m/x1cj/73H6\nH27BERDozGb8x/y2WXSN9cVmKvc3YUKiePXnfL7wOt565I8pi8b0tclZZDZAVwgGg2zcuJEf//jH\nbNy4EavVyn//939ncognFE4qIlUI0+fzqYn1Ho9HFftwOByd6uNjoTuWhGL5BoNBHA6HKjLi8Xj4\nxz0PsnnxjZR88BX6sD5GVLewaWBOyn2eTDhCkCJZ28FyLzzqxPCLp/nbwqvYuvYzNZiYDHqrjzRe\nu4m2X15eTnl5OVOnTgVgyZIlbNy4Me1jO1Fx0hCpMo1XUpqCwSCtra3IsqxaoMne1MlO7xXrV6mG\nstlsql/2izfe4aUzLsH66AvktXYWHtFKEgNdQQ4YslZpV9g7MJ8hRztPS7WSRNm6nVRd+hNeuXMp\n9XV1eL1e/H4/oVCoz1mdXcHv9ydsGBQXFzNgwAB27twJwLvvvsvo0aMzObwTCid81D4RhaZwDdFM\njUEJJkHHaqiGusO8t/S36P/6NqUBAXHIvKTJw5eDCxi4ryljY+3r+MahZXhd/OBXnjuAWLaa9z75\nksF3XM/EhWcRDAajirRkMn6SaYvU6XRis9kSPu7xxx/niiuuwO/3M2zYMJYvX572sZ2oOGGJNJrQ\ncroVmhKxSJV6fCEENptNrToRQvDB8v+j9rfL6H/gaMJ9Vhxs4ssCAxMa/F3vfJIhKMuEcnLIa23p\ncl9JkijbUUvzD3/O6u99yOx7f0LRgLJOIi3w7YoGoVCo14uFhN+PTqcTu90eZ++OGD9+POvXr8/E\nsE54nJBEGp5Ur5R2xlNoykROqFIfrxC34gcF2P/NDj6577fkvPEZ/ZOMwNtCYDYaccteLNmKlQ7Y\nUGZlyoHmuFZ9JKwyWF/+kDWfbib/5is47YfXdrg/IsszY9W+9zZyVSxSq9V6vIdyUuCEIlJlCq0k\n1SulnUqCe6wKoVSJNNZxgUAAt9uNRqPpQNyBQIB3H/kT4tl/UtToSrmSaERNK+sG5zL9QGtKx5+I\nOKQJUeaX0KVIaEW1zQT+6wn+9s5apvzsNoaNHwugkqTP58NiscRc2ymV1QYyNbVXkOzUPovUcUIQ\nabhCU2trK2azWfWFJqKWlC4ofUZL5t/y4Vo23f87+n++A20aXAqDm33sNgmGeY+PJRSUZfboA+xD\ng3AIKppD5GqO3+1UOzCfyfu6ntLHg16SKPnXZrZ88SO2/eB8zvzPmzGZTJ2i4PHWdjreqw2Ej9Xl\nciU1tc8idfR5Io2cxgOqNZioWlJ3LdLIyqRwseXW5mbe+fnDiGdXUeoNJTXtjIf+rT5qBubCge6R\nRzz4ZZmdphDeYjvWfg7MuWbMZj0mHRgJcKoOLH6JORYN+31B2tDhF1q8foG7zYurwYn3cDNDjvop\n1GROr/WrXD3Da9vS1l5+qxfx6Au8+q/PqPyvf2PcmXPj7h+r9r2r1QbC79l0IZxI+6JFakMjnGQk\nM6UJiCbQoAU2ANXAuak23meJNJrQshKNT1UtKZWplrLmuSzL2Gy2DukmH//1Vfb86k+U7DyUVJuJ\nYuTBZr4oNDP5SOd0qUThlmV22WTk4hxshQ7MDhMmsw6jVmCSA8zXQ64xGgm2/034/Jh0Wk7Rhfud\nJcg3wyAz/lABNd4AjWjxo8PrF3hdfpwNTjyHWyg57KEUXcqll35ZRms142hOr5tDkiTKNu+j+uq7\n2HPRGUz7j5sS9jcmKocH7SvNKsuJpDuQ1ReJ1InMavMpaW93oWdHrFruW4FviBA7SxZ9kkiVnFDF\nilR8kgaDQV2HKJkbMpWbV3kwlBrs8GBSzZ59rFn6WyyvfkiJyNx0ziIkHFodrXIQR5xpdascpMqh\nQVOag63AjsVhxmjUYtTKWGQ/Cw0a7IbIfEMJhSzjoatrZ9BqGGI1MkT5g1WCPCOUGwnJ+dR6/dSH\nNPg1evxB8Dj9uJpcuOpbKahzMjgUn2Q3DbAzpbolbZZ+JBx+Gf7vHdau2UjZf1zH7CsvSul+iSaH\n53Q60ev16v2cjtUGIqf2RUVFSY/1eENrTk6yMSF4ov61HDgH+CVwe3ea71NEGk2hye12I4RQp/FO\nZ2oCGso0PdFyOiWlyWKxqNJksizzzmNP0vTE/9GvroWekFqqONTG+iEFDN3bwP4CHfriXKz5Nqx2\nEwajhEEKkSOCXGDSYe5gNYpj4+umYEY3CEyrkRhgMTIg/I85BigzIItcDnv91Mka/OjxBcHjCeJu\ncuOsb8ZwkK9AAAAgAElEQVRxyIkBiQHuULd9zomg9EADnn//b1568wNm/uwnDDhleFraDX/pRway\nFJdVpIhzota70+lkyJAhXe/Yy6A191g2yqPAnYCjuw31CSKNFFoGYq6gme4IfOQ43G63GkwKX5wM\n4N7FlzD7/W3068G0pCM5JkSuRMuZ/bmoKAdjp8X3tMc+fQsaSaLEbKQk/I85Oih2IEbaafAG+HtN\nC4VHoH+jp0fI1CRpKH5jHX//4vvM+MPPmXnG6Sm3FWtl10QDWbEU8k+EYJPe3iP36yKgHtgEzOtu\nY72eSCOFloPBYNwVNDOREwrRV+6MrIgaN2YMG/bUMn5fMxZNZm+GoBBsH1HA0KEmru1n5X2PQC+d\nWCWOsSBJEtt8MpcMysc6WOLVfAPFu1ooavFlvO8t/Qx4zHomzjo1Le11NQNKJpClPAvhpch9kUi1\nhu4bIpucbWyKPzs9FVhM+9TeRLtV+ixwdSr99VoiDQ8mheeEhpd2RkO6LVJlnaau+gWYdvUlaJ58\nlV2D8ulX10RZIDOWaV2emYYRDr431Ibu2MMzQy/zXmuA+bkn/vIc3mAQrdFInr6dhC45JYeNBTq+\n3uPllJ0NHcRe0onPy6wMb/Qx6JzZx20ZlK4CWUqp6znnnIPL5SIUCtHQ0MDMmTPjaueGQiGmTJlC\neXk5//znP3viVGJCo+++ETI5L5fJed/q/i6vr4vc5e5jH4C5wB2kSKLQC0VLFAJtaWlRV+r0er20\ntraq1mCiQgyp9B3+/676jSTfIaNGEpw1jvEHW/Dn57Ddkd73lE/IbBlZQNHMPJZUOFQSBbDotOSb\njTR7T/zS0fecIaZHuHYn9bPyvSl57JpRRG1eeknOK8t8XG5lXI0Tq9tPyTmndbvNdCbjKy4Bg8Gg\nugWWL19OeXk5Wq2Whx9+mFWrVsVt4/e//z2jRo3qFRVaepM27Z8E0K3pXK+0SJW3aigUwuPxxCzt\njAYlCJUswm8gJZikSOsl0q+CfvNnw7++ZMjhNuodRjaWGJh0qPsCudWFVlwVNpYMtsUMNkwywOtt\nGhaewEZpVZuH4WYjWk3nB16n0XBhRS7f5BvYstfL8G1HMHVTBLtOG6K2PI+ZB1vQSBI1owdy5vzu\nE2kmIUkSxcXFBINBfvGLX3S5ikN1dTWvv/46P/3pT3nkkUd6aJSxkQ6LNEl8eOyTMnqdRapYecFg\nUF210263J0xm3ZnaK1kAbW1tmEymLvuN1tekS8/ncE47kxW1+hh+xMMnA2wEUxRldkuCzaMKGDw1\nl/OHOuJGbCVJYpxZy5et0XM9TgTs1ZoYYYx/247Kt7BkYi4HTi2mujD1WvMdNi3OwlwmVbeiOfai\nzTtzZlqstp7QInW5XAnlkf7kJz/hN7/5Ta9ZbVSr16T9k2n0jisXAcUa1Ov1GAzJVcSkSqQKicqy\n3OUyI/FQUFSEYd5U9bs9KJh2oI0vBufSLJJTZ99fbOPQrBIunZjP8DxLQscM0Esc1aZ3DaDegjXN\nXqboE3shaTQazhuaw7DpuWweXYBbk9w98WWRiRydnoq6byumWnUw7PzvJtXO8YSiVhUPq1atoqio\niIkTJ/YaPVatQZf2T6bRK6f2DodDXdM9FSRzQyhJ9aFQCJPJhMWSGGFBbDdCv7NmE/jHR6oVo5Mk\nph9oZduAfJqONDPEF5+gnXqJvZWFnDrISLkj+Xn6TIPg7WYvZ51AgafIAFOiGJpjYegEC6vztEhV\nLobUxV8ZU5ZlPh9oZ1S9hxx/x9/WPbWS4RPGJz32aOgJixS6zgr45JNPeO2113j99dfVmMDVV1/N\ns88+m/axJYqesCDTjV45YiUymeqxiUAJJrW0tKiO+nRNbWZcfD51AzovCVxZ3YLGZmVLfvRgmRCC\n3eUOWk7tz8Vjc1IiUQCrXkue8cQKPL3nlDsFmJLBwkE5jJ+ex1fjCmmLYT445SCfD85h8sG2TiQK\nkH9melKeegKJGhMPPvggBw8eZO/evbz44oucfvrpx5VEATQ6bdo/GR9zxntIAQqRZiqxXllmxO/3\nY7fb1br8ZPuLdYzZbMZ+xoyoxwxqcFPmg/WlHX13zUYNWyb1Z/rUHM4s737u3xQTfOw//hHYdGCP\n08twiyFqgCkZlNnMXDI2l9bZxVSVOzr8dgf1gj0D85ixvzXqKq1HrXrGLklZ06ITMjWNTtYijURv\niNprdJq0f6LABHwOfEl7rf1D3Rlzr5zaQ2YqlBRhk1gVUensq3zRGdSvWIUxykOZ7wpg8vj5ZKCD\nKfta2Dckn9xhFi4pSZ8IrxJ42tLqYazDnLZ2g7LMtmYXNVodptxcDmlCrDXa8ba2omltY4LdRL4p\nvUpPuzVG5qexyTPL7DTkG3mnn4lB2xo4ZJKwGE2Mq26LWfIanDkOR78C/H5/2mTxetsyJnPnzmXu\n3PhKVz0BnbFHaMkLnAa4aefBtcDsY/8mjZOGSKNVJqWjv1iYOP80nq8sp3x7bdTtFlli+v5W3ik3\nsGisheE56VcyH6DXsMNvYmySx8myzNZmJ9UaPea8XMw2GyazEaNOg1EjGD3GxBkOK5IksXLnIc4b\n0V7I6fEH2N3Yxq6AwBcUeP0BvC4P3tZWdM42JlhN5CZJsmtbvEy26El3mWuB2cClow38wtvId6ol\niupjV8EIIcg/YyY6nS6uLF53XFLpgkKgysoMfRE9MRU/BiUv0UD7DdaYakO9kki7M7WPhBKNV1Ty\n42UBpGNqL4TA5/Ph8XjIOW0GbH8l5vFaSWKMS0tVSIPP6WWMLf03/gyjzDuNPubndwyiybLMN60u\nDgodprxczHYrJpMRo16LSSMYNdrEGTnWpIjBbNAzpjia5CO4w0jWHwKPz4/X5cHT0oLe2cYEm7kT\nyfqDMpLBSH6SAaZEIMsyq1qDDNU7KHLGf35qC+18d8m5HQoyIquJwtd3ilYDH4netvBdb0IPEqkG\n2AgMA/6H9il+SuiVRArpEVtWCC0Rlfx03NThC93Z7XZGXryYbU++giNO1lNZs5dtTQEMg3L4uNXH\nLEd6p8U2nRY0Glb7oV9BAcZjlqVJC5U2I6cnSZapwmLQMzYGybp8fvY0OakKgDco4/UF8Lk9fF19\ngOtLc6Me0x00e/187JM43SLxryNdB+RM86Zgd3QUCIqUxUtUzLmnrNY+TaT67tPSp9X1fFpzpKvd\nZGACkAO8Rbt4yQep9HdCEilAW1tbB3m9TPQXTtrKQnfhvtfKqZP4YtooHJ/GftFJkoSuKcSIYQK7\nRc9bLX6+m5MeMhVCsD4gUTiwmBZJx+JRZWlpt0MfcvdnDVajoRPJ7j7aTF6uhfdqGpkc8lGQppSY\nnU4vdVoD5zgkVu1vYfCh2H5RgIAQFMyf1WW7idTAh1utQgj133QRa+QKon2WSNNgkc4aXMKswd9q\nhz26Pq6x2QKsBqZwIhFp+I2VzI2mBJMA9Hp9B7HlTEEIQWtra8xy0n7zZ0EcIgUo3HOU9QN1TC2y\nY7Nqea3FzwKbDr02dfI4GpDZqDVx9qSBFNqt7GhwsrWukdExrMKUkaHLu7nRxwUjimFoMW98vZ8D\njS1M1HePtDe0eTEYTHznWBpVqFXb5WJ5hyuKWbxgfkr9xbNaFUk8l8vVyWrtbhpedmqfEPoBQaAZ\nMAPzgftTbaxXpj/Bt2SaqJUYCARoaWkhFGqfRydbmZSsRaq4DmRZjltOOu6S8zhqjS+ykheAmub2\nn8Ku03KOXcf7HsERT/J5oEII1vngYEEBV82qpNDeHsQ6pcBGlTPQxdHJIxMvqk/2H2Z6ybdT6QVj\nBjFh/BDeDulpDCRXHabg/RY//cwmxh0j0QNtbux7G7o8LveMmWlbAkSxWPV6PRqNBoPBgNVqVe/V\nYDCIx+PB5XKpiyiGQqGE78vI9Zr6ooQe9Fj6UwnwPu3pT58D/wTeS3XMvdIiVZDIzRstmNTc3Jy2\nnNBoCAQCqiUhSRJGY+xM8dJBA6ldfCrrX3mTSV4d/aXopKqpdRKsMKPTaNBpNHzXBp95dRxtc1Np\nTyx9qeGYFXrW5IEU2TtnAcwsyeG9qkOcUVES5ejeAVmWaQppODXinItz7Fw1exSvf72P/Q2tTDQk\n9lvJsszq1gCnWnUUhN3tG+qDVMZ4sfiFzHbhYefgAn508aKUzyURJOtrTVQlP9E6+94ITYbU3SKw\nBZiUrsZ6JZEmonYfbeXO7qrkd4VwhXyr1YpOp6OlpetVPG9/6nE+v/BdVv74LqrrmrFJGgrQ0S+M\nVAdVN/PWQRMLB+Wof5thEmzTmPm01cvMOFVOQgg2BbVI/XK5ctSgmPsVWU0EtDr1weyNeG1HLWcO\njb3O0DljBnOoxcnbWw4wVfaSF0cpqM0f4AMPnGXXdVo5QHO0Y/lxUAj24SOE4KBOpvTcM/jdnx9D\no9Go7qKeQCxfayLLPZ8oFqnUc1H7tKFXEqmCeGLL4dHxyGBSOquUFCikrdfr1TzUZOT6pp99JtP3\nfMHTt/4/XM++hvDJ7Di2IlcRevIkHYG2zjdQpQGqJSPvtPqZHyWi3xgM8YXGzPzxA+if07UFcvqA\nfF7ZXsOSUQO63Len0er2km81Y4u6aum3KMmxcdXsUazesh9tU3Tf6V6Xj33oWeToHCX/7HArxXsb\nCB0jzyACLRK56DgwvJhrV/yOoaNGqvtn6qWcqLsgnkp+uJizcg9v3bqVxsZGhg0blvZx9wQ0SchW\n9hb0TrPkGCLJTQkmtba2YjAYcDgcMSPy6SJSZbllt9uN1WrFarWq1kIqhH3Vb37OonUrOThpGLno\nOEUy40ewQ3ho3n6AHQ2dlxUu10tMs2h5rTnQQY5vU1DDvvwCrpxVmRCJAhh0Wgbk2jncktoigZnE\nm/samDMg8WDYwrGDGDuu3XfaHPzWd7qx1UOzzshp1s55nLIQbN7XRl3Qwx58DMRIBSacNiP6n9/E\nbeve7ECiCo53on04wn2titCOMkOSJImXXnqJhx9+mFtvvZVLL72U1atXx2zr4MGDnHbaaYwePZox\nY8bw2GOP9eCZRIfGoEv7J9PolRZptCm64pdMROQ5XXqRihXaVR5qsikshcXF/Ofa1bz7/F/ZePev\nGNsgt/tOfbDv7WoOlhixFlsYPaQAxzHrLEenZYFD4i1niEqtn91mB2eOLac4N/np27SSHP6+4xAX\nJUi+PYFv6poY2z9+rm80lOW2+05XfbUXXXMbTS4Pg60mhoa52YQQbD/cwtHqVpy1bqa3Shildh/s\nfilAy2kTuekvTyYt2dgdpDshXyFXrVbL0qVLAZgwYQKyLMc9L71ez6OPPsqECRNwOp1MnjyZ+fPn\nU1lZmbaxJQupZyzSAbSv0VREuzr+k0DKb5FeSaQKFJk6l8ul+iX1en2XN2B3p/bKOk2yLMfNQ+1u\nff6ZV17C3Esu4A/X/BjjqrUMl/UMlPVQIyOq21i/pRmpvxFriZWxgwuw6HWcY5f4y1Efi8aVpESi\nyhgm9c9hY/URJpUXptRGurGzzc/5w+MrucfDonFD+Nk/P2WxVc+AY5VQVUdaOXSgBVedh8JmQT80\n9EMLErSJEDvLczj9fx5i/OyZ6TqNXgOXy0VlZSVTpkyJu19xcTHFxcUA2Gw2Kisrqa2tPRmINAD8\nhPaovQ34AngH2JZKY72aSJWIvGIRJhog6Q6Rer1ePB4PJpMpoTxU5bhkSTU8if+mZY9Ts2cfL1/x\nbwzaeYgCqX2KVurXwcEQ4kALn3zViLa/GVuJhbEleexsctHmDzK5vF9S/SoYlmdlZYMrfWHLbuD9\n3YeYWZJ6BVMwKPPXbdVU5DoItTaxdsdhXIfc5DfK9ENLPySUhFchBFtNMvk3XsxP7v+vhNrPRDln\npttMJWq/b98+Nm3axPTp09M6rmQh9UzUvu7YB8BJO4GWciIRqRCCtrY2QqEQRqMRqzU5QY9UiFTJ\nP/X7/Umv05QsZFnulMQ/bNRI/nPTe/zj939i7a+fYHSrIE+0j0GSJMq8OtgfILSvmRpLA40lh3FN\nHkSTN8CZKaYzzSl18ObOWs4eUZryuSjXLVXIsoxX0tLflppCldPr57kNVQxodHFgw37qmkIUCC0F\nSIQLnYSEYKcpwP7BRdy28i/k5eWpAZre5P9MF1wuF46IstZ4cDqdLFmyhN///vfHPW2qhyzScAwG\nJtKeT5oSeiWRSpKE2WzG5/P1SGWSYhlC+/QmmdSgZEhb8bvKsozFYolaNHD+rTfx3RuvYenlF2P4\nZjdFbVDWKuE4RgpaSWKgR8fAPR6Cu7dRna/jiVIbU2dVMHXMYDRJaHbmW0xoDAb8wSCGOGW0waDM\nhurDHPQK9HY7RqsNg9mMwaDnoNDzKQ58wRB+rw+/x4Pf2YrO42J6WX6XQbBXttVw7ojkXwS1DS18\nsmY7h7fXU1LnwRbUMAoIJ09ZCPYZAzhzteyy6Tj/Zz/n+oXndirZjEwj6glizbRF2tbWljAhBgIB\nLrzwQq688krOP//8tI4pFfRw+pMN+DtwK+2WaUrolUQKYDAYCAQCKa8Imgi5KauFajQacnJyEsoJ\nTRVKX9Beax1P4sxsNvOrV//JFx/+i61/epi2+gaqD7uRjvoZ5NRgOUYWOklicFMImlpo+Xo9f+n/\nFbkjiygbW8aEkQMSelBPH5DPqztquHBkGVsPHWVHqw+dPRejxYbBYsZo1GM06hg6azgzch2d2mxq\nc3PqmIpO7fr8AXbX1rPb6cEXCLaTrMuF39WGNejl1AGF+GWZ0hwrxgRFKo60uPhqw26ath9GVDVR\nGNDQ7tjomHN50BDEmaeFfgbKyvphrJzEj3/2S/UFGS35PTyNKDz5XavVZkypKZPweDwJzeSEEFx3\n3XWMGjWK2267rQdGlgDSYJF+tH0va7bv62o3PfAy8Dzwj+7012uJFFKPvitBqlgIT6xXqqG601c8\n0g63eC0WC1qtFqczsRff5LmnMXHOXP5v6U+p2PYFY3OtvL+njn21LjQNAYa4tKpwtEHSUF4fgPoa\nDn90kL+Ubib/lP4MGF/O6GElMc+vwePnsCfIW2494yZO5cJ+eWlJ1jca9IwaHF0kxeXxsrv2CG9+\nvIGZ/XOi7qOg2eVh4/oqmrbXE6pqpMgrdSJPgGptgNZ8LaJAx6mnlGPWaVkfMlB5x71UjBodte3w\n5HdFIi+cWAOBgDpT8fl8KrF21x2QSXX88N8ukd/x448/5vnnn2fcuHFMnDgRgIceeoizzz47I2NM\nBJKu+z7SuWNGMHfMCPX7gys7rbYsAU/TLp33u+721+uJNN0q+UoaVTSB53RXREVavBqNJmmfokaj\n4dzb76L56BHefeCnTCrNp19FKUFZ5vUdNQRbQuiP+hnUDPpjD7cJDWW1Pqg9wP4P9vFVuYXmYjPD\ncjr6zGqdPvxGE8NLi9i+6lO0A0rYmuQ5Hqip560t+5I8ClxeL0UeP0cafTz27hYGWfWYwqZ0+9uc\n5HoE8u5G+jsFBdK3ASMFR3QyTUV62qxw6vBihubZ27UGGttg+plccdMtSY9LSX5XMjWUgKfy2/n9\nfoQQHSzWVN0BmZraK5Z2Ipg9e3ZKs75Mood8pLOAK4GvgE3H/vZfwJupNNZribS74s6RxyUi8Jyu\niqjwJU0iLd5Uz2nAkKF8f8XfeGPFn9mx6m/MzLexuLK9OskbDPLunnqCDX709X4GtbX7UgGsQoP1\noBfrASfbChqZ0PjtwztE/d8+2tfGPJD0uMYAsDfp4wyAkuwUmfTUaBC4jSFGKKvUhRFOo1bmaJEO\nUWBgRJmD7/T71qKtcXrYbMnn7Ed+R/9jKT3dhfK7hd8vijRed2rhewJ9zR2homeIdC1pLEjqtUQK\n3dckhfg1+ZlANCu0uwi/DguuvR7nkkt54c5bGNVcx2CHBZNOx6Jjkfc2f4D3dx/GfcSP/YifoZ52\naylH0jG4Ici6XIlpLb23BK9eJ1NtlJkUttRniybEboeEqdjEkDI750VIAfpDMh+3eCi77AdccubZ\nGc24ADoRZbxa+HBiDVc0y8Q9GN5unyVRgDRM7XsaJyyRKqK6LpcLWZax2WwdlopIV3/hU6lYVmh3\n+whHMBgkFApx6a8f45tPP+G1P/6G+QU2zMemxXaDnvMqy6ES6t0e3t9Vj7lNYKnzUebVUtEss7lY\nz/jD6ZfU6y6ajBLVVi2TGjW4CXGwnw5RoCe/0MIVg6IXDnzV5OTwoBFc/Niv0Ol0qk+zJ9FVLXyk\nOyBTojoKlLSuPos+WGvfa4m0u1P7UChES0sLRqMRm82W0I2VKpEqOpLptEIjoRC1ErQyGAxMP+u7\nTD1zPj//4bUUHK5miFHHWIcV3bH+iyxmLh3frgZV3eZiXY0TbXMIQ00bW/obGduLyLTZKLHDIsjX\n6dkx1oLVAYsH9ot6LWvdXvb4/HzpDDD/lju5/IzUhJcTQSrWY1dBrGCwXXnK7XandRmS8PWaLBZL\n1wf0VmSJNL1INbHe7XYjhIgrapIOCCEIBoMIIZKO/if7gCo6A5FErdFoWPrUs3y1/jO2vPC/fNjc\niMntJScoMyrHiuZYH+V2K+Uj29Nhdrc4+XBfEx9qggywdsw1dPv8mAx69biu4PT4sJlj67FGotXt\nxW4xdQgbuX1+9uNjzIBc5g8qQBuFPBt8PnZ7A7gNBoTVgm78DO67+c5e4YtMBOFBrFAohNfrxWg0\nZiSntS9rkQKgyRJpWpFssruSZmQ0GpFlOWkSTaa/YDCopjGZTKa44s6RfSQK5ZyUCi+LxRLz+HFT\nZzBm8jReevjnjA41UWAz8+4X2zD6/BQIwQj7t8cOy7ExbLyNgy4P1SGYmcZ175NFoz/AhlYPd/Tr\nXIXT6g+wze3FazBQXFLImRXlvL27jqHnX8PoydOittcXcj6VMcYSdI6X0xrv3MIt0j5NpD3jI10G\nLATqIekVyzuh1xJpZMAo3g2kBHiUkktJkvD5fCn12RWRhvtCrVYrgUAgIw+uorkK7VZKItauRqPh\nkjuXsubtN9n1/itcMGsCBp2WAw3NvPHlLsyyYBCCoceWfR5gNeNvc7PB6WVKBpaC7gqtgSCftbg5\np/DbyLsnGGJdiwu3Xk9x/zwWzZmERqNhe10Dq5o0fO/+x3vUCs0UMUe2mWhOazgBh7sDTpSF74Ce\nmtovBx6nXQGq2+i1RApdW2+xAjzJ5NElg2g5qMrUPhnEEzpR1oLyeDzqiqROpzOpPsZOm4Fxzlxe\neeQXTNa3UFGUz/fPmArAN7X1vL2zGrsQDBQyw+wWdrS62OzyMd6a+BS9u3AFQ3zU5GJRUQ7+kMzX\nHj8uoxFhNHLhgglojy385w+GeGvHQUrPuZwLZ3a9mueJhMicViWAGi2IFf5yaWtr67Pq+ACiZ6b2\na2ivsU8LejWRQmzSiZdYryBZayKWRRq5xEimdCvDlf+7K5yi0+m48D9+xqaPP2L12y/x3RFl6LQa\nRpUWMaq0fSmPjXtr+aDmCCadHn+bi60aidHmzGty+kIh3j7ayjCbmbUBGUwGFk4biylCgHfX4Ua+\nCJhZ+P9+jRBC9ROnq8LoeCFVKzfSHQB0IFaA3/72t7z22mvk5OTwyiuvMGvWLPr37x+zzTfffJPb\nbruNUCjE9ddfz1133ZX8CaUZQptNf0obYiWwy7KMx+MhEAjETaxPFZFE2hVhpyOJPzzXNVH5vkQx\nafZcWsZO4JUnH2W8zsMpYTmYk4aUMmlIe/7p2p0HWPvNHg56/eRbLchC4Pb5sZmiW6mBYIigLOP1\nBzAa9GglCb1OGzVIJRC4fQGsRgOyEGypO8rwgSVMnzAch6WzSyEQCvHWzlqKz76Yi2fNbW/jmDWm\nEEf4GvHh+ZrpRm/3uSo5qlqtllAoxI9+9CMMBgOffvopf/7zn/nnP//J8uXLox4bCoW4+eabeffd\ndykrK2Pq1KksXrz4uGqRAumptd/4NWs2JVunlzp6LZEqCCcdv9+Py+VSlxmJ9+CkohMa3ldPWaHh\nua6xRKS7k0+rTA8vvHMpa99cxcfv/IPJpXmMKynocG1mjxjI7BEDeXf7AU4pzmNAiqLR8SCE4O+b\nd3PX7PHooyj8NLg8rK85yg6Phh/98vcdrkW4Nab4EMOtMSU4o+wLpG0Z5XQjk8pPVqsVh8PBBRdc\nwHXXXRf3mHXr1lFRUcHgwYMBuPTSS1m5cuVxJ9J0TO3nTBnPnCnj1e8PLn+p223GQ58g0lAohMfj\nIRQKJZRYrxyXiqWoVKd05TaIPCZZyLJMMBhUhasTzXVNBLHambPgXAaOHM3avy1j175GHAQoNekY\nU/KtOPSZIwfyj81VWPQ6Cqzpjea/vfMg84aVdCDRNo+fdTVHcOsMuLR6zMMnc8sVP0ioPcUaCw/O\nuN1uAFWusDeWbmYabrdbVb2Ph5qaGgYM+HYRxPLycj7/PGVJzrRBzk7t04fwoFEqZJMKkQohCAQC\ncd0G6YLH4+lyKZNUoQSsgsFgh/QaSZIYNGQo9utu44MXnmT+nEnsrTnEc59tosSkZXiumUF5Ds4f\nX8GydTu4clIFhjRpQ35e20SZzUyh3YovEGRDzVEO+UKY8gtYuHghVdWH2BO0Mf/8i1LuQ7HA9Xq9\nKn+nWK3RSjcT8bP2RXX8RKP2vdFaB3oqj/QFYC5QABwEfkZ7JD8l9FoiVVTyZVlWcyhTaSNRhKeX\ndOU2CEeyhK1YSjqdDrvdnvaKK6XmOxQKodfrVWtZUTDSarU4cnNZcN1tvPDUoyyZNYGrL1oEwJfb\nd/Phlm30Nxs5+5Ryntu0mx9MGd7tB+7ruma8Xi/CaORvO+vQmM2cd9Z8DIZ2y+PLXftoyx3E/DO+\n261+ItFVrmY6lZx6ExJd076srIyDBw+q3w8ePEh5eXkmh5YQeihqf1k6G+u1RCpJ36rkpzIdS/Rh\nCA9eKZUmmVDID1ef0mq1UdXxu4PwtClJklThaEmSVAtbIZFAIEBIlll03a28tOwJFk8dicNqYcLI\nYZUUeQ4AACAASURBVEwY2b4W+sdfbkOYm/jfdTupLIsd9fV6PZhMsV0APr+fj6sOMHb0SBbMmcpM\nS8d9P92yE/2wSZw649Q0XIX4iJar2ZWSUybS6DJtkSZa2TRlyhR27drFvn37KC0t5a9//SsvvPBC\nWseVCmQpW9mUVhgMBtVqSBaJEJwSKdfr9eTk5BAIBNQ66HQisp+2tra0th8esHI4HDidTjQaTQff\nrUIg4daZLMtceNPt/GP5HzlzZBmFed8mxs+aUMmsCZV8smUnZUX9GNQ/8fXmw/Hy2k38/PboIsHv\nfvE1eePmMG7i5JTajoZkSSqWklO4OwBQX+jpyg7oDUSq0+l44okn+O53v0soFOK666477oEmyPpI\nM4JUb7h4RBpuHSpLPKfaV7x+FP9uIBDo1E8yL4d4+yuZDOE+5ETaD5/2XvzD23jtuaeZ7PMzsLij\nytKpY0fwt4++SIlIv9l/iJFlnVWbhBC8/MHnTLvgWnLzC5JuN5OITIJXrFRFnCa8Jj6aRF5vgNPp\nTHjhuwULFrBgwYIMjyg59NDUPq3o1SHM7ihAxTrO7/erK3jm5OR0yADojtpUJAKBAC0tLWpyfSKZ\nBslACIHT6cTtdmOz2eLW4SdyXouvuo5VXx3g6z0HO22bPKyML3d3/ntX49u8+yCjh3T0uYVCIZ58\n7X1acgZSNmBgUm0eDyiWvMFgwGw2Y7FYMJvNat6m1+vF5XLh8Xjw+/2EQqGEyowzbZH25comWdKm\n/RMDZwPbgV1AtyoR+oRFmo6lEGJZod1FtOT6rvJPu0vYSnqW4ipI10M5eMxEVm3awI4GDyVWHdNG\nDEKn0zKsrJgX/7WOcUPKEp7Wrt26m7OnjlK/HzzSyNbqBr7cXc3lN97CJ59+CvT+hPfI8cXysyq+\n1mh+1p7OZ/X5fAmL6PRGyJoeoSUt8ARwJlADrAde40Ra1z4c6bBIwxP54xFPdwlOUYRKJP80GYSn\ngoULpqQ7PUsIQcmAwcw66yycTicr3lpNvk5mcL6Vc2eM5V+bd3LGxJFdtuP1+alraKJyQH/e2rST\n6hYvAyvHMWHB6fjWrWsfd4aEjTMpmBwLyvQ+vCY+XDHf6/V2qEDKxBpJQny78F34//sieijYNA2o\nAvYd+/4icB4nIpF2d2ovyzJOp5NgMJhRhXzF2s0UwUG71dPa2pqQeHQ6SmRtNhuLLrwEgCNHjvDM\nO29yYPcugkKHNmz55IDXiz58aWkBX+2owpJbwPuHgnxnwcWM79iBslvGcLwtXMXPqiBSbESRR9Tp\ndN3WHo3E8XiRpBtyz/hIy2jPH1VQDUxPtbFeTaSQupWo5AkajcaMrtOkPBihUChhKzSZc1LEo5WA\nVaLi0el8oAoLC7ng8qv47PN1DDplBLm5uXH3r9V9zFmnx1dqEsemw70d6XA9ROazOp1OTCZTh3S0\n8HzWcMX8VMbZV8VcFPSQRZrWN84JR6SKdRgIBNDpdFit1oz0FS4kDaS1xFOBogYlyzIGg6FH/F5y\nF8tFd5egw3ViPR4PAF6vt1cnxKd7PIqPNZb2aLTy1kRFnZX/92WEpO7T0meff85nn6+Lt0sNMCDs\n+wDardKU0KuJNNmpfXgqkNlsTjkntCsrJBQK4XQ6kSQJu91OW1tbyuIosfoPV4MCesR6c3s8eP2x\nr5lGk+g5xj63oHwssux2Y7FYVGk8xZ94IlYaRSLabx+ZdhVZ3hpP1Dkc4WXBfRXpsEinzTiVaWFF\nHr9//InIXTYAw2nXJK0FLqEb1U69mkgVdEWkSkJ6KBRSa9dTSeTv6oENt0IV0eVExpcMFIs6/FyS\nXRkz2nl0NcbHnvo7VqOMLMfeTyNpun2ukkZLU1Mz2w+62Pz1diqGDECv16tjjhYBD5/uxrPMMlWF\nlAl0da9FK2+NFHUGOgWwEi0P7c2QeyYrMwjcDLxFewT/aVIMNEEvzyOF+DecUhbZ0tKiLgynvNHT\nnX8aCoVoa2sjEAjgcDg6aYamI8He7/fT0tKi1vt351zC9493DWVZ5pH/+SujZpxHfVMAvSH2kiNK\n5kBX8HpcMbfpDUY+2/AV5115B1/s8rBh05YO25Xot6KvEJ6qpsw4lMBerNUJMjEVTxdSJWaFWA0G\nAyaTSc1n1el0Kom+++67XHbZZRw9epR3331XXVOsK9x5551UVlYyfvx4LrjgAlpaWlIaY7oQQpf2\nTwy8AZwCVAAPdWfMvZpIw6f2kTegEpH3er3Y7fZOCenpIlLFCm1tbcVgMGC32ztMndIVaVUIwmaz\nYbVae2Q6GwwGefhPLzHhOxdhttiYdsalVFXtjLm/JsEpo6SLXZ7o93o41NDuGx05fib7mmx8tDa2\nL0uZ8oYTq6JToOTTut1uvF5vRsp7M4V0BLAUH6vi/pkxYwZXXHEFwWCQ+++/n1mzElua5ayzzmLr\n1q1s3ryZESNG8NBD3eKUbkNGk/ZPptGriRQ633CRVmgml1xWrFCfzxfVCg0fY6oWYzAYzGgFVCz4\nfH4eefJVpp1+GcZjoiMms4VWj4ZAIPZ69wmdZZydmlpcjJq+SP0+fPQUDjpzeev9tQmNO9wyM5vN\nKrEq62dBe2WP1+slEAggy3KfD750BeX8HA4HlZWVzJ49mzVr1rBp06aEjp8/f76abTJ9+nSqq1OO\nuaQFstCk/ZNp9AkfabhV2pWafOQxqfQVLrqc7qU/wsfm8Xjwer1YLJa4EflUavMV1XhFwSj8eJfL\nzR+efYMZZ17Wwbr2e72UDJvOcyvX47BIDC3NZeL4kWFpNSSWSB8RlDpytJEvvtrN4SYfJsdQtm3Z\nxKzTvq3vHjJiHPurtrLqrQ9Y9N15CZ+ncq7hSk0ulwuTydRpSZJU14tPd+VVJiu5JKnjUsypJOUv\nW7aMyy5Lq8Jc0giJvhcs69VEGn7D+Xw+vF5vwsTWnSolRWU9UdHlVFK0FGspnRVQ8G3eqSzL6PV6\nlUSVFKOWljZWvLKW2Wdd1ukavv/Wq5x17iXqeJob61n29/cocOgZNaw/kpTYOOWgH7fbw6cbtnK4\nyY/O2o8J0y9g6LHtWzdv4OC+XQwYPFw9ZlDFaA7s0fDyP9/jwnPPSPncw4k1/PzDFZ1O5MyAWKLO\n8+fPp66urtPfH3zwQc4991z4/+29d3xUVf7//5yemUmlhBZC752AVCWISBEEUVl1V6St6/pZ29rX\n8l13F+y66H50d92fIvCxozQBQaQpIiAlwqIEA5pQQySNZOqd3x/hDDeTKXdm7iQTmOc+8lgT7pxz\nJrnzvue8y+sNzJs3D6PRyC233BLzdQbDHf8H5TrEtSGFCwnvdrs9LDX5SAyp3W7H7XZjNBpj4qcU\n70MYNaXCzkoRaVkejweTyeQ1LCKAc+pUMW8t/ZIrJ91aZ94dX65n0NBRtYx6epNMLh9fszv5qeC/\nbFr1KZ06diPJcuGDKrkq0fr4RAt+/InicyZGXn0Dbf08JHr1G8SG1Utpk92p1nzZHXtQeETLkg8+\n5TfTr1Hld6K0Nl5pZkC0NJRgyfr164OOsXDhQlavXs2GDRtUXVsk1MdRPAQ3An8GugODgd2hXhDX\nhlReFmmxWCLyhSq5cX1Fl5VWDwmUGG25ZqjZbPa2vVBjfGGgq6urMZvN3nYpIi1GkiQKjvzEOyt3\nMO66uv2QTp8oRKfT0axF64BztOvYk8z2OYycHLoViEP/BcNHXRn0mpFXTmTtJ4uYeP3MWj9v26Eb\nx3V6/vb8P3n8wTtCzhUJgWrj/SXDN7bqq4qKCjIyMsJ6/dq1a3n++efZvHmzN3DVkMSBIf0OuA74\nl9IXNPiKgyFSmiJJMFZqpETKkahhj4UquphDBMfUnENkL8h37EajEb1e7xWq/nzDZpas8G9EAXZ+\n/RU5w4IbPgCDQVkzvHYdO1BwaH/Qa0xJZnr2H8G+Xdvq/Fvr7E70HDaNuf/zJ0XzRUuwzACoqcAS\nKVfCJRMpsQ58icyPcLjrrruorKxk7NixDBgwgDvvvDNGq1OGS9Kq/hUm3wOB01f8ENc7UrjQUjea\nVCZ/RlW+C1XamTTUPL6I4Icac/hDrmplNpu9axCVUQaDgcf+8r9U6NozaKB/FfrPln9I7jhlx2ir\nVVnfrDZtO7Bm2ft07No76HXtO3Vh8+eHOVdZjjW5thBxi1ZtMWV058bfzufvf55FmzatFM2tBnI/\nq9Pp9O7SRADPbrcrqjIKNr6ayO/xcESdBfn5+aquJ1riYEcaNnFvSKMhkIELpucZrZSekjkgugR+\noXkqhEzkR1CHw3H+y8mtdz7LsGv+SNdmWRzZ+zE9etfSYeLgvm/p2K0XVmvoSpjvv9tF+44dQ14n\nkFyBU6jkXDFmPCs/eodrb/x1rZ8fL/qJJm0vo9/o3/OXfy6hbcppHn/od0HHipX/UQSjfKuM1MoM\nUBOlHUTjGbcn+t/bnh1b2Ltza7BL1gP+elb/CVgZ7nyNwpBGY9yCGSB/O8RIpfTku8FQmqHRfMBc\nLhfnzp1Dq9WSkpLi/VCLeTUaDf968yP2HnEz7tYXvMGcymoPtuoqksw1u0qHzcaxoqNcdc31iubN\n//4Qk28cpHid1pRmiq7TaDSMyB3DpnUryb16svfnB777L9k9rwVg0OhbOXYkjym3PMCHC+fHtE22\nEqLJDKiPYFOjN6ThH8Xr0HdQLn0H5Xq/X/h6nSKDsVFPIiPu99DhCpf4vlYQy9YfYn0ul4vy8nKv\npF6wD3wkCfw2m42KigqvKIswoMK46nQ6fjXzTxRrBnD5pLtrRcR7DrmOXV9v8n6/4sOFjB4/VfH8\nOl14ylPtO3WgsECZm6lp85YkJ6fy848/ADVulzPFJbWuadOhL2N/8yI3/e5F3vtgdVhriTW+VUZW\nqxWLxeI1sna73duORKSmxcpXejHU2rs9WtW/okDRUy/uDSlEn1xfVVVFZWUlFouF5OTkkKLIkRg5\np9NJRUUFSUlJiuYId3zRLlgElMQabTYbdrud95auYfKvH2fUr+bRsWfd1sZarZaiwnIAtq5fw8gr\nJ4UVxLOGuctp16kr+74NKmNWi0HDR7Fn5y4kSWLPjq/pNrjuTtmUZGXCrfPY+j2MnTzX2+EzVojf\ncSQ7yECaAfLCklCaAeGsM1T6U2NC8mhU/wqT66gRfR4KfEpNTX5QGs3RPpJIqbhhhZ9SqehyOHOJ\nAIQQGlFbwkwElACsVqv3A+d2u6murkan0zFl+t206T6a6+/436Af+ow2Pdi740v0RjMt22QFvM6X\no/n76dazc1jr1mg0NMkIbxc7fso0Vry/BDcWegwPHDDpP3I6rToMJHfSHdz/++lMvVbVU1pMEJkB\nYjdqNBr9tiPx9bMq4WIzpG6pwYsjPjn/pZi435FGcrQXvlCRXB9qhxgJ4sgm8lxNJpNiI6rk/ch3\nLWazGY1G4925OBwOqqurWfvZNkZNmMvQSQ8xYuLvQu6c2nQayMbP1tC6bRvF7xPg5M8HadFGeaBJ\n0CTMVstOp50zJSUUF/8S8toWbTpzy71vs2j5PsZf+1uvgYr3CiWxRmFYfTUDxN+5qqoqIs0Ap9NZ\nb3oNscIlaVT/ijWNZkeq1JDKgzEGgyHsJH6lyfVyzVARtVULuc8zJSUFSZK8uqQiUnzDzQ+gS2nB\nr/+4CLNVWbrLt5+/wZib/0bBsYMU/PARmc0zyO7Sn5S04AbPYg3c6jkYyU1acfrEz2S2Ctx22eVy\nsWPzpzjcBiR9c4Ze8wCF32/hxNE8WrXvG3R8vcHIhF//mQM71jJw2PX85fG7GXvV0LDXGYj6NMyB\n9EeVZAaIzAL5WI2ZONiRhs1FY0hFMEaIgBiNRqqqqqKKwPtDrsIvykjDNaTB8k7lwtHiKCh2Ly6X\ni7WffcPfXlhI5z7DGHfTQ4rnPLLnI/qOmI7eYKRFdj8435Ju29cbSDWWktEknY49h2A01j2OG03K\n8kd9adOuO9u/+MivIc3btYVfzvyCpG9K0+xrSDddSPZv1zOXYwdXU1naguT0FiHn6XXZeFp36M3/\ne/Zu3ly8ho/emR8zRbD6IpzMAGHw5W1cGjMR+DQbnEZxt4UybvLWH3I/pVo5oVA7dco3uV6NeUSF\nEuD1cYkxRTrVLTOfpLjcw6Bxj0P1dwHH8uWnA2tp3v4yTNa6pYNte9QIhDhcLtavWUbzdC3NW7Sm\nfbeBaDQaThQeJq1peK4AgUajwWq+UHL4c8FBCg4dxKNLI6XlADJ7BDaSbXpM5PDO/6N9vxvRK0h3\nslWeJmfME5z6aRs5I37DvCfvZNI1V0S07ljiu3tUSjDNALvdTlFRESNHjqR58+Y89dRTXH755Ywa\nNUrxA+XFF1/kwQcf5MyZMzRp0iTs9amJK7YxxJgQ94Y02DHFt8ZcXtYnXqvGjlTerz41NVUVf6t8\nDvku12g01gkoFR0r5r6HXyat9WV0HDkVrVZHWdVRbJVnSUoOXld97PA20ppmkZwR+HgNoNfr6dD/\nBgCKy4s5tGopLZql8NOP+8kZOZljP0VW/VJeUcamNR+iNaajT+1MZo9fKX5tx4E38cM3i+gxfFbI\na22lP5OcMZLkjF+R1WkwL/3zPxw6fJz77v5VxEfdePe5Cs0Ap9NJu3btOHDgANOmTcNms/HXv/6V\nkSNHKjKkhYWFrF+/nnbt2tXDqkMTB0f754FJgAP4EZgFBG0bEPeGFPwbN9FhEwgaLY9kpyhPrpe7\nCwJphoYb6RcfTt9drlarrVOh9P7STbyzdCNdcn6LKfVC5Dyt9SjOFO4kq8fVAec5c+J7DDqJ9JbB\nSzV9SU5tTnLf85qURWf56bSyGnt/lLvbkdI0m6Ytw4v6Q40if8cBN/DD9sV0G3prwOvcbhcnT5aS\nen7jbErpSK9Rf2bbd+/z5c0PsuCFP9KqZWZMVZ2UEsuEfKvVSmpqKs8880xYr//jH//Ic889x5Qp\nU1RdV6S4G14nZh3wMCABzwCPAo8Ee0GjM6TyXWgobdJIbljxGrm7QG3NUEFZWZl3lyuOaaJCqbyi\nkvsfWYBN25Yelz+BTl/XiJeVFBMoiamqooTqknza9p4c4IrQSJJESkYWGS3Cj9gL0jM7kL/zvYgM\nKYDJnELbnmMp2PsJHftf5/ea4qPbsTSvLbqi0xvJ6n0rVb98x6w7nuWe39/A6FEDwmpx3FgQn42K\nioqwU5+WL19OVlYWffsGD+zVJy53g/9N5JqD3wAhy//i3pDK05/ELlRUJ4VKN4rUdynk+/y5C6Kd\nR+xyAZKSkjAYDF5JPZfLhc1mY8++H/nLs2/Rvu9NNGvaL+BY5fbWlJ85Smqz9rV+7nK5OPb9GjoP\n+rX/Fyrkp4ObzgemIkfslKLBktqSZm16UfTDF2R1q6tSVVFyAn1Sd/+vbdKH7lc8wX/eX8Sa9V/x\n4tP3ACjqHR/rck410Wg0YYs6z5s3j6effpp169bVWl9DE2fKhbOBd0NdFPeGVE55eXlYrT/CNaQi\nrcnj8YQl36d0HnlACaglNlJdXY3D4WDecws5eNRJl+GPYjAFT2tKbd6HspPf1DGkP+5aQufBv4n6\nA+uxn8GSEl4uqD90pnRcLldUkfTU5l1x2so4/fNeMrP7e39ury7n1BkXGUHqC/TGZDoMvJPyk9uY\ndvOjPDfvD/Ts3gG4oEXqmxQfCznFWCGMc6A6+0Cizvv37+fIkSP061fzsCwqKiInJ4cdO3aQmZkZ\n0zUHQ42j/Q/7NvHDvk3BLlEiWvIYNX7Sd0LNF/eGVG58AomABEPph0EuSScEntXEN6BUUVHhzXd1\nu90UHSvmocf+l6Ydx9EhZ6TicU+fLCGr14VdTv7Od2jfbxo6XfR/Wos1LeoxAJq0HURB3mq6Drw2\nqnGath3MiUPrKS8pJLVpWwCKj2wnrbWy1iSpLYdjTu/GI395kzHDO/OH31/vPfHI7ythWEUJqt1u\nV80VEMsAVkVFRViCJb179+bUqVPe7zt06MC3337b4FF7NSp/O/fOpXPvXO/3qxY/5XtJqHK4mcBE\nQNHNFfeVTVATUZbLmClFyQ0rDHVVVZW3rXO4BNuRejwe7/jJycneFiBC/s7lcvHuhxu497G3aDPw\nLlJbKTeiAJJ5ICVFeQAczVtJm665mMzh6VH6o/zsCfQWdTRAjSYLSXp1WiW36jqWMz9vx2Gr6atV\ncbYkLP+1IakpnYc+wJ4jFm657QlKSkq9QT7xBWA0GjEYDF7j6dv6OVqBZ7WQ33fRKj/Fi7/Y5fao\n/hUm44EHgSmATckL4t6Q6nQ6zGYzWq1W9eR6p9NJeXm5N6AkP3qqcawTrZahJrNARPe9AaXycu59\n4FWWrTlNVpcrMJrDP05ZUlpSWXKUoh+2kNGyC5a0wO1CwuFk/maaZvVRZSwAo0k9abf2/a6nYPf7\nlJcUUlqtTK5PjkajoUm7q6lyN2fWHa+yeu1XtQyjOCWIfmGAt5RT3vrZXxlnQyGO9tHU2RcUFDT4\nbhRqdqRqf4XJq0AyNcf/PcBroV4Q90d7gVo5oRBcMzTSSL+v7qk8bUqv13sDSiI3dOeug7zwyiok\nwwg8uqY4Kg9hjdAt9ePhApo0sZDVTb0EdLWb/5nSO1B87CDN2/SIeiytVkubnhPZ/PE8Ogx6MqIx\nbKUHsbv6YDA35d+LdrNh406enfcHvwZU/H3lf2NfV4BS5Xy1j/by8cI92scrcZD+1CX0JbWJe0Pq\nexOG+1p/yfXCNxkorSkaAV7f/FZRMw01ASWn08lf5v2H//5oxmWchGhxfKKokuSsCgzG8HYUVWVF\npGV0AEsX9m36GK3mHFk9riAjM/LkakmS0BrU/UBmtOhC/o73ojKkkiRx6NuVuGw27O4mZPW6k9LC\nlaS3DT/FS6oqxJhU42d16weRf/w003/zN+Y/NZMO7Vuh1+u9ZbnCVyoXaRZ/U3GfyA2rv/r4cNSc\nIuXcuXO0aBG6pDbecbkaR5BPTtwbUqDOUz0cAiXXh+oUGo7RFobXbrdTVVXlTWsSHzZJkqiuruan\nn47z6JMLcehH4tFn1lKM1Rj74yzdiyHzcsXzOqpLcVd+R0qbCTU/sLTA4/Hw4/cHMR7cjk7vodvg\naYpKLOUc/W4drTurJ/4hSI7w2Hns8C7OFH2P25OMNqUfhrQUROFpcrNBlB3bQFobZQEnqPnbFp84\nAbS98DNNJg7DFB56cg0jcow8+URNAzjh05YkyWtUXa4af6981+l7rDcYDBgMBu8pRG5YfYNX0exQ\nLzZ1fAB3+D7NBqdRGFKI/GgPeP1ZELwKyvd1ShEftOrq6joVSk6nE7vdzpsLP2HdljKc+iloNHXn\n12q12MqLsSg83rtcDqpOf0Fadu0kdY1Ggzm9J9ATt8vB3i/XkWSowJyeSac+yoyNjnMkWdOVLSQM\nNMZ0XA6HIsNeUXaagj1r8XjMSKbOmJqM93uz6s2tsKRVU35iG6mt6gpa+6P67HdUVnfF4FPjoNHo\n8JhG8FXeCX716yd57ZX7aNo0I6AykzCqSgyr2OHabDZ0Ol0twypPuQq315PckF4M6vgQd3mkirio\nDalAKNfHIv9URHMBvxVKlZWVPPrEm5wo642k6xm0b8HxYzaSs85iTApePy9JEuWFy0hvd33Q96PT\nGzE3q9lZlp87w+6NS9Frq2nd+TKateka8HVJ5th8GJu2zaHgu1V0zZnm999dLhf5u5bhcrixSc0w\nZ0xQ9PcyJHcEyUbF6T2kZA4Ieb107hgGU2DXh0fbihLHBGb9fhG/vrELv7pxYq1/lxtWoY0QyrCK\nfFWB0CIFFPV6UkJiR6oafwWuBTxACTWpUIXBXtAoDGkk4s6SJHkNXCStkMOR7TObzd6aeRHxra6u\nZuPmHSx89yAVztFotaF/1TpTX5xleRiTRgW9ruznT0jLuhatVnk6mNHSDCw14x4tyOdY/vtotE66\nXzYNY9KFlK/S4p/RWyNTewqFwZiE2VjXT/jzD19RXvwzDqcVXeoQ9BYz4SahGVJ74nHv5FzJIaxN\nAz8kJMnNqeOnQBPch6zV6rExnLc/KuLrHQt44en/CVhQ4GtYa+aRvEZV3kpEHPflhtXj8URsWC82\ndXwAl6vBt6TPAU+c/++7gP8HzA32gkZhSCG8XaI8+V0Yt3DnCoZvQEmSJAwGg7cqSpIknn3xXfLy\nW+NiKEqn12q1VJefwRokXlD28wpSWo1BZ0gKfFEIzGldgC5Ibhd52zZj1J0lKTmVzgMmcqrgS7pe\ndnPEY4fCcD4NqrT4Zwr/uxkJK5KxK8bUsYTXmKQuxozBuE9toroyFXOyv6IVsJ3Nw+bsiV6h29hF\nFvuPZPKbuf/mj/8zjMsGh97xQs3fUuSiiqZ3JpPJe6QXBlIoOAG1sgWEYZXrkNrtdiRJqmVY5Z+J\nSGrt45E42JFWyP47GTgT6gWNypCGytPzpxkaiXp9MKMdKKAkKqL0ej1r121l58Fe6PThJ/efOu4m\nNesMRnPd/Miyos+wNh+C3qSO/1Kr02NuNhiAKnsZezcvp6LkCC7nB0BN+0SP91p1Is4VZb9w6EAe\n1qaDMaWPR69yEri5RS5lhavQGXL95q66q46jN3YIa0ytzsgv1YNZ+M4BxYYULpQcazQaUlJSaj2g\n5cErUffvWz0ldwX4E3gWhlWj0fDGG2/gdDpVr8hrCOLAkALMA24FqqhpgheURmFIlRztA2mGqiXu\nLD4ULpcrYEApKSkJo9HItZPG8M4ny6iwtw97Hr25N+7yA2CufbwvO74FS3o39ObYpLcYTGlIumFY\nJSOkDgEuGFGo0RNTA6sVXD+vJCk9+nzSQKRmXUPp0aXo205FKzuOS24XJwpPgz48QyoYPFC5y0Oc\nWoxGo1/hG7Fj9a5NZlhFcr8SwyqMcGFhIXv37qVLly4MHDiQN954g+7d/Qu5yHn11Vd57bXX0Ol0\nXHPNNTz77LOK32OsUONoX3hoC4WHtga7JFSt/WPnvx4BXqZGkzQgjcKQgrL2HP5q8dVI5BcB6Wn/\nDgAAIABJREFUJYPBUCegZLPZ8Hg8tRrsGQwG+vSwsm1vBG8UqDx7Grm9LD+1C0tycwzJ7SMbUCEl\nhRvIaKM8/SpSzJbYHj81Gg1p2VMp++kTMjre6P15VclunPSL7KZ3FzNmVP/Q11FzvwixcaW+eX+G\nVQSv/BlWj8eDy+Xy7kiffPJJtm/fzv79+9m+fTutW4eucNu4cSMrVqwgLy8Pg8FAcXGxorXGGrcK\nGfmtO42kdacL5dZfr57ve4nS1rPvAKtDXdRoDCnUDQAJzVAlyfXhIK9kERVQgSqUAu04BvRO46s9\nbr+pTqE4cUJLattTmKwtqDjzX0xGDYbU2O3gBFazB70xsv5M4eDSZuCpLsVkVj/FSqDV6UlpO4HS\nox+T3r4mS8BddQq9vlNE43XOdpCdHdw4iVxih8Ph1VKIFOE7lbcV8TWsGo2GM2fOcOTIEc6dO8ex\nY8ewWCxcfXVgsW85r7/+Oo8++qh3jubNm0e8XjWRGv5o3wUQLSGmUFMmGpS4r7WHugn5YidYXl6O\nyWSKSbtloUnqdru9uafiKG+z2aiursZisQRMqRo3Ngez/lhEc5usPXCWHaC6vAituxhTRk5U70Up\nGl3sjShAUnpvyk5sjvk8ekMy1pajOPvTStwuByePlUQ8Vr/ewYVghH9euH7U9lUKoypaN4tMgePH\nj/OnP/2JGTNmkJ2dzd///nfFY+bn57NlyxaGDh1Kbm4uu3btUnXNkeJyulX/CpOnge+AvUAucH+o\nFzSaHanYJYq0JkmSYiLuLBz5LpfLezTzrVASbZKDRfeTkpLo093EzgOKp67F2VM/kSbZSM2aGPpi\nFSg9sQdzSmQq9uGi1epITY68fUk4GJKakpyZQ+G+fyNpR0a0c/C4zjJiSHvcbrffvE5xT+p0OiyW\nyFpXK0UUlwjxlBUrVjB8+HA2bdrEjh076gg4BxN1drlcnD17lu3bt7Nz506mT59OQUFBzNaulDgI\nNt0Q7gsalSGVJImysjLvLlTt5Hp5v3qj0YjRaPQbUBK5gKHo1yuFHfvDr9mXJAeVZRV4PMlUlb+H\nteVgUppEdiRVitZ1DFOy8oh0tLixehXqY4UkSZzKX4nWZcdenY7G8z3owm+pkd26go4dsrwpb6JK\nSZxSqqurvTqzsTSict+rzWZj7ty55Obmct9996HVapkwYUKd1wQSdYaao/20aTVuj8GDB6PVaikp\nKaFp0+jFvKNBDR9pfdMoDKk4NokWI+EorSs1pPKAksg/dTqdaDQ1/cLlGqJKGT92AG9/uAGnJ4h8\nuw+SJKFzfIlkHk21S0d1JZT98COpyd/i0WvJ7HIteqVJkGEQq2qmQBjT+nCmcBOZ7eq2DomWX47v\nwXH2e2zVBqpdndBqTWAEo+ZnbNXfowvQliQQ/XulYrFYvH5zkWQvAo3ystBwSzyV4Ot7PXHiBLNm\nzeL+++/nuuuui3i+qVOn8sUXXzBq1CgOHTqEw+FocCMKICUMaWxwuVzemyWSdhXBDKmvpJ4QWxbB\nJNGHXERUw1GFSk1NpWcXHfsOKV+rzrkFyTiydpBKl0V5dRaS5MS+exVWqxNtShbNskcoHzgItnMl\nSNqmqG+eA2MwpWI1hp/jGwhb1VlKCtbicWqprG6JRl/TPkO+4XV6srGYD1NpO4rB1F7RuG5XBSOH\n1oibCF+96LMFeA2sMKxQe8carWEV96fb7SY5OZm9e/dy33338c9//pOcnOh857Nnz2b27Nn06dMH\no9HIokWLohpPLSLwaTY4jcKQCiMmKkLCuTGD7UjlUX+55J385jeba3x5Qm8SLnxQ9Hp9yKNpv56p\nig2p1r4Vt+EyNFr/Jk2rNeCgO45zIJX9gq3kQ3RGF6ltc7GmRq5mX3n6K5q2mxTx6yNFb4yuKZ4k\nSZwpWIfHXkZFeRIubR80Gi2aIHe13dOZZNMBztlPojf5r36S0ybzLP37jfZ+L05HQC0/ub+a+2gN\nqzyh32q1smrVKv7xj3/wySefkJWl/JQTCIPBwOLFi6MeR20SR/sYIXYCkeiE+quIkrd0NpvN6PX6\nkAEl+QdFpKBUV1ej1WprGVbftY27qg9LPvkSSRM8dUbr2I5k6ItGqyxyrtU34ZyzCR6Hh8r/7iU1\neSuSwUSLzpPQhhkxTrFa0MRYK9MfHmNbyou/J7V5eEft8tP/5VzxPuzVeqoc7dHps0FHUEEYOXZ6\nYTF8S5UjCb0xeArWgF4X7gG3201VVRV6vd5vtkYoMRNfwyruF3/3s3wuo9HIK6+8wo4dO1izZs1F\nUQYajDg62t8PPA80A34JdmGjMKQCNZLr5VF/YSiVBpTkHxShUylXR6+qqkKn09XagTRv3pTuHTX8\n90iQNTp2g6ELaMJvNqfRaJA07SitArfbjn33J5gtLowZXcloPTDk6yVJwoUl6jr3SEhKaY/t7Aog\ntCF1Oao4fXgVGpeG8nNNQFdzdI+0x59dMxCz7muqXQPR6/3rFkjuKobk1FRGiAenqF5TQqSGVRjR\npKSadd17772kpaWxdOnSi6IENBQupzr9vaKkLTVJ+z8pufiSMqROp5PKykpMJhNWq9VvhVI4ASWN\nRuP9AEDt1CmbzYbb7Uav19O7uzmgIfXY89CbWuNChbbHOhN2T0/s58BTVkx18Yd4dC6adhxPksW/\nNF/Jz1+Q0Up9EWelWCzBZd+Kj2zCXXWSc5UmnJ7uaLR6UMGWaDQaHNqhmFxbcUoj/KpzNU8/zdAh\nl2O322sVZUQzpxLD6vF42LZtG61bt+bPf/4zU6ZM4fe//31MMwLiCanh1Z8AXgIeApYrubhRGdJI\nEX4teUBJaYVSOPgzrC6Xi1EjOvHBqu9BV7tyxG37niRzOk5PaF9d2GvRN6fC3hyPR6I6byspKdV4\njKlkdhpXy69rNTnRq9iYLlxcmgywV9YSGKk4e5TK41/jsuuptLVBq+8LGlDbjmg0Wpy6EeidW3AZ\ncuv4u/v1TPE+EGNR9CE3rL4qUUuXLmX16tWYTCZatWrF6NGj6dEj/Oq20tJS5s6dy4EDB9BoNLz5\n5psMHdpwD04lyDUFGogpQBGQp/QFjcKQCuMWyY5U+DQ1Gk2dHkqi+2O0O41g6zYYDHTu3IGObfdS\ncPzCvzltBViStDg92arPW3sNWtyazpSeA3fZORzlSzEmuUhq3pf0zF7oVO7NFC5J6X345afVpGeP\np/jwSjROF+WVaXjOH90VyLhGhVarx60fht61Fcl4QShGcjvo0yPZq6MQy92gPL0vOTmZb775hvz8\nfLZu3YrRaGTjxo3eoGe43HPPPUycOJGPPvrI268s3lHDR3rm2DecOb4j2CWBREseAx4F5HW2If/4\nQS/wqCGbpBIOh8NbEqrERyUPKEFNhFW8HRFQ0mq13lbPsULM9ebiLazcWCON57KfxGoqwU6vmM0b\nEvcJPO59JCWlkmwNrshfFw/SeW0oj3T+FtHIHnjn/6eUsyVH0Bk7Ynd3RKurzySsC3jcFWjdeXiM\nNSllKaYjLHr9mphXKsmropKSkvjwww95++23ef/996NuZFdWVsaAAQPqrVpJo84vyjNxzncqDFOb\n1f9fH1AWj+wNbKBGPg8gCzgGXAacDvSiRrEjFSjdkcoDShaLxVsDLfqRh1uhFCminM9oNHL1ld1Y\n8Xk+brcGi+EYduqnfj4gulbopaPYpWHYK0JfHksMBgm71FU1zdNI0OhS8Gi6g+0bSBpCr25JXj9m\nrO4RudSewWDg2WefJT8/nzVr1kS8A5Vz5MgRmjdvzqxZs9i3bx85OTksWLAAi6V+NBUipYF9pPsB\n+RPsCJBDiKh9oxAtESgxpA6Hg7KyMm/6kkhPstlsVFZWYrPZMBqNflOV1EIEr6qqqjCbzSQlJdGt\na0fatijBrDuIXRM6ml4fJJmjy+NUC7uUjf1cSIGd2KNtitbUHo9tNwP7ZuBwOKioqKCiosLbSlut\nQ5qopBMG83e/+x0ej4d33nlHFSMKNQ/y3bt3c+edd7J7926sVivPPPOMKmPHEtFqRc2vKFD0B280\nO9JQ4s5ydXzfgJLBYMDlcmEwGLw/r6ysBGqSkuXJ0tEiT6L2DVDk9NHztbMVJ35xoNM1RMLRBRyO\nUjSu5Li4A7S6FNKTXdgbeiGAViPRob2bieOGeHekIqrucDioqqoKmTscDI/Hg8Ph8GYBnD17llmz\nZnHbbbcxY8YMVR/uWVlZZGVlMXhwTReEG264oXEYUqezoZcgp6OSi+LgY6ScQIZUONG1Wq3XFxoq\noCRPrnc4HLhcrjo5oOHe1CLXMJCAxf/cMZ07PR42bPqWLdtO8e1+F04ptABvLNC59iOZh4fhyYwt\nGm2Swme/+kiuc2RlFjNiSBOmTBxGZuaF7IpgKW6+ucPi/wPdN+KkIqT2Dh06xB133MFzzz1Hbm6u\n6u+rZcuWtG3blkOHDtG1a1c+//xzevVqQL+8QtyuBo/ah02jCTY5nU6vMpPVWnMk9VehFGlASf4B\nEbX2vqWgoT4g4WYAlPxyluWf7mH7rlIKjmWg1dVfBN2q38M5V/2pPYVCcp7A6bRjsrSvl/k8Hg8W\nfRH9euoYMyqLy0cMiOhE4u++8fdA9ng8nDt3Do1Gg8ViYcuWLTz11FMsWrSIrl0Ddz2Nln379jF3\n7lwcDgedOnXirbfeIi0t/MIPJagVbLp8atAWIRGxddnloLz4LWwajSEVgRvR2E4eUBJCt74VStFI\nm8lVfkQ7XX819qIKRavVRhXh3bHrAJ9v/pmde6uotLeNcaTYhYF83NrYq+6Hg8b+JR7TyNAXRoFH\nKqVru0oG909h3JheNGvWLOxW3UHHP3/fCOMqDKskSRQXF9O6dWs++OADPv74Y9577724UFtSC7UM\nqQpj+OMs0CRGYzeuo71A3m7ZX4WSMK7RlNMJ36q81YNcPk34bN1uNyaTKepk/ssG9eKyQb2orq5m\n2aodfL3rLN8XmEGr/t/eUbkLj7W/GgVCqpJkTqY6BgFbj+Qi3VLEkIGpXD2mI106ZeFyubBYLKqX\nXPreN+IkpdPp+Pvf/857771HWload955J8XFxREbUrfbzaBBg8jKymLlypVqvoWGJl68TWHR6Ayp\nMGa+ASUR5DEYDDHJ/RNSekLsWUib6XQ67Ha7txVzpP5Vgdls5uYbR3HzjfD9DwWsXp/P9m/L+KWy\nrd8yxkhIT9Nh8/ivL29IbI5kXFIFeqM6ohwazxn6dHEyYkhTJk2Yik6no6qqCkmSYp5kDzUPfJvN\nhsViweFwUFpaygMPPED//v3ZtGkTe/bsUdTp0x8LFiygZ8+eVFQ0cO5aAqARHe1tNhtlZWVecWch\nsgs1veadTmdYXRsjRRzldTodZrPZ6/+K1L8aDOEDrqqqYstXB/h611nyDmpxa6JL1E7S7Mfm6R3V\nGLHA43EjVW1DZ428k6nktpOZVsSQgWlcM74nnTpm1xICCaTcpCa+QszFxcXcdttt3HXXXdx4441R\nz11UVMTMmTN57LHHeOmll+JmR6rS0b5R0mh2pJIkYTQasdvttXah4pgdi1poOfK0FV8FIN/IrlyI\nQpT+haNhKsYQaVTp6elMnXw5UydDUdFJVq3dz9fflnKsOBOtLrycQ1vlQaSkVjEvvYwEjUZHSoqV\nqgiO90bNcQb01nHF0BaMumKa1xVTXl6OVqv13j/1YUSrq6u9u94DBw7whz/8gVdeeYVhw4apMsd9\n993H888/T3l5uSrjJYieOPw4+Ufk9An/qFarVc0/GQpxlFeqDuWvla6vfzVYHqJIo/InpJKV1ZI7\n5rbkd3M8bN66l41fHmf3d05s7taKfgcp5jKcuvgKMslxupOQPMp6OUnuCtq1+oXhgzKYcs3lNGtW\n258sdoZ2ux29Xu81rGqcFvyu5/zDTwQe169fz/PPP88HH3xAhw4dVJlj1apVZGZmMmDAADZt2qTK\nmAmip9Ec7R999FHy8vIYOnQo+fn53HbbbfTp08fb2THSBOlQiF2lwWBQZTfjKw4tT5cRbU7CTaM6\nW1rG8lXf8vWuUgqK0tHoAvsYLbp9VLn7RfUeYonkrsJZtR9TymV+/93j8WA1FDK4v5mrRmUz5DL/\nLgp5iw6r1eo1zPLTgsjGkKcrRWpY5eWeRqORf//732zYsIH/+7//Iz09uHh0OPzpT39i8eLF3mq9\n8vJyrr/++rhoE3IpH+0bjSH1eDx8/PHH3H777XTv3h1JkujevTtXXnklubm5WK3WmPgnHQ5HTH2v\n8jQrh6Omh5GQVYtk/d/uPsj6TUfZseccFfa2aDQXdnYO+xmMunOgb6f6+1CTJHZgo7Yh9bh/oXuH\nKoYNymDKpMHeXGJ/yHeGwo8d7Fp5mhuE10oGaos+a7VaHn74YTQaDQsWLIipz37z5s288MILCR9p\nHNBojvYajYYzZ86wZMkSJkyYgCRJ5OXlsW7dOubOnUtVVRXDhg1j7NixDBw40PthisY/CcTc9yrS\nqJxOJyaTydtYLdIeUTkDe5AzsAc2m40Vq75h265S/vujCbRN0UsH8RhHxn9+idYMUk3aUoa1Jm1p\nwtjO9OwRuiW1XChGictHno3hT2hZaIYG+v3LRZ+rqqqYM2cOV111Fffee2+9CDFfwrYrrmg0O9JQ\nVFVVsXXrVj777DO++eYb0tPTufLKKxk7dixZWVle8YJo/JNqE2rXK3cDiN12qPX7I//wT6xe9wPb\nv8lDl9QeAK1G/bbBvng8HtyS2zuPx+NBw/mHB+d7FflZQ0X5cVq2SGb8lV2YOP4yxS4OkW6k1gnC\n9/cvFMTkbhjhOjh27BizZs3ikUceYfLkyZekgbuUd6QXjSGV4/F4OHHiBOvXr2fdunXk5+fTq1cv\nRo8ezejRo2u5AcQxWqfTeWvuYyX0LEcewLJYLIp2vUrLEf1Rn+k/4L/HUTTrD4ZvulGs+hr5Cph4\nPB7+9re/YbPZ2Lp1KwsXLmT48OERjV1YWMiMGTM4ffo0Go2G22+/nbvvvlvldxBbEoY0AI3VkPoi\ndwNs2LChjhtAyO4JeT25fzIWhHv8DIRvGaskSX79w2KnFk7jtkgJx6ipkX8rV5dX+kCKBlGaLLp7\n/utf/2LZsmU4nU4OHDjAK6+8wuzZs8Me9+TJk5w8eZL+/ftTWVlJTk4Oy5Yti6i9SEORMKQBuFgM\nqS9yN8Cnn37KqVOnmDt3Lrfeeitt27at1Z5EzWwAeS5qLAJY/gInomCgPooVItlly/GnbxAsoi5X\nlw8VVFID8QA0mUzo9XoWLFjA7t27Wbx4MVarlcrKSpxOJxkZ4XYcqMvUqVO56667GDNmjAorrx8u\nZUPaaIJNamKxWBg3bhxFRUWsXLmS9957j1OnTvHcc8/VcQMYDIY6cmkGgyHsaLrcyMQqgCUPnIij\nPOAtjYxlmpgaroNg+ga+gTeoqXaLRpgmHOT+V4/Hw1133UWzZs348MMPvbvu5GR11LuOHj3Knj17\nGDJkiCrjJYg9l+SOVFBeXo5GoyEl5ULeZSg3ABBUDcofaueihsKfLmqs/JNAvbgOfPVjJUnyGt5Y\nPBjk88pdFWVlZcyaNYsbbriB22+/XfU5Kysryc3N5fHHH2fq1Kmqjh1rLuUd6SVtSJUQKBvgqquu\nIjs722uc/LkBYn2U90X+oQ8VMAt1jFYSsKmvII98PiGMLNpxxOLBIJ9PlHtaLBaOHDnC3Llz+etf\n/8rVV18deoAwcTqdTJo0iQkTJnDvvfeqPn6sSRjSACQMaW3CzQYQv75YyLX5W1s0QZdAiekio8F3\nvGj9oeEi1x7wp+6ltnCM73zbtm3jscce46233oqJyrzH4+G2226jadOmvPzyy6qPXx8kDGkA4smQ\nvvrqq7z22mvodDquueYann322YZektcN8Nlnn/HFF1943QBdu3bl4MGDPPDAA2i12oiKAsJB7dQm\nf/mT8t0eQHV1db2lUkXy/sINXPmbz2AwYDQaef/991myZAnvv/8+mZmZar89AL788kuuuOIK+vbt\n613X008/zfjx42MyXyxIGNIAxIsh3bhxI/Pnz2f16tUYDAaKi4tp3rx56BfWM+fOneOhhx5i4cKF\njB49Go/Ho9gNECn15Z8Ua3c6nUiS5A1sqS384Yu/fNRIUFoKKvzZSUlJ6PV65s+fz9GjR3nzzTdJ\nSoo/Ddd44lI2pI0iav/666/z6KOPen2M8WhEoSbqXFxczL59++jUqZPXDaA0GyAc357cXxhr/6Qo\nkxTtiK1Wq3fHF2kZbih8u21GWyDhrxRUPBhEby+NRuPNx3W73dxxxx107dqVJUuWRPye1q5dy733\n3ovb7Wbu3Lk8/PDDUb2PBPFJo9iRDhgwgClTprB27VqSkpJ44YUXGDRoUEMvKywCuQGuuuoqcnJy\nAOXZAKH8hbFYezB/qO9uL9odt2+Qpz78r0Ip6vTp0wwfPpwmTZowYMAA7rvvPkaMGBFRoNDtdtOt\nWzc+//xz2rRpw+DBg3n33XcbVZJ9OCR2pHHA2LFjOXnyZJ2fz5s3D5fLxdmzZ9m+fTs7d+5k+vTp\nFBQUNMAqI0er1dK/f3/69+/Pww8/7M0GWLt2LU899VSdbIBA2qUulytoy2e1EfJwwVK3Au32RB/4\ncHbccuUm0dQwlgijLfJ7jx07Ru/evbnppps4deoUDz30kFcDNFx27NhB586dad++PQA33XQTy5cv\nv2gN6aVM3BjS9evXB/y3119/nWnTpgEwePBgtFotJSUljboDoygKGDduXK1sgGBuANHOV0TSY00k\n/lfhBtDpdJhMplr+VZvNFjSarlbprFLklVEWi4WNGzcyb948Fi9eTJcuXaIe/9ixY7Rt29b7fVZW\nFt98803U4yaIP+LGkAZj6tSpfPHFF4waNYpDhw7hcDhUM6IvvvgiDz74IGfOnKFJk5h1aw2KRqOh\ndevW3Hbbbdx222213ABz586lrKwMp9NJt27deOWVV9BoNN5dlK92qRoI/6vT6VSlG6s82h+oDQvg\nFbSOdb4t1BVifuutt1i5ciWffvqpavfBJXzSveRoFIZ09uzZzJ49mz59+mA0GlVTAy8sLGT9+vW0\naxdfQsdyN8B1113HuHHjyMnJoUWLFlx77bVkZGQocgNE8kGOdSmrbxsWt9vtDZoB3v+OZbWSCDCZ\nzWa0Wi1PPPEEZWVlrFy5UtXMhzZt2lBYWOj9vrCwkKysLNXGTxA/NIpgU6y48cYbeeKJJ5gyZQrf\nfvttg+1Ig1FRUcGmTZuYPHkyoKwoQOz4ws0GUOIPVRPfIgLR0DBQ/mq01Uq+mQB2u53bb7+dIUOG\n8NBDD6n+0HC5XHTr1o0NGzbQunVrLrvsskSw6SLlkjWky5cvZ9OmTbz88st06NAhbg1pKJRmA8gl\n9oToipz6lNoT6xZydIGMtvCvOp3OoDKBSvDt4XTq1ClmzpzJ3XffzQ033BCzh8aaNWu86U9z5szh\n0Ucfjck88UDCkAagsRvSYJkA8+fPZ926daSmptKhQwd27drVqINXArk2wPbt2+u4AXyLAoTSe33k\nowrkcnQmk0nx6yLtr+TxeLyBOovFQl5eHnfffTf/+Mc/EgpLKpIwpAFo7IY0EPv372fMmDFYLBYA\nioqKaNOmDTt27Ii4BPDBBx9k1apVGI1GOnXqxFtvvUVaWpqayw6bUG4AqHEdZGRkeP2Wagl+BELe\n4yiaJHulbVjk5aUmk4k1a9bw8ssv8+6778adb7yxkzCkAbhYDakvahzt169fz5gxY9BqtTzyyCMA\nPPPMM2otURXkboBly5Zx6NAhxo4dy+zZswO6AdQqAZVXYsVCxMWfaIlWq0WSJIqLi8nOzuY///kP\nmzdvZsmSJao85OLx4dmQXMqGNLYlI40ENf7+Y8eO9R4thwwZQlFRUdRjqo3IBpg2bRqHDx/mpZde\nYtasWaxdu5bJkyczY8YMlixZwunTp9Hr9d7gU0VFBdXV1d4S0XAR/lBJkkhOTo6J+0DsRpOSkkhO\nTiYpKcn7QHj88cfJzs7m9ddfZ+zYsZSWlqoy59VXX82BAwfYt28fXbt25emnn1Zl3ASNj8SONAZM\nnjyZm2++mVtuuaWhl+IXj8dDYWEh2dnZtX4Wi2wAuZJSfSTZ+2qkVlZWMmfOHC6//HKys7PZsGED\nubm5zJgxQ9V5P/nkE5YuXcqSJUtUHbcxcSnvSBOGNAwCBa/mz5/vTU+aN28eu3fvZunSpfW9PFUJ\nlQ2g0Wi8SlCB3ABqKTcpxTedqrCwkNmzZ/PYY48xadKkmM4d7w/P+iBhSAOQMKThsXDhQt544w02\nbNhw0UmuBcoGGDNmDO3atfPuVqEmki7UoaxWa8xbW0PtGn2z2cyuXbt44IEH+M9//kO/fv0iHvdS\nenhGS8KQBiBhSJWzdu1a7r//fjZv3kyzZs2iHiuepdc8Hg/Hjx9n/fr1rF+/nvz8fHr27MmVV17J\n8OHD2b59O7m5ud6aezXbf/jDt9xz2bJl/Pvf/+a9996jdevWqs8n52J+eIZLwpAGIGFIldOlSxcc\nDoc38j9s2DBee+21sMdpjNJrwg3wwQcf8M9//pNu3boxYsQIrr76aq8bQI32H/6Quw/0ej0vvfQS\neXl5LFq0yJveFivUfHheDCQMaQAShrT++frrr3nqqadYu3YtcCGFSqRUxTOjR49m/Pjx/OEPf+DL\nL79U7AaIRBDat9zT7XZzzz330KpVK+bPn18vhQVqPTwvFi5lQ9ooREsuJRqz9Nrq1au93T3lEoHC\nDfD888/XcgOMHj0ao9Ho3VUqdQPIc1KTk5MpLS1l5syZ3HTTTcyZM6feVJfy8/PrZZ4E8U/CkMYZ\njfmhLoyoHI1GQ5s2bZg5cyYzZ86slQ0wZ84cqqur62gDBNMtFZF5gOTkZA4fPsztt9/OvHnzuOqq\nq+r1/SZIIEgk5McZF7v0migKePjhh1m3bh2fffYZY8aM8RYF3HrrrSxevJhTp07VKQq7Nm8GAAAD\n5ElEQVQQ/y+qo7788kt++9vfsnDhQlWN6IsvvohWq+WXX35RbcwEFzcJH2mcEQvptcLCQmbMmMHp\n06fRaDTcfvvt3H333SquWh3kboB169Zx+PBhrxugRYsWnDp1inHjxnHrrbdSVFREVVUVL7/8MhMn\nTgxL/CQYhYWF/Pa3v+WHH35otIpgDcWl7CNNGNI4RG3ptZMnT3Ly5En69+9PZWUlOTk5LFu2LK4z\nAeBCNsBzzz3HsmXLGDNmDN27d+fkyZPY7XY6d+7MF198wRVXXMFzzz2nypyNQaM2XrmUDWnCRxqH\nTJgwgQkTJqg2XsuWLWnZsiVQ41fs0aMHx48fj3tDqtVqadWqFXv37mX79u107tyZDRs2sHz5ct5+\n+21vlF+t5/3y5cvJysqib9++qoyX4NIhsSO9xDh69CijRo3iwIEDJCcnN/RyFOF2u1VLZ7oUNWrr\ni0t5R5owpJcQlZWV5Obm8vjjjzN16tSGXk5cEQuN2kuNhCENQMKQXjw4nU4mTZrEhAkTuPfeext6\nOXFPY24/01BcyoY0kf50CeDxeJgzZw49e/ZU3Yi63W4GDBjgFfC4WLiEbUKCCEgY0kuAr776iiVL\nlrBx40YGDBjAgAEDvCWo0bJgwQJ69ux50RmegoKCxG40gWISUftLgJEjRyJJkurjFhUVsXr1ah57\n7DFeeukl1cdPkKCxkNiRJoiY++67j+eff171fvAJEjQ2Ep+ABBGxatUqMjMzGTBggGp5nLHg1Vdf\npUePHvTu3TvudF0TXDwkjvYJImLbtm2sWLGC1atXY7PZKC8vZ8aMGSxatKihl+Zl48aNrFixgry8\nPAwGA8XFxQ29pAQXKYn0pwRRs3nzZl544QVWrlypynilpaXMnTuXAwcOoNFoePPNNxk6dGjY40yf\nPp077riDK6+8UpV1JQhOIv0pQYIoUfMzdM899zBx4kQOHjxIXl5exKWs+fn5bNmyhaFDh5Kbm8uu\nXbtUW2OCBHISR/sEUTNq1ChGjRqlylhlZWVs3bqVt99+G6hR0E9LSwt4fbCST5fLxdmzZ9m+fTs7\nd+5k+vTpFBQUqLLOBAnkJAxpgrjiyJEjNG/enFmzZrFv3z5ycnJYsGBBwP5L69evDzjW66+/zrRp\n0wAYPHgwWq2WkpKSRP18ggQJLnoGAU5g8Pnv/w78JcKxfgc8df6/uwI/R7e0BAkSJGgctASOyL4f\nCayKcCwDsBj4DvgWyI1qZQkSBCBxtE8Qb5wECqnZQR4CrgIORDiWE7hVpXUlSJAgQaOiH7AT2Ad8\nDASONiVIkCBBggQJEiRIkCBBggQJEiRIEB3/P/Oj6a54OEh2AAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x670f630>"
       ]
      }
     ],
     "prompt_number": 61
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "!ipython nbconvert brief_tutorial --to latex"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stderr",
       "text": [
        "[NbConvertApp] Using existing profile dir: u'C:\\\\Users\\\\Elias\\\\.ipython\\\\profile_default'\n",
        "[NbConvertApp] Converting notebook brief_tutorial.ipynb to latex\n",
        "[NbConvertApp] Support files will be in brief_tutorial_files\\\n",
        "[NbConvertApp] Loaded template article.tplx\n",
        "[NbConvertApp] Making directory brief_tutorial_files\n",
        "[NbConvertApp] Writing 88411 bytes to brief_tutorial.tex\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      ">[1] D. J. Higham and N. J. Higham.  \n",
      ">[MATLAB Guide](http://www.ec-securehost.com/SIAM/ot92.html), Second edition,  \n",
      ">Society for Industrial and Applied Mathematics, Philadelphia, PA, USA,  \n",
      ">2005, ISBN 0-89871-578-4 \n",
      "\n",
      ">[2] Fernando P\u00e9rez, Brian E. Granger, IPython: A System for Interactive Scientific \n",
      ">Computing, Computing in Science and Engineering, vol. 9, no. 3, pp. 21-29, May/June 2007, \n",
      ">doi:10.1109/MCSE.2007.53. URL: http://ipython.org"
     ]
    }
   ],
   "metadata": {}
  }
 ]
}