{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesian linear regression\n", "\n", "* [1. What is Bayesian linear regression?](#intro-blr)\n", "* [2. Recap linear regression](#recap-lr)\n", "* [3. Fundamental concepts](#fundamental-concepts)\n", "* [4. Linear regression from a probabilistic perspective](#prob-lr)\n", "* [5. Linear regression with basis functions](#lr-with-basis-functions)\n", " * [5.1 Example basis functions](#example-basis-function)\n", " * [5.2 The design matrix](#design-matrix)\n", "* [6. Bayesian Linear Regression](#blr)\n", " * [6.1 Step 1: Probabilistic Model](#prob-model)\n", " * [6.2 Generating a dataset](#dataset)\n", " * [6.3 Step 2: Posterior over the parameters](#param-posterior)\n", " * [6.4 Visualizing the parameter posterior](#param-posterior-visualization)\n", " * [6.5 Step 3: Posterior predictive distribution](#predictive-posterior)\n", " * [6.6 Visualizing the predictive posterior](#predictive-posterior-visualization)\n", "\n", " \n", "* [Sources and further reading](#sources)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Link to interactive demo\n", "\n", "[Click here](https://mybinder.org/v2/gh/zotroneneis/machine_learning_basics/HEAD?filepath=bayesian_linear_regression.ipynb) to run the notebook online (using Binder) without installing jupyter or downloading the code.\n", "\n", "\n", "Sometimes, the GitHub version of the Jupyter notebook does not display the math formulas correctly. Please refer to the Binder version in case you think something might be off or missing.\n", "\n", "I also wrote a [blog post containing the contents of the notebook](https://alpopkes.com/posts/machine_learning/bayesian_linear_regression)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. What is Bayesian linear regression (BLR)? \n", "Bayesian linear regression is the *Bayesian* interpretation of linear regression. What does that mean? To answer this question we first have to understand the Bayesian approach. In most of the algorithms we have looked at so far we computed *point estimates* of our parameters. For example, in linear regression we chose values for the weights and bias that minimized our mean squared error cost function. In the Bayesian approach we don't work with exact values but with *probabilities*. This allows us to model the *uncertainty* in our parameter estimates. Why is this important?\n", "\n", "In nearly all real-world situations, our data and knowledge about the world is incomplete, indirect and noisy. Hence, uncertainty must be a fundamental part of our decision-making process. This is exactly what the Bayesian approach is about. It provides a formal and consistent way to reason in the presence of uncertainty. Bayesian methods have been around for a long time and are widely-used in many areas of science (e.g. astronomy). Although Bayesian methods have been applied to machine learning problems too, they are usually less well known to beginners. The major reason is that they require a good understanding of probability theory.\n", "\n", "In the following notebook we will work our way from linear regression to Bayesian linear regression, including the most important theoretical knowledge and code examples." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Recap linear regression \n", "\n", "- In linear regression, we want to find a function $f$ that maps inputs $x \\in \\mathbb{R}^D$ to corresponding function values $f(x) \\in \\mathbb{R}$. \n", "- We are given an input dataset $D = \\big \\{ \\mathbf{x}_n, y_n \\big \\}_{n=1}^N$, where $y_n$ is a noisy observation value: $y_n = f(x_n) + \\epsilon$, with $\\epsilon$ being an i.i.d. random variable that describes measurement/observation noise\n", "- Our goal is to infer the underlying function $f$ that generated the data such that we can predict function values at new input locations\n", "- In linear regression, we model the underlying function $f$ using a linear combination of the input features:\n", "\n", "$$\n", "\\begin{split}\n", "y &= \\theta_0 + \\theta_1 x_1 + \\theta_2 x_2 + ... + \\theta_d x_d \\\\\n", "&= \\boldsymbol{x}^T \\boldsymbol{\\theta}\n", "\\end{split}\n", "$$\n", " \n", " \n", "- For more details take a look at the [notebook on linear regression](https://github.com/zotroneneis/machine_learning_basics/blob/master/linear_regression.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Fundamental concepts \n", "- One fundamental tool in Bayesian learning is [Bayes' theorem](https://en.wikipedia.org/wiki/Bayes%27_theorem)\n", "- Bayes' theorem looks as follows:\n", "$$\n", "\\begin{equation}\n", "p(\\boldsymbol{\\theta} | \\mathbf{x}, y) = \\frac{p(y | \\boldsymbol{x}, \\boldsymbol{\\theta})p(\\boldsymbol{\\theta})}{p(\\boldsymbol{x}, y)}\n", "\\end{equation}\n", "$$\n", "- $p(y | \\boldsymbol{x}, \\boldsymbol{\\theta})$ is the *likelihood*. It describes the probability of the target values given the data and parameters.\n", "- $p(\\boldsymbol{\\theta})$ is the *prior*. It describes our initial knowledge about which parameter values are likely and unlikely.\n", "- $p(\\boldsymbol{x}, y)$ is the *evidence*. It describes the joint probability of the data and targets. \n", "- $p(\\boldsymbol{\\theta} | \\boldsymbol{x}, y)$ is the *posterior*. It describes the probability of the parameters given the observed data and targets.\n", "
\n", "- Another important tool you need to know about is the [Gaussian distribution](https://en.wikipedia.org/wiki/Normal_distribution). If you are not familiar with it I suggest you pause for a minute and understand its main properties before reading on.\n", "\n", "In general, Bayesian inference works as follows:\n", "1. We start with some prior belief about a hypothesis $p(h)$\n", "2. We observe some data, representating new evidence $e$\n", "3. We use Bayes' theorem to update our belief given the new evidence: $p(h|e) = \\frac{p(e |h)p(h)}{p(e)}$ \n", "\n", "For more information take a look at the [Wikipedia article on Bayesian inference](https://en.wikipedia.org/wiki/Bayesian_inference)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Linear regression from a probabilistic perspective \n", "\n", "In order to pave the way for Bayesian linear regression we will take a probabilistic spin on linear regression. Let's start by explicitly modelling the observation noise $\\epsilon$. For simplicity, we assume that $\\epsilon$ is normally distributed with mean $0$ and some known variance $\\sigma^2$: $\\epsilon \\sim \\mathcal{N}(0, \\sigma^2)$.\n", "\n", "As mentioned in the beginning, a simple linear regression model assumes that the target function $f(x)$ is given by a linear combination of the input features:\n", "$$\n", "\\begin{split}\n", "y = f(\\boldsymbol{x}) + \\epsilon \\\\\n", " = \\boldsymbol{x}^T \\boldsymbol{\\theta} + \\epsilon\n", "\\end{split}\n", "$$\n", "\n", "This corresponds to the following likelihood function: \n", "$$p(y | \\boldsymbol{x}, \\boldsymbol{\\theta}) = \\mathcal{N}(\\boldsymbol{x}^T \\boldsymbol{\\theta}, \\sigma^2)$$\n", "\n", "Our goal is to find the parameters $\\boldsymbol{\\theta} = \\{\\theta_1, ..., \\theta_D\\}$ that model the given data best.\n", "In standard linear regression we can find the best parameters using a least-squares, maximum likelihood (ML) or maximum a posteriori (MAP) approach. If you want to know more about these solutions take a look at the [notebook on linear regression](https://github.com/zotroneneis/machine_learning_basics/blob/master/linear_regression.ipynb) or at chapter 9.2 of the book [Mathematics for Machine Learning](https://mml-book.com)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. Linear regression with basis functions \n", "The simple linear regression model above is linear not only with respect to the parameters $\\boldsymbol{\\theta}$ but also with respect to the inputs $\\boldsymbol{x}$. When $\\boldsymbol{x}$ is not a vector but a single value (that is, the dataset is one-dimensional) the model $y_i = x_i \\cdot \\theta$ describes straight lines with $\\theta$ being the slope of the line.\n", "\n", "The plot below shows example lines produced with the model $y = x \\cdot \\theta$, using different values for the slope $\\theta$ and intercept 0. \n", "\n", "\"Drawing\"\n", "\n", "Having a model which is linear both with respect to the parameters and inputs limits the functions it can learn significantly. We can make our model more powerful by making it *nonlinear* with respect to the inputs. After all, *linear regression* refers to models which are linear in the *parameters*, not necessarily in the *inputs* (linear in the parameters means that the model describes a function by a linear combination of input features).\n", "\n", "Making the model nonlinear with respect to the inputs is easy. We can adapt it by using a nonlinear transformation of the input features $\\phi(\\boldsymbol{x})$. With this adaptation our model looks as follows: \n", "$$\n", "\\begin{split}\n", "y &= \\boldsymbol{\\phi}^T(\\boldsymbol{x}) \\boldsymbol{\\theta} + \\epsilon \\\\\n", "&= \\sum_{k=0}^{K-1} \\theta_k \\phi_k(\\boldsymbol{x}) + \\epsilon\n", "\\end{split}\n", "$$\n", "\n", "Where $\\boldsymbol{\\phi}: \\mathbf{R}^D \\rightarrow \\mathbf{R}^K$ is a (non)linear transformation of the inputs $\\boldsymbol{x}$ and $\\phi_k: \\mathbf{R}^D \\rightarrow \\mathbf{R}$ is the $k-$th component of the *feature vector* $\\boldsymbol{\\phi}$:\n", "\n", "$$\n", "\\boldsymbol{\\phi}(\\boldsymbol{x})=\\left[\\begin{array}{c}\n", "\\phi_{0}(\\boldsymbol{x}) \\\\\n", "\\phi_{1}(\\boldsymbol{x}) \\\\\n", "\\vdots \\\\\n", "\\phi_{K-1}(\\boldsymbol{x})\n", "\\end{array}\n", "\\right]\n", "\\in \\mathbb{R}^{K}\n", "$$\n", "\n", "\n", "With our new nonlinear transformation the likelihood function is given by\n", "\n", "$$\n", "p(y | \\boldsymbol{x}, \\boldsymbol{\\theta}) = \\mathcal{N}(\\boldsymbol{\\phi}^T(\\boldsymbol{x}) \\boldsymbol{\\theta},\\, \\sigma^2)\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.1 Example basis functions \n", "\n", "#### Linear regression\n", "The easiest example for a basis function (for one-dimensional data) would be simple linear regression, that is, no non-linear transformation at all. In this case we would choose $\\phi_0(x) = 1$ and $\\phi_i(x) = x$. This would result in the following vector $\\boldsymbol{\\phi}(x)$:\n", "\n", "$$\n", "\\boldsymbol{\\phi}(x)=\n", "\\left[\n", "\\begin{array}{c}\n", "\\phi_{0}(x) \\\\\n", "\\phi_{1}(x) \\\\\n", "\\vdots \\\\\n", "\\phi_{K-1}(x)\n", "\\end{array}\n", "\\right] = \n", "\\left[\n", "\\begin{array}{c}\n", "1 \\\\\n", "x \\\\\n", "\\vdots \\\\\n", "x\n", "\\end{array}\n", "\\right]\n", "\\in \\mathbb{R}^{K}\n", "$$\n", "\n", "#### Polynomial regression\n", "Another common choice of basis function for the one-dimensional case is polynomial regression. For this we would set $\\phi_i(x) = x^i$ for $i=0, ..., K-1$. The corresponding feature vector $\\boldsymbol{\\phi}(x)$ would look as follows:\n", "\n", "$$\n", "\\boldsymbol{\\phi}(x)=\n", "\\left[\n", "\\begin{array}{c}\n", "\\phi_{0}(x) \\\\\n", "\\phi_{1}(x) \\\\\n", "\\vdots \\\\\n", "\\phi_{K-1}(x)\n", "\\end{array}\n", "\\right] = \n", "\\left[\n", "\\begin{array}{c}\n", "1 \\\\\n", "x \\\\\n", "x^2 \\\\\n", "x^3 \\\\\n", "\\vdots \\\\\n", "x^{K-1}\n", "\\end{array}\n", "\\right]\n", "\\in \\mathbb{R}^{K}\n", "$$\n", "\n", "With this transformation we can lift our original one-dimensional input into a $K$-dimensional feature space. Our function $f$ can be any polynomial with degree $\\le K-1$: $f(x) = \\sum_{k=0}^{K-1} \\theta_k x^k$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.2 The design matrix \n", "To make it easier to work with the transformations $\\boldsymbol{\\phi}(\\boldsymbol{x})$ for the different input vectors $\\boldsymbol{x}$ we typically create a so called *design matrix* (also called *feature matrix*). Given our dataset $D = \\big \\{ \\mathbf{x}_n, y_n \\big \\}_{n=1}^N$ we define the design matrix as follows:\n", "\n", "$$\n", "\\boldsymbol{\\Phi}:=\\left[\\begin{array}{c}\n", "\\boldsymbol{\\phi}^{\\top}\\left(\\boldsymbol{x}_{1}\\right) \\\\\n", "\\vdots \\\\\n", "\\boldsymbol{\\phi}^{\\top}\\left(\\boldsymbol{x}_{N}\\right)\n", "\\end{array}\\right]=\\left[\\begin{array}{ccc}\n", "\\phi_{0}\\left(\\boldsymbol{x}_{1}\\right) & \\cdots & \\phi_{K-1}\\left(\\boldsymbol{x}_{1}\\right) \\\\\n", "\\phi_{0}\\left(\\boldsymbol{x}_{2}\\right) & \\cdots & \\phi_{K-1}\\left(\\boldsymbol{x}_{2}\\right) \\\\\n", "\\vdots & & \\vdots \\\\\n", "\\phi_{0}\\left(\\boldsymbol{x}_{N}\\right) & \\cdots & \\phi_{K-1}\\left(\\boldsymbol{x}_{N}\\right)\n", "\\end{array}\\right] \\in \\mathbb{R}^{N \\times K}\n", "$$\n", "\n", "Note that the design matrix is of shape $N \\times K$. $N$ is the number of input examples and $K$ is the output dimension of the non-linear transformation $\\boldsymbol{\\phi}(\\boldsymbol{x})$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6. Bayesian linear regression \n", "What changes when we consider a Bayesian interpretation of linear regression? Our data stays the same as before: $D = \\big \\{ \\mathbf{x}_n, y_n \\big \\}_{n=1}^N$. Given the data $D$ we can define the set of all inputs as $\\mathcal{X} := \\{\\boldsymbol{x}_1, ..., \\boldsymbol{x}_n\\}$ and the set of all targets as $\\mathcal{Y} := \\{y_1, ..., y_n \\}$.\n", "\n", "In simple linear regression we compute point estimates of our parameters (e.g. using a maximum likelihood approach) and use these estimates to make predictions. Different to this, Bayesian linear regression estimates *distributions* over the parameters and predictions. This allows us to model the uncertainty in our predictions.\n", "\n", "To perform Bayesian linear regression we follow three steps:\n", "1. We set up a probabilistic model that describes our assumptions how the data and parameters are generated\n", "2. We perform inference for the parameters $\\boldsymbol{\\theta}$, that is, we compute the posterior probability distribution over the parameters\n", "3. With this posterior we can perform inference for new, unseen inputs $y_*$. In this step we don't compute point estimates of the outputs. Instead, we compute the parameters of the posterior distribution over the outputs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.1 Step 1: Probabilistic model \n", "\n", "We start by setting up a probabilistic model that describes our assumptions how the data and parameters are generated. For this, we place a prior $p(\\boldsymbol{\\theta})$ over our parameters which encodes what parameter values are plausible (before we have seen any data). Example: With a single parameter $\\theta$, a Gaussian prior $p(\\theta) = \\mathcal{N}(0, 1)$ says that parameter values are normally distributed with mean 0 and standard deviation 1. In other words: the parameter values are most likely to fall into the interval [−2,2] which is two standard deviations around the mean value.\n", "\n", "To keep things simple we will assume a Gaussian prior over the parameters: $p(\\boldsymbol{\\theta}) = \\mathcal{N}(\\boldsymbol{m}_0, \\boldsymbol{S}_0)$. Let's further assume that the likelihood function is Gaussian, too: $p(y \\mid \\boldsymbol{x}, \\boldsymbol{\\theta})=\\mathcal{N}\\left(y \\mid \\boldsymbol{\\phi}^{\\top}(\\boldsymbol{x}) \\boldsymbol{\\theta}, \\sigma^{2}\\right)$.\n", "\n", "Note: When considering the set of all targets $\\mathcal{Y} := \\{y_1, ..., y_n \\}$, the likelihood function becomes a multivariate Gaussian distribution: $p(\\mathcal{Y} \\mid \\mathcal{X}, \\boldsymbol{\\theta})=\\mathcal{N}\\left(\\boldsymbol{y} \\mid \\boldsymbol{\\Phi} \\boldsymbol{\\theta}, \\sigma^{2} \\boldsymbol{I}\\right)$\n", "\n", "The nice thing about choosing a Gaussian distribution for our prior is that the posterior distributions will be Gaussian, too (keyword [conjugate prior](https://en.wikipedia.org/wiki/Conjugate_prior))! \n", "\n", "We will start our `BayesianLinearRegression` class with the knowledge we have so far - our probabilistic model. As mentioned in the beginning we assume that the variance $\\sigma^2$ of the noise $\\epsilon$ is known. Furthermore, to allow plotting the data later on we will assume that it's two dimensional (d=2)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from scipy.stats import multivariate_normal\n", "import numpy as np\n", "\n", "class BayesianLinearRegression:\n", " \"\"\" Bayesian linear regression\n", " \n", " Args:\n", " prior_mean: Mean values of the prior distribution (m_0)\n", " prior_cov: Covariance matrix of the prior distribution (S_0)\n", " noise_var: Variance of the noise distribution\n", " \"\"\"\n", " \n", " def __init__(self, prior_mean: np.ndarray, prior_cov: np.ndarray, noise_var: float):\n", " self.prior_mean = prior_mean[:, np.newaxis] # column vector of shape (1, d)\n", " self.prior_cov = prior_cov # matrix of shape (d, d)\n", " # We initalize the prior distribution over the parameters using the given mean and covariance matrix\n", " # In the formulas above this corresponds to m_0 (prior_mean) and S_0 (prior_cov)\n", " self.prior = multivariate_normal(prior_mean, prior_cov)\n", " \n", " # We also know the variance of the noise\n", " self.noise_var = noise_var # single float value\n", " self.noise_precision = 1 / noise_var\n", " \n", " # Before performing any inference the parameter posterior equals the parameter prior\n", " self.param_posterior = self.prior\n", " # Accordingly, the posterior mean and covariance equal the prior mean and variance\n", " self.post_mean = self.prior_mean # corresponds to m_N in formulas\n", " self.post_cov = self.prior_cov # corresponds to S_N in formulas\n", " \n", " \n", "# Let's make sure that we can initialize our model\n", "prior_mean = np.array([0, 0])\n", "prior_cov = np.array([[0.5, 0], [0, 0.5]])\n", "noise_var = 0.2\n", "blr = BayesianLinearRegression(prior_mean, prior_cov, noise_var)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.2 Generating a dataset \n", "\n", "Before going any further we need a dataset to test our implementation. Remember that we assume that our targets were generated by a function of the form $y = \\boldsymbol{\\phi}^T(\\boldsymbol{x}) \\boldsymbol{\\theta} + \\epsilon$ where $\\epsilon$ is normally distributed with mean $0$ and some known variance $\\sigma^2$: $\\epsilon \\sim \\mathcal{N}(0, \\sigma^2)$.\n", "\n", "To keep things simple we will work with one-dimensional data and simple linear regression (that is, no non-linear transformation of the inputs). Consequently, our data generating function will be of the form\n", "$$ y = \\theta_0 + \\theta_1 \\, x + \\epsilon $$\n", "\n", "Note that we added a parameter $\\theta_0$ which corresponds to the intercept of the linear function. Until know we assumed $\\theta_0 = 0$. As mentioned earlier, $\\theta_1$ represents the slope of the linear function." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "def compute_function_labels(slope: float, intercept: float, noise_std_dev: float, data: np.ndarray) -> np.ndarray:\n", " \"\"\"\n", " Compute target values given function parameters and data.\n", " \n", " Args:\n", " slope: slope of the function (theta_1)\n", " intercept: intercept of the function (theta_0)\n", " data: input feature values (x)\n", " noise_std_dev: standard deviation of noise distribution (sigma)\n", " \n", " Returns:\n", " target values, either true or corrupted with noise\n", " \"\"\"\n", " n_samples = len(data)\n", " if noise_std_dev == 0: # Real function\n", " return slope * data + intercept\n", " else: # Noise corrupted\n", " return slope * data + intercept + np.random.normal(0, noise_std_dev, n_samples)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Set random seed to ensure reproducibility\n", "seed = 42\n", "np.random.seed(seed)\n", "\n", "# Generate true values and noise corrupted targets\n", "n_datapoints = 1000\n", "intercept = -0.7\n", "slope = 0.9\n", "noise_std_dev = 0.5\n", "noise_var = noise_std_dev**2\n", "lower_bound = -1.5\n", "upper_bound = 1.5\n", "\n", "# Generate dataset\n", "features = np.random.uniform(lower_bound, upper_bound, n_datapoints)\n", "labels = compute_function_labels(slope, intercept, 0., features)\n", "noise_corrupted_labels = compute_function_labels(slope, intercept, noise_std_dev, features)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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aEsa/e53v8NZZ52Fhx9+OO7v6667DrNnz45eu3PnzgCAJUuW4Ec/+hEuueQSnHLKKbj55pvR1taGyspKNDc3o6ioCOPHjwcAzJw5E6effjqKiopw0003obVV+1J65plncNJJJ+Gss87C0qVL456jra0NvXv3RmNjY3TbiSeeiK+//hpz587FGWecgeLiYpx99tn4+uuv486XlR0AampqMHjwYAwYMACTJ0+O1u/o0aMxcOBAnHrqqaitrRXWL0EQBHGQ9py3y23alQBL5ZpTv/jFLzBr1izs3r07Zvutt96Ka665BqtXr8b48ePxq1/9Ku7c6upq1NfXY/Xq1dElge655x6MGDECH3/8MRYvXoyKigrs27cv5ry33noLdXV1WLZsGVatWoXf/va3AIBrrrkG9913H1avXo3CwkJMmTIlek5jYyPefffdqMvU/LeMjz76CA888ADWrFmDzz77DK+++iqqq6sRCATQ0NCAWbNmYd26daitrcXSpUvR0NAAn8+HWbNmYdu2bZg8eTKWLl2Kt99+G5988knc9XNycnDxxRdH16tctmwZevfujSOPPBJnnnkmPvzwQ9TX1+OKK67A/fffb9ccURYsWID//ve/+Oijj9DQ0IAVK1bgvffewz/+8Q/06tULq1atwr///W+ce+65ytckCIJor7TnvF1u064EWCp914cddhiuueYazJgxI2b7v/71L1x11VUAgB//+Mf44IMP4s4dMGAAxo8fj5kzZyI3V5sXsWDBAlRXV6OoqAjDhg3D/v37o9YznYULF+L6669Hfn4+AKB79+7YvXs3GhsbcdZZZwEArr32Wrz33nvRc/TFvGV/yzj99NNx/PHHw+fz4corrxQ+xzvvvIMVK1Zg8ODBKCoqwjvvvIPPP/8cy5Ytw7Bhw9CzZ0906NBBes9x48ZFLVEvvvhi9LgtW7agrKwMhYWFqKmpwdq1a5XKDGj1uGDBAhQXF2PQoEFYv349/vvf/6KwsBALFy7EHXfcgffffx9du3ZVviZBEER7pbw4iGljChEsCIABCBYEMG1MIQXgJ0C7mgWZat/1hAkTMGjQIFx//fXSYxhjcdvmzZuH9957D3PmzMEf//hHrF27FpxzvPLKK+jbV/5VwTkXXs+KTp06Sf/Ozc1FW1tb9NoHDhyQllt0X845rr32WkybNi1me11dnVI5hw4dik8//RTbt29HXV0d/vCHPwAAfvnLX+K2227DRRddhCVLlggnOMjKzjnHpEmTcNNNN8Wds2LFCrz55puYNGkSRo0ahbvuusu2jARBEO2d9pq3y23alQUs1b7r7t274/LLL8dTTz0V3faDH/wAL774IgBg1qxZOPPMM2POaWtrw5dffonhw4fj/vvvR2NjI/bu3YuysjL8+c9/hr5Yen19fdz9Ro0ahaeffhpNTU0AgJ07d6Jr167o1q0b3n//fQDACy+8ELWG2dG7d2+sWLECAPD6668jHA5H93300UfYuHEj2traUFtbG30Ov98fPW7kyJGYPXs2vvnmm2h5Nm3ahDPOOANLlizBjh07EA6H8fLLLwvvzxjDJZdcgttuuw0nn3wyevToAQDYvXs3gkHtx/7cc885KntZWRmefvpp7N27FwAQCoXwzTffYOvWrcjPz8fVV1+N3/zmN1i5cqVSHREEQRCEG7QrC1hFWd+Y/CWA+77r22+/HY888kj07xkzZuCGG25ATU0NevbsiWeeeSbm+NbWVlx99dXYvXs3OOeYOHEiCgoKcOedd2LChAkYMGAAOOfo3bs33njjjZhzzz33XDQ0NKCkpAQdOnTA+eefj3vvvRfPPfccbr75ZjQ1NeH444+Pu6eMn/3sZ7j44otx+umnY+TIkTHWsaFDh6KyshJr1qyJBuQDwI033ogBAwZg0KBBmDVrFqZOnYpRo0ahra0Nfr8fjz76KIYMGYKqqioMHToURx11FAYNGhQNzjczbtw4DB48GM8++2x0W1VVFS677DIEg0EMGTIEGzduVC77qFGjsG7dOgwdOhSAFpw/c+ZMfPrpp6ioqEBOTg78fj8ee+wxpToiCIIgCDdguoUlGygpKeHLly+P2bZu3TqcfPLJytegDL7OWbJkCaZPnx4nAA91nPYtgiAIgjDCGFvBOS8R7WtXFjCAfNcEQRAEQWSedifACOcMGzYMw4YNy3QxCIIgCOKQ4ZAIws8mNyqRHVCfIgiCIFJJ1guwvLw87NixgwZMwjU459ixYwfy8vIyXRSCIAjiECXrXZBHH300tmzZgu3bt2e6KMQhRF5eHo4++uhMF4MgCCLroclvYrJegPn9fvTp0yfTxSAIgiCIjOJFoaMvAainf9KXAASQ8bJlmqx3QRIEQRBEeyeVax0nQyqXAMx2SIARBEEQRJbjVaGT6iUAsxkSYARBEASR5XhV6KR6CcBshgQYQRAEQWQ5XhU6FWV9EfD7Yra5vQRgtkICjCAIgiCyHK8KnfLiIKaNKUSwIAAGIFgQwLQxhe0+AB84BGZBEgRBEER7Rxc0XpsFCdASgDJIgBEEQRDEIQAJneyCBBhBEARBpIi6+hCq5qxFY3MYANAt34/JF/YnoZQBvJYnjQQYQRAEQaSAuvoQKl5ehXDbwaXydjWFUTF7FQBKRJpOvJgQloLwCYIgCCIF1MzfECO+dMKtPOP5udobXsyTRgKMIAiCIFKAVQ6uTOfnam94MU8aCTCCIAiCSAFWObgynZ+rveHFPGkkwAiCIAgiBVSU9YU/h8Vt9/tYxvNztTeG9+vpaHs6oCB8giAIgkgBenA3zYLMPIvXb3e0PR2QACMIgiCIFEG5ubyBF2PASIARBEEQhMfwSs4qr5QjWXoVBBASiC2KASMIgiAIAsDBnFWhxmZwHMxZVVcfapflEJWrtHoR+lTOQ2n1IqXyeHGtTBJgBEEQBOEhvJKzyivlMKIqCs0iDYDnFgUnFyRBEARBeAivxCt5pRxGrEShLqZkWe+njSnE0soRaS+zDLKAEQRBEISH8ErOKq+Uw4iKKPSi5U4ECTCCIAiC8BBeiVfySjl06upDyGHxedWAWFHoRcudCHJBEgRBEISH0F1pmZ596JVyAAfdiq08fm1Nsyj04oxHESTACIIgCMJjUP6wWERuRQDwMRYXTF9R1jcmBgzI/IxHESTACIIgCIKIQxbMDiDt4lDmPmzjPK4sXrLcWUECjCAIgiCIOFRmHKYLp27FbLAgkgAjCIIgCCIOkeDRt5dWL0qpVcmcgb93jwC2RnJ/6ai4Fb2cyZ8EGEEQBEEQcfgYEwa9A6l1R4pcnyIxOOjYrpb39pILVQSloSAIgiAIIg6Z+NJJVW4tWcC9mX9+ttNyGSKZC3XK3LWOlzJKBSTACIIgCIKII6iQtiEVubVUr8kBSwEou86uprAn1rckAUYQBEEQRByiRKxmUpFby8k1rcSa6nUylSWfBBhBEARBEHGUFwejC1gDgDkHfapya6kIP50cxqSuRCfXyUSW/IwKMMbY04yxbxhj/85kOQiCIAiCiKe8OIillSPwRfVoPDiuCMGCABg096Q5Aaqb99SFn36v0hO6xwlAQItTk7kSy4uDGHtaEL7I8kU+xpDvF8ueTGTJZ9wmyC6lN2fsRwD2Aniec36q3fElJSV8+fLlqS8YQRAEQRCu4FYqCP06svQYgCbWllaOiB5vzojvz2EAA8KtB7VPwO9LmZhkjK3gnJeI9mU0DQXn/D3GWO9MloEgCILIPF7O19TecLMt3EwFoR9vFlVGjK5E0SzIcBtHQcCPTh1zM97XPJ8HjDF2I4AbAeDYY4/NcGkIgiAIt/F6vqb2hKgtJtY2YPmmnZhaXuj4em5n07dLUWF0JcriunY3h9EweZTje7uN54PwOedPcM5LOOclPXv2zHRxCIIgCJexGqSJ9CJqCw5g5oebE0rVIBNBiQa9W51nnhQgi+vKRLyXCM8LMIIgCOLQxu1BmkgcqzqvmrPW8fXcFkGy83yMxcVxiWZBpmrmZiKQACMIgiAyitctFe0JqzpvbA47zh7vtgiSXe+BywfGuTRFsylTFWyfCBmNAWOM/R3AMACHM8a2AJjMOX8qk2UiCIIg0ktFWd+4wGovWSraExVlfTGhtkG635jyAbCP0dP3uxXU7/R65cVBzwguMxlNQ+EUSkNBEARxaGCeaTe8X08sXr894zPTCKD/Xf/AvgP2azEaUz7oZHI2qxdn0no2DQVBEATR/hDNtHtlRchT7qFsJxkxcs8lhbj95VVobbM20JjjxVRns6ZCKGXjTFoSYARBEERacTs1QXtHZE18ZUUoKTGSA8DOBmaOF1Np10SFkp1oy8Y+RUH4BEEQRFqhWY/uoQuaUGNzND5r1oebk0rrUTN/A8I21i8AcTF6Ku2aSMoR0TOalx3Kxj5FAowgCCJLqasPobR6keOZaZmGZj26hyxvlwhVMaJyXLd8f5xlSaVdExFKKqJNdu8cxjz7uyABRhAEkYWoWAW8itfzM2UTTiw8qgLX7riA34fJF/aP267SromIbxXRJro3oC3W7dXfBQkwgiCILCSbs8d7PT9TNiETLsz0txOBW1HWN+58Ix1zxdJBpV2H9xOvaCPbDliLNt0KPLG2AR1zc8AEBffq74LSUBAEQWQhfSrnCV1NDMDG6tHpLo4n8WJaArcxB7UDmtgae1owqbQevSvnWe4P+H0JiebS6kUICSxa3fL9qL9LvD6j1TMaJxtYkanfBaWhIAiCOMToVRAQDmTpjqPyqsjJtrQEidaj24lOdYKS/qWT6AxDmTtxV1MYdfUh4fVkz2i3MLcRL8YXkgAjCILIQryQPd7LIscLaQlURVWy9ZiKbO+i/mXGSqDJKMj3Y1dTWLjPqm1EzzjRImO/EQZrF2emIAFGEASRhaTK8uEEL4gcGZlKS6CLrlBjMxgOzkgUiSrjsWYyXY/G/iUTWj5RwJUFdfUh7N3fIt3vtG1kVuB8fw6awm3RvzmA2o++RMlx3TPeL42QACMIgshSMr3OnZdzL2XCRWu2ZJlj9IyiShTXZCZT9Wi23Mlo5Rx9Kucpi3+7/GIF+X5H5ZRZgUWJOMJtHFVz1npKgNEsSIIgCCIhvJzPS5YSYXi/ninLnfO7C2IAACAASURBVKYSkxRqbEbvynmYWNtge2wm6lGU3sTKzuUkBYqdoHQ6J1A269Jo/TLS2Cx2fWYKsoARBEEQUZwEg3shDk2GyEXrxhI9VjixWNlpDbfq0Wlwvyyxq9GdKkLFZSqzSursTkAgiazAExRjwzINCTCCIAgCgPNgcC/EoVlhHpxLqxelNGbNTmCoEszgAtUyEckj5doasYw5OVfHLrDfLYtfN0mgfzeHLs5UQwKMIAjX8WpqgmwknXWZSFC9G3Fo6XrGVMesiQSGneXISKK5tWTYJes11zmgLd3TKvAF+hiLtossl5dIQJnbduxpQbyxalucO9CJxc94za4BPxgDGpvC0eeYfGF/VMxehXDrwefw+5gwe38moUSsBEG4iixpYrZnOs+EqEx3XWYiuWs6n1EmHHyM4YHLB7pyP5E4kKVd0O/dxnlK+pSsPQGtjo117vcxgMMySF5Pfjpv9ba4ZxK1mVXbAolZTu0mLyR7fbexSsRKAowgCFeRDXLBggCWVo7IQImSJ1OiMtV1aRaV+75rEQYqp7Lt0tlfrAZvt9tTZZajP4eh5jJ3hJ/o/re/tEpqzRJtV0Fk0SsI+FF1Uf+45yiassD1/iTrL25d322sBBjNgiQIwlW8nJogUTK17mIq61I0223fgRb4c2LnvKU6qD7RZ9TXAHQym1GfNSfKX+V2e9rNiAz4c9A5LxcTaxtcn42pt61IZAX8voTFFyB2p3bqmBsnvurqQ9JZh8n0X5VztzY2J9Q/0g0JMIIgXMXLqQkSJVOiMpV1KRII4VaOznm5aV0kO5FnFIlHlTQIgCbC2iQCxM32lF2LAXhoXBFaWjl2NYWj5a94eZVrIsFa/Lnv9RI9q5WYTab/dg3YB9IX5Pvl/aOtDbj3XmD0aKCxMeFyuAEJMIIgXEWWf8kLqQkSJVOiMpV1KRMIjU1hLK0cgY3Vo7G0ckTK42YSecZkLZLpaE+re1TNWRsXa6UnCnUDKyHZLMmR5fexOOunKqJntSqDrG3trFZ19SHsOyDPpA9ofYdzxPWPws9XYfTg3oDPB/z+98CbbwLbt1teK9WQACMIwlVkyRGzOQA/U6IylXXpFUtlIs+YrEUyHe1pdQ+Za86tRKFO2zBYEEDNpQNRc9nAaDvIlhkyb5XVm6wM3fL9luthWlk1a+ZviJnZKLr2tDGF0Xxi3Zt24/naO/HFfRfgpb9Vwt8aEW9lZcA33wDf/770WumA0lAQBOE6mV4ix20yme9KVpfJzsr0UhJVp/0l2WWGUtme5lmQef6cmBQJ5cXBlCcKVVlIW4cBMQHrxnUqRf1j7GlBLF6/3bbeZP1LlgrCLgVKXX3IMvj+oXFFWjna2rBtUhVumf/XmP0HcnIx4ac1+L+/TJBXRpohAUYQBKGAl0RlIgk2zaRKhLiZrkN2LTfEYyra09wujc1hBPw+PKiLgwhOE4U6rVN9n2wWpBGZaHXSP6zKZ16JoGb+BkysbYg7zsqqqderjGBBAOX7NgJ5JwDffYdbDPvu/9E1eGzIpcjr4I+mp/AKlIaCIAgiy/Bqqg8303XYXcuLyX6t2qWirG+MZWzPdy1obYtNFFpzaXxKimTqVDVnVjL1Vlcfikt66sth6NIxF7ubD1r+AFg+h1WOti55uUL3bEHzt5gx70/40WcmXTByJN6qnI6py3dmvH9QHjCCIIgswk5cpCNhqorAMR/TdKBFaNlJRBhaDcipSlyaLI4Sn+YwdM7LjXNPmklWbNfVhzBl7tpou+h5vKyWO3IibovvXmCZaFa/Z34HH/YdiBeC+nOo5E0DAMbbcONHr2LSkmdjd/h8wMKFwLBhluenGysBRi5IgiAID6HiXkw2BsqNMoiOkZFIegfZObpLze2FtN1A1i4+xuJTfrRx5HfIRf1doyyvaTfhwE4sLd+0M0YgcWjWNivx5cS9bSe+9HuKxJfxOezcpoNC6/BC7Z3oFN4fu2PKFG1Wo88Xd47XoVmQBEEQGUI07V4lxUKqZ/GplMEu0aiRRIShyjnpSIbrBFm7yOKwVISp1WxVu5mDdfUhzPxwc9y54VaOKXPFKS/SnXTY+HzmHG1dm/fgqdlT8MV9F+DVmRVR8fXPYwfghxNmoW7lFuCuu7JSfAFkASMIgsgIMkuDTNQYB+tUz8pUSfOgatVKVBiqzuTz0goLsnapmb/BscVSF+Ohxua45X/0OrWbOWglmnY1hVFavSiu3zhN8RHw50hzi9kh6hu9uubh3Lf/jjsXPxV3/K9+UoO5h5/sSfdzIpAAIwiCyACywVO2Tp95sNZn8ekD9cTaBtTM3+DKwKTi4pQdUxDwo1PH3KSFoVnM5CjWS6aRza50MmvTLM7NT53n15xXdmLJTpy64d7O8/uUBZhl31i2DDjnHCzdsyfmnIdKr8STZ43HPZcWYUZxEDOAmD6fzWKMBBhBEEQCJDsLzyrGyRywLRus3UhHIUIlzYOVhSoVqSdkswGzYYUFmWUM0ILszc9q597d1RTGpFfXoGvAL5wdmMMY+lTOk4pWI83hVtz+0qpoOZ2m+GhUiAEDtEkHjCH2WXvnA+XlwOuvxxz7v0Fn4Iay27GmLR+9CgK4x9CfUtXnMwEJMIIgCIe4MQjILA3mlAVW4s7OBaWX1alQVHFxlhcHsXzTTvxt2WYYV9VpbA4nPCCq1KvXUk+oYraMWT2rilu1OdyKPH9OnFgHDk5UUF10u5XzhOtZ1o+NBPw5aGnT1r4E5yh7+0WUT3oy7rgJN9yHYbeOR3lxEHMk11Lp84C7+ehSBaWhIAiCcIgbebjcyJlll47CzbxcKuU34mbqiUSulcoB2I1rJ5L3ygwDMH7IsZj14WZXlthOtJ7N/cCc6qJm/gb0WLcKL9Teia7f7Ys5/7Ezr8T0oVegNedgIH23fD8mX9hfWKcqKVhS2e+dQmkoCIIgXCTZtQgBdyw6dvE6qtaCRKias9bSTWauCxXR4ka96vdKlZvKrWtbuaAbm8PIYUCbjarqVRDA4vXbXRFfVmWywrIfNzYCN9yA8tdeiznn4+ApuPXi3+LrLocLr6m7WI3X11GJUUtlv3cTSkNBEAQRQZQWQoRbC1mXFwextHIENlaPxtLKEY4HB7t0FG4JGjN19SFbC42xLlQWWjafo7JdRipTKbh1bbtnauOaJYhB+78/J3YZbL2dVdpStrC20zIpwTn6vPgMwBjQrRtgEF/XXDYFve94A5ddfb9UfOnI6lQlBUuq+r3bkAAjCIKAukgAUp+HS5Xy4iCmjSlEsCAABs3lY3SzuCVozNiJDXNdqIoWt+pVNtCGGpsthbUIsyiXxTs5HdxFz2omv0MuNlaPRv1do1Bz2UBhO9u1ZcDvw5VnHGN7Lz05q1P030239WuwYsZVWPq7szHw/jsPHjBpEl7/6Auc/Ie38N7xp8Xczw5Rndr1eUDev3MYc9T2qYZckARBEHDmtvBSQLjVotKiGW3+HIamAy3oUzkv4XJbiY2CgB9VF8XG76haJNxaANoqMNyJy1DkbjTn5NJJxPoJWC+Ybc79JiqvqI31MnbL94NzYNaHm9E14EeePweNTWEU5PuxuymMmOQRifgxd+/GYddchXX/fi9m88pefXH3NVNQN20cAOBiADw3N6a99n3X4siKasRuIXXZDF3RZINMQgKMIAgCzt0WdoOAFzALmq4BP/YZ1mu0EyMykWMlcMziC3CWW0qlXu3isOySuKrGA4lEOQekiVGdot9/Ym1DwqLOKsWFsQ4am8MI+H14cFwRauZviFtCKNzG1WKkOAceewz4xS8AAMaQ/esunYwlJwwGADDTA5nbtU/lPMvbJGNRthK3XooFIwFGEAQBd9ZXtLLKZGpavHHgK61eFGd1MLoCjeUb3q8nXlkREoqcirK+UtEgGtyc5payw85aaRQlTlyG5jaSnavP8HOjLfV0HuaZjE7qRyRaS6sXSevI6cdGXX0Idc+8gelP3YHDm3bH7HvhrCswZfAVaPHFygm7341V/VotFO6EZJaASgckwAiCIJC8SLCyygBI2aw8J1jFRpnLJ0ptoA/gSytHYEJtg/I93HbZqggIXZTI4rbMAsGJu7Fbvt9xugbjfcz1MLW8ECXHdXdVoFvVkfLHxrffYstlP0b5gjkoN2xe3eskbHvyBZSdfzq61Ifgf3UNWhz+bmS/NzdTpMjwyuoJJMAIgnCVbEiAKCJZkWAXaJ6KhKlOkQ28PsaErjYR+sAedGgxdNNl68RaqSqsZe5GEXv3t6CuPuR6olnz9ZLpE1Z1ZFknnAN/+Qtwyy0AgKMN594w9i4sOvF0AEBw9V6Una/2u7F6jlT0eauVBLy0egIJMIIgXCPblwlJRiQkMvVd35euepMNvHYLXhvRRY7bbkUnOLm36kDvxC2lHC9lYsrc+NxpibiAVe5rVUeiOvljn1aMGD0Y2LYt5jpPDr4E9591DcI+f8x2lQkCgHPR6QZWbZmJZKwySIARBOEa2ZIAMRXYWWUylTDViEyMyGKlrILNMzkT1Om9VQZ6lSV1jCSSHNYc+K7j1AWsUsd2dVReHET5iYcBN90E3Pf32JNPOw145RXguOPwbPUihJOIjXTSt92yAlst8+Wl9xAJMIIgXCNbEiCmAjurjNW+dNabTIyIyjf2tCAWr9+OrY3NKIikNJhY24Ca+Ruig2OmBjS7e4sGc0AuSGTtl+fPEQqnRJLDykjEBayC0K25cgvW3/MgKl/9U/wJdXXAxRfHbErW0qnat920AmfSOusEEmAEQbiGGzMJsxUVq4zTvFXpqje7smeba1lU3orZqwCuuQ/1bRNrGzChtiE6627amEJUzVkbnSma58/B6AFHxbgCAXeTwwLqi2YDSfSJNWvQfPYolH/zVczmZ8+4BN1mPICLT+8jPC2ZGK+6+hByGBM+n/k53LQCeylPnxUkwAiCcI1s+fJMFVZWGacJU71Ub9nmWhaVN9waLwL0LbqgHHtaEN+1HExPuqspjFdWhGIsgYkO5jKRXRDwo1PHXMcuYCX27gV+/nPghRe08yObPzmiD2685PfYUvA9AIDvtXXg/g6O+q4uusyzRfW6XL5pJ15ZERKKL9FzuG0FzoY8fSTACIJwjWz58swUMktBpuvNzsKVba7lRMrVHG7F35d9KUzcuXj99oTTTujIRHbVRf0B2LuAlfsE58AzzwA/+UncrpvLf4d/9P1B3HanGeLN/UUUqyaqS0Bzt4oC4Qvy/UJXr7580KH4DiEBRhCEq6T7yzNb0l6ozAbLVLmr5shn51llvveqa9lpQL1OKhN3JuOiVmLtWuD884HNm2O3//KXQE0N0LEj1lQvAiTP4sSiaZXmQUdWl22cC61pe/e3SK9T8fIqTJm7Fo1NYU//xp1CAowgiKwlm2KTZG68219aBSCx8rohPuvqQ9I1+XTh4XUXqZG6+hD2fRc/mPt9LCYGTIRPMV4pUVwX2fv2aUsCPfdc7PbCQuC114ATTojZbLdEk6poVRGkTuqyZv4Gy3YJt/GY5bNuq204JARZTqYLQBAEkSh2yU+9hGzQ0t0/dfUhR9fTxWeosRkcB8Wn0+tY1ZU+WJYXBzFtTCGCBQEwaNP5vZRPSUevE7Og7JbvR82lA1Fz2UAEI8/ETOcG/D5cecYxCPh9cdtTLTQdt+XzzwOMAZ07x4qvl17SXJCrV8eJL+BgO8rwMXOtiLETpE7r0qmFsQ1afF4y/d4LkAWMIIisJZE17VLtrkxkAetEAtrdCoy3GvyMg6Vdsk0vuIFlrrH8Drkx+a8AeZndXhIo0XLHteW6dcDo0cDGjbEn/+IXwPTpQF6e0r3Ki4PSZaRUZ2NWlPWVXgM4mOxUtS4TdRnreHlCiBUkwAiCyFqcxCalw11pdQ87948TK0BdfcjRItNWyOqwUwcfauZvwMTaBsvB00tuYCeCXCYoMxGLJyv3zu27tGD6p5+O3XHyycCcOcCJJyZ0P9kyUkHJ70YkoozpOszXiEn2GklHofclYw45nYqyvqh4eZWlG9IOr04IsYJckARBZC0VZX2V3RzpcFfaWTKmjSmUunlU44zcXmhYVId+H8OBljYll5hb9VpXH0Jp9SL0qZyH0upFCbmUZM/u1ckCOubyla9djC/uuwDr/nRprPh68UXNxfjJJwmLL0D9dyNzjf6hbg1E3djJNeLaV837KcXrbSyCBBhBEFmLk9ikdKRSsLtHeXEQD1w+MKk4I7cXGhbVYacOuXHWCJmocqNe3YpncyLI3SYZAVlR1hen7N6KJX/5Gb647wI89MYDB3fefDPm/OtTlE57B33qOycsTo2o/m5k4nrWh5vjUkYUBPyOrmHsSzXzNwjztAGAP4fBl2Otzrw6IcQOckESBJHVqLqM0pFKQeUeyeb8SsVCw+Y67FM5T/nebtSrW/FsmcqnJsy8b5E6QXfJ7djeiPvefxrlH89DueF6m3oeg/88MQvnlP9Q6uJdvmlnQslhzS7FB8cVSc+T9TWRVGJM7HJWEehWfXrc6cfExZIN79cz6cS4XoAEGEEQ7YJEUyk4CTBXvUcycUaJLjTs5DmciCo3UlTIBuBQYzNKqxd5foAVZt43pU4wuo0/uHsGltbdH3+hv/0NuPJKHAfgOItr61Yoc/Z5wDruzmm8npPg+F1NYfyhbk2cMFLpS1b3Wbx+O6aWe2/GrRuQC5IgiLTjRrxPIuT5cyz/NuPUNZaOdA2JuNmcPoeTe7jxzFbWMhV3pN6felfOw8TahpjnnFjbgN42/SzZ/qjibv3e15tRXDYU5YOOxnSD+PrbwDL0ve0VlE57B7jySuVri7LP28XdOY3XE/UDK2fgrA83x/Wx4f162vYlq76bjcH1qpAFjCCItJKJWXPme+rsagpb3jsR11iqZ9El4mazew6RdWzamELleyT7zHYzRK3q3G5ZHDsrkRv9UWbB6dhyAHe98wTGN/wjZvvGbkfhp2Pvwmc9joluCzU2C5fccWKFshMrTuP1RH1teL+emPnhZuHxIlG4eP12275kNasyG4PrVSEBRhBEWsnEws5WgetW9/bqGoiqgse4YLKIUGMziu9egL37W6JB98aFqWXXczv2xjjQO02vobIsjo6ord3oj2YBOXrd+3h0zn1xx/1hTAUWDz5X+owi4ScSp+ZFunW6BvworV4kbZ9E4vVEfe2NVdukqyeY2drYrNRfqy7q79pqC17JS2cHCTCCIJRw66WWCVGTqGUg1YH7qRwoZFY/M6IFkEUxRhUvrwIYorPV3LZc6oN0afUiR3XutN+Yj1ftj1ZtVV4cRKfNG3HijePR55tY69CLA0ah6uwbsd+fh4KAH1UW1j6R8JNZoV5ZEYq5hj+HYd+BlqgwErWPW0tKicSSTBSq/lbcmkDhpbx0dpAAIwjCFjdfaplY2NnOjSO7dyrXQEz1QOHEMiTCPJiKkmSmwnLptM6dZlE3t7VKf5S1Vc6B73DRC38CHn0U5xjO3dz1SNxw6WR8evixMdfc3RxGeXEQLy/fjKWf7RSWTzVprHlmYNOBljgxbW4ft0SOqih0+ltxw32fCQt7ojCuuPSAFygpKeHLly/PdDEIot0hs0oECwJYWjnC0bVElpmA35fStQWtrEF2906VlcrNOhXRp3Ke0CLhNgzAxurRrl7TSZ2rWvoAcVtb9UdA7BY9b/0HeOz16vgbPPsscO210rbVrp2D5nCbtIyJtr+svZNtH6dtodeXvhh3MM0uQKt+z4C0uyQZYys45yWifWQBI4h2RiKCwk23YSZyNZljjJwMDqkKqk+1K1Zm2dGf3QqZO0l2H7dxUuf6cVZrE1oNvLL+CCBGmB3T+BWeeHUqTt7+RezFr70WePRRoFOn6CarSQVW4ks/NxHcsCyb3w1mq5adlVbflkkXoJVF1Dg7M13lsSKjAowxdi6AhwH4APyVcy74pCAIwi0SdXu57TbMxHp7mbinFal2xcpceYOO7Yp/frYzRmD5fQydOuRid3PYMsbIGAOmX08kGNIVBG28j0xYqliURH2jtHoRWpv3Y/KSp3H9irkx+7YcdgSuv3QyPu15nJbI1CC+9OsBwO0vrVJe4BoAuuX7betJVrfJustF7wZjHKCOnTsvFS7AZHPxmfGKSzJjAowx5gPwKIBzAGwB8DFjbA7n/JNMlYkgDnUSfTmmMhYqnbghDOyuoXoPNwZMu6n9gDhOxzioMgDjBsdmG1+8fjvGnhaMS6ppvp7o2ZyI/GTaw3wfkdBJuI++9hqWThoTt7nivF/j5cKzYVwIUfTb0Z/LifhiACZf2D/uGlZWOVHdmttbZUF1/Tzzu0FWeisrrRuTGszHOfloNNdDIs+QLjJpATsdwKec888BgDH2IoCLAZAAI4gUkajbKxNuQ7dxI+jd7hpO7pFMnarex2zZKa1eJBxk563eFudqemVFSBgbZ1c+VZGfbHvIJhn4GEMb58776MaNwCWXAKtWxWx+pf9w3Dnq52jqIJ+FaRQTXQN+7DvQIl3bUMb4IcdGyyqrm465OZZ1a2xvp/XrRJBYWWmTmdQgKluyuficzqpNJ5kUYEEAXxr+3gLgDPNBjLEbAdwIAMcee6x5N0EQDkjG7eU1F55T3HCN2F3D6T2c1KlxkM8RuNtUnkU2yMpSUSTiplEV+Sp1JbMCWeULa+NcPej8wAHgjjuAhx6K3R4MYtEDz+An9QdsY+G6BvwxYkI1P5aRbvl+TC0vjP4tqxuZW01U5077oupsUgbrOLXh/XrGuS7NlkhZ2armrI1r72RjJb1svc+kABOtaBDX1znnTwB4AtBmQaa6UARxKOPll1GqcSPo3e4aid5Dxa1p525TuY/TlA2JuGlURb5VXdXVh+Iyo4tykcnub8Zcvw90/AJDbvtJ/MlPPgn85CcAYxgBYHzHNcI4KJ2A3wfGkFS6DwBoNAlgp/UuemanfVEldgrQBmmrWZAiF/fY02I/NGRlaGwOx+Ux6xrwJ5Uh38vW+0wKsC0AjjH8fTSArRkqC0G0C+xeRtmSQToR3Ah6t7uGbD8HpItKq7hjVHN62T2LyDrh9zG0tHJpEk2nfUJV5MvqqiDfLxUColxkRkT30eu3+/+2Yc5r96Dw689iT7rqKuDxx4EuXeKuN7W8MCY2rmvAD8Y0waTXxUSL2ZdGgpG2UemDsrrplu/H/nCb0geU0/5ufjeIrKzG5xAhiyNbvH67UtnMNIdbkefPQcDvy3h+sVSQSQH2MYDvM8b6AAgBuALAVRksD0G0C2Qvo2zKIJ0Iblj/7K5hZUWQ1aeKq0jFImJ+FllKAfOQ2ioRXwG/D8P79XTcJ1QtDrK65Dwxi5IwpUg4jKZfT8S691+OOfbrzt3x2xuq8dzDP7O9rtXgXVcfkgoVM6IgekCbXdp0oAV9KudF60pWN3qQfqomeVjFkKmcr2p1U7W2AZrYfXBc0SH5YZjRRKyMsfMBPAQtDcXTnPN7rI6nRKwEkTpSnRjUC6RzFqTsC99cnyoJNGVtIws4Fw2eTnJ7+RjDA5cPlD6HW31CJBJlCz1bEVeeN94ALrww7rhJZbfi7wPLAMbAgKQGdicJYAHgoXFF0YkaVgH75iSwbvXVgnw/OEc01YjK9Zz+Xpy8Q8zXFmXyl52bTVglYqVM+ATRjjG+BK2yR7ud6bw9oJqZXGXQcrp6gFUmdhX0MqYqu7oIVUHj9zGhYCk/vA0YOxb4+OOY4xcOGIYJI36OvR3zY7bL3HmqKzI4rWORkEjmoyfZ1QJSsfpEMvdxcm42hUpYCbCcdBeGIAhvoL/wQhbiC8jcdO26+hBKqxehT+U8lFYvQl19KCPlSBRZvZm3V5T1RcDvi9lmdvWUFwcxbUwhggUBMGgDtD4wieop2RxHxpg2lWcQ4bT9VOLcCgJ+1Fw6MFoPx3bxY87m11E+6Gjg2GMPiq+ePYEVKwDOsffZmWjtHBvfJXN16q5fFZJdBNzqGiqTNoy/Xd01LKtjKze3m1j1U7fOdfrsXoaWIiKIdorKgJepGZJeiEdL9itbNQZHv6Zx1l+eP/7bWI/P0cs1sbYBU+auxd79LdHgdL2eCvL9QneOiBwAxsVx7GLaVPpEIu1nZ00K+H2ouqi/Vg/bVgGjL4g/6NFHgVtuiUmUao5J0wPpZfWjKqySXQTc6hp2AtdpiolUL3tlxC7g3ep3pRIsn02LbdtBAowg2ilWL1/R2nnpNPtn4iVrFZuTiAB0Ov39u5aDMmhXUxgTahtQNWdtVHToZTQKG1n+rv0CYS2LAeua70d+h1zpgOjkGXSctl9dfcgyRi1YEMCdRV1w7i1jgWXLYndeeinw178CXbtKy2MUr3ZuTlWLr5NAcploTUTg1tWHpMJP9ptO9bJXqsiE+fJNO7F4/XaEGpuRwwB9smtBwB/T/4H0islUQwKMINopspeyLGA2nRapVLxkrQSk+flEeYcSEYCq099l1sjG5nBMPaumozALmW4WFrHGpjDq7xoV/Vt3HRrryWkQtF2OL3M71MzfIBRfuW2tmPe/t9H3vkdid/ToAfzjH0CJMLRGil39ObH46u0qW+9RJSO/U4Gr91MZMkHllfx/MmFuTI1izDTS2BzWcr/hYF15RUy6AQkwgminOHkpp9si5eQlq2KZsxOQqsImVV/ZVtc11nOigfX5HXKR3yHXtk7/UBebeDRRoa2a40u/vrnuz/p8BZ57eXL8hWfMAG69NcbF6ASrehamsbChvDgozQMmy8gvmvmpilU/tRJUXklGKqt/qxjUcBuPec94RUy6AQkwgminOHkpp9vsL3vJ9u4RwAmT3kQr5/AxhiHHd8PKzbttLXN2AtJJ3I+IZN2zdvFEevl8ijmnzOjXFrn5Qo3N6F05D506+LDvQPzgnojQdpLjS//7iD078H+vV6MktC5m/z9OGorfnvdrhLt0xbQzC1GeoPgC5PXsYwxbG5ujQelutJ3sY8EsUejiKgAAIABJREFUQI1pN5JZr9Eu2N0LyUidxs3pGJ/bK2LSDUiAEUQ7RvWlnG6zv+gl27tHAEs/2xk9ppXzmL91RILBTkCqDAx6YlKzew5A0u5Zu3givZ6txBcDbJOCcshjwUTiSyfU2CzN5C9CNkiarUW+tlZM+OBv+OW/amO27+7YCT8e90esPuqkgxtthKCKCJbVs15n0eWOkFzbObEkm0lkvcZgQSArBIiorlTy05nfM14Qk25AAowgCFsyYfY3v2RPmPSm8rlmwWUnIIVL9OQwdM7LjS47o2eSNwutjrk5Sbtn9eOmzF0bF6tlrOegTdyeSpA5R2KWNKfCUjRI6oldz9xYj5kv3Rl3zt0jfoanSy6SuhjN7WpMemscyGVlNQtDMMBcDeE2jqo5a1My2ULV0upkvcZU/g7dnngjqivz78qMP4ehoqxvVuX+UoUEGEEQUsyZtDvm5jjKpO0mTgSDKNeWbOCSLSA87vRjMLW8MLqttHqRUGjJBg6n7llzmgnRQGM3AJsHOFmNJeLGBJKM+9u2Da+/9DscXh87i3HB94fgN+dPwLd5nW0vYWxXs9g0P5GsrEZh2LtynvA+okkY+j1FbSMSm6JjVV1wqus1pvJ3mKqJN6K60tfblM2CBJK3MnsREmAEQQgRpTwI+H14MLKkSrpRtdpY5doSDVwiYSVaQNipoDIPonX1oZhcX93y/Zh8YX9LgWBGZQA2nm+1hFGiIsxRPbS2Anffrf0H4PDI5n0d83H1ZXfjm/7FGN6vJ75VWH7I3K4q7jw3YxSdCBLZsWNPC1paewBn6zWmknROvLF7JtnHTzbm/jJCAowgDnESNd17LeHhlWccI1wnsPSE7vhiRzNCjc3wMRaT4VsmTIyoTjBwEkAsWhj7ttqGmISnu5rCqJhtHW9kZXFRQWYxG3taELUffRlN4Krjy2Ho0jEXu5vD0ngypbi/d94Bzj47fvsDDwATJ6ITY3jNsPmNVduEVierVA4q4spsMTPXpSw9R7d8f9w2J78H2bGL12/HtDGFcS64xeu3J23RcttF56V8W14qi5uQACMIDyJ7mTp9yYq+xCfWNmD5pp0x7jURXnjpmZ+39ITu+PDzXdFZkFeeobkJk3GXqE4wUE28KUpnUDVnbYz40gm38qhYNLcrIHa76EkrVfqAlcWs5LjulhY52dp8UuvM118DV1wBLFkSu330aOC557TcXRKqLurveA1BO0FsLKuVRar24y9j1pbUqasPxdSFk+SnVr+dVFiwUuEu9FK+LbfT0ngFEmAE4TGsskWLgsAB+UtW9CXOAcz6cDNKjutu+WLK9AtYVA879x3AA5cPVLY4qFjrnAQ2iwLujTBAmLRUFlMExOfCsgvud5qnyzjgG5cx6lUQiMsybj4PsIk3am0F7rkHmBybs6slkI9fXFuNBV2P187bvB/lcv2VUGyT1Yw6swi2skjVXDowRogCmnXSmPDUafLTdP526upDwmSwyVqrZb8L0UzgVAsc1d+oF5YwcwIJMILwGLLB4u/LvhS+ZKvmrJUOXFaJD+1ezplOeOhEVCVjrVMZ/FVmFwKJDbC629SIVXC/arC5mUQGJ6m1ZskSYMSI+CmE99+PuhFXoOLVNTHLONm5Wi3vZXE8kHweu/JiLRGvWSQbXdlOk5+m67ejt6ksni8Za7XKjMV0CRzVtvZa2IQdJMAIIkPITOWyl6bsJdvYHI4OHuYXopWbxu7lnM4ZVyKciKpkLQ52g3+yC5dbLQWUaDC8EWOdyPpV0oPTN98AV12lxXcZOe884PnngcO1EPspdy+Ic+mFWzmmzFVP7aCKeeboxNoG1MzfENdPrTLzA4kLeJmLNF2/Hbt+mazFzWw9TYWlLZGyyPBC2IQTSIARRAawskYkmi1apznciilz1wIA9n3XIj1O5eWc6hlXVvEaTkRVqi0OThYuFz3T5Av7o2L2KmGskSwRJRPkqJKh14lVv0pocGprA+69F7jTlLMrLw94+23gzDPjTpEJzV1NYUfJXFVRsexVlPUV1v/upjDq6kOWAk22hJNd8lM3fztOP9YAd/u/naVN5X2VjtisTIdNOCUn0wUgiPaIlTWioqwvAn5fUtff1aQtYiuLPfLC2mn6Sz0UyVelD5x19SEAENaDrNzlxUFMG1OIYEEADNrgaLc0i2oZS6sXSfNpBQsC2Fg9GksrR0TFl+iZlm/aiU4dxN+7enb6uO0ODGP6eoJW/apAMLMPkAxO770HdOgA+Hwx4uuxsp+ibvlmoLlZKL7sMLexG1g9s055cRC5OfG13AZtgkRFWV/4ffH79+5vwfB+PZX7YSqw+p3IhIWPMVf6v46dpc1nszyU3W/dLZy8M7wAWcAIIgPYxaQA9sk07TCnGNBJZNHhVGDnEnPqxnHbWmcX9yV6scueyZxl30yi2el19Jxlsn4VamyGXyBA/D528Bm2bwfGj9csWwY+OH4QfjX6duzM7woACNStBXJypHVdEPBbTjpw22Vl9czGmYzNYdE8VM2FX14cjAvEB7TfkCh1RDp/P3Yfa05njyaCnQvPrt+mKzYr02ETTiEBRhAZwM5UbhQTxXcvkLp1nCKbpZcJrAbOPpXzoi/PRMubrMvD6qtfJmKtJj1YESwIJBWnovclq8WmRYK8c24Oyue/AAyaFLvD7wcWLkTpP1virmc3cFZd1B8VL6+SfgAA7sbkWLnsVdd1rKsPYbdENIYam9M+oBv7rqwWRR9r6Xbt6QRtXHzpjM1KddiEm5ALkiAygKqpvK4+hL375XFcTkllLITurutTOQ+l1Yts3QtWZUnWTeGGy0M2OOgiVvSST6R+9XaXuQgLAn5hYlAjugtId0WaMVsoSrasxYbpl6D+7vOASQbxNXWqllriwAHgRz9KaOAsLw6i5rKBloOym/2woqyv0IULaBYs3RVpVYc18zdIy8SAlLvOjJj7rgzjx9rSyhExrnC3sQqLUHHxyeo2hzHl98WhCAkwgsgAqjFLNfM3WFoSAG2ANr8c/T4W53JK9aK9TgXP8H49pQOnjjmWRxWVuCA7ZIOGlXgQDVRWz6i3OwCh0Pb7GC4YeBT2S9xnOrrAMi+fpONjDN2aduPZlybji/suwOxZd6Bja8TiM3Ik8NVXqFu5BaW+oejzu7eiA6LVwGnVtrooeGhcUcpjcsqLg5ZCRbfcTL6wv/SYrY3N0raTpf1IFcnOuE0FxvcVcFDwq8ZaygRcK+dpE7ZehFyQRLskW7Il25noA35fdLFaUSb1RJ/Raf04jfEQLYAtIxE3hRsuj0RmVqrkTtKvow9csun9ANCpQy4Wr9+ulH1f9HyMt+HGj17FpCXPxmxvZTm4fvw0jLltfMzkAdW1C1s5V1pRIV0usqCFi4zhYFZ7UZwXoIlqUVll1zTHl7mJkxm36SQZ1565bkXLXHk5X1eqIAFGtDu8kC1ZtQxWg4A5DskqH1EqymbEqeBR+crXScRdlcx0dKP4LMj3o2NuDnY3h5UHPtFAVXJcd+nSUlbT+3c3h6WxSTpGUVgQyTc2KLQOM2v/gPzwdzHH/vXsazGteAy+172zcqb4aWMKhQLRvKKC1bqV6ciULkvzYUw6LFvySK8/c1lli5kDSNk7Q9Z3gwUBz8RvJoKxbvtUzhMe49V8XamCBBjR7pANNqlIFOm0DOYvwHTNckqkbEacCh7VF22irpZEl1Exi89dTWEE/D48OK4oqfqWiRCVRJr7vmuRzioMRixsNfM3oOrZ9/HAvD9h5Gcfxxzzz2MH4M7LJuGd6VfgpwB+KriO1YSIibUNUkulLm4A8bqVQHo+avR7TKhtEO7Xn08/zmgJy/PLI3Gs1v9MlcUmkytQpMszkG35ulIFCTCiXaAyq2hXJCljOgYMVYtRKlw4el2EGpujqQ+M1rRE3HdOBw1p4suAH5065ib9rCquQJFIcHu6vN2AZpdIc3i/nqj9+Mu4ff4chprLBgKcY8MdU7B04V/jjrlq3FT8s3cRAOs4NMDa0mrnJt4amSWY6SVg9Gz/KgP7dy0HY+qM6z6ay6oq7NwkU6kU0ukZyPQyZ16BBBhxyKO6jh9gvz6iWzj5AnQ7o7axLnS3kkomfquvU6eDhuwFbLU4tFNE7iQ7keDmdHmVAc0qbYSee0rkVhvyv09RftYVwJ49MdsfKr0SM35wBdpyYgOe7SwLVpYeO3pZpNBIt0tJZWB3KhadCDu3yEQqhXSK6FSLzGyJ8SUBRqSFTP4gnMQbpWvAyNQXoFVd2CV3tCubk0EjXV/5qvmUdNx0jcgGtKo5B13ddi7miQbLy2H79+KBeQ/inE+XxVxz2dH9cevFd2B75+7Ccqi2nV5mJ8l/9WunW6DIUOlXdmJR9K5qDxabdIvoVIlML8T4qqIkwBhjpQAaOOf7GGNXAxgE4GHO+aaUlo44JMj0D8LJCyRdA0am3Ax2dZHO5I6p/spXtXzquYisZiwmMtDK6rqx+aCr266ue3XNQ9nCWty16Mn4Cy1YgNIVPtt1+DrmqmUbMpbHKvhcxzwJJBMCxSrwX4aVyJa9q6aNKcxoNvxUYK67rpIVDKzeiV60NHnBHa4K4wpLXzDGVgMYCGAAgBcAPAVgDOf8rNQWL5aSkhK+fPnydN6ScAHZyzxds3pk9zfn+El1cLsXSGRgdYpXXsoqz2om4Pdh7GlBLF6/PanyW6WWABT6/scfA6NGAY2NMZv/PHQc/jL8x5h6qRbbNWXuWqVVEpz2bTvxKip/OtrdeI+uAT/2HWiJcdGqPKfo2RiA8UOOxeL129P+rsrE70VUB34fA3jsEmZW9Sm6hhfeoX0q54kXtwewsXp0uosDxtgKznmJaJ+qC7KFc84ZYxdDs3w9xRi71r0iEocymY4PkbkP3Bhosw2VWJ9kLJSZtnYascunJMtF9PdlX+KBywcmJUCtUktIy9bYCNxwA/DaazGbdxQNxg3n3o7VvDN6FQQwNWJVchKz5dQCoB8nEnhWC6K7MTlEdYaqyFqj8pzlxUEs37QzZn1ODgjznemk6l2Vqd+LyEoUbuXolu9Hfge1STBetTRl0wxLVQG2hzE2CcDVAH7EGPMBsF4bgyAiZPoHIXPzAPLM4YcqxroINTaDMUCkExJ9kaZ7FqEVdvmUektyEbVyntQgqBJzGO37nAOPPAL86lfxB731FnDuuegB4HXTLtGEAjucighdUKXLsmUnRFRjOVWec/H67cIM97IF0VP1rsqUiJG6x5vCqL9rVFLXyHQur2yK11MVYOMAXAXgJ5zzrxhjxwKoSV2xiEMJL/wgzF/nTr48ExmAvOKGE2EcWK2sKJnKQK+j2kayurbrd7LBFkhuELR7Vr+PYeox3wGHHw7s2BG7c9Ik4O67gVzrV3Mi9ZmoiEhlrJ4xJYoZPTef04kBKs8pq79WzuH3sTi3ZqreVZkSMW58FGf6w1pGpuJrE0FJgHHOvwLwJ8PfmwE8n6pCEYcWXvxBqH55JuIiSNatkC7xppIE1CnpmEVobCNVy4moLq1chEDig6CsDrp8tw/3vfkwzv/PP2N3nHEGMHs2cPTRSd9DhhsiQqVfOum7KpMkdjWFlWLcdMzPKSuPZf1xbeHuxqYwCvL94ByYWNsQnSHs5m8xVSLGrh3c+Cj2woe1jEyk8UgESwHGGNsDcR4+BoBzzg9LSamIQw6v/SBUvzwTcREk41ZIZ0yI1QDudgZ6N2cRGrfb1bVVv7NaPxCwHwSVLG+c4+r6NzH17cfiLzBvHnD++crXNaKat8uttQNV+qVTi6XTCRIi/DkMnfNy0dgUv1SUVXms6i/cxpHfIReTL+yf8t9iKkSMSju48VHsxQ/rbMNSgHHOu6SrIASRTlS/PBPJGZSMWyGdMSFWLrhEZzK5+VJWaaNk6np4v56Y+eFm4T67QdBukOu6/t8Y8NPx6NG0O+a8x88Yi79deCPe+704zkZVxJhj+UQkMnNPJv5U+mUiFstEURGWVuXR68Uqw30qfoui+jWnt9CXlppY25DQ70e13G58FHvtwzrbUE7Eyhg7E8D3OefPMMYOB9CFc74xdUUjiNSh+uWZSM6gRPLp6KQzJsTKBZfMS9Wt2XChxmZhqhBjGyXjwpFNwNCz0Fs9g2iQ8+3dg87XXQ2sXoLhhu0NR30fPy+fhK2HHaFN0z+/v6PrygZ9q1g+p1aUuvpQ3IxHo/hT6ZcyIWhnsRQRtFgDU1VY2pVZF5ay/uP2b9Eqx5j+PG5YwL0aHE/Eo5ShjzE2GcAdACZFNnUAMDNVhSKIVFNeHMS0MYUIFgTAoL3URYNuRVlfBPyxy7oYs3+LBkvGID3HDplwUBEUdfUhlFYvQp/KeSitXoS6+pDl8UHJNWXbU4Wx3MV3L0DFy6uigyLHwXUMRW1k1T52yAakNs5tB7vouZxjfP2b+OK+C/Dvhy7H2auXHDxozhzUrdyCX/zqcWw77AhpH1Mpk9XgqdqXZeiDvijWShd/dv2yrj4kXW9SxWKpE/D78NC4IiytHIGqi/rHtS2DJkpU+rfKb8mq/yTzWxRhJa6dHGOHG+V2+i4hEkPVAnYJgGIAKwGAc76VMUbuSSKrUbHUWLnUJkrcF7uawuiW74++SAsCfuU1Dof36xmTnwhQExSJfDm7FX+SzKQBc7lFIoBDbvVIxOWpl1dm/1MZqE7/djP+/PzvccS+XTHb//bDy3DVwplAhw5a+eDMmpioRS8Zq6OdVWprYzMeHFdk2Vdk9ckAJYslEJ8AOC5lCg5aQ93q33b9x834LBVx7Yb1KtnftZdy+R3qqAqwA5FErBwAGGOdUlgmop3ipdQNKmWRDSYMsULiu5Y25Xu+siIUM5AxAGNPsx9cE4lXcSNeq64+hIqXV0WzZ4cam1Hx8qqY6zstt4itjc2Wy86ozi61yxzvz2HSgeqNDzagw60/x6hVi1Br2L7myBNw8yW/R6jrESgI+JG/drtSmgwRmZhZZje49yoI2PYV2TU4YvuB3dqXZvS2Fa1q4Fb/lvUft4PMVcS1G7Miky23VxOsHoqoCrCXGGN/AVDAGPsZgBsAPJm6YhHtDS99damWRTSYmGOWAPWXl+jFx2GdLNZuRpnd4GonXuzEQ9WctTFLlwDaLDLjgtNWqH7Zdw34LdvEaRZ1GeE2juWbdh4MGl+5BeunPojK1/6EC0zH3njJ77HgpKEx2xqbwzEC1Gm/Nlt9fIzFuKBS8VuwskoZxZ9VX5Fdw8dYdN1L/RqAc3GQqGUo2XhEN4PMVcS1WwI8mXJTDFn6UM0DNp0xdg6AbwGcBOAuzvnbKS0Z0a7w0leXk1lEQOxyLTK3lsrLy6mIUhEVyeQTUhEPoiBp43Y7YaSSzyrg94ExWMbGuJVFHQBmfbgZIw58jaG//DHKv/kqZt9TJRejeth1CPvkC4EYBaisL1kJVJH7K5EPElXLW0VZX1TMXhWTfFRHxfqqX0PUF0WrCiQiDtKV9DOVVngV8emF1A5eTbB6KKI8CxLAGgABaGPMmtQUJ/vwktssm/HSV5fTsuwP27sYVXJKiaxnVufaiYpkXVcy8XD7S2ouRpGAm1jbgOWbdmJqeSEA8cDt9zF06pCL3c0HczvJ4u1U0wWo9KP8A82YuuD/MGbt4pjtnxzRBzde8ntsKfie7TV0dAEqXfKlORxjGTKTiHAz4sTyVl4cRNWctUIxrbpUl35N0QLkbnxIpcM165YV3mpMUI07zeQY4uUEq4caSgKMMfZTAHcBWATNy/JnxtjdnPOnU1k4r5Nut5kXxF6qyuDGV5dbZXNSFhXLisrLSzWI2YiVqDAHNIuwqy+r5Vom1DZgyty1yPfnoEkgQLvl+6Uu1VkfbkbJcd1jBhq7dks2XYDU0sY5LlvzNmremhG36+by3+EffX8gvLYqVhY+K1EiO8dOuBmv7cSivFtiyXTyAWQ1MSXZD6l0WIbcsMJ7KZQiUbxghWsvqFrAKgAUc87/v73zj7OqKvf/Z83MAc6gMZiYOoaSGSQSElPXpPstzCslQSPKxW6Z3uySZd5Emyv+SCAxxqYy61b3WmmZpijoCHITLLh2L4oFzaBxhcwU9GBFwagwRzgzs75/zNnD3vustfba++x9fsx83q+XL5l99tl77bXX2euzn+dZz/M3ABBCvBnAEwCGtAArpdusEn7YSbZBF081fcKYkrctzBugaWIJk4XcNojZTVCxaRM2/RXkHtzXnUOqVqBGAO4wsFStwKJZE7WTsYRXfNi88ZvuiUmc6b5/yp6duHPFYpzwmtfCc+fUWVj2wU9jzNH5Ih8RhcPo+tTAeU3JPlWYrKGAWbgFHVu3PS63U5Luq6QtQ3FY4SsplKIYym2FGypY5QED8DKA111/vw7gpfibU12U0m0WR36YSm5D85RGnD+10ZNLSAJYuSVjlYMmzrY1T7HPq6SbWBob0nihdSY2LjzL6kFmOo6K9o4MDhzsKdhu6yqw6S9VjiQ/uV6JUemUp6/aLpiM5imNxkk37G/EdE9scoE1T2nE1z5yMr732Lfx4i0fxWN3XD4gvrYffSL+3/wf4KRrHsGSsz+LQ3UpdB/qwfQJY4zXn6oV+OQZY5GqLcyAta87h2mt6wEcFmN+TK5lU5VKm77THbtGCGVup2LyqbnRjZkDB3sqPpdU2D5TYTMnMMcWcQiqBXlV/p8ZAE8JIR5G/7z4MQC/TrhtFU8pA0OjrnKLk6QF54bteyKvIIy7bbZvgHHFS4Q5ji74fnR9Cotm9WdZn9a63ug+sBlPprgeN13dOXTcWFhax4ndChPXZiJyuoCf/AS45BLM8n/x/vuBuXOxvSOD11ZtA1xuuH3dOazcksH5UxuxYfse7O7KYlQ6BSFQUHew6cSjjLmqzp/aiJVbMtZjxCYtRBCmoHh32wBvvxbrdlItTAH6XaeV7ooL22cqguaESvBkkMohyAXpJFt9Pv+fw8PJNKe6KGVgqI5SrkxJWnAWI6J0bZPoFyNJxTDEPXHZHEcXd1Y/rP/nbFM0WefiGpVOFcSGffzv3logINzo7n/zlEZs3rk3UmLZsBSIs2efBca9H3jxRe+Ol18OfP3rwIgRnu+2rd1REISezfViw/Y9ge5c59y6XFUbtu8pqPdnGiO2aSGC2gQcHk81irqf/pebuNxOTn/6861lc724cnkn2tbuqMiYoih95idoThgsLkoSD0HFuJeUqiHVSLkCQx1KvTIlacFZjMDTvb0Cyb9lxjlx2RzHJFRtiybr7FmvH+wpSKzqWIJWbnkZWV/AfdD9X9o8CU0nHuWxiAyvs418CEl3N3DFFcAdvtDUd74TWLUKePvbtV+NIv79QlUnmjL5+2L7bNCNZX9FhaBFFO7xNG7hmtDXp8NmsYvpuJVs9Sm2z4LmhEpa7V2JVMJCs1JiuwpyDIB/AzARwMCro5QyuCLqIMf/g4s7YaLphxmm3lscJC04ixF47rapJsLB9JZpEqrFlDsBgN4+Cb+EzeZ68cjWVwBftT93lv6gB6c7VUfs7qi77wYuuqhw+333AfPmKb/ib2/YAuoqV5IpcD6M6LD5nYV1ZcVlvbY9b9ACjmr4PSZRFoo5tvQMRfes7avoPQC2AxgHYAmAFwH8JqE2VRXOoMl0ZSFxeNDEFVhpCs4ux6BsntKIjQvPChVgHubYxRQVdtqmKwo8WN4yW2aMLwj8TtUK6wLCUR72XdmcNkt/0G8gjgUS/sDlXzz4eL9FSwiv+PrsZ/stYVIaxZe/vQcO9SBV4+1Tk/jXpdjQjT0g3DUH/c7C9qkuyH76hDGhAsJtz2uzgKPSf49xLUxI+piDhUpYaFZqbNNQvFlK+SMhxBellI8DeFwI8XiSDasWkvbpD7WkeHG484bEW6bf1JL/O2q5k6jYuD2Ldbs4gqmvuxs3//J2/NPWtd4dxo/vdzG+4x1Wx1O1N9crMbo+hfphdVbWXVPakEaD9Scu0RG2T1VWtekTxnhi+2wsDrbnDbJIA5X/ewyyREZxlzHHlp6h6J61FWCObf4VIcRMALsBnJBMk6qLpAcNf7DhH3SDXbS2rd2hrL/YtnbHQMB4UH8Nr6tRCrBUrQAkPMdPp2oxIlWjLGJt4/YsVhB33PJ9PLv85oLti+ddh8X3FW4PQpudXrOaU0WQi60hpEszLFH61P9yM611feiXxzDndc6nWrVbLb9H3QthMe6yasuxVaq4rCHx4uzDVoAtFUKMAnA1gO8AeBOAKxNrVQVTbOxIFOL8wVZbkGOUB105Ratt/xZzH4IEj2m8qCZDJ3bJyZ4PFPYdAO0kqitjMyp9OBlp6An4978HZs0Cfv97uFcC/WzyDCz50HwcTA2HALBYfwQtDfUppZhs0OTrUhG06CNVK5CqEQVCNi7REcdLRpSXxyjnHYwvkUNlNWMp47IG+4uzCtti3I/k//kqgOkAIIQYcgJMNRiTftDGSdI/piTEXdQHXTneMm37V7Vfy4qtWLxqm6f+YRKBvLrYJX/2fN25Vfd3yeptyn2FOHysBzbvwsbn9w585o7tGDjX/v3AhAlAxhuH9NKbG3HJeTfg+Te/VXu9YcaeLqWZIdVZAc6xdeIzrEszLHGImqhWtCjndVvD2tbuwIIKTkdhw1Bxl5VSaA5GoR5EmGLcfq4C8K24GlINxBE7EhdRxE6SP6akxJ1tZulK+NHa9q9uHDkTudN3m3fuHUgC6r6uYt4Ui5k4dKK2S2FNcm+/of0Zj/hycK5zwvfbMOEHtxUe4K67gIsuwpaODHat2Ar0HlZIzqIDIPzY09U91G13zqGyCh7s0RdiD+PSjEKxLxlRx1HU8w6mVW7V6C6L8pwstdCsNvdssRQjwEwLfgYlccSOxEHUB1mSP6akxF01ZZa27V+b/s7mej0JTFXXFZSmQPV5EhNH0DHvfaqwatnk3Tvw8E+vLth+sGE0hr/4AjBqlPcDzaIDIPzYs+kDd/+NSqfw+sEe9LoPFjw8AAAgAElEQVRyo7Ws2IojhtcZFzKY+rQSXhpKbXEIuk+V0Ce2VJu7LOpzshqFZjVRjAALYbAfHFTKYIwqdnTtd2J1iiEpcVdNmaVtx0dQALeDqSxTmDgv98M27olDV5PSXUjdySaePvQG1t1xOd766p8L9p/38WV4auwkpFO1WPbH/WiecliAmRYdRFllGdQH/v7TuRhVcWSq4/mppJeGUlocTPepkvrEhmpzl0V9Tlab0Kw2gmpBvg610BIAhpwErpTBGFXstMwY78ly7nDgUH+h3CQtVSps3niDHnSVFIthOz6KSQNhc12mh63tKkkbdDUpgcOF1JtOPApf3HgvFvzvPQX73DF1Nr5y9nxlO93tiXuVZdCYMlWfsKFWCGP+ulK+NOh+Y+WwNpnuUyW9SNlSTe6yqM/JahOa1UZQKaIjTZ8PNSplMBaTodlfJBfof5sv9kEXVpyGeeM1PegqxSoJmMeHf8JzF3luqE9h/xs9HmGsy6puc13FrJIMg0moTHrlOay+awGw1Lv9teEj8f7LfoTXRhyhPa6//UH3OOrKPF0f2Fgn3efxnzcoeXCpXhp0v7HNO/eGzv8VB6b7tGB5p/I7ma5sorVchwrFPCerSWhWG8W4IIcklTAYi7HE6QKmi334hxWncb3xVopV0kE1PlQT4cotGc9E7Rdo/iSZgP112T5si7WC+MfMiNwb+PmdV2DcvlcK9v34hTfjyRMnWx33+Ia0p20N9SnjSuM4X4xMhcr9OLUZVcH501rXa9tSqpcG3W/s7k27CvYthbXJdJ9MCVsr3R1ZDVTac5L0I2SYtddlpqmpSW7evLnczagIok6e01rXKx90/jQESTNu4Rqtb/uF1pmhjqUSL6rVg+Uiap9Hvcc3tD/jCeAHCi0zuuSYYUo/Odf1+Sfvx7/96q6Cz++cOgtf+dB8SGG/Xiedqs0X/vaKz1StwMhhdVZpOooRlrp7peJb804PFNvONcXd9zbofmM6ovz24sLkznbTWAG/52qlmhY5DCaEEFuklE2qz2gBKzNRfxRRLXGV8iYUpxXA3RdxBvM69ybTlUWNABwDjGP5sD1eMfEXUdq8ckvGM/G6i2Y7FG2B7OjAxms/VLD5QGoEzvzcnXg1faS1JcnBbVFSpekYObwOnYvMq42Lvf82lmAB4BNnjFUez6Zfw1rsoj4jbBd7uPePSrGTu7tPTG2mNSw6leC9IV7KIsCEEHPRn8T6nQDeK6Uckmatcqz8qZQ4tqSEYFyuTf+9ca9b6Mrm0PLAVgDm++RMSjoRkkScmi7R6obtezzbTLUKtZNpNgu8+93A9u0F37voH2/CM6e+F0IAr3XnjPUQdYwcXofmKY3aeKBiFyAUI1pqhUCflIHVDWxrQAZNhm7x7xayYZ4RYRZ7FLsSNo7nmNMnQVbISg/OJ8SWclnAfgdgDoD/LNP5KwLTZOF8nlQW7XI/vJISgnEFOAethHOnQVAR5FJJyupom7hWZ50alU4VTKZ/+NKNwPo7Cnf+3OeA734XEAI/VRwrjDvP3cZirKPF3n/di0GQe9C53zrCiG3/2DGlIzHhfH71/VsHUoG4sRGVNsS9gtFGOA62jPNkaFIWASalfBYARIjYkGrC1hyve4g4b5BR3igr0c8fFKN1qyKWJipxuTZtHvCmfUwCLo44Ft191tU5dF+/zion0F8+KJvrxTv/8kf8/M5/Ldxp2LD+UkFHHx3YxrDpNopZ1eg+Rpj7r+rHZXMmxVJlImzbbY7lYCtAnHYnGXMW96pOG3ckE4GSwUDFx4AJIeYDmA8AY8eOLXNrggljjjfFaETJGF2JyQxVbXKvwoq7jXG5Nm3iZ0yTgG7yEUDgYocgEW1KL7D/jcKkqO6yPaa2Des5hHu/czkm/HVnwWefmrsEc669NHJcj5NR/sChHuR6C+WfblVjpiuLWiHUtSMVhLn/un5cNmdS6AUpJrERVujYCJcwAiTI2lzsS1sSqzodK71uwQJX75HBQGICTAjxCwDHKj66Xkr5sO1xpJS3A7gd6F8FGVPzEiOMOT6shSAoY3QlJjO0eZuPs41xuTZt7k23IYFt1EmpvSPjSZab6coWxJuFSS8AACOH1RnTIFz664fw5Q0/Kvjeve86B9d++IqBqtrPR7hHfne3O7apVgj0Sqm0CKosN36x3t6R8RTDHl2fwqJZE60tWHH+XnT3u7EhHduxHKIIEF3YQRwvbUku7KmUmFVCkiAxASalPDupY1cyYczx/odLTX5C0hGUMbqUWeFt35ptY4DibGMcMW5+K4x7FaTDvu6cdrKKOiktXrVNWXZn8aptA+cI21f+ItMtM8bjtjvX4zv3L8Fpf37e81lfbS2aPn8X9tb7ajFGOK+KMPcmKEbSX9VhX3cOLSu2ou2CyUoLln/M2gbM2xCnCFEdy4nZizsNQxwiNGmRVAkxq4QkQcW7IKuNKGVRnIfLuIVrtMcNyhhtmlT8iS2LfUCq3poXLO/E5p17sbR5kmc/21QEcdSjjBv/g18VVK6brKJOSqq6g/7tkdML5HLADTeg+WtfQ7Nvn0suWISnJpyBZXMmoW/VNkDRDluXUlxjzfRCoaoPCeirOqjGbDHVBvzEKUJ0x3K2LVjeiba1O6yOH3Qv4nppo0giJDzlSkNxHoDvABgDYI0QolNKOaMcbYmbJAKI3bXldIGpzsNVde7pE8bEGhumS3Vwz6ZdaDrxKM8EYuszrob1GKZFE6pyKSr3mylDui1h0wt8feTLyg6+4R8+h7unnHv4s7yYXDx7YuQxHGccoumFwiQQVJ/pxqxfhBXjOotThKjGTpBr2o/NvaikUl6EDDVqynFSKeVDUsoTpJTDpZRvGSziC+h/sC2bMwmNDWkI9LsMbINwW2aMRzpV69mWTtXiG/84eeD7un2cydx/7vOnNuLep14yunLCopv8JOA5Zpi3aF2JpErCNCk5k1t7R0b5uTMZZrqykIb9R9erLYHu7e77rOPY1/6KNT9rwbNLP4L3/evFhz+44AKgqwvjrnkEd797ZoEw292VLWoMB7kNw2Aa66Z7ofrMNGajXGepMbmmddjcC1MfE0KShS7IBFC9Cdu4ZWzcGEH7uM/tTPq6uLIggaRrc1D8TFACUhWleuMuxj0WZHkyxc7YxtosmjURLSu2elYKpmoFFs2a6PmuapVYbV8vrv6fn+Lzm1Z49t2bfhNaPt2KWZfOtrZ8BFlzdMH0ccZVBY11fwwYULji031dlVCCKyo2rmk/Jvei+3cwKp3CiFQNurqDyzwRQuKDAiyAOOJZwrhlbNwYtq6OoBWIJtHT3pHxCIFMVxYtK/pdHk4smk0iTxvifuNOKk2HTX6isDE1/gSpbWt3INcrjSsE/W06ZuMGnHnFRQWfLZ1xGX44+bCV6wnXtRbjKvf3oyPw44yr8t9Df64459+qVZCqvtKJZ9NK1mpHJzob6r2/0a5sDqkagYb61EB8HcBSP4QkDQWYgbjiWYKsH0klTzVZHYIm2yWrtxXka8r1SixZvQ0dN56DzTv3Kgs+O4k8wxCn2yepNB3+e9SQTimtDzqhEWRxUokat2u5gN27gblzgSeewJnu7eedB9xxB6b9x2+NCwb81qVR6RSEwECAt6mguUnYxxFXZfu7CxNzpRJsgHklq9OWSkiBMFqTYFfnsgb08ahSFv5Gc31y4PiVkD+QkKFAWWLAqoW44lmCXAE2sUFRaNA8nN1B/TpUD3v39qXNk3DrvNPR4Fq9OCJVo/2ejih5kkwkkaZDdY8OHOpBqsYbP2USGkGxNlZjracHuOGGfotWYyPwxBP92xsagKeeAqQEHnwQaGiwutbmKY3YuPAs3DrvdBzs6cO+7tzA9d29aZd2TAb1V7FxVXHGkblpntKIkcML3zmzuV5cubwT01rXe353Sf42w7Jo1kSkar3jTeWadqOL5fOnJVERR3+XEmeBy7iFawruIyGVCi1gGsIU1g3CZP1IKnlqe0dGmxW97YLJsYmegz19A//e153TuqBG16fwRq4v8YzWJuERdcWX6h7leiVG16dQP6zOyjoSFM9kHGuPPQacc07hh7feCnzxiwWB9O0dGW1OOdW1hk2WG5QGo9i4qiTz2ZmO4bf8VFJi46hpLlRWQpML3U211FusxAoghNhAC5iCOAvrAmbrR1KTjS5PkjsruumtsUGTl8u93bS03006VTuQodxZuecuLxPn26rJBdgyY3yBFaG2RuDAwR7jm7PuXnR157Bx4Vl4oXUmNi48y2oyVO3v5EtzM2b/Xiy/5xq8cMtHveJr9mxg795+a9eVVyrFl27hhU7w2o41Zz/VeA46hw3OeNQt3ohjoUbQMdyWH51ICZODLU7cFkug310cxdpjun9uqiUVRVIWU0KShhYwBXEW1gXMb6+mvF7FoJtUHfeD6q3xyuWdWLxqGxbPnojFsycWrDJL1Qgsnn3Y5RG0tF/3pp5kofHA4HLf7N7bJwdigpzcSktWb/OsCDMFM6vyeoWNG3JWjNb09eKLG+/DF5+417vDkUcC69YBZ5xh7B/nWKqxa3I72yZ2da+QdM4VVFIIsKtt6Y/N8hOXtdQmh5ozrms1VsTaMiati8Pao4r/89foLGUqimLj7EpZAYSQOKEAUxBnYV0HXcBwUnXUgtxtuom6K5sbKEjcNneyZ2I8YkRdwbHCLu2P6tYJE5jtnMf/QJ/Wul5pFXSjCkY+f2ojVm7JeNqdqhXY/0ZPwb6bd+717GszQZ7U+SQ2Lr+hYPtN0y/Fl3/5gwErl2l1p7Ndd3V9UmrPbyNK/GMyTJoKt1taVc8x6Nxxlt+xWcnq/EZ06VtM5cJsKEZwxOUWVSV6LcdigzgEJZPJkmqFAkxBnIV1g4ga2xFEkLAziUzngd4yY3xBjJfbNdt9qDDGLEg8Rn1bDTPx6MRBlDfibK4XG7bvKSjwfOBgT4HFJpvrxb1PvVQwQSvb+ec/AxdeCPz3f+Me176/PPk9uHrmAnSl34TGhjS+7BJfqonKL/h0mCYj1Rg0rYIMwt9Wv1xx90dQ/JkAtGI+qmhQ5VBzcI9fXV4zUwLcIIoVHElZe8KsKI2TOARlksXACUkSCjAFpf5BJ/HwCxJ2QW4nJx+Q6uG4ZPW2goB6oD8+bPHsiUY3XNS31TgmnrA1FN3n8N8jXd1OU9Lb9s278Ndrb8RnfvETz2c9I9K4aN5SPHns4fHlH2+6e6ESfH5sxm6cY9AmqN+5bzYrKlVlnpJwxfmtigcOFr5gCADTJ4yxOr6KYgXHYLP2xPG7TuolthKplLQoJB4owBRU2w/aH0PjTkgZ1e1kqrenSzUxcnidNuGpE1/20cnHFVhsbARCHBNPy4zxyuzpQajOEUbMnbHrafzsvutRc4v3vG0fuhSn3LIIzVPfinkdGeyKUDTZJL4EUJaxazN5On1q048qcZWUKw4oFHduJICVWzKemqdhKFZwDDZrT1yCslwWvFLC1Z6DDwowDdXyg/YX6QX6BZKTtT4oLcKS1dsKBJXzQLddru7gTCKm+LKVWzI4f2pjaPfW9AljlIlfbTO3666ltkbgyOF1eDWbw4hUDbK5voJ9VBaPIAH75gNduG11G96/c6tn+4a3TcVVM6/CvvpRAIDGx55D89S3KmNy3AH+DZpEnLpA8XKW2AkSVe77ZltY3C+ukgy8DrLgFZOKoljBUW0vh0EMNkGZJJWUFoXEAwVYBWNjbtalm8j1ysAfpjsWRnce1cNxeF2NMQt8UHzZvU+95CkwHkR7RwYrt2Q84ksAOH9qsEgOCvLu7ZMYObwOnYvOwbTW9crJccP2PQXbnPNeff/WAQEkZB8uf/J+fOl/7vbse7A2hU9cuBSbTyhMmqnqK9WbbqpGIFUrClaqqRYI+CcwXd3GpCZu1aTqBOL7z6sSFDb595J0xSWZIysOwVEtL4c2DDZBmSRc7Tn4oACrUGzNzaYfn+0PU/dA1z0cAbUwcz4LsoD0ShnKdK7LN6YSRjbf9RMUj6Tb3jylEQuWd+K9L/0Od993A4b1eWOGbvnAxfiPvzsfUujT7dkmRs31STSkUxg5vDDxa9OJR2knMFPdxqTcF2EnVf/40wlhd18lZTlxcrIFOamjCj0KjkIGk6BMksEW/0cowCoWW3OzSewU+8MMssD5V821rd2BBcs70VCfQqpGGGOtsrleLF61zWoiKubNz2afGiHQ3pGxqtfotPfUuoO485e34YVNv/Ls+6uTpuDKWV/C3ryL0SFMJQBTDrfORYUZ8U0TmEmAJum+KGZStRFXSQkZJyebiWKFHgUHiQLdtYMPCrAKxVZ0mALLuw/1oL0jE+lhH2SBc08i/n33deeQqhWoT9WgWxFT5dCVzXmSoOosMjbCyL0IQYj+RPGNhtgpN45FzuTOa+/I4LqVW3Hx/96Pax73rmI8VFOHT164FL9+62nK4zuVAAA7wRDnm26QAK1E94WtuEpCyJj6o1yLGggBaD0djFCA5Snl8l6bc9lOws1TGrF5517cvWlXwb7uvF1hky7aWOBMwe25XoljjhyBr84Y74mTMqGzyJje/FSLEJxT6WKndOdW5ftqmTEezQdewMHpZ6G5xyvk2v7+InzvfXONLkZ3ag7Azt0X55tukDu4Ut0X5bISRUkuTEip5g9aTwcXFGAo7fJe23OFmYRNsVB+V19DfQr73+gZECxhY8uc7TYZzJ38WQDQsmJroAjSndf05heU3d4fOzUqndKWvPHk+/rrX4GLLgKufRQAMDy/z/+eOBlXzvoS/jpydOC1AIdTc4TBEdVOjq9aITwLDmwf9rpcVg50XxRCNw8JC9NDkKhQgCH88t5SlBIJY24OciO5XX0qd1yY2LKgUkZu6oe5Cv5apt7SWWR0b342LjR37NS01vVaAdb4puHA174GXHON94OaGnzmolb84thTA8/lJ9OVVSYSNeGs+nSshr1SDuSeAuxqaQYJZL+os21X3G/5lZZYkm4eEhamhyBRoQBDuCDvUpYSCcoNFZRdPgyq2LKopYwcDhzqHZhgVVYq/2oz9/FtJ2aba3eLOtW+7848i7uX34D63EHP9mcvuxrv/PdbgNpabPnKOiAglkxH2DFieqA7/1Z95l8gYRLIblFn06Yb2p/x5GGL4y2/Ui0HdPOQMDA9BImKPnhlCKGzutimCHBPjnGey40zWWW6+gsuO5NVe0cmFveIKrZs2ZxJaGxIQ6A/BsZdiNw2dsgRUSqcvFD+45uu1U/LjPFI1Qjt+f2iztlzVPZ1/GjFErx4y0fx4N0tA+LribHvwnsu/ylOuuYRzDn6bLQ//ScAQFdE8eUQZoyYHui2D3ubh79tm9o7MgVJcMN8X0exvyVCKoGoz3RCaAGD3tozfcKYAotTuUqJmCarjQvPUma0B4AaAdhU3lGd32QJsM1g7k7+6UcX2By28DYA7SpIt+Ws7dHtuPTXD+KGDXcUnHP+p1qx7jjvKkb3OW1WUwZhO0aC3L82izNsraI2bTKlZijmLZ+WAzIYYNwgiQoFGNRxH9MnjPGkJHCsMLogbtXbjtuNNiqdghD9lpSG+hSG19Xg1WzOOsYkaLJaNGui8iGgSq3gZ3R9KlKgOIDAckUC6nqFpgdUlISoxvY/9RTwD/+Aja+/7tn8rWkfx7fPvBB9NbXQ2dB2d2XR3pHB/jf0wey22L4RBz3QbR72tgJ5VDoV2B6TICrmLT9quo1KixsjQxvGDZKoUIDlUWXjVllhRqRqkE7VBk6A/vgWt2jb151DOlWLW+edbv0jDZqsTA+BphOP0qaCEMBAjip/+8PkYfLHCDnHVllOaoXwuDPDXqsV+/YBl1wCrFrl2fzUCRPxhY9dgz1HHDWwrTHAsqSLYUtrakeq0AlOUz/bJsHV3RvAaxlUccAiV5xp5WiUt3x3+hJTHKDuu5UYN0aGNowbJFGgANOge+vv6s7h1nmnR8qj5SbsKhnb7OCq4zVP6S+Zo0KicOIyBVwD6sl/afOkgpI4OstYn5TG69bVElQVxfZejARuuw1YsKDws3Xr0H70qZEsS7q+y+b6tCJzdH0K9cMKywa5sUl2qyLMw/7AIbPlzqZmqNCYB0cOqw096fivWUJfJ1JFMSvOaDkjhFQSFGAaTK5GmwnQJo4l05XFuIVrrCaDYs3cpgSTbkwB14tXbcPBnj6PYFiwvBObd+7F0uZJSiuibWkf9/U4ebDc7ZCAJxWD+3s3n5DFB6/4JNDV5TnPd943D996/z9h2PBhOP/AsdiwpX/yNhWkVrVH52bVxbY5VsWgexNGTEQRD21rd0TOveZGtwCh+5DZvalrk6qup22i06hxY7ScEUIqDQowBe0dGaXlIFUjrF0utkHQ7lV+gHkyKMbMrSpZlKoRBQsNDhzs0QZcqwSpBHDPpl3KdAZBGexNE+KG7XuUInDJ6m14I9eH1Ouv4vs/vw0f/v2Tnn22nnga5s/8Ev585NGe77nFXK+UA+1wVl26xY3fNay7Dp2FU2VVVGErJqKKhzBB/37cfVKjEZpxlkaKa4GCDuZqIoRUGkxDoUBnOThihH1W85YZ45FO1QbvmKcky+99rqReKbH8Ny950j2Y4oV0SEDZdlMqi6AUBMoJWUrM/p8H8ezSj+Dp2y70iK+rLlkGSInmC1s94svdRtW5bFJe6K7Dbz10qM0X9w7Cdvm6rq8W3N+JcQvXYFrreuX5bASSKX7R6RNdGakDB3uM1+nkrXO3sdgl+9MnjClYMGGz4owrLgkhlQYtYAp0D+UwaQj8LkP3KsgklvQHoRKVfRLos3BROTjpHVSEXaEYNCG6LR2n/ekPuOv+G3FU9jXPvt89Yy6++fefRG9+FeM3YW95dM4VpjKB6jpUKw2d4t7O91ToygSpxIQ2j5qr5qWunJWpBJQu5koXv+i//11Zda1R5/pUVjtTwfMgnAoB/oUeNhn94yxwTgghcUABpkD3sBZA4IoxN7pJOyg2KgniEHemetph2x40IV575nFIffZfMGP7Rs/nTzdOwPzZC/GnNx2t/J4ugF/V9BohtGLNpr+ce6taYRpUykol3EbXp5SxYzai0lTOyp0jzl8cXEWQ4As6L6C32mkLnkesECBhroXqwFxNhJBKgwJMgbPyzT/fOK62YmNGyjEZhLEMOSv4bPeP0nZlH9TV4HuvbgLEh/BR3/5fuvireP8XPwUAePXBZwBN36kWK5z05jSeeH5vwf3UudaAcLmowlo0dRam+mFqF3fLjPG4UrMSM+h8UeIGw5a2Up3XZOGMGstYjBuRuZoIIZUGBZiC5imN2gkvDktSOSYDleBJ1QhAwOOiEgBmvus4LG2ehHEL12jFRWNDuqi2u/ugYcfvcPcDizD6gHcVI/7t34ClS4FUCl/3fd/Ud+4J3rE22TtaCwWlP0jfn6RXh07ERUk0G5TPy3S+sOheEEakapRueNV5k3D5FXtM5mqqfphKhAwmKMA0NCYcM5LUZGBK7QAUChdTugddKg7blAGmtr19RB/ufPKH2LjOmygV73kPsGIFMHas9jhh+i4oH5uf0fUpSAksWN6JtrU7lBURVGk6/JisglGExOLZhZUObM8XFt1YAeyy8APJWHnL7Ubk5F9emEqEDDYowDRMnzAGd2/apdxeqdgk9lTF6uhyfhWbisPdriWrt2HfgUP4ROfPcfO67xXutHo18FG/4zHcOVSTYxiL5ej6FN7I9QWKLZP4EkDB5GxjQdOtRnR/7/yp/ek5dndl0ZAXimHKWYXBJHJtREhSVt4RqZqBfrOJZ4sLTv7lh6lEyGCDAkyDLrDXJuA3KYLewG0fUDbxSzp3ly4Vh65t7R0Z/Pj7D+PRe7+Mt+zf6/nO7e85D/fM/iwev2GGZQ+oUU2OLSu2YvGqbdrrU5XAkRLKIG9bVJZBVdtWbsl4xJTqXuq+ZyrhVArCWB+LtfK6x1RDfQr73+jx5LE72GNXBioOOPmbKYV1kKlEyGCDAkyD6cde7MPG5vtBVhPVG7jNA0q3As8WVVZ0lVi46d6nMPW6u9D86MNodu37zFtOxmXnXY/MqGMAAGJ/8UWuVZNjrldqRaRTpNwvgHQlh1T4BZyuVJJpNaDJjVtNE34Sk69/TKliz0rZH5z89ZTKOshUImSwQQGmQfdjb6hPFfWw0T2sNu/c63Evud/2da4w/wRk84CyiYkKG3A9cEwpMe/pdbjl0e8U7DP/vOux7h3vszpeWMJMgqZ6g7qSQ6o0FsPqajwWGHfsnPvYUSfuapnwk5p8bWP3StUfnPz1lOplodwxgITEDTPha1Blste5qcJksdc9rO7ZtGsg8/i+7pzH1QLoXWHuCUjXZvcDyjRhubO8L5o1MfBYDkc+9yye/O7FePFrszzi64dNH8MHbnoUJ13ziFJ8iXybiyXsJHjl8k6cfO1/4SRfFnld/33ijLFoSKc821XuL9U4iJr5Xfd5Q31KuT0Kqkz1YQmqaBCVYsooJYHNb2uoUqqXBVNlDUKqEVrANOiCiHVuKtuHjTbJZbRmYpRLGNgEPodd2aiL6/r3VZ34/APfwJxtG/Coa///O2Yc5p93PV5uOHbA2qRL6WFTM3EggD9vjatP1WBYXa0n+Fz1ZqzDsWI4OcBUFhvVNW/YvseqTJP//kZ9a9dlsd//Rk+oZMA64rJcJTX52uQiK6UAYh4xPaW0DjKVCBlMUIAZ0K0aLOZhEzbJZRAHDnknZP9E4VgiHOEUZmVjwfVLid8u+gaav/IlT1wXAFw+5zqsOeXMgb/dxa51Oax0tRQd2jsyBSKkO9eH7ly/9SnTlcWVyzvRkE4VrBD0B2ybcLtLwpZO8uMfB2Embn8sVapGFAiwXJ+MxbUTl9soqclXmbeuVmDksLrEVn4GwclfDV2DhESDAiwkxT5swpTKsSHX652QTZaNyEXGt20Dzj0X2LUL73ZtvnPqLCz74KdxqC6F0fUpNJANXg8AAB8pSURBVA6rK8gbNa11PbqyuYJrTNUKHDjYg3EL12gnU117/XRlcwUrBB0xE6YupIliLDI2E7fqvkVtqw1xWa6SmnxpcaoeeK8IiYaQpgJ/FUZTU5PcvHlzYse3Xc0V9ypIVV6oVK1AT6+0EmYCwAutMwHo60w2aFyP/u87rH7iOdRe8QWc+9t1nu3bx5yE+eddj12jjzMeQ7Xa0hFhozUWKn8tRFMmfhUqN6rtMYKSy6quJ06LjO6+RWmrDve4qxFCWYopyrGZoJQQQtQIIbZIKZtUn9EClidMTIy/1E3b2h1YsLwTDfUpvJHrRTbvItMVV1ZZRJpOPMoq87gKt7tHZ8EwxS953EV33QVcfDFm+fa5cs51+OANn7d2weoKJztuR9UKy33dOU+fx1GTMK5YoqTf8m0tT2GtS25LoNsKqRJfUS1XdM0RQkh4KMDyBMXEqN7yARhzFe3rzqFlxVYAwYHNuknMXyrIj0C/WJzWuh4tM8aHFi3pVC2WnFIDvO1twAsveD77ybtn4qvTL8XBumEAgN+s3aENeO/2xaJFdXE5WfibpzRqA9F1qOKOdO11xIgpLYWfIKFRjCVIm/YkncLI4XWRjul/qVD1Yq0Q6JOSlitCCCkxFGB5ghKvqqxj7rIoOvwxWmHZsH2P0YXmfOa06fypjVj+65cCA9BH5N7Aksf+E/Oeecz7wTvfiQ/+/QK8OPr4gu/s7soOXIc/sN7WeuWIJJNI7MrmPGLOvwoSwEAgvoMp/gpIxnLlFlyj0ikcONQzIBbDrirUxVIVU2rHJpdWn5QF7mdCCCHJwxiwPLoYnEYLwWDDixEnuShxUN2HepQuPgBo3rYB33rkG4Uf3HcfMG8eAH1fjK5PoePGc4z7ODFEqpipdKoWy+ZMAhDsWrWJySpn3FGYigK2Vra4r8lm7ESNJyOEEBIMY8AsMK3m0uWxskUA2txNQZNuWJeiE+vj5m1/exk/WrkE4/a94tn+wgUXYdxPbwdGjPBst8lBpbMYOm21sTzp0lMAwa7Kcscd2WZqB+ytYXFfU9DYYaoAQggpH8yEn0eXZdlEfaqmIDu2CgkoM4M7VhQnA74zUbszkrfMGF8gqEwI9GdLH547iK8++h28eMtHsf6Hlw2Ir+ePOgEXXvVjtP/2ZYx74K4C8QX098XIYYXa3MlBBejzPDli0znOxoVn4YXWmdi48CyPuGie0ojORedgtCaze40QoTK0x5HV3Zb2jkxoi2gc2eHDosre7owlZhEnhJDyQhdkAKb0AA3pFBbPnjhg5WmoT2ldf6pUD0FuPIeTFq6xbu/s/3sc317dVrD9X2e14FdTz9bGFPktcbprdq6jvSODBcs7lS6uMG4tG1ee23Wpy8yvc3fGLTCKKWauGgNxolsowhQRhBBSHuiCLAKTK6wrm0NbfmWgM6npRJXKYmS7UrAxwJU0bm8GP1x5E07e+7Jn+8qpH8F1H/gMDqaG92/I5goKf6vykPlTFqiuo3lKo9Y167TfJqbJ76pU5adyVkYe7OnTJpgtRTFg3bkcUjUCR4yo04rwJOsW6haKLJsziTFehBBSgVCABWCyagGF8T1hMoPblnFRHXOkzOG6df+JT3Q+6tn3hdHH4bpLvop7v3kJvtm6Hgd9x3cKf7tXT6rSXEgUZuj3X4dOGB7fkMYN7c8UnEcl/tyizJS5XhUr5oisUhUDDjpm29zJRotckvFWcYjQci9sSIrBel2EkOqGAsxAe0cGrxrEl4O/liBwWEzUCuGJ/3E/+G3FmvuYU55ch39fdUtBGxbMvAoPnXaWx11nW/hb54R28mTpJi5d+6dPGKMUdSrx54gyfyUAW0wu07AWJ5uJWneuxoa0th5nKSb9YkWoyoK2YHknNu/ci6XN5ljISiauouOEEBI3FGAa2jsyuPr+regL3hWAd6JzHuxBD/6gibq9I4Mlq7fhTZmd+OHKm7Dxby95T3rppVj96YVo/dUu7O7KFqQ7KLbwd1Asl679bWt3GEWdm2yuF/c+9ZIyM7tDOlWLEakapSXSOWexFifbiXr6hDG4e9Ougu9PnzDG83epV2kWK0J1lQvu2bQLTSceVbVipZTuaUIICQMFmAJnMjaJAj82pXjclrAg68iqp/6I1y//Ijq2POLZvmvUW7DgkzfhokvPRfOURswCMOvMtyvbFKbwd5C7UYdKaCwImbbD1M+OqAQKc4c5bYzD4mQ7UW/Yvkf5fd32UlGsCDVZS6tZrJTSPU0IIWGgAFMQJscToJ7oTHmy3KsHCywtK1YAc+ditu97V5+7ACsnfWjg7/+zzCvlXI+p8Hc6VYvzpzZiw/Y9gW5TG4q1vDmoLHA6kRXV4uSulajCfx+TntCjxisVK0JN96yaxUpc7mlCCIkbCjAFQRNObY3AkcPr8Go2p53oRqVT2iSjfnvP0XsyOO3czwN/8tZifOC0s3HjP1yG7LDCXF22bhTbwt+q4HFHLF65vDNUzcQ4ktfqYuHitMTYpJTwT9RJTujFxisV0z8tM8Zr04pUs1iJwz1NCCFJQAGmwGQNGF2fwqJZwfX5RED21GE9OVz733fgn7es9n5w4onAmjWYtvrPgVakqJYJ3UStiwMCwomB5imNnvqNbkbXp1A/rM54bWHEXjEEWTpVE3WSE3o545WapzQqC79Xu1gpx4IIQgixgQJMgW6SDZPYs0uzenLG75/Afz701YLtN5/fgusfuGVAubUcalCWA3ITxTJhStYZJPiyuV5cff9WLFjeGTiRLZo1UdmHjnjV1SkUQMnyVpkErE4EJjmhR3FvxpliYWnzJK11tJopd9kqQghRQQGmII5J1m1FO6HrT7j9oZtx6l+8LsaVE6fjy+d8Htlhadw673SP2cw5l86SFMUyoXJxtTywFRAwCj03TsB8kEUsqA8rITbHlFIiaPVnEhO6Luecrk+SSLFAsUIIIaWBAkyDX0CECUhv78jg4IEsbvjlD/CZzQ97PvvTkW/GJRcsxvZjxgHot/h84oyxWhHjTklRrGVC5eLK9UUvRZXN9eLK5Z0F1QBU7fcTxpWXVCLNSooPau/IYP8bPQXbU7VC2x6mWCCEkOqFAkxDVOvCplvvQPNVl6LZt/0rs6/EuxZdDQiB19fugChylVuUFYpJrWaLYnmxtTImmUjT34ZR6RSE6E+joROVSdG2dodSDI8cVqdtA1MsEEJI9UIBpsFkXdi8c+9A8lAhgJP378E3V9yMd/3pDzjDtX/7qR/A9edcjgPD61ErBL4hRKCLR2ftiUOIxJUeQkUUy4uNuytpK4/ThnJnTNeJplc1K2mBynDjEkIIiUZZBJgQog3ALACHADwP4J+llF3laIsOUx6vuzftQl1vD657/CeY/5uHPJ//+YijcMncxXj2mLd5tvdKGTihm0RAHEJE5XKLk1LWXoz7XOV250URU5XkQiWEEBKOclnAHgNwrZSyRwhxC4BrAVxTprYo0U2IZ/3h17hj5VcKtl874wu4d/IMY/6JoAndJALiECLOea++f6s2+7wpU/6ZJx+FF/+W1VrRbCwvQfFc/s/DBqZHpdzuvChiiikWCCGkeimLAJNSrnP9uQnABeVohwn3hHjca3vw/fav4vRXnvPss3rC3+PaD1+B/cPrrY9rmtBNIiAud1PzlEZjqSCV+KoVAt/4x8meBQFRLC9Bbj7V56kagVSt8KzSTMLKU253XlQxxVWLhBBSnVRCDNinASzXfSiEmA9gPgCMHTu2VG1C82nH4NRvr8Y7fvw9z/a/1jfg4n9cgm1vOVn73dH1KbyW7VFamUwTukkEtMwYj5YHthYEavuLQNsQNhasT0rPJB9VLAS5+XSrNBvSKYwcXpeolacS3HkUU4QQMnRITIAJIX4B4FjFR9dLKR/O73M9gB4A9+iOI6W8HcDtANDU1BQ9Z4ItP/85cO65AIB3uLd/97vA5z6H/3fjo+jO9Wm/7iQbBfTFo3UEiQCVoFv+m5fQdOJRoSZu3XlGpGqs3X1RxEKQm88UiN656JxQ53Jjk8ai2t15SaXqIIQQkgyJCTAp5dmmz4UQFwP4KIAPSakJSCo1ixcDS5Yc/nvuXOAHPwBGjRrYlDWIL1X29DCTokkETGtdD1XKrlyvLIgrC5qMdecBwovGMOgsbzVCoL0jk4gbMMzqxmq1QOmucfPOvdiwfQ9FGSGEVCCiHNpHCPFhAN8E8AEp5R7b7zU1NcnNmzcn17DnngPmzwfa2oCmJuUu01rXR8qeXqyFQle6B+gPkH+hdebAeVQrHRvSKSyeHVzD0qadzj6ZrixqhUCvlFb1G03Fr9OpWpw/tRErt2SKKgHlJ+r9qiZ01+hfUFFsXxJCCAmHEGKLlFIpKMoVA/bvAIYDeEz0rxrcJKW8rExtOcwppwAbNhh3iRIr1N6R8cRvDZQAQjw5vNwWIl2B6a5sziqvlU2eMvf1u0sTLVjeiSuXdwbWUbzq/s4Ca14214sN2/dg2ZxJsbrSyr26sRTorsUv2JklnxBCKodyrYJ8eznOWyyO5Seb61VafnTWo8WrthUEz+f6JBav2hYqh5cqCB8A9h44iHEL1wQG18cxAesEHnB4wg9KYqqrfrS7Kxs5Ua2OILfnYBAjYRZVDCbhSQgh1UxNuRtQLTiWH2ei65USqVqBAwd7sGB5J05fsg4tK7Yi05WFxGER0t6RQZcmm7luu4rmKY1omzsZ9anCW5bN9Q2cU5+FrJ9MVxbTWtejvSNjfW43thO4I/b8qLY5BMV6ue+Bv491tMwYj3SqtmC7kxjX+W57RwbTWtdj3MI1RfVPOVBdo24cMEs+IYRUBpWQhqJiMMU2KVMk9MoBEaUSUzoREhUnVUO3QQRJ6JOpOqjyb9lalYq1tpgEXFCwf5Rs9abks+77U84yRMWiWlQxfcIYZTwds+QTQkhlQAGWxxTbVEz5nt1dWYzWZHMfXZ+KdLwgZP7YqnM6RBUfYcoZqawtOgHXkE4Fip2o8Vym5LNOYfNyliGKA5XrtunEo5iaghBCKhS6IPOYYpucmK8oHN+QxqJZE5Gq9X4/VSsG8oWp0LnEbFxIjQ1pdNx4Dr4173SjyDOJjyWrtym/0zylEcvmTEJjvh1Ov/h7R2dtUbnL0qlaLJ6t7wsH3bXb9Inpu4M1UL95SiM2LjwLL7TOxMaFZ1F8EUJIBUEBlidosu2VUhlLZMIRIc1TGtF2wWQ0NqQh0C+Q2i6YrJ0QTbFOupgm/zmB/gm4fpjeyGkSH/u6c9o4KGdif7F1Jp5fdi5ebJ2JW+ed7hFljgXJfwy3gHP6wjY1gk682bjVTN8tRtgRQgghUaALMk9QbJM7Fmx3VxYN9Snsf6PHsyoxVSNwxIg6dHXnClw+YZJ8Ll61TesSc3JXudshZX+2eJWbKSjmyol5UxHGBefsZ+POjJrwtJhs9UHfLXcZIkIIIUMLCrA8ptgmtyUrTMb5KJhWTTpiKoyA0QnLdKpm4BhXGuKjwlCKWKpistXrvlvtZYgIIYRUHxRgedyTsCnDe9I194pJ06BClz+sp08O5MFavGqbUvSFPV81x1JVaxkiQggh1QkFmIuwWeCTSFdQTJoGFc1TGrFk9baCFZHuGpKLZ0+MxQVnW8uRhaMJIYQMdRiEHwKTiy0udFan0fXBaRp0dGnSUThJWQFEDox3YxMkHyWZKiGEEDLYoAUsBDrrlCNk4rDo6GpNmlJWOOgsS6YFBo4AWjZnUtHFqW1iqQZDzq2hBK2VhBCSDBRgIdAJGQEMbI/qlmzvyHhchU42e11ha//E6M987m5HUPLUIAFkOwnb7FfNcWJDjVK43AkhZKhCF2QIdDX3/GV/wrol2zsyaFmx1ROnJdGf1kInvvxuvHs27TJaltzJU1XoBJCty9B2P+bcqh5K4XInhJChCgVYCFRJRHU1F3d3Za0LPLet3YFcb+GRcn1SW9DaPzGa2uG0fePCs7QiTCeAbCdh2/2KSaZKSgutlYQQkhx0QYbEv1JyWut6dW3D+pS1+8Y0oYUtaO3HL6x0MWY6AWQ7Cdvux5xb1YPtqlZCCCHhoQWsSHQWHSlh7b4xTWi6gtYqbOoxhi0FZOsyDONaZI3C6oDWSkIISQ4KMBe2LkM3OkHzakA2ezctM8YXFOsGDseAqfZXTYyfOGOslbAKI4BsJ2FO1oOPYup2EkIIMUMXZJ5iVnypErjqaiw21KeU3wfgWQXZkE5h8eyJZS+dY3suuhYHJ6wQQAghySCk1IVvVx5NTU1y8+bNiRxbF8vV2JCOlB/LWdnoD65P1Qi0zZ1cdZNapeWDqrT2EEIIIX6EEFuklE2qz+iCzBP3iq/mKY0YOazQwKhb2VjJVFr2+kprDyGEEBIWCrA8SeSnso0Ds409ixKjFgeVlg+q0tpDCCGEhIUxYHnCpmdQ4XeLjUqn0KUQYW5RZxt7Vs6s5JWWD6rS2kMIIYSEhRawPMWu+FK5xQ4c6kGqxru60S/q4k50mgSVlr2+0tpDCCGEhIUWMBfFrPhSCaRcr0R9qgZ9EuiVErVC4Pyp3nPEneg0CeKwDg7m9hBCCCFhoQUsJnRCqDvXh978StNeKbFyS8YTu1VsotMaIRKPCau0fFCV1h5CCCEkLExDERF/vNeBgz3KeC8V7tQW/tguoN+a4xcUqv38qL5HCCGEkPLANBQxYxvvpcNtLbO15vj3qxWF5+JKQEIIIaQ6YAxYBHTxXm5NNDqf8d7JbO/G7060jT1z7zdu4RrlPlwJSAghhFQ+tIBFQCdy3N7cN3J9mPmu4xKrj8iVgIQQQkj1QgEWARuRk831YsP2PYkFi7P4NSGEEFK90AUZAVUaBBW7u7KJFTNm8WtCCCGkeqEAi4Bf/NQIMZBqwk2QpazYgtJJiTtSubAIOSGEDA4owCLiFj+6VBImd2A5SwuVkkoXDJXePjdDZcwQQshQgDFgMRAlMehQKCitStdx7YPPlKyIeBCV3j4/Q2HMEELIUIEWMAVRrCJh3YFDoaC0STBUgsWm0tvnZyiMGUIIGSrQAuajVFaRoZBGotIFQ6W3z89QGDOEEDJUoADzUSo3z1BII1HpgqHS2+dnKIwZQggZKlCA+SiVVSQobqy9I4NpresTL7SdJJUuGCq9fX5YhJwQQgYPjAHzcXxDGhmF2ErCKqKLGwuz2q2SV/FVeq6ySm+fCqYeIYSQwYGQivxVlUpTU5PcvHlzoufQpZQopaVhWut6pQhsbEhj48KzKqqthBBCCFEjhNgipWxSfUYXpI9KcPPYukGZloAQQgipTuiCVFBuN4+tG7TaVvERQgghpB9awGIkrsB52+DwalvFRwghhJB+KMBiIs78YbZu0GpbxUcIIYSQfuiCjIm4s6rbuEGrcRUfIYQQQijAYqNc8VjljlcjhBBCSHjogowJxmMRQgghxBYKsJhgPBYhhBBCbKELMiYYj0UIIYQQWyjAYoTxWIQQQgixgS5IQgghhJASQwFGCCGEEFJiKMAIIYQQQkoMBRghhBBCSImhACOEEEIIKTEUYIQQQgghJYYCjBBCCCGkxDAPWEK0d2SYlJUQQgghSijAEqC9I4NrH3wG2VwvACDTlcW1Dz4DABRhhBBCCKELMgna1u4YEF8O2Vwv2tbuKFOLCCGEEFJJUIAlwO6ubKjthBBCCBla0AWZAMc3pJFRiK3jG9JlaI0XxqYRQggh5acsFjAhxE1CiKeFEJ1CiHVCiOPL0Y6kaJkxHulUrWdbOlWLlhnjy9SifpzYtExXFhKHY9PaOzJlbRchhBAy1CiXC7JNSvkuKeXpAB4BcGOZ2pEIzVMasWzOJDQ2pCEANDaksWzOpLJbmhibRgghhFQGZXFBSilfc/05EoAsRzuSpHlKY9kFlx/GphFCCCGVQdliwIQQNwP4FIBXAUw37DcfwHwAGDt2bGkaN0ip5Ng0QgghZCiRmAtSCPELIcTvFP99DACklNdLKd8K4B4AX9AdR0p5u5SySUrZNGbMmKSaG0h7RwbTWtdj3MI1mNa6virjpio1No0QQggZaiRmAZNSnm25688ArAGwKKm2FMtgSazqtJWrIAkhhJDyUhYXpBDiFCnlc/k/ZwPYXo522LJk9TZt8Hq1iZdKjE0jhBBChhrligFrFUKMB9AHYCeAy8rUjkDaOzLY151TfsbgdUIIIYREoVyrIM8vx3mjYErRwOB1QgghhESBpYgCMFm5GLxOCCGEkChQgAWgs3I1pFOMpSKEEEJIJCjAAtClblg8e2KZWkQIIYSQaofFuANg6gZCCCGExA0FmAVM3UAIIYSQOKELkhBCCCGkxFCAEUIIIYSUGAowQgghhJASQwFGCCGEEFJiKMAIIYQQQkoMBRghhBBCSImhACOEEEIIKTEUYIQQQgghJYYCjBBCCCGkxFCAEUIIIYSUGAowQgghhJASQwFGCCGEEFJihJSy3G2wRgixB8DOhA5/NIC/JnTsoQr7NH7Yp/HDPo0f9mn8sE/jpxR9eqKUcozqg6oSYEkihNgspWwqdzsGE+zT+GGfxg/7NH7Yp/HDPo2fcvcpXZCEEEIIISWGAowQQgghpMRQgB3m9nI3YBDCPo0f9mn8sE/jh30aP+zT+ClrnzIGjBBCCCGkxNACRgghhBBSYijACCGEEEJKzJAVYEKIuUKIbUKIPiGEdhmqEOJFIcQzQohOIcTmUrax2gjRpx8WQuwQQvxBCLGwlG2sNoQQRwkhHhNCPJf//2jNfhynBoLGnOjn2/nPnxZCvLsc7awmLPr0g0KIV/NjslMIcWM52llNCCHuEEL8RQjxO83nHKchsejTso3TISvAAPwOwBwAv7LYd7qU8nTmYAkksE+FELUAvgvgIwBOBfBxIcSppWleVbIQwC+llKcA+GX+bx0cpwosx9xHAJyS/28+gO+XtJFVRojf8f/kx+TpUsqvlLSR1cmPAXzY8DnHaXh+DHOfAmUap0NWgEkpn5VS7ih3OwYTln36XgB/kFL+UUp5CMB9AD6WfOuqlo8B+En+3z8B0FzGtlQrNmPuYwDukv1sAtAghDiu1A2tIvg7TgAp5a8A7DXswnEaEos+LRtDVoCFQAJYJ4TYIoSYX+7GDAIaAbzk+vvl/Dai5i1SylcAIP//YzT7cZzqsRlzHJfhsO2v9wkhtgohfi6EmFiapg1qOE6ToSzjtK5UJyoHQohfADhW8dH1UsqHLQ8zTUq5WwhxDIDHhBDb84p6SBJDnwrFtiGdC8XUpyEOw3Gqx2bMcVyGw6a/fov+Onj7hRDnAmhHv+uMRIfjNH7KNk4HtQCTUp4dwzF25///FyHEQ+g3vQ/ZiS2GPn0ZwFtdf58AYHeRx6xqTH0qhPizEOI4KeUreVfDXzTH4DjVYzPmOC7DEdhfUsrXXP/+LyHE94QQR0spWVA6OhynMVPOcUoXpAEhxEghxJHOvwGcg/5AcxKd3wA4RQgxTggxDMCFAFaVuU2VzCoAF+f/fTGAAisjx2kgNmNuFYBP5VeZnQHgVcf1S5QE9qkQ4lghhMj/+73on2/+VvKWDi44TmOmnON0UFvATAghzgPwHQBjAKwRQnRKKWcIIY4H8EMp5bkA3gLgofy9qQPwMynlo2VrdIVj06dSyh4hxBcArAVQC+AOKeW2Mja70mkFcL8Q4lIAuwDMBQCOU3t0Y04IcVn+8/8A8F8AzgXwBwDdAP65XO2tBiz79AIAnxNC9ADIArhQsvSKESHEvQA+COBoIcTLABYBSAEcp1Gx6NOyjVOWIiKEEEIIKTF0QRJCCCGElBgKMEIIIYSQEkMBRgghhBBSYijACCGEEEJKDAUYIYQQQkiJoQAjhFQVQoheIUSn67+TIhyjmUXgCSHlZMjmASOEVC1ZKeXpRR6jGcAjAP7P9gtCiDopZU+R5yWEEAC0gBFCBgFCiKlCiMfzxcjX5ss2QQjxL0KI3+QL7a4UQtQLIc4EMBtAW96CdrIQ4r+FEE357xwthHgx/+9LhBAPCCFWo7/Y+UghxB35Y3YIIT6W32+iEOLX+eM9LYRgzUNCiBEKMEJItZF2uR8fEkKk0F+B4QIp5VQAdwC4Ob/vg1LK90gpJwN4FsClUson0F/SpUVKebqU8vmA870PwMVSyrPQXyB9vZTyPQCmo1/EjQRwGYDb8pa5JvTX7COEEC10QRJCqg2PC1IIcRqA0wA8li/HVAvAqY93mhBiKYAGAEegv3ROWB6TUu7N//scALOFEF/K/z0CwFgATwK4XghxAvpF33MRzkMIGUJQgBFCqh0BYJuU8n2Kz34MoFlKuVUIcQn6a8Kp6MFhj8AI32cHfOc6X0q5w7fPs0KIpwDMBLBWCPEZKeV6+0sghAw16IIkhFQ7OwCMEUK8DwCEECkhxMT8Z0cCeCXvpvyE6zuv5z9zeBHA1Py/LzCcay2AK0Te1CaEmJL//9sA/FFK+W30uzffVdQVEUIGPRRghJCqRkp5CP2i6RYhxFYAnQDOzH/8ZQBPAXgMwHbX1+4D0JIPpD8ZwNcBfE4I8QSAow2nuwlACsDTQojf5f8GgHkAfieE6AQwAcBdsVwcIWTQIqSU5W4DIYQQQsiQghYwQgghhJASQwFGCCGEEFJiKMAIIYQQQkoMBRghhBBCSImhACOEEEIIKTEUYIQQQgghJYYCjBBCCCGkxPx/QhPQ9UbbH1YAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the dataset\n", "plt.figure(figsize=(10,7))\n", "plt.plot(features, labels, color='r', label=\"True values\")\n", "plt.scatter(features, noise_corrupted_labels, label=\"Noise corrupted values\")\n", "plt.xlabel(\"Features\")\n", "plt.ylabel(\"Labels\")\n", "plt.title(\"Real function along with noisy targets\")\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.3 Step 2: Posterior over the parameters \n", "\n", "We finished setting up our probabilistic model. Next, we want to use this model and our dataset $\\mathcal{X, Y}$ to estimate the parameter posterior $p(\\boldsymbol{\\theta} | \\mathcal{X, Y})$. Keep in mind that we don't compute point estimates of the parameters. Instead, we determine the mean and variance of the (Gaussian) posterior distribution and use this entire distribution when making predictions.\n", "\n", "We can estimate the parameter posterior using Bayes theorem:\n", "$$\n", "p(\\boldsymbol{\\theta} \\mid \\mathcal{X}, \\mathcal{Y})=\\frac{p(\\mathcal{Y} \\mid \\mathcal{X}, \\boldsymbol{\\theta}) p(\\boldsymbol{\\theta})}{p(\\mathcal{Y} \\mid \\mathcal{X})}\n", "$$\n", "\n", "- $p(\\mathcal{Y} \\mid \\mathcal{X}, \\boldsymbol{\\theta})$ is the likelihood function, $p(\\mathcal{Y} \\mid \\mathcal{X}, \\boldsymbol{\\theta})=\\mathcal{N}\\left(\\boldsymbol{y} \\mid \\boldsymbol{\\Phi} \\boldsymbol{\\theta}, \\sigma^{2} \\boldsymbol{I}\\right)$\n", "- $p(\\boldsymbol{\\theta})$ is the prior distribution, $p(\\boldsymbol{\\theta})=\\mathcal{N}\\left(\\boldsymbol{\\theta} \\mid \\boldsymbol{m}_{0}, \\boldsymbol{S}_{0}\\right)$\n", "- $p(\\mathcal{Y} \\mid \\mathcal{X})=\\int p(\\mathcal{Y} \\mid \\mathcal{X}, \\boldsymbol{\\theta}) p(\\boldsymbol{\\theta}) \\mathrm{d} \\boldsymbol{\\theta}$ is the evidence which ensures that the posterior is normalized (that is, that it integrates to 1).\n", "\n", "The parameter posterior can be estimated in closed form (for proof see theorem 9.1 in the book [Mathematics for Machine Learning](https://mml-book.com)):\n", "$$\n", "\\begin{aligned}\n", "p(\\boldsymbol{\\theta} \\mid \\mathcal{X}, \\mathcal{Y}) &=\\mathcal{N}\\left(\\boldsymbol{\\theta} \\mid \\boldsymbol{m}_{N}, \\boldsymbol{S}_{N}\\right) \\\\\n", "\\boldsymbol{S}_{N} &=\\left(\\boldsymbol{S}_{0}^{-1}+\\sigma^{-2} \\boldsymbol{\\Phi}^{\\top} \\boldsymbol{\\Phi}\\right)^{-1} \\\\\n", "\\boldsymbol{m}_{N} &=\\boldsymbol{S}_{N}\\left(\\boldsymbol{S}_{0}^{-1} \\boldsymbol{m}_{0}+\\sigma^{-2} \\boldsymbol{\\Phi}^{\\top} \\boldsymbol{y}\\right)\n", "\\end{aligned}\n", "$$\n", "\n", "Coming back to our `BayesLinearRegression` class we need to add a method which allows us to update the posterior distribution given a dataset." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from scipy.stats import multivariate_normal\n", "from scipy.stats import norm as univariate_normal\n", "import numpy as np\n", "\n", "class BayesianLinearRegression:\n", " \"\"\" Bayesian linear regression\n", " \n", " Args:\n", " prior_mean: Mean values of the prior distribution (m_0)\n", " prior_cov: Covariance matrix of the prior distribution (S_0)\n", " noise_var: Variance of the noise distribution\n", " \"\"\"\n", " \n", " def __init__(self, prior_mean: np.ndarray, prior_cov: np.ndarray, noise_var: float):\n", " self.prior_mean = prior_mean[:, np.newaxis] # column vector of shape (1, d)\n", " self.prior_cov = prior_cov # matrix of shape (d, d)\n", " # We initalize the prior distribution over the parameters using the given mean and covariance matrix\n", " # In the formulas above this corresponds to m_0 (prior_mean) and S_0 (prior_cov)\n", " self.prior = multivariate_normal(prior_mean, prior_cov)\n", " \n", " # We also know the variance of the noise\n", " self.noise_var = noise_var # single float value\n", " self.noise_precision = 1 / noise_var\n", " \n", " # Before performing any inference the parameter posterior equals the parameter prior\n", " self.param_posterior = self.prior\n", " # Accordingly, the posterior mean and covariance equal the prior mean and variance\n", " self.post_mean = self.prior_mean # corresponds to m_N in formulas\n", " self.post_cov = self.prior_cov # corresponds to S_N in formulas\n", " \n", " def update_posterior(self, features: np.ndarray, targets: np.ndarray):\n", " \"\"\"\n", " Update the posterior distribution given new features and targets\n", " \n", " Args:\n", " features: numpy array of features\n", " targets: numpy array of targets\n", " \"\"\"\n", " # Reshape targets to allow correct matrix multiplication\n", " # Input shape is (N,) but we need (N, 1)\n", " targets = targets[:, np.newaxis]\n", " \n", " # Compute the design matrix, shape (N, 2)\n", " design_matrix = self.compute_design_matrix(features)\n", "\n", " # Update the covariance matrix, shape (2, 2)\n", " design_matrix_dot_product = design_matrix.T.dot(design_matrix)\n", " inv_prior_cov = np.linalg.inv(self.prior_cov)\n", " self.post_cov = np.linalg.inv(inv_prior_cov + self.noise_precision * design_matrix_dot_product)\n", " \n", " # Update the mean, shape (2, 1)\n", " self.post_mean = self.post_cov.dot( \n", " inv_prior_cov.dot(self.prior_mean) + \n", " self.noise_precision * design_matrix.T.dot(targets))\n", "\n", " \n", " # Update the posterior distribution\n", " self.param_posterior = multivariate_normal(self.post_mean.flatten(), self.post_cov)\n", " \n", " def compute_design_matrix(self, features: np.ndarray) -> np.ndarray:\n", " \"\"\"\n", " Compute the design matrix. To keep things simple we use simple linear\n", " regression and add the value phi_0 = 1 to our input data.\n", " \n", " Args:\n", " features: numpy array of features\n", " Returns:\n", " design_matrix: numpy array of transformed features\n", " \n", " >>> compute_design_matrix(np.array([2, 3]))\n", " np.array([[1., 2.], [1., 3.])\n", " \"\"\"\n", " n_samples = len(features)\n", " phi_0 = np.ones(n_samples)\n", " design_matrix = np.stack((phi_0, features), axis=1)\n", " return design_matrix\n", " \n", " \n", " def predict(self, features: np.ndarray):\n", " \"\"\"\n", " Compute predictive posterior given new datapoint\n", " \n", " Args:\n", " features: 1d numpy array of features\n", " Returns:\n", " pred_posterior: predictive posterior distribution\n", " \"\"\"\n", " design_matrix = self.compute_design_matrix(features)\n", " \n", " pred_mean = design_matrix.dot(self.post_mean)\n", " pred_cov = design_matrix.dot(self.post_cov.dot(design_matrix.T)) + self.noise_var\n", " \n", " pred_posterior = univariate_normal(loc=pred_mean.flatten(), scale=pred_cov**0.5)\n", " return pred_posterior" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.4 Visualizing the parameter posterior \n", "\n", "To ensure that our implementation is correct we can visualize how the posterior over the parameters changes as the model sees more data. We will visualize the distribution using a [contour plot](https://en.wikipedia.org/wiki/Contour_line) - a method for visualizing three-dimensional functions. In our case we want to visualize the density of our bi-variate Gaussian for each point (that is, each slope/intercept combination). The plot below shows an example which illustrates how the lines and colours of a contour plot correspond to a Gaussian distribution:\n", "\n", "\n", "\n", "As we can see, the density is highest in the yellow regions decreasing when moving further out into the green and blue parts. This should give you a better understanding of contour plots.\n", "\n", "To analyze our Bayesian linear regression class we will start by initializing a new model. We can visualize its prior distribution over the parameters *before* the model has seen any real data." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Initialize BLR model\n", "prior_mean = np.array([0, 0])\n", "prior_cov = 1/2 * np.identity(2)\n", "blr = BayesianLinearRegression(prior_mean, prior_cov, noise_var)\n", "\n", "def plot_param_posterior(lower_bound, upper_bound, blr, title):\n", " fig = plt.figure()\n", " mesh_features, mesh_labels = np.mgrid[lower_bound:upper_bound:.01, lower_bound:upper_bound:.01]\n", " pos = np.dstack((mesh_features, mesh_labels))\n", " plt.contourf(mesh_features, mesh_labels, blr.param_posterior.pdf(pos), levels=15)\n", " plt.scatter(intercept, slope, color='red', label=\"True parameter values\")\n", " plt.title(title)\n", " plt.xlabel(\"Intercept\")\n", " plt.ylabel(\"Slope\")\n", " plt.legend();\n", " \n", "# Visualize parameter prior distribution\n", "plot_param_posterior(lower_bound, upper_bound, blr, title=\"Prior parameter distribution\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot above illustrates both the prior parameter distribution and the true parameter values that we want to find. If our model works correctly, the posterior distribution should become more narrow and move closer to the true parameter values as the model sees more datapoints. This can be visualized with contour plots, too! Below we update the posterior distribution iteratively as the model sees more and more data. The contour plots for each step show how the parameter posterior develops and converges close to the true values in the end." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3dd5wdZb3H8c83mx5CCiEJIXQQBQUERJBeDQEMXoooCgpX4AqKAkqHSBEbV0G5hnilC6FDhGAoUi5IC2gwoRlCgJCQRkIK6fndP+bZ5eTknNmzye6e3c33/Xrta6c8Z57f1N+ZZ+bMKCIwMzMrp121AzAzs5bNicLMzHI5UZiZWS4nCjMzy+VEYWZmuZwozMwslxNFA0n6tqSnm6muTSWFpPbNUV9bI2mSpANS93mS/rcRpz1f0uap+wZJlzXitIdJurCxpremGnvZtQbNuZ83hKRjJT3c3PW2+USRDrRbFg0bKumWZqi7WeppbaqRACPiZxHxn/WVk/SEpHrLRcQ6ETFxTeMqdUCKiFMi4tI1nXZjqXTZrQ5Jl0r6l6RlkoaWGP8NSe9IWiDpPkm9C8Z1knSdpLmSPpB0RtFnd5D0kqSP0/8dmmgemm0/j4g/R8RBlZRtzGTX5hOF1U+ZVrMtVPMMy2d3jW4C8BPgweIRkrYFrgW+BfQDPgb+p6DIUGArYBNgX+Ankgalz3YE7gduAXoBNwL3p+HWUBHRpv+AALYsGjYUuCV17wNMBs4DZgKTgGMLyq4HjATmAi8AlwJPF4y/CngvjX8J2DMNHwQsAZYC84GxaXgP4E/AVOB94DKgJo2rAX6d4pgInJrib19m3iYB5wKvArOB64HOaVwv4AFgRhr3ADCw4LNPAJcDzwALgS2B7wCvAfNS/ScXlK9dTj8Bpqf4DwcGA28CHwLnFZRvB5wDvAXMAu4Aeqdx76b5mp/+dkvDT0j1zwZGA5sUrcdTgX8Db5dZHt8C3kn1nZ+WzwEl1nlnsgPILGAO8CLZgehyYDmwKMX1+3J1U7BdATcAw4BH0rJ7sjZ2YNPidZiW/X8Cn0l1LU/1zSmY3mUF5b9LdkD9kGxbHFC0XE5Jsc0GrgFUZvkUT3cfYHJB/9lk2+Q84A1g/xLLrnZ+jk/rcSZwfsE0upAdlGendfmTwjpy9tNbgKFFw34G3FrQvwXZPtU99b8PHFQw/lJgROo+KI1Xwfh3gUFl6m/s/bySfancMacHcBPZvvsOcAHQLo37dlFcJdc/5betwWTHi3lp+ZxV0XG0KQ7OLemPyhLFMuC/gU7A3sACYOs0fgTZQa4b8Nm0cAtX1DfTRtYeOBP4gE8O1nX1FJS/j+xbUjegb9ooT07jTgFeBzYCegOPU3+iGFdQ/hnSgSDFdATQFegO3AncV/DZJ8h2nG1T7B2AQ8h2RqXl8DGwY9FyuiiV/W7akG9N0982bZibp/I/BJ4DBqblei1wW9HBpvDgeTjZwfAzKZ4LgL8XrcdH0nx2KbEstkk7xF6pvv9O8ZZKFCcDf0nLpgbYCVi3YLn8Z4ltaKW6WTVRzCuo+yrSNlJmXuvqoGjHL5he7Xrcj+xgsmOa9u+Ap4piewDoCWyc1km5g2HddAsPWKl7a7ID4YCCuLcosexq5+ePZElhe2Ax8Jk0/udkibJXWvevsPqJ4n7g7KJh89P66pXi6Fcw7kjgX6n7R8BDRZ99ADizTP2NvZ9Xsi+VO+bclOa9e1rebwInltpe8tZ/cdk0bCqfJLletTHV99dqmhuawYURsTginiQ7DT5aUg3ZwfaiiFgQEePIvi3ViYhbImJWRCyLiCvJVvzWpSqQ1A84GPhhmt504DfAManI0cBvI+K9iPgQuKKCuH9fUP5y4OsprlkRcXdEfBwR89K4vYs+e0NEjE+xL42IByPircg8CTwM7FlQfilweUQsJdux+gBXRcS8iBgPjAe2S2VPJvumOTkiFpPtTEfmNN2cDFwREa9FxDKyb5M7SNqkoMwVEfFhRCws8fkjgQci4qlU34XAijJ1LSXb6beMiOUR8VJEzC1TtpK6AR4sqPt8YDdJG9UzzUocC1wXES+naZ+bpr1pQZmfR8SciHiX7MvF6rTFLyfbdreR1CEiJkXEWznlfxoRCyNiLDCWLGFAtg3/LCJmR8Rk4OrViKXWOsBHRcM+IjuArlPQXzyuvs+upLH381S+vn0Jyh9zvgacm/arScCVZGfL5TRk/S8lW8frpnX0ck7ZOmtDolhO9g24UAeyBVZrdkQsKOh/BxgArE/2DeK9onF1JJ0p6TVJH0maQ3ba2KdMLJukuqdKmpPKX0t2ZkGqs2xdZRSXH5Di6irp2nQhcC7wFNAzbYilPoukgyU9J+nDFNvgonmZFRHLU3ftAXNawfiFfLIDbwLcWzCfr5Gti35l5mMT4KqC8h+SfRvbsFy8RVZadml9zipT9maypq0RkqZI+qWk4m2kWF7dK42PiPlk8Q+o5zOVGEDBdpCmPYuVl8sHBd0f88k6qFhETCA7CxwKTJc0QlJe/OXqLN6G61tueeYD6xYNW5fs7G1+QX/xuPo+W6yx9/NK9qVyx5w+QMei+t9h5fVdrCHr/4gUyzuSnpS0W07ZOmtDoniX7PSt0GasvCJ6SepW0L8xMIXsNG4ZWdNO4TgAJO1J1q57NNArInqSfWtRKhJF9b5HdpreJyJ6pr91I2LbNH5qubpyFJefkrrPJPvG88WIWJesWYSC2FaKT1In4G6yayT90ryMKirfEO8BBxfMZ8+I6BwR77Pqcqktf3JR+S4R8fdS8Zaw0rKT1JXsrGEV6ezppxGxDfAl4FDguHrqyKuborrXIWummkLWpABZM1et/g2Y7hSyJFo77W5k8/V+PZ8rZUFOHETErRGxR6ovgF+sRh1TyZqcaq3JWdV4PjlTId2O3Al4MyJmp7q2Lyi/ffpM7We3k1S4/W5XML5Qo+7nFe5L5Y45M8m+xG5SNG511vcq21ZEvBgRQ8i+nN5H1txWr7UhUdwOXCBpoKR26b76w4C7isr9VFLHtFEcCtyZvj3fAwxN39C3IbuIV6s72QY2A2gv6SJW/hYzDdi09o6iiJhKdgp6paR1UzxbSKptEroD+EGKtRfZxeD6nJrK9ya7OHZ7QWwLgTlp3MX1TKcj2U44A1gm6WCyC4KraxhweW3TkaT1JQ1J42aQNQttXlT+3HSnC5J6SDqqAfXdBRwqaY90Z8sllNm+Je0r6XPp7Gou2Y5Ze6Y0rSiuSg0uqPtS4PnUJDiDbCf/pqQaSSeQtV3XmgYMzLkb51bgO+lWz05kTXLPpyaJhvpnirO3pP5kZxAASNpa0n6pjkVk287yMtPJcwfZeuwlaUPgtLzCkjpI6ky2rtpL6lxw1vtn4DBJe6aD6iXAPakpFbK2/AtSXZ8mu252Qxr3RIr/B8puo62N42/FMTT2fk7l+1K5Y84dZPtO97T/nEF2DaehVtq2Ul3HSuqRmo/nUuE6XhsSxSXA34Gnye4K+CXZHQbjCsp8kMZNIds4T4mI19O408hO5T4g2wivL/jcaOAhsotN75DtYIWnr3em/7Mk1bYFHke2IdXeqXQXsEEa98c0zbHAy2Qbb31uJUs+E9Nf7Q+/fkt2sXEm2UXlv+ZNJO18PyDbSGcD3yC7C2R1XZU+/7CkeSmGL6a6PibdcZWamnaNiHvJvsGOSE1l48iu51QkXSM5lWx5TE3zMLlM8f5ky30uWZPYk3yyI15Fdi1ltqSGtK/fSpaMPyS72HpswbjvAj8mazLalmx7rPU3sm+5H0iaWWK+HiO73nJ3mq8t+OSaVkPdTLZtTSLbZm4vGNeJ7EL0TLJtvS/ZF4+GuoRsub8NPEq2nBfnlP8jWVL6Otm1nYWk9vi0Tk8h2yenkx2wv1fw2YvJ7qp7h2wd/ioi/po+u4TsBonjyO5sOwE4PA0vpdH28wr3pbxjzvfJzv4mkh23bgWuKxN3nlLb1reASWkfO4XsIn29FFHfmW/bJmkfsjsWBtZXtqWRNIns7plHqx2LWSmS/gs4JiKKb6RYa7XGY87acEZhZs1E0gaSdk/NqluTXSu7t9px2Zrxr0zNrDF1JLuTbzOyJp8RrPxramuF1vqmJzMzy+emJzMzy9Umm546qnN0adfg3xyZma215q6YNTMi1i81rk0mii7t1mG3db5S7TDMzFqN0XOvL/skCDc9mZlZLicKMzPL5URhZma52uQ1CrO2plvPLhx19gH027wPKz/nzqxyEcG0iTO58xePsmBOuSfmr8qJwqwVOOrsA9hm563p1L6LE4Wttohgvd7rcdTZcMO5f6n4c256MmsF+m3ex0nC1pgkOrXvQr/Ny75KoyQnCrNWQJKThDWK1dmWnCjMzCyXr1GYWb1mz5nNt0/JXrExc9YM2rWroXev3gDcefN9dOxQ7r1Lrd/zY56jQ4cO7Lj9Ts1W5+Qpkznl9BN54M7RzVZnHicKM6tXr569uH/EKAB+N+y3dO3alROPO6lu/LJly2jfvnqHk6as/4Uxz9G1a9cGJYpqL4/G1nbmxMzqdB91H32u+TXtP5jCsv4DmHnqWcwbfHij1nHOxWfRY92evPrGeLb99LZ067rOSgnk0KO+zLCr/sTAAQO5/8F7uXnEDSxdupTtP7sDF597KTU1NStNb79D9uDggw7l+THPAnDl5Vexycab8rcnH+UPf/o9S5cupWePXvz68t/QZ731+d2w3zJ9xjTenzqZXj1786PTfsxPLvgRCxdlt31eePZP2XH7nXh+zHP8bthvWG+9Prz+xqscuN8gPrXl1tx02/UsXryYa668lo032oQPZ8/i4ssvYMoH2WvnzzvrQvr17c+Iu/9Mu3Y1jBx1Hxf+ZCibb7bFKuV22mHnVeK58mdX1c3bD88+ja8edgR777Fv3bLbd6/92fYznysZc6F7Rt7FuFdf4aJzLgHg5B+cyAnHfZcv7rwrTz/7FL8b9luWLF3CRgM35oqhv6Jb1278+upf8LcnH6WmpoY9dtuTs390/hqtaycKszam+6j76HfZebRLB58OU9+n32XZW00bO1lMeudtbvjDLdTU1PC7Yb8tWeatiRN46OEHuO26u+jQoQNDr7iQvzx0H4cfesQqZdfptg533Xw/9z1wNz/79aVce/Wf2OnzX+COG+9FEnfeO4L/vfFazjnjAgDGvzaOW6+7k86dO7Nw4UKu/8MtdOrUiUnvvs0Z557OPX/O3kD6+puvMeruR+nZowf7H7Y3Rx3+Ne66+X5uvPV6bh5xI+f/+CIu/9UlHH/sCez8+S8wZer7nHjq8Tx0z6Mcc8SxKyXAM887vWS54ngKHfLlwxj18APsvce+LFm6hGdf+DtDz72MiCgbc30+nP0hf/jf33P9sFvo2qUrw28YxvW3/Ilvfu04Hnl8NH+95zEkMXfe3MpWZg4nCrM2ps81v65LErXaLVpIn2t+3eiJYtCBg1c5Myj27AvPMO61cRz5rSEALFq8iPV6rVey7KGDsod5HvLlr3DFldnr3z+YNpUfnXMaM2bOYMnSJQwcsFFd+f32PqDuoLxs2VIu+cXFvP7ma7Rr145J775dV+5z225H3/X7ArDxwI3Zfbc9AfjUllvXncH8/flnmDDx33Wfmb9gPvMXzF8lxrxyhfEU2mv3fbjsVz9lyZLFPPX3J9l5x13o3Lkz8+bNLRtzfcb+6x9MeHsCX//OkQAsXbqUHbbbkXW6rUOnjp04/5Jz2GePfdlnr/0qnmY5ThRmbUz71CRS6fA10aVLl7rumvY1rFixoq5/8eLFAATBVw87gjO//5P6J1h422bqvuyXQ/n2N09k/70P5Pkxz/H7az85cyms/4Y/X0ef9fpw/4hRrFixgu12+3TduI4dOtV1t2vXjo4dO9Z1L1+2HIAVsYLbb7in5IG+UF65wngKderUiV12+iL/9+xTPPTwgxzy5cPqjblWTU0NKwpeMLd4SVquEez+xT347yuuXuUzd918H8++8HceHP0Xbrn9Jm4afmvuPNXHt8eatTHL+g9o0PDGsuEGA3n19fFA1gQzecp7AOy2y+6MfvQhZn04E4A5H83h/SmTS07joYcfAGDUww/w+c99HoB58+fRb/3+ANz3l7vL1j9v/jzW79OXdu3acf+D97J8+fIGxb/Hrntyy+031vW/9sarAHTr1o0FCxbUW64+h3z5MO4ZeRdj/vEie3xpr4pj3nDAQF5/41VWrFjB1A+m8Mr4sQDssN3neXnsS7zz7iQAFi5cyNvvTGTBxwuYN38ee++xL+eddRGvv1lZfHmcKMzamJmnnsWKzit/s13RuQszTz2rSev98v4H89HcOQw5ZjC33XULm268GQBbbr4VP/zemZzwveM47OhBnPBf32LGzBklp7FkyRKOOu5wbrrtBs4980IATjv5dE4/+1S+ccJR9OzZq2z93zj6m9z7l7s5+rivMundt+napWuD4j//xxcz7tV/cdjRgxh8xIHcdtefAdh3r/155PHRDDlmMGNefqFsufrsvuuejHn5Bb60y+51txNXEvNOO+zMhhtuxGFHD+IXv/kZ2356WwB691qPK4b+ijPOO53Djh7E0cd/lYmT3mLBggWcfPqJHHb0IL713WPqluOaaJPvzO5R0yf84iJrS8654wQG9B1YcfnmuOupse13yB7cdcvIut9nWNOZMn0yPz/6upWGjZ57/UsRsXOp8r5GYdYGzRt8eItPDNZ6OFGYWYvwtwefrnYIVoavUZi1AhFBW2wmtua3OtuSE4VZKzBt4kwWL1voZGFrJCJYvGwh0ybObNDn3PRk1grc+YtHOeps/IY7WyOFb7hrCCcKs1ZgwZyFDXojmVljctOTmZnlcqIwM7NcThRmZpbLicLMzHI5UZiZWS4nCjMzy+VEYWZmuZwozMwsV1UThaTrJE2XNK7MeEm6WtIESa9I2rG5YzQzW9tV+4ziBmBQzviDga3S30nAH5ohJjMzK1DVRBERTwEf5hQZAtwUmeeAnpI2aJ7ozMwMqn9GUZ8NgfcK+ienYauQdJKkMZLGLIlFzRKcmdnaoKUnilKPySz5nOWIGB4RO0fEzh3VuYnDMjNbe7T0p8dOBjYq6B8ITKlSLFaG+vddqT8+mF6lSMysKbT0RDESOE3SCOCLwEcRMbXKMVmi/n1Z2q87AIvW7wRA5xmLoV93Okyb54Rh1kZUNVFIug3YB+gjaTJwMdABICKGAaOAwcAE4GPgO9WJ1Grts+QtvrP4JdaPBUxf2pPfbXgIdxy0U0GJrqw7Ebqs34nu+OzCrC2oaqKIiK/XMz6AU5spHKvHPkve4oeLnqEzywHov3AO5z9zBx12+Yi3/yNrfprwUR/e792H9ca0p3O/7nTAycKstWvpTU/Wgnxn8Ut1SaJW1yVLOfvmv/LR99dn7JKejF1nE/44Z3cW9WrPovU70WHavCpFa2aNpaXf9WQtyPqxoOTwzlOXAbB9xzkA9O3p5GDWlviMwio2Q93oVyJZzO3fmbFLegIwfv4Aps/pTkfShW0za/WcKKxi13faaaVrFAAfd+jA0CMP5YEx2wOwdHYnur3Vnl4TlvvOJ7M2wonCKvZExy0A6u56mtGpB3/43GCeWvQF1n0kK9Nl1nI6z/jYScKsDXGisAZ5ouMWdQlD/fvCXOj75LRVyjlJmLUdThS22pwMzNYOvuvJzMxyOVGYmVkuJwozM8vlRGFmZrmcKMzMLJcThZmZ5XKiMDOzXE4UZmaWy4nCzMxyOVGYmVkuJwozM8vlRGFmZrmcKMzMLJcThZmZ5XKiMDOzXE4UZmaWy4nCzMxyOVGYmVkuJwozM8vlRGFmZrmqmigkDZL0hqQJks4pMX4fSR9J+mf6u6gacZqZrc3aV6tiSTXANcCBwGTgRUkjI+LVoqL/FxGHNnuAZmYGVPeMYhdgQkRMjIglwAhgSBXjMTOzEqqZKDYE3ivon5yGFdtN0lhJD0nattzEJJ0kaYykMUtiUWPHama21qpa0xOgEsOiqP9lYJOImC9pMHAfsFWpiUXEcGA4QI+aPsXTMTOz1VTNM4rJwEYF/QOBKYUFImJuRMxP3aOADpL6NF+IZmZWzUTxIrCVpM0kdQSOAUYWFpDUX5JS9y5k8c5q9kjNzNZiVWt6iohlkk4DRgM1wHURMV7SKWn8MOBI4L8kLQMWAsdEhJuVzMyakdricbdHTZ/YbZ2vVDsMM7NWY/Tc61+KiJ1LjfMvs83MLJcThZmZ5XKiMDOzXE4UZmaWy4nCzMxyOVGYmVkuJwozM8vlRGFmZrmcKMzMLJcThZmZ5XKiMDOzXE4UZmaWy4nCzMxyOVGYmVkuJwozM8vlRGFmZrmcKMzMLJcThZmZ5XKiMDOzXE4UZmaWy4nCzMxyVZQoJH1K0mOSxqX+7SRd0LShmZlZS1DpGcUfgXOBpQAR8QpwTFMFZWZmLUeliaJrRLxQNGxZYwdjZmYtT6WJYqakLYAAkHQkMLXJojIzsxajfYXlTgWGA5+W9D7wNnBsk0VlZmYtRkWJIiImAgdI6ga0i4h5TRuWmZm1FJXe9bSepKuB/wOekHSVpPWaNjQzM2sJKr1GMQKYARwBHJm6b1/TyiUNkvSGpAmSzikxXpKuTuNfkbTjmtZpZmYNU2mi6B0Rl0bE2+nvMqDnmlQsqQa4BjgY2Ab4uqRtioodDGyV/k4C/rAmdZqZWcNVmigel3SMpHbp72jgwTWsexdgQkRMjIglZGctQ4rKDAFuisxzQE9JG6xhvWZm1gCVJoqTgVuBJelvBHCGpHmS5q5m3RsC7xX0T07DGloGAEknSRojacySWLSaIZmZWbFK73rq3gR1q1RVq1EmGxgxnOwWXnrU9ClZxszMGq7S31Eg6SvAXqn3iYh4YA3rngxsVNA/EJiyGmXMzKwJVXp77M+B04FX09/padiaeBHYStJmkjqSPTtqZFGZkcBx6e6nXYGPIsK/CDcza0aVnlEMBnaIiBUAkm4E/gGscktrpSJimaTTgNFADXBdRIyXdEoaPwwYleqeAHwMfGd16zMzs9VTcdMT2e2wH6buHo1ReUSMIksGhcOGFXQH2eNDzMysSipNFFcA/5D0ONkF5r3IHjtuZmZtXKV3Pd0m6QngC2SJ4uyI+KApAzMzs5YhN1GUeGTG5PR/gKQBEfFy04RlZmYtRX1nFFeS/W6h9vcMxb9P2K/RIzIzsxalvkRxNvBe7S2pko4nezDgJGBok0ZmZmYtQn2/oxgGLAaQtBfZRe0bgY9Iv4I2M7O2rb4zipqIqL0l9mvA8Ii4G7hb0j+bNjQzM2sJ6jujqJFUm0z2B/5WMK4hv8EwM7NWqr6D/W3Ak5JmAgvJ3nCHpC3Jmp/MzKyNy00UEXG5pMeADYCH0y+lITsT+X5TB2dmZtVXb/NRemFQ8bA3myYcMzNraSp9cZGZma2lnCjMzCyXE4WZmeVyojAzs1xOFGZmlsuJwszMcjlRmJlZLicKMzPL5URhZma5nCjMzCyXE4WZmeVyojAzs1xOFGZmlsuJwszMcjlRmJlZLicKMzPLVZX3XkvqDdwObApMAo6OiNklyk0C5gHLgWURsXPzRWlmZlC9M4pzgMciYivgsdRfzr4RsYOThJlZdVQrUQwBbkzdNwKHVykOMzOrR7USRb+ImAqQ/vctUy6AhyW9JOmkvAlKOknSGEljlsSiRg7XzGzt1WTXKCQ9CvQvMer8Bkxm94iYIqkv8Iik1yPiqVIFI2I4MBygR02faHDAZmZWUpMliog4oNw4SdMkbRARUyVtAEwvM40p6f90SfcCuwAlE4WZmTWNajU9jQSOT93HA/cXF5DUTVL32m7gIGBcs0VoZmZA9RLFz4EDJf0bODD1I2mApFGpTD/gaUljgReAByPir1WJ1sxsLVaV31FExCxg/xLDpwCDU/dEYPtmDs3MzIr4l9lmZpbLicLMzHI5UZiZWS4nCjMzy+VEYWZmuZwozMwslxOFmZnlcqIwM7NcThRmZpbLicLMzHI5UZiZWS4nCjMzy+VEYWZmuZwozMwslxOFmZnlcqIwM7NcThRmZpbLicLMzHI5UZiZWS4nCjMzy+VEYWZmuZwozMwslxOFmZnlcqIwM7NcThRmZpbLicLMzHI5UZiZWa6qJApJR0kaL2mFpJ1zyg2S9IakCZLOac4YzcwsU60zinHAfwBPlSsgqQa4BjgY2Ab4uqRtmic8MzOr1b4alUbEawCS8ortAkyIiImp7AhgCPBqkwdoZmZ1WvI1ig2B9wr6J6dhJUk6SdIYSWOWxKImD87MbG3RZGcUkh4F+pcYdX5E3F/JJEoMi3KFI2I4MBygR02fsuXMzKxhmixRRMQBaziJycBGBf0DgSlrOE0zM2ugltz09CKwlaTNJHUEjgFGVjkmM7O1TrVuj/2qpMnAbsCDkkan4QMkjQKIiGXAacBo4DXgjogYX414zczWZtW66+le4N4Sw6cAgwv6RwGjmjE0MzMr0pKbnszMrAVwojAzs1xOFGZmlsuJwszMcjlRmJlZLicKMzPL5URhZma5nCjMzCyXE4WZmeVyojAzs1xOFGZmlsuJwszMcjlRmJlZLicKMzPL5URhZma5nCjMzCyXE4WZmeVyojAzs1xOFGZmlsuJwszMcjlRmJlZLicKMzPL5URhZma5nCjMzCyXE4WZmeVyojAzs1xOFGZmlsuJwszMclUlUUg6StJ4SSsk7ZxTbpKkf0n6p6QxzRmjmZll2lep3nHAfwDXVlB234iY2cTxmJlZGVVJFBHxGoCkalRvZmYNUK0zikoF8LCkAK6NiOHlCko6CTgp9S4ePff6cc0RYJX0AdryWZbnr3Xz/LVOm5Qb0WSJQtKjQP8So86PiPsrnMzuETFFUl/gEUmvR8RTpQqmJDI81T0mIspe+2jtPH+tm+evdWvr81dKkyWKiDigEaYxJf2fLuleYBegZKIwM7Om0WJvj5XUTVL32m7gILKL4GZm1oyqdXvsVyVNBnYDHpQ0Og0fIGlUKtYPeFrSWOAF4MGI+GuFVZS9ltFGeP5aN89f69bW528Viohqx2BmZi1Yi216MjOzlsGJwszMcrX6RNHWHwfSgPkbJNwFPzIAAAS+SURBVOkNSRMkndOcMa4JSb0lPSLp3+l/rzLlWtX6q299KHN1Gv+KpB2rEefqqmD+9pH0UVpf/5R0UTXiXF2SrpM0XVLJG2ha+/prsIho1X/AZ4CtgSeAnXPKTQL6VDveppg/oAZ4C9gc6AiMBbapduwVzt8vgXNS9znAL1r7+qtkfQCDgYcAAbsCz1c77kaev32AB6od6xrM417AjsC4MuNb7fpbnb9Wf0YREa9FxBvVjqOpVDh/uwATImJiRCwBRgBDmj66RjEEuDF13wgcXsVYGksl62MIcFNkngN6StqguQNdTa15e6tIZD/s/TCnSGtefw3W6hNFA9Q+DuSl9LiPtmRD4L2C/slpWGvQLyKmAqT/fcuUa03rr5L10ZrXWaWx7yZprKSHJG3bPKE1m9a8/hqspT/rCWj+x4E0t0aYv1JPV2wx9z3nzV8DJtNi118JlayPFr3O6lFJ7C8Dm0TEfEmDgfuArZo8subTmtdfg7WKRBFt/HEgjTB/k4GNCvoHAlPWcJqNJm/+JE2TtEFETE2n7tPLTKPFrr8SKlkfLXqd1aPe2CNibkH3KEn/I6lPtJ1XBrTm9ddga0XT01rwOJAXga0kbSapI3AMMLLKMVVqJHB86j4eWOUMqhWuv0rWx0jguHT3zK7AR7VNcK1AvfMnqb/SewQk7UJ2rJnV7JE2nda8/hqu2lfT1/QP+CpZdl8MTANGp+EDgFGpe3OyOzPGAuPJmnSqHntjzV/qHwy8SXY3Smuav/WAx4B/p/+928L6K7U+gFOAU1K3gGvS+H+Rc8deS/yrYP5OS+tqLPAc8KVqx9zA+bsNmAosTfvfiW1p/TX0z4/wMDOzXGtF05OZma0+JwozM8vlRGFmZrmcKMzMLJcThZmZ5XKiMCtD0vwKyvxQUtfmiKdE3T0lfa8addvaxYnCbM38EGhQopBU00h19wScKKzJOVGY1SO9W+EJSXdJel3Sn9Mvcn9A9sPAxyU9nsoeJOlZSS9LulPSOmn4JEkXSXoaOCq9z+Hl9NC8x1KZbuk9CC9K+oekIWn4tyXdL+mv6R0QF6fQfg5skd738KtmXzC21mgVz3oyawE+D2xL9jyfZ8geUni1pDOAfSNipqQ+wAXAARGxQNLZwBnAJWkaiyJiD0nrkz00b6+IeFtS7zT+fOBvEXGCpJ7AC+mBipA92+qzwMfAi5IeJHt/x2cjYocmn3tbqzlRmFXmhYiYDCDpn8CmwNNFZXYFtgGeSY856gg8WzD+9oJyT0XE2wARUfveg4OAr0g6K/V3BjZO3Y9ExKxU/z3AHmRPZDVrck4UZpVZXNC9nNL7jsgO6F8vM40FBeVKPTtHwBFR9KIqSV8sUd7P3rFm42sUZmtmHtA9dT8H7C5pSwBJXSV9qsRnngX2lrRZKlfb9DQa+H7BU1c/X/CZA5W9X7wL2VsAnymq26zJOFGYrZnhwEOSHo+IGcC3gdskvUKWOD5d/IFU7iTgHklj+aRJ6lKgA/CKpHGpv9bTwM3AP4G7I2JMaop6RtI4X8y2puSnx5q1cJK+TfYY69OqHYutnXxGYWZmuXxGYWZmuXxGYWZmuZwozMwslxOFmZnlcqIwM7NcThRmZpbr/wFKwk8eyehsawAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n_points_lst = [1, 5, 10, 50, 100, 200, 500, 1000]\n", "previous_n_points = 0\n", "for n_points in n_points_lst:\n", " train_features = features[previous_n_points:n_points]\n", " train_labels = noise_corrupted_labels[previous_n_points:n_points]\n", " blr.update_posterior(train_features, train_labels)\n", " \n", " # Visualize updated parameter posterior distribution\n", " plot_param_posterior(lower_bound, \n", " upper_bound, \n", " blr, \n", " title=f\"Updated parameter distribution using {n_points} datapoints\")\n", " \n", " previous_n_points = n_points" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.5 Step 3: Posterior predictive distribution \n", " \n", "Given the posterior distribution over the parameters we can determine the predictive distribution (= posterior over the outputs) for a new input $(\\boldsymbol{x}_*, y_*)$. This is the distribution we are really interested in. A trained model is not particularly useful when we can't use it to make predictions, right?\n", "\n", "The posterior predictive distribution looks as follows:\n", "\n", "$$\n", "\\begin{aligned}\n", "p\\left(y_{*} \\mid \\mathcal{X}, \\mathcal{Y}, \\boldsymbol{x}_{*}\\right) &=\\int p\\left(y_{*} \\mid \\boldsymbol{x}_{*}, \\boldsymbol{\\theta}\\right) p(\\boldsymbol{\\theta} \\mid \\mathcal{X}, \\mathcal{Y}) \\mathrm{d} \\boldsymbol{\\theta} \\\\\n", "&=\\int \\mathcal{N}\\left(y_{*} \\mid \\boldsymbol{\\phi}^{\\top}\\left(\\boldsymbol{x}_{*}\\right) \\boldsymbol{\\theta}, \\sigma^{2}\\right) \\mathcal{N}\\left(\\boldsymbol{\\theta} \\mid \\boldsymbol{m}_{N}, \\boldsymbol{S}_{N}\\right) \\mathrm{d} \\boldsymbol{\\theta} \\\\\n", "&=\\mathcal{N}\\left(y_{*} \\mid \\boldsymbol{\\phi}^{\\top}\\left(\\boldsymbol{x}_{*}\\right) \\boldsymbol{m}_{N}, \\boldsymbol{\\phi}^{\\top}\\left(\\boldsymbol{x}_{*}\\right) \\boldsymbol{S}_{N} \\boldsymbol{\\phi}\\left(\\boldsymbol{x}_{*}\\right)+\\sigma^{2}\\right)\n", "\\end{aligned}\n", "$$\n", "\n", "First of all: note that the predictive posterior for a new input $\\boldsymbol{x}_{*}$ is a *univariate* Gaussian distribution. We can see that the mean of the distribution is given by the product of the design matrix for the new example ($\\boldsymbol{\\phi}^{\\top}\\left(\\boldsymbol{x}_{*}\\right)$) and the mean of the parameter posterior ($\\boldsymbol{m}_{N}$). The variance $(\\boldsymbol{\\phi}^{\\top}\\left(\\boldsymbol{x}_{*}\\right) \\boldsymbol{S}_{N} \\boldsymbol{\\phi}\\left(\\boldsymbol{x}_{*}\\right)+\\sigma^{2}$) of the predictive posterior has two parts:\n", "1. $\\sigma^{2}$: The variance of the noise \n", "2. $\\boldsymbol{\\phi}^{\\top}\\left(\\boldsymbol{x}_{*}\\right) \\boldsymbol{S}_{N} \\boldsymbol{\\phi}\\left(\\boldsymbol{x}_{*}\\right)$: The posterior uncertainty associated with the parameters $\\boldsymbol{\\theta}$\n", "\n", "Let's add a `predict` method to our `BayesianLinearRegression` class which computes the predictive posterior for a new input (you will find the method in the class definition above):" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def predict(self, features: np.ndarray):\n", " \"\"\"\n", " Compute predictive posterior given new datapoint\n", "\n", " Args:\n", " features: 1d numpy array of features\n", " Returns:\n", " pred_posterior: predictive posterior distribution\n", " \"\"\"\n", " design_matrix = self.compute_design_matrix(features)\n", "\n", " pred_mean = design_matrix.dot(self.post_mean)\n", " pred_cov = design_matrix.dot(self.post_cov.dot(design_matrix.T)) + self.noise_var\n", "\n", " pred_posterior = univariate_normal(pred_mean.flatten(), pred_cov)\n", " return pred_posterior" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.6 Visualizing the predictive posterior \n", "\n", "Our original dataset follows a simple linear function. After training the model it should be able to predict labels for new datapoints, even if they lie beyond the range from [-1.5, 1.5]. But how can we get from the predictive distribution that our model computes to actual labels? That's easy: we *sample* from the predictive posterior.\n", "\n", "To make sure that we are all on the same page: given a new input example our Bayesian linear regression model predicts not a single label but a *distribution* over possible labels. This distribution is Gaussian. We can get actual labels by sampling from this distribution. \n", "\n", "The code below implements and visualizes this:\n", "- We create some test features for which we want predictions\n", "- Each feature is given to the trained BLR model which returns a univariate Gaussian distribution over possible labels (`pred_posterior = blr.predict(np.array([feat]))`)\n", "- We sample from this distribution (`sample_predicted_labels = pred_posterior.rvs(size=sample_size)`)\n", "- The predicted labels are saved in a format that makes it easy to plot them\n", "- Finally, we plot each input feature, its true label and the sampled predictions. Remember: the samples are generated from the predictive posterior returned by the `predict` method. Think of a Gaussian distribution plotted along the y-axis for each feature. We visualize this with a histogram: more likely values close to the mean will be sampled more often than less likely values." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "\n", "all_rows = []\n", "sample_size = 1000\n", "test_features = [-2, -1, 0, 1, 2]\n", "all_labels = []\n", "\n", "for feat in test_features:\n", " true_label = compute_function_labels(slope, intercept, 0, np.array([feat]))\n", " all_labels.append(true_label)\n", " pred_posterior = blr.predict(np.array([feat]))\n", " sample_predicted_labels = pred_posterior.rvs(size=sample_size)\n", " for label in sample_predicted_labels:\n", " all_rows.append([feat, label])\n", " \n", "all_data = pd.DataFrame(all_rows, columns=[\"feature\", \"label\"]) \n", "sns.displot(data=all_data, x=\"feature\", y=\"label\")\n", "plt.scatter(x=test_features, y=all_labels, color=\"red\", label=\"True values\")\n", "plt.title(\"Predictive posterior distributions\")\n", "plt.legend()\n", "plt.plot();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sources and further reading \n", "\n", "The basis for this notebook is chapter 9.2 of the book [Mathematics for Machine Learning](https://mml-book.com). I can highly recommend to read through chapter 9 to get a deeper understanding of (Bayesian) linear regression.\n", " \n", "You will find explanations and an implementation of simple linear regression in the [notebook on linear regression](https://github.com/zotroneneis/machine_learning_basics/blob/master/linear_regression.ipynb)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }