{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 13章 ロバスト制御" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from control.matlab import *\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "#plt.rcParams['font.family'] ='sans-serif' #使用するフォント\n", "plt.rcParams['font.family'] = 'Times New Roman' # font familyの設定\n", "plt.rcParams['mathtext.fontset'] = 'cm' # math fontの設定\n", "plt.rcParams['xtick.direction'] = 'in' #x軸の目盛線が内向き('in')か外向き('out')か双方向か('inout')\n", "plt.rcParams['ytick.direction'] = 'in' #y軸の目盛線が内向き('in')か外向き('out')か双方向か('inout')\n", "plt.rcParams['xtick.major.width'] = 1.0 #x軸主目盛り線の線幅\n", "plt.rcParams['ytick.major.width'] = 1.0 #y軸主目盛り線の線幅\n", "plt.rcParams['font.size'] = 11 #フォントの大きさ\n", "plt.rcParams['axes.linewidth'] = 0.5 # 軸の線幅edge linewidth。囲みの太さ\n", "plt.rcParams['mathtext.default'] = 'it'#'regular'\n", "plt.rcParams['axes.xmargin'] = '0'\n", "plt.rcParams['axes.ymargin'] = '0.05'\n", "plt.rcParams['savefig.facecolor'] = 'None'\n", "plt.rcParams['savefig.edgecolor'] = 'None'\n", "\n", "plt.rcParams[\"legend.fancybox\"] = True # 丸角\n", "# plt.rcParams[\"legend.framealpha\"] = 1 # 透明度の指定、0で塗りつぶしなし\n", "# plt.rcParams[\"legend.edgecolor\"] = 'gray' # edgeの色を変更\n", "plt.rcParams[\"legend.handlelength\"] = 1.8 # 凡例の線の長さを調節\n", "plt.rcParams[\"legend.labelspacing\"] = 0.4 # 垂直方向(縦)の距離の各凡例の距離\n", "plt.rcParams[\"legend.handletextpad\"] = 0.7 # 凡例の線と文字の距離の長さ\n", "plt.rcParams[\"legend.markerscale\"] = 1.0 # 点がある場合のmarker scale" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def linestyle_generator():\n", " linestyle = ['-', '--', '-.', ':']\n", " lineID = 0\n", " while True:\n", " yield linestyle[lineID]\n", " lineID = (lineID + 1) % len(linestyle)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def plot_set(fig_ax, *args):\n", " fig_ax.set_xlabel(args[0])\n", " fig_ax.set_ylabel(args[1])\n", " fig_ax.grid(ls=':', lw=0.5)\n", " if len(args)==3:\n", " fig_ax.legend(loc=args[2])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def bodeplot_set(fig_ax, *args):\n", " fig_ax[0].grid(which=\"both\", ls=':', lw=0.5)\n", " fig_ax[0].set_ylabel('Gain [dB]')\n", "\n", " fig_ax[1].grid(which=\"both\", ls=':', lw=0.5)\n", " fig_ax[1].set_xlabel('$\\omega$ [rad/s]')\n", " fig_ax[1].set_ylabel('Phase [deg]')\n", " \n", " if len(args) > 0:\n", " fig_ax[1].legend(loc=args[0])\n", " if len(args) > 1:\n", " fig_ax[0].legend(loc=args[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ロバスト制御" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 例13.1: 不確かさの記述" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 垂直駆動アームのノミナルモデル\n", "Pn = tf( [0,8], [1, 2, 10] )\n", "# Pn = tf( [0, 1], [1, 0.1, -2])\n", "\n", "# Pn = tf( [0, 1], [1, 1])\n", "# 不確かさ\n", "delta = np.arange(-1, 1 , 0.1)\n", "WT = tf( [10, 0], [1, 150])\n", "# WT = tf([ 1, 0.001], [1, 1000])\n", "\n", "fig, ax = plt.subplots(1, 2, figsize=(6,2.3))\n", "# fig, ax = plt.subplots(1, 2)\n", "\n", "for i in range(len(delta)):\n", " # 不確かさをもつ制御対象\n", " P = (1 + WT*delta[i])*Pn\n", " gain, _, w = bode(P, logspace(-3,3), plot=False)\n", "\n", " ax[0].semilogx(w, 20*np.log10(gain), color = 'gray', lw = 0.3)\n", " \n", " # 乗法的不確かさ\n", " DT = (P - Pn)/Pn\n", " gain, _, w = bode(DT, logspace(-3,3), plot=False)\n", "\n", " ax[1].semilogx(w, 20*np.log10(gain), color = 'gray', lw = 0.3)\n", "\n", "gain, phase, w = bode(Pn, logspace(-3,3), plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain), lw =1.5, color='k')\n", "\n", "gain, phase, w = bode(WT, logspace(-3,3), plot=False)\n", "ax[1].semilogx(w, 20*np.log10(gain), lw =1.5, color='k')\n", "\n", "ax[0].set_ylim(-100, 50)\n", "ax[1].set_ylim(-100, 50)\n", "bodeplot_set(ax)\n", "ax[0].set_xlabel('$\\omega$ [rad/s]')\n", "ax[0].set_ylabel('Gain of $\\mathcal{P}$ [dB]')\n", "ax[1].set_ylabel('Gain of $\\mathcal{W}_\\mathcal{T}$ [dB]')\n", "#ax.grid(which=\"both\", ls=':')\n", "#ax.set_ylabel('Gain [dB]')\n", "#ax.set_xlabel('$\\omega$ [rad/s]')\n", "\n", "fig.tight_layout()\n", "#fig.savefig(\"robust_plant.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 例13.2: 混合感度問題" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "K= \n", " 4.803e+08 s^4 + 7.323e+10 s^3 + 1.84e+11 s^2 + 7.921e+11 s + 3.469e+11\n", "-----------------------------------------------------------------------------\n", "s^5 + 3.614e+08 s^4 + 5.515e+10 s^3 + 1.411e+11 s^2 + 2.657e+10 s + 1.301e+09\n", "\n", "gamma = 1.3287755405798092\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from control import mixsyn\n", "\n", "#WS = tf([0, 1000], [1, 0.1])\n", "#WT = tf([1000, 1], [1, 1000])\n", "\n", "WS = tf( [0, 1], [1, 0.2, 0.01]) # 感度関数に対する重み関数 \n", "WU = tf(1, 1)\n", "WT = tf( [10, 0], [1, 150]) # 相補感度関数に対する重み関数\n", "# WT2 = tf( [50, 0], [1, 150]) \n", "\n", "# 混合感度問題\n", "K, _, gamma = mixsyn(Pn, w1=WS , w2=WU, w3=WT) \n", "\n", "print('K=', ss2tf(K))\n", "print('gamma =', gamma[0])\n", "\n", "fig, ax = plt.subplots(1, 2, figsize=(6,2.3))\n", "\n", "# 感度関数\n", "Ssys = feedback(1, Pn*K)\n", "gain, _, w = bode(Ssys, logspace(-3,3), plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain), ls= '-', lw =1, label='$\\mathcal{S}$', color='k')\n", "\n", "gain, _, w = bode(gamma[0]/WS, logspace(-3,3), plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain), ls= '-.', lw =1, label='$\\gamma/\\mathcal{W}_\\mathcal{S}$', color='k')\n", "\n", "# 相補感度関数\n", "Tsys = feedback(Pn*K, 1)\n", "gain, _, w = bode(Tsys, logspace(-3,3), plot=False)\n", "ax[1].semilogx(w, 20*np.log10(gain), ls = '-', lw =1, label='$\\mathcal{T}$', color='k')\n", "\n", "gain, _, w = bode(gamma[0]/WT, logspace(-3,3), plot=False)\n", "ax[1].semilogx(w, 20*np.log10(gain), ls= '--', lw =1, label='$\\gamma/\\mathcal{W}_\\mathcal{T}$', color='k')\n", "\n", "for i in range(2):\n", " ax[i].set_ylim(-80, 40)\n", " ax[i].set_yticks([-80,-40,0,40])\n", " ax[i].legend()\n", " ax[i].grid(which=\"both\", ls=':', lw=0.5)\n", " ax[i].set_ylabel('Gain [dB]')\n", " ax[i].set_xlabel('$\\omega$ [rad/s]')\n", "\n", "fig.tight_layout()\n", "#fig.savefig(\"robust_design.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.0, 5.0)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(3, 2.3))\n", "\n", "for i in range(len(delta)):\n", " P = (1 + WT*delta[i])*Pn\n", " Gyr = feedback(P*K, 1)\n", " \n", " y, t = step(Gyr, np.arange(0,5,0.01))\n", "\n", " ax.plot(t, y, color ='gray', lw =0.3)\n", "\n", "Gyr = feedback(Pn*K, 1)\n", "y, t = step(Gyr, np.arange(0,5,0.01))\n", "ax.plot(t, y, lw =1, color='k')\n", "\n", "plot_set(ax, '$t$', '$y$')\n", "ax.set_xlim(0, 5)\n", "\n", "#fig.savefig(\"robust_step.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/minami/opt/anaconda3/lib/python3.8/site-packages/scipy/signal/filter_design.py:1621: BadCoefficients: Badly conditioned filter coefficients (numerator): the results may be meaningless\n", " warnings.warn(\"Badly conditioned filter coefficients (numerator): the \"\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "kp = 8\n", "kd = 0.5\n", "ki = 10\n", "\n", "# fig, ax = plt.subplots()\n", "fig, ax = plt.subplots(figsize=(3,2.3))\n", "\n", "for i in range(len(delta)):\n", " Kpid = tf([kd, kp, ki], [1, 0])\n", " \n", " P = (1 + WT*delta[i])*Pn\n", " Gyr = feedback(P*Kpid, 1)\n", " y, t = step(Gyr, np.arange(0,5,0.01))\n", " ax.plot(t, y, color ='k', lw =0.3)\n", " \n", "ax.set_xlim(0, 5)\n", "plot_set(ax, 't', 'y')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/minami/opt/anaconda3/lib/python3.8/site-packages/scipy/signal/filter_design.py:1621: BadCoefficients: Badly conditioned filter coefficients (numerator): the results may be meaningless\n", " warnings.warn(\"Badly conditioned filter coefficients (numerator): the \"\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaYAAADOCAYAAAB1oaaAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACPo0lEQVR4nOydd1hUx/eH30tVxBq7Rv1q1NhLNJpiYjd2jcbeYoy9K4qIAqICUjX23rBgb4hi7wV7711BEell2/z+wL0/yi4isW123+fhYW+fM3vvnjszZz5HEkJgwoQJEyZMfCmYfe4CmDBhwoQJEykxOSYTJkyYMPFFYXJMJkyYMGHii8LkmEyYMGHCxBeFyTGZMGHChIkvCpNjMmHChAkTXxQmx2TChAkTJr4oLD53AUyYMJExkiQNARRAUWCmECIyzfZ9wLfAU+Ankl84nYA7QGEhhMcnLbAJE/8SU4vJhIkvGEmSagJ1hBCLgP0kO5yU29sBE4UQxYUQdYUQamAo8EAIsQKwlCSp7acutwkT/waTYzJh4sumHXDt7eeLb5dT0gDYJEnSZkmSCr1d1x64msExJkx80RhkV16/fv1E8eLFP3cxTPzHcXFxWSKE6PeZi1EYOPv2cyLJ3XkyQogRkiSNBhyAVUDTt8dE6DsGoGrVquLKlSvy8o8//kj9+vXRaDSo1WoALC0tEUKgUqnkZQClUgmAhYUFkiTJy+bm5piZmaVaNjc3R6FQ6Fw2MzPDwsICpVKJECLdsiRJWFpaolKp0Gg06ZYBrKysUKvVcpnTLltaWpps+sw2eXp6vvdzZJCOqXjx4jg7O7/XMeHh4eTPn//jFMgAMNn//va7uLg8/UjFeR/CAJu3n3MCL9Pu8Lb7zlWSpFOZPeb333/n8uXL/7pwhnpfGWK5DbHMAJ6enu/9HJm68kyY+LLZDFR/+7kKsF2SpDySJFkCSJJk9vZ/NuBIimNqpDzmk5XWhIkPgEG2mLKClZXV5y7CZ8Vkv2HaL4S4IEnSdUmS+gElAEdgKnBYkqQDwFFJkoKBW4Dr28PmAlMlSfqT5Gi+jR+rfIZar4ZYbkMsc1YxGsdkbW39uYvwWTHZb7j2CyE806wamuJzRR37JwF2H7VQbzHUejXEchtimbOK0XTlxcbGfu4ifFZM9hu3/R8LQ61XQyy3IZY5qxiNYzL2hIgm+43b/o+FodarIZbbEMucVYzGMWlDKI0Vk/3Gbf/HwlDr1RDLbYhlzipG45iMqX9WFyb7jdv+j4Wh1qshltsQy5xVjMYxxcfHf+4ifFZM9hu3/R8LQ61XQyy3IZY5qxiNY9LOqjZWTPYbt/0fC0OtV0MstyGWOat8FsckSdK3kiTtkCTpVx3bGkiSZP/2r+qHuqaFhdFExuvEZL9x2/+xMNR6NcRyG2KZs8pnsVQIcVOSpBhASrn+7ez1GcD3gBUQLEnSr+IDhKNky5bt357CoDHZb9z2fywMtV4NsdyGWOas8jldsELHuh+B8LeOKEmSJBuSZ7s/SrlTcHAwLi4u8rKdnR0uLi6oVCqSkpIAyJEjBxqNhoSEhOSLKRTkyZNH7qfNnj07ZmZmxMXFAckDixYWFvKylZUVVlZW8twBKysrrK2tiY2NRQiBpaUl1tbWxMfHo9FosLCwIFu2bPKymZkZNjY2JCYmolKp5OWkpCSUSiWSJGFra0tSUpIslmhra4tCoZCXc+TIkaFNNjbJcmiZsSk6Opr8+fP/p2x6n+8pNDQUW1vb97LJxLuJj483yB9MQyy3IZY5q3xpbcOUqsjw/8rIqRxTkyZNOH78uM4T5MyZM9Vyjhw5gGQBRBsbG/mHT0v27NkzXE57I6SNjEm7/X2X33U+0G+TlszalCtXriyV4Uu2KbNlsLW1TSWA+b42mdCNoY57GGK5DbHMWeVLC35IqYoMepSRs4KZ2Zdm6qfFZL9x2/+xMNR6NcRyG2KZs8oXYWkKteRjQLG366wBpRDi3oe4Rto3cGPDZL9x2/+xMNR6NcRyG2KZs8rnisorCZQDfpIkKTvJasnt3opPOkuSNB4YA/z9oa6ZmJj4oU5lkJjsN277PxaGWq+GWG5DLHNW+VxReY9IDnTQMjTFtkAg8ENfU5vd0Vgx2W/c9n8sDLVeDbHchljmrPJFdOV9Coypf1YXJvuN2/6PhaHWqyGW2xDLnFWMxlJj6p/Vhcl+47b/Y2Go9WqI5TbEMmcVo3FMxj4vxWS/4dovSdIQSZL+liTJSZKkPGm2zZAk6YIkSeclSaqQYn1LSZKevv3r9rHKZqj1aojlNsQyZxWjcUxKpfJzF+GzYrLfMO2XJKkmUEcIsQjYDzil2FYNWCmEqAEs4m1qdUmSJJLHcL8WQhQXQqz5WOUz1Ho1xHIbYpmzypc2wfajkfysGi8m+w3W/nbAtbefLwKrgFEAQohLKfY7AWhbTNWA34CekiRNEEL4pz1pVtRTdKlyKBQKwsPDAcNST4mKitJr05eqCKMt8+dST8mqTVnBaByTra3t5y7CZ8Vkv8HaXxg4+/azVglFF00AHwAhxEXgO0mSygK7JEl6KIRIJZWSFfUULSnHOiwsLNKpbBiCekrx4sVTHWcIijDW1tap1n9q9ZR/a9P7YDRdecbUP6sLk/0Ga39KNRSdSihvu/RChBAPU64XQtwBJgO1P1bhDLVeDbHchljmrGI0jknbLDZWTPYbrP2bgepvP1cBtqdQSkGSpMpAbiHEIUmSckmSZCtJUsrnOjew72MVzlDr1RDLbYhlzipG05VnwoQhIoS4IEnSdUmS+pGstO9IslLKYUmSwoCVQPjbMTRBcsqYyW9znQUC54QQVz9P6U2YyBpG45gMeIzhg2Cy33DtF0J4plk1NMXnUjoOcdGx7qNgqPVqiOU2xDJnFVNXnpFgst+47f9YGGq9GmK5DbHMWcXkmIwEk/3Gbf/HwlDr1RDLbYhlzipG45hMmDBhwoRhYDSOKW2Mv7Fhst+47f9YGGq9GmK5DbHMWcVoHJMxScbrwmS/cdv/sTDUejXEchtimbOK0TgmY5qcpguT/cZt/8fCUOvVEMttiGXOKkYTLm7ChAkTn5sHDx5w6NAhHj58CCRrOGo0Gr7++msaNmxImTJlPm8BvxCMxjEZU/+sLkz2G7f9HwtDrddPWW6NRkNAQADnz5+nbNmyNGrUiN69e/P48WMePnxIbGwsSUlJbN++nadPn9KqVSsaNGjwWcv8uTEax6TRaD53ET4rJvuN2/6PhaHW66cq98mTJ1m3bh2dO3emS5cu3Lp1i1WrVqFQKChdujSlS5emYMGCREZGIoTAwsKCgIAAdu3ahbOzc6pJtYZa11nBaBxTQkKCUb1xpMVkv3Hb/7Ew1Hr92OVWKpX4+PiQN29e/Pz8ePXqFRMnTqR48eKMGTMGc3NzNm7cyL59+7CwSP4ZFkJgZWVFzpw5efbsGb1792bx4sXkzZv3k5T5S8JoHJMJEyZMfApu377NrFmzGDZsGOXLl2fv3r0cOHCACRMmYGtry+LFi3n8+DFdu3alR48eXL9+nQMHDhAeHo4kSeTNmxeVSsWtW7fo3r0727Ztw9LS8nOb9UkxGseUNjeJsWGy37jt/1gYar1+jHILIVi8eDERERH4+voiSRLTp0+nVKlSuLu78+zZMyZOnMjff//NgAED2L9/P8uWLaN69er88ccf5MuXj5s3b/L48WOuX7/O69evuXjxIiNGjGDu3LkGW9dZwWgckwkTJkx8LC5fvsySJUvo2rUrdevWJSwsjKlTpzJkyBC+/fZbTp06xaZNm/D09ESSJCZOnEj16tXx8vKSW1iWlpZUrlwZW1tbcubMSb58+ShYsCCbNm1izJgxFClS5HOb+ckwGscUHx9vVG8caTHZb9z2fywMtV4/VLnPnDnD5s2bKV26NN7e3lhYWLBv3z6CgoJwc3PD1taWVatW8ebNG2bMmEFYWBiurq7Y29vz9ddfM2/ePBISEnByciI6OpolS5YQGxuLubk5OXLkoGjRoty4cYMePXqwY8cOg6zrrGA0jsmECRMm/i1CCG7cuMHOnTt58+YN3333HVOnTsXCwoLQ0FBmzpzJd999h6enJ2q1GmdnZ+rUqUPPnj25d+8eM2fOxNPTk+zZs+Pm5kbdunVp0KABGzdu5PLlywwfPhwrKysCAgJ48uQJBQsWpGTJkoSEhCCE+NzmfzI+i2OSJGkIoACKAjOFEJFptu8DvgWeAj8JIdT/9ppp89sbGyb7Ddf+jJ4XSZIaAHXeLgYKIS6/zW7rBNwBCgshPD5CmQAoXLgwoaGhAAb1w5nZ+0GlUnH79m2OHTvG48ePAShfvjz9+/cnT548ADx+/Jjly5djZWXF+PHjyZMnD48ePcLT05Phw4dTrlw5Ll68iL+/P97e3pibm+Ps7Ezz5s2pW7cuc+bMoVixYkyZMoVdu3Zx7Ngx/vrrLwoVKkRwcDBxcXGcPHmSo0eP8vvvv3+sKvmi+OSOSZKkmkAdIUQvSZJ+JvkBGpVieztgohDi9Ie8rpmZ0agv6cRkv2Han9HzIklSNmAGyVlrrYDgt5lrhwIPhBArJElylCSprRBi2wcsk/w5pX6bJEkG45zS3g8qlYq7d+9y/fp1bt68SUJCApIkYWZmRtmyZWnWrBklS5aU94+Pj2fTpk2cOnWKEiVKMHToUPLly4dSqWTevHlERETg5eVFtmzZCAoK4uzZs3h4eCCEwMHBga5du1KtWjWWL19OkSJFaNeuHatWrQLAzc2NjRs3cuHCBdq0aUOzZs1YvHgxdnZ2tGrVCisrq09aV5+Dz9Fiagdce/v5IrCKFI4JaAB0kCTpDDBICBGW9gTBwcG4uPx/kk47OztcXFxQqVSynlSOHDnQaDQkJCQAkJiYSL58+YiPjweS35jMzMyIi4sDwNraGgsLC3nZysoKKysrYmNj5WVra2tiY2MRQmBpaYm1tTXx8fFoNBosLCzIli2bvGxmZoaNjQ2JiYmoVCp5OSkpCaVSiSRJ2NrakpSUJOdZsbW1RaFQyMs5cuTI0CZtf3NmbIqKiqJAgQL/KZve53t68eIFuXLlei+bvhDaof95+REIF8neIEmSJBuS06+3B+xSHNMB+GCOKSWFCxcmPDz8Y5z6o6BUKrl79y6nTp3i+fPn8vdsbm7ON998Q8WKFWnevLnOFtXz58/Zu3cvt2/fxsbGhqZNm/L7778jSRJKpZI1a9Zw/vx5/vzzTypVqoRKpcLLy4vChQszadIkEhMTcXBwoH///nz77bds2LABCwsLfv/9d/bt20dCQgL9+/dn48aNKBQKXF1d8fT0xMLCApVKxf3793n8+DHffPPNp662T87ncEyFgbNvPyeS3D0hI4QYIUnSaMCB5IewadoTNGnShOPHj+s8ec6cOVMtayekhYeHY2Njk27wMO0NmHY5W7ZsqZatra0z3P6+y+86H+i3SUtmbcqVK1eWyvAl25TZMuTKlYv8+fPr3f9dy5+RjJ6XwkBEimXt9pTr0z1jkLWXO+13UrlyZSD5mcqdO7e8HBERQUJCwhfxchcbG8uDBw94+PCh3AKC5PumdOnSFChQgCZNmpAvXz4g9YuQ1rbQ0FDOnDnDrVu3UCqVFCpUiCZNmtClSxfZpgcPHhAQEEBoaCgtW7Zk0qRJWFtbc/jwYVatWsVff/1FjRo1ePjwIa6urowcOZJSpUqxdu1aXrx4QZ8+fbh48SLBwcHY2dlx6tQprl27xqhRo/D29qZatWoUKFAAMzMz1Go1iYmJJCQkfJaXu6x+T1nhczimMED7q5MTeJl2h7djSq6SJJ36UBdN+0NlbJjsN1j7M3peUm5Luf2dz1hWXu60XL16Vf5sZmbG8+fP5eXs2bN/0pc7hUIhz/u5ffu27KAsLS0pW7YsVatWpWPHjumuGRMTk8pOMzMzLl26xJkzZwgLS+6kKVy4MPXr16dPnz6puv5iYmIICgri6tWr5M+fn969e8uh3E+ePGH+/PmUKFGCBQsWYG5uzoULF1i2bBmenp7ky5ePvXv3Eh4ezujRowkPD2fp0qX4+vqSmJjI6tWr8fPz4+HDh6jVapo1a8bw4cNlOaKyZcvKtnzql7t/+8L6PnwOx7QZGP72cxVguyRJeYA4IYRSkiQzIYTmbf/5kQ91Ua3sh7Fist9g7df7vADHADcASZKsAaUQ4p4kSZuBGsAl7TEfq3Dat/SPjUKh4Pbt21y7do3bt2/Lb+JWVlaUK1eOihUr0rZt20y9gGg0Gu7evcvly5e5e/cukPwjXL16dTp16kShQoXSHRMaGkpgYCB3797FxsaGtm3b0qNHD3n77du3WbVqFblz55YVHlQqFf/88w9qtRo/Pz/MzMzYuHEjL168YNiwYSQlJeHk5IS7uztmZma4uLjg6OiImZkZM2fOxNvbm71791KxYkV57E6hUBjyS1am+eRPqxDigiRJ1yVJ6kdyf7gjMBU4LEnSAeCoJEnBwC3A9UNdNy4uzqAjs/4tJvsN0/6MnhchxAZJkpwlSRoPmAN/vz1sLjBVkqQ/SY7m2/iByyQHQBQrVow3b97I6/8tarWae/fucfXqVW7evEliYiLw/w6ocuXKtG/fPtMBAEIIHj16xLlz57h69SoqlQpJkihatCiNGjWiV69eqYI5tKhUKi5cuMD+/fuJiYmhUKFCtGjRgr59+8r7aDQagoODCQ4OpmzZstjb28utlpMnT7J27VoGDBhApUqV0Gg0+Pr6Urx4cYYNG4ZCocDe3p7x48eTM2dOFixYQKtWrShcuDBz586lb9++WFhYsHv37lRjSo0aNeLMmTP/pooNgs/yGimE8EyzamiKzxU/ZVlMmPjSyeh5EUIEAoFp9k/i/4MfPlaZgOSxmJRjd5lFo9Hw+PFjrl69yvXr1+XxDXNzc8qUKUPlypVp0aLFe3UHCSF4+vQpISEhXLlyRW5VlSxZklq1atGmTRtZcy5tubWO6MiRI7x58wYLCwuqV6/O4MGD5bFZLTdv3mTTpk3ExsbSqFEjWc0BkhUgVq5cSc2aNZk5cyaSJBEaGoqbmxu9evXiu+++IykpCXt7e0aMGEGJEiU4ciS5Y+iXX37h+vXrxMfHU6NGDdasWUPnzp1xcnICoECBAoSEhHDr1i3Kly//3nVuSBhs/8b7Ygwhlhlhst+47f9YZKZek5KSuHbtGhcvXkyVIK9EiRJUqVKF+vXrp0rvkFmeP39OSEgIly5dkseWvv76a7777jtatGiRYZeXJEmcPn2ao0ePEhkZiYWFBTVr1qRv376ymndKXrx4webNm3ny5Anly5dn2LBhqRzW+fPnWb9+PeXKlcPNzQ1LS0uEEKxevZqbN28ybdo0bG1tefnyJVOmTGH8+PF8/fXXXL58meDgYKZMmYJCoWDu3Ln4+fmRlJTE+fPnqVu3Lvv27cPKyoqpU6cyaNAgGjduzMOHDzE3N3/vOjMUTI7JSDDZb9z2fyzS1mtERASXLl3i4sWLcheflZUVlSpVokGDBpQqVUpn19m7CA0NlZ2QtnuvaNGi1KpVi6ZNm76zZaVUKjl37hxHjx4lKioKgDp16vDXX3/pdEQA9+7dY/v27bx8+VKea1SiRAl5u1qtZvv27Rw7doyaNWvi6uoq18e1a9dYuHAhnTp1kseiQkJC8Pf3x93dHVtbW27evIm/vz9ubm4ATJkyhdGjR2NhYYGPjw8DBw7E19cXIQSdO3fGysqKggUL8vr1azp16sSmTZveux4NBaNxTLGxsV9SCPAnx2S/cdv/MYiMjGT//v3cvXuX2NhYJEkiT548VK9enV69evHVV19l+bxnz57l3LlzxMfHI4SgcOHC1KpVi9GjR2dqrFChUBASEsKxY8eIjo7G0tKS7777jr///ps8efLo7IIUQnD16lV27dpFdHQ0pUuXpnv37hQsWDDVfmFhYaxdu5bnz5/Tpk0bvLy8ZGerjcorXry4rJ2nVquZOXMm2bJlw9vbGzMzM06dOsW2bduYNm0aZmZmzJs3jyZNmlC6dGnOnz9Pzpw5kSSJefPmIUkSdnZ2LF68mGXLltG+fXvOnTvHyJEj8fPzy1Idf+kYjWMyYcJE1klISODChQucPXtWnlCbO3duypYty+DBg9OFLmcWlUrFlStXOH36NE+fPkWSJHLnzs3333/PsGHDMp0YT6FQcPbsWY4dO0ZMTAyWlpbUrl2bAQMGkDt3br3HxcbGcuDAAc6cOYNGo6Fy5coMGjQo3TEqlYrdu3dz7NgxChYsSNeuXSla9P+nh718+ZJ58+aRI0cO7O3t5fq4efMmc+bMoX///lSpUgWALVu2cP/+faZPn44kSfj7+5MnTx5+/fVXIiMjWbZsGX5+frRp0wa1Wk2fPn346quvyJcvH7/99htFihSRM90WK1YMO7uPOpz4WTAax2TsXTkm+43b/vdBo9Fw/fp1Tp48KevDZc+enRo1atCtWzcKFCgg7xsdHf1eTunp06ecPn2aK1euoFarsbCwoHLlyrRq1YrixYtn+jxJSUmyI4qNjcXKyoratWszaNCgdMEKabl9+zZbtmwhKiqKHDly0KhRI1xcXHSO2dy8eZMNGzaQmJhI8+bNcXd3T9UVef/+fZYtW4aNjQ3Dhg1LNWHXz88PW1tbfHx8sLS0RKlU4ubmRqVKlRgzZgwAq1atwtzcnK5du6JWq5k8eTIuLi6sWrWKwMBAcuXKxbRp01i8eDG9e/dGoVDw+++/s2fPHmJjY1mxYgW2trYMGjQo03VnCBiNYzKG2P+MMNlv3PZnRExMDGfOnOHMmTPExcVhbm5OxYoVadq0KSVKlMhwTCijelWpVFy8eJFjx47J2VmLFStG3bp1adu27XvNLUtKSuLMmTMcP35cdkTff/89Q4YMeadjTExM5PDhw5w4cQKVSkXZsmXp0qVLKu27lNy8eZNt27YRGRlJ+fLlGTlyZLprnDt3joCAAEqUKMH48ePl4A0hBBs3buT06dOMGDGCr7/+GkgWevXw8GDUqFF88803CCGYO3cu+fPnp3PnzgghcHFxYcCAAYSFhTF0aHLg5Zw5c+SU6kWKFGH79u106tSJ9u3b88cff1C4cGE8PDxISkpi5MiRma7PLx2jcUyxsbFG/eNkst+47U/L5cuXmTRpEpAs41OnTh2GDx+e6a4zLSnrNSYmhtOnT3P69GkSExPlkOvu3bunamVlBoVCwZkzZ1K1iOrUqcPQoUMzFcH38OFDdu/ezdOnT7G2tqZ+/fo4OjrK4eKvX79Otf+NGzfYtm0bUVFRsnp42qAIpVLJli1bOHv2LNWrV2fq1KmpUp7v37+fHTt20LFjR7y8vIBkR7V06VKeP3+Ot7c32bJlQ6lU4uzszG+//Ua9evUQQjBt2jRatGhBsWLF+O6774iLi6NTp05069aNMWPG4ObmRkxMDEePHsXPz4+rV6/SvXt3Lly4QPbs2Vm6dCkJCQnY29tnKbjkS8NoHJOhqB5/LEz2G7f9aSlSpAguLi7/SnX9xYsXBAYG8ujRIzQaDTlz5qRu3bqMGjXqvRPaaYMVjh49Ko8RZbZFpD3++PHjHDlyBIVCQcmSJWnVqpXcYkmLNq/S9u3biYyM5Ntvv2XAgAE6I/SePXvGypUriYmJoX379nTq1CnV9vPnz7N69Wp+/fVXOaU6JHfz+fn50b17d/766y8geSxKq5lXpkwZhBBMnz6dX375hRo1atCqVSvu379PlSpVWLp0KcuXL6dDhw5ky5aNtWvX0qFDByRJYtOmTUyePJl9+/bh7OzMN998g7+/P48ePWL+/PnvVfdfIkbjmFK+2RgjJvuN2/60aIVB34eHDx9y8OBB7t27ByQ7t2rVqtGnT5/3nlOjVCplR6SNmsvsGJGW58+fs3v3bu7fv4+lpSU///wz9vb2GbaMr1+/LoeAV69enQEDBsh5lVKi0Wg4dOgQe/bsoUiRIvTv3z9dlOGJEyfYtGkT1apVY8aMGXLXZGJiInPmzEGtVuPp6SmXZ//+/ezdu1fObKtSqZg0aRLt27enZs2adOrUiX379pEvXz62bdvG06dPefXqFX379iU2NpZz587x559/Eh0djSRJ5MyZk5iYGPz8/Fi2bBk5cuQgJCSEHj16MG/evCwHpHwJGI1jMvZuHJP9xm1/Vnj+/DkHDx7kxo0bQLKCQsOGDenTp4/cKkhMTMyUU9JoNFy5coX9+/fz+vVrLC0tqVWrVqqEe+9CpVJx6tQpDh48SEJCAkWLFqV58+Zya0Qf165dY/v27URHR1OhQgUGDhxItmzZdE4fuHfvHgEBAURHR/Prr7/i5uaWyoELIThw4AC7du3ihx9+YMaMGbL9Qgi2bt3K8ePHGTx4MKVLl5bL7eXlRfHixfHwSM7ZGBcXx8SJExk8eDBlypShb9++bNmyhZw5c7J//37y5s2Lo6OjHA7u6ekpB0zMnj2bv/9OVp+6evUqvXr1QqPRcPjwYe7du8fDhw9p2rQpgYGBeudofekYjWOKj4836nksJvuN2/7M8OrVKw4dOsTly5cRQlCkSBEaNmxIt27d9I5bZFSvT58+JTg4mDt37mBmZkaVKlXo1avXe0kYhYWFERQUxK1bt7CwsOCHH35g7NixGc5lEkJw7do1duzYQXR0NBUrVmTw4MGpQsAjIiLkckdHR7Nx40Zu375N6dKlGThwYLofdI1Gw86dOzl06BCNGjXC29s7VZ1cu3aNRYsW0apVK3l8CeDKlSssXLiQoUOHyjJC9+7dw9fXl0mTJpE3b166detGQECAnFSwcuXKjBo1iilTpmBhYcHBgwcpU6YMuXPn5tGjR1haWlK0aFGuXLlChQoVgOTW2/jx47lx4wZr167l8uXLtG/fHjc3N3744YdM1/eXgtE4Jq1svLFist+47ddFVFQUhw4d4vz586jVavLnz0+DBg3o0KFDprv5UtZrdHQ0hw4d4uzZs2g0GooVK0aTJk1StbDehVqtJiQkhP379xMbG0vBggVp3ry5XrFVLVpntH37dmJiYqhUqVI6Z5QSpVJJcHAwBw4cwNbWlo4dO6YSaNUSGxvLqlWrePDgAS1btkznkB4+fMiCBQsoWbIknp6ecpexQqFg5syZZM+eHT8/P7lVFRQUxMmTJ/H19UWhUNC6dWv27t1Ljhw55FbYxIkT5dDz58+fExQUhLu7O+Hh4fj5+TFt2jQAVqxYwfTp01Gr1XLk3tWrVxk0aBCRkZHs2bOHYcOGMWbMGLp06WJQQRFG45gMOO3BB8Fkv3Hbn5b9+/djY2NDgwYNaNmyZZbqR6VSERISwvnz54mLiyNnzpzUr18fJyen9zrf69ev2bNnD1evXsXMzIzvv/+e4cOHvzP6TqvUsGPHDmJiYqhcuTJDhw7NcIzq5s2bbNy4kYiICFq0aMHUqVN1dkU+efKE5cuXo1ar6dGjR7qssWFhYcydO5fcuXPj6OiYKprx9OnT+Pv7M2zYMMqWLSvXla+vrxx0EhYWRps2bThz5gz58uUjODiYGjVq4OrqSvv27SlXrhxKpZLp06czY8YMJEli8+bNtGvXDhsbG06dOkXNmjWxsrJiy5YttGjRAoBbt27Ru3dvgoKCaNiwIdWrV+f27dvMnDnToMLJjeZpNfZuHJP9xm1/Who1asS4cePe+7jQ0FCCgoK4ffu2HA6eGSeSEm3rZvfu3bx584avvvqKZs2a0bVr13e+1QshuHLlCjt27CA2NjZTzujNmzesX7+eBw8eUL58eYYPH46VlZXOe+L06dNs3ryZokWLMmzYsHTjX5GRkcybNw+1Ws2IESPkCbWQ3BXq6+vLt99+K+dfguRWlbe3N4MHD6ZChQpcvHiRli1b8vz5c4oVK8aBAwcoV64c7u7uNGrUiNq1ayOEwMnJiREjRmBjY8PTp0958uQJAwYMQK1Ws3r1ambNmoUQgqNHj+Lj40NUVBS2trZIksSlS5cYPHgwFy9epGrVqpw5c4aIiIhU5f2SMRrHZOxjDCb7jdv+rKJWqzlz5gwHDhwgLi6OQoUK8dtvv9G7d28kSSIiIiJTTkmpVHLkyBEOHz6MSqWicuXK9OvXL1OD80IILl++zM6dO4mNjaVKlSrp1L3TolKp2LNnD0ePHiVPnjx06tRJDkaA1GNMSUlJbNy4kQsXLvD9998zbdq0dC2+8PBwFixYgFKppH///qnkiNRqNYsXL+b58+eMGzculTNbu3Ytd+7cwcvLC2trazZt2kSPHj1ITEzk+++/Z9u2bRQqVAh3d3fq1KnDTz/9BICvry+tW7embNmyKBQK3NzccHBwAGDevHn0798fMzMztm3bRqtWrQBYvnw5PXv2BJK7VXPlysWTJ0/47rvvqFmzJjdu3JDP/6VjNI7J2McYTPYbt/3vQ3h4OHv27OHatWuYm5vz/fffM2LECJ0OKKN6ffPmDbt37+bq1atYWlryyy+/4OjomCl5KCEEly5dkp1RtWrVGD58+DtDoK9cucLmzZtRKBQ0a9aM6dOn6xwv02g03L9/H39/f5KSkujQoQPdu3dPt19oaCgLFy7EzMyM/v37pxN0PXr0KBs2bKBv375Ur15dXv/q1StmzJhBkyZN6Nq1KyqVigkTJuDu7g5Ar169WLBgAZaWlkyaNInWrVtTp04dAPz9/SldurQctDBt2jTGjBmDtbU1Dx8+JDo6mqpVq8qKFj4+PqhUKp4/f06JEiW4e/eurIJ+8+ZNunbtyv379w2qO9twSvov+TcTCf8LmOw3PPslSWoA1Hm7GCiEuJxmezdgGFAQsBNCbH67vhBwErACtgghhmV0HSEEFy5cYM+ePcTExJA/f36aNWuWYTSelrT1evfuXXbt2kVYWBh58+alefPmmeqi05bj8uXLcjddtWrVGDFixDud0atXr1i/fj1PnjyhcuXKjB07Vq+ChVqtJjAwkODgYL799luGDx+uM0Di6dOnLFq0iOzZszNkyJB0c5hu3brFwoULqVu3rpwQUGvDunXruHbtGo6OjuTOnZunT5/SuXNnTpw4gZmZGR4eHowZMwaFQoGdnR1//fUXlSpVAmDjxo0oFArZSfr7+/P9999TunRpwsLC8PT0xNvbG4C5c+cyZMgQIDkQolu3bgCsWbOGkSNHIoRArVZjZmbGnTt3qFWr1ju/gy8Fo3FM7zsT/b+GyX7Dsl+SpGzADOB7kh1MsCRJv4q3EhaSJFkCKiHED5IkVQGCgc1vD/8bqCKEiNN3frVaTXBwMEeOHEGtVlOjRg2GDBmS6cmtWrJnz05ISAhBQUHExcXJOnSFChXK9DmuXr0qzzPKrDNSKBQEBgZy8uRJWW8uZa6ktISFhbFy5UrCw8Np2bIlHh4eOkPOHz58yOLFi8mTJw+jR49O57RevnzJ7NmzKViwINOnT081P+7Jkyd4e3vTtm1bunbtCsDu3bvp1q0bkZGRFCpUiICAAH755Rdev37N5MmTsbOzo1SpUgBs3ryZqKgoeV7WwYMHiYyMlJ3UwoULGT58ONmyZePhw4coFArKlClDXFwcd+/e5a+//iIuLg6lUkmuXLk4efIk33//vVzutK29LxmjcUyJiYlGPcZgst/g7P8RCH/riJIkSbIBSgCPAIQQSiDg7ecrkiTdBpAkKTtQHxgqSdJywFEIoUp78uXLlzN16lR52c7OjlatWhETE0NSUhIAOXLkQKPRkJCQAPy/c9dq4p08eZK4uDhq1qxJz549yZcvHxYWFsTFxREeHo6VlRVWVlZy2nQrKyusra2JjY3l1q1b7Nmzh/j4eMqUKUPXrl3Jmzcv2bJlIz4+nvDwcMzMzLCxsSExMRGVSoUkSbIyuFqtpkmTJri4uKBQKFAoFISHh2Nraysva1uCQUFB5M6dmz/++IP//e9/aDQawsLCsLW1lW06ceIE27dv5+uvv2bEiBFIkoRSqSQmJgYLCwtevXrF8uXLUSgUDBkyBEtLS7muLCwsmD9/Pi9fvmT8+PHkzZuX58+fM336dObMmQNAgwYNmDt3LgULFuTixYvMmzeP8ePHkytXLhITE9m0aRNhYWH07t2bpKQkLl68SGBgIOPGjSMxMZE9e/Zga2vLV199RVxcHG5ubkyePJnw8HAWL15Mr1695HGwrl27Eh8fz8aNGxkzZgyRkZGo1Wo5XYm1tbX8PWm/F33fkxACS0tLrK2tiY+PR6PRYGFhIX9PGo0m3fekXU5KSpLT278vRuOYVKp0z6ZRYbL/y7VfkiRn4Js0q7sBa1MsJwJFeeuY0hzfAJgJIIRIABpLkpQbWAmMA6anPeavv/7C2dlZZ3nStlZy5MiBQqHg4MGDHD16FICffvoJZ2dnuesvJWlbItoXgjt37rBlyxYiIiKoUKECo0aN0qn6kPYFIjIyknXr1vHixQtq1qyJi4tLqmuk3T8pKYn169fz8OFDfvnlFzw9PdOFhCckJJAvXz4CAwM5cOAAtWrVwtvbO510lUKhYMWKFdy7d48BAwbwv//9L9V2bWj4n3/+SY0aNQC4cOEC3bp14+bNm5iZmTFt2jTGjRuHmZkZe/bs4dSpU8ydO1cu08qVK1GpVIwePRpIbnmtW7cOLy8vzM3NuXfvHmfOnGHUqFHkz5+f2bNnM2jQIIoVKyanqq9QoQKxsbEkJCRQsWJF3rx5Q548eShatCh79uzht99+y/T3pCWtWkra7e+7/D4YjWMyxDGGD4nJ/i/XfiGEc9p1kiQtA4amWJUTeKljv3xAcSHEqjTnjJIkaQCQZUXP+Ph49uzZw5kzZ7C0tKRhw4Y4OzunGkTXvnXr4/79+2zevJnw8HDKli1Lv379MhWynJiYyPbt2zl37hyFCxemc+fOqSLhdHHhwgU2btxItmzZ6N69e6oovLTn9vf35+nTp7Ro0SLdpFlI7ur09/fnypUr9O7dW5YA0hIeHo6vry/lypWTQ8NVKhXu7u44OzujVqspXbo0/v7+1K1bFyEEc+bMIXv27Dg5OcnnmTVrFsWLF+f3338HkmWgPD09ZWcaHR2Nr68vvr6+xMTEcPXqVZRKJdWrV0cIgZ+fnxxQsWDBArmcS5YskbsEDx06lKp1bAgYjWMytDGGD43JfoOz/xjgBiBJkjWgFELcezu2lEMIEfnWKTXVOiVJkooKIZ5LkiS97QIsCOx6n4vGxcWxY8cOLl26hI2NDc2aNZPTf+tCV70+fvyYjRs38vLlS0qXLk3v3r0zlfZCCMHZs2fZsWMHkiTRpk0b/vjjjwwDJxISEggICODq1atUr16dyZMn69VFDA8PZ+nSpURFRdGxY0e5hZMSjUYj51Pq1q0bvXr1SrVdrVazdOlSnj59ytixY+Vw91u3btGjRw9CQkIAGDp0KB4eHtjY2BAdHY2zszOdOnWibt26sq2urq78/PPPNGzYEEgeB3Nzc2PGjBlYW1ujVquZNGkSLi4uWFpaolarWbhwIb6+vgCsX7+etm3bki1bNp49e0ZiYiIlS5YkISGBN2/eULRoUV6+fEnevHnfW2T3syOEMLg/Jycn8b5ERka+9zH/JUz2v7/9gLP4jPc50AIYDzgANd6u6wTMBooAl4CQt38PgP8BTd6udwK66zt3ymcoPj5ebNy4UYwfP15MmTJFXLhwQWg0mveq1/DwcDF//nwxfvx4MWfOHBEaGprpen7+/Lnw9vYWdnZ2YuPGjSIxMfGdx9y5c0e4uLiISZMmiUuXLmW47+3bt4Wjo6OYNm2aePHiRapya9FoNGL79u1ixIgR4ujRozrPc/LkSTFs2DBx/vx5eZ1SqRTe3t7CyspKAKJIkSJi37598vZLly6JYcOGiVevXsnrEhISxNixY0VISIi87tWrV2Lw4MEiNjZWLs/EiRPF9evX5eUhQ4aIly9fCiGEePHihXBwcJCPt7OzEzExMUIIIXx8fMTdu3eFEEJ4enrKNn8usvIcGU2LKauDcP8VTPYbnv1CiEAgMM26AN4GPQDVdBz2QM/6VKhUKnbs2MHJkyextramefPm/P777++lpxYfH09AQAB3797lq6++omPHjnq7z9KSlJTEjh07OHPmDEWKFKFr164UKVIkU2U+fvw4ZcuWZdSoURlG7504cYItW7ZQunRp7O3tU4WQa+8HIQTBwcEEBgbSqlWrVPmUtDx8+JC5c+dSrVq1VIoOFy9epG/fvly4cAFInps0c+ZM8uTJgxCCVatW8fLly1THvHz5EhcXF8aPHy9HEb548YJp06bh5uYml3HGjBm0bt1aFmmdN28erVq1okCBAmg0Gtzc3GTNvCNHjlCzZk1sbW15/fo1UVFRlClThoSEBF6/fk3hwoUz9Z18SWTZMUmSZCOEiP+QhfmYGJKA4bsQQhAaGsrt27cJDQ0lMjKSuLg4LC0tsbW1pUyZMlSqVCnV3Iv/kv1Z4XPa/yU+K0ePHqV58+ZMnTr1vcbfVCoV+/fv59ChQ2TLlo169erRr1+/TM9TOn/+PNu2bUMIQZs2beTEdxnx4sULVq5cyZs3b2jdujWenp56j1Gr1WzdupUTJ07w008/4e7urrcbKzAwkL1799KkSROdDik6Opp//vmHbNmy4ezsLHdbxsfH4+LigpeXFxqNhqJFi7Jw4UJatmwJJAdrTJs2jd9++y1VV+CVK1dYvHgxHh4e8mTlBw8e4Ofnh6enpxyMMH/+fKpXry5PuA0ODsba2pratWvL23v27ImtrS2JiYls3LiRmTNnAskpMbRp2ZcuXapTmNYQyLRjkiSpEtAK0HbgVia5W+GLRnuz5c6dm6ioKMDwsplqVaAvXLhAREQEL168ICEhASsrK5RKJfHx8SQmJpKYmIhSqSQxMREhBDY2NnTq1Inx48e/l5bZf5FPab8hPCsNGjTItDyNeDv2s2vXLlQqFY0aNZLFT5OSkt7pWMLCwli3bh3Pnz+nZs2aODg4vDNiSwjBoUOHCAoKolChQvTt2zfDcaq4uDhWrFjBgwcPaN++vTwJVdd5d+zYQXBwMK1bt9bpkFQqFcuWLePhw4cMHTo0VUtu//79/PXXXzx69AhJkhg+fDhTp06VW27Hjh1j06ZNODo6pnox3LVrFxcuXMDHx0d2lNevX2fJkiV4enrKahhr164lX758NGvWDEie43Xq1CkmTZokh5ErFAp5sqyXlxdjxoxBkiTu3LlDrly5yJ8/PwkJCTx9+lQWkTU03qfFtPTtX+Lb5XePZupBkqQhgILk8NeZQojIFNsynO3+nteRP+fJk0d2TJIkffHO6eHDh2zfvp2HDx/y6tUrLCws0Gg0xMbGki1bNpRKpTxXw8LCAkmSyJ49uxwxFRMTI3cRzJw5k6NHj8r5YIyRpKSkT5ks8IM9K5+Thw8fsn79et68eUPt2rWZMGGCztBsXfWqUCjYtWsXJ0+epFChQnTp0oVixYq985pRUVGsXr2ahw8fUr9+faZPn57hwH1oaChLly4lISGBXr166f0h1mg0bN26laNHj9KmTRumTp2qU/EhKCiIoKAg/vzzz1SReC9fvmTcuHGsWLECgIoVK7J06VK5VaNUKvH29qZAgQL4+PjIvz0ajQZvb2+KFi2Ko6OjfL7Tp0+zbdu2VIkG161bR1JSEn369JFtW7JkiZzf6cWLFyxfvhwfHx8ATp48SdGiRSlZsiRCCGbPno2npycAixcvfmcCxS+Z93FMe4QQC7QLkiTtycoFJUmqCdQRQvSSJOlnkgdpR73dluFs93+DIaQZjo2NZePGjVy5coX4+HjMzMxISEjAwsICIQQKhYJcuXIRERGBjY0NsbGxSJKEJEmYm5sjhCA+Pp6oqChiYmLkWeAJCQlUqFDBqPXiFArFp7zcB3lWPgfae/D69euUKlWKfv36pZPjSUnaer127RobNmxApVLJCguZ6ea7ePEiGzZsIHv27HTv3j3dfKG0XLt2DX9/f/LmzUv//v31Jh9Uq9Vs2rSJU6dO0a5dOzmiTTvZVMuVK1dYunQpjRs3TtWKUqvVzJ8/nwkTJhATE4OVlRVOTk7Y2dnJc57u3buHj48Pw4YN49tvv5XPGRERgYuLC3/99RdVq1aV12/dupV79+4xbdo0+Tpr165FoVDITik+Ph5XV1fZcanVaqZNm4aXlxdmZmbExcWxbt06OcPtunXr6NChA1ZWVrx+/Zrw8PB0qToMifdxTKckSfIGot4uVwI6Z+Ga7YBrbz9fBFbx1jHxjtnuWoKDg3FxcZGX7ezscHFxQaVSpZq1XrhwYfmGzZMnDwULFpRlOeLi4uQvGD79bGhJkrC1tSUpKYkbN26wYcMGkpKSSEpKQq1Wo1Kp5K46SZJISEjA1taW6OhorK2tiYqKwtLSkvj4eBQKBc+ePSMiIoLIyEidrcGcOXMSHR39yWzS/mClnImv/V7Sfk+61AXi45OHZLJnz/5Bvqfo6GiA97LpX/ChnpVPgjYt9969e7GxsaFDhw7yD2RmiIuLIyAggBs3blCxYkXs7Oz0atWlJDExkQ0bNnD58uV3hnpDcjfcwYMH2bVrFxUrVmTy5Ml6uwRVKhXr16/n/PnzdOjQQW5lpOXRo0fMnz+f//3vf8yYMSPVBNuTJ08yaNAgLl26BECzZs2YPXu2/IOv0WhYtGgRERER+Pr6phKnvXDhAitWrMDFxSXVJGJtDidtmnRI1rZTqVT07t0bSHb29vb2qfI8eXh40KdPH7mV5+rqir29PZIk8ebNGy5fvizLIM2cOZMRI0borUdD4H0c0wxgLqCdUZf5/MipKQycfftZO5s95baIFMs6Z7s3adKE48eP6zx5ypZRaGgooaGhwP+PMb18mTxHUfuFp539/KlmQwshOHLkCDt27ECIZLFFbTecJEmyc8qZMyfx8fHky5eP6OhobG1tiYuLI0eOHISFhfHgwQOeP3+eqjWUPXt2zM3NUSqVCCGYMWMGAwYMkK/9sWd4v+t8oFtdICVp58f82++paNGiqfb5mLPW+XDPykfl7t27BAQEEBMTw6+//oqrq+t7KVCfO3dOntDasWNH/vzzz0wdl1LV+48//pBTNehDqVSyYcMGzp07R4MGDfD09NQbsKFSqfD39+fy5ct07txZp2I4JM9/cnZ2JmfOnOkS/b169Yrx48ezbNkyAIoVK8bs2bNp27at3MLR5ljq1auXHJSgZeXKlbx+/RofHx+5nGq1milTplC/fn0aNGgg77tqVfK8aG2QhFqtZsKECYwaNUoe29q0aRPly5fnu+++A2D16tU0atRI3u7h4cHYsWOB5JZkkSJFMmzlGgLv45gChBBztQuSJO3O4jXDAO2vTtrZ7Cm36dqeZXLmzCmPMX1ujhw5wubNm8mXLx9KpZLs2bOjVqsRQmBmZpYqlFWpVGJubk58fDzW1tbExcXx8uVLrly5QmRkpHzO3LlzkzdvXnLkyEF8fDxxcXEIIVi8eDFt2rQhOjra0LTiPigKheJT2v+hnpWPRnBwMEWLFmXw4ME6ZYH0ERUVxdq1a7l//z41a9Zk9OjRmZo8q1ar2b17N4cPH6Z06dJ6Vb1TEh0dzbJly3j+/Dl//PGHrJ6tC6VSyerVq7l27RrdunWTWx9piY2NZd68eURFRTFq1KhUP+DaCaz29vZER0djYWHBuHHjcHBwkB2XEIIlS5bISt8p76nY2FhcXV1p3Lhxqmi8mJgYJk2aRP/+/alYsaK8fs6cORQqVIiOHTvK53Z0dOSvv/6SuzJPnz7Nw4cPGTNmDNHR0Tx8+JAnT57Qo0cPALZs2cLPP/9M/vz5EUKwcOFCeUzKkHkfx1QoTfdERaBLFq65GRj+9nMVYLskSXlIfrvUOds9C9cAkr9o7RtOnjx5ePr0qbz+c3D27FnWrl0r/xCo1Wo0Go3ch6yd3a39b2FhIXcvmZmZcfv2ba5duyZ3S1laWlK8eHEKFy6MpaUliYmJxMbGotFoKF68OHv37pUfvE88xvLF8Ynt/1DPykejSZMm9O/fP1P7CiE4ceIEu3btIkeOHHTp0oUyZcoA6cdq0vLy5UtZ1bt58+ZymvCMePLkCcuWLUMIQZ8+fShZsqTefZOSkli5ciV37tyhe/fuelttCoWCJUuW8OTJEwYNGkT27NlTOaXTp08zcOBALl68CEDjxo2ZM2cO5cqVk/d59OgR3t7edO/enX79+qU6//nz51mxYgUODg6plNXv3buHr68vTk5OsgMXQuDu7k6tWrVo0qSJvM7V1ZWOHTvKzuvevXts3bqV6dOTpQ6joqKYPXu2PK4UGhpKSEiIPJ9p1apVdOrUKZ3enyHyTsckSVI+IUQEyd1q1wGtGmaWNNSFEBckSbouSVI/ksePHIGpwGEhxAZJkpwlSRoPmJMs3/+v0Dqh8PBwvQOkH5tnz57xzz//kCdPHtkRaTQaeYxDrVbLwQvaVlJKHj9+zKlTp2SHZGNjQ9myZWXtMG2YOCQ/qO3bt08VGWTi0/Chn5XPzZs3b1i9ejVPnz7lxx9/lKVxMkNISAibNm0ib9689OrVK1OTPC9dusTatWspWLAgw4cPz7All5iYKId09+rVK52WnRaNRsP69es5d+4cffv2lX/0tQ41NDQUBwcHuduuSJEi/PPPP6kmG2s0GrnlljZdhhBCTrXu6+ubqosxODiYo0eP4uvrK9ebWq1m8uTJtGnTRo7oE0Lg5uZGgwYN5O66169f4+fnJz/HWmfm4OAgB0N5eHjg6uoKJIfk3717N52EkqGSmRaThyRJR4HbQMpfzCz3iwghPNOsGppiW7rZ7h+CzAzGfmgSEhL4559/iImJQZIkFAoFZmZmshNKeRNrW01WVlYkJSVhZWXF8+fPOXHihDxOljNnTipVqsTXX38tR+kplUrMzMzQaDQoFAr++ecfmjdvnq4sn8P+L4lPZP8Hf1Y+B2fPnmXLli3kzJmT7t27Z5jnKK2awqZNmwgJCaFWrVq4uLi8M1utEIJ9+/YRFBRE1apVmTJlSobHxMfHy1p1ffr0SRUFl/a8QUFB7Nmzh86dO8uBAVosLCzkH/a4uDgsLCwYM2YMkyZNSmXTlStXWLhwIT179kwXfv3q1SumTZtG9+7dU40zCZEs2Gpra8uUKVPk9UlJSTg4ONCvXz9Z0UEIwbRp01LNK0tMTMTJyYlp06bJDm3WrFl06tRJDrlfunQpHTt2lOfneXl5MWnSpAzr2pDIjGOqpme/qjrWfbF86rQHBw4cYNu2bZQsWZKkpCRy5MhBUlKSHJSgbS0BcospMTERCwsL1Go1Bw4c4Pr160DyQH61atX45ptv5BaVtsWlDZLInTs3GzZs0KvA/CWnffgUfCL7DfZZiY+PZ926ddy4cYPatWvj7OycqRToKpWKsLAwVqxYQWRkJL///jtdury711KpVBIQEMD58+dp3LgxXl5eGbbw4+LiWLJkCaGhofTt2zfDUOhTp06xbt06mjZtmm4CrRCCbdu2MWLECB4/fgxAy5Yt8fHxSdVtFxcXh6+vL3nz5sXX1zddUMjBgwfZvXs3U6ZMSZVcMSEhAScnJ9q2bZtqAnNERASTJ09m3LhxsqMXQjBlyhSaNWsmi7sqlUrGjx+Pvb29PAa3a9cuvvrqK2rWrAkkR/xFR0fL59+xYwe//vrreyd5/JLJjGPqJoS4m3alJEkVPkJ5PhpJSUmfZC7T69ev8fLyomjRomg0GqytrUlISKBgwYIkJCSQPXt2VCoV5ubmWFtbI4SQJ9gJIbh27RqHDx8mISEBMzMzqlatSqVKleR9tAnTtKjVamrXrs306dMz7Gb5VPZ/qXwi+w3uWbl16xZr165FCEHnzp3fS8Lm3LlzrFy5kmLFitG7d+9MZa2Njo5m+fLlPHv2jE6dOumNmtMSExPDokWLeP36NX/99VeGWnw3btxgyZIl1KxZM1VEnJYrV64wfPhwDh06BED58uWZNWsWTZs2TbXfzp07OXjwIKNGjaJ48eKptiUmJuLp6UmpUqXSzdF6+PAhnp6eTJgwIdVx9+7dw8/Pj2nTpsnORiQL6dK6dWu5taXRaHBwcGDYsGHy8Tdu3ODcuXNyUkCNRsPy5ctTzcc6duwYHh4eGdajofFOx6TrQXu7/saHL45hs3nzZs6cOUOePHl48+YNuXPnlufjaCfL2traEhsbmyqcW6VSkZCQwPbt23n27BkAhQsXpkGDBuTNm1ee36R90MzMzFAoFEiSxIABA/jjjz8+m80m/h9DelZu3LiBnZ0d5cqVY+zYsZmWbNJ21507d47vvvuO8ePHvzNPEiSPsy5duhS1Wk2fPn3kdOL6iIqKYtGiRURFRdGvX78MAyCePHnCvHnz+Prrr5k+fXq6ll54eDiTJk1i4cKFaDQacufOzfjx4xk7dmyql7mnT5/i6+tLgwYNdEoaXbx4kSVLljBmzJh05d+5cydnzpzBx8cn1VSF48ePs2vXLnx8fORraTQaJk+eTPv27eUxJSEEkydPpnfv3nJr8NWrV8ybN0+egyWEwMXFhcmTJ2NmZiZ3A+pL+GjIGI26+MccY4iOjmb69OmUL1+euLg4ypUrx5UrVyhWrBixsbHY2trKc5OyZctGTEwMlpaWWFpaolQqefDgAcHBwXJI86+//pruTc3c3JyEhAR5zpONjQ2TJk2S+6rfhWmMybjtT4utrW2mIuS0hIeHs3z5ciIiIlJ112knRuvj6tWr+Pv7kz9/foYMGfLOJIGRkZEsWLCA+Ph4/v7773TPQUoiIiKYM2cO1tbWTJgwIV2LWKlUMnfuXCZPnkx0dDRmZmYMHTpUFmTVOgqVSsWCBQt48+YNU6ZMSXevqNVqZs2ahYWFBTNnzkzVElOpVHh4eFC2bNlU40mQnC8pNDQ0lcKDQqFg4sSJ9OzZU1aD0DqYtm3bUrlyZSC5a9XJyQkPDw+5G9Hf359OnTrJ0YTLli2jQ4cO7wy7N0SMxjF9LDmeEydOsH79er799lsePnxIgQIFiI+PR61WkytXLh4/fkyxYsWIiYkhW7ZssoPJmTMn4eHh7N27lwcPHgBQqlQpmjZtKk8G1o4fWVhYyG9ISUlJ5M+fH3d39/fqUzZmOSIw2Z+Wr7/+OlNO6ebNm6xevZocOXLw559/pouu01WvKRUaKlWqhLOz8zt1CiMiIli4cCFJSUn0798/wxQYcXFxzJ8/n9jYWAYPHqxzHtXu3bsZMWIEd+7cAZLDv/38/KhUqZJ8DoAzZ86wevVq/v77b6pUqZLuPPfv38fHx4cBAwak267Vohw2bFgqHUohBD4+PpQqVSqVAkNcXJw8eTal5JKvry8///yz3KWnUqlwcHBg8uTJsrM9ePAg5ubm8ljU7du3CQsLM1j18HdhNI4pISHhg741q1QqfHx8yJ49u5xu4vXr11StWpW7d+9SoEABWcvOxsaGsLAwbG1tSUhIQKlU8vLlS9auXUtcXBxWVlY0btyYYsWKYWNjI8sBqVSqVPOZJEmiVq1ajB49+r1ThX9o+w0NY7f/fdA6lt27d1OuXDkcHBz0ZgBOWa9qtZrNmzdz8uRJGjZsmKFCg5bw8HAWLFiARqOhf//+GY5TKRQKli1bxqNHjxgwYIDO7r1bt24xatQodu9OntP8v//9Dz8/P1q3bp3KEYeFhbF8+XJKlSqVKl9SyjpYtmwZL168wNvbO51jPXjwIEFBQcyYMSNV3SQkJDB58mQ6dOggOxFIdryTJk1i8uTJqWz08fGhSpUq1K9fX76us7MzgwYNkl8C7t27x/79+2Unl5SUxMyZM+X5TP9FjMYxfUhevnyJq6sr9evX58iRI1SsWJGHDx+SL18+JEkiPj6esmXLcvfuXfLlyyeHcufPn5/nz59z+fJlTp48iRCCIkWK0KVLFyRJIiYmBkAWZtVoNAgh5Ai+jh070qJFi89svYlPRWaU9iVJmgr0ATRAA5Gcfl2ven9GKBQK1q9fz6VLl2jQoAEeHh6ZegFSKBSsXr2a69ev8/vvv+vVpUtJWFgYCxcuxNzcnP79+2eoHqHRaFi3bh0XLlzgzz//ZMCAAen2iYyMZMqUKcyaNQu1Wo2trS1OTk4MGzYslVMRQhAQEMDx48dxdHSUtTPTls3NzY2OHTuma5FoNBr8/PzImzcv7u7uqZzdkydPcHd3Txf88PTpU9zc3Jg+fXqqbjcvLy9q1KhBo0aN5HUzZ86kRYsWcgssOjoaX19ffH19ZeWaadOmpRsf+69hNI5J3xvf+3Lq1Ck2bNhAlSpVuHv3Ljlz5sTW1pbLly9Tp04drl69StGiRUlMTCQ+Pp7//e9/PHr0SBZgXbduHY8eJUv/1axZk19++YX8+fPLE/4kScLMzCxV950kSYwYMUJnV8Ontt9QMTT7M6O0L0lSEeClEKJ4inV61fv1ERERwbJlywgPD6dz587v1K7TEhsby4oVK3j16hXdu3fPVLfSixcvWLhwIdbW1gwePDhDTTchBLt37yY4OJjOnTvrlCRSq9UsWrQIBwcH3rx5gyRJ/PXXX0ybNi1d6+vevXvMmjWLdu3a4e7unu6eEEKwZs0abty4gaura7oxq9DQUKZPn07fvn2pXr16qm3Hjh1j+/bteHl5pZqAe+vWLebNm4e3t3cqnUxPT09q166dTjevZMmS/Pjjj7JtkyZNwtnZGUtLS2xsbFi/fj116tR5p/q6oWM0junfotWhSkxMxMrKily5cnHp0iV++uknLl68SPHixYmJiSExMZGCBQty69Yt8ufPj0KhkMeXvLy8iIqKwsbGhrZt25I7d25y584t51YyNzeX/9RqNZAc9DBlypR3pp028Z8jM0r7zYDBkiT1AfoLIULIWL1fJq1C/8CBA/Hx8UGlUskvSfqU3589e8aqVatISkqic+fO8rycmJgYvcrvL168wN/fn5w5c9KjRw9y586NhYWF/AKXVs3+5MmT7Ny5k5YtWzJ58mTUarWc7kWrZn/06FEcHR3l+X516tTBz8+PihUrolAoCA8PJ0eOHMTFxTFnzhwAWb0iIiKC+Ph42aZ79+7xzz//0LZtWyZOnEhcXJyca8rCwoLt27dz4sQJ7O3tyZcvn1xHVlZWrFmzhpiYGOzs7ORo2fj4eM6cOcOePXuYOnUq8fHxctf+vHnzqFGjBlWqVJFtCggIIDY2lhYtWshRuB4eHvIk2ujoaEJCQrh8+TKOjo7ExMR8coX+rGYdyApG45hS3oTvi3bSXN26ddm/fz8NGzbk1KlTlC5dmsjISBQKBaVKleL06dP873//Iy4ujsTERCpWrMjt27d58eIFO3fuRKFQUKRIEfr160d0dDRCCKysrIiJiUGpVGJpaSmLuAohsLW1Zfr06R9kbOTf2P9f4Eu2X5IkZyDtjNFuwNoUy+mU9oUQy4HlkiS1ALa8zZybkXp/KmbPnk3v3r3ThYrrU35/9uwZixcvxtzcnEGDBlGkSBGdUl8pWwyPHz9m8eLF5MqViwkTJuiMIEsphHr58mVWrFhBnTp1mDNnjs6uxKdPnzJ27Fi2bdsGQPHixfH19dWZpv3w4cNs3ryZoUOHpkoimJCQIAufajPf+vr6pss6oFAo8PDwoFy5cnL6cm2ZFQoFU6ZMoUGDBqm64yB5Uuzjx49TSYNppYfq16/Pzz//LO8bGBhIQkICgwcPltetX7+eH374gXr16gH/r5q+YMECOUrvUyv0/9usA++D0TimrBIaGoqrqystW7bk4MGDVKlShRcvXmBmZkapUqU4ePAgtWrV4sGDB9jY2JA/f37OnDnD//73P16/fs2hQ4c4deoUAOXKlaNXr15ydF3evHnRaDRyemoLCws5U23evHlxdnbOMHunif8GQgjntOskSVpGCqkuMlDaF0IESpK0CyhNxur9Mg0bNmTIkCGZKt+dO3dYvnw5efPmZcSIEZlSI3/69CkLFiwgb9682NnZvXNy8/3791m4cCHffPMN7u7uOsdPoqKimDZtGr6+vqhUKrJnz46joyOjRo1K9yP76tUrvL29qV69On5+fjojEB8/foyXlxedOnXSmX/qzp07zJw5k9GjR6eb2BsWFsaUKVMYM2ZMqm1CCP755x8KFSrEqFGjUq3XKo9ru+oADh06JAdsaNmzZw9KpZJWrVrJx7q4uDBmzJj3SktiyBiHlaR/O8gMly9fZtmyZdSrV48rV66QM2dO8ufPz8GDB6lfv77sgBQKBc+fP6d27drcvn2bHDlyYGtri4+PD7du3UKSJOrUqUPjxo3JlSsXd+/exdLSkrx58xIfH09SUpIc2SdJErly5WLcuHEfVIQ1K/b/lzBA+3Uq7UuSZAnkEEJESpJkJoTQxmvHkdyFJ5FGvV/XyTPzwnPx4kXWrl1LyZIlmThxos4WZ9p6ffHiBQsWLMDW1hY7O7t3TmkICwtjzpw55MuXj8mTJ+u8hlqtZsmSJUyYMIGIiOR0bX369GH69Onpurg1Gg0rVqzg/v372Nvb63Si2mCKyMjIdKKskOwI/P39efLkSSoBVi3aLAEeHh6pWpsqlQonJyeaN2+eqkWkUqlwdHSkc+fO1KhRQ15/+vRpTpw4gYODg7zu/PnznDt3LtU6rahsRpOM/2sYjWN63/DqXbt2cfHiRUqVKoVCoSAsLIz69euzb98+qlevLis0FC1alFOnTlGuXDliY2OJjIykUqVKTJ06lSdPnmBtbU2LFi343//+R8GCBQkLC0OpVFK0aFGEEERERMgTZs3NzSlUqFCqJv3nsv+/hqHZL4RI0qO03x74heTW1C5Jkt4Ap4H5QggloEu9/704e/Ys69evp0qVKkydOjXD6C9tvb58+ZL58+djbW3NyJEj39mqioqKYu7cuQghGDVqFHnz5tW538GDBxk+fDhXr14F4IcffmDWrFnUqlUr3b7Xrl1j/vz59OjRQ2/6i/v37+Pr68sff/zBL7/8km57dHQ0rq6u/Pbbb3LOIy3a/GaJiYl4e3unenGMjo7G0dGRYcOGpeoyTEpKYsKECQwcODCVFt/58+cJDAxMpdrw8OFD1q1bl0peKDAwkK+++ooffvjhnZOZ/0sYjWOKi4vL9FvzsmXLUKlUxMXFUa1aNXbv3k39+vU5e/YsJUuWJFu2bFy6dImGDRsSEhJCwYIF+eqrrzhx4gRFihTBxcWF0NBQ8uTJQ69evVCpVBQpUoTExEQiIiLIlSsXtra2PHv2TB5gzZEjB9988026h+Fz2P9fxBDt16W0L4QIAALefk4vI49O9f5MoY04rVmzJu7u7pnqNnr8+DEbNmzA3NycoUOHvlPZISEhgUWLFvHq1SsGDx6sN6jn3r17jB07lq1btwLJWWS9vb3p1KlTup6E+Ph4fH19yZ07t07BVUhuJc2fP5/o6Gi8vLzkqRkpOXPmDGvWrGHixInpwtfj4uJwcXGhVatW6RyaNkzcxcUl1XhbbGwsEyZMYNy4cXz99dfy+vPnz7NlyxamTJki2xIREYGXl1eqManr169z/vx5HB0d5TIY2j2cVYzGMWUGIQTe3t6UKlWKo0eP0qpVK3bu3MlPP/3E8+fPMTMzo3Tp0uzbt4+ff/6ZO3fuoFKpKFOmDKdPn8bS0hJfX18iIiIoVKgQw4YN48WLF3z99ddky5aNu3fvki1bNgoXLkxkZCRxcXFYW1vz1VdfUblyZX7//ffPXQUmjJDjx4+zefNmvv/+e2bMmJGpbr6IiAgWLFhAdHQ0Y8aMeWeuM5VKxapVq7h58yZ///23XnXw6OhoeRxJqVSSLVs2Jk6cyJgxY3T+KAcGBrJv3z5GjhypNz3HrVu3+Oeff/jrr7/krrSUjkmlUjFr1ixsbGzSqZGnPN7R0TGd8sX58+dZs2ZNqnBwbf1oQ71TOjldTikuLo5Jkyal0vl7/fo1CxYsyNScsP8iRuOY3iWJok3gVa9ePXbs2EHr1q05cOAAVatWJS4ujkePHtGoUSOCg4OpWrUq0dHRPHv2jB9++IEbN24QGRnJxo0biY2NpUSJEowZM4Z79+5RqFAh8ubNy717yYl4ixcvjlKpJDw8HEtLSwoUKEClSpVo3779Z7X/v46x26+LI0eOsHXrVn788cdMqTRAchfcggULSExMZMCAAdjY2GQY2CCEYOfOnRw4cIBevXrp7WJTq9UsW7YMe3t7Xr9+DUDv3r2ZPn26TpHYZ8+e4ePjw6+//qr3x1ulUjFnzhyUSmW6sSLt/aCVHBo0aJAsV5SSTZs2cfPmTfz8/NK1xDZt2sS9e/eYMWNGqrp7/vw506dPx83NLdUY27lz59i2bVsqp5SUlIS9vT2TJ0+WIxaVSiXOzs5MnTo11UuCMd3DRuOYMuqW0N4cbdq0YePGjTRv3pyzZ89SsGBBsmfPzokTJ2jRogWHDx+mWLFi2NracuLECX799VcePHjArVu32Lp1K0lJSXzzzTeMHz+emzdvkjNnTooVK8adO3dITEykdOnSqNVqHj9+LI8nffvttx/dKb3LfmPA2O1Py549e6hevTpeXl6ZckgxMTEsWLCAmJgYBgwYIDuLjMY9Tp8+zdq1a2nRooWcpkEXhw8fZvjw4Vy+nCxsUbduXWbNmpUq+Z4WtVrNggULeP36NS4uLnpV0a9du8a8efMYOHCgLIyaEnNzc1asWMHTp0/x8fFJp0iuVCqZPn061atXZ+LEiam2aTQavLy8KFOmDOPGjUu17caNGyxYsABPT89ULTytU3JxcZGdkkqlwt7eHjs7O3kysFZlfMSIEelC643pHjYaS/X1zyYkJDBu3Dg6duzIli1baNCgAXfu3EEIQZkyZQgKCqJZs2acO3eOnDlzUq5cOfbu3cvPP//Ms2fPOHPmjDxHqWLFikyYMIFr165hZmbGN998w927d4mJiaFs2bKoVCoePXqEJEkULlyY8uXLf7LuO2Pqn9aFsduflqZNm9KuXbt37peYmMiiRYsICwtjwIABqcZKQHe93r17lwULFlCtWjWdeZG03L9/n7Fjx7JlyxYgOZDI29ubzp0764xIDQkJYcWKFfz999+yMndalEols2bNwtzcXGcrB/4/DUbXrl3p3bt3uu3Pnj3Dzc2NkSNHputyjI2NZfLkyfTq1Uun+sOePXvw9vZO1dLR5ZQ0Gg2Ojo4MGDAgVRekj48Pbdu21dnVaUz3sNE4Jl3ExsYyfvx4OnXqxPbt26lVqxZv3rzh5cuXNG7cmE2bNtG4cWPu3buHWq3mu+++Y8+ePdSuXZs3b95w4MABec5B5cqVmTBhAjdv3kShUFCtWjUePHhARESErHv15MkTzMzMKFq0KGXKlDGNKZn4bLxrKoJKpWLlypXcunUrwzGhlLx69YrZs2eTL18+XF1d9U6w1KaJ8fHxkceRHBwcGDt2rM4f3qioKHx8fPj666/TpZ1IycWLF1m8eDFDhw7Vm3J99+7dHDp0CDs7O51JBw8cOEBwcHC6Fg/8fyJAJyendBp7W7Zs4dGjR6m66SA5+8DevXtTOSVt5trOnTunKqe/vz9lypRJJf5qrBiNY0rbVI+KisLBwYHOnTuzc+dOqlWrhkaj4c6dO7Ro0YINGzbQqFEjHj16REREBHXr1mXPnj1UqVJF7jcPDg5GpVJRrVo17O3tuXnzJvHx8VSrVo1nz57x6tUrvv32WywtLblx4waWlpaULFmSr776ig4dOnxW+40NY7c/s2g0GjZu3Mjp06fp1avXO/XvrKysiIuLY968eSQkJDBixAi9kXlqtZrly5djb28vS/r07NkTNzc3ihUrlm5/IQQbN24kJCSE0aNH61UeT0pKwtfXl5w5czJz5kydwRvx8fG4u7tTtWpVPDw8iI6OTlc2Pz8/vvrqK9zc3NIdf+TIEYKCgtIlAgRYuHAhNjY2jBw5MtX6/fv3ExISgpOTUypn5e3tTaNGjVLNadq/fz8xMTEZZvQ1pnvYKB3TmzdvmDhxIl26dGH37t1UrlwZSZK4fPkyLVu2ZOPGjTRq1IgnT54QFhbGL7/8wp49e6hatSo2NjasXbuWvXv3olarqVmzJvb29ly5coWEhARq1qzJ/fv3efXqFVWqVEGpVHL16lVy584td4O8K530x7bfGDF2+9+FEII9e/YQFBREx44ddWZwTYtKpWLNmjU8ePCAQYMGZZiV9siRIwwfPpxLly4Bybp2s2bN4vvvv9e5//3795k1axatW7fOMG342bNnWblyJSNHjqRMmTI699GmgB83bpzsAFPeD1pxVn05mZYuXYpCoUiV8A+Snbibmxu1a9fWmZ79/v37jB8/PtX6WbNmUaVKFVlqCJKTKR47dgwnJye9dqYt838do3FMsbGxZMuWjaioKBwdHenSpQt79uyhfPnymJmZcfHiRVq2bMmmTZto2LAhT58+5fnz5zRu3Jhdu3ZRs2ZNAAICAtizZw9qtZpatWoxYcIEzp8/j1KppFatWly7do2YmBhq1KjB69evuXfvHoULF5ZDxNMOln5q+40VY7c/I06cOEFAQABNmzbVGS6dlpSRdq1bt2bgwIF699Xq2q1fvx6AIkWK4O3tLad6SYtCoWD27NmoVCrc3d31fmcJCQl4e3tTsGBBvd172jDw7Nmz4+vrm2of7f2wf/9+goODmT59erpACqVSiaurK7/88guNGzdOV86JEyfStWtX+bdBy4YNG4iMjGT48OGp1s+ZM4dvvvmGZs2ayeuePXvGkiVL8PLy0mlnSozpHjYaxwTJfdsODg5069aNwMBAypYti5WVFefPn5cj8urXr8+LFy8ICwujWbNmbN26lbp165KQkEBgYCBBQUGoVCpq1qyJo6MjZ86cQQjB999/z7lz51AoFNSqVYtHjx7x7NkzSpUqRZ48eXj69GkqNWcTJj43V65cYfny5dSuXTvDIIWUnD9/npUrV8qRdtouubQkJibi4+ODq6urrMivnWyqT0z3yJEjbNy4kaFDh6ZSSUjLiRMnWLduHWPGjNEr0/OuMHC1Ws2MGTMoUqQI7u7u6ba/fv0aJycnRowYkUrJAZJ7XCZNmsSYMWPSpZ9YuXIlZmZm/P3336nWz58/nxIlSqTKpxYREcH06dPx8vIyaWKmwWgck0KhwMnJiZ49e7J582aqV6+OWq3m8uXLtG/fnrVr19KkSROePHnC69evadCgAZs2baJevXpER0ezf/9+goKCUCgUVK9enUmTJnH8+HFy585N+fLlOXXqFFZWVtSuXZvr16/z+vVrKlWqhIWFBbdu3cLT0/ODat+9L8bUDaALY7c/Lfv27aNYsWJ6BVPT8uzZM/755x/Kly+fKuosbb1qW1PDhg2T845pkwfqcyLh4eF4e3tTpUoVZs6cqfc5iYuLw8vLi5IlS+rdTwjBypUr9YaBQ/I8IxcXF0aMGEHFihXTbb9w4QIrVqxg2rRp6UK279y5w6xZs3B1dU0no7RgwQLy58+fbvx40aJFFC5cmNatW6eyxdHRETc3t0xH2hnTPWwUjik+Ph5XV1f+/PNP1q1bR7169QgPD+fp06e0aNGCNWvW0KZNG65cuYJareb7779n8+bN1K9fn9evX3Pq1Cl2795NfHy87JQOHjxI6dKlKVy4MEePHqVo0aKUKlWKCxcuoFarqVOnDq9fv+bq1avpuhE+B8Y0OU8Xxm5/Wn799dd0b/W60OYyUqvVTJw4Md1k2pT1euvWLUaMGMGePXsA+Pbbb5k9e3a6lBBatE7kzp07jBs3Tq9eHiSrcG/duhU7OzudgRKQ7OCmT59Ou3btdIaBQ/L8rcOHD+Pu7q7zev7+/oSGhupsQR44cICDBw/i4+OTypkLIfDz86N8+fLpMkwvXbqUfPnypQrNVygU2Nvb4+TkpDMNiD6M6R7+pI4pq6mi/801FQoF48ePp0OHDvj7+/Pbb7/Jc4t++eUX1q9fzx9//MGRI0fk1s+OHTto2bIlt2/f5t69e2zfvp2YmBiqVKmCvb09+/fvp2bNmlhZWXH48GGqVKlCzpw5OXHiBIULF6ZUqVLcvHmT169f4+rq+kXcULGxsV9EOT4Xxm5/Wt7VStJoNPj7+3Pt2jUGDx6sV+4nNjaWpKQkpk6dKqejyJkzJ66urgwePFjvda5fv878+fP1ziXSEhMTw4wZM6hQoUKG419BQUEcPHhQ74+9SqVixowZ/O9//2P69OmyuoQWhULB1KlT+fHHH3UGJy1duhSVSoWrq2uq9RqNhilTptCoUaNUAQ0AK1aswNbWNlULSq1WM2HChAyjDPVhTPfwJ3NMWU0V/W9Qq9U4ODjQu3dv5s+fT7du3Th79ixWVlbUqlWLLVu20K1bN3bt2kXJkiUpUKAAe/bsoVOnThw+fBi1Ws3mzZuJjIykYsWKjB07liNHjvDzzz8THR3NhQsX+PHHH+WMm1WqVMHGxobTp0+TLVs2Ro8enWHq6E9Jimo2Sozd/vfhyJEjbNq0iW7dumWYZl2j0bB+/XqcnZ159eoVkiTRt29f3Nzc0s3z0ZKQkICfnx85cuTA29s7Qwe5d+9e9uzZg52dXTqNOi1pw8B18eTJEzw8PBg+fLg8dpXyftBKCOnKu6RSqWSHlTbyTqFQ4ODgQK9evdJN+F21ahVWVlZ06tRJXieEwNnZmT///DNLqdGN6R7+lC2mrKaKTkfatNB2dna4uLigUqnkdMM2Nja4uLjQtGlT5s6dS/v27dm/fz8FChQgf/78bN++XW5FVatWDSsrKw4ePCiHixcvXpzFixfz4sULSpQoQa9evThz5gw//PADt2/f5uXLl/z888/cunVLzsWkTadcvHhxfvrpJ4oWLUpkZKTOdMOSJGFra0tSUhIKhQIAW1tbFAqFvJwjR45UNv2bFMqxsbEfPYXyp7ZJa0NmbQoPD38vm4yNu3fvMn/+fDlFeUZjoufOnWPIkCGcPn0agNq1azNnzhydMkJa9u3bx86dOxk5cmSGoeWRkZHMmDGDGjVq4OXlpbccusLA07Jz505Onz6Nl5dXqog2rUM8evQo27dvZ8aMGemCMqKiopg0aRKDBg2iQoUKqbbFxsbi4ODAqFGj0jmZZcuWkT17drp06ZJqvaenJy1atNApkZQZMjMW+F/hozimD5kqWgiReiYc0KRJE44fP67z2to+8BkzZtCyZUsCAgIYMmQIq1evpl69esTExHDjxg26d++Ov78/bdq04f79+zx8+JA//viDDRs2ULt2bfz8/GQR1q5duxIdHS07NysrK1q0aCGXoWnTpty6dYvQ0FB++OEH8ufPL4eEvivd8LvSF6e0SUtWUijb2trK5/7YKZQ/lU3vU4aCBQum2udjpoU2NCIjI5k1axa5cuVi6tSpGdr+6tUrHBwcWLJkCUII8ufPj5eXFz179tQ7jvry5Uu8vb2pXbv2O8PRd+3axeHDh7Gzs0uXekJLRmHgWrQp0StUqJCu+w2SX2Dmz58PJP9WpC2TNqrPxcUlXa9HeHg4Tk5OOhUgFi1aRL58+dIFQMyfP5+qVavyww8/6LX9XRhLNx58JMf0gVNFX3zf6y9YsIAqVaqwfft2+vbty9KlS2nSpAn37t1Do9HQpEkTVq9eTdeuXTl48CB58uShbt26rF+/nhYtWjBt2jQuXrxIrly5aNGiBUWKFKFs2bJs3bqVihUrUrhwYYKCgihdujSlSpXixIkTZMuWjQYNGvDw4cNMDSp/auLj443qxzYthmj/u8ZkJUlaAjQCVCQ/TxOEEEslSSoEnCS5y3yLEGKYrvNrFb0fPnzI8OHD9Xa/afdduHAh9vb2REdHY25uzsiRIxk6dKje1o82m+yDBw9wcHDIcKD/zZs3uLu78+OPPzJjxgy9+70rDBySpYO8vLwYNWqUzkm38fHx2Nvb06lTp1SZZrUcPXqUwMBAnVF9jx49wtPTE3d393QvV3PnzqV48eK0adMm1fply5ZRsGBBfvvtN712ZQZDvIezyqfsystqquj3YsOGDeTOnZvTp0/zxx9/sGTJEnr16sWGDRuoUKECBQoUYOvWrfTq1YuNGzdSs2ZNhBDs3r2bbt264eDgwMmTJ7G2tqZJkyY0bdoUtVpNYGAgDRs25PXr1+zfv5+ffvqJxMRE9u3bR+XKlcmfPz/Hjx/P1ES5z4FGo3n3Tv9hDM3+d43JSpJkAawWQvz1dtkX2Pz28L+BKkKIOH3nf/z4MaNHj6Z3797069cvw7KEhIQwYMAAzp8/D0Djxo2ZNWsWFSpU0DuP6caNG8ybN49u3brpTXWhZceOHRw/fpzx48frlTNKGQbu7e2tt/WwdetWLl68qHcfrWPTpzq+atUqWcsvbSvq2rVrLF26VOe5Z86cSbly5WjePHXuxjVr1pA9e/YPootpaPfwv+GTOaZ/kSo60xw7dowXL14ghOCXX35hzZo19O3bF39/f2rVqoVSqeTs2bN07tyZVatW0aZNG27fvs2LFy/o3r07kydP5siRI5iZmdGwYUP69+/PtWvXeP78Oe3ateP48eMkJSXRsmVLzp07R1RUFI0aNeLZs2ccPnwYDw+PzzpXKSOMSTJfFwZof4ZjskIIFXAQZCdl8/blLjtQHxgqSdJywPHtvqmIiopiyZIlGd6vb968wcHBgQULFiCEoHDhwvzzzz906NBBPi5tvSYmJjJz5kyyZcv2zuCGiIgI3N3dqVevns5JrloyEwaelJSEm5sb1atXT5WuPCVBQUGcOHECHx8feQxTi1qtxs3NjRo1augM+Dhx4gRBQUHpEilqk4tWq1aNJk2apDpm06ZNKJXKDKMO3wcDvIezzCe1NKupojPD7du3CQoKolq1aggh2L9/P71792bJkiX07NmT4OBgcuXKRcOGDfH396dbt24EBwdToEAB6tevz4wZMzh48CAADRo0YMKECQQGBpI3b16aNGnCzp07KVOmDKVKlSIoKIgSJUpQtWpVTp06hSRJjBkzJt04yZeEsXQB6ONLtj+rY7IpaAbsARBCJACNJUnKDawExgHT0x4QGhqaamwmZQBRYmIi69evx8nJiYiICMzNzRk4cCCTJk0iZ86ccqh19uzZEULIraZTp04RFBTEn3/+ScmSJUlISECtVusMTAkMDOT8+fOMGzcOa2trvYEpx44dY//+/YwYMYI8efKQmJiYLtjmxo0b/PPPPwwZMoSKFSsSHR2dKthGoVAwc+ZMChQowIQJE1AqlcTHx6NSqbCxsSE2NhZHR0d69OjBd999R0JCQqpgm+DgYK5cucKwYcOIi4uTg22EEMyZM4cff/yRmjVrysk/ra2t2bx5M2FhYfz5558kJiZ+kAAibZk/ZwBRVoKissJ/wgVr5fb/+OMPzp49i6WlJU2bNmX58uUMGDCAlStXUqVKFaysrNizZw+9e/dmzZo1NGzYkIiICAICAjh06BBKpZKffvqJ8ePHExAQwA8//ICFhQXbtm2jQYMGxMbGsmfPHn7++WcSExPZu3cvlStXply5clkK//yUGFP/tC6+ZPv/7Zgs0BIYleacUZIkDQDm6zpAXwDRlStXGDhwICdOnADg559/Zv78+anGc1IGpiQlJcmthpo1a/LPP/+ka4WlrPfXr1/j7u5O/fr19SYP1P7oubu7U7lyZWbOnKn3fBs2bODWrVvMnz9fbp2l3B4VFYWTkxO9e/dOpeadlJREvnz5ePz4MR4eHkydOjXVGJs2uGb16tUkJSWlE1i1trZm2rRpNGnShJ9++inVtr179/LmzRtGjfr/r+RDBBCpVKpUXZ2fOoDo3wZFvQ8G75gSEhJwcnJi4MCBrFmzhrp16xIfH8+BAwfo3bs3CxYsoFu3buzdu5d8+fLx22+/sXz5cnr27Mn+/ftRKpUcPnyYiIgIqlatSt++fdm5cycdO3bk9OnTREREyBNwFQoFrVq14ty5c7x584YmTZrw/PlzGjZs+Lmr4Z0YU/+0LgzQ/neOyb7dluPtNjm+XZIk6W0XYEFgV2YuFhMTg7OzM35+fmg0Gr766it8fX3p0aOH3u4+IQRr164lLCwMe3t78uTJk+E1tmzZwpkzZ5g4cWKG+54/f57ly5czbtw4ihfXPaUxISGBadOm8eOPP+Lo6Khzn6tXr7JgwQKcnZ3TRdZpNBpOnTrF5s2bdaay0Ko5lCxZkh49eqQ71tnZmZYtW1KnTp1U2w4dOsTVq1cZPXq0XvuyigHew1nGoB2TRqPBwcGBIUOGMG/ePHr16sXBgwfJmzcvP/30E6tWraJ///6sXLlSnqsUGBhI3759WbVqFTVr1mTu3LncuXOH4sWL07x5c16+fEnHjh3ZvHkz5cuXp2rVqmzatIlq1apRsGBBdu3axbfffkuVKlU4fvx4hn3jXxKfWxLpc2No9mdyTBagHbBVe5wkSU0AL0mSNgN3hRCL3nEdNmzYwPDhwwkLC8PMzIyhQ4fi6uqaofO4d+8es2bNonnz5gwZMiRDW8LDw/Hw8KBhw4Y6cx1pUavV8viUn5+f3u/s5s2bzJkzh/Hjx+t1XBs2bODu3bv4+fnpFEjdunUrsbGxOseFVSoVzs7ONG/ePF1rSKlUMnHiRHr06JFuUu3Jkyc5efIkEyZM0Gvjv8HQ7uF/g0E7Jg8PD7p37868efMYNGgQy5Yto2HDhoSFhXHq1Cl69uzJwoUL6datG4cPH8bGxoYWLVqwdOlSunbtiouLC6dPn8bW1pZff/2VmjVrIkkSAQEBtGrVivv377N3717atGnD1atXuX79Os2bN+f+/fsEBwfj7u7+xQY7pEWforOxYIj2v2tM9u2yf5rtwUC1zJz/zp07DBo0iP379wNQq1YtFixYkC6NQ0pUKhVz584lMTGRGTNmvFONYNOmTZw7dw5HR8cMw8UfPHiAt7e33mg5LatXr+bp06f4+vrqDAZQqVRMnz6dqlWr6nQQGo2GGTNmULp0aZ3RiHFxcTg4ODBo0KB0WXATEhKwt7dn2LBh6TL6njlzhuDgYCZNmqS37P8WQ7yHs4rBuuD169dToUIFtm7dyoABA+TQ1HPnzmFubk6tWrVYs2YNAwYMYPPmzZQoUUJu8fTv3x83Nzf27dsnR+ANHDiQBw8ecO3aNTp16sT+/ftJTEykRYsWBAYGYm5uTtOmTTlw4ADR0dEMGTLkiw52SEtiYuLnLsJnxdjtT8vRo0epXLky+/fvJ3fu3CxcuJDTp09n6JQuXbrEqFGjaNSokRy0oK9eX716xdixY7G1tWX69Ol6nZIQglWrVrF69Wq8vb31OqXY2Fjs7e0pXLgw9vb2Op3Sy5cvGTlyJJ07d04lmqolPj6esWPH0qxZs3TyQtrjx40bx4QJE9I5pejoaOzs7Bg3blw6p3Ty5En27NnDpEmTPuqLqjHdwwbZYnr+/Dk5c+Ykd+7cNGjQgOXLlzN06FDmzZtHp06dOHfuHK9evaJTp04sXLiQXr16sXXrVooWLUqbNm1wd3fnwIEDQLJqw4QJE1i3bh01atQgb968rF+/nqZNm/L69Wu2b99Os2bNePr0KTt37qRBgwYolcp0N+6XjkqVLmLYqDB2+9Oivf979+6Nl5cX+fPn17tvYmIivr6+5M6dO13XmK563bBhAxcvXmTSpEkZtpJev37N9OnTad26dYaafJcvX2bx4sU4ODjo1cw7ffo069evx83NLV1QACSn7Zg+fTqOjo4UKVIk3fyrO3fu8M8//+Dh4ZEuYeCrV69wdnZmypQp6caqjh49ytGjR3F0dPzovSfGdA8bpGO6cuUK3bt358aNG1y+fJlOnToxd+5cBg4cyLJly/jll1+IjY1l586d/P333yxevJgGDRrw5s0bdu3axYkTJ0hMTOTnn39m4MCB+Pv706FDBy5cuMDdu3fp1KkTe/fuJVeuXLRt21b+3L59ew4ePMjUqVM/dxW8N8bUP60LY7c/LXny5GHjxo16U1JoOXbsGBs3btSrb5eyXl++fMmMGTNo2rQp06ZNy/C8e/bsYd++fUyaNEnvWJYQgqVLlxIVFYWvr6/eZHpLly4lNjYWb29vnc4hJCSEtWvX4uXlJUeipSz3qVOn2LZtGz4+PulaYo8fP2bGjBk6HdahQ4c4ffo0EyZM+CRd+sZ0DxukY/ruu+/YvXs39erVIzIykv3799OnTx/mzJnD33//zbZt2yhRogT16tVj6dKl9OvXD39/fypWrMjRo0d5/PgxZcqUoUmTJly9epUePXqwdu1aatSoQdmyZeUWU0xMDFu2bKFRo0bExcWxefNmvL29P7f5WcKY+qd1Yez2p2Xw4MEZOqXo6Gi8vLwoV65chvp22nrdtGkTFy5cYPLkyeTKlUvveRMSEnBzc6NixYp4enpmeP0pU6bQpk0bfvnlF537JCYm4uLiQuPGjfXasmnTJu7fv59ODFZb7m3btnHnzh2dSg/aMHRdSg/79u3j4sWLjB8/Xq8NHxpjuocN0jGdPn2a5cuXs3HjRipUqEDFihUJCAhg8ODBzJ8/n06dOnHp0iUuXrxIt27dWLhwIa1bt2bevHmcOHGCHDly8MMPP1C9enUSEhJYu3YtnTp14vjx4zx48IBu3boRFBREjhw56Ny5M4GBgeTIkYPRo0d/sXNh3kVSUpLBlv1DYOz2pyUjRYadO3dy+PBhxo4d+86cQaGhocydO5eGDRu+syfh/PnzLF26lPHjx/P111/r3U+rGj5p0iS9XYxPnjzB3d2dcePG6cyMK4TAx8eHEiVKYGdnl257UlISK1euJHv27IwdO1ZnWQMCAvD09EzXitqzZw83btzQedzHxJjuYYN0THXr1mXevHn06dOHgwcPkitXLn777TcWLVokT6itV68esbGxbN68mf79+zN58mR27twJJE8uHDlyJFu3bqVQoUJyavUGDRqg0WhYt24dLVu2JDQ0lICAALn1pEsQ0lDI6gzs/wrGbn9mePXqFZ6entSrVy/D1oyW3bt3ExgYyJQpUzLMPqtWq/nnn38wNzdn1qxZerukhBDMnz8flUqVYdbnAwcOEBwcjLe3t84f6oSEBCZNmkTnzp11puHQaDR4eHhQv359nUEQhw8f5siRI7i5uaVrRe3atYsHDx4wcuRIvfZ+LIzpHjbITsuzZ88ybNgw/P39+fHHH1Gr1Zw7d45u3boxf/58evTowfnz54mLi6NZs2bMnDmTo0ePotFo+O233xgxYgRLly6lYcOGWFhYsHv3bnr27MmlS5e4d+8eXbp04cCBA0RERPD7779z9OhRunXr9rnN/lcYSlj7x8LY7X8XGzduxNfXl4kTJ9K6desM942JicHR0ZG4uDicnZ0zdEpPnz5lxIgRNGzYkGHDhul1NhEREYwaNYoaNWro3U8IwaxZs3jw4AHTp0/X6ZRCQ0MZO3YsI0eO1OmUkpKSGDduHE2bNtXplHbu3Mn58+d1BjNs27aNJ0+eMHTo0HTHfQqM6R42yBZT1apVmTt3LsOHD2fu3Lk0a9aMsLAwgoOD+fvvv+VIvOPHj3P27FlCQkJ48+YN3333HS1atODw4cP8+eefrF27lurVq/PLL7+wcuVKWrVqRWhoKOvXr6dNmzbcvXuXbdu2MWXKlM9t8r8m7cCtsWHs9uvj1atXeHh40KRJE6ZPTyepl46jR4+yefNmxo8fT+HChTNMqLhlyxbOnz+Pp6dnOvmblJw8eZKAgACcnJz0OrmYmBicnJzo3LlzOrUFLZcuXWL58uXMmDFD51SOyMhIHB0d9WbEXbt2LXFxcamkhLRs3ryZ169fM3DgQL12fGyM6R42yBbTo0eP6NWrF35+fvz9999yTqVy5crJiQH9/f2pUqUKhw8f5sqVKxQsWJBatWpRrFgxKleuzKpVq+jcuTPPnj3j3Llz9OrVS56j1L59e3btSlZy6dKlS4aDuYaCMWZkTYmx26+LTZs24evry6RJk+TElvpITEzE1dWVBw8e4OPjI/+w66rX+Ph4Jk6ciJmZGa6urnqdkkajYebMmVy6dAkfHx+9Tun27dvY29szfvx4vU5p27ZtBAYG4u3trdMpPXnyhIkTJ+Lq6krJkiXTlXvBggWYm5vrnHQbEBBAVFTUZ8+zZkz3sEE6puzZs7Nv3z769u3L7Nmz6dmzJ+fOnUOpVFKvXj0WLVpE//79WbhwIbt378bMzIy6desycOBArly5wpMnT+jSpQsrV66kYsWKlCtXjtWrV9OiRQskSZK18uLj46lbt+7nNveDoFUqNlaM3f607N27lxw5cmQ4+VVLSEgI48aNo3fv3vTq1StVl1LaetVGqg0ePJi2bdvqPeerV68YOXIk9erVY+DAgXq7qXbs2MHatWvx8/PTGYghhGDmzJnExcUxYcIEnV2Aly9fxs/PD29vb9n5acsthMDLy4sSJUrQqVOndMeuXbuWxMTEd+aU+hQY0z1skF15OXLkoESJEuzatYuBAwcyd+5c/v77bwIDA4mKiqJ9+/Z4eXnJUistW7ZkwIABLF68mC5dunDt2jV27txJ37592bRpE4ULF6ZDhw5s2rSJWrVq0bRpU9atW4efn9/nNdSEiY/EL7/88s6MqkqlEl9fX3LlypWhdh0k/8DPnTsXpVKpV59Oy+HDh9mxYwdTp07V2xuh0Whkh5FW2VtLUlISkydPpl27dnpTlu/fv5/jx4/j6emZrvwajYYpU6bQuHFjnZlsV61ahbm5Ob169dJri4mPg0G2mJ48eYKtrS3ly5cnICCAoUOHsmjRIn799VfUajXHjh3j5s2bREREUKtWLRo2bMiZM2fo378/GzduJH/+/NStW5cVK1bQsmVLIDkEtFevXjx48IDTp09jZ2eX4cNlaBhT/7QujN3+tLwr7PjmzZuMGjWKdu3aMXDgQL1OydbWlrCwMEaMGMH333/PyJEj9T43Go0Gb29v7t27h6enp16nFBkZyciRI2nWrBldunTRuc+rV68YPXo0gwcP1uuU/P39uXPnDpMnT05X/mzZsjFhwgTatWun0yktW7YMKyurLyroyZjuYYNsMVWtWpWQkBCqVKlCnTp1ZEmi+fPn065dO+bMmcOpU6fImzcvVapUoVKlSjx8+FDOaBsQEEDx4sX5448/WLt2LY0bN6Zo0aKsWLGCtm3b8vz5c0qUKPG5zfygKBQKo5kDoQtjtz+zCCFYvHgxkZGR+Pn5vTNramBgIGfOnGHatGk6pYC0hIeHM2XKFPr27Uv16tX17qdNVeHi4qI3zfrVq1dZtGgR7u7uOq+pncNUpkwZunfvnm57YmIi48aNY9SoUZQtWzbd9sWLF5MvX74Pkg79Q2JM97BBtpjOnDlDt27duH79OpGRkTRs2JDFixczZMgQFi5cyJYtW4Dk+Upjxoxh7969mJmZUa9ePRYvXky7du2Ii4tj//799O3bl5MnTxIaGkrnzp3ZtWtXhrpdhoox9U/rwtjtzwwvX75k1KhRVK5cGTs7uwydUlJSEi4uLnLiv4yc0qlTp5g2bRqurq4ZOqUNGzawc+dO/Pz89DqlwMBAtmzZgo+Pj85rKpVKHBwc+PHHH3UKucbExDB27FgGDhyo0ynNnz+fAgUKfHFOCYzrHjbIFlPt2rX5559/GDx4MJs3b0aj0dCiRQv8/Pw4cuQIarWaVq1a0aNHD5YsWcKff/7JqlWrUCgUdOnSheXLl9O2bVvCwsJYuXIlnTt35sSJEwQFBTF+/Hijmi9gwgQkTxw9duwYrq6uGToZSO7mmz17NmPGjMlwXyEE8+bNA8DHx0fvc6VSqXBzc6NKlSrY29tneK4cOXLoTS0RExODg4MDw4cP1+l0wsPDcXJywsXFRefxc+bMoWTJkrRq1UqvTSY+DQbZYrp58yaDBg1izpw5tG/fnidPnnDv3j1u3rzJs2fPqFixIlWrViU8PJw2bdqwcOFC2rZtS0JCAgcPHqRfv34EBQWhVqtp2bIl/v7+lC9fnurVq+tVLzZ0DClFx8fA2O3XR3x8PJMmTSIxMVGvMrcWIQTLli1j27Zt+Pn58b///U9vvUZFRTFmzBhq1qzJ4MGD9Tql8PBwRo4cyR9//KGzhQPJLYWJEydSqVIlevfurXOfFy9eMH78eCZPnqzTKT19+hRnZ2fc3d3Jnz9/unLPnDmTMmXKfNFOyajuYSGEwf21a9dOTJ8+XVy5ckUMGTJEXLhwQXTu3FkAwsbGRnTv3l1cvnxZuLm5CR8fHxESEiL+/vtvsW/fPrFy5Uoxbtw4cf78eeHi4iLc3NxESEiIsLOzE/9loqOjP3cRPitZsR9wFp/xPic5NboXMEHP9uLAdKA/0DnF+iEkZ7x1AvLoOtbJyUmcP39eDBs2TDx9+vSddfH69WsxatQocfjw4VTrddXrhQsXxPDhw8WrV68yPGdISIgYMWKEiIqKyvC6Q4YMEXfv3tW7z7Vr18TIkSNFXFyczu23bt0SI0eOFAkJCTrL7enpKfbu3ZthWb8EDPUZzspzZJBdebly5aJYsWJs27aNwYMH4+HhIevgtWrVirFjx7JgwQK6d+/OxYsXCQwMpFu3buzYsYMffviBevXqsWTJEjp37szNmzcJCAjQ24XwXyEpKemdXTT/ZQzRfiHES0mSbgNF9ewyBxgthLgnSdI2SZKOAEWAOkKIXpIk/Uyyc0onZXD69GkKFCjwzjBwgBMnTrBx40YmTZqUbhJsynoVQrB8+XLevHmTodYdJIdiv3r1Ch8fH7373bp1i9mzZzNt2jS9c60OHTrEwYMH8fLy0hkNePHiRdatW5dOjDUpKQlbW1tmzJjB999/T4MGDTKsgy8BQ7yHs4pBOqY7d+7Qo0cPLCws2LBhAzdv3iQuLo5ff/2VX3/9lcDAQAYOHMjChQtp164dOXPmZPPmzQwYMIB169ZRuHBhevXqhb+/P/Xr16dYsWJ6B1tNmPjM6BzxliTJGmgghLj3dtUdoClQBrj2dt1FYBU6HNOLFy8YOnSorPtmZ2eHi4sLKpVKVhjInj07c+bMwdzcnAkTJmBtbU18fDzx8fHy9qSkJMLDw4mLi8PPz49mzZrRunVrIiIisLKywsrKitjYWACsrKyQJAkXFxdq1arFX3/9hUKhID4+Ho1Gg4WFBdmyZSM+Pp4DBw5w5swZ3NzcUKlUhIeHY2Zmho2NDUlJSSiVSrZs2UJcXByjR4/mzZs3QHJItUKhQKFQcPLkSTlfUmRkJJDcHabRaIiMjMTX15f69etTp04dOXFg9uzZMTMzIy4uDgBra2ssLCzkZV02WVtbExsbixACS0tLuZ7S2qTRaGQbEhMTUalU6WySJAlbW1uSkpLkYAetTVFRUbINKb8nrU0JCQnA/6fHSPk9fU6bsoJBOqbvv/+evXv30qpVK3bu3MmZM2f46quv+Oabb6hatSp37txhy5YtDBw4UE4S+NNPP7F48WL+/PNPdu/ezcGDB+nTpw/r1q3Dw8Pjc5v00TGq/mkdfMn2S5LkDHyTdr0QokcGh30FxKRYTiS5ZVUYOJtmXTratWvHxYsXdZ44Z86chIeH4+DgQO/evdOlW0+ZF8jMzIxHjx4xe/ZsJk6cSJEiRdKdTxviHBoaiqurK6NHj06l1J82BHrVqlVIksSMGTN0ls/a2pqZM2dSvHhxnTJB2bJlIzAwkNu3b+Pq6ppufEsIwcqVK2nZsiU//vhjOpuAdDJKaZfTljltvqa02993Wdf5LC0tU5Ujbesp7T3+pdn0PhikYzp79iz+/v5MnjyZTZs2AdCsWTPGjh3L/Pnz6dChA2ZmZqxZs4YBAwawZMkSKlSoQOvWrVm0aBE9e/YkJCSEDRs2MG7cuM9szadBo9F87iJ8Vr5k+4UQzlk4LBxI+cuRE3gA2Lz90657+b4nPnr0KNu2bcPV1fWdOpEBAQE8f/78nXOeTp48yebNm/UKrEJydN6UKVP49ddf9Sb+U6lUuLi40KxZM50TYwHWr19PdHQ0Y8aMSbdNCIGLiwuNGjWSnZKh8CXfwx8ag4zKK126NPPmzeP8+fMoFApatGghywgNHjyYTZs2UbRoUapUqcLy5cvp06cP165d4+7du3Tr1o1Vq1ZRtmxZqlevzldfffW5zfkkaJv5xsp/xX5JkiwlScojhFAAxyVJKvV2UzlgD7AZqP52XRVge2bPrdFo8PHx4datWxkqM0DyeMekSZOwtLRkwoQJep2SEIIlS5Zw/vz5DJ1SZGQko0aNonv37nqdUlxcHGPGjKFHjx56ndLixYsRQuhsSWk0GiZPnkzr1q2pVKmSXtu+VP4r93Bm+KSOSZKkgpIkeUmSNEHP9uKSJE2XJKm/JEmd9Z1HpVLx4MEDrl27RvHixSlRogQlS5akTJky+Pv7M3jwYHbv3k2OHDmoU6cOS5YsoV27drx69YoTJ07Qt29fdu/ezR9//PHxjDVh4l8iSVIeoDZQRZIkrYJpe0CbKnYkMFiSpAHAKiHEUyHEBeC6JEn9gMaAY2au9fLlS0aOHEmjRo3o169fhnP5Hj58yJgxY+jXr5/OnEZatGHepUuXZsiQIXrPef/+fSZOnIiLiwvly5fXuU9YWBh2dnY4ODjo3Ee8VXsoUqSIThkjjUaDo6MjHTp04LvvvtNbZhNfCO8bxvdv/0gObdUZPghsA8qk+FxE135Vq1YVZmZmQpIk0bNnT3Hnzh0xcuRIsX//frF69Wrh6Ogobt68Kezs7MSGDRtEUFCQGDRokAgJCRF+fn7CxcUlUyGy/yX0hdIaC1mxX999+l/4c3Jyku08ePCgsLOzy1Q4clBQkHB0dBSJiYlCCP31+uLFCzF48GDx4MGDDM937NgxMX78eJGUlKR3n5s3b4rhw4eL2NhYnds1Go1wcXFJF8quRaVSiXHjxonLly/L6wzxeTDEMgthOOHi7xtltCLtvjdv3pT7W1etWsXdu3eZP38+CxYsoGHDhpQoUYLFixfTvXt3li9fTpkyZWjevDmLFy+mdevW3Llzhzx58pCQkPBFRt9olz9k9I22HP8lm97ne4qMjCQ+Pv69bPqvo1ar8fHxoUCBAnh4eGTYStJoNPj5+VGgQAFcXV0zPG9ISAhr1qzJsOsOklNKvHr1SmcKcy3Hjh0jKCgIb29vnd2FKpUKR0dHOnfuTI0aNXRud3BwoE+fPlSsWDHDcpv4cpCSHdoHPmkGUUaSJPUBSok0A76SJBUFzgohir1dngrECSHcdJxflC9fnubNm9OqVStevXrF1atX+fPPP5kzZw4NGzZEpVJx4sQJ+vTpQ0BAANbW1jRr1ozly5czc+ZMo5MdCg8PJ3/+/J+7GJ+NrNgvSZJL2vv0v8LYsWNFUlISAwYMoHLlyhnuGxUVhbOzM7169Ur345+2XteuXUtoaCgjR47U+4wJIZgxYwbly5fXq/YAyenenz17xvDhw3WeKzExkQkTJjBo0CDKlSuXbrtKpcLe3p6///47XfefIT4PhlhmyNpz9FHGmIQQzkKIHmn/3nGYrigjnRFFkiTxww8/MGLECAIDA8mbNy9Vq1Zl+fLlDBgwgCNHjsiirYsWLaJTp07Ex8ezf/9+vTe5CRPGxKlTp3B3d3+nU7p27RqTJk3C0dFRZ4tEi1qtxtXVFVtbW0aNGqX3GUtISMDOzo4mTZrodUpCCGbPno1KpWLEiBE6z6UVYx09erROp6RUKhk3bhwDBw7UO25l4svls0flZSLKKB0VK1bk999/Z/HixQwdOpS9e/eSP39+KlWqxMqVK+nfvz/Hjh0jMTGRFi1asHDhQlq2bImFhQXffJOuIWcU6EtvbSwYu/1pady48Tvndm3YsIHt27fj6+urN3o1e/bsvHnzhlGjRtGxY0dat26t93xhYWGMHTuWUaNGpZsbpUWtVuPk5ETlypX15mJ6/fo19vb2ODk58fXXX6fbnpSUhJ2dHUOHDtX7vBvi/WCIZc4qnzoqLw/vGWWk6zy2trZkz56datWqsWLFCgYPHsyOHTsoWrQoFSpUYNmyZQwcOJCQkBAiIyNp1aoVq1atkme5GyPvkp35r2Ps9r8PKpUKV1dXrKysmDBhQoYJM2/duiUrdleoUEHvfleuXMHNzQ0PDw+KFSumc5/4+HjGjBlD586dqV+/vs59nj17hpOTE25ubhQoUCDd9pS5lkqXLq23PIZ4PxhimbPKJw1+EEJEkiwwmXJdABDw9vMD4J0zXuvWrUtgYCCdOnUiOjqatWvXMnToUGbNmkXHjh0BWL58Of3792fhwoVUq1aN3377DUtLyw9uk6EQFxdnVG9caTF2+zPLy5cvcXV1ZejQoe/sAtuxYwcnTpzA19c3Q+e1e/duzp07l6EunjYlxcSJEylaVLc04N27d5k9ezaenp46v8uEhATGjRvHuHHjdLakUmKI94MhljmrGKQLvnTpEkOHDmXNmjXUqFGD/Pnzs3nzZgYNGsTGjRspU6YMpUuXZsWKFfTr14+rV6/qTb9swoSJZE6fPo2Hhwdubm4ZOiXxds5QbGwsY8aMydApLViwgJcvX+Lo6KjXKT148AAXFxfc3d31OqVLly6xaNEivLy8dP44x8fHM27cOOzt7d/plEx8+RikY7K1tWXLli0MGjSI5cuX8/PPP2NlZUVgYCD9+/dn7dq1lC9fXnZOo0ePTqf7ZGyY7Ddu+zNCvFVnOHv2LF5eXtja2urdNy4ujrFjx/Lrr7/StWtXvfWqUqmYPHky5cqV05tDCZLVv+fOnYu3t7de5ewTJ06wZcsW3NzcdIaMx8bGMm7cOCZOnKi3mzAthng/GGKZs4pBOqYSJUogSRIHDx6kb9++/9fe/YdGkZ4BHP8+HNpSOAhXkWtP+kNCuVJOrj/woC3enpYUS1M1SpESpBxRm5xQEo0hSshpLGL8cVXUmFC4wwNLo6a1cidymzaJlVYS79pCoXpVUxuQ07RxG6vbO9ynf8y4bpLZ2STVzMzO8wFhNzuZPO847zw778y8Dx0dHZSVlZHJZEgmk1RVVWWTU2lpKXPmzPGdxysOrP3xbn8+6XSaLVu2MH/+fDZs2OB7x+rQ0BCbN2+mvr4+O3uC13ZNpVLU1dVRWVnpW06iu7ub06dPs2vXLmbPnu25zNmzZzl//jzNzc2eZ1yjo6PZAoFTKfIZxf0hijFPVyQT08DAAMuWLeP27dtcvHiRyspKjhw5Qnl5Offu3aOnp4e1a9dy7Ngx1qxZA5B9IDOurP3xbr+XoaEhNm7cSE1NTcF6RP39/ezfv5+9e/eOSQDjt+vg4CBbt26lubnZ8zbuBzo7O7l06RJNTU15h/i6urq4evUq9fX1ngkzlUrR0NDAtm3bmDt3rm/840Vxf4hizNMVycS0YMECDh48yOrVq7Nl1SsqKmhra2PFihXcvXuX3t5e1q9fn93p802hHxfW/ni3f7zr169z4MAB9uzZU/CazPHjxzl37hytra0TShnkbtf+/n7a2trYt2+f7+TIhw8fBqCmpibvMkePHuXOnTtUV1d7fj4yMkJjYyM7duyY1kOnUdwfohizKzHl35jqHEZh+Ldq1SpNJpO6adMmHRwc1MbGRu3s7NRkMqm1tbV6+fJlbWlpGT9f02SmdSpa1v6pt58initv6dKlmslkfNufyWR09+7deuLECb9tpKqqp06d0tbWVt913r9/X7dv367d3d2+f/fQoUN68uTJvJ8PDw9rdXW1joyM+K7HTxT7QxRjVs3GPaX9M5JnTDdu3CCdTrNo0SI6OjpYt24dAwMDpNNplixZQnt7O7W1E4p2GmNcCxcu9L2e9GCGhkQiwcqVK33X1d7eTiqVyjvkBs5M4w0NDZSXl7N48WLPZdSdqqi0tJSKigrPZW7dukVTUxM7d+6kpKTENy4TXY9lrrzHTUR+Bng+fOsjAfQ88mCiI4G1v2eKvzNPVasefSjBm2Yf8pIgmvtVgujFnSB6MQN8T1W9p/rII5KJyRhjTPGK5FCeMcaY4mWJyRhjTKhYYjLGGBMqsXmUWETm4kwQ+0/1KD5YzETkFZzKwZ8G9qszmW5siMizwG5gj6r2Bh1PlBXqRyIyD6gBBoGUqv5iZiP0JiIvAS+4b99W1T97LLMD+CGQYWw17Rnn12cn05YgFDrOiEgSeBbnpptvqOr9fOuKTWJS1Zsichlno8WGiHwFeEFV14jIN4FmIFb30qvqX0VkFLAKkf+nSfSjQ0Cdql4RkVMi0qeqN2YwxAlE5ONAK7AQmA28IyIvas6dXyLyKeCmqs4LKMwsvz47mbYEodBxRkSWA1tV9cJk1he3obwPgw4gAMuBv7iv/+i+j6M4/t8/Lp7bUkQ+xtgzjfeBshmLKr+vA8Pu857/BT4BfGbcMt/GqQX3roh8bcYjHGs5+fvsZNoShOX4H2deAk6KSFdOLb68iu6MSUReBSaUrdTCpd2L1dNAv/s6TczOGM30TLMffRIYzXk/4/tbnrh/APw85/2DuP7+4Aeq+gbwhoh8B/iliHxJVf/9eKPNy6/PPg38K+f9hLYExPc4o6o/FpE6YAvwJgW+sBRdYlLVV4OOIWQ+wPlWBfAkcDPAWExETLMfDQO5tRmeBK49koAmyStuEXkdyC1fnbcfqOrbIvIWMB/nm38Q/Pps7mdenwel4HHGvabUIiJ/KLSyuA3lxVEX8Lz7+jng18GFYoqRiMwSkRJV/RA4LyKfcz/6AnA2uMiyfgc8A9nhxo/ca2CzRKTE/XnusfA/PByWCsKEPisiJSIyizxtCSTKsfxizm5f9xpZX6GVxWbmB3cH/AnOKWeNqn4QbEQzR0TqgRGcsejXVHUk4JBmlIh8Fmco5y1gn6reCzikyPLqRyLyfWCRqm4Qkc8D1cAVYFRVjwUX7UPuEN1zwBPAGVV9b1zcZ3D6yAWcO93eDzDcCX0WaAF6VfW4V1uCi/ShfDEDvwHOAe8Al4A3VXU033ogRonJGGNMNNhQnjHGmFCxxGSMMSZULDEZY4wJFUtMxhhjQsUSkzHGmFCxxGSMMSZULDEVGRH5qoj8Q0QOishGEekTkReDjsuYqLA+FLyim5Io7lT1oohcAU6oao/7xPVPgS8HG5kx0WB9KHiWmIrfF4E/AYjIt4CngO8Cv1XV14MMzJiIsD40w2wor3gtEZHfA38DqkTkKeBlnJIFfdi3P2MKsT4UEDtjKl4XcOYrexnYhVMK4CNV/RWAiDwRXGjGRIL1oYDYGVMRc2vMXMOZTPEasMytNAmwKqi4jIkK60PBsDOmIiMiz+PUkikTkT6gBhjAKcP8GnDGvbD7o8CCNCbErA8Fz2YXN8YYEyo2lGeMMSZULDEZY4wJFUtMxhhjQsUSkzHGmFCxxGSMMSZULDEZY4wJFUtMxhhjQsUSkzHGmFD5HyI66bEEti91AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,2, figsize=(6, 3))\n", "\n", "for i in range(len(delta)):\n", "# ロバスト制御:閉ループ系が安定になる\n", " \n", " P = (1 + WT*delta[i])*Pn\n", "\n", " x, y, _ = nyquist(P*K, logspace(-3,5,1000), plot=False)\n", " ax[0].plot(x, y, lw = 0.5, color='k')\n", " #ax[0].plot(x, -y, ls='--', color='k')\n", " ax[0].scatter(-1, 0, color='k')\n", " plot_set(ax[0], 'Re', 'Im')\n", "\n", "# PID制御:閉ループ系が不安定になる\n", " xpid, ypid, _ = nyquist(P*Kpid, logspace(-3,5,1000), plot=False)\n", " ax[1].plot(xpid, ypid, lw = 0.5, color='k')\n", " #ax[1].plot(xpid, -ypid, ls='--', color='k')\n", " ax[1].scatter(-1, 0, color='k')\n", " plot_set(ax[1], 'Re', 'Im')\n", "\n", "x, y, _ = nyquist(Pn*K, logspace(-3,5,1000), plot=False)\n", "ax[0].plot(x, y, lw = 2, color='k')\n", "ax[0].set_xlim(-1.2, 1.2)\n", "ax[0].set_ylim(-1.2, 1.2)\n", "\n", "xpid, ypid, _ = nyquist(Pn*Kpid, logspace(-3,5,1000), plot=False)\n", "ax[1].plot(xpid, ypid, lw = 2, color='k')\n", "ax[1].set_xlim(-1.2, 0.5)\n", "ax[1].set_ylim(-1.2, 0.5)\n", "fig.tight_layout()\n", "\n", "# fig.savefig(\"nyquist_robust.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(3,2.3))\n", "\n", "# 感度関数\n", "Ssys = tf([1.01,1.01],[0.02, 2])\n", "gain, _, w = bode(Ssys, logspace(-3,3), plot=False)\n", "ax.semilogx(w, 20*np.log10(gain), ls= '-', lw =1, label='$\\mathcal{S}$', color='k')\n", "\n", "WS = tf([0.01, 1],[1, 1])\n", "gain, _, w = bode(1/WS, logspace(-3,3), plot=False)\n", "ax.semilogx(w, 20*np.log10(gain), ls= '-.', lw =1, label='$1/\\mathcal{W}_\\mathcal{S}$', color='k')\n", "\n", "\n", "ax.set_ylim(-80, 60)\n", "ax.set_yticks([-80,-40,0,40])\n", "ax.legend()\n", "ax.grid(which=\"both\", ls=':', lw=0.5)\n", "ax.set_ylabel('Gain [dB]')\n", "ax.set_xlabel('$\\omega$ [rad/s]')\n", "\n", "fig.tight_layout()\n", "#fig.savefig(\"robust_design.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 states have been removed from the model\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(3,2.3))\n", "\n", "# 相補感度関数\n", "P = tf(1, [1,1])\n", "Tsys = minreal(P*(1/6))\n", "gain, _, w = bode(Tsys, logspace(-3,3), plot=False)\n", "ax.semilogx(w, 20*np.log10(gain), ls= '-', lw =1, label='$\\mathcal{T}$', color='k')\n", "\n", "WT = tf([5, 1],[1, 1])\n", "gain, _, w = bode(1/WT, logspace(-3,3), plot=False)\n", "ax.semilogx(w, 20*np.log10(gain), ls= '-.', lw =1, label='$1/\\mathcal{W}_\\mathcal{T}$', color='k')\n", "\n", "\n", "ax.set_ylim(-80, 60)\n", "ax.set_yticks([-80,-40,0,40])\n", "ax.legend()\n", "ax.grid(which=\"both\", ls=':', lw=0.5)\n", "ax.set_ylabel('Gain [dB]')\n", "ax.set_xlabel('$\\omega$ [rad/s]')\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 章末問題" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "章末問題2" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAELCAYAAAAlTtoUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABD8UlEQVR4nO3dd3hUZfbA8e/JpBcSAoRQQ+89NGkGQQW7LqKuJdjXrrs21F1hLVjWvrq2dbH97KLSVERCFRWpofdeQ0tIz5zfHzNgQMpkJslMMufzPPPMnTvve++Z5GZO7r1vEVXFGGOM8USIvwMwxhhTdVjSMMYY4zFLGsYYYzxmScMYY4zHLGkYY4zxmCUNY4wxHgv1dwC+Ov/88zU1NdXfYfhs8+bNNGrUqFrs19dtelO/LHU8LetJuZOV8dfvtCL447ME47HpafnyKDN69Oj/quoNHgd2mKpW6Ud6erpWB9OmTas2+/V1m97UL0sdT8t6Uu5kZfz1O60I/vgswXhselq+PMoAo9SL79yAP9MQkduAQqA+8JKq7vdvRMYYE7wCOmmISDegl6peIyL9gEeBe/wcljFHKXEqu7Lz2bY/n50H88kpKKag2MmKDUXs+GUTUeEOEmPCaVgzmnrxkUSGOfwdsjFeEw3gYURE5J/AIVV9WkRigSWq2rR0mY4dO2pmZuaR1+np6YwYMaJyAy0HOTk5xMbGVov9+rpNb+qXpY6nZU9Ubn++k6VZJaw94GT9viK25gqFJZ7HmhwtNIkPoUkNB20SQ2hcI4QQEc834Af+OD6D8dj0tHx5lBk4cOBoVR3lcWBuAX2mASQDv7qX83FdojpKamoqS5YsqdSgKkJGRgZpaWnVYr++btOb+mWp42nZw+VUlWXbDzJ+0XYyVu5ixY5DAMRGhFI/2sGVvRvTvE4sDRKiSI6PJDYilMgwBz//NIduPXuTW1jMnpxCtu7LY/O+XJZtO0jm1gPM3Z4PQO3YcPq3rMPZ7ZNJa10nIM9E/HF8BuOx6Wn58irjjUBPGjuBaPdyHLDLj7GYILM338mLP6zim0XbWLf7EKEhQs+miTw4tA39WtSmXb0azJgxnbS09setHxsu1E+IAqBF0h/f33Uwn1lr9jBj1W6mr9rNuAVbiYsMZWiHZC7p1pBeTRORAD8DMcEn0JPGl8Cd7uWOwDd+jMUEAVVlztos3vtpA1OW5aGsplfTRG7o14whHZJJjAkvt30l1Yjkkm4NuaRbQ4pLnMxZm8XXC7cxackOPp23hdZ147imTwoXdWlATESg/6maYBHQR6KqLhCRZSJyA9AYeMTfMZnqqbjEyfjF23ht2lpW78qhZnQYQ5qEMfLSfjRKjD71BnwU6ghhQKs6DGhVh8cLOzB+8TbenbOBh8dl8tSkFfy5d2Nu6NeMOnERFR6LMScT0EkDQFWf9XcMpvoqKC7hi9+28vr0tWzam0ub5Dieu7Qz53aqx9zZMyslYRwrKtzB8O6NuDS1IfM37ed/s9fz1ox1jJ29gSt6NuamAc2OXPYyprIFfNIwpiIUlzj5dN4WXp66mh0H8+ncKIG/n9eOQW2SCAkJjPsIIkJqSk1SU2qyfs8h/pOxhg/mbuTDnzdyWY9G3DmoJUlxkf4O0wQZSxomqKgqv+4o5p8vzGDdnkOkptTkX5d2pm+LWgF907lp7RieGdaZOwe15PXpa/n4l8188dtWbujflJsGNCMuMszfIZogYUnDBI05a/fw9OQVLNpSQMukMN66pjuD2yYFdLI4VsOa0Tx+UUdu6NeM56as4pUfXWcftw1swdWnpRARGnjNdU31YqPcmmpv2/48bvngN/781s/syi7g+g7hfHv3AM5sV7dKJYzSmtSO4ZUrujL+9n50aBDP4xOXc+bzM/h+6Q4CucOuqfosaZhqq6jEyZsz1jL4+en8uGIXfzuzFdPuTaN/wzAcAXLfwlcdG8bz/vW9eO+6nkSEhnDT+79xzTu/sHpntr9DM9WUXZ4y1dIv6/fyyFdLWLUzhzPaJDH6gvZ+aQlVWQa0qsOku/rzwdyNvDBlFUNemsnVvVO4Z3Ar4qPtfocpP14nDRGJAq4G0oB4YDMwCRivdn5s/GRPTgFjJq3gi/lbaJAQxZtXp1bpy1BlEeYI4dq+TbmwSwOe+34l7/20ga8XbuXes1tzeY/G1ebsyviXV0lDRE4H0oFFwFfAPqAW0AYYLCL/UtVN5RWkMafiVOWDuRt55tsV5BaWcEtac+44owXR4cF3Mp0YE84TF3fkyl4pjB6/lIfHZfLpr5t5/KKOdGwY7+/wTBVX5r8oEWkBRKvqdScpc5aI7FDVQp+iM8YDS7Yc4LG5+aw/kEnvZok8dmEHWtaN83dYfteufg0+vqk33yzaxmMTlnPhq7O4uncKfz2rNfFRdsnKeMebf8O2quqakxVQ1e9FxHodmQp1IK+I575fyftzNxIXJrx0eRcu6Fw/KC5FeUpEuLBLA9JaJ/G8+2c1cckO/n5eW/tZGa+UufWUquaJSE0RGSMit4pIXRFZICKbRWRAqXL55RuqMS6qyrgFWxj0XAYfzN1I+mlNGNM/igu7NLAvwROIjwpj9IUd+Pq2fjRIiOSujxdy5ds/s2ZXjr9DM1WMt01uXwPqABcA3wJTgb8BI8spLmOOa/XObC5/cy73fLKIBjWj+eb2foy6oD0xYZYsPNGxYTxf3tqXxy/qQObWAwx9aQbPfreCvLLMImWCmrd3CVep6qPi+rfuI1W9F0BEGpdfaMb8LrewmJenruHtmeuIiQjlyYs7cnmPRgEzTlRV4ggRruqdwtntkxkzeTmvTlvL1wu3MfqC9gxqW9ff4ZkA523SWAOgqioiU0qtP+h7SMb8TlX5ftlORn+zlG0H8rk0tSEPDm1DrVgbItxXdeIieH54F4Z3b8Tfv8rk+nfncXb7ujx6fnsbRdeckLdJ4woROTxXdy8RaeBeHgC86XtYxsCmrFwe/SaTaSt307puHJ9d0ZUeTRL9HVa107tZLSbe2Z+3Z63j5amrGfz8dO4e3JJr+zYlzGGDRpijeZs0QoDD1wV+KbVsTWyNz4qcystTV/PqtDWEhgiPnNuW9D5N7AusAoWHhnBrWgvO71SfUd8s5clJK/hy/laeuLgDqSmWqM3vvE0aN6rq5mNX2j0N46uZq3fzyKw8duau4tyO9XjkvLbUi7dLJZWlUWI0b6d3P3JJ8E//+YnLujeifw0b5MG4eNO5byQQdpymjSFAE2CEz1GZoLPjQD6PTVzGxMXbqRstvHtdT05vVcffYQUlEeHs9sn0a1Gbl6eu5u1Z65noUHITN3NpakNr1hzkvDnfrwvsBDYC/YA97uX1gPXNMGVSXOLk7ZnrGPRcBlOW7eSewa14rG+UJYwAEBMRyshz2jLxzn7Uiwnh/s8XM/yNn1i5w0bQDWbeXJ56SFVzAUQkT1U/PfyGiHQvt8hMtTdvw14e+SqTFTuySWtdh9EXtCelVgwZGVv9HZoppU1yDUb2imRPbAuenLycc1+eyfX9m3LXoJZBObZXsCvzb/xwwnBrIyIDgW3AGUCv8grMVF97DxXy1OTlfDpvC/XiI3n9qlTObh8cI9FWVSEiDO/RiMHt6vLU5OW8MX0dExZtZ9QF7TmznfXtCCa+/pvwAvBPYBCuS1TX+ByRqbacTuXjXzfzzHcryMkv5ubTm3HnGS2JibD/VquKxJhwnhnWmUu7N+LhcUu48b15DG5bl1EXtKNhzeo7X4n5nTc3wpsCG1XVqarZwD3HKZMAhKjqXt9DNNVB5tYDPPJVJgs376dn00Qev6gDrWwk2iqrR5NEJt7Zn3dmrefFH1Zz5vMzuGtwS67vZ307qjtvfrtbgLtF5Lh3KkWkHXCpJQwDrpFoH/06kwv+PYst+3J5fnhnPrmptyWMaiDMEcLNpzfnh7+dTr+WtXlq8grOfXkmv6y3P/3qzJt7GkUi8hrwpIj0APYC2UBtoAbwqaq+WK5RmipHVfly/lbGTF7O3kOFXNU7hb+d2dqmHq2GGiRE8dY13ZmybCejvlnK8Dd+4tLUhow8py2JMeH+Ds+UM68uJruHPf+r+zJUNyAJ183wuTbxktmc7eSyN+byy4a9dGmUwNhre9Khgc0YV92d2a4ufVvUOjKw5JTlOxk5tA2XptrAktWJT3cgVXU/8GP5hGKquuz8Il76YTXvzMkjPqqYpy7pyPDu9oURTKLDQ3lwaBsu6daAR8Zl8sAXS/h03haeuLgDbZJr+Ds8Uw6s2YrxmaoyfvF2Hp+wjN05BQxoEMqL16ZR0y5NBK1WdeP45ObefP7bFsZMXsG5L8/i+n6uvh3WWq5qs9+e8cmaXdn84+ulzFmbRYcGNXjj6lQOrFtkCcMgIlzavRGD29bl6W9X8OaMdUxYtI2/n9eOIR2SrV9OFeVT2zgReUhE3ncvDxeRtPIIygS+QwXFjJm8nCEvziRz6wEeu8g1lWjXxjX9HZoJMDVjwnnqT5344pbTqBEVxi0fzuead36xqWarKF/PNOoDEwBU9VMR+Q1I9TkqE7BUlW8zd/DYhGVsO5DPMPekSLVtUiRzCqkpiUy4ox8f/ryJ575fyZAXZ3Bdv6bcOaglsXbJqsrw9Tc1DSgCEJGzcTW7NdXUut05jBq/jBmrdtMmOY6Xr+hKd5sUyZRBqCOE9D5NOLdTPZ79diVvzljHVwu28tA5bbmwS327ZFUF+Np1cytwjYhkAO8Df/E5IhNwctyXos5+cQbzN+7jH+e1Y8Id/SxhGK/Vjo3g6WGd+Oq2vtSLj+TuTxYy/I2fWLbNZowOdL42uZ0LDHP3Dt8DNCuXqExAcDqVrxZuZczkFezOLuDS1IbcN6Q1SXGR/g7NVBNdGiUw7ta+fPbbZp7+diXnvTLzSEdQE5i8GXvqSyDhOG+FALGADY9eDSzZcoBHv8lk/qb9dG4Yz5tXp9pNblMhQkKEy3o0Zkj7ejw/ZSXvz93IhMXbubAJDHCq9fMJMN6caXwHZOCacOlvwOvAIVzzhF9ebpEZv8jKKeBf36/k4183UysmnGeGdWJYt4b2h2sqXHx0GKMv7MBlPRrz6DeZ/G/pPua/NpvRF3agS6MEf4dn3LwZe+qNw8siMktVl5V6bS2nqqjiEifvz93I81NWkVdYwvV9m3Ln4JbUiLSxokzlale/Bp/efBpPfTSVcevzuejV2VzWvRH3DWltrfQCgK+tpxqJyGh+n4TJq9+oiCQB9wNZqjrGvS4MeBRYDSSr6tM+xmpOYM6aPYwav5RVO3Po37I2j57fjhZJNgqt8R8R4bT6odzxp368MnU1/521nkmZ27lncCuuPi3Fhl/3I59+8qr6HDAfaA/8Clzm5XZ2Aas4OuncDqxX1XeBMBG50JdYzR9t2ZfLvxfk8+e3fya3sIQ3rk7lvet6WsIwASPWPU/5t3cPoEujBP45YRlDXpxBxspd/g4taImqel9ZpHGplyHAAFV9z8ttjQCaqOoo9+sZwH2q+rOInAf8SVWvPbZex44dNTMz88jr9PR0RowY4U0IfpWTk0NsbGyl7KuwRJm8voiJ64pQlPObhzOkSRjhjvK5b+HrZ/GmflnqeFrWk3InK1OZv9OK5o/Pcuw+VZVFu0v4aEUhO3OVTnUcXNE6nHqxnv/vG+jHpqfly6PMwIEDRx/+vi0TVfX6AazBNcrtNFxnHJNOUX4U8MGxD/d7I4BRpcquAlq6lwcD3x1vm+np6VodTJs2rcL34XQ6ddLibdpnzFRNeWCC3vbhb/r5pKnlvh9fP4s39ctSx9OynpQ7WZnK+J1WFn98lhPts6CoRN+cvlY7/ONbbT5yoj42fqnuzy30aZu+xlSedXw97jwtU/r7tiwPX+9pDFLVjQAi4gBGniJBjSrDtncChycdjgPsfNQHmVsP8NiEZfy8fi9tkuP4+Kbe9G5Wi4yMDH+HZkyZhIeGcOOAZlzcrQHPfb+S/85ez5cLtnLvWa25rEcjHNbSr0L5mjRSRCTFvRwDDAMe93Gbh30JdAUWAR2Bb8ppu0FlV3Y+z323ik9/20zN6HAev6gDl/doRKjdSDRVXO3YCMZc0okre6XwzwnLeGjcEt6fu5F/nNeO05rX8nd41ZavSeMZYLl7uRC415uNuGcA7AEki0hdVd0JvAY8LiLXurf9uY+xBpX8ohLemb2eV39cQ2GJkxv6NeX2M1oSH2VNaE310qFBPJ/c1JtJS3bw5KTlXPHWXM7pmMzIoW1plBh96g2YMvE1adyvqjMAxDXSWBNvNqKuGQBvO2ZdAXCfj/EFHVVlcqbrj2fLvjzObFeXh85pS9PaMf4OzZgKIyKc26keg9om8daMdbyWsZYflu/ixv5NuTWthU38VI68+kmKSENc40wNKTUqZQiuM43zyic0U1aZWw/wz/HL+GWD677Fhzf0om8LG3jYBI/IMAd3DGrJsO4NeXryCl6dtpbP5m3hgSFtuLhrA3+HVy14m353AHcAfYB67nUKTCyPoEzZ7DqYz7PfreTz+VtIjA7nyYs72g1BE9TqxUfx4uVdufq0Jvxz/FL+9tki3pu7kfPrl5Dm7+CqOK+ShqoWAw+ISCNV3Xx4vYjYNZBKlF9Uwn9nree1aa77Fjf1b8ZtZ7SwoT+McUtNqcm4W/vy5YKtPPPtCh7fXMDCvPk8MKSN3e/wkjej3P4DeMzdzvdqESm9jQ7A8PIKzhyfqh656bd1fx5nt6/LyKFtaWL3LYz5g5AQYVhqQ4Z2SOah937ku+U7+X7ZTq7r25TbBjYnzv7JKhNvzjQWuxMGQCKu1lPF7td1yiUqc0KLt+znsQnL+HXDPtrWq8Gzl3aiT3O7b2HMqcREhHJxy3AeHN6LZ79byevT1/LZvM389axWXNbdmqF7yptRbr8q9fIRVc0//EJEfiyPoMwf7Tx83+K3LdSODeepSzpyaXe7b2FMWdWLj+L54V0Y0acJj09czsPjMnl3zgYePrcdp7ey/3tPxdd2aFeIyGVAOK75NBoCLX2OyhyRW1jM2zPX8/r0tRSXKH85vbmdUhtTDjo1TOCTm3rz3dKdjJm8nPR3fuH0VnV4+Ny2tKprg3aeiK9JIx24FdckTAC9fNyecStxKl/O38K/vl/JzoMFDO2QzIND25BSy+5bGFNeRIQhHZI5o00S7/20gZenrmbIizO4omdj7jmzlc3fcRy+Jo2PgDWqWgggIvYTLgez1+zhiYnLWbb9IF0aJfDqn7vRvUmiv8MyptoKDw3hhv7N+FO3hrw0dTUfzN3I1wu3cdvAFlzbtwmRYQ5/hxgwfE0a1wOjRCQP1+WpBMAmkvbS6p3ZjJm8gh9X7KJBQhQvX9GV8zvVo1QHSmNMBaoZE86oC9pz9WkpjJm0gqe/XcEHczfy4NA2nNep3qk3EAR8TRoPAhmq6gQQkQG+hxR8dmcX8O7SAmZ8P5PocAcjh7YhvY/9d2OMvzSvE8vb6d2Zs2YPj01czh0fLeB/s9dzjnUO9Dlp9AS2Aivdr5uLSGdgoqqu83Hb1d7hznn/yVhLXmExV5/WhDsHtSQxJtzfoRljgD4tajPhjn58MX8Lz363ksc3FbA4bwH3D2lNw5rB2TnQ14bJfwc+LjUV6824Rqcd5uN2qzWn+yb3wH9l8Ox3K+nTvBZP9Iti1AXtLWEYE2AcIcLw7o3IuDeNC5uH8f2yHZzx3HSe/nYFB/OL/B1epfM1aVynql0Bp/t1uKqWAM193G619dPaLC54dRZ//XQRdeIi+Pim3rx5TXeSY6xjkTGB7HDnwB//lsZ5Hevxn4y1pD2bwbtzNlBU4jz1BqoJXy9PtRORe4DTRWQjUEtEQnD11zClrNmVw1OTV/DD8p3Uj4/kxcu6cEHn+oRY5zxjqpT6CVE8f1kXruvXlCcnLefRb5Yyds4GHhjSmrPbJ1f7hiu+Jo2xuEa7fRdXX40HgEdwzR1ugKycAl6aupoPf95EVJiD+4e05rq+Te0mtzFVXIcG8Xx4Qy8yVu7myUnL+csH8+meUpOHzm1Lt8bVtxGpT0lDVdcDfz38WkRqqOrHPkdVDeQXlfC/2Rt4bdoacotK+HPPxtw1uKV1FjKmGhERBrZJon/L2nz22xaen7KKS16bw7kd63H/kNbVsjOuT0lDRP4C/Alw4Lo/kgS0K4e4qiynUxm/eBvPfLuSrfvzGNw2iQeHtqFFkg1LYEx1FeoI4Yqejbmgc33emrmON6av4/tlO7iqdwqpEXrqDVQhvl6eqoerBVVdYAlwps8RVWG/rN/LExOXsWjLAdrXr8GzwzrRx2bOMyZoxESEcvfgVvy5Z2Ne+GEV787ZwMcO2Bqxttr0vSqPJjtbcSWPbOCKcthelbN2dw43vz+P4W/8xM6DBTx3aWfG397PEoYxQSqpRiRjLunEt3cPoGVNB2Mmr2DQc9P5euFWnM6qfebh65nGDGAA8B3wDfCrzxFVIbuzC3hp6io++mUzUWEO7j2rFdf3a0ZUeNX/b8IY47tWdeP4a2ok4Q078MSk5dz18ULenrmeh85py2nNa/k7PK94lTREpJ6qblfVqaVWnyYijcoproB2qMA1XPkbM9ZSWOzkql6NuWOQ3eQ2xhxfnxa1GX97P75auJV/fbeSK96ay6A2SYw8p+rd7/T2TONNETneWcVpwFAf4gloxSVOPp23hRd+WMXu7ALO6ZjMfWe3oalNs2qMOYWQEOGSbg05p2O9Iy0rz35xJpf1aMTdg1uSFBfp7xA94m3SiAYuxHVJqrTi45St8lSVH5bv4qnJy1m7+xDdU2ry+lWppKZU37bYxpiKERnm4Ja05gzv3pBXflzDB3M38tWCrdw8oDk3Dmjq7/BOyaukoaqDRKQ7rsSxHPhYVZ0i0qBcowsACzbtY8ykFfyyYS/N6sTw5tWpnNmubrXv9WmMqVi1YiMYdUF70vs04enJK3jhh1V8+PNGzk1R+js1YKdy9vpGuKrOA+aJSGvgERHZBrxfbpH52YY9h3j2u5VMXLKd2rERPHFxB5t83hhT7prWjuH1q1OZt2EvT0xazv8y9/PTyzN5cGgbTm9VJ+D+QfW19RTAZlxDiDwO9MA10m2VlZVTcOSUMTw0hLsHt+TG/s2IiSiPH5Uxxhxf9yaJfHlLH/71yVQmbC5hxP9+pV+L2jw4tA0dGsT7O7wjvP4mFJF44E7gNuB7YJCqLi2vwCpbXmEJ78x2z21RVMLlPRpxVxW6OWWMqfpEhB7Jodw1bAAfzN3IKz+u5rxXZnFRl/r87azWNEr0/xwe3ja5fRK4DvgC6K2qG9zru6rqgvILr+KVOJUvftvCc1NWsvNgAWe1q8v9Q9rQIinW36EZY4JUeGgI1/VryrDuDXk9Yy3/nbWeSUt2cM1pKdx+Rgu/xubtmca1wDhgF3CN+5qbAIOB/uUTWsVSVTJW7mbM5OWs2plD18YJ/PvP3ejRJNHfoRljDAA1IsO4f0gbrj4thRemrOKd2ev5dN5mhjQWevct8cuwJN4mjaGquvDYlSIyzrdwKsfiLfsZM2kFP63LokmtaP5zZTeGdKj+4+AbY6qmevFRPDOsM9f3a8bT367g0xW7mPWvDP56Vmsu7tqgUltaedvkduEJ1i/2KZoKtikrl2e/X8n4RduoFRPOPy9szxU9GxNmLaKMMVVA6+Q43hnRg/98MZXJ2yO497NFvD1zXaW2tAqKJkH7DhXyyo9reH/uBhwhwh1ntOCmAc2Iiwzzd2jGGFNmbWs5uPnivkxcsp1nvlvBiP/9St8WtRg5tG2Ft7Sq1knjyERIGWs4VFDM8O6NuHtwK5LjrUWUMaZqCwkRzu9cn7PbJ/Phzxt5eaqrpdWFXepz71mtK2y/1TJplDiVcQu28tz3K9l+IJ9BbZJ4YGgbWtWtWgODGWPMqYSHhnBt36b8KbUhb0xfy9sz1zN5yQ4GNgqhc49CasaEl+v+ql3SmL5qN2MmLWfFjmw6NYzn+eFdquwQxMYY46kakWHcd3Ybrurtamn12bwtzHl2GrcNbMGIcpwAqtokjcytB3hq8gpmrdlDo8QoXrmiK+d2rEdIgI7fYowxFeFwS6tOEVn8mBXHU5NX8N6cDeXW0iogkoaIPINrqlgFrlTV5SISBjwKrAaSVfXp49XNLVLu+WQh4xZsJSE6jH+c144rezcmItQmQjLGBK+GcSG8c34PflqbxVOTl/+hpZW3/N7WVEQ6A++palfgLeAx91u3A+tV9V0gTEQuPF79HzYVMWnJdm5Ja870+wZyXb+mljCMMcbttOa1+Oq2vvz7z13JLXSNaXXVf3/2enuiGjjz1boTyPWqeqeIzADuU9WfReQ84E+qeu2xder3HKq7VsyjJHsPAOnp6YwYMaJS4y4POTk5xMZW/tAlFbFfX7fpTf2y1PG0rCflTlbGX7/TiuCPzxKMx6an5b0tU+xUpm0u5ps1hWQ+ft5oVR3lcWCHqWqlPYBRwAfHPkq9fy/QxL28CmjpXh4MfHe8baanp2t1MG3atGqzX1+36U39stTxtKwn5U5Wxl+/04rgj88SjMemp+V9LZNbUKzAKPXie7xS72noSbKa+yxjnroHPwR24pohECAO1zhXf7Bw4cLyC9CYcjR27FjS0tL8HYYxfxAV7gBI86au3+9pAIhIByBeVTNEpIaIxAJfAl3dRTryx6llAVi0aFElRVmx5syZU2326+s2valfljqelvWk3MnKvPvuux7HFOj8cXwG47HpaflyKnO6ZxEdze+tp0RkAPAesMc9booCPYHXgMdF5FqgEPjcb0FWAksavtUPxKRRnVjS8L5+ACcNrwTUjXBviMh8TnAWUsW0wnUfpzrs19dtelO/LHU8LetJuZOVSQMyPIwp0Pnj+AzGY9PT8uVR5gJV7VaGuIBqkDSMMcZUnoC4p2GMMaZqsKRhjDHGY5Y0jDHGeKzaJQ0RcYjIaHerLGMChogki8hdInKb2NzCJsB4+t1Z7ZKGqpYAG6iGn81UeX8BPgK2AGf4ORZjjuLpd2d1/WK1JmEmELUFduMa7aCzn2Mx5nhO+d1ZXZOGMYEoTF1t3B0EQMdaY7xRbZKGiNwtIh+ISFt/x2LMCSwTkSSgHrDA38EY442ATxoi0kZExovI6aXW3SYiN4rIoyKSAKCqL6rqVcAKoCWu3pDGVDhPj1HgZeBSoDEw1Q+hmiDk6fHpbpxxyu/OgD9FVtUVIpINCICIdAN6qeo1ItIP1+x+95Qqr8DDfgnWBCVPj1FV3QW86sdQTRAqw/Hp0XdnwJ9puBWWWr4IWOpeXuh+bYy/2TFqAlm5HZ9VJWmUlgzsdS/nA/X9GIsxx2PHqAlkPh2fVTFpeDQ5kzF+ZMeoCWQ+HZ9VMWl8CXRxL59wciZj/MiOURPIfDo+Az5piEgKrrv5fUUkSlUX4Gq6eAOuucMf8WuAJujZMWoCWXkfnzafhjHGGI9V+pmGiDwjIgtEZP7hjngiki4i20VkjYhsEJH33OsHisiD7kenyo7VGGPM0Sr1TENEOgMlqpopIrcAg1R1mIicqapT3GWGA9nANGAmrvnCw4EpwOl6TMDnn3++pqamVtpnqCibN2+mUaNG1WK/vm7Tm/plqeNpWU/KnayMv36nFcEfnyUYj01Py5dHmdGjR/9XVW/wOLDDVNUvD1wDtr18nPVv4up0eAYwudT6eUDKseXT09O1Opg2bVq12a+v2/SmflnqeFrWk3InK+Ov32lF8MdnCcZj09Py5VEGGKVefHdX2JmGiIwCWhwnSV3lfv9e4HNV3VCqTk3gYVW9V0T+DJyrqle635sF3KeqP5XeXseOHTUzM/PI6/T0dEaMGFHun6ei5eTkEBsbWy326+s2valfljqelvWk3MnK+Ot3WhH88VmC8dj0tHx5lBk4cOBoVR3lcWCHeZNpfH3gOstIO876m3B1bwcYBIwr9d4ioPmxdexMI/D2G+j/zdmZRtnZmYb39avbmUaljz0lIh2AeFXNEJEagFNVc9xv91TVN93Ls4Ax7joRQJGqrj12e9M2FzH8jZ+IjQglOtzhfg4lNsJBdEQoMRHu5fDQo8tEhBIbHkp0hIMwR8C3PDbGmIBQqUnDPY3ge8Ae92yXiutGNyLSENh8uKyqFojIKBF5ANf8Azceb5uRDkGA3dkFHCoo5lBhMYcKSjhUWIynV97CQ0OoERlKjcgw4qLCXMtRYdSIDKNGVKj7+ej18VG/L0eGOXz4qRhjTNVRqUlDVWcATU7w3hZg9DHrJgGTTrbN0+qHMvbm0463PfKKSsgpKCa3wP1cWFIqsbiTS0ExOYXF5OQXczC/mIN5RRzIK2Lr/jwO5rleF5Y4T/q5wkNDqBkdRs3ocBJjwqkZE05i9OHnMNdzqUfN6HBLNMaYKingh0b3logQHe66VEWcb9vKLyrhYH6RK4nkF3Ewr+hIgjmY70oy+w8VsTe3kH2HClm+/SD7DhWyP6/ohGc70eEOakaHUycugqS4CIqzC1hUvJqkGhHUiY1wPcdFUDs2wi6fGWMCRrVNGuUpMsxBZJiDpDImnxKnciCviL2HCtmXW+h6PlR4JLlk5RSyO6eAjVm5bN1bzI+bV/1hGyKQ6E4udeIiqBcfSf2EKOrHR7meE1yv7czFGFMZLGlUIEeIHLkkdSoZGRn06TeAPTkF7M4uYFd2Abuy839fPljA7ux8Vu7IZld2wR/q14oJp15C5JFk0iAhisa1okmpFU1KYgxR4ZZUjDG+q/JjT51++ukaFxdHnz596NOnj7/D8VpZ2nIXO5V9+UpWvpKV5yQrX9mbp+zNV7LynWTlKfklR9dJiBCSooWk6JAjz3WjhVjNo05CcLWFt34aZWf9NLyvX936aVT5M42mTZsyduxYf4fhs4yMDNLS0splW6rKwbxiNu49xMasXDZmHWJDVi6bsnJZlXWIWVtLn6kIdWsU0zIpjhZJsbSsG0vLpDhaJsVS04MzpIr4LN7UL0sdT8t6Uu5kZcrzd+pv/vgsFbHPQD82PS1fXmW8UeWThvkjESE+OoxO0Ql0apjwh/dzC4vZtDeXDXtymfrLYpyxdVizK5tP520mt/D3U5TaseG0SIqlTXIN2tWvQYf68bSsG2s35o0JYpY0glB0eChtkmvQJrkGkXtWkJbWGQCnU9l+MJ/VO7NZsyuH1TtzWHVMMgl3hNAqOZYO9eNpX78G7dzPdiPemOBgScMcERIiNHDfRE9rnXRkfYlT2ZB1iKXbDrJ06wGWbjvId0t38PGvrr6YYQ6hXf14UhvXpFtKAgV5J+/XYoypuixpmFNyhAjN68TSvE4sF3R2zUGvqmw7kE/m1gMs2LSf+Rv38eHPG3ln9noAnl0wldSUmvRqlkif5rVoXicW9ygAxpgqzJKG8YrI72clZ7dPBqCoxMny7Qf55IdfORiRyG8b9jJxyXYA6sRF0Kd5Lfo2r81pzWvRKDH6ZJs3xgQoSxqm3IQ5QujUMIG9TcJIS+uKqrJ5bx5z1u5hztosZq/J4uuF2wBIqRXNGW2SGNSmLj2bJhIeajfXjakKrJ9GgAiG+TRUlW2HlGVZJSzZU8KyrBKKnRDpgA61HXSu46BzUighhYesn0aAsX4a3tevbv00/DZzX3k9bD6NwNuvp9s8VFCkU5bu0Ae/WKw9n5iiKQ9M0KYPTtBznpmk//fzRt2bU1Du+yxLWZtP43c2n4b39W0+DWPKSXR4KIPb1WVwu7qodmDptoN8m7mDz35ey8gvl/D3rzLp26I253euz9AOycRE2OFqjL/ZX6EJCCJChwbxdGgQT2r4Nuq06sb4xduYuHg79362iH98ncl5neoxvHsjUlNqWkssY/zEkoYJOKUTyIND2jB/0z4+/XULExZv49N5W2hWJ4bh3RsxvHsjjwaDNMaUn0pvsiIiN4jIJBFZJCKtSq0/U0SWH6f8DyKyRUTmioh1Ow4yIkJqSiJPD+vELw8P5plhnagVE85Tk1dw2pipPPD5YpZvP+jvMI0JGpU93Ws4MENV3xaRR4CzgFUAqjpFROKPKX8R8LCq/lyZcZrAFBMReuQMY9XObMbO2cCX87fwybzNtEkMoShpJ4PaJBESYpeujKkolXqmoaqFqnp4pqFi4P+OKVJ4zOuBwBci8qWI1K3wAE2V0apuHE9e3JG5Iwfx4NA27MpVbnxvHue8PJMJi7dR4qzaTcmNCVQe9dMQkQbAbUAaEA9sxjV39/9UNfsEdUYBLY7z1tXADbjmA39IVceWqrNBVZscsx0H8BDQX1XPOnZjHTt21MzMzCOv09PTGTFixCk/U6AJhn4aFVn/QHYOS7MjGb+2kO2HlOQY4fxmYfSuF4rjmDMP66dRdtZPw/v6QddPA/gT8C/gQqAn0BLoDQwHngQ6edPWF2gMLDpm3YaTlJ97vPXWTyPw9uvPtvDFJU6duHibDnlxhqY8MEEHPjtNJy3epk6ns8zbt34av7N+Gt7XD6p+GiLSAdioql8c89ZqYC7wqYj0FJE4PcEZx0lsB349xf5DVNUpIpHAjDJu3wQhR4hwTsd6DO2QzJRlO3n2u5Xc8uF8ujZOYOTQtvRsmujvEI2p0k51I3ypOyMhIv1VdebhN0SkNdAd+Ajw6AKyiCQBXwDjgIPAI6Xe6w4kishgVf1BRGoBM0VkCrASeMzzj2WCnYhwVvtkzmiTxBfzt/D8lFUMf+MnBrety1l1bOh2Y7x10qRxOGG4vSUi+4ErVHU98BxwLXCtqv7Xk52p6i6g/wnemwfUKPU6C2jnyXaNOZFQRwiX9WjMBZ0b8M7s9bw2bQ0ZK0vYGraKW9Ka2+RRxpRRWVpPTQX+Agxwv66vqruxL3ZTBUSFO7htYAum/i2N7nUdvDR1NWe+MJ0py3b6OzRjqpSyJI3ZwEYgwf368L9ojcszIGMqUnJ8JH/pHMn/3diLyFAHN743j1s++I3d2QX+Ds2YKqEsSSMcWAsMEJGLgc0i8hegerQpNEGlT/PaTLqrP/ed3Zqpy3dx1gvT+XrhVo6+ImuMOZZP82mISD0gSlXXlV9IZWPzaQTefgO9LfyxZbfmOPnvkgLWHXDSNclBertwEiJDrJ9GKdZPw/v6QddP4/ADSAdeBARXH40O3rTxLe+H9dMIvP0Gelv445UtLnHqm9PXaquHJ2mX0d/plKU7rJ9GKdZPw/v61a2fRlkuT50BLHbv71Pg9TJnKGMClCNEuHFAMybe2Z968VHc8N483l9WQH5Rib9DMyaglCVpTAD2AIhIV44/RIgxVVqLpFjG3daHG/o1ZeqmYi7892xW7ihrv1Vjqq+yJI29wGUiMhb4ERhZIREZ42cRoQ4eOa8df02NIOtQAef/exYf/bLJbpIbQxmShqpOBW4HXsU1/tTkigrKmEDQqU4ok+8aQK+miYz8cgn3f77YLleZoHeqsadeBaKO81YIkAScUxFBGRMo6sRFMPbanrz4wype+XENy7Yf5D9XptK4VrS/QzPGL051prET+AR4F4gEPncv/w9YUrGhGRMYHCHC385qzTsjurN5by7nvTKTH1dYT3ITnE7aT0NExN00CxG5VFU/K/XeO6p6XSXEeFLWTyPw9hvobeF9mU9jV66Tfy8oYFO2k4tbhHFG3ULi4qyfRlXZZ6Afm56Wryr9NB7GNUDh2cDTwHRv2viW98P6aQTefgO9Lbyv82nkFRbrPR8v0JQHJuiwFyZrbkGxzzEFOuun4X39YO6n8TSuUWhvA2KAy8qcoYypBiLDHDw3vDMjh7Zh3o4Shr0+h2378/wdljGV4qRJQ0Rai0g0gKoWq+pLqnqBqt6uqjvcZRqKiM1sY4KKiHDz6c25q1sEG7NyueDfs/lt4z5/h2VMhTtp0lDVlcDN7s58RxGXc4EBqrq3ogI0JpB1SQpl3K19iIlwcMWbc/n8ty3+DsmYCuXJ5akXgTQRWeR+zBKRFbimew1X1f8ryw5F5AYRmeTeVqtS60VE0kVkqIg0da8bKCIPuh+dyrIfYypLy7pxfHVrX7o3qcm9ny3iyUnLKXFaR0BTPZ1qutfDs/e9ICIvAU1w9c/YpqqbyrozEQkHZqjq2yLyCHAWsMr99qvAW6q6wF02EngG6IlrWPYpInK6Ox5jAkrNmHDeva4nj09Yxpsz1rF6ZzaXNrRD1VQ/p0wah6mqE1jnfnhFVQv5PUkUA/8HICIX4ZoB8HQRuRnX3OGdgD3uJFHgvrfSGNdEUMYEnDBHCKMv7ECr5Dge/XopK7dAu66HaFI7xt+hGVNufJpP46QbFhnF8Qc1vBq4ARgNPKSqY0XkI+ArVf1EREYDrYDxwLmqeqV7e7OA+1T1p9Ib69ixo2ZmZh55nZ6ezogRIyrgE1Us66fhW/3K6qfhaZnlWSW8siAPEeH2LpG0rVW15yK3fhre1w/afhru5JLofo71pn3vMdtqDCxyL38LDHUvdwKWAoOAcaXKLwKaH7sd66cRePsN9LbwvvbT8LTMJxOn6uDnMrT5yIn63k8bPAsuQFk/De/rB20/Dfc4VC+7X/YXEV/7aWwHfnUvZwA93MvhuG6yzwIauPcdARSp6lof92lMpUmKDuHLW/tweqs6/P2rTP7+VSZFJU5/h2WMTzy+pwHsA74DUNXJIrIc17hUHhORJOALYBxwENe9C4AXgBdF5HJcZyD3q2qBiIwSkQcAB3BjWfZlTCCIiwzjzWu688x3K3hj+jrW7s7htSu7kRAd7u/QjPFKWZLGgsML7pvVZaaqu4D+x1lfANxynPWTgEne7MuYQOEIEUYObUurpDhGfrmEC1+dzX/Tu9MiKc7foRlTZmUZRmQlMFxElgE3AddUTEjGVE9/Sm3IRzf15lBBCRe/OodpK3f5OyRjyqwskzBlqupVqtoOV+unhRUWlTHVVGpKTb65vS+Na0Vz/dhfeWvGOpsR0FQpZbkR/qOIdBKR54AxwKgKi8qYaqx+QhSf/eU0zm6fzBOTlnPPJwvJLSz2d1jGeMTjfhoi8mdcLZp+BNoDl6nqexUYm0dsPo3A22+gt4WvjH4antR3qjJhXRHjVhdRL9bVn6N+bFmuGFce66fhff2g7acB3A/8DAzD1ZdisTdtfMv7Yf00Am+/gd4WvrL6aXi6n5mrdmu3f36vbf8+Wb9euNWjOpXN+ml4Xz9o+2mo6jNAH1X9HFiNazImY4yP+rWszcQ7+9OuXg3u/GgBj36dSUFxib/DMua4PG5yKyLdgbNFxAEIcBowpKICMyaYJMdH8tFNvXl68grenrWeeRv38dLlXaxZrgk4ZbmAeitQ4n5sBmZXSETGBKkwRwiPnNeOt67pzvYD+Zz3yize/2mDta4yAaUsSeMnVX0K2Kiq7wAtKygmY4Lame3q8u1d/enZtBZ//3op1787jz05Bf4OyxigbEkjXkQeBraKyEKgbcWEZIxJqhHJ2BE9ePT8dsxas4chL85g0pLtdtZh/K4s82n86/CyiPQD4iskImMMACEhwrV9m9KneW3+9tlCbv1wPme1q8tjF3Wgbo1If4dnglRZ+mmkA8OBSFw3whupqt8vUVk/jcDbb6C3hQ+UfhplUeJUvttQxLg1RYSGwOWtwxnQMBQRKZftn4r10/C+fjD305iKa3a9FPdjuDdtfMv7Yf00Am+/gd4WPtD6aZTFut05Ovz1OZrywAQd9p/Zmrl1f7nv43isn4b39YO2nwauqVlXqepGVd0ILC5zhjLG+KRp7Rg+urE3T13SkbW7D3H+K7N4eNwS9h4q9HdoJkic9J6GiMwG6uG6HCXA4yKS516OBxIrPEJjzFFCQoTLezZmaId6vDh1Fe/9tJEJi7dzz+CW/LlXCuGhgTkUiakeTnV0PQu0UdWmqtpEVeupajNVbQqcXwnxGWNOID46jEfPb8/ku/rToUENRo1fxqDnMxi3YAslTmtlZSrGSZOGqn4F1BeRj0XkORGJLPWeT537RORNERnhXg4TkcdFJN09U1/pcj+IyBYRmevujW6MKaVV3Tg+uL4XY6/tQVxEGPd8sohzXprJlGU7rYmuKXeenMe+DeQCjYC7ymOn7vnFY0qtuh1Yr6rvAmEicqG73EXAw6raUFV7q6oNyGPMcYgIaa2TmHBHP165oiuFJU5ufG8e5748iwmLt9mZhyk3niSNeap6naoOB3IOrxQRrwbFEZFewB5cgx4edjGQ6V5eCFzkXh4IfCEiX4pIXW/2Z0wwCQkRzu9cn+/vGcAzwzqRX1zC7f+3gMHPT+eTXzdRWOz0d4imijtlPw0R+Q/wkftlH2COe/lcVX3g+LVAREYBLY5ZXQ94T1Xfdb+/QVXHisgq9/ZWi8hg4D5VPdu9HQfwENBfVc86dj8dO3bUzMzMI6/T09MZMWLEST9TILJ+Gr7Vr+79NLzlVOW3nSVMWFfExoNOEiKEgY1COb1RKAkRnt8wt34a3tcPun4awEZg2nEeG8ravhcYCWS4HxuAFcCZwEygs7vMxcD7x6k793jbtH4agbffQG8LX5X7aXjL6XTq9JW79Jr//qwpD0zQFg9N1Dv+b77O25ClTqfzlPWtn4b39atbPw1PhhG5WFXnH7tSRDp7kaDG4JoqllJnGlNEpAPQFVgEdAS+cZcJUVWn+wb8jLLuzxjjIiIMaFWHAa3qsG53Dh/M3cRn8zbzzaJttEmOY1hqQy7s0oA6cRH+DtUEuFOenx4vYbjXLyrHOF4D2ovItUAh8LmI1AIyReQl4DrgsXLcnzFBq1mdWP5xfjvmPjSIJy7uQESYg8cnLqf3mKnc8O6vfJu53e59mBPyeMDC8qalrqWpagFw3zFFsnANW2KMqQAxEaFc2SuFK3ulsHpnNp/P38K4+Vv5Yfku4iJDObNdXc7tWI9+LWv7O1QTQPyWNIwxgaNl3ThGDm3LfWe1ZuaaPUxcvJ3vl+7gy/lbiYsIpUMtpbDODvq1rE10uH1tBDP77Rtjjgh1hDCwdRIDWydReHFHZq/dw6TF25m0eAs3vf8b4Y4QejVL5Iw2SZzRJomUWjGn3qipVixpGGOOKzz09wRydq29RDXuyLQVu/hx5S5Gj1/G6PHLaFY7hgGt6nBa81r0blqL+Ogwf4dtKpjH82kEKptPI/D2G+ht4YOpn0Z5Ofaz7Mp1snh3CYt2l7BybwmFTtcopo1rhNAmMYS2iQ5a1XQQHeb9fB/BeGx6Wj6g+2kE+sP6aQTefgO9LXww9tPw1ck+S0FRif6yPktfnLJKL3tjjrZ8eJKmPDBBmzw4Qc9+Ybo++MUi/eTXTbp650EtKTl1nxBP9umtQD82PS0f6P00jDHmhMJDQ+jRJJEeTRK5i5bkF5Uwf9M+fl63lwWb9zNh8XY++mUzADUiQ+nSuCZdGyXQoUE87erXoH58ZKXNQGh8Z0nDGFOuIsMc9Glemz7NXU11nU5l3Z4c5m/az4JN+1iwaT8v/7iaw1fGE6LDaF+/Bu3q1aB9fVciaVbbbrAHKksaxpgKFRIitEiKo0VSHMO7NwIgt7CY5duzWbbtAMu2H2TptoO8+9PGI50Kw0NDSIpUumybT4ukWFomxdGybixNasXYJFN+ZknDGFPposNDSU2pSWpKzSPrikqcrNt9iKXbDrByRzZzl29k8ZYDTFyy/chZiSNESKkVTYs6sTSpHUNKrWhSEl3P9ROicITYZa6KZknDGBMQwhwhtE6Oo3Wya9aFjOidpKWlkVdYwro9OazZlcPqna7nNbtzyFi1+6jhTsIcQqOa0TSuFU1KYjQptWJoWDOK+glRNEiIIsGaA5cLSxrGmIAWFe6gff142tePP2q906nsOJjPhqxDbMrKZUNWLpv2HmJjVi7zNuwjp6D46O2EOUgId9Ji7c/Uj3clk/oJkTRIiCI5PpKkGpHERthX4qlYP40AYf00fKtv/TQqVlWbT0NVyS6CrDwnWXlKVr6yN8/JzpwiDhY7yMpXDhT88bsvwgEJEUJ8hBz1fHg5rCSf+jVjiA3D4xZf1a2fRpVPq02bNmXs2LH+DsNnGRkZpKWlVYv9+rpNb+qXpY6nZT0pd7Iy/vqdVgR/fJaKPjYLikvYcSCfrfvz2HEgn13ZBew6WMCubNfy7uwClu7N51Bh6TMWAXJxhAg1o8NJjAkjMSb890e067lmTDi1YiKoGRPG3sW/cVq//kSEOsrtc5dXGW9U+aRhjDHeiAh1kFIr5pTjZx0qKHYnlHwyfl5A7UbNycopYF9uIXsPuR4rd2Sz91Ah+/OKON7Fm79mfEt0uIMakWHER7keNaJCqREVdsy6MDbvKiZ6/V5qRIW61kWGER3uCJi+LJY0jDHmJGIiQmkaEUrT2jHkbQolrV/TE5YtcSoH8orYe6iAvYdcz3MXZFK7QRP25xZxIK+Ig/mu563781m+PZuDeUVkH3P/5aX5Px31OkRcccRGhBITEYqzII+31sw98vqo53AHMRGhbNhRjGP17iPro8Jc66PDHUT40GzZkoYxxpQTR4gcuVR1WOSelaSltTxpvRKnku1OJtNmzaVFu85HksuBvCJy8ovJKSjmUEExhwqL2bQ9j7zCEvZkF7rWFxaTk19MsfPo05xXF/5y3P350jLZb0lDRN4E5qjqWPfrc4E33G/fr6r/JyIDgV7udZNUdXHlR2qMMRXLESIkRIeTEB1Ok3jHKSe+ct2v6HvUOlWloNjpSiwFJWTM/om2nbqSU+BKKHmFJeQWFpNbVEJeYQn3PuVdrH5JGiJyGRBT6rUAfYBG7oG0cM8L/gzQEwgHpojI6XpMc6+FCxdWVtjGlMnYsWOrzY1wE/hEhMgwB5FhDmrFQuMaDno0STxh+XshzZv9VHp/fBHpBewBVpda3RkYAmwUkSvd6/oAe9wDMhYA0UDjY7e3aFF5TlXuP3PmzKk2+/V1m97UL0sdT8t6Uu5kZd59912PYwp0/jg+g/HY9LR8OZU53bOIjlZh/TREZBTQ4pjV9YD3VPVd9/sbDl+ectdpCUwErgVSgHNV9Ur3e7OA+1T1qDtEKSkpumnTpiOv09PTGTFiRHl/nAq3Zs0aWrQ49sdVNffr6za9qV+WOp6W9aTcycr89ttvpKamehRToPPH8RmMx6an5cujzMCBA1HVMt/dqNTOfSIyEjjb/bIJkA/coapTSpW5HEgGlgC3q+rF7vWLgEtUde0x25wPfFPx0Ve4VsCqarJfX7fpTf2y1PG0rCflTlYmDcjwMKZA54/jMxiPTU/Ll0eZC1S1WxniAvzYI7z0mYaIhKiq073+ZmA2rstXM1W1p4hEALNVtbtfgjXGGAMETpPbv4vI6cAk4DdVzQRXYhGRBwAHcKM/AzTGGFMNxp4yxhhTeWw2E2OMMR6zpGGMMcZj1S5piIhDREaLyAB/x2JMaSKSLCJ3ichtEiijzxnj5ul3Z7VLGqpaAmygGn42U+X9BfgI2AKc4edYjDmKp9+d1fWL1e7um0DUFtgN7MQ1CoIxgeaU353VNWkYE4jC3GOnOQic5u7GlEm1SRoicreIfCAibf0dizEnsExEknANp7PA38EY442ATxoi0kZExrs7/x1ed5uI3Cgij4pIAoCqvqiqVwErgJa4utAbU+E8PUaBl4FLcQ28OdUPoZog5Onx6W6cccrvzoA/RVbVFSKSjWtyXkSkG9BLVa8RkX7Ao8A9pcor8LBfgjVBydNjVFV3Aa/6MVQThMpwfHr03RnwZxpuhaWWLwKWupcXul8b4292jJpAVm7HZ1VJGqUlA3vdy/lAfT/GYszx2DFqAplPx2dVTBo7cU3IBBAH7PJjLMYcjx2jJpD5dHxWxaTxJdDFvdyR6jGXhqle7Bg1gcyn4zPgk4aIpOC6m99XRKJUdQGupos3AIOBR/waoAl6doyaQFbex6cNjW6MMcZjAX+mYYwxJnBY0jDGGOMxSxrGGGM8ZknDGGOMxyxpGGOM8ZglDWOMMR6zpGGMMcZjljSM8RMRiRORhmWsc7GIzDlm3a1e7j9aRFp6U9cEL+vcZ6oUEekMfA18BqwE6gBtVfUavwZWRiJSBxiuqmUaKl1EIoEVqtrE/boX4FTVX72M4xwgV1UzvKlvgk/Az6dhTGmqukhENgATD3/RiUhVnHDrGeAvZa2kqvmuuXKO6KGq//Y2CFWdJCL/E5FfVfWQt9sxwcOShqnSROQCVf3G/R/zKOB7oAXwINALSAG6A1cBtYHLgYPAObgGbtsBvK2qTUTkauB6VU0TkY5Aa6ArUBP4J/BfYKZ7fbJ7GzHALUAWMBy4zF0uDBjm3ud/gD+raq475jZAvKoWiEgi8BKukUcHAdcDNwCz3PWvU9X9InIjkAc0O8HPIR3XnAlXAPfjGrn0HCAeGApcDUQAVwJFQH/gMlV1AovcP583yvbTN8HI7mmYqmqYiNyP60sS4FtcX6iP4/pifBgoAFYBB4DmwCvAW6r6NrAcCFXVH0ptc2ap5QeBYuBXIMG9vBdYparX4koG9YCRwGxVfQf4ENcX8224EhdAZ+DJwwnDrS+wFUBV9wLrcSWN7rimK14DfOLeVkcR6Qr0V9UPgOcPb0REegC/uV9eAmzGlXAOuuMvdO9nDa7RTJ8DPlLVl4HpuBIbwHZg4HF/ysYcw840TFX1uapmHL6RrKpOEclR1Xw48oV6u6oWAF+JiAPooqrZ7vpFp9h+N1W90r38lYiEACX8PnnNISAc15nIZ+4Y3j9cWUS+Ba4F6qrqY8dsOwnILvXaCexW1RIgV0T2ABfgOrNwAGfg+mJHVXNKXZ7qDRy+NPUo8DqwD9dZQwfgP6q6vtTnfx3IdW+n9CWtfbjOSIw5JTvTMFWaqm45wVvrcV2uQkS6A02BYncygaO/JA//81Sb3/8m8kXkL+765wCxJ9jPclyXpxCR1iLSyb3+GVz/7a85Tp1t7n39gYgMAU5T1XG4koYAm4A0d+KiVIyiv7dkiVHV3sDPQDquRgKPiYhDRJrgOospHWtfEannrlsL11mKMadkScNUKSLSE9elpkEiklBq/QAguVRSuA8Y7L5p3k9V1wB3Ap+IyFtAYqnNjnefGfQEYkSkBXAzcLeIrMSVYCKAtkAv9/wE9YA+wBighYisAC5V1cUAqroTmAB8cZyP8QPuKTZFpAauS1gDRSQWV7IbIiLPAIpr/uavgWXAtyJyC+AUkVRgQaltPi4id+BKMuOBJ3Hdd9kI3KKqP+O61/EnEVkEtFPV7e66jYFJJ/mxG3OENbk1QUlERgEbVHVsBWw7AogCrlbVV05Q5mngOVX1+1SwIvJv4C735TFjTsrONEzQEZGauG4Mp4pIVAXsYhrwAfC/k5T5B3BpBe3fYyJyNvAvSxjGU3amYYyfiOuOdqKqZvlp/1GAHm48YIwnLGkYY4zxmF2eMsYY4zFLGsYYYzxmScMYY4zHLGkYY4zxmCUNY4wxHvt/8DHDsBf7txcAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "P = tf([1,0],[1, 1, 1])\n", "gain, _, _ = bode(P)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9999893751148522" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.max(gain)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }