\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## I- Fonction de transfert\n",
"\n",
" Un filtre passe-bas peut être représenter par sa fonction de transfert harmonique : "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" $$\\underline{H} =\\frac{H_0}{1+j\\frac{\\omega}{\\omega_c}}$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On propose dans un premier temps de réaliser un petit programme permettant de tracer le diagramme de Bode d'un tel filtre pour : $f_c = 1000 \\; Hz$ et $H_0 = 1$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Construire une liste de $N = 100000$ valeurs de fréquences $f$ comprises entre $f_{min} = 10 \\; Hz$ et $f_{max} = 100000 \\; Hz$. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"N = 100000\n",
"fmin = 10.0\n",
"fmax = 100000.0\n",
"f = np.linspace(fmin,fmax,N)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Utiliser la liste `f=np.linspace(fmin,fmax,N)` ainsi créée pour construire la liste des valeurs complexes de $\\underline{H}$.\n",
"On rappelle que l'imaginaire pur s'écrit `1j`."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"H0 = 1.0\n",
"fc = 1000.0\n",
"Hbar = H0/(1.0+1j*f/fc)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Utiliser la fonctions `np.abs()` pour calculer la liste des modules de la fonction de transfert. Utiliser les fonctions trigonométrique du module `numpy`pour calculer la liste des phases. "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"H = np.abs(Hbar)\n",
"phi = -np.arctan(f/fc)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4. En vous appuyant sur le code suivant réaliser une représentation graphique du diagramme de Bode du filtre passe-bas définit plus haut. Vous commenterez chaque ligne du code suivant en indiquant leur utilité. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEMCAYAAADTfFGvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3hUVfrA8e+bTgcJRJo0kR6BRJCySKzgqiBKsaKLoii7uupPF9uurii2dRfL2nB11RUQRbFhJRYsSBAhSBVFIyBVSJBQwvv740wwhJlk7mSSmUnez/PcJ3PPPffOO+cZ5uWWc46oKsYYY0yw4iIdgDHGmNhiicMYY4wnljiMMcZ4YonDGGOMJ5Y4jDHGeGKJwxhjjCcJkQ6gKqSmpmqbNm0A2LlzJ3Xq1Dmwzet6OIVy7GD3KateoG3+yssrs/ay9gp2WyjtVXrd2qvq2isnJ2ezqjbxu1FVY24BBgMrgNXAX8qrn5GRocXmzp2rJXldD6dQjh3sPmXVC7TNX3l5ZdZe3sqsvbyXldV+4WTtdTBggQb4TY25S1UiEg88DAwBugDniEiXyEZljDE1RyxequoNrFbVNQAiMg0YCnwT7jc6+2xYt64bjRuDyG/l/l4HW1by9aZNXWja1Nv+P//cmSeeKP/4GzZ04j//8b/955878swzh+6zfn1Hnn324Pdfv/4onn/+4Lrr1x/FCy+4snXrjmLatN+2r1vXgRkz3Ov4+N+WhITg1/1tS06GlSsPQxVSUtx6SspvS8n1+HiMMZVINMaGHBGRs4HBqnqJb/0CoI+qTihVbxwwDiAtLS1j2rRpABQUFFC3bt0D9cpanzChJ4WFSlzcb79EJZtLVQ4pK6te6fL9+/cTFxcXsK6/fYqKlLg48VuvZN3iev6OuX//fkTiDtnHfRfiStVVRA6Ov2Q91YOPVVzf1ROKityyfz/s3+9eB4o9XOLj91O7dhG1axdRq9Ye6tZV6tTZ5yvbR5067m/Dhnt9yx6SkrbTvHkC9ertI67UeXjp70hZ5eWVlff9C6dQjh3sPmXVC2d7lV639qq69srKyspR1Ux/22LxjMPfr84hP92q+jjwOEBmZqYOGjQIgOzsbIpfl7eem3vo9nAK5djB7lNWvUDb/JWXV1Zee/qjCkVFvy379pW9vncv7NkD8+bl0K1bBoWFlLns2hVHQUEcO3YksmZNPklJTdixA376CXbscMuvv/qPLT4eUlOheXM44gho3Rr27l1NVtaRtG4NbdpAkybuDKuq2itU1eH7VXo9Eu21d+9e8vLyKCwsPGRbgwYNSElJKffYZdULtM1feTBlJdeDiS8lJYWWLVuSmJhY7ucoFouJIw9oVWK9JbAuQrGYEIi4y08JHr9927blM3Cgt32ys5cG+DGAzZth0ybYuBE+/PAbmjTpwsaNbv2nn+Dbb+GDDyA//0j+/e/f9m3UCDp1ggYNOjJ/vnvdrRu0bestNhMb8vLyqFevHm3atDno7BsgPz+fevXqlXuMsuoF2uavPJiykuvlxaeqbNmyhby8PNp6+ALHYuL4EuggIm2Bn4DRwLmRDcnEmsREaNbMLQAJCRsZNMj/Mxavv/4JRxwxgB9+cMlkxQpYvhzmzz+MOXN+q9eoEbRtezQnnAAZGZCZCe3aVcGHMZWqsLDQb9KoDkSExo0bs2nTJk/7xVziUNV9IjIBeBuIB55S1aURDstUY3Xr7iM9HdLTDy7Pzv6MHj0GsXw5LF4MOTmQnZ3Av/7lLq2BS0ydOnXhm29g4EDYv7/q4zcVVx2TRrFQPlvMJQ4AVX0TeDPScRjTsCEce6xbALKzc+jXbxBLl8IXX8DHH8M77zRg7ly3vX79/gwZAqeeCqecErm4Tez5+eefmTBhAjk5OTRq1IikpCSuv/56TjzxxIPqnXrqqTzwwANkZmbSrVs36tevT3x8PEVFRdxxxx0MHTq0wrHEZOIwJpolJUHPnm65/HKYO/cz2rQZxEcfwQsvbOHDDw9n+nRXt2PHXowcCWeeCT16HPzYszHFVJVhw4YxatQoXnzxRQDWrl3L7Nmzy9137ty5pKamsmLFCk4++eSwJI6Y6wBoTKwRcTfOx4yBv/xlOT/9BAsXwh13QEKCMmkS9OoFRx0FN94IX33l/xFvU3N98MEHJCUlMXbs2ANlrVu35o9//CO7du1i9OjRpKenM2rUKHbt2uX3GDt27KBRo0ZhicfOOIypYnFxv52R9O//Fd26DWLWLHjxRbjnHrjrLjjySDj3XLjoIntaK5pcfTUsWvTbelFRraA6nJZVr0uXZB55pOz9ly5dSq9evfxumzp1KrVr12bx4sUsXrz4kHpZWVmoKmvWrGFGce/cCrIzDmMiLDUVLr0U3nkHNmyAxx93/Uf+/nf3VNagQfDMM7BzZ6QjNdHiyiuv5Oijj+aYY45h3rx5nH/++QCkp6fTrVu3g+rOnTuX3NxclixZwoQJEygoKKjw+9sZhzFRpDiJXHop/Pgj/Pe/8PTT7sxjwgQYNQquvNKdrZiq989/Hryen78ryH4cgevl5+8Gksrcv2vXrrz00ksH1h9++GE2b95MZmYmaWlpQT0Z1b59e9LS0vjmm2/o3bt3ufXLYmccxkSpVq3gpptg5Ur3dNbIkfDCC+5+SL9+8L///fbYr6nejj/+eAoLC3nyyScPlP3qG/6gf//+PP/88wDk5uaSm5vr9xgbN27ku+++o3Xr1hWOxxKHMVFOBAYMgKlTXY/2Bx5wvd7PO88ll1tugXU2dkK1JiK88sorfPLJJ7Rt25bevXszZswY7r77bsaOHUtBQQHp6encc889ZGRkHLRvVlYWPXr0ICsri8mTJ5OWllbheOxSlTExpGFDd4P2T3+Cd9+Fhx+GSZPg7rvhggvguuugc+dIR2kqQ7NmzXj66af9DjlSPIhr8Xpxndzc3KAupXllZxzGxKC4ONeBcPZsWL0aLrvMXcbq0gWGDoV58yIdoanOLHEYE+PatYMHH4QffoC//c0ljQED3LQAs2dbnxATfpY4jKkmUlPhr391CeShh2Dr1iSGDnUDLr7yiiUQEz6WOIypZmrXdo/sPvvsfJ5+GvLz3ZAmPXvCyy/bQIuhiLUJ77wI5bN5ThwiclgQS0PPkRhjwio+XhkzBpYtc/1Bdu2Cs85yY2LNnGkJJFgpKSls2bKlWiaP4vk4gpmMqqRQnqpa51vK6nESDxwRwrGNMWGWkOCeuDr3XJg+3fVIHzECund3T2SddpoNrliWli1bkpeX53fOisLCwqB+dMuqF2ibv/JgykquBxNf8QyAXoSSOJapapn9VkXkqxCOa4ypRPHxLnmMGgUzZrj7IWec4ToT3nknHHdcpCOMTomJiQFnx8vOzqZnEN34y6oXaJu/8mDKSq4HG59Xodzj6BumOsaYCIiPh3POgaVL3bhYa9e68bAGD4aVK+tGOjwTAzwnDlU9ZMZ2EUmVEoOl+KtjjIkuiYluTKxVq+C++2DBArjsskxGjHBT4xoTSCg3x48VkWwReVlEeopILpAL/Cwig8MfojGmMtWqBddeC2vWwIUXfs+cOdC1K1xyiRvixJjSQrlU9RBwJ/AC8AFwiaoeDgwE7gpjbMaYKlS/Plx88fesWeOGNHn2WejQwY2FlZ8f6ehMNAklcSSo6juq+iKwQVU/B1BVO7k1phpo0sQNpLh8uRu+5I473MRSjz4K+/ZFOjoTDUJJHCWf/i49R2H1e9DZmBqqbVs3/tUXX0DHjjB+PKSnw+uvWy/0mi6UxHG0iOwQkXwgXUTyS6x3D3N8xpgI690bPvwQZs2CoiI4/XS45pqjycmJdGQmUkJ5qipeVeuraj1VTfD9LV5PrIwgjTGRJQLDhkFurhvK/bvv6pCZCeef7x7nNTWL5w6AInJNWdtV9R+hh2OMiWaJiXDFFXDEEV/w6ae/44EH3PAlf/4z3HgjVMLUDyYKhXKpqp5vyQTGAy18y+VAl/CFZoyJVnXrFnHnnW5a25EjYfJk9wTWU0+5y1mmegvlUtVtqnobkAr0UtVrVfVaIAPwNuCJMSamtWrlBlD84gs3L8jYsTB+fAYffRTpyExlqsiw6kcAe0qs7wHaVCgaY0xM6t3bTSD1wguwfXsixx3nBlL87rtIR2YqQ0XmHH8WmC8is3CP4Z4JPBOWqIwxMUcERo+Ghg3n8+WXA5k8GV57Da65BiZOjHR0JpxCPuNQ1UnAxcA24BfgYlW1nuPG1HApKfu55RZ3/2PUKLjrLnf/4803D7c5QKqJCs0AqKoLVfVfvsWGUjfGHNCiBTzzzG/3P+69txOZmdj9j2oglEEOF4ajjjGmZii+/3HLLd+weTN2/6MaCOWMo7OILC5jWYJ74soYYwB3/+P44zeyfDncfju8+SZ07gxPPtmWgoJIR2e8CuXmeKcg6tiT3MaYQ9Su7Ubb/cMf3A3zZ59tzdy5cM89bnZCm8I2NnhOHKpqAwwYYyqkRQvX/6NPn4U8/XQvzj8f/v1vmDIl0pGZYFTo5rgxxlRE1647+OILmDrVzUSYmQn33XcUmzZFOjJTFkscxpiIiotzl65WrnRjXs2ZczgdOsC//gV790Y6OuNPVCYOEblXRJb7brbPEpGGJbZNFJHVIrJCRE6JZJzGmPBp0ADuvx+eemoBxx4LV18NPXrAggWNIh2aKSXkxCEiySJyrojcKCK3Fi9hiutdoJuqpgMrgYm+9+wCjAa6AoOBR0QkPkzvaYyJAkcc8StvvQWzZ8Pu3fB//3c0Z57p5kQ30aEiZxyvAkOBfcDOEkuF+aamLZ6k8nN+GzxxKDBNVXer6nfAaqB3ON7TGBM9RNyEUUuXwqWXruHdd6FLF5g6tS07w/IrYypCNMQ5IEUkV1W7hTkef+/zGjBdVZ8TkYeAz1X1Od+2qcBbqjrTz37jgHEAaWlpGdOmTQOgoKCAunXrHqjndT2cQjl2sPuUVS/QNn/l5ZVZe1l7BbstlPYqXt+16zCeeKId7757OKmpu7n88m85/viNYX18tzq1V6DvmxdZWVk5qprpd6OqhrQAjwPdK7D/e0Cun2VoiTo3AbP4LcE9DJxfYvtU4Kzy3isjI0OLzZ07V0vyuh5OoRw72H3Kqhdom7/y8sqsvbyVWXt5Lyu5/uCDOZqRoQqqAwaoLlxYfqzBqo7tVZHvF7BAA/ymVuRS1QBgoe8m9WIRWSIii4PdWVVPVNVufpZXAURkDHAacJ7vQwDkAa1KHKYlsK4Cn8EYE0O6dXOP7z7xBKxYARkZcNll2OO7VawiiWMIcCRwMnA67kf+9HAEJSKDgRuAM1T11xKbZgOjfTfm2wIdgPnheE9jTGyIj4dLLnGP7159tZt18KijXOdBe3y3alQkcfwA/A4Yo643uQJpYYkKHsJNT/uuiCwSkUcBVHUpMAP4BpgDXKmqNryJMTVQw4bwj3/A4sVuIMWrrnKP7773XqQjq/4qkjgeAfoC5/jW83H3ICpMVY9U1Vaq2sO3XF5i2yRVba+qHVX1rXC8nzEmdnXuDHPmwCuvQGEhnHQSDB9uo+9Wpookjj6qeiVQCKCq24CksERljDEeiMDQoe7x3UmT4O23XUK59Vb49dfy9zfeVCRx7PV1vlMAEWkC2PxexpiISUmBG290N86HD4e//90lkJkzIcSeB8aPiiSOKbhHZZuKyCTgE+DOsERljDEV0LIl/O9/8OGH7l7IiBHuEtY330Q6suqhInOOPw9cD9wFrAeGqeqL4QrMGGMqauBAyMmBhx6ChQshPd0NpLh9e6Qji20VnXN8uao+rKoPqeqycAVljDHhkpAAV17pHt8dO9aNunvUUfCf/8B+u7gekqgcHdcYY8ItNRUeewy+/BLat3dDuffr59aNN5Y4jDE1SkYGfPKJm4Fw7Vro08d1KNy2LTHSocWMCicOEeksIif5XteqeEjGGFO54uLgggvc01fXXgvPPAMXXNCHKVNg377y96/pwnHG8W+gm4jMBv4rIreH4ZjGGFPp6teHe++FJUugc+cdXHUV9OwJ2dmRjiy6hSNxLFHVB4CNqjoCOCwMxzTGmCrTqRPcc89iZs2CggLIyoJRo+DHHyMdWXQKR+I41jdPxhEi0h0I4wj5xhhTNURg2DDX1+O229wMhJ06uZ7ohYWRji66VDhxqOoxwGTcOFUjgDYVPaYxxkRKrVpuqJLly2HIELj5Zuja1SUS633uhOPm+HlAbVV9VVVvVdXfhyEuY4yJqNat3VAl770HycluLKxTT3X9QWq6cFyq2gQ8IiIficjLIjI5DMc0xpiocMIJ8PXXbgj3Tz+Fbt3ghhsgPz/SkUVOOC5VvQN8oaoDgTFA5UygbIwxEZKY6IYqWbkSzjsP7rnH3f94992mNfLyVbg6ANYXkQxgN1AnTMc0xpiokpbmhir57DNo3hzuvLMLAwfCokWRjqxqeU4cInKYiDQvVXwN0B94FDcznzHGVFvHHgtffAHXXbf8wNznV1wBW7ZEOrKqEcoZx324S1IAiMinwPNAbeAWVZ0eptiMMSZqxcXB73+/gZUrYcIEePxxN3jio49CUTWf0DqUxJGBe/y2WD1gKpAKTAxHUMYYEysaNnQj7n71lRu2ffx4OOYYmDcv0pFVnlASx27Vg24HfaCqbwP/B2SGJyxjjIkt3bvDBx/A9OmwaRMMGODGw1q/PtKRhV8oiaNQRFoXr6jqVb6/CtjwksaYGksERo50nQdvuglmzHCXr6ZNa8WePZGOLnxCSRyTgFdEpFPJQhFpBiSEJSpjjIlhderAHXe44UuysuCxx9qTng5vvx3pyMLDc+LwXZa6E5grIm+JyL0ici9uznHr/GeMMT7t27uhSiZPXsz+/TB4sOuBvmZNpCOrmJD6cfjmFm+PuylegOs9PlxVXwhjbMYYUy306bOVJUtg8mR4/33o0gVuuQV+/TXSkYUm5A6Aqvqrqs5U1dtU9R5V/TqcgRljTHWSnOyGKlmxAs46y13K6tQJsrObxFzvc5s61hhjqlCLFvD88/Dxx9C4Mdx2W1dOPBGWLo10ZMGzxGGMMREwYAAsWABXX72SRYvg6KPh6qvhl18iHVn5LHEYY0yExMfD0KHrWLkSLr0Upkxxj+8+9RTs3x/p6AKzxGGMMRHWuDH8+9+Qk+MSx9ixcOWVvZg/P9KR+WeJwxhjokTPnu7ex7PPwqZNyfTp45LIxo2RjuxgljiMMSaKiMD558N//zuf//s/l0SOOsqNh7Vvn0Q6PMAShzHGRKXatYu45x5YsgT69nU3zi+9NJMPPoh0ZJY4jDEmqnXsCG++Ca++Crt3x3HCCTBiBPzwQ+RisrGljDEmyonAGWdASsqXzJ8/kDvvhDfegIkToU+fqv//v51xGGNMjEhK2s/NN7vRd087DW69FS666BhefZUq7X1uicMYY2LMEUe4Idvffx+Sk/czbBgMGeKGM6kKUZ04ROQ6EVERSfWti4hMEZHVIrJYRHpFOkZjjImU44+HJ55YwD//CZ995iaTeuyxduTnV+77Rm3iEJFWwElAyVtAQ4AOvmUc8O8IhGaMMVEjIUG56ipYtcrNODht2hF07OjGw6qsy1dRmziAB4DrgZIffSjwX3U+Bxr6JpAyxpgarWlTmDoVHn44h5YtXV+Qq67qUSlDt4tG4Xi+InIGcIKqXiUi3wOZqrpZRF4HJqvqJ7567wM3qOoCP8cYhzsrIS0tLWPatGkAFBQUULdu3QP1vK6HUyjHDnafsuoF2uavvLwyay9rr2C3hdJepdetvYJrr9q16/LWW4eTm1uLG274LpiPcoisrKwcVc30u1FVI7IA7wG5fpahwBdAA1+974FU3+s3gAEljvE+kFHee2VkZGixuXPnakle18MplGMHu09Z9QJt81deXpm1l7cyay/vZWW1XzhZex0MWKABflMj1o9DVU/0Vy4i3YG2wNciAtASWCgivYE8oFWJ6i2BdZUcqjHGmBKi7h6Hqi5R1aaq2kZV2+CSRS9V3QDMBi70PV11LLBdVddHMl5jjKlpYq3n+JvAqcBq4Ffg4mB2ysnJ2Swia32rDYDtJTaXt54KbA414HKUfq9w7lNWvUDb/JWXV2bt5a3M2st7Wcl1a6+qa6/WAbcEuoZVXRfgcY/rAa/zhTuWcO5TVr1A2/yVl1dm7WXtVZnt5af9rL2ioL2i7lJVFXjN43plCuW9gt2nrHqBtvkrL6/M2stbmbWX97KqajNrryBF5eO40UREFmigR9LMIay9vLH28sbay5vKaq+aeMbh1eORDiDGWHt5Y+3ljbWXN5XSXnbGYYwxxhM74zDGGOOJJQ5jjDGeWOIwxhjjiSUOY4wxnlji8EBE2onIVBGZGelYYoWIDBORJ0TkVRE5OdLxRDsR6Swij4rITBEZH+l4YoGI1BGRHBE5LdKxRDsRGSQiH/u+Y4NCPU6NTxwi8pSIbBSR3FLlg0VkhW+2wb8AqOoaVR0bmUijh8c2e0VVLwUuAkZFINyI89hey1T1cmAkUCP7K3hpL58bgBlVG2X08NheChQAKbhxAENTWd33Y2UBBgK9gNwSZfHAt0A7IAn4GuhSYvvMSMcdg212P26wyojHH+3tBZwBfAqcG+nYo729gBOB0bj/mJwW6dhjoL3ifNvTgOdDfc8af8ahqh8BW0sV9wZWqzvD2ANMw80TYvDWZr6RjO8G3lLVhVUdazTw+h1T1dmq2g84r2ojjQ4e2ysLOBY4F7hURGrcb5qX9lLV/b7t24DkUN8z1kbHrSotgB9LrOcBfUSkMTAJ6CkiE1X1rohEF538thnwR9z/ChuIyJGq+mgkgotCgb5jg4DhuH/Ub0Ygrmjlt71UdQKAiFwEbC7xw1jTBfp+DQdOARoCD4V6cEsc/omfMlXVLcDlVR1MjAjUZlOAKVUdTAwI1F7ZQHbVhhIT/LbXgReqT1ddKDEh0PfrZeDlih68xp3WBclmGvTO2swbay9vrL28qdT2ssTh35dABxFpKyJJuJtvsyMcU7SzNvPG2ssbay9vKrW9anziEJEXgM+AjiKSJyJjVXUfMAF4G1gGzFDVpZGMM5pYm3lj7eWNtZc3kWgvGx3XGGOMJzXi5nhqaqq2adMGgJ07d1KnTp0D27yuh1Moxw52n7LqBdrmr7y8Mmsva69gt4XSXqXXrb2qrr1ycnI2q2oTvxsj3XmlVEeWwcAKYDXwFz/bk4Hpvu1fAG2COW5GRoYWmzt3rpbkdT2cQjl2sPuUVS/QNn/l5ZVZe3krs/byXlZW+4WTtdfBKGO+8qi5xyEi8cDDwBBcD8dzRKRLqWpjgW2qeiTwAHB31UZpjDEmahIHwfXWHgo843s9EzhBRPw9rxwe69eT+MsvsH07FBbCfutbZIwxUXNzXETOBgar6iW+9Qso0TPUV5brq5PnW//WV2ezn+ONA8YBpKWlZUybNg2AgoIC6tate6BeWeu/GzKE+MLCg46rcXHsT0xEExJ++5uUxP6EhIPLSmzThAT2F9dLTqYoJYX9ycnsiosjoX59ipKT2Z+Scujfkq9r10bj4w+JN5Cy6gXa5q+8vLLy2jOcQjm2tVdst1fpdWuvqmuvrKysHFX1O9BmNN0cL7NnqIc6rlD1cXwTtWdmZuqgQYMAyM7Opvh1uesPPcSqxYvp0Lo17NkDe/Yge/YQv2cP7N59oOyQpeS2XbsOfr1rF/z6q/vrVe3a7K5Vi+QmTaBBg0OXhg0PvF68bh3pJ5wATZq4pcQNstKfuazy8srKa89wCuXYwe5TVj1rL2/1wtlepdfD3V579+4lLy+PwsJCGjRoQEpKiqf9g92nrHqBtvkrD6as5How8aWkpNCyZUsSExPL/RzFoilxBNPTsbhOnogkAA04dHCv8Bk7lp+ys+lQGf+w9+/no3feYWBmJuzc6ZKJv2XnTrfk58P27WxdvpxmtWu7y2e//AJr17rX27cflIzSS79frVqQmgpNmpAeHw8dO0LTptC8ObRsCS1bkrJhg0twSUnh/7zGRKG8vDzq1atHmzZtKCgooF69ep72z8/PD2qfsuoF2uavPJiykuvlxaeqbNmyhby8PNq2bVvu5ygWTYnjQE9H4CdcT8dzS9WZDYzBdXY5G/hAo+Vam1dxcexPSXE/5qmpQe+2IjubZoES2Z49sGMH/PILC995h16tWsGmTW7ZvPnA64Q1a+CTT2DjRpecfI4tftG0qUsmLVrQIT4evvoK2rd3S7t2IX9kY6JNYWEhbdq0oTJvlUYzEaFx48Zs2rTJ035RkzhUdZ+IFPd0jAeeUtWlInI77rGw2cBU4FkRWY070xgduYijUFLSgUS0Iy8PAiSYhcWn+6ruTOWnnyAvj+Xvv0+nunUhL8+VrV1L2rffwiuvHLR/39RU6NIF2renVVKSSz5du8IRR1T+ZzQmzGpq0igWyuePmsQBoKpvUmooaVW9tcTrQmBEVcdVbYm4+yING0LXrmxITqZTqWTzydy5DEpPh2+/PbBsnTePZjt3wpw5tF+/Hh57zFWuV49eLVtC377QvTtkZEDPnlBJNzONMZERVYnDRCERaNzYLb17AwdfLvvktdcY0KgRLF0KubkUzZsHr70GTz3l9o+Lg86d4ZhjIDPT/e3ZEzzciDOmJurWrRs5OTmkeriUXVUscZgK2VevHgwY4Bbg6+LLYBs2QE4OfPklLFgAb74JTz/tdqpdG/r1g4ED4bjjXELy+DSLMSZyoqkDoKlODj8cfv97+Nvf4PXXXSL54Qd48UUYO9bdqP/rX13iaNjQ3Y+56y74+mt378WYGmLt2rV06tSJMWPGkJ6eztlnn82vvodWHnzwQXr16kX37t1Zvnw5APPnz6dfv3707NmTfv36sWrVKgCWLl1K79696d+/P+np6QfKn3vuOXr37k2PHj247LLLKCoqqnDMdsZhqoYItGrllrPPdmXbtrmnuz78ED74AG680S3Nm8PgwXDqqXDKKXaPxFSJ5BtugG++8bRPraIiiI8PXKFHD/jnP8s9zooVK5g6dSr9+/fnD3/4A4888ggAqampLFy4kEceeYT77ruPBx54gE6dOvHRRx+RkJDAe++9x2233carr77Ko48+ylVXXdEWeNsAABglSURBVMUZZ5xBcnIyRUVFLF26lOnTpzNv3jwSExO54ooreP7557nwwgs9fc7SLHGYyGnUCE4/3S0A69fDnDnw1lvw0kvuPklKCgwZAiNGEN+gQWTjNaaStGrViv79+wNw/vnnM2WKm215+PDhAGRkZPDyy27G1+3btzNmzBhWrVqFiLB7924A+vbty6RJk/j2228555xz6NChA9nZ2eTk5HDMMccAsGvXLpo2bVrheC1xmOjRrBlcfLFb9u2DefNcApk5E2bNon9iorv8dd55LtkkJ0c6YlON7L77bpI8dgDcFWQHwPKUfiS2eD3Z9x2Pj49n3759ANxyyy1kZWUxa9Ysvv/+e4477jgAzj33XPr06cNLL73EKaecwpNPPomqMmbMGO66664Kx1iS3eMw0Skhwd3/mDLF9Sv5+GPWnX46fPEFjBgBLVrAVVfBokWRjtSYCvvhhx/47LPPAHjhhRcY4HvYxJ/t27fTokULAJ4ufuAEWLNmDe3atWP8+PGcccYZLF68mEGDBjFz5kw2btwIwNatW1m7dm2F47XEYaJfXBwMGMDqP/4RfvzRXco64QR49FH3aG+vXjB1amjjfxkTBTp37swzzzxDeno6W7duZfz48QHrXn/99UycOJH+/fsfdKN7+vTpdOvWjf79+7N8+XIuvPBCOnXqxB133MHJJ59Meno6J510EuvXr69wvHapysSW+Hh343zwYNi6Ff73P3jiCbjkErjhBhg3Dq64wg2ZYkyMiIuL49FHHz2oLDc398BlsMzMTLKzs8nPz6dv376sXLnyQL3rr78egIkTJzJx4sRDxqoaNWoUo0aNCm+8YT2aMVXpsMNgwgR3uSo72/ULuftuaNMGRo+GxYsjHaEx1ZIlDhP7RNz9kJdfdsOi/PnPrsPh0UfT7aabXCdEY6JU69atyc3NjXQYnljiMNVLmzZw771uuPnbbqPBkiWuZ/opp8D8+ZGOzkShWB1gO1xC+fyWOEz11KgR3Horn0+b5i5fffUV9OkDI0eCr0etMSkpKWzZsqXGJo/i+Ti8TmBlN8dNtVZUuzZcfz2MHw/33w/33QezZrmb6LfeCmlpkQ7RRFDLli3Jy8tj06ZNFBYWev4BDXafsuoF2uavPJiykuvBxFc8A6AXljhMzVCvnhs36/LL4e9/h8cfh+eeg9tuczfYTY2UmJh4YOa77Oxsevbs6Wn/YPcpq16gbf7KgykruR7KZwqGXaoyNcvhh8PDD7th4Pv1czfSe/akwddfRzoyY2KGJQ5TMx11lHvyatYs2LGDnldf7YYy8fWwNcYEZonD1FwiMGwYLFvG9xdc4MbE6tIFXnjBhnY3pgyWOIypXZvv//AH9+TVkUfCuefCmWe60XqNMYewxGFMsS5d3Ii8998Pb7/t1p991s4+jCklKhKHiBwmIu+KyCrf30YB6hWJyCLfMruq4zQ1QHw8XHONG66kWze48EI633EHbN8e6ciMiRpRkTiAvwDvq2oH4H3fuj+7VLWHbzmj6sIzNU6HDm78q0mTaJqdDUcf7c5GjDHlJw7f2UB5S8MKxjEUeMb3+hlgWAWPZ0zFxcfDjTey8MEH3euBA9086b4JdYypqaS8rvYiUgisA6SMavGqekTIQYj8oqoNS6xvU9VDLleJyD5gEbAPmKyqr5RxzHHAOIC0tLSMadOmAVBQUEDdEnNYe10Pp1COHew+ZdULtM1feXllNaW9GojQYcoUDn/nHbb16ME3t9zCtqQkay8P20L5fpVet/aquvbKysrKUdVMvxtVtcwF+CpMdd4Dcv0sQ4FfStXdFuAYzX1/2wHfA+3Le19VJSMjQ4vNnTtXS/K6Hk6hHDvYfcqqF2ibv/Lyympcez39tGpKimqzZrpwypSgjlOj26uc8mDKymq/cLL2OhiwQAP8pgYz5EjfcNRR1RMDbRORn0WkmaquF5FmgN9eWKq6zvd3jYhkAz2Bb4OIz5jwGDPGzTp41ln0uPpqd9nq6qtdnxBjaohy73GoaqGI1BaROmXVqWAcs4ExvtdjgFdLVxCRRiKS7HudCvQHvqng+xrjXXo6LFjA5n793BNYI0dCfn6kozKmygRzc/xPwFTgCRH5cyXFMRk4SURWASf51hGRTBF50lenM7BARL4G5uLucVjiMJHRoAFLb7/dzf0xa5Yb9+q77yIdlTFVIphLVWOATNzN8QXAA+EOQlW3ACf4KV8AXOJ7/SnQPdzvbUzIROC666BHDxgxAnr3psFNN8GgQZGOzJhKFUw/jnuAl4GXgH9WbjjGxKATT3SzCzZuzNHXXeeGbDemGiv3jENVpwPTqyAWY2JXhw7wxRdsO/lkGl92GSxZAg88AAk25Y2pfqKl57gxsa9BA5bceSdcey089BAMGQK//BLpqIwJu2Buji8MRx1jaoT4eDc97VNPwYcfwoABJG/YEOmojAmrYM6jO4vI4jK2C9AgTPEYUz1cfDG0aQNnnkmvK690w7Vn+u+Ea0ysCSZxdAqiTlFFAzGm2snKgk8/RY8/Ho47zk0QVb9+pKMypsKC6QC4NoglryqCNSbmdOnCwkcega5dYdgwWrz0UqQjMqbC7Oa4MZVsz2GHuSHahw6lw0MPuSFKiuwk3cQuSxzGVIXatWHmTH48+2z417/grLNg585IR2VMSCxxGFNV4uP59sor4cEH4bXXYNAgkrZujXRUxngWdO8k3wCDZwFtSu6nqreHPyxjqrEJE6B1axg9ml5XXAEdO7p7IMbECC9nHK/i5s7YB+wssRhjvDr9dPjoI2TvXjdA4nvvRToiY4LmZTyElqo6uNIiMaamychg4SOP0PeOO1wv88cegz/8IdJRGVMuL2ccn4qIjU5rTBjtTkuDTz5xfT7GjoWbb4ZypnM2JtK8JI4BwEIRWSEii0VkSTk9yo0xwWjQAN54Ay69FCZNgvPOg8KKzo1mTOXxcqlqSKVFYUxNl5joLlW1bw9/+Qv8+CO88go0bhzpyIw5hJczjh+A3wFjVHUtoEBapURlTE0kAjfcANOnw5dfQt++sHp1pKMy5hBeEscjQF/gHN96PvBw2CMypqYbORI++AC2boVjj4V58yIdkTEH8ZI4+qjqlUAhgKpuA5IqJSpjarp+/eDzz92lqhNOcGchxkQJL4ljr4jE4y5RISJNgP2VEpUxxg3F/umn0Ls3jB4Nf/0r7Ld/cibyvCSOKcAsoKmITAI+Ae4MRxAiMkJElorIfhEJOGmBiAz2PdW1WkT+Eo73NiaqNW4M774LF10Et98Ow4dDfn6kozI1XNBPVanq8yKSA5yAm7xpmKouC1McucBw4LFAFXxnOw8DJwF5wJciMltVvwlTDMZEp+RkN6Ngz55wzTXuvserr7ozEmMiwNMgh6q6XFUfVtWHwpg0UNVlqrqinGq9gdWqukZV9wDTcEOgGFP9icCf/gTvvAM//wzHHANz5kQ6KlNDiUZRL1URyQauU9UFfradDQxW1Ut86xfgbthPCHCsccA4gLS0tIxp06YBUFBQQN26dQ/U87oeTqEcO9h9yqoXaJu/8vLKrL2qvr1S1q+n2803U+f771lzySX8OHq0SywePlMg0dZepdft+1V17ZWVlZWjqv5vHahq0AvuKapaXvYpse97uEtSpZehJepkA5kB9h8BPFli/QLgwWDeOyMjQ4vNnTtXS/K6Hk6hHDvYfcqqF2ibv/Lyyqy9vJWFrb0KClRHjlQF1dNPV92yJahYyhNt7VV63b5f5ZeFq72ABRrgN9XLsOpXAbcChSKyA3hYVR8Kdn9VPTHYugHkAa1KrLcE1lXwmMbEpjp1YNo06N8frrsOevVyj+z26RPpyEwNUO49DhH5p4hcCFwFdFbVFsBAoIuI/L2yAyzhS6CDiLQVkSRgNDC7Ct/fmOhSfN/jk0/c6wED4IEHbJBEU+mCuTn+IXAkkIobIXchcC/wLTBaRBpWNAgROVNE8nA9098Qkbd95c1F5E0AVd0HTADeBpYBM1R1aUXf25iY17s3LFwIv/+9e+pq2DDYtCnSUZlqrNzEoaqzVPVW4HPcU0wnAs/gJnQ6DMgWkQoNqON7j5aqmqyqaap6iq98naqeWqLem6p6lKq2V9VJFXlPY6qVRo1g1iz4xz/c01bdu9P4s88iHZWpprw8jnsl8BxwP9AT6AYsUdUeQJdKiM0Y44UI/PnPboDEtDS633gjjBsHBQWRjsxUM0EnDlVdBfQBZgK1gMXAmb5teyolOmOMd+npMH8+P5xzDjz5JBx9NHz8caSjMtWI1w6Ae1T1DVWdpKoPqhvo0BgTbZKTWTNuHHz4obtZPnAgXHYZ/PJLpCMz1YCnxGGMiTG/+x0sWQLXXuvOPjp3hpkz7ckrUyGWOIyp7urUgfvug/nzoVkzGDEChg6Fb7+NdGQmRlniMKamyMhwyeO++9xEUV26uBkHd+yIdGQmxljiMKYmSUhwl61WroRzzoF77oGjjoKpU6GoKNLRmRhhicOYmqh5c3j6aXcG0r49XHIJ9OhB6ief2P0PUy5LHMbUZMcc44YsmT4d9uyh2y23uJ7oc+ZYAjEBWeIwpqYTgZEjYelSlt9wA2zeDEOGuCeyXn/dpqs1h7DEYYxxEhLYMHgwrFgBDz8MP/4Ip58O3bu7y1p7rJ+vcSxxGGMOlpQEV1wBq1fDc8+5G+oXXwzt2sGdd7oZCE2NZonDGONfYiKcdx4sWgRvv+06D950E7RqRZfbboPsbLsPUkNZ4jDGlE0ETj4Z3n0Xli+HCRNolJMDWVmuL8jkyfDDD5GO0lQhSxzGmOB17Aj/+Aefvfgi/Oc/cNhhMHEitG4NgwbBk0+SYKPxVnuWOIwxnu1PToaLLoJ589zQJX//O6xfD5deSr8zz3RPZT32mCsz1Y4lDmNMxbRrBzff7C5jffklPw0fDqtWweWXu46GffvC5MnUXbXKHu2tJixxGGPCQwQyM/l2/HiXOHJz4Y47YN8+mDiRzHHj4PDD3VAnTz3lHvc1MSkh0gEYY6ohEeja1S033QTr1rHswQfpnJcH770H06YB0Kd5czj+eOjf3y1dbDLRWGCJwxhT+Zo35+dTTqHzoEHuEd7cXHjvPQpmzaLWO++4/iIA9euT3rEjnHQS9OzpFnvkN+pEReIQkRHA34DOQG9VXRCg3vdAPlAE7FPVzKqK0RgTJiKuN3r37izt2ZNBxx0Ha9bAp5/CvHkkvfsu3H33gdF6B9Sp44aE79mTwxMTXQfFTp3cE10mIqIicQC5wHDgsSDqZqnq5kqOxxhTVUTcCL3t28MFF7AgO5tBxx7rzkoWLuTnN96gxc8/w+OP02nXLjefCEDTpi6BdO7s/rZvD23bQps2ULduRD9SdRcViUNVlwGISKRDMcZEg5QUyMyEzExWHXUULQYNgqIiPp82jWMbNHBPcC1b5v7OmAHbth28f2qqSyLFiaR1a/eEV/GSluZ6xpuQiEbR9UMRyQauK+NS1XfANkCBx1T18TKONQ4YB5CWlpYxzXczrqCggLol/jfidT2cQjl2sPuUVS/QNn/l5ZVZe1l7BbstlPYqve732Kok/vILKevXU2vDBlI2bCBl/Xr3d8MGUn7+mbi9ew/eRYS9DRuyu3Fj9viWnbVrQ5Mm7Ktfn70NGvy21K/Pvjp1IO7Qh1Bjsr2ClJWVlRPwdoCqVskCvIe7JFV6GVqiTjaQWcYxmvv+NgW+BgYG894ZGRlabO7cuVqS1/VwCuXYwe5TVr1A2/yVl1dm7eWtzNrLe1lZ7ReUoiLVdetUc3JUX3tN9bHHVP/6V9Vx41RPO021Vy/Vww/Xovh4VXcr/tAlPl61aVPVTp1U+/RRPekk1bPO0nVDhqhefbXqrbeq3n+/6hNPqM6YoTpnjuq8eaqLFqmuXKnzZsxQ3bpVtbBQdf/+ctsg2LbxV1bh9vIBFmiA39Qqu1SlqieG4RjrfH83isgsoDfwUUWPa4ypxuLioFkzt/TqFbDaR3PnMigjw81HUrxs2XLw6y1bID8ftm+Hn37isI0b3URY+fllhtCvdDy1ax9YjlGFJk1+K0tOhqQkOm/bBs8+6x4GSEqC5GTarl8PH398UFmz775zY4X59jts+XLYvRsSE6m/bJkbCibMouIeRzBEpA4Qp6r5vtcnA7dHOCxjTHUhAvXru6Vdu6B2+Sw7m0G++y8UFMCOHS6p7Njhll9/hV27WPHVV3Rs1cqtl1p2rl1LnTp13PrWrW7ek927qb99u7uH41tnzx6O2L37kN73HUvFlF7idbdGjeDKKyvULP5EReIQkTOBB4EmwBsiskhVTxGR5sCTqnoqkAbM8t1ATwD+p6pzIha0McYUi4+HBg3c0qrVIZvXt2hBxwD/8/8mO5umfrZ9UZyUSvgwO5tBv/vdQcnksw8/pG+vXgfKcj77jIyjj4Z9+1j69df0DMPHKy0qEoeqzgJm+SlfB5zqe70GOLqKQzPGmOgSHw+1arkF2N2kiXsU2Sf/l1+gn7s4tr2SxgazsaqMMcZ4YonDGGOMJ1HVj6OyiMgmYK1vtQGwvcTm8tZTgcrqqV76vcK5T1n1Am3zV15embWXtzJrL+9lJdetvaquvVqrahO/WwI9p1tdF+Bxj+sBn2UOdyzh3KeseoG2+Ssvr8zay9qrMtvLT/tZe0VBe9XES1WveVyvTKG8V7D7lFUv0DZ/5eWVWXt5K7P28l5WVW1m7RWkGnGpqiJEZIHaKLxBs/byxtrLG2svbyqrvWriGYdXAcfDMn5Ze3lj7eWNtZc3ldJedsZhjDHGEzvjMMYY44klDmOMMZ5Y4jDGGOOJJQ4PRKSdiEwVkZmRjiVWiMgwEXlCRF4VkZMjHU+0E5HOIvKoiMwUkfGRjicWiEgdEckRkdMiHUu0E5FBIvKx7zs2KNTj1PjEISJPichGEcktVT5YRFaIyGoR+Qu4gRZVdWxkIo0eHtvsFVW9FLgIGBWBcCPOY3stU9XLgZFAjXzs1Et7+dwAzKjaKKOHx/ZSoABIAfJCftPK6oUZKwswEOgF5JYoiwe+BdoBSbjZBruU2D4z0nHHYJvdD/SKdOyx0F7AGcCnwLmRjj3a2ws4ERiN+4/JaZGOPQbaK863PQ14PtT3rPFnHKr6EbC1VHFvYLW6M4w9wDRgaJUHF6W8tJk4dwNvqerCqo41Gnj9jqnqbFXtB5xXtZFGB4/tlQUcC5wLXCoiNe43zUt7qWrxOOvbgORQ3zMq5uOIQi2AH0us5wF9RKQxMAnoKSITVfWuiEQXnfy2GfBH3P8KG4jIkar6aCSCi0KBvmODgOG4f9RvRiCuaOW3vVR1AoCIXARsLvHDWNMF+n4NB04BGgIPhXpwSxz+iZ8yVdUtwOVVHUyMCNRmU4ApVR1MDAjUXtlAdtWGEhP8tteBF6pPV10oMSHQ9+tl4OWKHrzGndYFKQ8oOf9jS2BdhGKJFdZm3lh7eWPt5U2ltpclDv++BDqISFsRScLdfJsd4ZiinbWZN9Ze3lh7eVOp7VXjE4eIvAB8BnQUkTwRGauq+4AJwNvAMmCGqi6NZJzRxNrMG2svb6y9vIlEe9kgh8YYYzyp8WccxhhjvLHEYYwxxhNLHMYYYzyxxGGMMcYTSxzGGGM8scRhjDHGE0scxhhjPLHEYYwxxhNLHMaESET+JCLLROT5MB/3MhF5pFTZUhHpFM73MSZUNjquMaG7Ahiiqt+F+bjpwFfFKyKSAhwBrArz+xgTEjvjMCYEIvIobna12SLy51LbzheR+SKySEQeE5F4EWnjOzt5wnf28I6I1Apw+O7AwlLrK1W1SEQ+8B13kYgUisiIyvmExgRmY1UZEyIR+R7IVNXNJco6A/cAw1V1r++S0+fAR8BqX/1FIjIDmK2qz/k57hbcvNDF/zjrAq+r6kUl6ozHzX53jqoWVcbnMyYQu1RlTHidAGQAX4oIQC1gIy5xfKeqi3z1coA2pXcWkVbAJlXtVKLsIWBNifULgSHAWZY0TCRY4jAmvAR4RlUnHlQo0gbYXaKoCJdUSksHSg9/3QV41XecEbi5yIeq6t7whGyMN3aPw5jweh84W0SaAojIYSLS2sP+3YFvSpV1BRaLyGm4G/LDVbUwLNEaEwJLHMaEkap+A9wMvCMii4F3gWYeDnFQ4hCRw3D3In8GnsFNATrPd3N8bPgiNyZ4dnPcGGOMJ3bGYYwxxhNLHMYYYzyxxGGMMcYTSxzGGGM8scRhjDHGE0scxhhjPLHEYYwxxhNLHMYYYzz5f8i20QtG4MmGAAAAAElFTkSuQmCC\n",
"text/plain": [
"