{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Fitting is an Art!\n", "\n", "## Description\n", "Python macro for testing which fitting procedure is likely to give the \"best\" results. The two cases in question are:\n", " * Gaussian distribution on constant background (peak searching)\n", " * Double exponential distribution (high correlations)\n", "\n", "## Your Task\n", "Consider each case and argue/discuss which fitting function and method should be used.\n", "\n", "### Authors\n", "- Troels Petersen ([email](mailto:petersen@nbi.dk))\n", "- Étienne Bourbeau (notebook conversion) ([email](mailto:etienne.bourbeau@icecube.wisc.edu))\n", "\n", "### Date\n", "10th December 2018\n", "\n", "---" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from iminuit import Minuit\n", "from probfit import Chi2Regression, BinnedLH, UnbinnedLH\n", "from scipy import stats\n", "import os, sys # Modules to see files and folders in directories\n", "from os.path import dirname as parent_folder\n", "%matplotlib widget\n", "plt.close('all')\n", "\n", "sys.path.append(parent_folder(parent_folder(os.getcwd()))+'/External_Functions')\n", "from ExternalFunctions import nice_string_output, add_text_to_ax # useful functions to print fit results on figure" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "SavePlots = False # Determining if plots are saved or not" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "pi = np.pi\n", "r = np.random # Random generator\n", "r.seed(41) # Set a random seed (but a fixed one - more on that later.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "## CASE 1: Gaussian distribution on a constant background:\n", "\n", " * $f_{1}(x) = C+ \\frac{N}{\\sigma\\sqrt(2\\pi)}\\cdot \\exp \\left[-0.5 \\cdot\\left(\\frac{(x-\\mu)}{\\sigma}\\right)^{2} \\right]$ for $x$ in $[-\\infty,\\infty]$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " The bin width is: 0.10\n" ] } ], "source": [ "Npoints_gauss = 200\n", "mux = 3.50\n", "sigmax = 0.25\n", "Npoints_pol0 = 2000\n", "minx = 0.0\n", "maxx = 10.0\n", "Nbins = 100\n", "binwidth_gauss = (maxx-minx) / float(Nbins)\n", "print(f\" The bin width is: {binwidth_gauss:5.2f}\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Fill histogram with signal and background events:\n", "signal = np.random.normal(loc=mux,scale=sigmax,size=Npoints_gauss)\n", "bkg = np.random.uniform(low=minx,high=maxx,size=Npoints_pol0)\n", "Y = np.concatenate([signal,bkg,np.random.normal(loc=mux+2.1,scale=sigmax,size=int(Npoints_gauss/3.14))])\n", "binning = np.linspace(minx,maxx,Nbins)\n", "\n", "counts,bin_edges = np.histogram(Y,bins=binning)\n", "unc_count = np.sqrt(counts)\n", "X = bin_edges[:-1]+(bin_edges[1]-bin_edges[0])/2.\n", "\n", "fig, ax = plt.subplots(figsize=(16, 8))\n", "ax.errorbar(X,counts,yerr=unc_count,marker = '.',drawstyle = 'steps-mid')\n", "ax.set_xlabel('x',fontsize=13)\n", "ax.set_ylabel('count',fontsize=13);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define function (including bin width to get normalisation right):\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def func_gpol0(x,a,mu,sigma,cst) :\n", " norm = binwidth_gauss * a / np.sqrt(2.0*pi) / sigma\n", " z = (x-mu)/sigma\n", " return norm * np.exp(-0.5*z*z) + cst" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "select = counts>0\n", "chi2reg = Chi2Regression(func_gpol0, X[select], counts[select], unc_count[select])\n", "\n", "minuit_obj = Minuit(chi2reg, pedantic=False, print_level=0, a=0.0,mu=3.0,sigma=4)\n", "minuit_obj.migrad() \n", "\n", "if (not minuit_obj.get_fmin().is_valid) : # Check if the fit converged\n", " print(\" WARNING: The ChiSquare fit DID NOT converge!!!\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bf_a,bf_mu,bf_sigma,bf_cst = minuit_obj.args\n", "\n", "ax.plot(X,func_gpol0(X,bf_a,bf_mu,bf_sigma,bf_cst),'r',linewidth=2.0,label='Best-fit')\n", "fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "Look at the first case, but make sure that you also do the second case, as this is\n", "at least as important as the first one!\n", "\n", "Questions on CASE 1:\n", "--------------------\n", " 1. Look at the data plot and the corresponding fit. What type of fit is it? Does it\n", " run well (or at all) without some non-zero input parameters? And once it runs, does\n", " it seem to be reasonable? Why? And does the fitting function include all features\n", " of the data? Why/why not? Try for 5-10 minutes and discuss it with your neighbor,\n", " before reading on!\n", "\n", "---\n", "_5-10 minutes later_...\n", "\n", "---\n", "\n", " 2. As it happens, there seem to be a suspectable bump around 5 < x < 6. Try to write\n", " an additional fitting function, which includes this bump in the model, and get the\n", " fit to run. How significant is the bump, based on significance of the amplitude of\n", " the second Gaussian peak? And what test would you apply to this, if you wanted to\n", " make a full-fledged hypothesis test between the two models? Are they nested? Can\n", " you actually get a number out?\n", "\n", "---\n", "_10-20 minutes later_...\n", "\n", "---\n", "\n", " 3. Imagine that you concluded, that there was a new peak, and that you were sure that\n", " it had the same width as the original peak (for example because the width was due to\n", " the resolution of te apperatus, and not the peak itself). Does that help you in the fit,\n", " and if so, how? Does the significance of the peak increase? Would it always do that?\n", " Also imagine, that the parameter of interest is the distance between the peaks. How\n", " would you now write your fitting function?\n", "\n", "\n", "## NOTE: \n", "\n", "If one wanted to test the G+pol0 vs. the G+G+pol0 models against each other, which might be relevant, then a likelihood ratio test would be obvious.\n", "\n", "* Using iminuit and the `UnbinnedLH` function instead of the $\\chi^{2}$ regression, you can minimize the data again\n", "* You can minimize both cases, and save the value of the LLH using `minuit_obj.fval`.\n", "* After that, you can compute the test statistic $-2\\log{\\frac{LH_{1}}{LH_{2}}}$, and see that it is $\\chi^{2}$ distributed (Wilk's Theorem).\n", "\n", "The the test statistic distribution will have $N_{dof} = 3$, as the advanced model has three more parameters (from the second Gaussian)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "## CASE 2: Double exponential distribution\n", "\n", "Here we are considering the fitting of exponential data, and how the writing of the fitting function is important.\n", "\n", "* The \"bad\" fitting function:\n", " $f_{2,bad}(t) = N_{1}\\cdot\\exp(-t/r_{1}) + N_{2}\\cdot\\exp(-t/r_{2})$ for $t$ in $[0,\\infty]$\n", "\n", "* The \"good\" fitting function:\n", " $f_{2,good}(t) = N \\cdot\\left(\\frac{f}{r_{1}}\\cdot \\exp\\left[-t/r_{1}\\right] + \\frac{(1-f)}{r_{2}}\\cdot\\exp\\left[-t/r_{2}\\right]\\right)$ for $t$ in $[0,\\infty]$\n", "\n", "## NOTE\n", "The parameters $r_1$ and $r_2$ need to be positive, and $f$ in [0,1], in order for this to be a PDF.\n", "\n", "---" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "Npoints_2exp = 2000\n", "frac = 0.5 # Fraction that \"belongs to\" first exponential\n", "r1 = 10.0\n", "r2 = 2.0 # Note that the two lifetimes are not very different!\n", "nbins_2exp = 200\n", "xmin_2exp = 0.0\n", "xmax_2exp = 20.0\n", "binning = np.linspace(xmin_2exp,xmax_2exp,nbins_2exp)\n", "binwidth_2exp = (xmax_2exp - xmin_2exp) / nbins_2exp" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "all_pts = np.random.uniform(size=Npoints_2exp)\n", "N1 = sum(all_pts" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X = bin_edges[:-1]+(bin_edges[1]-bin_edges[0])/2.\n", "\n", "fig, ax = plt.subplots(figsize=(16, 8))\n", "ax.errorbar(X,counts,yerr=unc_2exp,marker = '.',drawstyle = 'steps-mid')\n", "ax.set_xlabel('x',fontsize=13)\n", "ax.set_ylabel('count',fontsize=13)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Let's try to fit the data with the bad model:\n", "I include the binwidth (here 0.1) in the fit to ensure that the normalisations are (or could be) right!" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "def f_2expBad(x,N1,r1,N2,r2):\n", " binwidth = binwidth_2exp\n", " return binwidth*(N1*np.exp(-x/r1)+N2*np.exp(-x/r2))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FCN = 250.58392324704326TOTAL NCALL = 212NCALLS = 212
EDM = 1.837652502304628e-07GOAL EDM = 1e-05\n", " UP = 1.0
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ValidValid ParamAccurate CovarPosDefMade PosDef
TrueTrueFalseFalseTrue
Hesse FailHasCovAbove EDMReach calllim
FalseTrueFalseFalse
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
+NameValueHesse ErrorMinos Error-Minos Error+Limit-Limit+Fixed?
0N1988.861142.473No
1r13.418010.17064No
2N2-510.642142.344No
3r23.417980.267559No
\n", "
\n",
       "\n",
       "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "select = counts>0\n", "chi2reg = Chi2Regression(f_2expBad, X[select], counts[select], unc_2exp[select])\n", "minuit_obj = Minuit(chi2reg, pedantic=False, print_level=1, N1=frac*Npoints_2exp,r1=r1,N2=(1-frac)*Npoints_2exp,r2=r2)\n", "\n", "minuit_obj.migrad() \n", "\n", "if (not minuit_obj.get_fmin().is_valid) : # Check if the fit converged\n", " print(\" WARNING: The ChiSquare fit DID NOT converge!!!\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bf_N1,bf_r1,bf_N2,bf_r2 = minuit_obj.args\n", "Chi2 = minuit_obj.fval\n", "Ndof = len(X[select])-len(minuit_obj.args)\n", "ProbChi2 = stats.chi2.sf(Chi2, Ndof)\n", "\n", "ax.plot(X,f_2expBad(X,bf_N1,bf_r1,bf_N2,bf_r2),'r',linewidth=2.0,label='Bad-fit')\n", "\n", "d = {'Entries' : \"{:d}\".format(sum(counts)),\n", " 'Chi2/d.o.f': \"{:.3f} / {:d}\".format(Chi2, Ndof),\n", " 'Prob' : \"{:.3f}\".format(ProbChi2),\n", " 'N1' : \"{:.3f} +/- {:.3f}\".format(minuit_obj.values['N1'], minuit_obj.errors['N1']),\n", " 'N2' : \"{:.3f} +/- {:.3f}\".format(minuit_obj.values['N2'], minuit_obj.errors['N2']),\n", " 'r1' : \"{:.3f} +/- {:.3f}\".format(minuit_obj.values['r1'], minuit_obj.errors['r1']),\n", " 'r2' : \"{:.3f} +/- {:.3f}\".format(minuit_obj.values['r2'], minuit_obj.errors['r2'])}\n", "\n", "ax.text(0.1, 0.95, nice_string_output(d, 0), family='monospace', \n", " transform=ax.transAxes, fontsize=9, color='red', verticalalignment='top')\n", "fig" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N1N2r1r2
N120298.498155-20069.205686-1.247951-1.318648
N2-20069.20568620261.818367-0.657863-0.432350
r1-1.247951-0.6578630.0291180.043215
r2-1.318648-0.4323500.0432150.071588
\n", "
" ], "text/plain": [ " N1 N2 r1 r2\n", "N1 20298.498155 -20069.205686 -1.247951 -1.318648\n", "N2 -20069.205686 20261.818367 -0.657863 -0.432350\n", "r1 -1.247951 -0.657863 0.029118 0.043215\n", "r2 -1.318648 -0.432350 0.043215 0.071588" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "corrBad = minuit_obj.covariance# GetCorrelationMatrix() # Access the covariance matrix\n", "\n", "\n", "def print_correlation_matrix(d,params):\n", " ncols = int(np.sqrt(len(d.keys())))\n", " nrows = int(ncols)\n", " matrix = np.zeros(shape=[nrows,ncols])\n", " \n", " index = {}\n", " i=0\n", " for p in params:\n", " index[p]=i\n", " i+=1\n", " \n", " for k,v in d.items():\n", " l = index[k[0]]\n", " c = index[k[1]]\n", " matrix[l,c] = v\n", " return matrix\n", "\n", "M = print_correlation_matrix(corrBad,['N1','N2','r1','r2'])\n", "\n", "from IPython.display import HTML, display\n", "import pandas as pd\n", "M = pd.DataFrame(M, columns=['N1','N2','r1','r2'],index=['N1','N2','r1','r2'])\n", "display(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Questions on CASE 2:\n", "--------------------\n", " 1. OK, the \"bad\" fit doesn't work to begin with. Can you see what is missing? There\n", " are in fact several things, but one is simple to remedy. Think and discuss...\n", " \n", "---\n", "_5-10 minutes later_...\n", "\n", "---\n", "Of course you need to give the fit good initial values! Do this (for example those the data was produced with!), and run it again. It might work now, but actually that is not always the case.The reason is that the \"bad\" fitting function has two flaws:\n", "\n", "* It does not have a correct normalisation, thus making N(1/2) and r(1/2) correlated.\n", "* It does not have one overall normalisation, thus making N1 and N2 correlated.\n", "\n", "This gives very high correlations between the parameters, as can be seen from the correlation matrix printed.\n", "\n", " 2. Both of these problems can be avoided by rewriting the fitting function to include\n", " the correct normalisation (i.e. dividing by the lifetime) and by putting only one\n", " overall normalisation and then dividing the two lifetimes with a fraction (i.e. use\n", " \"frac\" and \"(1.0*frac)\" as a parameter in front of each exponential term).\n", " Try this (define a \"good\" function), and see if your fit improves. The way to see\n", " this would in general be to try a lot of different data, but here we will simply see\n", " that the correlations a smaller (especially for the overall normalisation).\n", "---\n", "_10-20 minutes later_...\n", "\n", "--- \n", "\n", "__If you didn't manage to get this fit going, I've included a \"good\" fitting function below! (but try yourself first!)__\n", "\n", " 3. The two lifetimes are naturally very correlated with each other (and the fraction),\n", " when they are very alike. The only thing one can do about this is to fix one parameter.\n", " This is of course not desirable, but one can be forced to do it, if the fit does not\n", " converge otherwise. Note that since the correlation is very high, it is not a great\n", " loss of freedom in the fitting function.\n", " A very common similar example is fitting a \"Gaussian-like\" peak, which happens to have\n", " more than one width, for example if the data is obtained from two or more sources with\n", " different resolutions. Here, one may choose to let the two (or more) Gaussians have\n", " the same mean, but two different widths (the \"good\" and the \"bad\" measurements).\n", " Typically, the parameter to fix (if any) is the fraction, but never fix a parameter\n", " without first having tried to let it \"float\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The GOOD fitting function and fit:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def good_exp(x,N,f,r1,r2):\n", " binwidth = binwidth_2exp\n", " # f = frac\n", " return binwidth*N*(f/r1*np.exp(-x/r1)+(1-f)/r2*np.exp(-x/r2))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FCN = 172.56072710298656TOTAL NCALL = 173NCALLS = 173
EDM = 2.695960153720088e-05GOAL EDM = 1e-05\n", " UP = 1.0
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ValidValid ParamAccurate CovarPosDefMade PosDef
TrueTrueTrueTrueFalse
Hesse FailHasCovAbove EDMReach calllim
FalseTrueFalseFalse
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
+NameValueHesse ErrorMinos Error-Minos Error+Limit-Limit+Fixed?
0N1917.46188.093No
1f0.3491250.0317174No
2r116.19311.4539No
3r22.236750.25741No
\n", "
\n",
       "\n",
       "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "select = counts>0\n", "chi2reg = Chi2Regression(good_exp, X[select], counts[select], unc_2exp[select])\n", "\n", "minuit_obj = Minuit(chi2reg, pedantic=False, print_level=1, N=Npoints_2exp,r1=r1,r2=r2,f=frac)\n", "minuit_obj.migrad() \n", "\n", "if (not minuit_obj.get_fmin().is_valid) : # Check if the fit converged\n", " print(\" WARNING: The ChiSquare fit DID NOT converge!!!\")\n", "\n", "bf_N,bf_f,bf_r1,bf_r2 = minuit_obj.args\n", "Chi2 = minuit_obj.fval\n", "Ndof = len(X[select])-len(minuit_obj.args)\n", "ProbChi2 = stats.chi2.sf(Chi2, Ndof)\n", "corrBad = minuit_obj.covariance\n", "\n" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7MAAAHmCAYAAAChwtkCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xl4jOf6B/DvZJNEJCH2JbY0sbVFNAkhGSQtSvXwU7VVtNTpqjg9p061nKNFSx2UKoKxFqW1VW0lqFCCiC1BCBJBIrLJMlme3x+3ZER2S5KJ7+e6cs3MM8/7zvO+Se+659k0SikQERERERERGROT8m4AERERERERUWkxmSUiIiIiIiKjw2SWiIiIiIiIjA6TWSIiIiIiIjI6TGaJiIiIiIjI6DCZJSIiIiIiIqPDZJaIiIiIiIiMDpNZIiIiIiIiMjpMZomIiIiIiMjomJV3A0qrZs2aqkmTJuXdDCIiIiIiInoKjh8/HquUqlVcPaNLZps0aYKgoKDybgYRERERERE9BRqN5mpJ6nGYMRERERERERkdJrNERERERERkdJjMEhERERERkdFhMktERERERERGh8ksERERERERGR0ms0RERERERGR0mMwSERERERGR0WEyS0REREREREaHySwREREREREZHSazREREREREZHSYzBIREREREZHRYTJLRERERERERofJLBERERERERkdJrNERERERERkdJjMEhERERERkdFhMktERERERERGh8ksERERERERGR0ms0RERERERGR0mMyWs4ELD2PgwsPl3QwiIiIiIiKjwmSWiIiIiIiIjA6TWcovIgKoXh3QauVn/Pii6wcHAwcOlOzcN28Wfz4yLnFxgJsbYGsL/PmnoXzKFMDdXX5275ay5GRg8GD5u+rf31B30SLA0xPo2hU4erRMm09U0UXER6D6N9Wh1Wmh1WkxfmfRMTT4ZjAOXC1ZTL6ZfLPY85FxiUuNg9tiN9hOs8Wf1wwxecr+KXD3d4e7vzt2h0tMTtYnY/DGwdDqtOi/3hCTFx1fBM+lnui6vCuORjEmE1HFZVbeDaAKytUV2LOnZHWDg4HISMDLq/i6desC3333eG2jiqVaNeD33/N+SZGYCKxeDZw/D0RFAf36Ab6+8rv38QHefttQ98oV4Oefgf37ATOGJKKCuNZzxZ63ShaTg28GIzIxEl6Ni4/JdW3q4rtXGJMrk2oW1fD7kN8xfpchJiemJ2L16dU4/8F5RCVFod+6fvBt7ovvAr+DTzMfvN3OEJOv3L2Cn8/9jP1++2FmwphMRBUbe2ap5LRaYNw4wMMD+OwzKZs4EZg+HViyRN7P6ZkLCJCetz59gI4dgUOHgN9+k2N9fAzn1OsBPz/pkfP1laQYkOTmpZeAbt2A2bPL7hqp9MzNAQeHvGXW1kCDBvL7TUoCatWS8t27JXn18gK+/lrK9uwBHB2Bl1+WpPf27bJtP5GR0uq0GLdzHDz8PfDZHonJE/dOxPQ/p2PJySXQ6rS5PXMBEQHov74/+vzUBx2XdMSha4fw24Xf4OHvAZ8Vhpisz9LDb5Mfui7vCt+VvohMlJj889mf8dLil9BteTfMPsKYXJGZm5rDwTpvTLY2t0YD2wbQZ+mRlJ6EWlUlJu++vBtX7l6B1zIvfH1AYvKey3vgaOuIl1e+jH7r+uH2PcZkIqq4+JUbFez4cUlOAeDVV4FPPzU8nzEDaN5cktivvgKcnCQJnTgx7znOnAFOnQIsLYHMTOl1a90aGDnSUMffH2jWDNDpgL175Zzz5gErVgDz58vw1YyMsrhiepLMzIDu3YEWLeT3t2GDlMfEAPXqSS/sK68AvXtLWWiolK1bB0ybBvzvf+XbfqIK5nj0cWh1WgDAq8+9ik89P819PsN3BprPbY7pPtPxVbev4FTDCZGJkZjolTcmn7l9Bqf+fgqWZpbIzM6EmYkZWtdujZFbDDHZ/4Q/mlVvBt3rOuy9shfT/5yOeb3mYUXICszvNR9uDdyQkcWYbGzMTMzQvWl3tJjfAhlZGdjwhsTkmJQY1KtWD/v99uOVVa+g983eiEmJQeidUOz32491Z9Zh2sFp+F8PxmQiqpiYzFLBChtm7OICmJqWbDioh4ckskDh9c+cAQIDJZHNygIaN5byqVMlqZ05Exg2THp4yXhcvAhs2yaPMTHyJciJEzKv1tsb0Gjk7yM0FLCzAzp1kr+Rjh2BVavKu/VEFU5hw4xdarrA1MS0RMNBPRp6wNJMYnJh9c/cPoPA64HYe2UvslQWGttJTJ7abSrmHZ2HmYEzMeyFYejjwphsTC7euYhtF7bh4kcXEXMvBq+ueRUnRp+AbRVbeDf2hkajgUdDD4TGhsKuih06NewEMxMzdGzUEatOMyYTUcVVJsmsRqNxAbDugaJmAL4EsOJ+eRMAEQDeUErdLYs20RNkYSHDSR9mbl78sS1bAq1aAR9+KK/T0uSxeXNg4UJZMKpnTyazxiY9HbCxkQTV3h6Ij5dyNzcgJER66M+flyS3WTNg61Z5//x5oEmTcms2UWVgYWoBfVb+mGxuUnxMblmzJVrVaoUP3SQmp2VKTG5eozkW9lmIm8k30XN1TyazRiY9Kx02FjYwMzGDvaU94tMkJrvVd0PIrRC0rt0a52PP49XnXkWz6s2w9YLE5PMx59HErkk5tpyIqGhlkswqpcIAtAUAjUZjCiAKwK8APgPwh1Jqukaj+ez+63+VRZuoGA8OM27aFFi2rPC6Xl4yJDg8XObUuroWXG/8eJk7GxYm5/7yS2DUKGD0aJkzq5TMn/XzAyZMkIWlUlOBMWOe7LXRk+fjA5w7B5w9CwwdKr+z1q2lpzUrC5g0Sep99hnw1lvADz8AL74oKx0D8qVG587yBYhOV26XQVRRPTjMuGn1pljWt/CY7NXYC/OPzUf43XCM8xgH1/oFx+TxO8fj0PVDCLsTBq1Oiy+9v8Qo11EYvW00ui7vCqUU/Nr6wa+tHybsmYDgW8FIzUjFGHfG5IrOZ4UPzsWcw9mYsxj6/FCM8RiD1rVao+OSjsjKzsIkb4nJn3X+DG9tegs/BP2AF+u8CPeGEpNb1myJzks7w9zUHLq+unK8EiKiommUUmX7gRrNywAmKaU8NRpNGACtUipao9HUAxCglHIp6vgOHTqooKCgMmlrWRi48DAAYN3ojuXcEiIiIiIiovKn0WiOK6U6FFevPFYzfhPAT/ef11FKRd9/fhNAnXJoDxERERERERmZMk1mNRqNBYDXAPz88HtKuogL7CbWaDTvajSaII1GExQTE/OUW0lEREREREQVXVn3zPYEcEIpdev+61v3hxfj/mOBm5kppRYppToopTrUytmvkoiIiIiIiJ5ZZZ3MDoJhiDEAbAEw/P7z4QA2l3F7qDABAbKwk6cnMGWKlGm1sp9sQYYMMTyPiZFju3QBunUDLl3KX9/TE7j70MLVOp3sW/uknDkji1FptbKQVEU1dKhsTdOpk2xnA8i9aNpU2t63r6HuunWypU2XLrLtTWECAmQ/V6027/UvWQK89JKsKvzwFjj//rcs5FQSaWlyjszMwut8+inQsGHefYWPHpX2d+5sWNhr/345l1YLvPGGYUVrIsoVEBEAr2Ve8FzqiSn7JSZrdVpEJhYck4f8YojJMfdi4LXMC12WdUG35d1wKS5/TPZc6om7qXljsi5Yh68OPLmYfOb2GbgucoVWp0VqRsWNyWvPrEXL+S3hNNcpt2z6n9Oh1Wmh1Wnh+D9HzP1rbonua46AiADU+65e7jlyrv/CnQvwWeGDrsu74r/7/wsACI0NRbuF7WD1tVWhv9+HpWWmwW2xGzKzC4/Jn+76FA1nNcyzr/DRqKPw8PdA56WdMeZ3icn7I/bDbbEbtDot3vj5jdwVrYmIKiSlVJn8AKgK4A4AuwfKHAD8AeAigD0AahR3HldXV1WZvPFjoHrjx8DybkZe9+4p1b69Unfvyuvbt+XR21up69eLPz4pSambN+X53r1KDRmS9/3t25UaOzb/ccuWKTVlyqO2Or+pU5VasuTJne9puXhRHhMTlXJxkecF3Qu9XqnWreX3c+SIUgMGFH7OffuUeued/OVNmiiVmqpUSopSzZsbym/eVKpPH6W6dy9Zm3/4Qak5c4quEx2dvx39+il16JA8795dqbNnlYqMlDYppdSXXyq1eHHJ2kD0jLinv6faL2yv7qZKTL6dLDHZe5m3up5QfExOSk9SN5MkJu+9vFcN2Zg3Jm+/sF2N3ZE/Ji87uUxN2f/kYvLUA1PVkhMVPybH3otV+ky9aj6neYHvey/zVpEJkcXe1wftu7JPvbM5f0z2XeGrQmNC85QlpyerhLSEEv9+lVLqh6M/qDlHio7J0UnR+drRb10/deiaxOTuy7urs7fPqsiESJWaITH5y71fqsXHGZOJqOwBCFIlyDHLrGdWKXVPKeWglEp4oOyOUqq7Uuo5pZSPUiqurNpDRThyRHrP7O3l9YNDu2fNkvc++0xeR0VJj5qNjaGOjQ1Q5/5aXiYmgLV13vPPng2MHSvP794FXn5ZfjZuLLpd169LT6+Xl/RmZmUVXnfkSNmndsaMit8z63T/239zc9mzN8eqVdJbu2CBvL54EXB2lvvp7g6cPl30eXfvluMnTzaUtWgBpKTIT/XqhvJvvin5FkjZ2cDy5Xl7XAtSt27+statgaQkOUdGhvyNNWgAWFrK+wX9vRA9445EHoFHAw/YW0pMrlXVEJNnHZ4FD38PfLZHYnJUYhS0Oi1sphpiso2FDerYSEw20ZjA2jzvf2Oz/5qNsR4Sk++m3sXLK1/GyytfxsbzRcfk6wnX0W15N3gt88LQX4YiK7vwmDxyy0gsPL4QMwJnVPieWQdrB5ibFrwn75W7V2BqYooGtg2Kva8P2315Nzot6YTJAZMBAPosPWJSYvD1wa/hrfPGtgsyMqeqRVXYVrEtcXuzVTaWn1qOke2Ljsl1bfLH5Na1WiMpPQnZKhsZ2Rmwt7RHA9sGsDSzLPF1ERGVp/JYzZgqulu3gJo1C37v1Vdlr9i1a+V1gwYypLWgxCUjQ4Yof/KJoSwoSIa/NmokrxctAnr3BnbtAhwdi27X9OnARx8BBw5IwrxlS+F1/f1lv9rPP5f2WVkVfe6K4IsvDEn+66/Lvq27d8sev+fPA/HxgK0tMHcucPJk0cl8hw6S/O7fD5w4AezYIeWDBsn+ri++KMOKAeDaNSA5GWjevGTt3LgReOWVR0s6+/UD3ntPkuoOHYD69Q3vXb8O7NwJ/O1vpT8vUSV2K/kWaloXHJNffe5VHHr7ENaekZjcwLYBAvwCCkxcMrIyMOXAFHziYYjJQTeCUM+mHhrZSUxedHwRejv3xq5hu+BoW3RMnv7ndHzk9hEOjDgAGwsbbAkrPCb7v+YPv7Z++LzL5wjwC4CVuRHE5AKsClmFQW0G5Skr6L4+rEP9Drj40UXs99uPE9EnsOPSDsSmxCLkVgj+6flPbHlzC/6x6x/IVtmlbtPGcxvxSvNXHinp7NeyH9777T20mNcCHep1QP1qhph8PeE6dobvxN9aMCYTUcXFZJbyq1MHuHOn4PdcXABTU8DMrPjzjB4NvPsu0KqVoWzGDOAf/zC8vnIFaNNGnr/wQtHnCw+XJAwA2rUDLl8uvg3GQqeT3uMRI+S1vb30UlatCvj6Si+svT2QmAh8/LFcf1G/Axsb6eU1Nwf69AFCQiRh/fprIDRUfiZNkvmpX30FjB9f8rbOmydfKjyKDz6QLyHCwoCrV4HDss8yEhOBt96SxN0YvnggKkN1bOrgTmrBMdmlpgtMTUxhZlJ8TB69bTTedX0XrWoZYvKMwBn4RydDTL4SfwVtaktMfqFO0TE5/G44XqwrMbld3Xa4fLcSxeRCrD+3Hv/X6v/ylBV0Xx9mY2EDC1MLmJuao49zH4TcCoFdFTvUsKqBNrXbwM7SDrWr1kbMvdLv2DDv2Dx85P5oMfmD7R9gy6AtCPswDFcTruLwdYnJiemJeGvTW1jWd5nRfvFARM8GJrOUn4eHJBkJ90eEx8aW/hwTJ0rv2xtvGMrCwyV5ykleAekNPHtWnoeE5D1HdHTez27WzFDn1ClZIOnBc6eklL6dFcGOHZLgzZljKMtZHCs7WxZNcnYGnnsOuHBBkt6jR2XIbo6EBOlhffh4QH6Xzs6AUvJFhJWV9KpmZgLp6fKFwpgxwPDhQHCwDAMvzL59wPPPF95zXxy9XoY3azSAg4MsFqbXA2++CfznP/JlCRHl4dHQA4cjDyMhTWJybErpY/LEvRPRomYLvNHaEJPD48KRlpmWm7wCQPPqzXH2tsTkkFt5Y3J0UnSez25WvVlunVO3TqFpdUNMDo8LR0qGkcbkQhyJPAKnGk65w72Bgu8rACSkJeBagiEmP7i41uHIw3B2cEZVi6qoZ1MPkYmR0GfpcfvebThYO5SqTfuu7MPztZ8vtOe+OPosPapbVodGo4GDlQNiUmKgz9LjzQ1v4j/a/8ClJmMyEVVsTGYpP2tr4NtvpUevUydg/vzC665cKXNSc+bOzpolvX4zZgDbt0vZ++9L3Zkz8/cAjhwJbN0qvY9Xr+Z9b8IE6QXM8a9/ScLn5SXJ2oOr/HbvLgmeMfLzk1Wiu3eX+6XXy/13dwc6dpSytm2ll/Xzz4GuXYFx4/Ku/Pzrr9KzmWP1alnJuVMnSV779gWqVZOeXw8POe9bbwF2djKUeccOmQfbtm3eYeEPmzWr5L24M2ZI3d9/B3r1krKpU2WosZeXDJvu0QNYulSGn3/5pVzrokWlu39ElZy1uTW+9fkWfX7qg05LOmH+0cJj8spTK6HVaRGVJHNnZx2ehdDYUMwInIHtF7dDq9Pi/d8kJs8MnInxHfP+9zyy/UhsvbAVvit9cTUhb0ye8McEzDtqiMn/8vwX5vw1B17LvHA37S76uhhicvcV3XE0yjhj8q7wXfBZ4YMbSTfgs8IH52POA5B7O7jN4Nx6hd1XAPg19Fe89ashJq8+vRqui1zRaUknWJlZ5d6r2T1mo//6/vBa5oV/d/k3zEzMcCv5FnxW+ODUrVMYtHFQ7hDygsw6Mivf77AwMw7NwPhd4/H7pd/Ra7XE5KndpqLf+n7wWuaF+PR49HDqgaUnlyLoRhC+3PcltDotFh1nTCaiiksji0UZjw4dOqigoKDybsYTM3ChDOlZN7pjObekDCxYIPMlyTilpQE//WQYCk1ERm3BsQV47yXGZGOVlpmGn07/hBHtGJOJqPLRaDTHlVIdiq3HZLZ8PVPJLBERERERUTFKmsxymDEREREREREZHSazT9DAhYdze1qNWkSELNKj1cq8zX37Sn+OnL1TqXI5dw7w9JR5t5s2FV133Tqp16WLbBMEyKJe3bvLnN0ffjDU9fYGatSQvXWJKI+I+AhU/6Y6tDot3P3dse9K6WOy01zG5MroXMw5eC71hIe/BzaFFh2Tj0QeQZdlXdB1edfcebBHo47Cw98DnZd2xpjfDXuNf7rrU3gu9UT/9f0r3UJeRFS5lGB/FXomuboCe/bICrl9+8q+pkQTJsg+ty4uktT26SMrJD8sZ4/ho0dlW6HPPwfWr5e9gt9/X/bRdXeXfW+rV5d9ixcuLPvrITISrvVcseetPbiWcA191/bFydGMySSLcs3tMRcuNV3gudQTfZz7wNQkf0zOVtkYs2MMtg3ahlpVa+WWf3PoG8x6ZRY6NeoEnxU+OBdzDumZ6Qi9E4pDbx/CN39+A12wDu+/9H6+cxIRVQTsmaWiOTrK/qQ5mjeXPUa9vGRl4YQEoHdvef3aa0BSktRLTQUGD5b9ULdtK5+205MXFiZfdNjYyN/GlSsF17t4UbYDsraWpPX0aSk/fFhWrjY1ld7Z48elvF69smk/kZFztHNEst4Qk5vPbY6Ptn8Er2VemHNkDhLSEtB7TW94LfPCaz+9hqR0icmpmakYvHEw2i1sh20XGJMri7DYMLjWd4WNhQ0c7RxxJb7gmBweFw7bKrYYtXUUui7vir8i/wIAtK7VGknpSchW2cjIzoC9pT0ORx6GbzNfAIBPMx8EXg8ss+shIiot9sxS0U6ckP1Ac1y7Jsmss7PsU/q//8mw0bFjpdfN31+e37kDfP+97JPq4yMJLxm/7GwgIEC2UbKzA+LiCq4XHw/Y2kovbpcuQFaWlCckANevy7ZNRR1PRAU6EX0CDlaGmHwt4Ro+cv8Izg7OyMzOxP8O/w/dm3bH2I5jMf3P6fA/4Y+xHcfiTsodfN/ze2SrbPis9EFvZ8bkyiBbZSMgIgBX46/Crood4lILjqkxKTH4K/IvXPzoIlIzUzHg5wE4NuoY+rXsh37r+sHMxAx9nPugfrX6iE+LR/1q9fHh9g8xsv3IQs9JRFQRMJmlgh0/LvuZVqkC/Pijobx+fUlkAcDMDAgPB964v1n8g72wdeoYkuDU1LJrNz1dJiYylxoANm6Uea4FsbcHEhOBjz+W12b3Q42dHdCoEfDpp/JeYccTUR7Ho4+j6/KuqGJaBT/2NsTk+tXqw9lBYrKZiRnC74bjjdYSk9vVNfTC1rGpAwdricmpGYzJlYWJxgTaJloAwMbzG1HDquCYalfFDi41XVDHpg4AICEtAQDwwfYPsGXQFrSu1RoDfh6Aw9cPw97SHonpiZjXax5ORJ8o9JxERBUBhxlTwVxdZeGnHTuAtm0N5ebmees1awaEhMjzU6eApk3l+c2b0jsbGytDTalycHaW+dP37knvbM7vOyMDCA011HvuOeDCBfki4+hRoHVrKffwAP74Q3pqDx8G2rcv+2sgMkKu9Vyxb/g+7Bi6A23rGmKyuUnemNysejOE3JKYfOrWKTStLv+N3ky+iTspdxCbEgtrc8bkysLZwRkno0/inv4eriZcRVN7+X1nZGUgNNYQk51qOCE+LR739PcQlxqHqhZVAQD6LD2qW1aHRqOBg5UDYlJi4NHQA39c+QMAsOfyHnRsyK0DiajiYs8sPZ5335W5sb/+KvMof/pJymvWlIV+Ll4Evv66fNtIT860acCoUTLceNIkw+JPUVFAy5ZAzr7V5uay6FPXrtIru2SJlH/2GTB0KPDtt8Dw4Yae2aFDgcBA+eLj7Fn5HCIqtXdd38XgjYPxa+ivsLGwwU/9JSbXtK6J97e/j4t3LuLrbozJlcW07tMwausoZKtsTPKelLv4U1RSFFrObwk1SWJyFbMqmOw9Gd1WdIMGGnzj8w0AYGq3qei3vh+qmFZBvWr10MOpByxMLeBU3QmeSz1Ru2ptrPobV5knoopLo3L+8WkkOnTooIKCgsq7GQXK2ZZn3eiSf4v5KMcQERERERFVVhqN5rhSqkNx9TjMmIiIiIiIiIwOk1kiIiIiIiIyOkxmiYiIiIiIyOgwmaX8dDqgVi1Ar5fXTk7yuHatLPKT87qyeO892Qu1WzdZyAiQFXg9PIDOnYExY6QsPR3o3x/w9pbtaa5dK/yc4eFyTm9v4M03ZU9eANi6FfD0lIWRtmyRsid5Xz09gbt3S3dMaKhsq2RlBURG5n3v/HlZwCmnfOhQoFMn+cnZhqkosbGy3+yff8rrN9+Ue6fVSnlICHDsmNxrb2+gTx8gKal07Seq5HTBOtSaUQv6LInJTnMrRwyOS42D22I32E6zxZ/X/swtf2/be+iyrAu6Le+GqESJyQERAWjzQxtYfW2VW08XrINWp4VWp4Xz984Yt3NcsZ/57z/+DZ8VPrmvt4ZthedST3Rd3hVbwiQmD/1lKDot6YROSzrlbm30qDyXeuJuaulicmhsKNotbAerr60QmSixVymFv2/7OzyXeqLTkk4IvhkMAPjtwm94afFLcPd3x7eHvi3yvOvOrIOHvwe6LOuCi3cuAgB2XNoBd393ePh74KfTsljYsahj8PD3gLfOG31+6oOkdMZkIqrAlFJG9ePq6qoqqjd+DFRv/Bj41I956pYtU6pRI6XWr5fXzZvLY2ysUnq94XVlEBioVP/+8nzVKqU++ECe9+un1KFD8rx7d6XOnlVqyxalRo2SspUrlfr008LPO26cUqtXy/N33lHqt9+USkxUys1NqXv38tZ9Uvd1+3alxo4t/XHJyUolJCjl7a3U9et53xs5Uql27QzlFy/KY2KiUi4uxZ/7X/9SystLqYMH85YnJcl5lVIqLU2p7Gx5PnmyUvPnl/4aiCqxZSeXqUazGqn1ZyQmN59TOWKwPlOvYu/FquG/DlcHr0qMCLwWqPqvk5i86tQq9cFvEpPvpt5VKfqUQq992C/DVOC1ov9fejPppuqzpo/qvry7UkqpxLRE5bbYTd3T543JF+9czH3f5fsSxLlCbL+wXY3dUfqYnJyerBLSEpT3Mm91PUFib8jNEOW7wlcppdTBqwfVgPUDlFJKtV/YXkUlRqns7Gzl8r2LSkpPKvCc+ky9aj2/tbqnv6eOXD+Se/zzPzyvYu/FqsS0ROU010mlZ6artIw0lX0/Jk/eN1nNP8qYTERlD0CQKkFuyJ5ZKtjAgcCaNXnLHBzy7zNr7K5dA1q1kudt20qPLCD7oiYlyRY0GRmAvb30nOb0ViclSe91YXKOB4DkZNmq6MgRoHFj4PXXgR49ZNsioPT3dfJkICAgf/ns2cDYsSU/T46qVaWX9GHHjwONGuV9L6f32NwcsLAo+rxRUUBiomEv2gdt2AD07SvPq1QBNBp5npAge9QSUR4DWw/EmjNriq9oRMxNzeFg7ZCn7FrCNbSqJTG5bd22OBolMdne0h5W5lb5zgEA9/T3EHwzGB0bFb0rwDeHvsEY9zG5r49EHkFju8Z4fe3r6LGqR25vpVMNp9z2WZgWE+cATA6YjICIgHzls/+ajbEepY/JVS2qwrZK3pjcwLYBLEwtkK2ykZSehFrW8v+f1rVaIyk9CelZ6bA0syy0vRfjLsLZwRnW5tZwb+iO07dPAwDSMtPgYO2AalWqwd7SHpfiLqGKWRVo7sfkhPQEPFeDMZmIKi4ms1QwOztJ4K5eLe+WPF0uLsBff8n+qPv3SzIFAP36yfDjFi2ADh2A+vWBZs1kCG/r1sDcubLfamF8fKRO69YyxNjNDYiJAYKCZE/eL75ZVmLpAAAgAElEQVQA/vnPJ3cdQUFAvXqSfD4p334LfPxxwe998UXxifO0acC4Qob9rVwJDBlieL13r3yZcPAg4Or6aO0lqsTsLO1gb2mPq/GVOya71HTBX1F/QSmF/Vf3IyE9odhjfjn/C15zea3IOtcSriFZn4zmNZrnlsWkxCDoRhB+HfgrvvD6Av/ckzcmf7H3i0dKRgEg6EYQ6tnUQyO7JxOTq1tWR0PbhmgxrwXe++09jOsosXXoC0Phs9IHLea1wNvt3i40mY1Pi4dtFVvM/WsuTkafRFZ2FgD5u4qIj8DN5JsIiw1DQprc771X9qLtj21x8NpBuNZnTCaiiovJLBVuxAhg6dLybsXT1batzG318gJu3DD0tn7wgcxpDQuThP7wYWDFCuk1PHsW+OYb4LPPCj/vhAlS5+xZwNFR5sXa2UmiVrWqzBENCytdW9etk7mmOh3wySfyPOccM2YA//hH3vrz5kmd8eNL9zmAJJXOzvKFxsN0OiA1Vf4+CnP5MpCSUvA84OvX87/XrRsQHCwjAmbOLH17iZ4BI9qOwNKTlTsmt63bFl0cu8BL54UbSTdyeyCLsjJkJQY/P7jIOl8d+ArjO+aNhXZV7OBa3xVVLarCo6EHwmINMVkXrENqZipGtCs8zq07sw5anRa6YB0+2fEJtDpt7jlmBM7APzrljcnzjs6DVqfF+J2lj8l7Lu9BXGocwj4Mw5ZBW/DB9g8AAB/9/hGCRgXh4kcXsf7selxPuF7g8faW9khMT8TH7h+jXb12MDMxkzb1nIe3N7+N0dtGw62BG2pVlfvdrWk3BP89GANbD8TMQMZkIqq4mMxS4by8gMDA8m7F0zdxoiRvjRsDvr5SptcD1avL8FcHB+lVTU+XMkCS3tu3DeeIjpbFjnIUVLd9e+DCBSArSxZdaty4dO0cOFCGF/v5yZDigADpWQ4PB9LSgDZt8tb/8EOp8913pfscADh5Uu5Jjx6ySNPw4VK+Y4ck+XPm5K2fkSHXlCM4WBLtHj2A3bsl0c65P6tXy0JQOe7dMzx3cJBeciLKx6uxFwIjK39Mnug1EQdHHERju8bwbeZbZN2oxCjEpcblDk3OEZ0UjdgUQ0y+En8FY3aMwfBNwxF8Mxizj8xG+3rtceHOBWRlZyE0NhSN7SUm77i0A1vCtmBOj4fi3EMGthmIAL8A+LX1w+wesxHgFwCXmi4IjwtHWmYa2tTOG5M/dPsQAX4B+O6V0sfk9Kx02FWxg0ajQU3rmrh9T/7/k5WdhWpVqsHc1BxVLaribposNpWRlYHQWENMfq7Gc7hw5wJSM1JxNOooWtduDQBwb+iOvcP3YnGfxYhPi0ez6s1wT2+IyQ5WDlCMyURUgZmVdwOogvP1BRYtkue7dsnQ0xs3ZBjt99/LKrzGrn9/SbTq1QMWL5ayqVNlqHGVKlLeo4ckjAMHSm+nXi/Xn2PCBKBJE5nPCkiC/P77Mq/U0lJ6Zu3tgWHDZIVkExPpOQUe/77OnPlova85bt2SIb+nTgGDBkmv9McfG4YYa7XA8uXy3M9Pepq7dze03cJC5se2bGlIRPv1k5+cY0aOlHnDgMzF3rXL8PmbNgHz5xvm4a5a9ejXQlTJ+TbzxaLji8q7GU+MzwofnIs5h7MxZzH0+aEY4zEG/df3R2xKLOrZ1MPiPhKTT908hfG7xuNG0g34rPDBRK+J0DbRYs3pNRjYemC+8074YwKa2DfBZO1kAMDuYbsBABHxERi5ZSQ+8fgEADDshWHovKwzTDQmmNdTYrLfJj842jmi+wqJc7uG7SrR3NkcMwNn5usFLo1bybcw5JchOHXrFAZtHIQPXvoA/9fq/7D69Gp0WdYF+iw9pnafCgCYrJ0Mb503zE3M4VrPFS/UeQEAEJUUhZbzW0JNkphsbmqOz7t8jq7Lu8LMxAxLXlsCAFh8fDHWnFmDjKwMzO05FyYaE2wK3YT5x+bnzhle9TfGZCKquDTG9o1bhw4dVFBQUHk3o0ADFx4GAKwbXfQiFI97DFEeCxbI/F4iIip3C44twHsvMSYTET0OjUZzXCnVobh6HGZczpLSMhAVn4rjV0u5NyhRDiayREQVBhNZIqKyw2S2nKz56xp6zTmAc9FJiLybigE/BmL69vPl3SwiIiIiIiKjwGS2nGwOjsKlGMMiC9kK2HY6uhxbREREREREZDyYzJYjp1pVYSL7ksNEA9haVpD1uHQ6WYFXr5fXOVuoDB0KdOokP9u2lVvznjgrK1nkSKuVLXgAWQW4TRt570Gffgp4esqiUSkphZ8zM1MWUvL2Brp2ldV+c5w/D5iZAZGR8vpJ3ldPT9kLtzRCQ4F27eRac9r0uG3NyAA6dpTr79IFOH067/uDB8uiUA/auVMWgSKiAk3/czrc/d0xad+k8m6K0UnWJ6Pv2r7wXOqJz//4vMi6I7eMRJdlXeDu7461Z9bmeW/R8UVwmmvYVuy9be+hy7Iu6La8G6ISox65fdFJ0bkLTpXGuZhz8FzqCQ9/D2wK3VRk3XVn1sHD3wNdlnXBxTsXAQBf7vsSnZd2hru/O2YfmQ0A2B+xH26L3aDVafHGz28gLTOt9BdERFRGKkj29GyqZmmOFnWrITEtE7aWZqhmWYH+IW9lBWzeDAwYYCibPFkS26Qk4KWXgN69y615T1SDBpK8PqhtW+DYMeD55w1lJ09K4nfokOwhq9PJisUFWb1atpnZvz//e7NmAS+8YHj9pO7r778D7u6GLYFKqlEjaedrrz25tpqZAfv2yUrO+/cDU6YA69fLeyEhstXRw1sTrVgBNGxYurYTPUOWn1qO0++dzt0jlEpu8fHF8HL0wvhO49FzdU+cizmXbzufHN/3/B5W5lZI1ifjxR9fxJttZCuxtMw0HLp+KLfe4euHEZMSg4MjDmJ1yGpM+3Ma5vWa90jtm31kNsa4jyn1cRP+mIC5PebCpaYLPJd6oo9zH5iamOarl5GVgSkHpuDoqKM4fes0Pt/7OdYPWI8JnSfgv13/i6zsLLT6oRVGth8JpxpOODDiACzNLDFp3ySsClmFke1HFvDpRETljz2z5ayapTka2FtVrEQWkC1o1qzJW5bTQ5uzhUplceuW7Kk7bBiQkCBl9vb5e2UPHzbsQ+vjU/QevLt2Aampct4xY4DsbCk/flySR1tbQ93S3tfJk/Mn34DsPTt2bPHHP6xq1bztyfE4bdVoJJEFpKe4RQvDezNnyh64D/rlF+DllwHT/P8II3rWXYq7BK1Oi4j4CPis8GHP7CM4HHkYvs0lfvs09UHg9cLjt5W5xP6k9CQ41TD0wv5w7Ae83fbt3NfXEq7lJsRt67bF0aijxbZDq9PmK0tMT8TBawfRx7lPia7lQWGxYXCt7wobCxs42jniSvyVAutdjLsIZwdnWJtbw72hO07fltEyOdeampmKujZ1YWlmiQa2DWBpJvHbRGMCa3PrUreLiKisMJmlgtnZSUJ39Wr+97744tGSpooqIgI4cECGFU+bVni9+HhJ7D78UJKuuLjC68bESEJ34IAMR966Vcq//dawf+vDHue+BgXJfriNGj3a8QV53LbGxclw5A8+AF5/XcqOHAGaNpW/rxzZ2dLLPWTIE2k2UWXjVMMJAX4BaFCtAQL8AvCfrv8p7yYZnfi0eKRmpOKzPZ/BztIOcalFxG8Aw34dhhd+fAFvtpZe2WR9MgKvB8K7iXduHZeaLvgr6i8opbD/6n4kpCc8UtsWBi3EqPajoNFoSn1stspGQEQAlgcvh12Vwq8rPi0etlVsMfevuTgZfRJZ2Vm57/1z9z/hNNcJPk198vT6X0+4jp3hO/G3Fn8r/UUREZURJrNUuBEjgKVL85bpdNLjOGJEuTTpsU2cKHNjZ8wwlDk4yGO/fjIEtjD29kBiIjBvniRgNWoUXtfOTuaLAjJ3NDQUOHgQcHaW8zysJPd13Tppu04HfPKJPA8Lk/dmzAD+8Y+89efNkzrjxxd+zsI8blsBuT+BgTJcPacn9ptvpO0PWr1ahjibcegkET0d9pb2sDK3wnSf6UhMT0QNqyLiN4CVf1uJCx9ewNcHv0ZSehL+d/h/+HuHv+ep07ZuW3Rx7AIvnRduJN1ALetahZ5vwp4J0Oq0CL4ZDK1Oi56rewIA9Fl6bDi/AUNeyPtl3sgtI6HVabHy1Moi22miMYG2iRbD2w4v8rrsLe2RmJ6Ij90/Rrt67fIkrd/6fouITyKw5cIWXLhzAYD0Fr+16S0s67sst/eWiKgiYjJLhfPyyjuUdscOYMsWYM6c8mvT4/rqKxmi++mn8jopCci6/w314cOSwBXGwwP44w95vmePJKk5oqOB2FjDazc3Q2J8/jzQpInMuT14EOjRQ94bPlzeL+l9HThQ2u7nJ0OKAwIAFxcgPBxIS5Oe5Qd9+KHU+e67os9bkNK2NSNDEvYcaWmG++rgACglz8PDgUGDgH/+UxZ8+ukn4MwZYO1a+azoaODtt0FE9CR5NPTAH5clfu+5vAcdGxrid3hcOFIyDAv6JeuTAQA2FjYwMzGDicYEYXfCMDNwJnqs6oHo5GhM2DMBADDRayIOjjiIxnaN4dvMt9DPn+YzDQF+AWhbty0C/ALw+5DfAQCrQ1ZjQKsBsDDNO23D/zV/BPgFYNiLw4q8LmcHZ5yMPol7+nu4mnAVTe2bApA5sqGxhpj8XI3ncOHOBaRmpOJo1FG0rt06z7VWMa2CquZVoZSCPkuPNze8if9o/wOXmi5Ffj4RUXljVwgVzdcXWLRInvv5AY6OQPf7Ky7u2mX8c2fPn5dVde3tARsbYPlyKT91Sno0b9yQ+bE5PbpOTrJicO3awKpVhvNMmCAJ6+TJ8vrdd2XYrLc3ULcuMHWqzDPNGbar1Ro+63Hv68yZj9b7muPWLWnrqVOSaH7wgbSzNG2NigJatjQkrZcvA++8I+/p9dJGwJDgBwTI/Rs0SH5yODnlHw1ARPSYRrUfhcG/DMaG8xvg5eiVm8wBQPcV3aF7XQdtEy0AoM9PfZCVnYXUzFR84vEJqlpUxap+hnjvNNcJ03xkSkr/9f0RmxKLejb1sLjP4lK1SSkF/5P+2DFkxyNf17Tu0zBq6yhkq2xM8p6Uu/hTVFIUWs5vCTVJYrK5qTk+7/I5ui7vCjMTMyx5bYncl62jEJUYhbTMNPR06gmXmi74MehHBN0Iwpf7vgQADH5+MN51ffeR20hE9DRpVM4/Po1Ehw4dVFBQUHk3o0ADF8q2LutGdyyy7MHyhz1cj6hYCxYA771X3q0gIqJSuJV8C4euH0K/lv3KuylERBWORqM5rpTqUFw9DjMmMnZMZImIjE4dmzpMZImIHhOTWSIiIiIiIjI6TGap5NaulXmRTk7F133WLVgg29J06mRYbKo4nTrJAlWAbGvj5iZbAf35p6HOlCmAu7v87N796O2LjjbMey2Nc+dkzrCHB7BpU9F1P/0UaNhQ5iTnePNNmYOr1cq15cyh9faW1Y8fnIdMREVae2YtWs5vCae5z25M9tZ5o8Y3NbAqxBA7Lty5AJ8VPui6vCv+u/+/RR4/5JchqDOzDr468FVumS5YB3d/d7j7uyMgIgAAsDl0Mzou6QivZV4Y9uswZGZnPnKbvwv8Dv4n/Et9XEFtLe3fQGxKLGyn2eLPa/L/Fb9Nfmi3sB20Om2+/Yt3XtoJ8ynmpW4nEVFZ4gJQVHK+vkD//pLQUtH8/AzDf7t1kySwVavC62/dClg9sP1BtWrA77/nXdgpMVG2sTl/XhZc6tdPfiePYvZsYMyY0h83YQIwd66souzpCfTpI3vuFmT8eODVV/MmqGvXymNysqyW/cILhvKFC0vfHqJnmG8zX/Rv2R8t5z+7MXlt/7VYeDxv7Phw+4eY32t+iVbinek7EzvDdyIyMRIAkJmdiakHp+LM+2dwM/kmXvvpNQT/PRgvN38ZfVv0BQCM2DwCu8J3oddzvUrd3oysDKw7uw4HRxws9bEPtxUo/d/AzMCZaFevXZ6y73t+j86OnfPVXRGyAg1tG5a6nUREZYk9s1QwnU5Wo/X1lR7CiAjZYsWc39KWSE5impEh96x27cLrKiWrBQ8ebCgzNzfsf5vD2hpo0EBWB05KAmoVvqdhLq02f1liomy706dP8cc/LCwMcHWVlZ8dHYErVwqvW7du4e9t2AD07Wt4Xa9e6dtC9AzRBevwzuZ34LvSF26L3RARHwEHaweYmz7bMbletbyxQ5+lR0xKDL4++DW8dd7YdmFbqY6/k3IHdW3qwsLUAo52johKikJKRkruXqtKKaRlpqGJfZMizxsRHwG/TX75ytecXoP+LfujilmV4i+umLYCKNXfQFRiFBLTE3O37wEAjUaDcTvHwVvnjYNXDQn2L+d/wcvNXoapppAvK4mIKgj2zJaxwlYxftzzPZVVkC9flv1UTU0Ne4ZSyc2aJb2Yvr75E9MHrVsnPZgaTdHnMzOTocEtWkiSvGHDo7Vr4UJg1KjiP68g2dmyrc7Vq4CdnQyHfhQrV7InlqiULsdfxp5he2BqYoqsbMbkgsSmxCLkVghW/m0lGtk2gru/O3o91wsmmpJ9d1/TuiZu37uNhLQEXEu4hrjUOCSkJcDa3BprTq/Bf/f/F81rNEez6s1K3TalFBadWITtg7eX+tgnYdqf0zCu47g8w5Rn+s6Eg7UDLsVdQq/VvRD2YRgUFHTBOvwy8BdMOTClXNpKRFRS7Jmlwnl5GYaQFjaUlAo3bhwQHg7cvl34/NasLOkFHzas+PNdvAhs2yaPx44B779feN0JE6RXNjhYHnv2lHK9XpLgIUPy1h85UuqtXFl0G0xMpN7w4dLDW6NG8e1+2PXrQEoK514TlZKXo1fuPqI5j5SXXRU71LCqgTa128DO0g61q9ZGzL2YEh9vamKKmS/PxGtrX8OMwBloU7sNHKzly8jBzw9G6IehaGrfFCtOrSjw+IS0BGh1Wry54U3suLQDWp0Wc47MAQBsv7gdnRp2gp2lXW79S3GXoNVpodVpS9XO0rp89zJSMlLgVCNv3M25NqcaTqhVtRZiUmKwOmQ1XnN5DWYm7O8gooqPkYoKxyHFjy45WYbimpoC9vYylDhHeLgMq7W2Bm7elGS3d2+ZB5ueLgtBdeuW/5zp6XJOMzM5Z3x84Z8/bZo8arXSk5pj9WpgwADAwiJvff8SLkbi7AycPCmPV68CTe8PV8vIkOtq0aL4c6xeLQtBEVGpPOtDikuiqkVV1LOph8jESNSuWhu3793OTdhSMlIQnRSN5jWaF3mO3s690du5N87HnMfHOz6GhakFkvXJsLGwAQA4WDlAPRjTH2BnaYcAvwBExEdgcsBk6F7X5b435685WNZ3WZ76TjWcEOAX8OgXXIiMrAyE3w1Hi5oSk4NvBiPsThh6rOqB07dPIzQ2FNsGb4OpxhTVrarjbupdxNyLQU3rmjhz+wyORx/HhnMbEJ0cjbc3v42lfZc+8TYSET0JTGap5HbtAr79FrhxA/DxAb7/notBFebLL4GgICAzE2jTJu9CTd27S2+sVitzYE+ckHKdDoiMNCSyPj6ycNTZs8DQobJgU+vWQMeO0qM7aRJKRSlJWnfsePTrmjZNhihnZ8vn5/TYR0XJ38KD/8CbMUMWdrp5E+jVC9h+f2jdmjXyt/SgoUOBwEBJ8M+eNSTjRFSoXeG78O2hb3Ej6QZ8Vvjg+57fo2WtZysmD/1lKAKvB8La3Bpnb5/FNJ9pmN1jNvqv7w8NNPh3l3/n9jAejToKv01+iPgkIvf48TvHY0f4DqRnpuPy3ctY2ncppuyfgj+u/AETjQkWvLoAALDg2AJsDtsMjUaDWta18K/O/ypVO49GHUUj20ZoYNvgka+1oLYW9jcQlRSFlvNbQk2SmNyvZb/cPW39NvlhZPuRqGldEz4rfJCamYqMrAzM7jEbJhoTfOP7Te5nOs11YiJLRBWaprBvF5/4B2k09gD8AbQBoAC8DSAMwDoATQBEAHhDKXW3qPN06NBBBQUFPdW2PqqC5q8+XFbcnNnSzn19qnNmqXK5dQs4dEhWQSYiojKz89JOPOfw3CPNtSUiehZpNJrjSqkOxdUryzmzcwDsUEq1APAigPMAPgPwh1LqOQB/3H9NRE9DnTpMZImIysErTq8wkSUiegrKJJnVaDR2ALwALAEApZReKRUPoC+A5ferLQfwelm052lJSstAVHwqjl8tsnOZiIiIiIiIHlNZ9cw2BRADYJlGozmp0Wj8NRpNVQB1lFLR9+vcBFCnjNrzxB2/ehfnopMQeTcVA34MxPTt58u7SU/e0KGyOFGnTrKqLhVuwQLDvfr005Id06kT8NX9LRPi4mR/X1tb4M8/DXWmTAHc3eWnsBWSSyI6Wubulta5c4CnJ+DhAWzaVHi9mBhZDbtLF5kDfOmSlCcny366Wi3Qv7+UpafLc29vKb92rfTtInoGDf1lKDot6YROSzoVu5/qs27OkTl4afFL8FzqiSn7i95upqD7ujl0Mzou6QivZV4Y9uswZGZnIvhmcO5KxG6L3dB+YftHbl90UjS6ryh9TD4Xcw6eSz3h4e+BTaGFx+SYezHwWuaFLsu6oNvybrgUJzHZb5Mf2i1sB61Oi0n7ZB0GXbAu97qcv3fGuJ3jHu2iiIjKQFktAGUGoD2Aj5RSf2k0mjl4aEixUkppNJoCJ/BqNJp3AbwLAI6Ojk+7rY/kyOU7uc+zFbDtdDQ+61XJFuKYPFm2U0lKAl56SVbgpYL5+QHvvSfPu3WTJLBVq8Lrb90KWFkZXlerBvz+OzB+vKEsMVFWAj5/XhZc6tcv78JSpTF7tiwoVVoTJsjeuS4uktT26VPwtk1WVsDPP8vQ5n375G9n1Srgu+9kYau33zbU3bVL9uHduFHqzJsnC40RUZEmayfDqYYTktKT8NLil9DbmTG5ML2de2OMh8Q8b503Bj0/KN82NTkKuq8vN38ZfVv0BQCM2DwCu8J3oddzvXJXIl56ciluJd965PbNPjIbY9xLH5Mn/DEBc3vMhUtNF3gu9UQf5z4FbttkZW6Fnwf8jDo2dbDvyj5MDpiMVf1WAQC+7/k9Ojt2zq3r19YPfm39AABv/foWBrQa8GgXRURUBsqqZzYSQKRS6q/7rzdAkttbGo2mHgDcf7xd0MFKqUVKqQ5KqQ61atUqkwaXlkczB5ho5LmJBrC1NPKFonU64J13JFlycwMiIgz7gpqb59/ahfLKSUwzMuR+1a5deF2lgOXLpccyh7m5JHgPsraW1Y/1evlCoST/LWi1+csSE4GDByURLa2wMMDVVbYIcnQErlwpuJ6NjSSygOxNa20tz3fvlmO8vICvv5YyJye5JqDk10X0jNEF6/DO5nfgu9IXbovdEBEfkZuMmZuaw8KUMbkoD27HY6IxgZWZVaF1C7qvVuZSXymFtMw0NLFvkueYVSGrMOj5QcW2Q6vT5itLTE/EwWsH0ce59DE5LDYMrvVdYWNhA0c7R1yJLzgm21jYoI6NxGQTjQmszSUmazQajNs5Dt46bxy8ejDPMff09xB8MxgdG3GBSSKquMok41JK3dRoNNc1Go2LUioMQHcA5+7/DAcw/f7j5rJoz9Pg2rg6WtSthsS0TNhamqGaZSXYD/DyZWDPHul5y8oylH/xBTB2bPm1y1jMmiW9mL6++RPTB61bB7z6KqDRFH0+MzMZGtyihSTJGzY8WrsWLpTtdYr7vIJkZ8u+tVevAnZ2Mhy6KBkZMjR67lx5HRMje+zu3w+88or07rdoAdy9K9sOZWcDh4te8ZvoWXU5/jL2DNsDUxNTZGUbYvIXe7/AWA/G5JL47cJvaGzXuERb5Dx8X9ecXoP/7v8vmtdonmcxp6vxV5GZnZkvwS2phUELMar9KGgeISZnq2wERATgavxV2FWxQ1xq0TE5IysDUw5MwdyeEpNn+s6Eg7UDLsVdQq/VvRD2YVhuO345/wtec3mt9BdERFSGynI1448ArNZoNCEA2gKYCklifTUazUUAPvdfG61qluZoYG9VORJZQHrPcoaQ5jzqdEBqKjBiRLk1y2iMGweEhwO3bxc+vzUrS+7psGHFn+/iRZmrfPEicOwY8P77hdedMEF6ZYOD5bFnTynX6yUJHjIkb/2RI6XeypVFt8HEROoNHy49vDVqFF1/9Gjg3XcNQ6xtbWVurEYj825DQ4EVK4DnnpP9Zb/5BviMi5oTFcTL0St3CGnOoy5Yh9TMVIxox5hcnJBbIZh1ZBZ+ePWHYusWdF8HPz8YoR+Goql9U6w4tSK3fFXIKrzZ5s0izzdhzwRoddrcebY9V0tM1mfpseH8Bgx5IW9MHrllJLQ6LVaeKjomm2hMoG2ixfC2w5GYnogaVkXH5NHbRuNd13fRqpbEZAdr+aLVqYYTalWthZiUmNy6K0NWYvDzgws8DxFRRVFmY2GVUsEACtor6BFWoam8KtS+seYPJeU7dgBbtshcSCpacrIMtTU1BeztZShxjvBw6Z20tgZu3pRkt3dvmQebni4LQXXrlv+c6elyTjMzOWd8fOGfP22aPGq10pOaY/VqYMCA/MPE/f1Ldl3OzsDJk/J49SrQtKmUZ2TIdbVoYag7caK8fuMNQ5mbGxASIr2w589Lj/SxY0D16vJ+rVpyP4goH3PTvDF5x6Ud2BK2BT8PYEwuzrWEa3j/t/ex8Y2NuUNsc4THhaNetXq55QXd12R9MmwsbAAADlYOUA/E9LVn12Lf8H1Ffv40H4nJWp02d54tAKwOWY0BrQbkGybu/1rJYrKzgzNORp+Es4MzriZcRVN7ickZWRkIvxuOFjUNMXni3oloUbMF3mhtiMl3U++iulV13E29i5h7MahpXRMAEJUYhbjUuNykl4ioojLyiZ0VS7bKxJ2M06hh/gJMNQUsimPs/PxknmTOKri7dnHubGG+/BIICgIyM4E2bfIu1MWBVQEAACAASURBVNS9u/TGarUyB/bECSnX6YDISEMi6+MjC0edPSsrSY8ZI0lgx47SoztpUunapJQkrTt2PPp1TZsmQ5Szs+Xzc3rso6KAli0NSXtoKDBjhrR1+3bpmf3hB+l1festef7ii7Iqc8uWwMCBcj/0euD77x+9fUTPEL9NfnC0c8xdBXfXsF2cO1uIf+7+J27fu42BGwYCAL71/RZuDdwAAN1XdIfudR20TbQACr6vC44twOawzdBoNKhlXQv/6vwvAMCxqGNwtHPMTQJLQykF/5P+2DHk0WPytO7TMGrrKGSrbEzynpTbYx+VFIWW81tCTZKYHBobihmBM9CxYUdsv7gdrWq1wg+v/oABPw9AamYqMrIyMLvHbJhoZMDemtNrMLD1wEduFxFRWdE8+O2iMejQoYMKCgoq72YUqMH0LriR/ie01TahdtXaWDe6Y76e1pzXxSlpz2yF6smliu3WLeDQIVkFmYiIytWt5Fs4dP0Q+rVkTCYiephGozmulCpoVG8eZTlnttKrbeEKAIhNiS3nlhAVoE4dJrJERBVEHZs6TGSJiB4Tk9knqH4V2actLjUOCsbV401ERERERGRMmMw+QTZmDWBn1gxZKgvxaUUszkNERERERESPhcnsE1a/ShcAHGpMRERERET0NDGZfcIaWEoyeyflDoxtcS0iIiIiIiJjwWT2Catu1gIWphZIz0rHiegT5d0cIiIiIiKiSonJ7BOm0ZigppXsN7c5bHM5t4aIiIiIiKhyYjL7FDhYOwBgMktERERERPS0MJl9Cqpb2sNUY4qQWyFIzrxR3s0hIiIiIiKqdJjMPgUajQlqWNUAANxIP/hEzz1w4WEMXHj4iZ6TiIiIiIjI2DCZfUpyhho/6WSWiIiIiIiImMw+NQ5WDjDVmCJGfwrp2Ynl3RwiIiIiIqJKhcnsU2JmYgavxl5QyMLN9MDybg4REREREVGlwmT2KXq9xesAgKi0A+XcEiIiIiIiosqFyexT9LcWfwMAROuPICUjpZxbQ0REREREVHkwmX2KGtk1Qg3zlshSadh5aWeBddaN7oh1ozuWccuIiIiIiIiMG5PZp6xBFS0AYOP5jeXbECIiIiIiokqEyexT1tBSCwDYemEr9Fn68m0MERERERFRJcFk9mnLrIvaWaORllIff1z+o7xbQ0REREREVCkwmX1KzkUnotecAzgXnQQrfW/U1X+L6b+fL+9mERERERERVQpMZp+Cvm0boFU9WySmZd4v0QDQ4MrN6shWmUUdSkRERERERCXAZPYpGOzuiHWjO2LOm+1gopEyDRQyVBJi9SHl2zgiIiIiIqJKgMnsU+TauDpa1K2GhtWtYG9zD0qTgsj0gPJuFhERERERkdFjMvuUVbM0RwN7K9S3qwEAiErbD6Wyy7lVRERERERExo3JbBmpZlENVUyrICvDAZfiriEpLeOJnDcpLQNR8ak4fvXuEzkfERERERGRMWAyW4bMspqhrv5bxCVWw7nopMdKaNf8dS13teTIu6kY8GMgpm/naslERERERPRsYDJbRvq2bYAaVc2Rs7IxADSsbv3I59scHIVLMfdyX2crYNvp6MdsJRERERERkXFgMltGBrs7YsEQdwB6KGTCwgwY7d38sc7pVKtq7mrJJhrA1tLs8RtKRERERERkBJj9lKEOTRxgbvsHYlJi0O/FNv/P3n2HR1Xnexx//yaZMJMwkAQCgQRCJ2AhGBSwoaC7yqrYkGJba+yuoFcs6wLq2kVcCyiusgqKYkHRVVYsqAQUpGlQCUgLAQIkYdLLnPvHhEioCZmW5PN6nnly6u/3PZfd+9zPPed8D6lJf6nXeC6HneR4F7tLKmjhCMflsPuoUhERERERkdCmO7MBluTqw277O8zfPA3Lsuo93p5uyQqyIiIiIiLSlCjMBlgr+1E4bW3YtHsTizYvCnY5IiIiIiIiDZLCbIAZY6OD43QA3v757SBXIyIiIiIi0jApzAZBB8cZALyT8Q4eyxPkakRERERERBoehdkgiLX3pmPLjmS5s0jflB7sckRERERERBochdkgMMZwSe9LAD1qLCIiIiIiciQUZn1oVtpAZqUNrNWxlxzlDbPvZLxDpaeyeru7pJysvGKWbsj1S40iIiIiIiKNgcJskPRr34/O0Z3JLsjmu03fAbAqK5+MbDebc4sZPmUhj36yOshVioiIiIiIhCaF2SAxxlTfnZ310yyGpSQQGxVRvd9jwdxV2cEqT0REREREJKQpzAbRiKNGAN5HjS85vj2TR/bFZrz7bAZaOMKDWJ2IiIiIiEjoUpgNopT4FJJbJ5NTlMPn6z4nNSmG5HgXiTFOkuNduBz2YJcoIiIiIiISkhRmg8gYw+ijRwMwc9VMAFwOOwnRTgVZERERERGRQ1CYDbJRx4wC4P1f3qeovCjI1YiIiIiIiDQMCrNB1i22GycknEBBWQFzf5sb7HJEREREREQaBIXZELDnUeMZq2YEuRIREREREZGGIWBh1hiz3hizyhiz3BizpGpbrDHmf8aYNVV/YwJVTygZcfQIbMbGf9f8l1LP7mCXIyIiIiIiEvICfWf2dMuyUizL6le1Pg6Yb1lWd2B+1XqTE988niGdh1DuKWdzyZeHPNZdUk5WXjHukvIAVSciIiIiIhJ6gv2Y8TBgetXydOD8INYSVKOP8T5qvLHkfwfcP3PxRoZOXkBGtpvNucVkZLsVaEVEREREpMkKZJi1gHnGmKXGmOurtrW1LCu7ankr0PZAJxpjrjfGLDHGLMnJyQlErQF3QfIFNAtrRk7ZMooqt++3f87yLDJzCmtsS4yJDFR5IiIiIiIiISWQYfZky7KOA84GbjbGnLr3TsuyLLyBdz+WZb1kWVY/y7L6xcXFBaDUwGvpaMk5Pc4BLDaWfH7AY7rFRWEz3mWH3UbaoK6BK1BERERERCSEBCzMWpaVVfV3O/A+cAKwzRjTDqDq7/63JJuQS4+5FICNxZ8dcL/LYSc53kVijJMZ1w4gNalJ9ssSEREREREJTJg1xkQZY1x7loE/AT8BHwJXVh12JTAnEPWEqqHdhxJhXORVrKGwvPCAx7gcdhKinQqyIiIiIiLSpAXqzmxb4FtjzArge+Bjy7I+BR4FzjTGrAHOqFpvspqFN6OD4wwAthVsC3I1IiIiIiIioSs8EJNYlrUO6HOA7TuBIYGooaFIcp7F2uL32Va4jc4xnYNdjoiIiIiISEgK9qd5ZB+t7EfTPKwDZZVl5BXnBrscERERERGRkKQwG2KMMXRyngXA1kI9aiwiIiIiInIgCrMhKMnhDbM7inawu3R3kKsREREREREJPQF5Z1bqJiq8HS2bbSO/NJ8hLzxGl8hzgl1SDSOmpgMwK21gkCsREREREZGmSndmQ1R883gANhT/N8iViIiIiIiIhB6F2RAVFxWHzdjIKV9GQcWWYJcjIiIiIiISUhRmQ1SYCaN1ZGsANpR8FuRqREREREREQovCbAiLj2oLwIbiT4JciYiIiIiISGhRAyhfq6yEsLDq1fo0SYpxxuB0x1FQmUV+aT4tm7X0RYUiIiIiIiINnu7M+tKMGdCjB6xZ46MBDZ2cQwHIdmcf0QgjpqZXdx8WERERERFpLBRmfWn+fFi3Du65x2dDdnb+BYCcohwqrUqfjSsiIiIiItKQKcz60oMPgtMJ774L333nkyGbhycSF3EcHsvD9sLtPhlTRERERESkoVOY9aWEBLjzTu/y2LFgWT4Zds/d2SN91FhERERERKSxUZj1tbvugrZtYfFieOed/XbPShtY56ZQiY7TCTNhuMvc5Jevq/d4IiIiIiIiDZ3CrK+5XDBxond53DgoLa33kOHGQZuoNgD8Xjy33uOJiIiIiIg0dAqz/nD11dC7N/z+Ozz/vE+GbOdqB8CG4k+ptMp9MmZtqSOyiIiIiIiEGoVZfwgPhyee8C4/+CDs2lXvIV0RLqLsUZRaeWSX+qa5lIiIiIiISEOlMOsvZ58NQ4ZAXh489JBPhoxvHg/A78Uf+WQ8ERERERGRhkph1l+MgSef9P597jlYu7beQ7Zt3hYb4WwtXcym/E0+KFJERERERKRhUpj1p5QUuOIKKC+He+6p93B2m50ExyAsPEz7cZoPChQREREREWmYFGb97aGHwOn0fqYnvf5NlLo4hwEwbdk0KjwV9R5PRERERESkIVKY9bfERBg71rs8dixYVr2GaxORSvOwDmxxb+Hj3z72QYEiIiIiIiINj8JsIPzf/0GbNt47s+++W6+hjDF0ifTenZ26dKovqhMREREREWlwFGYDweWCiRO9y3ffDWVlBz10VtpAZqUNPORwnZ1DiQiL4NPMT1mft96HhYqIiIiIiDQMCrOBcs010KsXrFsHzz9fr6Ga2aK5qNdFWFhqBCUiIiIiIk2SwmyghId7P9UDMGECbN9er+HSUtMAeGXZK5RXlte3OhERERERkQZFYTaQhg71/vLz6/2pnlOTTiW5dTJbC7by0W8f+ahAERERERGRhkFhNtAmTQK7Hf79b/j++yMexhjD9cddD/i+EdSIqemMmFr/zwiJiIiIiIj4i8JsoPXoAWPGeJdvvRU8niMe6sqUK2kW1ox5a+dRUlHsowJFRERERERCn8JsMNx/P7Rv770zO336EQ8T64xl5NEjAchyb/FVdSIiIiIiIiFPYTYYmjeHxx/3Lo8b532H9gjdcsItAGwt2IrHOvK7vCIiIiIiIg2JwmywjB4NJ53k7Wo8YcIRD9OvfT9OSDiBCk8F2wvr1yFZRERERESkoVCYDRZj4F//+uNvRsYRD3XL8d67s1nuLCzL8lWFIiIiIiIiIUthNpj69oW0NKiogNtug1oE0VlpA5mVNrDGtuFHDcdus1NQVsDCTQv9Va2IiIiIiEjIUJgNtocegpgYmD8f3n//iIZwhDto52oHwPM/PO/L6kREREREREKSwmywtWrlDbTg/WRPUdERDdPe1R6A2Rmz2Vqw1VfViYiIiIiIhCSF2VCQlgZ9+sCGDX90Oa7iLiknK68Yd0n5IYdoFtaM1pGtKfeU8/LSl/1ZbXVNSzfk+nUeERERERGRg1GYDQVhYd4mUACPPQbr1wOwKiufjGw3m3OLych2HzbQJlTdnZ2ydArllYc+9kjMXLyRoZMXVNc0fMpCHv1ktc/nERERERERORyF2VBxyikwahSUlMAddzAsJYHYqIgahyTGRB5yiGhHDC3COrHFvYX3Vr/n8xLnLM8iM6ewet1jwdxV2Yc9b8TUdEZMTfd5PSIiIiIi0nQpzIaSJ56A5s3hgw8YvX0Fk0f2xWa8uxx2G2mDuh52iG5RwwGYtGiSX0rsFhdVXZPNQAtHuF/mERERERERORSF2VCSkPBHM6hbbiG1lZ3keBeJMU5mXDuA1KSYww7RyXk2EcbF4qzFpG/y/d1Ql+OPmpLjXbgcdp/PISIiIiIicjgKs6HmllsgNRU2boTx43E57CREO2sVZAHCjYMukecD8MziZ/xS4p6aFGRFRERERCRYFGZDTVgYTJ0KNhs88wydNv5a5yG6RV5EuC2cdzPeJadomzoPi4iIiIhIo6MwG4pSU+HWW6GykutmPI7xVNbp9MiwNpzS+h7iip9m3bZwdR4WEREREZFGR2E2VD34ICQk0G3Das5c8EGdT3dUnIzdSsSqWj9Y52FfdBpWt2IREREREQk0hdlQ5XJVf3t21AcvwpYtdTs9wkVExC4sygCPOg+LiIiIiEijEtAwa4wJM8YsM8bMrVrvbIxZbIzJNMbMMsZEHG6MJuX88/nh2JOJLCmC22+v8+kdY9qwLeI+CiM+VOdhERERERFpVAJ9Z/Z2YO8XNx8DJlmW1Q3IBa4JcD2hzRheHTmGkmZOmD0bPv64Tqe3jmxNuD2PHWHTKLN2H3EZ7pJysvKKcZeUH/EYIiIiIiIivhSwMGuMSQT+AkyrWjfAYGB21SHTgfMDVU9DsTM2nlnnXudduflmKCys9bkGQ/eoSwDYlL+pznPPXLyRoZMXkJHtZnNuMRnZbgVaEREREREJCYG8M/sM8H+Ap2q9FZBnWVZF1fpmIOFAJxpjrjfGLDHGLMnJyfF/pSHm09MvhpQU2LABJkyo07ldnOdiNy7yS/PZXVq3u7NzlmeRmVMzPCfGRNZpDBEREREREX8ISJg1xpwDbLcsa+mRnG9Z1kuWZfWzLKtfXFycj6sLfZ6wcHjpJTAGnn4aVqyo9bl2WxTdIi8AYNPuut+d7RYXhc14lx12G2mDuh72HHU3FhERERERfwvUndmTgPOMMeuBt/A+XjwZiDbG7GmxmwhkBaiehuf44+GWW6CyEtLSvH9rqVvkcAyGHUU7+HXHr3Wa1uWwkxzvIjHGyYxrB5CaFFPXykVERERERHwuIGHWsqx7LMtKtCyrEzAS+MKyrEuBL4GLqw67EpgTiHoarIcegoQEWLwYJk+u9WnOsFbEN48H4Kn0p+o8rcthJyHaqSArIiIiIiIhI9jfmb0bGGOMycT7Du0rQa4ntLVoAVOnepfvuw/WrKn1qR1aJAIwfcV0thZs9Ud1IiIiIiIiARPwMGtZ1leWZZ1TtbzOsqwTLMvqZlnWcMuySgNdT4Pzl7/AFVdASQlcfTV4PIc/B3DaI2kd2ZqyyjKeXfysn4sUERERERHxr2DfmZUjMWkSxMfDt9/Cc8/V+rQOLToA8OKSF3GXuv1VnYiIiIiIiN/VOswaY+47yPZ7fFeO1Eps7B+PG48bB2vX1uq0Fs1acHLHk8kryeOlpS/5sUARERERERH/qsud2bsPsv0uXxQidXTeeTB6NBQXwzXX1Pq0cSeNA+DJ9CcpqSjxV3UiIiIiIiJ+ddgwa4xpb4xpD9iMMe32rFf9BgF6zzVYnn0W2rSBr7+GLVtqdcrQ7kNJiU9ha8FWXl326gGPcZeUk5VXjLuk3JfVioiIiIiI+Ext7sxuBjYBzr2WN1Utf473e7ESDK1awYsvepfXrfU2hToMYwz3nnwvAI999xgeq6J638zFGxk6eQEZ2W425xaTke1WoBURERERkZBUmzDbGegKuIEue/2SAJdlWY/6rzw5rAsvhEsugUoP/PorWNbhT+l1IT1b9WRD/gY2lsyr3j5neRaZOYU1jk2MifR5ySIiIiIiIvV12DBrWdYGy7LWW5YVXbW857fJsiy9dBkKnnsO7HbIy+OMb+Yc9vAwWxj3nOzt27W64D94rMrqfd3iorAZ77LDbiNtUFe/lCwiIiIiIlIf4XU52BgzEOgHuPbeblnWP31ZlNRRXBx07w4ZGVz27nMsP6o/O1q1O+ChI6amA/DGtaMZ//V41uetJ6v0a+BkAFwOO8nxLnaXVDB5ZF9Sk2ICdRUiIiIiIiK1VpdP84wHvgYuB87c63eGXyqTuomLg7jWOEuLuP6Nwz/5bQ+z838n/h8AqwumY+31eLLLYSch2qkgKyIiIiIiIasun+a5ATjFsqwTLMs6fa/fYH8VJ3XUvTu7o1rSZ/UPtepufFXfq3DYWpNXsYaP13wcgAJFRERERER8oy5h1gA/+KsQ8QF7BK+Mrvrs79q1UFx0yMMd4Q56Ro0CYOLXE/1dnYiIiIiIiM/UJcxOA67xVyHiG4tSB/P1gLPB44HVqwmrrDjk8V0jL6CZLYYftvzAruJdAapSRERERESkfuoSZvsDzxljVhlj5u3981dxcmReHTEGHA5wF3Dx3FcOeWy4cZAcdRkA6/PWB6A6ERERERGR+qtLN+Nvqn4S4oqdUZCcDMuXc/6nr7P8qAH82q3PQY/vGnkBWz1v497lZmfxTlo5WwWwWhERERERkbqrdZi1LGuCPwsR33CXlLO7pIIWjkhcHTtiszzc8upEbp34NoSFHfCccOPg7pPu5rGPSlmft55YRyzGGJ/XtHRDrjoki4iIiIiIT9Tl0zwnHuznzwKl9lZl5ZOR7WZzbjEZ2W7c8Yms69iTNjuzITPzkOfe0O8GIsIiKCgrYEvptz6pZ+bijQydvKC6puFTFvLoJ6t9MraIiIiIiDRtdXln9tsD/PTocYgYlpJAbFREjW2JsZE8d9U/KLNHwNatkJNz0POddicdWnQA4OeCV2p8d/ZIzVmeRWZOYfW6x4K5q7LrPa6IiIiIiEitw6xlWba9f0AiMB0Y7rfqpNZG9+/I5JF9sVU9Heyw20gb1JWsdp14/aJbvRt/+42Y3IMH2vau9kSERZBX8RtbSn3z/6PoFhdVXZPNQAtHXV7TFhERERERObC63JmtwbKsLcDtwGO+K0fqIzUphuR4F4kxTmZcO6D6/dR5gy6E2FioqODG/zyE8XgOeL7N2OjYsiMAPxW8jMc68HF14XLYq2tKjnfhctjrPaaIiIiIiMgRh9kqzYA2vihEDmxW2kBmpQ2s9fEuh52EaGfNRkvGQM+eYA+nz+of+PNXsw96frvm7Yi0tSW/Yi1v/fSWT2vyZZAdMTWdEVPTfTaeiIiIiIg0LHVpAHXvPr+Hga+B//mvPPGZiAjo0ROAS997AX76CfB2Gs7KK2bphlzAe3e2d/OrAXjgywcoryw/7ND7jiEiIiIiIuJvdXmB8cx91t3A28Ak35UjftW6NV+cdC6Dv/uImXc9zRt/voKMrd4GTcOnLMRhD+OYhJZ0cp7Nr4UzWJu7lleXvwocc9AhV2XlU1RWWT3G9ad0CcSViIiIiIhIE1eXBlCn7/M7z7KsCZZl7fZngeJbr13yNzbHd2JOTA8yt+RXb/dYEBsVwbCUBGwmnKObXwfAhK8nUGGVHnCsfTsoq1uxiIiIiIgESp3emTVe/Y0xFxtjTjDGGH8VJv5R2szJM9c9CDYb3bZvINzy3lV12G1MHtmX0f29DaASHaeTEp/CFvcW1ha9e8Cx9u2grG7FIiIiIiISKHV5Z7YDsAxYgPfR4m+AZcaYjn6qTXzgQM2aNiV0hW7dcJUV8frbD9A7vKRG92MAY2z8c/A/AVhd8DrlnkIOZO8OyupWLCIiIiIigVKXO7OTgR+AWMuyOgCtgMXAs/4oTPysXTto04aB61fw4mvjSG3j2O+Qs7qdxckdT6bMyufXwjcPOtS+3Yr3NIRylxy+eZSIiIiIiMiRqEuYPRm4zbKsQgDLsgqAO4AT/VGYBECPHmxp04GkrEy44479dhtjeGTIIwD8VvQmWwu2HnbIVVn5ZGS72ZxbTEa2W4FWRERERET8oi5htgRouc+2lkCZ78qRgAoL45nrHqQsPAKmToVZs/Y75OSOJ9O+2SlUWMWM/2r8IYfbtyEUQGJMpC8rFhERERERAeoWZt8H3jfGDDbGdDHGDAZmAwfuDiQNwoYOPfjP8Nu8K9ddB5mZ+x1zrOtGDGFM+3Eaq3NWH3SsfRtCOew20gZ19UfZIiIiIiLSxNUlzI4DVgIfA5lVf1dVbZcG7H+nXgAXXwxuN4wYQXh5zZvt/715FNenXkulVcm4+Yf+5967IdS+TaVERERERER8pS5h9jjgcSASiK/6+wTQ1w91SSAZA9OmQefO8OOPXPbec/sdMv608UTZo/jw1w9ZsGHBIYfb0xBKQVZERERERPylLmF2KmBV2W5ZlrXXdmnoWraEt98Gu52zv5zNCcu+qrE7vnk8d514FwB3zruTP/75G4YRU9MZMTU92GWIiIiIiIiP1CXMdrQsa93eGyzLWgsk+bYkCZp+/eCJJwC4cfpD8MsvNXaPPXEs8c3j+WHLD7z989vBqFBERERERASoW5jNMcZ03HuDMSYJ2OXbkiSobruNhf2GEFlSBBdc4H2PtkrziOZMOG0CAOPmj6OkoiRYVYqIiIiISBNX127Grxtjko0xYcaYZOBV4D3/lCZBYQxTLr+Xje27eO/M/vWvsNcjxVf3vZqj2xzN+rz1TEqfFLw6RURERESkSatLmP0HsBXIwPtt2Z+BHODvfqhLgqi0mZOn0h7xvkf73nvw2GPV+8Jt4Uz6szfEPvzNw2S7s4NVpoiIiIiINGG1DrOWZRValjUCaAsMAOItyxphWVah36oTn3OXlJOVV4y7pPyQx21t2wHeeMO7ct99MG9e9b4zupzBeT3Po7C8kHu/uNef5YqIiIiIiBxQXe7MAmBZVo5lWT9YlpXjj4LEf1Zl5ZOR7WZzbjEZ2e7DBlrOOQf+8Q/weGDUKFi/vnrXk2c+id1m57Xlr7Gr/JeDjyEiIiIiIuIHdQ6z0jANS0kgNiqixrbEmMjDn/jAAzB0KOzaBRdeCMXFAHRv1Z3b+98OwPLdzzS4T/WIiIiIiEjDpjDbRIzu35HJI/tiM951h91G2qCuBzx2VtpAZqUN9K7YbN7Hjbt2hWXL4IYbqhtC3X/q/cRFxrGjfCWbSuYH4jJEREREREQAhdkmJTUphuR4F4kxTmZcO4DUpJjanRgT420EFRkJ//kPvPgiAC0dLXl48MMArHQ/T2GZXp8WEREREZHAUJhtYlwOOwnRztoH2T2OPRamTfMu3347fPcd4P1UT3R4D4o82/jnN//0cbUiIiIiIiIHpjArtTdqFNxxB1RUwEUXwcaNhNnCOK7FWACeWPgEv+38LchFioiIiIhIU6AwK3Xz2GMweDBs2wbnnQcFBbSOOIZOzr9Q7inn1v/e2iCaQY2Yms6IqenBLkNERERERI6QwqzUjd0O77wD3bvDihVw6aUYj4djm99ItCOaeWvnkVX6dbCrFBERERGRRk5hVuouNhbmzoXoaPjwQ0bOmYIjLJaHTn8IgOW7J1PhKQ5ykSIiIiIi0pgFJMwaYxzGmO+NMSuMMT8bYyZUbe9sjFlsjMk0xswyxkQcbiwJET16wOzZEBbG+Z+9waCFH3NDvxvoG9+XIs82VhdOD3aFIiIiIiLSiAXqzmwpMNiyrD5ACnCWMWYA8BgwybKsbkAucE2A6hFfGDIEnnsOgOtnPEbYwnSeH/o8AL8WzmR1zmq/Te0ur0APEAAAIABJREFUKScrr5ilG3L9NoeIiIiIiISugIRZy6ugatVe9bOAwcDsqu3TgfMDUY/40A038MnpwwmvrIALLmBgRTydnefioYIbPr4Bj+Xx6XQzF29k6OQFZGS72ZxbzPApC3n0E/+FZhERERERCU0Be2fWGBNmjFkObAf+B6wF8izLqqg6ZDOQcJBzrzfGLDHGLMnJyQlMwQ3UrLSBzEobGNA5X7/4Vpb37g87dsC559I//K80s0WzYMMCXlv+mk9rmrM8i8ycwup1jwVzV2X7ZGwREREREWk4AhZmLcuqtCwrBUgETgCS63DuS5Zl9bMsq19cXJzfapQj4wkL55nrHoReveDnn/m/fz9JSvNbAbhz3p1sL9zu0/m6xUVhM95lm4EWjnCfji8iIiIiIqEv4N2MLcvKA74EBgLRxpg9SSQRyAp0PeIbxc7m8NFH0KoVfX9O5/65v3JmlzPJLcll7LyxPp3L5bCTHO8iMcZJcrwLl8Pu0/FFRERERCT0BaqbcZwxJrpq2QmcCazGG2ovrjrsSmBOIOoRP+naFd57j4qwcM754m1ezOmPI9zBGyvf4PN1n/t0KpfDTkK0U0FWRERERKSJCtSd2XbAl8aYlcAPwP8sy5oL3A2MMcZkAq2AVwJUj/jLqacy5fJ7AOh658M8EHshADfM9X0zKBERERERaboC8rKhZVkrgb4H2L4O7/uzEiS+aMy07xjfDDibVnk5jPpgCmPHzmbmxM78lLuWmGbr6RLTpd7ziYiIiIiIBPydWWkaPvjz5XDTTUQUl/HKtBxs2Ni0exPuMvdhzx0xNZ0RU9MPul4bR3KOiIiIiIg0HAqz4h/GwLPPwvnnc8KvBYxdGQXALzt+obSiNMjFiYiIiIhIQ6cwK/4TFgYzZ8LAgUz40I2z0lBUXsTD3zwc7MpERERERKSBU5gV/3I64aOPcHbtSc/tFgCPfPsIK7auCGgZ7pJysvKKWbohN6DzioiIiIiIfyjMis/NShtYsylUq1bw3//S0rLTfjdUeCq4as5VlFeW+72WmYs3MnTyAjKy3WzOLWb4lIU8+slqv88rIiIiIiL+pTArgdG5MxxzLF1220jKg2Vbl/HIt4/4fdo5y7PIzCmsXvdYMHdVtt/nFRERERER/1KYlcBp3pyw3kfz6kfe/9g9+NUElm5Z6vdpu8VFYTPeZZuBFo6AfJFKRERERET8SGFWAismhtPHT+e2RVCBhytePZeSihK/Tuly2EmOd5EY4yQ53oXLYffrfCIiIiIi4n8KsxJ4l13GI+dMoucOyKjI5v4XLvb7lC6HnYRop4KsiIiIiEgjoTArQRF589/4T/yNhHng6V0fs2Cm/9+fFRERERGRxkNhVoLmhPte4J7KgVgGrvzhXtzz5ga7JBERERERaSAUZiWo/j7+S/qWt2Z9NNz68gWweHGwSxIRERERkQZAYVaCKiK8GW/c+iUOTxjTj65g1m1D6Lg5s87jjJiazoip6UdcR33PD9SYIiIiIiLipTArQde77dFMGjoZgLTBhVz+6q3Eb9sU5KpERERERCSUKcw2MbPSBjIrbWCwy9hP2gk3Maz7OeQ74JY/5XPPs7fCxo1+m89dUk5WXjFLN+T6bQ4REREREfEfhVkJCcYYpp3/Ku2i4vkmCaYdtR1OO80vgXZVVj4Z2W425xYzfMpCHv1ktc/nEBERERER/1KYlZDROrI10y/4DwDjT4OFFb/DaafRatdWn80xLCWB2KiI6nWPBXNXZftsfBERERERCQyFWQkpZ3Y9k56Ro6m0wahREeza+jv/ePoWnwXa0f07MnlkX2zGu24z0MIR7pOxRUREREQkcBRmJeQc7Uoj1t6bjZFl/PXKlrTZsYUHnr7FZ48cpybFkBzvIjHGSXK8C5fD7pNxRUREREQkcBRmJeSEGTsDWz5ItCOaj+LzuW9oG+J3bIHTT4fSUp/M4XLYSYh2KsiKiIiIiDRQCrMSkqLC2/HqsFcBePSEnbybmgTr1sHy5T4LtCIiIiIi0nApzErIOj/5fG7vfzsWlfz1vGJyB6ZASQksX06rXduCXZ6IiIiIiASRwqyEtMfPfJxYey8KrO1ckdYWXM2hpIQHnr5ZgVZEREREpAlTmJWQFhEWwcCWDxFhXMxd/xkbOseCy0X8ji2Mf/JGKC4OdokiIiIiIhIECrMS8qLC29E/egIGw/rdG9nVowMMGECbXVu979AWFga7RBERERERCTCFWQm6EVPTGTE1vXrdXVJOVl4xSzfkVq97ivtwU58nAVid+xu/z34ZBg+GsjJYvpyu6zNqjLlnDHdJuV9q3HddREREREQCKzzYBYjsMXPxRt5YtJ6MbDcAw6cspGNsJOt3FgGwZXFPnJRR7PmViz++km8/+BzunQ07d/L3Sbfx2M1PMHNxQo0xAHq307dkRUREREQaG92ZlZAxZ3kWmTl/PDLssWBXYVmN9XYtXThdP/Nj9o/cOP8OOOooaNMGZ2kR9/7rDuZ8sarGGACJMZEBuwYREREREQkMhVkJKd3iorAZ77LDbmPc2b1qrP9rVCofXHUnkfZIpq+YzmZ3FvRK5vNThhFRXgY//UQ3e3mNc9IGdQ3OxYiIiIiIiN/oMWMJKS6HneR4F7tLKpg8si+pSTG8sWh9jXWI4bVhr3HJ7EtYm7uWqIgoXh79fxQ5osCycP2awWinxVc9+u91joiIiIiINCa6Myshx+WwkxDtrA6h+64DDD9qOPefcj8AGTkZuCs3M+PCm6FTJwAe+ve9XLdkjoKsiIiIiEgjpTArDdaE0yfQytmKCk8F3+XeTblVBElJ0K0bAFfOfhbuugs8niBXKiIiIiIivqYwKw2WzdjoFdeLSHskuyvXk573ABYWJCTwr6seoMIWBk8+CZdeSnh52eEHFBERERGRBkNhVhq0MBPGMW2OJsK0ZGtZOmt3rQXg2/5n8egtT4HLBW+9xT3PjcFZXBDkakVERERExFcUZqXBc4Q7OSnmEWzYyXJnkeXOAmBV7xNgwQKIj+foX3/ktX+PhaysIFcrIiIiIiK+oDArjUJcRArHt7wHgMxdmWwp+c67IyUF0tOhZ09YtQoGDoSMjCBWKiIiIiIivqAwK42Cu6Sc8NJBtIvqAsCi/H+QV77Gu7NTJ/juOzjxRNi0CU46ieQ1y/c7PyuvmKUbcn1ak6/HFBERERERL4VZafBWZeWTke1mc24xue4oYh0JVFhFfJN7J5vyN3kPatUKPv8czj8f8vK4b/Lf6L/0i/3OHz5lIY9+srpe9cxcvJGhkxfsN+aIqemMmJpe38sVEREREREUZqWBG5aSQGxURI1tA5N60treh2JPDmfNOIvc4qo7o04nzJ4NN91EREUZY16+n2FbV9Y432PB3FXZ9appzvIsMnMKfTqmiIiIiIjUpDArDdro/h2ZPLIvNuNdd9ht3HRad06OeYwW4Z3JyMlg2FvDKKko8R4QFgbPPceMC27CYwyjx9/A5DVzq8+3GWjhCK93Xd3ionw+poiIiIiI/EFhVhq81KQYkuNdJMY4mXHtAFKTYoiwteDUmKdJcCXwzcZvuPz9y6n0VHpPMIYP/3wZT6X9EyIjSX1lEk/Of5GukZAc78LlsNe7JpfDXl2Tr8YUEREREZE/KMxKo+By2EmIdpKaFFO9LTKsLf+99L+0bNaS2Rmz+dunf8OyrOr9S1IGeRtDJSZy4Q8f8+az1+GqLPN5TQqyIiIiIiK+pzArjdoxbY/hg5EfEBEWwXM/PMeEryfUPCAlBb7/njWdetNmZzYsWwa7dgWnWBERERERqTWFWQm4QHf1Pa3Tabx50ZvYjI0JX09g8qLJNQ9o144JY55nYb8hUFkJq1YxffjtjJiyMGA1ioiIiIhI3SjMSpNwYa8LmXbuNAD+9tnfGNr/N2alDazeXx7RjMnXTISkJACunP0s1814DMp899ixiIiIiIj4jsKsNBlX9b2Kp//0NADXfHgNH/zyQc0DjIFOnaBXL8rsEZzx7Ydw+umwZUvgixURERERkUMKSJg1xnQwxnxpjMkwxvxsjLm9anusMeZ/xpg1VX9jDjeWSH3cMfAO/n7q36m0KhkxewSfZn66/0Ft2jB+7AvsiGkDCxdCaio9M1cEvlgRERERETmoQN2ZrQDGWpbVGxgA3GyM6Q2MA+ZbltUdmF+1Lk2Mu6ScrLxi3CXlAZlvwmkTuO2E2yirLOOCWRcwf938/Y5Z26k399zzbxg0CLZu5Zy3/kXkjz+wdP2uGjUv3ZAbkJpFRERERKSm8EBMYllWNpBdtew2xqwGEoBhwGlVh00HvgLuDkRNEnwzF2/kjUXrych2V2/r3c7/32Q1xvDMWc9QWlnK1KVTOe+t8+jvepK4iJQax+1uEcvMR17ljfcX8QvN8RjD1y8upGOrSNbvKgZg+JSFXH9KF8YN7eXXmkVEREREpKaAvzNrjOkE9AUWA22rgi7AVqDtQc653hizxBizJCcnJyB1iv/NWZ5FZk5hjW2JMZEBmdsYwwt/eYGrUq6iqLyIb3LvZEfZqv1rXLmVzIhoPMaAMXiAXVt3At7v1XosmLsqe7/zxCvQnatFREREpOkIaJg1xjQH3gX+ZlnW7r33WZZlsSch7MOyrJcsy+pnWVa/uLi4AFQqgdItLgqb8S477DbSBnUN2Nw2Y+Plc19m9DGjqbCK+CZ3DLtLd+93XLe4KGw2A1g4KssZN/8VHOVlGMvCZqCFIyAPOIiIiIiIyF4CFmaNMXa8QXaGZVnvVW3eZoxpV7W/HbA9UPVIaHA57CTHu0iMcTLj2gGkJgW2B1iYLYzp50+ng2MI5VYhK7etZHdp/kFqjGTGlccxur1hxlv3MXbB6ySbIr8/Fi0iIiIiIvsLVDdjA7wCrLYs6+m9dn0IXFm1fCUwJxD1SGhxOewkRDsDHmT3CLeF07/lP+jgOINKq5KV21aSU7bswDUekwRz57I+ZQC3LHob1/q1sHIlbNsWlNpFRERERJqqQN2ZPQm4HBhsjFle9RsKPAqcaYxZA5xRtS4ScDYTTv+WD9A2qi2VlocFuWPZVrrkwAeHhfH2edfzz1ufBrsdcnMhJQW++CKwRYuIiIiINGGB6mb8LWAOsntIIGqQhmNW2sBDrh/JGLVhM+Ekt+6JMYZt5SV8m3snp7d8j1hn7AGPX3HUACgrhYzVsHUrnHEGPPAAtPsTB/+Pu4iIiIiI+ELAuxmLhDZDz1Y96eIcRiVl/LT9J3KKDtFBO6IZ9OkDf/+7d33CBFixEsrK6jyzrzv/7jueOguLiIiISGOiMCtyAKkt/o8ekaOwsMjIyWBd0dyDH2wMTJwI8+ZB27aQlwdLlnBMxveBK1hEREREpIlRmBU5AGMMfVy30Cm6EwBLdv+T3wpnHfqkM86A5cshOhrKy7n3X3cw6v0XwDrgF6dERERERKQeFGZFDsIYQ1LLJLrFdANguXsy939xP9ahwml8PPQ5Fjp1Agznf/YG/PgjFBXhLiknK6+YpRtyA1K/iIiIiEhjpjArchgJLRI4vsW9GMJ4+JuHue6j6/BYFYc4w0BSEuPHvsC21u2hoIBVm3JZvWU3m3OLGT5lIY9+sjpg9YuIiIiINEYKsyK10DnyHE6KfhRnuJNXlr3Cwrx7qbBKDnnOr92O5e77pjMsuozYonz23M/1WDB3Vbb/ixYRERERacQUZkVqqb3jJOZfMZ9YZyxbSr/l6123UeEpP+Q5xc4oRr/wAJMHxOCoKCOssgKbx0OL0sIAVS0iIiIi0jgpzIrUwcAOA/n2qm+JtLVlZ/lP/Ji9jOKK4sOel/rXC+kTE87oX78mefvvuH75Ga67DgoKfFabPz690xQ/59MUr1lERESkIVKYFamjXnG9GNLqJaLDe1BcUcyy7B/5duO3hz8xLo41Z1+Eq2N7sBmYNg2OPRa+/NL/RYuIiIiINDLhwS5Amh53STm7Sypo4QjH5bD7ZMxZaQN9cv6eO3KHq9EZFsfpsS/wi2ctu4p3MeQ/Q5h+/nRGHj3ykDVZNhskJHg/3/NTH1ixAgYPhptuolmPCyl1RNbrOkREREREmgrdmZWAWpWVT0a2m825xWRku3GXHPqd02CobY12WyRHtzma9q72lFWWMerdUTz49YO1myQqCr7/HiZMgPBweOEFnnzwco76ZYkPr0REREREpPFSmJWAGZaSQGxURI1tiTGhdSeyrjUaDN1ju/P0n57GYHjgqwfIyMnAY3kOP1lEBDzwACxZAn370mZnNg88cxvceCO43fW9FBERERGRRk1hVgJmdP+OTB7ZF5vxrjvsNtIGdQ1uUfs40hrvGHgHH436CFeEi5yiHJZtXcbm3ZtrN2mfPrB4MbPOu46KsHCYMgWOPho+/7weVyIiIiIi0rgpzEpApSbFkBzvIjHGyYxrB5CaFBPskvZzpDX+pcdfWHTtIhzhDgrKCjj+5eNZuGlh7Sa123lv6FWMu/dVOO442LgRzjzT2/E4NxcIjS67h6shFGqU2tG/lYiIiDR0CrMScC6HnYRoZ0gG2T2OtMbecb1JbXcc0Y5othZsZdBrg3h28bNYllWr8zcldIVFi+Dhh72PIU+bBsnJ8OabUMsxQom7pJysvGKWbsgNdikiIiIi0sgozIr4WLjNzrFtj2XMgDFUeCq4/dPbGfXuKMo9RbUbwG6He++F5cvhlFNg+3YYPZp7/3UHbXNq+ehykM1cvJGhkxdUN9IaPmUhj36yOthliYiIiEgjojAr4gcGw1N/foq3L36b5hHNmfXzLObvvJbdFetrP0ivXvDVV967szEx9Mn4nicnXgaPPAJlZf4q3SfmLM8iM6ewet1jwdxV2UGsSEREREQaG4VZET8aftRwfrjuB3rH9WZ35Xo+33kNOYU5tR/AZoNrroFffmFB/z8TUV7mvWt73HHw3Xf+K9wHusVFVTfSshlo4dBnrUVERETEdxRmRfwsuXUyi69dTEfHmVRYxWTsyCBzVyZllXW4u9qmDc9f9Q8eun0ydOsGP/8MJ58MaWmwc6f/iq8Hl8Ne3UgrOd6Fy2EPdkkiIiIi0ogozErQzUobyKy0gcEu45D2rbGuNTePaE7/luPp6xqDwZDlzuK0106r/ed7qqzqdTysXAn33+99t/all6BHD3jxRYynsk5jBcKeRlr1CbL7dt1tiF14G2LNIiIiIqFOYVYkQIwxdI+6mJT4FJqFRZC+OZ0+U/rw/ur3gTp0/nU64cEHYcUKOOMM2LULbrqJRx65mp6ZK6oP23c8dRYWERERkcZEL7GJBFiLZi1Ibd+PXq4/89naz7hi5lQ62YtwF0UDMHzKQq4/pQvjhvY69EC9esG8efDeezBmDJ03rmHikzcyc3c2b3QfRMaO4urxOsZGsn5nUfV6cryLywZ0YnT/jn69VhERERERf9GdWZEgsNvsfHLpJ0w+azKuytPJL3Ji4f2ObJ06/xoDF10Eq1cz+y9XUxYewRy3k8yt+dXfpfVYsKvwj/dzPRZk5hQyZ3mWz69LRERERCRQFGZFgsRmbNzW/zaOa59KuH0HFmVYVABW3Tv/RkbyzrnXMmb8TGjdmm47NuGoKMPmqcRhsxh3VnJ1Z2GH3Ua3uCifX4+IiIiISCDpMWORIIuyR5GacBTLd73J9qLtRFaezNo8OxvykkiKTqrTWDmt20Pr9rhyc5k843Eym7dhwMZVpKbH88WAq/klJoHJI/vy+Ke/+OlqREREREQCQ3dmRXygvt1qbcbGca0uJaXNidjDK8gvzafPlD7MWDkDq+px4cPZ0+DJXVIOMTFMv2EikR0TSC3ZDl99xbRHr+Cf7z9Oqq2g1nU1hqZRdf23aQzXLCIiItIUKMyKhJD4Zv3p174frSNbk1+az2XvX8Z5b51H1u6Dv986c/FGhk5eQEa2m825xWRku3GXlFMZbufTwZfA2rVw112Uh9s5dfFn3k/5/P47VB78Uz77jjl8ykIe/WS1Py45ZDTFaxYRERFpyBRmRUKM3WbnqLijeOW8V2jZrCVzf5tL7xd6s7ZozgHv0s5ZnkVmTmGNbYkxkX+sREfD449zx/g3+a7fGVBSAhs3wuLF8OKLUF5+2DHr1JSqgWqK1ywiIiLSkCnMigTIrLSBzEobWOvjr+57NT/f9DPn9TyP3aW7Wbr7Mb7OvZW1u9bud2y3uKgaDZ7SBnXd75ic1u159tqJsGgRtGzhDbE33QRHHQVvvQUez0HHtBnq3pSqAWqK1ywiIiLSUCnMioSwhBYJfDDiA9666C2a2aLZXvYjx7x4DE+nP02l54/HhF0OO8nxLhJjnMy4dgCpSTEHH7R/f0jp6w2x3bvDmjUwahT07Qtz51Z/0mfvMZPjXbgcdn9fbtA1xWsWERERaagUZkVCnDGGEUeP4KzWM+no+BPFFcWMnTeWE/99Ij9t/6n6OJfDTkK089BBdm+tW0NGBkybBomJsHIlnHsunHQS5OXVGLMphbqmeM0iIiIiDZHCrEgDUVYWRQfu5tkhc0lskcj3Wd/Td2pf1uWuo9I6eDOnQwoPh2uu8d6dnTTJG3DT02HFCli5ki4bajZAOlyn3xodlSWkqWuziIiINHQKsyIhbt8uu5M+hmu7fURX5wVUeCrZtHsT32d9z8biebX+jM9+HA74299g3TqYOBHCwiA3l0ceuYY7X7wbCgpYlZV/0E6/B+uoXFf1/cRRqMwR6BrqMp66NosERyj87x4RkcZGYVYCrq6NkIIhlGo8UJfd/2XsIrXlXZzR6mVcES7KKstYlD+er3JvrfHocZ25XPD3v8OA/tChA2X2CI5f8Q3DXn+K2IJcwKquYe9Ov4ftqCwhQ12bRUREpLFQmBVpAA7WZTfW3pvj2h1Hz1Y9aWaiySn7kZQpKYz5bAxlnoIjnzDcDl26cMtD7zL3jJGM/m0Bk2dNxFFehs1TiY39O/3WpqOyhAZ1bRYREZHGQGFWpAE4XJfd+ObxnBX3Ft0iL8LCYtKiSXy6YyTri/+Lx/IcZNTDy2/Zitcvvg3Wryf10nN59d0JjP3mDZK3rsW1ZjUsXHjAGg/bUVmCSl2bRUREpDFQmBVpIA7XZbeZrQXHtRjLkuuWcGKHEynx7OL7/AfpP60/X63/qn6Tt2kDjz/OK7c8QkJLB67KUtiV6+18PGQI5ObWqNGXQXbfRkUNsXFRKNasrs0iIiLS0OnZMpFGpm+7vnx71bcMmPwPVrlfZMmWJZw+/XTaNTuRY5vfCBz5u8BuVwxvXnAjVJTDps3ed2y/+ALangnNmzPAymPxcaf55DpmLt7IG4vWk5HtBmD4lIV0jI1k/c6i6vXrT+nCuKG9fDKfPxzoGq4/pUuQqxIRERFpHBRmRYLEn10tjTF0cp5NYrPTOO6odB777jGySxeytXQR1374FWWVlxER1qy6hjo3uwq3Q+fOXD3+Hc5c8D7Y7VBQwB1v/p3suESw3Q9XXlk97p559p3vUPMfqFHRrsKyGutzV2X7Pcwe8f+MOHizpYRop8/q85f6XLeIiIhIIOgxY5FGLNzm5L5T7yPztky6RV4MGF5Z9gqLs77n97zfKfcUHnaMQymMasEHZ18JAwZA9+5sbd2edjmb4YYboFMnePRRyM8/4vH3bSo17uxeDa5xkZotiYiIiPiHwqxIE9Amqg3HtRjDWa1ncnHvi/FYHjbmb+STnOH8WvgmReVF9ZvAZoP27bljwls8c+1E6NsXtm2De+6BDh1gbSaUFNd52H2bSo3u37HBNS5SsyURERER/1CYFWlCXOEdeGf4O/SN70uLZi0otfJY4f4XXSZ3YVL6JIrL6x449+YJCye93xmwdCl89hkMHgxuN2zOgsXfM/bFcfRaswwsq/Y179NUqiE2LmqINYuIiIiEOoVZER8IxW61h9KiWQv6xvfl5OgniAlPZlvhNsbMG0OXZ7vwzKJn6vU5HwCMgT/9CebPh2XLID4ejOGEFQsY/9TNkJoKr79OWEW5by7oEBrav42IiIiI1I5e3hKpp1VZ+RSVVQLebrUOexjHJLSs8zj7NkWqr30b9xyokU97x0m0a3YiVwzexfivxrM0eyl3fHYHHSqeomOLjrR1tSbcNKtfISkpsLgYOndmdv7VnLngPVouWwZXXMHzLVoxb9CFcH4XaNu2fvPsQ52ERURERBo33ZkVqYdhKQnERkVUr3ssiI2KYFhKQhCrqhtjDOf0OIcfrvuBD0d+yHHtjqOssozM3Myqd2rfoqCsoP4TRUTwzrnXcvM/34dXXoFjjiFm905GfPSy973aUaPombmiTo8gH8rBOgmLiIiISOOgO7Mi9TC6f0d6xrsYPmUhHsvbcXfyyL7V73c2JMYY3viqNV2tfxHTZhfr89azzbODFe5n6TjpdW46/iZKKgfiCIut1zzl9mZw9dVw1VU8OOY5zvryHY5f9R289RYTeYsNCV2BO8FzNISF1WuubnFR/LLVjccKbCdhf352SURERES8AnJn1hjzb2PMdmPMT3ttizXG/M8Ys6bqb8P7v/5FgNSkmBoddxtikN2bMYZWzlaktkvl5OjHaW3vQ25JLg9/8zBzcy5kSf7jFFfUr1FU1UT8lNyPJ298DH7/He67jzxXDElZa+HGGyE9HTLXkLhl3RFPoU7CIiIiIo1XoB4zfg04a59t44D5lmV1B+ZXrYs0SPt23A2EPY2N3CX+a6LU3nEyg1u9yHdXf8f5yefjoZx1xR/wfdb3/JzzMzvLMnwzUceO8NBDXD7+XS69ZSpLzx4BlZWQtYWnJl7G+CdvhOnTobDu38Xdt5NwKDSE8nUNoXBNInJo+u+piIjvBeSZO8uyFhhjOu2zeRhwWtXydOAr4O5A1CPS0O3ddAqgdzsXn9x+qs/n2btp1Psj3ufs59/k18I3KS417Cjawc+V99Da3odjnBNpHdkagzmieaqbNW0vgqgE0vtcjsMGx5QGWWCJAAAgAElEQVTupLhZJL0yV8Bf/wq33cY1KUP44qRz+T0puc7z7Nus6/pTujBuaK8DXrO/HhX+//buPD6K+n78+OszeySbO4EQAjGcAqKAGOSoNx4o1iIqgnhWrbbVX2tb20pt+21tPepZe4lHtWoF6aHggfeFFkFOjSDKGSQJCeQ+95rP74/ZhOyym4sku0neTx7zWGbnM5/5HLOb+ezMvKc9ZWivSEGuOpufEKLryedUCCG6TzQDQGVprZuisewHIoYyVUrdoJRar5Raf+DAgZ4pnRAxKjToFEBOekKPbDvFPpwTUxcxPWc6uSm5OFQSB72fsvXAVtbsW8OW2qdo9Jd3ON9wwZoyUlzMmXc63/3DChZfuQimT4fqas5Z9SL33H2t9SzboiKoaN9ZjnDBuno6IFRXl0GCXAkR++RzKoQQ3ScmohlrrTUQMYSp1voxrfUUrfWUzMzMHiyZELFn4bRcHl4wGSNwEjTeYXDjaaN6tAxOm5MR6SP4ZuaLnJDyExIcCXj8HrbUPs4rBy7kiheuYM2+NegORCYenZkYVKeHF0xm4bRcGuMTee+kC6x7aPPzeXXmfGoSU6C2FrZvhyFDYOFCeOMN69LkCELbrScDQnVnGVq2WzTqJIRom3xOhRCie0Tz27REKZWttS5WSmUDpVEsixC9SlPQqepGX1SjJzuMREYnXAwJUNlYwZaGUylyf8Rz+c/xXP5zTBkyhZtOvAlTj8ZQrUcmbgrW1GqdjjuOZy79IUvmfg8qq6C4GBobYelSa8rO5qXjzmDV9PNg6OED/JbtlhJv71RAqKbLj1tegh3uvUi6ogwttWy3I8mvrTp0pI5dJXSb0ShDV+uLdYpFsdauXfU5FUIIESyag9mXgKuBewKvK6JYFiFiXuhBWXK8g+R4R48OZFu7nzQtPp19P/yAgsoCFq9fzOMbH2d90Xq+veLbDPHcy6DEQQxM8ZNuj3yva3vr5HM4ITPTmnbvhmefhWeegR07+FbxEr711hLmf+fPkJVFakoCVSmHHifUtI1o6uoydCa/7r43WAgRLBa+e4QQoq/pqUfzLAU+BsYqpfYppa7DGsSerZTaDpwVmBei3+iJaMTtLUNno2uGq8OwtGHcfdbdfP2jr3lqzlPMyJmBX/spri1mVel9fFD0LLetfJTyhvKuaYPhw+FXv4KvvoLVq3nz1LnUJiRblyHv3Mkjt83h53/5Cfzzn1BT0+k69rcIpP213kIIIYToPXoqmvFlERad2RPbFyLWhItGHM0yNEXX7Oz6cHgdXA4X1xx/Ddccfw0X/OUdthbXEue5F1AsXaX556p/Y2NIIAKyYnz2ET4HVimYMYO/L/wpz8z7AVRWQ0kJGjjh84/hyo/B5eKWY2bwvxPPZt2kU8Bo/fe8I22j3ihS5FUhhBBCiFgTEwGghOhPohmNOFIZOhpds6N1uOzEo8lOSUZhoJr/pUJgIKvRVPp2Uend3qGgUZF4HXHWJcjHHcd3//ASf1/wEzj5ZGhoYMbGd7n10UWwejV8+SW8+Sb4fG3Wsb9EIJXIq0IIIYToLWQwK0QPi4VoxEcaVbejdTg8vY2fnzsWhR+NH42HDVV/4M2yq3mz7Eru+ege9lbt7Wz1gtQkp/Pm6RfDhx9CQQH/vOgmdh81xop8vH8/zJplRUT+6ivrMT9eb9gy96cIpBJ5VQghhBC9gRyhCBEFsRCN+Eij6na0DuHSr/y0huoGL9ef6WBd6Uye2FBMlW8Xi95ZxKJ3FnHqsFO5fMrlXHTMRc35HFHgotxcXj7ncl4+53JoqIeSUhgzxhrIFhdb0+Ar4cIL4ZJLyDvzzC6JQBorEVXbSyKvCiGEEKI3kMGsEFHSVuTenogyGxpds6bR26EBTEcjKoemb5q/5sQZXMOplHw9nxL3Jwwdup4VX65gVcEqVhWs4vuvfp8zRpzBJcdcwtxj5jIocVDnKtySK8EKHrVtG+Tnw9ItcOAAlJfDk09aU2oqt42bwdrJp7N+4sntzrqj7djW41q64jEjHd2fujryam94tE9nyhhrj4ARQggh+hMZzAohgNgISmVTDobEn8Tzl9xKjbuGF7e9yJL8Jbyz+x3e3vU2b+96m++v/D6nDjsVX83NDEwYeOQbVQomToSP66zB7Y+3wH/+A//9L3z2GaeufZ1T177O/Mv/AOnpnFG1m40TTgqbVWjwJIhOOwohhBBC9Adyz6wQIiaCUoVKjkvmqklX8foVr1NyawlPzXmK848+H5uy8f6e99levp2P933MKU+dwoMfP8j2su1ds+Hx4+HXv4ZPP4Uvv2Tphd9l57BxYJpQVsZ3n72bxT+/AGbMgLvugs8/h0DQqtDgSRD9dhRCCCGE6KvkzKwQgoXTchk7OJl5i1dj6ugEpWpNhiuj+TE/VY1VvPzVy9y9ooGKhnI+2vsRH+39iJ+8+RPGDhgLjVMYEncSA52TAo/9OQJjxrD83KtYfu5V4PFAWRkbJnyDCV+sx7lmDaxZA7ffzp8GDmHDxJN5+pxrGD0wkW0lNTHZjkIIIYQQfYkMZoXoAn3hfrlYCErVHqnxqVwx8Qpe/vhj/NrPJScv5eWvXmbl9pV8WfYl8CVf1j3HUO99DHAN4PYLE5k1ataRb9jphOxs7r3pfuLcDTyTWw0vvQSvvELWgSJmv/svns6aTLLdxq+K8nln3Df40fXnxGw7CiGEEEL0djKYFUI062hAp2izKRsLjlvAguMW4PV7+d/X/+PGfz9Kkft/+Nw+SupKmP+fRdiUjRlHzWDWqFmUe7NJt49Dqc7fZeGOc8GFM62ox34/v1r0d/I++xASEqC+nm+/8yzffudZ+CsweTKce671CKAZM6xBsRBCCCGEOGIymBVC9AkOm4PTh5/OKKdBpvkd4gb4aTArGDPwFFZ/vbr5cmSAOJXGGNsDZMRnUFxTTHZydru30xSpeENBhTXot9nYMHQc7w0YbUUv1j6e9v6ASVvXcvyuT2HTJmu6+25ISoIzz+TshKP5dPw0SjOHdqqu3RHpuq0IzIfVuweEbjN0vrsjCXdH/m3VKRq6up6xEOG5p/eVvkraTQgR62QwK4ToE8JHEh7Mym+voqqxind3v8sbO9/gn5tfos5fTGldKaV1pQx5cC4TBk3AUflT0l3pVDZWkhafFnYbLSM+z1u8mnGDrUjFodGLV561gJVnLWDZVcfDqlXwxhvw+uvwxRewYgXXB9LOv/aPkJHBCfUlbBkzuXsaph3CRbJuOaANrfcNp4zkttnHdFt5Qvty3uLV5GYksKesPqgMvUl769Sd7dofhGvn3ravCCGEaD8ZzArRS/XFX8qPpE6tRRJOjU9l7jFzmXvMXB45/xG2l2/n2qc+o7yhnBpbAvml+WS5CymsKWTAvXOYPHgyM0fM5IzhZ+A1nTiMBOYcP5TCygbqPQ0AmBqqG32HlSMnPYGqBq8143JZlxfPmgUPPgh798Kbb1oD27ffhoYGKCzk50sX4TNs8K9pMHMmx9YO4quRE9pd99DnqHZEaL1C6xCu3q/kF3froCu0L00N5XWeoPlX8osZmubqtjJ0tfbWSQazRyZcO8fKvnIkn1MhhBDhyaN5hBB9xujMRIxAAONIkYSVUowZMIahyUOZMGgC5T8r5/2r32dY6jBS41KxKRsbijdw3+r7mL1kNstLZ/FO2Q18Wv1XLv1GHapF/g8vmMzDCya3uc1mublw/fXWc2wPHrTupx02jO3Dx2NoDatXw+9/z6//+AOe/PEsOOMMuOMOxm3fjM3n7eLWsiyclttqHUKXGwpS4rv/d9DQvrztvGN6vAxdrS/WKRa1bGdpVyGE6NvkG14I0Wckxzs6HJE5zh7HacNPY3iadbZk47crWP31at7d/S7v7XmPTwrXU+b9nHtXfw7ci9MxjjROZdq4DL6oKuOU3FMYm5VMjbuDUaDtdkhJgZQUfnnbE7gaavnHqEZ47z12/+cVRny9Hd5/H95/n98Cjc54WHEKnHEGo6sy2ZU7FtPWNV/hbUWybrk80j21XS1cX/5zzZ4eLUNX64t1ikUt21naVQgh+jYZzAoRo9oKyCPCO9KIzInORM4edTZnjzobgIseeZuD3s845dgyPvr6Iz4qWEMp2/jXdvjXdmsdlzGIAY5jeXffedQxDa/pxWEktHubNY1eCt02Nkw8mbwLLuCmYRfirq7l3lw3eevf5bUPtrArcSDTt+ST99YvuBNoiEvgmusehNRUeLcBpk1rcxut7U9ttVvT8s7qTKCj0DJ1tAwdDbbUmTJ2dJ0jrZNoH2lXIYToH2QwK0QMCheQR0SHw0gkO24Gd55p3e92yeIPqPB+yawTKpsjJFc0lrLPXcrP3n4PAIVBin0E33npDKYOncq0nGmMzxyP3Tj8Kzc0uFJQUKBtTnJzL2LP7HMBMNDc0LiDq5Y+yJDSr6GiwprOvAxsNrjuYWtw+98iOOkklhR4WLG5kJpG72FBqnpKpIA8sRBAqqkMnQkaFI16CSGEECKYDGaFiJJIwY4iBeTpyTJ01/qh6WMhiFVbwVhCy2hTTgY6J/Czk2bws5N+hqlNZv/teco9W8k7uoxPij5hU/GnVPl28sSmnTyx6QkAEhwJTBkyhalDpjJ16FSmDJnCt44fclhwpdCgQEHzKF7JnsimO5aRVnUQPBqqq2DKFOvxPzU11nTfIgBWXPsQWwcMI9VpADbAupGwPftTW30T+siOSPNA2IA83THoa22b4YItbfq6stUythY0KFKgodB6RSPYT1uPU+no41ba29ex8HkWvU9X70+yPwrRv0gAKCFiTFsBeURsMZRBqn0EIxLO55FvPsKGGzYwN+ttZmY8yoPnPMiC4xYwMn0k9d56VhWs4v6P7+fS/1zKyD+N5Kb3JuFLeRzwARqnXfHTWUe3K0hQZepAyMyEUaNh3TqorIRJE2H4cD4bdyKNcS5oaGT8vi95+KnbiPd6sJl+4k0vN375DrzyCpSW9kgbRSMgT0eDLXWmjBJoSAghhIgu+csrRAxqKyCPiG12FcdA5wR+NOPQmYEDdQdYV7SOtfvW8knRJ2ws3khpXSlrS5/H6dxMvDmBRiOf697eSYrrNJLM6Xxr6lCGZiUwOstGvdvZ+v3TSUmQlg5p6dx5y8MYfp/16J+qavJ8E3jklXvZmpHL9L355BVtO7Te8OEwbRrn+wexY/ix0HC89UihLhSNgDwdDbbUmTJKoCEhhBAiumQwK0SMOtJARiK2ZCZmMvvo2cw+enbze/tr97OpeBM/f+klKn3bGZxosr3MRxlvU6be5r51cN86K22CkcUwzx0kNiSi4r4g1TGCVPtYbMoWdnumzQ5JydZ0x79Y/OjHZFSUctPRPli7Fj75BNavhz17YM8ermpa8Y83w8SJMHUqnHginHACHHvsEdc/GgF5OhpsqTNllEBDQgghRPTIYFYIIaJkcNJgzjv6PP6RlAZY93jVemqZ8+gSKn3bmTK6mk37N7Gx6FPqzRLK3eWUN5RTYf8v8eYEEvx1xNn9nL/k9xybeSz7a2eQ6Ewk3m4LG025PH0QXDwDLr7YesPng61bYe1a3nn6ZUbv2cqw4t2wcaM1LV5spXM6uSt7JLtzx/L4zKsgKQlHvBOvI66nmiqszkQfjqX8Y0VX1zMW2y0Wy9QbSLsJIWKdDGaFEM0kYEbXOJJ2THImMdA5gYHOCTx6gZXPvMUfUusvxONJpOCgSZznXpqCObl9u1i5fSUrt68ky303ACVxi0gwBpOrf0OCI4E/r13PfrePJFsuftOPzQiczbXbrbOwEyfymHmcVfbLJ8CGDdbZ240brf/v2MGogm2MKtjG4znTAfjHsl9SmD0C1p4CJ5zAmL1OCnJGd7reHRUaBbqt6MNdkX9fi1Tc1RGZYzXCc3/oy64Wq30phBChZDArhBAxzlB2UuzDmDNlKH97fwf7Kg5Fuj591EQu+cZ/2HJgC//+MJN6bz0GdurN/VS4K6horOAHry9qTp9wl5PRGaMZM2AMYzLGWK8DxtDorybOSLfuvT3tNGtqUlXFb+54jhF7v4SsLKipwdCaYYU74Kkd8NRT/A4wlYI/j4KJE7nEk07B0NGsO2YqxHftPbihEb/bE324K/Lvawfy7Y3IHK38ukJ/6cuuFot9KYQQ4chgVgjRq0Xj0SfRsnBaLmMHJzNv8WpMbUXpvfXsSeQNS+diLmbLNqstTtDvUuvfh9ebTIO3gTnjbuDFz9dT69tLg/8gWw9sZeuBrYflb1cuJj4ympHpIxmZPpIRaSOa/59/9Hi+GDO5Oe01E98it3AHvz/KAxs3UvDmhwzdvwdjxw7YsYN5gXTzL7sbbAa/+98z7M0ZzeNnXAmJiXz7oTepT0ju1Fns0Hbo6kjCreXf3ftbVz9Wp611Rmcmsm1/TVA9j+TRJuHy62iZ2rM8UvpQ3b2vhCtDuMdTdUf+nUnTkXZtb1/Guq7+zESrTL1RT9ezK7YX7b7vL/tGV+qd30xCCNFPtSfStXUmd7j1De+CRy94lMoi6w/kE9ccx47yHXxV9pU1lVuvm4q+wKtryC/NJ780P+y2XcZAcszf4rK78MV9xLbB2cw8fyZHXTaLRVOvwuk3WHJqOnz2GSueeY3cwp3gdILHw5jdWxize0vzZcpPLV3EwfQsWD4Zxo8/NB3TvjM/LduhOyIJd3f+saKrIzLHYoTn/tKXXS0W+1IIIULJYFYI0ad09NfMpgAn7T1YC5d/T/+C2lak69bqlByXzOTsyUzOnnzYehUNFeyq2MXuyt3sqtgVNBVUFdBgHqTaXU21u5oK92rizQmc99R/8di24fSPI0mfyKT3qhmVZfDZadnY/ZeS4RxFqsPGrdm/Y/zXpTB4MNTV4XbEMbCiBF5/3ZpauvoBSExkmX2rNcD90Afjxx/WzqGRhDval22l74pIxaHbCK1Dd5zFaytoT2iZ2qpnaH6R5tubX09oa18R7dMT7dbW/nWk+Qkh+jYZzAoh+q2WgWEAxmcnR7E0XeNI6pTuSifPlUfekLzDlvlMH4XVhdzw9FZ2lfqI99yHBhQabAfQ/kxAUVmkWVNUhIMheFEU1sFutZPXU36FOtZGru8+4lLjGXPHqWS6XVw9dBDZJXVk7yljyBf7yN68Ezwea1r6p+BCDBoE48bBmDFw9NFM2W1SPCiXwuxh5BfVHFbv1g7Cw7VTVx60hwbQadpGd1mydi8rNhdS0+g9LGhPW2WKVO9wQYByMxLYU1Yfdr6t/IRoqT37V0eCTkUKWiWE6NtkMCuE6JdCA8MA5KQf/jib3qQ762Q37AxLG8bV01VzECornrIixTGUar8vkFKR4hxCo0dhRVzWJLvcVKg03GYljX43jX43JbzFXmBDYVNBA9PZMNRjw6nsnH3HaLKrTIaU1JNdUM6QslKy95SSnb+K7Fr4qddadcnx51F40nzqEweAsraZ463FWdvIwYxB7W6nqgZvl7QVHB5Ap2kb3WXF5kK2FleT6jo0kAwNjBWpTJHqHS4IUHmdJ+J8W/kJ0VJ79q+OBJ2KFLSqqwLDCSFikxHtAgghRDQsnJbLwwsmY1gjMuIdBjeeNiq6hTpCPVGncNu47bxjguZ/ff4kDKUC8zaWXn09cwat5KKs95g6dCqTsiZxYsrtHJv0Hb435XvMGTuHqUOnkpOSg92w49N+6k03b5s7eDZ5F38YvZ9bzvRw6aVwyrUw+oeQeDsk/8LG6B/aWTz5NZKq78HQHpT2Yfd7GLP8J1z6+MX84rczKZ88Dj33Qha+8FdmfvQSC+t28PCpWd3e96MzE3t0/xqfnRLUN+GC9nS0TKHpQ/s6dL63f4ZEz2pt/+pM0KmW+fXmoFVCiPaTT7kQot9qTzCl3qYn6hRuG/9cs6fVeQC7isNuB5fdRRrnA/C384PvbTS1ySWLP8Ljc3Pzea9RVFNEcU2x9VpbTHFtcfN7tU4vtU7YmQ6wDaf/duLNCTQa+fz07G2BHL3Al9j9XzKoDgbVwQtP3cOgOjiZcVQlTWGS/QB7HniQoytcuJNyKfywnAFjjgetA2d6O6dlAJ2e2r/aCnbU0TKFS9+evhaiPVrbvzoTdEqCVgnR/8hgVogYJWHZe0ZbwZR6QqSgQJHm2xKuTl29P4Vuo6359gQ6alrmMBw4nA7OHR25zFpr5i5+nUazgtvOH0JpXSn3vLEWt1nBKeNOo7TuGErrSimt2U9pbQlV1FKUAkUpLXPZBmzjpabZAdbL/e/+Fd6FBA+keezE2+7Coexces9NFFTGQ/wg7K7LcNjjuPUCOxmuDO5Z0YDd5sBv+rEZtojt1FGdeUxDW0F7OlqmjvZ1TzjSx1f0hkd4RENPPOosdBuR9qfOamv97uj7WNgfj1RnH4d1JG3QVh498Rib7t5GV+QfC+0Uy2QwK4To1ToawVbEhiONOKqUIs5II85I4/Th1h/o/350FACLv3n4H2y3z82B+gPWADcw/fHNjzHq93F8poeyqv2U1ZdR5qumnAbKHD7qnVDv9JHl9gN+/u3ehNM5jnhfDgmVJWhVzwVLFwGQ5b4bAPvvTiPVnkRqw2+x2xzUxD2Jw0ji6uUjSYtLIy3emlLjU5v/nxafRqOvEbthp97to8at24xE3JF26+ooz12hvRGX21vPWPgeaCvKc1fn35k0/THS75F8ZrqrnfpLP/R0Pbtie9Hu+/6yb3QlGcwKIXqtvhiNuD9o2W8djVjaWXH2OHJScshJyWl+79U1R0MKPBHm12ptmlz94HKSyrdTED+cXfVORtT+nWLDitoMkOjexQl7ocwFpWngtYHSUOWrJd704DY9HDA2A/DMpx+1Wr4s9904zVEo4gHFRY98hDN5FZXqLRxGIjMfmcmBA+OoqU8F4JJH/sf0sbVceKIiOS6ZKreBXdnYVbGLRrMCh0rApuI6HLW5O6M8txZxuan/I0WkjbR/9HTU6PaUIVKU567MP7RN2krT0XbtK8J917Smu9upv0Rc7un9rSu2191901b+/fUz2hVkMCuE6JX6YjTi/iC03zoasbSnKMPAnZyNOzmby48fyorNhRRWpkLFof3tpOPyeGzyeti7l/mb/NDYyJItF1NdtJtrxjnw+b389AOojA8/VcVBpUtRmWynwvU//CoThQtlPfCI+tpxHIy/HwDz6wtwmi6sGNEKE82qr+p4fu/1wKEzw6P+dE5z+VL9s0n2XYJBJioQWXpv7WaqGpZjNxK45fXRJDuT2VZbjt1w8Y2jphB3IJH65kjUkJrop8ZThl25aPQ1EmeL63SbthZxuan/I0WkjbR/9HTU6PaUIVKU567MP7RN2krT0XbtCyJ917QW3bi726m/RFzu6f2tK7bX3X3TVv798TPaVWQwK4TolRZOy2Xs4GTmLV6NqftXJNXefN9LaL8dScTR7m6HlvkvnJbLhoKK4P3t7PEwLB3y8qDUuifJdu9/SAfiH/0YtMkLo//FwPISfj0pGfbuhYICKCyEnYXWa3k5VpCqV9gwZAeXL7gTr82GicHYijqWvmUNfB86zaAuvpiyuCH4lQ2lFOlKc1LiVKodJrvKkvBjMjx1OEXV5fh0PVW2lTSwiyzPnYANjZ/t7kfw2KzgWA+vDa7vxi3g9I8jiztRgfQv7L21Ob3rTjCUgUE8duVi9J/SSHQmUlhuYlcu5jyfTaIjkZTsRBKdiaz+dCo2ZePhNZ+Q6EyktC6TrDQb86YZ3POSidYKpRQup+ZA3QFcDhegGZ2ZyLb9Ne3eP1qmj/Q90J57to9EaBluO+8Yfrk8v8u+m9rTJm2l6Wi7Qve3W3fq7HdNZ9qpI7o7/1jR0/Xsiu1Fu+/7y77R1aSVhBC9Vl+MRtwftBVxN1Z1eH9TBiWZOZRk5sDVEQbejY1QVASFheQVFXHFy5soUXHsHDiMZLuDMXVDyCg8yHMnmFBTwyMf/II1uRN4dezJJHvqWXb3JwDMv+xiAJYt20tFUjpVKSPIPnYY1dkZ/LnuNb4YMIzZ451kZV3B37YUUxVvY+5pudR4aqnx1FDrqaXOW0edp46Pv3oO5RvKgIwCXDaTrysy8elGUI14TS8m9fh0PTsryoKq8tKXwVVrOlt8yxvB9xW/8+YinI5xxJsTSPCfTP6Begbdf1ZzGoWi2vk88eZEks3pbCv3csKjt+ByuHDZXbgcLjZX1mPDSbp/AYYysKdsBF825x+fwMclO9lc5iLeHh+0jsvuos5bh6EMtKrBppzUuGuIt8djN+yoLo5c3ZVRntsTpbetNP0x0m9nvmu6u536Sz/0dD27YnvR7vv+sm90NRnMCiF6tViIRiw6LlzE0VgI4tOWLt/f4uNh5EhrAvIrc63tBBZfO24p1Q1eUpwGyfh5Y2Ac6ZUHSR6aBV4PLFgAJSWQkAAeD5gm6dVlpFeXwb7tZAJ3hGxydtN/bDbIzITBg63XzEwYeBTLdjdQkxTH9XOvgIEDufW9QqqT0njsR7PwGnDpY+/h0408MH8cdZ46bv3PJ/h0A7ecPax5QFznreNfHw7Bb/qZN/Fm6rx1rMvPxNQm43PP4NPCEvx6I/HukzC1kwxXBg3eBnCDRlNvbKbe2IzDfQx4Yff+TUF1cPqtwbDbX4VW9ZTE/RGABze23txNA+oK+9PEmxMYeOeP8di2oVDE2eOIs8URb49v/n9r7609mIDyHUWyMY44h0md/S1sdifv7tvA//bHUWoWYotzsr2mlL1fHFqv2u1FKYP8kvyw+TttzqCI2E3aE+W3vZGsI+nJ4F899TkPrXN7Auy0t51Cg321N2hPZ8rU3TobdC1cGzQ50nZsb7Ckpn2pM5Gw28rjSPumvfm3Voeuaqe+GlRKBrNCCCGiamtxNbMfXhXVID6xKFwwpk+PnR6c6N6l1mvTZaBPuPneg6+RWl3OPSdnwf79LH15HanV5czOVFBSwr5te0irLiOpvgb277emFuY3/enVxc4AACAASURBVCeQ9f1N8z8HR2oqjziTqElK4+jXRsDAgfyw0ENNUipzE5Nh4EAYaL2/NqEE7Hb+PPtyK9/9gcdDXP3uYZetLrvROss7/9GP0drEq9/Ar90onYSp/fzfReto9DXyxme1vLvVR2H5oXUHJrvJjLsBv/Ywe+IAGrwNNPgCk/fQa6OvkbJ9ifjdQxjsuRcC9xHX2F+gwvEPGn2NNPoaqXJXtdovSb5ZJPnOwKlHoFFUAR61i/3xTwPws7eD01/23+D5pgH1xMWLIm7DUAZOmxOH4SC17tcoZVDmvA9DOcj03oqhDKY9cQtOmxOnzUlx6XzrjLZjCYZykOa7DEMZ3LzyOZw2J7sq8jCUQZ39PQzsJJtnYCiDxzY8htPmZPOuRD7ZHkdRhREogWLYQIO1+9bitDmp99ahlMGeyj3N22yaHIYj7OA7VKRgXT35w9WRBp9rK9hXZ/KMRkC8lo406Fq4Noh32JgwNLVD2wzNo7V27Yp9qT15HEnfdDT/cMtD/zYeaTv11aBSMpgVQvRrvfn+00h6ok5d9WzcOccPBaCwsiHo/c4EzOlovbujnQ4fpHVuG5ECnFU1eFvdHk4nj9w2J+it5V7rwGV2oCzN8Zw9HigttQazBw82Ty+8sYmUuirOyrQdev/AASgrg6oqBlPF4AOFsHsLAN9qyu/FkEpcZg3aGm45m9rEZLj4drA74OL7uaHES11CCs+deAE4HDz0nd9Tl5gCR41D2R2kmdAQn4G2WYOr+172AjYglQPVlYDZvJkTcoZR1XANAPef03p7L1m7l7+9v4N9zYG8FOOTryQ79TpMvDx+9STcPjduv7v5tdHXiNvn5lcrNuHXHpzmWAoOKHzaWh8047IyGeC/HlN7mD0xE7fPzaufF2BqL9NGpQTlVbgnBVObNNhHYGovaYnWo6MqG+rxay8aL6Y2rcE1jSSYPgDqTetHh0SvdeC6s/CT5npluc8GoMR8HwC3eyYAf13318Byqy9K4h4PzFtXANz4yqFLwJ3mGBTOQAAyzdbyj5j+97uC1h/x8Jlh21WhsBt2TG3DwE6qy7p0u7peo5SNoWlJeA/chOnJRWNvDkhWULuJowa8hsPm4KJlDhw2B/ZMOw7Dwadbz0Ch+MFrS61nT9sc2A07yzftR2HnyukjcRgOnv14H0rZSDJnoJTixrMbrHTbluMwHOx3f4XCzhlHj2fXQU29RwMKU8PyT/fy4e6tGMrOE1dNx2daZ801PgxsGCr4MLmtYF9NQXs2fV0JtP35b29AvK54hmskkQIPhdah5XdNW22QkehkTiBwXnu3GZpHa+0aWgZo/fsxXBtECh7XlEekvonULm21U1v5h1sOwX8b29tObQV+a+/+2VvIYFYIIUTULJyWGz64Uj8J5hVJpABn976+res24nRCTo41tbDMZR2MnRV6oGOaUFkZPMBtMQg+7H27HXw+XO56XO56qA0cVL3wAk1DoucGHgfAj5b+CoD5gQHwU0sXYSqDy674Azjs3PnOY9S7krjznBsYbY9nu5GMzzCIU3BjzRe8/9nXNLiSYJ0dUlIgNdWa4uOhxb2wkYICGcqGgY0MV0bE5sqKO3TIFJflbRHwycb9c8/l3teHA4cG1KVfBw5yLwlux0MHu89Zy8McFPtNP5c+9iGm9qKIQ2uNV/8XEy+GHoDWGjePY+Ll9vPHcM9LjWitGWn8HlP7iPOPRaMZon6MiY8E10hMTDKMazDxkuTMwcQk0fYtTO0j2T4Ir6+G+oZUNAaGMhmRs4ORzql4/V4qixLQWjMsdRgevweP34PX9FLnbsTEh8bEa3oBL37gYH1tUJ2/KoMsbz2KvTjIoSkg2Q73YrbuDL9PZ7nHAfDnT/4cdvnPQ86ANw24F74Q/oz3B58EBzgDg4LqL1nr+SEAgx9oOegPvs/b+bvTsBt20ut/iyIBG9lYh9B+qp1L0I2XADYUiuK6nWz1PYhSNk5+Mg27YW+e9pZehEJR5ViCoWzYC7MYOCSLfRWnYv1Yo6j2lPDjN36MTdma19tSW4zCxh8+WoXNsAXl2TS1TG837BQ17kApG2/urGk1fYO3ntwMOzsPuNHaeoZ3QpzCY9agsDU/A1tr3XxfeVsBz5ruE480mG1PHi3n2wqW1Nnvx9by6IpghR3JP9zycH8bj6Sd+mpQqb5XIyGEEL2OBPM6XMy1iWFARoY1jRnTdvrA4OzbJ75BYn0NxKeA1wtz/8Xjy9eTWF8NRx0FPh9rJp9OUn01JCWBz0t9fAIJjfXg84HPx+iCL6w8J19EMvD8B0+zJncC0/fmk1e0jbymbT4cUgaHwxrUthjg5qWmcntDOvkDR/DVUWNJPlDHmXs2UO9KgpxySE62ypGUdOj/iYlB2YYL+NSVbIYNu4oDdehRSE6yg9IkcSwAZ46cwWOBHyAGMDMkp0tC5m8Imb8taK7p3jqrThc2v39ooL0nKH3T+0tvmIbP9HHZYx9h4uOxqybjM31859k1aO3jgfkTuPX5fWitqXQX0+Cxc9PMwQwb9Ge8fi8+04fX9OL1e/Ga1vyT76SgteYXpzzc/L7X7+X5dXsw8fHNiYPwml5ezd9nDcgdg9Fac8a4BUH5bCg4gImfMVkufKaPnUWPYvhGkKAnE680CcZgND6SXQZ2rzVoM3CiOXT5p9e08kvRfqCGA86/EG9OoNHIx+PdhtO5sTmgmfbVUxGIAP6/r4NbO8t9OnDoDPqS/EDfOl9rXr+0oZ6H1jxEOLe9E/btVs36Z+vLm+8jdzzdXIbPSuubB/SuOw+lVRhkue9CKUWVcwlx5nHUxX/FD1ftxh03Eqd/PDp5N/OW78Vm2Cip8qCUjYGeH6GU4sTHf4BN2SjffxUKRX3CG9h8I8gdWs5zOw/iSUxC+YYxPLeGFV//A39SHMp7FC5jHEV1B6hxL0dhkOqfC4At+RMMXzanHKtYvnM1n9cUoZSNZP+ZKBR19g9RGPx57Xpshg2bsjW/ltSlo1Ckp+/A403h2pMzKWz8kKLGr1DKxls7a7EZNrIGFOP2JJDszACjkQrvLhQGn5cmY1M2anx7UdgoqCzAZtho8B9EYWBXybicitFZDmob4aH5x3P8USlBPwq05zs+XJrQ4HJN8/01qJQMZoUQQsQECeZ1uL7QJvUJydQntLgHet5s3i4PPhv80Ji7gua/Pe1tbH6fdV2cz8cvj3qMhIZaGDQKfD62es4iq6GOvKnnQNU0Ptm8G1djHROSgKqqQ5PHc+iMcQvXBV6bzgTfsPRe640nItfj6TgXjXEubrzk12Cz8cB7T9AYl8DkDTmQnMzVu2tojE+Aig8gKYlT15fQGOeCN2sODYwTE60y2WwYaExbbB2GdXZ/a7rH125Yz8zMTMwEINE2GIBxA8eR6LACAyU5jwbguumtX+L42lproPyDaRcHvf/5Nuv9+wJnwIsLgi+1X3rxt4Pmmwfi10Z6zNAL1vIbZ7RY9n6L5ZpnrmvEZ/q4+slNaK3x6Qlo/Pzl8uPxm35uWrIOjR+bzkRrjUc9gdYmv5lzDD7T1zzd/4oPNIwy7sTUfm6eORKf6eMv732Jxo/LPxSN5mcnPdC8jt/08/y6PWh8XDBp8KH3tT8o79D31+4+gNZ+jstJas4nXPqGEhcajd1RgZf3sLunobHjUElWnQyzOV+NiUajtabe+JR641PwYU3qINg/oawBCL5rBJfXuipjZ9F6ALLc1g8lJXErwICi4haJFez7Ong+q/HuQ+mBLPfUwPxfrHw/D95elntk0PIfvM5hQs/C//j94OXnhPwIkFUbnH7CI8HLh4f8kBaa//RnWlbJ4MXfWQNrn1+hMDj7eSvwW22jCRgc9VB88+C7tMaDwuCqV5OwKRtf1zaiMPjemykYymBHXT0KgwFV34UqOOfZ/8Nm2CgonRu4EuCfKAzSaq5A1Sqq7MtQ2Gjw/jfwSLTeLba+RYUQooP6yj0f/U1v7be2yn2kkVrbyj/0ktT2bC/a9xKHK2Nb9Qha7nCwccjYoOWvZC8E4JJAuqmRNu52Bw9uq6qgupq/Ld9gDY6HDwe/j0fPvZ5dCQO4VJWQV7oTamqgtvbQa10dWwYMY03uBGr8iuSGWo7Z8am1DevW4UNRol+zXm5qmn8spEyBAfStHzzN6uGT2PDQD8irLebatFGszxnPhhceJM+s5AJPBp9ljuLzYeNJNjTLbFsgIYH5nnFgszGqaAd7XBlsWFoOlQbYbCw7d4iVZuXXYNio9fiocpvh2zVC33RER6KsdpVI24hUh/Z+ZluWMbidApGuicOmbKDAjnU5em5qIPq4fX9InkdT3ejDpY8lb/ihHwaecjWd4f5FUPqVa4MH2D+eEXxG/ePNq6hu9HHpmPZfBTD7YWude05tfZ1DA/jgm95rGl8NOvt33h9XUd3oISXVQVK8Hb9+C43JE1fn4dd+rn96DRqTPy+0Bvh+7W9+vW1ZMRrN/120Fr/p57cvVoHWNKo/oTFZNHssPtPHPa9tQWNyy1mj8Ws/f3x7GxqT+MBl84N8v8PrSSEpOQen3U+W7Wa09rNgak7zgN2v/bz5SS4aTbJ5M6ZvENPHeEhJOhhUpk1bstBonPYz0dpP3vDUoOVNr58XVqAxSdbJaDQ+dRY23yjS0wvAsZuSskHY/UfjStyB37GDmuocHP6x2FUymnrsyoXWfpRh4jf91o8BmHjNpkvzLRWNwffX7qs+vK+2HgieX1cUPG9zW/fCfrnrLQCy3KcBUGKuAsDrnmVty76XeHMCGwsqOGm0DGaFEEIIQfjIlH1pe53RnjK2laatiJ+tiouDQYOsqYUPSgcH5b92knWm6N8Kbrg2ONpncERQK3jQ+DQ7v8n+K/Huem47OSd44Nvy/y1fa2qgvh4cDvIHDGPe5fdiKsVDWpNbUcTe9CGYSvH3kHmA8SW74Ok/WAW67G7ys0axLn08plKs2WQS761nQslO+OmsoDSNjvhDeZQVwF0LrPuIT7uZ/JShNNgcaALLPRX89JNleO1O+GqElS4+HlwuqB5uXWb+3HMQH8+Sinj+WaLYWm2CgnmPrCY3xcGeag+gOhXhti1tRcCFjn8GQqPVHmkZw+V5JNFjw9V53OBkrpg+nIXTctu9zpFGWG7ZzoW4A59B69L7AQkDAHDZrLPxw9OGH5ZfotMqy9Sh1s9OqXHWADqVKQCcO9r68eDZ96y85h1rzb/4v0ODfKtMkwHrxO/47GRy4q0ftX5xSvAPFtu3f0x+YRVez7kAfPwph7XB/JKmvH8HwLIF4X/0aHkmP7+wiqTGWwDwlEJuRgKNDVa7GF4YmZHAnsbg/TE53ro2vOkHEq110GD5iidWB/0oYGozaEBtapP/t3Q9GpP75k3A1Ca3/nsjGpM75x6H3/Rz+/JP0Zg4zRFoND85/3X82s+Dr5qBKwHuCvwoMJ59ZQbxnvsAuO7pT3nuelevvvIHZDArhBBCHLFIkSn7yvY6oz1lbCtNe6M6d1UZw0WTDY4Iag38coYM4Iv0FOutCAfBEbe5di+FLSIqm0pRnp2L6fEDyprPysH06kDwKk3OsCy46y6or2dOg4NCpdmnFCiFCWRoD3Pq9sD48VaarzdSmDqIfU6XlYfW5JQXwd69Vhlcr1I4fR77UrMOLS/YxhmrX7UKuSqk0IGzyfzWumRyxWV3syN7DNidVpm1prykHOKTQIFpasr3lQTmFaapySgrZs5Hz3DG5x/iczjgsXTrxwan03oN/X/GaaAM+NmLEBfHCv+x7DATQQfqrTXlFbXN8wA5/npYvdpa3+EInpxOcDhwNdTit9k5L2/4YX3fFIW3s9obnbi9wkWj3XGgjhWbCyMOZiNFsG1vGcLVoWXEXOjaz2BnytRWGbq6HyLl2Vpk4UhlVEphV1YQLgCHEfyjQDjJ9lIAjhtkBcxLd1j92/TjQKYzOP2swI8DT7uaBuKnN9ehZTR3r89kza4yGcwKIYQQ/V2kyJR9ZXud0Z4ytpWmu6M6tzdiaVdETo20zXiHwW3nHxscofSbLedt3HjtORA44FwIjG0Z4dRp4+HvzyZv2OWHthGaxmHjxl9dCw9+BxobWdjQwNiiGi5dVYWpIc4GN543kcVJi3B4PVw3JRsaGqCx0XpVQ6xo1pddZr2XkcFoTyU7VTpew4bT9HNb/kv8dvIl+Gx2HH4ft73/D+446wa8hg2H6efh5feSV9SizYp2t95QlwWCjC29LzB/N6OdCewakNOc521vPxa0jRsfuB2KWu+Xf7T4/9gh47h8wZ14bTYcfj8PP/N78v6099AA+LT/Z+0UJ/7Amp90JRiK2z54Bp/NBm9lgcPBTbsr8dkdzNw8lLFxA1ngnIJfGaAUKZUH4Z57rPWrhlkD70cftaJ92+1gs/GNdbvwGzbWDptoLX/9dWtZpZfRLviy2sRUijibYmSyzTrDv337oTxaTn4/owcmsK2ktlMRbMPunyERdLs8snonytRaGboiEnF7ytBaZOFotFNbQuvgsBtMHxl5EN1bKK11dAug1LlY8QdtwBNa63taSz9lyhS9fv36HimbEEII0RFN96n1VPThnt5eZ7SnjG2l6e56NuUfem8pHH5/aVeVIbRObc23tX57ttGZPCDyszRD2yQov9w0Lvjj+9TUe3jgW+PIG+i07mH2eKzXpqnlfIv/z9+bBqbJsqRd1nz9aNCaU7/4HzsSB3FFcg15tcU8Wwzb0oZyESXklRccysPrDZ48nsPnTZMNQ8YFRcYOqnfgjPSypYvCzkfSlOerY08m2VPf7vUjbe9nLaJ333va1e3Ko2mdV8eeTLK3gWUv/vbwga/NxvyzfwJKsWz14qBly8lk86DRXMAB8ur38293Gp9ljuBCRwV5jQfAZjs0GUar8/MTpoOCZf7N1rwxCVAsc247PH0ref1yzQEK4tK4ZVIaecm0mf6mlbspNuJpTB9AssNg2WnpzWnmv3fQKsOsbOsHBMMIniK8N+/JDZT7FfdeeCx5R6Uy97FPqPSa3H/JRPJy07ngbx9T5TF5aP7x5A3PsPJp8Xiw7hTpcxp633hv+LsBoJTaoLWe0la6qJ6ZVUrZgL8CZwP7gHVKqZe01lujWS4hhBCiM3o6+nBviHbcnjK2laa769mUf0sbCipYs6uMmkZv8/KuLENofm3Nt7V+Z9J0tE5ttUnofEJCPAkJ8eRNGNau/IMEDsQ3nHuWtc3PikiOd7BqpBWpNi9wgP5KIF1eZwKXmSYP/u1DbH4fN111wuED3lf3gqnZcOVHrClppKbQTbINuPyVVgfLW1ftIMP0kTxkkDVg/tnvWONPpkYNIll74YYbmh871Tz5/TBwAGjNhrlXsyYhm5r0TJJ9blLibJxblM+ozDhITAANG6aexZoBI5le/AV5+7ezIWMYawaNocaVRLK7nkn7t5NXtI1VI06w2jF9WNCgfcOQcazJmUCNaZDsqYdtwQP5CwNTk3mBqVMuO8oqwwcrrSBqY3OsbS79XYey+X0HN/vXwGvTAH/DHw/9KEDgRwF+0voPE6H+3fSfX1svzWGzfmm9vNw03zLGV9PAuAOD5k69N+07Vj3P/ANrMkZSM2g8yX4PnHRrULo/FNeAUkz4Qej9BL1TtC8zngrs0FrvAlBKPQ/MAWQwK4QQQoget7W4mtkPr2q+rBg6GHSqj8ovrGq+PBF6pk26fZuGgc/hxOdwQnqYAf17ZVYZVlUGlYHzT20121fig4MGzfOmYqoW6//wqvArPmoFLpqXNDRoe788/nEgcIatKU3mLdYltJO+RW5GAnvL64PWufyUD4PLMGxC8yW3ualx7K1yH0qf4YRfbQ0aXP/yP5uw+f389pvHgGny+xX5GNrkF7PGWJec+/3W1PL/keZLssj3OJl35X2YgTKNV/Xwm9+0vn7Isve/2I9hmpw6KqNd296yrxJDm5CSQn7SYOZdcS8mCgNNvN/LhKpC6z5z07QmrQ/9P8J71fUe0JoUpwGmSb3bi6E18TYFponX50eZJna0tW7T5D8UxK7bHFtLftYo5uVdFxw8bvXqoGQTmv4T5atzu0pULzNWSl0CnKu1vj4wfyUwTWt9c0i6Gwg86Ts3NzevoKCgx8sqhBBCiL5tydq9rNhcSGFlQ3OQFIBzxmfx2FVtXu3WZy1ZuzcocAx0f5tEY5tdXYaOrt+e9OHSpMTbqW70hV2no+m7Q7T7Mtz2c9JdfP/00REDaXWZpsFsBwbMnX1vyfYa/vZFDfvqzObNnzPYwWNTEsKvO3Omddl1jOoVlxm3l9b6MQJPapsyZUrf+BlBCCGEEDFl4bRcFk7LZUNBBZc/sQavz8Rhj73gWj2tKXBMT7ZJNLbZ1WXo6PrtSR8uzW3nHcMdr2wJu05H03eHaPdluO332P2iTffMGka3b2rhJCvwW1A7zz2xOXhcXxXtM7MzgN9orWcF5hcBaK3vjrSOBIASQgghRHdruj90+sgBMX1Pck+KRpvEQj8caRk6un570oemaWudjqbvDtHuy2hvv6f0lXq298xstAezduAr4EygEFgHLNRab4m0jgxmhRBCCCGEEKLv6hWXGWutfUqpm4E3sB7N82RrA1khhBBCCCGEEAJi4J5ZrfVKYGW0yyGEEEIIIYQQovfo/ruRhRBCCCGEEEKILiaDWSGEEEIIIYQQvY4MZoUQQgghhBBC9DoymBVCCCGEEEII0evIYFYIIYQQQgghRK8jg1khhBBCCCGEEL2ODGaFEEIIIYQQQvQ6MpgVQgghhBBCCNHryGBWCCGEEEIIIUSvI4NZIYQQQgghhBC9jgxmhRBCCCGEEEL0OjKYFUIIIYQQQgjR68hgVgghhBBCCCFEryODWSGEEEIIIYQQvY7SWke7DB2ilDoAFES7HGEMBA5GuxDiMNIvsUn6JTZJv8Qm6ZfYJP0Sm6RfYpP0S2yK5X4ZprXObCtRrxvMxiql1Hqt9ZRol0MEk36JTdIvsUn6JTZJv8Qm6ZfYJP0Sm6RfYlNf6Be5zFgIIYQQQgghRK8jg1khhBBCCCGEEL2ODGa7zmPRLoAIS/olNkm/xCbpl9gk/RKbpF9ik/RLbJJ+iU29vl/knlkhhBBCCCGEEL2OnJkVQgghhBBCCNHryGBWCCGEEEIIIUSvI4PZDlJKnauU+lIptUMpdVuY5XFKqWWB5WuVUsN7vpT9i1LqKKXUe0qprUqpLUqpH4ZJc7pSqkoptTkw/ToaZe1vlFJ7lFL5gTZfH2a5Ukr9KfB5+UwpdUI0ytmfKKXGtvgcbFZKVSulbglJI5+XHqCUelIpVaqU+rzFexlKqbeUUtsDr+kR1r06kGa7Uurqnit13xehX+5TSm0LfE+9qJRKi7Buq995ovMi9MtvlFKFLb6rZkdYt9VjN9F5EfplWYs+2aOU2hxhXfm8dJNIx8Z98W+M3DPbAUopG/AVcDawD1gHXKa13toizfeBiVrr7yqlFgBztdbzo1LgfkIplQ1ka603KqWSgQ3AhSH9cjpwq9b6m1EqZr+klNoDTNFah30gd+DA4/8Bs4FpwMNa62k9V8L+LfCdVghM01oXtHj/dOTz0u2UUqcCtcAzWuvjAu/dC5Rrre8JHHSna61/HrJeBrAemAJorO+8PK11RY9WoI+K0C/nAO9qrX1KqT8AhPZLIN0eWvnOE50XoV9+A9Rqre9vZb02j91E54Xrl5DlDwBVWus7wizbg3xeukWkY2PgGvrY3xg5M9sxU4EdWutdWmsP8DwwJyTNHODpwP//A5yplFI9WMZ+R2tdrLXeGPh/DfAFMDS6pRLtNAfrD6DWWq8B0gJfwKJnnAnsbDmQFT1Ha70KKA95u+XfkKexDj5CzQLe0lqXBw4u3gLO7baC9jPh+kVr/abW2heYXQPk9HjB+rkIn5f2aM+xm+ik1volcPx7KbC0RwslWjs27nN/Y2Qw2zFDga9bzO/j8EFTc5rAH74qYECPlE6grMu6JwNrwyyeoZT6VCn1mlLq2B4tWP+lgTeVUhuUUjeEWd6ez5ToPguIfJAhn5foyNJaFwf+vx/ICpNGPjfRdS3wWoRlbX3nia53c+Dy7ycjXDIpn5foOQUo0Vpvj7BcPi89IOTYuM/9jZHBrOgzlFJJwH+BW7TW1SGLNwLDtNaTgD8Dy3u6fP3UyVrrE4DzgJsClyOJGKCUcgLfAv4dZrF8XmKAtu4DknuBYohS6nbABzwXIYl85/WsR4BRwPFAMfBAdIsjQlxG62dl5fPSzVo7Nu4rf2NkMNsxhcBRLeZzAu+FTaOUsgOpQFmPlK4fU0o5sD6sz2mtXwhdrrWu1lrXBv6/EnAopQb2cDH7Ha11YeC1FHgR63KvltrzmRLd4zxgo9a6JHSBfF6iqqTpUvvAa2mYNPK5iQKl1DXAN4HLdYSAI+34zhNdSGtdorX2a61N4HHCt7d8XqIgcAx8EbAsUhr5vHSvCMfGfe5vjAxmO2YdcLRSakTgrMYC4KWQNC8BTVG/LsEKGNHrf/WIZYF7Mv4OfKG1fjBCmsFN9y4rpaZi7fvyI0M3UkolBoIOoJRKBM4BPg9J9hJwlbJMxwoSUYzoCRF/MZfPS1S1/BtyNbAiTJo3gHOUUumByyrPCbwnuolS6lzgZ8C3tNb1EdK05ztPdKGQGAtzCd/e7Tl2E13vLGCb1npfuIXyeelerRwb97m/MfZoF6A3CUQxvBmrQ23Ak1rrLUqpO4D1WuuXsHacZ5VSO7BuiF8QvRL3GycBVwL5LcK//wLIBdBaL8b6YeF7Sikf0AAskB8Zul0W8GJgTGQHlmitX1dKfRea+2UlViTjHUA98O0olbVfCRw4nA3c2OK9lv0in5ceoJRaCpwODFRK7QP+D7gH+JdS6jqgACt4CkqpKcB3tdbXa63LlVK/wzpIB7hDa92ZwDgijAj9sgiIA94KfKetCTy1YAjwhNZ6NhG+86JQhT4pVFDVcAAAAfFJREFUQr+crpQ6HutSyT0EvtNa9kukY7coVKFPCtcvWuu/EyYmg3xeelSkY+M+9zdGHs0jhBBCCCGEEKLXkcuMhRBCCCGEEEL0OjKYFUIIIYQQQgjR68hgVgghhBBCCCFEryODWSGEEEIIIYQQvY4MZoUQQgghhBBC9DoymBVCCCGEEEII0evIYFYIIYQQQgghRK8jg1khhBBCCCGEEL2ODGaFEEKIGKOUylZKlSilrmjx3t+VUu8ppWzRLJsQQggRK+zRLoAQQgghgmmti5VSlwP/VUptAE4EzgeO11r7o1s6IYQQIjYorXW0yyCEEEKIMJRSvwEWAoOBC7XW70a3REIIIUTskMGsEEIIEaOUUoOBAmCN1vq0aJdHCCGEiCVyz6wQQggRg5RSBvAM8ApwtFLq2igXSQghhIgpcs+sEEIIEZt+CeRg3S87BXhZKfWJ1vrz6BZLCCGEiA1ymbEQQggRY5RSM4HlwAyt9ZbAe78ELgemaK3rolk+IYQQIhbIYFYIIYQQQgghRK8j98wKIYQQQgghhOh1ZDArhBBCCCGEEKLXkcGsEEIIIYQQQoheRwazQgghhBBCCCF6HRnMCiGEEEIIIYTodWQwK4QQQgghhBCi15HBrBBCCCGEEEKIXkcGs0IIIYQQQgghep3/Dxo7aS1SqNQzAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ax.plot(X,good_exp(X,bf_N,bf_f,bf_r1,bf_r2),'g',linewidth=2.0,label='Good-fit')\n", "\n", "d = {'Entries' : \"{:d}\".format(sum(counts)),\n", " 'Chi2/d.o.f': \"{:.3f} / {:d}\".format(Chi2, Ndof),\n", " 'Prob' : \"{:.3f}\".format(ProbChi2),\n", " 'N' : \"{:.3f} +/- {:.3f}\".format(minuit_obj.values['N'], minuit_obj.errors['N']),\n", " 'f' : \"{:.3f} +/- {:.3f}\".format(minuit_obj.values['f'], minuit_obj.errors['f']),\n", " 'r1' : \"{:.3f} +/- {:.3f}\".format(minuit_obj.values['r1'], minuit_obj.errors['r1']),\n", " 'r2' : \"{:.3f} +/- {:.3f}\".format(minuit_obj.values['r2'], minuit_obj.errors['r2'])}\n", "\n", "ax.text(0.5, 0.95, nice_string_output(d, 0), family='monospace', \n", " transform=ax.transAxes, fontsize=9, color='green', verticalalignment='top')\n", "\n", "fig\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Nfr1r2
N35378.871304-2.2862822075.96174639.648076
f-2.2862820.001006-0.177557-0.005701
r12075.961746-0.177557131.1920892.598536
r239.648076-0.0057012.5985360.066260
\n", "
" ], "text/plain": [ " N f r1 r2\n", "N 35378.871304 -2.286282 2075.961746 39.648076\n", "f -2.286282 0.001006 -0.177557 -0.005701\n", "r1 2075.961746 -0.177557 131.192089 2.598536\n", "r2 39.648076 -0.005701 2.598536 0.066260" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "corrGood = minuit_obj.covariance# GetCorrelationMatrix() # Access the covariance matrix\n", "\n", "M = print_correlation_matrix(corrGood,['N','f','r1','r2'])\n", "M = pd.DataFrame(M, columns=['N','f','r1','r2'],index=['N','f','r1','r2'])\n", "display(M)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "executable": "/usr/bin/env python", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.7" }, "main_language": "python" }, "nbformat": 4, "nbformat_minor": 2 }