Skip to content

Instantly share code, notes, and snippets.

@certik
Created March 2, 2014 18:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save certik/9311344 to your computer and use it in GitHub Desktop.
Save certik/9311344 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "Graphs"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": "# Time and Space Complexity Graphs"
},
{
"cell_type": "code",
"collapsed": false,
"input": "%pylab inline",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "Populating the interactive namespace from numpy and matplotlib\n"
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Let's just copy & paste the table from http://fredrikj.net/blog/2014/03/new-partition-function-record/"
},
{
"cell_type": "code",
"collapsed": false,
"input": "%%file timings.txt\n108\t11132\t3328\t2.8\t0.037\t0.07\t0.031\t0.032\t0.004\t0.016\n109\t35219\t9721\t3.05\t0.237\t0.29\t0.061\t0.227\t0.008\t0.035\n1010\t111391\t28601\t4.89\t0.441\t0.75\t0.307\t0.429\t0.039\t0.184\n1011\t352269\t84632\t9.82\t1.834\t3.29\t1.449\t1.805\t0.168\t0.841\n1012\t1113996\t251600\t19.82\t6.247\t10.39\t6.169\t4.159\t1.004\t3.475\n1013\t3522791\t750925\t61.31\t25.637\t43.06\t25.436\t17.435\t3.282\t15.834\n1014\t11140072\t2248842\t202.81\t104.07\t188.33\t103.57\t84.346\t12.389\t66.326\n1015\t35228031\t6754864\t553.77\t441.603\t845.42\t404.175\t440.417\t47.035\t263.662\n1016\t111400846\t20343453\t1469.73\t1614.84\t2858.31\t1611.65\t1244.68\t194.188\t1099.58\n1017\t352280442\t61413562\t4593.42\t7398.2\t13643.7\t6251.35\t7389.06\t762.067\t4167.94\n1018\t1114008610\t185795691\t12937.41\t23354.6\t44330.3\t23327.1\t20997\t2913.12\t16171.8\n1019\t3522804578\t563188404\t38881.84\t87825.3\t170934\t87742.6\t83184.9\t10860.9\t61796.3\n1020\t11140086260\t1710193158\t131071\t399206\t738425\t339610\t398959\t42394.2\t239099\n",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "Overwriting timings.txt\n"
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": "D = loadtxt(\"timings.txt\")",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": "n = array([10**i for i in range(8, 21)], dtype=float)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": "mem = D[:, 3]\nwall = D[:, 4]",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": "For time complexity, it looks like it is $\\Theta(n^{0.5+\\epsilon})$ with $\\epsilon=0.1$:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "eps = 0.1\nfit = n**(0.5+eps)\nfit = fit * wall[-1] / fit[-1]",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": "loglog(n, wall, \"x-\", label=\"data\")\nloglog(n, fit, \"-\", label=\"$\\mathrm{const}\\cdot n^{0.5+\\epsilon}$ with $\\epsilon=%.3f$\" % eps)\nlegend(loc=\"best\")\ngrid()\nxlabel(\"$n$\")\nylabel(\"Wall [s]\")\ntitle(\"Time complexity\");",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nj8dxdsUc0i9XpksXLYsWTVMvSLFi9yt+YaeVnq4oY8Yoytmz+v+mpxcv82Hff+fOHaVu3brKokWL\nlKysLGXz5s1K2bJllalTpypXrlxRtm7dqty6dUu5fv264u3trfzvf/8zvNfLy0tZtWpVvuOFh4cr\naWlpSnZ2trJgwQLFyclJuXPnTvEKJawaoMTExJg0U/IsM+/itYtK15W+StlgF6XlgI1KcnJOga9T\n69L/yFUgiqK/+MPDf509W/wyx8bGKo8//ni+fe3atVOmTp16z2uPHTumODg4GLa9vLyUlStXFnp8\nBwcH5aeffip+wYTVsvK/A4UK7mbfVebtX6hUDKmuVOw+SVmy6rqSU3DdoSiKer8zVt+EVVwZGTBv\nHpw9C2PGQHp68aqN9HT9+86e1R/nv30iD3Lx4kWcnZ3z7XviiScAuHXrFiNHjsTV1ZVq1arRoUMH\nrl69mq9/5L/9IPPnz8fd3R17e3scHBy4evUqf/31V8k+HCGE1dGd0+G2sDXTvoji2YQ4Ti+dw6iA\nypiiy/SRqkDyDqRxddX/N2+fhrHfD1CnTh1Dv0auc+fOoSgK8+fP59SpUxw+fJirV68SGxtrWAgG\n7q089u/fz7x589i0aRMZGRmkp6dTrVo1eSLnEWTtbfaSV/y81OupDNzkR7fVvvy55T2W/99u9kW6\n8fjj6pfvfqy+AilOJ/p33+kv+vb2+m17e/32d98VLeth3w/Qrl07ypQpw8cff8zdu3fZunUr33//\nPQA3btygYsWKVKtWjbS0tHvmq6lduzZnzpwxbF+/fp0yZcpQo0YNMjMzmTFjBteuXSt6YYQQVicr\nJ4tFhxbRZHFzojc589KvCSRt82bgQLsH3nWoPZmiVTee3q/4ln5aR44cUVq3bq1UqVJF6d+/v+Lj\n46NMnTpVuXjxouLl5aVUrlxZady4sbJs2TKlVKlSSnZ2tqIoinLw4EGlUaNGioODg/Laa68p2dnZ\nSkBAgFK1alWlTp06yocffqjUq1dP2bdvn5nPUJiSpf++C/XEJscq7mHNFJfJLyk1myQqmzeX7Dhq\n/c7IQEIhrJz8vtu+1OupBO8NZvevsbB7AS9r+rJooR3Vq5fseGr9zlh9E5YQwjra7CWv+Hm5zVXN\nPm3OzwecKbMsgVUTvVm/ruSVh5ostgLRarV4enoyevRoYmNjzV0cIYQwKd05Ha2XtWbdoSjKfx7H\n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\nSAUihBCiRP4fFtggLTDlfTwAAAAASUVORK5CYII=\n",
"text": "<matplotlib.figure.Figure at 0x42a9c50>"
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": "For space complexity, it looks like it is $\\Theta(n^{0.5+\\epsilon})$ with $\\epsilon=-0.02$:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "eps = -0.02\nfit = n**(0.5+eps)\nfit = fit * mem[-1] / fit[-1]",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": "loglog(n, mem, \"x-\", label=\"data\")\nloglog(n, fit, \"-\", label=\"$\\mathrm{const}\\cdot n^{0.5+\\epsilon}$ with $\\epsilon=%.3f$\" % eps)\nlegend(loc=\"best\")\ngrid()\nxlabel(\"$n$\")\nylabel(\"Mem [MB]\")\ntitle(\"Space complexity\");",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEdCAYAAAAikTHKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcTfn/B/DXjWRLtyJLRZSQLSZr0whDtrLMUNZK9l/2\nKUtIlkS2IbsIkZCZhojQzTIqvkImLZZI9hYUSfd+fn/c6U4RWs5dez8fjx4z53Tveb/PTefd+XzO\n5/PhMcYYCCGEkDJSk3cChBBClBMVEEIIIeVCBYQQQki5UAEhhBBSLlRACCGElAsVEEIIIeVCBYQQ\nJRIQEAArK6sKH2fAgAE4cOAABxmRyowKCFEYly9fRvfu3cHn86Grq4sff/wR169fl3daKunUqVMY\nO3YsAO6KEql8qso7AUIA4O3btxg0aBB27NiBESNG4OPHj7h06RI0NDTknRoh5CvoDoQohOTkZPB4\nPNjb24PH46F69ero06cP2rZtC0D8V7KlpSWmT58OPp+PVq1a4cKFC5L37927F2ZmZqhTpw6MjY2x\nc+fOYscPDQ2Fubk5tLS0YGJigjNnzgAA3rx5AxcXFzRq1AgGBgZYvHgxRCJRiTmKRCJ4e3vDxMQE\nderUgYWFBZ48eQIA+Pvvv9GpUyfw+Xx07twZV69elbzP2toaixcvhqWlJTQ1NWFnZ4fXr19j9OjR\n0NLSQufOnfHo0SPJ69XU1LB582YYGxujXr16cHd3x9cmjEhMTESfPn2gq6uLli1b4ujRowCA+/fv\nQ1dXF3FxcQCAp0+fol69erh48aIkJ39/fyQmJmLKlCm4evUqNDU1oaOjg+vXr6N+/frFYh4/fhzm\n5ual+EmSSoURogDevn3LdHV1maOjIzt9+jTLzMws9v29e/eyqlWrso0bN7KCggIWHBzMtLS0JK8L\nCwtjDx48YIwxFhUVxWrWrMlu3LjBGGMsJiaGaWlpsXPnzjHGGEtPT2eJiYmMMcaGDBnCpkyZwt6/\nf89evnzJOnfuzHbs2FFijmvWrGFt27ZlycnJjDHGbt++zTIyMlhGRgbj8/ksMDCQCYVCFhQUxLS1\ntSW59ejRgzVv3pw9ePCAvXnzhpmZmTETExN2/vx5VlBQwMaNG8ecnZ0lcXg8HuvVqxfLyspijx8/\nZqampmz37t2Sz+HHH39kjDGWk5PDDAwMWEBAABMKhSwuLo7VrVuXJSQkMMYY27VrFzMzM2Pv379n\nffv2ZW5ubpIY1tbWzN/fnzHGWEBAgOSYhczMzNjp06cl20OGDGHr168vxU+SVCZUQIjCuHv3LnNy\ncmIGBgasatWqzM7Ojr148YIxJr5wNmrUqNjrO3fuzA4cOFDisYYMGcJ+//13xhhjkyZNYnPmzPni\nNc+fP2caGhrsw4cPkn2HDh1iPXv2LPGYLVq0YH/99dcX+/fv38+6dOlSbF+3bt1YQEAAY0x8sfb2\n9pZ8b+7cuWzAgAGS7RMnTjBzc3PJNo/HY2fOnJFsb926lfXu3ZsxVryAHD58mFlZWRWLO2nSJObl\n5SXZtrOzY23atGHt27dn+fn5kv1FC0jRYxby8fFho0ePZowxlpGRwWrWrMmeP39e4udCKi9qwiIK\no2XLlti7dy/S0tJw584dPH36FLNmzZJ8X19fv9jrmzRpgmfPngEATp8+ja5du0JXVxfa2to4deoU\nMjIyAABPnjyBsbHxF/EePXqET58+oWHDhtDW1oa2tjamTJmCV69elZhfWlpaicd5+vQpGjdu/EVu\nT58+lWzXr19f8v/Vq1eHnp5ese2cnJxi7zc0NJT8f+PGjYsdq2j+MTExkty1tbVx6NAhvHjxQvKa\nCRMm4J9//sH06dOhrq5e4nmVZPTo0Thx4gTev3+PI0eO4Keffip2DoQA1AdCFFSLFi3g6OiIO3fu\nSPalp6cXe82jR4/QqFEjfPz4Eb/88gvc3d3x8uVLZGVlYcCAAZI2fENDQ9y7d++LGIaGhtDQ0EBG\nRgaysrKQlZWFN2/eID4+vsScvnYcfX39Yn0Yhbl9XvAK8Xi8b588gMePHxf7/5KO1bhxY/To0UOS\ne1ZWFt69e4ctW7YAAHJycjBr1ixMmDABnp6eyMrKKnU+BgYG6Nq1K44fP47AwEDJE1uEFEUFhCiE\npKQkrF+/XlIk0tLSEBQUhG7dukle8/LlS2zatAmfPn3C0aNHkZiYiAEDBiA/Px/5+fmoW7cu1NTU\ncPr0aZw9e1byPhcXF+zduxcXLlyASCRCeno6kpKS0LBhQ/Tt2xdz5szBu3fvIBKJcP/+fUlH8+cm\nTJiAxYsX4969e2CM4fbt28jMzMSAAQOQnJyMoKAgFBQUIDg4GImJiRg0aJDkvaxIhzQrxQoKa9eu\nRXZ2NtLS0rBp0ybY29t/8ZqBAwciOTkZgYGB+PTpEz59+oRr164hMTERADBz5kx07twZO3fuxMCB\nAzFlypQSY9WvXx9PnjzBp0+fiu0fN24cVq9ejTt37mDYsGHfzZlUPlRAiELQ1NRETEwMunTpgtq1\na6Nbt25o164d1q1bJ3lNly5dkJKSgnr16mHx4sUICQmBtrY2NDU1sWnTJowYMQI6OjoICgrC4MGD\nJe/r1KkT9u7di9mzZ4PP58Pa2lryF/7+/fuRn58PMzMz6OjoYPjw4Xj+/HmJOc6ZMwcjRoxA3759\noaWlhYkTJyIvLw86Ojo4efIk1q1bh7p162Lt2rU4efIkdHR0JO8t+lc+j8f74q/+z7cHDx6MH374\nAR06dMCgQYPg4uLyxXs1NTVx9uxZHD58GPr6+mjYsCEWLFiAjx8/IjQ0FGfPnsW2bdsAAOvXr8eN\nGzcQFBT0xXn17t0brVu3RoMGDYo1rQ0bNgyPHz/G0KFDUb169W/89EhlxWOl+XNIxhhjWLRoEd69\newcLCwuMGzdO3ikROQsICIC/vz8uXbok71SkTk1NDffu3UOzZs3knQqaN2+OHTt2oFevXvJOhSgg\nhbwD+fPPP5Geno5q1arBwMBA3ukQUikdP34cPB6Pigf5KpkVkPHjx6N+/fqSgWGFwsPD0bJlSzRv\n3hyrV68GIB5UZmlpibVr10puwUnlVlKzj6pShPO0trbGtGnTJB3yhJREZk1Yly5dQu3atTFu3DjJ\nUy5CoRAtWrTAuXPnoK+vj06dOiEoKAg3btxAtWrVMHz4cNjb2yM4OFgWKRJCCCkDmd2BWFlZQVtb\nu9i+2NhYmJiYwMjICOrq6nBwcEBoaCiGDRuGM2fOYMaMGbC2tpZVioQQQspArpMppqenFxswZWBg\ngJiYGNSoUQO7d+/+7vsV4VafEEKUEReNT3LtROeiAHh6eiIyMhJMPC2LVL969OghkzgUj+IpciyK\np7zxIiMj4enpycHVW0yudyD6+vpIS0uTbKelpZX5qaulS5dynNXXyfpZeIpH8RQxFsVT3njW1taw\ntraGl5cXJ8eT6x2IhYUFUlJSkJqaivz8fAQHB8POzq5Mx1i6dCkEAoF0EvxMgwYNZBKH4lE8RY5F\n8ZQ3nkAg4PaPbiYjDg4OrGHDhqxatWrMwMCA7dmzhzHG2KlTp5ipqSkzNjYuNmNpacgwfcYYY5GR\nkRSP4ilkPFU+N4rHPa6unQo5Er20eDwePD09JbdlhBBCvk4gEEAgEMDLywtcXPqVvoCUlL6Ojs5X\nZx4lpDLS1tZGZmYmZ8cTCAQy/aON4nHra9fOslL6NdGXLl36xR1IVlYWJx8OIaqCHnknwH93IFxR\nyTsQrqorIaqCfidIUVz9e1DIyRTLQpZPYRFCiDLj+iksugMhpBLg+ndC1fsIVD0e3YGoECcnJyxe\nvFjeaRBCSJkofQFRhSas0k5Vbm1tDX9/fxlkRMi3yfqxeYrHDa6bsFSigJT2ww8LA7Kzi+/Lzhbv\nl8X7v6U0t5P0JA0hpCKsra2pgJSXpSXg4fFfEcjOFm9bWsrm/YXi4uLQsWNH1KlTBw4ODsjLy/v3\neNkYNGgQ9PT0oKOjA1tbW6SnpwMAPDw8cOnSJbi6ukJTUxMzZswAAMycORONGzeGlpYWLCwscPny\n5bIlQ0g5yPqun+IppkpVQPh8YOVK8UU/NVX835Urxftl8X4AyM/Px5AhQ+Do6IisrCwMHz4cISEh\n4PF4EIlEcHFxwePHj/H48WPUqFEDrq6uAICVK1fCysoKW7Zswbt377Bp0yYAQOfOnXHr1i1kZWVh\n1KhRGD58OPLz88v2wRBCSHlwMiGKnABgnp6eX8wj873TeviQMaDiXw8flj3nqKgo1qhRo2L7unfv\nzhYvXvzFa+Pi4pi2trZk29ramu3evfubx9fW1ma3b98ue2JEpSn5rzrhSGRkJPP09OTs34PS34GU\npQ8EEDc7+foCDx8C06YBWVllKxtZWeL3PXwoPs7nfSLf8/TpU+jr6xfb16RJEwDAhw8fMHnyZBgZ\nGUFLSws9evTAmzdvivWPfN4PsnbtWpiZmYHP50NbWxtv3rzB69evy5YUIaRSoD6QCijss1i5EjAy\n+q85qrRFoKLvB4CGDRtK+jUKPXr0CIwxrF27FsnJyYiNjcWbN28QFRUlWQgG+LJ4XLp0Cb6+vjh6\n9Ciys7ORlZUFLS0tGgNDpE7V+whUPR5XKlUBuXKleJ9FYZ/GlSuyeT8AdO/eHVWrVsWmTZvw6dMn\nHD9+HNeuXQMA5OTkoEaNGtDS0kJmZuYXi77Ur18f9+/fl2y/e/cOVatWRd26dZGfn49ly5bh7du3\npU+GEEIqoFIVkIEDv+zw5vPF+2XxfgBQV1fH8ePHERAQAF1dXRw5cgS//PILeDweZs2ahQ8fPqBu\n3bro3r07+vfvX+yuY+bMmTh27Bh0dHQwa9Ys9OvXD/369YOpqSmMjIxQo0YNNG7cuPTJEFJOqjpO\norLE4wpNZUJIJUC/E6QomsrkX6owEp0QZaPqfQSqGo/rkegqsR4IIYSQ7ytcO+nz/tXyoiYsQioB\n+p0gRVETFiGEkFIraS6/iqICQggpM1XtI1DleJ/P5ccFhS0gAoEAVlZWmDp1KqKiouSdDiGEKDU+\nH/BYko8f/u93zo6psAVETU0Nmpqa+PjxIwwMDOSdDiGkCFUfJ6Fq8RhjWH48GE3XtUIm/yxnx5Vp\nARk/fjzq16+Ptm3bFtsfHh6Oli1bonnz5li9ejUAwMrKCqdOnYKPjw88PT1lmSYhhKiMv25dhJ5H\nFyy/sAbTm+zCKHCwgNG/ZFpAnJ2dER4eXmyfUCiEq6srwsPDkZCQgKCgINy9e1cyApvP5+Pjx4+y\nTJMQ8h2q2EegavHuvLiLdqvsMHT/OHQSzkKy2zV8SOiFlSu5iyHTcSBWVlZITU0tti82NhYmJiYw\nMjICADg4OCA0NBSJiYk4c+YMsrOzMX36dFmmWellZmZi165d0NPTQ7t27fDDDz8AEE/6+Ouvv6Jj\nx45YunQpGjZsKOdMCSGfe57zHFOPeOLkveMwfDwfMb8dgYV5dYSFlX39ou+R+0DC9PR0GBoaSrYN\nDAwQExOD+fPnY+jQod99v5OTk6T48Pl8mJubSyvVSmPfvn3o2bMnOnbsCEdHRxw8eFDyvcOHD8PY\n2Pir7w0NDcXgwYOlllubNm2wdetW/PTTTyV+38jICP7+/ujdu7fUclBWhX/lFra3V2Tb2tqa0+NR\nvIrHOx1xGvtvBOOP3BOoEu8M1xb+sHOpAwvz6hAIBDh6NABHj0JyveSCzAcSpqamwtbWFvHx8QCA\nkJAQhIeHY9euXQCAwMBAxMTEYPPmzd89Fo/Hg6enp+QHUHR/ZR00lZqaCm1tbWhpaZX7GNOnT4e7\nuzsMDQ3Rv39/nD59GoD4DuT06dOoXr06OnfuDDMzsy/ee/DgQYwePVqy/fHjR+zYsQNNmjRBv379\noKGhUe68SmJkZIQ9e/agV69eAICmTZvC399fsq0o/vzzTyQkJEBNTQ36+voYO3ZsmV536NAhPHv2\nDLGxsRg6dCgcHBzKdNzK/Duh6gpEBdj9P3/MD/dCXmJPONRbiY1LjUq80xAIBBAIBPDy8uLm3wMn\ny1KVwcOHD1mbNm0k21evXmU2NjaSbW9vb+bj41OqY30tfTmclsLYs2cPS01NrdAxpk2bxtLT0xlj\njPXv31+yXygUMpFIxEQiEXN0dCzxvYGBgcW2N27cyH7//Xd25cqVCuX0NUZGRuzcuXPFts+fPy+V\nWOWVnZ3NOnbsKNnu2rUre/XqValfl5KSwjZt2sQYY+zVq1eMz+ezhw8flvq4jHH/O/H5KqDSRvG+\nJBKJ2J93/2RGa1syTdeerK3NdRYXV7r3cvXvQe6P8VpYWCAlJQWpqanIz89HcHAw7OzsSv1+mkzx\nP69evSrVndv3tGjRAi9evEBeXh7q1Kkj2b9lyxbcvn0bz58/h0gkkuxPTk5GcHAwgoODER0djeDg\nYBw5cgRCoRCpqalwcXFB9+7dvxpv7969xX7mzZs3x4gRIyTbhoaGuH37NgDxHceFCxcAAGPHjsXj\nx49ha2sLTU1N+Pr6AgDi4uLQvn178Pl8ODg4yP0hjIsXLxa7W2vfvj0iIyNL/bqEhASsWbMGAFC3\nbl2YmJjg2rVrpT4uUT0xT2JgubsHxh/0QHbwOmzscB43T/2A77XgK/VkiiNHjkRUVBQyMjJgaGiI\nZcuWwdnZGX5+frCxsYFQKISLiwtatWpV6mMq62SKW7duRW5uLmrWrAkNDQ1MmDABhw4dQmZmJjQ0\nNKCmpgYXFxfs378fc+fOxeHDh/Hq1SuEh4fDy8sL2dnZiI2Nha6uLvbt24fQ0FCEh4cjOzsbfn5+\nMDMzg7Ozc7lyGz16NPbs2YNr165h5syZSEhIwJ9//gkHBwfcvXsXUVFRWL58ueT1pqamMDU1BQAU\nFBTA3t5e8r3x48fj6NGjMDAwwM8//1xiPGtra8yZMweAeMnfT58+ITo6GgDw4MED5Obmol27dgCK\nr8p44MABXL58uViT1ZYtW3D06FGcOXMGGhoasLS0REBAACZPnlymz+DBgweSZtWSdO3atdR9PU+e\nPAG/SHsCn89HSkpKqV/n5uYmaUZkjOHZs2do3rw5rl69WqrjSoOqjZNQlnj3M+9jwfmFiEi6DNH5\nZRjZygne4VWgo1P6OFxOpijTAhIUFFTi/v79+6N///7lOmbhmujKtCDLpUuXcPLkSZw6dQpxcXHY\nunUrOnTogMjISMlFa/bs2bh48SLGjRuH3bt3Iz8/Hw4ODnj58iWOHTuG1NRUST9FRkYGAPFf5Hv2\n7MH06dNLXFjq48eP0NDQwI0bNxAdHY2nT5/CwsICQqEQYWFh2LNnDwBAV1cXbm5uxd5b+Jdus2bN\nvnluVasW/yfVtm3bL8b9fK5p06bQ1NREXFwckpKSYGNjg1u3biEpKQl///33VzvMS8Lj8TBjxgw0\naNAAAGBra4ubN29+9fVxcXHYs2cP2rdvD0tLS8kfL82aNcOqVatKHfdbsrOzUb16dcl2tWrVkJOT\nU+rXqauro02bNgCAsLAwWFhYwNzcHKdOnSrVcYnye/3+NVZcXIF9cYHQ/GcWjB/swfZNtWBhUbbj\nFPaBcEXuT2FVlDLegRw/fhxWVlYAgA4dOmDXrl2YN28eWrduLXmNmZkZgoKC8NNPP6FKlSpo2bIl\nAEBLSwupqakYOnQoLCwsYGVlhdmzZxc7PvtK51jz5s1x5MgRZGdno2XLloiIiMCKFSvAGIO7uzsn\n51b07qMsevToAYFAgHv37qFHjx7g8/mIiorC1atX0aNHjzIdq7B4AECNGjXw9OnTEl/35MkTDB06\nFP/73/+gq6tbrrwBYM2aNfjw4UOJ33N0dISmpqakyAPAhw8fUL9+/S9e+73XZWdnIyAgAIGBgQCA\nOnXqIDMz87vHlQaBQCDTP9oqa7wPnz5gU8wm+P69FvpZ9qgalIDFHnpw2Q+olaMDQqnvQKShvHcg\nPC/e91/0HcyzfE8xMMaK9SEA4ruDom31+fn5KCgokGxXqVKl2OuNjIyQkJCAU6dOYeLEiYiMjCx2\n8YiJiUGXLl2KvUcgEMDIyAhqampYsGCB5Imdq1evolOnTuU6F6706NEDf/31F1JTU+Hh4QE+n4/A\nwEBER0d/cxxQ0Satsn7/yJEjaNiwIY4dO4aaNWsWe4KpLE1Y3yu+xsbGuH79umT79evX6NixY5le\nxxiDj48Pdu/ejdq1a+PRo0elPi5RPkKREAfjD2LRhUWoL+wEtb1X0MXKFN7Xgbp1y39cru9AlPpx\npa+lr+indeHCBdarVy/J9l9//cUuXrzIRowYIdk3ceJEdvr0acYYY9bW1pInq/bu3cuWLl3Kfvvt\nN5aXl8cYY2z79u3s5s2bjDHGBg0axOLj49m+ffu+mUOXLl1YdnY2Y4yxyZMns3PnzkniyUNycjKr\nXbs2a968OWOMsTdv3jBtbW2mpaXFRCKR5HWfP2XVtWtXtnPnzq9+39PTk40ZM6bEmHv37mWrVq3i\n+lS+kJOTU+zJw3bt2rEXL14wxhi7d++e5Py+9brff/+dXb9+nT179ozFxMQwgUDAcnNzv/r6zyn6\n7wT5z5l7Z1j7be1Z+03dWHvby6xjR8aio7mNwdW/h0p7ByJPPXv2RHx8PJYsWQJjY2O0bNkSXbp0\nQUpKCvz8/CASidC+fXv069cPhw8fxt27d+Hj44PJkycjKCgI2dnZqFu3Lnbv3g0+n4+cnBy0b98e\nADBt2jTs2rXri7uPot6/fw8+ny8ZK1KrVi28fPnymwMEpa158+bQ1NSUNO3VqVMHxsbG0NPT++Zd\nxIIFCyTjVhYtWvTFa3k83lffP3bsWPj6+uKPP/4Aj8dDz549KzR+5mtq1aoFd3d3rFixAiKRCO7u\n7tDT0wMADB8+HP7+/ujQocNXX3f58mXMnj1b0jTJ4/Hw+PFj1KxZ86vHJcrn1vNbcD/njvsZD2H2\n1AdX9w7FMi8eJk0CPmuAKDeu70BoRUJCKgGufycUpY9AmeOFhYnX6HjHS8OEzRNwq/ot9FZfjPCV\nkzB4kDpWrwbq1ZNObK7+PSj9HQghhCijNhZv0Mt7FVJ1d8HyU380O5+MM/F1cDAQ6NdP3tmVjtLf\ngdBUJoR8H/1OKI58YT62XdsG78ve6NFgEO74eeF5sgHatAGOH69YJ/n3cD2VidIXEGrCIuT76HdC\n/hhjOJpwFAvOL0Bz7RZolb4agevawsYGOHgQePgQ4HCew2/i6t+D3KcyIYQoH1VYL0OW8S49uoSu\n/l3hc9kHv2rsRILHKTyKbYtTpwAtLSAoSABfX27XK5cFKiCEECIlia8TMeTwEIz5Ywysa0yHcNt1\nXNrXG0FBwJ49QECAeI2OBg3E//XwUK4iovRNWNQHQsj30e+EbD3PeQ6vKC8cSziGMUbzcGuXK9If\nVceqVcDQoQCP999TWEWnXc/OBq5cAQYOlE5e1AdSBPWBEFI69DshGzn5OVj39zpsit2EYc2c8ObE\nQlw6q4slS4AJEwB1dXlnKEZ9IN+gra0tGUBGX/RFXzxoa2tz+jum7H0SXMcrEBVg5/92wnSzKeKf\nJWHYq+s4PnkdWhnpIjkZmDr128VDWZekUMkCkpmZCcYY51+RkZFSOS7Fo3jSjlV00kXCHcYYTiSd\nQLtt7RB46xCGF4QiasYhVHnXFHfuAF5egKamvLOUHpVswiKEEGm7ln4NbhFueJX7Cv2rrsER7wHo\n2IGHVauAMixpJBdcXTtpJDohhJTBg6wH8LjggYuPLsJezwsX/J1wuVpVHAwE/p3KrdJQ+iYsWS5p\nq+jtsBSv8sZT5XNTlHgZ7zMw58wcdN7VGdoFZmgZkYwTXhOwaGFVXL1aseIhy2sYl2soqUQBUaaZ\neAkhyiWvIA++V3zRcktLvMrKQ8+7/+D4zMUYNqgWEhKAX38VP5arDKytrTktINQHQgghJRAxEQ7F\nH4LHBQ+01e2IBnd88MfuFpg2DXBzA+rUkXeG5Ud9IIQQwqGiA/vOPzgPtwg3qIk00Db5IGKP/Ygh\nQ4D4eKBRI3lnqjgUtgkrNzcXnTp1QlhYmLxTkVCEdliKR/HkHUtV41laAlOWxKNPQH+M2zAOnfIW\nItH9bwgf/giBANi5U3rFQ1nHgSjsHciaNWtgb28v7zQIIZXAk7dPsCRqCS4YhEHv0iJUjZyDP3P7\nIPiw9KYVUQUy6wMZP348wsLCoKenh/j4eMn+8PBwzJo1C0KhEBMmTMC8efMQERGBzMxM5OXloW7d\nuhj4lZ8g9YEQQiri7ce3WH1lNbZf347+9Sbj3r55eJWmhQcPgAcPgKZN5Z2hdHB17ZRZE5azszPC\nw8OL7RMKhXB1dUV4eDgSEhIQFBSEu3fvIioqCtHR0Th06BB27dpFRYIQwql8YT78Yv1gutkUt+4/\nRSvBLVxd4Q1Hey307Stem2PtWuWaGVceZFZArKysvpiPJzY2FiYmJjAyMoK6ujocHBwQGhqKFStW\nYMOGDRg1ahQmTZoEnoI8I6eK7b4UTzXiqfK5cRmPMYaQhBC03toaQdfD0Dz6LG4v3wvHoQaIjgbu\n3AFWrQJSUwUynV6d+kDKIT09HYaGhpJtAwMDxMTESLYdHR3lkRYhRAVdeXwFv0X8hux3eah/Yxse\nnPsZCxcCEw8CGhrip7BWrvxvenU+X7wtzenVlZ1cCwgXdxZOTk4w+ncdSD6fD3Nzc8nAwsKqztV2\n4T5pHZ/iUbzybltbW0v9fJQ1XsM2DbHg/AJcjLyC+ukuyIhdgQnuamg9SoDq1QENDfHra9US4ObN\nL+MNHKjY51eabYFAgICAAACQXC+5INOBhKmpqbC1tZV0okdHR2Pp0qWSvpFVq1ZBTU0N8+bNK9Xx\neLySF5QihJAXOS+w7OIyHL59BE2fuSE1eAbmzKiO6dNVe4bcbxFwvKCUXMeBWFhYICUlBampqcjP\nz0dwcDDs7OzKdAxZTmVSWNFlheJRPEWMpejxcvNzsTxqOVr5tcalyGoQbU7EQL477iVWx8KFpSse\ninx+FWHN8VQmMisgI0eORPfu3ZGcnAxDQ0Ps3bsXVatWhZ+fH2xsbGBmZgZ7e3u0KuM8yLKcTJEQ\norgKRAVWG24KAAAgAElEQVTYfWM3TH43ReCZBAi3x2JAlQ24d1sXXl7Fl46trAQcT6ao9HNhURMW\nIZUbYwynUk7htzPzkPNKF2+O+mK8TWfMnw80aCDv7BQL101YSl9AlDh9QkgFXX96HXNOu+Nu2nPk\nnViD0Z0HYpEHDwYG8s5MsSndQEJVoKrtohRP+eOp8rmVFO9h1kOMCB6FXrvsELd/JAY+vo3bxwZh\n+zZuioe8z09ZKOxcWKVV2IlOTViEqJais+MWevg8EzNDVuL86wDwYmdigPZOrNhVG6am8stTmRQ2\nYXGFmrAIIQopO1s8EnzlSqB67TysOu+HVRdXo2ryr+hVxRM+ixqgTRt5Z6mcaD2Qf9EdCCGqic8H\nlq8Q4VevIPyP74F3KebomnMJmz1bokMHeWennLi+AwFTYrJOPzIykuJRPIWMp4rndu7+eWa8piPT\ncO3MUH8jO35c6iElVPHzLIqrayd1ohNCFMqdl3dgtX0AbHdOQm74fPR+GI1DG9rj3DmaHVfRKH0f\nCI0DIUQ1pL9Nh/vpJfjjn5NQu+KBBX2m4Mmjali1StycVbRPhAYFlg+NAymCOtEJUX5vP76Fd9Qa\nbL66DaLrk+DcfB5WLubj77+/fAorO5tmx+UCjQORA1V/NpziKW88ZTy3T8JP8Ivdgsa+pthy4Al+\nvHMTt9atwtb1fGhri4tEYfEojMfny6Z4KOPnKQ9K/xQWIUS5MMbwR+IfmHVyPt49bor6t85g29L2\n6NVL3pmRslL6JizqAyFEefyd9jdmnnTD/bRc8M6twZrJfeHkBFSpIu/MKgfqAymC+kAIUQ7JGclw\nP7MAkcnXIIxYgRk9R2PBvCqVdl0OeaM+EDlQ9XZRiqe88RT13F7mvsT/hbnCYqslIgM7wyYlCQlB\n4+C9omzFQ1HPT1njcYX6QAghnHv/6T02XN0A38sbUC1xDExT78JvTV107SrvzAiXqAmLEMIZoUiI\nfbf2wePcElR5aglRhDfWLzKGvT3A48k7O1KI5sIihCgMxhhO3zsNtzPz8OaFNt6HhGDemC6YfQ2o\nUUPe2RFpUfo+EFkuaavq7aIUT3njyfPcbjy7gd77f8b44LlIP7AS/Z5HIelCFyxcyF3xUOWfnSzj\ncb2k7TfvQDIzM797ADU1NfDlOK8Alx8GIeTrPl+fIzU7Fe7hixCedAG1r3ui1XsXbNxZFe3byzdP\n8nWFQx68vLw4Od43+0A0NDTQqFGjbx6goKAAaWlpnCRTVtQHQojsFM5F5bY4C1vivbHz2h7wYqdD\n++5v+N23NmxtqZ9DWcikD6RVq1a4efPmNw9gbm5e4SQIIYqvRu2PaPiLH1ptXQ2DnKH4uP8OPOc2\nxNwjQLVq8s6OyMM3+0CuXr363QNER0dzlkxRiYmJmDp1KkaMGAF/f3+pxCgrVW0XpXjKH0+asURM\nhKD4IJj83hL+ERdR5UAU7m0YiasRDbFggWyKhyr/7OQRjyvfLCA1PusBy83NxfXr1/Hq1SvJvurV\nq0slsZYtW2Lbtm04fPgwzpw5I5UYhJBvi3wYifZ+nTEjaAPe7AvAkLxQjOjZCkFBwO7dtD5Hpfet\n1aZCQ0NZkyZNWIcOHVhYWBgzMjJiXbp0YXp6emzv3r1lXr3K2dmZ6enpsTZt2hTbf/r0adaiRQtm\nYmLCfHx8JPv/+usv1q9fPxYSElLi8b6TPiGknO68uMN+2j6Q1VrYlGl2Pcw8l4rYgweMTZvGWFaW\n+DVZWcW3ifLg6tr5zaO0bduWJSUlsdjYWFazZk12//59xhhjL168YK1bty5zsIsXL7IbN24UKyAF\nBQXM2NiYPXz4kOXn57P27duzhISEYu+zs7MrOXkqIIRwKv1tOhviP4FpeOgxzZ83shWr8tibN+Lv\nnTz5ZbHIyhLvJ8qFq2vnN5uwqlSpAlNTU3Tq1AnNmjVDs2bNAAB6enpQV1cv892OlZUVtLW1i+2L\njY2FiYkJjIyMoK6uDgcHB4SGhiIqKgozZ87E5MmT0bNnzzLHkgZVbxeleMobr6Kx3n18B+f9i2G0\nui3OndTB0rpJeB46Ex7zNVCnjvg1tD6H6sTjyjefwhIKhcjMzARjDDweTzIuhDEGoVDISQLp6ekw\nNDSUbBsYGCAmJgY9evRAjx49vvt+JycnGBkZAQD4fD7Mzc0lU7sX/lC42i58Ik1ax6d4FE/W25+E\nBTj5LBnbE5ZD7Xo7OJpthV+QPTQ0FCM/2uZmWyAQICAgAAAk10sufHMciJGREXj/PthdWESKevjw\nYZkDpqamwtbWFvHx8QCAkJAQhIeHY9euXQCAwMBAxMTEYPPmzd9PnsaBEFIuIhHDkqA/se7WfKi9\nbYx5HddggXMHlKNhgSghmYwDSU1NrXCA79HX1y82EDEtLQ0GBgalfv/SpUthTQtKEVIqIhGw+uBV\nrLzmhoIqbzGnzSYsd7KhBZ0qCcG/C0px5Zt9IDdu3PjmFxcsLCyQkpKC1NRU5OfnIzg4GHZ2dpwc\nm2tcfvAUj+LJMlZBAbA+IAX8Sb/C858RcOkwAe984+DtUr7iocqfZWWIx5Vv3oFYWFigTZs20NXV\nLfH7kZGRZQo2cuRIREVFISMjA4aGhli2bBmcnZ3h5+cHGxsbCIVCuLi4oFWrVqU+Js2FRcjX5ecD\n2/a9gueF5chtdghju8+F35gDqFmNpsitjApba2QyF9bGjRtx9OhR8Pl82NvbY+jQodBUoDUoaU10\nQkqWlwds93+PpeEb8b79etgZjcZWh0XQq11P3qkROSpswpLpmuj3799HcHAw/vzzTzRp0gQeHh4K\nMQcWdaKTyuzz2XEBID0dWOwpxPH7+/Gx+xJ0N+yGHSO8YaJjIr9EicKR6ZroxsbGGDx4MPr27Ytr\n164hKSmpwoG5QuuBULzKGs/SUjw7bnY2EBYmwKLFDM36hiOkbgc0HeaPyKlHcX7KEakUD1X7LCtL\nPIEs1wO5f/8+Dh8+jNDQUDRu3Bj29vbw8PD4Yo4seaI+EFJZ8fmAuzvQty9w52kKeLYr0MApDb/b\nrsbgFoO/eOyeEJn2gaipqaFt27YYMmQI6vw7HLXw1ofH42HOnDmcJFFe1IRFKqvsbGDjRuD3fY9Q\nZ/BiPK4ageV9lmDezxOgXoUGc5Bvk8k4kCVLlkj+isnJyalwMGmgcSCkMsnKEheOzbuyoe/gDTbR\nH3rZrgibmIxtGzWR26V4nwghRXE9DkSpZyOUdfqRkZEUj+LJJV5mJmNLljCmUy+PdZ6xnumsqscc\nj01kjq7pLCtLHEuWs+Mq82dJ8WQ0meLOnTu/W4BK8xpCSPlkZQFLlgDGJiJczDyMWvNaQa/rBVwc\nH4nh1Xdi4/JGkjsOPh9YuRK4ckW+OZPK45t9IM2aNcPatWtLbCsrbENbvHgxEhISpJrk19A4EKKq\nMjOBDRuAbduAziOikG7mhmoaDL59fGFtZC3v9IiSkuk4ECcnp+8+yaGlpYWNGzdWOJHyoE50omoK\nC8fWrYD18ARkW8zDw9x/4N3bGyNaj4Aar1RP3hPyTZxdOzlpCJMTWaev6u2iFE9+8V6/ZszDgzEd\nHcZGTXrKHA5OZPXW1GPr/17P8j7lcRqLCxRPueNxde2kP2cIkaOMDPFgQFNT4Mmrdxjj74lw4zYw\nrMdHkmsSZnebDY2qGvJOk5ASlWoqE0VFfSBEWb1+DaxfD+zYAQz95ROa/uIPvzte6NOsD5b3XI4m\n/CbyTpGoILnMhaWoqA+EKJuiheOXXxksRodi/e35MKhjAN8+vujQsIO8UySVgEznwsrKysLvv/+O\n2bNnY/r06Zg+fTpmzJhR4eDKRlXnx6F40o/3+jWwYAHQooW4o9z/TDTudv0Jfv8swcZ+GxExNqJC\nxaMyfZYUT3GUqoAMGDAAjx49Qrt27WBhYYEffvgBP/zwg7RzI0TphIWJpxkp9OoVMGsW0LSpeEzH\nccE9ZPYegemXhmO8+XjETY5DP5N+NG8VUUqlasLq2LEjZysQcomasIiiyc4Wd4rPng3s3g1s3w4Y\nGABbA14j5PVyHLx9EHO6zcGsrrNQU72mvNMllZRMm7BGjRqFnTt34tmzZ8jMzJR8EUKKq1kTqF8f\naNMGePIEGDjkA37ZsArDLrSEiIlw9//uYqHVQioeRCWUqoBUr14dbm5u6Nq1q6T5ysLCQtq5lQqt\nB0LxFCXe2bNAu3ZAdDRw8pQQB2PmI7K1KRKyb+Cqy1Vs7r8Z9WpJZ0VAVfssKZ704shsPZBC69at\nw/3791G3bl3OAnOF1gMh8vboETBnDhAXB/z+O/DR8AwcjrmjxSARWj85gl0Tu9EMuUQhyHQ9kEJ9\n+/bFH3/8gVq1anESlCvUB0LkKS8P8PUVT68+axbQd9xNLLjgjrgHj7B5sA9G/zAEb97w4OEhnuSQ\nighRFFxdO0tVQIYMGYJ//vkHPXv2hIaGhiSBTZs2VTiBiqACQuSBMeDECXFHubk5MMfrMXakLELE\ngwgM01mCpXYTUE/3v0WdsrPFM+QOHCjHpAkpQqad6EOGDIGHhwcsLS1l9hhvaGgoJk2aBAcHB0RE\nREg1VmmparsoxSu9lBRxIXB3B9b6ZcNk6jzYneqAJvwmSHZNxhbnqZLiURiPz5d+8VDGz5LiyS8e\nV0rVB+Lk5IT379/j8ePHaNmypbRzAgAMHjwYgwcPRnZ2Nn777Tf06dNHJnEJKUlurrgZaudOYK77\nR/T22IbJf3tjcMvBiJ8aj0aajeSdIiGyV5oZF0NDQ5mpqSlr0qQJY4yxGzduMFtb2zLP3Ojs7Mz0\n9PRYmzZtiu0/ffo0a9GiBTMxMWE+Pj7Fvjd37lwWFxdX4vFKmT4h5SYSMXbkCGOGhoyNHCViWy8e\nZs1+b8YGHBzA4l/Eyzs9QsqFq2tnqY7SoUMHlpWVxczNzSX7WrduXeZgFy9eZDdu3ChWQAoKCpix\nsTF7+PAhy8/PZ+3bt2cJCQlMJBIxd3d3du7cua8nTwWESNE//zDWqxdjbdsytik0inXa2Yl13NGR\nnX9wXt6pEVIhXF07S9UHoq6uDv5nj5CoqZV9JngrKytoa2sX2xcbGwsTExMYGRlBXV0dDg4OCA0N\nhZ+fH86fP49jx45hx44dZY4lDareLkrxxN6+BebOBXr0ALra3kWT+XZY92AcZnWdhWsTr6FX016c\nxuOCon6WFE8x43GlVH0grVu3xsGDB1FQUICUlBRs2rQJ3bt35ySB9PR0GBoaSrYNDAwQExODzZs3\nY/r06d99v5OTE4yMjAAAfD4f5ubmkqndC38oXG3fvHmT0+NRPMWKd+GCABERwL591rAe9Bwd/m8i\ntiRewuLOi3F0xBFEX47GxaiLCnt+tE3bX9sWCAQICAgAAMn1kguleow3NzcXK1euxNmzZwEANjY2\nWLx4MapXr17mgKmpqbC1tUV8fDwAICQkBOHh4di1axcAIDAwUFJAvps8PcZLOBIXB7i6Ah+EOfhh\n+locT98MZ3NnLLRaCJ0aOvJOjxBOcXXtLNUdSK1ateDt7Q1vb+8KB/ycvr4+0tLSJNtpaWkwMDAo\n9fuXLl0Ka1pQipRTZiawaBFw7HgBbOb747zQC+9r9MT/Jv0PRnwjeadHCKcE/y4oxZVvdmTY2trC\nzs4Otra2X3zZ2dlxkoCFhQVSUlKQmpqK/Px8BAcHc3ZsrnH5wVM8+cYTCsWP5LZsxZCq8Rf4C9si\nXTsYJ0aewMFhBzkpHrI8v8r0s6N4iuObdyDR0dEwMDDAyJEj0aVLFwCQ3PaUZ/2CkSNHIioqChkZ\nGTA0NMSyZcvg7OwMPz8/2NjYQCgUwsXFBa1atSr1MWkuLPItYWGApWXxaUTOnQOmTgVqNo+F4WI3\nPFbLwMY+69DfpD+ty0FUWmFrjUzmwiooKEBERASCgoIQHx+PgQMHYuTIkWjdujUnwSuK1kQn31O4\nPsfKlUB+vnj6keOC+2g9YyGeqV/GMutlcDR3RFW1UrXmEqLUCpuwZL4m+sePHxEUFITffvsNS5cu\nhaura4WDVxR1opPSePUKGDYMiL+fgWo/L8cnswOY2302ZnedjVrVFGuCUEJkQWZzYeXl5SEkJARj\nxozBli1bMHPmTAwdOrTCgblC64FQvK9hDPjrL6B7jw940mQ13vRohn4DPiFp+l0s+mmR1IsH9YFQ\nPEWLJ5DleiBjx47FP//8gwEDBmDJkiVo27YtZ4G5Qn0gpCQ3bgBz5oqQUiMQH0cvQp3cH7DO2A/3\nL41FtX7yzo4Q+ZBpH4iamtpX1wDh8Xh4+/YtJ0mUFzVhkc+lp4v7PELvRKD2UDc0rFsTBnd9sWep\nJfj84n0itD4HqaxkMg5EJBJVOIC00TgQAgA5Of8u7nT4FnTt3aHT4QHW9PGBxoNh+NGeJykWfL64\neND6HKQy4nociFLPRijr9CMjIymegsUrKGDM35+x+s0fs6azHVldHz22OWYzyy/Il0q8spBlPFU+\nN4rHPa6unfTsIlFa588Ds+a9QVZrH3xw2gmXrlPg3j0ZWtW15J0aIZVCqR/jVUQ0DqRySkwE5rrn\nI7pgO4TdV2JY24FY1nMZDOqUfgocQiojuY0DUUTUiV65vHoFLPViOPC/o6jWfwEsmraAb9/VaFtf\n8Z4OJESRyXRNdCKmqs+GK3q8vDxxB7lJr0sI4XeF0RgfBI/ZifCxp8pUPBT1/JQtFsVT/nhcoT4Q\norAYA44eBeZ4J0LYcx5qj7uJ1TYrMartKKjx6G8fQuRN6ZuwqA9ENUVHA67znyPVyAsFpsewyHoe\nXDu7onrVsq9BQwgRoz6QIqgPRPWkpgJzF+QgIncdRJ02YWInRyz6yQO6NXXlnRohKoP6QORA1dtF\n5RnvzRvAbV4BWo/biYiWpug3Ognxrtexod96zoqHKn+eqnxuFE9xUQEhMhUWJp5OpFBBAeDry6Df\n8wR2VW2H9mMO4fyEUByxP4Sm2k3llygh5LuoCYvIVOFcVCtWAH//DUxbcQ3P27mhUfNX8LNbgwHN\nB9CiToRImUzXRCeEKyIRYGoKtOj6AO+7LURBr0vw7e+Fad2daFEnQpSM0jdh0Xogih8vNxcICgLs\n7IAmrTKw5d5svB/dCblxNXHDKRkzfpwgk+KhKp+nvGNRPOWNx/V6ICpRQOgRXsWTnw+cOAGMGgXo\n6wN7D3xAjZ/XQGNuS1j1/IjhLxMQtGActmysVaxPhBAiPdbW1pwWEOoDIZwRCoGLF4FDh4DjxwEz\nM8DeQQRe+4NYc30ROjbsiIWdfRCwtoVkPQ5an4MQ2ePq2kkFhFQIY8C1a+ImquBgoEEDYORIwN4e\nSC44B7cIN1SvWh2+fXzxY+MfERYGWFoWLxbZ2bQ+ByGypPLjQB4+fIgJEyZg+PDh8k5FQlXbRcsT\nLyEBWLwYaN4cGDMGqFMHuHBBvJSszbjbmHSxH6acnAIPKw/8Pf5v/Nj4RwDiIlFYPArj8fmyKR6K\n/HkqUyyKp/zxuKKwBaRp06bYvXu3vNMgRTx6BKxeDbRvD/TtC7x/L77rSEoCvLyA2o2ewDnUGX0O\n9MHA5gOR8H8J+NXsV3oslxBVxcmyVKXk7OzM9PT0WJs2bYrtP336NGvRogUzMTFhPj4+xb7366+/\nfvV4Mk5fJZ08yVhWVvF9WVni/Ywx9uIFY5s3M9a9O2O6uoxNmsSYQMCYUPjf67M/ZLMF5xYwndU6\nbMG5BSz7Q7bsToAQUmZcXTtlegfi7OyM8PDwYvuEQiFcXV0RHh6OhIQEBAUF4e7du7JMq1KztBR3\nYhc+CZWdDbi5ie82bGzEYzaio4GFC4GnT4EdO4AePQA1NSBfmI/NMZth6meKZznPcGvKLXj39qYV\nAQmpJGRaQKysrKCtrV1sX2xsLExMTGBkZAR1dXU4ODggNDQUmZmZmDJlCm7evInVq1fLMs2vUsV2\nUT5f/ATUvHnArFkC/PCDuFnq7Flg/Hhx0QgMFPdRVKsmfg9jDMcSjqH11tYISwlDxNgI7B28t8wr\nAqri5ymveKp8bhRPccl96G96ejoMDQ0l2wYGBoiJiYGOjg62b9/+3fc7OTnByMgIAMDn82Fubi4Z\nF1L4Q+Fq++bNm5weT97xzp0T4Pp1ICHBGqGhwNu3NzFpEuDjYw1tbfHrY2OLvz/+RTwO5RxCXkEe\nJutOhkUjC7Sr304hz6+yxaNt2v7atkAgQEBAAABIrpdckPljvKmpqbC1tUV8fDwAICQkBOHh4di1\naxcAIDAwEDExMdi8efN3j0WP8ZadUAhcuiR+7Pb4cfFTVIMHi9cZ9/QUr/xX0piMpNdJmH9+Pm48\nu4EVPVdgdLvRtKgTIUpKZR7j1dfXR1pammQ7LS0NBgalbwqR5VQmyooxIDYWmD0baNwYmDULaNZM\nPH7j1Cng8WNgwwbAyEhcPIr2ibzIeYFpYdNguccS3Qy6Ick1CWPbj6XiQYgSEqjaVCYWFhZISUlB\namoq8vPzERwcDDs7O3mnVSJZF6qKxrtzR1wMTEz+G6tx7hxw86a4z8PISDyAr/COQyAQSPpEzl/M\nxfKo5TDbagaNqhpIck2Cu6U7pysCKtvnqcjxVPncKJ7ikmkfyMiRIxEVFYWMjAwYGhpi2bJlcHZ2\nhp+fH2xsbCAUCuHi4oJWrVqV+phcVlNVcP8+cPiwuInq7VvxiPCjR4EOHYCShmN8PoCvQFSAYw8C\n4HnPEz81+QnXJl5DM+1mskmeECJV1v8u/+3l5cXJ8ZR+KhNaEx1ITweOHBEXjUePgOHDAQcHoHt3\n8eO2pcEYQ1hKGOadm4e6NevCt48vOut3lm7ihBCZEggEEAhoTXQAlbsT/fVrICREXDRu3waGDBEX\njV69gKplvK+8/vQ63CLc8CLnBVb/vBqDTAfR6HFCVJjKdKJXlKqtB1J0ydfCeNnZ4v1v3wIHDgAD\nBgDGxkBkpLhj/NkzYM8e8fQiZSkeD7MeYlTIKNgF2WFkm5HY3GozbFvYyqx4qHo7M/WBUDxFi6dy\nnegVpWrrgXw+MvzZM/GdxY4dgKGhuD9j7Fhxs9Xhw+JHcDU0yhYj80Mm5p6dC4tdFmih2wLJ05Mx\n6YdJqKJWhfsTIoQoDGtaD+Q/qtqElZQEzJwJ1Kghfsy2a1dg3Dhg2DDgs4H8ZZJXkAe/WD+svrIa\nv7T6BUutl6JB7QbcJU4IUQq0Jvq/Cu9AlPUuhDEgORm4fPm/r4wM8VNTZ86Ix2906lSxGCImQlB8\nEDwueKB9g/a46HQRreqV/kk3QohqKOxE5wwnUzLKiazTj4yMrPAxPn5kLDqasbVrGRsyhLG6dRkz\nMmJszBjGtm9n7M4dxjIyGJs2jbGgoEg2bdqXs+WWxfkH51nHHR1Z512dWVRq1Ddfy8X5lQXFU85Y\nFE/543F17VT6OxBF9/YtcPXqf3cX16+LB/b9+KO4b2PzZqDowPuiS7zevPnfyPCyLvl65+UduEe4\nIykjCat6r8Jws+H0ZBUhhFNK3weiaONA0tOLN0elpAAWFoCVlbhodO0KaH1jtvOKLvma/jYdSwRL\ncCLpBDysPDC101RUq1Kt4idGCFF6NA6kCFl0on/rgt6/P3D3bvGCkZMjLhSFXx06/DcNujS9/fgW\na66swbbr2zCx40TM/3E++NXLcMtCCKk0aBxIEYXjJKSh6GO1Z88KcPq0uHBs3gzUrSsewBcdDVhb\nA+HhwMuXwB9/AHPnAl26VKx4lKaz65PwE7bEboHpZlM8efsEcZPj4POzT7mKh6o++14Z4qnyuVE8\nxaX0fSBF+wyKEgrFa3bn5n759bX9X/ve27dAkyZAXp64+enXX4HevYGAAKCBnJ6CZYzhj8Q/MP/c\nfBjxjRA+JhzmDczlkwwhpFJS+ias2rU9Ub++NdTVrYtd9PPzgZo1gVq1Sv761vdK+n5WlniakIcP\nxbPYytPfaX/DLcINOfk58O3ji77GfeWbECFEKVAfSBE8Hg9BQQzGxl8WgOrVS559tjwK73Lc3L6+\n4JIspGSkYP75+biWfg3Ley7HmHZjaPQ4IaTMqA/kX5cuiVfVMzMTNzPVrSsewc118Vi5EkhNFXyx\n4JI0FbaLvsx9CddTrujm3w2dGnVCkmsSHM0dOS8eqt7uq8rxVPncKJ7iUvoCIu0LetEFlwBIFly6\nckU68YrKK8jDyosrYbbFDFXVqiLRNRHzf5yPGuo1pB+cEEK+Q+mbsBhjZRonoQyEIiH23dqHJZFL\nYNnYEt69vGGsYyzvtAghKoLmwvpX4VxYAwdayzuVCmOMIfxeONzPuYNfnY+QESHoYtBF3mkRQlQE\n13NhKX0Tliync5dmO+WNZzfw84GfMfvMbKzouQIXnS7iw70PUotXElVv91XleKp8bhSPO1xP5670\ndyDK7lH2IyyKXITzD87Ds4cnXDq6oKoa/VgIIYpPJfpAlFHWhyx4X/bGnrg9mN55OuZ2mwtNDU15\np0UIqQSoD0RJfSz4iC3XtsDnsg+GthqKO1PvoKFmQ3mnRQghZaaQfSC5ublwdHTEpEmTcOjQIXmn\nI1GRdsrCRZ1abmkJQaoAAicBdgza8c3ioartsBRPuWNRPOWPxxWFvAM5fvw4RowYgYEDB8LBwQGj\nRo2Sd0oVIkgVwC3CDTzwEDA4AD2Mesg7JUIIqTCZ9YGMHz8eYWFh0NPTQ3x8vGR/eHg4Zs2aBaFQ\niAkTJmDevHnw8fHBgAED0K5dO4wePRoHDx4sOXkF7wP55+U/mHduHhJeJYgXdWo9HGo8hbzpI4RU\nIko3lYmzszPCw8OL7RMKhXB1dUV4eDgSEhIQFBSEu3fvwsDAAGlpaQAAkUgkqxQ58/TdU0w8MRE9\n9/XEz81+xt3/uwv7NvZUPAghKkVmVzQrKytoa2sX2xcbGwsTExMYGRlBXV0dDg4OCA0NxbBhwxAS\nEoJp06bBzs5OVil+1/faKd99fIclkUvQdltb6NTQQfL0ZMzqOgsaVTWkEo9rFE9546nyuVE8xSXX\nPuhWBCMAAArXSURBVJD09HQYGhpKtg0MDBATE4OaNWtiz549pTqGk5MTjP6dX53P58Pc3FwysLDw\nh8LV9s2bN0v8vqWVJXbf2I1FexfBopEF4qbHobFWY6nFk/X5UTzliEfbtP21bYFAgICAAACQXC+5\nINNxIKmpqbC1tZX0gYSEhCA8PBy7du0CAAQGBiImJgabN28u1fHk3QfCGMOfiX9i/vn5aKzVGGt+\nXoMODTvILR9CCCkNlRgHoq+vL+nrAIC0tDQYGBiU6RiFU5kUVl1ZuZp2FW4Rbnj78S029duEvsZ9\nweNqDnlCCJECgSrNhWVhYYGUlBSkpqYiPz8fwcHBCtXn8TmBQICUjBQMPzocI46NwISOExA3OQ42\nJjZSKR5c/qApnmrHU+Vzo3iKS2YFZOTIkejevTuSk5NhaGiIvXv3omrVqvDz84ONjQ3MzMxgb2+P\nVq1alem4sppM8VXuK2yK2YRu/t3QsUFHJLsmw8nciVYEJIQoDWuOJ1NU+rmwPD09pdqE9f7Te2yM\n3oj1V9djVNtRWPzTYtSrVU8qsQghRJoKm7BoTXRItxNdKBJi/639WCJYgm4G3eDd2xsmOiZSiUUI\nIbKkdAMJpWXp0qWcth8WLurUYUcH+Mf54+jwozgy/AhMdExUvl2U4ilvPFU+N4rHbRxaD6QILj+M\nuGdxcItwQ9rbNKz+eTUGtxhMT1YRQlRGYXO/l5cXJ8ejJiyIF3VaHLkYEQ8isOSnJZjQcQLUq6hz\nkCEhhCgelRgHwoWKjAPJzsuG9yVv+Mf54/86/R+SXZNpUSdCiMpSqXEgXCjPY7wfCz5iw9UNMN1s\niuy8bMRPjceynsu+WzxUtV2U4il/PFU+N4rHHa4f41X6O5CyEDERjvxzBAvPL0RrvdaIdIxEa73W\n8k6LEEKUktL3gZR2HEhUahTcItwgYiL49vFFz6Y9ZZMkIYQoCBoHUkRpOoISXiVg3rl5uPPyDrx7\nedO6HISQSo/GgXzHs3fPMOnEJFgHWKOnUU8k/l8iRrYdWaHioartohRP+eOp8rlRPMWlcn0g7z6+\nw9qra+EX6weXDi5Ick2Cdg3t77+REEJImSh9E1ZhH8iPP/2I3Td2wyvKC72b9sbKXivRhN9E3ikS\nQojCoD6QIng8HkQiEf5K+gvzzs2Dfh19+PbxRceGHeWdGiGEKCzqA/lXj4AeWBS5CBtsNuDc2HNS\nLR6q3i5K8ZQ3niqfG8VTXErfB+Jk7gTH9o60LgchhMiY0jdhKXH6hBAiF9SE9S+up3MnhBBVxfV0\n7ipRQGSxpC2g+u2iFE9546nyuVE87nA9F5bSFxBCCCHyQX0ghBBSyVAfCCGEELlS2ALy8OFDTJgw\nAcOHD5d3KhKq2i5K8ZQ/niqfG8VTXApbQJo2bYrdu3fLO41ibt68SfEonkLGU+Vzo3iKS+oFZPz4\n8ahfvz7atm1bbH94eDhatmyJ5s2bY/Xq1dJOgxPZ2dkUj+IpZDxVPjeKp7ikXkCcnZ0RHh5ebJ9Q\nKISrqyvCw8ORkJCAoKAg3L17FwcOHMDs2bPx9OlTaadVLqmpqRSP4ilkPFU+N4qnuKReQKysrKCt\nXXw69djYWJiYmMDIyAjq6upwcHBAaGgoxo4diw0bNqBRo0bIzMzElClTcPPmTYW5Q1H121qKp7zx\nVPncKJ7ikstcWOnp6TA0NJRsGxgYICYmpthrdHR0sH379u8ei8fjcZ4fxaN4yhhPlc+N4ikmuRQQ\nrj4oGgNCCCHyI5ensPT19ZGWlibZTktLg4GBgTxSIYQQUk5yKSAWFhZISUlBamoq8vPzERwcDDs7\nO3mkQgghpJykXkBGjhyJ7t27Izk5GYaGhti7dy+qVq0KPz8/2NjYwMzMDPb29mjVqpW0UyGEEMIh\npZ4LixBCiPwo7Ej08njy5AmGDRsGFxcXmTz6m5CQAHt7e0ybNg0hISFSiVHSlC65ublwdHTEpEmT\ncOjQIanHk+a0MiUdOzQ0FJMmTYKDgwMiIiKkHi8xMRFTp07FiBEj4O/vL/V4gPhn2KlTJ4SFhUk9\nnkAggJWVFaZOnYqoqCipx2OMwcPDAzNmzMD+/fulHu/y5cuYOnUqJk6cCEtLS6nHk9Z1pqRY0rzG\nlPR7VuZrC1Mhp06dYoGBgYwxxuzt7aUeb926dezSpUuMMcbs7OykGuvXX3+V/P/+/fvZyZMnGWPS\nO8+i8b61T5rxsrKymIuLi8ziCYVCNnz4cJnEW7JkCfP19ZX8HKUZLyoqivXv3585Ozuze/fuST3e\n8ePHmaOjI5s7dy47f/681OMV+vPPP9nOnTulHk/a15misWRxjSn6e1bWa4vC34GUZSqU7t27Y+fO\nnejduzf69esn9Xhjx47F4cOH4e7ujoyMDKnEKEnRcTRVqnx/LXhZTyfDVbwVK1bA1dVVJvFOnDiB\ngQMHwsHBQerxIiIiYGZmhnr16n03FhfxrKyscOrUKfj4+MDT01Pq8ZKTk2FpaYm1a9di27ZtUo/3\n/+3dv0tybRjA8Wt4iAr6AwIhSmiKmtoCKahVjkOIQ0JQVpA1udQYrRK2tLgUDaG0BUEN2dBWky0R\nB8fGprDC6x1eEl/qefPc55fK9zMa9PUo3peHo7dfTk9PJZVK+d5zss64bTldY0x6ra8zp2tLx5+B\nVCoVvb+/14mJieZtn5+fGo1G1bZtfX9/16mpKX18fNR8Pq+VSkVVzd8tO+m1/j0ej/vaaD2e4+Pj\n5ruEZDLpe+//bvOj12g0NJfL6dXVVSC9Vu28y3Pb29nZ0e3tbV1YWNB4PK6NRiOQ46vX6209h257\nJycnenZ2pqqqi4uLvvdUVWu1mq6srPza8qLnZJ3x6rlrd41x0vvpdeZ0ben4MxAnW6HMzc3JwcGB\nrK+vy+joqO+9Wq0mmUxG0um05HI5Xxo/bemSSCSkXC7LxsZGWx9/dttzuq2MSe/h4aH5vwuFglxf\nX0upVJKjoyPfezc3N7K1tSWZTEZmZ2d96bU+dnt7e5LP5yWVSsnq6uqvX6x1e3zn5+eytrYmS0tL\nsrm56fvxJRIJuby8lGw229bPTbvtiYgUi0VZXl7+teVFz8k647bldI1x0js8PPz2OnO6toTyTXS3\n/rYVyuTkpJRKpcB6IyMjbS1wbho/bekyODgoxWIxsF6728p41ctms5LNZgPrxWIxicVigfW+pNPp\nQHqWZYllWcYtp72BgQHXP8Xg9PF0+zvfTnpu1xknLS/WmL/1CoXCtzcUTteWjj8D+Ukv7lHTi8dE\njx69cFt+97pygAS9FUoQvV48Jnr06IXb8r3361WSDmDb9n8uCn18fOjY2Jjatq31ev3bRahu6PXi\nMdGjRy/cVtC9jh8gyWRSh4eHta+vTyORiBaLRVX997PY4+PjGo1GdX9/v6t6vXhM9OjRC7cVRo+t\nTAAARrryGggAIHwMEACAEQYIAMAIAwQAYIQBAgAwwgABABhhgAAAjDBAAABGGCAAACNduZ070Klu\nb2+lXC43t4evVquyu7sb8r0C/MEZCOChr62zI5GIWJYlT09PId8jwD8MEMBDMzMz8vz8LNPT0/L6\n+ip//nCSj97FAAE89Pb2Jv39/SIicnFxIfPz83J3dxfyvQL8wQABPFStVpvXP4aGhuTl5cXXHwsC\nwsR27gAAI5yBAACMMEAAAEYYIAAAIwwQAIARBggAwAgDBABghAECADDCAAEAGPkHpfbS1kpTajMA\nAAAASUVORK5CYII=\n",
"text": "<matplotlib.figure.Figure at 0x4c95ad0>"
}
],
"prompt_number": 9
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment