Skip to content

Instantly share code, notes, and snippets.

@sunbluesome
Created June 9, 2018 14:15
Show Gist options
  • Save sunbluesome/44fa6a747be6d0d75e7f2b0cecad1429 to your computer and use it in GitHub Desktop.
Save sunbluesome/44fa6a747be6d0d75e7f2b0cecad1429 to your computer and use it in GitHub Desktop.
PRML_chap1: BayesianCurveFitting
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Julia Version 0.6.2\n",
"Commit d386e40c17* (2017-12-13 18:08 UTC)\n",
"Platform Info:\n",
" OS: Windows (x86_64-w64-mingw32)\n",
" CPU: AMD Ryzen 7 1700 Eight-Core Processor \n",
" WORD_SIZE: 64\n",
" BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Barcelona)\n",
" LAPACK: libopenblas64_\n",
" LIBM: libopenlibm\n",
" LLVM: libLLVM-3.9.1 (ORCJIT, generic)\n"
]
}
],
"source": [
"versioninfo()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__多項式__\n",
"$$y(x,{\\bf{w}}) = w_0 + w_1 x + w_2 x^2 + \\cdots + w_M x^M = \\sum_{j=0}^M w_j x^j$$\n",
"\n",
"を使って、与えられた観測値$t$の予測をすることを考える。 wはパラメータベクトル、Mは次数である。目標値に対する不確実性は確率分布で表現できる。今回は観測値の平均が個の多項式に等しいガウス分布に従うものと考える。すなわち\n",
"\n",
"$$p(t|x,{\\bf{w}},\\beta) = \\mathcal{N}\\left(t|y(x,{\\bf{w}},\\beta^{-1})\\right)$$\n",
"\n",
"と書ける。$\\beta$は分散の逆数で、精度パラメータと呼ばれる。\n",
"\n",
"今、独立な訓練データ$\\{{\\bf{x,w}}\\}$が得られたとすると、尤度は\n",
"\n",
"$$p({\\bf{t}}|{\\bf{x,w}},\\beta) = \\prod_{n=1}^{N}\\mathcal{N}\\left(t_n|y(x_n,{\\bf{w}}),\\beta^{-1}\\right)$$\n",
"\n",
"と書ける。計算しにくいのと、数値計算での桁落ちを防ぐ意味で対数をとって対数をとると\n",
"\n",
"$$\\ln p({\\bf{t}}|{\\bf{x}},{\\bf{w}},\\beta)=-\\frac{\\beta}{2} \\sum_{n=1}^{N}\\{y(x_n,{\\bf{w}})-t_n\\}^2+\\frac{N}{2} \\ln \\beta - \\frac{N}{2} \\ln (2\\pi)$$\n",
"\n",
"という形の対数尤度が得られる。\n",
"\n",
"この対数尤度を最大化する${}\\bf{w}$を求めることを考える。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"最小二乗法の時と同じように、wについての微分が0になることを考えれば、${\\bf{w}}$に依存しない第2項、第3項は考えなくてよいことになる。すなわち、尤度の最大化は二乗和誤差の最小化と等価であることがわかる。\n",
"\n",
"$\\beta$は推定された${\\bf{w}}_{ML}$を用いて以下の式で推定できる。(MLはMaximum Liklihoodの頭文字)\n",
"$$\\frac{1}{\\beta_{ML}} = \\frac{1}{N} \\sum_{n=1}^{N} \\left\\{y(x_n,{\\bf{w}}_{ML})-t_n \\right\\}^2$$\n",
"\n",
"なんでって思う人のために書いておくと、推定された${\\bf{w}}_{ML}$を使って実際に予測して、データとの当てはまりを二乗和誤差の期待値として計算しているだけです。\n",
"\n",
"今回の話では、最小二乗法で${\\bf{w}}_{ML}$を求めて、上式で$\\beta_{ML}$を求めればよいということになりますね。\n",
"\n",
"これらを尤度の式へ代入すれば、観測値$t$に対する予測分布が得られたことになる。\n",
"\n",
"$$p(t|x,{\\bf{w}}_{ML},\\beta_{ML}) = \\mathcal{N}\\left(t|y(x,{\\bf{w}}_{ML}),\\beta^{-1}_{ML}\\right)$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"ここまでは、データの予測に対する不確実性の話だった。 \n",
"では、推定した${\\bf{w}}$は観測値$t$に対してどのくらい不確実性があるのだろうか。 \n",
"\n",
"今までの話と同様に、${\\bf{w}}$に対しても分布を導入することで推定の不確実性を表現できる。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"簡単のため、${\\bf{w}}$の各成分が平均0の独立なガウス分布に従っているとすると、その事前分布は\n",
"\n",
"$$p({\\bf{w}}|\\alpha) = \\mathcal{N} ({\\bf{w}}|0,\\alpha^{-1} {\\bf{I}}) = \\left(\\frac{\\alpha}{2\\pi}\\right)^{(M+1)/2} \\exp \\left\\{-\\frac{\\alpha}{2} {\\bf{w}}^\\mathrm{T} {\\bf{w}}\\right\\}$$\n",
"\n",
"と書ける。$\\alpha$は精度パラメータである。$\\alpha$のようなモデルパラメータの分布を制御するパラメータはハイパーパラメータ(hyperparameter)と呼ばれ、自動で決まるようなものではないので注意。詳しくないが、文献ベースで妥当なパラメータの範囲を調べたりするのが通常?なんの情報も持っていなければ、パラメータの範囲を小さく(すわなち事前分布の分散を大きく)して使うのが簡単な使い方だと思われる。あんまり適当にやると、推定値のバイアスが云々という話になるらしいので注意が必要かもしれない。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"さて、話を元に戻すと、事前分布が得られたのでベイズの定理より、尤度関数と積をとれば事後分布に__比例する__形の式が得られる。\n",
"\n",
"$$p({\\bf{w}}|{\\bf{x,t}},\\alpha,\\beta) \\propto p({\\bf{t}}|{\\bf{x,w}},\\beta)p({\\bf{w}}|\\alpha)$$\n",
"\n",
"イコールじゃないことには注意が必要である。\n",
"\n",
"$$p({\\bf{w}}|\\alpha) = \\mathcal{N} ({\\bf{w}}|0,\\alpha^{-1} {\\bf{I}}) = \\left(\\frac{\\alpha}{2\\pi}\\right)^{(M+1)/2} \\exp \\left\\{-\\frac{\\alpha}{2} {\\bf{w}}^\\mathrm{T} {\\bf{w}}\\right\\}$$\n",
"\n",
"$$p({\\bf{t}}|{\\bf{x,w}},\\beta) = \\prod_{n=1}^{N}\\mathcal{N}\\left(t_n|y(x_n,{\\bf{w}}),\\beta^{-1}\\right)$$\n",
"\n",
"より、事後確率の最大化は\n",
"\n",
"$$\\frac{\\beta}{2} \\sum_{n=1}^{N} \\left\\{y(x_n,{\\bf{w}}) - t_n\\right\\}^2 + \\frac{\\alpha}{2}{\\bf{w}}^\\mathrm{T} {\\bf{w}}$$\n",
"\n",
"の最小値で与えられる。対数尤度をとって${\\bf{w}}$に依存しない項を除いただけである。第2項が正則化項になっていて、正則化パラメータ$\\lambda=\\alpha/\\beta$となっていることも重要なポイントである。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ベイズ曲線フィッティング"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"色々と分布がどうとか書いてきたけど、結局今までの${\\bf{w}}$の推定は点推定でしかない。 \n",
"とりうる${\\bf{w}}$全てについて尤度の積分をして、事後分布として予測分布を得たいわけである。すなわち予測分布は\n",
"\n",
"$$p(t|x,{\\bf{x}},{\\bf{t}}) = \\int p(t|x,{\\bf{w}})p({\\bf{w}}|{\\bf{x}},{\\bf{t}}) d{\\bf{w}}$$\n",
"\n",
"という形で得られる。この計算は通常簡単ではないので何とかして代わりの方法で頑張るのが通常だと思われる。\n",
"\n",
"例:\n",
"- Metropolis Hastings\n",
"- Multiple-try Metropolis\n",
"- Hamiltonian Monte Carlo\n",
"- NUTS\n",
"- GMTM\n",
"- GMPM\n",
"- Parallel Tempering (Replica exchange)\n",
"- Particle filter (Sequential Monte Carlo)\n",
"\n",
"今回扱っている問題ではガウス分布しか登場しないので、解析的に解けて\n",
"\n",
"$$\\begin{align}\n",
"p(t|x,{\\bf{x}},{\\bf{t}}) &= \\mathcal{N}(t\\;|\\;m(x), s^2 (x))\\\\\n",
"m(x) &= \\beta \\phi (x)^\\mathrm{T} {\\bf{S}} \\sum_{n=1}^{N} \\phi (x_n) t_n\\\\\n",
"s^2(x) &= \\beta^{-1} + \\phi (x)^\\mathrm{T} {\\bf{S}} \\phi (x)\\\\\n",
"\\end{align}\n",
"$$\n",
"となる。\n",
"\n",
"行列$S$は\n",
"$${\\bf{S}}^{-1} = \\alpha {\\bf{I}} + \\beta \\sum_{n=1}^{N} \\phi(x_n) \\phi(x_n)^T$$\n",
"である。なお$\\phi$は$\\phi_i (x) = x^i\\;\\; (i=0,1,\\ldots,M)$という要素を持つベクトルである。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"はい、長くなったが実装していく。\n",
"今回は$\\alpha$、$\\beta$も既知とした。"
]
},
{
"cell_type": "code",
"execution_count": 197,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"predict (generic function with 3 methods)"
]
},
"execution_count": 197,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function _ϕ(X::Vector, M::Int)\n",
" pow = Array(0:M)\n",
" ϕ = hcat([x.^pow for x in X]...)'\n",
" return ϕ\n",
"end\n",
"\n",
"function fit(X::Vector, t::Vector, M, α, β)\n",
" ϕ(_X) = _ϕ(_X, M)\n",
" S = inv(α*eye(M+1) +β*ϕ(X)'*ϕ(X))\n",
" m = β*S*ϕ(X)'*t\n",
" return S, m\n",
"end\n",
"\n",
"function predict(X::Vector, S::Matrix, M, α, β)\n",
" ϕ(_X) = _ϕ(_X, M)\n",
" y_mean = ϕ(X)*m\n",
" y_std = sqrt.(1/β + sum(ϕ(X)*S.*ϕ(X), Dims(2)))\n",
" return y_mean, y_std\n",
"end\n"
]
},
{
"cell_type": "code",
"execution_count": 222,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiUAAAG2CAYAAACgd/abAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd4FFX3wPHv7CabnhDSAwlFsAIiTUDpAoqogFhABRTFhoqAFEEERFBpYhfFFwQVpeqLiPryC9KLIAiI9AhCgPSebLI7vz+umxAhkIRtSc7neeYJ2TJzdzfsnLn33HM1Xdd1hBBCCCFczODqBgghhBBCgAQlQgghhHATEpQIIYQQwi1IUCKEEEIItyBBiRBCCCHcggQlQgghhHALEpQIIYQQwi1IUCKEEEIItyBBiRBCCCHcggQlQgghhHALEpQIIYQQwi1IUCKEqNYefPBBIiIiCAwMpEmTJqxatcrVTRKi2tJkQT4hRHW2f/9+GjZsiMlkYvv27XTt2pVjx44REhLi6qYJUe1IT4kQolq74YYbMJlMAHh4eGA2mzl16pSLWyVE9SRBiah0Vq9ejaZpaJrG559/fsH9ZrOZhg0bomka119/vcPasX37drp3705AQAD+/v506tSJTZs2Oex4jrZu3bqi9/Xf29atWx167MzMTEaNGkW3bt0ICwtD0zQmTpxY6uOzsrIYNmwY0dHReHt707RpUxYvXlzh4z/00EN4e3vTvHlzOnfuTOPGjSu8L4CcnBwmTZrEtddei7e3NyEhIfTv35/U1NQr2u+llPU9LO97be/nC3EpEpSISmfXrl0ABAYGsnfv3gvunzVrFmfOnAGgefPmDmnDjh07aN++Pbm5uSxcuJCFCxeSl5dHly5d2LJli0OO6SxTp05ly5YtJbZGjRo59JjJycnMnTuX/Px8evXqddnH9+nThwULFvDqq6/yww8/0LJlS/r168eXX35ZoeN/8cUXZGVl8eOPP9KtWzc0TavQfgB0Xadfv368/fbbPPnkk/zwww9MmDCBxYsXM3PmzArv93LK+h6W97229/OFuCRdiEqmd+/eelhYmN67d2+9e/fuJe47ffq07u/vrw8ePFgH9NmzZzukDd27d9cjIiL07OzsotsyMjL00NBQvW3btg45pqPFxcXpgL5kyZJyPzc9PV1fvXp1qff/97//1bOyskq932q16larVdd1XU9MTNQB/dVXX73oY7///nsd0L/88ssSt3ft2lWPjo7WCwsLdV3X9c6dO+teXl4X3caPH19qW+688079+++/L/X+yyntfYyIiNCHDRtW4f1eTlnfw/K811dyHCEqQnpKRKWzc+dOmjVrRtOmTS/oKRk9ejS1a9embdu2ADRr1swhbdi0aRMdO3bE19e36LaAgADat2/P5s2bSUhIqPC+dV3no48+onHjxnh7e9OgQQOWLl2K1WqlUaNGTJ061R4vwa4+/fRTevbsyYIFCy647+OPP+buu+++6FCbjW2YqCxWrFiBv78/9913X4nbH330UU6fPs22bdsAWLt2LXl5eRfdXnvttVL3b7FYOHLkSJnacjFLliwhODiY3r17F922fv16zp49S+fOnSu838sp63tYnvfaEc8X4lIkKBGVSnJyMidOnCgKSk6fPk1KSgoAW7duZdGiRbz99tv8/vvvaJrGTTfddME+dF2nsLCwTFtpzGYzXl5eF9xuu+1iw0ploes6DzzwAMOHD2fAgAGsWrWKevXqMWjQIObPn09qairDhg1zyGuyefbZZ/Hw8CAwMJDu3buzcePGyz5n+PDhDBs2jEcffZSPP/646PY5c+bw1FNPMXbsWJ5++unyvRml2LdvH9dddx0eHh4lbm/SpEnR/WV15swZli1bRnZ2NoWFhXzzzTfExcXRoUOHCrdv8+bN3HzzzQCcPn2a//znP9x777106dKFnj17XvQ59vz8hKjMPC7/ECHchy2fpHnz5jRt2hRQAUD79u15/vnn6dmzJ927d+f111/n6quvJiAg4IJ9/PLLL3Tq1KlMxzt+/Dh169a94Pbrr7+erVu3YrVaMRhUbF9YWFh0lZ6cnFyRl8f8+fNZsmQJX3zxBf379wdUoNO+fXtGjhzJW2+9VaJ3xp6vKSgoiBdeeIGOHTsSEhLCkSNHmD59Oh07duT777+ne/ful9zvzJkz8fb25qmnnirqkRgzZgyTJ0/mlVdeKVPbyiI5OZn69etfcHvNmjWL7i+Pt99+m8ceewxN02jYsCHffPMNN954Y4XalpeXx759+7jnnnuYOnUqEyZMACA2Npb58+eX2sNgj89PiKpAghJRqezcuRNQwzKxsbHUrFmTvXv3cuzYMfbs2cOXX36Jruvs3r271KvS5s2bs2PHjjIdLzo6+qK3P/fccwwePJihQ4cybtw4rFYrkyZN4q+//gIoClTK67333qNRo0ZFAQlAcHAwAJGRkTz66KMXfZ49XtNNN91UomepXbt29O7dm8aNGzNq1KjLBiUAr7/+Ot7e3kW9OdOnT2fkyJFlald5XGr4oDxDC5GRkWzYsMEeTQJU0FxYWEirVq249tprufnmm9m6dStvv/027du35/fff8ff3/+C59nj8xOiKpCgRFQqu3btIjg4mHr16gFw4403smnTJuLi4njxxRdp0KABhw4dIjMzs9SZN/7+/kW9LJfz7yECm8cee4zExESmTJnChx9+CECbNm0YOXIkb775JrVq1Sr3a0tNTeW3335jzJgxJW63WCyAOuEbjcaLPtcer+liatSoQc+ePfnoo4/Izc3Fx8fnss9JT09H0zR0XSctLa3MxyqrkJCQi/aG2IbxbD0mrrB9+3YAWrVqRWhoKPXr16dbt25cffXV9OvXj61bt3Lbbbdd8DxHfX5CVDaSUyIqlV27dpVIXrXVp9A0jXHjxgHFvSmlBSW//PILnp6eZdri4+NLbcvo0aNJSkpi7969xMfHs3nzZlJTU/Hz86vQVOQjR46g63pRwGUzd+5cAFq2bFnqc+31mi5G/6fo8+V6IHRdZ+jQocyePZt58+bx4YcfMnXqVLv3lDRu3JgDBw5ckF9hy+Nx9PTlS9m+fTv169cnNDT0oveX1svhyM9PiMpEQm5RaaSnp3Ps2DHuvffeotvuuOMOjh07xsCBA4vyR3bt2lVqkivYt6vcy8ur6CR44sQJvv76a5544oky9Sj8m60XJDExsei2nTt3FgUl+iVWhHBU939qaiqrVq2iadOmeHt7l/o4q9XKkCFDWLBgAV988QUPPvggAD4+PgwePJjc3Fzee+89u8za6N27N5988gnLli3jgQceKLp9wYIFREdHFyWZusL27duJiooqcZuu63z66ac0atSo1GJ+MnwjhCJBiag0du3aha7rJXpKunbtSteuXS943FVXXUVQUNBF9xMQEECLFi2uqC379u1j2bJltGjRAi8vL/bs2cMbb7xBw4YNLzrdVNM0OnTowLp160rd5w033EBYWBizZ8+mbt26GAwGhg8fTt++fVm8eDFz585lyJAhxMTEOOQ19e/fn9jYWFq0aEFoaCiHDx9m5syZnD17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saJ/169fn3feeYdWrVqRlZWFv78/Nf+pPxUeHk6NGjWKHnvvvfeWONa8efMIDw/njz/+oFFpL9aB5JK5qtL14hkgnp5yAnQHmqZ6qgoKiofShBCVQlSU+rlv38Xvt91ue5w9HT16FLPZTJs2bYpuq1mzJtdcc03R77/99hv33HMPderUISAggI4dOwJw4sSJy+67f//+1K9fn8DAQOrVq1em5zmKBCVVka6rZNYzZ9QUVR8fV7dInC8wUPX3njoFbp4JL4RQ2rWDunVh6tQLc9atVpg2DerVU4+zN/0ys/eys7Pp1q0b/v7+LFq0iB07drBixQpADetcyl133UVycjKffPIJ27ZtY9u2bWV6nqNIUFLVWK1qpodtyq+3t6tbJC7G11dVgj11SgWQMmVYCLdmNMLMmbBqFfTqVXL2Ta9e6vYZM9Tj7K1BgwZ4enqydevWottSU1M5dOgQAH/++SdJSUm88cYbtGvXjmuvvbYoydXGZDIBYDkvEzc5OZkDBw4wfvx4unTpwnXXXUdqaqr9X0A5SE5JVWIrinbunFq1VqqJujcfH9VjcuaM+uxCQiQJWQg31qcPLF2qZuG0bVt8e7166vY+fRxzXH9/fwYPHsxLL71ESEgIERERjBs3DsM/3xexsbGYTCbeffddnnrqKfbt28drr71WYh916tRB0zRWrVpFjx498PHxITg4mJCQEObOnUtUVBQnTpxgzJgxjnkRZeTQb8D169dz1113ER0djaZprFy50pGHq95sPSQSkFQuXl4q3+fsWallIkQl0KcPHDkCcXHw5Zfq5+HDjgtIbKZPn0779u25++67ue2227j11ltp3rw5AGFhYcyfP58lS5Zw/fXX88YbbzBjxowSz69VqxaTJk1izJgxREREMHToUAwGA4sXL2bnzp00atSIF198kenTpzv2hVyGpl9usOoK/PDDD2zatIlmzZpx7733smLFCnr16lXm52dkZBAUFER6ejqBgYGOamblZwtIEhMlIKmsCgtV4mtoKISHS4+JEA6Ql5fH8ePHqVevHt4ytH3FLvV+VvT87dDhmzvuuIM77rijzI/Pz88n/7waDhkyO+HyqnBAUmgt5GTWaY5kxHM44xhH0uM5l5dMviWfPEs++RYzBdYCgkyBhPuEEu4dQphPCDF+0dwU0oi6ATFomubql1E2Hh4qATYpSeWXhIc7ZnBaCCHcmFvllEybNo1Jkya5uhmVh66rk1gVCUjyLflsPbeLuNObiTu9mW2Jv5FvqXihsWCvGjQLaUTz0CZ0jr6FTtFtMRlNdmyxndkCk+Rk9bsEJkKIasahwzclDqRplx2+uVhPSUxMjAzfXMz5034rcUCSU5jLt/E/svDIMuJObybPklfifi+jF1cF1KFBUF0aBNYl2jcCb6M33kYvvIwmPA0epJkzOJebxLncZM7lJXE04y9+TzlAgbWgxL4CPQPoEduZe+p0546YTgSZ3PRvyjaUExIigYkQdiTDN/ZV6YZvysvLywsvWSTu8myF0c6eVYsvVLKARNd11p/ZyueHlrLk+CoyC7KK7gv3CVW9GlFt6RjVhgZB9TBo5c+vMFvM7Es9yM6k39l27je+P7GWM7nnWHz0WxYf/RYvoxcP1r+boTc8SouwG+358q6ch4eqvmvrMYmIkBwTIUS14FZBiSijtLTiOiQmNx6O+JdCayFLjq1i2p732JtyoOj2uv4xDLi6L/fV68kNwdfYJQ/EZDTRLLQxzUIb88S1D2HVrexI3M3K+B9ZEf8DB9OPsuDwEhYcXsLN4Tcx9PpHua9+T7yMbhIUG43FQzmaJsmvQohqQYKSyiY9vbhSayXpfsy35PP54aW8uecDjmbEA+Dv6ceD9e9hQMO+3BLZskK9IeVh0AzcHN6Mm8ObMa3VWLaf+41393/GN8dWse3cb2w79xtjd0xjUvORDGjYFw+DG/zXOD/5VdMgLEwCEyFElebQb96srCyOHDlS9Pvx48fZvXs3NWvWJDY21pGHrpqyslRAYjJVitLxuq7z9bHvGLVtCiezTwMQ4hXMsEaP8+wNgwj2qnGZPThOq/CbWBj+LjNunsCnB7/kgz8+5+/sBAavH8H03z/k9Raj6V33DtfP3vHwUDlDiYnFgYmr2ySEEA7i0ETXdevW0alTpwtuHzhwIPPnz7/s86VOyXlyc1VJcqtV5ZEAFgts2GYi4ZyRqHAL7W42u01O5J7k/Ty3+RU2nFHrKET7RjKyyZMMufZh/Dx9Xdy6C+UV5vH+H/OZuvtdUvLVejStwm7ivVum0DKsqYtbB5jNKiiNjFQJsBKYCFFukuhqX45IdHXa7JuKkKDkH/n5arl7s1klQALLV3szYnIQ8SeLo5C6MRZmTkinT4+80vbkcCl5qYz/9S0+/nMRVt2Kj9Gbl5s+x4gmT+Lj4f69O+nmDGb8/hGz9s4lpzAXg2bghRsG81qLUa4PpsxmyM5Wy5D+swy5EKLsJCixL0cEJTJA7e4KCtSQTV6eyi9ABSR9hwTTuKmhxKJQjZsa6DskmOWrXfOf7YeT/8cNSzvz4YHPsepWHqh/N3/ev57xzYZVioAEIMgUyGstRnH0gc081KAPVt3K7H2f0GhpZ348uc61jbMN2505o3KLhBCiipGgxJ1ZLGotm8xMqFEDNA2LBUZMDqJnT1i5UqN1azWa07q1+r1nTxj5WiDnLQTpcNkFOTy9cQw91jzCmdxzXFujAXF3LmFxlw+J9a/lvIbYUaRvOIs6vcvq2xcS61+L+KyT3L7mIQaue4FMc9bld+Ao3t5qvZwzZ9TfhRCiWujYsSPDhg2z2/4GDRpUrmVfnEWCEndlq9aamloUkIDKIYk/aeTll7ULJmIYDDB2rMbxEx5s2OacqcJbz+6k6fKufHRgIQAvNBrMrt5r6Bjd9jLPrBzuiOnM/r5xDGv0OBoanx9eSouVd7A7eZ/rGuXjo/4ezpyBnBzXtUMIIexMghJ3lZKiZlwEBpaYBppwTuWQNGp08afZbrc9zlF0XWfW7x9z6397cyQjntp+Ufyvx2LebjO50gzVlJW/px+z20xiw10rqO0XxaH0Y7T+9m4+/GMBLkvJ8vdXPWkJCWpoTwhRMbqucrWcvZXju2PQoEH88ssvzJkzB03T0DSN+Ph4/vjjD3r06IG/vz8RERE88sgjJCUlFT1v6dKlNG7cGB8fH0JCQrjtttvIzs5m4sSJLFiwgG+//bZof+vWrXPAm1t+EpS4o4wMNWzj66umhJ4nKlyNy+wr5ULddrvtcY6QXZBD/7hnGbFtMhbdQr+rerH33rV0qdXOYcd0B7dEtmR3n5/oGXsb+ZZ8ntn0Mg+sfYoMs4uGUQIDVRL0mTMq90gIUX45OSrId/ZWjl7OOXPm0KZNG5544gkSEhJISEjA09OTDh060LRpU3799VfWrFnD2bNnuf/++wFISEigX79+PPbYYxw4cIB169bRp08fdF1n5MiR3H///dx+++1F+2vb1j16t92gQpQoITdXlY/38LhocbR2N5upG2Nh6lQDK1eWHMKxWmHaNJ16sWp6sCMcy/iL3j8P5veUA3hoHsxuM5Fnrx9U8Xoeug6nT8PBg2qGkW3F48RE1VtUUKBemMWifppMajjLtgUHQ2wsXHWV2mo4tvZJiHdNvus2n9l75zJ6+1SWHF/FH2mH+W+3+dQLdEHtnaAgNcR39qyaleMuc8KFEHYTFBSEyWTC19eXyMhIACZMmECzZs2YOnVq0eM+++wzYmJiOHToEFlZWRQWFtKnTx/q1KkDQOPGjYse6+PjQ35+ftH+3IUEJe7EbFZXvYWFRVN//81ohJkT0uk7JJhevXTGjtVo1Ej1kEybprNqFSydm+GQc9PPf6/ngf97mtT8NMJ9QlnaZS7tom4u307OnYNNm2DHDjhwQAXTrVHnAAAgAElEQVQj9pxJEhICV18NLVtCq1bQvHnRrCV70TSN4U2e5JbIlvT5+Qn2px7k5m97srLbPNpGtLTrscrQGBWIpaWpQFbK0QtRPr6+qgaQK457BXbu3ElcXBz+/9StOt/Ro0fp1q0bXbp0oXHjxnTv3p1u3brRt29fgoODr+i4jiZBibuwWNTVbna2uvq/hD498lg6N5URk4No27Y4+qgXa2Hp3AyH1ClZcOgbHl//EoV6ITeH38Sy2z6hll/U5Z+Ynw+//ALr16tg5NChCx9jNKpejrp1VcXS8HD1MyRE9YwYDOoxRqPKn0hLU1tqqlobJj4ejh5VAV1yspofvWWL2remwXXXQYcO0L27ClLsdNK+ObwZ2+75L3f/9Ci/Je+j8/cP8Fn7mfRv0Nsu+y8zg6G4HL2HhxRXE6I8NA38/FzdinKzWq3cddddvPnmmxfcFxUVhdFo5Oeff2bz5s389NNPvPvuu4wbN45t27ZRr149F7S4bCQocQe2mTbp6SVm2lxKnx553NM9z+EVXXVd54097/HyjjcAeKhBH+a1n3HphesKCmDDBvjuO1izpuTUVU1T2bht2kDjxnDNNdCggZrmeqWysuDYMdVttH276o2Jj4c//lDbhx+qYKdbN+jRA9q1u+Lhjtr+0ay/azkPxz3Ht3/9yENxQzmUfoxXmw13bol6Dw/1xWob+nPwMJYQwrlMJhOW82o9NGvWjGXLllG3bl08PC5+Ktc0jVtuuYVbbrmFCRMmUKdOHVasWMHw4cMv2J+7kKDEHaSnq6AkIKBcV/FGI3Rs65jcEQCL1cKwLa/y3h//AWBUk2eY1mps6YvnHTsG8+fDsmWqJ8MmKkoFArfeqoIRR3Uf+vtDkyZq699f3Xb2LGzdCj/9BGvXqlyVL75QW2QkPPgg9OsHtWtX/LCefizv+iljt0/jrd8/YNKuWZzLTeK9W153+EKDJXh5qbwbW2BykW5dIUTlVLduXbZt20Z8fDz+/v48++yzfPLJJ/Tr14+XXnqJ0NBQjhw5wuLFi/nkk0/49ddfWbt2Ld26dSM8PJxt27aRmJjIddddV7S/H3/8kYMHDxISEkJQUBCenp4ufpVSZt71srNVgqeHh1stspdXmMcj655n6fHv0dCY3WYiLzR6/MIHWq0QFwf/+Y/6aRMaCnfdBXffDS1aXDLYctoaPmazGtb54QdYtUoN/4DqvWnfHgYOhK5dr2h456M/PueZTS+jo/NIg3v5rMMs5684nJmp/p5q17ZPD5QQVURlLjN/6NAhBg4cyJ49e8jNzeX48eMUFBQwevRo4uLiyM/Pp06dOtx+++3MmjWLP//8kxdffJFdu3aRkZFBnTp1eO655xg6dCgAiYmJPPTQQ2zZsoWsrCzi4uLo2LFjudoka99UNWazWmQvP9/uyZhXIq8wj94/P86av+MwGUws7DiH+6+6u+SDCgthxQqYMweOH1e3aRp06QKDBqmTfBkiC5et4ZOfr4aWvvwSNm4svr1hQ3jmGejdGyp41fDlkRUMWPcCFt1C77p38FXn9y893OUIaWmqpyQ6+oJp5UJUV5U5KHFHsvZNVWIrIZ+drYZt3ERuYS73/PQYa/6Ow9fDh9W3f14yILFYVDDSqRMMG6YCksBAGDJEndwXLFD3lTEgcdkaPl5ecM898PXXsHkzPPus+hwOH4YXX4S2bWHevAoVJuvfoDfLbvsEk8HEivgfuOvHQWQXOLnyalCQqneTmKh6s4QQohKQnhJXSUxUY/81arjNFE5bQPLzqfX/BCQL6RDVRt2p6/Djj/Dmm8UzaIKDVa/CwIHlzl63WKDBLRE0bnrxeiu9euns22Ph8MZzziu9kZEBCxfCJ5+ozwegVi0YNQr69Cn35/S/U+u556fHyCnMpWNUG1bfvtC51W4LC9VrioxUw2lCVHPSU2Jf0lNSVdiuYP393SYgySnM5e6fHuXnU+vx8/Dlh9sXFQckR47AQw/B4MEqIAkKUifqrVtVUFKB6XTutoYPoHp8nn1Wva5p01SC7qlT8MILcPvtalpzOdxWqz3/67GYAE9/1iVsoc/PT5BvyXdQ4y/CNiPn3Dn1NyeEEG7OPc6I1UlenjpJeHqqGhxuIN+Szz0/Pcr/Tm3A39OPNXd8Qfuo1mqK7ZQpcNttqtaIyQRDh6qT9gsvXNHsDndZw+eivL1hwAA1rfnll9Wwzv79apbOww+racZl1CaiBatvX4ivhw9r/o7jgbVPU2B1Ykl4Ly/1uZ09q6oFCyGEG5OgxJksFtVDYja7TbEei9VC//8bWhyQ3P4Ft0a2UlNoO3RQtT0KClRg8n//B2PH2iUp1x3W8LksHx/Vc7J5Mzz+uAok4+JUMu8776jPsQxujWzFt90+w8voxbd//cgjcc9jsTrxdfn6qs/w7FlZI0cIcN1CmlWMI95HCUqc5fwCaW6SH6PrOk9tHMPy+NWYDCa+7foZt/hcrXpBHn1UVUitW1fVHlmwAOxYBbB4DR/9gjzM4jV8Ch22hk+51KwJkyapOie33qp6u958U1WI3batTLu4rVZ7lt02F0+DJ18f+47HN4zEqjsxATUoSPV8JSVJ4quotmx1OHLKsRieKJ35nwszox0T/yTR1VnS01V+gp9fhaea2tvY7dN4Y897GDQDS7p8TJ+/fGHECBWMaBo89RSMHHnRhQHtwTb7pmdPSlnDJ9Wx04IrQtfV7KOJE1VJe1BToMePL1OdmWXHv+eBtU9j0S2MavIMb948zqHNLcFiUX+HUVGqFL0Q1VBCQgJpaWmEh4fj6+vr3MrLVYjVauX06dN4enoSGxt7wfsodUrcWV4enDypTvRXuAiTvcz8/SNGbnsNgP+0msagr/5QM09A9Y68/bZa1M7BLlanpF5sITNeccwaPnaTmqqSYb/4Qv1evz68+y40bXrZpy449A2DfnkRgHfbTmHoDY86sqUl5eerv8fatd1qKroQzqLrOmfOnCHt/KrTokIMBgP16tXDdJH8SAlK3JXFonpIMjMdV169nBYdXsYj654H4OPaTzNk9nqVyAlqhs3YsU6tLuu0iq6OsH69qmty5oyqzfLii/Dcc5ctWPb6b3MY/+tbaGgsu+0Tete7w0kNRg3jGAwqMJFpkaKaslgsFEiO1RUxmUwYSplBKkGJu3KzeiTrE7Zy2+oHKbAWMD+rKwM/2qJOUjVrwnvvqeRWUT6pqWqWznffqd+bNVMJwpdYT0fXdZ7eOIaP/1yEt9GbtXcupm2E43umiqSlqZ6S6OgrXpRQCCH+TeqUuKPMTLeqR3I4/Ri9fx4M5gJWba7LwBk/q4Ck1XmzbUT5BQfDhx9iffd9Cn0DYdcuCrrcjmVtXKlP0TSN9255nbtiu5JnyeOuHwdxMO2I89ocGKjyS5KTVZ6MEEK4AdefKauq/HxVj8TDwy3qkaTkpXLnmgGQmsaWr/2586d4dcczz8A336jkR1Fhy1d7c9VbT3JVzu/soAWeWaloAx7hwJNvq/Gpi/AwePBV5w9oFXYTKflp9FgzgOS8FOc02GBQPSVJSVJYTQjhNiQocQSrVX3Z5+W5xfLxZouZPv97Au3YcXbOM9L8cJZq13/+A+PGuc1soMrq/DV8vt5Sh+uSNnKmz9MY0Llu1XTOdn+keKbOv/h5+rKq+wLq+sdwLPMv7vvfk84rrmYr4HfunBRWE0K4BQlKHCE1VW1ukAej6zpPbhyNcdMWtn4KdZMtEBMD334L3bq5unmVnsUCIyYH0bMnrFyp0bo1+Id4EbnsA6yfLyLP6EvEgV/Q77wT/vzzovsI8wnhu+7/wd/Tj7iEzby4ZaLzXoCtsNq5c2qtHCGEcCEJSuwtO1v1kvj6ukUC4Tv75+H55Tf8uAiC84AWLWDVKrj2Wlc3rUq45Bo+jzzEnwu2c5gGaCdPqlWJ16696H4a17yORR3fBeD9P+bz8YGFjm56saAglf8k+SVCCBeToMSeCguLl4p3g6mW605tIvWNicxdBR5W1Eq3X38tK8ba0eXW8Lnq7htozVbONrxVJRUPGgRz51705H9P3e5MaTEKgKGbxvNLwhZHNbskTZP8EiGEW5CgxF50XV1pZmW5xbDNyYyTHB42gIlx6uSnDxum1mtxg2CpKinLGj4phPDnpK+hf38VsE6aBKNHX3QdmpebPs8D9e+mUC/k3p+fID7zpCObX8zTUy3ed+6cyoUSQggXkKDEXjIz1ZVmQIC68nShvNxM9g24nSc2q5OLeeIEtJdecnm7qqKyruFz663AW2/Bq6+qmS9ffKEK1f0rwVTTND7rMItmoY1Jzk/lvv89Sb4l3zkvxtdXLTJ47lypM4aEEMKRJCixB7NZDdt4erp8Jouek8PB+zpxx440CgyQOH0ipieedGmbqjKjEWZOSGfVKujVS2fLFhWfbtmifl+1Cma8kqHSizQNhgyBefNUj9XatXD//ZBSchqwr4cPy2/7lJpeNfg1aQ/DtrzqvBcUFKSGcCS/RAjhAhKUXCldVwFJbq7rp//m5nL6vu7c+FsCuR6wb8ZLhPV/wrVtqgb69Mhj6dxU9u620ratGr1r2xb27bFcfFHBbt1g8WJV5XfXLujdWy1FcJ46AbX5otN7aGh8dGAhCw8vdc6LMRjU33FSkoquhBDCiaTM/JVKS4O//1ZXmK6cbZObS2b/vgRs302mCf475RH6P/SG69pTDZV7DZ9Dh1SeSUICREbCl1/CNdeUeMjEnTOZtGsWPkZvtvVaReOa1zn2RdhkZ6uenZgYlWsihBDlIGvfuIJt9V+DwakL2F0gN5fCgQPw2LSZTBNMGdGSN55dIUtyVwanTsHDD6sAJThY9aCcN5XHYrXQY80j/HTqFxoG1uPX3j8QaHLS6r6pqSrYjo52i2UShBCVh6x942xWqxq2KShweUCiP/YYHps2k+UJg54IZfTj/5GApLKoVQuWL4ebblJBwP33w2+/Fd1tNBj5ovN7xPhFczjjOIPXj8Bp1xGBgaonMDXVOccTQlR7EpRUVGqqWtDMlT04+fnw+ONo69eT5Qk9HzHy0uDPqOkd7Lo2ifILDoavvlKF7dLT4cEHYceOortDvWuy9La5eBo8WXr8e+b+ucg57TIa1YycxEQ1nCOEEA4mQUlF5Oaq2Qk+Pq7r1rZYYOhQWLeObE/o8RDcdd/LtI5o7pr2iCsTEKByStq0UbVu+veHzZuL7m4VfhPTWo4BYNiWiexPOeicdtnq2iQmShl6IYTDSVBSXhZL8Re0q4ZtdB1efhlWr8ZshHsehBrtuzK8sUz9rdT8/GDhQmjfHnJy4JFHYNOmortfbDyE22t3Is+SxwP/9zS5hU5aRC8gQAVKMk1YCOFgEpSUV2qqquPgymGb6dNh0SKsGvTvA4eaRDO/w2zJI6kKfHzU6s2dO6tE6kGDioZyDJqB+R1mE+ETxv7Ug4zYOtk5bbKVoU9OljL0QgiHkqCkPHJy1Bezn5/rhm3mzYM5cwB4+k5YfoPGok7vSh5JVeLtDZ98Utxj8vDDsHs3ABG+YSzs+A4AHx74nOXHVzunTZ6eYDKpXsJ8J1WYFUJUOxKUlJVt2MZqdV3dhhUrYMIEAKZ082ZuCxjbdCjto1q7pj3Ccby94bPPinNMHnqoaIGdrrXbM6rJMwAMXj+SE1mnLrUn+/H1VQFJUhIX1NQXQgg7kKCkrFJTVYXLACfViPi3bdtg+HAAlnWO4pU2ebQIvZGJzUe4pj3C8Xx8YP58aN5cTc3t1w8OqgTXKS1H0SrsJtLM6QxaNwyr7qQgITBQ/V9IS3PO8YQQ1YoEJWWRk6OuDl01bHPsGDz2GJjNHLz1Ou67NQFfTx++6PQungbXrrUjHMzfXyW/Nmmi1sjp1w9OnMDT4MkXnd7F18OHuITNzNn3qXPaYzSqYCkp6YLFBIUQ4kpJUHI5tmEbXXfNsE1qKgwYAGlpZDe6hpadDqMbYE6byVxd4yrnt0c4X1CQWlX42mvh7Fk1XTgpiQZB9ZjVWi3WN3bHG86bJuzjo2afJSbKasJCCLuSoORyXDlsYzbDE0/A8ePotaLpcX8BmcZCete9g8HX9HN+e4Tr1KwJixZB7dpw/LiaLpyVxZBrH6ZHTGfyLfk8vO45zBazc9oTGKhm4ki1VyGEHUlQcimunG2j6zBqFGzZAgEBzBp5K+utx4jwCWNuu7dk+m91FBWlekxq1oTff4fBg9HMZj5tP4MQr2B2J+9n0q5ZzmmLwaD+XyQmqkRcIYSwAwlKSmOxFM8ycMWwzccfw5IlYDSyf+pwXkpfAsDcdm8R6l3T+e0R7qFBA5Vj4usLGzfCCy8Q5RXKx+3eBOCNPe+z+eyOy+zETry8VA0TqfYqhLATCUpKk5amuqddMWyzfj28/joA+RPG0atgATo6Axvex911ujm/PcK9NG2q6tV4esJ//wuTJ3NvvTsZ0LAvVt3KI3EvkF2Q45y2BASodXGSk51zPCFElSZBycXY1rbx9XX+sM2JE/D006qH5oEHGHntCY5kxFPLL5K320xybluE+2rfvqiIHp9+Cp99xjttXyPGL5pjmX/x8o43nNMOTVMzhJKTVe6VEEJcAQlK/s1qVcM2hYXFi5E5S24uDB6semluuol1Q3vy3oH5AHzWfhY1vIKc2x7h3u65B8aOVf9+9VWC1m3l0/YzAHhn/zzWJ2x1TjtMJvDwgHPnoKDAOccUQlRJEpT8W3q62py9to2uw8iR8McfEBpK1vtvM2ibOuE8ee3DdKvdwbntcTVdV4FhQUHxZjarrbBQBY+yOBw8+6yaImy1wjPP0C0luGhm1mPrR5DjrEX7/PyKexjlcxFCVJAEJefLy1O9JD4+zh+2mTsXVq5UV5xz5zLq5Dz+yvqbuv4xTL/5Fee2xVksFlW2PDtbBYKpqapAWGqq+j0nR91v22xBSW6uGipIS1OPtW2ZmcXPqS5l0DUNpk6FDh3U+zJwILNqD6a2XxRHM+IZv+NN57UjIEB9fjKMI4SoIE3X3feyJiMjg6CgINLT0wl0dM+F1QoJCepEF+zkxe127IB771Un6ddfZ333a+mw6l4A1vb4ms61bnVuexylsLA4sLBaVXVQT08ViPn4qGEAo1FtBkPxZqNp6ipc19Xzz98KClQwkpen3seCAvU42zFs+66qMjOhd284cACuuYafPxhBtw1D0NDYcNcKbols6Zx2ZGerzywmRr3nQohqqaLnbwlKbNLT4eRJVT3TmSevlBTo1k0FRH36kDvrTW5c3o3DGcd54tqHmNvuLee1xRFsvRyFhSr4MJlUYqS3t/q3p6d9329dV0HJ+b0qOTnq3xaLOqaXlzpuVXPqFNx1l6r6etttDB4UzGdHltAwsB577v0ZHw8f57QjJQVCQiAyUgWSQohqp6Lnbxm+AXXCSkpSJ0pnBiRWK7zwggpIrroK3niDibtmczjjONG+kUy/ebzz2mJPZrOaTp2SooKRgACIjYV69dQWHq5ydhzxfmuaCn58faFGDVVwrF49qFsXatVSx8zLKx5mqEr1NWrVUlOFvbzgf//j/Q1BRPtGcjjjOBN2znBeOwIDZRhHCFEhEpToukrOy81VJzJn+vBD+L//UyfKjz7i15wjzNj7EQAf3TqNIJOTk22vhK6rHomUFBWU2AIRWzAQGFhcbMvZDAY1PBQcXNymmBj1eefkqHyU3NyqkaB5000wcyYA3h9/yvdZdwMwa+9cdiXtdU4bbD1iiYnqb0EIIcpIgpKsLHVScvZsm+3b4c1/khBfew3zNQ14bP0IrLqVB6+6h7sqS5G0wsLiNVA0TfVM1KlTHIi44zCJl5capqtdWwUokZHq9tRU9Voq+yJzvXvD0KEANH1zAeP0dlh1K4+vH0mh1Uk9QzIbRwhRAdU7KCksVMM2Hh5qc5aUFFUgzWKBPn2gXz/e2vMBe1MOEOpdk3favOa8tlRUYaHKw8nKUiegOnXUCT4kxDVl+StC01QvVUiIanudOqr3xDazpzLX3Bg9Grp3h/x8Jn1wgBvyAvkteR+z937ivDbYhnEyMpx3TCFEpVa9g5KUFDVbwM/PecfUdRgxAs6cKcojOZh+lNd+U9U557SZTJhPiPPaU14WS3EwEhCgTuS1a6t/V+bZLUajeg0xMeo1BQWpK/20tMqZd2IwwDvvwHXXYUxMIm5lEF4F8OrOGRzNiHdOG2zDOElJMowjhCiT6huU5OaqoMTf37l5Dl98AT/9pIY1PvgA3deXpzaOwWw1c0dMZ/pd1ct5bSkPXVc9CJmZxcFIrVoqoKtKMyw0Tb2m6Gj1GmvUUAFYenrlG9bx94fPPoMaNQj78yTLf4kg15LHkxtG47RJdzKMI4Qoh+oblFitxVNEneXIEZg4Uf17zBho1Ij5h75hXcIWfIzefHDLVDR3PMHn5qp8Cy8v1ZNQFYORf9M0lRxry5Hx9y8OyipTYbbYWPjgAzAY6LHxLM/s8mDt6Y18fniJ89ogs3GEEGVUfYMSZzOb4bnn1An+1lthyBASc5MZuW0yAJOaj6RuQIyLG/kvBQUqGNF11XMQE6N6SapyMPJvtp6T2rXV6/fyUkM6uU4q324PHTqoHBPgndVWbj4JL26dxLncJOccX2bjCCHKSIISZ5k5E37/XQ0HvP02GAyM2DqJlPw0bqx5PcMaP+7qFhbTdTVkkZ0NoaHqartmzcqdM3KlbGXUY2JU74nVqgK2ypJv8uyz0KMHxkIr3y31wJSUxkvbnJhQ7een6sPIMI4Q4hIkKHGGLVvg/ffVv996C6Ki+N+p9Sw8sgwNjbnt3sLT4CZTZ229I0ajOgGHh0u58PMZjWq2TmysqnuSlaU2dz/RahrMng0NGhCeXsg3S+DLP5cSd3qT89oQEFC8RpEQwj1YrW51cSVBiaNlZqqqrboODz4Id95JbmEuT21UKwAPveFRWoXf5OJG/sN2gg0LUyfd6jZUUx5eXqrHJCZGBSqVodfE319VfPX3p/0JeH0tPL1xLPmWfOcc3zb1PjGxck+3FqIqSU9XM+TchAQljvbaa2pNkthYmKzyR6btfo+jGfHU8otkSotRLm4gKuE3JUWdXGNjVe+IOxY9cze2IZ3YWNV7YhvycmcNGqgeE2DUZrh621Fm/P6R844vs3GEcB9Wq9uVPZCgxJHWrVNTgEGdCPz8OJR2lDf3fAComiSBpgDXtQ/UYnnp6WooojomstqDp6eqClu7tqoPkpLi3tOHe/SAx1UO04KVsPD/3nZe7RJbIJecrII4IYTr5OSozY1IUOIo6emqSBrA4MHQujW6rvPs5nFFNUn61O3h2jZmZankw8hINRQhuSMVp2lq6mtMjEoKTk9X7627GjcOvVkzgvNg0VdmXogb47zaJZ6eaktKkmEcIVwpM1NdmLoRCUocZdIkVbW1bl1VkwRYcuy//O/UBryMXrzb9jXX1SSxzRwxGtXVfWiousIXV85kKg7yzGb1n94dhylMJrSPPsJSI4gWCdDjsw18c+w75x3fz08NdaWkOO+YQohi+flqCQg3uxiVM5Ej/O9/8PXXxTMefH3JMGcybOtEAMbeOJSrAuu6pm0WixpDDAgoLg8v7MtgUDkmtWurxM7UVPcczqlVC+N776Nr8Myv8MuHY8k0O2lIRdNU4m1KigzjCOEKWVmqp9LN8gclKLG3tDQY9U/y6hNPQKtWAEzcOZOEnLNcFViX0Tc+45q2mc1qWCEkRBVDqywL51VW/v5qOCc4WL3v7lg4rFMnLEOfBeDNZem8v3qi845tMqngJCnJrRLthKjybBen3t6ubskFJCixt8mT4exZqF+/KDjZk7yfd/Z/BsB7bafg7eGCP4TcXJXQFBGhNmeuilydmUxqKCciQr3/blgJ1uOl0STfdC0BZug25Sv+OLPXeQcPCFBXbKmpzjumENWd7bvIx8fVLbmABCX2tHGjGrYBmDULfHyw6lae2fQyFt1C33p3cntMJ+e3KztbddNFR0v+iCsYDOp9j45WPQLuVjzMaCRk7kIy/D1plgD7Rz3qvKRXWxn/5GT3n04tRFWRkaEuTN1wpqWcnewlN7dofREGDoSWLQFYdHgZm8/+ip+HL7NbT3R+u2yJlrVqqRL3bvhHWC1omnr/z88zcaeF/aKjyZ0+DYD71iaw/vMpzju2l5f6G01Kcs/cGyGqkrw8dV5ww14SkKDEfmbPhvh4NfNirKrWmm7OYNT21wGY0OxFavtHO7dN6elqhk2tWpLQ6i5si/sFBKgxXTc6CUfc3Y+t9zQHoPGUj8mMP+S8gwcEqC/KtDTnHVOI6igrS33vuFmCq40EJfawbx989E9VzKlTiwKASTtncTY3kauD6jOskRMX3NN19eVuMqkhAz8/5x1bXJ6Xl/pcbAmwbpTk2XT6QvbWNlEzRyfx8X7Oa5vBAL6+ahjHDfNuhKgSCgvVd44bJrjaSFBypQoLVUKrxQJ33gnduwOwP+VgUXLru22nYDI6aS64LSDx8VE9JL6+zjmuKB8PD9WrFhqqxnfdZGaOt18QqbOnkmGC+gfOcO7NV514cG+V+5SU5F5DW0JUFVlZKuiXoKQKmzcP9uxR1TxfU0vB67rOc5vHY9Et9K57B91qd3BOW3RdRcF+fupK3I3/8ARqaC08XM3Myc52mwqw7dv247OBTQAI+Wg++q+/Ou/gQUHqbzgjw3nHFKI6sFhULpuXl1vnFkpQciVOnYLp09W/x49XJxdU5da4hM14G72Z1dpJV5rn95BERUkNksrCNjMnMlIFJW4ydHHP8I9Z3MSA0Qo5Tw123owhg0H9DScmul35ayEqtexstblpgquNBCVX4tVX1UmkVSvo1w+ArIJsRmxTqwGPbTqUugExzmlLeroaqpGApPLRtOKCdmazWwQm9QJjOTrmSY7XAL+EJApfHuO8g/v4qPdBVhIWwj5sF62enm5fEsK9W+fO1q6FH35QXV0yGaAAACAASURBVPDTphV90NN2v8vf2QnUC4jlpSZPOactaWkqEImKkiGbyqxGDRWYFBS4dOVOiwXWbTZRK+lVnuvQAYsGHstXwsqVzmtEQIDqana3mi5CVEbZ2er/UiXIMZSgpCJyc+GVV9S/H38crr0WgGMZfzFz71wAZreeiI+HE7rJMjKKZ3NIQFL5BQWpz9JicUkxseWrvWlwSwSd7gvl0ecj+P7bdUz1egEA6+hRcPKkcxri4aFmjyUmuk0SsBCVki3X0GBQF9FuToKSinj/ffjrL5UHMHx40c0jtk4m35JP11rtubtON8e3IytL/ZFFRbn9OKEoh8BAFZjoulMXq1u+2pu+Q4Jp3NTAli3qwmrLFvi181tspg2GrGx4/nnn1Vbx81MXAKmpMowjREXl5amL10rQSwISlJTfsWMqKAGYOFEtugb8/Pd6Vv61BqNm5O02k9Acnd2cm6u+qCMjK80fmyiHgAAVbIJTekwsFhgxOYiePWHlSo3WrdWfduvWsOK/JuZ1+pxM/GD79uKaPM4QECAl6IW4EhkZaoq9mxZL+zcJSspD19WwjdkMHTpAz54AFFgLeGHLBACG3jCI64Ovdmw78vLUzITISKnUWpXZAhOr1eE5Jhu2mYg/aeTll7UL8uAMBnj89QY8z7sA6NOnq4KBzuDpqXoDExPdqsicEJVCfn7xJIhKQoKS8vj+e1i3To11T5lSNNf7gz8WcCDtMKHeNZnYbIRj22CbnRERofIPRNVmC0wKCx0amCScU2PNjRpd/P5GjWA+g1gZVQutoEAN4zirroq/v+opkZWEhSgfW2HGSjQjU4KSssrNhclqqi/PPAP16wOQmJvMqztnAvB6i9HU8HJgoGCxqByD8HCoWdNxxxHuJTCwODBx0HThqHCVJ1JaB4i6XWNIu1jO+Wtw8CC89ZZD2nIBWUlYiPLLz1czMytRLwlIUFJ2H36oiqVFR8PQoUU3j//1TdLNGTQNuYHB1/Rz3PFtGdQhIWpz44p8wgGCglRg4qA6Ju1uNlM3xsLUqfoFFd6tVpg2TadebCHhbdIZfNc/Sadz58KmTXZvy0XJSsJClE9GhgpMKtmszGoZlFgssG69ga9WB7Jus+ny33GnThUnt44fXzTTZU/yfj7580sA3mnzGkaDA6dbpaerrvywMLcvfiMcJChI5RHl59u92qnRCDMnpLNqFfTqpZeYfdOrl86qVTDjlQzm3DKBVdfAJ801FSQMG6b+Np1BVhIWomwqaS8JVMOgZPlyaNAAOvXwof+oGDrdF0qDWyJYvvoS0eSUKWr8vHVruPtuQK1vM2zLq+jo3F//LtpF3ey4RmdmqivFyEhVv0FUXzVqFK+VY+f6HX165LF0bip7d1tp21aNGrVtC/v2WFg6N5U+PfLoUqsdvevewYvddE6FecPp02oWmjPYStAnJ7vNOkFCuKXMzErZSwLVLChZvhz69oXGjSlxJdi4qYG+Q4IvHphs2wbffaeGSyZNKho2WRm/hnUJW/A2evNWq/GOa7Stqz4iolIlKwkH0TSVTxQRofKL7DwjpU+PPI5sOkvckiS+fD+VuCVJHN54jj49ioOAGTe/QoGPifvvykPXNPjmG/jpJ7u2o1Q+Puo1JyfLSsJCXIzZrJLCK2EvCVSjoMRigREj+KcOAyXqMKxcqdGzJ4x8LbDkUI7FUly5tX//oqkJ+ZZ8Rm5TKwKPbPIkdQJqO6bRZrOKdiMiiuqhCFG0Vk5YmBo3tnOOhdEIHdua6dcrl45tzRcUgawfWIfhjYewORY+7fjPlPRRoyAlxa7tKJWUoBeidJU0l8Sm2gQlGzZAfDy8/PKFKRkGA4wdq3H8hAcbtpmK71i8GPbvV/3Yo0cX3Txn3zyOZf5FlG8Eo2981jENtlrVlXBoqEz9FReyrS5cs6bK6XByr8HLTZ8j0iec59pmkBQbquqIjBvnnIMbjeoLV0rQC1FSJe8lgWoUlCQkqJ+XqsMAxfUayMiAN95Q/x4xQl2ZAmdzEpny2xwA3mg5Fn9PP8c0OD1dBSMy00aUxmhU08ODgtTfixNLsQeY/JnWagz5ntD3zhx0o1ENc373nXMa4Our8kpkJWEhilXyXhKoRkGJrWL3peswFNdr4N13VXd0gwYwcGDR48b/+haZBVm0DGvKww3vdUxjs7LUH1V4eKVYQEm4kIeHGt7z9XXeLJh/DGh4H81CG/NLRA6re92gbnz5ZTh3zjkNCAxUV4VOXB9ICLdVBXpJoBoFJe3aQd26MHXqhT3d59dhaHezWa2EOm+euvOVV4rWDNidvI95B78C4O02EzFoDnj78vNVjkB4uCS2irIxmdTMLJPJqSdog2ZgduuJANx7/V5yr2ugvhRHj3ZO74WHh9qkBL0QagpwJe8lgWoUlBiNMHMm/9RhoNQ6DEYjatgmPx9uuQW6dAHUFOAXt0xER+fBq+6hbURL+zfStlx9WJisaSPKx8dHBSa67rCqrxfTPqo199brQb5R54X7g9A9PdVMnBUrnNMAPz9Vft9ZSbZCuCNbXRI/B6UTOFG1CUoA+vSBpUth715KrcPAb7+p6TmaBhMmFOVzfPvXj0VTgN9o+bL9G2er2BocLCXkRcX4+zusuNqlvNVqPCaDiU+0nRx6TNXx4ZVXnDOMo2nqdUsJelGdpaVVujVuSlOtghJQgcmRIxC3Opcv3zpZsg6Drhevb9O3b1H2q9li5qV/pgAPb/yEY6YAZ2erq12p2CquRFCQGvrLznbakEb9wDoMa/Q4APc2/A29cSP1JTlmjHOGcUwmFZxICXpRHeXmqv9vVaRsRLU8+xmN0LG9lX49MkrWYVizBrZvV2Nyo0YVPf79P+ZzJCOeCJ8wxtw49OI7vRJmc3Eeicl0+ccLcSk1a6pZWxkZTpsqPO6m5wn3CWV/1jG+fLbD/7d33+FRVVsbwN8pmZm0SSOEAKGL0gQFpCgIqFiwoMLVy1WRT8UCIoLSexUpYgPbVcSKIqICXkUEQSkCgoIFpCaUkISUSZmZZGbO98diCCEgJedMfX/PMw/JzGH2CQk566y99tpSh/XNN5J19IWYGLagp/CUny83ICFy7QjLoOSMSkulnTwA9O8vG+8BOO7IxaRf5gIAprQZhliTytHoqf1IWEdCatDrJeNmtfpsRY7VFIvJrZ8FADyZ9wFKBj4mL4wZ45tpHL1eVh0cP+7TmhoivyopCaksCcCgpNx770l3tWrVgAHlDdEmbJ2D/NICtExsin6N71F/XJtNghHWkZCavEuFLRb5GfOBhy79N1okNkGeMx9j2xXL9Kcvp3EsFqCsTKZx2IKeQp2iyGo3RTm5QjQUMCgBJO07V7IhGDr0ZNT5V/4ezP9zIQBgdvtx6u8CbLfLxYP9SEgL3k0c9XqfZA8MegNmtxsHAHhp10IcmDRUfr6/+Qb44gvNxwcg2SGbzWeBGJHflJRIJjSEsiQAgxLx+uuypLBBA9nj5oRnNk6CW3Hjtjo34LpandQd0+2WC0VyshS4EmkhOloyJk6nT1qy31C7M25J6waX4sLTBYuAp56SF8aOlakVrXlb0Ofk+HQFEpFPKYpcs3S6kNs5nkFJdrYEJYA0fTrxDf7u8Fosz1gFo86IWe3Gqj9uQYFM2XBfG9Ka1SrTkkVFPpnWmNluLAw6A5Ye/B9+uLs10KSJ/AIdo+Fu2qeKjJQW9Lm5bEFPoamoSDL8IZYlARiUAC+9JGmwli2BHj0AAG6PG0M2ytLgJ5r2ReP4huqOWVIid3NJSVz+S9rz7iocHy81HhpfqJsmNMajTe4DADy9dRo8s2bKz/mXX8pUji9YrRKUcCdhCjUej/xsGwwhOe0f3lfEjAwpcAWAkSNPNkpbsPsT7Mj9E/GmOIy7crC6Y7rdklZOTg6JRjcUJLyb90VF+eRCPeHKobBGxGLb8Z14L+pv4PHH5YWRI32zIsholCWS2dlS/EoUKgoL5REC3VvPJLyDkldflV9YnTvL5jgAisqKMWbL8wCAcVcORpJF5VUxNpt0bbVa1X1fonMxmaS+RKfTvPA1OTIJY66QepJRm2eg+MnHpGbr2LHyBoVai4qSr5Mt6ClUuN3y82w2h2yWPTS/qvOxcyewfLl8PKq8bfzzv85Dpj0LDa31MKDpg+qOWVIiP0xJSSezMkQ+5S18dTg0zyA82awf6sfWwZGSTMzavUA2n9LpgI8/Bn74QdOxAVRsQc+dhCkU2GzSrTnIdwL+J+EblIwfL3Prt98OtGgBADhUdASzfnsNAPD8VaNhMqjYIc/tlgsBp23I3+LipPC1sFDTwleL0YLn2o4EADz/2zwcaVYH6NdPXhw2zDd71ZhMMnWVk8OdhCm4lZVJlsRiCemb2vAMStaulYI7oxF49tmTT4/eMgN2twOdarTDnfVuVndMTttQoNDpJCjx9vTQUO8Gt6FD9dYocdkxdstMaaRWuzZw6BAwY4amY58UEyOZEragp2BWUCDTkSHeQiI8gxKXC2jUSHbna9AAALA1+zcs/HsxAGmUplMzErXb5Y6tWrWQjnApiHgLX00mTTMWOp0Oc9qPBwC8s3sRfnUcAJ6Xmi28/TawZYtmY59yEjJtlZMjU6hEwaa0VLq3RkaG/DUkPIOSbt2AzZuBIUMAAIqiYOgmKb77T6O70Da5lXpjeTwSlFSrxmkbCiwWiwQmZWWaNlZrn9Ia9zS4HQoUDN04CUrnzrILt6JIptIHTd1gNst43EmYglF+vqzaDPEsCRCuQQkgewWcaDzz5cFv8cPRDbAYLJjWdoS64xQWyhw+m6RRIIqNlTonjRurTW87Eia9CauO/IgVGaukpispCdi9G3jlFc3GrSA2VqarOI1DwcRulyxJiC4BPl34BiUnlHnKMOxn2R14SItHUCemlnpvXlpa3rgqRJdvUZDT6co7C2vYP6S+tQ6eav4QAODZTVPgircCkyfLiy+9BOzapdnYJ+n1cqd5/LgUnRMFOkWRINrlCptMe9hfKV/74z3sLtiH6pHVMLzlgHP/hfOlKHL3mZgY0su3KAR460ssFk3rS0a1ehJJ5gT8mf833vzrA1n5dsMNMn30zDO+mVaJjJRf8NxJmIJBSYkEJSHYTv5swjooyS+1YeIvcwAAE68cCqspVr03Ly6WX4AJCeq9J5FWzGaZxtGwviTeHIcJrYcCAMZtnYWCskJg2jT5hfvLL8CCBZqMW0lsrGSFuJMwBTLvpnuAlBtoJcD+H/gkKJk3bx7q168Pi8WC1q1bY926db4Y9pym/fUmjjvz0DS+MR6+rM+5/8L5crnkl3tysrY/TERqio3VfOO+R5vch0vjGiLHkYvntr8K1KwJjB4tLz73HHD4sCbjVuDdSTg7mzsJU+AqKpKAQcssyZ49QJcuwJQpAVMArnlQsmjRIgwePBijR4/Gtm3b0KlTJ9x8881IT0/Xeuh/tD//AF7c8z4AYGa7MTDqVdz+ubBQMiSxKmZeiLTmrX+yWjWrL4nQR+D5drJb8As738TBwkPAffcBV10lqeoRI3yzs29kpGSEjh/nTsIUeDwe+dk0GrXddG/yZPl/t3dvwGzup3lQMmfOHDz00EN4+OGH0aRJE8ydOxdpaWmYP3++1kP/o5HrxqPUU4bra3XCzWnd1Htjh0OyI4mJIb+enELQqf1LNOrpcVudG9AltQOcbidGbX5OClCff17G/P572U3YF6xWWdUQYOlrIhQWSqZEyxU3a9cC330Hj0GPslEqrzqtAk2DktLSUmzduhXdu3ev8Hz37t2xfv36Ssc7nU7YbLYKDy1sPLQRi3Z9Bh10mNVurHqN0hRFfpEnJkp6mCgYefuXOJ2a7I+j0+kwu/146KDDh3s/x89Z24BLLgEGDZIDxo71zSZ6BoPU0uTk+KZXCtH58BZia7npnssFTJwIAHi5jQftfh8MtycMpm9ycnLgdruRkpJS4fmUlBRkZmZWOn769OmIi4s7+UhLS9PkvAocBagdWwv96vVEy6Rm6r1xSYmkhePj1XtPIn+wWsv3x9FgeuPKai1w/yV3A4A0VFMUYMAAoHFjSVt7lwtrzbuTMKdxKFB428lruWrzo4+Av/5CfpQeE68Fbqp9LQz6MJm+AVApE6EoyhmzEyNHjkRBQcHJR0ZGhibnc2OjG7Hr/7Zh1uXPqPembrfcWVarJvOARMHMW18SEyOBiQamthmOSIMFPx77GZ8f+Fqmb2bOlLE/+QTwVUG8dxpHo6+T6Lz5op28zSb/zwCM6+xBREISRlyuYjuMKtI0KKlWrRoMBkOlrEhWVlal7AkAmM1mWK3WCg+tREVEIcGkYpfVoiJpQMXiVgoVRqOsIAM0aTZWO6Ymhl7+KABg+M9TUeouBdq0Afr2lQNGjJA7Rq0ZjfLIztZkuorovOXny/81LdvJv/wycPw4/k7WY35bYGKLJ9Vth1FFmgYlJpMJrVu3xsqVKys8v3LlSnTs2FHLoX3LOx+dmMjOrRRaoqMlMCkp0WSZ8LDLn0BKZDL22A5g3h/vypMjRgCpqcCBA8DcuaqPeUbR0RIA5eZyGof8w+HQvp38wYPAW28BAJ6+3oPGSY3xcINe2o13ETS/gg4ZMgRvvfUW3n77bfz55594+umnkZ6ejscee0zroX2nuFgCkjDZm4DCTEKCZAE1KDyPNcVgcptnAQCTts1FriNPso3TpskB8+cDf/yh+riV6HQybk6OZD2JfElRJCDRup381KlAaSm+a6jD8sYatMNQgeZByT333IO5c+di0qRJaNWqFdauXYsVK1agbt26Wg/tG3a7zIWzcyuFKr1esiUaLRP+v8b3onnCZchz5mPKthflye7dgVtukVqtYcN809gpIkIeWVmcxiHf8kU7+a1bgeXL4dEBT3dXcH1tldthqMQncw1PPPEEDhw4AKfTia1bt6Jz586+GFZ7iiJBSWKi/MImClUWiwQmTqfczanIoDdgVruxAIBX/liAPQX75YXJkyV7sW0b8O67qo55VpzGIV/zRTt5RZEsCYB3WgG/p6jcDkNFLICoCu8S4DgVC2aJApXVKgG4zab6BfvGtC64sXYXlHnKMGLziambGjWAUaPkY1+1oPdO4xw/zmkc8g1ftJNftQrYtAnOCB0mdAEebPwvddthqIhBycXyeLgEmMKLTic/75GRmuwmPKvdWOh1eny2fwV+zPxZnrzvPlmRU1wse+T4InsRESGN1XJyVM8KEVXgdmvfTt7tBqZPBwDMvUpBblIkprQZps1YKmBQcrGKiyWy5RJgCicREdLt1eVSvQtq88TL8NCl/wYgDdU8iqe8BX1EBLByJbB8uapjnlVMjPwfZ1M10pK3nbyWWZLPPgP++gsFkTo8d42seKsZXUO78aqIQcnFcLvlkZTEJcAUfk7dTVjlC/ak1s8gJiIaP2dvw6K9J/bAufRS6fYKAOPG+WavGk7jkNbKyuTny2LRrlGawwHMmgUAmHKNgqikGnjm8sBe+cor6sUoLJT5dS2jW6JAlpioSbfXGlHVMaKlBCAjNk+D3XWiedqTTwINGgDHjp1MRWvu1GkcrsYhtXnbyWvZKO3dd4HDh3EoTodXrgKmth2G6AgN29ergEHJhSork6g2IYG7AFP4OrXbq9Op6lsPadEftaNTkV50GC/u/K88abEAM2bIx++9B2zerOqYZ+WdxuFqHFKT0yk/U1FR2l1HCgqAl14CAIy7VkGTGs3xwCW9tRlLRQxKLlRRkWy4p+VmSUTBIDpapnGKi1Xt9hppjMT0tiMBANO2v4xjJdnyQseOwD33SHAwfLhvdvblNA5pIS9Pfn613E1+/nwgPx+/JwMLWwKz24+DXhf4l/zAP8NAUloqd4jx8cySEAGSMbRaVa/z6NPoTrSp1hKFZUUYv3VW+QtjxsjU0a5dwGuvqTrmWUVEyP97NlUjNZSUSFCi5SKJ7OyT7eRHdwN6NOiOrjWv1m48FTEouRDeLImWc4BEwcRgkGyJwaDqpn16nR5z2o8HALy560PszP1LXkhMBCZOlI/nzgX27VNtzH/kbarG1ThUFd5GaYqiXaM0QDbds9uxqRawvIkBz181WruxVMag5Hw5ndK1lY3SiCqKipLAROVN+zqltkOv+j3gUTx4ZtPk8hfuvBO49lr5PzlihG+CBO80Tm6u6sW9FEaKiqTWQ8ssyeHDUN57D4BkSR5r+gAujW+k3XgqY1ByvkpKJEui5RwgUbDSaNO+564aBZPehG8OrcH/MlbLkzqdbNhnsQA//QQsXqzqmGfl3RsnO9s39SwUWnzRKA0A5s6FrrQUq+sBWy+zYkLrIdqNpQEGJefD4ZBfRsySEJ2ZXl/e3dhuV+1tG1rrYVDz/wMgDdVcnhMdVuvVA4ac+GU7cWL53iFa4zQOXSybTftGaXv3Qlm0CIBkSca1fhpJlkTtxtMAg5LzUVIid4JabilNFOwiI6WhoN2u6jTO6FaDkGROwB/5u/HmXx+Uv9C/P9CkiRQNeutMfMFqlSDIF03cKDSUlkogGxmp7SKJ2bOhc7ux7BIgu3k9DGj6oHZjaYRBybk4HBKMMEtCdG4aTOPEm+MwsfUzAIBxW2ch31kgL0RESAt6nU6mcNatU23Mf2Q0yu+E7GzVe7RQiMrPl2uJloskfv8d+OILAMCYbsDMdmNhMgTf7vUMSs7FmyUxBd83l8jnNJrGebTJfWgSfwlyHLmYuv2l8heuvBLo21c+HjFC1TH/UVSUBCQ5OapmhSgE2e2SzYuO1nacmTMBAB83AxKu7IA76t6o7XgaYVDyT+x2KaazWv19JkTBQ4NpHKPeiNntxwEAXtz5X+wp2F/+4ogRQI0awIEDJztY+oTVKheb/HzfjUnBRVHkZ8Tt1nb6/5dfgJUr4dYBE7oCc9pPgC5Ie2kxKPkndrusuGGWhOjCaDCNc3NaN9xUuyvKPGUY9vPU8hdiY4EpU+TjefOAv/5Sbcx/ZDBIAJaT47sMDQWX4mIJWjXeJ005kSVZ2BLo2PEeXFGtuabjaYlBydl4a0mYJSG6cN5pHJWbqs1uPw4GnQGfH/gaq4/8VP7CzTcDN94IuFzAsGG+m1KJjJQxs7LkbpjIy+2WgFWvl+lMrWzaBN3atSjTA7O6WTC17XDtxvIBBiVnw1oSoqqJjFS9qVrThMZ4rMn9AIAhGyfC7TklEJgyRe5It24F3n9flfHOi9UqDdV8tSyZgoMvlgArCtzPya7Z/70C6NNtEFKjUrQbzwcYlJyJt3urll33iMJBfHz5RVslE1oPRZzJiu3Hf8eC3Z+Uv1CzptSXANJcLTNTtTH/kV4vF56cHG7aR+LUJcB6DS+z69bB8PNmOA3AuzfXwJAW/bUby0cYlJxJcbH8MmVfEqKq8e6No9ertny2miUR464YDAAYvWUGCktPCQQeeAC44goJgsaOVWW882Iyydd47Bg37SMpbtV6CbCiwDlDaqteawM83X08Io3Bvy8bg5LTOZ3S/4C1JETqiIqS1TjFxap1QR3YrB8aWevhmD0b07a/XP6CwSC9S4xGYMUK7Hjxe3y0NBJr1pu0L/mIiZGC15wcdnsNZ95dgDUubsX338O8fSdKjMD3d7ZC7wa3aTuejzAoOR33uCFSX0KC/JJWaRrHZDCd3EV4zo43sNd2oPzFpk2x64YBAID450ei/wAjuvauhkZXp2DJCg3/X+t0cjNz/Lhsukbhx7sLsMejbT2ioqBomnQxnncVMO6m6UG7BPh0DEpOVVoqd1js3kqkLoMBSE6WX9oqbWZ3a50bcEOtzij1lOKZjeW7CC9ZYcEVX0/D0aiGSMMhHH98DDZsAFq00qNX/wRtAxOjUVL2WVlcJhyOCgu13wUYgOfrFYj5ay+KIoCMB+5A6+TLNR3PlxiUnKqkRO50mCUhUl90tEzjFBWpMr2h0+nwQvsJMOgMWHrwf1h1eB3cbmDopDhcf1skUj5/DQBgeu1ltNf/jKVLdbj1VuCZyVZtp3K4TDg8uVySJYuI0HYXYI8HtmmSJZzfMQIjrhuv3Vh+wKDEq6xM0q/x8f4+E6LQlZgowUlxsSpv1yzxUjzRVNrMD94wAWs2GnAgw4BRo3TQd78euP9+CYAefhh6dxlGjtRhf7oR6zZpvNTfu+KIuwmHJLcbWLMG+Ogj+dPthjRJKy7WvJ28Y+lixO8/inwzYHx8QNAvAT4dgxIvZkmItGc0ymocl0u1VSoTrhyCRHM8dub9hQ+2bQQANPc2tJw9W7IzO3YAs2effP5oloZ3skDFZcIqLocm/1uyBGjUCOjaFejTR/5s1NCDJR85pahby9oOtxu2GZMAAO90icPjHZ7Ubiw/YVACSJjr8UgtSYgUCxEFrJgYyZiodLFOtCRgUutnAQCf5bwFANi588SLycnACy/IxxMnYs//9gAAUqv7YFrFZJJUPncTDhlLlgC9egEtWgAbNsiP8IYNQIvLdej1VE0s+V7bTHvWh2+i+qE85FqAS4ZMgcUYejfRDEoAyZLExmq/iyMRSeCfmCi1FyUlqrzlo03uQ7OES2FLXYH4lFxMm6aUN5G97z7ghhsAhwP6Jx5F/bQydGqnTrHtOUVHS7+K7GzWlwQ5txsYOhS49VZg6VKgfXuJr9u3h2/qlcrK4J4zGwDw+c310KPZnRoN5F8MSjweSSPHxzNLQuQrJpNM4zidqlysjXoj5naYAOg9sHXpj2XLgJ49FbmbLdLhl/6vwamPRMuc7/HJda9rWodYSVyc1Bvk5flwUFLbunWyEfWoUZWbtOr10Lxe6Y83pyE1qwRZ0UDHkfNUWQLsdgNrNkVKL581gRE3Myix2+VuhlkSIt+yWuVmQKWdhK+v1Rl31rsZniafodmjo7FjuxsdO8owrXs3wAvWcQCANkvHSq2Hr3jrS7KyWF8SxI4elT+bn2UDXi3rlcocxYib9zYAYP3dV6FJrZZVfs8lKyxodHUKD8CfxAAAIABJREFUuvatgz5PJkltTCOZovInBiVOpzR28umtExFBp5MiVJNJtZ4ec9qPh8Vgwc4a0zHj/QVY/WkOPnw1D6s/zcGzv/QBmjWTrMV4Hy+jNJmkyDcri/UlQSo1Vf48Wa90Gu/zWtQrrZs7FLXyXDgWq8O1w+dV+f2WrLCgV/8EtGilr1gb00JqZvwZmOgUJXDXq9lsNsTFxaGgoABWtdu+FxcD+/fLvHbdutpuLU1EZ5ebCxw5IlkTFTYvG791Fib98gLqxNTCn71/QNSp+4H8+qsUBXg8wMKFwHXXVXm8C5KXJ6mbmjV5IxRk3G7JJLRoITUlp/6oejwyXbjzVzf+/jFL1W9tdv4RlHa4CrVsCn4ccBuuGfVald7P7QYaXZ2CFq30WLpUd4avQwKsv/+u2o/oxV6/wztTotfLL0IGJET+Ex8vdRcqTeMMbzkAdWJqIb3oMJ7/9bS7ypYtgYcflo9HjPD9rr5xcdLxMzeX/UuCjMEgK8wr1CudyDD07Klg2TJg1lib6rHmqhmPoZZNQWa8ER0Gz67y+63bZCrv5XPG2hi5X1+3rspDXZTwDkqiozVvB0xE56DXyzSOSjsJRxkjMbud1I/M+HUeDhRmVDzg2WeBOnUkOzNjRpXHuyCsLwlqd90FLP6oDDu2uU7WK3XsCOz81Y3Fb+Thrlscqo63NX0jun62FQBQNOARGKKqXvvorXk5Z23M0SoPdVHCNygxm8vns4nIv6KiZDWOSjsJ312/B7rVvBoOtwNDN06qPJY3GHnnHWDLliqPd0FMJvn9c+wY98cJNoqCuzplY8/y3RXqlf7+MUv1gMSjeLDhuSeRUgwcqx6NRo8MV+V9vTUv56yNSVVluAsWvkGJ0aj91tJEdP7i4yV7qcKUik6nw0sdJsOgM2DJgRVYeWhtxQM6dwZ695YA6NlnVdsk8LxFRUkrgmPHVOtsSz5QWAjk5cEQH4suHUvx7552dOlYqkl50Ae/vIs+3xwBAJifGS6N+FTQqV0p6qW5K/byOcHjAaZPB+rXBzp1UmW4Cxa+QQkRBRZvC3q3W5ULdbPESzGw2YMAgIHrR8PpPm1qaNw4GW/3buCVV6o83gWLi5MALCcHla4OFHjKyqQJnncllYbynPk4+tJUJDqA42nVEH/vg6q9t8EAzB5XcJbaGKmZmTXLf3XYDEqIKHDExMgSfZUKUCe2fgYpkcnYXbAPL+x4s+KLiYnApBNTOy+9BOzapcqY502nk6KE48fZWC3QKYoUJ9vtkuXS2Iw1U/HoOpnaixs5QfUI4a5bHFj8Rh52bPdUrI3ZCSxeLLUz/sKghIgCh7d3idmsSgv6OJMVs9qNBQBM3jYX6UWHKx5w++3A9dfLXfAzz/i+paXRKBc5Fr4GtqIiCR5jYzXv/P3b8T8Q//aHiHMChZfUhfG2OzQZ565bHNjz0zGsfjcdH758HKtXyzJgfwYkAIMSIgo0JpNspOdwqBIk/KfRXehUox1KXHYM2Tih4os6nUyix8QAv/wCvP12lce7YBaL3AkfOyZfMwWWsjIJGo1G1eo6zsajeDDm62F4cpN8Hjtqgiq9e87GYAC6tLNLbUyXwGidw6CEiAJPbKxqLeh1Oh1evXoqDDoDPtu/At9krKl4QM2awJgx8vGMGcDBg1Ue84LFxEixbWYmC18DiaJIhsS7HYnGFv79Kbot2YboMsB5eTPZSDLMMCghosDj7V1iNKqSPWiR2ARPNusHAHhy/ZjKRa//+Q/QoYNcfIYN809jM2/ha1YWC18DRWGh1JL4YNom15GHF7+ZhMdPrFA3jxwTlpvEMighosAUGSmBSUmJKkHChNZDUSOyOv627ces305r1a3XAzNnylTKjz8CH39c5fEumE4ngUlenqzIYcdX/yotldU2ERGaT9sAwOgtMzDwm3yY3YCnQ3v/rcn1MwYlRBS4EhJkakOF1ThxJitmtZei16nbXsJ+W3rFA+rXl54lgKzKycys8pgXzGCQrzc7W9rRk3/4eNrm56xtWLP2PTy4XT7XjxwVllkSgEEJEQUyg0HV3iV9Gt6JLqkdYHc7MHD9aFTaj/Thh4FWraSWZeRI/2QrTCbJ2GRmckWOv9hsMm2j9kawZ+D2uPH4TyMxaTVgUAB07w60bq35uAAkG+Ry+STwOl8MSogosEVHyzSOChdonU6H+dc8hwh9BFZkfI8lB1ZUPMBolF3XIiKAb78FvviiymNelMhImVLKzFRlaTRdAIdD6nrMZp9s1vran+8Bv+1A7z8ARaeTmiZfKCuTDGRKihSVBwgGJUQU2HQ6mcaJjFTlAn1ZfCMMb/kEAGDQ+nEoLD1tauiyy4CnnpKPR4+WqRR/iImRu9ijR1XZqJDOg9stAUlpqU+apGWWZGH0lhmYuko+1915J9CkiebjwuWSID85WQL+AJoqYlBCRIHPZJJpHJV6l4xq9SQaWuvhSEkmxm2dWfmAgQOBZs2A/Hxg1Kgqj3fRrFb5mrlUWHveOhKbTQqOfWDwhvFouduGm/YCitEIDB2q/aBut3yNSUkSlARQQAIwKCGiYOHtXaLCNE6kMRKvdpwKAHjp97exLee0LVMjIoA5cyR9v2IF8NVXVR7zouh05V9zVpbvO86Gk8JCyYrFxGjasMzr64zvsWjvl5juzZL06QPUq6ftoIoiBdSJiUD16j75Oi9U4J0REdGZeHuXGAyq9C65Ma0L7mlwOzyKB4/+OBxuz2kX/ObNJWMCSLbk+PEqj3lRTl0qzB4m2nA65d/WZJKHxorLSvDEj6Nw2y6gYwaksNk7ZailwkIJuqpXD4z2rWfAoISIgofKvUvmtB8Pa0QsNmdvx/w/F1Y+4KmnZI4/N7e866s/GAzlm/dlZ7OHiZq8dSROp89WoUz8ZQ4yCjIw+/sThbQPPQTUqKHtoKWl8nOTnOyTAt6LxaCEiIKLir1LakbXwLS2IwAAIzdPR8bpG/aZTDKNYzAAX34JLF9e5TEvmtEoU1jZ2RKcMDCpOkWRRnUFBT6rI9l+fCfm7HgDfX8FLslyyfTcgAHaDqoo8v8lKSmglv+eCYMSIgouKvcuebzpA+hQvTWKyorxxE+jKvcuufxy4AlZrYORI/03jQNIrUtMjGzel5vLwKSq8vMlKImN9Ul9hdvjxqPrRsDkdGPmWrM8OWiQ9gFRUZEEI4mJ2o6jAgYlRBR8vL9gVciW6HV6vNlpJiL0EViW/h0+3XeGotann5ZpnOPHgREj/BsMmEyyXPXYMbmo0sXx7jNksfikjTwAzP9zIX7O3obhW0xIzHcCtWsDDz6o7aBlZRLAV6sW0NM2XgxKiCj46HQSlJjNqvQuaZZ4KUa2kqLWQRvGIc952sXebAbmzi1fjbN0aZXHrBKzWR5Hj0oBLF0Yp1OCOkDqlHwgvegwRm6ejqRiYMSPJ5bhDhsm30etKIoUtyYlSYYtCDAoIaLgpEHvksviG+GYPRvPbppS+YDmzYHBg+XjMWP8szfOqSIjGZhcDJdLAhKnU6ZtfEBRFDy6bjiKyorx6tYUmEuc0gfnzju1HbikRH5OEhMDrh/J2TAoIaLgZbXKfLwKvUvMBjPe7CSN1P676yOsPvJT5YMGDpQak/x8ucv1d03HqYEJa0zOzeORQmGbzSf72ni99/di/O/QalxqM+Ffa0/UJI0erW0di8cjgVdyss+mp9TAoISIgpdeL9kSg0GVVuzX1LgKjzd5AADwyLphKHHZKx4QESHTOCYTsGoVsGhRlcessshIqYtgYPLPFKV85ZLV6rPGYcdKsjF44wQAwGe/NILO5QKuuQbo3FnbgYuK5OsMkmkbLwYlRBTcvL1LiotVuSBPv2okakXXwF7bAYzZPKPyAZdeWr5p2vjxQEZGlcesMotF/h24KufMvC3ks7NlysaHBZ8D149GnjMf9xU2QLM1f8iTY8ZoO53ickmmJDExILu2/pPgOlsiojOJj5cVOSqsxokzWfHGNc8DAObufAvrj22ufFD//kDbtjLe4MGB0f7dG5hkZsrFl51fy+XlScAWE+PTqYwl+1dg8f7lMECP+atOFNT27g20aKHtwEVFMq0Z4D1JzoRBCREFP6NRpnFcLnlU0S11rsODjf8FBQr6/TAE9tOncQwG4MUX5Zf+xo3Am29WeUxVmM1yTllZchEOhGDJ3woKJFCLjPRJC3mvPGc+Bvw0GgDwXnF3xGz/Xc5h+HBtBy4tlexIEBW3nopBCRGFhpgY+UVss6nydnPaj0fNqBrYXbAP47bOqnxA3brAxIny8YwZwB9/qDJulZlM5S3pw313YZtNam3MZskk+dCg9WORac9Ci6j6uOejExs+PvEEkJqq7cDFxdL12EdLndXGoISIQoO3d4nFAtjt5z7+HBLM8Xijk9SUzNnxBjYc21L5oHvvBbp3l7vTQYNUKbZVhdEoU1p5ecCRI4FzXr6Uny9fu9Ho8wv05/u/xvt7lkCv0+OrQ52hP3RI9rZ57DFtB3Y4JCiNj9d2HA0xKCGi0GE2yzSO3a5KTUWPOtfjgUt6waN4zjyNo9MBM2dKoe2ff8rHgUKvlzvm4mLg0CFV6m2CgqJIse+RI1I/EhXl0+Gz7cfx6I8yRTOxzoOo+84SeWHECG3PRVGkL0lCgrYN2TTGoISIQou3d4lK0zgvtJ+AGpHVsatgL8ZuOUPQUa0aMOvE9M5rrwEbNqgyrip0OrlrdrslMAn1lTnegCQzs7zw16fDK3j8pxHIdhxH84TLMHKVQ3roXH45cPfd2g7ucMjX66ONBbXCoISIQoteL5kLvV6VaYtES0KFaZwfjp4h6OjeHejTRy6KgwYF3p40MTGS1j9yRIpgVSgGDjgeT3kdjbd3i499vPcLfLZ/BYw6IxbVGgzDhx/LCxMmaLs0V1EkO5iQEFSN0s6EQQkRhZ6oKFV7l9xWtzseuvTfUKCg75rBsJWeoYPshAlA/fpy4Q+Ebq+ns1gki5SdDRw+rErdTcAoK5NgJDNTVh/5YfriaMkxDFgvq23GtBqEpnMWSqB0yy1Au3baDm63SyDmwy61WmFQQkShKSFBLlDFxaq83QvtJ6B+bB0cLDqEpzaMq3xAdDTw6qtSWLl8OfDxx6qMqypvAWxxsTR9y80N/n4mdrsEWbm5MnXhw2W/Xoqi4JG1zyLPmY8rq7XA6MMNgPXrJRAcP17rwWXqJjExKHYBPhcGJUQUmlTuXRJrisHCLi9CBx0W7P4En+//uvJBLVuW96EYOxbYs6fK46pOr5fAxGCQrM7Ro8G7Osdmk1oZb4GnweCX03jtz4VYnrEKJr0J77WdDuPkqfLCwIFA7draDu7Nkvhoc0GtMSghotAVEyMXK5WKXq+pcRWGtXwCAND/x2HILMmqfNBjjwFXXy0XiwEDAveC7y2KzM+XrEl+fvBkTVwuqY05dEg+j4/3W6OwP/P+xpCNkwAAM64ahabv/U8CvTp1tF8CHGJZEoBBCRGFMm/vErNZtRqKia2HomViU+Q4cvHw2megnF47otdLt9eEBGDnTuD551UZVxMGg5wnIBf4jAzV6nBO53YDa9YAH30kf15Us1lFkaXNGRkSlERF+bWVutPtRJ/VA+BwO9C91rUYFNUVeP11eXHiRO1X/4RYlgRgUEJEoU7l3iVmgxnvd30ZJr0JyzNW4dU/FlQ+KDUVmD1bPn7tNWD16iqPq6moKMk22O3AwYNSMKpihmfJEqBRI6BrV1mk1LWrfL5kyQW8SVmZBCLp6dKsLiHBL/Ujpxq7ZSa2H/8dSeYELLh2DvTjJ8h5dusG3HCDtoOHYJYEYFBCROEgLk4ehWdYNXMRmidehufbyUqLZzZNxq/Hf6980I03An37yseDBklKP5Dp9bJ6IzpaltYePChBgMNRpbddsgTo1Uv2oNuwQb4FGzbI5716nUdg4nJJZ9r0dFk5FB0tmQE/7+uy6vA6zPxtPgDgv51nI/Wn3yT4NJkkS6L1+YVglgQAdEql3GPgsNlsiIuLQ0FBAawhsNSJiPyopEQubGazKktGFUXBbd/0xfKMVbgsvhG29Pwa0RGndex0OIDbbwd+/x1o3x5YtCh47mqdTpnKiYgoD+oslgu62LrdkhFp0QJYurRiqw6PB+jZU2a4/v77DDWqLpdEMLm5cgH2NkMLgE3mch15uHzJ9ThcnIlHL7sPr7UeL9mRjAwpbh05UtsTUBQJ1GrVKp9+CzAXe/1mpoSIwoPKvUt0Oh3eufYFpEal4K/8PRi84QxLPy0Wmb7x7iY8Z06Vx/UZs7m8HsebOTl0SHbdLS09r7dYtw44cAAYNapy7zC9Xq7d+/fLcQDKm4B5xzt8WJ5LSJDvXwAEJIqioN/aIThcnInGcQ0wu/14+b5mZAA1a0pWTGshmiUBGJQQUThRuXdJcmQS3u/yEnTQ4a1dH2LR3i8qH9SgQXmx60svAWvXqjK2z5hM5UFBSYlcfA8ckIDBZpNs0FlqdbwzVs2bn/mtvc8fPVgqd/4HD8p7e/9iAAUjXnN3vokvD34Lk96Ej7rNQ/SufcAbb8iLU6dqX3gborUkXgxKiCh8qNy7BAC61boGI1sNBAD0Xzcc+23plQ/q2RP4z3/kgvLkk8CxY6qM7VNGo9yZJyZKoFJYKNNh+/fL4/BhCSwKCyXocziQWq0MgEzRnIn3+VQclb9fVibLuBMTA2aq5lSbsn7BsE3Sg+SFDuNxZUJT6d7rdgM9esh2A1rz7nETglkSgEEJEYUblXuXAMCE1kPRoXpr2MoKcc/3j8PpPsPKlYkTgSZNgJwc6V8SzPvPmExSFJuYKP+egAQjR46UZzv270enWvtQr3YZpk1TKiVTPB5g+nQF9dNc6HStXt4rOtpvDdDOJc+Zj3tWPQ6X4kLv+rfi8SZ9gQULgF9/lQBh0iTfnIjdLiulQjBLAjAoIaJwo9NJbYnFItMRKojQR+CjbvOQYI7H5uztGLJxYuWDIiPL60s2bACee06Vsf3OYCjfdyUhQYKLhAQgNhaGmEjMHp2HZcuAnj2VCqtvevZUsGwZMGucDQZTYAYiXoqioN8PQ3Cw6BAaxNbFm51nQnfkCDBDNmrEqFFAjRran4i34DeEF34wKCGi8GMyyTSOw3GRXbwqqxtbGx90fRk66DDvj3fxwZ4zrHVt1Ki82HX+fNkjJ1Tp9YDRiLtud2HxG3nYsd2Djh3letqxI7DzVzcWv5GHu26p2pJjX3hx51v44uA3MOlN+OS61xAXEQuMGSPTVG3aAPfd55sTCZGdgP8JlwQTUXjyeKSOobBQ0uEqGbdlJiZvm4soYyR+vmM5miVeWvmgyZPLsyYrVkiwEuLcbmDdJhOOZhmQWt2NTu1KA3WmpoIfM39G12W94VJceKXjVAxo9qAEk/37yxTKN98Al12m/YnY7VKTVLduUAQlXBJMRHQh9HrJlhgMVW4QdqrxVw7BDbU6o8Rlx13fPQxb6Rkato0cCXToIHfaDz+s2mqgQGYwAF06luLfPe3o0jE4ApLDxUfR67v+cCku/KvBbXiiaV+pCfL2IXniCd8EJEB5LUkQBCRVwaCEiMJXZKTUl5SUqLbfi0FvwIfdXkXt6FTsLtiHh9YOrbw/jtEo0zc1akjnsKFDNdlvhi6e0+1Er+/645g9Gy0Sm+DtznOgAyQgOX5cipYHD/bNyTgc0i8mDGYMGJQQUXhLSJAVJCq1oAeAapZEfHrd64jQR2Dx/uWY8eurlQ9KTpbN2yIigK++AubNU218qrpB68diY9YviDfF4fMb3pJuvUuXynSb0QjMnatKZ+DzUlISEHv9+AKDEiIKbwaDTOMoynl3Kj0f7VNa4+WOkwEAozY/h68Oflv5oDZtZKkwAEyfDqxcqdr4dPHe/OsDvPHXB9BBh4+6vYqG1nqySeGYMXLA4MFn7wintjDKkgAMSoiIyht2FRWpOo3yaJP78UTTvlCgoM/qgdiZ+1flg/r2Be6/X8YdOBDYvVu18enCbTy2FQN/kuBjSpthuCmtq3xvhg0D8vOByy+X75OvlJRILUkYZEkABiVERMLbRVTlotO5HSaia2pHFJUV4/Zv+yHHkVv5oMmTpfC1qAjo1082oSOfO1CYgTtW/h9KPaW4q94tGNnqSXnhk0+AVaskMJg713fFpg5HeaO6MMGghIgIkAtNcrKqLegBaaz26fWvo35sHewvTEfv7/qjzFNWeew33gDS0qQb6mOPSct18pmCUhtu/aYvsuw5aJXUDO92mQudTicdasef2Gzx2WeBS8+wxFsr3hU3vqpdCQAMSoiIvGJjVW9BDwBJlkR81X0BYiKiseboBgz4aXTlFTmJicA778gGdD/9JBdCrsjxCZfHhXtWPY7f83YhNSrl5PcKpaWyJUBhIdC2LfDoo747KadTgtW4ON+NGQAYlBAReWnQgt6rWeKl+LDrK9BBhzf/+gDTt79c+aAmTYBXXpGP3323fPdZ0oyiKBi0fiy+ObQGUcZIfNV9AWrH1JQXn38e2LZNshWvvurbfXmKi8MuSwIwKCEiqshkkmkcFVvQe91Wtzte7CAbt43eMgMLd39a+aAbbwTGjpWPJ08Gli1T9Ryoohd3voX5fy6EDjp80PUVtE6+XF5YvVp6yQDA7NlArVq+OylvliSMakm8GJQQEZ1Oo2kcAHiy+f/h2csfBwA8tPYZrDy0tvJBjz4qBa+KAgwaBGzerPp5EPDJ3i9Pbp44s90Y9Kx3k7xw7Bjw1FPycb9+wE03+fbEvFkSi8W34wYABiVERKfT62Uax2SSYkOVPXfVKPy7YU+4FBfu/u4RbD++s+IBOp30L+neXe6a+/UD9u1T/TzC2beHfsB9awZBgYLHmzyAIS1O1Iu43cCTT0rX1qZNy3uT+EqY1pJ4MSghIjoTi0WaqtntsnmfivQ6Pd65dg66pnZEYVkRbv76fuy3pVc8yGCQOoZWrYC8POllcvy4qucRrjYe24o7Vz6EMk8Z/tXgNrzccYqstAGAl16SQuPISJm+8XW2IoyzJACDEiKis4uLk0dBgepvbTaYseSGt9A84TJk2rPQbfm/cKjoSMWDoqKABQuAOnVkqfB//qPJlFI4+T13F3p88wBKXHZ0r3Ut3uvyEgz6EwWs334LzJolH0+b5vvdm51Oyc6FaZYEYFBCRHR23p2EIyJU3UnYK94ch29v+RCNrPVwoCgD1624B5klWRUPSk4G3n9fzmPHDuDBBzWZUgoHBwsP4cb/9UGuMx/tql+Bz254EybDiU6pf/8t0zaA/Bv/61++P8Ewz5IADEqIiP7ZqTsJqzyNAwCpUSlY1eMT1I2pjd0F+3DDin9X7vrasCHwwQeyGmPTJuCRR1TdpyccHCw8hK7Le+NwcSaaxjfG8hsXSi8SQDJh/fpJR90OHYAJE3x/gsySAGBQQkR0bvHxEhBoNHVSJ6YWVvVYhJpRNbAz7y90X/Fv5DtPmzJq3hxYuFCCpNWr5a5e5SXLoepAYQa6LOuF/YXpaGith29u/gBJlkR50e2WvWz275dlv96dm33Nu8dNmPUlOR2DEiKic/HuJGwwaDKNAwANrfWwqsciJFuSsO34TnT/ug9yHXkVD2rbFvjvf+WiuWyZbBKnQfYmlOy3paPLsl44UJSBRtZ6WNPj0/LmaIA0SPv+e5kyefttyYr5msMR1ituTsWghIjofERFSWCi0TQOAFwW3wjf3fIxkswJ2Jy9HV2W965cY3LttbIqR68HPv5Y9mNhYHJG+2wH0WV5LxwsOoRLrPWx5tbFFQOSDz8s76A7e7Zko/yhpET64oR5lgRgUEJEdP40nsYBgMuTmuKHWz9DalQKduT+iU5f3YmDhYcqHtSjhyxd9QYmQ4ZwKuc0u/L3oMuyXkgvOozGcQ2w5tbFqBWdWn7At98Cw4fLx4MGAT17+udEHQ4JRsKwe+uZMCghIjpfPpjGAWSfnHW3LUG9mDTssR1Ap6/uxO78vRUPuvNOucs3GIBPPwUGD1Z1d+NgtuHYFnT88g5kFB/BpXENsebWxagZXaP8gM2bgccflwzTvffKNJi/MEtSAYMSIqIL4YNpHEBqTNbdtgSXxTdCRvERdFp2F7Zm/1bxoDvukAZfRiOwZInc8Yd5YPLVwW9x3fJ7kOvMR9vkVlh32+dIjUopP2D3blny63AA110HzJghHXT9wW6XWhbWkpzEoISI6ELFx8uFRONGZrVjauKHWz9Dq6RmyLLnoNNXd2LJ/hUVD+rRo3zFyBdfAA8/HLZ9TN7660P0XPkQ7G4Hbk7rhu97fILkyFMKV48cAfr0AfLzgSuvlH83o9E/J6so8n1KSPDPap8AxaCEiOhC+WgaBwCqR1bDmlsX48baXWB3O3D3d49gxvZXoShK+UE33QS8+abcda9cKY2/cnPP/qYhxqN4MG7LTDyy7ll4FA8ebPwvfNH97fI+JABw+DDQuzdw9Kj0fXn3XVle7S92u4zPLEkFDEqIiC5GZKRPpnEAIM5kxbIb38WApg8CAEZsnoaH1g5FqfuUBmo33CBFr/HxwC+/yNRORoam5xUICkptuOPbfpi8bS4AYHSrQXi78xxE6E/JPmRkAL16Sav+2rVl1U1ion9OGJAsicMhy4/9lakJUAxKiIguVkKC5tM4bjewZr0Jn34Zi166mZh71RTZ0G/3Ily/4l4cKc4sP7htW2DpUmkCtm8fcPvtwM6dZ3/zIPdH3m5ctbQHlqV/B7PBjHeunYMpbYeXb64HSCBy991AejpQt67U3tSu7bdzBiDt5KOjgdhY/55HAGJQQkR0sfR62ZsmIkKTOo4lKyxodHUKuvauhj4DEtC1dzXMfXQERpq+R2xEDNZlbkLLJTfgfxmry//SJZdIbUmTJkBWFnDXXcCKFWcfJEgt2b8C7b64FbsL9iEtuiZ+vO1zPNj4nooH7d0rAcnhw0CDBsBnn0nA5k8ej2wRkJQk039UAYPWr9qrAAARwUlEQVQSIqKqsFgkMLHbVe0VsmSFBb36J6BFKz02bAAKC4ENG4AWrfSYNqozpkVvQqukZshx5OLm/92HkT9PR5mnTP5yaqpkBK65Ru7KH3kEeO65kOhlUuKyY+BPo3H3d4+gqKwYXVI7YMudX6NNcsuKB+7YIVM2mZlA48YSkKSmnvlNfam4WDIkMTH+PpOApFMqVEsFFpvNhri4OBQUFMDKxjJEFKgURVZ25OWpUqvgdgONrk5Bi1Z6LF2qg/6U20ePB+jZU8HOX93YsSYdw7ZMwrw/3gUAdExpg/e7vIz61jpysMsFTJkiRbAA0K0b8PLLUncShH7O2ob71wzC7oJ9AIAhLfpjxlWjYdSfVpexYoXsDeRwSMbo44+l/sff3G6JLtPSQn7q5mKv38yUEBFVlU4nF73ISLkTrqJ1m0w4kGHAqFEVAxJAZoxGjtRhf7oRm7da8erV0/Dpda/DGhGL9ce2oPln3TDnt9fh8rikiHLCBAlELBbZ46VHD+D336t8jr5U5inDhK2z0fHLO7C7YB9qRtXANzd/iNntx1cMSBRFvtZHHpGApEsXyRgFQkACSEASF8csyT9gUEJEpAazWaZxysrkUQVHs6TW4GxbsXif9x7Xq8Gt2HbXN+iS2gElLjuGbpqEDl/cjl+Pnwg+7rpL6kxq15bCz1tvlaZrQTCd82Pmz7hqaQ9M/GUO3Iob9za8Azvu/g7da19b8UCnU7raPvecfP5//yfLfgMly15aKhFlQoL/mrUFAQYlRERqiY2VAsbCQrlrv0ip1SVYONvCGe/z3uMAoIG1Lr7v8Sne6jQLcSYrtuT8itaf34zhm6Yi31kgkczXXwPdu8sFcsoU6WcSoMuGDxUdQZ/vB6DTV3di+/HfkWCOx0fd5uGjbvOQaEmoePDevdJ2f/FiKR6dNg2YPDmwltsWFUlAEhXl7zMJaKwpISJSk8sFHDok0wcX+XvrfGtK/v4x64wLOI6WHMOg9WOxeP9yAECiOR4jWz2JAU37ItJgARYtAsaNk6mmmBhg0iQJUALgDr7EZcfcHW9i6vaXUOKyQwcdHrmsD6a0GV6xOysggd9778n52+1SKzN/PtC5s39O/mzsdvnG1a0LmEz+PhufuNjrN4MSIiK1FRdLBsJkklqOi+BdfXPrrVJD0ry5ZEimT1ewbBmw+I083HXLP3eTXXZwJYb/PA1/5O8GANSKroEJVw5F38a9EZFxBHjqKdmcDgDatZPsQrNmF3W+VVVQasOrvy/ACzvfRI5DutF2TGmDlztOwZXVWlT+C9nZwNChwKpV8vk11wAvvADUrOnDsz4PiiIF0KmpkkULEwxKiIgCyfHj0tI8Ph6VqlXP05IVFgydFIcDGeXpkPp1XJg11nbOgMTL7XHj/T2fYdzWWUgvOgxAgpNHL7sPj1xyL2osXALMmSOZHb0euP9+4NlnZarBB7LsOXhx51t45fcFsJUVAgDqxaRhcptn8Z9Gd1VshAZIGumTT4Dp0+Xf2GwGRoyQPX8u8t9ZU0VF0scmLS2wppM0xqCEiCiQeDzStKuwsEpLcN1uWY1zNMuA1OpudGpXelE9txwuB1778z089+urOGbPBgBE6CPQu/6tGJRwM656/UvovlomByckyI7D992nSQ2E0+3E8vRVWPj3YixPXwWXIjsbN41vjJGtBuLehndUXuYLAOvWARMnAn/+KZ83aSKrbZo0Uf0cVeF2AwUFQJ06gVNw6yMBGZRMnToVy5cvx/bt22EymZCfn39Bf59BCREFNYdD6kuAgClwdLqd+Gz/Crzy+zvYkLX15PM1IqvjmaIW6P/BLsTuO3HOCQmSgejXr8obx9lKC7H26EYsz1iFRfu+Qp6z/HrQrvoVGNFyIG6v2x163RmyHbt2SWZk5Ur5PC5OVto8+GBg12gUFEjNTq1agZnF0VBABiXjx49HfHw8Dh06hP/+978MSogo/BQUSMYkOjrgtqjfmv0bXv1jAT7bv+Lk1InBDTy+w4SRP+lRM1umiDzRUdA90Be6e+8FGjU65/s63U7sL8zA7oJ9WH9sC1YfWY8tOb/Co5RvXFgrugbua3Q37m90N5olXlr5Tdxu4LvvgLffBn78UZ4zGoG+fSUg8eeGeuejtFSC0jp1AiYg9aWADEq8FixYgMGDB58zKHE6nXA6nSc/t9lsSEtLY1BCRMFLUWQPmuzsgO1RUeouxZqjG7D0wP/wxcFvcaQkEwY30PsPYNQ6oEVW+bF/1onCT1fXwR+dm6AkIRpOTymcbnkUlNqw13YQ6cWHKwQgXo2s9dC15tX4V4Nb0TX1ahj0Z5iHOngQWL4cWLiwfLmyXg/cdBMwfPh5BUV+5y1urV5dHmEoJIKSCRMmYOLEiZWeZ1BCREHN5ZJsSXFxwLd49yge/Hr8D/ycvQ2/5OzAL1m/IW3jn/i/zS7ctAcwnrhiuHTAxtrAurrAujrA+jSgILL8fWIionGJtT4uT2yCbjWvRteaHZEWc4bN8Ox2WQG0ahWwerX0HPGKjwf69JHsiL939r0QxcUSSNWpE3DZMV8JiaCEmRIiCll2u9z5GwzSjj6IlLpLcaAwA7lH98Gy/Bukfv0jUv6q2HRN0elQUDcFnrTasKTVR2RaA+hSU2XqwuWSLrcuF1BSIl1l9+6Vx6FDFRvNGQxA27aymV7PnkH3b3WyuDUtrcp1OMHsYoOSC16fdLZsxqk2b96MNm3aXOhbw2w2w2w2X/DfIyIKeJGRkso/fFjunoNoeajJYELj+IZAfEOgyQ3AMwDS02Xb4k2bgJ9/hm7/fsQfyAQOZALYcmED1Kgh+9R06wZ06hTcK1W8+9uE+IZ7Wrng/xUDBw7Evffe+4/H1KtX72LPh4godMXFSfFjTk7A1pectzp15HHPPfJ5VhawY4f0Zjl6VHZNPnpU9qQxGssfFov8vYYNyx9JScH9b+HldEqmJykp7FbbqOWCg5Jq1aqhWqDsuEhEFEy8uwk7HJLiD/D6kgtSvTpw3XX+Pgv/URSpJUlJCcvVNmrRNH+Ynp6O3NxcpKenw+12Y/v27QCARo0aIYZbNxNRODIa5cJ16JDUV/ACFhqKi2XZt4864YYqTYOScePG4d133z35+RVXXAEAWL16Nbp06aLl0EREgevU+hKjMbAbgNG5eYt4U1ODqlYoELHNPBGRPyiK9C7JyqrS/jjkZ96eJMnJEmiGQm2MCi72+s3/BURE/qDTSUFkXJzUl1BwKi6WzFdiIgMSFTAoISLyF4NB7q4tFllKSsHF5ZJHcnLYNklTG4MSIiJ/Mpul8BWQBmsUPGw2KWxlTxLVMCghIvK3mBgJTBwOKZqkwOedtgmVHisBgkEJEVEgiIuTaYDCQmlVToGrrEweyclcOaUyBiVERIHAW/iakCCFr4G7MDK8KYoEjklJnLbRAIMSIqJA4S18jYmRegUKPDabfH84baMJBiVERIEkIkLqSyIigKIif58Nncpul34y1auzSZpGGJQQEQWayEgJTDwersgJFG63fC+Sk7k1gIYYlBARBaLYWKBGDdl51un099lQQYHU+4TSJooBiPknIqJAFRcnzbkyM6XehFMG/lFYKNmr5GRuB6Ax/usSEQUqnU7alycnS4Ellwr7nt0uK25SUrj81wcYlBARBTK9HqhWrXypsMfj7zMKHy6XBCXeFVGkOQYlRESBzmCQO/W4OCA/nz1MfMHjkexUcrIEhOQTDEqIiIKB0SiBSWwsAxNfsNkkCGQ/Ep9iUEJEFCxMJlmRExUlUzmkjaIi2SiR/Uh8jkEJEVEwMZuB1FT5k4GJ+k4tbDWb/X02YYdBCRFRsLFYgJo1JXPCwEQ9Dof0hKlRg4WtfsKghIgoGEVGSsaEgYk6SkslS+ItKCa/YFBCRBSsoqLKMyb5+f4+m+DlckkdSXKy9IUhv2FQQkQUzCIjJTAxmxmYXAzv0t+kJOkHw5U2fsWghIgo2J0amOTlcbnw+XK7JZBLSJCVNmwh73f8DhARhYLISKBWLSA6WgITdn79Z253+SZ7KSnSoI78jkEJEVGo8K7K8XZ+5V45Z3Z6QMJeJAGDQQkRUSgxmWRVTmKiXHjLyvx9RoGFAUlA43eDiCjUGI3Sa8NgALKzZUqHjcBklY3NJgGJ99+HAgqDEiKiUKTXl7dJz8qSjEk4NwRzOoHiYllhk5zMgCRAcfqGiChU6XSy1LV2bQlSwnUjP7tdHjVqSKDGgCRgMVNCRBTqYmOBiAjg2DFZmWO1hk8tRVGRBGLeAmD2IQlozJQQEYUDi0WWDCclAYWFQEmJv89IWx6PZIb0evm64+MZkAQBBiVEROHCWwBbu7ZkD/LyQnPZcGmpBCSxsfK1hnMtTZAJk/wdEREBkGxBXJysxsnJkYt3ZKQ8QkFRkayySUmRZdGsHwkqzJQQEYUjb6O11NTyduvBnDVxuYDcXAlC0tK4wiZIMVNCRBSu9HqpMYmKkgt6fr4UxEZHB0/9haKUZ0eSkuRhMvn7rOgiMSghIgp33g39rFaZ0snLC44pHYdDCnZjYuT8Y2KCJ5iiM2JQQkREcjGPjZVApKBAMie5ufK5xRJYF3tvMOJtqR8fz6maEMGghIiIyhmNMgUSGytLh/PzJXNisUiA4s/gxNsEzWyWJmjegl0KGQxKiIioMpNJghOrVWo2cnMlODEYJEDxVTDgcklmpLRUxq1RQwImBiMhiUEJERGdXUSEbGBntcqUSVGRZFCKi+U1k0keamZQ3G7Zq8bplGLcqChZTRMdzSLWEMeghIiIzs1gkAxFbKxkUOx22XHX4ZCPPR4JGIxGOdZoPL9Axe2WR1mZZEO8Y5nNkhWJigq8mhbSDIMSIiK6MN7sSFycTK94sxrFxRJYeD9WFHmcLaBQFAlADAZ5v/h4CUa8769nK61ww6CEiIguntEoj+ho6aDq8Uig4naX/wlU3J1Yp5NARK8vD0rON7NCIY1BCRERqUevZ90HXTTmxoiIiCggMCghIiKigMCghIiIiAICgxIiIiIKCAxKiIiIKCAwKCEiIqKAwKCEiIiIAgKDEiIiIgoIDEqIiIgoIDAoISIiooDAoISIiIgCAoMSIiIiCggMSoiIiCggBPQuwcqJra5tNpufz4SIiIjOl/e67b2On6+ADkoKCwsBAGlpaX4+EyIiIrpQhYWFiIuLO+/jdcqFhjE+5PF4cOTIEcTGxkKn06n63jabDWlpacjIyIDValX1vYmIiIKBVtdCRVFQWFiImjVrQq8//0qRgM6U6PV61K5dW9MxrFYrgxIiIgprWlwLLyRD4sVCVyIiIgoIDEqIiIgoIIRtUGI2mzF+/HiYzWZ/nwoREZFfBNq1MKALXYmIiCh8hG2mhIiIiAILgxIiIiIKCAxKiIiIKCAwKCEiIqKAwKCEiIiIAkJYBiXz5s1D/fr1YbFY0Lp1a6xbt87fp0REROQza9euxW233YaaNWtCp9Nh6dKl/j4lAGEYlCxatAiDBw/G6NGjsW3bNnTq1Ak333wz0tPT/X1qREREPlFcXIyWLVvilVde8fepVBB2fUratWuHK6+8EvPnzz/5XJMmTdCzZ09Mnz7dj2dGRETkezqdDp9//jl69uzp71MJr0xJaWkptm7diu7du1d4vnv37li/fr2fzoqIiIiAMAtKcnJy4Ha7kZKSUuH5lJQUZGZm+umsiIiICAizoMRLp9NV+FxRlErPERERkW+FVVBSrVo1GAyGSlmRrKysStkTIiIi8q2wCkpMJhNat26NlStXVnh+5cqV6Nixo5/OioiIiADA6O8T8LUhQ4bg/vvvR5s2bdChQwe88cYbSE9Px2OPPebvUyMiIvKJoqIi7Nmz5+Tn+/fvx/bt25GYmIg6der47bzCbkkwIM3Tnn/+eRw9ehTNmzfHCy+8gM6dO/v7tIiIiHxizZo16Nq1a6Xn+/btiwULFvj+hE4Iy6CEiIiIAk9Y1ZQQERFR4GJQQkRERAGBQQkREREFBAYlREREFBAYlBAREVFAYFBCREREAYFBCREREQUEBiVEREQUEBiUEBERUUBgUEJEREQBgUEJERERBYT/B4ZPp9rFyw4GAAAAAElFTkSuQmCC",
"text/plain": [
"PyPlot.Figure(PyObject <Figure size 640x480 with 1 Axes>)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"PyObject Text(0.5,1,'$M=9$, $\\\\alpha=5\\\\times10^{-3}$, $\\\\beta=11.1$')"
]
},
"execution_count": 222,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using PyPlot\n",
"using Distributions\n",
"\n",
"srand(20180609)\n",
"\n",
"x = collect(linspace(0,1,100))\n",
"y = sin.(2π*x)\n",
"datapoints = collect(linspace(0,1,10))\n",
"data = sin.(2π*datapoints)\n",
"S, m = fit(datapoints, data, 9, 5e-3, 11.1)\n",
"pred=predict(x, S, 9, 5e-3, 11.1)\n",
"\n",
"kernel = Normal(0,0.2)\n",
"noise = rand.(kernel, length(datapoints))\n",
"data = data .+ noise\n",
"plot(x, y, color=\"g\", label=\"truth\");\n",
"plot(datapoints, data, lw=0, marker=\"o\", markeredgecolor=\"b\", markerfacecolor=\"w\", label=\"data\");\n",
"plot(x, pred[1], label=\"test\", color=\"r\")\n",
"fill_between(x=x, y1=pred[1].+vec(pred[2]), y2=pred[1].-vec(pred[2]), alpha=0.1, color=\"r\")\n",
"yticks([-1,0,1]);\n",
"xticks([0,1]);\n",
"legend()\n",
"title(L\"$M=9$, $\\alpha=5\\times10^{-3}$, $\\beta=11.1$\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 0.6.2",
"language": "julia",
"name": "julia-0.6"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "0.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment