Skip to content

Instantly share code, notes, and snippets.

@LeeMendelowitz
Last active December 29, 2015 09:28
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 LeeMendelowitz/7650194 to your computer and use it in GitHub Desktop.
Save LeeMendelowitz/7650194 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import common_prefix\n",
"fname = 'lcp.V35.out'\n",
"lcps = common_prefix.read(fname)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"lcps = np.array(lcps)\n",
"\n",
"num_sequences = len(lcps)+1\n",
"print 'have %i sequences' % (num_sequences)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"have 1069684 sequences\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"min_lcp = 100\n",
"\n",
"# Break lcps into intervals such that all sequences in the interval\n",
"# have an lcp of at least min_lcp bp.\n",
"def getIntervals(min_lcp):\n",
" intervals = list(common_prefix.genIntervals(lcps, min_lcp))\n",
" intervals = [(s,e,e-s+1) for s,e in intervals] # Compute the number of sequences in the interval.\n",
" intervals = sorted(intervals, key = lambda t: t[2], reverse=True)\n",
" return intervals\n",
"intervals = getIntervals(min_lcp)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Print intervals that have the most sequences\n",
"for s,e,l in intervals[:10]:\n",
" print l"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"4686\n",
"3007\n",
"2449\n",
"2411\n",
"2390\n",
"2220\n",
"2052\n",
"2025\n",
"1960\n",
"1842\n"
]
}
],
"prompt_number": 37
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"Ms = np.arange(5, 100, 10)\n",
"m2intervals = {}\n",
"for m in Ms:\n",
" m2intervals[m] = getIntervals(m)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 38
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = Ms\n",
"y = [len(m2intervals[m]) for m in Ms]\n",
"plt.plot(x,y)\n",
"plt.title('Number of jobs vs minimum lcp')\n",
"plt.xlabel('minimum lcp')\n",
"plt.ylabel('number of jobs')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 41,
"text": [
"<matplotlib.text.Text at 0x10f648690>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAZ0AAAEXCAYAAAB29JkcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVXX++PHXNbBFRRIVFDQELiBKaCpgy4TRxTRFcwlX\n1JymbHJsM6fpl6PNqPidmtKymmkicUkqKzVLxCwmS6VEzXIpNVA2KVncke39++PEHVERVO69LO/n\n48Gjy7n3fM77HOy87+dzPotJRASllFLKDpo5OgCllFJNhyYdpZRSdqNJRymllN1o0lFKKWU3mnSU\nUkrZjSYdpZRSdqNJR9UbEydO5LnnnnPY8SdNmkSbNm0IDw+/4L3ly5fTv3//WpUTERHBW2+9Vdfh\n2cXAgQNZunRpnX/WnhYvXswdd9zh6DBUNZwcHYCqv7y9vTlz5gzp6enccMMNAPznP/9h+fLlfPHF\nF3V+PJPJhMlkqvNya2PTpk189tln5OTkcN11113w/tixYxk7dmytynLkeVytTz/91CafVaqS1nTU\nJVVUVLBgwQK7Ha+uxipXVFRc1ucPHTqEt7f3RROOUqruaNJR1TKZTDz11FO88MILHDt27IL3MzIy\naNasWZUb/LlNS4sXL+a2227jiSee4MYbb8TPz4/Nmzfz9ttv07lzZ9zd3VmyZEmVMo8ePUpUVBQu\nLi5ERERw+PBh63v79u3DYrHg5uZGYGAg77//vvW9iRMnMmXKFAYOHEjLli1JSUm5IN6cnByio6Nx\nc3PDbDbzn//8B4C33nqLBx98kC1bttCqVStmz559wb7nN9ls3ryZPn364OrqSmhoKFu2bKny+QMH\nDhAWFkbr1q0ZOnQohYWFABQXFzNu3Djatm3LjTfeSGhoKL/88ssFx5s/fz4jR46ssm3atGlMmzbN\nGo+vry8uLi74+PjwzjvvXFAGwKxZsxg5ciTjx4/HxcWFm2++mf379zNv3jzc3d256aab2LBhg/Xz\n5//9br/9dqZPn06bNm3w8fEhKSmp2s9ezt/6/CbI869vs2bNeP311zGbzbi4uDBz5kwOHjxI3759\ncXV1ZdSoUZSWll70nM+3e/du678bDw8P5s2bZ702I0aMYNSoUbi4uNCrVy927dpVqzLVldOkoy6p\nd+/eRERE8MILL9Tq8+c3LX3zzTeEhIRQUFDA6NGjuf/++9m+fTsHDx5k2bJlPProo5w+fRowajnL\nly9n5syZHD16lB49elibtE6dOoXFYmHcuHH8+uuvJCYm8sgjj7B3717rsVasWMFzzz3HyZMnue22\n2y6IbdSoUXTu3Jnc3FxWrlzJX/7yF7744gsmT57MG2+8Qd++fTlx4gR//etfL3mOBQUF3HvvvTz2\n2GMUFBTwxBNPcO+991oTi4iwZMkS3n77bXJzc3FycuJPf/oTAAkJCRw/fpysrCwKCgr417/+xfXX\nX3/BMUaPHs2nn37KyZMnASgvL+f9999n7NixnDp1imnTppGUlMTx48fZsmULPXr0qDbetWvXEhsb\nS2FhIT179sRisQBGEn7uued46KGHLvn3CwwMJD8/n6effprJkydf8rO1/VvXpgkyOTmZHTt2sHXr\nVubPn8+DDz7IihUrOHz4MN9//z0rVqy45P4AJ06c4O6772bgwIHk5uZy4MABIiMjre+vWbOG+++/\nn8LCQsaMGcPQoUMpKyursVx15TTpqEsymUw8//zzvPLKKxw9evSy9+/SpQsTJkzAZDJx//33k5OT\nw8yZM3F2dsZisdC8eXMOHDhg/fygQYO4/fbbad68OXPmzGHLli1kZWWxdu1aa1nNmjWjR48eDBs2\nrEptZ+jQofTt2xeAa6+9tkocmZmZbN68mfnz59O8eXNCQkL4/e9/b/32fTnNep988gkBAQGMHTuW\nZs2aMWrUKAIDA1mzZo31msXGxhIUFMQNN9zA3/72N9577z0qKipo3rw5+fn57N+/H5PJRM+ePWnV\nqtUFx+jcuTO33HILH330EQCff/45N9xwA6GhoYBRE/j+++85c+YM7u7uBAUFVRvv7373OywWC9dc\ncw0jRowgPz+fP//5z1xzzTXExMSQkZHB8ePHL7rvTTfdxOTJk63nlJube9GaGVz+37omTz/9NC1b\ntiQoKIjg4GAGDBiAt7c3Li4uDBgwgB07dtRYxtq1a+nYsSOPP/44zZs3p2XLltZrCMaXqmHDhnHN\nNdfwxBNPUFxczNatW2sdo7p8mnRUjbp168agQYOIi4u77Afk7u7u1teV3+jbtWtXZVvlt3mTyYSX\nl5f1vRYtWtCmTRtycnI4dOgQqamp3Hjjjdafd955h7y8POu+nTp1qjaOnJwc2rRpQ4sWLazbOnfu\nTHZ29mWdT2VZnTt3rrLtpptuIicnx/r7ubF07tyZ0tJS8vPzGT9+PP3792fUqFF4enoyY8aMar9Z\njxkzxvpt/p133rHW+lq0aMG7777LG2+8QceOHRk0aBA//vhjtfG2b9/e+vr666+nbdu21r9j5d+k\n8m9wPg8PD+vrys4k1X32cv7WtXF+eef/XpuyMjMz8fHxqfb9c/+9Vf77y83NrXWM6vJp0lG1Mnv2\nbN58880qN+nKG3hlkwnAkSNHrvgYIkJmZqb195MnT1JQUICnpyedO3fmzjvvpLCw0Ppz4sQJFi1a\nVKuyO3bsSEFBQZUb1eHDh6vcdGrL09OTQ4cOVdl26NAhPD09q5R97mtnZ2fatm2Lk5MTM2fOZPfu\n3WzevJm1a9de8Fyr0ogRI0hJSSE7O5tVq1YxZswY63tRUVEkJydz5MgRAgMDefDBBy9aRn3tRdei\nRQtOnTpl/f1q/t1cSufOnfn555+rff/cf28VFRVkZWXRsWNHm8SiDJp0VK34+voSExNTpSdbu3bt\n8PT0ZOnSpZSXlxMfH8/Bgwev6jiffvopX3/9NSUlJTz33HP07dsXT09P7r33Xn766SeWLVtGaWkp\npaWlfPvtt+zbtw+ouXmsU6dO3HrrrTzzzDOcPXuWXbt2ER8fz7hx4y47xgEDBvDTTz+xYsUKysrK\nePfdd9m3bx+DBg2yxrJs2TL27t3L6dOnmTlzJiNHjsRkMpGSksL3339PeXk5rVq1wtnZmWuuueai\nx2nXrh0RERFMnDgRHx8fAgICAPjll19YvXo1p06dwtnZmRYtWlRbRn1duaRHjx58+OGHnDlzhgMH\nDtRqXNO551Lb87r33nvJzc1lwYIFnD17lhMnTvDNN99Y309LS+Ojjz6irKyMl19+meuuu+6i47RU\n3dGko2pt5syZnD59usq35zfffJN//OMftG3blj179lR5gH+xh8WX+uZtMpkYO3Yss2fPxs3NjR07\ndrBs2TIAWrVqRXJyMomJiXh6etKhQweeeeYZSkpKqj3W+VasWEFGRgYdO3Zk2LBhPP/889x11121\n3r+Sm5sba9eu5cUXX6Rt27a88MILrF27ljZt2ljLio2NZeLEiXTo0IGSkhIWLlwIGN/oR44cSevW\nrQkKCiIiIoLx48dXe6wxY8awcePGKrWciooKXnrpJTw9PXFzc2PTpk28/vrr1V7Tmv4G1Z335fz9\nLvdvXfmMxd3dnUmTJjFu3Lgqn7/Yvue/X5tYWrVqxYYNG/j444/p0KED/v7+1p6NJpOJIUOG8O67\n79KmTRuWL1/Ohx9+WG0CV3XDpIu4KVWz+Ph4li9fzsaNGx0diqojs2fP5sCBA/VyVoXGzGY1nR9/\n/JGePXtaf1q3bs3ChQspKCjAYrHg7+9PVFQURUVF1n3mzZuH2WwmMDCQ5ORk6/a0tDSCg4Mxm83W\ncQoAZ8+eJSYmBrPZTHh4eJV29oSEBPz9/fH396+2zVyp2tq9e/clH0irhke/bzuI2EF5ebl4eHjI\n4cOHZfr06TJ//nwREYmLi5MZM2aIiMju3bslJCRESkpKJD09XXx9faWiokJERPr06SOpqakiIjJg\nwABZt26diIgsWrRIpkyZIiIiiYmJEhMTIyIi+fn54uPjI4WFhVJYWGh9rdSVGDJkiHTv3l327t3r\n6FBUHZo1a5aMHz/e0WE0OXZJOuvXr5fbb79dREQCAgLkyJEjIiKSm5srAQEBIiIyd+5ciYuLs+7T\nv39/2bJli+Tk5EhgYKB1+4oVK+Shhx6yfmbr1q0iIlJaWipt27YVEZF33nlHHn74Yes+Dz30kKxY\nscKGZ6iUUqo27DLhZ2JiIqNHjwYgLy/P2t/e3d3dOs4iJyenSq8RLy8vsrOzcXZ2rtKt1dPT09pt\nNzs72zoewsnJidatW5Ofn09OTk6VfSrLOld97UqqlFL1nVxF06TNe6+VlJTw8ccfXzCPFDh+Nl4x\nanpN/uevf/2rw2OoLz96LfRa6LW49M/VsnnSWbduHb169bKOTHZ3d7cOBMvNzbWOlvb09KwyUCsr\nKwsvLy88PT3Jysq6YHvlPpWD8MrKyjh27Bhubm4XlJWZmXlFgwCVUkrVLZsnnRUrVlib1gCio6NJ\nSEgAjB5mQ4cOtW5PTEykpKSE9PR09u/fT2hoKB4eHri4uJCamoqIsHTpUoYMGXJBWStXrrRO5Fc5\nWruoqIjCwkI2bNhQ6wW4lFJK2ZDY0MmTJ8XNzU2OHz9u3Zafny+RkZFiNpvFYrFU6VU2Z84c8fX1\nlYCAAElKSrJu37Ztm3Tv3l18fX1l6tSp1u3FxcUycuRI8fPzk7CwMElPT7e+Fx8fL35+fuLn5yeL\nFy++IDYbn3qD8sUXXzg6hHpDr8X/6LX4H70W/3O1984mOzjUZDLVSfukUko1JVd779RpcJRSStmN\nJh2llFJ2o0lHKaWU3WjSUUopZTeadJRSStmNJh2llFJ2o0lHKaWU3WjSUUopZTeadJRSStmNJh2l\nlFJ2o0lHKaWU3WjSUUopZTeadJRSStmNJh2llFJ2o0lHKaWU3WjSUUopZTeadJRSStmNJh2llFJ2\no0lHKaWU3WjSUUopZTeadJRSStmNJh2llFJ2o0lHKaWU3dg06RQVFTFixAi6du1KUFAQqampFBQU\nYLFY8Pf3JyoqiqKiIuvn582bh9lsJjAwkOTkZOv2tLQ0goODMZvNTJs2zbr97NmzxMTEYDabCQ8P\n59ChQ9b3EhIS8Pf3x9/fnyVLltjyNJVSStWW2FBsbKy89dZbIiJSWloqRUVFMn36dJk/f76IiMTF\nxcmMGTNERGT37t0SEhIiJSUlkp6eLr6+vlJRUSEiIn369JHU1FQRERkwYICsW7dOREQWLVokU6ZM\nERGRxMREiYmJERGR/Px88fHxkcLCQiksLLS+PpeNT10ppRqlq713OtkqmR07doxNmzaRkJAAgJOT\nE61bt2bNmjX897//BWDChAlEREQQFxfH6tWrGT16NM7Oznh7e+Pn50dqaio33XQTJ06cIDQ0FIDY\n2FhWrVrFPffcw5o1a5g9ezYAw4cP59FHHwVg/fr1REVF4erqCoDFYiEpKYlRo0ZViXHWrFnW1xER\nEURERNjqciilVL1QVAS/3RprJSUlhZSUlDo7vs2STnp6Ou3atWPSpEl899139OrVi5dffpm8vDzc\n3d0BcHd3Jy8vD4CcnBzCw8Ot+3t5eZGdnY2zszNeXl7W7Z6enmRnZwOQnZ1Np06djBP5Lanl5+eT\nk5NTZZ/Kss53btJRSqnGKi8PVqyAZcvguuvgq69qv+/5X8grv+hfKZs90ykrK2P79u088sgjbN++\nnRYtWhAXF1flMyaTCZPJZKsQlFKqyTp1CpYvhwEDIDAQdu6EuDj4raHJYWyWdLy8vPDy8qJPnz4A\njBgxgu3bt+Ph4cGRI0cAyM3NpX379oBRg8nMzLTun5WVhZeXF56enmRlZV2wvXKfw4cPA0aSO3bs\nGG5ubheUlZmZWaXmo5RSjVF5OWzYALGx4OlpJJ3YWMjOhsWL4e674ZprHBujzZKOh4cHnTp14qef\nfgLgs88+o1u3bgwePNj6nCchIYGhQ4cCEB0dTWJiIiUlJaSnp7N//35CQ0Px8PDAxcWF1NRURISl\nS5cyZMgQ6z6VZa1cuZLIyEgAoqKiSE5OpqioiMLCQjZs2ED//v1tdapKKeUwIkYt5qmnoFMn+Mtf\noFcv+PFH+PRTGD0abrjB0VGeo276M1zczp07pXfv3nLzzTfLfffdJ0VFRZKfny+RkZFiNpvFYrFU\n6VU2Z84c8fX1lYCAAElKSrJu37Ztm3Tv3l18fX1l6tSp1u3FxcUycuRI8fPzk7CwMElPT7e+Fx8f\nL35+fuLn5yeLFy++IDYbn7pSStlUZqZIXJxI9+4iN90k8uyzInv32v64V3vvNP1WSJNjMplooqeu\nlGqgjh+HDz6ApUvhu+9gxAgYNw5uuw2a2Wmo/9XeOzXpKKVUPVZaCuvXG4kmKQnuugvGj4eBA42e\naPamSecKadJRStVXIvDNN0YX53ffBX9/o0Zz//3Qpo1jY7vae6fNxukopZS6PAcPGj3Oli0zfh8/\nHrZuBR8fx8ZVlzTpKKWUA+Xnw3vvGYlm/36IiTFe9+kDjXEYozavKaWUnRUXwyefGM9pvvjCGMA5\nbhz07w/Ozo6O7tL0mc4V0qSjlLKnigpj+plly4weaD16GIlm+HBwcXF0dLWnz3SUUqoeO3EC3n4b\nFi6E6683ntPs3GkM5GyKNOkopZQNZGTAK68Y089ERsKSJdC3b+N8TnM5dOVQpZSqIyKweTOMHGlM\nRWMywfbtRkeBW2/VhANa01FKqatWWgorV8JLL0FBAUybBvHx0KqVoyOrf7QjgVJKXaGCAvj3v+HV\nV8Fshsceg0GDHD+Tsy1d7b1Tm9eUUuoy7dsHU6aAr6/x+uOPja7PQ4Y07oRTF7R5TSmlakEEPvvM\naEJLS4OHHoK9e8HDw9GRNSyadJRS6hLOnIF33oGXXzYSz+OPG+Nsrr/e0ZE1TJp0lFLqIo4cgdde\ng3/9C3r3Nmo4kZHaA+1q6TMdpZQ6x86dMGECdO0KR4/Cf/9rTFlz992acOqCJh2lVJNXXg6rV0NE\nBAweDEFBxozPr70GgYGOjq5x0eY1pVSTdeKEMWPAggXGOjWPP26sxlnfJ91syDTpKKWanIwMY2zN\n228bK3HqFDX2o81rSqkm4fwpasDo+vz++zpFjT1pTUcp1aiVlRmJRaeoqR806SilGqWKCvjwQ3ju\nOXBzg2efbfxT1DQENm1e8/b25uabb6Znz56EhoYCUFBQgMViwd/fn6ioKIqKiqyfnzdvHmazmcDA\nQJKTk63b09LSCA4Oxmw2M23aNOv2s2fPEhMTg9lsJjw8nEOHDlnfS0hIwN/fH39/f5YsWWLL01RK\n1SMikJRkLPc8b54xqHPTJp2ipt4QG/L29pb8/Pwq26ZPny7z588XEZG4uDiZMWOGiIjs3r1bQkJC\npKSkRNLT08XX11cqKipERKRPnz6SmpoqIiIDBgyQdevWiYjIokWLZMqUKSIikpiYKDExMSIikp+f\nLz4+PlJYWCiFhYXW1+ey8akrpRzgyy9F7rhDJDBQZOVKkd9uIaoOXe290+YdCeS82UjXrFnDhAkT\nAJgwYQKrVq0CYPXq1YwePRpnZ2e8vb3x8/MjNTWV3NxcTpw4Ya0pxcbGWvc5t6zhw4ezceNGANav\nX09UVBSurq64urpisVhISkqy9akqpRxk+3YYOBBiY2HyZPjhB2MZaO0cUP/Y9JmOyWTi7rvv5ppr\nruGhhx7iwQcfJC8vD3d3dwDc3d3Jy8sDICcnh/DwcOu+Xl5eZGdn4+zsjJeXl3W7p6cn2dnZAGRn\nZ9PptzVfnZycaN26Nfn5+eTk5FTZp7Ks882aNcv6OiIigoiIiDo7d6WU7e3bBzNnwldfGc9sPvoI\nrr3W0VE1LikpKaSkpNRZeTZNOl9//TUdOnTg119/xWKxEHje0F6TyYTJgV9Fzk06SqmG49AhmD3b\nWFLgqaeM8TYtWjg6qsbp/C/ks2fPvqrybNq81qFDBwDatWvHfffdxzfffIO7uztHjhwBIDc3l/bt\n2wNGDSYzM9O6b1ZWFl5eXnh6epKVlXXB9sp9Dh8+DEBZWRnHjh3Dzc3tgrIyMzOr1HyUUg3TkSPw\npz/BLbeApyfs3w8zZmjCaUhslnROnz7NiRMnADh16hTJyckEBwcTHR1NQkICYPQwGzp0KADR0dEk\nJiZSUlJCeno6+/fvJzQ0FA8PD1xcXEhNTUVEWLp0KUOGDLHuU1nWypUriYyMBCAqKork5GSKiooo\nLCxkw4YN9O/f31anqpSyscJC+MtfoFs3owfa3r3wt7+Bq6ujI1OXy2bNa3l5edx3332AUQsZO3Ys\nUVFR9O7dm/vvv5+33noLb29v3nvvPQCCgoK4//77CQoKwsnJiddee83a9Pbaa68xceJEzpw5w8CB\nA7nnnnsAmDx5MuPHj8dsNuPm5kZiYiIAbdq04bnnnqNPnz4A/PWvf8VV/3Uq1eCcOgULF8I//2l0\ned6xAzp3dnRU6mqY5PzuZU3E1a7zrZSynbNn4d//hrlz4c47jec3AQGOjkrB1d87dUYCpVS9UVYG\nS5fCrFkQHAzr1kGPHo6OStUlTTpKKYerqDCWgH7uOXB3N5aHvu02R0elbEGTjlLKYSqnrHn2WWjW\nzHh+Y7HooM7GTJOOUsohNm0yeqTl58Pf/w733afJpinQpKOUsqu0NPh//8+YTWD2bBg7VifibEp0\nETellF3s3WssoDZ4sPHz44/GXGmacJoWTTpKKZvKyIBJk4yuz336wIED8Mgj0Ly5oyNTjlBj0vnq\nq684efIkAEuXLuWJJ56osm6NUkpdTGEhPPaYsTR0p07GlDVPPw033ODoyJQj1Zh0pkyZQosWLfju\nu+/45z//ia+vL7GxsfaITSnVAJWXw5tvQteuUFxsNKs9/zy0bu3oyFR9UGPScXJywmQysWrVKv74\nxz/yxz/+0TqnmlJKnWvzZggNhYQEY2DnG2/Ab3P6KgXUovdaq1atmDt3LsuWLWPTpk2Ul5dTWlpq\nj9iUUg1ETo4x2/MXX8D//R+MHq3dn9XF1VjTeffdd7n22muJj4/Hw8OD7Oxspk+fbo/YlFL13Nmz\nMH8+3Hyz8dxm3z4YM0YTjqperSb8zM3N5ZtvvqFZs2b06dMHDw8Pe8RmUzrhp1JX55NPjI4CXbsa\ns0D7+Tk6ImUPV3vvrLGm85///IewsDA+/PBDVq5cSVhYGG+99dYVH1Ap1bD99BMMHAhPPgmvvAJr\n1mjCUbVXY03H39+fLVu24ObmBkB+fj59+/blp59+skuAtqI1HaUuz/HjxnQ18fHwzDMwdaqOtWmK\nbF7Tadu2LS1btrT+3rJlS9q2bXvFB1RKNSwVFbBkidGM9uuv8MMPRi1HE466EtX2XnvxxRcB8PPz\nIywszLqs9OrVq7n55pvtE51SyqG2bTNqNOXl8OGHEBbm6IhUQ1dt0jlx4gQmkwlfX198fHysS0cP\nGTLE+lop1Tj98osxA/Qnnxird06YYCw9oNTVqvVy1ZUDQlu1amXTgOxFn+kodaHSUli0CObMMSbj\nnDlTZxJQVdl8uervv/+e2NhY8vPzAWjXrh0JCQl07979ig+qlKp/NmyAadOM8TZffmk8w1GqrtVY\n0+nbty9z586lX79+AKSkpPCXv/yFzZs32yVAW9GajlKGn382Ogbs2mWMt4mO1sGdqno27712+vRp\na8IBiIiI4NSpU1d8QKVU/XDqFDz3nDFXWp8+sHs3DBmiCUfZVo3Na126dOFvf/sb48ePR0RYvnw5\nPj4+9ohNKWUDIvDeezB9Otx+O+zcCV5ejo5KNRU11nTi4+P55ZdfGDZsGMOHD+fXX38lPj6+1gco\nLy+nZ8+eDB48GICCggIsFgv+/v5ERUVRVFRk/ey8efMwm80EBgaSnJxs3Z6WlkZwcDBms5lp06ZZ\nt589e5aYmBjMZjPh4eFV1vlJSEjA398ff39/lixZUut4lWrMvvsOIiJg3jxYvhzeeUcTjrIzsbEX\nX3xRxowZI4MHDxYRkenTp8v8+fNFRCQuLk5mzJghIiK7d++WkJAQKSkpkfT0dPH19ZWKigoREenT\np4+kpqaKiMiAAQNk3bp1IiKyaNEimTJlioiIJCYmSkxMjIiI5Ofni4+PjxQWFkphYaH19bnscOpK\n1RtHj4o88ohI+/Yir78uUlbm6IhUQ3W1985qazqVNYrBgwdf8BMdHc2kSZPYunXrJRNaVlYWn376\nKb///e+tD57WrFnDhAkTAJgwYQKrVq0CjEGno0ePxtnZGW9vb/z8/EhNTSU3N5cTJ04QGhoKQGxs\nrHWfc8saPnw4GzduBGD9+vVERUXh6uqKq6srFouFpKSkK0zLSjVc5eXw+usQFGQ8q9m7Fx5+GK65\nxtGRqaaq2mc6lauDPvnkkxe8ZzKZOHr0KJMmTWLv3r3VFv7444/zj3/8g+PHj1u35eXl4e7uDoC7\nuzt5eXkA5OTkEB4ebv2cl5cX2dnZODs743VO/d/T05Ps7GwAsrOz6dSpk3EiTk60bt2a/Px8cnJy\nquxTWdb5Zs2aZX0dERFBREREteeiVEPz5Zfwpz+Bq6vRHVonElFXIiUlhZSUlDorr9qk06tXL4BL\n3oidnZ2rfW/t2rW0b9+enj17VhuwyWRy6OwG5yYdpRqLo0eNLtBffAEvvAAjR2qPNHXlzv9CPnv2\n7Ksq76omtoiOjq72vc2bN7NmzRq6dOnC6NGj+fzzzxk/fjzu7u4cOXIEMNbpaf/bWraenp5kZmZa\n98/KysLLywtPT0+ysrIu2F65z+HDhwEoKyvj2LFjuLm5XVBWZmZmlZqPUo2RiLFMdPfu4OYGe/bA\n/fdrwlH1TN08Wrq0lJQUGTRokIgYHQni4uJERGTevHkXdCQ4e/as/Pzzz+Lj42PtSBAaGipbt26V\nioqKCzoSPPzwwyIismLFiiodCbp06SKFhYVSUFBgfX0uO526Unbx448i/fqJ3HKLyLZtjo5GNWZX\ne++sdu9x48aJiMhLL710VQcQMZJOZe+1/Px8iYyMFLPZLBaLpUoymDNnjvj6+kpAQIAkJSVZt2/b\ntk26d++urtIWAAAfVklEQVQuvr6+MnXqVOv24uJiGTlypPj5+UlYWJikp6db34uPjxc/Pz/x8/OT\nxYsXXxCTJh3VGBQXizz/vIibm8hLL4mUljo6ItXYXe29s9ppcIKCgvjss8+45557LvpMpk2bNras\ngNmcToOjGrpNm+Chh4xVO199FTp3dnREqimw2YSfDz/8MJGRkfz888/WTgXnHvTnn3++4oMqpa5c\nYSE8/TSsWwcLFsCwYfrcRjUcNU74+fDDD/PGG2/YKx670ZqOamhEIDERnngChg83lh/QZQeUvV3t\nvbNW6+l89913fPnll5hMJu644w5CQkKu+ID1hSYd1ZD8/DM88gjk5MC//w3nDGlTyq5sPsv0ggUL\nGDt2LL/++it5eXmMGzeOhQsXXvEBlVK1V1oK8+cbM0HfdRekpWnCUQ1bjTWd4OBgtm7dSosWLQA4\ndeoU4eHhfP/993YJ0Fa0pqPqu61b4Q9/gI4d4bXXQCd3V/WBzVcOBWh2zuLozXShdKVs6tgx+Mtf\n4MMPjUXVRo3SjgKq8agx6UyaNImwsDCGDRuGiLBq1SoeeOABe8SmVJMiYiSaadNg4EBjUbUGPjJB\nqQvUqiNBWloaX331lbUjQc+ePe0Rm01p85qqTw4fhkcfhQMH4F//gjvucHRESl2cXXqvNUaadFR9\nUFYGr7xidH+eNs0Yf3PttY6OSqnq2eWZjlKq7qWlGR0FWreGzZvB39/RESlle9orQCk7O3kSHn/c\neG7zpz/Bxo2acFTTccmkU1ZWRr9+/ewVi1KN3scfQ7duxlQ2u3fDhAnaM001LZdsXnNycqJZs2YU\nFRXh6upqr5iUanSys41azfffw9tvGwM9lWqKanym06JFC4KDg7FYLNYBoiaTSWclUKoWysvhjTdg\n1ix4+GFYvhyuu87RUSnlODUmnWHDhjFs2DDrstIi4tAlppVqKHbtMjoKODnBf/8LQUGOjkgpx6tV\nl+nTp09z+PBhAgMD7RGTXWiXaWUrp0/D7NlGM9qcOTB5MuhEHqqxsPmEn2vWrKFnz57cc889AOzY\nsYPo6OgrPqBSjdnXX0NIiDHYc9cuePBBTThKnavG/x1mzZpFamoqN954IwA9e/bUBdyUOk9xMcyY\nASNGGLNCr1gBHh6Ojkqp+qfGZzrOzs4X9FzTST+V+p/t2yE21hhr89130L69oyNSqv6qMXt069aN\n5cuXU1ZWxv79+5k6dSq33nqrPWJTql4rLYXnn4d77oE//xk++EATjlI1qTHpvPLKK+zevZtrr72W\n0aNH4+Liwssvv2yP2JSqt/bsgVtvNZ7hbN8O48bpIE+laqPWE34eO3YMk8mEi4uLrWOyC+29pq5E\nRQW8/DLMnQt//zs89JAmG9W02HzCz2+//ZYHHniA48ePA+Dq6spbb71F7969r/igSjVEP/8MkyYZ\niSc1FXx9HR2RUg1Pjc1rDzzwAK+99hqHDh3i0KFDLFq0qFaLuBUXFxMWFkaPHj0ICgrimWeeAaCg\noACLxYK/vz9RUVEUFRVZ95k3bx5ms5nAwECSk5Ot29PS0ggODsZsNjNt2jTr9rNnzxITE4PZbCY8\nPJxDhw5Z30tISMDf3x9/f3+WLFlSu6uh1EWIGGvchIZCdDSkpGjCUeqKSQ169OhxwbaePXvWtJuI\niJw6dUpEREpLSyUsLEw2bdok06dPl/nz54uISFxcnMyYMUNERHbv3i0hISFSUlIi6enp4uvrKxUV\nFSIi0qdPH0lNTRURkQEDBsi6detERGTRokUyZcoUERFJTEyUmJgYERHJz88XHx8fKSwslMLCQuvr\nc9Xi1JWSrCyRe+4R6dVL5IcfHB2NUo53tffOams6aWlppKWlceedd/LQQw+RkpJCSkoKU6ZM4c47\n76xVQrvhhhsAKCkpoby8nBtvvJE1a9YwYcIEACZMmMCqVasAWL16NaNHj8bZ2Rlvb2/8/PxITU0l\nNzeXEydOEBoaCkBsbKx1n3PLGj58OBs3bgRg/fr1REVF4erqiqurKxaLhaSkpMvPyKrJEjHmSevZ\nE8LDYcsWY3ZopdTVqfaZzpNPPlllvrXZs2dbX9d27rWKigpuueUWDh48yJQpU+jWrRt5eXm4u7sD\n4O7uTl5eHgA5OTmEh4db9/Xy8iI7OxtnZ2e8vLys2z09PcnOzgYgOzubTp06GSfi5ETr1q3Jz88n\nJyenyj6VZZ1v1qxZ1tcRERFERETU6rxU4/brrzBlCuzdC+vWQa9ejo5IKceprHDUlWqTTl0cpFmz\nZuzcuZNjx47Rv39/vvjiiyrvm0wmh04eem7SUQpg9WpjNujx42HZMp0RWqnzv5BXVkCuVI291woL\nC1myZAkZGRmUlZUBl7+0QevWrbn33ntJS0vD3d2dI0eO4OHhQW5uLu1/G03n6elJZmamdZ+srCy8\nvLzw9PQkKyvrgu2V+xw+fJiOHTtSVlbGsWPHcHNzw9PTs0rSzMzM5C5dwERdQlERTJtmjLt5/324\n/XZHR6RU41Rj77WBAwdy6NAhbr75Znr37k2vXr3oVYv2hqNHj1p7pp05c4YNGzbQs2dPoqOjSUhI\nAIweZkOHDgUgOjqaxMRESkpKSE9PZ//+/YSGhuLh4YGLiwupqamICEuXLmXIkCHWfSrLWrlyJZGR\nkQBERUWRnJxMUVERhYWFbNiwgf79+1/B5VFNwYYNcPPN0KIF7NypCUcpm6qpp0Fte6qdb9euXdKz\nZ08JCQmR4OBg+b//+z8RMXqWRUZGitlsFovFUqVX2Zw5c8TX11cCAgIkKSnJun3btm3SvXt38fX1\nlalTp1q3FxcXy8iRI8XPz0/CwsIkPT3d+l58fLz4+fmJn5+fLF68+IL4anHqqpE7eVLkkUdEOnUS\nWb/e0dEo1TBc7b2zxhkJXnjhBVxcXBg8eDDXXnutdXubNm1snA5tS2ckaNq+/homTIDbboMFC0BX\nY1eqdmw+I8F1113H9OnTmTNnjnV2aZPJpMsbqAapuBj++ldYsgRefx1+a91VStlJjTWdLl268O23\n39K2bVt7xWQXWtNpeiqXIAgIgDfegHbtHB2RUg2PzVcONZvNXH/99Vd8AKUc7dwlCJ55Blau1ISj\nlKPU2Lx2ww030KNHD/r162d9pnO5XaaVcpQ9e4xnN25uRk3nnDHDSikHqDHpDB061NqtuZIjB3Qq\nVRvl5UYHgXnzjCUI/vAHXYJAqfqg1uvpNDb6TKfx+vlnmDjReL14Mfj4ODIapRoXm/de69Kly0UP\nqr3XVH0jAm++Cc8+azy7mTYNrrnG0VEppc5Vq0XcKhUXF7Ny5Ury8/NtGpRSl+vYMZg82ajl/Pe/\nEBTk6IiUUhdzRc1rt9xyC9u3b7dFPHajzWuNR1oaxMQYvdNefBHOGcOslKpjNm9eS0tLs3YcqKio\nYNu2bZSXl1/xAZWqKyLw2mswaxYsWgT33+/oiJRSNakx6Zy7ro6TkxPe3t689957Ng9MqUs5dgwe\nfBD27zcWWPPzc3RESqna0N5rqsHZscOo1Vgs8M9/6po3StmTzZvXiouL+eCDD8jIyKC8vNy6cujM\nmTOv+KBKXQkRY/qamTPhlVdg1ChHR6SUulw1Jp0hQ4bg6upKr169uE6/UioHOX7cGOC5b58xQ7S/\nv6MjUkpdiRqTTnZ2NuvXr7dHLEpd1M6dRnNav37G8xudClCphqvGCT9vvfVWdu3aZY9YlKpCBP71\nL+PZzaxZxmtNOEo1bDV2JOjatSsHDhygS5cuVSb8bOiJSDsS1G8nTsBDD8EPP8D77xvLESilHM/m\nHQnWrVt3xYUrdSV27YKRI+F3v4OtW+GGGxwdkVKqrmiXaVVviMBbbxnzpr30Eowb5+iIlFLns3lN\nRyl7OHkSpkwxxuB8+SV07eroiJRStlBjRwKlbO2HH6BPH2jeHL75RhOOUo2ZJh3lMCIQH290hX7m\nGaNpTZ/fKNW4afOacohTp+CRR2DbNl2KQKmmxGY1nczMTPr160e3bt3o3r07CxcuBKCgoACLxYK/\nvz9RUVEUFRVZ95k3bx5ms5nAwECSk5Ot29PS0ggODsZsNjNt2jTr9rNnzxITE4PZbCY8PJxDhw5Z\n30tISMDf3x9/f3+WLFliq9NUV2D3bqM5DYzmNE04SjUhYiO5ubmyY8cOERE5ceKE+Pv7y549e2T6\n9Okyf/58ERGJi4uTGTNmiIjI7t27JSQkREpKSiQ9PV18fX2loqJCRET69OkjqampIiIyYMAAWbdu\nnYiILFq0SKZMmSIiIomJiRITEyMiIvn5+eLj4yOFhYVSWFhofX0uG566uoS33xZp29b4r1Kq4bna\ne6fNajoeHh706NEDgJYtW9K1a1eys7NZs2YNEyZMAGDChAmsWrUKgNWrVzN69GicnZ3x9vbGz8+P\n1NRUcnNzOXHiBKGhoQDExsZa9zm3rOHDh7Nx40YA1q9fT1RUFK6urri6umKxWEhKSrLVqapaOH0a\nJk2C+fPhiy9g4kRHR6SUcgS7PNPJyMhgx44dhIWFkZeXh7u7OwDu7u7k5eUBkJOTQ3h4uHUfLy8v\nsrOzcXZ2xsvLy7rd09OT7OxswJgXrlOnTsaJODnRunVr8vPzycnJqbJPZVnnmzVrlvV1REQEERER\ndXbO6n/27DHmTuvZE779Flq2dHRESqnaSklJISUlpc7Ks3nSOXnyJMOHD2fBggW0atWqynsmk8m6\nQJwjnJt0lG0sXQpPPAFxcfDAA+DAP7dS6gqc/4V89uzZV1WeTbtMl5aWMnz4cMaPH8/QoUMBo3Zz\n5MgRAHJzc2nfvj1g1GAyMzOt+2ZlZeHl5YWnpydZWVkXbK/c5/DhwwCUlZVx7Ngx3NzcLigrMzOz\nSs1H2d7p0zB5MsyZA59/brzWhKOUslnSEREmT55MUFAQjz32mHV7dHQ0CQkJgNHDrDIZRUdHk5iY\nSElJCenp6ezfv5/Q0FA8PDxwcXEhNTUVEWHp0qUMGTLkgrJWrlxJZGQkAFFRUSQnJ1NUVERhYSEb\nNmygf//+tjpVdZ59+yAsDIqLjea04GBHR6SUqjfqpDvDRWzatElMJpOEhIRIjx49pEePHrJu3TrJ\nz8+XyMhIMZvNYrFYqvQqmzNnjvj6+kpAQIAkJSVZt2/btk26d+8uvr6+MnXqVOv24uJiGTlypPj5\n+UlYWJikp6db34uPjxc/Pz/x8/OTxYsXXxCfDU+9SVu2zOid9q9/ifzW+VAp1Yhc7b1TJ/xUdeLM\nGZg2DVJSjKUIQkIcHZFSyhau9t6p0+Coq5aRAbfeaiwpnZamCUcpVT1NOuqqbNgA4eEwYQKsWAHn\ndVBUSqkqdO41dUVE4B//MNa9SUwEHeKklKoNTTrqsp08aYy5SU835k77bXyuUkrVSJvX1GU5cMBo\nTmvZEjZt0oSjlLo8mnRUrX3yidFh4I9/NNa+ue46R0eklGpotHlN1aiiAv7+d/j3v2HVKiPxKKXU\nldCkoy7p2DGIjYWjR43ZBTp0cHRESqmGTJvXVLX27jWms/H0NJYj0ISjlLpamnTURX30Edx5Jzz9\nNLz2GjRv7uiIlFKNgTavqSrKy2HmTGNJgk8++d+y0kopVRc06SirwkIYM8aYR23bNvht1QmllKoz\n2rymANi1C3r3hsBAY2obTThKKVvQpKNITITISHj+eWNaG2dnR0eklGqstHmtCSsrgz//GT780Kjd\n9Ojh6IiUUo2dJp0m6uhRiImBa64xxt+4uTk6IqVUU6DNa03Q9u3G85vQUFi3ThOOUsp+tKbTxCxZ\nAk8+Ca+/DiNGODoapVRTo0mniSgthSeegPXrjSWlu3VzdERKqaZIk04TcOQI3H8/tG5trH/j6uro\niJRSTZU+02nktm41ZhW46y5YvVoTjlLKsbSm04j9+9/w//4f/Oc/EB3t6GiUUkqTTqN09ixMnQpf\nfWWs7hkQ4OiIlFLKYLPmtQceeAB3d3eCg4Ot2woKCrBYLPj7+xMVFUVRUZH1vXnz5mE2mwkMDCQ5\nOdm6PS0tjeDgYMxmM9OmTbNuP3v2LDExMZjNZsLDwzl06JD1vYSEBPz9/fH392fJkiW2OsV6KTvb\nmB06Px9SUzXhKKXqGbGRL7/8UrZv3y7du3e3bps+fbrMnz9fRETi4uJkxowZIiKye/duCQkJkZKS\nEklPTxdfX1+pqKgQEZE+ffpIamqqiIgMGDBA1q1bJyIiixYtkilTpoiISGJiosTExIiISH5+vvj4\n+EhhYaEUFhZaX5/PhqfuMF9+KdKhg8jcuSK/XT6llKpTV3vvtFlN54477uDGG2+ssm3NmjVMmDAB\ngAkTJrBq1SoAVq9ezejRo3F2dsbb2xs/Pz9SU1PJzc3lxIkThIaGAhAbG2vd59yyhg8fzsaNGwFY\nv349UVFRuLq64urqisViISkpyVanWS+IwCuvGONu4uPhmWfAZHJ0VEopdSG7PtPJy8vD3d0dAHd3\nd/Ly8gDIyckhPDzc+jkvLy+ys7NxdnbGy8vLut3T05Ps7GwAsrOz6dSpEwBOTk60bt2a/Px8cnJy\nquxTWdbFzJo1y/o6IiKCiIiIOjlPeyopgT/8AXbsgC1bwMfH0REppRqTlJQUUlJS6qw8h3UkMJlM\nmBz8dfzcpNMQnToFw4bBDTfA5s3QooWjI1JKNTbnfyGfPXv2VZVn13E67u7uHDlyBIDc3Fza/7Zo\ni6enJ5mZmdbPZWVl4eXlhaenJ1lZWRdsr9zn8OHDAJSVlXHs2DHc3NwuKCszM7NKzaexKCwEiwU6\ndoT339eEo5RqGOyadKKjo0lISACMHmZDhw61bk9MTKSkpIT09HT2799PaGgoHh4euLi4kJqaioiw\ndOlShgwZckFZK1euJDIyEoCoqCiSk5MpKiqisLCQDRs20L9/f3ueps3l5ho91Pr2hbfeAift+K6U\naijqpj/DhUaNGiUdOnQQZ2dn8fLykvj4eMnPz5fIyEgxm81isViq9CqbM2eO+Pr6SkBAgCQlJVm3\nb9u2Tbp37y6+vr4ydepU6/bi4mIZOXKk+Pn5SVhYmKSnp1vfi4+PFz8/P/Hz85PFixdfND4bnrpN\nHTwo4uMj8ve/aw81pZT9Xe290/RbIU2OyWSioZ36Dz/APffAs8/ClCmOjkYp1RRd7b1TG2YaiK1b\nYehQYznp0aMdHY1SSl0ZTToNwGefwZgxsHgxDBzo6GiUUurK6SzT9dwHHxgJ54MPNOEopRo+TTr1\nWHy8MXHn+vVwxx2OjkYppa6eNq/VUy+8AK++aqzy6e/v6GiUUqpuaNKpZ0SM3mkffWQsTdAIx7Uq\npZowTTr1SHk5PPoobNtmrIPTtq2jI1JKqbqlSaeeKCmB2FjIy4ONG8HFxdERKaVU3dOkUw+cPm0s\nS+DsDOvWwXXXOToipZSyDe295mBFRRAVBe3aGd2iNeEopRozTToOlJcHERHQqxe8/bZO3KmUavw0\n6ThIRgbcfruxHs7LL0Mz/UsopZoAvdU5wJ49xmDPP/0JZs7UpaWVUk2HNujY2bffwuDBxuDPceMc\nHY1SStmXJh07+vxzGDXKWHht8GBHR6OUUvanzWt2smqVkXDef18TjlKq6dKkYweLFxuLrq1bZywz\nrZRSTZU2r9nYyy8bC6998QUEBjo6GqWUcixNOjYiYvRMe/99Yx61zp0dHZFSSjmeJh0bqKgwukNv\n3gxffgnt2zs6IqWUqh806dSx0lKYOBGysowmtdatHR2RUkrVH5p06tCZMzBypDHYMykJrr/e0REp\npVT9or3X6sixY9C/P7i6wocfNqyEk5KS4ugQ6g29Fv+j1+J/9FrUnUaddJKSkggMDMRsNjN//nyb\nHeeXX6BfPwgJgSVLjCUKGhL9H+p/9Fr8j16L/9FrUXcabdIpLy/n0UcfJSkpiT179rBixQr27t1b\n58c5fNiYR23wYFi4UCfuVEqpS2m0t8hvvvkGPz8/vL29cXZ2ZtSoUaxevbpOj7Fvn5FwpkyB2bN1\n4k6llKqJSUTE0UHYwsqVK1m/fj1vvvkmAMuWLSM1NZVXXnkFAJNmCKWUuiJXkzYabe+1mpJKI821\nSilVrzXa5jVPT08yMzOtv2dmZuLl5eXAiJRSSjXapNO7d2/2799PRkYGJSUlvPvuu0RHRzs6LKWU\natIabfOak5MTr776Kv3796e8vJzJkyfTtWtXR4ellFJNWqOt6QAMGDCAH3/8kQMHDvDMM89Yt9tr\n/E59lJmZSb9+/ejWrRvdu3dn4cKFABQUFGCxWPD39ycqKoqioiIHR2o/5eXl9OzZk8G/LXTUVK9F\nUVERI0aMoGvXrgQFBZGamtpkr8W8efPo1q0bwcHBjBkzhrNnzzaZa/HAAw/g7u5OcHCwddulzn3e\nvHmYzWYCAwNJTk6usfxGnXQuxl7jd+orZ2dnXnrpJXbv3s3WrVtZtGgRe/fuJS4uDovFwk8//URk\nZCRxcXGODtVuFixYQFBQkLXzSVO9FtOmTWPgwIHs3buXXbt2ERgY2CSvRUZGBm+++Sbbt2/n+++/\np7y8nMTExCZzLSZNmkRSUlKVbdWd+549e3j33XfZs2cPSUlJPPLII1RUVFz6ANLEbN68Wfr372/9\nfd68eTJv3jwHRuRYQ4YMkQ0bNkhAQIAcOXJERERyc3MlICDAwZHZR2ZmpkRGRsrnn38ugwYNEhFp\nkteiqKhIunTpcsH2pngt8vPzxd/fXwoKCqS0tFQGDRokycnJTepapKenS/fu3a2/V3fuc+fOlbi4\nOOvn+vfvL1u2bLlk2U2uppOdnU2nTp2sv3t5eZGdne3AiBwnIyODHTt2EBYWRl5eHu7u7gC4u7uT\nl5fn4Ojs4/HHH+cf//gHzc6ZSqIpXov09HTatWvHpEmTuOWWW3jwwQc5depUk7wWbdq04cknn6Rz\n58507NgRV1dXLBZLk7wWlao795ycnCq9gmtzP21ySUcHhRpOnjzJ8OHDWbBgAa1atarynslkahLX\nae3atbRv356ePXtWO26rqVyLsrIytm/fziOPPML27dtp0aLFBc1HTeVaHDx4kJdffpmMjAxycnI4\nefIky5Ytq/KZpnItLqamc6/pujS5pKPjd6C0tJThw4czfvx4hg4dChjfXo4cOQJAbm4u7ZvAynOb\nN29mzZo1dOnShdGjR/P5558zfvz4JnktvLy88PLyok+fPgCMGDGC7du34+Hh0eSuxbZt27j11ltx\nc3PDycmJYcOGsWXLliZ5LSpV9//E+ffTrKwsPD09L1lWk0s6TX38jogwefJkgoKCeOyxx6zbo6Oj\nSUhIACAhIcGajBqzuXPnkpmZSXp6OomJidx1110sXbq0SV4LDw8POnXqxE8//QTAZ599Rrdu3Rg8\neHCTuxaBgYFs3bqVM2fOICJ89tlnBAUFNclrUam6/yeio6NJTEykpKSE9PR09u/fT2ho6KULq+sH\nUA3Bp59+Kv7+/uLr6ytz5851dDh2tWnTJjGZTBISEiI9evSQHj16yLp16yQ/P18iIyPFbDaLxWKR\nwsJCR4dqVykpKTJ48GARkSZ7LXbu3Cm9e/eWm2++We677z4pKipqstdi/vz5EhQUJN27d5fY2Fgp\nKSlpMtdi1KhR0qFDB3F2dhYvLy+Jj4+/5LnPmTNHfH19JSAgQJKSkmosv9FO+KmUUqr+aXLNa0op\npRxHk45SSim70aSjlFLKbjTpKKWUshtNOkpdhY8//rjGSWNzcnIYOXKknSK60KxZs3jxxRcddnyl\nzqW915Rq5GbPnk3Lli158sknHR2KUlrTUepiMjIyCAwMZNKkSQQEBDB27FiSk5O57bbb8Pf359tv\nvwVg8eLFTJ06FYCJEycybdo0brvtNnx9ffnggw+sZVVOE7948WKGDh1KVFQUXbp04dVXX+WFF17g\nlltuoW/fvhQWFgIQERFBWloaAEePHqVLly6XtX91Dhw4wN13302PHj3o1asXP//8MykpKfzud79j\n0KBBBAYGMmXKFF3OXdmMJh2lqnHw4EGeeuop9u3bx48//si7777L119/zQsvvMDcuXMvus+RI0f4\n+uuvWbt2LX/+858v+pndu3fz0Ucf8e233/Lss8/i4uLC9u3b6du3L0uWLAEuPb9VbfY/X2VZY8eO\nZerUqezcuZMtW7bQoUMHAL799lteffVV9uzZw8GDB/nwww8v61opVVuadJSqRpcuXejWrRsmk4lu\n3bpx9913A9C9e3cyMjIu+LzJZLJOD9K1a9dqZyHu168fLVq0oG3btri6uloXjwsODr5ouXW1/8mT\nJ8nJyWHIkCEANG/enOuvvx6A0NBQvL29adasGaNHj+arr76qMQ6lroQmHaWqce2111pfN2vWjObN\nm1tfl5WVXXSfys8A1TZRnV9u5e/nluvk5GRdDKu4uPiy979c59aqRKTJzqCsbE+TjlL1xLlJytvb\nm23btgGwcuXKy97/Yu+1bNkSLy8vVq9eDcDZs2c5c+YMAN988w0ZGRlUVFTw3nvvcccdd1zpaSh1\nSZp0lKrG+d/2z/298vX5z15qel3T5yt/f+qpp3j99de55ZZbyM/Pv+z9qzuXpUuXsnDhQkJCQrjt\ntts4cuQIJpOJPn368OijjxIUFISPj0+TmkFZ2Zd2mVaqiUtJSeHFF1/k448/dnQoqgnQmo5STVxT\nXgVT2Z/WdJRSStmN1nSUUkrZjSYdpZRSdqNJRymllN1o0lFKKWU3mnSUUkrZjSYdpZRSdvP/ASy8\nIDMBDnVTAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x115cd36d0>"
]
}
],
"prompt_number": 41
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"random_lcps = common_prefix.read('lcp.random.out')\n",
"# Break lcps into intervals such that all sequences in the interval\n",
"# have an lcp of at least min_lcp bp.\n",
"def getIntervals(lcps, min_lcp):\n",
" intervals = list(common_prefix.genIntervals(lcps, min_lcp))\n",
" intervals = [(s,e,e-s+1) for s,e in intervals] # Compute the number of sequences in the interval.\n",
" intervals = sorted(intervals, key = lambda t: t[2], reverse=True)\n",
" return intervals\n",
"random_intervals = getIntervals(random_lcps, min_lcp)\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print len(random_lcps)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"999999\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"Ms = np.arange(5, 100, 10)\n",
"m2intervals = {}\n",
"for m in Ms:\n",
" m2intervals[m] = getIntervals(random_lcps, m)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = Ms\n",
"y = [len(m2intervals[m]) for m in Ms]\n",
"plt.plot(x,y)\n",
"plt.title('Number of jobs vs minimum lcp for random sequences')\n",
"plt.xlabel('minimum lcp')\n",
"plt.ylabel('number of jobs')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 12,
"text": [
"<matplotlib.text.Text at 0x128d5ab90>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAaMAAAEXCAYAAAAAziuXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcVHXeB/DPEJg3LgIKOqOiMCOCeCMBLTeUBcpVJM28\n5a2eLC0fdM2X29Om0m5C22W1i7VrkIgl9lir5pOI2fJaS8VbZUkJKigMl4yLgsr9+/xBHLmIgDIz\nMPN5v16+nDmX3/md35yZL79zvud3VCIiICIiMiErU1eAiIiIwYiIiEyOwYiIiEyOwYiIiEyOwYiI\niEyOwYiIiEyOwaiDWbhwIV566SWTbX/RokVwdHREQEBAk3kfffQRQkNDW1VOYGAgYmJi2rt6RjFp\n0iTEx8e3+7LGtGXLFowfP77dy/3mm2+g1Wpha2uLPXv2tHv57S05ORn9+/c3dTWoFaxNXYGOzs3N\nDTdu3EBGRga6d+8OAPjggw/w0Ucf4d///ne7b0+lUkGlUrV7ua1x6NAhfPnll8jJyUHXrl2bzJ87\ndy7mzp3bqrJMuR9364svvjDIsuZgzZo1+O///m8sW7bM1FUhM8OeUSvU1NRg48aNRttee92HXFNT\n06blL168CDc3t1sGIiIAuHTpEry8vO5o3erq6haXaesxS+aDwagFKpUKzz//PF5//XVcuXKlyfzM\nzExYWVk1+BLVP0W1ZcsW3H///fjjH/+IXr16wcPDA4cPH8aHH36IAQMGwMXFBVu3bm1Q5q+//oqQ\nkBDY2dkhMDAQly5dUub9/PPPCA4OhpOTEzw9PfG///u/yryFCxdiyZIlmDRpEnr27Ink5OQm9c3J\nyUFYWBicnJyg1WrxwQcfAABiYmLw1FNP4ciRI7C1tUVkZGSTdRuf+jl8+DDGjBkDBwcH+Pn54ciR\nIw2WP3fuHPz9/WFvb4/w8HAUFRUBAMrKyvD444/D2dkZvXr1gp+fH3755Zcm23v11VcxY8aMBtMi\nIiIQERGh1Mfd3R12dnYYPHgwPv744yZlAMC6deswY8YMzJs3D3Z2dhg+fDjS09MRFRUFFxcXDBw4\nEAcOHFCWb/z5PfDAA1i1ahUcHR0xePBgJCYmNrtsWz7rxqcyG7evlZUV3nvvPWi1WtjZ2WHNmjU4\nf/48xo4dCwcHB8yaNQuVlZW33OfGzpw5oxw3rq6uiIqKUtrm0UcfxaxZs2BnZwdfX1+cPn36lmW4\nu7vjwoULmDJlCuzs7FBZWdns8VS/7Hnz5sHe3h5xcXFNyrzVMft///d/GDVqFOzt7TFgwIAGx2Ld\n923r1q0YOHAgevfujfXr1yvzb9y4gYULF8LR0RHe3t44fvx4g+399NNPCAwMRK9evTBs2DB8/vnn\nDeqydOlSTJo0Cba2thg/fjzy8vIQERGBXr16YejQofjuu++abeMVK1bAxcUF9vb2GD58OM6cOQMA\nKC8vx/PPP4+BAwfC1dUVS5YsQVlZmbLea6+9hn79+kGj0SA2NhZWVla4cOECgJaPkZZ+D5599llM\nnjwZdnZ2CAgIUMoFmj8mampqEB0dDQ8PDzg7O2PmzJlt/u7eEaHbcnNzky+//FKmTZsmf/7zn0VE\nZPPmzRIYGCgiIhkZGaJSqaS6ulpZJzAwUGJiYkRE5MMPPxRra2vZsmWL1NTUyJ///GdRq9Xy3HPP\nSUVFhSQlJYmtra1cu3ZNREQWLFggtra2cujQISkvL5eIiAh54IEHRESktLRUNBqNbNmyRaqrq+Xb\nb78VZ2dnSU1NVda1t7eXw4cPi4hIWVlZk/0ZP368PPvss1JeXi7fffed9O7dW7766isREdmyZYuy\nrVv58MMPlfkFBQXi4OAg27Ztk+rqatm+fbv06tVLCgsLRUTkwQcfFLVaLWfOnJFr167J9OnT5fHH\nHxcRkffff1+mTJkiN27ckJqaGjl16pRcvXq1yfYuXrwo3bt3l5KSEhERqaqqkr59+0pKSoqUlpaK\nnZ2dpKWliYhIXl6enDlz5pb1Xrt2rXTt2lWSkpKkqqpK5s+fLwMHDpT169dLVVWVbN68WQYNGtTs\n52djYyMffPCB1NTUyHvvvSf9+vVrl8+6/rqN21dERKVSSXh4uJSUlMiZM2ekS5cuMmHCBMnIyJAr\nV66Il5eXxMXFtfhZXb16VVxdXeXNN9+U8vJyKSkpkZSUFKVtbGxs5NNPP5Wqqip5/fXXZdCgQVJZ\nWXnLct3c3OTgwYPK+9sdT3Vl7969W0REbty40aS8Wx2zycnJ8uOPP4qIyOnTp8XFxUV27dolIje/\nb4sXL5aysjL5/vvv5d5775Wff/5ZRERWr14tv/vd76SoqEiysrLE29tb+vfvLyIiFRUV4u7uLlFR\nUVJZWSlfffWV2NraytmzZ5W6ODs7y6lTp6SsrEwmTpwoAwcOlPj4eOXznDBhwi3bJTExUXx9feXK\n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\niMjk/h/Yg0VOLPveswAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x102ec6dd0>"
]
}
],
"prompt_number": 12
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment