{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "8fe2fac3", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:21.772470Z", "iopub.status.busy": "2024-11-15T03:59:21.772084Z", "iopub.status.idle": "2024-11-15T03:59:22.355181Z", "shell.execute_reply": "2024-11-15T03:59:22.354817Z" }, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/user/anaconda3/lib/python3.11/site-packages/pandas/core/arrays/masked.py:60: UserWarning: Pandas requires version '1.3.6' or newer of 'bottleneck' (version '1.3.5' currently installed).\n", " from pandas.core import (\n" ] } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "id": "9a94b5e3", "metadata": {}, "source": [ "## 实现差商和牛顿插值多项式" ] }, { "cell_type": "code", "execution_count": 2, "id": "989e6afe", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.357313Z", "iopub.status.busy": "2024-11-15T03:59:22.357119Z", "iopub.status.idle": "2024-11-15T03:59:22.360095Z", "shell.execute_reply": "2024-11-15T03:59:22.359760Z" }, "tags": [] }, "outputs": [], "source": [ "def generate_diff_quotient_table(x, f):\n", " # x包含插值节点\n", " # f包含节点的函数值\n", " n = len(x)-1 # n次多项式\n", " \n", " a = np.zeros((n+1, n+1)) * np.nan\n", " a[:,0] = f\n", " \n", " for col in range(1,n+1):\n", " for row in range(col,n+1):\n", " a[row,col] = (a[row,col-1] - a[row-1,col-1])/(x[row]-x[row-col])\n", " \n", " return a" ] }, { "cell_type": "markdown", "id": "c17c5a8d", "metadata": {}, "source": [ "### 课本例子2.3" ] }, { "cell_type": "code", "execution_count": 3, "id": "4fa5002a", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.362007Z", "iopub.status.busy": "2024-11-15T03:59:22.361883Z", "iopub.status.idle": "2024-11-15T03:59:22.369898Z", "shell.execute_reply": "2024-11-15T03:59:22.369564Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
012345
00.41075NaNNaNNaNNaNNaN
10.578151.116000NaNNaNNaNNaN
20.696751.1860000.280000NaNNaNNaN
30.888111.2757330.3589330.197333NaNNaN
41.026521.3841000.4334670.2129520.031238NaN
51.253821.5153330.5249330.2286670.0314290.000293
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5\n", "0 0.41075 NaN NaN NaN NaN NaN\n", "1 0.57815 1.116000 NaN NaN NaN NaN\n", "2 0.69675 1.186000 0.280000 NaN NaN NaN\n", "3 0.88811 1.275733 0.358933 0.197333 NaN NaN\n", "4 1.02652 1.384100 0.433467 0.212952 0.031238 NaN\n", "5 1.25382 1.515333 0.524933 0.228667 0.031429 0.000293" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 函数输入\n", "xinput = [0.4, 0.55, 0.65, 0.8, 0.9, 1.05]\n", "finput = [0.41075, 0.57815, 0.69675, 0.88811, 1.02652, 1.25382]\n", "\n", "# 复现表格2.5\n", "coef = generate_diff_quotient_table(xinput, finput)\n", "pd.DataFrame(coef)" ] }, { "cell_type": "code", "execution_count": 4, "id": "ea71460f", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.371705Z", "iopub.status.busy": "2024-11-15T03:59:22.371572Z", "iopub.status.idle": "2024-11-15T03:59:22.374543Z", "shell.execute_reply": "2024-11-15T03:59:22.374227Z" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "近似多项式阶数 = 1 近似值为 = 0.62949\n", "近似多项式阶数 = 2 近似值为 = 0.63201\n", "近似多项式阶数 = 3 近似值为 = 0.63191\n", "近似多项式阶数 = 4 近似值为 = 0.63192\n", "近似多项式阶数 = 5 近似值为 = 0.63192\n" ] } ], "source": [ "# 取插值点\n", "x = 0.596\n", "\n", "for m in [1,2,3,4,5]: # m为近似的多项式次数\n", " y = np.zeros(m+1)\n", " y[0] = 1\n", " for j in range(1,m+1):\n", " y[j] = y[j-1]*(x-xinput[j-1])\n", " approx_value = np.sum(y * np.diag(coef)[0:(m+1)])\n", " print(\"近似多项式阶数 = {:1d} 近似值为 = {:.5f}\".format(m, approx_value))" ] }, { "cell_type": "code", "execution_count": 5, "id": "321fced6", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.376151Z", "iopub.status.busy": "2024-11-15T03:59:22.376027Z", "iopub.status.idle": "2024-11-15T03:59:22.380732Z", "shell.execute_reply": "2024-11-15T03:59:22.380448Z" } }, "outputs": [], "source": [ "def plot_basis_func(m, idx, figsize=(3,3), title=\"\", savefig=False):\n", " \"\"\"\n", " 画Lagrange插值的基函数\n", " m 是多项式次数\n", " idx 是要画出基函数的序号\n", " \"\"\"\n", "\n", " plt.figure(figsize=figsize)\n", " xinput = np.arange(0,m+1)\n", " yinput = np.zeros(m+1)\n", " yinput[idx] = 1\n", " coef = generate_diff_quotient_table(xinput, yinput)\n", "\n", " # 画多项式的图\n", " x_grid = np.arange(0, stop=m, step=0.02)\n", " Px_grid = np.zeros(len(x_grid)) # 多项式在x_grid处的数值\n", "\n", " for i in range(len(x_grid)):\n", " x = x_grid[i]\n", " y = np.zeros(m+1)\n", " y[0] = 1\n", " for j in range(1,m+1):\n", " y[j] = y[j-1]*(x-xinput[j-1])\n", " Px_grid[i] = np.sum(y * np.diag(coef)[0:(m+1)])\n", "\n", " plt.plot(x_grid, Px_grid, linewidth=2)\n", " plt.xlim([-0.2,m+0.2])\n", " plt.ylim([-0.5,1.5])\n", " plt.title(title)\n", " plt.xticks(np.arange(m+1), [r'$x_{:d}$'.format(j) for j in range(m+1)])\n", " plt.yticks(np.arange(2),[0,1])\n", " plt.grid()\n", " plt.tight_layout()\n", " if savefig:\n", " plt.savefig(\"basis_func_\"+str(m+1) + \"_\"+str(idx)+\".pdf\")\n" ] }, { "cell_type": "markdown", "id": "ec819e75", "metadata": {}, "source": [ "### 线性近似的基函数" ] }, { "cell_type": "code", "execution_count": 6, "id": "7c38a79a", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.382400Z", "iopub.status.busy": "2024-11-15T03:59:22.382305Z", "iopub.status.idle": "2024-11-15T03:59:22.490277Z", "shell.execute_reply": "2024-11-15T03:59:22.489955Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAASIAAAEiCAYAAABdvt+2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAbFElEQVR4nO3deVzVdb7H8dcBDgcRDi4oyqKZS+6GaGYuaCqJZqllNZU2lTWllYYzTdZM++S9cxOXzBbHabmT5WSlaTmBpLhrYphLljsibrgdFoEDnPsHeu44mooC3wPn/Xw85g+/oucz8Tuvx+GDnJ/F5XK5EBExyMf0ACIiCpGIGKcQiYhxCpGIGKcQiYhxCpGIGKcQiYhxCpGIGKcQiYhxCpGIGKcQiYhxCpFUildffZUGDRowcuRI06NINaAQSYVbu3Ytr7/+Os899xxr1641PY5UAwqRVLjZs2czfPhwiouLadKkielxpBpQiKRCuVwuFi1axJAhQ1i9ejW9e/c2PZJUAwqRVKgtW7Zw6NAhunXrxtKlSxk2bJjpkaQaUIikQq1atYrw8HDS0tJo164dHTt2dP/e0aNHGTx4MLVr16ZVq1YkJycbnFQ8iZ/pAaRm2bp1Kx07dmT69OlMnDjxnN8bO3YsjRo14ujRoyxZsoS77rqLnTt3Ur9+fUPTiqew6K1ipSINHz6cffv2YbPZWL16tfs8NzeXevXqsWvXLqKiogDo06cPo0aN4qGHHjI1rngIvSKSCnXy5Ek2bdrE+vXrzznfsWMHQUFB7ggBdOjQga1bt1b1iOKBtCOSClVUVMT9999P586dzznPzc3Fbrefc2a328nNza3K8cRDKURSYebMmcOaNWv45ZdfcLlcTJo0iYULFwIQFBSEw+E45+MdDgdBQUEmRhUPoxBJhSgoKOCzzz5j0aJF2Gw2mjdvTkZGBgMHDgSgZcuW5ObmkpmZ6f4zW7ZsoV27dqZGFg+iZbVUmREjRhASEsKbb75JSkoKI0eOZMeOHYSGhpoeTQzTslqqzMyZM3nggQeoX78+ERERzJ07VxESQK+IRMQDaEckIsYpRCJinEIkIsYpRCJiXJV/16y0tJSsrCyCg4OxWCxV/fAiUkVcLhc5OTmEh4fj43Px1zxVHqKsrKxzft5IRGq2/fv3ExkZedGPqfIQBQcHA2XD/efPHpngdDpJSkoiLi4Oq9VqehyRK+Zp17LD4SAqKsr9nL+YKg/R2S/H7Ha7x4QoMDAQu93uEZ88kSvlqdfy5axgtKwWEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEeMUIhExTiESEePKHaLly5czZMgQwsPDsVgszJ8/vxLGEhFvUu4Q5eXl0alTJ2bMmFEZ84iIF/Ir7x+Ij48nPj6+MmapcgdPnWbxj1nUdZmeRMS7lTtE5VVYWEhhYaH71w6HAwCn04nT6azsh7+oF+ZvIfmnI0TV9iWqw3E6NalndB6Rq3H2+WT6eXVWeeao9BBNmjSJl19++bzzpKQkAgMDK/vhf9WBPEj+qez//v48CyNmfU/vxi4GRZUS4GtsLJGrlpycbHoEAPLz8y/7Yy0ul+uKvzCxWCx8+eWXDB069Fc/5kKviKKiosjOzsZut1/pQ1eIDftO8OcF29h5NM991shu44XBbRjQtqHByUTKz+l0kpyczIABA7BarabHweFwEBoayqlTpy75XK/0V0Q2mw2bzXbeudVqNf4fq3uLhiwYE8If3/+WJQetFDhLOeQoZMwn6fRvE8Yrt7cjvE4tozOKlJcnPLfOznG5vP7fEfn7+TAgwsXXT9xEbKsG7vMlPx2mf2Iqf1uxm+KSUoMTitR85Q5Rbm4u6enppKenA7Bnzx7S09PJyMio6NmqVJN6gXzwYFdm3BtNg+CyV3D5RSW89vVP3DZjFen7T5odUKQGK3eINmzYQHR0NNHR0QAkJCQQHR3NCy+8UOHDVTWLxcKtHcNZkhDLyBubYrGUnW876GDYzFW8sGALjgLP+I6ESE1S7hD16dMHl8t13v8++OCDShjPjJBaVl4d2p4vHr+J1o2CAXC54KM1++g/OZWvfzzIVez4ReQ/eP2O6GKim9Rl4ZM9eW5Qa2pZy76nfySnkLFzNvLgB9+z//jlf3tSRH6dQnQJVl8fHu3dnOSE3vRv8//f0l/281EGTEll5rKdOLXMFrkqCtFliqwbyKxRXXjn/hga2QMAKHCW8td//cyt01eStu+44QlFqi+FqBwsFgsD2zdiyYRYHuxxDT5nltk/H87hjrfXMPGLzZzK1zJbpLwUoisQZPPjxSHtWDC2J+0j/v9fjH6yPoN+ictYkH5Ay2yRclCIrkKHyBDmj+nBC7e2pbZ/2TI7O7eIcZ+mM3L2evZm513ibxARUIiump+vDw/1bMaSCbEMbNfIfb5yZzZxU5fzZsoOCotLDE4o4vkUogrSOKQW74yMYfYDXYg48/NpRcWlTE7+hUHTVrB29zHDE4p4LoWogvVrE0ZyQm8e7X0tvme22buO5nHPe2v5/WebOJ5XZHhCEc+jEFWCQH8/nhvUhoVP9OT6qDru83lpmfSbvIx/btivZbbIv1GIKlHbcDtfPH4Trw1tT3BA2TuunMh38sy8H7nnvbXsPJJreEIRz6AQVTIfHwv339iUlAmxDOkU7j5ft+c48dOWk5j0MwVOLbPFuylEVaRhcABv/iaaDx+6gSb1yt4i11niYvp3Oxk4dTmrdmYbnlDEHIWoisW2akDS070Z27c5fmeW2XuP5XPf39Yx/tMfyM4tvMTfIFLzKEQGBFh9+cMtrflmXC+6NK3rPp+fnsXNbyzjk/UZlJZqmS3eQyEyqFVYMP/8XXf+a3gHQmqVvb+vo6CYiV9s5q531/DzoRzDE4pUDYXIMB8fC/fc0ISUCbEMi45wn2/Yd4LB01fw3//azukiLbOlZlOIPERokI0pd1/Px6O70Sy0NgDFpS7eXraLuKmpLPv5iOEJRSqPQuRherQIZfG4Xozv3xJ/37JPz/7jp/nt+98zds5GDjsKDE8oUvEUIg8UYPVlfP9WLB7fi+7X1neff/3jQfpPTuWjNXsp0TJbahCFyIM1bxDEnEe6MXlEJ+rV9gcgp7CYFxZsZfjMVWzNOmV4QpGKoRB5OIvFwh0xkaQkxHJXl0j3+abMU9w2YxWvLdpGXmGxwQlFrp5CVE3Ure3PX+/sxNxHb6RFwyAASkpd/G3lHgYkppK87bDhCUWunEJUzXS7tj7fPNWL38e1wt+v7NOXdaqARz7awKMfbSDr5GnDE4qUn0JUDfn7+fDEzS1JGt+bXi1D3edJ2w4zIDGV2Sv3UKxbHEk1ohBVY9eE1uajh25g2j3XExpUtszOKyrh1UXbGDpzFT9mnjQ7oMhlUoiqOYvFwu3XR5CS0Id7uzVxn2854GDoW6t46aut5BToFkfi2RSiGiIk0Mrrwzrw+eM30bpRMAClLvhg9V76J6ayePNBvSukeCyFqIaJaVqXhU/2ZGJ8awKsZZ/ew45CHv94Iw9/uIH9x/MNTyhyPoWoBrL6+vC72OYkPx1L3+sauM+/236EuCnLeTd1F04ts8WDKEQ1WFS9QP7+267MvK8zDYNtAJx2ljBp8XaGvLmStH0nDE8oUkYhquEsFguDOjRmyYRYHujeFEvZm0Ky/VAOd76zmue/3Myp01pmi1kKkZewB1h5+fb2zB/Tg3bhdgBcLvh4XQb9JqeyIP2AltlijELkZTpF1WHB2B78aXAbAv19AcjOLWTcp+mM+vt69h3LMzyheCOFyAv5+fowute1LEmIZUDbMPf5ih3ZxE1ZzozvdlBUrGW2VB2FyIuF16nFrFFdeG9kDOEhAQAUFpfyRtIvDJq+gvV7jhueULyFQiTEtWtEckIso3s248wdjth5JJe73l3DH+f9yIm8IrMDSo2nEAkAtW1+/OnWtnz1RE86RYa4z+du2E+/xFQ+T8vUMlsqjUIk52gfEcIXY3rwyu3tCLL5AXA8r4gJn23i3lnr2HU01/CEUhMpRHIeXx8Lo7pfQ8qEWAZ3aOw+X7P7GPFTVzAl+RcKnLrFkVQchUh+VZg9gLfu68z7D3Ylsm4tAIpKSpmWsoNB01awele24QmlplCI5JL6XteQ5KdjeSy2OX5nttm7s/O4d9Y6Ev6ZzrHcQsMTSnWnEMllqeXvy7PxrVn0VE9imtZ1n3+x8QD9ElOZ+30GpbrFkVwhhUjKpXUjO5/9rjuvD+uAPaBsmX0y38kfP9/MPe+tZcfhHMMTSnWkEEm5+fhYuLdbE1Im9OH268Pd5+v3HmfQ9BX8z7fbtcyWclGI5Io1CLYx7Z5o/vfhG2haPxAAZ4mLt5buIm7Kcpb/ctTwhFJdKERy1Xq1bMC343vz5M0tsPqWLbMzjucz6u/refKTHziSU2B4QvF0CpFUiACrLxPirmPxuF7c0Kye+3zhpiz6TU7lH2v3aZktv0ohkgrVomEwcx+9kf+5syN1A60A5BQU86f5W7jjndX8dNBheELxRAqRVDiLxcKILlGkTOjDnTGR7vMfMk5y65srmfTNT+QXFRucUDyNQiSVpl5tf94Y0YlPHrmRaxvUBqCk1MW7y3czIHE5KT8dNjyheAqFSCpd9+b1WTyuFwkDWuHvV3bJHTh5moc/3MDj/0jj0Ckts72dQiRVwubny1P9WvLt+N70aFHffb54yyH6J6by/qo9lGiZ7bUUIqlSzUJr84+HuzH17uupX9sfgNzCYl5euI2hb61ic+YpwxOKCQqRVDmLxcLQ6AhSJsTymxui3OebD5zi9rdW8vLCreQWapntTRQiMaZOoD+Thndk3mPdaRUWBECpC95ftZf+k1P515aDeldIL6EQiXFdrqnHoid78czA6wiwll2ShxwFPPaPjYz+cAOZJ/INTyiVTSESj+Dv58OYPi1IGh9LbKsG7vOU7UeIm7KcWct3U1yiWxzVVAqReJQm9QP54MGuzLg3mgbBNgDyi0r4yzc/cduMVaTvP2l2QKkUCpF4HIvFwq0dw0mZEMvIG5tiOXOLo20HHQybuYoXFmzBUeA0O6RUKIVIPJY9wMqrQ9vzxeM30aaxHQCXCz5as4/+k1P5+kcts2sKhUg8XnSTuix8ogfPD2pDLasvAEdyChk7ZyMPfvA9+49rmV3dKURSLfj5+vBI72tJTuhN/zYN3efLfj7KgCmpzFy2E6eW2dWWQiTVSmTdQGaN6sI798fQyB4AQIGzlL/+62dunb6StH3HDU8oV0IhkmrHYrEwsH0jlkyI5cEe13DmDkf8fDiHO95ew8QvNnMqX8vs6kQhkmoryObHi0PasWBsTzpEhLjPP1mfQb/EZcz/4YCW2dWEQiTVXofIEOaP7cGLQ9oSZCu7xVF2bhHj56YzcvZ69mTnGZ5QLkUhkhrB18fCgz2asSQhlvj2jdznK3dmc8vU5UxP2UFhsW5x5KkUIqlRGoUE8Pb9Mcx+oAsRdWoBUFRcSmLyL8RPW8Ha3ccMTygXohBJjdSvTRjJCb35Xe9r8T2zzd59NI973lvL7z/bxPG8IsMTyr9TiKTGCvT3Y+KgNix8oifRTeq4z+elZdJv8jI+27Bfy2wPoRBJjdc23M7nj93Ea0PbExxQtsw+ke/kD/N+5J731rLzSI7hCUUhEq/g42Ph/hubkjIhliGdwt3n6/YcJ37aCiYn/UyBU8tsUxQi8SoNgwN48zfRfPjQDTSpFwiAs8TFm9/tZODU5azckW14Qu+kEIlXim3VgKSnezO2b3P8ziyz9x7L5/7Z6xj36Q8czSk0PKF3UYjEawVYffnDLa35Zlwvul5T132+ID2LfpOXMWddBqW6xVGVUIjE67UKC2buo9357zs6EFLLCoCjoJjnvtzMiHfXsP2Qw/CENZ9CJELZMvvurk1ImRDL8OgI93navhPcOn0l/7V4O6eLtMyuLAqRyL8JDbKRePf1zBndjWahtQEoLnXxTuouBkxJZen2I4YnrJkUIpELuKlFKIvH9WJcv5b4+5Y9TTJPnObBD75n7McbOewoMDxhzaIQifyKAKsvTw9oxeLxvbjx2nru8683H6T/5FQ+XL2XEi2zK4RCJHIJzRsE8ckjN/LGiE7UDSxbZucUFvPiV1sZPnMVW7NOGZ6w+lOIRC6DxWLhzphIvpvQh7u6RLrPN2We4rYZq3ht0TbyCosNTli9KUQi5VC3tj9/vbMTcx+9kRYNgwAoKXXxt5V7GJCYStLWQ4YnrJ4UIpEr0O3a+nzzVC9+H9cKm1/Z0yjrVAGP/m8aj360gayTpw1PWL0oRCJXyN/PhydubknS073p1TLUfZ607TADElOZvXIPxbrF0WVRiESuUtP6tfnooRuY/ptoQoNsAOQVlfDqom0MnbmKHzNPmh2wGlCIRCqAxWLhtk7hpCTEcm+3Ju7zLQccDH1rFS99tZWcAt3i6NcoRCIVKCTQyuvDOvD54zfRulEwAKUu+GD1XvonpvLN5oN6V8gLUIhEKkFM07osfLInz8a3JsBa9jQ77ChkzMcbefjDDew/nm94Qs+iEIlUEquvD4/FNif56Vhubt3Qff7d9iPETVnOu6m7cGqZDShEIpUuql4gsx/owtv3dSbMXrbMPu0sYdLi7Qx5cyVp+04YntA8hUikClgsFuI7NGZJQiy/vekaLGVvCsn2Qznc+c5qnvtyM6fyvXeZrRCJVKHgACsv3daOBWN70D7CDoDLBXPWZdAvMZUF6Qe8cpmtEIkY0DGyDvPH9ODPt7altr8vANm5hYz7NJ1Rf1/PvmN5hiesWgqRiCF+vj483LMZSybEcku7MPf5ih3ZxE1ZzozvdlBU7B3LbIVIxLDGIbV4d2QXZo3qQnhIAACFxaW8kfQLg6avYN3uY4YnrHwKkYiHGNA2jOSEWEb3bIbvmVsc7TySy93vreWZeZs4kVdkeMLKoxCJeJDaNj/+dGtbvnqiB52i6rjP/7khk36JqXyellkjl9kKkYgHahcewheP38Qrt7cj2OYHwPG8IiZ8tol7Z61j19FcwxNWrCsK0cyZM2nWrBkBAQHExMSwYsWKip5LxOv5+lgY1f0alkyIZXCHxu7zNbuPET91BVOSf6HAWTNucVTuEM2dO5fx48fz/PPP88MPP9CrVy/i4+PJyMiojPlEvF6YPYC37uvM+w92JbJuLQCKSkqZlrKDQdNWsHpXtuEJr165Q5SYmMjDDz/M6NGjadOmDVOnTiUqKoq33367MuYTkTP6XteQ5KdjebxPc/zOLLN3Z+dx76x1bMuq3nejLVeIioqKSEtLIy4u7pzzuLg4Vq9eXaGDicj5avn78seBrfn6qV7ENK0LwOAOjWkbbjc82dXxK88HZ2dnU1JSQlhY2DnnYWFhHDp04TcNLywspLCw0P1rh6Os3E6nE6fT/M/WnJ3BE2YRuVzX1g9gzkNdmLfxALGtQs95PnnKtVyeOcoVorMsZ39i7wyXy3Xe2VmTJk3i5ZdfPu88KSmJwMDAK3n4SpGcnGx6BJFyCwLS/uMu2J5yLefnX/57LpUrRKGhofj6+p736ufIkSPnvUo6a+LEiSQkJLh/7XA4iIqKIi4uDrvd/MtJp9NJcnIyAwYMwGq1mh5H5Ip52rV89qufy1GuEPn7+xMTE0NycjLDhg1znycnJ3P77bdf8M/YbDZsNtt551ar1SP+Y53lafOIXClPuZbLM0O5vzRLSEhg5MiRdOnShe7du/Pee++RkZHBY489Vt6/SkQEuIIQ3X333Rw7doxXXnmFgwcP0r59e7755huaNm1aGfOJiBe4omX1mDFjGDNmTEXPIiJeSj9rJiLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLGKUQiYpxCJCLG+VX1A7pcLgAcDkdVP/QFOZ1O8vPzcTgcWK1W0+OIXDFPu5bPPsfPPucvpspDlJOTA0BUVFRVP7SIGJCTk0NISMhFP8biupxcVaDS0lKysrIIDg7GYrFU5UNfkMPhICoqiv3792O3202PI3LFPO1adrlc5OTkEB4ejo/PxbdAVf6KyMfHh8jIyKp+2Euy2+0e8ckTuVqedC1f6pXQWVpWi4hxCpGIGOf1IbLZbLz44ovYbDbTo4hclep8LVf5slpE5D95/SsiETFPIRIR4xQiETFOIRIR47wmRJ988gkBAQEcOHDAfTZ69Gg6duzIqVOnDE4mUn417np2eYnS0lJXx44dXWPHjnW5XC7XSy+95IqMjHRlZmYankyk/Gra9ew1IXK5XK6FCxe6bDab6y9/+Yurbt26ri1btpzze61atXK1aNHCNWvWLINTilyei13PQ4cOddWpU8d1xx13GJzw8nndvyPq3LkzW7duJSkpidjYWACKi4tp27YtS5cuxW6307lzZ9atW0e9evUMTytycRe6ngGWLl1Kbm4uH374IfPmzTM44eXxmh0RwLfffsv27dspKSkhLCzMfb5+/XratWtHREQEwcHBDBo0iG+//dbgpCKX9mvXM0Dfvn0JDg42NFn5eU2INm7cyIgRI3j33Xe55ZZb+POf/+z+vaysLCIiIty/joyMPGcJKOJpLnY9V0dV/jYgJuzdu5fBgwfz7LPPMnLkSNq2bUvXrl1JS0sjJibmgu8g5wnvlSRyIZe6nqujGv+K6Pjx48THx3Pbbbfx3HPPARATE8OQIUN4/vnnAYiIiDjnFVBmZiaNGzc2Mq/IxVzO9Vwded2y+kKKi4tp06YNy5Ytcy+r165dS/369U2PJnLFli1bxowZM6rFstorvjS7FD8/PyZPnkzfvn0pLS3lmWeeUYSkWrvlllvYuHEjeXl5REZG8uWXX9K1a1fTY/0qvSISEeNq/I5IRDyfQiQixilEImKcQiQixilEImKcQiQixilEImKcQiQixilEImKcQiQixilEImKcQiQixv0f2uMDYRBWpeMAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_basis_func(1, 0, figsize=(3,3), title=r\"$\\ell_0$\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "1f211d52", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.492067Z", "iopub.status.busy": "2024-11-15T03:59:22.491927Z", "iopub.status.idle": "2024-11-15T03:59:22.536604Z", "shell.execute_reply": "2024-11-15T03:59:22.536307Z" } }, "outputs": [ { "data": { "image/png": "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MUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCMUREJBxDRETCedn7ASVJAgDodDp7P/Sw9Ho9ent7odPpoFQqRY9DNGqO9ly+8jV+5Wv+Wuweoq6uLgCARqOx90MTkQBdXV3w9/e/5ucopJHkyopMJhOam5vh5+cHhUJhz4celk6ng0ajQUNDA9RqtehxiEbN0Z7LkiShq6sLYWFh8PC49i2Q3V8ReXh4ICIiwt4Pe11qtdohfvOIxsqRnsvXeyV0BS+riUg4hoiIhHP7EKlUKmzcuBEqlUr0KERj4szPZbtfVhMR/SO3f0VEROIxREQkHENERMIxREQknNuE6N1334WPjw+amprks1WrViExMRGdnZ0CJyOynMs9nyU3YTKZpMTEROnxxx+XJEmScnNzpYiICKmxsVHwZESWc7Xns9uESJIkae/evZJKpZK2bt0qTZw4UdJqtUM+Fh0dLc2cOVN69dVXBU5JNDLXej5nZWVJAQEB0r333itwwpFzu39HlJSUhIqKChQXF+POO+8EABgMBsTGxqK0tBRqtRpJSUn46quvEBgYKHhaomsb7vkMAKWlpeju7sZbb72FDz74QOCEI+M2d0QAsH//flRVVcFoNCIkJEQ+P3r0KOLi4hAeHg4/Pz8sWbIE+/fvFzgp0fV93/MZAFJSUuDn5ydoMsu5TYiOHTuG++67Dzt27EBaWho2bNggf6y5uRnh4eHyjyMiIoZcAhI5mms9n52R3d8GRIS6ujosXboUa9aswcqVKxEbG4v58+ejrKwMycnJw76DnCO8VxLRcK73fHZGLv+KqL29Henp6cjMzEROTg4AIDk5GRkZGVi3bh0AIDw8fMgroMbGRoSGhgqZl+haRvJ8dkZud1k9HIPBgJiYGBw4cEC+rD5y5AiCgoJEj0Y0agcOHMC2bduc4rLaLf5odj1eXl54/vnnkZKSApPJhGeeeYYRIqeWlpaGY8eOoaenBxERESgsLMT8+fNFj/W9+IqIiIRz+TsiInJ8DBERCccQEZFwDBERCccQEZFwDBERCccQEZFwDBERCccQEZFwDBERCccQEZFwDBERCff/rhYWmYuUtL8AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_basis_func(1, 1, figsize=(3,3), title=r\"$\\ell_1$\")" ] }, { "cell_type": "markdown", "id": "1c46cdf1", "metadata": {}, "source": [ "### 二次函数的基函数" ] }, { "cell_type": "code", "execution_count": 8, "id": "4aa06655", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.538426Z", "iopub.status.busy": "2024-11-15T03:59:22.538293Z", "iopub.status.idle": "2024-11-15T03:59:22.588303Z", "shell.execute_reply": "2024-11-15T03:59:22.587985Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_basis_func(2, 0, figsize=(3,3), title=r\"$\\ell_0$\")" ] }, { "cell_type": "code", "execution_count": 9, "id": "cfb9a277", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.590061Z", "iopub.status.busy": "2024-11-15T03:59:22.589931Z", "iopub.status.idle": "2024-11-15T03:59:22.640126Z", "shell.execute_reply": "2024-11-15T03:59:22.639823Z" } }, "outputs": [ { "data": { "image/png": "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EREJxyAiIuEYREQkHIOIiIRjEBGRcAwiIhKOQUREwjGIiEg4BhERCccgIiLhGEREJByDiIiEYxARkXAMIiISjkFERMIxiIhIOAYREQnHICIi4RhERCQcg4iIhGMQEZFwDCIiEo5BRETCMYiISDgGEREJxyAiIuEYREQkHIOIiIRjEBGRcB62/kBJkgAAGo3GYufU6/Worq6GRqOBUqm02HnJMtg+9s8abXTlO37lO38jNg8irVYLAIiJibH1RxORAFqtFv7+/jf8HYXUlLiyIJPJhIKCAvj5+UGhUFjknBqNBjExMcjLy4NarbbIOcly2D72zxptJEkStFotIiMj4eZ2414gm18Rubm5ITo62irnVqvV/EO3Y2wf+2fpNrrZldAV7KwmIuEYREQknFMEkUqlwhtvvAGVSiW6FLoGto/9E91GNu+sJiL6I6e4IiIix8YgIiLhGEREJByDiIiEc7gg+vbbb+Hl5YULFy7Ir40bNw7JycmoqKgQWBkBbB9HYJdtJDkYk8kkJScnS5MmTZIkSZJmzJghRUdHS/n5+YIrI0li+zgCe2wjhwsiSZKkNWvWSCqVSnr77belwMBA6ejRo41+1r59e6ldu3bS/PnzBVbpum7UPunp6VJAQIB0//33C6yQrtdGubm5Up8+faTExESpU6dO0tKlS21Sj0MGkSRJUkpKiuTp6Slt2bJFfk2v10txcXFSfn6+pNFopHbt2kllZWUCq3Rd12ofSZKkTZs2SatXr2YQ2YFrtVFBQYF04MABSZIkqaioSIqKipIqKyutXovD9REBwPr165GVlQWj0YiwsDD59T179qBDhw6IioqCn58fhgwZgvXr1wus1DVdr30AoF+/fvDz8xNUGV1xvTaKiIhAly5dAAChoaEICgpCeXm51etxuCDav38/Ro8ejXnz5mHQoEGYPn26/LOCggJERUXJx9HR0Y065Mj6btQ+ZB+a2kZ79+6FyWSyydphNl8G5HacO3cOQ4cOxcsvv4wxY8YgKSkJ3bp1w759+9C1a9drrgRnqTWP6OZu1j4kXlPbqKysDI899hg+//xz2xRm9Zs/CykrK5MSEhKkp59+utHr9913nzRo0CBJkiRpx44dUnp6uvyz5557Tlq8eLFN63RVTWmfKzZv3sw+IgGa2kY1NTVSr169pIULF9qsNqea9GowGJCYmIgtW7ZArVYjNTUVmZmZaNmypejSqIEtW7Zgzpw5WL58uehS6A8kScLDDz+M+Ph4zJgxw2af61RBBACrV6/Giy++CJPJhJdeeglPP/206JKogUGDBmH//v2oqqpCUFAQVq5ciW7duokui+ps374dvXv3RnJysvzaokWL0KlTJ6t+rtMFERE5Hod7akZEzodBRETCMYiISDgGEREJxyAiIuEYREQkHIOIiIRjEBGRcAwiIhKOQUREwjGIiEg4BhERCff/ASpOYBNtrsKJAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_basis_func(2, 1, figsize=(3,3), title=r\"$\\ell_1$\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "0095cfce", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.641836Z", "iopub.status.busy": "2024-11-15T03:59:22.641707Z", "iopub.status.idle": "2024-11-15T03:59:22.690579Z", "shell.execute_reply": "2024-11-15T03:59:22.690274Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAASIAAAEiCAYAAABdvt+2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAcoElEQVR4nO3daWBU1d0G8Ge2TBIyk5CdbCwJkAWSSEC0CEJfAVHZBS0KVqHUYqsWraVUK2ARa62vtbwiKlVxAQXFAiIQyyKEPawhEDAEsgeSQCbrZDJz3g8hI9EACczMmeX5fZszkzv/5Mw8uffce89RCCEEiIgkUsougIiIQURE0jGIiEg6BhERSccgIiLpGEREJB2DiIikYxARkXQMIiKSjkFERNIxiIhIOgYR2c1LL72EkJAQTJ06VXYp5OQYRGQXe/bswcsvv4y5c+diz549ssshJ8cgIrtYtmwZJkyYgKamJsTExMguh5wcg4hsTgiB9evXY/To0di1axeGDBkiuyRycgwisrmsrCyUlpZi4MCB2Lp1K8aPHy+7JHJyDCKyuYyMDERERCAzMxNJSUlITk4GABiNRjz66KOIjo6GXq/Hbbfdhl27dkmulpwBg4hs7vjx40hOTsabb76JP/3pT9b2pqYmdO/eHRkZGbh06RJ+85vfYMyYMairq5NYLTkDBaeKJVubMGECzp07B61We909nsDAQGzduhUpKSkOqo6ckVp2AeR+Ll26hCNHjmDfvn3XfN3JkydRX1+P2NhYB1VGzoqHZmRzjY2NePjhh9GvX7+rvqaurg5Tp07F888/Dz8/PwdWR86IQUQ29emnn2L37t04deoUhBBYtGgR1q1b1+o1JpMJkydPRmJiIubOnSupUnImDCKymYaGBqxatQrr16+HVqtFbGws8vPzcffdd1tfY7FYMG3aNKhUKixbtgwKhUJixeQsOFhNDvWrX/0Kp0+fxsaNG+Ht7S27HHISDCJymHPnzqFbt27w9vaGSqWytn/zzTcYPHiwxMpINgYREUnHMSIiko5BRETSMYiISDoGERFJ5/BbPCwWC4qLi6HT6XgNCZEbE0KguroaERERUCqvvc/j8CAqLi5GdHS0o9+WiCQpKChAVFTUNV/j8CDS6XQAmovT6/U22abJZMLmzZsxYsQIaDQam2yTbIf94/zs0UcGgwHR0dHW7/y1ODyIWg7H9Hq9TYPI19cXer2eH3QnxP5xfvbso/YMwXCwmoikYxARkXQMIiKSjkFERNIxiIhIOgYREUnHICIi6RhERCQdg4iIpGMQEZF0DCIiko5BRETSMYiISDoGERFJxyAiIukYREQkHYOIiKRjEBGRdAwiIpKOQURE0jGIiEg6BhERSccgIiLpGEREJB2DiIikYxARkXQMIiKSjkFERNIxiIhIOgYREUnHICIi6RhERCQdg4iIpGMQEZF0DCIiko5BRETSMYiISDoGERFJxyAiIukYREQkHYOIiKRjEBGRdAwiIpKOQURE0jGIiEg6BhERSccgIiLpGEREJB2DiIik63AQfffddxg9ejQiIiKgUCjw1Vdf2aEsIvIkHQ6i2tpapKSkYPHixfaoh4g8kLqjPzBq1CiMGjXKHrUQkYfqcBB1lNFohNFotD42GAwAAJPJBJPJZJP3aNmOrbZHtsX+cX726KOObMvuQbRo0SLMnz//J+2bN2+Gr6+vTd8rPT3dptsj22L/OD9b9lFdXV27X6sQQogbfSOFQoE1a9Zg3LhxV31NW3tE0dHRKC8vh16vv9G3bsVkMiE9PR3Dhw+HRqOxyTbJdtg/ziuvvBbdgnzR1NRk8z4yGAwIDg5GVVXVdb/rdt8j0mq10Gq1P2nXaDQ2/1DaY5tkO+wf53K+ugH3L92LxAg9XhqTAMC2fdSR7fA6IiIPNX9tNgwNTdhzphJvf5cntZYOB1FNTQ0OHz6Mw4cPAwDy8vJw+PBh5Ofn27o2IrKTb7PL8PWxEgBAYCcvPDeil9R6OnxoduDAAQwbNsz6ePbs2QCARx55BB988IHNCiMi+6huMOGF/2RZH//lvkQEdvKSWNENBNHQoUNxE+PbRCTZ3zfloKSqAQAwpFcIxqZGoKmpSWpNHCMi8iD7z1Zi+e5zAAAfjQoLx/WBQqGQXBWDiMhjNJjM+OMXR62Pnx3ZG9GBtr2W70YxiIg8xL+2nMaZC7UAgNToAPzyZ93kFnQFBhGRB8gqqsLb288AADQqBf42MRkqpfxDshYMIiI3ZzJb8IfVR2G2NJ9k+u2wnugdrpNcVWsMIiI3t2RbLk6UNN9sHh+uw2+Gxkqu6KcYRERu7GSpAf/achoAoFIq8Pf7U+Cldr6vvfNVREQ2YTJb8OyqIzCZmw/Jfj2kB/pG+Uuuqm0MIiI3tXR7LrKKmg/Jeob64am7ekqu6OoYRERu6ESJAf/8b/MhmVIBvDYpBVq1SnJVV8cgInIzJrMFz3x+xSHZnbFIiQ6QW9R1MIiI3MziLd8j+/JZst5hOjztxIdkLRhERG7kaOElLN76PYDms2T/mOzch2QtGEREbqLBZMbsz49cceFiHPpEOudZsh9jEBG5idc25eD78zUAgL6R/vjtz+MkV9R+DCIiN7A7twLLMpqne/VSK/H65BRoVK7z9XadSomoTYYGE55ddQQt8xU+N7I3eoY5171k18MgInJx89YeR9GlegDA7T2C8Nig7pIr6jgGEZELW3+0GF8eLAIA6LRqvDY5BUonmt6jvRhERC6qpKoef17zwyT488cmITLAR2JFN45BROSCLBaBZz4/gqr65vXl70vugvG3REqu6sYxiIhc0Ls7zmBXbgUAoIu/NxaO6+sUk+DfKAYRkYvJKqrCa5tzAAAKBfCPSSnw93XtpbwZREQupK6xCU+uPGS9oXXmkB74WVyw5KpuHoOIyIXMX5ttXYmjb6Q/nhneW3JFtsEgInIR644U47MDBQAAXy8V/vlgqlNO+3oj3OO3IHJzBZV1mPvlMevjBWP7oEeIn8SKbItBROTkTGYLfrfiEKqNzevTj02NwMR+rnuqvi0MIiIn99rmHBwuuAQAiAn0xUtOsl69LTGIiJzYtpzzWHrFCq2Lp9wCvbdrn6pvC4OIyEmVVNVj9udHrI//eHc8kqMC5BVkRwwiIifUZLbgyRWHUFnbCAC4KyEU0+9wvbvq24tBROSE/pF+CvvPXgQARAb44LVJKW43LnQlBhGRk/nviTIs2ZYLAFArFXjzF7cgwNdLclX2xSAiciIFlXWtxoXmjIpHWtfOEityDAYRkZNoMJkx65OD1qk97k4Kd+txoSsxiIicxIL12ThWVAUA6Brki1cnJbv1uNCVGERETmB1ZiE+3ZsPANCqlVjyUJpbXi90NQwiIsmyiqrw5zU/3Ee2cHxfJEboJVbkeAwiIoku1jbi8Y8zYWyyAAB+cWsM7k+LklyV4zGIiCQxWwSeXHkIhReblwJKjQ7AvDGJkquSg0FEJMmrm05ix+lyAEBQJy8sebgftGqV5KrkYBARSbDuSLH1Zla1UoH/e6gfuvi75lJAtsAgInKw48VVeG71Uevj5+9NwG09giRWJB+DiMiBymuMmLk8E/UmMwBgYr8oPPKzbnKLcgIMIiIHaWyyYNbHB63r1KdGB2DhePeb5OxGMIiIHEAIgRe+ysK+s5UAgFCdFkunpsFb45mD0z/GICJygPczzlpX4PBSK/HOtP4I03tLrsp5MIiI7Gxrznn89ets6+O/35+M1OgAeQU5IQYRkR3llFbjd58egqV5YVb8dlgcxqa61woctsAgIrKTC9VGPPbBftRcXgZoVJ9wzB7eS3JVzolBRGQH9Y1mzFh+wHqGrG+kP16fnAqlkmfI2sIgIrIxi0Xg958dxpHLa5F18ffGe4/0h48Xz5BdDYOIyMZe3nACG4+XAgD8tGr8+5cDeIbsOhhERDb0fkYe3tuZBwBQKZsXREzo4llzC90IBhGRjWzMKsGC9T+cpv/ruD4Y2jtUYkWug0FEZAP78irx5MrDEFecpv/FrTFyi3IhDCKim3SqrBozPtyPxsuzLE7oF4lnRvA0fUcwiIhuQtGlekxbtg+GhuZrhYb0CsHfJnrO6hu2wiAiukEXaxsxbdlelBoaADRfK7TkoX7QqPi16ij+xYhuQI2xCb/8YD9yL9QCALoHd8L7jw5AJ61acmWuiUFE1EHGJjN+/dEB6wWLITotlj92K4L9tHILc2EMIqIOaDJb8OSKQ8j4vgIA4O+jwcfTByI60FdyZa6NQUTUThaLwB9WH8Wm42UAAB+NCv/+5QD0DtdJrsz1MYiI2kEIgRf+k4U1h4oAAF4qJd6Zloa0rp0lV+YeGERE1yGEwEvrT+CTy2vTt9y6MbhniOTK3AeDiOgahBB4dVMO/p3RfP+YQgG8PjkFI5LCJVfmXhhERNfwv+mnsGRbrvXx3yYmc4ZFO2AQEV3FG9+ewptbvrc+fmlcH0zuHy2xIvfFq6+IfkQIgf/99jTe/O9pa9v8MUmYeltXiVW5NwYR0RWEEHg9/RT+dcWe0F/uS+RqrHbGICK6TAiBVzaexNLtZ6xtL45OxKODukusyjMwiIjQHEIL1mfj/Yyz1rb5Y5K4J+QgDCLyeGaLwJ/XHMPK/c0rsSoUwMJxfTFlICc2cxQGEXk0k9mC2Z8fwbojxQAApaL5FP0knh1zKAYReaz6RjNmfZKJrTkXAABqpQJvPJiK+5IjJFfmeRhE5JGq6k2Y8eF+7D97EQDgpVZiyUP98D8JYZIr80wMIvI4ZYYGPPLvfThZWg2gee2x9x7pj9t6BEmuzHMxiMij5F6owbRl+6xLQQd18sIHj96KvlH+kivzbAwi8hiZ5yox/cMDuFRnAgBEdfbBR9MHontwJ8mVEYOIPMLGrBI8tfIwjJeX/EnooseHjw5AKJeCdgoMInJrQgi8tyMPL39zwrr44R1xwVjycD/ovDVyiyMrBhG5LZPZgnlrj1snNAOaFz98ZUIyvNSceMKZMIjILVXVm/DEJwex8/tya9vTd/XEU//Tk4sfOiEGEbmd3As1+NWHB3CmvHnNMS+VEq9M7IsJ/aIkV0ZXwyAit7It5zx+t+IQqi8vAR3YyQvvTE1D/26Bkiuja2EQkVsQQuCtbbl4bXOOdVA6PlyHd6f155pjLoBBRC6vusGE51YfxTdZpda2kUlheH1yKpeAdhHsJXJpp8uq8euPM3Hm8hr0CgXw+7t64bfD4qBUclDaVTCIyGWtOVSIuV9mod5kBgDovNV444FU3rjqghhE5HLqG81YsP44VuwrsLbFh+vw9sNp6MbbNVwSg4hcyumyajzx6UGcKquxtk1Ki8KCsX3g46WSWBndDAYRuQQhBD7em4+/rs+23i/mo1FhwdgkzqboBhhE5PTKa4yY88UxfHuizNoWH67D4im3IC5UJ7EyshUGETm1b7PLMOfLoyivabS2Tb2tK/58bwK8NTwUcxcMInJKVfUmvLQ+G6szC61tgZ288OrEZNyVyLNi7oZBRE5ny8kyzP0yC6WGBmvbXQmhWDQhGSE6rcTKyF4YROQ0KmsbsWDdcXx1uNja5qdV4y/3JWJS/yjeNe/GGEQknRACXxwswsKvs3Hx8jSuADC4ZzBemZiMyAAfidWRIzCISKrTZdV4/qss7M2rtLbpvdV4/r5ETErjXpCnuKFp6t566y10794d3t7eSEtLw44dO2xdF7m56gYTFm04gVH/3NEqhO5N7oJvZ9+Jyf2jGUIepMN7RJ999hmefvppvPXWWxg0aBCWLl2KUaNGITs7GzExXCucrs1iEfjyUBH+tvEkLlQbre0xgb6YPyYJw+JDJVZHsnQ4iF5//XVMnz4dM2bMAAC88cYb2LRpE5YsWYJFixbZvEByH3vzKvHKplPIKjJY27zUSjx+ZyxmDY3ldUEerENB1NjYiMzMTMyZM6dV+4gRI7Br1y6bFtZee89U4MuDBUiwSHl7aodTZdVYekKJ7N0HWrUPTwzDC/cmIiaIE5d5ug4FUXl5OcxmM8LCWl9QFhYWhtLS0jZ/xmg0wmj8YRfcYGj+b2gymWAymdr8mfYSQuDVjSeRmX8JaoUKZzTZmDU0FkF+vNbEGZyrrMO/tuRi7ZESiCuGI+PDdZg7qhduv7zE881+DujmtfSBLfuiI9u6obNmPx5EFEJcdWBx0aJFmD9//k/aN2/eDF/fm/tPWN4AHC9SAVCgSSiwfG8hVu4vwOBwgZ9HWODHZaukKG8ANhcqsf+CAhb88LkI8BK4J9qCASEXcfHkXmw4KbFIalN6errNtlVXV9fu1yqEaJnh9/oaGxvh6+uLVatWYfz48db2p556CocPH8b27dt/8jNt7RFFR0ejvLwcer2+3YVezcW6RizdfgbL95yDyfLDh95Ho8QD/aMw/Y5uCOdqng5x+nwNln6Xh/XHSmG2/PCx8vdR484QI+Y9NAw6X/aFMzKZTEhPT8fw4cOh0djmP7jBYEBwcDCqqqqu+13v0B6Rl5cX0tLSkJ6e3iqI0tPTMXbs2DZ/RqvVQqv96aGSRqOxyS8c6q/BnFHx6Go8g9OaHvjsQCEamyyoN1nwwe58fLKvAGNSIjFzSA/0Dued2rYmhMD+sxfxzne5+PbE+VbP6b3VmH5HD0wdGIUdWzZD5+ttsw852Yetvpct22qvDh+azZ49G1OnTkX//v1x++2345133kF+fj4ef/zxjm7Kpvy9gL/cE48nhvXE0u9ysWJfPhpMFpjMAl8cLMQXBwsxuGcwHh3UDUN7hXI+45tkbDJjw7ESvJ9xFkcLq1o9F+CrwWODuuORn3WDv4+GY0B0XR0OogceeAAVFRVYsGABSkpK0KdPH2zYsAFdu3a1R30dFu7vjRdHJ+GJYXF4PyMPH+0+B8PlNa52nC7HjtPliAn0xUMDY3B/WhQHtjuooLIOK/fnY+W+AlTUNrZ6rou/Nx4b1B1TBsZw9QzqkBv6tMyaNQuzZs2ydS02FeynxR9GxmPW0Dh8tr8AH+w6i/zK5sGz/Mo6LPrmJF7bnIMRieG4v38UBscFQ63ieuhtaTCZsTm7DKsOFGDn9+X48ahiUoQe0+/ojvuSI7imPN0Qt/+31UmrxmN3NB8m/PdEGT7acw47Tjevh24yC3x9rARfHytBqE6L0SkRGJcaiT6Reo+/vcBsEdibV4H/HCrGhqwS68qpLdRKBUb2Cce027ri1u6BHv/3opvj9kHUQqVUYERSOEYkhSOvvBYr9+fji8xC68x/56uNWLYzD8t25qFrkC9G9emCkUlhSIkK8JjxJJPZgn15ldiYVYqNx0tb3YLRIjrQBw8OiMGktCiE8mwk2YjHBNGVugd3wp9GJeCZ4b2xLec8VmcWYmvOeZjMzccc5yrq8Pb2XLy9PRehOi1+Hh+Kob1DMSguCDpv9zrrU15jxI7TF7D15AVsyzlvHU+7kq+XCnf3CcektGgM7B7oMcFMjuORQdTCS6207iVdqmvEhmOl+PpYMXbnVqDlMpjz1Uas3F+AlfsLoFIqkBodgNt7BGFgj0Ckde0MXy/X+hNeqmvE/rMXsfdMBTJyK3CixNDm67zUSgztFYLRKRG4KyGMS/WQXbnWt8iOAny9MGVgDKYMjEFFjRHp2WVIzy7Dzu/LrcvXmC0CmecuIvPcRSze2ny4Fx+uwy0xAUiOCkCfCH/Ehfo5zYBtXWMTckqrkVVUhaOFVTiYfxG5l5dmbotOq8bQ+FAMTwzDz+ND4cczX+Qg/KS1IchPiwdvjcGDt8agvtGMPWcqsP3UBew4faHVF9lsEThebMDxYgOAfADNg7ixIX6IC/VDbEgndAvuhK5BvogM8EWITguVjQ9rTGYLSqsaUHixHvmVtcgrr0PuhRp8f74GZytqf3KG60oKBdAnwh+D4oIxrHcI+nXtDA3PHJIEDKLr8PFSYVh8qHWenNKqBuzNq8DevEocPHcROWXVrb7sTRaBnLJq5JRV/2RbaqUCwX5ahOi06NzJC519NdB5q9FJq4aPRgWtWgWNSgGlQgGB5rl7TBYLjCYL6k1m1BibYKg34VKdCRW1jbhQbURFrfGaYXMljUqBxAh/pMV0xsAegbi1WyA6d/KywV+J6OYwiDoo3N8bY1MjMTY1EkDzTINZRQYcK7qE7GIDTpRU40x5jXXg+0pNFoFSQ0Or1SnsRatWoleYDglddEiK8EffKH8kdtFzzh9ySgyim6Tz1uD22CDcHhtkbTOZLcivrMOZC7U4V1GLgso6FFc1oPhSPS5UG1FeY4Sl3bcat02jUiDk8t5VRIAPIgJ80DXIFzGBvogN8UNkgA/PbpHLYBDZgUalRGyIH2JD/Np83mIRMDSYcLHOhJqGJtQYm9DQZIbRZEaTRcBsaZ5WRaVQQKVUwFujhLdGBT+tGnpvDQI6aaDTqnkRIbkNBpEESqUCAb5eCPDl+AwRcIOreBAR2RKDiIikYxARkXQMIiKSjkFERNIxiIhIOgYREUnHICIi6RhERCQdg4iIpGMQEZF0DCIiko5BRETSMYiISDoGERFJxyAiIukYREQkHYOIiKRjEBGRdAwiIpKOQURE0jGIiEg6BhERSccgIiLpGEREJB2DiIikYxARkXQMIiKSjkFERNIxiIhIOgYREUnHICIi6RhERCQdg4iIpGMQEZF0DCIiko5BRETSMYiISDq1o99QCAEAMBgMNtumyWRCXV0dDAYDNBqNzbZLtsH+cX726KOW73jLd/5aHB5E1dXVAIDo6GhHvzURSVBdXQ1/f/9rvkYh2hNXNmSxWFBcXAydTgeFQmGTbRoMBkRHR6OgoAB6vd4m2yTbYf84P3v0kRAC1dXViIiIgFJ57VEgh+8RKZVKREVF2WXber2eH3Qnxv5xfrbuo+vtCbXgYDURSccgIiLp3CKItFotXnzxRWi1WtmlUBvYP85Pdh85fLCaiOjH3GKPiIhcG4OIiKRjEBGRdAwiIpLO5YJoxYoV8Pb2RlFRkbVtxowZSE5ORlVVlcTKCGD/uAKn7CPhYiwWi0hOThZPPPGEEEKIefPmiaioKFFYWCi5MhKC/eMKnLGPXC6IhBBi3bp1QqvVioULF4rOnTuLrKysVs/16tVLxMXFiXfffVdilZ7rWv0zbtw4ERAQICZOnCixQrpaH+Xn54s777xTJCQkiL59+4rPP//cIfW4ZBAJIcQtt9wivLy8xLZt26xtJpNJ9OzZUxQWFgqDwSDi4uJERUWFxCo9V1v9I4QQW7ZsEWvXrmUQOYG2+qi4uFgcOnRICCFEWVmZiIyMFDU1NXavxeXGiABg06ZNOHnyJMxmM8LCwqzt+/btQ1JSEiIjI6HT6XDPPfdg06ZNEiv1TFfrHwAYNmwYdDqdpMqoxdX6qEuXLkhNTQUAhIaGIjAwEJWVlXavx+WC6ODBg5g0aRKWLl2KkSNH4oUXXrA+V1xcjMjISOvjqKioVgNyZH/X6h9yDu3towMHDsBisThk7jCHTwNyM86ePYt7770Xc+bMwdSpU5GYmIgBAwYgMzMTaWlpbc4EZ6s5j+j6rtc/JF97+6iiogLTpk3De++955jC7H7wZyMVFRUiPj5ezJw5s1X7mDFjxMiRI4UQQmRkZIhx48ZZn3vyySfFJ5984tA6PVV7+qfF1q1bOUYkQXv7qKGhQQwePFgsX77cYbW51U2vTU1NSEhIwLZt26DX69GvXz/s2bMHQUFBskujK2zbtg2LFy/G6tWrZZdCPyKEwJQpU9C7d2/MmzfPYe/rVkEEAGvXrsWzzz4Li8WC5557DjNnzpRdEl1h5MiROHjwIGpraxEYGIg1a9ZgwIABssuiy3bu3IkhQ4YgOTnZ2vbRRx+hb9++dn1ftwsiInI9LnfWjIjcD4OIiKRjEBGRdAwiIpKOQURE0jGIiEg6BhERSccgIiLpGEREJB2DiIikYxARkXQMIiKS7v8BTvNPFeA5FtIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_basis_func(2, 2, figsize=(3,3), title=r\"$\\ell_2$\")" ] }, { "cell_type": "markdown", "id": "68bb2b7b", "metadata": {}, "source": [ "## 高次多项式可以非常好地近似$\\sin$函数" ] }, { "cell_type": "code", "execution_count": 11, "id": "e6693cfe", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.692378Z", "iopub.status.busy": "2024-11-15T03:59:22.692250Z", "iopub.status.idle": "2024-11-15T03:59:22.697181Z", "shell.execute_reply": "2024-11-15T03:59:22.696885Z" } }, "outputs": [], "source": [ "def plot_sin_approximate(points_select, m_list = [1, 2, 3, 4, 5, 6]):\n", " \"\"\" \n", " m_list contains the number of degree of polynomials\n", " points_select is a function that select grid points (see examples below)\n", " \"\"\"\n", " \n", " if len(m_list) != 6:\n", " print(\"Please choose 6 values for m_list!\")\n", " return\n", " \n", " plt.figure(figsize=(6,5))\n", " \n", " for m_idx in range(len(m_list)):\n", " m = m_list[m_idx]\n", " xinput = points_select(m) \n", " yinput = np.sin(xinput)\n", " coef = generate_diff_quotient_table(xinput, yinput)\n", "\n", " # 画多项式的图\n", " x_grid = np.arange(0, stop=np.pi, step=0.02)\n", " Px_grid = np.zeros(len(x_grid)) # 多项式在x_grid处的数值\n", "\n", " for i in range(len(x_grid)):\n", " x = x_grid[i]\n", " y = np.zeros(m+1)\n", " y[0] = 1\n", " for j in range(1,m+1):\n", " y[j] = y[j-1]*(x-xinput[j-1])\n", "\n", " Px_grid[i] = np.sum(y * np.diag(coef)[0:(m+1)])\n", "\n", " plt.subplot(3,2,m_idx+1)\n", " plt.plot(x_grid, Px_grid, 'b--', label=\"polynomial\", linewidth=1.5)\n", " plt.plot(x_grid, np.sin(x_grid), 'r-.', label='true', linewidth=1.5)\n", " plt.plot(xinput, yinput, 'kx', label='data points')\n", " plt.title(\"m=\"+str(m))\n", " if m_idx == 5:\n", " plt.legend(bbox_to_anchor=(1.0, 1.0))\n", " \n", " plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": 12, "id": "50aa9bc7", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:22.698743Z", "iopub.status.busy": "2024-11-15T03:59:22.698651Z", "iopub.status.idle": "2024-11-15T03:59:23.095132Z", "shell.execute_reply": "2024-11-15T03:59:23.094821Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "points_select = lambda n : np.array([np.pi * k/n for k in range(n+1)])\n", "plot_sin_approximate(points_select, m_list=[1,3,5,7,9,11])" ] }, { "cell_type": "code", "execution_count": 13, "id": "850097c4", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:23.096845Z", "iopub.status.busy": "2024-11-15T03:59:23.096714Z", "iopub.status.idle": "2024-11-15T03:59:23.476879Z", "shell.execute_reply": "2024-11-15T03:59:23.476582Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHqCAYAAAAZC3qTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACea0lEQVR4nOzdd3QUVRvH8e9mk00IJZTQaxCEIApIkdAFBSkKooiFqiBIEyK9JBAUFKmCNKlWUIryKioohA7Se69RwBCEJATS7/vHkIVAEjbJbmbL8zlnD9nZ2Z3fhrmbZ2fu3GtQSimEEEIIIUSG3PQOIIQQQgjhCKRoEkIIIYSwgBRNQgghhBAWkKJJCCGEEMICUjQJIYQQQlhAiiYhhBBCCAtI0SSEEEIIYQEpmoQQQgghLCBFkxBCCCGEBaRoElkyevRo2rRpQ8mSJTEYDHTr1k3vSEK4jLCwMF5++WXKly9P7ty58fHxoUaNGsyaNYvExES94wnhtKRoElkybdo0rl+/zksvvYTJZNI7jhAuJSYmhnz58jFmzBjWrFnDsmXLaNCgAf3796d37956xxPCaRlk7jmRFcnJybi5aTV3njx5ePXVV1myZIm+oYRwcR07dmTVqlXcunULT09PveMI4XTkSJODGzt2LAaDgUOHDtGhQwd8fHwoWLAggYGBJCYmcvLkSV544QXy5s1LuXLlmDRpklW2m1IwCeHq9GqDaSlcuDBubm4YjUabbUMIVyZ/+ZzEa6+9RrVq1Vi5ciU9e/Zk2rRpDBo0iHbt2tG6dWtWr15N06ZNGTZsGKtWrTI/LzEx0aKbHJAUImN6tEGlFImJidy4cYPly5ezZMkSPvjgA9zd3XPyrQvhOpRwaMHBwQpQU6ZMSbW8evXqClCrVq0yL0tISFCFCxdW7du3Ny8DLLotXrw43Qy5c+dWXbt2tfZbE8Ih6NkGJ06caH7cYDCoUaNG2ex9CiGUkq8jTqJNmzap7vv7+3Pw4EFatmxpXubu7k6FChW4ePGiednu3bsten0/Pz/rBBXCSenRBrt168Zzzz3Hf//9x4YNG/j000+JjIxk5syZWXwXQoiMSNHkJAoWLJjqvslkwtvbGy8vr4eWR0VFme9Xr17doteXPhJCZEyPNlisWDGKFSsGQPPmzSlQoADDhw/n7bffpkaNGpl8B0KIR5E+TS7Ow8PDotvSpUv1jiqEU7JmG6xTpw4Ap06dsnVsIVySHGlycXJ6Tgh9WbMNbty4EYAKFSpkK5MQIm1SNLm4WrVqZel5mzZt4tq1awAkJSVx8eJFVqxYAUDjxo0pXLiw1TIK4cyy0gaDg4P5999/adSoESVLluTmzZv89ttvfPHFF3To0IGaNWvaIKkQQoomkSXBwcFs2rTJfD80NJTQ0FBA+7bbpEkTfYIJ4QJq1arFZ599xo8//sj169fx8vKiSpUqTJs2jffee0/veEI4LRkRXAghhBDCAtIRXAghhBDCAlI0CSGEEEJYQIomIYQQQggLSNEkhBBCCGEBKZqEEEIIISwgRZMQQgghhAUcYpym5ORkLl++TN68eTEYDHrHESJLlFJER0dTokQJ3Nwc6/uKtEHh6By5/Qk7ojJp06ZNqk2bNqp48eIKUKtXr37kc0JDQ9XTTz+tPD09lZ+fn5ozZ06mthkWFqYAucnNKW5hYWGZbXZmerQ/paQNys15btlpf0Jk+khTTEwM1apVo3v37rzyyiuPXP/8+fO0atWKnj178vXXX7Nt2zb69OlD4cKFLXo+QN68eQEICwsjX758mY0shF2IioqidOnS5v05K/RofyBtMLsmTpyIm5sbw4YNe+ixTz75hOTkZEaMGJHpdYXlrNH+hMj0kab7waO/6Q4dOlRVrlw51bJevXqpunXrWrydyMhIBajIyMisxBTCLlh7P86p9qeUtMHsCgkJUYAKCQl55PLMrCssJ/uwsAab92nasWMHzZs3T7WsRYsWLFy4kISEBDw8PGwdQTyKUhAXp/3s6QnSZ8VpSPuzD2PGjAEgKCjIfH/8+PEEBQUREhLCiOGjSYiOxcPL+Mh1Ux4XQuQ8mxdNV69epWjRoqmWFS1alMTERCIiIihevPhDz4mLiyMu5Y842mFVkU1Kwd9/w86d2q1CBUiZ2DMhAXLl0n6+fBlS/k9Wr4YjR6BePQgIAG9vfbKLLMtK+wNpg1anFO91G8yhQ1oxNHbshyQnxzPMkJshQR/hfrdAAsDLi5F5fIhwL0pQUBDjg8eRoJIY1G0go0eN1u89CCFyZsiBB6+2UXfnCE7vKpyJEyfi4+NjvpUuXdrmGZ2SUrBrFwwdChUrQpky8NprMHUq/P77vfXc76ud7z/fv2oVBAXBc89BgQLQqBFMnw5Xr+bYWxDZl9n2B9IGLTF27FjGjx+f5mPjx49n5MixXL8OLF0KJUoQ++4AVqwYA5hITo7HBHysYvAiLvWTY2MxRvzLjMR/MQEJKgkTMHXJdLr5rOatt2DLFssyjB071jpvVggB5EDRVKxYMa4+8Ec2PDwcd3d3ChUqlOZzRowYQWRkpPkWFhZm65gOKd0PzJs3Gd+yJWMLFoS6deHTT+HsWTAa4emnoU8f6Nbt3vpubhAZqd1y5763/IUX4K23oGRJiI/XPqkHDdLuv/ACY19/nfEhIWlmkw9s+5CV9gfSBi1hNBq1I0H3tcGk+CR6Ne1CUFAQn35qZMoUtC8cV69S/Oo+SpUaD8RjNJqIBwa8+h4Xt1zkvxPhxF+LhOvX4dw5bm7cT68mnYgHPAxuxANjceOPW8/w7bdw+jQwZw7G7767e+Qq9edAyuk8o9GYc78QIVxBdjpEYWFHVH9//1TLevfuLR3BreChjqGXLyvVr58K8fDQloNSefIo9frrSv3wg1LR0VnbUHKyUqdPK/XZZ0rVrauUdgxLhdy9hDekXTul4uLSzyWUUvp1BM9u+1NK2mB6Uvb1kYGj1J8tJ6nBhnwKUM1oqECp5s2VUjExSv3xhwoJCkrVLjJqJw8+lnL/nXdC1LBhWlNXDRsqBaqHfwsFqGefDVHXr0v7S4/sw8IaMl00RUdHq/3796v9+/crQE2dOlXt379fXbx4USml1PDhw1Xnzp3N6587d055e3urQYMGqWPHjqmFCxcqDw8PtWLFCou3acnOfutW+rc7dyxf9/btrK8bE5P+ujExWV/39u301x09+u4HZKNGSnl7mwuZcYWLqNiZ89Wt8JhU69/vzp2M319668YcPK3iPhiukn187m2vQAGlVq1SIePGKUCNHh2S7usmJ9973djYjDMkJd1bNy7OeusmJmZt3fh4y39nD7LGh7Ye7c9a2Z3StWuqR7mGClCmu21hBF7q14Bxav/+e/u6Ta6eO3JEqWHD1KvPRijQHnPDXQFqWN+htnzXDkn2YWENmS6aNm7cmOaAYV27dlVKKdW1a1fVuHHjVM8JDQ1VNWrUUCaTSZUrVy7Tg+tZsrPfPfiR5q1Vq9Trenunv+4D0ZWvb/rr1qqVet2yZdNft0qV1OtWqZL+umXLpl63Vq301/X1VSpk1KhUH9rl6aog+aF1vb1Tv26rVhn/3u736qsPP56XSBXIZDWEPKm2X716SIavGx5+73X79Mk4w/nz99YdPDjjdY8cubducHDG6/711711J03KeN2NG++tO2uW5b+zB1njQ1uP9met7E7l9m2lJk5UKl8+pe7b9z3c3NXtG7EPrR4cHJzukZ+QkBAVHBycpXWV0gr5775TymAwmdvhbbzU1kYjVMzVqCy/RWcj+7CwhmydnsspUjQ9vE5RrihIVr6+2jomd+0bpvbBmfbrWrtoSrnlJlqZjEbtA9tkUl27pjz2cOEmRZNjfmg7cnarSk5W+4YvV/HFS5v/04MLFzPv+3qdFks5CuVh1D4HQu5mu+5VXKklS1IfhnVRsg8La3CaosmVTs/Ffr5AJXt7qztfr1C3bt37wEz50M7o1Nj9snp6Lr1ThCnbDwoKUbc371aJNWurmJ0H5fTcXY78oe3I2a0lYu8FtadY63sVcunSKqR9+1SFkh79iR7c5rix2inyQLcC97I2aKDUyZM5lskeyT4srMFpiiaXMmSI9kH4+uvpdhjNqQ/tdLefctjtlVdyJIcjcOT92JGzW8Pe975Qt8itFKhYTOr3gGA1dtSYNNtaTrbBR/Z/ev55pXJruePdvdSuDp+q5ITEdF7Nubn6PiysQ4omRxQfr9SiReZO13p9aD/yA7tmTaX++8+mGRyJI+/Hjpw9O2JilOrWTakuLFEK1B7vhuroimNKqcz3PbIFizKcP69u1X/efNTpuG99FXn4os2z2RtX3YeFdRmUUupRwxLoLSoqCh8fHyIjI11zstBffoG5c2HlSjCZzIvHjh2L0WhMc1qF8ePHk5SUZNOxkjK1faXgo4+ge3dtnCcX5Mj7sSNnz6pLx2No/VpujhwBN4Ni0atreX1pSzxz5ciYwFaVlKj4/fXF1F85CB+iiHTLT/jERVQc+rLe0XKMK+7DwvqkaLJnSsG0aTB4sPbzlCkQGKh3qqxZtAjeeQdKldKKwKee0jtRjnPk/diRs2dacjJ8+CHJixZTz303F275snw5NG6sd7Ds27fyPG5vvk71+L+IxZNfZpzllQGu8SXGpfZhYTOO95XJVSQnw4AB8MEHWsHUsyf07693qqx79lmoXFmb/65Bg9TTuAhhJ5QCYmLgq69wu3iBn95czv79zlEwATz9ih/l/t7KygpDCWQqr75fkhEj9E4lhOOQoskeJSRAly4waxYYDNpccfPmgSPPSO/nB9u3Q5MmEB0NbdrA99/rnUoIs7g47ezxzCV5tcmqFy+maEhf0pnT2GHlL+zByyc/oeCoPgAULgwcOgQHDuiaSwhHIEWTvblzB9q3h2++0SbS/fprbb63DCZXdRgFCmhHmN54AxITtX+//FLvVEIQs2EXk2t8w9Kl2tnwv/NXTT0/o5Nxc4MPP4QdO2BQ5who21Y7ApwyE7AQIk1SNNmT2Fjtw+vnn8HLC378Ed58U+9U1mUywVdfQY8e2inIrl21o2hC6CTqqx8xPv8sQ493o0Wuzfz0k9b1zhXUrQsGdyM89hhJxUrQa7o/MjezEOmToslexMXBK6/A+vWQOzf89hu0bq13KtswGrVCKaWPVu/e8MUX+mYSLunmR7PI06U9Xsl3CPVozsTfn+aFF/ROlcMKFIC1axn41Ebmr/Klfn04d07vUELYJyma7EF8PLz2GqxdC7lyaVeXOUvP0/S4ucGMGdq5EIBeveDbb/XNJFxK5JAPyT+6P24ovvLuRck9P1GjYR69Y+nDZGLI9JI8/jiEhcGs2ku42ePuVbtCCDMpmvSWnKx1+l6zRjsl97//OX/BlMJggEmToE8f7cO5Sxf46Se9UwlnpxSMHo3PZG18sWn5x9Hg8ByqPOWuczB9lSkDoaHQvPwZJv3Xg/wLpxDZuZ/2GSWEAKRo0t/Zs1rnaA8P7YqdZs30TpSzDAaYOVMrmJKSoGNH+OcfvVMJZ6WUdnTzo48A2PLSp7Q/EIRfeSe40MIKiheHpdsqMK7YXJIx4PPNbG693kNrm0IIXPurlT2oWBG2boWTJ3G9zhR3ubnBwoXaFXUvveSyI4YLG1OK+F79MX3xuXZ/5kwa9uunbyY7VKwY9N3fg+FPezHxSlfy/LAY5RGHYelS7YpeIVyYtAC93Lmj9V8CeOIJ7ebK3N21YRaEsAWlSBwQiOmLz0nGQNxn88nVr4feqexWsWLQf1cngp7z4sNzb2D49lvtaPiiRdqXHCFclOz9eti2DcqXhz//1DuJ/frnH+jUCaKi9E4inIAKCsZ91nQA+not5EwTKZgepXRp+PDEqxi+/1674nXpUm2WAukcLlyYFE16mDQJrl6FBQv0TmKflIJ27bQjT448dYywC+qPPzF8OB6A991m0uGX7jz5pM6hHITBALz8MixZgjIY4PPPUcNHSOEkXJacntPD8uUwcSIMHap3Evt098OZfv0gOFjvNMLBzTrWlChGEkNuAr7pR9OmeidyPOHNOzHePYaZCb0xTPoE8uWFUaP0jiVEjjMoZf9fGZxidmqlnGMqlJzkZL8zR96PHTX7unXQsqV21fwnn8j3lOyYNw9O9Z7CFO6OrTZ3rja+moNw1H1Y2Bc5PZdTgoO1b2Yy5onl7i+Y1q6Fw4f1yyIcy+bNJL36Gv3evm2erWfIEL1DObZevYDADwhBG99K9ekDBw/qG0qIHCan53LCzz/DeK1PBU2but5YTNn1/ffw+utQrhzs3g2FCumdSNizO3fg9dcxXrnC1p6PMyjmQ+bNc6qDlrqZNAlePjWOBT9fJiLPY7xd7CmK6B1KiBwkR5ps7cIFbeBG0Do1S8GUec2agZ8fnD8PnTvL0TqRsVy5YMUKePFFiswYxTffgKen3qGcg9EIX39jYPLjXzAiagQdXzeQmKh3KiFyjhRNthQXp80pd+MG1KkDkyfrncgxFSqkjZbu5QW//iq/R5Gh+fNhm6qnTU2UMhaasJp8+WD1jwby5NHGc0q4cUubdPvaNb2jCWFzUjTZ0uDB2umkAgW0U0wmk96JHNdTT8Fnn2k/jxypjXUlRIqkJOjdm72LD9GnjzZ946FDeodyXv7+sG+fNsd2rt5dtV7inTrpHUsIm5OiyVaWL4dZs7Sfv/oKypbVN48z6NED3nxT+wP5+utw/breiYS9GDEC5s2jXI9meCXd4o03kLGYbKxixbv9xMaPRz3+OLeGjNM7khA2J0WTLZw7Bz17aj+PGAGtW+ubx1kYDNplzo8/Dn//rV0SJf2bxNKl8OmnAPRNnkm5J/Iwd650/M4pN4pXoUOVYzw3ui4JCXqnEcK2pGiytsREeOstiI6Ghg0hJETvRM4lb17tVKenJ/zyC0ydqncioaft2+HddwEYz2h+zv06K1ZA7tw653IhUVHwZ6iRXbtgzBhg/3744w+9YwlhE1I0WduHH8LOneDjo52Wk1nBra9aNZgxQ/t55EgZK8ZVXbqkTfERH89qXiaYccybB5Ur6x3MtZQtCwsXaj//+clukgIawCuvwPHj+gYTwgakaLKm7dvvjcc0Z470Y7Kld9+Fl16ChATtyF5srN6JctTs2bPx8/PDy8uLmjVrsmXLlnTXDQ0NxWAwPHQ7ceJEDia2sthYaN8ewsP527canfmS199w46239A7mmtq3h/feg4NU46/kmtrhp5dflgm3hdORoslakpLg7be1PjadOsEbb+idyLkZDPDFF1CkCBw9qh1xchHLly9n4MCBjBo1iv3799OwYUNatmzJpUuXMnzeyZMnuXLlivlWsWLFHEpsA/37w969UKgQJXf/xMxFefj8c71DubYpU6DykybaJqzgmlcpOHkSuneXyX2FU5GiyVqMRu362xdeuHfVnLCtIkVg0SJtLJ7y5fVOk2OmTp3KO++8Q48ePfD392f69OmULl2aOXPmZPi8IkWKUKxYMfPNaDTmUGIrW7BAuxkM8N13GMqVpXt3bWQPoZ9cubSPwEhTEdrEriDJ6AGrVpk76QvhDKRosqann9YGX/Tx0TuJ62jdWhspvF8/vZPkiPj4ePbu3Uvz5s1TLW/evDnbt2/P8Lk1atSgePHiNGvWjI0bN2a4blxcHFFRUaludmHPHvP/9Zo6HxJZ53mdA4n7Va0K48ZBeLlnODvg7rhqI0bAhg36BhPCSqRoyq6ICJlIVm9Fi977OT5evxw5ICIigqSkJIre/56BokWLcvXq1TSfU7x4cebPn8/KlStZtWoVlSpVolmzZmzevDnd7UycOBEfHx/zrXTp0lZ9H1kSEaF1MI6L46/iL9Fu13A6d9Y7lHjQ4MHawKKPT+kF3bppXRY6doSwML2jCZFtUjRlV79+ULPmvctHhH62bNG+6v70k95JbM7wwCBESqmHlqWoVKkSPXv25OmnnyYgIIDZs2fTunVrJmcwHc2IESOIjIw038Ls4Q/etGlw6RK3ilXg+StfYnR348MP9Q4lHuTuro0MgsEAs2eTXL2GVvC++qo2tZQQDkyKpuyIi9Ou4klOhurV9U4jfvkFTp/Whn1w0s6nvr6+GI3Gh44qhYeHP3T0KSN169bl9OnT6T7u6elJvnz5Ut10N24cdwJH0SZ+FVH4MGKENruOsE9Kwdyluaj790qSfArAX3/BoEF6xxIiW6Royg5PT20i2X37tKNNQl9jx2pX0a1f77TDQZtMJmrWrMn69etTLV+/fj316tWz+HX2799P8eLFrR3Pttzd6fPfh2z670n8/WHUKL0DiYwkJ8M338DuCD/GlP9WWzhnDvzwg77BhMiGLBVNLj9GzP0MBvm6ay+8vOCjjyB/fr2T2FRgYCALFixg0aJFHD9+nEGDBnHp0iV69+4NaKfWunTpYl5/+vTp/Pjjj5w+fZqjR48yYsQIVq5cST9H6Dx/9apWHcXFsW4dLFmiNbmFC7XvLMJ+GY3axa2enjBx/wscfWmE9kCPHnDxor7hhMiiTA9XnTJGzOzZs6lfvz7z5s2jZcuWHDt2jDJlyqT7vJMnT6Y6xF+4cOGsJbYHq1Zpt88+g4IF9U4j0qKU9jW3TRunK6I6duzI9evXCQkJ4cqVK1StWpW1a9dS9u5gqleuXEk1ZlN8fDyDBw/mn3/+IVeuXDzxxBP88ssvtGrVSq+3YBmloEsXWL8eFRbG6BNfAjBgAAQE6JxNWKRiRRg9Wpte5fkdIVysuwWPJg2gRAm9owmRNSqT6tSpo3r37p1qWeXKldXw4cPTXH/jxo0KUDdu3MjspswiIyMVoCIjI7P8GlZz86ZSxYsrBUqNH693GpGe997T/o/eflvvJGZ2tR9nkm7Z//c/pcqUUerYMXXtmlIDByoVHZ2zEUT2xMYq5e+vNcfePeJ1y+HI7U/Yj0ydnsupMWLs2ogRcOWK9hVq8GC904j0vPmmdh5n0SIIDdU7jciqNm20zv3+/vj6ahfQ5cmjdyiRGZ6eMHeu9vPcBR5s23b3gfh4bWwCIRxIpoqmnBojxm4H1tu2TevICDBvntaHRtinBg2gVy/t59695VJnRxIRoU3Gi9aZeMNWk7NeDOkyGjWCd97R+jnt2QP8+y80bAhNmpj/r4VwBFnqCG7rMWLscmC9+HhtkljQ5lN69ll984hHmzgRihXT5sD6+GO90whLKAVdu2pDeKxfz1dfQbNm8PrrTjuKhMuYNAl274b330eb80Y7YwfnzukdTQiLZapoyqkxYuxyYL1Jk+DYMShcWOZSchT588OMGdrPEyZoxZOwb59/DmvXwu3bROUqypAh2uJatZx2FAmXUbAg1Khx947JBN9/DwcOaEebhHAQmSqacmqMGLsbWO/kSRg/Xvt5+nQoVEjXOCITOnSAli21I4W9e8vhCnt29CjmKunTTxm57CmuXQN//7tHJ4TTOHIEJn1fDu5e8QlI2xQOIdNDDgQGBtK5c2dq1apFQEAA8+fPf2iMmH/++Ycvv9QuD54+fTrlypXjiSeeID4+nq+//pqVK1eycuVK674TW1FK6xsTHw8tWsAbb+idSGSGwaAdvXjiCa1D+NKl2nxYwr7ExWmd92Nj4YUX2FevH3MGag/NmqUdmBDO4fJlbW7zhASoV0/rfsgvv2hjrP32G+j9JVmIDGS6T1PHjh2ZPn06ISEhVK9enc2bN1s0RsxTTz1Fw4YN2bp1K7/88gvt27e33ruwpaVLYdMmyJVL6wQu5wgcj5+fNlo4aFc8RkToGkekYeRI7UoqX1/UosX0H2AgOVnry9S0qd7hhDWVKHHve8uAAZB0O06bw3PHDm2BEHbMoJT9HxONiorCx8eHyMjInD1Vd+MGVKoE167BJ5/A0KE5t21hXQkJWseYQ4e0AROXLs3xCLrtx1Zg0+x//AHPP6/9vGYN3995kY4dwdsbTp2CkiWtuzmhv2vXtFFbIiNh/nzo6b8VGjfWLpdctgw6drT6Nh25/Qn7IXPPZWT0aK11V6kiE006Og8P7dPZYIAvv4QMhrwQOej6de1qOdD6nL34Ivnza39Qhw2TgslZFS587+DvyJFws2qDe5MJ9uolwxAIuyVFU3qSkuDsWe3nWbO0P7rCsT3zDPTsqf0cFKRvFqH1F+zZU+vkUqkSTJkCQPPmWkdhObDr3Pr21Tr5R0TAuHFoc60884x2+KlzZ+0zWAg7I0VTeoxG+PVX2L5dxmRyJhMmaJdiOcqFCM5s0SJYvVr7QvLtt9r5uLtMJhk71tl5eGgXI4N2rcbZSx7afJF58mhHgj/5RNd8QqRFiqaMGAwyM6izKVRIho2wB6dP3xtH4MMP4emnGTVKmwM7IUHfaCLnNG8Ob72lDYNXqhTw2GMwc6b2YHAw7Nunaz4hHiRF04P++w8++ED7Vzg3pWDvXr1TuKblyyEmRhvY8IMPOHZMO7Dw/vuwa5fe4URO+vprGDhQm6MO0Pq4vfoqJCZqp+liY/WMJ0QqUjQ9aNQomDpVa7TCeSUmapPB1qrFvRlERY4ZPVo7Jffll2A0MmSI1oWlXbu74/YIl5SYCAqDNrxL0aLaLAyjR+sdSwgzKZoe1LGjNhBiyqUdwjm5u2sDxphMWq9jkfPeeANKl2bzZm3mFHd37TSNcE3/+x9UraqNc4mvLyxYoD0wdapc7SrshhRND2rSRBvLp1EjvZMIW5s4USuYevXSO4lriIvTTn1fu2ZepBSMGKH93KOHNtSAcE1bt2ozVg0bph1xok0beOede5M4x8ToHVEIKZrM7r+81U1+LS7B11f+SueksWO1owZNm2qDGKIdVdi+XRtwf8wYfeMJfQ0fDgUKaGfkzGPPTp0KTz2l7Rz3XV0phF6kOgC4dUs7Jffxx9q3YeF6du+GadP0TuHcOnaEJ5/UJr92c0Ope91V+vfXzpYK11WgwL39ISgI7txBm4du3z54+22ZwkrYBSmaQCuWTp6EL76QmbZd0alT2qB6gwdrp2aFbVSvrv0BbNcO0P4GLlkCr72mnZIRom9fKF1aG+903ry7C43GeyvcvClXNgtdSdF0/jxMnqz9PGWKjKjnih5/XLtaMjlZu/ZZCmfrunz53s/u7qkeql5dG32gYMGcjSTsk6fnvdO0Eyc+0I1p61btSGWvXtJGhW6kaBoyRDsl16wZtG2rdxqhl0mTtE/sjRu1UaqFdfzxB/j5wUcfpfpDJ0PviPR06wbly0N4OPzww30PeHvD1atw4IA2Z6EQOnDtomnjRm06DTc3bZRoOWfuusqV007Pgfav/FXPvshIrS9KfDz884+5fd25A5UrQ58+2ipC3M/DQxsUfO3ae3M5A/D007BmjVY0+frqFU+4ONctmhITtVMxAO+9pw0QIlzb8OFab+Tz5+9NiiWybuBACAvTDhvcNwDT/Plw8aJ25VyuXPrFE/arVSto2TKN77EtW0Lu3LpkEgJcuWhasEDr9FugwN0ptoXLy5NHuygAtNNJV67om8eRrVmj9fI2GLTrx/PkAbQDeCnzsI4cqY0tKkRGbtyAqKgHFiYnw4wZsHChLpmE63LNounGjXvXtoaEyOSt4p633oI6dbRhKEaN0juNY4qIgHff1X7+4INU86J88YVWi5YuDd2765RPOIxFi7QucZ9++sADK1ZoRzLffx/OndMjmnBRrlk0jRundSR84gno3VvvNMKeuLlp32BBO1IiE/pmjlLa6e5//4UqVbQxme6Kjb13IE+OMglL5M+v9XubPv2Bvt+vvqrN3hATo1XfdwdLFcLWXK9oOnUKPv9c+3n69IcugRaCunWhUyetAHj/fbm8OTOWLdOOAri7a5Px3jeEx4IF2ugDpUrJUSZhmZdf1oaluHXr3ncZQPtys2iRdtp382b47DO9IgoX43pF0/DhWifw1q3huef0TiPs1ccfa5c4b9sG33+vd5qHzJ49Gz8/P7y8vKhZsyZbtmzJcP1NmzZRs2ZNvLy8KF++PHPnzrV+qMuXtdEJQTv9XbOm+SGlYNYs7ecRI7TRHYR4FIPh3lnymTMfuNrSz+/eGHsjRmgDFAthY65VNN28CQcPaiPMynTqIiMlS94bpnrUqNRzE+ps+fLlDBw4kFGjRrF//34aNmxIy5YtuXTpUprrnz9/nlatWtGwYUP279/PyJEjGTBgACtXrrReKKWgZ0+tv2DNmtr5t/sYDLBli3Zm/J13rLdZ4fzatwd/f+3je/bsBx58911o3lw799utm121U+GklAOIjIxUgIqMjMz+i8XGKrV+ffZfRzi/W7eU6tRJqUOHrPJy1tqP69Spo3r37p1qWeXKldXw4cPTXH/o0KGqcuXKqZb16tVL1a1b1+JtPjL7F18oBUp5eip15IjFryuEJb76Stu9fH21ZpnKpUtK+fhoK3z8cbqvYdW/I8JludaRJtDOC8hpOWGJ3Lnhq6+0qRvsRHx8PHv37qV58+apljdv3pzt27en+ZwdO3Y8tH6LFi3Ys2cPCQkJaT4nLi6OqKioVLd0RUdrI+sDfPihdoHFfW7ceMSbEuIRXn9dG+7rv/9g06YHHixd+l6Hp08/1TpACWEjrlE03bmjjeeRmKh3EuHI7GDqhoiICJKSkihatGiq5UWLFuXq1atpPufq1atprp+YmEhERESaz5k4cSI+Pj7mW+nSpdMPlTcv/Pabdnpk0KBUDyUlaf3qn31WrgwXWefuDosXa92WWrVKY4UuXSA4GPbsMY8JJoQtuEbRNGMG9Oihdf4WIrMSE+9Nv37qlN5pADA8MFSyUuqhZY9aP63lKUaMGEFkZKT5FhYWlnGgZ57R/qrdPyM98OOP2q/s4EEoXDjjlxAiI40aQYUK6TxoMMDYsdp0SELYkGsUTUWKaHMVdeqkdxLhiNzdtXk/7tzRfTJfX19fjEbjQ0eVwsPDHzqalKJYsWJpru/u7k6hdAZ29fT0JF++fKlumaXUvXGZ+vXTDkgJYQ2nTkE6Z5aFsCnXKJrefhvOnNFGexYiK6ZM0SZ4TrmiTicmk4maNWuyfv36VMvXr19PvXr10nxOQEDAQ+uvW7eOWrVq4eHhYbOsGzZoZ0ty5YL+/W22GeFi+vfXJnxevlzvJMIVuUbRBODjow2IJkRWVKqkjUBsBwIDA1mwYAGLFi3i+PHjDBo0iEuXLtH77uj2I0aMoEuXLub1e/fuzcWLFwkMDOT48eMsWrSIhQsXMnjwYJvmTDnK1LOnnJoT1lOsmHYU89NPZdxZkfOcu4ro108bnVhalrCmK1dgxw7dNt+xY0emT59OSEgI1atXZ/Pmzaxdu5ayZcvejXcl1ZhNfn5+rF27ltDQUKpXr8748eP57LPPeOWVV2yWcc8e+OMP7cxmYKDNNiNc0HvvaRe2HjoEDxxAFcLmDErZf0URFRWFj48PkZGRlvet2LABmjXTPrVPndJGjxUiu7ZuhRYttEmeT57Uzj1ZKEv7sZ3IbPbevWHePO2ipqVLcyCgcCkDB2rX9zz3nOWFkyO3P2E/nPNIU3KyNrs6aJ/eUjAJa6lZU7uoICxMm7tQpGnmTG2IqxEj9E4inNGgQdqFmn/8Afv3651GuBLnLJq++goOHIB8+bSxO4Swlly5YMIE7eeJEyE8XN88dsrDQ7tYtXJlvZMIZ1S2LLz2mvbzp5/qm0W4Fucrmm7fvjfD46hR2lEBIazpjTegVi1tJOyxY/VOY1fu3JExZEXOSBmE/o8/ICZG3yzCdThf0TR1Kvzzj/ZVZMAAvdMIZ+Tmpg1BADB/Phw/rm8eOzJ1qjYA4Xff6Z1EOLsaNeCHH7SR5nPn1juNcBXOVTRdvXrvOueJE8HLS988wnk1agTt2mnzhKR85XVxcXEwa5Y2DqhMNi9ywquvyqwpImc5V9EUHKwdp61TR5vhUQhb+uQT7erMX36BP//UO43uli3TvreUKHGvv4kQOUEp7doMIWwtS0XT7Nmz8fPzw8vLi5o1a7Jly5YM19+0aRM1a9bEy8uL8uXLM3fu3CyFzdCRI7BggfbzlCnaXERC2NLjj2uDxgAMHqxdtemilIJp07Sf+/cHk0nfPMJ1nDkD1apBvXoytYqwvUwXTcuXL2fgwIGMGjWK/fv307BhQ1q2bJlqML37nT9/nlatWtGwYUP279/PyJEjGTBgACtXrsx2+FSGDNH+aLVvDw0aWPe1hUhPUJB2leaBA/D113qn0c3GjdqkvN7e8O67eqcRrqR0afj3X/j7b7D2nxUhHpTpomnq1Km888479OjRA39/f6ZPn07p0qWZM2dOmuvPnTuXMmXKMH36dPz9/enRowdvv/02kydPznZ4s3Xr4LfftFMln3xivdcV4lF8fWHkSO3nUaO0y8dc0NSp2r/du0PBgvpmEa7F0xP69NF+njZNJoAQtpWpoik+Pp69e/fSvHnzVMubN2/O9u3b03zOjh07Hlq/RYsW7Nmzh4R0jqXGxcURFRWV6pahkBDt3759tUt3hMhJAwZAmTLaV93fftM7TY47f17r1mUwwPvv651GuKLevbVTwkeOaBciCGErmSqaIiIiSEpKomjRoqmWFy1alKtXr6b5nKtXr6a5fmJiIhEREWk+Z+LEifj4+JhvpUuXzjjYihVaR4oxYyx/M0JYS65cWn+6Xbvg5Zf1TpPj/Pxg506YNAkqVtQ7jXBFRYvC6tVaZ/By5fROI5yZe1aeZHigk7VS6qFlj1o/reUpRowYQeB9s3xGRUVlXDgVKwafffao2ELYzvPP651AV888o92E0EurVnonEK4gU0WTr68vRqPxoaNK4eHhDx1NSlGsWLE013d3d6dQoUJpPsfT0xNPT8/MRBNCCCGEsKlMnZ4zmUzUrFmT9Q9MK71+/Xrq1auX5nMCAgIeWn/dunXUqlULDw+PTMYVQgghhNBHpk/PBQYG0rlzZ2rVqkVAQADz58/n0qVL9O7dG9BOrf3zzz98+eWXAPTu3ZtZs2YRGBhIz5492bFjBwsXLuS7TMyzkHI675EdwoWwYyn7r3LAy3ukDQpH58jtT9iPTBdNHTt25Pr164SEhHDlyhWqVq3K2rVrKVu2LABXrlxJNWaTn58fa9euZdCgQXz++eeUKFGCzz77jFdeecXibUZHRwM8ukO4EA4gOjoaHx8fvWNkirRB4Swcsf0J+2FQDlB2Jycnc/nyZfLmzZtm5/GUjuJhYWHky5dPh4TW40zvBZzr/WT3vSiliI6OpkSJEri5OdYMRtIGHZczvZ/svBdHbn/CfmTp6rmc5ubmRqlSpR65Xr58+Rz+QyGFM70XcK73k5334qjfcKUNOj5nej9ZfS+O2v6E/ZByWwghhBDCAlI0CSGEEEJYwCmKJk9PT4KDg51ibCdnei/gXO/Hmd6LtTnT78aZ3gs41/txpvciHJNDdAQXQgghhNCbUxxpEkIIIYSwNSmahBBCCCEsIEWTEEIIIYQFpGgSQgghhLCAwxdNs2fPxs/PDy8vL2rWrMmWLVv0jpRlmzdv5sUXX6REiRIYDAZ+/PFHvSNlycSJE6lduzZ58+alSJEitGvXjpMnT+odK8vmzJnDU089ZR5QLyAggF9//VXvWHbDWdqgs7Q/kDYohK04dNG0fPlyBg4cyKhRo9i/fz8NGzakZcuWqea+cyQxMTFUq1aNWbNm6R0lWzZt2kTfvn3ZuXMn69evJzExkebNmxMTE6N3tCwpVaoUH3/8MXv27GHPnj00bdqUtm3bcvToUb2j6c6Z2qCztD+QNiiEzSgHVqdOHdW7d+9UyypXrqyGDx+uUyLrAdTq1av1jmEV4eHhClCbNm3SO4rVFChQQC1YsEDvGLpz1jboTO1PKWmDQliLwx5pio+PZ+/evTRv3jzV8ubNm7N9+3adUom0REZGAlCwYEGdk2RfUlISy5YtIyYmhoCAAL3j6EraoOOQNiiEdTjEhL1piYiIICkpiaJFi6ZaXrRoUa5evapTKvEgpRSBgYE0aNCAqlWr6h0nyw4fPkxAQACxsbHkyZOH1atXU6VKFb1j6UraoGOQNiiE9Ths0ZTCYDCkuq+UemiZ0E+/fv04dOgQW7du1TtKtlSqVIkDBw5w8+ZNVq5cSdeuXdm0aZN8aCNt0N5JGxTCehy2aPL19cVoND70jTY8PPyhb75CH/3792fNmjVs3ryZUqVK6R0nW0wmExUqVACgVq1a7N69mxkzZjBv3jydk+lH2qD9kzYohHU5bJ8mk8lEzZo1Wb9+farl69evp169ejqlEqAdaejXrx+rVq1iw4YN+Pn56R3J6pRSxMXF6R1DV9IG7Ze0QSFsw2GPNAEEBgbSuXNnatWqRUBAAPPnz+fSpUv07t1b72hZcuvWLc6cOWO+f/78eQ4cOEDBggUpU6aMjskyp2/fvnz77bf89NNP5M2b13wkwsfHh1y5cumcLvNGjhxJy5YtKV26NNHR0SxbtozQ0FB+++03vaPpzpnaoLO0P5A2KITN6HfhnnV8/vnnqmzZsspkMqmnn37aoS+p3bhxowIeunXt2lXvaJmS1nsA1OLFi/WOliVvv/22eR8rXLiwatasmVq3bp3eseyGs7RBZ2l/SkkbFMJWDEoplZNFmhBCCCGEI3LYPk1CCCGEEDlJiiYhhBBCCAtI0SSEEEIIYQEpmoQQQgghLCBFkxBCCCGEBaRoEkIIIYSwgBRNQgghhBAWkKJJCCGEEMICUjQJIYQQQlhAiiYhhBBCCAtI0SSEEEIIYQEpmoQQQgghLCBFkxBCCCGEBaRoEkIIIYSwgBRNQgghhBAWkKJJCCGEEMICUjQJIYQQQlhAiiaRaRcuXMBgMKR5W7Zsmd7xhHB6Y8eOTbcNSjsUwnYMSimldwjhWC5cuICfnx/9+/fnzTffTPVYxYoVKVSokE7JhHANf//9N3///fdDy3v27MnZs2e5fPky+fPnz/lgQjg5d70DCMdVpkwZ6tatq3cMIVxOqVKlKFWqVKplFy5c4OjRo7z11ltSMAlhI3J6zsGlHKY/dOgQHTp0wMfHh4IFCxIYGEhiYiInT57khRdeIG/evJQrV45JkybpHVkIp2IvbXDRokUopejRo4dNXl8IIUWT03jttdeoVq0aK1eupGfPnkybNo1BgwbRrl07WrduzerVq2natCnDhg1j1apV5uclJiZadEvrLO7HH3+MyWTC29ubBg0asGbNmpx8y0LYFT3aYIrk5GSWLFlChQoVaNy4cU68XSFckxIOLTg4WAFqypQpqZZXr15dAWrVqlXmZQkJCapw4cKqffv25mWARbfFixebn3P58mXVs2dP9f3336stW7aob775RtWtW1cB6osvvrD5exbCnujRBh/066+/KkBNnDjR6u9PCHGP9GlyEm3atEl139/fn4MHD9KyZUvzMnd3dypUqMDFixfNy3bv3m3R6/v5+Zl/Ll68OPPnz0/1eIcOHXjmmWcYPnw43bp1w91ddi3hWnKyDT5o4cKFuLu7061bt8yFFkJkivxlcxIFCxZMdT/ltJmXl9dDy6Oiosz3q1evbtHrG43GDB/38PCgY8eODB8+nNOnT+Pv729ZcCGchF5tMCIigjVr1tC6dWuKFSuWudBCiEyRPk0uzsPDw6Lb0qVLH/la6m6fCzc32a2EsFR22+BXX31FfHy8dAAXIgfIkSYXZ41TAwAJCQksX74cX19fKlSoYI1oQriE7LbBhQsXUqJEiVSnAYUQtiFFk4urVatWpp8TGBhIQkIC9evXp1ixYoSFhTFz5kwOHDjA4sWLH3kqTwhxT1baYIpdu3Zx9OhRRo4cKe1OiBwgRZPItKpVqzJv3jy+/fZboqKiyJs3L3Xq1OH333+nefPmescTwmUsXLgQg8HAO++8o3cUIVyCTKMihBBCCGEB6bErhBBCCGEBKZqEEEIIISwgRZMQQgghhAWkaBJCCCGEsIAUTUIIIYQQFpCiSQghhBDCAg4xTlNycjKXL18mb968GAwGveMIkSVKKaKjoylRooTDTTUjbVA4Okduf8KOqEzatGmTatOmjSpevLgC1OrVqx/5nNDQUPX0008rT09P5efnp+bMmZOpbYaFhSlAbnJziltYWFhmm52ZHu1PKWmDcnOeW3banxCZPtIUExNDtWrV6N69O6+88soj1z9//jytWrWiZ8+efP3112zbto0+ffpQuHBhi54PkDdvXgDCwsLIly9fZiOL+0ycOBE3NzeGDRv20PLt27dTr149RowYkeqxTz75hOTk5IeWi8yJioqidOnS5v05K/RofyBt0JrSaoMpy4CH2pq0P+uwRvsTItNFU8uWLTM1MeTcuXMpU6YM06dPB8Df3589e/YwefJkiz+0U04H5MuXTz6wLTB27FiMRiNjxox56LG//vqLDRs24OXllerxv/76i82bN+Pu7p7qdzx+/HgmTJhA06ZN0/zdjx8/nqSkJMaOHWuT9+KMsnN6S4/2B9IGs+PB9ujt7U1QUBBeXl4AJCUlmZcBhISEMHXqVPNcchMmTCAkJMT8e5c2lz1yellkh81P7O7YseOh+chatGjBnj17SEhIsPXmXZLRaCQoKIjx48enWj5+/Hg2bNhA06ZNCQoKol+/8fz2G3R8bRwbNmygZgl/NmzYQL9+483rBwUF0bRpUzZs2JDm6wUFBclEoXZM2l/OGjt27EPtJKU9NmvWjLFjxzJmzBjGjRtHUFAQQUFBnDlj5Nhf0Wk+JygoiJCQEMaMGcPYsWNp1qxZmm1u/PjxUkQJkROyc24PHt2nomLFiuqjjz5KtWzbtm0KUJcvX07zObGxsSoyMtJ8S+lPERkZmZ24LiUkJEQBKiQkRCUlJqsx7/TW7j/xhIorVlq14+m75/hN2nJQCpQ3wxSgTCZt+bjCRVRo5V6qxzMdzK/34OsLy0RGRlp1P7ZV+1NK2mBWpdcumjZpogD1bNlyak/B59VIPO/rZ3OvDQYaC6Zqf4DqYyqtNgaMULXLV1eAatq0qUXbFKlZu/0J15QjRdOECRNSLdu6dasC1JUrV9J8TnBwcJod+GRnTy04ODjdD8qQkBD1TJWa2gfw3d9fSmGkQP3O8+YPa4PBpPYUaq52F2qumgTEKqNRW25yczOvr+4+H1Aebu4KUE2aNMlw+8HBwTZ8945Hr6Ips+1PKWmDlkiv/aUUMY0bNVY7R/yoBpR8Sit27v4OU9pjE5qY26CbwUP95fuC2l6tt7lgMplMaii5H3iOQQHq3YZvqNjIWNXkbjGWXg5pg/dI0SSswean54oVK8bVq1dTLQsPD8fd3Z1ChQql+ZwRI0YQGRlpvoWFhdk6pkNK6zRc4u14etbtQFBQEK2P7cUExAMmYMyLL8LEibBxIxsH1gbiMZlMKBXP2vcbUCvid5q2nERSkrY8PjmZ4W3fZHOtQI571WAUBkxAQnIiJqDCgevpngaU03b2ISvtD6QNWiK90+C3I24DsGnzJhpNbMdn/xwiBPizRAlMbm7EAx7uHjQa2YiUNpisEvhtQD3+eKUE8fF32198PLGvd8PDzd3chjeiCAHmb/mOfD5ehIaGpplN2qAQNpKdigsLvukOHTpU+fv7p1rWu3dvVbduXYu3I98Q0mc+ND92rArtvEANNuQzH1UKwqgdGTK6Z3hqLeV+06ZNM1xvcO8h2uvd/bYbct/Rp5CePdN8jrhHjyNN1mh/SkkbTM/9+/t/Z66r7iXqm9tGytEhD4NRRf66TYWMG/fQqbcH21p6y1KeM+C1PmpjrcHm1zaBCnHX2veQXoMfyiTukX1YWEOmi6bo6Gi1f/9+tX//fgWoqVOnqv3796uLFy8qpZQaPny46ty5s3n9c+fOKW9vbzVo0CB17NgxtXDhQuXh4aFWrFhh8TZlZ89YyJAhqQ7hDyWP6u73rEWFUYqU5en1l7j/ecnJSvVrr/WRGmcwmAsnk8FNPqwzYI39WI/2Z63sziqljdx/Gry/e/FUxc797edRBVJ6yx5si6a7xdL9X148DEZpg+mQfVhYQ6aLpo0bN6bZ16Fr165KKaW6du2qGjdunOo5oaGhqkaNGspkMqly5cplenA92dnTdv68UleuKKWSk5XJYLjb38ioxowISvOD8/4P3QcFBwerpk2bptkHIr1Cy/yN9umnzX8wwKQmTFAqLs6Kb9RJWGM/1qP9WSu7MzN5mMxHYXs92ylVe3nwC0lKX6j7jwjdvyzl5/uLpZR2+eBrpRy96udVJlUbtGDMU5cj+7CwhmydnsspsrOnlpyYpEK7LFSFc8eoF19Uaty4kFTfaq3dQftRHc5TOqMaDR53P7RD1BNVktWxn05m9q05NUfejx05uy3cvHBD7ewyS6nkZHOB4+HuYS5i728vKV9I0vvikVZ7TKvN3f+l5/7n3H9EysC9NvjOqzfV9VMRVn3fjkz2YWENUjQ5mMuXlVpfvJNSoD5mqCpTJu3+STl1eP7+7SUnK/XKK9r9Wryo4vBQm1p/opKSciSK3XPk/diRs1vbzo231QX38kqB6vtsx1TtzZZXsz3qar0mTZqoO3eUathQu9+OGupft6Jq3yfrsrxNZyL7sLAGKZocyKZNShUrplRr/qdiyKW6VWmT8WkzGxdO6W1n2LAQc1+LQCar555T6s4dm0ZxCI68HztydmtJSlJq0iSl3N2VCmKsCnQroGv7y2hbvbqNUoAai0GdmrfB5jkcgezDwhoyPY2KyHkqWfFF8N/0mViapCS4WLUN/8w5T9k/5hBirPPQdCkp95OSkmyaKykpyTxa8f0+/ngM3t6KE7+e5seDgXSpAF5eQGIiuMsuJxxP9OVo+ne/xdJ1xQE41WE0ZUvGElLQW7f2l7KNtNrg3MUfUrSEkX93n6Xiu8+alycmKNw9ZBoRIbLKoJRSeod4lKioKHx8fIiMjHS9ea/i44nt3pvby9ZQK/kv6ncqz9y5kDu33sEsc+oUlCsHprhoaNyYpGEjMHbsoHcsXTjyfuzI2bPr720XiXnuJWJijTxn2sIns3LTowc42hRmh1acwtD5LXKv/IryrSrrHSfHufI+LKzH5oNbimy4fh2eew6vbxdTgBt80X0HX37pOAUTwOOPg8kEzJsH+/djfP01Nrb6FJVs97W6ELBzJ4Va1aFS7CFKuV0mdMkFevZ0vIIJILbXAJ6M3UPBNgEcmLFJ7zhCOCQpmuzU3zv/JrpGQ9iyBfLlw7B2Lc0WveWQH9YADBrE6Rf6A/Dsr0PZVr0vyQm2P30hRJb99hs0bUquqHDCS1QjYetfPPXGE3qnyrLyW7/icJ4A8qubVBn4PNv6fqt3JCEcjhRNdujin2dQDRqQN+w4cUVKwY4d0KKF3rGyx2ik4q+fEdp2GskYaHB4DtsrdCH+dqLeyYR4yL4R36Neegnu3IEXXqDIya2UDCijd6xs8fUvTIWLf7Kj5KuYSCBgdic2d5qvdywhHIoUTXbm7I+HydW8AaWTLnLBoyL//bQVqlTRO5bVNPlxIDsGLCMBdxpc+pa9FToSfyte71hCmG3puoDqH7+OISGBxFc7wk8/QZ48eseyilwFc/HMheVserIvbigafdOLTe1n6B1LCIchRZMdObHyKD7tm1Ik+V9OeFUj974tFK9bVu9YVld/xmscHruKOEwEXFnFwcdeJi4yVu9YQrCl20IaftkTNxSb/Xth+Oabu53ynIebuxuNDswktM4QABqvHkjyhI91TiWEY5CiyU6cW3uCgh2a4asiOOZdk6JHN1K4alG9Y9nM08EvcmTiz9wmF7XD1xLb7nVISNA7lnBhW9/9kvpLewKwqfr7NDwyB6PJqHMq2zC4GWi84xMOtA0GwG3UCJg+Xd9QQjgAKZrswNWtZ/B+sSlF1L+czFWNkkfWUaB8Ab1j2VzN4c9zYvIvJJm88An9Cbp2hRwY20aIB23v/x0BX3THDcWmJ/vSaO80DG6OetWFZQxuBqr/OBbGjdMWDBrExdFf6JpJCHsnRZPerl6laOfnKZZ8hVOeVfHd/wc+fgX1TpVjnv7gWYyrVmiDXn73Hbc795LhCESO2vPR79SZ1RkjyWyu/C4N933m9AVTKmPGoAZrp+pKf9RLrqoTIgNSNOktVy4Mfn6oChUofOAPClXy1TtRzmvdGr79FuXmxs3lv/Hx+1f0TiRciHe1ilwy+rG1XCcaHJ6Dm7uLfSwaDPDJJ2x+4j3cUDB7Nut+S9Y7lRB2ycU+HexHQgLMmQNJeXzg118xbNxIgcrO24fpkTp0YEOv76mTvJORs0owc6begYSrqNKmPF77dlDn8ELXK5juMrgZaHBgFl89PY3m/M6rr7lx8KDeqYSwP675CaEzlayY0WY9ffpo3Xjw9IRSpfSOpbtms1+h7wTt9zBwIPz6fbS+gYTTijh+jVNzN5jvl3jKF1Me57pKLrPc3N14bftA6jTJTXQ0tGoFYafu6B1LCLsiRZMOQptPYPC65kxjEG++qXca+zJ8OPToAe2Tf6BORz9OfLtP70jCycTfiuefuu0p/15z9gd+pXccu+LpCatXwxNVFD0vj+XOU3WI+jtK71hC2A0pmnLYN9/A739qlzHXeNOfVq10DmRnDAaY/bliSKFFFOI6e3vO4Z9/9E4lnIVS0L+f4kBUeWLITb5mtfWOZHfy54ffvrlOb7f5PB53hFMTVugdSQi74a53AFeyZw+88w7EMZwiXVsRuOQpvSPZJQ+TgUp7v2NKnfkMDf+ALqNh8WK9UwlnMGMGzF/qyQLDEsouOE+T1uX1jmSXSlX35eiCH7m6/wi1Pntb7zhC2A0pmnLIteMRdGrnRVxcHl58EQYukoIpIz5l8/PyjqGc/BimTUM7ROCwsxULe7Bl/nGGBD4OGJk8xUCTt6VgysgT3etA9zrm+9IEhZDTczkjIQH3Di/z/eX6NPG7yFdfgZv85h+pfHmYPx9yu8dpHZ3my+SiImsurD/NU73qslK9zHudbzFwoN6JHMulvdfYUbA1p1Yc0juKELqSP905YcQIChzdyhO5L7BgViw+PnoHcjDffguLFpHUpx9H5m3TO41wNHfu4PHGq/gQRbm815k2y0OOmGTSuVeHUu/mWnK90ZYbZ//TO44QupGiycaSVv8EU6YAYFy6mMdaVdI5kQPq1o1T1TpgTEqgYJ/XuXokQu9EwpH070/J64eIyVOEwht/wDOfp96JHM5T66dw0b08pRMvcKp+Nxm1X7gsKZps6My6c8S82lW7M2gQtG+vbyBHZTBQ4teFnDc9Tonkv7nQuCtJCTJisbDA0qWwcCEYDOT+8VuK1yyhdyKHVLBCQe58uYI4TDzz7//Y9PI0vSMJoQspmmzkzo1Y4tt2IF9yJMfzB8Ann+gdyaHlKZ4Xww8/cAcv6v63lg2tJusdSdi5UysPE9/jPe3OuHHQrJm+gRxc5TdqsOv16QDUXzOMIwt36RtICB1I0WQjfzUYRJXYfVw3FKLQH8vBw0PvSA6v3EtPcfDtzwB49o+R7P98u86JhL2KvhyNxxuvYkq8w/GyLWDUKL0jOYWG3/RmR6kOeJBI/l4dpX+TcDlSNNnA9sGraHxsLskYuPjRNxSpWVrvSE6j7oIe7PR7A3eSKDqgIxEnr+sdSdihg40H4JdwisvGUhT5/Wu5XNVKDG4Gqmz7govuj1Eq6SJe73XXxiIQwkXIJ4mVXdz+D5Wn9gRgS92hPD2ihc6JnIzBwJPb53HBoyIlkv8mocs78qEtUtkx6HsanFlCEm5cm/4thSr56h3JqfiU8cF91fcok4lc69fA55/rHUmIHCNFkxUlxCXzb8uuFFT/cSL309T7I0TvSE4pd7G8JH77PcnuHhT/6ydYtEjvSMJOXN4Vhv+MXgBsqT+Cav0a6pzIOZV88WkMk+/2KxwyhIRDx/UNJEQOkaLJihInT6dO1J/cJhd513yLR27XnjXdliq8Wh23CR9pd95/H86c0TeQ0F1SfBLhLTqTX93kaO7a1F8XrHck59a3L8nPt4DYWM4GvEX8rXi9Ewlhc1I0WUtSErnWLAfg9kfTKdlUxmOyucBAaNwYYmI43OA94uL0DiT0dH7TJQpHneEWucm9+hs8vOXiC5tycyNi0iL+MxSk8u39bGo9Se9EQticFE1WkJQEGI2weTMsWoTviJ56R3INRiNx85ey0bMFL/87h7Fj9Q4k9FTheT84eIijH/1Euecr6h3HJRSpXoJTg79gOa/xxpY+bN2qdyIhbMuglP33oo2KisLHx4fIyEjy5cund5yH9O0LkZEwaxbkz693GtezerU2bqjBoNWtDRronSht9r4fZ8SRswvb694dliyBcuXg4EGwx11E9mFhDXKkKZt2TttBgdkfsvybBPbt0zuNa3r5ZejWTbuIbkqHnUSFx+odSeSgLa0/5kDgUrmKUkczZmgF04ULipmd/9I7jhA2I0VTNvx3JY7CQ7rxIWNYU/tDmjbVO5HrmjEDJvuMZ+XVemx7fqzecUQOOfrdIQLWjqb6tG6cWCDnhvSSLx8sXZTECl5l1Jpn2Dtxnd6RhLAJKZqyIXC4ieCkMZwyVaXx6oF6x3Fp+fJBiyFP4Ybi0qEbrF8nRx2cXVwcvPlhFUbxEaF+3ajcU4YX0FOjZ40UeqokCbiTfOKU3nGEsAkpmrLo119h6ZcGvjV04vqGg3iXLKB3JJdXdVRbPn79AL2Zx9IvDXrHETY2bhwcOubOkiLDqLpLxuqyB7XWTSR87V5qL+2ndxQhbCJLRdPs2bPx8/PDy8uLmjVrsmXLlnTXDQ0NxWAwPHQ7ceJElkPrLerqbYa+o03f8f77EFBfak970e+LaixYAF9+qXcS23L1Nnjwx/NM/1jruzZ3LvgWliLZHuQpmpuSLZ/SO4YQNpPpv/bLly9n4MCBjBo1iv3799OwYUNatmzJpUuXMnzeyZMnuXLlivlWsaLjXhJ8e3gIf/77BN2K/caHH+qdRtwvTx545x1w+ycMXnoJZ+yd7+ptMOF2At6vv8RuVZMPWp/g5Zf1TiTSsmvufrYVbsutq7f0jiKE9ahMqlOnjurdu3eqZZUrV1bDhw9Pc/2NGzcqQN24cSOzmzKLjIxUgIqMjMzya1jNgQNKGY1KgTr/2Rq904j0dO2qFKgrxaqp25HxeqdRSllvP3b1Nnj4zQlKgbpm8FURJ67pHUekIe52ojrnXkEpUKHVBugdRyllX/uwcFyZOtIUHx/P3r17ad68earlzZs3Z/v27Rk+t0aNGhQvXpxmzZqxcePGDNeNi4sjKioq1c0uJCVBz57av6++Srn+L+qdSKRn0iQi3QtS7OpB/nxpht5prMbl2+Dp01RdOQ6A8/2nyWS8dsqUy8j1cdpEvg0PzuTY0t06JxLCOjJVNEVERJCUlETRokVTLS9atChXr15N8znFixdn/vz5rFy5klWrVlGpUiWaNWvG5s2b093OxIkT8fHxMd9Kly6dmZg289uLn8Pu3SgfH/jsM73jiIwUKcKFPp8C8OymYA78eEHfPFbi0m1QKejdW7ts7vnnqT39Lb0TiQzUGtmcreXewg2F23vvkhibqHckIbIvM4el/vnnHwWo7du3p1r+4YcfqkqVKln8Om3atFEvvvhiuo/HxsaqyMhI8y0sLEz3w6r7f7qoosmtFKhzw+bqlkNkQnKyOlakkVKgNuVppeJik3WNY43TA67cBo8PW6wUKJUrl1Jnz+qWQ1ju38P/qv8MBZQCtfGlKbpmkdNzwhoydaTJ19cXo9H40Dfa8PDwh775ZqRu3bqcPn063cc9PT3Jly9fqpueEhMUkZ37kocYThauj98EmVvOIRgMFPtxHvF40OjWWn55e4XeibLNVdtgxLFwikz6AIArvcZC+fK65hGWKVK1CIc7a0d8a68Zw9/bLuqcSIjsyVTRZDKZqFmzJuvXr0+1fP369dSrV8/i19m/fz/FixfPzKZ19WuPlTSO+pl4PCi8aj64yRADjqJAQGWOtx0BQMC3A7hwMFLnRNnjqm3wZOtACqr/OOlVDd+PBukdR2RCg4XdOZCvIbm5zZ13+sp0N8KxZfbQ1LJly5SHh4dauHChOnbsmBo4cKDKnTu3unDhglJKqeHDh6vOnTub1582bZpavXq1OnXqlDpy5IgaPny4AtTKlSst3qaeh1UvHbqhrhiKKQVq74tBOb59kX3Jt++oS7keVwrUr4/10S2HtfZjV2uDez76TSlQibipo0v+yvHti+w7879jKsnooZ1e/eEHXTLI6TlhDe6ZLbI6duzI9evXCQkJ4cqVK1StWpW1a9dStmxZAK5cuZJqvJj4+HgGDx7MP//8Q65cuXjiiSf45ZdfaNWqlTVqPps73HY0rdRVLuaqRPVlI/SOI7LAkMsLNWcudGtKi3NzYEcnCAjQO1aWuVIbjL0ZS+HgPgBsqT6AJl1r65xIZMVjbfxh1AgICYEBA+D558HHR+9YQmSaQSn7P1YaFRWFj48PkZGROdq34uR3+6jwZm2MJHN+0Qb8uj+bY9sWNtC9OyxZAk8+CXv3godHjm5er/3YGvTKHto0hCYbg7niVoLcl06Qr2TeHNu2sLLYWKhWDU6d4tTzfXl83awc3bwjtz9hP6RzTnqSk6n0WV+MJHOq5htSMDmDTz+FQoXg8GH+Dfpc7zTiES5tOs8zGycCcK7fNCmYHJ2XFzc/ngvAY+vncHLZfp0DCZF5UjRl5O23oVw5Hl8zWe8kwhp8fUn6UPsj/PPHR9i1S+c8IkM+lYuzoe5Idvq2od60DnrHEVaQ/+Vn2Vb6dRQGfh65neRkvRMJkTlyei4NJ09qZ27KlwcSE8E9012/hL1KTubD1jsY81t9nnpKO0uXU/+9jnx6QM/sSYkKo7tMyOssLu+5zMuNrvPXnSdZsgS6ds2Z7Tpy+xP2Q440PSA5Gd7pmsgTT8CPPyIFk7Nxc6PXl/UpWBAOHYLZs/UOJB6UGBOHSrg3erQUTM6lRK0StA9+EoChQ+HmTX3zCJEZUjQ9YPXovXy563FeZjV16uidRthC4cIwYQIU5zKJQ0Zw9W+Z3sGebG01gbMFanF+mZw/dVaDBkGlSlA4/AjrXp6jdxwhLCZF032uXwePyRMpz3mCnlhJiRJ6JxK20qNbIntM9QiM/5j1r8zVO46469zROzy++QsqxBzk6p6/9Y4jbMRkggUjznKA6rwS2o9TPxzUO5IQFpGi6T6jR8PrCV8yt0gQFVZ/qnccYUNGT3fiBg5nB3WZ9lc9tm3TO5EAGDAsF9U4yLzHp1B3Unu94wgbatD1MXaXas/Bcu0oXKmg3nGEsIh02Llr3z6YNw8U3lT5YRzudjCpu7Atv4nvMiHiXcJ/d+PWLb3TiF9/hV9+AXf3wjRZE4hBvtI5vTqnvsaYy6R3DCEsJh9LaJ2/P+/6F6hk3ngDGjXSO5HIEW5ufDrFjRMnoEULkOuf9ZMQE8/Kd38HFO+/r/V3Ec7vwYIpKdHuL+YWLk6KJiDp6AnmH6vPPvc6TA6K0juOyEH580MeFQ3DhsGzz0rhpJMdb81iwd8vsMyzG2PG6J1G5LQzm/7hz5Jd2NJopN5RhMiQFE2Ax7BAjMmJVH2+OCUqy/gdLufWLdTs2bB5M9+9+K3eaVyO+jecp38eB0Cxjo1lSjIXdH3dXppd/oqAHVMJCz2rdxwh0uXyRZP6Za3WmcLDA/cZU/WOI/RQvDhXumnfcButHcauP6WDU04yjBlNnqQoIsrVpMGCbnrHETqoM/5F9hR8Hk/iufzWEL3jCJEuly6ajh2I59Krg7Q7AwdCxYq65hH6KfHpIK7l8aMklzn01ickJemdyEXs2wcLFgDg+/UMjB4u/ZHksgxuBvItmEYiRp65vJoDUzfoHUmINLnsJ5RSEPrqLMrGnuKmZxFtvAHhury8MM3Qhpno9O9kvplwUedAzk8lK8LffF9rjG+8AfXr6x1J6Ojxl59gW9XeAHiPGkhSnAw6K+yPyxZNaxaE8+bZEAASQyaCzEXk8ny6t+fvik3IRSx5xg/l2jW9Ezm33UO+p8jJrdwx5CLxo0/0jiPsQNWV47hhKMDjsYfZ/vYCveMI8RCXLJpu3YLoQWPITySXS9TEd3A3vSMJe2AwUHzZdJJwo33C9yx+e4veiZxW7H+3KTVD67uyvdEI3P1kYDQBhR4vxMGXtYsCnvx+NOq/GzonEiI1lyyaFr9/gDdjvgCg0FczwM0lfw0iDcanqxH+Ug8Amv08kIvnZQgCW9j92qeUSArjb2MZ6q4YrHccYUfqf9Wb/4r5kz/xOobxIXrHESIVl6sWTp9SPLV4IG4o/m70Bp5NpR+FSK34F+OJ9cxHTfZRduMSveM4nX/3/k3NP7XTcefem0xu31w6JxL2xMPbg4JLpml3Zs2CEyf0DSTEfVyuaNo2bA2N1Sbi3Lwo+ZX0oxBpKFIErwnB2s8jRkCUDHhqTWc6jsKbOxzI24AG01/VO46wRy1aQJs2kJjI1U4f6J1GCDPXKpoSEuh6bCgAt94NxFBG+lGIdPTrB48/DuHh3Bj+MdHRegdyDse/2Uf9s18C4PHZVNyMBp0TCXuV8PEUEgweFNu7lv2frNM7jhCAqxVN8fEYWreGUqUoNGm43mmEPTOZ4FNtCILTc//koxAZuMkaTKWK8GeJTmwt14knutXWO46wYx5PPM7Wav0AODl5jYydJuyCQSll9zMkRkVF4ePjQ2RkJPmyODTAxo1QuzbkyQPcuQO5pB+FeASl2BO0hmc+bIPRw8iRI9rBp6yyxn6sF2tnj7udhKe30QrJhDO7fuYGvavtYMXtlixZYqBr16y/liO3P2E/XOJIU1gYtG6tzZx+6RJSMAnLGAzUGt+WF1oZSUjQBo23/68YduqBX5wUTMIShSoUoM7YVoCBUaPg9m29EwlX5xJF06Q+F1h15wVaFt1HaenGJDJp2jTI636Hwr8u5ZefpWrKiq1vzWFvhdeI+Ouc3lGEg+nfH8qVg9h/Ivip11q94wgX5/RFU2go1Pl5DC/wO1M9h2OQfqcikx4vn8iZfDVYSjd+fvcn4uL0TuRYoq7F8fiyEGqe/YGjU37TO45wMF5eMPP9M5yhAm2/fpXwfX/rHUm4MKcumhITYcAAGM2H/FXxLfLNmaR3JOGI3N3xefsV/nErzT9XjUybpncgx/LxNE+eU+tY7tOTeot76h1HOKDWAx7jYp6qXM79OLGX/9M7jnBh7noHsKV58+DwYShYsCyP7fgaCumdSDgqz7Ej2ew/mj/65qKhU3/VsK5Ll7TTm7E8hdfS+Xh4651IOCKDm4Fy+1aRz68QBnfpDyf047RFU0QEfDI6GsjLhx9CISmYRHbkzs3r3aFRCyhZUu8wjuPTD64SG1uMxo3hpZf0TiMcmU/FInpHEMJ5T88l3Y7jr8Qa/Jr/dd5tF653HOEEDAYoWSwJFi6Ejz/WO47dO/HlX0xZUYYZDGDyp0r6Ewqr+O/v26yt9yH7PvpV7yjCBTlt0VR05WyK3TpLc89NGPPKOQFhJZs2QY8eJAcFM7j9ORlwLz1KkTToA0wkUL18FLVqS8UkrGPP65NptWMM+ccHkhSboHcc4WKcs2j67z8YPx4Atw/H3x3RUggrePZZEp99DreEeGqvHsGCBXoHslOrV/PEf1uJd8/FY999pHca4URqf/0+EQZfysedYFePL/SOI1yM0xVN330HvwR8CDduwJNPQvfuekcSzsRgwH3aZJTBQEe+Z/XQHfwnF/OkFh8Pw4YBYBoxmJJ1pBOYsJ4C5Xw42G4sAJW+C+bWP5H6BhIuxamKplu3YNbAMzx/apa2YPJkMMqVFsLKqlVDddWK8aCoDwgaIwNe3u/mxNlw5gwUKwZDh+odRzihBl++y1mPShRKjmB/R+lfKHKOUxVNEybAoPDhmEgg6fkW0Ly53pGEk3L7aDxJXt7UYwfX5qzg0CG9E9mHqAv/ocaFaD8PkVPjwjY883hwZZA2oXbtbdP496+LOicSrsJpiqYzZ2D7p9t4lZUoNzeMUyfrHUk4sxIlMA4bAsAENZwP+sXJvHTAoY4fUUDd4KSpKrn6yKlxYTv1J7Zhb74meBHHxbdG6h1HuIgsFU2zZ8/Gz88PLy8vatasyZYtWzJcf9OmTdSsWRMvLy/Kly/P3LlzsxQ2I4GDFB8nfqDdefsdqFrV6tsQIpUhQ0gsUpzHOMeTWz7n999zbtP22AYvbzlLnb9mAnB9xGQ8vOTUuLAdg5sBjxlTSMZAnTPfwu7dekcSrkBl0rJly5SHh4f64osv1LFjx9T777+vcufOrS5evJjm+ufOnVPe3t7q/fffV8eOHVNffPGF8vDwUCtWrLB4m5GRkQpQkZGRaT6+dq1Sr7FMKVBJ3rmVunIls29LiKxZuFApULG5C6jkiOsZrvqo/dhS9tgGlVJqV9lXlQK1s0ALlZyc6bclRNZ06aIUKNWokcpox7NW+xOuLdNFU506dVTv3r1TLatcubIaPnx4musPHTpUVa5cOdWyXr16qbp161q8zUft7M0b3VHnKKc1nJAQi19XiGxLTFTqySe1fS8wMMNVrfWhbY9t8MTCrUqBSsRNHf7usMWvK0S2XbqklJeXUqBivvsp3dWkaBLWkKnTc/Hx8ezdu5fmD3Swbt68Odu3b0/zOTt27Hho/RYtWrBnzx4SEqwzMNma52fixwWSi5eADz6wymsKYRGjET7VOqQyaxacO2fTzdljG1TJiqSBWrvb/NjbVH1dTo2LHFS6NJHvDALg325DZcBLYVOZKpoiIiJISkqiaNGiqZYXLVqUq1evpvmcq1evprl+YmIiERERaT4nLi6OqKioVLeMeB4/AIDbhI/AW0b/FjmsRQt4/nkoWxbCbTtljz22weunrpOQoLhFbip8Nz6T70iI7Ev6YBjhhiKcL1SbqCsxescRTixLHcEND0wipZR6aNmj1k9reYqJEyfi4+NjvpUuXTrjQN98A1u2QOfOFqQXwga++gqOHoW6dXNkc/bUBn0r+1IlcidnvvmL0rWLWfoWhLCagn4+JBw+SdN/vqKAX3694wgnlqmiydfXF6PR+NA32vDw8Ie+yaYoVqxYmuu7u7tTqFChNJ8zYsQIIiMjzbewsLBHh2vQQAayFPopWhQ8PGy+GXttgx4mA9XfrJKJdyKEdZV8Ir/eEYQLyFTRZDKZqFmzJuvXr0+1fP369dSrVy/N5wQEBDy0/rp166hVqxYe6fyR8fT0JF++fKluQghpg0IIoadMn54LDAxkwYIFLFq0iOPHjzNo0CAuXbpE7969Ae0bapcuXczr9+7dm4sXLxIYGMjx48dZtGgRCxcuZPDgwdZ7F0K4EGmDQgihD/fMPqFjx45cv36dkJAQrly5QtWqVVm7di1ly5YF4MqVK1y6dMm8vp+fH2vXrmXQoEF8/vnnlChRgs8++4xXXnnF4m2m9L94VIdwIexZyv6rsjl0uLRBITLPWu1PuDaDcoA96O+//350Z3AhHERYWBilSpXSO0amSBsUzsIR25+wHw5RNCUnJ3P58mXy5s2b5tU+UVFRlC5dmrCwMIfve+FM7wWc6/1k970opYiOjqZEiRK4uTnWtI/SBh2XM72f7LwXR25/wn5k+vScHtzc3Cz6ZuBMHVad6b2Ac72f7LwXHx8fK6fJGdIGHZ8zvZ+svhdHbX/Cfki5LYQQQghhASmahBBCCCEs4BRFk6enJ8HBwXh6euodJduc6b2Ac70fZ3ov1uZMvxtnei/gXO/Hmd6LcEwO0RFcCCGEEEJvTnGkSQghhBDC1qRoEkIIIYSwgBRNQgghhBAWcPiiafbs2fj5+eHl5UXNmjXZsmWL3pGybPPmzbz44ouUKFECg8HAjz/+qHekLJk4cSK1a9cmb968FClShHbt2nHy5Em9Y2XZnDlzeOqpp8xjwwQEBPDrr7/qHctuOEsbdJb2B9IGhbAVhy6ali9fzsCBAxk1ahT79++nYcOGtGzZMtW8W44kJiaGatWqMWvWLL2jZMumTZvo27cvO3fuZP369SQmJtK8eXNiYmL0jpYlpUqV4uOPP2bPnj3s2bOHpk2b0rZtW44ePap3NN05Uxt0lvYH0gaFsBnlwOrUqaN69+6dalnlypXV8OHDdUpkPYBavXq13jGsIjw8XAFq06ZNekexmgIFCqgFCxboHUN3ztoGnan9KSVtUAhrcdgjTfHx8ezdu5fmzZunWt68eXO2b9+uUyqRlsjISAAKFiyoc5LsS0pKYtmyZcTExBAQEKB3HF1JG3Qc0gaFsA6HmHsuLRERESQlJVG0aNFUy4sWLcrVq1d1SiUepJQiMDCQBg0aULVqVb3jZNnhw4cJCAggNjaWPHnysHr1aqpUqaJ3LF1JG3QM0gaFsB6HLZpSPDjjulIqzVnYhT769evHoUOH2Lp1q95RsqVSpUocOHCAmzdvsnLlSrp27cqmTZvkQxtpg/ZO2qAQ1uOwRZOvry9Go/Ghb7Th4eEPffMV+ujfvz9r1qxh8+bNlCpVSu842WIymahQoQIAtWrVYvfu3cyYMYN58+bpnEw/0gbtn7RBIazLYfs0mUwmatasyfr161MtX79+PfXq1dMplQDtSEO/fv1YtWoVGzZswM/PT+9IVqeUIi4uTu8YupI2aL+kDQphGw57pAkgMDCQzp07U6tWLQICApg/fz6XLl2id+/eekfLklu3bnHmzBnz/fPnz3PgwAEKFixImTJldEyWOX379uXbb7/lp59+Im/evOYjET4+PuTKlUvndJk3cuRIWrZsSenSpYmOjmbZsmWEhoby22+/6R1Nd87UBp2l/YG0QSFsRr8L96zj888/V2XLllUmk0k9/fTTDn1J7caNGxXw0K1r1656R8uUtN4DoBYvXqx3tCx5++23zftY4cKFVbNmzdS6dev0jmU3nKUNOkv7U0raoBC2YlBKqZws0oQQQgghHJHD9mkSQgghhMhJUjQJIYQQQlhAiiYhhBBCCAtI0SSEEEIIYQEpmoQQQgghLCBFkxBCCCGEBaRoEkIIIYSwgBRNQgghhBAWkKJJCCGEEMICUjQJIYQQQlhAiiYhhBBCCAtI0SSEEEIIYQEpmoQQQgghLCBFkxBCCCGEBaRoEkIIIYSwgBRNQgghhBAWkKJJCCGEEMICUjSJLDl16hSvvPIKBQoUwNvbm2eeeYY1a9boHUsIpzN69GjatGlDyZIlMRgMdOvWLc31jh49Sp8+fQgICCB37twYDAZCQ0NzNKsQzk6KJpFpFy5cICAggJMnTzJ37lx++OEHChcuTLt27Vi5cqXe8YRwKtOmTeP69eu89NJLmEymdNfbs2cPP/74IwULFqRZs2Y5mFAI12FQSim9QwjH0rt3b5YuXcqZM2coWbIkAElJSTz55JPcunWLCxcu4OYm9bgQ1pCcnGxuT3ny5OHVV19lyZIlGa63YsUKOnTowMaNG2nSpEkOphXCuclfNgc3duxYDAYDhw4dokOHDvj4+FCwYEECAwNJTEzk5MmTvPDCC+TNm5dy5coxadKkbG9z27ZtVKtWzVwwARiNRlq2bElYWBh//fVXtrchhL3Ro60BFn8BkS8qQtietDIn8dprr1GtWjVWrlxJz549mTZtGoMGDaJdu3a0bt2a1atX07RpU4YNG8aqVavMz0tMTLTodv8Byfj4eDw9PR/KkLLs0KFDtn/DQugkJ9uaEMLOKOHQgoODFaCmTJmSann16tUVoFatWmVelpCQoAoXLqzat29vXgZYdFu8eLH5Oe3atVP58+dX0dHRqbbZsGFDBagJEybY5s0KoSM92tqDcufOrbp27frIrD/88IMC1MaNGzP7NoUQGXDPqeJM2FabNm1S3ff39+fgwYO0bNnSvMzd3Z0KFSpw8eJF87Ldu3db9Pp+fn7mn/v168dPP/1Ely5dmDx5Mrlz52bWrFls374dkNMEwrnlZFsTQtgXKZqcRMGCBVPdN5lMeHt74+Xl9dDyqKgo8/3q1atb9PpGo9H8c7NmzVi8eDEffPABjz32GABVqlRh/PjxjBw5MlVfJyGcTU62NSGEfZFDAi7Ow8PDotvSpUtTPa9r165cvXqVY8eOcfr0aY4ePQqAwWCgYcOGerwVIexaVtuaEMJ+yJEmF5edUwbu7u74+/sDEBkZyfz582nbti1ly5a1akYhnIGcnhPC8UnR5OJq1aqV6eeEh4czZcoU6tevT968eTlx4gSTJk3Czc2Nzz//3AYphXB8WWlrAJs2beLatWuANh7axYsXWbFiBQCNGzemcOHCANy+fZu1a9cCsHPnTvNzIyIiyJ07d6o+V0KIrJGiSWSau7s7Bw4cYPHixdy8eZPixYvTtm1bgoKC8PX11TueEE4lODiYTZs2me+Hhoaap0e5f/DK8PBwOnTokOq5Y8eOBaBs2bJcuHAhB9IK4dxkRHAhhBBCCAtIR3AhhBBCCAtI0SSEEEIIYQEpmoQQQgghLCBFkxBCCCGEBaRoEkIIIYSwgBRNQgghhBAWkKJJCCGEEMICDjG4ZXJyMpcvXyZv3rwYDAa94wiRJUopoqOjKVGiBG5ujvV9RdqgcHSO3P6EHVGZtGnTJtWmTRtVvHhxBajVq1c/8jmhoaHq6aefVp6ensrPz0/NmTMnU9sMCwtTgNzk5hS3sLCwzDY7Mz3an1LSBuXmPLfstD8hMn2kKSYmhmrVqtG9e3deeeWVR65//vx5WrVqRc+ePfn666/Ztm0bffr0oXDhwhY9HyBv3rwAhIWFkS9fvsxGdnkTJ07Ezc2NYcOGAfDJJ58wYcIERo4cCcDmzZvZunUrjRo1YvPmzTRq1Ij//e9/qdYbNmwYn3zyCcnJyYwYMULPt+OwoqKiKF26tHl/zgo92h9IG8yq+9ve/T+ntK0GDRrQqFEj888AW7duZeTIkeZ2mVb7k7aYedZof0Jk+kjT/eDR33SHDh2qKleunGpZr169VN26dS3eTmRkpAJUZGRkVmK6pODgYBUSEqKUUiokJEQBqe43adLE/M0rJCRENW3aVAHKz89PAeb7TZo0USEhIQ+9RsrrBAcH6/H2HJK19+Ocan9KSRvMjPTaXsrPKW0qpf2ltLX7b/cvu7+9ptUWpR1aRvZhYQ02L5oaNmyoBgwYkGrZqlWrlLu7u4qPj0/zObGxsSoyMtJ8Szk1IDt7+u7/oFbq4Q/rlA/dJo20f58sV8v8oezmZlKAquVRSAHKaDQqQNWrEaAGdupvXi/lw/7B10+5Lx/cGdOjaMpK+1NK2mBmZfQlJaUAerA4at/sA1W2rLbMgJt5eUr7a9q0qer/Su80i6mmTZumuS1ph+mToklYg82LpooVK6qPPvoo1bJt27YpQF2+fDnN5wQHB6d5Llp29vSldyTI/G21YUPVNF8+7UPZ/DsNUaAVTCZQCpTJZEr1wW267/f/dOGKqT640/sjIdKmR9GUlfanlLTBzEqreLm/rfgVKfJA20O54X7353ttzQNDuu3P7e5j5cqUk3aYBVI0CWvIkavnHrzaRimV5vIUI0aMIDAw0Hw/5Vy0SG3s2LEYjUbGjBnDmDFjAAgKCgIg8uIN/vx+hXndD7dsIR4wAkmAO0aeehr27YvH3d1EfGI8NYtVJv7qCUwmE/Hx8bhhIB6FCRgNBF07jRHYsGEDTxerTFz0HZo1a8aGDRsICQkxZwAYP348SUlJjB07Nod+GyI9mW1/IG3QEhm1P6UUJQoWZ8OGDRiB8+Hh5rZnuvv8eBIxGIwolYS70UR8UjygzO3PaDQSn5R03/oKI3Dh0gXcMLBhwwbKlSsHaO0tKCgoVTuUNiiE9dm8aCpWrBhXr15NtSw8PBx3d3cKFSqU5nM8PT3x9PS0dTSHZzQazR/SKR/cV3ddNC8DCAE+BK1gcnMjKTnZ/KG8b9+9D9mU4qdp06b8+eef5vspH9znH3sOj7N/knD3g3vf1RMc/HQiSUDTBg0eKphSPsCFvrLS/kDaoCXSan9JCUmp2l9KoWQumNzdiU9MND8/KSmJpk2b0qRJE/PzRo8eTWhoaKr2B+BhMJKgku6+1t0C6sIF8/MeLJikDWaeUorExESS7v7OhWswGo24u7tbNJyKzYumgIAA/ve//6Vatm7dOmrVqoWHh4etN+/U7v92e+3QFbpsPEex67+bH/fAQFj9jsRvW5buBzRoH7ApBdOGDRtSFVAp/y7e8AcAJg8T8Qnxqf4YbNi6lff86jNxw8/M/HrWQ994hX6k/dnO/e1PJSueu1mZqM9mmh9PaSNud7+sPNj2Utrjhg0bzEdrU14PMD9m3t64YDZu3MjGjRtxw2AunFL+vF9ctZekYUlM+GSCtMEsiI+P58qVK9y+fVvvKEIH3t7eFC9eHJPJlPGKmT2fFx0drfbv36/279+vADV16lS1f/9+dfHiRaWUUsOHD1edO3c2r3/u3Dnl7e2tBg0apI4dO6YWLlyoPDw81IoVKyzeppyLztjQ9wY/1P/Bw90jzc6jpHFF3P0dvNPqJ5HelXZGN63zatO7j6Vsf+xY6VORFmvsx3q0P2tld1Yp7Sit/kcPXo2a0obuvxourSvj7r/CLr2r7fzKln2on1RKnyjp1/SwjPbhpKQkdeLECXX69Gl18+ZNdfv2bXXnzh25ucDt9u3b6ubNm+r06dPqxIkTKikpKcP9KNNF08aNG9PsINq1a1ellFJdu3ZVjRs3TvWc0NBQVaNGDWUymVS5cuUyPbiefGA/mofBLdWH8v0fspm56s3Sq/DMhdizzz7wwW1S1aopdeBATr57x2CN/ViP9met7M4s5QIKQDWu3yjNK93uL46USt32Un6+v/2ldUVekyZNlFIPX5H3tG/F+/YHk3rzTaWuX8/hX4Kdy2gfvnPnjjp27JiKiYnRIZmwBzExMerYsWPqzp07Ga6Xravncop8YKcWtuW8+sv3BXXu91NKqdRXyaV8KKd84GZ3fKVHjfcUHBxs/uB2MxjNV+X5Gv9T65tPUvEx6V/W7moceT925Oy2sGfC72pn0RdVfEz8Q+3PFkNzZGbctZQ22LbgZrVr9BrrvGEnYEnR9Kg/mMJ5WboPOMTcc+Ke1avB+7V+tEj8jb86DeTr/nUJCgqiSZMmNG3aFCDN/gz3d2zMTD+H+6+8SUpKSvW6Y8aMSdUfqmHDhty5Y2TSpCAaJq3iuXUH2FlhB3Uvr8rmuxbCPiQkwEdDI3l/ekcKcJN3ar/MomO/PNT+Un5OaSsp7S+rfYwyaocAoaGh5j5RP/64gX37gij/X37qfHiTzRfn0+jLnlnarhDiATlUxGWLfMtVKjZWqX79lAKlSnNRbfNpqQK7D0yz/0JOjdeS3nbGjdOWDzPkVoe/2GHTDI7EkfdjR85uLZcuKVWvntYGX+EH9XbhWrq2v4y2FTQySAFqoLGQunnxps1zOAI50pS2xYsXKx8fH71jWCQ4OFhVq1YtU88By+bolCNNTiTi+DXmtV3LrNNdAXh9SBlqf7SWdR+NTfMKmQe/3dpKWt94AYKCxmAwQOytWKr2qGtefnL5ASq+8hRu7jLDuHAsh+fvYMSwZLbfrE++fNBxwascPXqEEONLurW/lG2k1QbHfTQOdy93Ym/F4lPGBwCVrDi5/ACV36hh81xC2MLgwYPp37+/viEyVbLpxJW/5Yb9elhdci+nFKgu3t+rn3/WO1HWnPz+gLqNl9pWuqO6c8P1vs0p5dj7sSNnz66/3v9a3cFTheOrWvqfV2fP6p0oa0Lbz1CJuKnQjp/rHUUXcqQpbY50pCkrsPKRJvnKb8/Wr6fka/UonXiBi+6PEfT9k7RurXeorLm+8xTuJFIvbDmnyjzHf6ev6x1JiIwpBWPHUntGJ7yI41yx+ny/wZfy5fUOljWG48cwkkzj5X0JrT2E5MRkvSMJK2jSpAn9+vWjX79+5M+fn0KFCjF69GjzyP83btygS5cuFChQAG9vb1q2bMnp06fTfK0LFy7g5ubGnj17Ui2fOXMmZcuWRSlFaGgoBoOBP//8k1q1auHt7U29evU4efJkqufMmTOHxx57DJPJRKVKlfjqq69SPW4wGJg3bx5t2rTB29sbf39/duzYwZkzZ2jSpAm5c+cmICCAs2fPmp8zduxYqlevbr6/e/dunn/+eXx9ffHx8aFx48bs27cvO7/OR5KiyV6tWAGtW2OIjiY+oDF5j+3isdaV9U6VZQFTOnB40m9E4sNT0duIfCKAf3Zc0juWEGlLTob+/WHcOAAiegyndtgq8hTLo3OwrGt4ZA6hz30IQJM9k9lZ/g0SYuJ1TmX/YmLSv8XGWr7unTuWrZsVS5cuxd3dnV27dvHZZ58xbdo0FixYAEC3bt3Ys2cPa9asYceOHSilaNWqFQkJCQ+9Trly5XjuuedYvHhxquWLFy+mW7duqUbMHjVqFFOmTGHPnj24u7vz9ttvmx9bvXo177//Ph988AFHjhyhV69edO/enY0bN6Z63fHjx9OlSxcOHDhA5cqVefPNN+nVqxcjRowwF279+vVL931HR0fTtWtXtmzZws6dO6lYsSKtWrUiOjo6879ES1nj8Jetudqpgc3dFqokg5vW47RDB6Xi4vSOZDWnfzqqwoxllAIVZiyrLm44o3ekHOPI+7EjZ8+s+Jh4teOxt7T2ZzAoNXu23pGsamufb1QcHkqB2ln0RZc5XZ7V03PaIce0b61apV7X2zv9dR8YPk35+qa9XmY1btxY+fv7q+TkZPOyYcOGKX9/f3Xq1CkFqG3btpkfi4iIULly5VLff/+9Uurh03PLly9XBQoUULGxsUoppQ4cOKAMBoM6f/68UureWHF//PGH+Tm//PKLAsy/v3r16qmePXumytmhQwfV6r5fGKBGjx5tvr9jxw4FqIULF5qXfffdd8rLy8t8/1EdwRMTE1XevHnV//73v1TbkdNzTmzTK5/RcMk7uKlkLrfqAd99B48a1t2BVHipCm7btnLeoyKlki7i8Vwj/vnzhN6xhAAg/lY8+x7rQN2z35CAO3cWfAPvvad3LKuq//mbHBq/hjt48cy//+NohZdIipapQxxZ3bp1Ux0FCggI4PTp0xw7dgx3d3eeeeYZ82OFChWiUqVKHD9+PM3XateuHe7u7qxevRqARYsW8eyzz5onh07x1FNPmX8uXrw4oM1rCXD8+HHq16+fav369es/tM37X6No0aIAPPnkk6mWxcbGEhUVlWbW8PBwevfuzeOPP46Pjw8+Pj7cunWLS5dsdxZDrp6zI5ten03jVe8DEFp7CI3/9wm4PXoCQUdT4pnShO/ZzOk6z1Ex7ijqzcYQGgr+/npHEy4s4XYC+x5/nbpXf+IOXhwJXkHttx20E+Ej1Br9Avtz/ULFwS9R8/p6eLEVrF0L3t56R7M7t26l/5jRmPr+3ZohTW4PHKK4cCHLkbJNKZXu5LQmk4nOnTuzePFi2rdvz7fffsv06dMfWu/+uStTXis5OfmhZRltM63XeNTr3q9bt25cu3aN6dOnU7ZsWTw9PQkICCA+3nanneVIk53Y0nUBjZf3BSC07nAa7/wEgxMWTCmKPFWMQodCSa5eA0N4ODz3HJw7p3cs4aISYxPZXbkzda+sJg4Txyb8RO2xzlkwpajxQVPu/LgO8uWDTZvglVcgLk7vWHYnd+70b15elq+bK5dl62bFzp07H7pfsWJFqlSpQmJiIrt27TI/dv36dU6dOoV/Bl9Se/TowR9//MHs2bNJSEigffv2mcrj7+/P1q1bUy3bvn17htvMii1btjBgwABatWrFE088gaenJxEREVbdxoOkaLIDW3t/Rf0v3wUgtGYgjbdNcOqCKUXBx31xW78OqlSBy5e5WasZV3b/rXcs4WKSE5PZ+cTb1AtbTjweHApeRc0RzfWOlSMKt60Hv/yi/UX/7TeOVX+DxNhEvWOJTAoLCyMwMJCTJ0/y3XffMXPmTN5//30qVqxI27Zt6dmzJ1u3buXgwYN06tSJkiVL0rZt23Rfz9/fn7p16zJs2DDeeOMNcj1Y8T3CkCFDWLJkCXPnzuX06dNMnTqVVatWMXjw4Oy+1VQqVKjAV199xfHjx9m1axdvvfVWprNmlhRNOjv/+ymemfc2big2PdmPxn9NdomCyczXF/74g/8KPkb+Gxe40+A5Ik7Y9puCEPfb0mkuDc59RQLu7B/+vdMfYXpIgwYkr/6JeIOJKidWs/OJt0lOUnqnEpnQpUsX7ty5Q506dejbty/9+/fn3Xe1L+KLFy+mZs2atGnThoCAAJRSrF27NtVpsLS88847xMfHp7oqzlLt2rVjxowZfPrppzzxxBPMmzePxYsX06RJk6y8vXQtWrSIGzduUKNGDTp37syAAQMoUqSIVbfxIMPd3uV2LSoqCh8fHyIjI8mXL5/ecaxuU/sZGA/uo97JxS47Wvbf2y5iaNyQrUkBzK6zlF83ejld9wpH3o8dOfuj3PnvDgef7ETii+1oMLez3nF0s2vUGqpNeI1ApuIzvA8TJ+qdyLoy2odjY2M5f/48fn5+eD14zs3ONWnShOrVq6fZ7yg7PvroI5YtW8bhw4et+rr2ytJ9QDqC24HGq95HJSvXOsL0gFL1y3J6wy76tC3Kf3+58dZb2lBVD3a0FMLachXMxTNhK1y6/QE889FL/FD4LHMGlYSPoWxZ6N1b71Qip926dYvjx48zc+ZMxo8fr3ccu+OahzV09t+Z/9hc+V1uXrhpXubqH9gAFRsV58c1bnh6wk8/JrOo7U+oZLs/ECoc0MFZWwh9dpx5VGxpf5oOA0umjOfJ6D7/sW3iZn0DiRzXr18/GjRoQOPGjbN0as7Zyem5HJaQALuLv0S96/9jT6EW1Ir4Te9Iduf75YqE1zvxFt+y6ZXPaLxC5wkarcSR92NHzv6gSwdv4F3jcXxVBJtenm4e5kNolIIP3rpKz++epQyX+Hv5diq9Vk3vWNnmrKfnhHVYug/IkaYcNnAg9LkewnG3KuSb96necezSax0NlGxVnXg8cMvjZB2bhK6io6FN5wIMUZM4mDuA2vN76h3J7hgM8MmCQtwuWJqbxkKoJJmjTogU0qcpB82erd0MhuqcXnmYl9pJzZqexv8bzPnfX6Jhy0p6RxFOIjkZOnWCw4fhWrHujN/VFW9faYNp8fD24LE9y0mIiady1aJ6xxHCbsgnRg7ZNzWUb/prA5BNnIgUTI9gcDNQ/r6C6b/T14kJz+JslkIAq19cyPY11/D0hB9/hFJlpA1mJL9fAQrfVzDJBNtCSNGUIy7vCqPs4FfZkNyY8c9vZuhQvRM5llMrD3OrSm0O1ewuHcNFluwYspJX1vbgL+qwdGYU903FJSywtfdXFKr3OFu6L9I7ihC6kqLJ1uLj8Xn3NQqp65z1fpLB39chnSl/RDpi/42kWOLfBPz9A5vaSD8wkUlnzlDzc+0qoIu1XqVjT8fuyK6HxFPn8SKOOkve49jS3XrHEUI3UjTZ2rBh5D60k2Sf/ORf9wNe+eXKjMx6qk8Ddr45E4AGv47k0JxtOicSDuPOHXj1VUx3ooh5ugH1N03QO5FDarRuNDuLt8OTePL06EjkxZt6RxJCF1I02VDctyvh7iitbl8upUR9P30DObCGX73LtrJv4k4Svv1f57/T1/WOJBxAYp8BcPAgFC5M7jXL8PDOeOoIkTY3dzf8dywmzL0cZRLPc7zeO3KqXLgkKZps5OKfZ4jrpJ0SUIOHwEsv6ZzIsRncDDy1fS7nPR6nRNLfnGnQ1TwwoRBp2fLul7gvWYAyGODbb6FkSb0jOTSfsvmJXvA98XhQ9/IqNnf8XO9IAm0alYEDB+odw2VI0WQDcVFx3HmxA/lUFAfzNSB5/Ed6R3IKeUvkJeGb74nFkzrhv7D91Sl6RxJ26syaY9T8QpsDZFOTsfDcc/oGchJVutZmx8tav8K6Kz7g7PI9OicSj6KUIjExUe8YTkOKJhvY0XQkle8c4JqhMEX+XIbRS04JWMvjHaqxu9NnANT/eQRs365zImFv4qLiSOr4Jt7cYU+h5jRaN1rvSE6l0YoB7Cqh9W8qP+I1iIzUO5LL6tatG5s2bWLGjBkYDAYMBgNLlizBYDDw+++/U6tWLTw9PdmyZQvdunWjXbt2qZ4/cOBAmjRpYr6vlGLSpEmUL1+eXLlyUa1aNVasWJGzb8rOyeCWVrb34/U02TsVgPOjF1GnlpwSsLYGS3uiEkMxLPsO3npL67Pi4FN7COvZ0XQUTWIPEmHwpcyGpbi5y3dDazK4Gah9aBHUOoDh/Hno1w+++krvWLYTk4Xx4Tw9wf3un9fERIiLAzc3yJXr0a+bO7fFm5kxYwanTp2iatWqhISEAHD06FEAhg4dyuTJkylfvjz58+e36PVGjx7NqlWrmDNnDhUrVmTz5s106tSJwoUL07hxY4tzOTP5NLGi6ycjKDmqKwCbqvahTkgbnRM5J4ObAcO8uVCuHFy4wLU3Ze4wodk36Q+a7NVO254btYgiTxXTOZFzcitUQOsn5uYGX3/N+U++1zuS7eTJk/nb6tX3nr96tbasZcvUr1uuXNrPzQQfHx9MJhPe3t4UK1aMYsWKYTQaAQgJCeH555/nscceo1ChQo98rZiYGKZOncqiRYto0aIF5cuXp1u3bnTq1Il58+ZlKpczk6LJSlSy4kyTHhRLvsJZkz+1N8p4QjaVLx9q6ZckY6DwL0vYOXSV3omEzv47fZ0SI7oAsPmJ96gz/kWdEzm5gACi+48EIP+I3lze/Y/OgcT9atWqlan1jx07RmxsLM8//zx58uQx37788kvOnj1ro5SOR07PWUlyYjJ3Hq/G7avrSPzyW7x9ZaJZWzM0asimgGE02fEx12Z8w5VB7SleXO9UQi/Jiclc8n2amJtnqRU6We84LsFrQhDHvviNKrf3sLjLWgYe7Ymbs30Vv3Ur88/x9Lz388sva6/x4C/mwoVsxXqU3A+c5nNzc0Op1MNEJCQkmH9OTtauRv7ll18o+cCVpp73vx8XJ0WTlRhNRppsGse1I32oJBNc5ph668YR8kQFxl3qxvPd4ddfkRHXXZSvf2EKXfkfEcevyZeWHOLh7YHXiq9p3S6MtSeew+0zcLqr3zPRxyhN7u73+jdZ83XvMplMJCUlPXK9woULc+TIkVTLDhw4gIeHdqFSlSpV8PT05NKlS9J/KQPO9p0gxyUnJpNw+161XlgKphxlymOiw2/vYPIy8vvv8LkMHeNy4qLizD8b3AwUfqKIjmlcT/mWlWgzXRvSYfhweODvsrCxcuXKsWvXLi5cuEBERIT5iNGDmjZtyp49e/jyyy85ffo0wcHBqYqovHnzMnjwYAYNGsTSpUs5e/Ys+/fv5/PPP2fp0qU59XbsnhRN2bTltZmc8a3LqZWH9Y7isvz9YdIkyMVtEgcN4eIGOf/uKlSy4vBjbdn6WFdunr+hdxyX1bs3tGoFJeLOcaTpABJjZVygnDJ48GCMRiNVqlShcOHCXLp0Kc31WrRowZgxYxg6dCi1a9cmOjqaLl26pFpn/PjxBAUFMXHiRPz9/WnRogX/+9//8POT2SxSGNSDJzntUFRUFD4+PkRGRpLPji4tP3M0jlxVH6Mk/7D5jTk0+ra33pFcVnIyrCvRjRf+Xcr+/E2ofn0DBjf7Ok9nr/uxJew1+0+j/uLFCXWJx8TlXw5QvlVlvSO5rMsX4lHlH6Ok+puNLT/h2bVD9Y6USkb7cGxsLOfPn8fPzw8vL5kf1BVZug/IkaYsSkqCbr08qcVulpYfS8Ove+kdyaW5uUGVZUGcM1UicdBQuyuYhPVdugSdZ9ahAVvZ2HGeFEw6K1HOxPm3x3PApzHlB7+idxwhbCJLRdPs2bPN1VjNmjXZsmVLuuuGhoaaRyq9/3bixIksh7YHn30G27ZBTN7iNNkQLH+k7UCZJuUpF3OM2kEtH72yg3P1NqgU9OgB0dFgqFeP5t901TuSAOrP78pTERso2/QxvaMIYROZLpqWL1/OwIEDGTVqFPv376dhw4a0bNky3fOoKU6ePMmVK1fMt4oVK2Y5tN4urD/N9mE/ATB5MpQtq3MgYXb/6M/XjvzrlDOxSxuE9QP+x8X1J/HygsWL4e54fkJnBjdDqjYYfuiqjmmEsL5MF01Tp07lnXfeoUePHvj7+zN9+nRKly7NnDlzMnxekSJFzCOW3j9qqaNRyYobr/Xih4R2zK04mZ499U4k0rKt15eYnnycLd0W6B3F6ly9Df574ArPzOrMAarzRa89PP643onEg+JvxbPpqf7krvYY538/pXccIawmU0VTfHw8e/fupXnz5qmWN2/enO2PmDi1Ro0aFC9enGbNmrFx48bMJ7UTMbOXUuPmRm6Ti5bz28uYQHYq8co1fIii2leD+ffAFb3jWI20QTB+MBAfIjnvXZU3JtXQO45Ig4e3B3n+OUlubhPZ8V2nPOIrXFOmiqaIiAiSkpIoWjT1WERFixbl6tW0D8MWL16c+fPns3LlSlatWkWlSpVo1qwZmzdvTnc7cXFxREVFpbrZhfBw8gR/AMCN98dRpkl5nQOJ9DRYMZBj3rXwIYqzLw7UO47VuHwb/PlnfDd8jzIayfvdfIwmxzxa5uwMbgaK/jSf2+SieuQmtr0r4/wI55ClEcENDxxeUUo9tCxFpUqVqFSpkvl+QEAAYWFhTJ48mUaNGqX5nIkTJzJu3LisRLOtwED47z+oXp2SkwfpnUZkwGgyYlw4n8Q3alPv7+/5a2xX6oxtpXcsq3HJNnjrFvTpA4AhMJDSL8lRJntWqkE5QluNo8naoVRZ9AERH7TG17+w3rGEyJZMHWny9fXFaDQ+9I02PDz8oW++Galbty6nT59O9/ERI0YQGRlpvoWFhWUmpk3snfA7fPMNys0N5s9Pe1h8YVcqvV6DbbUGAlDiwz7EhMfoG8gKXLkN7nx+DISFofz8IDhY7zjCAvV/GMhJr6coqP7jRJvBescRItsyVTSZTCZq1qzJ+vXrUy1fv3499erVs/h19u/fT/EMZlb19PQkX758qW56igmPoUiwNnDlztoDoHZtXfMIy9X6eSx/G8tQKukiu1uP1TtOtrlqGzy2dDe1d34GwMn351ht3i5hWx7eHiTMmk8yBhqc+5L9k//UO5IQ2aMyadmyZcrDw0MtXLhQHTt2TA0cOFDlzp1bXbhwQSml1PDhw1Xnzp3N60+bNk2tXr1anTp1Sh05ckQNHz5cAWrlypUWbzMyMlIBKjIyMrNxrWJj7SFKgQozllHRV6J1ySCybnfw/5QClWgwquR9+3XLYa392NXaYHxMvDrhVU0pUFvKvZXj2xfZF/pkX6VARReroNSdO7pkyGgfvnPnjjp27Ji6o1M2a2vcuLF6//339Y6RZYsXL1Y+Pj45uk1L94FMn2Pq2LEj169fJyQkhCtXrlC1alXWrl1L2buDFV25ciXVeDHx8fEMHjyYf/75h1y5cvHEE0/wyy+/0KqVY/QvObn8AA12TwXgyujZlCqWR+dEIrNqjW3DrV2vkue3FdC7F2zf7tAD+7haG9zWYTpNYg/yn6EglX6eqncckQU1fvmIpNqryHP1DEyYACEhekcS9wkNDeXZZ5/lxo0b5M+fX+84dOzYMdOfT02aNKF69epMnz7dNqFS5FARly16fctNSkhSh/IEKAVqe6kOObptYWX//KNUvnxKgVIzZ+oSQe8jptmhV/Z/dl5S0eRWCtTm7otydNvCylas0Nqfh4dSR4/m+OZtfaQpODhYhYSEpPlYSEiICg4OzvJrZ1ZmjzRt3LhRAerGjRs2y2Rr2T26Zuk+IHPPZWDbu0t58tYOoslDudXT9I4jsqNECZg4EYDbg0Y61dhNzuziq4HkIYaD+RrQYEE3veOI7GjfHtq0gYQEjj/7ntON3WQ0GgkKCmL8+PGplo8fP56goCCbDSYbExNDly5dyJMnD8WLF2fKlCkPrfP1119Tq1Yt8ubNS7FixXjzzTcJDw8H4MKFCzz77LMAFChQAIPBQLdu3QD47bffaNCgAfnz56dQoUK0adOGs2fPZpinSZMm9OvXj379+pmfN3r0aJS69/9948YNunTpQoECBfD29qZly5apLkxZsmRJqiNeY8eOpXr16nz11VeUK1cOHx8fXn/9daKjowHo1q0bmzZtYsaMGeZpoi5cuMCNGzd46623KFy4MLly5aJixYosXrw4S79nsyyXZTlIj2+5iXGJ6pJ7OaVAbWwzOce2K2woMVEdzVNH6xvj1ynHNy9HmjLn1KrDSoFKwKhO/nAwx7YrbOfangsqhlxKgdra55sc3XZO9GkKCQlRgPmI04P3beG9995TpUqVUuvWrVOHDh1Sbdq0UXny5El11GXhwoVq7dq16uzZs2rHjh2qbt26qmXLlkoppRITE9XKlSsVoE6ePKmuXLmibt68qZRSasWKFWrlypXq1KlTav/+/erFF19UTz75pEpKSko3T+PGjc3bP3HihPr666+Vt7e3mj9/vnmdl156Sfn7+6vNmzerAwcOqBYtWqgKFSqo+Ph4pdTDfZqCg4NVnjx5VPv27dXhw4fV5s2bVbFixdTIkSOVUkrdvHlTBQQEqJ49e6orV66oK1euqMTERNW3b19VvXp1tXv3bnX+/Hm1fv16tWbNmjRzW7oPSNGUgX92XlKhTw9S8THxObpdYTtHluxWFyijXuV7tXlzzm5biqbMO/DZJrXxpSk5uk1hWxubjVebaaCe9T2kcnJ3yqmO4CmFkslksnnBFB0drUwmk1q2bJl52fXr11WuXLkyPFX1119/KUBFR2sXNll6ei48PFwB6vDhw+mu07hxY+Xv76+Sk5PNy4YNG6b8/f2VUkqdOnVKAWrbtm3mxyMiIlSuXLnU999/r5RKu2jy9vZWUVFR5mVDhgxRzzzzTKrtPvieX3zxRdW9e/cM31MKOT1nBSWeKU3jvVPx8PbQO4qwkie61uLjd86wgg707QuJiXonEhmp1r8RTX4K1DuGsKK6Pw6ne/nNbIx40in7g48ZMwaTyUR8fDwmk4kxY8bYbFtnz54lPj6egIAA87KCBQumGswWtCFG2rZtS9myZcmbNy9NmjQBeOQk32fPnuXNN9+kfPny5MuXDz8/P4ueV7du3VSD7QYEBHD69GmSkpI4fvw47u7uPPPMM+bHCxUqRKVKlTh+/Hi6r1muXDny5s1rvl+8eHHzKcb0vPfeeyxbtozq1aszdOjQR041ZQkpmh6QnJjMkYW79I4hbGj8xx4ULAiHD8OcWUl6xxEPuLLnH/7edlHvGMJGvPK489lM7Q/qjBlw7Eiyzomsa/z48eaCKT4+/qE+Ttak1KP7hcXExNC8eXPy5MnD119/ze7du1m9ejWgXVmbkRdffJHr16/zxRdfsGvXLnbt2mXR87KSWWUwqwGAh0fqgxcGg4Hk5Iz3nZYtW3Lx4kUGDhzI5cuXadasGYMHZ2+QVSmaHrDtnUVU7VGXzf699I4ibMTXFz4an0x3FtHqg8pcO/Kv3pHEfS62HUDBBv5s6/ut3lGEjbRqBR1bRvFJYiAxjVo6TafwlE7fISEhxMXFERISkmbncGupUKECHh4e7Ny507zsxo0bnDp1ynz/xIkTRERE8PHHH9OwYUMqV6780BEak8kEQFLSvS+R169f5/jx44wePZpmzZrh7+/PjRs3LMp1f56U+xUrVsRoNFKlShUSExPNBVjKtk6dOoW/v7/lb/4BJpMpVf4UhQsXplu3bnz99ddMnz6d+fPnZ3kbIEVTKtevw64fLpKEG6pSZb3jCBvq2UMx2Hs2jyWf4WjP6XrHEXet+/E2sZevYyKewk2f1DuOsKFPh1/nPeZQ+8Y6Dn2+Re842XZ/wZRySm7MmDE2LZzy5MnDO++8w5AhQ/jzzz85cuQI3bp1w83t3p/2MmXKYDKZmDlzJufOnWPNmjUPZSlbtiwGg4Gff/6Za9eucevWLQoUKEChQoWYP38+Z86cYcOGDQQGWnaqPCwsjMDAQE6ePMl3333HzJkzef/99wGoWLEibdu2pWfPnmzdupWDBw/SqVMnSpYsSdu2bbP8uyhXrhy7du3iwoULREREkJycTFBQED/99BNnzpzh6NGj/Pzzz9kqzECKplRGj4Yhd8bTscI+6i/rr3ccYUNGk5Hkzz4n9MUp1P/TCTtWOKD4eOg31Jtn2chnb/3F469I0eTMSjfyY/eb09nz4W9U65/2xNGOJCkpKVXBlCKlcErrKIg1fPrpp/y/vXsPi6rO/wD+HgaGiyKI3FQQMU3yroPoqIk/LyRtZbtlZa2yuZm0aCp5wcjULCXFys37Nev3FGZq+Sv1J5uCF7QF1MQ0TSVBDUdSud8GvvvHPLLLgjrAwHfmzPv1PPP4zOHMnPfB8xk+cy7fM3ToUDz11FMYOXIkhgwZAq1WW/1zLy8vfPLJJ9i+fTu6deuGuLg4xMfH13iP9u3bY+HChYiJiYGPjw+mTJkCOzs7JCQkID09HT169MCMGTOwbNkykzJNmDABJSUlCAkJQVRUFKZOnYpXX321+udbtmyBVqvFE088AZ1OByEE9uzZU+sQXH3MnDmzek+Wl5cXsrKyoNFoMHfuXPTq1QtDhw6FWq1GQkJCg5cBACphykFRyfLz8+Hm5oa8vLwmuwfWjz8C/foBVVVAUhIQGtokiyEb1hzbcVNpjuzx8cCsWYCPD3DhAmBlvyKycPfbhktLS5GZmYnAwEA4OTlJSqgMzTYyt5mZug1wTxMAUSVw5qk38XDVOTz3HBsmW1ReWI4LOzJkx7BZN8/cgDp2DtxwB3FxbJhs0c0zN/Bb6lXZMYjui00TgONzduKlrCX4AQOwbF6+7DjUzLKTL+OaR094jB2OvCt3ZMexST8/E4sZ5Uuxp9U4TJggOw01t+NzdsGxZxdkPRUlOwrRfbFpKilB70+NlyCeGDoDHXrwK66t8e3vjyqVGp4iFyefabrLg6luIi0dgy9sBgC4LpsHO34q2Rzv0EfgjBIMyNmN9Pf/ITsONUJSUpLVHZqrD348ffABXPS/oqq9HwbsmC07DUng4OKA2/M+AAAMTv87Lu+78IBXkNkIAdX0abCDQOmfXkTPVwfJTkQSdHo8CCl9jHuZWs2fDkMpR50ly2TbTdO1a8DixQAAu2VL4ezZQnIgkiX4rdFI9XocDjAgN+IN2XFsx7ZtwNGjgIsLnFa8LzsNSdR753z8rmqDLmU/4WhE48bSIWoqNt00pY2KAYqLIQYPBl54QXYckqzN1g9QAXuE6L9F2nv/LzuO4hXnFiN34izjk5gYwM9PbiCSyj2wNc48Zxz+o+f2ebh96VazZ7CCi8mpiZj6f2+zTVPG+mMIPve/qIIKF6euAO4zfDvZhk7hXXG0n3F8rtbvzEBFcYXkRMr2z2eXwrPkKq6pO8AwvXG3NiBlGPzJq/jFsQc8xC2cfmZhsy337vhAxcXFzbZMsix3/+8fNFaUfXOEsTRVhirYRRtHJz3a5WU8+rz2Aa8gW9F359vIDfwMD5WfQ8FHa+HwJgc5bQrXjmVhQLLxcFzW6/Fo7+osORFZAnsnexS88yEwZxSGnF4FcTYSqm6NG8HZFGq1Gu7u7tW3F3FxcbnvfdBIOYQQKC4uhl6vh7u7O9Rq9X3nt8nBLY9M2oohG/+CfLii9McL8O7la4aUpBS3Fq+FR+xrQOvWwC+/AG3amOV9Objlv6V0eAGDsrfhlNtQ9L6VBJUd/0DRv5WEjYFz4m5g9Ghg716zvOeDtmEhBHJycnDnzh2zLI+si7u7O3x9fR/YLNvcnqYifRE6b54LADgR/haGsWGi/+Ix+xUgYTWQkQEsWAB8/LHsSIqSsS4Fg7K3oQoqOK9bwYaJanFeFQ903wvs2wfs2WO8w28TU6lUaNu2Lby9vVFRwUPztsTBweGBe5jusrmmKfX5eAyr+g1X7DtBlzBNdhyyRPb2wEcfASNGoHLVGmSOjETnMd1lp1IEUSWAmcarE48+PBGPPt9HbiCyTF26ANOnA8uWIWfcDLT5bRQcXBp+X7L6UKvVJv8BJdtjUyeC5125g+Ak4w0Hr0+Ng2MrR8mJyGINH440/z9CLSpxe9Is2WkUI3XBd+hZeByFaIGHt3EgUbq38tlv4aadN3zzLyBlwlrZcYgA2FjT5Bbgjsy1+3Go+2sYGP+s7Dhk4Tw3vY/bcMe3NwcgcV/T3KHc1mjfCsfhlzcj/dk4+PRpKzsOWTCNZyuce34hLiMQG/d3AE81IktgkyeCE5lqdlQRlq1ugV69gBMngMbstbfm7dias5P1MpQaENy3Ej/+7IhZs4ClSxv+XtyGyRxsYk+TEID+jF52DLJCMYtawN0dOH0a2LpVdhrrlX81HyW/cwwcqh97J3ssXm48jWLFCiAzU3Igsnk20TSlv7cPrj0DcHBY8w2WRsrg4QHMmweEIgkd/vYHFOYUyo5klU4+MQ+3fboidcF3sqOQlQkPB0b9jwEvl6/F+TCOm0ZyKb5pMhiAyx/sgjNKoSoskB2HrFDUZAO22v8VI8v2IO2lD2XHsTq/nClD+x+/Q7vKq1C78OILqh+VCvg46mesxt8w+uJKnN2aKjsS2TDFDzmweTMw+fZa7G75OFZuHyo7Dlkhxxb2+G36Uvy69wC6/32y7DhWZ87bjtiLDMzvsxsxs0fKjkNWqOszPZAcHA1VxwDoxvaRHYdsmKJPBC8oMA73ceOGcdidaRyWiSSy5hNRG5r90CEgNBSwszOOFdqtWxOGJLoPa64/shyKPjy3c/I+lN24jc6dgddek52GlKRIXyQ7gsWrMlThu5e/gh0qMWkSGyYyn/LCcpQXlsuOQTZIsU3Tb6lXMfaLP+ESHsLH0ZnQaGQnIiW4cuAS0jxH4+dHnjaObk33dGxaAt6/PBZH7EKxcAF/V2Qeqe/sxXWP7kh5aaXsKGSDFNs0lc+OhQtKkN2qBx6b3FF2HFIIO3s79Pz9ILS3/oG0d/fJjmO5SkrwyGfGezyWjvwDfHx5fzkyj9LL19Gx4iL6/N8i3Lp4S3YcsjHKbJpOnEBA8mcAAPdNy3lDUDIb/6GBOBb8OgCg9eKZMJQaJCeyUCtWwKMgC6Xe/hjw+XTZaUhBBq3/C8479YK7uIOM53grHmpeymuahABmzjT+++KLCHi2v+xEpDB9tsfilsoDncvOIuWvm2THsTw3bwKLFwMAnJYvhksbZ8mBSEnUGjUK58cDAHQnV+HK9xclJyJborim6Uzct8DBg4CjY/UHN5E5uXd0R8Yf5wMAHvnibeRf4/hf/+n8uAXGS1e1WuDFF2XHIQXSxoxCqudoaFCB6xNiZMchG6KopqmiuAIuC4x3pD8zajoQECA3ECmWbmskMh26wEvoceL592XHsRiXvj2Hh75fBwDQz1luHGuAqAm03hiPSthBd30HTq8+IjsO2QhFfaKlTNyATuXnkavyhP+qubLjkIJpWmqgf8N499CBKcthyMyWnMgy/P7KbNijEj/4joH32FDZcUjBOo/pjqNBrwAA3Ba9AVRVSU5EtqBBTdPq1asRGBgIJycnaLVaHD58+L7zJycnQ6vVwsnJCZ06dcLatWsbFPZ+8rLy0P1L4yGTs2MXwK2Dm9mXQfSfQt4bA33QUDiJUtgveKtZl22JNXhy+QGE3PgWFbCH12bufaOm98iXC2FwbomAnH8CX34pOw7ZAlFPCQkJwsHBQWzYsEGcPXtWTJs2TbRo0UJcuXKlzvkvX74sXFxcxLRp08TZs2fFhg0bhIODg/jqq69MXmZeXp4AIPLy8u45z8GBMUIA4pKmqygvKq/vahE1TGqqEIAQKpUQJ07cd1ZTtmNTWGINVlZUirPOfYUARFLPKQ1aL6IGWbTIWIMdOwpRWnrP2cxVf2Tb6t00hYSEiMjIyBrTgoKCRExMTJ3zz549WwQFBdWYNnnyZDFw4ECTl/mgjT37yK+iBI5CAOKH2G9Mfl8isxg3TghA3Og5QlRVVt1zNnN9aFtiDR5+5RMhAHEHrUTuOb3J70vUaEVFQrRrJwQgLkyOv+dsbJrIHOp1eK68vBzp6ekICwurMT0sLAwpKSl1vubYsWO15n/ssceQlpaGioqK+iz+nq78ORZOKMNJ92Ho/86TZnlPIlMZ3lmMcpUG3hnfN/mAl5ZYg8W5xXhocywA4GR4LNoEeTX6PYlM5uKCq5HvAgC81r+L25c44CU1Hfv6zJybm4vKykr4+PjUmO7j44OcnJw6X5OTk1Pn/AaDAbm5uWjbtm2t15SVlaGsrKz6eX5+/v2DhYXh2qZDcFrJgSyp+dl37oikwbOB8nL0jdA16bIssQarDFU43//PKDn5NQZ+/np9VofILNrOmYDUj7ej9ImxGOTP81mp6dSrabpLparZmAghak170Px1Tb9ryZIlWLhwocl5Bq+bgIoPx6G9i4PJryEyp2GHm3dkYkuqwZa+LTHseBwqihfBgTVIEqg1avTX75Edg2xAvQ7PeXp6Qq1W1/pGq9fra32TvcvX17fO+e3t7dGmTZs6XzN37lzk5eVVP7KzH3w5Nz+syRawBomI5KlX06TRaKDVapGYmFhjemJiIgYNGlTna3Q6Xa359+/fj+DgYDg41P0h6+joiFatWtV4EBFrkIhIpnofnouOjsb48eMRHBwMnU6H9evXIysrC5GRkQCM31CvXbuGTz/9FAAQGRmJlStXIjo6GpMmTcKxY8ewadMmfPHFFyYv8+6hhAee20Rkwe5uv3e354ZiDRLVn7nqj2xcQy65W7VqlQgICBAajUb069dPJCcnV/8sIiJChIaG1pg/KSlJ9O3bV2g0GtGxY0exZs2aei0vOztbAOCDD0U8srOzG1J2rEE++DDDwxz1R7ZLJYTlt91VVVW4fv06XF1d6zxxNT8/H/7+/sjOzrb6wwhKWhdAWevT2HURQqCgoADt2rWDnZXdk401aL2UtD6NWRdrrj+yHA26eq652dnZwc/P74HzKencCyWtC6Cs9WnMuri5uZk5TfNgDVo/Ja1PQ9fFWuuPLAfbbSIiIiITsGkiIiIiMoEimiZHR0fMnz8fjo6OsqM0mpLWBVDW+ihpXcxNSb8bJa0LoKz1UdK6kHWyihPBiYiIiGRTxJ4mIiIioqbGpomIiIjIBGyaiIiIiEzApomIiIjIBFbfNK1evRqBgYFwcnKCVqvF4cOHZUdqsEOHDuHJJ59Eu3btoFKp8PXXX8uO1CBLlixB//794erqCm9vbzz99NM4f/687FgNtmbNGvTq1at6QD2dToe9e/fKjmUxlFKDSqk/gDVI1FSsumnatm0bpk+fjtjYWJw8eRKPPvoowsPDkZWVJTtagxQVFaF3795YuXKl7CiNkpycjKioKBw/fhyJiYkwGAwICwtDUVGR7GgN4ufnh7i4OKSlpSEtLQ3Dhw/HmDFj8NNPP8mOJp2SalAp9QewBomajMwb3zVWSEiIiIyMrDEtKChIxMTESEpkPgDErl27ZMcwC71eLwDUuKmstWvdurXYuHGj7BjSKbUGlVR/QrAGiczFavc0lZeXIz09HWFhYTWmh4WFISUlRVIqqkteXh4AwMPDQ3KSxqusrERCQgKKioqg0+lkx5GKNWg9WINE5mEVN+ytS25uLiorK+Hj41Njuo+PD3JyciSlov8mhEB0dDSGDBmCHj16yI7TYBkZGdDpdCgtLUXLli2xa9cudOvWTXYsqViD1oE1SGQ+Vts03aVSqWo8F0LUmkbyTJkyBadPn8aRI0dkR2mUrl274tSpU7hz5w527NiBiIgIJCcn80MbrEFLxxokMh+rbZo8PT2hVqtrfaPV6/W1vvmSHFOnTsXu3btx6NAh+Pn5yY7TKBqNBp07dwYABAcHIzU1FStWrMC6deskJ5OHNWj5WINE5mW15zRpNBpotVokJibWmJ6YmIhBgwZJSkWAcU/DlClTsHPnThw4cACBgYGyI5mdEAJlZWWyY0jFGrRcrEGipmG1e5oAIDo6GuPHj0dwcDB0Oh3Wr1+PrKwsREZGyo7WIIWFhbh48WL188zMTJw6dQoeHh7o0KGDxGT1ExUVhc8//xzffPMNXF1dq/dEuLm5wdnZWXK6+nvzzTcRHh4Of39/FBQUICEhAUlJSdi3b5/saNIpqQaVUn8Aa5Coyci7cM88Vq1aJQICAoRGoxH9+vWz6ktqDx48KADUekRERMiOVi91rQMAsWXLFtnRGmTixInV25iXl5cYMWKE2L9/v+xYFkMpNaiU+hOCNUjUVFRCCNGcTRoRERGRNbLac5qIiIiImhObJiIiIiITsGkiIiIiMgGbJiIiIiITsGkiIiIiMgGbJiIiIiITsGkiIiIiMgGbJiIiIiITsGkiIiIiMgGbJiIiIiITsGkiIiIiMgGbJiIiIiIT/AuGsw8vOceyKQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "points_select = lambda n : np.array([np.pi*0.4 + 0.2*np.pi * k/n for k in range(n+1)]) \n", "plot_sin_approximate(points_select, m_list=[1,3,5,7,9,11])" ] }, { "cell_type": "markdown", "id": "f65d3707", "metadata": {}, "source": [ "## Runge的例子来证明高次多项式近似有时不适用" ] }, { "cell_type": "code", "execution_count": 14, "id": "ba0cc48e", "metadata": { "execution": { "iopub.execute_input": "2024-11-15T03:59:23.478517Z", "iopub.status.busy": "2024-11-15T03:59:23.478401Z", "iopub.status.idle": "2024-11-15T03:59:23.545335Z", "shell.execute_reply": "2024-11-15T03:59:23.545017Z" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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1pD3pXny3jRP3pumBdr7YrfbqaysJC0tDYPhxKNqnSJzMxgM9Ohx/J5GgSA2NjYgPnSeJu9L8+S9aZ68N00LpPelpYzNQQpKhBBCBBwJbkIIIQKOBDedhIWF8eijjxIWFqZ3U/yKvC/Nk/emefLeNC2Y35dOUVAihBBCtIVkbkIIIQKOBDchhBABR4KbEEKIgCPBTQghRMCR4CaEECLgSHDzI2azmZEjR6IoCtu3b9e7ObrLysrilltuITMzk4iICPr06cOjjz5KfX293k3zuZdffpnMzEzCw8MZPXo03377rd5N0t38+fMZO3YsMTExJCUlcdFFF7F37169m+V35s+fj6Io3HfffXo3xackuPmRhx56iLS0NL2b4Tf27NmDzWbjtdde49dff+Uf//gHr776Kn/605/0bppPvf/++9x33338+c9/Ztu2bUyaNIlp06aRnZ2td9N0tW7dOu68805++OEHVq1ahcViYerUqVRXV+vdNL+xadMmFi1axPDhw/Vuiu/ZhV9Yvny5feDAgfZff/3VDti3bdumd5P80lNPPWXPzMzUuxk+NW7cOPusWbPcjg0cOND+xz/+UacW+aeCggI7YF+3bp3eTfELlZWV9n79+tlXrVplP/300+333nuv3k3yKcnc/MDRo0e59dZb+fe//01kZKTezfFr5eXldOnSRe9m+Ex9fT1btmxh6tSpbsenTp3Khg0bdGqVfyovLwcIqs/Hidx5552cd955nHXWWXo3RRedYleAQGa327nxxhuZNWsWY8aMISsrS+8m+a0DBw6wcOFCnn32Wb2b4jNFRUVYrVaSk5PdjicnJ5Ofn69Tq/yP3W5nzpw5nHrqqQwdOlTv5ujuvffeY+vWrWzatEnvpuhGMjcvmTdvHoqinPCyefNmFi5cSEVFBXPnztW7yT7T2vdGKzc3l3PPPZfLL7+cmTNn6tRy/Ry7j6Hdbg+YvQ094a677mLHjh28++67ejdFdzk5Odx7770sWbKE8PBwvZujG1lb0kuKioooKio64X0yMjK48sor+eyzz9y+qKxWK0ajkWuuuYa3337b2031uda+N44/zNzcXM444wzGjx/P4sWLW9ykMJDU19cTGRnJhx9+yMUXX+w8fu+997J9+3bWrVunY+v8w913383HH3/M+vXryczM1Ls5uvv444+5+OKLMRqNzmNWqxVFUTAYDJjNZrfbApUEN51lZ2dTUVHhvJ6bm8s555zDf//7X8aPHx+wm7S21pEjRzjjjDMYPXo0S5YsCYo/ymONHz+e0aNH8/LLLzuPDR48mAsvvJD58+fr2DJ92e127r77bj766CPWrl1Lv3799G6SX6isrOTQoUNux2666SYGDhzIww8/HDTdtjLmprOePXu6XY+OjgagT58+QR/YcnNzmTx5Mj179uSZZ56hsLDQeVtKSoqOLfOtOXPmcN111zFmzBgmTpzIokWLyM7OZtasWXo3TVd33nkn77zzDp988gkxMTHOMci4uDgiIiJ0bp1+YmJijgtgUVFRJCYmBk1gAwluwo+tXLmS/fv3s3///uMCfTB1OFxxxRUUFxfzt7/9jby8PIYOHcry5cvp1auX3k3T1SuvvALA5MmT3Y6/9dZb3Hjjjb5vkPAr0i0phBAi4ATPyLwQQoigIcFNCCFEwJHgJoQQIuBIcBNCCBFwJLgJIYQIOBLchBBCBBwJbkIIIQKOBDchhBABR4KbEEKIgCPBTQghRMCR4CaEECLg/D/1OaykbU+vswAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "m = 10 # 使用10次多项式\n", "xinput = np.array([-5 + 10 * k/m for k in range(m+1)])\n", "yinput = 1/(1+xinput**2)\n", "coef = generate_diff_quotient_table(xinput, yinput)\n", "\n", "# 画多项式的图\n", "x_grid = np.arange(-5, stop=5, step=0.02)\n", "Px_grid = np.zeros(len(x_grid)) # 多项式在x_grid处的数值\n", "\n", "for i in range(len(x_grid)):\n", " x = x_grid[i]\n", " y = np.zeros(m+1)\n", " y[0] = 1\n", " for j in range(1,m+1):\n", " y[j] = y[j-1]*(x-xinput[j-1])\n", " Px_grid[i] = np.sum(y * np.diag(coef)[0:(m+1)])\n", "\n", "\n", "plt.figure(figsize=(5,4))\n", "plt.plot(x_grid, Px_grid, label=\"polynomial\", linewidth=2)\n", "plt.plot(x_grid, 1/(1+x_grid**2), label='true', linewidth=2)\n", "plt.legend(loc='upper center', fontsize=12)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 5 }