Skip to content

Instantly share code, notes, and snippets.

@dionhaefner
Created February 23, 2017 21:55
Show Gist options
  • Save dionhaefner/48a090d62f7459aba2a7133dd83bb2ae to your computer and use it in GitHub Desktop.
Save dionhaefner/48a090d62f7459aba2a7133dd83bb2ae to your computer and use it in GitHub Desktop.
tdma-benchmarks.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Bohrium TDMA extmethod benchmarks\n",
"(compared to LAPACK's dgtsv solver)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import bohrium as bh\n",
"from scipy.linalg import lapack\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"\n",
"bh.random.seed(123456)\n",
"\n",
"def fun1(a,b,c,d):\n",
" tmp = bh.linalg.solve_tridiagonal(a,b,c,d)\n",
" bh.flush()\n",
" \n",
"def fun2(a,b,c,d):\n",
" tmp = bh.array(lapack.dgtsv(a.flatten()[1:], b.flatten(), c.flatten()[:-1], d.flatten())[3]).reshape(a.shape)\n",
" bh.flush()\n",
" \n",
"def benchmark(width,depth,dtype=bh.float64,n=100):\n",
" a, b, c, d = bh.random.rand(4,width,depth,dtype=dtype)\n",
" bh.flush()\n",
" \n",
" s = time.time()\n",
" for _ in range(n):\n",
" fun1(a,b,c,d)\n",
" time1 = (time.time() - s) / n\n",
" \n",
" s = time.time()\n",
" for _ in range(n):\n",
" fun2(a,b,c,d)\n",
" time2 = (time.time() - s) / n\n",
" return time1, time2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/dion/.virtualenvs/bohrium/lib/python2.7/site-packages/ipykernel/__main__.py:15: RuntimeWarning: Encountering an operation not supported by Bohrium. It will be handled by the original NumPy.\n"
]
}
],
"source": [
"times_new, times_old = [], []\n",
"\n",
"depth = 100\n",
"widths = (10, 100, 1000, 10000, 100000, 1000000)\n",
"for width in widths:\n",
" t1, t2 = benchmark(width,depth)\n",
" times_new.append(t1)\n",
" times_old.append(t2)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nC6H9w9D0VqiTqtOeIiIip1Bpk9A7us+723P1LO+057EM77Rng6vh8iHeac/K9f1OKSIiEtFU2iQ0\ndq/z7vRcPds77elyoVxVuOB2r6Q1uh5KV/Q7pYiISNRQaZPgyM2GzV+duD5t73pvefWL4Kqfeden\n1W6t054iIiJnSKVNztyRvYGH3M7y7vo8lgGJyVD/amj3ADS5WXN/ioiIBIlKmxSfc7B77Ylnp23+\nyjvtWb4aXNAJmnWEhh102lNERCQEYqq0ae7REMjN9mYgOD4bwd4N3vLzWsBVP4dmt0KtVpCQ4G9O\nERGRGGfOOb8zBF1qaqpLT0/3O0b0OrIX1v7XG01b9wFkZkBiaWhwjXcTQdOOcM75fqcUERGJCWa2\n0DmXWtR6MTXSJmfIOW+aqNWzvKK25WtweVC+OjTv7I2mNbgWSlfwO6mIiEjcUmmLVzlZsHme90iO\nNbNg3yZveY2WcPXj3vVpNS/TaU8REZEIodIWTw7v8R5uu3oWrP8QMg94pz0bXgvtH/FOe6bU9jul\niIiInIZKWyxzDnatOjFl1PfzvdOeFc6Di7p4U0Y1vBaSy/udVERERIqg0hZrcrLgu8+9uz1Xz4L9\n33nLa14C1zzhjabVvFSnPUVERKKMSlssOLwb1r4fuNvzQ8g6CEllvGemHZ+NoFItv1OKiIjIWVBp\ni0bOwc6VJ+b2/H4B4KBiTWjZzTvt2eAaSC7nd1IREREJEpW2aJGTCZs+PzEbwf7N3vKal0KHpwKn\nPS8BM39zioiISEiotEWyQ7sCpz1nwfqPIOsQJJX1Tnte/QtocgtUqul3ShEREQkDlbZI4hzsXHHi\nIbffp+Od9qwFLe8KPOT2GihV1u+kIiIiEmYqbX7LyYRNnwUecjsHMgKnPWu1gg6/8h5yW+NinfYU\nERGJcyptfji0MzAB+2zvtGf2YShVDhpeB9c+AU1uhoo1/E4pIiIiEUSlLRycgx3LAqNps2HrQsBB\npTpwSU/vtGf9q6FUGb+TioiISISKqdJmZp2ATo0bN/Y7CmQfC5z2nOWNqh34HjCo3Rqu+4132vO8\nFjrtKSIiIsVizjm/MwRdamqqS09PD/+OD+6AtXO8EbUNH0H2EShVHhpd5z2So+ktUKF6+HOJiIhI\nxDKzhc651KLWi6mRtrBzDn74NjC35yzYtshbnnI+XNrHK2r1r9JpTxERETlrKm1n4rt58O3EwGnP\n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\nByg0oRbQDl0SAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9fecd68a10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,10))\n",
"plt.title(\"Benchmark with fixed depth = 100, 100 loops\")\n",
"plt.xlabel(\"Number of elements\")\n",
"plt.ylabel(\"Wall time per loop (s)\")\n",
"plt.loglog(depth * np.array(widths), times_new, label=\"Bohrium TDMA\")\n",
"plt.loglog(depth * np.array(widths), times_old, label=\"LAPACK dgtsv\")\n",
"plt.legend(loc=\"best\");"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/dion/.virtualenvs/bohrium/lib/python2.7/site-packages/ipykernel/__main__.py:15: RuntimeWarning: Encountering an operation not supported by Bohrium. It will be handled by the original NumPy.\n"
]
}
],
"source": [
"times_new, times_old = [], []\n",
"\n",
"depths = (10, 100, 1000, 10000, 100000, 1000000)\n",
"width = 100\n",
"for depth in depths:\n",
" t1, t2 = benchmark(width,depth)\n",
" times_new.append(t1)\n",
" times_old.append(t2)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9fcc44b8d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,10))\n",
"plt.title(\"Benchmark with fixed width = 100, 100 loops\")\n",
"plt.xlabel(\"Number of elements\")\n",
"plt.ylabel(\"Wall time per loop (s)\")\n",
"plt.loglog(width * np.array(depths), times_new, label=\"Bohrium TDMA\")\n",
"plt.loglog(width * np.array(depths), times_old, label=\"LAPACK dgtsv\")\n",
"plt.legend(loc=\"best\");"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/dion/.virtualenvs/bohrium/lib/python2.7/site-packages/ipykernel/__main__.py:15: RuntimeWarning: Encountering an operation not supported by Bohrium. It will be handled by the original NumPy.\n"
]
}
],
"source": [
"times_new, times_old = [], []\n",
"\n",
"depths = (10, 100, 1000, 1e4, 1e5, 1e6, 1e7, 1e8)\n",
"width = 1\n",
"for depth in depths:\n",
" t1, t2 = benchmark(width,int(depth))\n",
" times_new.append(t1)\n",
" times_old.append(t2)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nJAK4AO/oICLe0+lRERERkWJAp0dFREREigHNtImIiIgUA1F5TVuNGjVcQkJCuNMQEREROa1Fixbt\ncs7VPN1xUVm0JSQksHDhwnCnISIiInJaZnaqO67k0elRERERkWJARZuIiIhIMRBVRZuZ9TWz8Wlp\np7qntYiIiEjxE1XXtDnnkoCkjh073nn8vszMTLZu3crhw4fDkJkURnx8PPXq1SMuLi7cqYiIiIRd\nVBVtp7J161YqVqxIQkIC/vseSwRzzrF79262bt1Ko0aNwp2OiIhI2EXV6dFTOXz4MNWrV1fBVkyY\nGdWrV9fMqIiIiF+JKdoAFWzFjD4vERGR/ypRRZuIiIhIcaWirQjFxsaSmJhI+/bt6dChA998880p\nj58zZw59+vQJKPYjjzzC7NmzvUgzz/33309iYiKtWrWibNmyJCYmkpiYyMcff8ytt95Ko0aNaN++\nPc2bN+fmm29m69ateWMTEhLo1q3bMfESExNp06bNMdv++Mc/UrduXXJycjzNXUREJNqUmEaESFC2\nbFmWLFkCwMyZMxk2bBhz584NOm52djZjxowJOs7xXnnlFQBSUlLo06dPXu4An332GePGjWPQoEE4\n53jhhRfo1asXy5cvp3Tp0gAcOHCALVu2UL9+fVatWvU/8XNycvj000+pX78+c+fOpWfPnp6/BhER\nkWihmbYw2b9/P1WrVgV8nZIPPvggbdq0oW3btnzwwQd5x6WnpzNo0CDOOussbrzxRpxzgG8ma8iQ\nIXTo0IGPPvqIW2+9lY8//jhv365duwBYuHAhPXr0AGD06NHccsstdOvWjYYNG/LJJ5/w0EMP0bZt\nWy677DIyMzML9VrMjD/96U/Url2b6dOn522/9tpr817LhAkTuP76648ZN2fOHFq3bs29997LhAkT\nCvXcIiIiJUWJnGl7NGkFK7ft9zRmqzqVGNW39SmPOXToEImJiRw+fJjt27fz5ZdfAvDJJ5+wZMkS\nfv75Z3bt2kWnTp248MILAVi8eDErVqygTp06XHDBBXz99dd07doVgOrVq/PTTz8BMGPGjIDyXL9+\nPV999RUrV66kS5cuTJw4kWeeeYYBAwYwdepU+vfvX9i3gA4dOpCcnEy/fv0AGDhwILfddht//etf\nSUpK4t133+U///lP3vG5hVy/fv0YPnw4mZmZWpNNRETkJDTTVoRyT48mJyczY8YMbr75ZpxzLFiw\ngOuvv57Y2Fhq1apF9+7d+fHHHwHo3Lkz9erVIyYmhsTERFJSUvLiXXfddQXO4fLLLycuLo62bduS\nnZ3NZZddBkDbtm2PiV0YubOAuapXr07VqlV5//33admyJeXKlcvbd/ToUaZNm0b//v2pVKkS5557\nLjNnzgzq+UVERKJZiZxpO92MWFHo0qULu3btIjU19ZTHlSlTJu/32NhYsrKy8h6XL1/+hGNKlSqV\nd2H/8euc5caLiYkhLi4ub1mNmJiYY2IXxuLFi7nooouO2Xbddddx//3389Zbbx2zfebMmezbt4+2\nbdsCkJGRQdmyZQNuvBARESlpomqmrTjdezQ5OZns7GyqV69Ot27d+OCDD8jOziY1NZV58+bRuXPn\nQsdOSEhg0aJFAEycONGrlE/KOceLL77I9u3b82bucg0YMICHHnqISy+99JjtEyZM4I033iAlJYWU\nlBQ2btzIrFmzyMjICHm+IiIixVFUFW3OuSTn3F2VK1cOdyonlHtNW2JiItdddx1vv/02sbGxDBgw\ngHbt2tG+fXt69erFM888Q+3atQv9PKNGjeKBBx6gY8eOxMbGevgKjvXggw/mLfnx448/8tVXX+V1\njuaqWLEiQ4YMOWZ7RkYGM2bM4Morr8zbVr58ebp27UpSUlLI8hURESnO7PjrkKJBx44d3cKFC4/Z\ntmrVKlq2bBmmjKSw9LmJiEi0M7NFzrmOpzsuqmbaRERERKKVijYRERGRYkBFm4iIiEgxoKJNRERE\npBhQ0SYiIiJSDKhoExERETle2i/w3mDYvT7cmeRR0VaEKlSocNJ9iYmJDB48+Jhtt956K40aNSIx\nMZEOHTrw7bff5u3LysqiZs2aDB069JgxmZmZDB06lGbNmtGhQwe6dOmSdxP3/DeSX7RoEY0aNWLx\n4sWnzLlHjx4cv3zK8SZNmsTKlStPeYyIiEixMns0rP8SYiLn5lEq2iLAqlWryM7OZv78+Rw8ePCY\nfePGjWPJkiU89dRT3H333XnbZ82aRfPmzfnoo4+OuefnyJEj2b59O8uXL+enn35i0qRJHDhw4JiY\nS5cuZdCgQXzwwQecffbZQeevok1ERKLKlh9h2Ydw/u+gasNwZ5NHRVsEmDBhAr/5zW/o3bs3kydP\nPuExF154IevWrTtmzAMPPECDBg3yZuAyMjJ4/fXXeemll/LuMVqrVi2uvfbavHGrVq2if//+/Oc/\n/znhrbIOHTrE4MGDadmyJQMGDODQoUN5+958802aN29O586dufPOO/nd737HN998w5QpU3jwwQdJ\nTExk/fr1vPjii7Rq1Yp27doxePBgcnJySEhIYN++fXmxmjVrxs6dO4N740RERLyWkwMzhkKF2tD1\nz+HO5hiRM+dXlKYPhR3LvI1Zuy1c/lShhn7wwQfMmjWL5ORkXnrpJW644Yb/OSYpKSnv5uqHDx9m\n9uzZvPbaa+zbt48JEyZw/vnns27dOho0aEClSpVO+lz9+vXjnXfeoWvXrifc/+qrr1KuXDlWrVrF\n0qVL6dChAwDbtm1j7Nix/PTTT1SsWJFevXrRvn17zj//fK666ir69OnDoEGDAHjqqafYuHEjZcqU\nYd++fcTExNCvXz8+/fRTbrvtNr7//nsaNmxIrVq1CvV+iYiIhMyyj+CXhdD/VShz8suawkEzbWG2\ncOFCatSoQYMGDbjoootYvHgxe/bsydufO4M1fvx43nzzTQA+++wzevbsSdmyZRk4cCCTJk0iOzs7\noOe7+OKLeeONN056/Lx587jpppsAaNeuHe3atQPghx9+oHv37lSrVo24uDiuueaakz5Hu3btuPHG\nG3nnnXcoVcr374LrrruODz74AID333+f6667LqB8RUREiszRg75r2ep0gHaDT3t4USuZM22FnBEL\nhQkTJpCcnExCQgIA+/fvZ+LEidx5552A75q23Bms/GMWLFiQN2b37t18+eWXXHDBBWzevJn9+/ef\ndLbt5Zdf5p577uG+++7jtddeC8lrmjp1KvPmzSMpKYnHH3+cZcuW0aVLF9atW0dqaiqTJk1ixIgR\nIXluERGRQlvwAhzYBte8BTGRN68VeRkFwcz6mtn4tLS0cKcSkJycHD788EOWLVtGSkoKKSkpTJ48\nmQkTJpx0zP79+5k/fz6bN2/OG/PKK68wYcIEypUrxx133MEDDzzA0aNHAUhNTeWjjz7KGx8TE8N7\n771HcnIyjzzyyP/Ev/DCC3nvvfcAWL58OUuXLgWgU6dOzJ07l71795KVlcXEiRPzxlSsWDGv2SEn\nJ4ctW7bQs2dPnn76adLS0khPT8fMGDBgAH/+859p2bIl1atXD/4NFBER8cq+zfDNi9BmIDQ4N9zZ\nnFBUFW3OuSTn3F2VK1cOdyonlJGRQb169fJ+xo4dS926dalTp07eMRdeeCErV65k+/btJ4zx6aef\n0qtXr7xGA/Bdp5aUlMSRI0d47LHHqFmzJq1ataJNmzb06dPnf2bd4uPjmTJlClOmTOGVV145Zt+9\n995Leno6LVu25JFHHuGcc84BoG7dugwfPpzOnTtzwQUXkJCQQO77PHjwYMaNG8fZZ5/N2rVruemm\nm2jbti1nn302f/jDH6hSpQrgO0X6zjvv6NSoiIhEnlmjAIOLHw13Jidl+ZeLiBYdO3Z0x68ttmrV\nKlq2bBmmjKJDeno6FSpUICsriwEDBnD77bczYMCAkD6nPjcREQm5Td/Cvy6D7kOg5/Aif3ozW+Sc\n63i646Jqpk1Ca/To0SQmJtKmTRsaNWpE//79w52SiIhIcHKX+KhYBy54INzZnFLJbESQQnn22WfD\nnYKIiIi3fp4A25fA1a9D6fLhzuaUStRMWzSeCo5m+rxERCSkjhyALx6Fep2g7cmXsooUJaZoi4+P\nZ/fu3SoEignnHLt37yY+Pj7cqYiISLSa/xyk74TLngKzcGdzWiXm9Gi9evXYunUrqamp4U5FAhQf\nH0+9evXCnYaIiESjvSnw7SvQ7jqod9oegIhQYoq2uLg4GjVqFO40REREJBJ8PhJiYuHi0eHOJGAl\n5vSoiIiICAApC2DVFOj6J6hU5/THRwgVbSIiIlJy5GT7lvioXB/O/324symQEnN6VERERITF78CO\nZTDonxBXNtzZFIhm2kRERKRkOLwfvhwLDbpA66vDnU2BaaZNRERESoZ54+DgLrjxo2KxxMfxNNMm\nIiIi0W/3evjuVUi8AeqcHe5sCkVFm4iIiES/z0dCqTJw0SPhzqTQVLSJiIhIdNswB1ZPhW5/hoq1\nw51NoaloExERkeiVnQUzhkGVhnDe/eHOJihqRBAREZHo9dPb8OtKuPbfEFe872etmTYRERGJTof2\nwVePQ8Ou0PKqcGcTNBVtIiIiEp3mPgMZe+CyJ4vlEh/Hi6qizcz6mtn4tLS0cKciIiIi4bRrLfzw\nGnS4Gc5sF+5sPBFVRZtzLsk5d1flypXDnYqIiIiE08yHoVRZ6DUi3Jl4JqqKNhERERHWzYa1M6H7\ng1DhjHBn4xkVbSIiIhI9sjNhxnCo2gjOvSfc2XhKS36IiIhI9Fj4L9i1Gga/57sDQhTRTJuIiIhE\nh4w9MOcJaNQdWlwR7mw8p6JNREREosOcp+BwWtQs8XE8FW0iIiJS/P2aDD++AefcBrVahzubkFDR\nJiIiIsWbczBzOJSuAD2HhzubkFHRJiIiIsXb2s9h/RfQYwiUrxHubEJGRZuIiIgUX1lHfbNs1ZtC\npzs9C7t1bwa/efN7NqSmexYzWFryQ0RERIqvH9+A3evghg+hVGnPwo79bCULU/ZSJi7Ws5jB0kyb\niIiIFE8Hd8Pcp6DJRdCst2dhv1r9KzNX7OT3FzWlbpWynsUNloo2ERERKZ6+ehyOpMOlT3i2xMfh\nzGxGT1lB45rl+W3Xxp7E9IpOj4qIiEjxs3MFLPqX7zq2M87yLOw/5q5n0+4M3v3tuZQuFVlzW5GV\njYiIiMjpOAczhkGZStBjqGdhN+0+yN/nrKdPuzO5oGnkdaGqaBMREZHiZfU02DjXtyZbuWqehHTO\nMXrKCuJijBFXtvIkptdUtImIiEjxkXUEZj4MNVpAx9s9C/v5yp18tTqVP13SnNqV4z2L6yVd0yYi\nIiLFx/evwd6NcNNEiI3zJGTG0SzGJK2kRa2K3HJ+gicxQ0FFm4iIiBQP6akwbxw0uxSaXuxZ2Fe+\nWscv+w7x4d1diIuN3JOQkZuZiIiISH5fjoXMDLj0cc9Crk9NZ/y8DVzdoS6dG3lzfVyoqGgTERGR\nyLd9Kfz0b+h8N9Ro5klI5xyjJq8gPi6WYZe39CRmKKloExERkciWu8RH2arQ/SHPwk5dtp0F63bx\n194tqFmxjGdxQ0VFm4iIiES2VVNg0wLo9TCUreJJyPQjWYz9bCWt61TipvMaehIz1NSIICIiIpEr\n8zB8PgLOaAUdbvUs7P/NXsPO/Ud49aZziI3x5hZYoaaiTURERCLXd6/Avs1w82SI9aZsWb3jAP/8\nOoXBnerToUFVT2IWBZ0eFRERkch0YAfMfw5aXAmNe3gS0jnHyMnLqRhfiocu8+6epUVBRZuIiIhE\npi/G+u6A0HusZyEnLfmFHzbuYchlZ1GtfGnP4hYFFW0iIiISebYthiXvwnn3QvUmnoRMO5TJ41OT\nSaxfhes61vckZlHSNW0iIiISWZyD6UOhfA248EHPwj4/aw27Dx7hrds6EVNMmg/yU9EmIiIikWXF\nJ7DlO+j7IsRX8iTk8l/S+Pe3Kdx0bkPa1K3sScyiptOjIiIiEjkyD8GsUVCrLZx9kychc3J8zQdV\ny5Xmr71beBIzHFS0iYiISOT45iVI2wKXPwUxsZ6E/GjRFhZv3sewK1pSuVycJzHDIeJPj5pZeeDv\nwFFgjnPu3TCnJCIiIqGwfxsseB5aXgUJXT0JuffgUZ6ankynhKoM7FDXk5jhEpaZNjP7p5n9ambL\nj9t+mZmtNrN1ZjbUv/lq4GPn3J3AVUWerIiIiBSN2Y9CTranS3yM+3w1+w9nMbZ/G8yKX/NBfuE6\nPfoWcFn+DWYWC7wCXA60Aq43s1ZAPWCL/7DsIsxRREREisrWhbD0fehyP1RN8CTkz1v2MeGHzdx6\nfgJn1famoSGcwlK0OefmAXuO29wZWOec2+CcOwq8D/QDtuIr3OAU+ZrZXWa20MwWpqamhiJtERER\nCQXnYMZQqFALuv3Zk5DZOY4Rk5ZTs0IZ/nhxM09ihlskNSLU5b8zauAr1uoCnwADzexVIOlkg51z\n451zHZ1zHWvWrBnaTEVERMQ7yz6CrT/CRaOgTEVPQr73w2aW/ZLGiD6tqBhffJsP8ov4RgTn3EHg\ntnDnISIiIiFw9KBviY8zE6H99Z6E3JV+hHEzkunSuDp9253pScxIEElF2y9A/ntK1PNvExERkWj1\n9f/BgW0w6J8Q480JwKemJ3MoM5ux/VsX++aD/CLp9OiPQDMza2RmpYHBwJQw5yQiIiKhsm+Lr2hr\nfTU07OJJyIUpe/h40Vbu6NqYpmd4c6o1UoRryY8JwLdACzPbamZ3OOeygN8BM4FVwIfOuRXhyE9E\nRESKwOzRvv9eMsaTcFnZOYyYtJw6leP5w0VNPYkZScJyetQ5d8KT1s65acC0wsY1s75A36ZNo++D\nEhERiSqbv4flH8OFD0GV+qc/PgD//nYTyTsO8I+bOlCudCRdAeaNSDo9GjTnXJJz7q7KlYvnjWBF\nRERKhJwcmDEEKtaBrn/0JOSv+w/z3Kw1dG9ek0tb1/YkZqSJvjJUREREItvS92HbYhgwHkqX9yTk\n49NWcTQ7h0eviq7mg/yiaqZNREREItyRdN/tqup2hLbXeBLym/W7mLxkG/d0b0JCDW+KwEikmTYR\nEREpOgueg/QdcN07nizxcTQrh0cmr6B+tbLc16OJBwlGLhVtIiIiUjT2psA3L0Pba6F+J09C/vPr\njaz7NZ03b+lIfFysJzEjVVSdHjWzvmY2Pi0tLdypiIiIyPFmjYKYWLh4tCfhtu07xP/NXsvFLWtx\nUctansSMZFFVtKl7VEREJEKlfA0rJ8EFf4TKdT0JOfazlTgco/q28iRepIuqok1EREQiUE42zBgK\nlerB+b/3JOTcNalMX76D3/VsSv1q5TyJGel0TZuIiIiE1pJ3YcdSGPgmlA6+wDqSlc3oKStoXKM8\nd17Y2IOcQ6xsAAAgAElEQVQEiwcVbSIiIhI6h/fDF2Og/rnQZqAnIcfP3cDGXQf5zx2dKVMqupsP\n8lPRJiIiIqEz/1k4mAo3fAAeLHq7ZU8GL3+1jivbnkm3ZjU9SLD40DVtIiIiEhp7NsB3r0L7G6Du\nOZ6EfDRpBbExxog+LT2JV5xEVdGmJT9EREQiyOcjISYOLnrEk3CzV+5k9qpfeeCiZpxZuawnMYuT\nqCratOSHiIhIhNg4D5I/g25/hkpnBh3u0NFsRietoNkZFbi9ayMPEix+dE2biIiIeCsnG2YMgyoN\noMvvPAn59znr2Lr3EBPuPI+42KiacwqYijYRERHx1k9vw87lcM3bEBcfdLiNuw7y2twN9E+sQ5cm\n1T1IsHgqmaWqiIiIhMahffDlY9DwAmjVL+hwzjlGTVlBmVIxDL+y5DUf5KeiTURERLwzbxxk7IHL\nnvRkiY8Zy3cwb00qf+7dnDMqBj9rV5ypaBMRERFv7FoH3/8Dzr4JzmwfdLiDR7IY89lKWp5Zid+c\n19CDBIs3FW0iIiLijc8fhlJlPVvi48Uv17I97TCP9W9NqRLafJBfVL0DWqdNREQkTNZ9AWtmwIV/\nhQpnBB1u7c4DvDl/I9ecU49zGlbzIMHiL6qKNq3TJiIiEgbZWTDzYajaCM67N+hwzjlGTl5O+TKl\nGHr5WR4kGB2iqmgTERGRMFj0L0hdBb0fg1Jlgg435edtfLdhDw9e2oLqFYKPFy1UtImIiEjhZeyB\nrx6HRhfCWVcGHe7A4Uwem7qKdvUqc33nBh4kGD20uK6IiIgU3tyn4XAaXOrNEh/Pz1rLrvQjvHlL\nR2Jjgo8XTTTTJiIiIoWTuhp+eB063AK12wQdbtX2/bz9bQo3dG5Au3pVgs8vyqhoExERkcKZORxK\nV4BeI4IOlZPjGDlpOZXLxvHgpS08SC76qGgTERGRgls7C9bNhu4PQfkaQYeb+NNWFm7ay9DLzqJK\nudIeJBh9VLSJiIhIwWRn+mbZqjeFzncFHS4tI5OnpifToUEVBp1Tz4MEo1NUFW1aXFdERKQI/PgG\n7FoDvR+HUsHPio37PJm9GUcZ278NMWo+OKmoKtq0uK6IiEiIHdwNc56EJr2g+aVBh1u6dR/vfr+Z\nm7sk0LqOvr9PJaqKNhEREQmxOU/AkXRPlvjIbT6oUaEMf+7d3KMEo5eKNhEREQnMzpWw8J/Q6Q44\nI/jbS73/4xZ+3prGw1e0pFJ8nAcJRjcVbSIiInJ6zsHMYVCmEvQYFnS4PQeP8szMZM5rXI1+iXU8\nSDD6qWgTERGR01szAzbM8RVs5aoFHe7p6cmkH85iTL82mAd3UigJVLSJiIjIqWUdhZkPQ40WvlOj\nQVq0aS8fLNzC7V0b0bxWRQ8SLBl071ERERE5tR9egz3r4caJEBvctWdZ2TmMnLSc2pXieeCiZh4l\nWDJopk1EREROLj0V5j4DzXpDs4uDDvfOd5tYuX0/I/u0onwZzR0VhIo2ERERObmvHoPMDLj0iaBD\n/XrgMH/7fA3dmtXgira1PUiuZFHRJiIiIie2Yxn89G/frapqBH8q86lpyRzJyuHRq1qr+aAQVLSJ\niIjI/3IOZgyD+Cq+m8IH6fsNu/lk8S/cdWFjGtes4EGCJU9UFW2696iIiIhHViVBynzoORzKVg0q\nVGZ2DiMnL6dulbLc37OpRwmWPFFVtOneoyIiIh7IOgKfj4AzWsE5twUd7q2vU1izM53RV7WmbOlY\nDxIsmdS2ISIiIsf67u+wbxP8ZhLEBlcq7Eg7zAuz13DRWWdwSataHiVYMkXVTJuIiIgE6cBOmPcs\ntLgCmvQMOtzYqSvJynGM6tvag+RKNhVtIiIi8l9fjvGdHu39WNChFqzdxdSl27mvR1MaVC/nQXIl\nm4o2ERER8dm2BBa/C+fdA9WbBBXqSFY2j0xeTsPq5bi7e2OPEizZdE2biIiI+Jf4GArlqsOFDwYd\n7o35G9mw6yBv3daJ+Dg1H3hBRZuIiIjAik9h87fQ5wWID24Vhq17M3jpy7Vc1ro2PVqc4VGCotOj\nIiIiJV3mIZg1Cmq1hQ43Bx1uTNJKDOORvq08SE5yaaZNRESkpPv2ZUjbDP0/g5jgTmV+lfwrn6/c\nyZDLzqJOlbIeJSigmTYREZGSbf92mP88tOwLjboFFepwZjajpqygSc3y3NG1kUcJSi7NtImIiJRk\nXzwKOZlwydigQ706Zz2b92Tw3m/PpXQpzQt5Te+oiIhISbV1Efw8AbrcD9WCmxnbtPsgr85dT9/2\ndTi/aQ2PEpT8VLSJiIiURLlLfJQ/A7r9JchQjlFTVlA6NoYRV7b0KEE5noo2ERGRkmjZx7D1B7jo\nEShTMahQn6/cyZzVqfzx4mbUqhTvUYJyvKgq2sysr5mNT0tLC3cqIiIiketIOsx6BM5sD4k3BhUq\n42gWY5JWclbtitx6foI3+ckJRVXR5pxLcs7dVblycIsCioiIRLV5z8CBbXDFsxATXCnw8pfr+GXf\nIcb2b0Op2KgqKyKO3l0REZGSJHU1fPsKnH0T1O8cVKh1v6bz+vwNDOxQj04J1TxKUE5GRZuIiEhJ\n4RxMexBKl4eLHw0ylGPUlOXEx8Uy7IqzPEpQTkVFm4iISEmxchJsnAu9RkL54Jbl+Gzpdr5et5sH\nL21BjQplPEpQTkVFm4iISElwJB1mDIfa7aDj7UGFSj+SxWNTV9KmbiVuPLehRwnK6eiOCCIiIiXB\nvHG+5oNr3w76/qIvzFrDrweO8I+bziE2xjxKUE5HM20iIiLRLnWN76bwicE3H6zecYB/fZPC4E71\nObtBVY8SlECoaBMREYlmzsH03OaD0UGGcoycvJxK8aV46FI1HxQ1FW0iIiLRbOUk2DDH13xQoWZQ\noT5d/As/bNzDkMvOomr50t7kJwFT0SYiIhKtjqTDzIc9aT5IO5TJE9NWcXaDKlzbsb5HCUpBqBFB\nREQkWs0bB/t/gWveCrr54LnPV7Pn4FHeuq0zMWo+CAvNtImIiESj1DW+Ox940Hyw/Jc0/vPdJm46\nryFt6upWkeGiok1ERCTa5DUflAu6+SAnxzFi0nKqlS/NX3q38CQ9KRwVbSIiItFm5WTPmg8+XLiF\nJVv2MezyllQuG+dNflIoKtpERESiyZF0mDkcarcNuvlg78GjPD0jmc4J1bi6Q12PEpTCUiOCiIhI\nNMltPhj0r6CbD56ZuZr9h7MY0781Zmo+CDfNtImIiESLvOaDG6HBuUGFWrJlH+//uJnbzk/grNqV\nPEpQgqGiTUREJBrkNh/ElYOLHw0qVHaOY8SkZZxRsQx/vKS5RwlKsFS0iYiIRIO85oMRQTcfvPf9\nJpb/sp8RV7aiQhldSRUpVLSJiIgUdx42H+xKP8K4mas5v0l1+rQ706MExQtRVbSZWV8zG5+Wlhbu\nVERERIrO/Gd9zQdX/A1ig5sZe3JaMocysxnTr42aDyJMVBVtzrkk59xdlStrtWYRESkhdq2Fb172\npPngx5Q9TPxpK7/t1pimZ1TwKEHxSlQVbSIiIiWKczDNm+aDrOwcRk5aTt0qZfl9r6YeJSheUtEm\nIiJSXK2cDBu+8qT54O1vN5G84wAj+7SiXGk1H0QiFW0iIiLF0dGDvuaDWsE3H+zcf5jnZ62hR4ua\nXNq6lkcJitdUSouIiBRHeXc++GfQzQePT13F0ewcHr1Kdz6IZJppExERKW5ymw/a3wANzgsq1Dfr\ndjHl523c270JDauX9yhBCQUVbSIiIsVJ/uaDS4JrPjialcPIycupX60s9/Zo4lGCEioq2kRERIqT\nVVP8zQcPQ4Uzggr15oKNrE89yKNXtSY+Lriby0voqWgTEREpLo4ehBm5zQd3BBXql32HePGLtVzS\nqha9zlLzQXGgRgQREZHiYt6zsH8rDHoz6OaDMUkrcDhG9W3lUXISapppExERKQ52rYVvXvKk+WD6\nsu3MXLGTBy5qTr2q5TxKUEJNRZuIiEikcw6mP+RJ88G+jKOMnLyCNnUrcWe3Rh4lKEVBRZuIiEik\nWzUF1n/pSfPBY1NXsS/jKE8PbEepWJUBxYk+LRERkUiW13zQJujmg3lrUvl40Vbu6d6E1nUqe5Sg\nFBU1IoiIiESy3OaDgW8E1Xxw8EgWwz5ZRpOa5fmdbghfLKloExERiVS71vmbD66Hhl2CCjVu5mq2\npR3io7u7aE22YkqnR0VERCKRczD9QYgrC5eMCSrUwpQ9vP1tCrd0SaBjQjVv8pMip6JNREQkEq1K\n8jUf9Ayu+eBwZjZDJi6lTuWyPHhpCw8TlKKm06MiIiKR5uhBmDHM13zQ6bdBhXr5y3WsTz3Iv2/v\nTPky+tovzvTpiYiIRJr5f/Ok+WDFtjT+MXc9g86px4XNa3qYoISDTo+KiIhEkl3r4OsXg24+yMrO\nYcjEpVQpV5oRV7b0MEEJF820iYiIRAoPmw9en7+R5b/s59UbO1ClXGmPEpRw0kybiIhIpPCo+WBD\najrPz17DZa1rc3nbMz1MUMJJRZuIiEgkOHoQZg4PuvkgJ8cxdOIy4kvFMKZfaw8TlHDT6VEREZFI\nMP9vkLYFrh4fVPPBuz9s5oeUPTwzqB1nVIr3MEEJN820iYiIhFvunQ/aDYaG5xc6zC/7DvHUtFV0\na1aDa86p52GCEglUtImIiISTczD9ISgVH1TzgXOOhz9dhgOeGNAWM/MuR4kIKtpERETCKfkzWP+F\nr/mgYq1Ch5m05BfmrE7lwUtbUL9aOQ8TlEihok1ERCRcjmZ4cueDXelHeDRpJR0aVOHmLgne5ScR\nRY0IIiIi4eJR88HoKSvIOJLN0wPbERuj06LRSjNtIiIi4bB7PXzzYtDNB5+v2MFnS7fz+15NaVar\noocJSqSJ+KLNzBqb2Ztm9nG4cxEREfGEczDtwaCbD9IOZTJy8nLOql2Re3o08TBBiUQhLdrM7J9m\n9quZLT9u+2VmttrM1pnZ0FPFcM5tcM7dEco8RUREilRe88HwoJoPnpy2itQDRxg3qD1xsRE/DyNB\nCvU1bW8BLwP/zt1gZrHAK8AlwFbgRzObAsQCTx43/nbn3K8hzlFERKTo5DYfnNEaOt1Z6DBfr9vF\n+z9u4e7ujWlbr7KHCUqkCmnR5pybZ2YJx23uDKxzzm0AMLP3gX7OuSeBPqHMR0REJOxymw9um17o\n5oOMo1kM+2QZCdXL8aeLm3ucoESqcMyl1gW25Hu81b/thMysupn9AzjbzIad4ri7zGyhmS1MTU31\nLlsRERGveNR88Nzna9i8J4OnB7YjPi7WwwQlkkX8kh/Oud3APQEcNx4YD9CxY0cX6rxEREQKxKPm\ng8Wb9/LPrzdy03kNOLdxdQ8TlEgXjpm2X4D6+R7X828TERGJXh40HxzJymbIxKXUqhTPkMvO8jhB\niXThKNp+BJqZWSMzKw0MBqaEIQ8REZGi4VHzwd+/Ws+anek8PqANFePjPExQioNQL/kxAfgWaGFm\nW83sDudcFvA7YCawCvjQObcilHmIiIiEVW7zwZXPFrr5IHnHfv4+Zx39E+vQ66zCLxMixVeou0ev\nP8n2acA0r5/PzPoCfZs2bep1aBERkcLJaz64rtDNB9k5jiEfL6VifByP9G3tcYJSXETVSnzOuSTn\n3F2VK2u9GhERiQDOwfSH/M0HYwsd5l9fb+TnrWmMvqo11cqX9jBBKU6iqmgTERGJKMlTYd1s6DGs\n0M0Hm3Yf5NnPV3Nxy1r0bXemxwlKcaKiTUREJBSOZsCMob7mg853FSqEc46hE5cRFxPDY/3bYGYe\nJynFScSv0yYiIlIsLXjO13xw67RCNx+8/+MWvt2wmyevbkvtyvEeJyjFjWbaREREvLZ7PXz9f77m\ng4QLChViR9phnpi6ii6NqzO4U/3TD5CoF1VFm5n1NbPxaWlp4U5FRERKKudg+hCILVPoOx845xgx\naRmZOTk8eXVbnRYVIMqKNnWPiohI2CVPhXWz/Hc+qF2oEJ8t3c7sVb/yl0takFCjvMcJSnF12pPs\nZtYR6AbUAQ4By4FZzrm9Ic5NRESkeMm780GrQjcf7Dl4lNFTVtC+fhVu79rI4wSlODvpTJuZ3WZm\nPwHDgLLAauBXoCsw28zeNrMGRZOmiIhIMbDgOUjbDFcU/s4HY5JWsP9wJs8MbEdsjE6Lyn+d6v+o\ncsAFzrlDJ9ppZolAM2BzKBITEREpVnKbD9peW+jmgy+TdzJpyTYeuKgZLWpX9DhBKe5OWrQ55145\n1UDn3BLv0xERESmG8jcf9C7cnQ8OHM7k4U+X07xWBe7r2cTjBCUanLYRwcyeMbNKZhZnZl+YWaqZ\n3VQUyYmIiBQLq6f5mw+GFbr54OkZyezYf5inB7ajTKlYjxOUaBBI92hv59x+oA+QAjQFHgxlUoWl\nJT9ERKTIHc2A6UODaj74fsNu3vluM7df0IizG1T1OEGJFoEUbbmnUK8EPnLORWxFpCU/RESkyC14\nPl/zQVyBhx/OzGboJ8toUK0cf+ndPAQJSrQIpLXlMzNLxrfcx71mVhM4HNq0REREioHd6+HrF4Jq\nPnh+9ho27jrIe789l3KldXdJObnTzrQ554YC5wMdnXOZQAbQL9SJiYiIRDQPmg+Wbt3H6/M2MLhT\nfc5vWsPjBCXanGqdtq65vzvn9jjnsv2/H3TO7fA3J7QpiiRFREQiTpDNB5nZOTz08VJqVCjDsCta\nhiBBiTanmocdaGbPADOARUAqEI+vEaEn0BD4S8gzFBERiTS5zQc1Wxa6+eC1uetJ3nGA8b85h8pl\nC34tnJQ8p1qn7U9mVg0YCFwDnInvurZVwGvOuQVFk6KIiEiEyW0+uHVqoZoP1u48wItfrKNPuzPp\n3bpwS4RIyXPKKx6dc3uA1/0/IiIiknfng2sgoevpjz9Odo5jyMSllCsTy+irWocgQYlWgSz5UWxo\nnTYREQkp52DGUIgtDZcUrvng39+m8NPmfYzq24oaFcp4m59Etagq2rROm4iIhNTq6bD2c+gxFCqd\nWeDhW/Zk8MyM1fRoUZP+iXVDkKBEs6gq2kREREIm8xDMGOJrPjj37gIPd84x/NNlxBg8PqAtZhaC\nJCWanXYVPzOLB+4DugIOWAC86pzTArsiIlJyLHge9hW++eCjRVuZv3YXY/u1pm6VsiFIUKJdIEsv\n/xs4ALzkf3wD8B98HaUiIiLRb88GWPBCoZsPft1/mMc+W0nnhGrceG7DECQoJUEgRVsb51yrfI+/\nMrOVoUpIREQkouTd+SCu0M0Hj0xeweGsHJ4a2JaYGJ0WlcIJ5Jq2n8zsvNwHZnYusDB0KYmIiESQ\nvOaDYYVqPpi+bDszVuzgTxc3p3HNCiFIUEqKQGbazgG+MbPN/scNgNVmtgxwzrl2IctOREQknIJs\nPtiXcZSRk1fQpm4l7uzWKAQJSkkSSNF2WcizEBERiUS5zQe3fFao5oPHpq5ib8ZR3r69E6VitWCD\nBOe0RZtzbpOZtQe6+TfNd879HNq0REREwiy3+aDNIGjU7fTHH2fumlQ+XrSV+3s2oXUdrR8qwTtt\n2W9mDwDvAmf4f94xs9+HOrHC0B0RRETEM9OH+mbXej9W4KHpR7IY/skymtQsz+97NQtBclISBTJX\newdwrnPuEefcI8B5wJ2hTatwdEcEERHxxOrpsHZmoe988OzM1WxLO8TTA9sRHxcbggSlJAqkaDMg\nO9/jbP82ERGR6JN5CKY/BDXPgnPvKfDwhSl7ePvbFG7pkkDHhGre5yclViCNCP8CvjezT/EVa/2A\nN0OalYiISLgseKHQzQeHM7MZMnEpdSqX5cFLW4QoQSmpAmlEeM7M5vDf21jd5pxbHOrEREREitye\nDb6O0UI2H7z05VrWpx7k7ds7U75MIPMiIoELtP84G1/B5oCc0KUjIiISRkE0H6zYlsY/5m5gYId6\ndG9eMwTJSUlXkO7RGkR496iIiEihBdF8kJWdw0MfL6VqudKM7NMyRAlKSRfI3G1u9+hBADN7GviW\n/95AXkREpHgLsvng9fkbWbFtP6/e2IEq5UqHIEGRwIo2dY+KiEh0C6L5YENqOs/PXsNlrWtzeduC\nLw8iEqiCdo8C9EfdoyIiEi2CaD7IyXEMnbiM+FIxjOnXOkQJivgUtHsU1D0qIiLRZMawQjcfvPv9\nJn5I2cMzg9pxRqX4ECQn8l8nLdrMLP+KgCn+n7x9zrk9oUurcMysL9C3adOm4U5FRESKg9XTYc0M\nX8FWwOaDX/Yd4qnpyXRrVoNrzqkXogRF/utUM22L8C3xkXv9mvP/1/y/Nw5hXoXinEsCkjp27BiR\nt9kSEZEIknkIpg8pVPOBc46HP12GA54Y0BYzXeotoXfSos0516goExERESlSC16AfZvglqQCNx9M\nWvILc1anMqpvK+pXKxeiBEWOFejiuiIiItFjz0Z/88FAaHRhgYbuSj/Co0kr6dCgCjd3SQhNfiIn\noKJNRERKnhmFv/PBqCkryDiSzdMD2xEbo9OiUnRUtImISMmS23zQfQhUqlOgoTNX7GDq0u38vldT\nmtWqGKIERU7slEWbmcWaWXJRJSMiIhJS+ZsPzru3QEPTDmUyctJyzqpdkXt6NAlRgiInd8qizTmX\nDaw2swZFlI+IiEjofP1/vuaDK8YVuPngyWmr2JV+hHGD2hMXqxNVUvQCuSNCVWCFmf0AHMzd6Jy7\nKmRZiYiIeG3PRpj/XKGaD75et4v3f9zC3d0b07Ze5RAlKHJqgRRtI0OehYiISKgV8s4HGUezGPbJ\nMhKql+NPFzcPUXIipxfIbazmmllDoJlzbraZlQNiQ5+aiIiIR1bPgDXT4ZKxBW4++Nvna9i8J4P3\n7zqP+Dh9/Un4nPakvJndCXwMvObfVBeYFMqkREREPJN5CKY/BDVaFLj54KfNe/nn1xu58dwGnNe4\neogSFAlMIFdS3g9cAOwHcM6tBc4IZVIiIiKeKWTzwZGsbIZ8vJTaleIZevlZIUxQJDCBFG1HnHNH\ncx+YWSn+ex9SERGRyJV754PWV0Pj7gUa+vev1rP213QeH9CGivEF6zQVCYVAira5ZjYcKGtmlwAf\nAUmhTUtERMQDM4aBxcKljxdoWPKO/fx9zjr6J9ah11m1QpScSMEEUrQNBVKBZcDdwDRgRCiTKiwz\n62tm49PS0sKdioiIhFtu80GPgt35ICs7hyEfL6VifByP9G0dwgRFCiaQ7tEcM3sb+B7fadHVzrmI\nPD3qnEsCkjp27HhnuHMREZEwyjwMM4b4mg/OLVjzwb++TuHnrWm8eP3ZVCtfOkQJihTcaYs2M7sS\n+AewHjCgkZnd7ZybHurkRERECuWbF2FvCtw8GUoFXnil7DrI32at5uKWZ9C33Zmhy0+kEAJZXPdv\nQE/n3DoAM2sCTAVUtImISOTZt9l354NW/aBxj4CHOecY+slS4mJieKx/W8wsZCmKFEYg17QdyC3Y\n/DYAB0KUj4iISHA+91923btgzQfv/7iF7zbsYfiVLaldOT4EiYkEJ5CZtoVmNg34EN81bdcAP5rZ\n1QDOuU9CmJ+IiEjgNsyBlZOh58NQpX7Aw3akHeaJqavo0rg6gzsFPk6kKAVStMUDO4HcBW5SgbJA\nX3xFnIo2EREJv+xMmD4EqjSE8/8Q8DDnHCMmLSMzJ4cnr9ZpUYlcgXSP3lYUiYiIiATlh9chNRkG\nvwdxgZ/eTFq6ndmrfuXhK1qSUKN8CBMUCU4g17SJiIhEtvRfYc6T0OQiaHFFwMP2HDzK6CkraF+v\nMrddkBC6/EQ8oKJNRESKvy8e9d0Y/vKnoQCnN8ckreDA4UyeGdSeUrH6SpTIpv9DRUSkeNu6CBa/\nA+fdCzWaBTzsy+SdTFqyjft6NKVF7YohTFDEG6ct2syslpm9aWbT/Y9bmdkdoU9NRETkNHJyYNpf\noUJt6P5QwMMOHM7k4U+X07xWBe7r2SSECYp4J5CZtreAmUDujdvWAH8MVUIiIiIBW/IubPsJLhkD\nZQKfLXtqejI79h/m6YHtKFMqNoQJingnkKKthnPuQyAHwDmXBWSHNCsREZHTObQPZo+G+udBu2sD\nHvbdht28+/1mbr+gEWc3qBq6/EQ8Fsg6bQfNrDq+Ndkws/OAtJBmJSIicjpznoKM3fCbTwJuPjic\nmc3QiUtpUK0cf+ndPMQJingrkKLtz8AUoImZfQ3UBAaFNCsREZFT2bkSfhgPHW+DM9sHPOz52WtI\n2Z3Be789l3KlA/kKFIkcgSyu+5OZdQdaAAasds5lhjwzERGRE3EOpj/ku4at18iAhy3duo/X521g\ncKf6nN+0RggTFAmN0xZtZhYLXAEk+I/vbWY4554LcW4iIiL/a+UkSJkPVzwL5aoFNORoVg4PfbyU\nGhXKMOyKliFOUCQ0ApkbTgIOA8vwNyOIiIiExdGDMHME1GoLHW8PeNhrc9eTvOMA439zDpXLxoUw\nQZHQCaRoq+ecaxfyTERERE5nwfOwfysMfB1iAluqY+3OA7z05TqubHcmvVvXDnGCIqETyJIf082s\nd8gzEREROZU9G+HrF6HtNdDw/ICGZOc4hkxcSrkysTx6VesQJygSWoEUbd8Bn5rZITPbb2YHzGx/\nqBMrDDPra2bj09K0IomISNSZORxiSvkW0g3Qv79N4afN+xjVtxU1KpQJXW4iRSCQou05oAtQzjlX\nyTlX0TlXKcR5FYpzLsk5d1flypXDnYqIiHhp7WxYPQ26PwiV6pz+eGDLngyembGaHi1q0j+xbogT\nFAm9QIq2LcBy55wLdTIiIiL/I+sozBgC1ZrAefcFNMQ5x7BPlhFj8PiAtliAi++KRLJAGhE2AHP8\nN4w/krtRS36IiEiR+O7vsHsd3PgxlArsFOcb8zeyYN0uxvZrTd0qZUOcoEjRCKRo2+j/Ke3/ERER\nKRr7t8O8cdD8cmh2SUBD5q5J5cnpq7iibW1uOq9hiBMUKTqB3BHh0aJIRERE5H/MHgXZmXDZEwEd\nvnt3lrsAACAASURBVHHXQX7/3k80r1WRcYPa67To/7d33/FRVfn/x1+fhDRaQkd676BgxO4CiwoK\nolixYGGx/NRdXV3Rr72tZdfVtewqWMG+2ECkCIJdaUrvvXdCAqTO+f0xIwZIhczcKe/n45EHmTt3\n7v3kJEzeOfeecySqFBvazOw559xtZjaWwGLxhTnnzgtqZSIiEtvW/gRzP4DT74SaLUrdPTM7j6Ej\nZxIfZ4wYnE6VJK0tKtGlpJ/oUYF//xmKQkRERA7wFcAXd0L1RnD6X0vf3ee4/YNfWbV9L6OGdKdx\nzcohKFIktIoNbc65WYFPj3PO/bvwc2b2F+DrYBYmIiIxbNabsHkeXPQGJFYpdffnJi9l8qKtPNS/\nA6e01GLwEp3KMuXH1UVsu6aC6xAREfHbtxO+ehSanQ4dLyh19y/mbeL5r5ZzSXojrj6lWfDrE/FI\nSfe0DQIuB5qb2ZhCT1UDdga7MBERiVFfPQbZe6DvU1DKQIJFm/Zwx4dz6NokjUfP76SBBxLVSrqn\n7QdgE1AbeKbQ9kxgbjCLEhGRGLVpLsx6A04YCvVKXit0595cho6cSfWUSrxy5fEkVSrbAvIikaqk\ne9rWAGvwL2ElIiISXM7B+LsgpQb0vKfEXfMKfNz8zmy2Zubw4Q0nU7d6coiKFPGOxkOLiEh4mPc/\nWPsj9H/eH9xK8Pi4Rfy4cgfPXHwsxzVOC1GBIt4qy0AEERGR4MrJhEn3Q4Ou0PWqEnf9cMY63vxh\nNUNOa86FxzcKUYEi3lNPm4iIeO+bf0DWZrjsHYgrvj9h1ppd3PfpfE5rVZt7+rYLYYEi3itp9Og8\nilgJATDAOee6BK0qERGJHduXwY//geOugEbpxe62OSObG9+eRf3UZF68vCuV4nWxSGJLST1t/UJW\nhYiIxCbnYMLdkJACvR8qdrfsvAJuGDWTfTn5vPOnE0mrnBiyEkXCRWmjR0VERIJnyXhYPhnO/jtU\nrVvkLs457v1kPnPWZ/DKVcfTpl61EBcpEh5KujyaScmXR6sHrSoREYl+edkw8R6o0w66X1/sbq9/\nv5qPZq/ntt6tObtj/RAWKBJeSupp058yIiISPD++ALtWw+DPID6hyF2+W7adx8ct5OyO9fhzr9ah\nrU8kzJR59KiZ1QUOzF7onFsblIpERCT6ZayHb/8F7c+DFj2K3GXNjr3c/O5sWtetxjOXHEdcnJao\nkthW6tAbMzvPzJYBq4CvgdXA+CDXJSIi0WzSff5BCGc/XuTTWTn5DB05EzMYMTidqkmaoUqkLOOl\nHwVOApY655oDfwR+CmpVIiISvVZ9Aws+gdNuh7Qmhz3t8zn++sGvLN+axYuDutGkVmUPihQJP2UJ\nbXnOuR1AnJnFOeemAsVPpCMiIlKcgnwYP8wf1k79c5G7PP/VMiYt3MK953bgtNa1Q1ygSPgqS3/z\nbjOrCnwDvGNmW4G9wS1LRESi0oxXYetCuPQd/9xsh5gwfzPPTV7Ghd0acd2pzUJfn0gYK0tP2wBg\nP3A7MAFYAfQPZlEiIhKFsrbB1L9Dy17Q7tzDnl68eQ9//fBXjm2cxuMXdMJMAw9ECitpnrbbgB+A\n2c65gsDmt0JSlYiIRJ8pD0PeXujzFBwSyHbtzWXoyJlUTarE8KuOJzkh3qMiRcJXSZdHGwHPAe0C\n65B+jz/E/eCc2xmK4kREJEpsmAW/vA0n3wx12hz0VH6Bj1vem82WjBzev+Ek6lVPLuYgIrGtpMl1\n7wQws0T8Aw9OAa4FhpvZbudch9CUKCIiEc3ngy/+5l+m6g/DDnv6ifGL+X75Dp6+qAvdmtTwoECR\nyFCWgQgpQHUgNfCxEZgXzKJERCSKzHnX39N2/suQfPAKiKNnree171ZxzSnNuCS9sUcFikSGku5p\nGw50BDKBn/FfGv2Xc25XiGoTEZFIl50Bkx+CRt2hy6UHPfXL2l383yfzOKVlLe49t7039YlEkJJ6\n2poAScAyYAOwHtgdiqJERCRKTHsS9m6HK0ZD3O8TFmzZk80No2ZRr3oSL13ejYT4skxmIBLbSrqn\nrY/5x1t3xH8/2x1AJzPbCfzonHswFAWa2fnAufgv0b7mnJsUivOKiMhR2roIfn4Fjr8aGhx3YHNO\nfgE3vj2LrJx8Rg45hRpVEj0sUiRylPinjfObD3yBf73R74GWwF/KcnAze93MtprZ/EO29zGzJWa2\n3MzuLqWGT51zQ4EbgUtL2ldERMKEczD+LkiqBr0eKLTZcd8n8/ll7W6eufhY2tWvXsJBRKSwku5p\n+zP+HrZTgDwC030Ar1P2gQhvAi8CIwsdNx54CTgT/yXXGWY2BogHnjjk9dc557YGPr8v8DoREQl3\ni8b41xg9559QpdaBzW/9sJr/zVrPn3u1om/nYzwsUCTylHRPWzPgf8DtzrlNR3Jw59w3ZtbskM3d\ngeXOuZUAZvY+MMA59wTQ79BjBC7RPgmMd87NLu5cZnY9cD1AkyaHL0AsIiIhkrsPJt4L9TrB8dce\n2PzD8u08Om4RvdvX47bebUo4gIgUpaR72v4apHM2BNYVerweOLGE/W8FegOpZtbKOfdyUTs554YD\nwwHS09NdBdUqIiLl9f1zkLEOLngF4v2/Ztbt3Mf/e3c2LWpX4dlLjyUuTktUiZRXWeZp85Rz7nng\nea/rEBGRMti1Gr57DjpdBM1OBWBvTj5DR87E53OMGJxOteQEb2sUiVBehLYNQOEZFBsFtomISKSb\neC/EVYKzHgX8Aw/u/N8clm7J5M1ru9OsdhWPCxSJXF5MjDMDaG1mzQNLZF0GjPGgDhERqUjLp8Di\nz+GMO6F6AwBe/Go54+dv5p6+7TmjTR2PCxSJbEENbWb2HvAj0NbM1pvZEOdcPnALMBFYBHzonFsQ\nzDpERCTI8nNh/DCo2cK/KDwwacFmnvlyKRd0bcifTm/ucYEikS+ol0edc4OK2f4F/rnfKpSZ9Qf6\nt2rVqqIPLSIiJfn5ZdixDC7/EColsXRLJrd/8CtdGqXyxMDO+CcCEJGjEVXrhjjnxjrnrk9NTfW6\nFBGR2JG5Gb5+ClqfDW3OZve+XIaOnElKYiVeuep4khPiva5QJCpEVWgTEREPfPkgFORCnyfIL/Bx\n63u/sHH3fl65qhvHpKZ4XZ1I1FBoExGRI7f2Z5j7Ppx8C9RqydMTl/Dtsu08MqATxzet6XV1IlFF\noU1ERI6MrwC+uBOqNYDT7+CTX9Yz/JuVDD65KYO6a2UakYoW9pPriohImJr9FmyeCxe+xtxt+Qz7\naB4nNq/J/f06eF2ZSFSKqp42M+tvZsMzMjK8LkVEJLrt2wlTHoWmp7G16blcP3IWdaom8Z8rupEQ\nH1W/WkTCRlT9z9LoURGREJn6OGTvJvesJ7jpnV/YvT+X4YOPp1bVJK8rE4laujwqIiLls3kezHwd\nlz6EB36CWWt28eLlXenYQH8wiwRTVPW0iYhIkDkHX9wFKTX4sNpg3p+xjpt7tqRflwZeVyYS9RTa\nRESk7OZ/BGt/YEWXO7h3wnr+2K4ud5zZ1uuqRGKCLo+KiEjZ5GTBpPvIrduFS6e3pGmtZJ697Dji\n4rRElUgoqKdNRETK5tt/QuYmhu0fTI7PGDE4nerJCV5XJRIzoiq0acoPEZEg2bEC98OL/FT9bD7d\n3oAXBnWlRZ2qXlclElOiKrRpyg8RkSCZcDd5lsitWwcwrE87erSt63VFIjEnqkKbiIgEwZIJsGwS\n/8g5n5OP7cANZ7TwuiKRmKSBCCIiUry8bHLH3cV615AZdS/ivQu7YKaBByJeUE+biIgUK/vb50nc\ns4Zn4q/jpcEnk5IY73VJIjFLoU1ERIpUsGsd9u0zTPSdwNVXXUfDtBSvSxKJaQptIiJSpCWjbsP5\nCtjf8xG6N6/pdTkiMU+hTUREDvPdl5/QYedkvq9/Jef3PMXrckSEKAttmqdNROTozVu7gzrfPcDW\nuLqcfs3jXpcjIgFRFdo0T5uIyNHZlpnDpJGP09bWktzvSRJTqnhdkogERFVoExGRI5eb7+PuUVP4\nU977ZDU8jepdB3pdkogUonnaREQEgIfHLuCPG4dTLSGHuPP/BZqPTSSsqKdNRER4+6c1zJ0+jUGV\nphF30o1Qp63XJYnIIdTTJiIS46av2snDY+Yxvto7kFAH/jDM65JEpAgKbSIiMWzD7v3c9PYshlSb\nTqucRXDOfyG5utdliUgRdHlURCRG7c8t4PqRM0nMz+LOuHeh0QnQ5TKvyxKRYqinTUQkBjnnGPbR\nXBZu2sPXXb6m0pLtcM7/IE5/y4uEq6j636nJdUVEyuaVb1YyZs5GHj81kSbLRkG3wdCgq9dliUgJ\noiq0aXJdEZHSTV28lacmLKZf5/oM2vkiJFaBPz7gdVkiUoqoCm0iIlKyFduy+PP7v9C+fnWe6bwW\nWzkNet4LVWp7XZqIlEL3tImIxIg92XkMHTmThPg4RgxqT9I7PaFuR0gf4nVpIlIGCm0iIjGgwOe4\n7f1fWbtjH2//6UQaLhgOGWvhmnEQr18FIpFAl0dFRGLAv75cwleLt/Jg/w6cVCMLvn8OOg6EZqd5\nXZqIlJH+vBIRiXJj52zkpakrGNS9MVee1BQ+uBIsDs56zOvSRKQc1NMmIhLFFmzM4G+j55DetAYP\nn9cJWzkVFn8Op98BqQ29Lk9EykGhTUQkSu3IyuH6kbOoUTmR/155PInkw/hhUKM5nHKr1+WJSDnp\n8qiISBTKK/Bx0zuz2Z6Vw/9uPJk61ZLghxdh+1IY9AFUSvK6RBEpJ4U2EZEo9OjnC5m+aifPXnos\nXRqlQeYWmPYktD4L2vbxujwROQK6PCoiEmXem76WkT+u4fozWnBB10b+jZMfgoIc6POkp7WJyJGL\nqtCmtUdFJNbNXL2TBz6bz+mtazOsTzv/xnXTYc67cPLNUKultwWKyBGLqtCmtUdFJJZt3L2fG9+e\nTcO0FF4c1I34OANfAXzxN6jWAE6/0+sSReQo6J42EZEokJ1XwA2jZrE/N5/3hp5IauUE/xO/jIJN\nv8KFr0FSVW+LFJGjotAmIhLhnHPc8/E85m3IYMTgdFrXq+Z/Yv8umPIINDkFOl3obZEictSi6vKo\niEgsevXbVXzyywbuOLMNZ3ao9/sTU//uD27nPA1m3hUoIhVCoU1EJIJ9vXQbT4xfxDmd63NLr1a/\nP7F5Psx4FdKvg/qdvStQRCqMQpuISIRatX0vt747mzb1qvGPi47FfutNcw7G3wXJadDzXm+LFJEK\no3vaREQiUGZ2HkNHziQ+zhgxOJ0qSYXezud/BGu+h37PQuWa3hUpIhVKPW0iIhFmxbYsBr8+nVXb\n9/LSFd1oXLPy70/mZMGk++GYY6Hb1d4VKSIVTj1tIiIRIr/Ax4hvV/Hs5KWkJMTz/GVdOaVl7YN3\n+vYZyNwIF78JcfGe1CkiwaHQJiISARZu3MNdH81h/oY99OlYn0fO70jdaskH77RjBfz4InS5DJqc\n6E2hIhI0Cm0iImEsJ7+AF79azn+nrSCtciL/vaIbfTsfU/TOE+6B+CQ48+HQFikiIaHQJiISpmav\n3cVdo+eyfGsWA7s15IF+HUirnFj0zksnwrKJcOajUK1+aAsVkZBQaBMRCTP7cvP558SlvPHDKo6p\nnswb155Az7Z1i39Bfg5MuBtqtYYTbwxdoSISUgptIiJh5Ifl27n743ms3bmPq05qyrC+7aiaVMpb\n9Y8vwc6VcOXHUKmYnjgRiXhRFdrMrD/Qv1WrVqXuKyISTvZk5/H3cYt4f8Y6mteuwgfXn8SJLWqV\n4YUb4Zt/Qrt+0OqPwS9URDwTVaHNOTcWGJuenj7U61pERMpq8sIt3PvpPLZl5nDDH1pwe+82JCeU\ncbqOSfeDK4CzHw9ukSLiuagKbSIikWRHVg4Pj13ImDkbaVe/GiMGp9OlUVrZD7D6e5g/Gv4wDGo0\nC1qdIhIeFNqk3HLzfWRm55GZnU9WTj57Ap/7P/yfZ+cVcG6XY+jYINXrckXCjnOOsXM38dCYBWRm\n53F77zbc1KMliZXKsUhNQb5/fdHUxnDqbcErVkTChkJbDHHOkZ3nD1x7AgErK+fgsLUnO5+sQo8z\ncwoHMv/2nHxfqeeKM3j56xVc1r0Jd5zZhlpVk0LwFYqEv80Z2dz36XwmL9rCsY3TePrCLrStX638\nB5r5OmyZDxe/BYmVS99fRCKeQluE8Pkce3MPDk+ZhwSuA71fgfBVOHhlBV6X73OlnqtaUiWqJlei\nWnIlqiUnULNKIk1rVfE/Tvp9e+F/qyZVovpvnydXYl9OAc9NWcrIH9fw+ZyN3Na7DVed3JSEeC13\nK7HJOccHM9bx+BeLyCvwce857bnutObEx1n5D7ZhFky6D1r2gg4DKr5YEQlL5lzpv8QjTXp6ups5\nc6bXZRyQX+A70KNV+FJiVqFerD2FAldmEZcbs3LzKe1bFR9nBwLUb2Gq+iHB6vewdXDIOrBPYiXi\njuSXSDGWbcnkkc8X8u2y7bSqW5UH+nXgjDZ1Kuz4IpFg7Y593PPJXL5fvoOTWtTkyYFdaFa7ypEd\nLHMzDO8B8QkwdBpUKcMIUxEJa2Y2yzmXXup+Cm3lN299Bos37zksWB18KfH3z/fnFZR6zMRKcVQv\nIlgd+DypiN6tQ0JZSkI8ZhUXuCqKc44pi7by6LiFrNmxj97t63LfuR2O/JeWSIQo8Dne/GE1/5y4\nhPg4455z2jHohCZH/odRfg68eS5sWQBDvoT6nSq2YBHxRFlDmy6PHoGPZq/nzR9WH3hcOTH+sJ6s\nhmkpB4JX1aSDQ1j1Q3q3qiVXIqlSGYf3RyAzo3eHepzepjZvfL+aF6Ys48xnv+a605pza6/WpU8c\nKhKBlm/N5K7Rc5m9djc929bh8Qs60yAt5cgP6Bx8/ldYPwMuGanAJhKD1NN2BLZmZpOT5zsQ1Crp\nPq1y2bonm6cnLmH0rPXUqZbEsD7tGNi1YYVelhXxSl6Bj1e+XsHzU5ZTJSmeB/t3ZMBxDY6+F/yn\nl2HCMDjjLuh1b8UUKyJhQZdHw+ieNinar+t289CYBfy6bjfHNk7jwf4d6NakhtdliRyx+Rsy+Nvo\nuSzatIdzuxzDw+d1pHZFjJxeOQ1GDYQ2feDStyFOfyiKRBOFNoW2iODzOT79dQNPjl/M1swcBnZt\nyLC+7ahXPdnr0kTKLDuvgH9PWcbwb1ZSq0oij57fibM71q+Yg+9cBSN6QtX68KcvIekIpgcRkbCm\ne9okIsTFGQO7NeLsjvV5aepyXv12FRMWbObmnq0Yclrzsi/lI+KRGat3Mmz0XFZu38sl6Y2495wO\npFZOqJiD52TC+5f772cb9K4Cm0iMU0+bhJU1O/by+LhFTFq4hSY1K3Pvue05q0O9sBwVK7Ftb04+\nT09YzMif1tAwLYUnBnbm9NYVOJ2NzwcfXgVLvoArP4aWPSvu2CISVtTTJhGpaa0qDB+cznfLtvPw\n2AXcMGoWp7aqxYP9O9KmnnoZJDx8s3Qb93w8j40Z+7n65Gb87ey2VKnoUdBfPwWLP4ezn1BgExFA\nPW0SxvILfLz90xr+9eVS9uYWcOWJTbj9zDakVU70ujSJURn78nh03EJGz1pPizpVePrCLqQ3q1nx\nJ1o4xt/LdtwVMOAlUE+zSFTTQASFtqixc28u//pyCe/+vJbUlAT+elZbBp3QWFOtSEhNmL+Z+z+b\nz869udz4hxbc2qt1cO653LIAXj0T6raHa8ZBggbliEQ7hTaFtqizaNMeHh67gJ9W7qRd/Wo80L8D\np7Ss7XVZEuW2Zebw0JgFjJu3iQ7HVOfpi7rQqWFqcE62d4d/pGh+Dlw/DaofE5zziEhYUWhTaItK\nzjkmzN/MY+MWsWH3fvp2qs//ndOexjUre12aRBnnHJ/8soFHPl/IvpwC/tK7Ndef0YKEYPXwFuTB\nqAtg3XS4djw0Oj445xGRsKOBCBKVzIy+nY+hZ7u6jPhmJf+ZtoIpi7dywxktuKlHSyon6kdajt7G\n3fv5v0/mMW3JNo5vWoOnLuxCq7pVg3vSSffB6m/h/JcV2ESkSOppk4i2KWM/T45fzGe/bqR+9WTu\nOacd5x1bAUsGSUzy+RzvTl/Lk+MXU+Bz3NWnLYNPbkZ8sJdYmz0KxtwCJ90Mff4e3HOJSNiJycuj\nZtYf6N+qVauhy5Yt87ocCaGZq3fy0NgFzN+wh/SmNXiwf0c6NwrSfUcSlVZv38uwj+by86qdnNaq\nNk8M7Byay+5rf4Y3z4Vmp8EVoyFevcUisSYmQ9tv1NMWmwp8jtGz1vGPiUvYsTeXS45vzJ1nt6VO\ntQpY+1GiVoHP8dp3K3lm0lISK8Vx/7kduDi9UWh6azM2wPAekFgFhn4FlYMwfYiIhD3d0yYxJz7O\nuPSEJvTtfAwvTFnGG9+v5ot5m/jzH1tz9SnNSKykKULkYEs2Z3LX6DnMWZ/BmR3q8dj5nUK37m3e\nfvjgCsjbB1ePUWATkVKpp02i1optWTz2+UKmLtlGi9pVuL9fB3q2q+t1WRIGcvN9/Gfacl6aupzq\nyQk8dF5H+nU5JnT3QjoHn9wAcz+Ay96DdueE5rwiEpbU0yYxr2WdqrxxbXemLt7Ko58v5No3Z9Cj\nbR3u79eBlnWCPBJQwtacdbu5a/RclmzJ5PzjGvBA/47UrBLiVTZ+fNEf2Hrep8AmImWmnjaJCbn5\nPkb+uJp/T17G/rwCrjmlGX/u3ZrqyQlelyYhsj+3gGcnL+XVb1dSt1oyfx/YiV7t6oW+kOWT4Z2L\noX1/uPgtLVElIhqIoNAmRdmWmcMzk5bwwcx11KqSyN/ObstFxzcO/pQO4qmfVu7g7o/msnrHPi4/\nsQl3923nTWDfvhxG9IK0xjBkkn8AgojEPIU2hTYpwbz1GTw8dgEz1+yiU8PqPNi/IycEY+Fv8VRm\ndh5Pjl/MOz+vpWmtyjwxsLN3S59lZ8CrvWHfDhg6FWo09aYOEQk7Cm0KbVIK5xxj5mzkiS8Ws3lP\nNucd24C7+7ajQVqK16VJBZi6ZCv3fjyPzXuyue7U5txxVltSEoOwwHtZ+ArgvUGwYgoM/sw/J5uI\nSIAGIoiUwswYcFxDzuxQj5enreCVb1by5cIt3NSjJdef0YLkBI9+wctR2bU3l0c/X8jHv2ygdd2q\nfHTTKXRtUsPboqY+Dssmwjn/VGATkSOmnjaRgHU79/HE+EV8MW8zDdNSuPfc9vTtVF9LYkUI5xxf\nzNvMg2Pms3tfHv+vR0tu7tWKpEoeh+/5H8Ho66Db1dD/3xp4ICKH0eVRhTY5Qj+s2M4jYxeyeHMm\nJ7WoyYP9O9L+mOpelyUl2Lonm/s/m8/EBVvo3DCVpy/qEh7fs01z4LWz4Zhj4eqxUCnEU4uISERQ\naFNok6OQX+DjvRnreGbSEvbsz2NQ9ybccVbb0M/nJSVyzvG/Wet57POF5OT7uP3MNvzptOZUig+D\n1S+ytsGInuB8cP00qKqJnUWkaLqnTeQoVIqP46qTmtK/yzE8N3kZo35aw9g5G/nrmW244qSmJIRD\nKIhx63bu4/8+mce3y7bTvVlNnrywMy3CZdLk/Fz4cDDs3QbXTVBgE5EKoZ42kTJYuiWTR8Yu5Lvl\n22ldtyoP9u/Iaa09mjoixvl8jlE/reGpCYsx4O6+7bjixKbEhdNce5/fDjNfhwtfg84XeV2NiIQ5\n9bSJVKA29aoxakh3vly4hcfGLeLK137mzA71uO/c9jStpQlSQ2XFtizu/mguM1bv4ow2dfj7BZ1o\nVKOy12UdbMZr/sB26m0KbCJSodTTJlJO2XkFvPbdKl6aupz8AseQ05tzc89WVE3S30DBkl/gY8S3\nq3h28lJSEuJ5oF8HBnZrGH4je1d/DyPPg5a9YND7EKdpY0SkdBqIoNAmQbZlTzZPTVjMx7M3ULda\nEsP6tOOCrg3D6zJdFFi4cQ93fTSH+Rv20LdTfR4e0JG61ZK9Lutwu9fC8J6QUgOGToHkVK8rEpEI\nodCm0CYhMnvtLh4eu5A563ZzXOM0HuzfwfvJXKNATn4BL361nP9OW0Fa5UQeHdCRvp2P8bqsouXu\ng9fPgl1rYOhXULu11xWJSARRaFNokxDy+Rwf/7KBpyYsZltmDhd2a8SwPm2pWz0Me4Q85JwjO8/H\nrn257N6Xx+59uezen3fQ41378ti9L48lW/awbud+LuzWiPv7tSetcphOt+Kcf/LcBZ/A5R9Cm7O8\nrkhEIowGIoiEUFyccdHxjejTqT4vfrWc179bxYT5m7ilV2uuO62Z97PyB0Fuvu/30LXX/2/h0LU7\nEMR27cslIxDMdu3LIzffV+wxUxLiqVE5gdTKiTSrVYVHB3SiR9swny7ju3/Bgo+h98MKbCISVOpp\nEwmC1dv38ti4RUxetIWmtSpz37kd6N2+bvjdOI//Jv+M/XkHQpc/aB0cugo/99u2fbkFxR4zMT6O\ntMoJgY9E0lISqFE58cDjGoWfq+x/LjUlIfLWe10y3r8QfOeLYOAILVElIkdEl0cV2iQMfLN0G498\nvpDlW7M4vXVtHujXgdb1qgXlXD6fIzM7n937cw8PXQddiswjI9DrtWtfLpnZ+cUeM844KFilpRQO\nWoeHrhpV/PtUTowPy4BaobYtgRF/hFot4LqJkJDidUUiEqEU2hTaJEzkFfgY9eManp28lH25BVx1\nUlNu792G1MoJRe7vnGNvbsFhPVsH9YLtzy3yEqSvhP/O1ZMr+UPVgZ6v30NX2m+Bq1CvWGrlBKol\nVdJo2KLs3+UPbDl7/EtUpTbyuiIRiWC6p00kTCTEx3Hdac0ZcFwD/vXlUkb+uJrPft3AgOMasi83\nP9Dz9fs9Xxn7c8krKD59VUmM919irJJAWkoiDdJSDu7tCjyXmpJ4IJilpiQQr/BVMXwFMHqIf4qP\naz5XYBORkFFoEwmRWlWTePyCzlx+YhMe+3wR789YS1pK4oF7v1rVrVriPWCplf0hLbGS1j318OsP\neAAAE8JJREFU1OQHYcUU6P9vaHKS19WISAxRaBMJsY4NUnnvev2yj0hzPoAfXoAThsLx13hdjYjE\nGP3JLiJSFhtmwZhbodnp0OcJr6sRkRik0CYiUprMzfD+FVC1Hlz8FsQXPYhERCSYdHlURKQk+Tnw\nwVWQnQFDJkGVWl5XJCIxSqFNRKQ4zsG4v8L66f4etvqdva5IRGKYLo+KiBRn+nD45W044y7oeL7X\n1YhIjFNoExEpysqvYcI90PYc6HGP19WIiIR/aDOz9mb2spmNNrObvK5HRGLAzlXwv6uhdmu44BWI\nC/u3ShGJAUF9JzKz181sq5nNP2R7HzNbYmbLzezuko7hnFvknLsRuAQ4NZj1ioiQkwXvX+6/n23Q\ne5Bc3euKRESA4Pe0vQn0KbzBzOKBl4C+QAdgkJl1MLPOZvb5IR91A685DxgHfBHkekUklvl88MkN\nsG0xXPwG1GzhdUUiIgcEdfSoc+4bM2t2yObuwHLn3EoAM3sfGOCcewLoV8xxxgBjzGwc8G5R+5jZ\n9cD1AE2aNKmQ+kUkxnzzNCz+HM5+Alr28roaEZGDeDHlR0NgXaHH64ETi9vZzHoAA4EkSuhpc84N\nB4YDpKenF7/atohIURaNhWlPwLGXw0m6fVZEwk/Yz9PmnJsGTPO4DBGJZlsWwMc3QMN06PcsmHld\nkYjIYbwYErUBaFzocaPANhGR0Nu3E94bBEnV4NK3ISHZ64pERIrkRWibAbQ2s+ZmlghcBozxoA4R\niXUF+f6pPTI3wWXvQPVjvK5IRKRYwZ7y4z3gR6Ctma03syHOuXzgFmAisAj40Dm3IJh1iIgUadK9\nsOob6P9vaJTudTUiIiUK9ujRQcVs/4IgTN9hZv2B/q1ataroQ4tItJk9Cn5+GU66GY673OtqRERK\nFVXTfDvnxjrnrk9NTfW6FBEJZ+um+xeCb9EDznzE62pERMokqkKbiEip9myED66E6g3hojcgPuwH\n0YuIABEw5YeISIXJ2+9foip3Lwz+DCrX9LoiEZEyU2gTkdjgHIz9C2z8BS57F+q297oiEZFy0eVR\nEYkNP74Icz+AnvdBu3O9rkZEpNyiKrSZWX8zG56RkeF1KSISTpZPhi8fgA4D4Iw7va5GROSIRFVo\n0+hRETnMjhUw+jqo2wEG/EdLVIlIxIqq0CYicpDsPfDeZWDx/vvYkqp6XZGIyBHTQAQRiU4+H3w8\n1N/TNvgzqNHU64pERI6KQpuIRKepj8HSCXDOP6H56V5XIyJy1HR5VESiz/yP4NtnoNvVcMKfvK5G\nRKRCKLSJSHTZNBc+vRkan+TvZdPAAxGJElEV2jTlh0iMy9rmX/Ggck24dBRUSvS6IhGRChNVoU1T\nfojEsPxc+HAw7N0Gl70DVet6XZGISIXSQAQRiQ4T7oa1P8DAV6FBV6+rERGpcFHV0yYiMWrm6zDz\nNTj1L9DlYq+rEREJCoU2EYlsa36AL/4Grc6EPz7odTUiIkGj0CYikWv3OvjgKqjRHC58FeLiva5I\nRCRoFNpEJDLl7vOPFC3IhUHvQUqa1xWJiASVBiKISORxDj67GTbPg8s/hNqtva5IRCTooqqnTfO0\nicSI756FBR9D7wehzVleVyMiEhJRFdo0T5tIDFgyAaY8Ap0uglNv87oaEZGQiarQJiJRbtsS+OhP\ncEwXOO8FLVElIjFFoU1EIsP+XfDeIEhIhsvehcTKXlckIhJSGoggIuHPVwCjh8DutXD1WEht5HVF\nIiIhp9AmIuFv8kOwYgr0/zc0PdnrakREPKHLoyIS3uZ8AD88Dyf8CY6/xutqREQ8o9AmIuFrw2wY\ncys0PQ36POl1NSIinlJoE5HwlLkF3r8CqtaDS96C+ASvKxIR8VRUhTZNrisSJXasgA+ugOzdMOhd\nqFLb64pERDwXVaFNk+uKRDBfASweB6MugBe6wcZf4YKXoX5nrysTEQkLGj0qIt7K2ga/jISZb0DG\nOqjWAHreC92uhmr1vK5ORCRsKLSJSOg5B+tnwPQRsPBTKMiF5mfA2X+HtudAvN6aREQOpXdGEQmd\n3L0wbzTMGAGb50FSdTj+WjhhCNRp63V1IiJhTaFNRIJv+3KY+Rr88g7kZEDdjtDvWeh8CSRV9bo6\nEZGIoNAmIsHhK4ClE/yXQFdOhbhK0GGAf5LcJidrsXcRkXJSaBORipW1DWa/BbPe9A8sqN4Qet4H\n3QZrYIGIyFFQaBORo+ccrJvuv1dtwafgy4Pmf9DAAhGRCqR3UhE5crl7Yd7/YMarvw8sOGEIpA+B\nOm28rk5EJKootIlI+W1f7g9qv76rgQUiIiGi0CYiZVOQ7x9YMOPVwMCCBOhwHpwwFJqcpIEFIiJB\nFlWhzcz6A/1btWrldSki0SNrK8wOrFiwZ70GFoiIeMScc17XUOHS09PdzJkzvS5DJHIVN7Cg+1Bo\n01cDC0REKpCZzXLOpZe2n955ReR3GlggIhK2FNpE5PCBBfU6Qb/noPPFGlggIhImFNpEYtWBgQUj\nYOW0wMCCAf5LoI1P1MACEZEwo9AmEmuytvpXLJj55u8DC3rdB101sEBEJJwptInEAudg3c/+dUAX\nfuYfWNCiB/R9UgMLREQihN6pRaJZ7l6Y+yHMeA22FBpYcMKfoHZrr6sTEZFyUGgTiUbbl/mD2qED\nC7pcAolVvK5ORESOgEKbSLQoyIel4wMrFkzzDyzoeL6/V00DC0REIp5Cm0ikK25gQberoWpdr6sT\nEZEKotAmEomKHVjwFLTpo4EFIiJRSO/sIpEkJ+v3FQu2zIekVP/lzxOGaGCBiEiUU2gTiQTblxVa\nsWAP1OsM/f/tX7FAAwtERGKCQptIuPptYMH0EbDq60IDC4ZC4+4aWCAiEmOiKrSZWX+gf6tWrbwu\nReTIZW2FWW/BrDdgzwao3gh63Q/dBmtggYhIDDPnnNc1VLj09HQ3c+ZMr8sQKTvnYO1P/nVAF44J\nDCzo6b9fTQMLRESimpnNcs6ll7affhOIeCknC+b9tmJBYGBB96GQfp0GFoiIyEEU2kRCIW8/7N8F\n+3dD9m7/vyunwZz3NLBARETKRKFNpKzycw4OXft3/f559u7DQ1nh5wtyDj+eBhaIiEg5KLRJbCnI\ng+yM8oeu7N2Qt6/kYydVh+Q0SEmFlBpQpy2kpAW21Sj0eeBxWlOoXDM0X7eIiEQ8hTaJPL6CQPDa\nVUKv12/bMg4OZblZJR87ocrvoSo5DWq2KBS0Dg1ghYJYcqoGC4iISFDpt8yRWPMjbFsEFg9x8RBX\nKfB5XKHPf9sed8g+gY/DXlvc9mKOGemX0nw+/71c5b7UmAE5GSUfu1LyweEqtRHU73x4T1fyIUEs\nORUqJYbm6xcRESknhbYjseBjmD7c2xrs0DBXjsB3NGGxrK+1OP/IyOJCWXYGOF/xX19cwsGXFKvV\nh7rtDw9aRQWxhOTQfR9ERERCRKHtSPS6H06/A3z5/kt1rsD/r6/Av63wY3fodt8h++T7w8thry1u\ne1HHLLz9t5p8h9SX7z/3QfsEXpefW/7XFlXHoSHM4g8OVZVrQc2WpYeulDRIqBz5vYkiIiIVSKHt\nSCRX93/IwZw7OMwlpCh4iYiIVBCFNqk4ZoGb8fVjJSIiUtHivC5AREREREqn0CYiIiISARTaRERE\nRCKAQpuIiIhIBFBoExEREYkACm0iIiIiEUChTURERCQCKLSJiIiIRACFNhEREZEIEFWhzcz6m9nw\njIwMr0sRERERqVBRFdqcc2Odc9enpqZ6XYqIiIhIhYqq0CYiIiISrRTaRERERCKAQpuIiIhIBFBo\nExEREYkACm0iIiIiEUChTURERCQCKLSJiIiIRACFNhEREZEIoNAmIiIiEgEU2kREREQigEKbiIiI\nSAQw55zXNVQ4M9sGrCllt1SgtJXlS9qnNrC9nKWVRVnqCtVxw7GN1D6lUxsd+flCfdxwbJ/SzhnK\n4x5t+4B+hkrbRz9D4dE+TZ1zdUp9lXMuJj+A4UezDzDTq7pCddxwbCO1j9pI7RM7P0NH2z7BaqNw\naZ+KaCP9DEVW+8Ty5dGxFbRPRQvWOY/kuOHYRmof784ZLW2k9vHunOU9rtqnYl4Ty20UVe0TlZdH\nQ8HMZjrn0r2uI5ypjUqm9imd2qhkap/SqY1KpvYpWbi1Tyz3tB2t4V4XEAHURiVT+5RObVQytU/p\n1EYlU/uULKzaRz1tIiIiIhFAPW0iIiIiEUChTURERCQCKLSJiIiIRACFNhEREZEIoNBWQcyshZm9\nZmajva4lHJnZ+WY2wsw+MLOzvK4nHJlZezN72cxGm9lNXtcTjsysipnNNLN+XtcSjsysh5l9G/g5\n6uF1PeHGzOLM7HEze8HMrva6nnBkZqcHfn5eNbMfvK4n3JhZEzP71MxeN7O7Q31+hbYSBL4pW81s\n/iHb+5jZEjNb/ts3zTm30jk3xJtKvVHO9vnUOTcUuBG41It6vVDONlrknLsRuAQ41Yt6Q6087RMw\nDPgwtFV6q5xt5IAsIBlYH+pavVDO9hkANALyiJH2gXK/D30beB/6HHjLi3pDrZw/Q52B0c6564Cu\nIS82GMszRMsHcAbQDZhfaFs8sAJoASQCc4AOhZ4f7XXdYd4+zwDdvK49XNsIOA8YD1zude3h1j7A\nmcBlwDVAP69rD9M2igs8Xw94x+vaw7B97gZuCOyj9+qS36s/BKp5XXu4tQ9QC5gKfAVcG+pa1dNW\nAufcN8DOQzZ3B5Y7f89aLvA+/r/eYk552sf8ngLGO+dmh7pWr5T3Z8g5N8Y51xe4IrSVeqOc7dMD\nOAm4HBhqZjHx/lWeNnLO+QLP7wKSQlimZ8r5M7Qef9sAFISuSm+V933IzJoAGc65zNBW6o1yts+1\nwIPOuV7AuaGtFCqF+oRRoCGwrtDj9cCJZlYLeBzoamb3OOee8KQ67xXZPsCtQG8g1cxaOede9qK4\nMFHcz1APYCD+X7ZfeFBXuCiyfZxztwCY2TXA9kIBJRYV9zM0EDgbSANe9KKwMFHc+9C/gRfM7HTg\nGy8KCyPFtRHAEOCNkFcUXoprn5eBh8zscmB1qItSaKsgzrkd+O/XkiI4554Hnve6jnDmnJsGTPO4\njLDnnHvT6xrClXPuY+Bjr+sIV865ffgDiZTAOfeg1zWEK+fcfOAir84fE5cXKtgGoHGhx40C28RP\n7VM6tVHJ1D6lUxuVTO1TOrVRycKyfRTaym8G0NrMmptZIv4bo8d4XFM4UfuUTm1UMrVP6dRGJVP7\nlE5tVLKwbB+FthKY2XvAj0BbM1tvZkOcc/nALcBEYBHwoXNugZd1ekXtUzq1UcnUPqVTG5VM7VM6\ntVHJIql9LDC0VURERETCmHraRERERCKAQpuIiIhIBFBoExEREYkACm0iIiIiEUChTURERCQCKLSJ\niIiIRACFNhEJOjNzZvZMocd3mtlDFXTsN80s6MvKmNnFZrbIzKaW4zVZwayplHP/n1fnFpHgUGgT\nkVDIAQaaWW2vCynMzMqz/vIQYKhzrmew6qlgCm0iUUahTURCIR8YDtx+6BOH9pT91jtlZj3M7Gsz\n+8zMVprZk2Z2hZlNN7N5Ztay0GF6m9lMM1tqZv0Cr483s3+Y2Qwzm2tmNxQ67rdmNgZYWEQ9gwLH\nn29mTwW2PQCcBrxmZv8o4jV/K3Seh4tqgKL2MbNmZrY40AZLzewdM+ttZt+b2TIz6x7Yr4qZvR74\n2n8xswGB7deY2cdmNiGw/9OB7U8CKWb2a+CYVcxsnJnNCXxdl5b6HRORsFOevzJFRI7GS8Dc34JF\nGR0LtAd2AiuBV51z3c3sL8CtwG2B/ZoB3YGWwFQzawUMBjKccyeYWRLwvZlNCuzfDejknFtV+GRm\n1gB4Cjge2AVMMrPznXOPmFkv4E7n3MxDXnMW0DpwfgPGmNkZzrlvStsHWAu0Ai4GrsO/3uHl+APi\nefh7y84H7gW+cs5dZ2ZpwHQzmxw4/HFAV/y9mUvM7AXn3N1mdotz7rjA+S8ENjrnzg08Ti3zd0BE\nwoZ62kQkJJxze4CRwJ/L8bIZzrlNzrkcYAXwW+iahz+o/eZD55zPObcMf7hrB5wFDDazX4GfgVr4\ngxPA9EMDW8AJwDTn3LbA2oPvAGeUUuNZgY9fgNmBc7cuxz6rnHPznHM+YAEwxfnXFyz8NZ4F3B34\nWqYByUCTwHNTnHMZzrls/D2HTYuocR5wppk9ZWanO+cySvmaRCQMqadNRELpOfyh5Y1C2/IJ/AFp\nZnFAYqHncgp97iv02MfB71+HLqLs8Pdo3eqcm1j4CTPrAew9svKLZMATzrlXyruPmTWjbF+jARc6\n55Yc8voTD3l9AUW8rzvnlppZN+Ac4DEzm+Kce6SUr0tEwox62kQkZJxzO4EP8d/U/5vV+C9Hgv+S\nYMIRHPpiM4sL3OfWAlgCTARuMrMEADNrY2ZVSjnOdOAPZlbbzOKBQcDXpbxmInCdmVUNnKehmdU9\ngn1KO8etZmaB13ctw2vyCn3tDYB9zrm3gX/gvzwsIhFGPW0iEmrPALcUejwC+MzM5gATOLJesLX4\nA1d14EbnXLaZvYr/8uLsQNjZhv/+sGI55zaZ2d3AVPy9W+Occ5+V8ppJZtYe+DGQqbKAK4GtZdin\noIxf36P4eynnBnojVwH9SnnN8MD+s/Fflv6HmfmAPOCmMp5XRMKI+W+dEBEREZFwpsujIiIiIhFA\noU1EREQkAii0iYiIiEQAhTYRERGRCKDQJiIiIhIBFNpEREREIoBCm4iIiEgE+P8n0nkVpOpUBwAA\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9faa5b2690>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,10))\n",
"plt.title(\"Benchmark with fixed width = 1, 100 loops\")\n",
"plt.xlabel(\"Number of elements\")\n",
"plt.ylabel(\"Wall time per loop (s)\")\n",
"plt.loglog(width * np.array(depths), times_new, label=\"Bohrium TDMA\")\n",
"plt.loglog(width * np.array(depths), times_old, label=\"LAPACK dgtsv\")\n",
"plt.legend(loc=\"best\");"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12+"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment