Skip to content

Instantly share code, notes, and snippets.

@tok41
Created December 10, 2017 06:10
Show Gist options
  • Save tok41/51e47b8569605eb9dc5bbf251a10d020 to your computer and use it in GitHub Desktop.
Save tok41/51e47b8569605eb9dc5bbf251a10d020 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# エンゼルの出現確率を予測する"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import sys, os\n",
"import sqlite3\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from datetime import datetime as dt\n",
"\n",
"import pymc as pm\n",
"import scipy.stats as stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# データの取得\n",
"- データはDB(sqlite)に保存されている\n",
" - テーブル定義は、ブログに載っている通り"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Shape of MeasurementData(record_num, n_columns) : (43, 13)\n"
]
}
],
"source": [
"def get_data(db_file='../data/choco-ball.db', table_name='measurement', filter_str=None):\n",
" \"\"\"\n",
" dbファイルから計測データを取得する\n",
" \n",
" TODO:\n",
" エラー処理を入れる\n",
" \"\"\"\n",
" con = sqlite3.connect(db_file)\n",
" sql = 'SELECT '\n",
" sql += 'measure_date,best_before,prd_number,weight,box_weight,ball_number,factory,shop,angel,campaign,taste '\n",
" sql += ', (weight - box_weight), (weight - box_weight)/ball_number '\n",
" sql += 'FROM ' + table_name + ' '\n",
" if filter_str is not None:\n",
" sql += 'WHERE ' + filter_str\n",
" sql += ';'\n",
" sql_result = con.execute(sql)\n",
" res = sql_result.fetchall()\n",
" con.close()\n",
" data = pd.DataFrame(res, columns=['measure_date','best_before','prd_number','weight','box_weight','ball_number','factory','shop','angel','campaign','taste','net_weight','mean_weight'])\n",
" print 'Shape of MeasurementData(record_num, n_columns) : {}'.format(data.shape)\n",
" return data\n",
"data = get_data(filter_str='taste=0')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# エンゼル出現確率予測\n",
"## 最尤推定"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"angel rate(freq):0.000\n"
]
}
],
"source": [
"# 最尤推定量\n",
"data_angel = data['angel'].values\n",
"p_MLE = data_angel.mean()\n",
"print 'angel rate(freq):%.3f'%(p_MLE)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ベイズ推定"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### モデル\n",
"- データ過程:ベルヌーイ分布(確率pで事象が発生し、(1-p)で発生しない)\n",
"- 事前分布:一様分布(0~1の実数を取る分布)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" [-----------------100%-----------------] 15000 of 15000 complete in 0.6 sec"
]
},
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f71d386c990>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAGj9JREFUeJzt3X90VOW97/H3VwiGAu2hil4QJepB\nCuFHIAFBWxJ/AF6hWIssTpbXaygCUmlrtcsq1gsecem9haOydCnh1gv+uIJFbTku9aIoi2pRTAAr\nwtJqjZZKIQQRaPgV871/zJCGMCGTZM/szM7ntdZeM7Nn75nvk4FPnjz7mb3N3RERkcx3StgFiIhI\nMBToIiIRoUAXEYkIBbqISEQo0EVEIkKBLiISEQp0EZGIUKCLiESEAl1EJCI6pvPNTj/9dM/JyUnn\nW4qIZLzy8vLd7t6jqe3SGug5OTmUlZWl8y1FRDKemX2WzHYachERiQgFuohIRCjQRUQiIq1j6CJh\nOHr0KNu3b+fQoUNhlyJyUtnZ2fTu3ZusrKwW7a9Al8jbvn073bp1IycnBzMLuxyRhNydqqoqtm/f\nzrnnntui19CQi0TeoUOHOO200xTm0qaZGaeddlqr/pJUoEu7oDCXTNDaf6cKdBGRiMiIQJ837+SL\nSFv30EMPMXDgQHJzc3nwwQfr1s+bN4+zzjqLvLw88vLyeOmllwB46623GDx4MMOHD+fjjz8GYO/e\nvYwbN47GrgNcVFREv379yMvLo3///pSWlqa+YXFPPPFEXfsGDBjAggULWvV6OTk57N69G4CLLroI\ngLVr1zJhwoQmt0/mNRuzdOlSvvjiixZU3Dzz5s1r9c8okYw5KLp2beL1RUXprOIkjv2ppItuSwNb\ntmxhyZIlbNiwgU6dOnHFFVcwfvx4+vbtC8DPf/5zfvGLXxy3z8KFC3nuueeoqKjg0UcfZeHChdxz\nzz3MmTPnpH+WP/300xQUFLBnzx7OP/98SkpK6NSpU0rb9/LLL/Pggw+yevVqevXqxaFDh3jyySdP\n2K6mpoaOHZsfOX/84x+DKDMpS5cuZeDAgfTq1SvpfVrarlTIiB76MUVFxy8imWDbtm2MHDmSb3zj\nG3Ts2JHCwkJeeOGFk+6TlZXFwYMHqa6uJisri08++YS//e1vFBYWJvWeBw4coEuXLnTo0AGAWbNm\nUVBQQG5uLnPnzgVgzZo1XH311XX7vPrqq/zwhz8EYPXq1YwaNYphw4YxefJkDhw4AMDtt9/OgAED\nGDx4cN0vofvuu48FCxbUhWB2djbTp08HYn81zJkzh8LCQh566CEqKyuZNGkSw4cPZ/jw4bz11lsA\nVFVVMXbsWIYOHcrMmTOP+yuka9eudff37dvH1VdfzYABA7jxxhupra09oe1PPfUUI0aMIC8vj5kz\nZ/L1118f93xFRQX9+/dn+vTp5ObmMnbsWA4ePMjKlSspKyvj2muvJS8vj4MHD1JeXk5hYSH5+fmM\nGzeOHTt2nNCue++9l5ycnLpaqqurOfvsszl69ChLlixh+PDhDBkyhEmTJlFdXZ3U59di7p62JT8/\n31ti7lz3wsLYbf3l2Lo2IdY3D7sKSWDr1q3Hrzj2WSVaFi/+53aLF59822a8f9++fX337t3+j3/8\nw0eOHOmzZ892d/e5c+d6nz59fNCgQT516lTfs2ePu7tv2rTJL7zwQi8qKvK//vWvPmXKFP/oo49O\n+j6FhYV+wQUX+KBBgzw7O9sfe+yxuueqqqrc3b2mpsYLCwv9vffe89raWu/Xr5/v2rXL3d2Li4t9\n1apVXllZ6d/73vf8wIED7u5+//33+9133+1VVVV+wQUXeG1trbu7f/nll+7u3r17d9+7d2+jNc2a\nNavucXFxsf/hD39wd/fPPvvMv/Od77i7+09+8hO/++673d39xRdfdMArKyvd3b1Lly7u7v7GG2/4\nqaee6p988onX1NT45Zdf7r/97W/d3b1Pnz5eWVnpW7du9QkTJviRI0fc3X3WrFm+bNmy47b59NNP\nvUOHDr5p0yZ3d588ebI/+eSTdfW+++677u5+5MgRHzVqVN3PZ/ny5T516tSE7Zo4caK//vrrddtN\nmzbN3d13795dt82dd97pixYtcvfY5/7rX/864c/shH+v7g6UeRIZ2+TfCWaWDawDTiU2RLPS3eea\n2bnAcuDbwEbgOnc/krpfPSKZqX///vzyl79kzJgxdO3alSFDhtT9iT5r1izuuusuzIy77rqLW2+9\nlccff5y8vDzefvttANatW0evXr1wd6ZMmUJWVhYLFy7kzDPPPOG9jg25VFZWctFFF3HFFVfQp08f\nnn32WUpLS6mpqWHHjh1s3bqVwYMHc9111/HUU08xdepU1q9fzxNPPMErr7zC1q1bufjiiwE4cuQI\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f71d62ad810>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def getMCMCResult(data, n_sample=15000, n_burn=5000):\n",
" \"\"\"\n",
" MCMCでエンゼルの出現確率を予測する\n",
" Args:\n",
" data:エンゼルの観測結果(array)\n",
" n_sample:MCMCシミュレーションの回数(integer)\n",
" n_burn:捨てる数(integer)\n",
" \"\"\"\n",
" # 出現確率pの事前分布\n",
" p = pm.Uniform('p', lower=0, upper=1)\n",
" # 観測を結びつける\n",
" obs = pm.Bernoulli('obs', p, value=data, observed=True)\n",
" \n",
" # MCMC\n",
" # Modelオブジェクト生成\n",
" model = pm.Model([p, obs])\n",
" mcmc = pm.MCMC(model)\n",
" mcmc.sample(n_sample, n_burn)\n",
" \n",
" return mcmc.trace('p')[:]\n",
"\n",
"p_trace = getMCMCResult(data_angel)\n",
"ret = plt.hist(p_trace, bins=np.linspace(0, 0.5, 50), normed=True, \n",
" color=\"#0000FF\", alpha=0.5, edgecolor=\"#0000FF\", lw=2)\n",
"N = len(p_trace)\n",
"bci = np.sort(p_trace)[int(N*0.95)]\n",
"plt.vlines(x=bci, ymin=0, ymax=ret[0].max(), label='95% BayesCredibleInterval', \n",
" color='red', linestyles='--', linewidths=2)\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 観測データ数毎の事後分布の推移"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" [-----------------100%-----------------] 15000 of 15000 complete in 0.5 sec"
]
},
{
"data": {
"image/png": "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\n7v6PMW2qgG5AlZm1BY4AtqR646FDE89XkhLJL2+//TZz587llVdeoV27dowYMYKRI0fSo0cPAH7y\nk59wzTXXHLDOnXfeyaOPPsq6deu47777uPPOO7n11luZNm1a0u4FCxcupH///mzZsoWTTjqJ8ePH\n065du5x+vmeeeYa7776bpUuX0qVLF3bv3s1DDz10ULva2lrats18sN8//elP2QgzLfPmzaN37950\n6dIl7XUa+7kkt5QjRQpDi8qRhx120CzlyPzNkSnPyLn7De7e1d1Lge8Az8cVcQBPAleEzy8N2yQ+\nnCAiBWfNmjUMGjSIww47jLZt2zJkyBAef/zxpOsUFRWxa9cudu7cSVFREe+99x4ffvghQ4YMSWub\nO3bsoEOHDrRp0waAKVOm0L9/f8rKypg+fToAy5Yt4+KLL65f57nnnuPb3/42AEuXLmXw4MH07duX\nMWPGsGPHDgCuv/56evXqRZ8+feoT6+23386sWbPqf9iLi4uZNGkSEBwBnTZtGkOGDOGee+6hurqa\nSy65hAEDBjBgwABWrlwJQE1NDcOGDeP000/nyiuvPOCIaseOHeufb9u2jYsvvphevXpx1VVXsX//\n/oM++8MPP8zAgQMpLy/nyiuvZN++fQcsX7duHT179mTSpEmUlZUxbNgwdu3axZIlS1i1ahWXXXYZ\n5eXl7Nq1i8rKSoYMGUK/fv0YPnw4GzduPOhz3XbbbZSWltbHsnPnTrp168bevXuZO3cuAwYM4LTT\nTuOSSy5h586daf37iYi0Fi0qRy5YQK9LL1WOLJQc6e5pT8BQ4Knw+S3A6PB5MfAbYC3wCnBiqvfq\n2LGfT5/uCachQ4JHEQmsXr36wBnQ8PTAA1+0e+CB5G0z2H6PHj188+bN/tlnn/mgQYN86tSp7u4+\nffp07969u5966qk+YcIE37Jli7u7v/76637GGWf40KFDff369T527Fh/9913k25nyJAhfvLJJ/up\np57qxcXFfv/999cvq6mpcXf32tpaHzJkiL/55pu+f/9+P+WUU3zTpk3u7j5u3Dh/8sknvbq62s8+\n+2zfsWOHu7vfcccdfvPNN3tNTY2ffPLJvn//fnd3/+STT9zdvVOnTr5169YGY5oyZUr963Hjxvkf\n//hHd3f/4IMP/Gtf+5q7u//gBz/wm2++2d3dn3rqKQe8urra3d07dOjg7u5/+MMfvH379v7ee+95\nbW2tn3feef6b3/zG3d27d+/u1dXVvnr1ah81apTv2bPH3d2nTJni8+fPP6DN+++/723atPHXX3/d\n3d3HjBnjDz30UH28r776qru779mzxwcPHly/fxYtWuQTJkxI+LlGjx7tzz//fH27iRMnurv75s2b\n69v89Kc/9dmzZ7t78O/+i1/8IuE+O+j76u7AKs8g37T2STlSJH3KkcqRsW3yOUdmOz9mdJ7Q3ZcD\ny8PnP4uZvxsY04R6UkTyWM+ePbnuuus4//zz6dixI6eddlp9N4MpU6Zw0003YWbcdNNNXH311Tz4\n4IOUl5fz0ksvAbBixQq6dOmCuzN27FiKioq48847+fKXv3zQtuq6jVRXV3PmmWcyYsQIunfvzq9/\n/WsqKiqora1l48aNrF69mj59+nD55Zfz8MMPM2HCBF588UUWLFjAs88+y+rVqznrrLMA2LNnD4MH\nD+bwww+nuLiY7373u4wcObLBvvjxxo4dW//897//PatXr65/vW3bNrZv386KFSt47LHHABg5ciSd\nOnVK+F4DBw7kxBNPBGDcuHG88MILXHrppfXLly1bRmVlJQMGDABg165dHHvssQe9zwknnEB5eTkA\n/fr1Y926dQe1+etf/8rbb7/N+eefD8C+ffvo3Llzws81duxYFi9ezDe+8Q0WLVrE9773PSDoMnTj\njTeydetWduzYwfDhw5PsKRGR1kc5UjkyqhyZnx0+RSQ5T7Pn8uTJwZQFEydOZOLEiQBMmzaNrl27\nAhyQaCZNmnTQD7+7M3PmTBYvXszUqVO5+eabWbduHbNnz+a2225rcHvHHHMMffv25eWXX2b//v3M\nmjWLV199lU6dOjF+/Pj6e7FMmDCBCy+8kOLiYsaMGUPbtm1xd84//3weeeSRg973lVdeYdmyZSxa\ntIg5c+bw/PPPU1ZWRmVlJeeee27CWDp06FD/fP/+/bz44osceuihB7VLZ2jh+Dbxr92dK664gttv\nvz3p+7Rv377+eZs2bdi1a9dBbdydsrIyXnzxxYTvEfu5Ro8ezQ033MCWLVsO2Bfjx4/niSee4LTT\nTmPevHks1wVaIpLvlCMbnyPvu49lr77KoieeUI4sgByZyQ3BRaQV27RpEwB///vfeeyxxxg3bhxA\nfX9ygMcff5zevXsfsN78+fPrj77t3LmTQw45hEMOOSRlP/KdO3fy+uuvc9JJJ7Ft2zY6dOjAEUcc\n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\nIX7yySf7qaee6sXFxX7//ffXL6upqXF399raWh8yZIi/+eabvn//fj/llFN806ZN7u4+btw4f/LJ\nJ726utrPPvts37Fjh7u733HHHX7zzTd7TU2Nn3zyyb5//353d//kk0/c3b1Tp06+devWBmOaMmVK\n/etx48b5H//4R3d3/+CDD/xrX/uau7v/4Ac/8Jtvvtnd3Z966ikHvLq62t3dO3To4O7uf/jDH7x9\n+/b+3nvveW1trZ933nn+m9/8xt3du3fv7tXV1b569WofNWqU79mzx93dp0yZ4vPnzz+gzfvvv+9t\n2rTx119/3d3dx4wZ4w899FB9vK+++qq7u+/Zs8cHDx5cv38WLVrkEyZMSPi5Ro8e7c8//3x9u4kT\nJ7q7++bNm+vb/PSnP/XZs2e7e/Dv/otf/CLhPjvo++ruwCpvRL7Jlyk+78XMN2A90KOB9dYBR2e6\nPeVIkfQpRypHxrbJ5xyZ7fzYrOcJzWwyMBmgffvjm3PTItIEPXv25LrrruP888+nY8eOnHbaafXd\nDKZMmcJNN92EmXHTTTdx9dVX8+CDD1JeXs5LL70EwIoVK+jSpQvuztixYykqKuLOO+/ky1/+8kHb\nqus2Ul1dzZlnnsmIESPo3r07v/71r6moqKC2tpaNGzeyevVq+vTpw+WXX87DDz/MhAkTePHFF1mw\nYAHPPvssq1ev5qyzzgJgz549DB48mMMPP5zi4mK++93vMnLkyAb74scbO3Zs/fPf//73rF69uv71\ntm3b2L59OytWrOCxx4KTMiNHjqRTp8SXCg8cOJATTzwRgHHjxvHCCy9w6aWX1i9ftmwZlZWVDBgw\nAIBdu3Zx7LHHHvQ+J5xwAuXlQU++fv36sW7duoPa/PWvf+Xtt9/m/PPPB2Dfvn107tw54ecaO3Ys\nixcv5hvf+AaLFi3ie9/7HhB0GbrxxhvZunUrO3bsYPjw4Un2VKt0NvCxu/9vA8sdWGpmDjzg7g1e\n1KIcKVKYlCOVI6PKkdkq5D42s87uvtHMOgObEjUKE1gFQElJ/8RXcopIap7mf5/Jk4MpCyZOnMjE\niRMBmDZtGl27dgU4INFMmjTpoB9+d2fmzJksXryYqVOncvPNN7Nu3Tpmz57Nbbfd1uD2jjnmGPr2\n7cvLL7/M/v37mTVrFq+++iqdOnVi/Pjx9UP4TpgwgQsvvJDi4mLGjBlD27ZtcXfOP/98HnnkkYPe\n95VXXmHZsmUsWrSIOXPm8Pzzz1NWVkZlZSXnnntuwlg6dOhQ/3z//v28+OKLHHrooQe1S2dEqvg2\n8a/dnSuuuILbb7896fu0b9++/nmbNm3YtWvXQW3cnbKysv/P3r3H21GXh/7/PMAmQYhIAZVrAhQp\nCUIgIYJYkgqCRoRa4Aja82oAACAASURBVGAOeggiASoqlR4EqiUoVnuK5fLDI2yEE1AKWASl/MBC\nsTlUimB2CNfUCxogAiGEWzBcEvKcP2Zls9isfVl7r/v+vF+vea21Zr4z86zJyjz7mfnODHfddVfF\nZZR/r0MPPZQzzjiDZ5999k3bYvbs2fzoRz9ijz32YN68ecz3Aq2+ZgFv/aG9Yb/MfCIi3gncFhH/\nlcUlCm9hjpRqxBxpjhwlObJWz5G7ETim9P4Y4Mc1Wq7UmkbhHcyefro4PvPYY49x/fXXM2vWLIDe\n/uQAN9xwA7vtttub5rviiit6j76tWrWK9dZbj/XWW2/QfuSrVq3i3nvvZaedduLFF19k4403ZtNN\nN2XZsmXccsstve223nprtt56a8455xxmz54NwD777MOdd97ZeyewVatW8atf/YqXXnqJF154gZkz\nZ3L++eezaNEiAM444wxOO+00nnrqKQBeffVVLrzwwopxHXTQQVx00UW9n9ctY//99+eqq64CigvD\nn3vuuYrz33PPPfzud79j7dq1XHvttXzgAx940/QDDjiA6667rnd7P/vsszz66KMDbqty48aNY+XK\nlQDssssuLF++vDdJrV69moceeqjifJtssgnTpk3jC1/4AoccckjvdRcrV65kq622YvXq1b3fT4WI\n2AD4C+Da/tpk5hOl16eBG4BpjYlONTUK9/mqjjmyYI5srKrPyEXE1cAMYIuIWAqcBXwT+EFEHAc8\nBhxZyyAlNd/hhx/OihUr6Orq4tvf/nZvt4jTTjuNRYsWERFMmDCBSy65pHeeVatWccUVV3DrrbcC\n8MUvfpHDDz+cDTfcsOKRQICjjz6ajTbaiFdffZXZs2czZcoUAPbcc08mTZrEjjvu2NsdpHye5cuX\nM3HiRKA4Ujlv3jxmzZrFq6++CsA555zDuHHjOOyww3jllVfITM477zwAZs6cybJlyzjwwAPJTCKC\nT3/60xXju/DCC/nsZz/L7rvvzpo1a9h///25+OKLOeuss5g1axZ77bUX06dPZ/vtK3eN23fffTn9\n9NN54IEH2H///d90ITrAxIkTOeecczjooINYu3Zt7/YeP358//84ZWbPns2JJ57IRhttxF133cV1\n113H5z//eV544QXWrFnDKaecwqRJkyrOe9RRR3HkkUe+6Yji1772Nd73vvcxfvx43vve9/YmQAFw\nIPBfmbm00sSI2BhYLzNXlt4fBHy1kQFKagxzZMEc2dgcGTnU0881Nm7c1Dz11AUVp82fX9x22Yed\nqmWtOzLboP8/ixcvZtddd23IutrRySefzJ577tnbrUXNVen3GhE92aZ3bSw/gAksA87KzMsiYh7w\n88y8uKzt1sB3M3NmROxIcRYOigOn/5SZ/feVKmOObDEN3uerOubIgZkjW0et82NrPhRBkoZoypQp\nbLzxxnzrW99qdijqUJk5q5/xsyuMewKYWXr/W2CPugYnSQMwR3Y2CzlJba2np6fZIUiS1JLMkZ3N\nQk6SpDayZEnRvXKgrpV2u5SkzmchJ7WJdRcYS62sWdddjzbrirlKZsxoYCBSizBHqtXVIz9ayEnD\nUXbXqUYYO3YsK1asYPPNNzdRqWVlJitWrGDs2LHNDmVUqFSw+Zi/OmnwPl/VMUeq1dUrP1rIScNR\noweIDtW2227L0qVLWb58eUPXK1Vr7NixvQ/ClTpGg/f5qo45Uu2gHvnRQk5qA11dXeywww7NDkOS\npJZjjtRotV6zA5DaUnd3MUiSOp/7fEktyDNy0nCccELxancbSep87vMltSDPyEmSJElSm7GQkyRJ\nkqQ2YyEnSZIkSW3GQk6SJEmS2oyFnCRJkiS1GQs5SZIkSWozPn5AGo7MZkcgSWoU9/mSWpBn5CRJ\nkiSpzbTkGbklS2D+fJg7d+B2g02XJKkWIuJy4BDg6czcrTRuLnA8sLzU7MzMvLnCvB8GLgDWB76b\nmd9sSNCSpI7WkoUcvFHM9WfGjAYFIlUyZUrx2tPT3DgkNco84CLgyj7jz8vMc/ubKSLWB74NfAhY\nCvwiIm7MzIfrFajqwH2+pBbUsoUc9F+sDVTgSQ2xcGGzI5DUQJl5R0RMGMas04DfZOZvASLiGuAw\nwEKunbjPl9SCvEZOkqThOzki7o+IyyNiswrTtwEeL/u8tDTuLSJiTkQsiIgFq1cvr9REkqReFnKS\nJA3Pd4CdgMnAk8C3KrSJCuMq3gIxM7szc2pmTu3q2rJ2UUqSOpKFnCRJw5CZyzLz9cxcC1xK0Y2y\nr6XAdmWftwWeaER8kqTOZiEnSdIwRMRWZR8/DjxYodkvgJ0jYoeI2BD4BHBjI+KTJHW2lr7ZiSRJ\nrSAirgZmAFtExFLgLGBGREym6Cq5BDih1HZriscMzMzMNRFxMvCvFI8fuDwzH2rCV5AkdRgLOWk4\njj++2RFIaqDMnFVh9GX9tH0CmFn2+WbgLc+XUxtxny+pBVnIScPR3d3sCCRJjeI+X1ILquk1chHx\nVxHxUEQ8GBFXR8TYWi5fkiRJklTDQi4itgE+D0zNzN0orgX4RK2WL7WUnp5ikCR1Pvf5klpQrbtW\nbgBsFBGrgbfhLZbVqaZOLV6z4uOgJEmdxH2+pBZUszNymfl74FzgMYoHo76QmbeWt4mIORGxICIW\nrF69vFarliRJkqRRpZZdKzcDDgN2ALYGNo6IT5a3yczuzJyamVO7uras1aolSZIkaVSp5c1ODgR+\nl5nLM3M1cD3w/houX5IkSZJEbQu5x4B9IuJtERHAAcDiGi5fkiRJkkRtr5G7G7gOWAg8UFq2D16R\nJEmSpBqr6V0rM/Ms4KxaLlOSJEmS9Ga1fvyANDosWNDsCCRJjeI+X1ILspCThmPKlGZHIElqFPf5\nklpQLW92IkmSJElqAAs5aTjmzCkGSVLnc58vqQVZyEnDcemlxSBJ6nzu8yW1oI67Rm7u3Nq2kyRJ\nkqRW03GFHMD8+QNPnzGjEVFIkiRJUn20ZSG3ZElRrFU6qzZ/fjF99uzK8w5W5EmSVC4iLgcOAZ7O\nzN1K4/4B+BjwGvAIcGxmPl9h3iXASuB1YE1mTm1U3JKkztaWhRy8UcxVGi9JUg3NAy4Criwbdxtw\nRmauiYi/B84AvtTP/H+Wmc/UN0RJ0mjTtoUcVO4iOW9eo6OQJHWyzLwjIib0GXdr2cefA0c0MiZJ\nktq6kJOaZq+9mh2BpNbxaeDafqYlcGtEJHBJZnb3t5CImAPMARgzZvuaB6kRcJ8vqQVZyEnD0dPT\n7AgktYCI+BtgDXBVP032y8wnIuKdwG0R8V+ZeUelhqUirxtg3LipWZeANTzu8yW1IJ8jJ0nSMETE\nMRQ3QTk6MysWXpn5ROn1aeAGYFrjIpQkdTILOUmSqhQRH6a4ucmhmbmqnzYbR8S4de+Bg4AHGxel\nJKmT2bVSGo6I4rXyQXhJHSQirgZmAFtExFLgLIq7VI6h6C4J8PPMPDEitga+m5kzgXcBN5SmbwD8\nU2b+pJ6xDvR4nnKDTVcf7vMltSALOUmSBpCZsyqMvqyftk8AM0vvfwvsUcfQKurv8TzrVLrjsySp\n/VjISZLUYfor1gYq8CRJ7cVr5CRJkiSpzVjISZIkSVKbGXVdK70QXJIkSVK7G3WFHHghuCRJkqT2\nNioLOfBCcI3QJZc0OwJJUqO4z5fUgkZtISeNyJw5zY5AktQo7vMltSBvdiJJkiRJbcZCThqO7u5i\nkCR1Pvf5klqQXSul4TjhhOLV7jaS1Pnc50tqQZ6RkyRJkqQ2U9MzchHxDuC7wG5AAp/OzLtquY5W\nN5Tnz/mMOkmSJEkjUeuulRcAP8nMIyJiQ+BtNV5+W/AZdZIkSZLqqWaFXES8HdgfmA2Qma8Br9Vq\n+e2mUsHmM+okSZIk1UItr5HbEVgO/J+IuDcivhsRG5c3iIg5EbEgIhasXr28hquWJEmSpNGjloXc\nBsBewHcyc0/gD8Dp5Q0yszszp2bm1K6uLWu4akmSJEkaPWpZyC0Flmbm3aXP11EUdlLnySwGSaNC\nRFweEU9HxINl4/4oIm6LiF+XXjfrZ95jSm1+HRHHNC5q1Yz7fEktqGaFXGY+BTweEbuURh0APFyr\n5UuS1ETzgA/3GXc6cHtm7gzcTp9eKFAUe8BZwPuAacBZ/RV8kiRVo9Z3rfwccFXpjpW/BY6t8fIl\nSWq4zLwjIib0GX0YMKP0/gpgPvClPm0OBm7LzGcBIuI2ioLw6jqFOqAlS4obbw32GBwfkyNJra+m\nhVxmLgKm1nKZUkuaMqV47elpbhySmuldmfkkQGY+GRHvrNBmG+Dxss9LS+OaZl0x1x8fk1OB+3xJ\nLajWZ+Sk0WHhwmZHIKk9RIVxFS+2iog5wByAMWO2r2dM/RZrPianH+7zJbUgC7kqDdbdZP784min\nJKnjLYuIrUpn47YCnq7QZilvdL8E2JaiC+ZbZGY30A0wbtxU76whSRqQhdwwDHTE0iJOkkaNG4Fj\ngG+WXn9coc2/An9XdoOTg4AzGhOeJKmTWcgNU3/dUubNa2QUkqRGiIirKc6sbRERSynuRPlN4AcR\ncRzwGHBkqe1U4MTM/ExmPhsRXwN+UVrUV9fd+ESSpJGwkJMkaRCZOaufSQdUaLsA+EzZ58uBy+sU\nmiRplKrlA8ElSZIkSQ3gGTlpOI4/vtkRSJIaxX2+pBZkIddAPoi1g3R3NzsCSVKjuM+X1IIs5BrM\nB7FKkiRJGikLuSbwQawdoKeneJ0ypblxSJLqz32+pBZkIScNx9SpxWv6zF5J6nju8yW1IO9aKUmS\nJEltxkJOkiRJktqMhZwkSZIktRmvketjsEcEzJ9ftJEkSZKkZrGQq2CgRwRYxEmSJElqNgu5fvT3\niIB58xoZhSRJkiS9lYWcNBwLFjQ7AklSo7jPl9SCLOSk4fChsJI0erjPl9SCLOQkSRIw+A2/1hls\nuiSp/izkpOGYM6d47e5ubhySVGMD3fAL+r+GvKO5z5fUgizkpOG49NLi1aQuqQP1V6wNVOB1NPf5\nklqQDwSXJGmYImKXiFhUNrwYEaf0aTMjIl4oa/O3zYpXktQ5PCMnSdIwZeYvgckAEbE+8HvghgpN\n/yMzD2lkbJKkzuYZOUmSauMA4JHMfLTZgUiSOp+FnCRJtfEJ4Op+pu0bEfdFxC0RMalSg4iYExEL\nImLB6tXL6xelJKkjWMhJkjRCEbEhcCjwzxUmLwTGZ+YewP8H/KjSMjKzOzOnZubUrq4t6xesJKkj\n1PQaudL1AQuA33stgDraXns1OwJJreUjwMLMXNZ3Qma+WPb+5oj43xGxRWY+09AINXzu8yW1oFrf\n7OQLwGLg7TVertRaenqaHYGk1jKLfrpVRsS7gWWZmRExjaI3zIpGBqcRcp8vqQXVrGtlRGwLfBT4\nbq2WKUlSq4uItwEfAq4vG3diRJxY+ngE8GBE3AdcCHwiM7PxkUqSOkktz8idD5wGjOuvQUTMAeYA\njBmzfQ1X3RmWLCketjp37sDtBpsuSWqczFwFbN5n3MVl7y8CLmp0XJKkzlaTQi4iDgGezsyeiJjR\nX7vM7Aa6AcaNm+rRyArWFXP9mTGjQYFoYBHFqwfVJanzuc+X1IJqdUZuP+DQiJgJjAXeHhHfz8xP\n1mj5o0p/xdpABZ4kSZKk0aMm18hl5hmZuW1mTqB4js5PLeIkSZIkqT58jpwkSZIktZlaP36AzJwP\nzK/1cuXNUCRJzTWUPGQOkqTGqHkhp/qq181Qhpp4TdCSNLoNlIe8IZckNY6FXBuq181QBpvfBC1J\ngsr5wBtySVJjWcjpTbxj5hBdckmzI5AkNYr7fEktyEJOGo45c5odgSSpUdznS2pB3rVSkiRJktqM\nhZw0HN3dxSBJ6nzu8yW1ILtWSsNxwgnFq91tJKnzuc+X1IIs5CRJ0oj5rFNJaiwLuQ7ig1olSc1U\nr2edSpLeykKuw/igVklSM/kYG0lqDAu5DuSDWiVJkqTO5l0rJUkagYhYEhEPRMSiiFhQYXpExIUR\n8ZuIuD8i9mpGnJKkzuIZOUmSRu7PMvOZfqZ9BNi5NLwP+E7pVZKkYfOMnDQcmcUgSYM7DLgyCz8H\n3hERWzU7KFXBfb6kFmQhJ0nSyCRwa0T0RESlB41tAzxe9nlpaZwkScNm18pRYrBHE8yfX7SRJFVt\nv8x8IiLeCdwWEf+VmXeUTY8K87zl9E6pCJwDMGbM9vWJVJLUMSzkRpGBHk1gEVelKVOK156e5sYh\nqeky84nS69MRcQMwDSgv5JYC25V93hZ4osJyuoFugHHjptqPr5W4z5fUgizkRpn+nu8zb14jo+gA\nCxc2OwJJLSAiNgbWy8yVpfcHAV/t0+xG4OSIuIbiJicvZOaTDQ5VI+E+X1ILspCTJGn43gXcEBFQ\n5NR/ysyfRMSJAJl5MXAzMBP4DbAKOLZJsUqSOoiFnCRJw5SZvwX2qDD+4rL3CXy2kXFJkjqfd62U\nJEmSpDbjGTnVRH93w6y2jSRJkqTBWcipZvq7Iyb0f5MVSZIkSdWzkFNNVSrYBirw2tbxxzc7AklS\no7jPl9SCLOSk4ejubnYEktRW1j3LdLBu9i3ZDd99vqQWZCEnSZIaYl0x1x+74UvS0FnIScPR01O8\nTpnS3Dgkqc30V6y1dDd89/mSWlDNCrmI2A64Eng3sBbozswLarV8ta+27k7Tn6lTi9fM5sYhSao/\n9/mSWlAtz8itAU7NzIURMQ7oiYjbMvPhGq5DTTJYMTZ/ftFmsPn7Y3caSZIkaehqVshl5pPAk6X3\nKyNiMbANYCHXIQYqxgYq4tZpy+40kiRJUguqyzVyETEB2BO4u8/4OcAcgDFjtq/HqlVn/RVj8+Y1\nMgpJUqfpyG74klRHNS/kImIT4IfAKZn5Yvm0zOwGugHGjZtqR3MBJm9JUsFu+JI0dDUt5CKii6KI\nuyozr6/lstXZTN6SJBi458dgB/084CdpNKnlXSsDuAxYnJn/WKvlavTwGjpJ0kAGOujnAT9Jo00t\nz8jtB3wKeCAiFpXGnZmZN9dwHVJrWLCg2RFI0qhUqWCr+wE/9/mSWlAt71r5MyBqtTxpnZa8hs6H\nwkrS6OE+X1ILqstdK6VaG+zRBxMmeN2EJEmSRg8LObWNgS6Ab/h1E3PmFK/d3XVYuKR2EBHbAVcC\n7wbWAt2ZeUGfNjOAHwO/K426PjO/2sg4VQPu8yW1IAs5dYyGXjdx6aXFq0ldGs3WAKdm5sKIGAf0\nRMRtmflwn3b/kZmHNCE+1Yr7fEktyEJOkqRhyMwngSdL71dGxGJgG6BvIac6a8lrqSWpzizkJEka\noYiYAOwJ3F1h8r4RcR/wBPDXmflQP8uYA8wBGDNm+/oE2sF8Hqmk0cZCTpKkEYiITYAfAqdk5ot9\nJi8ExmfmSxExE/gRsHOl5WRmN9ANMG7c1KxjyB3L55FKGk3Wa3YAkiS1q4jooijirsrM6/tOz8wX\nM/Ol0vubga6I2KLBYUqSOpBn5CRJGoaICOAyYHFm/mM/bd4NLMvMjIhpFAdQVzQwTOE1dJI6k4Wc\nNBx77dXsCCQ1337Ap4AHImJRadyZwPYAmXkxcARwUkSsAV4GPpGZdptsghFdQ+c+X1ILspCTBtDv\n0dmP9ZQaDNJOUsfKzJ8BMUibi4CLGhORBjPsa+h6emociSSNnIWcNIjBErx3QpMkSVKjWcipo9Xq\nugjvhCZJkqRWYiGnjlePZwvNPbvoTTVjupe6SFLHi1IPWi9vlNRCLOQ0KnhGTZIkSZ3E58hJkiRJ\nUpvxjJxGtcGuoZs/v2gjSZIktRILOY16A11DZxEnSZKkVmQhJ9H/NXTz5g08X63uiilJap7B9uX9\njJakprKQk0ZosDN6EyZU/uNg3TyD3TXTIlCS6m+wOxyD+3JJrcVCThqGfznkkuLNA8XLQGf0+vvj\nYF23zVo/GkGSNDz97XPPeKDY5981/63T3JdLahYLOWkYeqbMKd48MLT2lZL4um6bw300wlCP7noU\nWJJG5upxxT5/9oy3ThvpvlyShstCTmpjg/2B4FFgSZKkzmQhJw3DlJ5uAOYxp27rGOqjEWbP7n+6\nJGnkZq3sLr2r3z5fkqplIScNw8duOgGAz42vb1Jv1qMR7LYpSW/4xrPFPn9uHQo597eShstCTmpx\nw300wkjZbVOSRm6ovSsmTOh/GQPtb4dS4FkESp3JQk4ahQZL6nbblKTaGUrvipHcLMU7ZkqjU00L\nuYj4MHABsD7w3cz8Zi2XL6l2Bkr8g3XbHMoRZqj8B8Rgz1zymUxqN4PlvogYA1wJTAFWAEdl5pJG\nx6nmGm7vipFcLz3Sux+7P5ZaW80KuYhYH/g28CFgKfCLiLgxMx+u1TokDd1AyX+wM25D6bY5lCPM\nw3l+3kifydSu3Yy8TqY9DTH3HQc8l5l/HBGfAP4eOKrx0apdDfd66ZF262zlZ+S1675eqqVanpGb\nBvwmM38LEBHXAIcBFnJSkwz2MPKRGuwI83CenzeU6cP9w2Td+OGcSaz39KH8QVWv2Ed61H2U/7E0\nlNx3GDC39P464KKIiMzMRgaq9jbSM3r9TRvKsoezP27E/rRZ+/p1Ki3fg3JqpFoWctsAj5d9Xgq8\nb6AZBjvlP5Lp9Vz2SKe77tG17sGm13vd9Vx2s773SO7mOdwzifWePpTiul6xD+WoOwz+R9EoNZTc\n19smM9dExAvA5sAzAy24lfcrrru11j2U6fVa9mAHDOu9P602rlqse52BCtjBWMipFqJWBwQj4kjg\n4Mz8TOnzp4Bpmfm5sjZzeOMhLLsBD9Zk5aPDFgyS9PUmbq/quL2q5zarzi6ZOa7ZQdTaEHPfQ6U2\nS0ufHym1WdFnWebI4fP/Y3XcXtVxe1XH7VWdYefHWp6RWwpsV/Z5W+CJ8gaZ2Q10A0TEgsycWsP1\ndzS3V3XcXtVxe1XPbVadiFjQ7BjqZNDcV9ZmaURsAGwKPNt3QebI4XN7VcftVR23V3XcXtUZSX5c\nr4Zx/ALYOSJ2iIgNgU8AN9Zw+ZIktZqh5L4bgWNK748Afur1cZKkkarZGblSv/+TgX+luAXz5Zn5\nUK2WL0lSq+kv90XEV4EFmXkjcBnwvYj4DcWZuE80L2JJUqeo6XPkMvNm4OYhNu+u5bpHAbdXddxe\n1XF7Vc9tVp2O3V6Vcl9m/m3Z+1eAI6tcbMdurzpxe1XH7VUdt1d13F7VGfb2qtnNTiRJkiRJjVHL\na+QkSZIkSQ1Q90IuIj4cEb+MiN9ExOkVpo+JiGtL0++OiAn1jqmVDWF77R8RCyNiTUQc0YwYW8kQ\nttcXI+LhiLg/Im6PiPHNiLNVDGF7nRgRD0TEooj4WURMbEacrWKw7VXW7oiIyIgY1XfpGsLva3ZE\nLC/9vhZFxGeaEWerMD9WzxxZHXNkdcyR1TFHVqcuOTIz6zZQXPj9CLAjsCFwHzCxT5u/BC4uvf8E\ncG09Y2rlYYjbawKwO3AlcESzY26D7fVnwNtK70/y9zXo9np72ftDgZ80O+5W3l6lduOAO4CfA1Ob\nHXcrby9gNnBRs2NthcH8WLdtZo6sbnuZI6vbXubIKrZXqZ05cojbazg5st5n5KYBv8nM32bma8A1\nwGF92hwGXFF6fx1wQEREneNqVYNur8xckpn3A2ubEWCLGcr2+vfMXFX6+HOKZzyNVkPZXi+WfdwY\nGM0X0Q5l/wXwNeB/Aa80MrgWNNTtpYL5sXrmyOqYI6tjjqyOObI6dcmR9S7ktgEeL/u8tDSuYpvM\nXAO8AGxe57ha1VC2l95Q7fY6DrilrhG1tiFtr4j4bEQ8QrHj/XyDYmtFg26viNgT2C4zb2pkYC1q\nqP8fDy9147ouIrarMH20MD9WzxxZHXNkdcyR1TFHVqcuObLehVylI4d9j14Mpc1o4baozpC3V0R8\nEpgK/ENdI2ptQ9pemfntzNwJ+BLw5bpH1boG3F4RsR5wHnBqwyJqbUP5ff0LMCEzdwf+jTfONo1G\n5sfquT2qY46sjjmyOubI6tQlR9a7kFsKlFeT2wJP9NcmIjYANqV4YOpoNJTtpTcMaXtFxIHA3wCH\nZuarDYqtFVX7+7oG+PO6RtTaBtte44DdgPkRsQTYB7hxFF/MPejvKzNXlP0fvBSY0qDYWpH5sXrm\nyOqYI6tjjqyOObI6dcmR9S7kfgHsHBE7RMSGFBdr39inzY3AMaX3RwA/zdIVf6PQULaX3jDo9iqd\n1r+EIkE93YQYW8lQttfOZR8/Cvy6gfG1mgG3V2a+kJlbZOaEzJxAcX3JoZm5oDnhNt1Qfl9blX08\nFFjcwPhajfmxeubI6pgjq2OOrI45sjp1yZEb1DTEPjJzTUScDPwrxd1aLs/MhyLiq8CCzLwRuAz4\nXkT8huJI4yfqGVMrG8r2ioi9gRuAzYCPRcTZmTmpiWE3zRB/X/8AbAL8c+keAY9l5qFNC7qJhri9\nTi4dnV0NPMcbf0SOOkPcXioZ4vb6fEQcCqyh2N/PblrATWZ+rJ45sjrmyOqYI6tjjqxOvXJkjO6D\ne5IkSZLUfur+QHBJkiRJUm1ZyEmSJElSm7GQkyRJkqQ2YyEnSZIkSW3GQk6SJEmS2oyFnCRJkiS1\nGQs5SZIkSWozFnKqm4iYFxHnNDuOakXEQxExo9lxjEREzI+IzzQ7DknSW5kfm8f8qE5iIadRrVIy\nzcxJmTm/SSF1tIj494hYHhEvRsR9EXFYn+n/PSIejYg/RMSPIuKPmhWrJI1m5sfmiIjpEZHl2z4i\nPhERv4yIFyLi6Yi4IiLe3sw41Ros5NTWImKDZsfQyaJQy/3EF4CtMvPtwBzg+xGxVWldk4BLgE8B\n7wJWAf+7huuWpFHD/FhfdciPREQXcAFwd59JdwL7ZeamwI7ABkDbndFV7VnIaUQiYtdSN4XnS10u\nDu3TZIuIuC0iVkbE/42I8aX5IiLOKx1ZeiEi7o+I3UrTxkTEuRHxWEQsi4iLI2Kj0rQZEbE0Ir4U\nEU8B/yciFkfE5OG76gAAIABJREFUIWUxbRARz0TEXqXP/xwRT5XWc0epYCAi5gBHA6dFxEsR8S+l\n8Usi4sCyWM6PiCdKw/kRMaZPLKeWvseTEXHsANtqfkR8LSLuLG2PWyNii/Jl9WlfHsfc0vf4fmne\nByLiPRFxRmndj0fEQX1WuVNE3FP63j8uP7sVEftExH+W/t3uK+8qU4rz6xFxJ0UxteNAv4FqZOb9\nmblm3UegC9iu9Plo4F8y847MfAn4CvAXETGuVuuXpEYxP5ofh+FU4Fbgv8pHZubjmflM2ajXgT+u\n8brVhizkNGxRHDn6F4qdzjuBzwFXRcQuZc2OBr4GbAEsAq4qjT8I2B94D/AO4ChgRWna35fGT6bY\nUW0D/G3ZMt8N/BEwnuKsztXArLLpBwPPZObC0udbgJ1LMS5cF0Nmdpfe/6/M3CQzP1bha/4NsE8p\nlj2AacCX+8SyaSnG44BvR8RmlbZXyX8Hji3FsiHw1wO07etjwPeAzYB7gX+l+D+8DfBVirNZ5f4H\n8Glga2ANcCFARGwD/P8UR/P+qBTDDyNiy7J5P0WxbccBj/YNJCJuKiW5SsNNA32J0ryvUBxxnA8s\nKE2aBNy3rl1mPgK8RvFbkKS2YX7sjcX8OMT8WCrkP12Kt9L0D0TEC8BK4HDg/AG2h0aLzHRwGNYA\n/CnwFLBe2birgbml9/OAa8qmbUJxFGk74IPAryiSQPn8AfwB2Kls3L7A70rvZ1D8cT+2bPofU+zY\n3lb6fBXwt/3E/A6KM0GblsV4Tp82S4ADS+8fAWaWTTsYWFIWy8vABmXTnwb26Wfd84Evl33+S+An\nZctaOkAcc4HbyqZ9DHgJWL/0eVzpe72jbF3fLGs/sbTd1ge+BHyvz7r+FTimbN6v1vm30wV8BPir\nsnG3Ayf2afd7YEazf+sODg4O1QzmR/PjMH4zPwaO6m/bl7XbpvSd39Ps37lD8wfPyGkktgYez8y1\nZeMepdjJrPP4ujdZdJd7Ftg6M38KXAR8G1gWEd1RXLi7JfA2oGfdESzgJ6Xx6yzPzFfKlvsbYDHw\nsYh4G3Ao8E8AEbF+RHwzIh6JiBcpdv5QHAEd6ncsP+L2aGncOivyja6CUHS12GSA5T1VRdu+lpW9\nf5niqOrrZZ/ps7zHy94/SlE8bUFxpPbI8qOEwAeArfqZt+Yyc3Vm3gIcXNbd6CWg78Xbb6f4I0SS\n2on50fw4ZBHxMWBcZl47WNvM/D3Fv/s1tY5D7cdCTiPxBLBdvPli3+0pzqKss+76JyJiE4quCk8A\nZOaFmTmFokvde4D/CTxDsdOdlJnvKA2bZmb5DjgrxLKu+8hhwMOl5AVFV43DgAMpunhMWBfOAMvq\n+x3H9/l+Twwyz3D8gSJBA0WC5c3JeTi2K3u/PbCaYvs+TnHE8R1lw8aZ+c2y9gNul4i4pXTdRKXh\nlipi3ADYqfT+IYruOevWsSMwhuLItCS1E/Nj7YyG/HgAMDWK6xWfouhOe0pE/Lif9uW5U6OYhZxG\n4m6KHexpEdFVuiD4Y7z5KNHMUr/uDSmuBbg7Mx+PiL0j4n2l6wj+ALwCvF46enkpcF5EvBOKPusR\ncfAgsVxDcV3BSZSONpaMA16luL7gbcDf9ZlvGQNfrHw18OWI2LJ04fXfAt8fJJbh+BUwNiI+Wtom\nX6YoYkbikxExsXQU9qvAdaUjlN+nODp7cOmI7NjSxeTbDnXBmfmRLK6bqDR8pNI8EfEnEfGRiNio\n9Hv5JMV1IP+31OSqUlx/GhEbl2K+PjM9Iyep3Zgfa6fj8yPFzb3WXfs4GbiR4t/6WICIODoito/C\neODrFJcjaJSzkNOwZeZrFN00PkJxJOt/A/8jM8vvtvRPwFkUXUamUFzcDUWXuUuB5yi6NawAzi1N\n+xLwG+Dnpe4e/waUXyBeKZYngbuA9wPlXROuLC3/98DDwM/7zHoZMLHUheJHFRZ9DsXNOO4HHqC4\nGLzmt/zNzBcorgn4binWPwBLB5xpcN+j6Gf/FDAW+HxpXY9THIU9E1hOcQTyf1L//UFQ9Ot/urTe\nL1BcD7CwFNdDwIkUBd3TFH9k/GWdY5KkmjM/1s5oyI+ZuTIzn1o3UJx5/UNmPltqMhH4T4pLEO4E\nfgkcX8+Y1B4ic7Az55IkSZKkVuIZOUmSJElqMxZykiRJktRmLOQkSZIkqc1YyEmSJElSm9mgWSve\nYostcsKECc1avSSpgXp6ep7JzJE++2nUMEdK0ugwkvzYtEJuwoQJLFiwoFmrlyQ1UEQ82uwY2ok5\nUpJGh5HkR7tWSpIkSVKbsZCTJEmSpDZjISdJkiRJbaZp18hJGrrVq1ezdOlSXnnllWaHIg1o7Nix\nbLvttnR1dTU7FEmjhDlS7aAe+dFCTmoDS5cuZdy4cUyYMIGIaHY4UkWZyYoVK1i6dCk77LBDs8OR\nNEqYI9Xq6pUf7VoptYFXXnmFzTff3ASllhYRbL755h4Vl9RQ5ki1unrlx6adkXviCZg7d+A2g02X\nRhMTlNqBv9PaMEdK1XHfo1ZXj99o0wq5lSth/vz+p8+Y0ahIWsC6f9jM5sYhSWoJbZ0jzWmS1BBN\n7Vo5Y0blQVLrueCCC9htt92YNGkS559/fu/4uXPnss022zB58mQmT57MzTffDMCdd97J7rvvzt57\n781vfvMbAJ5//nkOPvhgsp8/8GbMmMEuu+zC5MmT2XXXXenu7q7/Fyu58sore7/fxIkTOffcc0e0\nvAkTJvDMM88A8P73vx+A+fPnc8ghhwzafijL7M+8efN44oknhhFxdebOnTvibaSBmSOl9mGOrI45\nsja8Rq4V7LVXMUgt6sEHH+TSSy/lnnvu4b777uOmm27i17/+de/0v/qrv2LRokUsWrSImTNnAvCt\nb32LH/7wh/zd3/0d3/nOdwD42te+xplnnjlg94KrrrqKRYsWceedd/KlL32J1157rb5fDrjllls4\n//zzufXWW3nooYdYuHAhm2666VvarVmzZljL/8///M+Rhjhkw0lSw/1eUkXmNI0y5siCObLxLORa\nQU9PMUhDFdH/UH6Errt74LZDtHjxYvbZZx/e9ra3scEGGzB9+nRuuOGGAefp6uri5ZdfZtWqVXR1\ndfHII4/w+9//nunTpw9pnS+99BIbb7wx66+/PgAnnXQSU6dOZdKkSZx11lkA3H777Xz84x/vnee2\n227jL/7iLwC49dZb2Xfffdlrr7048sgjeemllwA4/fTTmThxIrvvvjt//dd/DcA3vvENzj33XLbe\nemuguEXw8ccfDxRHQM8880ymT5/OBRdcwPLlyzn88MPZe++92XvvvbnzzjsBWLFiBQcddBB77rkn\nJ5xwwpuOqG6yySa971988UU+/vGPM3HiRE488UTWrl37lu/+/e9/n2nTpjF58mROOOEEXn/99TdN\nX7JkCbvuuivHH388kyZN4qCDDuLll1/muuuuY8GCBRx99NFMnjyZl19+mZ6eHqZPn86UKVM4+OCD\nefLJJ9/yvb7+9a8zYcKE3lhWrVrFdtttx+rVq7n00kvZe++92WOPPTj88MNZtWrVkP79NIqZ09Rs\n5kjAHDkqcmRmNmXYZJMpedZZWXGYPr14lVR4+OGH3zyiuPqk8nDJJW+0u+SSgdtWsf6dd945n3nm\nmfzDH/6Q++yzT5588smZmXnWWWfl+PHj873vfW8ee+yx+eyzz2Zm5r333pvve9/7csaMGfn444/n\nUUcdlb/61a8GXM/06dPzPe95T773ve/NsWPH5sUXX9w7bcWKFZmZuWbNmpw+fXred999uXbt2txl\nl13y6aefzszMWbNm5Y033pjLly/PP/3TP82XXnopMzO/+c1v5tlnn50rVqzI97znPbl27drMzHzu\nuecyM3OzzTbL559/vt+YTjrppN7Ps2bNyv/4j//IzMxHH300/+RP/iQzMz/3uc/l2WefnZmZN910\nUwK5fPnyzMzceOONMzPz3//933PMmDH5yCOP5Jo1a/LAAw/Mf/7nf87MzPHjx+fy5cvz4YcfzkMO\nOSRfe+21zMw86aST8oorrnhTm9/97ne5/vrr57333puZmUceeWR+73vf6433F7/4RWZmvvbaa7nv\nvvv2bp9rrrkmjz322Irf69BDD82f/vSnve2OO+64zMx85plnetv8zd/8TV544YWZWfy7/8M//EPF\nbfaW32tmAguySfmmHQdzpDR05khzZHmbVs6Rtc6PPkdOakc5xJsIzJlTDCO066678qUvfYkPfehD\nbLLJJuyxxx5ssEGx+zjppJP4yle+QkTwla98hVNPPZXLL7+cyZMn8/Of/xyAO+64g6233prM5Kij\njqKrq4tvfetbvOtd73rLuq666iqmTp3K8uXLef/738+HP/xhxo8fzw9+8AO6u7tZs2YNTz75JA8/\n/DC77747n/rUp/j+97/Psccey1133cWVV17JT37yEx5++GH2228/AF577TX23Xdf3v72tzN27Fg+\n85nP8NGPfrTfvvh9HXXUUb3v/+3f/o2HH3649/OLL77IypUrueOOO7j++usB+OhHP8pmm21WcVnT\npk1jxx13BGDWrFn87Gc/44gjjuidfvvtt9PT08Pee+8NwMsvv8w73/nOtyxnhx12YPLkyQBMmTKF\nJUuWvKXNL3/5Sx588EE+9KEPAfD666+z1VZbVfxeRx11FNdeey1/9md/xjXXXMNf/uVfAkWXoS9/\n+cs8//zzvPTSSxx88MEDbClJagHmSHPkKMmRFnKtwDt8qQ0cd9xxHHfccQCceeaZbLvttgBvSjTH\nH3/8W3b8mck555zDtddey8knn8zZZ5/NkiVLuPDCC/n617/e7/q23HJL9tprL+6++27Wrl3Lueee\nyy9+8Qs222wzZs+e3fsslmOPPZaPfexjjB07liOPPJINNtiAzORDH/oQV1999VuWe88993D77bdz\nzTXXcNFFF/HTn/6USZMm0dPTwwc/+MGKsWy88ca979euXctdd93FRhtt9JZ2Q7m1cN82fT9nJscc\ncwzf+MY3BlzOmDFjet+vv/76vPzyy29pk5lMmjSJu+66q+Iyyr/XoYceyhlnnMGzzz77pm0xe/Zs\nfvSjH7HHHnswb9485g90K0UJzGkalcyRBXPk/AHjqjWvkZM0JE8//TQAjz32GNdffz2zZs0C6O1P\nDnDDDTew2267vWm+K664ovfo26pVq1hvvfVYb731Bu1HvmrVKu6991522mknXnzxRTbeeGM23XRT\nli1bxi233NLbbuutt2brrbfmnHPOYfbs2QDss88+3Hnnnb13Alu1ahW/+tWveOmll3jhhReYOXMm\n559/PosWLQLgjDPO4LTTTuOpp54C4NVXX+XCCy+sGNdBBx3ERRdd1Pt53TL2339/rrrqKqC4MPy5\n556rOP8999zD7373O9auXcu1117LBz7wgTdNP+CAA7juuut6t/ezzz7Lo48+OuC2Kjdu3DhWrlwJ\nwC677MLy5ct7k9Tq1at56KGHKs63ySabMG3aNL7whS9wyCGH9F53sXLlSrbaaitWr17d+/1UWUSM\njYh7IuK+iHgoIs4ujZ8XEb+LiEWlYXKzY5VUW+bIgjmysTwjJ2lIDj/8cFasWEFXVxff/va3e7tF\nnHbaaSxatIiIYMKECVxyySW986xatYorrriCW2+9FYAvfvGLHH744Wy44YYVjwQCHH300Wy00Ua8\n+uqrzJ49mylTpgCw5557MmnSJHbcccfe7iDl8yxfvpyJEycCxZHKefPmMWvWLF599VUAzjnnHMaN\nG8dhhx3GK6+8QmZy3nnnATBz5kyWLVvGgQceSGYSEXz605+uGN+FF17IZz/7WXbffXfWrFnD/vvv\nz8UXX8xZZ53FrFmz2GuvvZg+fTrbb799xfn33XdfTj/9dB544AH233//N12IDjBx4kTOOeccDjro\nINauXdu7vcePH9//P06Z2bNnc+KJJ7LRRhtx1113cd111/H5z3+eF154gTVr1nDKKacwadKkivMe\nddRRHHnkkW86ovi1r32N973vfYwfP573vve9vQlQFb0KfDAzX4qILuBnEbHuL6r/mZnXNTE2SXVk\njiyYIxubIyOb1PVh3LipeeqpCypOmz+/eFbO3LmNjKiJ7IaiQSxevJhdd9212WG0rJNPPpk999yz\nt1uLmqvS7zUiejJzapNCariIeBvwM+Ck0nBTNYVcW+dIc5oazBw5MHNk66h1frRrpaS2NmXKFO6/\n/34++clPNjsUiYhYPyIWAU8Dt2Xm3aVJX4+I+yPivIgY08+8cyJiQUQsWL16ecNiltS5zJGdza6V\nktpaj8+rUgvJzNeByRHxDuCGiNgNOAN4CtgQ6Aa+BHy1wrzdpemMGzfV01mSRswc2dk8Iye1iWZ1\ng5aq4e+0kJnPA/OBD2fmk6XHBb0K/B9gWlODkzqQ+x61unr8Rj0j1wrKLnyVKhk7diwrVqxg8803\nH9Lte6VmyExWrFjB2LFjmx1KU0TElsDqzHw+IjYCDgT+PiK2yswno/jP++fAg00NtN7MaWowc6Ra\nXb3yY1WFXERsB1wJvBtYC3Rn5gURMRc4HljXqf/MzLy5loF2tBo8jFKdbdttt2Xp0qUsX+51M2pt\nY8eO7X1+0ii0FXBFRKxP0ePlB5l5U0T8tFTkBbAIOLGZQdadOU0NZo5UO6hHfqz2jNwa4NTMXBgR\n44CeiLitNO28zDy3ptFJAqCrq4sddtih2WFIGkBm3g/sWWF85afoSqoJc6RGq6oKucx8Eniy9H5l\nRCwGtqlHYKNKd3fx6lFMSVK7M6dJUkMM+2YnETGB4sjjulsrn1y6tfLlEbFZP/N4a+VKTjihGCRJ\nanfmNElqiGEVchGxCfBD4JTMfBH4DrATMJnijN23Ks2Xmd2ZOTUzp3Z1bTnMkCVJkiRpdKu6kIuI\nLooi7qrMvB4gM5dl5uuZuRa4FG+tLEmSJEl1U1UhV7p18mXA4sz8x7LxW5U1+zidfmtlSZIkSWqi\nau9auR/wKeCBiFhUGncmMCsiJgMJLAHsHC9JkiRJdVLtXSt/RvEcnL58ZpwkSZIkNciw71opSZIk\nSWqOartWqh4ymx2BJEm1YU6TpIbwjJwkSZIktRkLOUmSJElqMxZyrWDKlGKQJKndmdMkqSG8Rq4V\nLFzY7AgkSaoNc5okNYRn5CRJkiSpzVjISZIkSVKbsZCTJKkGImJsRNwTEfdFxEMRcXZp/A4RcXdE\n/Doiro2IDZsdqySp/VnISZJUG68CH8zMPYDJwIcjYh/g74HzMnNn4DnguCbGKEnqEBZykiTVQBZe\nKn3sKg0JfBC4rjT+CuDPmxCeJKnDeNfKVnD88c2OQJJUAxGxPtAD/DHwbeAR4PnMXFNqshTYpknh\nNYY5TZIawkKuFXR3NzsCSVINZObrwOSIeAdwA7BrpWaV5o2IOcAcgDFjtq9bjHVnTpOkhrBrpSRJ\nNZaZzwPzgX2Ad0TEugOn2wJP9DNPd2ZOzcypXV1bNiZQSVLbspBrBT09xSBJalsRsWXpTBwRsRFw\nILAY+HfgiFKzY4AfNyfCBjGnSVJD2LWyFUydWrxmxd42kqT2sBVwRek6ufWAH2TmTRHxMHBNRJwD\n3Atc1swg686cJkkNYSEnSVINZOb9wJ4Vxv8WmNb4iCRJncyulZIkSZLUZizkJEmSJKnNWMhJkiRJ\nUpuxkJMkSZKkNmMhJ0mSJEltpiXvWrlkCcyfD3PnDtxusOltY8GCZkcgSVJtmNMkqSFaspCDN4q5\n/syY0aBAGmHKlGZHIElSbZjTJKkhqirkImI74Erg3cBaoDszL4iIPwKuBSYAS4D/lpnPjTS4/oq1\ngQo8SZIkSep01V4jtwY4NTN3BfYBPhsRE4HTgdszc2fg9tJnDdWcOcUgSVK7M6dJUkNUVchl5pOZ\nubD0fiWwGNgGOAy4otTsCuDPaxlkx7v00mKQJKndmdMkqSGGfdfKiJgA7AncDbwrM5+EotgD3tnP\nPHMiYkFELFi9evlwVy1JkiRJo9qwCrmI2AT4IXBKZr441Pkyszszp2bm1K6uLYezakmSJEka9aou\n5CKii6KIuyozry+NXhYRW5WmbwU8XbsQJUmSJEnlqirkIiKAy4DFmfmPZZNuBI4pvT8G+HFtwpMk\nSZIk9VXtc+T2Az4FPBARi0rjzgS+CfwgIo4DHgOOrF2IkiRJkqRyVRVymfkzIPqZfMDIwxml9tqr\n2RFIklQb5jRJaohqz8ipHnp6mh2BJGmEImI74Erg3cBaoDszL4iIucDxwLrbNZ+ZmTc3J8oGMKdJ\nUkNYyEmSVBtrgFMzc2FEjAN6IuK20rTzMvPcJsYmSeowFnKSJNVA6Tmq656pujIiFgPbNDcqSVKn\nGvYDwVVDEcUgSeoIETEB2BO4uzTq5Ii4PyIuj4jN+plnTkQsiIgFq1cvr9SkPZjTJKkhLOQkSaqh\niNiE4nmrp2Tmi8B3gJ2AyRRn7L5Vab7M7M7MqZk5tatry4bFK0lqTxZykiTVSER0URRxV2Xm9QCZ\nuSwzX8/MtcClwLRmxihJ6gwWcpIk1UBEBHAZsDgz/7Fs/FZlzT4OPNjo2CRJncebnUiSVBv7AZ8C\nHoiIRaVxZwKzImIykMAS4ITmhCdJ6iQWcpIk1UBm/gyodJePzn1mnCSpaSzkJElqI0uWwPz5MHdu\n/20GmiZJ6gwWcq3gkkuaHYEkqY2sK+YqmTGjgYFUYk6TpIawkGsFc+Y0OwJJUpupVLD1V9w1lDlN\nkhrCu1ZKkiRJUpuxkGsF3d3FIElSuzOnSVJD2LWyFZxQuhO13VEkSe3OnCZJDeEZOUmSJElqMxZy\nkiRJktRmLOQkSZIkqc1YyEmSJElSm7GQkyRJkqQ2YyEnSZIkSW3Gxw+0gsxmRyBJUm2Y0ySpITwj\nJ0mSJEltxkJOkiRJktpM1YVcRFweEU9HxINl4+ZGxO8jYlFpmFnbMDvclCnFIElSuzOnSVJDDOca\nuXnARcCVfcafl5nnjjii0WjhwmZHIEkaoYjYjiI3vhtYC3Rn5gUR8UfAtcAEYAnw3zLzuWbFWXfm\nNElqiKrPyGXmHcCzdYhFkqR2tgY4NTN3BfYBPhsRE4HTgdszc2fg9tJnSZJGpJbXyJ0cEfeXul5u\nVqlBRMyJiAURsWD16uU1XLUkSc2VmU9m5sLS+5XAYmAb4DDgilKzK4A/b06EkqROUqtC7jvATsBk\n4EngW5UaZWZ3Zk7NzKldXVvWaNWSJLWWiJgA7AncDbwrM5+EotgD3tnPPB7slCQNWU0Kucxclpmv\nZ+Za4FJgWi2WK0lSu4mITYAfAqdk5otDnc+DnZKkatSkkIuIrco+fhx4sL+2kiR1qojooijirsrM\n60ujl63Lk6XXp5sVnySpc1R918qIuBqYAWwREUuBs4AZETEZSIo7cp1Qwxg73/HHNzsCSdIIRUQA\nlwGLM/MfyybdCBwDfLP0+uMmhNc45jRJaoiqC7nMnFVh9GU1iGX06u5udgSSpJHbD/gU8EBELCqN\nO5OigPtBRBwHPAYc2aT4GsOcJkkNMZznyEmSpD4y82dA9DP5gEbGIknqfLV8/ICGq6enGCRJanfm\nNElqiLY8I7dkCcyfD3Pn9t9moGktZ+rU4jWzuXFIkjRS5jRJaoi2LOTgjWKukhkzGhiIJEmSJDVY\n2xZyULlg66+4kyRJkqRO4TVykiRJktRmLOQkSZIkqc1YyEmSJElSm7GQkyRJkqQ209Y3O+kYCxY0\nOwJJkmrDnCZJDWEh1wqmTGl2BJIk1YY5TZIawq6VkiRJktRmLORawZw5xSBJUrszp0lSQ1jItYJL\nLy0GSZLanTlNkhrCQk6SJEmS2oyFnCRJkiS1GQs5SZJqICIuj4inI+LBsnFzI+L3EbGoNMxsZoyS\npM5hISdJUm3MAz5cYfx5mTm5NNzc4JgkSR3KQk6SpBrIzDuAZ5sdh/5fe3cbYul91nH8e6VpFoyj\ntMaExSbdWpZCDW3NjqtQkAkxJWC7G2mUFNQE0k58WPvCvjCg4BrfBIuIYNFMbJhVaBMtLN0WTBu3\nXRfBSmZCrWmtJA2HuuySTWypC6Luppcvzj3sZDLn4T9zP5053w8cztO997m4OLu/vc79JEnzwQuC\n98Ftt3VdgSSpOcci4leBNeBjmfndrgtqlJkmSa1wi1wfrK8Pb5KkvebPgbcD7wEuAH88asGIWI6I\ntYhYu3z55bbqq5+ZJkmtcJCTJKkhmflSZr6amd8HHgMOj1l2JTMXM3PxjW/80faKlCTNJAc5SZIa\nEhH7Nz39BeC5UctKklTCY+T6IGJ4n9ltHZKkHYuITwNLwA0RcQ74fWApIt4DJDAAHuyswLaYaZLU\niuJBLiIeB94PXMzMW6vX3gw8CRxgGFS/tOcP5pYkaZPM/NA2L3+y9UIkSXNhJ7tWrvL66+Q8BJzO\nzIPA6eq5JEmSJKkBxYPciOvkHAVOVI9PAHfvsi5JkiRJ0gh1nezkpsy8AFDd31jTeiVJkiRJW7R6\nspOIWAaWAfbtu6WRzxgM4MwZOH58/HKT3pckadaYgZI0P+oa5F6KiP2ZeaE61fLF7RbKzBVgBWBh\nYbGx01ltBNkoS0tNfbIkSd0yAyVpPtQ1yJ0C7gMeqe4/W9N6d2xUUI0Lt848+mjXFUiS9pBOM9BM\nk6RW7OTyA9tdJ+cR4G8i4gHg28Av1lnknre83HUFkiTVw0yTpFYUD3IjrpMDcMcua5EkSZIkTaGu\ns1ZqN1ZWhjdJkmadmSZJrWj1rJUa4cEHh/fujiJJmnVmmiS1wi1ykiRJkjRjHOQkSZIkacY4yEmS\nJEnSjHGQkyRJkqQZ4yAnSZIkSTPGQU6SJEmSZoyDXB9kDm+SpJkVEY9HxMWIeG7Ta2+OiKcj4vnq\n/k1d1tgKM02SWuEgJ0lSPVaBu7a89hBwOjMPAqer55Ik7ZqDnCRJNcjMs8B3trx8FDhRPT4B3N1q\nUZKkPeuYBE6kAAAKTUlEQVTargto22AAZ87A8ePjl5v0fq0OHRrer6+3+KGSpBbclJkXADLzQkTc\nOGrBiFgGlgH27bulkWJayUAzTZJaMXeDHFwNslGWlloqZMOzz7b8gZKkvsnMFWAFYGFhsbGDzBrP\nQDNNkloxl4McjA6qceEmSVKhlyJif7U1bj9wseuCwAyUpL3AY+QkSWrOKeC+6vF9wGc7rEWStIc4\nyEmSVIOI+DTwT8A7IuJcRDwAPALcGRHPA3dWzyVJ2rW53bVSkqQ6ZeaHRrx1R6uFSJLmglvkJEmS\nJGnGuEWuDz7yka4rkCSpHmaaJLXCQa4PVla6rkCSpHqYaZLUCge5LXp5wXBJkiRJ2sRBbhutXzB8\nfX14f+hQzSuWJKllZpoktcJBboRWL5a6uDi8z2xg5ZIktchMk6RWeNZKSZIkSZoxtW6Ri4gBcAl4\nFbiSmYt1rl+SJEmS1Myulbdn5isNrFeSJEmShLtWSpIkSdLMqXuQS+CLEbEeEcs1r1uSJEmSRP27\nVr43M89HxI3A0xHxzcw8u/FmNdwtA+zbd0vNHy1JkiRJ86HWQS4zz1f3FyPiJHAYOLvp/RVgBWBh\nYdHzEm9YW+u6AkmS6mGmSVIrahvkIuJ64JrMvFQ9fh/wcF3r39O8aKokaa8w0ySpFXVukbsJOBkR\nG+v9VGY+VeP6JUmSJEnUOMhl5ovAu+ta31xZrs4Ls7LSbR2SpLk2GMCZM3D8+Pjlxr5vpklSK5q4\njpxKPfbY8N7Qk6Q9KSIGwCXgVeBKZi52W9FoG8PcKEtLE1ZgpklSKxzkJElqx+2Z+UrXRUxj1LA2\nbsCTJLXLC4JLkiRJ0oxxkJMkqXkJfDEi1qtrqr5ORCxHxFpErF2+/HLL5UmSZo27VkqS1Lz3Zub5\niLgReDoivpmZZzcv4LVWJUklHOQKTTqj18bxA+MOBp90NjBJ0t6Smeer+4sRcRI4DJwd/6ckSRrN\nQW4Hxp3RazAY3o96f9sB77bbdluSJKmnIuJ64JrMvFQ9fh/wcMdlNcdMk6RWOMjt0Kgtbquro98f\nebav9fVd1yNJ6q2bgJMRAcPc/VRmPtVtSQ0y0ySpFQ5ykiQ1KDNfBN7ddR2SpL3Fs1ZKkiRJ0oxx\nkOuDiOFNkqRZZ6ZJUivctVKSJE1l0pmbAca8JUmqkYNci0YF4MbTjde9PIEkqa/Gnbl53KV3JEn1\ncpBr2bgAPHPGEJQk9V/RmZklSY1wkOvA6wLwH7qoQpIkSdKscpCTJEm7tnWPk1GHCXj4gCTVw0FO\nkiTVYjC4+ni7XS09fECS6uMg1wOfe/+jwweXuq1DkqTd2si0pUOvfd1j6CSpXg5yPbB+aBmAwerk\n0zqDu6VIkvprI9MkSc1ykOuZcWe1BHdLkSRJkuQg1wuH1lcAWGX4K+aoYW111S12kqR+28g0t8xJ\nUrMc5HrgA59/EIDfeuvk0HOLnSSpzzYyzUFOkprlIDeDRg1rHkguSeqrjR8iR+01spFhk36QdK8T\nSRpykJMkSa0Yt1fJxqUL3OtEkqbjILeHjPu10186JUl9MO448HHvu9eJJL1WrYNcRNwF/CnwBuAv\nM/OROtevyUb92jnpl87BAA4ccJcXSWqC+bh7k3bNBDNI0nypbZCLiDcAnwDuBM4Bz0TEqcz8Rl2f\noelsN2xN+qVzdXV3u7yMGwR3OwROCuZp1m+4S+qK+VifcT9W+mOkpHlT5xa5w8ALmfkiQEQ8ARwF\nRgbVpN0kdvN+k+ve7ft9/uzd2OnWwA2TAnjc505aznCW1KHifITZzZlJy9Sx7u3s9vg7MCskzZbI\nzHpWFHEPcFdmfrh6/ivAT2fmsU3LLAMb5yO+FXiulg+fDzcAr3RdxAyxX2XsVzl7VuYdmbnQdRFd\nmCYfq9fNyJ3z72MZ+1XGfpWxX2V2nI91bpGLbV57zZSYmSvACkBErGXmYo2fv6fZrzL2q4z9KmfP\nykTEWtc1dGhiPoIZuRv2q4z9KmO/ytivMrvJx2tqrOMccPOm528Bzte4fkmSZpH5KEmqXZ2D3DPA\nwYh4W0RcB9wLnKpx/ZIkzSLzUZJUu9p2rczMKxFxDPgCw9MrP56ZXx/zR1bq+uw5Yb/K2K8y9quc\nPSszt/3aQT7CHPdrh+xXGftVxn6VsV9ldtyv2k52IkmSJElqR527VkqSJEmSWuAgJ0mSJEkzpvFB\nLiLuioh/j4gXIuKhbd7fFxFPVu//c0QcaLqmPpuiXz8bEc9GxJXq2kRzbYp+/XZEfCMivhYRpyPi\nrV3U2RdT9OvXIuJfI+KrEfGPEfHOLursi0n92rTcPRGRETHXp1ue4vt1f0S8XH2/vhoRH+6izr4w\nH8uZkWXMyDJmZBkzskwjGZmZjd0YHtT9LeDHgeuAfwHeuWWZ3wD+onp8L/BkkzX1+TZlvw4A7wL+\nCrin65pnoF+3Az9QPf51v18T+/VDmx4fAZ7quu4+96tabgE4C3wFWOy67j73C7gf+LOua+3DzXxs\nrGdmZFm/zMiyfpmRBf2qljMjp+zXTjKy6S1yh4EXMvPFzPw/4Ang6JZljgInqsefAe6IiO0unjoP\nJvYrMweZ+TXg+10U2DPT9OvLmfnf1dOvMLx+07yapl//tenp9Wxz0eI5Ms2/XwB/CPwR8D9tFtdD\n0/ZLQ+ZjOTOyjBlZxowsY0aWaSQjmx7kfgz4j03Pz1WvbbtMZl4Bvgf8SMN19dU0/dJVpf16APi7\nRivqt6n6FRG/GRHfYvgP70dbqq2PJvYrIn4SuDkzP99mYT017d/HD1a7cX0mIm7e5v15YT6WMyPL\nmJFlzMgyZmSZRjKy6UFuu18Ot/56Mc0y88JelJm6XxHxy8Ai8PFGK+q3qfqVmZ/IzLcDvwP8XuNV\n9dfYfkXENcCfAB9rraJ+m+b79TngQGa+C/h7rm5tmkfmYzn7UcaMLGNGljEjyzSSkU0PcueAzdPk\nW4Dzo5aJiGuBHwa+03BdfTVNv3TVVP2KiJ8Dfhc4kpn/21JtfVT6/XoCuLvRivptUr8WgFuBMxEx\nAH4GODXHB3NP/H5l5n9u+jv4GHCopdr6yHwsZ0aWMSPLmJFlzMgyjWRk04PcM8DBiHhbRFzH8GDt\nU1uWOQXcVz2+B/hSVkf8zaFp+qWrJvar2qz/KMOAuthBjX0yTb8Obnr688DzLdbXN2P7lZnfy8wb\nMvNAZh5geHzJkcxc66bczk3z/dq/6ekR4N9arK9vzMdyZmQZM7KMGVnGjCzTSEZeW2uJW2TmlYg4\nBnyB4dlaHs/Mr0fEw8BaZp4CPgn8dUS8wPCXxnubrKnPpulXRPwUcBJ4E/CBiPiDzPyJDsvuzJTf\nr48DPwj8bXWOgG9n5pHOiu7QlP06Vv06exn4Llf/Ezl3puyXKlP266MRcQS4wvDf+/s7K7hj5mM5\nM7KMGVnGjCxjRpZpKiNjvn/ckyRJkqTZ0/gFwSVJkiRJ9XKQkyRJkqQZ4yAnSZIkSTPGQU6SJEmS\nZoyDnCRJkiTNGAc5SZIkSZoxDnKSJEmSNGP+H4p0n+WmTocAAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f71d37c1f90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(15, 12))\n",
"\n",
"n_list = [2, 5, 10, 20, 30, 43]\n",
"cnt=0\n",
"\n",
"for n in n_list:\n",
" cnt+=1\n",
" plt.subplot(3,2,cnt)\n",
" p_trace = getMCMCResult(data_angel[:n])\n",
" ret = plt.hist(p_trace, bins=np.linspace(0, 0.5, 50), normed=True, \n",
" color=\"#0000FF\", alpha=0.5, edgecolor=\"#0000FF\", lw=2)\n",
" plt.xlim([0, 0.5])\n",
" N = len(p_trace)\n",
" bci = np.sort(p_trace)[int(N*0.95)]\n",
" plt.vlines(x=bci, ymin=0, ymax=ret[0].max(), label='95% BayesCredibleInterval', \n",
" color='red', linestyles='--', linewidths=2)\n",
" plt.legend()\n",
" plt.title('observation number = %d'%n)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.14"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"toc_cell": false,
"toc_position": {},
"toc_section_display": "block",
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment