Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Revisiting Derivatives"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Our review for derivatives is that the exact derivative is as follows,\n",
"\n",
"$\\frac{df}{dx}=\\lim_{\\Delta x\\rightarrow0}\\frac{f(x+\\Delta x)-f(x)}{\\Delta x}$\n",
"\n",
"where $f=f(x)$. In our lessons on initial value problems, we approximated this derivative by removing the $\\lim_{\\Delta t \\rightarrow 0}.$ When we describe derivatives over space, we use the same approximation, but in this notebook we will try a few other alternatives. The following approximation is called a forward difference derivative, \n",
"\n",
"$\\frac{\\Delta f}{\\Delta x}\\approx\\frac{f(x+\\Delta x)-f(x)}{\\Delta x},$\n",
"\n",
"because we approximate $\\frac{df}{dx}$ using the current $f(x)$ and the forward step, $f(x+\\Delta x)$ as the derivative."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Taylor Series Expansion"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"The approximation of the __truncation error__ in the function near $x_{i}$ is given as:\n",
"\n",
"$f(x_{i+1})=f(x_{i})+f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2+...$\n",
"\n",
"where $f'=\\frac{df}{dx}$ and $x_{i+1} = x_{i}+h.$\n",
"\n",
"\n",
"We determine the first order derivative by solving for $f'(x_{i})$:\n",
"\n",
"$f'(x_{i})=\\frac{f(x_{i+1})-f(x_{i})}{h}-\\frac{f''(x_{i})}{2!}h+...$\n",
"\n",
"The __truncation error__ error is on the order of the timestep, $h$. This is commonly represented in big-O notation as $error\\approx O(h)$\n",
"\n",
"$f'(x_{i})=\\frac{f(x_{i+1})-f(x_{i})}{h}+O(h)$\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Higher order derivatives"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"We have already solved first-order numerical derivatives problems in [Project_01](https://github.uconn.edu/rcc02007/CompMech01-Getting-started/blob/master/project/01_Getting-started-project.ipynb) and [CompMech03-IVPs](https://github.uconn.edu/rcc02007/CompMech03-IVPs). Now, we will look at higher order derivatives. Let's start with $\\frac{d^2f}{dx^2}=f''(x)$. We need more information. \n",
"\n",
"First, take the function near $x_{i}$ within 1 step, $h$, given as:\n",
"\n",
"$f(x_{i+1})=f(x_{i})+f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2+...$\n",
"\n",
"Next, take the function near $x_{i}$ within 2 steps, $2h$, given as: \n",
"\n",
"$f(x_{i+2})=f(x_{i})+f'(x_{i})2h+\\frac{f''(x_{i})}{2!}4h^2+...$\n",
"\n",
"solving for $f''(x_{i})$ by subtracting $f(x_{i+2})-2f(x_{i+1})$ to eliminate $f'(x_{i})$:\n",
"\n",
"$f''(x_{i})=\\frac{f(x_{i+2})-2f(x_{i+1})-3f(x_{i})}{h^2}+O(h)$\n",
"\n",
"Here we have the numerical second derivative of a function, $f(x)$, with __truncation error__ of $\\approx O(h)$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Using our numerical derivatives\n",
"\n",
"Consider the example of taking the derivative of $f(x) = \\sin(x)$ with only 10 data points per period. Let's assume there is no random error in the signal. First, we can plot the values we expect since we know the derivatives of $\\sin(x)$. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams.update({'font.size': 22})\n",
"plt.rcParams['lines.linewidth'] = 3"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtgAAAE0CAYAAAAWvURhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOydd3hURdfAfyeNBEIPYKih994VFbCgAoqIDQTBwqdYELHSXl8LdkGxvfaGiIqIiAqKooCAdFCqYOhIQgkJ6cl8f8zdks3upu1mN2F+z3Of3bnTzu3nzj1zjiilMBgMBoPBYDAYDL4hJNACGAwGg8FgMBgM5QmjYBsMBoPBYDAYDD7EKNgGg8FgMBgMBoMPMQq2wWAwGAwGg8HgQ4yCbTAYDAaDwWAw+BCjYBsMBoPBYDAYDD6kUAq2iIwWEeVmyRGREyLyh4hMF5F6Hup/YJVf5lPpgxQRqSMis0Rkt4ikO+2vIX7u9zGrn3h/9mP1FSsiZ0QkWURq+rjtudZ23OPLdoMZ52usmPWXWfU/8LFoPkNEKovIUyLyp4ikOl0X91n5pXb++hIRqWXdC5WINAi0POUdEYlzOnf6+rEfWx+j/dVHIeUoF8/PYNmfBkNpUdIR7BCgOtAdeBTYJiIDSyxVEQmmC1dEooHfgbuBZkCFwErkNx4HKgKvKqWO+6FtBUwTkao+bvuso6TKu49kCAGWAJOAtkBUoGTxRAkU/MHoe+FGpdQB30tmMAQnwXBvMRiCleIo2FcAla2lKtAOeA7IBaoAn4tIU59JWPYYDjRBK4i3AXVx7K+FAZTLZ4hIW2AMkAK84Ov2lVJ/AV8CMcAjvm7fEBAuBnpZ/6cCDXBcF68FSigfcaX1+01ApTAYDAZD0FAcBTtNKZViLaeVUn8ppR5GjzqCHtW833ciljk6Wr9blFLvKqWOOO2vHH92rJR6TCklSqk4f/aD/loRCsz2w+i1jVes33tFpIqf+ig3KKX6Wsd+dKBl8YDtukhSSj2plDrodF1kQamevz5DRCLRLw9gFGyDH1BKjbaui76BlqUkWNsgSqkPAi2LwVAa+HKS47NAuvX/Ih+2W9aoaP2eCqgUfkJEagDDrOQnfuxqJbAPvT9v8mM/htKhvF4XFwOVgINKqQ2BFsZgMBgMwYHPFGylVDqwx0oWeaKPiESIyN0i8quIJIpIhogcFpGvPNl12yZ2Oa16381EzL6lJEu8Jctoa9WFLnJ8UEQZGonIDBHZYk0kzLRk2CQib4nI1W7qeLQhFZG+TrLEiUglEZlmTTg7IyKnrP05zLWuCzej7cr3oZVg137qichx26Qcy/bW3fYNcpLnP675SikFfGolxxYgk0esiXXXWBOFtlvbmikiR0TkWxG5TkTES/08kwdF5HwR+VpEjlrnxT+iJ7TWKYQso0RkpYictpb1IjJeREKLu32e5LTWxVnn5PtO61yvj3iXdiqJyEMi8rvoCcxZ1jWwXUS+EJHbRaRSUeUCHrNWNXLpf5lT2aKcv9XFMWEy2Vrfyal8oa8fW9uA7Tx0ldHbBDObeUg+86/iXMNOdcNE5BYR+cE61zJFJEFElojICG/nrFMbF1jn/d/WeX9aRLaJyGwRuUpEwj3UixORV0Rkh4ikWHW3i8jLItLIS395jp/Vzhui740ZIvKviHwpIp0LIft51nWWICJpoieMPy8+nFAtIu2sfXFE9GT0eEtej9vopo3qIjJFRNaIvu9liMhBEZkjIr291MszcVFEelt1DljX3CZPZZ3W/2GtX1wIOd+zyh4Qp3uydZ71FZEXRWSdiJy0+j8uIitEZKK4ud6lePeWfHOlRKSN0/obC9iGiuK41p/yUKaF6PvxNqtsqojstM7nhl7aFhG5UUS+s86HTBFJsq6dH0XfEz3WNxjcopQqcEErjcpa+nopt9kqk+qy/gNr/TIP9RoAfzr14W75FIhwqbesgDpe5fWxLPEF1PmgCDJciLZv9tZeipt6j1l58W7y+jrV7QVs89L2FC+y/W6VedNLmaud2prkJv8c4JiVvxII9dDO+U7tNC/KcXRqY34hzpEFrsfTzTn2ATAByPHQxj6gnoc2QoG5Xvpfin6JUFjvFsXYTrucTuviCrHt8U7lY4FdhajTrRhyeVqWOZUt7Pl7EbDfTVudinP9uLRdoJxO9QQ4bOVf5otr2KrbENhUQN3vgEoe6kcBswuxTZ3c1L0B/SXSU5004FoP/dqPn7X9pzy0kQ5c7OWcGY+e0+Ou7n6gn1O6SPd3pz6uATI99HECPXHflh7toY1+wPEC9vHjHup+YDuvgDuBbJd6m9yVdWnjHmt9NnCOl22NdDoWz7rZ1wWdJzuARi714gpRL96ljtv9Cay31i8q4Jjd6NRGazf5E4EsL/KcAQa5qRcKfF2I7XmgOOeaWc7epXCFCqFgA+HWCayAv13y3N4grLwKwBanG8VzQBugJtAbrfzY+n7NpW4UEO2U/39W2nlxq7x52IaSyFLR6u8TK3+5ixwVCilDCFpZU8DfwEigKVADaIFWLp4B/nJT9zF3NzYrr6+T7HuABOAuoLG1fRcBW5223d0NLArHQ+nWArbjLatcFtDDab0AP1h5SUCclzYq4njweO3PSxvvoEdZrgE6o5XIukBP4CUg1Wr/aQ/1l1n5e9EP/fnAedY+a4yee2BTBj710MaTTvv+e6f6bYGXrfp7bWWKuZ02OT9w2dfR6OvC1r/r9VHRqfzHOB5ED1ry1QQaAX3QLxjrgK5FkMt2jU632t7n0n9UMc7fg2jF5m7rGNQC+gN1KMb1g37AepMxj5xO9XpY5ZNxur6LI4NT3SpWHQUkoueztAKqAc3Rk35t5+wnHvb5V0776gfgcvR5XxPoBNwHbMBFwbaOse0Fcj8wAn2txFr/bS812UBvL/efk5bsm9Ev2+dYx2aUlWdrP8xNGxc7yb4TGALURp+D44HTOF0rFEPBRt/TM6z6Ryy56lrLzcBRlz5Gu2mjC44Xka3W/mmE9qrVBXjXqf5tbup/YOUdRd8jVwCXWtvaELjCTdllLm3UwqFQTvCyvdc6ydLeJe8O4FvgFvQ9sRF6cnkHtMJ60Kq3yqVeke4tVh23+xN9X7E9K2p52Y5FVrn1bvLucmp/obUv61jbcgnwm5WX5mYf3OpU93VrP8Siz9vu1vmxCBhfnHuzWc7epXCFCqdgP+hU5m2XPLc3CCvvPqd6Y93kC/CZU5kObsp4vBEWaWf4RhaP21pIGdo7td+xiHUfo3AKSjLQyk2Zejge3s+4ye/vbdtdylZEj3zYlIzK1vr7ndoYUYhtso3kfeiXC0ArH7Z9UtlN/jIned/y0MYrVn4GUMUlLxbHS8n3uHnhA6Y59aGKuR02OT9wkze6MG3jGI3z+YPE27lZjPM3Azejr1Y5v1w/HsrbXpy+9KEMtnPpNNDSQxlnJbSbS94NTnkzC+gr1CVtu9aOAfXdlG+IfjFXwAYv+08BG3Ezwg4MdSpzmZt820v+QdwoW9Z54Dy63bcY5+K3Vt0UoIWb/FY47oNunys4vtZuws3Ll1XmCatMgmsZHM8JhR6McfsFzaXsMi/bkk/pdCpjG53d5KmMl7p1cbwU9XOTP9q2HYVoy+3+RCuytoGUezzUjcHxMnGfS14sjped/3moHwb8YpX51iVvnrV+flH3j1nM4m0pkQ22iISISAMRmQzYbKKygBlFaOY263eDUuot10yllEKPXGS5lPcHwSBLmNP/Q35oH2CWUmqH60ql1CHgRyvZ3U29Nk7/97jJd24rFf1JLxM9ejdLtI3s01aRT5RSswshq62ftoUoW2SUUt+jH4DR6K8UnkgFHvKQ9771G4HDW4aNEeivOwD3K/eeZJ5Gj6QFGtu556/zzle8p5Ta5CGvNK4fG57c8xVLBsvW9VYr+bhSaqe7ckqpn4CfreQIl+zx1u8e4AFv/TmfiyLSDce5+6RS6qCb8vvRo/wAnUWki5fmH1ZKnXGz/mu0wgYu9xhLhnZOMiS4kWEZWiEqFqLnSlxuJV9VSu1y08cOvLiOFJF+6BFe0KPTaR6KTkd/DYpBj6h64gGlVGZBsnvANtG8i4i0ciNrDRzbW+RJ6UqpwzieCZcUS8KC+zgK/GQlXc9nGzegr6scYI5L3h3or8/HgXs99JGNHsgAuEJEqjlll5X7nqGMURwF+xfbpAT0yb4fPZITjh5ZGq2U2laYhkSkOg6l7UtP5ZRS/6I/8YC2y/U5QSTLTvRnLIAPRaSFH/r4voD+QY8quFLL+s308PDMg1JqIzDZSt6MDjQSAfyD/qRXGE5YvzGFLJ8PEakvIk+Inrh33JrEo5zOY9t2tfTSzGqllCcPGM6KkOt+62P97lBKbXdXWWk3dcHgI32j9fu0iFwoUvBEugCxyEteaVw/WBPh2qPvga7yFFeGc3F4W/lVRKI9LWhTNoBuTjJVxqG0zraUisLSx+m/x/sf8IXTf0/3vwz0aGE+lFK56C9a4PlaAa2Ie+IrL3kF0RvHc29+MfuwuWU8Duz0coxC0V/xwOk4uXBcKbWmsMK7YQH6awe497Z0Lfqem4tj0ngerMmDd4nIYtGTcNNd7o/XWkW93R9LysfWb08RaeYm36Z4/2Q9g52xHY/lQLiX42E7FgJ0dapvu+/dIiIjRaS8BoczlDK+8CKSjX6gvI7+HOr2IvZAQ/TJDnrSnTf+sn4bFU28siWLNfL7qJW8An0D3yEib1sXf6wPujnsJS/V+q3oJs+miJ50k+eJF3GMTtRCKyQjlFKnPVfJg03BruW1lAdE5CpgOzAF/XCtQd4RRme8RY30uM+sY2bDdb/FWb/5vhi44Fb5LmUeQn9xaIY2OTkiIp+LyD2igwsFC3s9ZZTS9QNwlfX7u3LxBV8CGZwVmD/QZkuelvuscs7XRRxaqQNtulAUbPeyU9aopVuske0klzquJFgvjZ7wdI+Jc5LhqJf6JblW4pz+e7smvfVhO0410cqtt+NkU+Q83b88nsuFwRo9t70MuPMuY1O6f3F3XEWkOXpS/6voUfZYPEcf9mdU3flokx1weVEQHbjOFqTK3Si87XgMwfuxOOZUx/l4zEDPmYgCPgKOWy8bU0V7jSqxlyfD2UlJIzlWUkqFK6VaKaXu8vRJ0wuVnf6neCylSXZTx5cEjSxKqZfRk4NWo23DWqLNUT4CDorIwhKOzBUm4I1PRi8ts5p1Tqt2opUHvyMicWib+Wi0Z4N70SNJseiHhe08tn0O96R4Q+H2GeTfb9HWb0HnVEH5fkcp9Qd64t58tKJdBz169Qrwp2j3cpcFUEQbqd4yS+H6gQKiNxZThuIoMJFO/50DMiW7FiwA272sMOehrYyn+18wXyvRTv+9teMtr6THyRmv53IhsY3+xqEnUAP2ryznuZTBKT8UrZw3RpuyPIX2/tIQPRBhuz/aTDK83R9LhPVSavui4GomYkufwf1XhxIdD6VUEvq+Nws9eFQJ/bLxOPpr9QHR7lR9GTfEcBZQ0kiOJb05OD8Eoj2Wyptf1AdHWZQFpdTXSqneaCVnCDok+Tb0MRsErLYUyNLEZhNZo7AVRKQPegKsjTbo0eTCYusrnz1mIbgFfSM9DfRSSs1SSq1XSh1VOgppilIqhbyKia+xPagLe04FFKXUZqXUULQ3hP7oY/Ur+hNzR+A78eK/OVjw5/UjIlWBC6ykx+iNxZDBWamrrByR77wtzvWd70dFffm31S3Meeiv+19pXCvO+9hbO97ybG2sK+Qx8neE1WU4BgmcR39HoF9inEe5nbkQh837MKXUFKXUb0qpA0qpk073x0L7vS8httHpZiLSy2m9TcGe78E00XY8XijC8fjAuQGl1DGl1L3oke1uaBeIX6FfgGKBmeivsQZDoQn0G5nN7RPknUDnDtsn6vizQBY7SqkEpdQCpdSDSqm26ImDuWgF6D7vtX2OTckNt2zavGIpIp+gP1v/hXaZBzBVvARhcKEkCrYt8MjPbuz2bDI2xL8Kdrz1m28Ckgut/ShDkVFKpSqlflFKPaV0iOYO6GMgOAKyBD1+un4uR8852eluklwJZHA2F+hE0fkHx+hxUevHW7/VvJnRiEg9HCOG8Z7KFRNnGbwFbirJtRLv9N/bNemtD9txah0M9rqWXbvNNPNaEYmw/tsU0wVKKXcvQ7Zz5KRS6gcvXbT3gZiFYSmOyd4jAESkO9q1JXiepGk7HgUGMCoIpVSONQjzqlLqGnRcjBVW9j3iw0BHhvJPQBVspdRJHPbM13gqJyK1cYwYrXBTxDaZp9i2Uj6Uxa8opT5D28xB6Stlfzn9b1qI8m+g7TQz0ErFvegRvFDgE2tSVkHY+vnLayn32B5+3s6LkcVotyjYzpFW7mb5A4iOqDfYjzLY7WGLa0+olPoLx6fioHoZKAoFXD+2/VTQPvJqHlICGX5FXysAY4rRbjJgmzA3XESK8knf+V7m8f4HOEd69fX9z7k9b19Jhpagj1Xol5uS9LHE+q0EXFcCWXyJzQSkBnC56GiZtoEiT4ppgfdHETkPbULiiRLfW2wo7dXGdo+53jp/bSPyzp5GXLEdjwtFxJusxZHpBDpeAuj95JdJ04bySaBHsEE75AfoKiK3eigzEz0TGhyjoM7YJhnVDQJZSoToUOMeR4dFJArHdh73VM5PrMZxQ+3praCIjEQr1QAPKaW2WhNyhqPte5ugJ9Z4a6Mijk+Yy4shr21k4zx3Iw8i0g4duMOfzMaxz2Z4sON7FP0Z0l84nydurxHRIdIbFNCO7WWntM+7QlPC68eWruVJObXW2+zQ3SrYxZXBmvhruweNFhFvii4iUsXNaPMr1m8z4NkC6tsVIqXUehwTI6eISL7zRETq4/AKtEEptcFb+0VFKbUOx4v0FBHJNzFQRPri/QWgoD7+xeFF6W53tvjWi/A4L80swfGC9GJB9vyiw4r7daRbKfUn2jc3aKXUNnqdAHgKpW67P1YR7XowDyJSBe28wBsF3luKiO1FoRZ6vtf1VnqOcu/iFLRLxQy0jfjHBX1dFZGWLumCvi46DyYF7b3PEHwEg4L9Bjq4AMCbIvK0iLQSkRoi0ktE5uNQ1N5QSm1x08Z66/dmEeltueUJs5aiTNbzhSwl5RL0JKh3RGSoiDQTkeqi/Y0PRPsktbmsc/UH6lcsBXmtlezhqZw1imBTnn9ATx6xtbEZmGQlR4nIDV667IpjdOU3L+U8Mdf6rQEsFpFLRKS2iDQWkfFWmyk4PJX4HKXUEXREUNCK2SIROdc6p9qIyEx0gI5//CUD2g2VbdTuvyLSSEQirOvDtn9rAXtFZIGIjBGR9iISIyJ1rGvqfWCgVbZUz7siUpLrx3YfqQA8LiJ1RSTcZT9dgDbtSAR+94MMk9ATgUOAL0TkXdEuE+tYbTQXkWtE5B3gAE6T2gCUUnNxuLi7X0QWichlInKOdc51EJG7RWQd+T/934M+T+oAK0XkRhGJtereCKzE4Qnobg/bXlImWL/1gBUiMkREaolIQxG5F/1SE1/CPmzecioBy0R7djnH2tZRaBeDbk3KwD5xexTatrkWsFZE/iMina19XMvaz7eIyDdYgbZKKHNhsI1UD8KhYH+mPLtr/AGHR5g5IjLK2s/niMgw9IBKO/K6IXWlMPeWQqO0f3vby8vL6HMRvPjwVtqzjc3U6jxgk4j8n4i0EJFq1nE9V0Qmisga8ruh/F5EVlv5vZ2ulbaiY3w8aZXbUBiTMIPBjipENBoKEcmxgPof4CESlZXfAH1RKS/Lp3iIdgUM8FKvSPL6QBav21rEfe1tyRfam8JHwovz0r/HNqx8W1jb/YC4yQ9FKx4K7RapjpsyglYyFHrWdkMPfdki5W0uzr602njNyz48gfa9G2+lH3NTf5mV90EB/biNUmblhQGfe5HjZ2CsLV3M7fQqp3XOuus73sqPK+R59yNuIvQVQj6v55UPz9/RhdyOfNePVX+lh/LLrPyZBZ0PPpAhFm0uUZg2rnRTPwr9cllQ3XzRMNEDCOle6qQB1xb3GBfyXB1P3miNzssBoJ9Tum8xr5dhOCKsui4n0f7EPV7TVhvn4ggl7m3JBqq71P3A+bwqQNZClUWPIOe49N2jgDo34Iii6LrkoF+6vPZPAfcWp3Je96dTuYdd2tlWyGM6toBz17asd6kXX4g6/+Am6qdZzOJtCYYRbJRSB4Au6It5OVrxyUJPePgaGKyUGq48RLtSSi1Gjw5+j1bqihJgwaey+IDP0SMQM9EjCAfQn7/SgF3om11vpdSjnhrwMx+ib2INcNiiOzMNR0TEMcrN5EKllEIHnjkOVEN/1nN3Lg63fvNF1SwsSqm70ArParSbpzT0iNIsoLNSyu929EqpbKXUdZYcq9Cj5inoT/IPoF1C+et8sjEG7RFko9W3csnfjx79+Q96stEe9P7KRCsR36A/116qChFkKICU9Pq5AngePVfAnZckm628N/vrEsmg9FeP89E2wl+gj006+lgcQY+wPgI0V0rlk0MplaaUuh59Xn1m1c8ATlnb9Ym1HX+6qTsHbRc+Cz1ymWotO9HmJ62UUl+41vMlSrs4vAC9jxMt2feg92cXfPC1Ryn1pdXWHLR9byZ6P70DdFVKrfVS3dbG72ib3HvQL57/op8VaZaMC9CROesoPcfHryjt53qp06pdSrve9FbnM7Q3kW/RLxa26/1z4AKl1Cwv1W0UdG8pKrNxjIpDISNQKh19uQna3eAf6Gd3DtrbzTb0dXcVLl990AN096Kf79vR+yEbfe79BkwE2ikzem0oIqJ1HYOh8IjIx2g7v7eVUmP91Md56FG8VKCu0r5KDYaAIdpmfyta4YtR2oWZwWAwGAz5CIoRbEOZ42n0yMCNIlLsEOYFcK/1O8so14YgwTZ6/bNRrg0Gg8HgDTOCbSgWIvI2OjLds0opn3riEJE26JHCk0BTo2AbDAaDwWAoSxgF21AsRLsH2422t2uslEr0Ydufoe19xyulXimovMFgMBgMBkMwYRRsg8FgMBgMBoPBhxQl0pehnBMTE6Pi4uICLYbBYDCUKdavX5+olMoXGMdgMJy9GAXbYCcuLo5169YFWgyDwWAoU4jIvkDLYDAYggvjRcRgMBgMBoPBYPAhRsEu44hISxEZLyKfiMgOEckVEWWFujUYDAaDwWAwlDLGRKTscyc6tLDBYDAYDAaDIQgwI9hlnz/RoZ2vB5oBvwZWHIPBYDAYDIazGzOCXcZRSr3jnBaRQIliMBgMBoPBYMCMYBsMBoPBYDAYDD7FjGAbSkZGMuz9FSKrQlQ1iKwGFWtARKVASxZ0nDyTSWJKBhnZuWRk5xAiQq3KFahVuQIVwkIDLZ6hjJOenU5CWgLH044DUCG0AhVCKxBTMYYqEVUCLF0QkpEMqScg/RSkJ0HaKWh5BYSax6LBYCg55k5iKBkn9sLcEfnXV4+D2I56aXYxnNMBziLzlfSsHFbvPc6vuxL46/Bp/j6WwokzmR7Lx0RXoFODanRpVI3ucTXo0rA6oSFnz/4yFI2snCzWH1vPpmOb2JSwib8S/+JUximP5WtF1aJJ1Sa0qdmG8+ufT6fanQgPCS9FiQNMbi4cXAt7l8GRzXo5fTB/uQf+hmgTL8ZgMJQcEyq9nCEiy4ALgWuVUl8WovxYYCxAw4YNu+7bV8R4Cf/8Bh8OLrhctUbQejB0vglqty5aH2WEnFzFsp3HmPPHAVb8nUB6Vm6x26pduQKDO9blqk51aV+vqrGtN6CUYsOxDSzau4gl+5aQlJFU7Laiw6PpU68Pw1oMo8c5Pcrv+XVwPWyeAzu+heQjBZe/ex3ENC9yNyKyXinVrRgSGgyGcopRsMsZRVWwnenWrZsqciTHQxvg1+fyfmY9cwxysz3XaXYx9L4bmvQtF6PaKRnZfLJ6H5+s3sfBk2key0WGh1C3WhSRYaFEhoeQmZNLQnIGiSmZ5OR6vg67NKzG3f2b0a9l7fKrCBk8kpObw5J9S3h769vsPrnbY7kwCaNmVE1iomIIDQklIzuD9Jx0jqQcITPX89eTJlWbcGOrG7m6+dVUCK3gj00oXXJzYOf3sOpV2L/Kc7nQCKhU28m8rSoMeApqNClyl0bBNhgMrhgFu5xR6gq2O7Iz4Nh2/Rk2fjnsWgwZp/OXq98dLnsG6pet51LSwoUcmzGT7CNHyKhRi3dbDWBhrY75yjWtVYl+LWvTu2lNWtSpTL1qUYS4MfvIyVX8k5jChn2nWLfvBD/vSCAxJSNfudaxVZgWtZ+Yz94j+8gRwmJjqT3hPqoOLsQXBEOZQynFD/E/8Nqm19h3Ov+XpdhKsZxfT5t7dKzVkfqV6xMi+eet5+TmcCjlELtP7mbVkVUsP7icw2cO5ytXt1Jd7u58NwObDHTbTplgz8/wwyRI2J4/L6oGtLoCGp2nTddiWkCob8xkjIJtMBhcMQp2OSMoFGxXsjP0RMgNH8KORYDLOdfherj4MahS1/d9+5ikhQs5MnUaKj3dvi49NJyXOw1jWYOuVKsYzvXdGnBDj4Y0jineRM/snFx+33Ocrzce4tstR8jM0aYmfQ+sZ/ymL4nMybKXlchIYp943CjZ5Yy9p/by1Jqn+OPoH3nWR4VFMajJIAY2GUjn2p2LpQgrpdh1chdf7vqSb/Z8Q2p2ap78VjVaMa3XNNrXal+ibShVju+BxZNh1/d514eEQbtrtGlaw3P9NoHRKNgGg8EVo2CXM4JSwXbm+B5Y/YZWtnOcPltXqAoDX4D21wa12ciufv3JOZLfljOxUnUOvfEZQzrXIzLcdx5Bjial8/byvXy6Zj9vfPtf6qTln8gWVrcuzX9e6rM+DYEjKzeLNze/yXtb3yNbOcysKkdUZnir4dzU+iaqRVbzWX9nss7w1e6veHvL25zMOGlfHyIhjG47mnGdxgW32UhuLqx9G36cBtmOl14ioqH7bdDz/0rlxd0o2AaDwRWjYJczgl7BtnFiLyyZqicfOdP2ahj4knb1F2Ss2Xucylf0wa36L0Lr7dv81ndiSgbHunVGXEf/S6FvQ+lwMPkgDy9/mC0JW+zrQiWU4a2Hc2fHO6kcUdlvfadkpvDen+/x8baPSc9xKKpNqjbh2QtecSEAACAASURBVAuepVWNVn7ru9icPgxfj4O9vzitFOg0Ai6aCpXPKTVRjIJtMBhcKaOGdoYyT40mcMNsGPWNduln46/58GYfOLwpYKK5opTineV7Gf7OGo5FuR89DIuN9asMMdEVCK/rvo/EitVYsTvRr/0b/Mvi+MVcu/DaPMp159qdmTtoLg91f8ivyjVAdEQ093a5l/lXzafHOT3s6/cm7eWm725i4Z6Ffu2/yOz9Fd44N69yXac93P4zDHmtVJVrg8FgcIdRsMs4ItJFRFbbFqCLlTXdZX1w0uRCuGMFdBnlWHf6ELx3Gfw5L3ByWaRmZnPvZ5t4ctF2cnIVH7S5nAyXiVESGUntCff5XZbaE+5DIiPzrEsPDefdVpcx6r01fLQq3u8yGHyLUopXN77KA78+QEpWCqC9gdzf9X4+uOwDWtZoWary1K9cn7cvfZspPacQFRYFQEZOBpNWTOLpNU+TlZtVQAt+RilY8xZ8fDWk2UxaBM4bD7cvhXpdvFY3GAyG0sKYiJRxRKQv8EtB5ZRSBRo2l6qJiDt2LIL5d4Kzf9/zJ0L/qQGxy05MyWDM+2vZesghT+eG1ZhR8yhZ/3s9IJ48nD2Y5MTU5n8tBrCwVgd7/uhz45gysDVhoebdOdhJz05n6sqp/BD/g31d/ej6PHfBc0ExwXBv0l7u++U+/kn6x76uV2wvZvabSaXwAERqzcmCRRP1/A0b0efAsHchrk/py+OEMRExGAyuGAXbYCfgCjZA4m6YcyMcd/L32/kmGPwKhJReOPH9x1MZ9d4a4o87PCyM6NmQaYPbBFVY82On07n9o3VsPuh4Cejfqjavj+ji08mWBt+SlJHEXUvvYnPCZvu6c+ueywsXvuB3c5CicCbrDFNXTuXHfT/a17Wp2YbXL3qdmlE1S0+QrDT4YkxeLyF1u8ANn0IV/5pnFQajYBsMBlfMMJchuIhpDrf9pIPR2Nj4CXwxWrv7KwX+OpzE0Dd+tyvXIQLTr27PU1e3DyrlGqB2lUg+G9ubK9o7bE5/3nGMMe+v5UyGl2A/hoBxIv0Ety25LY9yfX3L63ntoteCSrkGqBReiRcvfJG7Ot1lX7ft+DZGfT+KA8kHSkeI9NPwybC8ynWH62HMd0GhXBsMBoM7jIJtCD6iqsGNc7U3ABvbv4E5N+iRLD/y56EkbnxrtT3QS4WwEN68qSvDezb0a78lISoilFdv7MKdfZva163ae5xR7/3B6fQA28wa8pCQmsAtP9zCjhM77Ose6v4Qk3tOJizEPz6aS4qIcEfHO3is92N2v9v7k/cz5ocx/leyU0/AR1fCvhWOdX3uh6v/B+FR/u3bYDAYSoBRsA3BSWgYXPkq9BrnWLfnZ5g7ErI9h30uCduPnOamd9dwOl2P/FaODOPjW3tyadvg90gQEiI8fFkrHrrMMSlu/b6TjHxnDclGyQ4KElITGLN4DHuS9gDa1/ST5z3JyDYjkSD2/W7jmhbXMKPvDLtf7H9T/+XWxbdyOCV/VEifkH4aZg+Dwxsd6y7+L1z8n6D2lW8wGAxgFGxDMBMSAgOmQ99JjnV//wjzboUc35o/7Po3mRHvrOFUqlZGq0SGMef2XvRoHHz+uL0xrm8zpg1qY09vPpjEbR+uIz0rJ4BSGZIykhj741h7yPNQCeXZ85/lqmZXBViyotG/YX9evehVu5J95MwRbll8C0fPHPVtR5mp8On1cGi9Y92gGdDH/956DAaDwRcYBdsQ3IhA34fhwocd67Z/AwvG6ShuPuDgyVRuemcNJ87okfHKFfTIdbt6VX3SfmlzS5/GPDmknT295p8T3P3pBrJyfLO/DEUjNSuVcUvH8fepvwGtXL944Ytc1viyAEtWPHrF9uLlfi8THqLdVR5KOcTtS27nVHr+KKPFIjsD5o6A/b871g18Cbrd4pv2DQaDoRQwCrahbND3Ueh9tyO9ZS78NK3EzZ5KzeTm9/7gWLK2uY6uEMaHt/agYwPfhaMOBDf1asSjlzui7/20/RgPfbmF3FzjNag0ycrJYsKyCXkCyDxx3hNc1OiiAEpVcs6rdx4z+820243Hn47nnp/vId05XHlxUAoW3KXNwWxc+iR0v7Vk7RoMBkMpYxRsQ9lARD9ou45xrPt9Fqx9p9hNpmflcPtH69iTcAaAiNAQ3h7VjS4Nq5dU2qDg/y5smmfi4/yNh5jx064ASnR2oZTi8dWP8/thx0jsIz0eYXDT0vGZ7m8uqH8Bz5z/DIK2h96UsIlHlj9CTm4JzJF+eQq2fuFIX/gInHtPCSU1GAyG0sco2IaygwgMfBFaDnSs++5B2LWkyE3l5iomfr6ZtfEn7etevK4jvZuWom/fUuChAS3zeECZ9fPfzN94MIASnT28/9f7fP331/b0uI7jGNF6hJcaZY8BcQN4sPuD9vTS/Ut5ft3zxWts4yfwm1PdrmOg7yMllNBgMBgCg1GwDWWLkFC45m2o21mnVa72kX10a5GamfXz3yzaesSenjKwNYM71vWhoMGBiPD4lW3p27KWfd3DX25lbfyJAEpV/lm6bykz18+0p69seiV3dLwjgBL5j5FtRjKqzSh7evb22Xy1+6uiNfLPb7BwvCPd7GK44gXjLcRgMJRZjIJtKHtEVNJ+sqtaI7NZZ+CzEdpnbiFY8tfRPKYSo8+N49Y+jf0haVAQFhrCrBs706JONACZObn838frOXAitYCahuKw48QOHl3xKApt7961Tlce6/1YmXDFV1wmdpvIJY0usaefWP0Em45tKlzlUwf0S3Ku5RmoTnu49gPtqtNgMBjKKEbBNpRNKteBEZ9DhFYaObUP5t0GBdh/7v43mQlzHQ/+85rVZMrA1uVa+QGoHBnOuzd3p2alCABOnMlk3OwNxn2fj0nKSOK+X+4jLVsHRGpQuQEz+s4gPDQ8wJL5F5tP75bVtR/27NxsJiybwL9n/vVeMSsN5t4Eqcd1OroODJ8LFYIroqXBYDAUFaNgG8outVvDkDcc6T1L9SQpD5xOz+L2j9ZxJlMrlQ1qRPHqjV0ICz07LoMGNSry1qiuhIfql4mth5L478K/AixV+SFX5TJpxSQOpRwCdJjxV/u/SvXI8jFptiAqhlfk5f4vU62C9sCTmJbIhGUTyMrxEOhIKfj2fjhivfCGhMG1H0LVeqUkscFgMPiPs0Oz8CEiEh1oGQxOtLkSzp/oSC9/EXYsyldMKcWj87YSf1ybRUSFh/LWyG5Ut0Z0zxa6NqrBlIGOQDRz/jjA5+v8HO76LOHtLW/z28Hf7OknznuCJtWaBFCi0qdedD1evPBFQiUUgK2JW3lp/UvuC697DzZ/6khf9gw06l0KUhoMBoP/MQq2F0SkmYjcLyLfisghEckEkkQk00ovtPKbBVrWs5p+k6Gpk1/hr8dpu04nPlm9L8+kxueGdaB1bJXSkjCoGNW7EVd1ckzonPL1n/x1OCmAEpV9Vh1exWubXrOnR7cdnccm+WyiR2wPJnSdYE9/sv0Tlu5fmrfQ0a3ww6OOdMfh0P22UpLQYDAY/I9RsN0gIleIyGJgB/A8cAUQC4QBYv3GAgOt/B0i8oOIXB4gkc9uQkLhmnegagOdTj+l7bGtcOp/HkriiW+324vf1KthufQYUlhEhKeHtqdlHW3nmpmdy71zNpKa6dvw82cLJ9JPMGnFJPukxm51ujG+y/gCapVvRrUZRd8Gfe3pqSun2k1nyDwDX4yBHB3ciTrtYdBLxmOIwWAoVxgF2wkRaS8iS4GFwCXARuA5YAjQAogBIqzflsDVaAV7M3Ap8K2I/CQi7dw0b/AnFWtoJdv6NM2B1bDsaVIysrn70w1kWmHC28RWyWMicbZSMSKM12/qQsUIvb/2JJzhiW+3BViqsodSiqkrp5KYlghAjcgaPH/h8/YIh2crIsKT5z1J3Ur6RTY5M5kHf32QrNws7bv++G5dMLwSXPs+hEcFUFqDwWDwPUbBzstGoAcwA2inlOqulHpUKfWNUupvpdQJpVS29btbKbVAKfWIUqor0A54GehptWMobRr2gn6THOnlL/LpnI/sdteVIkJ5bUQXIsNDAyRgcNG0VjSPXdnWnp7zxwG+czKjMRTMpzs+zWN3/VSfp4iJigmgRMFD1QpV9cuG6JeNrYlb+d+P42HTbEehgS9ATPMASWgwGAz+wyjYeXkNaKqUekApVaThPKXUNqXU/UAzqx1DIOgzARpfaCUUg/55giroUOjTh7ancUylwMkWhFzbtT6DOsTa04/M28KhU2kBlKjssPPETl5a55jAN7LNSPrU6xNAiYKPDrU6cG+Xe+3pt4/8xqYK1sTiDtdDxxsDJJnBYDD4F6NgO6GUGq+UOlbCNv5VSt3nK5kMRSQkFIa+RW5kDQDqygn+E/4hV3asy1WdjPsvV0SEp65uT71q+hP96fRsHv5yC7m5KsCSBTdZOVlMWjGJzNxMAFrXaM19Xcxl746b295M9zrdAMgVYVKtmqRWbwQDXzR21waDodxiFGxDuUNF1+H16Lvt6WtCV/B0q38CKFFwUzUqnFdu7ESIpeus+DuR2Wv2BVaoIOeNzW+w66SOBhoZGskzFzxDROjZ5fKxsIRICE9GtyE6V8+DOBAeznOt+5hgMgaDoVxjFGwviEih42eLyEB/ymIoPHPXHuCFg634Ksfxub7SkomQXEBUubOYro1qcPsFDp/N07/bwb7jZwIoUfCyNWEr7/75rj09vst4mlQ9u/xdF4mEXdRd9gKTEk/YV807sjyP7brBYDCUN4yC7Z0NIjLUWwERCRWRF4FvSkkmgxeOJKXx1CLtku+xrJtJCq+tM9JOwLcTdPQ4g1smXNyC5rV1HKW0rBwe+GIzOcZUJA/p2elMXjmZXKVHY7vV6cbw1sMDLFUQk5sDC8ZBdjqDzqQyINvhXeW/q/5LcmZyAIUzGAwG/2EUbO9UAb4QkVkiEu6aKSKNgBXABCCxtIUz5EUpxaSvtpKcof0514ypTdS1bzoK7FwE274OkHTBT2R4KC9d14lQy1ZkbfxJPvg9PrBCBRmvbXqNf5K0uVHFsIo8cd4ThIi5jXrkj7fg4FoAJCScyZe8Sg1rfsSx1GO8uO7FQEpnMBgMfsM8GbxzCXAMGAesEhH7d2ARuRrtjq8n8BvQOSASGuzM33iIX3YmAHru1LPXdCCixUXQdYyj0HcPQuoJDy0Y2tevyl19m9rTLyzeyYETqQGUKHj46/hffLTtI3t6YreJ1K9cP4ASBTkn42Hp4470BQ9SveF5PNrTEcFx3u55rDq8qvRlMxgMBj8jynwy94qI1AY+BfoDp4G70b6y7wIUMB14TCnrm3EZplu3bmrdunWBFqNYHEtO55KXfiMpLQuA0efGOXw8pyfBa70g+bBOd7wRrn7TQ0uGzOxcBs1azq5/UwC4oEUtPhzTHTmLPT5k5WYxfNFwdpzYAUCPc3rwzqXvnNX7xCtKwcdDYO8yna7dBsb+CmERKKW4f9n9/LT/JwDqVqrL/KvmUzG8YuDkLSEisl4p1a2w5devXx8XGho6NiQk5HKlVHV/ymYwGHyLiKQBW7Kysr4D5nTt2jXTbTmjYBeM6KfoNGAqOlQ6wFFgpFLq54AJ5mPKsoJ9z5yNLNysFegGNaL4YfwFVKrgFE1v5/cw5wZHesQ8aH5xKUtZdtiw/yTXvPG73WR9xvUdubrz2Tta++7Wd5m5YSYAFUIr8NWVX9GwSsMASxXEbPwEFtyl/0sI3PoT1O9qz05MS2TIgiEkZSQBOrT6g90fDISkPqEoCvb69evjwsPDv6pTp061atWqJUdERGSZFzWDoWyglCInJyfkzJkzFU+cOBFx+vTprdnZ2Td37dr1lGtZYyJSCJR+C9kGpOJQsDcCZVMbLWf8uivBrlwDPH11h7zKNUDLy6HdMEd60QTINKYPnujSsDo3946zpx9fuI3jKRmBEyiA7D+9nzc2v2FPj+s0zijX3khJgMWTHele4/Io1wAxUTE81P0he3r29tn2rwPlndDQ0LF16tSpVqdOnRMVKlQwyrXBUIYQEcLCwnKrVq2aEhcXd6J69eodQkJCRrkraxTsAhCRCBF5HfgMiAKeA3YBV6C9jBT6s6DB96Rl5jDl66329NWd69GnuYdQ1Zc/C1F6ghWn9sNvz5eChGWXBwa0tAegOZmaxVPfbQ+wRKWPUoonVj9BRo5+uWhdozWj2ri9lxps/DgV0q3BnGqNoN9kt8UGNxlMz3N6ApCjcnh81ePk5OaUlpQBIyQk5PJq1aoZ9ykGQxlHRKhVq1ZyaGjoSHf5RsH2gog0B1YD/wccBvoppR4BugGzgSbAChGZEDgpz16SFi5k24X9ePO9u/hg8ZNc8e9mJg9s7blCpRi4xGnS1e+vwLGzT2ksLNEVwnhySDsA+h5Yz5VP38m21m3Y3f8ikhYuDLB0pcPi+MWsPrIa0AFT/nPufwgLCSug1lnMP8th8xxHeuBLEOHetlpEmNJrCuEh2kHT1sStfL7r89KQMqAopapHRERkBVoOg8FQciIjIzOVUm5H9YyC7Z31QCdgMdBJKbUCQCl1Rik1ErgNyAZeEBHjB7sUSVq4kMNTplHxZAIhQJ20U9y1/nPCf1nivWKnEdCgl/6fmw2LJhrf2F7o16o249nD+E1fUiftFKIU2YcPc2TqtHKvZKdkpvDc2ufs6Rtb3Ujbmm0DKFGQk50Ji+53pNsMKXCeQ1zVOG5vf7s9/cqGVziWesxfEgYNxizEYCgfWNey2wvaKNjeiQIeVUpdoZQ67pqplHoP7VFkO2AiOZYix2bMgIz0POtCMjM4NmOm94ohITDoJbCNQu5bCZs+9ZOU5YPLV39NZE7eATeVnl7wvi7jvLbpNRLStNvHmKgY7up0V4AlCnJ+fwUSdfh4IirDZU8Xqtqt7W8lrkocAClZKby0/iU/CWgwGAylh1GwvdNXKfWstwJKqW1ok5H3S0ckA0DWkaNu12cfOVJw5Tpt9cQrGz9Og7R8E4ANFurfEuzrMsqOEzv4dIfjxevBbg9SOaJyACUKclznNPSfDFXqFqpqRGgEU3pNsacX7V3EuqNm/rjBYCjbGAXbC0qplYUsl66Uus3f8hg0ZzKyOV6xmtu8sNjYwjXS9xGoYrmdS02EZYUbbTsb8bRPC72vyxhKKaavmW4Ph97znJ5c3vjyAEsV5CyZAtnWF6Vz2kP3272Xd6FnbE8GxA2wp6f/MZ3s3GxfSmgwGAylilGwDWWOV37ezbutLiM9NG/0eomMpPaE+wrXSEQlGPCkI/3H2/DvNh9KWX6oPeE+JDIyz7r00HBODb81QBL5l+/++Y6NxzYCEBYSxqRek4zNrDf2LoNtCxzpK16A0KJPBH2g2wNEhWmvNbtP7mbuzrk+EtBQFvnkk0+qdenSpVV0dHRnEekqIl1///33KFv+5MmTzxGRrl9++WWVkvbVv3//ZpUqVeq8b9++8IJLly62bfd1u7t27YqIjIzsMmjQoCYFl/bOhx9+WE1Euk6fPr2WL2QrLxgF2wkRGSsioSVsI1RExvpKJkNe9iSk8N6Kf1jWoCsvdxpGZkxtECGsbl1in3icqoMHF76xNkMg7nz9X+XA9w+ZCY9uqDp4MLFPPE5Y3boohH+jqvFyp2FMTalPdk6ZD2Cah9Ss1Dw2wCNbj6RJ1RI/f8ovOVnw/SOOdPvroGGvYjV1TqVzGNvBcet8deOrJKYlllRCQxlk5cqVUaNHj26yZcuWip06dUoZOnTo8aFDhx6vVatWDsC+ffvCX3755dhu3bqlDBs27HRJ+3vmmWcOpaWlhUycOLFeyaUvG9x77731s7Ozefrppw+VtK2bb775VNu2bVOfe+65ev/++2+JdKjyhFGw8/ImsE1EbhaRqAJLOyEiUSIyGj3h8Y0CihuKyRPfbiMrRyvBKX0upsPyZbTevo3mPy8tmnINIAJXPA+2d6r45bDtax9LXD6oOngwzX9eSvU167lz0H9Y1qArO44mM+eP/YEWzae8s/UduxeLmpE18yh8BjesfQcSLFeXEdF53WAWg1FtRuWZ8PjqxldLKKChLPLll19Wz8nJkTvvvPPfFStW7J43b178vHnz4ps3b54J8Mgjj9Q9c+ZMyNSpUw8X1FZh6NGjR9oll1xy6quvvqq5Zs2aIj37/c2GDRv+2rBhw1++bHPJkiWVFi9eXH3w4MEn2rdv75MIYpMmTTqclJQUOnXq1PJpO1gMjIKdlxuBSOA94KiIvCMiN4pInLvCItJYRIaLyHvo0OnvAhHADe7KG0rGLzuPsWyn9uogAo9d2bbkn+5rt4YeTkrU4imQlVayNssxsVWjuKtfU3v6xR93cSo1M4AS+Y4DyQf48K8P7en7ut5HdER0ACUKcs4ch1+c5i5c8CBUKdmzNSI0god7PGxPf7X7q7MmwqPBwcGDByMAmjdvnu6ad/To0dD58+fXrF+/fsagQYN8FrBnzJgxiUopZsyYUdtXbfqCzp07p3fu3DnffigJM2bMqAMwduxYn30iuu6665JiYmKy5syZE3P69GmjW2IU7DwopeYCLYGpQDJwC/AJsEdEUkXkoIhss37TgL+Bj4HRQBIwCWillPoiIBtQjsnKyeWpRY6gMNd3a0C7elV903jfR6Ci5Sf+9EFYZUbNvHHb+U1oUEMP8pxKzeKlH3cFWCLf8OK6F8nM1S8L7WPac2XTKwMsUZCzbDpkJOn/NZrm9cxTAvrU68P59bTplkLx7B/Poozp1lnB/fffX9eyq64JMH78+DibDfI111wTB/Daa6/FZGRkyHXXXXc8JCSvCvPWW29VF5GutWvX7nD48OF8EwFmzZpVU0S6xsbGtnc1ZRg2bFhSzZo1sxcsWFAjMTHRb2YOqampMmnSpHPatGnTumLFip0jIiK61KpVq0OnTp1a3XvvvXVTU1PzjBp5ssGuV69eexHpunPnzoj58+dX6d27d4vKlSt3ioqK6tyxY8dWs2fPdvuAjI+PD//xxx+r1atXL3PAgAEpznlHjhwJq1OnTgcR6frmm2/WcK174MCBsJiYmI4i0vX999+v7pwXFhbG1VdffSIlJSX07bffzlf3bMQo2C5YHkGmA42A69Eh0g+jR7brAq2s3wrAQbSCPRSIU0o9q5Ty6ZumQfPpmv38fUzfC6IrhDHx0pa+azyqmnYrZmP5DEh275rOAJHhoUwZ2Maenr1mP38fK9uRn9ceXcvS/Uvt6Ud6PEKImNujR47tgHVOnkkHPAVhET5r/oHuDxAmWj9a9+86ft7/s8/aNgQvnTt3Th06dOjxBg0aZAB06dLFbn993nnnpQAsWrSoOsCAAQPy2V6PHTv25I033piYkJAQfsMNNzTOzXXMEVm/fn3kQw891DA0NFR99NFHe+vUqZPjXDcsLIxevXolp6enhyxcuLDEEyfdkZOTw0UXXdT86aefrnfgwIEKPXr0SB4wYMDJZs2apR85ciRi1qxZsUVV7l9//fWYa665pvmZM2dC+vbtm9S4ceP0LVu2VBo5cmQzVyUYYN68eVVzcnKkT58+p11fUGJjY7M/+uijvaGhoUycOLHRli1bKjjLfv311zc5fvx42E033ZQwZsyYk65tX3rppacBvv32W/duvs4yzBPEA0qpHKXUF0qpEUqpBkBtoB1wHtAWqKWUaqSUGq2U+lopVb5mewURp1IzmfGTY5T0rn7NqFW5gpcaxaDzKKhlhVnPOgM/P+Hb9ssZl7apw7lNawKQk6uY/l3Z/Yyfq3J5fq3Dh/OgJoPoUKtDACUqAyyZrCcGAzS+AFpc5tPmm1Rtwg2tHJZ2L6x7gcyc8mGKZPDMyJEjT82bNy++e/fuKQA333xzos3++v77709MTk4O2bp1a8WwsDDVp0+fVHdtvPPOO/tbtmyZtnz58ipTpkw5ByA5OTnkhhtuaJqenh7yyCOPHLrkkkvOuKvbs2fPFIClS5fmc3rfo0ePlrbR5KIszm0sWbIkevXq1ZXbtGmTeujQoS3Lli37e+HChf+sWrVq15EjR7YsXrx4R/Xq1YukS7zxxhvnfP7557u3bNmyY+HChf9s27Zt+4MPPnhYKcVjjz2Wb9Lmr7/+WhmgV69eKflbgwEDBqQ8+OCDh1JTU0Ouu+66pmlpaQLw0EMPxa5atapyq1at0t56660D7ur27dv3jIiwdu3ayllZWe6KnFUU3ZfSWYpSKhEwU9oDwCtL/+ZUqr5YG9aoyC194nzfSWiYHoX7ZKhOb5ytbbNjO/q+r3KAiDB5YGsGzVqBUvDzjmOs2J1In+YxgRatyCzau4jtJ7T5UYXQCozvMj7AEgU5u3+Cv3+yEgIDputJET7mjo53sHDvQpIykjiYcpDZ22czpt0Yn/cTbMQ9ssjnLtlKi/hnBq73Z/sbNmyIzM7OlkaNGmVUrFjRrd1QxYoV1eeff76nd+/ebZ577rm6/fr1S/7f//5X6++//4684IILkh5//PF/PbXfrl27dIA///yzomvexRdfnGQbWS8uR44cCQetyFepUiWPIh0SEsKll17qVvH3xujRo4+5elJ5/PHHj77xxht19u/fX2H37t0RtsmhANu2basIjm11x1NPPXV0xYoVlVesWFHl9ttvb3D99defnDlzZt1KlSrlfv7553uioqLc7vuYmJicmJiYrISEhPBt27ZV6Nixo08mUJZVjIJtCGr2HT/Dx6vj7elHL29FhTA/mcc1uwiaXwq7lwAKFk+Gmxf6RXkoD7StW5VhXerzxfqDADy5aBuL7j2f0JCys7/SstOYucER8v3mtjdzTqVzAihRkJOTrUevbXQZqQPL+IGqFaoyruM4nv5DT6R8e8vbXN3saqpFmq/PZys2BbV69epeoxB16NAh48UXX9x35513Nh46dGjzlJSU0Nq1a2d99tln8a5mEc7ExMRkAyQmJubzhz19+vQS2w32r/cxNwAAIABJREFU7NkzNTQ0lLlz58a0aNEifcSIEScbNGhQoohKV155ZZLrusjISNWgQYOM7du3V9y/f3+4s4J9/PjxMIDatWt77DckJIS5c+f+07lz5zazZ8+utWDBghq5ubm89NJL8QV5HalWrVp2QkJC+OHDh8PPdgXbmIgYgprnfthpd8vXrVF1LmvnZ+Xn0ifzuu3bvcS//ZVxHhjQkqhwvb92HE3my/VuvxwGLR/+9WEet3y3tLslwBIFORs/hgTLHCgiGvpN8V6+hFzb8lq7277krGT+t+V/fu3PENycOnUqFCA6OjqnoLJ33HHHiSuuuOJkSkpKKMAHH3ywNzY21qsyW61atRyA5ORkv4zitG3bNuO///3vgaysLHn00UcbNmzYsGODBg3aDRkypPH7779fPTu76Lp2kyZN3Cqx0dHRuQBpaWl59Dzb/rBtqyfq1q2bPWvWrHhbnWHDhh0fO3ZsPrtrT/2eOHHirPeHbUawnRARdzNplFLqolIXxsCG/SdZtPWIPT15YGv/R9Sr1RK6jdH+fQF+nAZNLypWZLqzgTpVIvm/C5sw86fdALywZBeDO9alYkTw76/EtETe+/M9e/qezvdQKbxSACUKcjJSYJmTW77z7oPKdfzaZXhIOPd1uY/7lukIrZ/t/IzhrYbToEoDv/YbSPxtZlGWqV69eg44lERvxMfHh69atcpuS71q1apKl19+uVu7Yxs2Bb5KlSr5NN1Jkyads3Pnzsj8tbwzb968eOf05MmTj40cOfLEZ599Vn3lypXR69ati16wYEGNBQsW1HjuuefSVq5cuaNGjRqFtsMODS2aHlu5cuWckydPhp06dSq0YcOGXjX62bNn17T937ZtW1RaWpp4Mg+xkZKSEgJQs2bNAl+CyjvB/xQsXfq6WWf8QwUApRTTndzyDewQS+eG+SZE+4cLH4bNn0Fmih6t2/wpdBlVOn2XQcZe0IRP1+znWHIGCckZvLv8H+65qHmgxSqQNze/SVq29nnerFozhjQbEmCJgpxVr0GKZb5aORZ631Uq3fZv2J/OtTuz8dhGsnOzmblhJi/2fbFU+jYEF7GxsVkAJ0+e9Kq7ZGdnc9111zU5efJk2MCBA08uXbq06tNPP12vb9++Kf379/do55yQkBAGULNmzXyK508//VR17dq1xXGMH++6omHDhtkPPfRQApAAsGrVqqibb7658Y4dO6KmTZsW++qrr5Y4uqInatasmX3y5MmwY8eOhQEeTThmzJgR880339SoV69eZr169TL++OOPynfccUf9Dz/80OtnylOnToWB41idzRgTkbw0drOYOMkBYPFf/7Jun/4aFR4qPDygVel1Hl0bznOa6PbLdMgs8tyTs4aKEWFMuKSFPf2/3/ZyPCW4Te/ik+L5cteX9vSErhMIDTnrv2h6JuUYrHzZke43GSLyzQPzCyLCxG4T7ekl+5aw6dimUunbEFx06dIlLSIiQh06dCgiJSXF4+fMBx54oO7atWuj27Vrlzpv3rx/nnnmmf3Z2dkycuTIJt7c4P3555+RAO3bt8/noeSPP/7YqZRaX9SlMNvVu3fvtDvvvPOYJYNfI0m2a9fuDMDWrVs99rNu3brISZMmNQgLC1Mff/zxni+++GJvzZo1sz/66KPaH330kcdJEAkJCaGJiYnh0dHROW3btg3uh0ApYBRsJ5RS+9wtgZbrbCM7J5fnFjvcvo3sFUfDmqXzMLfT+y6Itj5/Jx+B1a+Xbv9ljGu71qdpLW1ekZKRzayf/w6wRN55ZeMr5Fhu5rqf090e2MTggWXPaPeVoN1Zdhpeqt13rNWRSxtdak/PWD/DBJ85C4mOjlYdOnQ4k52dLStXrnRrz/XNN99UnjVrVmx0dHTOF198sadChQpq/Pjxx6+66qoThw8fjhg+fHicp/bXrFkTDdC/f3+/OPb/5ptvKs+dO7eqqwu77Oxsfvjhh6oA9evX96s/yr59+yYDrF692u3+c3ZpOHny5EP9+vVLbdiwYfY777yzNyQkhLvvvjtu586dbp3e//LLL5WUUnTr1i0lLMwYSBgF2xB0fLH+IHsT9MO8cmQY9/RvVvpCRFSCfpMc6RUvwxnjpdETYaEhPHJ5a3t69pp97D/u1k1twNmcsJkf9/1oT9/f9X7/2/aXZRL/hvUfONKXPA4BGO2/r8t99uAzG45tYPmh5aUugyHwDBo06CTA4sWL8wWDOXToUNitt97aODc3l1deeWVfq1at7Mrqhx9+uC8uLi79xx9/rPbkk0/mC4eelZXF6tWrK0dGRuYOHjw4XxAbX7Bp06aoG264oVmNGjU69erVq8WVV17Z+JJLLmlat27dDkuWLKkWExOTNW3aNL9GORs6dGhSWFiYWrFiRRXnQDw2xowZ03DPnj2R/fr1S5o2bZrdpeGQIUOSx40bdzQ5OTn0uuuua5KRkZHvpvnjjz9WARg0aNApf25DWcEo2IagIi0zh5lOQWXuuLAp1Sv5LkJckeh0E8RYESMzk2H5S4GRo4xwcevadI/TdvJZOYrnl+wMsET5UUrx0jrHcRwQN4B2Me0CKFEZ4JcnHUFl4s6H5pcERIwGVRowrMUwe3rmhpnk5J7186jOOsaNG3c8MjIy9/PPP6/prCDm5ORw3XXXNU5MTAwfMWJEvkiDVatWzf3000/3VqhQQT3++OP1ly9fnuez6Jdffln1xIkTYVddddWJmJgYv5xY11xzTdKECROOtG3bNnXfvn0VFi9eXH3dunXRMTExWRMnTjy8efPmbS1atPDrCHaDBg2yL7vsspOHDx+O+P777/PYlL/++us15s2bV7NOnTpZn3766T+uLg1nzJhxqEuXLilbtmypdM899+QJYpOdnc3XX39dIzo6Ouf2228/4c9tKCuI+czmQETec7NaKaVuLXVhAkC3bt3UunXrAirDG8v28OwP2jykduUK/PpgP6IiAmgbu/1bmDtC/w+NgHs2QLXy68GgpKzfd5Jr3vjdnv72nj60q1c1gBLl5beDv3HXUj05L0zCWDBkAQ2rNAywVEHM4Y3wVl9H+rafoX7g4qAkpiVyxVdX2CenTu8zncFNBwdMHhsisl4p1a0wZTdv3hzfsWNH8zmsBAwfPrzhnDlzai1YsGDXlVde6RNzjksvvbTpTz/9VG3VqlXbevbsmeaLNoOVpUuXVrr44otbDRky5Pj8+fPjfdHm7Nmzq950003Nbr/99n/feuutg75os6ywefPmmI4dO8a5rjcj2HkZ7WExlAKnUjN5Y5nDdnf8xc0Dq1wDtBoI9aznZk6mtkU1eKRro+pc2sbhuu2FIBrFzlW5vLLhFXv6/9k777CmzvaPf58kjLD3lKEyBJQtDgooatW+Wlu0dbTOahW3aH21v9bRYR11j9a9t6h1vFrrRFGroKCigkwRZCp7J8/vjwMJYaqME+B8risX58lZ38SY3Od77ue+h9oM5YLr+rjyk3TZbjCrwTUA6An1MMZeWtFn08NNXAv1Nsjy5cuTVVVVxT///LNJYxzv3r17wsuXL2v5+flltvbgGgD69OmTP2DAgLdnz57Vefz4sVJjHPO3334z0dTUFP3888+v69+6bcAF2LL0ruHhy6qiNsQfN2KQU8RUR2qvp4ov3eXAKSYE6LtEOg4/BKQ9r21rDjDNZyqaOV6PTMe/sZnsCirn7/i/EfmWCfiFAiGmOE1hWZGcE3sDiClvDUB4gO+P7OopZ5zDOGgrMalIyfnJOBZ5jGVFHM2Nubl52ezZs5NDQkLUTpw4US0X+31ZuHChiVAoFK9evbrJyuPJG+vXr3+loKBAFy5caFr/1nWzb98+rYiICJXvvvsu2dDQkMvbKodLEakEIUQDQAmltIhtLWzAZopIak4RfFZdQ1Epk1O3eZQr/uNozIqWGtnvB8RcYZY7DQJGHGRXj5wz91g4Ah8wdwndLLRxYkoPVicSlopL8dnpz/Ay9yUAYGKXiZjlOquevdowlAI7+gBJ5VXGXL4GhmxmV1Ml9j/dj5X3VwIAdJR1cMHvAlQUmrnSUCW4FBEOjrYLlyLybrwFIPkVIYQsIoR8yqKeNsOmq9GS4LqzqQYGNnVL9PelzyLp8vNzwCuu2VpdzO5rDQU+E1CHJrzF1edprOo5HX1aElxrKGpgfOfxrOqRe56flwbXfCXAZwG7eqow3HY4jFSZ74g3RW9w8Bl3wcvBwSFfcAG2LKT8UcESAFx7tyYm8U0Bjtx/KRnP+9gWPJ6clU0zcQYc/KTjqz+zp6UFYKajgq+6WUjGq/6OhFjMzt2yorIi/Bn+p2Q8ofMEaCg2+K5y60UsAq79Kh13nSh3E3sV+Yrwd/KXjHc/2Y3s4mwWFXFwcHDIwgXYshQA0GFbRFtj3eUXKBUxwVdXS2342OizrKgWen/P5KICQOw1IP4Wu3rknGm9raBSPkn1eUouzj9mZ+7LschjSCtgHHR9oT5G2TVvk5QWx5OTQNpTZllRDfAKYFdPLXza8VNYaDAXcbmludgbsZdlRRwcHBxSuABblucA+hFCJhBCvMufMyKEeL/Lg03hLZXotFyceiit6DPvY1v5bfqhZw04VQrOrvzM5Kpy1Ii+uhLGe1pKxmsvR6FMVL2xQVNSUFqAnU92SsbfOn4LoaBJOxG3bESlwPVl0nF3f0BVjz09dSDgCTDVaapkfODZAWQUcqnNHBwc8gEXYMvyJwAhgO0ArpU/1798ub7H1eYW2xpY+88LVGQOeNvoo1sHXXYF1YfPfICnwCwn3gWiL7OrR8751qsj1JWZ7nux6fk4HZbcrOc/+Owg3hQxPQ9MVE3gZ+1Xzx5tnLBDwJtYZllZE+gxnV099TCg/QBYa1sDAArLCrHj8Q6WFXFwcHAwcAF2JSilOwB8CmA/gOvlT6cBCHqHB9e39z2JSM6WSRuY97ENi2reEW0LwG2cdHyVc7HrQlNFAZO8OkjG669EoaSseVzsnJIc7I7YLRlPcZoCRT5LXUFbAmXFwI2V0nHPmYBQiz097wCP8DDDeYZkfDzyOFLym7TTNAcHB8c7wQXYVaCUnqOUjqOU9il/6gKltPe7PFgV3gJZd/mFZPlje0M4tpPvH3MJ3vMAgTKz/DoceHaWXT1yznhPS2irMK5/4ptCHA9NbJbz7ovYh9wSpsmbubq5XHT8k2tC9wI55elaqvpAt5ZRJ7yXWS900esCACgRl3AuNgcHh1zABdh1sxcAN5OtCXj0Kgv/PE2VjOf0awHudQXqRoDHJOn4+nJA3Ly5xS0JdWUF+PfqKBlvvBKNotKm7UXwtugt9j/dLxlPdZ4KAU/QpOds0ZQWAjdXS8cfzQGU1NjT8x4QQjDNeZpkHPgiEMl5zZuKxMHBwVEVLsCuA0rpeErpLrZ1tEbW/BMlWf6PozHsjFtY2TTP2YCCKrOcFgE8+4tdPXLO6O6W0FdnOvKm5BThyL2X9ezRMPZE7EFBWQEAwErLCgMsBzTp+Vo8IbuBvPLUCjUjwH0Cu3rek54mPeFi4AIAKBOXYdujbSwr4uDgaOtwATZHsxOa8BbXI9MBADwCzOlrzbKiD0BVD+g2WTq+vpypH8xRI0JFPqZWcrE3X49pMhc7szATh58floz9nfzB5/Gb5FytgpJ84NYa6dhrLqDQsiqtEEIw3Vk6IfN09Gkk5jRPKhIHBwdHTXABNkezs7aSez3E2RRWBuosqmkAPWcAiuXa058z9YM5amWkhzkMNRgXOz23GAfuJjTJefZE7EFhWSEAwEbbBn0t+jbJeVoN93cA+cwFLzRMAdcx7Or5QDyMPeBh5AEAEFER/nz0Zz17cHBwcDQdXIDN0azci3uDW9FMrVo+j2BmnxboXlegosPUCa7gxnJAVMaeHjlHWYGPab2tJOM/b8SgoKRx36+MwgwceX5EMp7qPBU8wn3N1UpxLnBrnXTsNRdQUGZPTwOpnIt9LvYcEnKa5iKOo+k5cOCAlqurayc1NTUXQogbIcTt9u3bQkKIm4eHh21t+23fvl2bEOK2cuXKBncsGzdunBmfz3e7c+dOy7ql0wR89dVX5nw+3y00NLRBXxBisRidOnWyNzY27pKbm9uqv5xb9YvjkD/WXZa615+7mKK9niqLahqBHlMBJU1mOTMaeHycXT1yzvCuZjDWZL6fM/JKGt3F3vVkF4pERQAAOx07+Jr5NurxWx33tgOFTJ1waJoDLqPZ1dNAXA1d0cO4BwBATMXYGr6VZUUcH0JwcLBw3LhxHR49eqTi7Oyc5+fnl+nn55eZnZ1dZ65XXl4eWbRoUTszM7PiWbNmNbjr0M8///xaSUlJPHv2bLOGHqslc+fOHeHRo0f1hwwZkunm5lbUkGPxeDwsXrw4KSUlRXHJkiWGjaVRHuECbI5m49/YTNyOyQTAuNczfK3q2aMFINQGekhdMwSt4lzsOlASVHWxY5Ff3DjvV3pBOo5FHpOMpzpPld+uoPJAcS5we6N07D0PELT8OuFTnaXdHc/HnUdcdhyLajg+hBMnTmiLRCLi7++feuvWrReBgYHxgYGB8R06dCipa79ffvnFMCUlRTEgIOC1kpJSgxsUmJmZlX311Vfp9+7dUz98+LBmQ4/XUpk3b147sViMn3/++XX9W9fPyJEjs+3t7Qu2bNlilJSU1GrLO3EBNkezUbnutZ+LKSx0W7h7XUH3KUzXOwB4EwM8OcGuHjnnS3czmGoxd1zf5JdgfyO52Lue7EKxqBgA4KDrAJ92Po1y3FZLZfdayxxwHsWunkbC2cAZPU16AmBcbK6iSMvj1atXigBgbW39zm5paWkpdu3aZaCioiKeMGHC28bSMnny5AwA2Lhxo0FjHbMlERISonz79m0NDw+PXAcHh+LGOu7XX3+dUVRUxNuwYYNeYx1T3uACbI5m4W5sJu7EMu61gEcww7cF515XpWpL6RsrOBe7DhQFPBkXe1tQw13s9IJ0HI+Spudw7nU9FOcCtzdIx97fAXwF9vQ0MpVd7P/F/Y9zsVsIAQEBJoQQtxMnTugCwKxZsywr8q+HDh1qWde++/fv105PT1cYOHDgWw0NDZnGBH///beaQCBwU1VVdQkPD1equu+ZM2fU+Xy+m7q6unNERITMend39yIHB4eCu3fvajx69Kjavo3N1atXVT/99NP2JiYmXRQVFV21tbWdOnfubDdnzhyTlJSUaikyR44c0fT29rbW1tZ2UlBQcDUyMnL08/OzfPDgQY250vHx8QpjxowxNzc376ykpOQqFApdjI2Nu3h5eVn//vvv1YLd9evXGwDAV199lVl13cKFC40IIW62trb2BQUF1b5wK/49HRwc7IqKimTWT5w48Y1AIKD79u3TF4laZwUuLsDmaBYq514PdW0Hc10VFtU0Ad0mV3KxY7lc7HoY5tauUV3squ61l6lXgzW2au5tAwrLTT4tc8BpJLt6GhknfSd4mnoCYFzsP8O5iiItARcXlwI/P79MMzOzYgBwdXWV5F97enrm1bXv6dOntQCgT58+OVXX9e/fP++7775LKigo4A0fPrxj5WAwMTFR8M0337QXi8VYv359Qk0urbe3dw6lFCdOnGjSdsMLFy406tu3b6ezZ8/qqKqqij/++OMsJyen/NzcXP66deuMQ0JCZH44p02bZjpy5Eir4OBgDSsrq6IBAwa8VVdXF506dUq3Z8+e9keOHJFJa0lISFDo2rWr3f79+/VFIhHx8vLK9vX1zTYxMSkJCwtT3bx5c7Wc6EuXLmkBwKBBg6q9r7/++muKl5dXTlRUlHDixInmldedOXNGff369cZqamqiY8eOxSorK8uk7Ojr64vs7e0LUlJSFIODg1tZQMDABdgNhBBylRDyNyHkC7a1yCt3YzNxN5a5FS3gEUxvDbnXVanqYget5FzsOqjJxf7QiiKce/2eVMu9bl3udQVTnaQu9sX4i5yL3QIYPXp0VmBgYHzXrl3zAGDs2LEZFfnXAQEBGba2tiWU0tB79+5FVt3333//VQcAHx+fGgPximAwMjJSOHHiRDMAEIlEGD58eIeMjAyFr776Kr221JKePXvmA8CNGzeq1ZQdOnSoxGV/n0dkZKTMhId9+/ZpLV++3FQoFIoPHjwY/eLFi4hz587FXr9+PTohIeHJ9evXn9nZ2UlSZo4ePaq5ZcsWI6FQKD537lzk/fv3I8+ePRv34sWLiB9++OFVcXExmTRpUvvKOc4bN27Uy8jIUBg5cmR6YmLi48uXL8ecP38+NjQ0NDItLS18y5YtMk7H48ePldLS0hSMjIxK2rdvX1r1tfN4PBw9ejTOwMCg9PDhw3rbt2/XBmQvWtasWVPjRQsAuLu75wPApUuXWmit3rpptcnlzUiv8r99CSHfAfgvpfQai3rkjvWVcq+HuraDmU6rvFhlXOw7m4GiLKmL7dy6nMHGZJhbO2y+Fo2krELGxb6TgMk+HevfsQqce/2eyLjXFq3Ova7AUd8RnqaeCE4KluRi/+b1G9uy6meJphvbEj6YJdmhbJw2OTlZkJaWpqCoqEjt7e1rnAhZEQw6OzvbHz58WN/X1zf32bNnynfu3FHv1KlT4fbt22vtTOTk5FQIAE+fPq3241Wfs14bVdNYli1bZgIAixcvfjVq1Kjsqtv7+PgUVB6vW7fOEAC++eabtIEDB8po+Pnnn1PPnDmj/ejRI9UNGzborVixIgUAUlNTFQBg4MCBOTyerL8qFApp1ePcv39fBQA6duxYay68sbFx2d69e2MHDRpkO2fOHEsPD48Cf39/i4yMDIVRo0alT5o0qdZ8eHt7+0IACA8Pb5VBARdgN5ylYO4EuALwAXAZANc2rpx7cW8kudd8HpFxLVsdFS72tV+YcdAqoMsXAJ/7b1YTFS7296ceAwC2BsXi6+4WUFV69/erqnvt7+TPudd1UZwH3N4kHXvPa5XudQX+Tv4ITgoGwORiT3acDEtNS3ZFcTQ6ycnJAgDQ1NSs8zZY5WBw1qxZlkVFRTxVVVXxsWPHYoRCYa1VR/T19csA4O3btwpisRiVg9OAgICMgICABpUEfPnypSAyMlIoEAiov79/tVznqpSWluLBgwdqAPDtt9/WeO6vv/46Y/78+ao3b95UB5ACAB4eHvkHDhzQ//HHH9sBwJAhQ3KqBvqVSU1NFQCAtrZ2ne/rgAED8ubNm5e0YsUK048++sguLy+Pb2trW+dFCwDo6uqWAUB6enqr/BLiUkQaCKV0KaV0MaV0MAAdSB1tDgDrr0hzr/1cTFtf7nVVun1bpaJIILt65JyqudgH/32/XOzdEbsl7rW9rj2823k3usZWxf0qlUNaqXtdgZO+E1dRpA3w9u1bPgCoqqrWO1tuwIABeZMmTUopKCjgicViLF++/GWXLl3qrI6hra0tBpiUkqysrEaPm6Kjo5UAwNjYuERdXb3WgLeClJQUQUlJCeHxeLC2tq7Rsbe2ti4GgNTUVEkqytSpUzMHDx78JiEhQWnMmDEddXR0XDp16mQ/btw4s3/++adaWa+KuuPq6ur1vq/Lli1LcXJyys/Ly+MrKSnRY8eOxaioqNRZKlFTU1MMADk5Oa3SlOSstUaEUloG4CbbOuSFkPg3CI6WutetMve6KsqaQPepwPXyW9FBq4AuwwBeq/z+aDCKAh6m9u6I/zv1BACTiz26uyWEivW/XxmFGTgeybnX70xJvmzutdfcVu1eV+Dv5I/bybcBMHWxJztNhoWGBcuq6oClNIuWjI6OjggA8vPz6/3iyM7O5l28eFEyWfHevXuqAOp0jd++fcsDAD6fDy0tLZkAeM2aNXrBwcFq76t506ZNr4yNjT9o4gml0ri1tu88Smm1FXw+H2fOnIm7f//+61OnTmndvXtXLTQ0VG3v3r0Ge/fuNfjiiy8yjh07JnE5tLS0RACQm5tb7/saEhIifP78uQoAFBcXk5CQEBVHR8c6L1yys7N5AKCpqdkqy4hwATZHk7H+ijT3+jPnVlT3uj66TQHubAGKs4HMF0DEKSbI5qiRYW7tsPlqNJKzi5CRx7jYE7061Lvf3oi9Ml0bubrX9XB/J1BQHkdomgFOraPudX04Gziju3F33H19V+Ji//rRr2zL4mhETExMygAgKyur3phm7NixFvHx8cre3t7ZT58+Vdm/f7++r69vzrhx47Jq2yctLa0iVaK0au5ycHCw2smTJ3XfV/OyZcuSjY2NAQBWVlbFAJCSkqKYl5dH1NTU6nR+jY2NyxQVFWlJSQmJiopSrMmBj4mJUQQAQ0PDag53165di7p27ZoCMK78sWPHNCdNmtTh+PHjeidPnnzr5+eXU75vRWpMne9rTk4Ob8SIER2Ki4uJn59f5unTp3VnzZpl0b179/zacuIBICMjQwAAenp61SZQtga4FBGOJiE04S1uvmBSw3gEbcO9rkCoxTSfqeDGSkDcKi/QGwUlAR/+vaSTG7cGxaKotO73K7MwE0cjj0rGk50mc+51XZQUyNa99gpoFV0b3xV/J3/J8vnY80jMqTM1lKOFYWxsXGZkZFRSWlpKqtaxrsy6det0//rrLx0TE5OSwMDAuB07dsTxeDzMmDHD8vnz57X+hwgPDxcCgIODQ0HVdYGBgfGU0tD3fdja2koCT3Nz8zIbG5vC0tJS8scff9QbrCsoKMDV1TUPAHbs2FHj9gcPHtQDAC8vr9y6jsXn8zFy5Mjsvn37ZgHAw4cPhRXrunXrlg8A0dHRwtr2B4Bx48aZx8XFKfft2zcrMDAwfubMma/z8vL4X375Zceq9a8r8/TpUyEAODs7V3tfWwNcgF0HhBANQogfIWQTISSYEBJNCMkghLwoH28sX6/BtlZ5Y+NVWfe6vV4bca8r6DYFUCyvPJQRCTw9za4eOecLdzMYajC/i+m5xTh872Wd2+97ug+FZYUAAFttW/ia+Ta5xhZN6G4gP51Z1mgHOH/Nrp5mxtXBp9NzAAAgAElEQVTQFd2MugEARFSEHU92sKyIo7Hp0aNHLgDcuHGjxh+b0NBQ5YULF5oLBAK6f//+WD09PdGQIUNyp0+fXhEMdiguLq4xGLx9+7YqAHh7e9cZrDaE77//PhkAli5danb06NFqbdmDgoJUYmJiJDlds2bNSgWAHTt2GF66dEnmNS9ZssQwLCxMVU1NTTR9+nTJJMhNmzbp3rp1q9pEqJSUFP6DBw9UAcDCwkIS+Nvb25cYGxuXpKamKlQ+d2U2bNige+rUKV1jY+OSQ4cOxQPAqlWrkrt27ZoXERGhMm3atHa1veaQkBBVAOjXr1+Tva9swgXYNUAI6UwI2QogCcBxAFMB9ADQAcxExo7l42nl65MIIX8SQjqzJFmuCE/MwvVI5secR4Bpbcm9rkBFhynbV0HQ74C43rkrbRZlBT78K5Xo+/NGTK0u9tuitzj8/LBkzLnX9VBaCASvl4695rQp97qCKU7Su0pnos8gKS+JRTUcjc1nn32WBQBXrlypZnjl5eWRESNGdCwqKuItXLgwydfXN79i3erVq5Pd3d3zHj9+rDpt2jTTmo4dFBSkQQjBsGHDak0jaShjx47Nmjt3bnJ+fj5vxIgRVjY2NvaDBw9u37t3bysLC4vOPj4+ds+ePZN0ZxwxYkS2v79/SkFBAW/gwIGdPDw8bAcPHtzexsbGfunSpe2UlJTotm3b4szMzCR53qdPn9by8vKyMzQ0dOzdu7fVkCFD2nt7e1t36NDBMTExUcnNzS1v9OjRMq+xf//+WQBw/vz5au/rgwcPlP/73/+a8/l8um/fvlh9fX0RAAgEAhw7dixWW1u7bNeuXQYHDx6sdsGQmprKf/bsmYqRkVGJp6cn52C3dgghhoSQnQDCAEwCkAfgGIDZAD4G4A7ApvxvfwBzwATY+QC+BRBGCNlBCKnWDaktUdm9Huxkgo767z3/o3XQYxqgWP7a054Cz8+xq0fOGeFhDn11xsVOzSnGsZCab+Pvf7pf4l5baVmhj3mfZtPYInmwD8hLZZbVTQCX0ezqYQl3I3e4G7oDAMpoGXY+3smyIo7GZNSoUVmGhoalFy9e1M7JyZGJbSZMmGAeHR2t7OPjk71kyZLUyusqgkEtLa2ynTt3Gh46dEgmGAwJCVF++vSpSvfu3XPqm7TXUH7//ffXFy9ejBw4cODbrKwswcWLF7XDwsJUNTQ0RAEBAcldu3aVCUS3bNmSdOjQoeiePXvmREVFCS9evKidnZ0t+OyzzzKDg4Ofjhw5Uqae9rx581LHjx+fZmBgUPr48WPVCxcuaD9//lxob29fsHbt2vibN29GKSkpyeR/z5w5Mx0ADh48KJOKUn7R0qGoqIi3YMGCpL59++ZXXm9paVm6bdu2OEIIpk6d2v7FixcyV/U7d+7UKSsrI2PGjEnn81tnEQBSeTZqW4cQkgNAFcApALsAXKSU1ms7EkL4AAYCmABgCIBcSmmTtlRtCtzd3WlISEiDjvEkKRuDNt4CABACXJrtDWvDVtmk6d34ZzEQvI5ZNuwCTLnJvDEcNbLzVhx+PvcUAGCiqYzr3/WGokD6W5ldnI3+gf2RX8p8l6/yWYUBlgNY0doiKC0CNjgDua+Z8cCVsndW2hj/vv4XEy9NBAAIeAJc8LsAI1WjBh+XEBJKKXV/l23Dw8PjnZycGlQ3maNmvv/+e6PffvvNdO3atfGzZ8+ut570uzBx4sR25YF3dNWAta3g5eVlHRwcrPH48eMntXVlfF8cHBzsYmNjlaOjox+bmpq26LbH4eHhek5OTpZVn+ccbFmuAXCilA6jlP7vXYJrAKCUiiil5yilfgCcAVxvSpHyzIZKlUM+6WLctoNrgGk8o1Ce8pb6GIi8wK4eOWeUhzn01BijIzm7CIEPXsmsP/jsoCS47qDZAR9bfNzsGlsUYQekwbWaIeA6hl09LONh5AEXAxcAQJmYc7FbG99//32qsbFxyZo1a4xry6d+HxITEwWHDh3S9/DwyG2rwTUA/P777694PB5+/PFH48Y43uHDhzWfPn2qMnXq1JSWHlzXBRdgV4JSOoRS+qSBx3hMKf2ssTS9K4SQUYSQm4SQbEJIHiEkhBAyjRDSbP/Gz17n4NJT6d23GW0x97oqavqA+wTp+MYKgLtrVCtCRT4mVSrRt/laNEpFzHVubkkuDjw9IFn3reO34DXfx7vlUVYC3FwrHXvOAhTqLAbQ6iGEYIqjNBc78EUgUvNT69iDoyWhpqZGf/rpp1eJiYlK69ev12vo8RYtWmRcXFzMW7duXZsuO9OtW7fCESNGpP/111+6ISEhyvXvUTtisRg//fSTqaGhYWnVdJ3WBvfr1AoghGwGcBBMbvhNAP+AyRXfBOBEeQpLk7PparRkub+DIToZccVVAAA9ZwKC8u+k12HAi3/Y1SPnfN3dAtoqzIT1V28LceohMxnt0LNDyC1lJptbalhyqSH1EX4IyCm/A6CqD7iNZ1ePnNDDpAcc9RwBAKXiUuyJ2MOuII5GZeLEiW8ppaHz589Pb+ixdu/enSgSiUJ79OhR2BjaWjIHDhx4KRKJQt3d3Ysachwej4dnz549TUlJefQuXStbMlyAXQeEkHfOoyaEuDSlljrOOxRMlZMUAI6U0kGU0s8BWAN4BuBzANObWseL1Fz878lryXiGr3VTn7LloG4oG9xwLnadqCoJZBrNbLkWjeyiXOx/tl/y3CTHSeBz3TFrR1QK3FwjHfecAShWq87VJiGEYLKTNA/9eNRxZBRyKdEcHByNCxdg100YIaRbfRsRQmYAuN0MempiYfnf/1JKJQnQlNJUABXdFRY0darIpmvRkpixr50BOptWq8rTtvGcBfDL+x8khQCx19jVI+eM6WEBTSHjYsdnFmDJje3ILmZSINuptcMn7T9hU5788+gYkFXe8VioA7h/w64eOcPL1At2OnYAgGJRMfZG7GVZEQcHR2uDC7DrxhxAECFkbk0ryxvRnACwDkCz3+oghLQD4AagBEy5QBkopTfA1PI2AtC9KTRknz2LZz698e2SUdjz9y/olRjKudc1oWEMuFYqj3ZjJedi14G6sgK++ag9eiWGYs/fv2DirO3YvLkMnhEiTHKcBAGv3o7IbRdRGXBztXTcYxqg1EZLZdZCZRfbM0IEj2k78czOHi98+yD77FmW1XFwcLQGuAC7bsYDKAWwkhBylhCiU7GCENIVTL1sPwBRYBrPNDcVaSkRlNLacsTuV9m20cg+exavf1wEpKaAB8CwMAsB4YGwDLvZ2KdqHXjOBnjlzbBe3gHib7GrR875IisCs8JOwLAwCzwA+jmA/wXA5xn3tVUnESeBNzHMsrIm4PEtu3rklN5mvTEszgCT/0ehl00BSlGWnIzXPy7igmwODo4Gw/1S1QGldC8ADzC5zP8B8JAQ8hEhJADMZEJLAAcAuFNKH7EgsX3534Q6tqnoOd2+jm0+iLS160CLZOc7KJSVIG3tusY+VetAywxwHiUdB61kT0sLIG/zRiiLSmWeUyyleLNuI0uKWgBiEdM1tILuUwFlbrJxTfAID35XC6FcpUgYLSrivsM4ODgaDBdg1wOl9CmArgD2AjADcAPAKgBlACZQSsdQSvPrOERTUnHft67z55X/rbEgNSHk2/KSfiHp6e836brs9ev3ep4DwEdzgIqiLnFBQMIddvXIMdzn6wN4+heQEcksK6q36aYy7wI/vebO19xnjIODo6FwAfY7UJ5+sQ1ANoCK4vVnAOyvdafmoULLByfzUkq3UUrdKaXu+vr677WvwLjmmvO1Pc8BQKc94DRCOg5axZ4WOUdgVHOHPYFxwzvvtUrEYln3uttkQKjNnp4WQLa6To3Pc99hHBwcDYULsN8BQsh8MN0ZNQAcA5ABYDiAW4QQcxal5Zb/rWsGU8W63Dq2+SAM5swGUZatOV8sAPhTRteyBwcAwGsuUFHUJeYK8Kph7elbK7Eje6CoylzGIr4CUr+cUPMObZ3I80BaBLOsoMqkh3DUSmjCG2y1/hhFfAWZ54myMgzmzGZJFQcHR2uBC7DrgBCiSwg5D+A3AMUAvqaUjgAzYfAmgG5g8rI/Z0lifPlfizq2MauybaOhOXgwjH/+CQITE1AA6RrAn58Q7G0X19inal3odgQ6D5OOb3C52FUpFZVitc59bP2EIF2DuUWTKtTCeudhWFlmCcpVYJGFUtnPkcdEQFWXPT0tgA1XonHdzA3rnYchV1MPIAQCExMY//wTNAcPZlseBwdHC4cLsOsmDMBAAI8AuFFKDwMApTQZgC+AXwBogumWyMbMq4flfx0IIbX1QO5aZdtGRXPwYFhfvYLCGwcwbZoAwQ58nIk+g6S8pKY4XevBex4kGT4v/gaSw1iVI2+cjT2L1/mvEezAx49zDaB6+zYm/2cRrpu54dGrbNyIanCTttZF1N9ASvk8a4EQ6DGDXT1yTlhiluQzFGTuBr1zF2D37Cmsr17hgmsODo5GgQuw68YUwFYA3Ss3cQEASqmYUroIwMcA0sB0U2xWKKWJAB4AUATwRdX1hBAfAO3AdHls0tl0boZucDd0BwCU0TLsfLyzKU/X8tG3BRw+k465XGwJpeJSbHu0TTIe6zAWFjraGOkhzcZaf+UF52JXQCnTHbQC9wmA2vvNp2hrbLoq/Tof7GSCDvpcnXAODo7GhQuw62YkpdSfUlpc2waU0qsAnABcbj5ZMvxW/ncFIcSq4klCiAGALeXD5ZTSJm+EM8VpimT5VPQppOSnNPUpWzbe30mXn58DUp6wp0WO+F/s/yR3QDSVNDHcdjgAYIpPRyjyma+shy+zEBydyZpGuSL6CpD8gFnmKwGeM9nVI+c8ScrG5WdpAABCgOm9rerZg4MNDhw4oOXq6tpJTU3NhRDiRghxu337tpAQ4ubh4WFbdXtCiJupqWmX2o535coVVR6P5zZ16lTThmpbsmSJISHE7fDhwy2uZbGHh4ctIcTt3LlzNVYW+1DKyspgY2Njb2Ji0qWwsJDUv0ftxMfHKwiFQpcBAwZ0aCx9bMAF2HVAKT36jtulARjQxHJqO/cJAH+A6db4uLwhzkkALwDYAzgNYFNzaPEw8oCLAdPPpkxchl1PdjXHaVsuhg5Ap0HSMVcXGyKxCNsfb5eMx9iPgaqCKgDASFMZX3ZtJ1m34cqLavu3OSiV/dy4jQXUuSordbGxknv9SWdjWBs2apzB0QgEBwcLx40b1+HRo0cqzs7OeX5+fpl+fn6Z2dnZ/A85nlgsxuzZs81VVVVFS5cubbDzM3/+/DRDQ8PShQsXmhUXFzcomGwtrFy5Uv/FixfC//73v8lCobBBtxctLS1LR48enf73339rN/aFQHPCBdiNBGXxfjWldCqAr8Cki/gA6A8gGsB0AEMppaLm0EEIwRRHqYsdGBWItIK05jh1y8VnvnT56Rkg7Rl7WuSAi/EXkZDD9E1SV1THyE4jZdb797KCAp/5PbsX/wZ3Ytq4ix13A0j8l1nmKQCes9jVI+c8e52DvyNSJePpvpx7LY+cOHFCWyQSEX9//9Rbt269CAwMjA8MDIzv0KFDyYccb9u2bTpPnjxR+eabb9L09fUb/HuooqJCZ8yYkZKQkKC0evVqvYYerzk5ePBg3IMHDyJ8fHwarX9HdnY2b+XKlaampqYl06ZNa5Qv5aVLl6YoKirSBQsWtKt/a/mEC7ArQQj5WJ6O8z5QSg9RSj0ppRqUUlVKqRuldHNzpIZUpodJDzjqOQIASsQl2P1kd3OevuVh7ATYDCwf0Dadiy0Si7D10VbJ+Gu7r6GuKGtemGoJMdSVc7ElVK4c4joa0Gyxv0XNQmX3ur+DIeyMuS6X8sirV68UAcDa2rqovm3fhc2bNxsSQuDv75/RGMcDgG+//TZTUVGRbtu2zVAsbtaf2QZhbW1d4uLiUqSurt5oords2aKbnZ3NHzFiRIZAIKh/h3fA2Ni4zNfXNysiIkLl0qVLqo1y0GaGC7BluUgIuVo+OfC9IYT0IoRcA3ChkXW1GAghmOwk7R53POo4Mgob7TutdVLZxX5yEkiPYk8Li/yT8A/ispkSj2oKavjK7qsat5vaywp8HuNi34nNxL24N82mUa6IuwkkBDPLPAWmSyhHrUSm5OJ/j6XZATN8rVlUw1ETAQEBJoQQtxMnTugCwKxZsywr8q+HDh1q+SHHvHHjhsqTJ09UunbtmmtrayvjgD969EhJTU3NRSAQuF24cKHaTNfQ0FBloVDoIhAIXC9fviwT5Onr64t69+6dlZCQoPTXX3+xeqW2bds27e7du9toamo6CwQCV21tbScbGxv70aNHm0dERChV3ra2HOyhQ4daEkLcNmzYoPvkyROlwYMHt9fV1XVSVFR0bd++vcP//d//GYlENZv/O3fuNACASZMmybjXYrEY3t7e1oQQt5EjR1YrJywSidCjRw8bQojbmDFjqvUUGTNmTCYAbNq0yeC93xQ5gAuwZVkIwA3AVUJIFCHkB0JID0KIYk0bE0KUCCE9CSGLCCHRAK4AcAWwoBk1yx1epl6w17UHABSLijkXuz5MXQHripsebdPFFlOxjHs9ym4UNJVqnj9krqsCPxfpPKU262JXrhziPArQYrPnlfyz6Vq0ZLmvnQE6m7a4+WmtHhcXlwI/P79MMzOzYgBwdXWV5F97enrmfcgxT5w4oQ0AvXr1yqm6ztHRsXj16tUJIpEI48aN6/D69WuJ/Zqbm8sbPnx4x6KiIt7ChQuT+vbtWy2lwtfXNxcATp06pfUh2hqDgIAAk8mTJ3cIDQ1Vs7W1LRw4cOBbR0fHfJFIRA4cOKAfHBys8j7HCwsLU+nRo4ddWFiYao8ePXJdXFzyEhMTlZYtW2Y6YcIEs6rbP378WCkmJkbZ3Ny8uOoFDI/Hw9GjR+MMDAxKjxw5ord161aZ1qnfffedyd27d9Xt7OwKtm7dmlj12P/5z39y+Xw+rl27pllWVvY+L0Mu4ALsSlBKVwCwBbATTHm7nwDcApBDCHlGCLlFCPlf+d9nYFqn3wSwBIAxmHbqNpTSthchVaJqLvaxyGPILGzjubL14fNf6fKTE0BGdO3btkIuJ1xGdBbzmlUEKhhtV3c30Gm9pS72regMhCa0MRc74TYQf5NZJnzAK4BdPXJOdFouzj1Klow591o+GT16dFZgYGB8165d8wBg7NixGRX51wEBARm2trYllNLQe/fuRVbdl1IampSU9Ljq88HBweoA4OnpWWPO8eTJk9+MHDkyIy0tTWHEiBGWFeke48ePN4+JiVH28fHJXrp0aWpN+3p5eeVVPkdlKtz49328z6S+wsJC8scffxiqqKiIQ0NDI+7duxd59uzZuBs3bkTHxMREPHr06Im3t/d75Vrv3r3bYNKkSWnx8fFPzp07F/vvv/9GnT17NorH4+HAgQMG0dHRMq1PL126pA4wF0M1Hc/Y2Lhs3759sXw+H3PnzrV4/PixEgCcPXtWff369caqqqriY8eOxdY0MVJDQ0NsbW1dmJeXx7958+Z7XSjIA42TLNOKoJSmAPiWELIAwDcAPgPgDibwrkoxmAD7NIA9lNKsZhMq5/Qy64VOOp3w/M1zFImKsDdiLwLcuSCgVtq5Ax37MK3TqRi4+Tvw+Z9sq2oWxFSMPx9JX+vITiOhpVy3IWSpp4ohziY4+YAp57f+SjT2TfBoUp1yReXca6eRgLYla1JaAhuvRqNiGnovW304mbFmONZLl71d3NjW8KE8Hvs4lG0NVXn27JkQAJycnGrN596xY8fL0NBQ1aCgIM1FixYZGhkZlQUGBuoaGhqWHjlyJI7Hq9mLdHV1LQKA2NhY5YKCAqKioiIJEivc+PfVa2pqWvqu2759+5ZfVFTEs7W1LXR0dKxWTrhLly61lhiujc6dOxf8/vvvyZVf88CBA/M++uij7KCgIM2LFy9qTJ8+XfK6wsLCVACgU6dOtb6//fv3z5s3b17SihUrTL/88suOZ86ciZ4wYUJ7sViMtWvXxnfu3LlWndbW1oXPnz8XhoSEqPTu3bvgfV8Pm3ABdi1QSt8AWAVgVXmXRAcABmA6N2aBaS4TQSltlEkYrY0KF3v29dkAgCORRzCu8zjoKOvUs2cbxue/TIANAI+OMXWydTuyq6kZuPbyGl68ZdI8hAIhxjqMfaf9pve2wumHSRBTICgqHQ9fvoWLuXZTSpUPXv4LxF5jlgmPc6/rISY9D2fDpe71rD6ce91WyMnJ4RUVFfEAwNDQsNYcAxUVFXr8+PGYHj162C9fvtxUQUGB8vl87N27N9bIyKjWqiNKSkpURUVFXFBQwEtKSlKwtraWpEiMHj06a/To0U1qupmYmJSZmJiUREZGCidNmtRu6tSpGS4uLg2KSfr165dd0wWFtbV1UVBQkGZycrKMg52RkSEAAF1d3TpzOJYtW5YSHBysfuvWLQ1XV1f7vLw8/siRI9MnTZr0tq79tLW1ywAgNTVVoa7t5BEuReQdoJQWUkpDKKX/o5QeppReoJSGcsF13fQ27w0bbRsAQGFZIfZG7GVZkZxj3g3o0ItZpiLg5mo21TQLlFIZ93qE7QhoK79bkNxBXw2fOplIxusut5Fc7BvLpcuOw9vERVhD2HQ1GuJyX9HbRr9tXIRxAADevHnDBwBFRUWqrKxcZyldR0fH4kWLFr0SiUSkqKiIN3v27OT+/fvXm/etqqoqqnyuxuThw4fKQ4cOtaz62L9/v+QWzM6dO+O0tbXLduzYYejq6uqgo6Pj5Ovra/Xbb7/pZ2Zmvrcmc3PzGt1kDQ0NMQBUXLBUkJOTwy9fX2f5w4p8bBUVFXFeXh6/Y8eORTt27KiWd13bebOyshr9/W1qOAebo8ngER6mOE1BwHXGYTv8/DDGOYx75wCqTeKzAIi9ziyHHwG85wE6LbqZVZ1cTbyK52+eAwCU+crv7F5XMN3XGn+FJzPdwtuCi/3yXyDmKrNMeLLdQDmqEZueh7/CkiTjluBey2OaRUtFV1dXBAAlJSWksLCQ1NUApaysDCdOnJDcYn3w4IGqWCxGbekhFeTn5/PLzyXj4O7fv1/r9OnT752L9MMPP6RUuNBJSUkKJ0+e1K26jYWFRUmFOz5gwIC8hISEx0ePHtW8fv26ekhIiNr169c1r127prly5UqTc+fORXl6eha+6/nre71V0dTUFAHSQLsuDh8+rFVQUMADGEc6Li5O0cHBoc40lpycHB4AaGtrN0s/j8aEC7A5mpQ+5n1gpWWF6KxoFJYVYt/TfZjlyjXDqBWLHkB7byAuiHGxg1YDn21mW1WTQCnFn+GV3OtOI6ArrPZbUidWBoyL/VcYkwKw/soL7BnfinOxK7vXXb7k3Ot62HRN6l57WevBzaIVX3xxVENdXV0sFArFhYWFvLS0NIGFhUWt+c1z5841CQkJUevSpUt+YWEh/9q1a5pLly41rG2CIwAUFRWRioDRxMREJsB++PChSk3BcX2MHz8+syLAHjRoUC6ltN4LLnV1dfHEiRPfTpw48S0AJCQkKEybNs3s/Pnz2tOnT7d4+PDh8/fV8a7o6emVAUBmZmad8eT9+/eVf/jhBzMFBQU6cODAt2fOnNEZPnx4h5CQkOd13V148+aNAAAMDAzeOTddXuBSRCpBCNlVw2Mn27paMhUudgWHnh3C26I6U644fCpVeQw/DLyJY09LE1LVvR7nMO6DjjPD1xqkvFnx9ch0hCW20rnGifc49/o9iMvIl1x4AcDsvvLvXnM0Pvb29gUAEBYWplzbNn/99Zf6pk2bjNXV1UXHjx+PPXz4cIyysrJ42bJlpteuXau1esWDBw+UAaBjx45FlSc4AsCaNWuSy1NJ3+sxaNCg3Ia+ZgsLi9IVK1YkAcDz58+FDT1eXbi6uuYD0smkNZGTk8MbMWJEx6KiIt4PP/zw6uTJk3HdunXLjYiIUPH396+zO9aLFy+EAODh4dGiJjgCXIBdlXG1PDgaQD+LfrDSYloSF5QVYN/TfSwrknMsPQFLL2aZipiKIq2Mqu71cNvh7+1eV2BloIbBjtJc7PWXW2mjnuuV3esvAD2uzXddbLz6AqJy+/ojKz24WXATrNsiXl5euQAQHBxcrZEMACQmJgq++eabDmKxGBs3boy3tbUtcXd3L1q2bFliWVkZ+frrrztmZGTUmP5w8+ZNNQDo2bNng4PiDyEqKkpxzZo1em/evKkWywUGBmoCgImJyQe1l39XBgwYkAswKTW1bTN+/Hjz2NhYZV9f36xFixal8fl8HD16NE5HR6dsz549BpVzyiuTnZ3Ni46OFqqpqYk8PT25ALuF07uGhy+riloBnIv9AfSq5GKHHQbexLKnpQmo5l53Hteg483sYyVxsa+1Rhc78Z60wgznXtdLbHoeTj+U5l5z7nXbZdiwYW8B4Pr169W6LYpEIgwfPrxDZmamYPTo0eljx46VfHHMmTMnY/DgwW+Sk5MVv/rqK8uajn316lUNAPj8889Z+cLJyMjgz50718LIyMjZ0dGx06BBgzp88sknHaytrR0WL15sJhAI6C+//PKqKTV06tSpxMbGpjAxMVHp+fPn1Zrybdq0SffkyZO6RkZGJYcOHYqveN7CwqJ0+/btcYQQTJ8+3TIqKqravufPn1cXiUTo3bt3dmO1YG9OuABblocA/qWU3qj8YFtUa6Cqi70nYg+7guQdy49kXeyg1uNii6m4mnutJ9Rr0DGtDNRlXOx1rc3FvrZMutzlC0CPCxjrYuNV2dxrd0vOvW6reHp6Fjo5OeWHhISoRUZGygRxCxYsML5z5456p06dCmvqJLh///4ECwuL4kuXLmktW7ZMv/K61NRU/rVr1zQtLCyKhwwZUq1LZHNgZ2dXvHTp0kRvb+/s7OxswdWrVzWDgoI0RSIRRo4cmXH37t2nI0eOzG5qHRMnTkwDgO3bt8vchnz48I+Ua94AACAASURBVKHy/Pnzzfl8Pt27d2+soaGhzERFPz+/HH9//5ScnBz+l19+2aG4uJhUXr9v3z5dAJg+fXpaU7+GpoBQWmflmjYFIUQEpmHMN+XjRQDCKKVn2FXWPLi7u9OQkJAmO/6l+EuYe2MuAKbe8cWhF7m62HWRcBvYPZBZJnxg+v1WMantcsJlzLk+BwDjXl8YeqHBATbAdOvrtzZI0lDk5NSecG0NFUVe3gV29WeWCQ+Ydp9LD6mDmPQ89FtzQxJgB/r3bPLJjYSQUEqp+7tsGx4eHu/k5JTRpII4ZNi2bZv25MmTO8yaNev1unXrkuvfo35++eUXgx9//NHs119/ffn999+nN8YxWyo5OTk8CwuLLqqqquL4+PjHjeE2v379WmBpaelobW1d+OTJk2eNILPJCA8P13NycrKs+jznYMtCyh8VLAHTyZGjEehr0RfW2ozzVlhWyLnY9WHRE2jvwyxTERC0il09jYCYirElfItkPLLTyEYJrgHGxW6VdbEru9eOw7nguh42XnkhU/eaqxzCMXHixLddunTJ37Vrl0F6enqD6ykXFBSQTZs2GVlYWBTPnTu3zV8saWhoiOfPn5+clJSkuHnz5g+bTFOFxYsXG5WUlJDly5c3aYpLU8IF2LIUAOAs1SaCR3jwd/KXjI88P4LMwvfuJNu26P29dPnRUSAjmj0tjcA/Cf/IdG1saO51VWb2sQav/BI5KCodIfFvGvX4zU7CbSCuPEuN8Lnc63qITsvDmXCucgiHLDweD+vWrUvMy8vjL1682Kihx1u1apV+amqqwrJlyxKVlJS4NAAA3333Xbq1tXXhihUrTAoLC0n9e9ROfHy8wv79+/U//vjjrMaoqsIWLS9rvGl5DqAfIWQCgIpIxogQ4v0uO1NKg5pMWSuhj3kf2GjbIOptFArLCrHryS5815ULGmrFvDvQ0Zcpz0bFwI0VwNDtbKv6IERiEf4I+0MyHtVpVKOnCHXUV8NnzqY4WT7Bbe3lKByc2L1Rz9GsVHavnUa0ihShpmTd5SgZ97pVpAhxNAq+vr75YrG4UZr4LF68OG3x4sUtMi+4qRAIBIiKinraGMeytLQsLSwsfNgYx2ITzsGW5U8AQgDbAVwrf65/+XJ9j6vNLbYlwiM8THWeKhkfjTyKtALue6pOelVysR8fB9Ij2dPSAC4lXEJMdgwAQEWg8sF1r+tjRh9r8Mtt7ODoTPwb20LvksQFAfE3mWXCZ7p6ctTK85QcnHv0WjIO6GfDohoODo62DhdgV4JSugPApwD2A7he/nQagKB3eNxsZrktFl8zX9jr2gMAikXF2PmY6+VTJ2ZdAat+5QMKXP+NVTkfgkgswh/hUvf6K7uvoKX83l2E34n2eqrwczGVjNf8E4UWN5mbUuDqr9Kx8yhApwN7eloA6/6R5tz3tTOAs1nTfL44ODg43gUuwK4CpfQcpXQcpbRP+VMXKKW93+XBqvAWBCEE05ynScbHo44jJT+FRUUtgMq52BGngJTH7Gn5AM7HnUdcNtORUk1BDWMdxjbp+Wb4WkNQ7mL/G/cGt2NamIsdfQVIvMss8xQAn/ns6pFzniRl42KE9Dtkdl/Ovebg4GAXLsCum70AbrEtojXiZeoFR31HAECpuBTbHm1jWZGcY+oKdBokHV9rOS52qbgUW8KklUPGOIyBppJmk57TXFcFX7ibSca/X4psOS42pcC1X6Rjt7GAljl7eloAa/+R1j0f4GCEzqZN+/ni4ODgqA8uwK4DSul4SukutnW0RgghmO48XTI+9eIUEnOr1fnnqEyvhdLlyPNAUqPM12lyTkefRlIeM+lQU0kTo+1GN8t5Z/haQZHPfMU9fJmFa5EtJNc/8gKQXD6/R6AMeHG513Xx8OVbXHnO/NsSAszhcq85ODjkAC7A5mCN7sbd4WboBgAoo2Uy3f04asCoM+DwuXRcOUdXTikWFWNr+FbJeELnCVBTVGuWc5toCTGqm9T5XX0pCmKxnLvYYrFs5RD3bwANY/b0tAB+vySd9DvI0QS2RuosquHg4OBg4AJsDtYghGCmy0zJ+FzsOcRkxbCoqAXQayHTzQ8AYq4A8cHs6qmHE1EnkFqQCgDQVdbFCNsRzXr+qb07QqjA9JWISM7B3xFynuv/9BSQWp5fr6ACfDSHXT1yzu3oDARHM/n1fB7BHK7uNQcHh5zABdgcrOJq6ApPU08ATJe/zWGbWVYk5+jbMt38Krj6MyCnucUFpQXY/khas3uS4ySoKKg0qwYDdWWM7WkpGa/+JwoieXWxRaWydyW6TQHU9NnTI+dQSrGqkns9zLUdOug3z90RDg4OjvrgAmwO1pnhMkOy/E/CP4jIjGBRTQug1wKmsgQAvLwDRF9mV08tHHh2AJlFjLtoqGKIYTbDWNEx2bsD1JSYnlrRaXk4+UBOO++GHQLelN/BUdYEPGfWvX0b5+rzNDx8mQUAUOTzMJNzrzk4OOQILsDmYB0HXQf0s+gnGW98uJFFNS0AbUvAbZx0fGUpk7srR2QXZ2PPkz2S8VTnqVDiK7GiRVtVEZO8pDWk111+geIyEStaaqW0iOnSWYHnLEDIdSGsDbGYYtXfUvd6VDdzmGoJWVTEwcHBIQsXYHPIBdOcp4FXnlscnBSMkJQQlhXJOd7zAEF5QJHyGHh6ml09Vdj5ZCdyS3MBAJYalvi046es6vnGqz10VRUBAElZhTj070tW9VQjZCeQw1Ragao+kx7CUStnHyXjeQrz+RIq8DGttxXLijg4ODhk4QJsDrmgo1ZHDOogrfO89sHallO3mA3UjYDulYKwa78CojL29FQirSANh54dkoynu0yHgCdgURGgpiTA1EpB2Kar0cgrlo/3C8W5wM3V0rH3d4CiKnt65JySMjFWX5LWvR7vaQl9dXbujnBwcHDUBhdgc8gN05ynQaE8t/hR+iNcTbzKsiI5x3MWUNGwJTMaeLifXT3lbA3fimJRMQDATsdOJv2HTb6qlEaQmV+CXbfiWFZUzu2NQEF5p0lNM9n0H45qHLn/Ei/fFAAANIUKmOzTkWVFHBwc8kRAQIAJIcQtICDAhE0dXIDdQAghVwkhfxNCvmBbS0vHRM0Ew22lFTI2PNiAMrGcuIzyiFAb+Gi2dHx9OVCSz54eAAk5CTj54qRkPMt1liT1h22UFfiYVWki3LagWGTmFbOoCEBeGnB7k3Tc+/8AAefG1kZ+cRk2XHkhGU/r3RGaQgUWFXFwcHDUjHz88rVsegHoB+AIIeQeIaQ3y3paNN86fgtVBeb2eGx2LM7GnGVZkZzTbQqgXt6IJC8FuPsHq3LWP1iPMspcFHU16oqeJj1Z1VMVPxdTWBkwpdzyisuw8Wo0u4JurARKyy+KDBwAxy/Z1SPn7LwVh4y8EgCAsaYyxvSwZFcQBwcHRy1wAXbDWQrgZwD/A9AJgHzWTGshaCtrY5zDOMl4c9hmFJUVsSdI3lFUYcr2VRC8HsjPZEVKeHo4/kn4RzIOcAsAIYQVLbUh4PMwv7+tZHzw3wS8zCxgR0xmDBC6WzruuwTg8dnR0gJ4k1+CbUGxkvGcvjZQVuDer9YGIcSNEOIGABs2bNDt3LmznVAodNHT03P68ssvLZKTkwUAUFBQQObMmWNiaWnZWUlJydXY2LjLjBkzTIuLi2v90gkMDNTw9fW10tXVdVJQUHDV19d3HDx4cPt79+7VWILm9OnT6qNHjza3tbW119LSclZUVHQ1MTHp4ufnZ/ngwQPlmvYpKCgg33//vZG9vb2dioqKi6Kioqu+vr6js7Nzp5kzZ5oUFBRI9J07d06dEOLm4eFhW9OxIiMjFQkhbqampl1qe760tBSLFi0ytLW1tRcKhS7q6urOlbfNycnh/fDDD4adO3e2U1NTc1FWVna1srJyCAgIMMnOzq4WA1ZOr4iJiVEYOnSopb6+vqNQKHSxt7e32717t6S80aVLl1R9fHystLS0nIVCoUu3bt1sbty4UWuzg5SUFP7MmTNNbGxs7FVUVFwqjrl06VKDmv7dhg4dakkIcduwYYPukydPlAYPHtxeV1fXSVFR0bV9+/YO//d//2ckEslWhCKEuK1du9YYANauXWtc8XmqmjISHh6u5OfnZ2liYtJFQUHBVVVV1cXU1LRLv379Ou7Zs0erttfwPnABdgOhlC6llC6mlA4GoAPG0eZoAGPsx0BXWRcAkFqQikPPD9WzRxvH+WtAtzz1oThHdsJcM0EpxZqQNZJxf8v+6KzXudl1vAv97A3hbsH8RpSKZJuVNCtXfwEqUqAsPgKs5SNXXV7ZcOWFZGKqlYEa/FxNWVbUcnhz+IjOCy/vLs/s7N1eeHl3eXP4iA7bmurD39/fdN68eRaamppl3t7eOYQQevz4cb3evXvbZGdn8z766CPbXbt2GVhbWxd27949JysrS7Bp0yajcePGmdd0vPHjx5sNGzbMOigoSMPc3Ly4X79+Wfr6+qXnzp3T8fb2tjt69Khm1X1mzpxpcezYMT2BQEDd3d1zfXx8shUUFOipU6d0PT097f7++2+ZzkYikQh9+vSx/u2330wTExOVPDw8cvv37//Wysqq6PXr14obN240zsjIaLSrQkopBgwY0HH58uWmurq6pX379s2ytraWOFIxMTEKrq6udr/++mu75ORkRWdn5zxPT8/snJwc/tq1a409PDw6paen16jn5cuXih4eHvb37t1T69atW569vX3Bs2fPVL755psO27Zt0963b5/Wf/7zH9s3b94ofPTRRznGxsYl9+7dUx84cKDto0ePquW53bt3T+jo6OiwceNG45ycHEG3bt1yPTw8cpOTk5WWLFli1rt3b+uioqIaL47CwsJUevToYRcWFqbao0ePXBcXl7zExESlZcuWmU6YMMGs8rZ+fn6Ztra2hQBga2tb6Ofnl1nxcHFxKajQ4unpaX/q1CldZWVlsa+vb7aXl1e2vr5+6a1btzR27tzZKB2+2J3a38qglJYBuMm2jpaOioIK/J388cu/vwAAtj/ajs+tPoe2MlcXuEb4AqDvYuDo18z4/nag27dMvexm4sarG3iQ9gAAICACzHSR3yYphBAs/KQThv5xBwBwNjwZk7zaw7Fdo5gW70ZSKBAhzVVHv6WAnLn98kRcRj4O3E2QjL/rbwsBn/OH3oU3h4/opC1fbkGLi3kAUJaerpi2fLkFAOiMHPGGXXW1c/z4cb27d+8+dXV1LQKA9PR0voeHR6eoqChh165dO6mrq4tiY2Mf6+rqigDg9u3bwvJAWW/p0qWvbWxsSiqOtXLlSv09e/YYWFlZFR07dizGxcVFEoTu379fa/z48R0mTZrU3tfX97G+vr7EEv31119fDRw4MFdPT0/ynFgsxurVq/Xmz59vMXXqVIsXL15E8HjMZ/HSpUtqd+/eVbe3ty+4c+dOpIaGhrjyfpcvX1bV1tZutKYFr1+/VgSABw8eRHTu3FlmQolYLMawYcM6xsTEKI8ZMyZt06ZNSerq6mIAyMvLI19//bXlX3/9pTNlyhSzwMDA+KrHDgwM1B0/fnzatm3bEgUCJlRcsWKF/oIFC8wXLVpkVlhYyNu6dWvchAkT3gLMxcWQIUM6nD9/XvuXX34xOnbsmOQ/bF5eHvHz87NKT09XWLBgQdJPP/2UoqDAzJ1ITU3lf/755x3u3Lmj8f333xuvWbMmuaqW3bt3G8yZM+f1qlWrkvl85nrgwoULaoMGDbI9cOCAwY8//phiZWVVWq47PiAgwCQyMlL4ySefZNV0vFWrVhnm5+fzFixYkPTbb7+lVF6XnZ3Nu3//fqMU1ee+oTjkEj8bP1hqWAIA8krzsPXRVnYFyTudBgHtujLLohLgyk/NduoycRnWha6TjL+w/QLmGjWaSHKDm4UO+jsYSsbLLzxvvrKQlAJ//yAd2w0G2rk3z7lbKCsvPkdZeYt7D0sdfGxvWM8eHBVkbtliWhFcV0CLi3mZW7bI9S2ABQsWJFUE1wCgr68vGj9+fDoAxMTECLdv355QEVwDQM+ePQt9fHyyKaW4dOmSesXzZWVl+P33340B4MiRIzLBNQCMHj06a9SoURm5ubn8bdu26VZdVzm4BgAej4fvvvsuw8XFJT82Nla5cqrI69evFYD/b+/Ow6Iq2weOfx92EEERUFwQ9wUVFfcWt3IplxYrs0zTsmw3yzdbzLS016yfvtmivanpq2XZYi6plVbmlhua4YaKu4iiCLIzz++PMwyLgAoDZ4D7c11cw3PmzJmbGdB7nnOf+4GOHTsm5kyusx7Xq1evK1lJrr1MmDDhVN7kGmDp0qU+ERERlcLCwq7MnTv3RM7n9fb21gsWLDjm5+eXsWzZMr/8ZrFr1qyZ9vHHH5/MSq4Bxo4dG1ulSpWMmJgY11tvvTU+K7kGcHZ2Zvz48WcANm3a5JPzWB999JH/qVOn3O64446LU6dOtSXXANWrV89cvHhxtIuLi543b16AJZ9F01q0aJE0ffp0W3IN0Ldv38Sbb7453mKxsHr1ap+rHlSI2NhYF4D+/fvH573P19fXctttt9mlW4Ak2MIhuTq58kJ4doeMJfuXcPyygy0O4kiUgl7vZI/3fgsnS2exnu+jvudwvLHEt5eLF0+0eqJUnre4xvVpirOTMWu86fAF1h84VzpPvH8lHN9kfO/kAre9VTrPW0btOBbHT3uzJ5levbOZw9X2O7KM8+fdbmS7oxg4cODlvNsaNWqUChAUFJSWM/nO0qBBg1SA06dP2zK4zZs3e8XGxro2bNgwJTw8PN8Lerp165YAsGXLlqsa0B8+fNj1vffe8x85cmSd+++/v+69994bcu+994ZkJWmRkZG2BLtjx45Jzs7OLFmyxP/dd98NOHHiRIlXCTz88MMX89u+cuVKX4ABAwZczJmYZvHx8bG0bNnySmZmptqwYcNVP3eXLl0SPDw8cs06uLi4UKtWrTSA3r17X/X+ZCX6sbGxuVr7rFmzxhdg0KBB+cYaEhKSXrdu3dRLly657N2796rykttvvz0+6yxBTlnlMDnf7+sRHh5+BWD06NF1v//+e5/k5OQS+QdFSkQKoZTyAW4DegBtgOpAFeAicA7YCawHftFaX/XLJoqnR50etA1sy85zO8nQGczYOYMPun1w7QdWVMEdoflAiFxmjNe8BiNWl2jpQWJaIrN2ZbeZG9FiBNU8qxXyCMfRIMCbBzvU4X9bjA9u76zcxy2NAnAtydKDzHT4eUL2uP3jUE36OBdEa807K/fZxv1aBdG6TimW8pQDLv7+aRmxsVcl0y7+/mn57e8o6tevf1V8WbOwNWrUyDd2b29vC0BKSortj/jQoUPuAFFRUR5ZF08W5MKFC7lyojFjxtT88MMPa2RmZhb4j2h8fLwtew0NDU196623Trz11lu1x48fHzx+/Pjg2rVrp4aHh18ZOHDgpaFDh17MOSNcXH5+fhne3t75nno7duyYO8DkyZNrT548uXZhx4mJibkqqKxEOi8vLy8LQHBw8FX3+/r6WgDS0tJyvV7Hjx93BxgxYkT9ESNGFBYKZ8+edWnVqlWuGfng4OB8+6lmnSXI+X5fj4kTJ8Zs3ry58ubNmyvfc889jdzc3HTTpk2TunTpkvDoo4/GdejQIflGjlcQSbDzoZRqATwLDAG8gLx/XH5AA6Az8BSQpJRaBMzSWu8tzVjLM6UUY9uN5aFVDwHw87Gf2XVuF20C25gcmQO7bSLsXwWWdDixBfYth+Ylt0z553s/Jy7FKOOs7lWdR0IfKbHnKgkv3NaYZbtOk5CaweHYK3z51/GSbf22fS7EGbP9uPtC13El91zlwOq9Z9l5/BIArs6Kcb2bmhxR2VPtqadO5azBBlDu7pZqTz11ysy4riW/Wdcs+c1mFiQjw7gwNjAwMP3mm28udCKsSZMmthnu+fPnV5kxY0ZQpUqVLJMmTTrep0+fy8HBwelZCW3//v3rrVixwi9vadlrr712bujQoXFfffVV1Y0bN3pv377de9myZX7Lli3zmzZtWvLGjRv3+/n5XVeZSN4OGXl5eHgUeJysDwXt27dPrFOnTqEN//P7MHOt1/hG3oOsn6Nbt27xfn5+hS5ukbMGvijPdT0qV65s2bRp08F169ZVWrlypc+WLVu8IyIivPfs2VPp008/rTF27NjT06dPP1Pc55EEOwelVHVgCjAMo3wmBlgBbAYigTjgMuADVAOaYyTZ3YBRwGNKqfnAa1rrmFIOv1xqFdCKPiF9WB29GoBpf01j0Z2LHGbxEofjVx86jIItHxnjX96Exn3Axf5ng08nnmbBPwts4+fbPo+ni12uDSk1/t7uPN2jIe/+tB+AGb8cYmDrWiWzeEnyJWMxoCy3vgReDt/MwTQp6ZlM+Sl79vqRziEEVyuwA5goQNaFjBc+/rhWxvnzbi7+/mnVnnrqlCNf4GhPISEhaQABAQHp+V3MV5ClS5f6Abz66qsnX3zxxfN574+Ojs63TR9AcHBwxrhx42KBWIDNmzd7Dhs2rN7+/fs9J0yYEDRr1qxTAO7u7haApKSkfP9DO3z4cJFXncqagb777rvjxo8fH1vU49hDUFBQWnR0tMcTTzwRO3jw4Kvqns3So0ePKz169LgCkJKSoubMmeP34osv1v3ggw9qDh06NC4sLKxYK5FJlpLbIWA48APQD6iltX5Qa/0frfUvWuudWuso6+3PWuuZWuvBQC1gAPAj8ChgUt+v8un5ts/j5mQkiHsv7GXlkZUmR+Tgbn0JPKwdp+KOwF8lc4HozJ0zSbMYEx+h1UK5s/6dJfI8JW14lxDbEupxV9L4eH0JLT7z+zRItuY0VYKND0KiQPM2RnMizjhTW8XLled6NLrGI0RB/B4cHNdowx9/N9sXuaPRhj/+rijJNUDXrl2TqlSpkrF//36v/Op7C3Lx4kVngODg4PS89+3cudNj37591z2b0Llz5+TRo0efA9i7d6/tcXXr1k0Ho4Qivz7QK1asuKp14PXq27dvPMD3339v+qf4Xr16XQb45ptvSqUVmJubmwWyz15cDw8PD/3cc89dCAsLu6K1ZseOHcX+NC8Jdm7rgTCt9SCt9Sqt9XWdxtFaZ2qtV2it7wFaA7+VZJAVTe3KtXOVHszYMYOkdJMWBykLvPyga47FZ36fBon2ncDYHbubVUdX2cYvtXupzJ5V8HB15pW+2aUH8zZGE33ezkvOnz+U+4PObRPBtcAJsArvXEIKs9ZlL4n+4u2N8fWSJdHFjXN3d9cvvvjimczMTO6+++6G69evvypxunz5stPs2bP9cnYEybqA7vPPP/fP2Z/51KlTLsOGDauXX132jz/+WHnJkiW+6em5c/KMjAxWr17tC1C7dm1bOUbjxo3T6tSpk5qQkOA8ceLEXK1xFi5cWGXevHmBRf25H3744UuhoaFJ27Zt8x4yZEhwTEzMVTU3kZGRblOnTrVLz+fCjBkzJrZGjRpp3333XbUxY8bUTEhIuOo/i23btnnMnDnTLhfw1KpVKx3gwIED+X4IevfddwN279591YetyMhIt6ioKE+AevXqFWv2GiTBzkVrPbC4NdRa67+11nfZKyZheKzlY/h7+gNwLvkcc/fONTkiB9fh8dyLz6ybbLdDW7SFd7dmlzr0DO5Juxplu81cv1ZBtAk2Lp5Ly7Twdo4L6+xizavZi8oEd4HQe+x7/HLm/TUHuZJmlGI2CvRmSAfHbvsoHNsbb7xxbuTIkTFRUVEePXr0aNakSZPmvXr1anDbbbc1CA0NbVa9evWwJ598st6RI0dstXTjxo2L8fb2zvztt99869Wr16Jv3771u3fv3rBx48Ytk5KSnG677bZLeZ8nIiLCc/DgwQ39/Pxad+rUqfGAAQPq3X777Q1q1qzZau3atVX8/f3TJ0yYkKvv8sSJE08ppXj33XdrhYaGNuvbt2/9pk2bNh82bFiDJ5988mze57hezs7OLFu2LKpRo0bJX375ZUCDBg1ahYeHN+nfv3+9Ll26NAoJCWkRGhra8v3336957aMVj6+vr2XZsmVRQUFBaTNmzAiqU6dOq44dOzbu379/vU6dOjWuVatWyw4dOoTOnTvXLsn+wIED4z08PCxr166t0q5duyaDBg0KeeCBB+ouWrTIF2D+/PkBrVu3blGnTp0WPXv2bDBgwIB6nTt3bty6desWly9fdu7Xr19c9+7diz2LJwm2KBMquVbKtXjJ/H/mczrxqv7xIouzK/SZmj3euQDO7LbLoZdFLWPvBeNzqJuTG2PbjbXLcc2klOLN/qG28S/7YvjjoJ1m/Q+uhUNrs54J+r4ri8oUYu+peL7eccI2fqNfc1lURhTbf//735OrVq060K9fv7jLly87//bbb75bt26tnJyc7NSzZ8/4Tz755GivXr0Ss/Zv3rx52tatWyP79esXp7VW69atqxIVFeUxZMiQ2L/++mu/j4/PVRfj3XvvvfFjxow5ExoamnTs2DH3NWvWVN2+fbu3v79/+tixY0/v3r07MucCOAAjRoy4uHDhwqiwsLArR44c8diwYYOvj49P5jfffHPo6aefvqr2+0Y0aNAgPSIiYt+UKVOON2vWLCkqKspz9erVVQ8dOuTp7e2dOWrUqJgvv/yyhGricuvQoUPy33//HfnKK6+cqlu3bkpkZKTXmjVrqh49etQjICAg/fnnnz8zZ86cY9c+0rUFBwdnfP3111EdOnRIOHDggOd3331X7euvv/bfsWNHJYA333zz1IMPPhjr7e1t2blzp/fq1aurRkdHu7dv3z7h888/P/LDDz8ctUccqtQWVyiDlFJVtNZXfUotYN82WutdJR1TSWrXrp3evr10eicXhUVbGLxiMPvijNnF2+veLm37rmXRfdnJXXAXeHRVsZK7xLRE+n3fjwspFwB4vOXjPNfWcVdtvFEvf7Obb3acBIzluH96/pbite3LsrIKdAAAIABJREFUSINPusAFa7lD20dgwId2iLR80loz6NPN7DhmtMvt0TSQucPbmxzVtSmldmitr+s0zu7du6PDwsKKlTgJIRzH7t27/cPCwkLybpdpgcJFKKU6XmsnpdSzwKZSiKdCc1JOvNIhu7b452M/s/n0ZhMjKgN6TzEWMwFjcZO93xbrcLP3zLYl14FegTzW8rHiRuhQXu7TBG934/WKOpfIgs3FnFD5a3Z2cu3uAz3eKGaE5dt3O0/ZkmtXZ8VrdzYzOSIhhCgaSbALFwz8oZTK9xy4UspHKbUUmAHYdflTkb+21dvSr34/23jqX1NJz7zqIm+Rxb8RdMixsuKa1yA1oUiHOhJ/hP9F/s82Hhs+Fi/X8tU2LbCyB8/1bAhAtxM7aPTcQ+xr1pxDPXoSv3z5jR3s8uncbfm6jgPvIl+zVK7FL1/Owe49aPbQ7cxf8zbdTuxg5M31aRDgbXZoQghRJJJgF+5RIB2YppRarpSytbtRSrUHIoB7gIMY/bBFKXgx/EUquRorux6NP8qifYtMjsjBdfsXeFsvUE88mzvpu05aa6ZsmUKGNi7UaxvYlr71+tozSocxvEs97r/0D89HLCUg6SJoTcbp05x5Y8KNJdlrX4c0a0lnQFPo+GTJBFzGxS9fzpk3JpB55gwKqJ58iRcilvJosnQ7FUKUXZJgF0Jr/QXQAdgH3AnsUkrdrJR6EdgAhAD/A9pprfeYFmgFE+AVwOiw0bbxJ7s/4VzSORMjcnAevtDr7ezxlk8gJvKGDvHT0Z/YenYrYJTqvNrxVVQ5vVDPzcWJR/5ZhUeeMyM6JYVz/zfj+g5y5Pfc5Th3vGdceCqucu7/ZqBTUnJtc89M5/Ks/5gUkRBCFJ8k2NegtY4E2gNfAHWA34H3gAxghNb6Ea21nZvmimsZ0mwI9X3rA5CUkcS0bdNMjsjBtbwP6t5kfK8zYdXLcJ0XOCekJfDe9vds4yFNh9DEr0lJROkwnM/n/4Et48x1rJ6bkWa8vllaDIJ6t9opsvKnoNf0ul5rIYRwUJJgXwetdTIwB4gHsqbtfgQWmhZUBefq5MprHV+zjddEr2HDyQ0mRuTglII7poOyrjVw7E/Ys+S6HvpRxEecTzaaHgR4BvB066dLKkqH4RIUdEPbc9k8C85byxvcvHOfPRBXSfPLv/Xtdb3WQgjhoCTBvg5KqXEYqzP6AF8D54EHgD+VUrICgkk6BHVgQIMBtvE7W98hOSPZxIgcXPXm0Cm7tIY1r8KVC4U+JPJCJF/u/9I2Htd+HN5u5f/Cs8AxL6A8cq+0mOLsivOopwp/YNwR+P3f2eNu48FHEsWCnE9MZXbj3qTkKZ9RHh4EjnnBpKiEEKL4JMEuhFKqmlJqJTAVSAUe1loPBtpg1GB3xKjLvtvEMCu0se3G4uvuC8CpxFPM3j37Go+o4LqNB986xvdJF4wL8QqQYclg4qaJWLTRIKdTUCd6h/QujShN59u/P0GTJ+ESFIQGYjyrMLP1ICYl16HAtQO0hhVjIMNaT1yjpVzYeA1TVu5jVfUwZrYexIVKVUEpXGrWJGjyJHz79zc7vBIj608IUT5Y/5bz/YOWBLtwEUBfYA8QrrX+EkBrfRroAbwN+AJLlVKyeoQJ/Dz8GBue3UXxi3++4ODFgyZG5ODcveHO97PHuxfDkd/y3XVh5ELboj5uTm683un1cnthY358+/en0fp1JK/ZxKN9Xue3OuH8diCWH3cXsILoniXZr6Vygv7/AWeXUou3rNkYdZ7vdp0C4Lc64WQs/oFm+yJptO7Xcp1cK6UupqWlyRWvQpQDKSkpbkqpfBeOkgS7cLWA2UAnrfWhnHdorS1a6wlAL+AccI1zx6Kk3NXwLsKrhwOQoTN4c+ObZFgyTI7KgTXuDaE5TrqsGAPpuUtrTlw+wUcRH9nGo1uPpq5P3dKK0KGE163KI52yf/a3lkcSdyUt905XLhglN1k6Pgm12pZShGVPUloG47/72zbu1yqIbk0qRo9wi8Xy06VLlyqbHYcQoni01sTGxlbOzMzM93o8SbAL96DWerTWOrWgHbTW64Aw4JfSC0vkpJRiQqcJuDoZk0J7L+xlYaRcf1qoPv8Ga2kNcUdg/RTbXVpr3tryFqmZxq99k6pNGBY6zIwoHcbLfZoS5GvUZMddSePtlXnaHK7+l1FyA0YJTvfXEAV7b80BjsclAeDj4cKEfs1Njqj0ZGZmzomJibkUExPjl5qa6irlIkKUHVprMjIynOPj472jo6P9Ll68uMdisSzIb18lf9z2oZRSuoy/mO3atdPbt283O4wi+2zPZ/xnl9E7183JjaUDllLPt57JUTmw7fNghfVCMuUEI9ZCnfZ8e/BbJm6eCBg9rxffsZhQ/1Dz4nQQv+6LYeQX2X8f84a3p3vTQNi3ApY8lL3jkK+NswQiX9uj47hv9mZbl8jp94UxKLy2uUEVk1Jqh9a63fXuv2PHjhBnZ+dRTk5OfbXWVUsyNiGEfSmlkoA96enpq4CvwsPD0/Ldr4znhMKOynqCnW5J56GVD9nqhlsHtGZ+n/k4OzmbHJmD0hoWDISjvxvjao04PfRr7lk1hCvpRmv3R5o/wsvtXy7kIBXLs1/uYrm1Bru6jzs/P9ESn7k3wxVr3+xWg+EeudC2ICnpmdwxcwNHzhu/X92aBDBvePsyX9t/owm2EKL8kxKRHJRSvRzpOOLGuDq5Mvmmybgo48KyiNgIWUa9MErBwFlGr2bAcuEQE34aaUuuQ3xCeKbNM2ZG6HAm9m+Ov7cbADGXUzn0xVPZybV3Deh748vQVyQf/HzQllx7u7sw5e6WZT65FkKI/EiCndtqpdQ6pVTXojxYKdVNKbUe+MnOcYnr1MSvCY+1esw2nrlzJlEXo0yMyMFVCYZekwFYUtmbrWnGxdBOyom3b34bTxdPM6NzONW83Xnn7pYA9HbaRvjlHJde9J8BnnK2vyBbjlzgsw1HbONX72hGzSry+yWEKJ8kwc5tPBAOrFNKHVRKva6U6qyUcstvZ6WUu1Kqi1JqglIqCvgVaAu8UooxizxGtRxFU7+mAKRZ0hj/53jSM9NNjsqBhT/K8Xo38X9+VWybhjcZQlhAmIlBOa7eoTUY3sKdqa6f2balNL8PmvQ1MSrHdjklnbFf77bVXd/SyJ8HO9QxNyghhChBkmDnoLX+N9AE+ByoDUwC/gQuK6X2KaX+VEqtst7uw1g6fQMwEQjCWE69sdb6PVN+AAGAq7MrU2+eipuT8blof9x+ZkXMMjkqx5VuyeBfVTxJdjL+OWiYlsbTp45c41EVmMXCaxmz8FOJAJzWfryUMEQWDynEm8v+4dQloxVkFS9Xpt8XJqUhQohyTRLsPLTWZ7XWozAS7H8BWwCFkXh3AfpYb5tgrN6zAXgRqGVt6RdjSuAil4ZVGzImfIxtPG/vPLafLbsXcJakWRGz2HvJWJzHRWveib2A256vYO+3JkfmoLZ+imv0egAsWjE2fTQrDiUzf1O0uXE5qBV7TvO9dUEZgCl3t6S6j0chjxBCiLJPEuwCaK3jtNbvaa1vAqoAHYB+wEPAnUB7oKrWupvWeobW+pKJ4Yp8DGk2hE5BnQDQaF7Z8AqXUuRtymnLmS3M2zvPNn7BI4TmadZymuVj4NIJkyJzUGf3wi9v2oabgx5ms8VoYTh11X4iT182KzKHdPxCUq4FZe5pW4s7WgaZGJEQQpQOSbBzUEq1Ukpd1ZBVa52std6utV6ltf5Sa/2T1nqH1jrFjDjF9XFSTrx909v4WhdUiUmK4bWNr2HRFpMjcwxxKXG8uuFVNEZpQ5eaXRg6cKFx4SNAajwsHQFSv25ITYBvhkOmteVpUBjtHn2P0Jo+AKRlWnj2y50kpckqogBpGcbrkZBivB61q3oycYD0UxdCVAySYOe2C3gra6CUmquUGmFiPKKYqleqzjs3vWMb/3HyD7745wsTI3IMmZZMXvnjFWKTYwHw8/DjnZvfwcmzKtzzGShr7/CTf8HPbxZypApCa/jxWbhwyBi7esE9/8Xd3ZP/PNgGT1fj9Toce4XXv98r9djA1J/2sftkPACuzopZQ9ri4+FqclRCCFE6JMHOTVm/sgwHbjYnFGEvXet0ZXjocNt45s6ZRJyLMC8gB/Dx7o/ZfGazbfz2TW/j7+lvDII7Qc8J2Ttv+QgifyzlCB3MX5/BP99nj/vPhIDGADQI8OatHDOz3+06xf+2Hi/tCB3Kmn/OMm9jtG38St9mtK5TpeAHCCFEOSMJdm4JGN1ARDnzXNvnaBXQCoBMncnY38YSmxRrclTm+P3E78zZM8c2HtVqFLfUviX3Tl2eg8Y52s4texouHC6lCB3MyR2w5tXscfij0Or+XLvc16429+VY7nvS8n/YdfxiaUXoUKLOJTL269228e3NqzPiphDzAhJCCBPIUuk5KKU2Au2AfwNRwHyMNn3/vZ7Ha60XlFhwpaCsL5V+LWcSz3DfivuITzVOW7cKaMW83vNwc863zXm5dCLhBA+seICEtATAqLv+uOfH+S8nn3wRZt8Kl6yzsQFNYeTP4OFTihGbLOEszOkOCcby6ASFwYi14Hp1F4yU9Ezu/WQT/1gvdAzy9WDFszdTzdu9NCM2VXxyOnd/tNG2WmOtKp6seu4WfL3Kd2mILJUuhMhLEuwclFIDgW+ArGxDAdf9Ammt88lSyo7ynmADbD69mSd/edJ2oeM9je5hYueJFaInb0JaAkNXDeVwvDETHVQpiCX9llDVo5DVB0/thLl9IDPVGDfuA4MXQ34JeXmTngLz74BTO4yxhy+M+h386hX4kOMXkuj34QYuWy/sax9Slf891hF3l/L/emVaNI99sY31B4wzQx6uTnw7uguhNX1NjqzkSYIthMhLSkRy0Fovw2jHNxnIuhLuMLDgOr+Eg+tcszNjw8faxt8d+o7F+xebGFHpyLBk8NLvL9mSazcnN97v+n7hyTVArbYw4D/Z44Or4de3Ct6/vNAalj+XnVwrZ7hvfqHJNUBwNS9mDm5D1ue1bdEXGf/t3xXiosfpaw/YkmuA9waFVYjkWggh8uNidgCORmsdAUQAKKWGA39qraWTSDkytPlQ9sftZ/mR5QBM2zaNoEpB9AjuYXJkJUNrzbt/vcum05ts2ybdNImWAS2v7wBhg+FcJGycaYw3zgT/JtDmoRKI1kH8+QHsWZI97j0FGlzf70f3poGM79uUKav2A8ZFj/UDKvFMj0YlEalDWLT1GJ/8ll2jP7pbA/qH1TQxIiGEMJfMYBfuLeAHs4MQ9qWUYkLnCbT0NxJMi7Yw7o9x5bazyMLIhSw5kJ0sjg4bzZ3177yxg/R80ygPyfLjs3BwrZ0idDC7FsGvk7LHbYdBxydu6BCP31Kfwe3r2MbT1x5kWcSpQh5Rdv0SGcMbP+y1jXs0DeSlXk1MjEgIIcwnCXYhtNZvaa0reH+y8snDxYMPe3xIncpGEpSamcqz654lOj7a3MDsbFnUMt7b/p5t3DekL6PDRt/4gZycjf7YgdZ2dDoTvhkGJ7bZKVIHcWC18eEhS8gtcMd0uMEafaUUkwa2oHP9arZtY7/ezfr95+wVqUPYdfwiz3y5E4u1AqZVbV8+fLANzk7l/5oGIYQojCTYosKq5lmNT2/7lKruRh3ypdRLjPp5FKcTT5scmX38evxX3tyUvUhMm8A2TLppUtEv6PTwgYe/BV/rSo/pSbD4Pog9YIdoHcDxrcZKjTrTGFdvCYMXgUvRusy4uTjxycNtaRToDUCGRTN60Q62RcfZKWBz7TtzmRHzt5GSblwwHOznxefD2lPJXSoPhRBCEmxRoQX7BDOr5yw8nI22a2eunGHEmhGcvXLW5MiKZ8uZLbz8+8tkWpPFJlWbGD+ny9Xt5W6ITxAM/R68rDOzyRfhiwEQe7CYEZvsxDZYNAgyko1xlbrw8FKjc0gxVPFyY+HIjtSq4glASrqFEfO3sfdUfHEjNtXBmAQe+u9WLialA1DVy5X5j7YnoHLFaUkohBCFkQRbVHitAloxo/sMXJ2MXr2nEk8xcs1IYq7EmBxZ0Ww4uYFnfn2GdIuR/ARXDubT2z/Fx81O/av9G8JD34BrJWOceBa+6Fd2Z7JP/AUL74ZUo381Xv7Gh4jKNexy+Bq+Hix6rCP+1n7YCSkZDPlsCxEnLtnl+KUt6lwiQz7bStyVNAAqu7sw/9EO1A/wNjkyIYRwHJJgCwHcVOsmZnSfgYuTcXr7eMJxRqwZwcmEkyZHdmN+PfYrz61/jlRr3+rqXtWZ02tO9jLo9lIrPE+SHQPz+8G5ffZ9npJ2fIuRXFsX3sGrGgz7Eao1sOvThPhXYsGIDvh4GL9fl1MyePi/W/nraNkqF/nndDwPfraF84nG75e3uwtfjOxAmCyDLoQQuUiCLYTVrbVv5f2u7+OispPsoT8N5UBc2ZiZXX54OWN/H0uGxVjkpJZ3Leb1mUct71ol84QhNxllFFlJ9pVzxqI0xzaXzPPZ2/6VsOAuSEs0xl7+MGwFVA8tkadrXtOHL0d1wq+SUdOdmJrBI3O38tuBsnHh4+bDFxg8ewuxCUZy7eXmzPxH29M2+Bq91IUQogKSBFuIHHoE9+D9bu/j5mQkQeeTzzN89XC2nXXcbhlaaz6K+IhX/3zVVnNd16cu8/vMt3VJKTF1uxgXPrpZywNSLsGCgbD3u5J93uLaOge+eii75rpSAAxfAdWbl+jThtb05atRnWy1yinpFkZ+sZ2Fm6NL9HmL66e/zzBs7l8kpBof3ip7GGUh7UL8TI5MCCEckyTYQuTRI7gHs2+fTWXXygAkpicyau0oFu9b7HAr8qVmpvKvP/7Fp7s/tW1rWKUh83rPo0Yl+9QQX1PdzjBsuZGkgrGs+tJH4Y/pYLGUTgzXKzMdVo+Hn14GrO9l1RB4dDUENiuVEBpXr8zXT3Smpq9xwWmmRfPGsn+Y+OM/ZFoc6/fLYtF88PNBRi/aSVqm8V4GVnbn6yc606GeJNdCCFEQ5WgJgzBPu3bt9Pbt280Ow2EciDvA6F9GE5ucvfxz//r9eaPzG3i6eJoYmSE6Pppxf4xjX1x23XOXml2Y3nU6ld0ql35AF6Nh0X1wPkdHkcZ94K5PwMsBkrH4U0bif2Jr9rZa7eDBr8A7oNTDOXc5hccXbGf3yeyOIp3rV2PG4NZU9ylmtxc7iE9K54Ulu3Itf17fvxJfjOhAHT8vEyNzPEqpHVrrdmbHIYRwHDKDLUQBmvg1YdEdi2heLbtsYPmR5QxZOYTIC5EmRgY/Hv6R+1fcnyu5fqDJA3zU8yNzkmswZoJHrIG6N2VvO7gaZt9qdOow06GfYfYtuZPrpv2MmXcTkmuAQB8PvhrVmTtaZp9p2HzkApOe/4C/b+nGvmbNOdSjJ/HLl5daTPHLl3OoR08imzVnzy1d0b+stt13c0N/lo7uIsm1EEJcB5nBLsOUUpWAu4D21q82gCewUmvd70aPJzPY+UvNTGXK1il8dyi7rthFufBYq8cY1XIUrs6upRZLzJUYpm2bxtpj2cuUuzq58nL7lxncZHDRF5Gxp8x0+PUt2PRhjo3KWG68x+vgXoofAK5cgDWvwp6vcoTiDD3fgC7Pg5P5cwwWi2bmr4f4z7pDdD2+g+cjluKRmW67X3l4EDR5Er79+5doHPHLl3PmjQnolBTbthRnV2a2HkSzoffzUq8mskJjAWQGWwiRlyTYZZhSqjWwK5+7JMEuAUsPLuXff/2blMzsBKRhlYaMCR/DLbVuKdHkNt2SzuJ9i/k44mOSMpJs20N8Qph26zSaVSud+uEbsn8l/DAaUnIsquJTG/pMhWb9b3j58RtiyYTdX8HPb0DShezt3jVg0FyjA4qD2Xz4Ahn398f/ysWr7nMJCqLR+nUl9twWi2bvrd1wPX91R5MM/0Ba/vl7iT13eSAJthAiL/Onb0RxJABzgaeAjsCT5oZTvg1qPIilA5bSNrCtbVvUpSie/vVpRq4dye7Y3XZ/zvTMdL479B13/XAX07dPz5Vc393wbpb0W+KYyTVA0zvhyT+hQc/sbZdPwtdDYU43o2zD3h/wLRbY+y183AmWPZU7uW5xrxGPAybXAJ0bVMM/Kf/FZ9LPnGH57tN2vwhSa82GQ7EM/Ggjzvkk1wAuF2Lz3S6EEKJgMoNdjiilhgPzkBnsEpVpyWTx/sV8uOtDkrPavFm1qNaCwU0H06deH9ydi75s9NkrZ1l5ZCVfHfjqqmXbG/g24LVOr9G+RvsiH79UaQ17voY143MnvAA1WkH4MGgxCDyLsVhJYqxRBrJzQe6LLMGYNe/3ATTuXfTjl5JDPXqScfr0VdtjPKswvPfr1PevxCOd69IvrKZtZciiSEzN4PudJ1m45RgHY4w+4PPXvE315KsTfJeaNWm07tciP1dFIDPYQoi8JMEuRyTBLl3nk8/z6e5PWXpwqa3/dJZKrpXoUrMLt9S6hY5BHQmqFFRoCUl6Zjr74vYRcS6C9SfWsyNmB5rcf5uV3SrzeMvHebj5w7Zl3cuUKxdgw/uw/XPISMl9n4sHNLod6nWFereCf+PCS0gsFjj3Dxz9A478BofXgXWBHRt3H+j0FHR5pnTrvouhsDro3+qE27Y5OylubuhPz2aBtA2uStMalXFxLviEZKZFczwuiT+jzrN+/zk2HT5PSnruFoq3nd7F87uW4pKeattWWvXfZZ0k2EKIvCTBLkckwTZHdHw0c/bMYXX0atIt6fnu4+niST3fetSsVBN3F3c8nD1It6QTmxRLbHIsxy8fJ82Slu9j/Tz8GBY6jAeaPEClrFUTy7LLZ4xEe+cCo2d2fty8oUpdqFoXPKoYybbWxgz4pWNw8Vj2IjH5PbbDKOjyrGO0B7xB8cuXc+7/ZpBx5gwuQUF4PfUMX/k0Z/6maBJSMvJ9jJebM8F+XgT6eBBY2R1npUjJyCQ5LZMTF5M5EptIakb+Pcm93Jy5p20tnu7eEK8/fsn13IFjXpDk+jpIgi2EyEsS7HJEEmxzxaXE8f2h71l6cCknE08W61hOyolOQZ24o94d9A7pjYeL+X2R7S4pDv5eCrsWwNm/i3+8Op2g7VBofhe4exf/eA7mcko6P0acZlnEKbZFX30h5I1qXN2bIR2CuSe8Nj4eZfCMiAORBFsIkZck2OVIURJspdQoYBRAcHBw+LFjx0ouwApCa83R+KP8cfIP/jz9J/vj9hOfGn/Nx9WpXIewgDDaBLahR3AP/D39SyFaB3FuPxz93Sj5iP7TWHL9WioFQMgtRklJ/a7gV7/k43QQJ+KS+GVfDDuOXWTnsYucjk+55mP8vd1pUcuH7k0C6d4kkOBq0s/aXiTBFkLkJQm2SZRS04ABRXhoT631qQKOORyZwXY4WmviUuI4En+EuJQ40jLTSM1MxUk54e/pT4BnADUq1aCqR1WzQ3UMWhuz2xejjXKQ9OzOKbhXzi4d8ZTXK8u5hBTOxqdw7nIqsYmpKMDd1Ql3F2cCK7vTMNCbKl5uZodZbkmCLYTIy8XsACqwmkCTIjxOzuWWMUopqnlWo5pnNbNDKRuUgkrVjK/a4dfeXxBY2YPAyuWwjEgIIcoo6YNtEq31w1prVYSvaLNjF0IIIYQQBZMEWwghhBBCCDuSBFsIIYQQQgg7kgRbCCGEEEIIO5KLHMs4pdT3QJB1GGC9vUkptSXHbpO11itLNzIhhBBCiIpJEuyyrw1QN8+2KkDHHOMAhBBCCCFEqZAEu4zTWoeYHYMQQgghhMgmC80IG6VULFDUpRz9gfN2DEfcOHkPzCfvgfnMeA/qaq3lTKEQwkYSbGEXSqntspKZueQ9MJ+8B+aT90AI4Qiki4gQQgghhBB2JAm2EEIIIYQQdiQJtrCXOWYHIOQ9cADyHphP3gMhhOmkBlsIIYQQQgg7khlsIYQQQggh7EgSbCGEEEIIIexIEmxRLEqpIUqpDUqpeKVUolJqu1LqaaWU/G6VIKWUq1Kqp1LqfaXUFqXUGaVUmlLqlFJqqVKqm9kxVkRKqSlKKW39esnseCoKpZSnUmqcUmqbUuqSUipJKXVUKfWNUuoms+MTQlQ8spKjKDKl1EfAU0AK8CuQDvQEZgE9lVL3aa0zTQyxPOsK/Gz9/iywA7gCNAfuBe5VSk3WWk8wKb4KRynVHhgHaECZHE6FoZSqB6wFGgLngN+BVCAEGAjsBjaaFZ8QomKSBFsUiVLqXozk+ixwq9b6kHV7dWA9cDfwDDDTtCDLNwvwLTBTa70h5x1KqQeARcAbSqn1Wuv1ZgRYkSil3IH5QAzwF3CXqQFVEEqpShgfNBsAk4HJWuv0HPdXA6qZFJ4QogKT0/iiqMZbb/+VlVwDaK1jgNHW4StSKlIytNbrtNaD8ibX1vuWYCR7AA+XamAV1ySMswdPAvEmx1KRvI6RXC/QWk/ImVwDaK0vaK0PmhOaEKIik+RH3DClVG0gHEgDvsl7v9b6d+AUUAPoVLrRCatd1tvapkZRASilOgJjgcVa6+Vmx1NRKKXcgMetw3fNjEUIIfKSEhFRFG2st/9orZML2GcbUMu676ZSiUrk1Mh6e8bUKMo5pZQH8AUQBzxvcjgVTThG+ccJrfU+pVQXoJ9121lgtdZ6s5kBCiEqLkmwRVHUs94eK2Sf43n2FaVEKVUDGG4dfmtiKBXBO0ATYLDW+rzZwVQwLa23h5RS84Fhee6foJT6FhhayESAEEKUCCkREUXhbb29Usg+idbbyiUci8hBKeUC/A/wBX6VkoWSY50xfQH4wVr3LkqXn/X2VuARYDpGJ5GqGN1DTmF01PnIlOiEEBWaJNiiKLJakGlToxD5+RSjVeIJ5ALHEqOU8gTmAZcxuumI0pf1/5cL8LnW+mWt9WGt9SWt9Y8YnVw0MEwpVd+0KIUQFZIk2KIoEqy33oXsk3VfQiH7CDtSSs0ERmLUn/bATrmdAAAES0lEQVTUWp81OaTybArQGHhRay117ubI+W/LZ3nv1Fpvx+gP7wR0K6WYhBACkBpsUTTR1tu6hexTJ8++ogQppd4HngNiMZLrQ9d4iCieuzF6kQ9TSuWt/W1qvR2tlOoHRGmtHyvV6CqG6BzfHy1gn6NAO4yORkIIUWokwRZFkdUCLlQp5VnABUTt8+wrSohSahrwInABuF1rHWlySBWFE8aKmgWpb/2qUjrhVDg7c3xfDePDZV7+1tvEfO4TQogSIyUi4oZprU9g/OfmBtyX936lVFeM/stnAWmTVYKUUu8CLwMXMZLr3SaHVCForUO01iq/L4y2fQAvW7e1NjPW8kprfQrYah32zHu/Uqoq0NY63F5acQkhBEiCLYpuqvX230qphlkblVKBwMfW4btaa0upR1ZBKKUmA/8CLmEk13K2QFQ071hvJyilbB9krP3JP8HoprMD+aAvhChlUiIiikRrvVQp9QnGsuh/K6V+AdIxZpJ8gB+AWSaGWK4ppQZgLBMNEAU8q5TKb9f9WmtZ5U6US1rr5Uqp6cBLwFal1FaMUqkOQE2MVn0Paq2l45EQolRJgi2KTGv9lFLqT+BpjFpUZ2A/MBf4RGavS5Rfju/bWb/y8zuyjLQox7TWLyulNgHPYqwc64Wx0NUHGGfR8qvNFkKIEqXkg70QQgghhBD2IzXYQgghhBBC2JEk2EIIIYQQQtiRJNhCCCGEEELYkSTYQgghhBBC2JEk2EIIIYQQQtiRJNhCCCGEEELYkSTYQgghhBBC2JEk2EIIIYQQQtiRJNhCCCGEEELYkSTYQgghhBBC2JEk2EIIIYQQQtiRJNhCCIejlJqtlNJKqdVKKZXP/fOt9y/P734hhBDCTEprbXYMQgiRi1LKA9gChAGvaq2n5rhvGDAfOAG01lrHmRKkEEIIUQBJsIUQDkkp1RjYAXgA3bTWG5VSzYDtgFvWNjNjFEIIIfIjJSJCCIektT4IPAG4AF8ppeoA3wBewOuSXAshhHBUMoMthHBoSqk5wONAPOALrAbu0PKPlxBCCAclCbYQwqFZ67H3A3WBc0Co1vq8uVEJIYQQBZMSESGEo7sVCLZ+7wc0MjEWIYQQ4pokwRZCOCylVBCwEFDAPLLrsauaGpgQQghRCEmwhRAOSSnlBCwCAoGZWusRwAKM2ex5ZsYmhBBCFEYSbCGEo5oAdMdoyzfOuu0pjHrsgUqp580KTAghhCiMXOQohHA4SqnuwC9AItBWa304x30tgb8wJghu0lpvNydKIYQQIn8ygy2EcChKqUCM0hAn4PGcyTWA1vpv4AWMxWaWKKV8Sz9KIYQQomAygy2EEEIIIYQdyQy2EEIIIYQQdiQJthBCCCGEEHYkCbYQQgghhBB2JAm2EEIIIYQQdiQJthBCCCGEEHYkCbYQQgghhBB2JAm2EEIIIYQQdiQJthBCCCGEEHYkCbYQQgghhBB29P9t0OZZ7qqYswAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x=np.linspace(0,2*np.pi,11)\n",
"xx=np.linspace(0,2*np.pi,100)\n",
"# analytical derivatives\n",
"y=np.sin(x)\n",
"dy=np.cos(xx)\n",
"ddy=-np.sin(xx)\n",
"plt.plot(xx,np.sin(xx),label='f(x)=sin(x)')\n",
"plt.plot(xx,dy,label='f\\'(x)=cos(x)')\n",
"plt.plot(xx,ddy,label='f\\'\\'(x)=-sin(x)')\n",
"plt.plot(x,y,'o',label='measurements')\n",
"plt.legend(bbox_to_anchor=(1,0.5),loc='center left')\n",
"plt.title('Plot of sin(x) and its first/second derivatives')\n",
"plt.xlabel('x')\n",
"plt.ylabel('f(x), f\\'(x), f\\'\\'(x)');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, we use our definitions for first and second derivatives to get the approximate derivatives, $f'(x)~and~f''(x)$. We are using a forward difference method so for $f'(x)$ we truncate the values by 1 and for $f''(x)$, we truncate the values by 2. "
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fd2185655d0>"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# numerical derivatives\n",
"dy_n=(y[1:]-y[0:-1])/(x[1:]-x[0:-1]);\n",
"ddy_n=(y[2:]-2*y[1:-1]+y[0:-2])/(x[2:]-x[1:-1])**2;\n",
"\n",
"plt.plot(xx,dy,label='analytical dy/dx')\n",
"plt.plot(x[:-1],dy_n,'o',label='num dy/dx')\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise\n",
"\n",
"What is the maximum error between the numerical $\\frac{df}{dx}$ and the actual $\\frac{df}{dx}$?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fd2184746d0>"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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X3yRUaNGMWvWrL+cYz/XmjVr6NevX/Gx6tevD0BWVhbjx48nJSUFESn+pV6WlStXMnHiRABiYmKIiYk5a31BQQFjx45l4sSJtGjR4ryxLly4sPhL/XzHve222/jyyy9599132bRp01n1nTx5kquvvprXXnuNunXrnjd2VTkKiwyfrfuTl37eRnZeIbf3bcEd/VoQXKemU+vx8hL6RoXSNyqU+LQjPPdTEg9/8wcfr97Ny6M70a6J/j04ylm9hsaWs94Ad5exbiYw0xlxnFHeL3dXWL58OYsXL2b16tX4+/vTv3//4r7tvr6+xb0gvL29KSiwNW3vvfdeJk+ezMiRI1m+fDlTpkz5y3H79OlDWloaK1asoLCwkA4dOpw3DmNMqT0uHn/8cQYMGMC3335LWloa/fv3L/c9na/nxoQJE4iKiuK+++4rN9b58+czefLkco+bnZ1Neno6YPviDwgIAGx3jV999dWMGzeOv//97+XG7XES5sKSqZCVDoFhMOgJiLnWpVXuPZbDVzOncfWxmYzzOkxh/Sb4hk2BOtEurTcuoj5f39Wbn/44wJPfb2XkW79y78Ao/jmgJb7aOrho+sk5SVZWFvXq1cPf359t27axZs2aC9qnaVNbJ6kPP/ywzO1uuukmxo4dyy233FJcFhAQwIkTJ/6yba9evVixYgW7du0CKD41VLKu2bNnlxtbv379+PTTTwHYsmULCQkJxesee+wxsrKyeO2118qN1RhDQkICnTt3Lve4Dz74IOPGjWPq1KncfvvtxfvfeuutREdHn5VMlF3CXJg3EbL2AMb2PG+irdxFft5ygDdfe44JWa8R5nUILwy+J/e6vN4zRITLYxqz6F/9uKxjY15dvJ1r3vmNfcdyXF53daWJwEmGDx9OQUEBMTExPP744/Ts2bPcfaZMmcLo0aPp27cvISEhZW43btw4jh49ytix/9fwuvnmm7nzzjuLLxafERoayvTp0/n73/9Op06duO666wB44IEHePjhh+nTpw+FhYXlxnbXXXdx8uRJYmJiePHFF+nevTtgO5317LPPkpiYSNeuXencufNZPZbOjXXDhg106dKluBVQ1nFXrFjB+vXri5NBjRo1mDVrFqtWreLjjz9m6dKldO7cmc6dO/PTTz+VG7/HWDIV8s/5AszPsZU7WUFhEU/N28qdn2xgstfn1JK8Sqm3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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(xx,ddy,label='analytical d2y/dx2')\n",
"plt.plot(x[:-2],ddy_n,'o',label='num d2y/dx2')\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our stepsize is $h=\\pi/5\\approx 0.6$. Looking at the graphs, it looks like we are shifting our function to the left by using this forward difference method. That is because we are using a forward difference method, the derivative is going to be averaged between step $i$ and $i+1$. The result is that we shift the function by $h/2$ for each derivative. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Exercise\n",
"\n",
"Another first-order, $error\\approx O(h)$, derivative is the backward difference derivative, where\n",
"\n",
"$f'(x_{i})=\\frac{f(x_{i})-f(x_{i-1})}{h}+O(h)$\n",
"\n",
"$f''(x_{i})=\\frac{f(x_{i})-2f(x_{i-1})+f(x_{i-2})}{h^2}+O(h)$\n",
"\n",
"Plot the first and second derivatives of $\\sin(x)$ using the same x-locations as we did above. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Central Difference\n",
"## Increase accuracy with more points\n",
"\n",
"Both the forward and backward difference methods have the same $error\\approx O(h)$, _but we can do better._ Let's rewrite Taylor series of the function, $f(x)$, near $x_{i}$ is given as:\n",
"\n",
"forward:\n",
"\n",
"$f(x_{i+1})=f(x_{i})+f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2-\\frac{f'''(x_{i})}{3!}h^3+...$\n",
"\n",
"backward:\n",
"\n",
"$f(x_{i-1})=f(x_{i})-f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2-\\frac{f'''(x_{i})}{3!}h^3+...$"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Now, we subtract $f(x_{i+1})-f(x_{i-1})$, then solve for $f'(x_{i})$, as such\n",
"\n",
"$f'(x_{i})=\\frac{f(x_{i+1})-f(x_{i-1})}{2h}+O(h^{2}).$\n",
"\n",
"The result is that the __truncation error__ has been reduced to $\\approx O(h^2).$ Take a look at the new function. The derivative is based upon the two closest points, $x_{i-1}~and~x_{i+1}$, but not $x_{i}$. \n",
"\n",
"This approximation is called the __central difference method__. We can also apply it to second derivatives as such\n",
"\n",
"forward: \n",
"\n",
"$f(x_{i+1})=f(x_{i})+f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2-\\frac{f'''(x_{i})}{3!}h^3+...$\n",
"\n",
"backward:\n",
"\n",
"$f(x_{i-1})=f(x_{i})-f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2-\\frac{f'''(x_{i})}{3!}h^3+...$\n",
"\n",
"\n",
"Finally, we add $f(x_{i+1})+f(x_{i-1})$ to eliminate $f'(x_i)$ and solve for $f''(x_i)$ as such\n",
"\n",
"$f''(x_{i}) = \\frac{f(x_{i+1})-2f(x_{i})+f(x_{i-1})}{h^2} + O(h^2).$"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x=np.linspace(0,2*np.pi,11);\n",
"# analytical derivatives\n",
"y=np.sin(x);\n",
"dy=np.cos(xx);\n",
"ddy=-np.sin(xx);\n",
"\n",
"# forward difference\n",
"dy_f=(y[1:]-y[:-1])/(x[1:]-x[:-1]);\n",
"# central difference\n",
"dy_c=(y[2:]-y[:-2])/(x[2:]-x[:-2]);\n",
"\n",
"plt.plot(xx,dy,label='analytical dy/dx')\n",
"plt.plot(x[:-1],dy_f,'o',label='fwd difference')\n",
"plt.plot(x[1:-1],dy_c,'s',label='central difference')\n",
"plt.legend(bbox_to_anchor=(1,0.5),loc='center left');\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Exercise\n",
"\n",
"Plot the analytical, forward difference, and central difference results for the second derivative of $\\sin(x)$. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Higher order derivatives\n",
"\n",
"You use the following chart for commonly found derivatives and the corresponding Forward, Backward, and Central difference approximations. In practice, you should use __central difference__ approximations because they reduce the truncation error from $O(h)\\rightarrow O(h^2)$ without using more data points to calculate the derivative. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Table of derivatives and the corresponding forward, backward, and central difference method equations.__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<!DOCTYPE html>\n",
"<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"\" xml:lang=\"\">\n",
"<head>\n",
" <meta charset=\"utf-8\" />\n",
" <meta name=\"generator\" content=\"pandoc\" />\n",
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\" />\n",
" \n",
" <style>\n",
" code{white-space: pre-wrap;}\n",
" span.smallcaps{font-variant: small-caps;}\n",
" span.underline{text-decoration: underline;}\n",
" div.column{display: inline-block; vertical-align: top; width: 50%;}\n",
" div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}\n",
" ul.task-list{list-style: none;}\n",
" </style>\n",
" <script src=\"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js\" type=\"text/javascript\"></script>\n",
" <!--[if lt IE 9]>\n",
" <script src=\"//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js\"></script>\n",
" <![endif]-->\n",
"</head>\n",
"<body>\n",
"<table>\n",
"<colgroup>\n",
"<col style=\"width: 17%\" />\n",
"<col style=\"width: 24%\" />\n",
"<col style=\"width: 24%\" />\n",
"<col style=\"width: 33%\" />\n",
"</colgroup>\n",
"<thead>\n",
"<tr class=\"header\">\n",
"<th>Derivative</th>\n",
"<th>Forward <span class=\"math inline\">\\(O(h)\\)</span></th>\n",
"<th>Backward <span class=\"math inline\">\\(O(h)\\)</span></th>\n",
"<th>Central <span class=\"math inline\">\\(O(h^2)\\)</span></th>\n",
"</tr>\n",
"</thead>\n",
"<tbody>\n",
"<tr class=\"odd\">\n",
"<td><span class=\"math inline\">\\(\\frac{df}{dx}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f(x_{i+1})-f(x_i)}{h}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f(x_{i})-f(x_{i-1})}{h}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f(x_{i+1})-f(x_{i-1})}{2h}\\)</span></td>\n",
"</tr>\n",
"<tr class=\"even\">\n",
"<td><span class=\"math inline\">\\(\\frac{d^2f}{dx^2}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f(x_{i+2})-2f(x_{i+1})-3f(x_{i})}{h^2}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f(x_{i})-2f(x_{i-1})+f(x_{i-2})}{h^2}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f(x_{i+1})-2f(x_{i})+f(x_{i-1})}{h^2}\\)</span></td>\n",
"</tr>\n",
"<tr class=\"odd\">\n",
"<td><span class=\"math inline\">\\(\\frac{d^3f}{dx^3}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f (x_{i+3} ) − 3 f (x_{i+2} ) + 3 f (x_{i+1} ) − f(x_{ i} )}{h^3}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f (x_i ) − 3 f (x_{i−1} ) + 3 f (x_{i−2} ) − f (x_{i−3})}{h^3}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f (x_{i+2} ) − 2 f (x_{ i+1} ) + 2 f (x_{i−1} ) − f (x_{i−2} )}{2h^3}\\)</span></td>\n",
"</tr>\n",
"<tr class=\"even\">\n",
"<td><span class=\"math inline\">\\(\\frac{d^4f}{dx^4}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f (x_{i+4} ) − 4 f (x_{i+3} ) + 6 f (x_{i+2} ) − 4 f (x_{i+1} ) + f (x_{i} )}{h^4}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f (x_i ) − 4 f (x_{i−1} ) + 6 f (x_{i−2} ) − 4 f (x_{i−3} ) + f (x_{i−4} )}{h^4}\\)</span></td>\n",
"<td><span class=\"math inline\">\\(\\frac{f (x_{i+2} ) − 4 f (x_{i+1} ) + 6 f (x_{i} ) − 4 f (x_{i−1} ) + f (x_{i−2} )}{h^4}\\)</span></td>\n",
"</tr>\n",
"</tbody>\n",
"</table>\n",
"</body>\n",
"</html>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# What We've Learned\n",
"\n",
"* How to approximate error in approximate derivatives\n",
"* How to approximate derivatives using forward difference methods\n",
"* How to approximate derivatives using backward difference methods\n",
"* How to approximate derivatives using central difference methods\n",
"* How to approximate higher order derivatives with forward, backward, and central differences\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Problems\n",
"\n",
"1. Consider the shape of a simply supported beam with a distributed load function,\n",
"\n",
"$w(x) = -\\frac{qx\\left(L^3-2x^2L+x^3\\right)}{24EI},$\n",
"\n",
"* $L=1~m$\n",
"* $E=200e9~Pa$\n",
"* $I=\\frac{0.01^4}{12}~m^4$\n",
"* $q=100~N/m$\n",
"\n",
"__Plot the following derivatives using h=0.1m, x=0, 0.1, 0.2, ...1 m:__\n",
"\n",
"a. Take the first derivative of the above function using a forward, backward, and central difference method"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"b. Take the second derivative of the above function using a forward, backward, and central difference method"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"c. Take the third derivative of the above function using a forward, backward, and central difference method\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Consider the temperature of a fin with conductive and convective heat transfer [analytical solution](https://en.wikipedia.org/wiki/Fin_(extended_surface)#Solutions) with x=0...60 mm connected to a $100^oC$ base surrounded by $20^oC$ air. \n",
"\n",
"$T(x)=20+80\\frac{\\cosh(s(L-x))+\\frac{h}{sk}\\sinh(s(L-x))}{\\cosh(sL)+\\frac{h}{sk}\\sinh(sL)}$\n",
"\n",
"* $s=\\sqrt{\\frac{2h}{kR}}$\n",
"* h=100 W/m/m/K\n",
"* k=200 W/m/K\n",
"* R=1E-3 radius in m\n",
"* L=60E-3 length in m\n",
"\n",
"\n",
"__Plot the first derivative of $T(x)$ using h=10 mm, x=0, 10, 20, ...60 mm (values given below):__\n",
"\n",
"using the forward, backward, and central difference methods. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"h=100 # W/m/m/K\n",
"k=200 # W/m/K\n",
"R=1E-3# radius in m\n",
"L=60E-3# length in m\n",
"s=np.sqrt(2*h/k/R)\n",
"x=np.arange(0,70,10)*1e-3 # m\n",
"T= 20+80*(np.cosh(s*L-s*x)+h/s/k*np.sinh(s*L-s*x))/(np.cosh(s*L)+h/s/k*np.sinh(s*L))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Slideshow",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}