{ "metadata": { "name": "5x-kmer-abundance-distributions-2013" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "# configure paths etc.\n", "import sys\n", "import os\n", "os.environ['PYTHONPATH'] = '/usr/local/share/khmer/python'\n", "sys.path.insert(0, '/usr/local/share/khmer/python')\n", "\n", "import khmer\n", "import screed" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "cd /mnt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/mnt\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "# check out simulation code for making reads, from the diginorm paper repo on github\n", "!git clone git://github.com/ged-lab/2012-paper-diginorm.git\n", "!mkdir kmer" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "fatal: destination path '2012-paper-diginorm' already exists and is not an empty directory.\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "mkdir: cannot create directory `kmer': File exists\r\n" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "cd kmer" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/mnt/kmer\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "# build a random genome (8kb) with equal mixes of A/C/G/T\n", "import random\n", "random.seed(1)\n", "\n", "x = [\"A\"] + [\"G\"] + [\"C\"] + [\"T\"]\n", "x = x*2000\n", "random.shuffle(x)\n", "x = \"\".join(x)\n", "x" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 5, "text": [ "'CCACCCTTGGGTCCTTCCTGATGTGGCCACCCCAACCACCACATGTATTTACGAAGCTATCACCCTGGTTTAGGTAGCAATTTCCAACGGCCTAATAACCTTTCCTCGAGCATCGCCTTGGCTGTTACACACAGCGAGCAGCCTAGTCGTCCAGGTTTGGACGGTAGCGCGTTTGAATTTACCACAAAGAATCTGGTGAGCGATTTACTTAACATCATAGCGCTATGGACGCCTCATTCAGCCACAACCGAGTTTGACCAGGTCCACAGCTAGACCACCATTATCACATCGTTGTCTCACAAGTCTTGCAGCAACGTCAGTTGGGAAGTTGTAAGGTGAAGAAGACAAGCCGCCATGTGACACGGAGCTACTCTGTCAATCGTTGCGTCTATATAGACGAATTAGTAAGGAGTTCTTGTGGCGGGCTGTCTAGTTGCGGGGGACTGCTACCGGCGCGGCCTTCCCTCGAATGGGGATACTCTCCTCCTTTCTTGGTTACCCCTAACCCAAGACTGCGAGGCAGGCAATTCCACCTGCCCTCGTTGGAAGGTTAATTGGTAGGTATACCTGAGACAGATTGCACCGTATAGCACTTGTCATAGCAGGAGCGAGTAGGTAATATTCTTAAACCGTACGTACCAGAATGACATAACCCAATGTAGTGTGGCAGATTAAGCATGACACATCAGTGAGGGGCAATACGCACTTCATACTTGATTGTAGGGTTTTATTTGCCGGATTGGGATTAACTGAGTGTTACCACAACGCTAGTCCCGAAAAAAGGGAAGTGCACGTAGCCTCGTGTGCACCGATATTTTATAACCGAGGGAGGCAGCCTGTACATTGAGTCCAGCCTTGAAAAGGCTAGTTGAGTCCTTTCTACCGAATTTGTCTGACGGCGAAAAGGGCTCCTCTAACGCTCGTACGTATAGGAGTGCTGGTGATTCCAAAAACCAATCATTGTCACAACCGCCGTTGGCCTGCGCTGCGTTAGGCGTCATAACTCACTTCGCGGCGTGCTGTGTCATAGCCGAATCCTCCAATCTTTAAGAATGCGCGCTAATTTCCATCCCAGAGGGTGTTGGAGATGCACGAATAATAAAAGGTCGCGAGTCCAAACAAAGTTTACCGTTCGGTCGAGACGGTCAAGACTGCCACTAAAGAAGTCAATATTTCCTCGCCCTTCGACAATGGTTCGTGACAGGGCTATTGAGCAGTGGTGACCGCAGATTGATACAAGAAAACGCCACTCTAGCCAGACACGACCCGGTGCCCACCGTATGCAGGGCTGGGGGGAATGTTGAGGGATCGTGAAAGAAAATCACCTTGCCCCAGAACCGCAGTCAATTGTGCTCATTGAAACGTATCTGTCCAAAACTTAACGCCGACAGGGGTCGTCGCATAACGCCGCTAATAATCCGGGGCCACGGAGAGGCTGGGTCTGTATCTACCACCGACTAGAGAAGCGGGCATATGTGTCTTGTTTCGATCTTTCGTCGGTTATGTACTGTGAATTAAGCAAAAGCAAGCAGTAAGTGCGCGGAAGTGTATCCCCCGCCCCTGCTGTTACAACTCCTGATCTCGGTTCAGCATACGTATTCGCGGAAGTAAGCTACTAGGTTTACCATACGGGTTAGTGAAGGTACGTTTAATATATCCTTAATCGCTTGCAGCGAGTGGACACAGAAGCAAGGTCCGAGCATAACGGAGGATCAAGTATTAGAAGCTCAGGAAAAAAAGTACGCATCGATATATAGGGAAGGTGTCTTGCTTGCCGTGTTTCAGATTGCCAAGGAACCAGGAGTGCCCCATTTTCACCACTCTCTTGGAACTGTCAAGTCACTTATGCCGCCTTGCTCCCCGAAACGCGCATAAAAGGTGACAAAAGACGCGTGTAAAGGGCGCCAATGCACCAACGTTTTCTCCGGAGCTTGTCACCCATCGCCGAGGGCCAGTCGCCAACTCACCATCATCTTCATGAGGATTCACGCCCCGTACGGGGAGAGCGCACGGGAGCGGCCTGTTGCCGGTCTTACTCTTCACGATGTCGATTATAAGAAGGAGCTTGGAAGCTTGTGGCTTTGAGGTATGACAGACAATTTTGGATGCAAGTGTTAGCCATACAGGCTTTCAAGTGTTAATTCGTGTAGCGGGCAGTGAAAACGAAAGGTACGAGGGGTTATCTAGAATGAGTAGGGAAATTTGTATAAAGAGCAGTTGAAAGTTTGTGATGCTAATGTGACTGGGATCCGACCGAGCGGCTCATGGCAGAGAACGAATAAGTAAACTAAAGGGACCTGCATGACAGGAATGAGCAACTGACCAATCTTATGTTTAGCGTAATATTCTTTTGCCCCTGCATGAGATTCTGGTGTACTAGCACCGCTTATAGCCCGGTAGGACATCATCCATGGTCTGGCATCCAGGGAGGAGTCAACTACTCTAAGACCACCGCTCGGGCACCATCAGTATACTAATGTTGCACGAACAACAGTCGATCCCGGAACATGCACAGGGGTCTCCCTCGGTCCGTATCGGACATATTGAACGACTATCGGGGATGACCATTGCGTCCCAAGAGCACTATACCAGTTCCAATGTTGTCGGGGCACAGCCGCAGAACGGACTAGTAGCTTTCGGCAAAGAATCCCTAGACCTCACGACGCCTCCGACTGGGACCATTTGGCCTATAAAAAACATGTCAGCCACAATGGCTGCGACATGAATGGGTCGTAGAACTTTGCGTAGTAGCACATGGTAGTAGATCACACAGCCGGGTTCAGTGGCCCTATTTGACTGTTAACCCTCTGTTAAGTGTTCCCGAACACTAGTTCGGCTGTATTGACACTTGGGAATACGTTTGTAGGTTGAGCATTACGGTAGTTGTCCTTTACTGCCGGAGCAGAGGATCCTTCTATGTGTATCGTTCTGAATACTTGCTAAAAGATATAGACTTTTTCCTTTCACCGGGAGTGGTGCCTTGCAGCTAGCAGTGTGTCTTGGTCCTATGTGCAACTCTGCAAAGCCTCACGTGGCAGCAGGTATAGTCAGGAAAAGAGACAAGCACTGTCGGCACACCTACCTCGATATAAATGTACGCCAGTTGATGTGTGTCGCAGTGTAACAGGCAAAAGTACGTAAACGGCGTCGAACGGAGAAGCTGAGACCGCCTGTGTTTGATAGTACCTGCCGGCCTCTACCTGCTGAACTAGAAGGTAGCAACTACCTGTTCGTAAGCCCTCAGAGGTCCCAAACCGCCAAATCGTTAGTTTACAGCCCTATGCGCGGTTAGCCAGACGGGGACAGTGTGCTGTTTCCTTCCGCCATCTTTTTGCTTGATCGCCACGGGACCAAATCTTGGGGGCCTGGATCATATATACTTTACGGTACACAAACACTTGCATTCGGAGCATTAAACCAGAGTTGATCTGAAGTACAGGTGTACACTGTTTCCCGCTATTGCACCGGCGAGCGAGGCTGGCTCTCGGCCCGCATATTCATAAGTTTGGTCGAGGGCCCGTCGGTCATTCATCTTATTCTAGGTCCAAGAACGGGTAGCCACGGGGATTTCGCATATGTCTAGCATCGTTCCGTCGGCAAGCTCAAGGACCGCCTATAGTTCCCAAACATAACCTGAGTCGTTGCTCATAACATAAAGTAGAGATTGCGGTCTTACCATCTAATAACTTGTTTATCTTGACCTGGGGGACATGCCCAAAGTCCTTCAGGGTTTCGCCGACTGCTGATTACAAGCTATCCCATCCCAGTAAGACTAGATGCAGGTAGGAGTTTAAATCGGTGTCTTTTTCAACGAGAAGTCTGGGTCGTGCCTGCCGCCCCCGGATTTGATAAGCTCCTGTGCCTCAAAGGGGTTACTTGAGGCTACCTTATTTTGCACCGACCTTGAGCGTCCTAACGTGGCGGGTCAATATACTGAACGTTCTAATTCGCGACATAGTGTCAACCGACTGTAGTGCGGGAGTTTAGGACTTATACTCTAGCGCCATCGTGCATTGAAGCCAACTTAGCCATCTTCAAAAACTACCCCAAAGAGTTCGAGAGAAACGCCACGCCCTTAACCACTTCTAACGCAAAGGAGTCATTATCCCTCCCCTGTTCCGGCACTGGCTTCATTTTAAGCGCCTGTCTCTATCTGGGGTGCTCGTCCGGAGCAACATAAGGGTGTGTGACGAGAGTTAAGCCCCCTAACCTTGAGACAATGTATTTCAGCTCTACCGGTCCGGTAACCCTGTAGGATGGCACGCTGTGTGTCCGGGTGCCTTTTAAGAACTCGCGAGATTTCCTCTCACAGCTAGACTTGCAGATAATTGGTTGGCCCCGAGTCTGCGCATTTTGATAGGGTATGCTACTCTTAACTGCAAGGATTTACGAGTTCCGATACGTGCCCCTCTTTACTTGTTCAGGGGGCATACCCGTTGCTACGCCGCTAGAATTGCCCCTCAAGGAGAAGAATCCGCCAGTGCATATCGAGTTAGATTAAACGTAATCAGGGCACCGGAGGAACTATACGTGCTGCTCACACGGGCCGTCCGAGCGTATGCCGTTCAATGGTCCATCTTCTGATAACATGGCGCAATCTAGGATGGCGGCATCTGTCCTTCGGTTTACTAGCCAGGAGGCGCTGGAGACGTGTCGATCGAAAAAGCCTAGTATTCCCGCGGGGCCCTGGAATAAGAGGCTCCCTTGAGCCGTTAGGACGGTAAAACGGACGCCCCTTTCGACTCATAGTTGTAGCGGGGAGGCACGCTGGGCCGGAGTGCACGACTACTAAGGACAATAAGCTACCTGTTGGCGCAGTTTGAGCGTCGCTCTGCAAGGCTGATGAGCACCGTCCAGCGGTACCTCCGATTCGTCCAGTTTTGACCGAAATAACACCGATTCACTCAAGTACTCGGATTAAATTAGACTCTAACTTCCGAACATGCCCTCGGAGTTGCAAAACATCTTTGGATCCAATAAGGATTTGTAGGACCCGACCACTAGGACCATCTGAAAAACGAAATTGAGGAAGACCGCTCAGTCGGTAATCGTACCCACTAAAAATGTGGGCGACAGTTCAGCCCTCCGGTTTCCCTATCCTATGATCTGTTGCAAGTTGGTGTAGATTAATCCAGCAGGGACAGATTGCGTACCTCACGGTAGGCATGGAAAAGTGCTTCACTAAGGGGAAGTTTCCTGGATATTGAAGGCCGTATGGCAATAGTCGAAGTGAAGAGAAACCTCCCCGTCCACCTTAGCCACACCCGAAAGTGAGGGTCCTGAACTTGTCGTTTGCGGATTGGCTAGCAGACGACATAGGGCTGCAGTGACGGTCGTGTCGGGGCCAGCCGCGGGTTTTTTGGCTTGCCTCGGATAGTAGTGTCGTAGAAAGCGCACGAGCGGCTGTGGCTCCAAAGTAAGAAGGCAAAGCGGTATAACACAATCACACTATCACCATTAACAGGGACTTAAACCGAGAAAGTTCATTTGTCATGAACCCCAGTTTCAACGTTTCCTACCGTCTCCTATACCTCTTCTTGAGGCATGTCAGTGAGCGATTGACCTTTACCCTGGTGATTATTGTCACACGGTTTGGGGTACTTAACTTGCCACATATTACTTCGGAACTCTTCCAATCAGAAGGAAAGGTCACTTGGGTTCTAGATAGTAAGTCAACCAGTATTGGATGATGAGTCAAGATCTGGTAAGTCCGACCGAGCGGGTCGACCGCTGTAGGTATCCCTTACTTCCCGACAGTTTGGCACATGGTCCTCCCGATCTAACTCGGACTGCCCAGGGTTAAGCAAAATATCTGGATGGACAGAACATAGACGTACTGACACTTCGGGTCTAATTAACGTAGCGTATGTTGCTACTGTCGATACAGCAATCTGGCTAGTCTGGACTAGCGGACAGGGTACCAATCCACGGGTCGTAGCAAAACATTCTAACACAGAAAGATGATAGTCTTTGCTCGGGCTTTCAAGATGAGCGGATGCCATGCGAGCAAAAGAGGTAATAGCCAGAGTAGCCGTGAGAAAGAAAGGTTCTGCCGACGTGCATAGTGCATAGAAAGTTAGTACAACCGTATCCTTCGCCGCTCTGACCATGCTCCCAAAGGTAAGCTTACTCGGGCTACGCCGTAATAAGACACGCTTATTGTAAGCGTTTGTGGCAACTGTATCGGATAGCCGTTGTCTAGAGGGCTGCTACGCGGCTATTGACCGACCGCTAGGTATGGATTCCGGTATGGGGGCGAACAATAGATCCGTCCATAACCCTACCGCTACAATGGACACTTCGGATCGGTGGTCATGTTTCTGGCAGGTACATTGATCTGCGGAGGACAGTTGGGATTCGTAAAATACGAACCGTCGTCGCAGATCCTACATTATTCTCGAGCACGCGGAGACGACTAGCACCTAGATCCCACGCAGTCGGGCTGACCGATATTGCTCTTCAAGAGGGCCTGCGATCGTGTCCCTATCCTTCGGAGAGCGCTACGGGACAAGTGCCACAAGGTGAATCATTGGCCCGGTCTCACCACCGATGAAAATGGCACTCCCCCTATCCGGTATATTCATAGTACTTTTAGGCGTGGTAAGCAACACATCTCTAGAAGAAAGGTAGAACAGTGCTTTAGACCCTAGATTCTAGACCCCTGTATTGGGCACCCCGTGTGTAGAAAAGCGGTTACGTCAAAAACCCTTCTTTGACCATAATCCCCCGCTCCGACTCGATGCGCACCGCTACGGGAATGTCCCCTGCAAGTTGAGGCGACGGGGCAAATAAAGAGCTGCTTCGAGTAGTGTGAGCTGGTCGCCAGTATTGCCTCTGTTGGATATAGAAACCGGTCCCCTTCTAAATAATGTTCGCGATATCAGGGCGGGCCCTATAATTTAGCAACCACATCTGTACAGCCATCTACGTTAGTTTAAATAGTCAGAGCCATCTTGGAGTCTATAACATAGCACTCCGAGCGGTCACTATAACCTTACTGACAACATCGGACAAACCTGTCCACCGATTCAATGACGTTCGCTGTAGATTTAGAGGGATGTAAATGCGCAGTAATTGAGTGTCTTACAGCCCTTCTGTTGTCAAGGTGCCATAGACTTTATTTCGGCTGTTCTGTGCAACTCGTTCGCTGTACGAACGATCCACACCGGCCGGTCTATCGGACGGGACTCTGATGGTTCACCGTTATAAACATGATCTGGACCCGTTCCTCCCCGACTTACCCAGTGGTCGGTTATAACCAGCGGTTCTTTAACTAGTCTGACACCCCTGATTATATGGTCAAGCTCCCAGGAGGCGTTAATTCGTTTAATAGTCAATTCACACAACCCTGTTACAATATCCTCCGTAAACAACAGCAGTTTCTCAAATGTGCAATAGTGAGAGAATTGCTTGGCGCGCAAAGCATGAAACGAGGCGCATTCACGCCAGACTTCCCGTCTCAACGGTCCACAACTCGGACCGGAGGCTCTTCAAGTCTTACTCGCATCTCGACTTAAGAGGCCTTACTTCACCGCCGGTTCCTGGTATAATCGGTACTGGCTATCATTACGGCTCACTGGCAAATTGTTCCCCGTCCTGATGTAGGTCTGAAACTCCCCGGGTCGGCTTTTGTGTATGGGCCGTACGTTGCTAACCCCGGGTTCTCACTTATTAATTTACGTGGTTTTGTTACACAGCACCTCGTTGCCGCAGACTATGGCGTGTAGTTCTCCGAACGGCGCTCTTCTGTTGCGTATTATCATGTTTGATTAGCCCAGACAGCTGCGTACTCTGCGGTGGCGACTTTCGTCTAAAGGCATCGTTGATCCCCACATCCGGCGGATTGAGATCTGCACGTGGATTTCCATTCGGAGCTTCATCCCAAGCACATGTAAGCGATCTTTGCTGGCTCGACTCTGCTCGCAATACTCATGTGGAAGCAACTCAGCTGAGAGATCAATGTCTAGTTGACTTCTAATTATCCGAAGGGCCAAGGTACC'" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "# write the genome to disk\n", "fp = open('genome.fa', 'w')\n", "fp.write('>genome\\n')\n", "fp.write(x)\n", "fp.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "# make reads at 200x coverage, 1% error. note, errors are indicated by lower case.\n", "!python /mnt/2012-paper-diginorm/pipeline/make-reads.py genome.fa > reads.fa\n", "!head reads.fa" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10073 of 16000 reads mutated; 16150 total mutations\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ ">read0\r\n", "AATTTCCATCCCAGAGGGTGTTGGAGATGCACGAATAATAAAAGgTCGCGAGTCCAAACAAAGTTTACCGTTCGGTCGtGACGGTCAAGACTGCCACTAA\r\n", ">read1\r\n", "GGATGGCACGCTGTGTGTCCGGGTGCCTTTTAAGAACTCGCGAGATTTCCTCTCACAGCTAGACTTGCAGATAATTGGTTGGCCCCGaGTCTGCGCATTT\r\n", ">read2\r\n", "GCGACATGAATGGGTCGTAGAACTTTGCGTAGTAGCACATGGTAGTAGATCACACAGCCGGGTTCAGTGGCCCTATTTGACTGTTAACCCTCTGTTAAGT\r\n", ">read3\r\n", "GTTGTTCGTGCAACATTAGTATACTGATGGTGCCCGAGCGGTGGTCTTAGAGgAGTTGACTCCTCCCTGGATGCCAGACCATGGATGATGTCCTACCGGG\r\n", ">read4\r\n", "TGTTCCCCGTCCTGATGTcGGTCTGAAgCTCCCCGGGTCGGCTTcTGTGTATGGGCCGTACGTTGCTAACCCCGGGTTCTCACTTATTAATTTACGTGGT\r\n" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "# build a database of all k-mer counts. See http://khmer.readthedocs.org/en/latest/ for documentation\n", "!python /usr/local/share/khmer/scripts/load-into-counting.py -x 1e8 -N 4 -k 20 counts.kh reads.fa\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r\n", "PARAMETERS:\r\n", " - kmer size = 20 \t\t(-k)\r\n", " - n hashes = 4 \t\t(-N)\r\n", " - min hashsize = 1e+08 \t(-x)\r\n", "\r\n", "Estimated memory usage is 4e+08 bytes (n_hashes x min_hashsize)\r\n", "--------\r\n", "Saving hashtable to counts.kh\r\n", "Loading kmers from sequences in ['reads.fa']\r\n", "making hashtable\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "consuming input reads.fa\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "saving counts.kh\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "fp rate estimated to be 0.000\r\n", "DONE.\r\n" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "# count all k-mers in the database and extract a k-mer distribution\n", "!python /usr/local/share/khmer/scripts/abundance-dist.py -s counts.kh reads.fa reads.dist\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "hashtable from counts.kh\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "K: 20\r\n", "HT sizes: [100000007, 100000037, 100000039, 100000049]\r\n", "outputting to reads.dist\r\n", "** squashing existing file reads.dist\r\n", "preparing hist...\r\n" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "# in the dist file,\n", "# column 1 is the k-mer count\n", "# column 2 is the number of k-mers with that count\n", "# column 3 is the number of k-mers with less than or equal to that count\n", "# column 4 is the fraction of total k-mers with less than or equal to that count\n", "!head reads.dist\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0 0 0 0.0\r\n", "1 131282 131282 0.805\r\n", "2 21148 152430 0.934\r\n", "3 2552 154982 0.95\r\n", "4 210 155192 0.951\r\n", "5 14 155206 0.951\r\n", "6 1 155207 0.951\r\n", "7 1 155208 0.951\r\n", "8 1 155209 0.951\r\n", "9 3 155212 0.951\r\n" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "# read in the numbers\n", "dist = numpy.loadtxt('reads.dist')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "# plot the first two columns\n", "plot(dist[:,0], dist[:,1])\n", "xlabel('k-mer abundance')\n", "ylabel('# of k-mers with that abundance')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 12, "text": [ "" ] }, { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAZsAAAEKCAYAAADEovgeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcVGX+B/DP4AW8oIYlWjAgyA6MqAw4DF6IyVrFVoG0\nVittFTbLMHNzS/anrbj5S81akX2t141u5iU1dstfyuZlBE1mIC1tGF1NySsIYjLcSZ/fH8RZUcaR\nyxwQPu/Xa14xz7l9z1mWr9/nPOc5CiGEABERkQM5tXQARETU9jHZEBGRwzHZEBGRwzHZEBGRwzHZ\nEBGRwzHZEBGRwzV7somNjYW7uzsGDRp027J3330XTk5OKCoqktqSk5Ph5+cHtVqNAwcOSO0WiwXB\nwcHw8fHB/Pnzpfbq6mrExcXBy8sLer0eeXl50rKtW7dCpVJBpVJh27ZtzX1qRETUSM2ebKZPn45d\nu3bd1n7u3Dl89dVX8PLyktouX76MVatWYc+ePVi9ejVmz54tLZs7dy7mzZuHrKws7N+/H9nZ2QCA\n1NRUXLt2DRaLBZGRkVi8eDEA4MaNG0hISMD27duxdetWJCQkNPepERFRIzV7sgkPD8d99913W/ur\nr76Kt99+u06b0WhEZGQklEolIiIiIIRASUkJAODEiROYNGkSevfujQkTJsBoNErbTJkyBV27dsWM\nGTOkdrPZjMDAQAQGBmLw4MFQq9Uwm83NfXpERNQIstyz+de//gUPDw8MHjy4TrvJZEJAQID0XaVS\nwWg04tSpU+jTp4/UrlarkZmZKW2jVqsBAG5ubsjPz0dFRQWMRqPUfus2RETUsjo6+gBlZWV46623\n8NVXX0lttTPk1DdTjkKhuK1NCCG1CyHqbHen2Xbq29ed2omIyLamzG7m8Mrmhx9+QG5uLoYMGYL+\n/fvj/PnzCAkJQX5+PnQ6HXJycqR1jx8/Dq1WiwEDBiA/P19qz8nJgU6nA4A62xQVFcHd3R0uLi63\n7evmbepTm7T4adpn4cKFLR5DW/rwevJ6ttZPUzk82QwaNAj5+fk4c+YMzpw5Aw8PDxw+fBju7u4I\nDQ1FWloazp49C4PBACcnJ7i6ugIA/P39sXnzZhQWFiI1NbVOstmwYQNKS0uxbt06hIWFAajpNvv+\n++9x7NgxHD16FGazGQMHDnT06RER0V1o9m60p59+Gvv378eVK1fg6emJv/zlL5g+fbq0/OYuLHd3\nd8ycOROjRo1C586dsXbtWmnZO++8gylTpuBPf/oTJk+ejKFDhwIAnnjiCezatQsBAQHw8fHB5s2b\nAQAdOnTAkiVLMHHiRADA0qVLm/vUiIiokRSiOeqje4xCoWiWspAAg8EAvV7f0mG0GbyezYvXs/k0\n9e8mkw0REdnV1L+bnK6GiIgcjsmGiIgcjsmGiIgcjsmGiIgcjsmGiIgcjsmGiIgcjsmGiIgcrt0m\nm2eeaekIiIjaj3abbM6fb+kIiIjaj3abbK5fb+kIiIjaj3abbG7caOkIiIjaDyYbIiJyuHabbNiN\nRkQkn3abbFjZEBHJp90mG1Y2RETyabfJhpUNEZF82m2yYWVDRCSfdptsWNkQEcmn3SYbVjZERPJp\nt8mGlQ0RkXyYbIiIyOHabbJhNxoRkXyaPdnExsbC3d0dgwYNktpee+01BAQEIDg4GHPmzEF5ebm0\nLDk5GX5+flCr1Thw4IDUbrFYEBwcDB8fH8yfP19qr66uRlxcHLy8vKDX65GXlyct27p1K1QqFVQq\nFbZt23bHOFnZEBHJp9mTzfTp07Fr1646baNHj4bZbEZ2djZKS0uxceNGAMDly5exatUq7NmzB6tX\nr8bs2bOlbebOnYt58+YhKysL+/fvR3Z2NgAgNTUV165dg8ViQWRkJBYvXgwAuHHjBhISErB9+3Zs\n3boVCQkJd4yTlQ0RkXzsJpvKykps2bIF8fHxAICTJ09ix44dNtcPDw/HfffdV6ft17/+NZycnODk\n5IQxY8Zg//79AACj0YjIyEgolUpERERACIGSkhIAwIkTJzBp0iT07t0bEyZMgNFolLaZMmUKunbt\nihkzZkjtZrMZgYGBCAwMxODBg6FWq2E2m23GycqGiEg+He2tsHDhQgghYDAYAAAPPvggnnzySYwb\nN65RB1y/fj1+//vfAwBMJhMCAgKkZSqVCkajEV5eXujTp4/Urlar8cknnyA+Ph4mkwkvvPACAMDN\nzQ35+fmoqKiA0WiEWq2us01mZiYGDhxYbxxWayISE2t+1uv10Ov1jTofIqK2yGAwSH/3m4PdZLNv\n3z4YjUb8+9//BgB069YNQohGHewvf/kLXF1d8dRTTwFAvftRKBS3tQkhpHYhRJ3t7hRLffuq5eLy\n32RDRER13fqP8EWLFjVpf3a70VQqFa5duyZ9z8zMhEajafCBPvjgA6SlpWHDhg1Sm06nQ05OjvT9\n+PHj0Gq1GDBgAPLz86X2nJwc6HS627YpKiqCu7s7XFxcbtvXzdvUh91oRETysZtsXn75ZcTExOD8\n+fN45JFHEBsbW+dG/t3YtWsXli9fjs8//xwuLi5Se2hoKNLS0nD27FkYDAY4OTnB1dUVAODv74/N\nmzejsLAQqampdZLNhg0bUFpainXr1iEsLAxATbfZ999/j2PHjuHo0aMwm802u9AADhAgIpKVuEvZ\n2dnCZDLZXW/y5MmiX79+olOnTsLDw0O89957YsCAAUKpVIqgoCARFBQkZs6cKa2flJQkfH19RUBA\ngEhPT5fazWaz0Gg0wtvbWyQkJEjtVVVVYvr06cLT01NERESIS5cuScu2bNki/Pz8hJ+fn/j0009t\nxghAdO16t2dOREQNSBf1UvyyE5s+++wzjBo1Cr169QIA/PTTTzAYDIiJiZEhFTqGQqGAs7NARUVL\nR0JEdG9QKBSNvl8PAHaTzZAhQ/Ddd9/VaQsKCsK3337b6IO2NIVCgU6dBKqqWjoSIqJ7Q1OTjd17\nNi4uLigrK5O+l5WVoUOHDo0+YGvBezZERPKxO/T5qaeewsyZMzFz5kwIIbBmzRpMnjxZjtgciqPR\niIjkY7cbrby8HFu2bMG2bdsghMCTTz6JyZMno0uXLnLF2Oxqnr8RuH4dcGq3U5ESEd09h9+zaYtq\nk011NdDRbm1HRERNTTZ2/9SeOXMGH3/8MQ4dOoSKX4ZvKRQK7N27t9EHbS3YlUZEJA+7lc24ceMw\nbNgwjBo1Cp06darZSKFASEiILAE6Qm1lU1YG3MO9gUREsnF4ZXP27Nk7zvJ8L2NlQ0QkD7uVzdKl\nS1FeXo7nnnuuzqsD3NzcHB6co9RWNteuAT16tHQ0REStn8MHCHh7e9c7e/KZM2cafdCWVptsrl4F\nfpkYgYiI7oCj0RqhNtkUFgK9e7d0NERErZ/D79kAQGlpKfbu3YurV69Kbc8991yjD9pa8J4NEZE8\n7D7SuH79ejz66KOIi4tDamoqZs2ahbS0NDliczgmGyIiedhNNu+//z7S09PxwAMPIDU1FdnZ2Sgo\nKJAjNofj/GhERPKwm2yqq6vRuXNneHt748KFC/D19cW5c+fkiM3hWNkQEcnD7j2boUOH4urVq/jd\n736H8PBwdOrUCRMnTpQjNodjZUNEJI8GjUazWq24evUqlEqlI2NyuNrRaKdPA/37t3Q0REStn8NG\no33zzTf1Pl8DAIWFhQgODm70QVsLVjZERPKwmWzmzp0LhUKBqqoqHDp0CEqlEgqFAj/++COGDx+O\nAwcOyBmnQ/CeDRGRPGwOEDAYDNi3bx88PT3x1VdfITc3F2fOnMHu3bvh4eEhZ4wOw8qGiEgedkej\nHT16FCNHjpS+jxgxAseOHXNoUHJhZUNEJA+7o9GefvppPPPMM3j22WchhMDmzZvbxGuhASYbIiK5\n2K1s5s2bh2effRY7d+5EWloannnmGcybN8/m+rGxsXB3d8egQYOkNqvViujoaCiVSsTExKCkpERa\nlpycDD8/P6jV6jr3gSwWC4KDg+Hj44P58+dL7dXV1YiLi4OXlxf0ej3y8vKkZVu3boVKpYJKpcK2\nbdvsnjy70YiIZCKaWXp6ujh8+LAIDAyU2pYtWyZmzZolKioqRHx8vFi+fLkQQoj8/HyhUqnEjz/+\nKAwGg9BoNNI2Y8eOFZs3bxaFhYVixIgRIisrSwghxJYtW8TEiRNFaWmpWLJkiYiPjxdCCHH9+nXh\n4+Mjjh07Jr777jvh6+trM0YAAhDim2+a++yJiNqmpqYLu5XNkSNHEBsbi4CAAPTv3x/9+/eHj4+P\nzfXDw8PrvPcGAEwmE+Li4uDs7IzY2FgYjUYAgNFoRGRkJJRKJSIiIiCEkKqeEydOYNKkSejduzcm\nTJhQZ5spU6aga9eumDFjhtRuNpsRGBiIwMBADB48GGq1Gmaz+Y7nxsqGiEgedpPNnDlz8Oijj2LP\nnj3IyspCVlYWTCZTgw6SlZUFf39/AIC/v7+0vdFoREBAgLSeSqWC0WjEqVOn0KdPH6ldrVYjMzMT\nQE3iUqvVAGpe4Jafn4+KigoYjUap/dZtbOE9GyIiedgdIFBaWorJkyejQ4cOjT6IaMBTp/U9SCqE\nkNqFEHX2d6d923ootUYi1q0Ddu4E9Ho99Hr9XcdIRNTWGQwGGAyGZtuf3WQzfvx4PP/883j22Wfr\ndI81ZAYBrVYLi8UCjUYDi8UCrVYLANDpdNi9e7e03vHjx6HVauHq6or8/HypPScnBzqdTtomJycH\nKpUKRUVFcHd3h4uLC3Q6Hb744os620ydOvUOUSVi+nTgplHdRET0i1v/Eb5o0aIm7c9ustm3bx8U\nCgUWL158W/vd0ul0SElJwdtvv42UlBSEhYUBAEJDQ/Haa6/h7NmzOH36NJycnODq6gqgprtt8+bN\neOyxx5CamoqkpCRpXxs2bMDo0aOxbt06aV9qtRrff/89jh07BiEEzGYzBg4ceMe42I1GRCSTpo5Q\nuNXkyZNFv379ROfOnYWHh4dISUkRxcXFIioqSnh6eoro6GhhtVql9ZOSkoSvr68ICAgQ6enpUrvZ\nbBYajUZ4e3uLhIQEqb2qqkpMnz5deHp6ioiICHHp0iVp2ZYtW4Sfn5/w8/MTn376qc0Y8ctotL17\nm/nkiYjaqKamC7uzPi9atEia7fPmeyB//vOfHZwGHad21ufdu4FHH23paIiIWr+mzvpsdzRat27d\n0K1bN3Tv3h0VFRXYsmVLnfsp9zIOfSYikkeD3mcDAEVFRYiOjkZGRoajYnK42spm504gMrKloyEi\nav0cXtncqry8HMXFxY0+YGvCyoaISB52R6PdPMdZZWUlbty4cdvItHtRhw4cjUZEJBe7yab22RWF\nQgEXFxe4u7s7PCg5dOzIyoaISC52u9G8vb3RvXt3HDhwAHv27MGVK1fkiMvhOnViZUNEJBe7yeaT\nTz7BsGHDcOjQIXz99dcYNmwYPvnkEzlicygmGyIi+djtRlu+fDkyMjLQt29fAEB+fj7GjBmDZ599\n1uHBORK70YiI5GO3snFzc0N5ebn0vby8HG5ubg4NSg6sbIiI5GOzsnn55ZcBAA888ABCQkIQHh4O\nIQQOHDiAX//617IF6CisbIiI5GMz2YSEhEjT04wdO1ZqnzBhgp2p++8NrGyIiORjM9lMmzZNxjDk\nx8qGiEg+dgcI5ObmYu3atUhLS8PVq1cB1Dxzc/r0aYcH50isbIiI5GN3gMDChQuh0Wjw888/IzU1\nFY8//jhmzJghR2wO1bEjkw0RkVzsJpujR4/it7/9LRQKBQYOHIikpCRs2rRJjtgcit1oRETysduN\n1qVLF1y/fh0RERF466230L9/f3Tv3l2O2ByK3WhERPKxW9kkJSWhrKwMCxYsgBACGRkZWL16tRyx\nORQrGyIi+TT4fTZtgUKhwKhRAlFRwCuvtHQ0REStn+zvs2krWNkQEcmn3SYb3rMhIpKP3WRz4MCB\n29oOHjzokGDkxMqGiEg+dpNN7RxpN5s1a5ZDgpETn7MhIpKPzaHPte+vKSgowF//+lfpxlBBQQF6\n9+4tW4COwm40IiL52KxsqqqqYLVacf36dVitVlitVpSUlMDf3x8fffRRow62fv16DB8+HCEhIZgz\nZw4AwGq1Ijo6GkqlEjExMSgpKZHWT05Ohp+fH9RqdZ3uPIvFguDgYPj4+GD+/PlSe3V1NeLi4uDl\n5QW9Xo+8vDybsbAbjYhIRsKOM2fO2Fvlrly5ckV4e3uLkpIScf36dTF27Fixa9cusWzZMjFr1ixR\nUVEh4uPjxfLly4UQQuTn5wuVSiV+/PFHYTAYhEajkfY1duxYsXnzZlFYWChGjBghsrKyhBBCbNmy\nRUycOFGUlpaKJUuWiPj4+HpjASCmTxdi4cJmOTUiojbvLtLFHdmdQaBHjx71TsS5d+/eBiW1Ll26\nQAiBa9euAQDKysrQq1cvmEwmLFiwAM7OzoiNjcWSJUsAAEajEZGRkVAqlVAqlRBCoKSkBN27d8eJ\nEycwadIkADWvPDAajRg6dCiMRiOmTJmCrl27YsaMGRgzZozNeDp1YmVDRCQXuwMEFixYgGvXriEn\nJwevvPIKevXqhYiIiAYfqEuXLli9ejW8vb3Rt29fjBgxAjqdDllZWfD39wcA+Pv7w2QyAahJNgEB\nAdL2KpUKRqMRp06dQp8+faR2tVqNzMxMAIDJZIJarQZQ84bR/Px8VFZW1hsP79kQEcnHbmVz6NAh\nrFq1Ch9//DGioqIwevRohIeHY+HChQ06UEFBAWbOnImcnBzcd999eOqpp7Bjx44GPZFa30vbhBBS\nuxCizv7utO/s7ER07AgkJgJ6vR56vf6u4yAiausMBgMMBkOz7c9usnF2dgYAhIWF4YMPPsCAAQMa\nNWWByWRCWFgYBgwYAAB46qmnkJGRAa1WC4vFAo1GA4vFAq1WCwDQ6XTYvXu3tP3x48eh1Wrh6uqK\n/Px8qT0nJwc6nU7aJicnByqVCkVFRXB3d5fiv1V4eCIUippkQ0REdd36j/BFixY1aX92u9Hmz5+P\nn376Ca+//jrS09Px5ptv4t13323wgcLDw5GdnY2ioiJUVlZi586dGD16NHQ6HVJSUlBeXo6UlBSE\nhYUBAEJDQ5GWloazZ8/CYDDAyckJrq6uAGq62zZv3ozCwkKkpqbWSTYbNmxAaWkp1q1bJ+2rPhyN\nRkQkoyYOUGiQ999/Xzz88MNi6NChYsGCBeL69euiuLhYREVFCU9PTxEdHS2sVqu0flJSkvD19RUB\nAQEiPT1dajebzUKj0Qhvb2+RkJAgtVdVVYnp06cLT09PERERIS5dulRvHADEggVCzJnjuHMlImpL\nmpou7M76XFRUhB07duDQoUOoqKgAUHPvJCUlRYZU6BgKhQKLFglcuQKsXNnS0RARtX5NnfXZ7j2b\nWbNmoVu3bhg1ahQ6deokHfRex240IiL52E023333HcxmsxyxyIpDn4mI5GN3gMDkyZPx3nvvSV1o\nbQUrGyIi+disbLp37y51l5WWlmLmzJnSMGKFQoHi4mJ5InQQVjZERPKxmWxunhCzLWJlQ0QkH7vd\naI8++uhdtd1r+D4bIiL52KxsysvLUVZWhoKCAhQVFUntly9fhtVqlSU4R2I3GhGRfGwmm7Vr12Ll\nypW4ePEiQkJCpHYvLy/pXTT3sg4d2I1GRCQXuw91JicnY/bs2XLFIwuFQoGNGwU+/xzYtKmloyEi\nav2a+lCn3Xs2bS3R1HJyYmVDRCQXu8mmrerQgfdsiIjk0m6TDSsbIiL52J2uBgCqq6tx+PBhVFZW\nSi8re/jhhx0dm0OxsiEiko/dZJOcnIzly5dDrVajc+fOUvu9nmxY2RARycduslm3bh1ycnKkF5e1\nFU5OrGyIiORi956NUqlsk1PXsBuNiEg+Niubl19+GQDQs2dPBAUFYfTo0ejVqxeAmvHWycnJ8kTo\nIOxGIyKSj81kExISIs36PGbMGAD/fainLbw8jZUNEZF8bCabadOmAQCSkpJum54mKSnJoUHJgZUN\nEZF87N6z+fDDD++q7V7DyoaISD42K5tNmzZh48aNOHPmDMaPHy+1FxQUYODAgbIE50isbIiI5GMz\n2QwfPhz9+vVDQUEB/vjHP0oTsHl5eaF///6yBegorGyIiORjM9l4eXnBy8sLmZmZcsYjGz5nQ0Qk\nH5v3bEaMGAEA6N69O1xdXet8evTo0aiDlZaW4ne/+x1+9atfQa1Ww2g0wmq1Ijo6GkqlEjExMXWe\n6UlOToafnx/UajUOHDggtVssFgQHB8PHxwfz58+X2qurqxEXFwcvLy/o9Xrk5eXZPnF2oxERycZm\nsjl48CAAoKSkBFartc6nuLi4UQdbuHAhlEoljh49iqNHj8Lf3x+rV6+GUqnEyZMn4eHhgTVr1gCo\neSPoqlWrsGfPHqxevbrOqw7mzp2LefPmISsrC/v370d2djYAIDU1FdeuXYPFYkFkZCQWL15sMxZ2\noxERycfuaLQFCxbgq6++QmlpaZMPtnv3bvzP//wPXFxc0LFjR/Ts2RMmkwlxcXFwdnZGbGwsjEYj\nAMBoNCIyMhJKpRIREREQQkhVz4kTJzBp0iT07t0bEyZMqLPNlClT0LVrV8yYMUNqr/fEWdkQEcnG\nbrLx8fHBxo0bMXToUGi1WsydOxf//Oc/G3yg8+fPo6KiAjNnzoROp8OyZctQXl6OrKws+Pv7AwD8\n/f1hMpkA1CSOgIAAaXuVSgWj0YhTp06hT58+UrtarZbuK5lMJqjVagCAm5sb8vPzUVlZWW88rGyI\niORjdyLO2NhYxMbGIi8vD1u2bME777yDtWvXNni+tIqKCvznP//B8uXL8dhjj+GFF17Ap59+2qDX\njNY3c8HNMxoIIers7077XrMmEXl5QGIioNfrodfr7zoOIqK2zmAwwGAwNNv+7CabuLg4WCwWuLu7\nY+TIkdi+fTs0Gk2DDzRgwACoVCrpmZ2nn34aH330EbRaLSwWCzQaDSwWC7RaLQBAp9Nh9+7d0vbH\njx+HVquFq6sr8vPzpfacnBzodDppm5ycHKhUKhQVFcHd3R3Ozs71xvPyy4nYs6cm2RARUV23/iN8\n0aJFTdqf3W60oqIi/Pzzz+jVqxfc3Nxw//33o1OnTo06mJ+fH4xGI27cuIH/+7//w2OPPQadToeU\nlBSUl5cjJSUFYWFhAIDQ0FCkpaXh7NmzMBgMcHJykl5z4O/vj82bN6OwsBCpqal1ks2GDRtQWlqK\ndevWSfuq98R5z4aISD7iLuXk5Ii//vWvQqlUioceeuhuN6vjxIkTQqfTiSFDhoi5c+eKkpISUVxc\nLKKiooSnp6eIjo4WVqtVWj8pKUn4+vqKgIAAkZ6eLrWbzWah0WiEt7e3SEhIkNqrqqrE9OnThaen\np4iIiBCXLl2qNw4A4uRJIXx8GnUaRETtTgPSRb0Uv+zEpi+++AIZGRnIyMjATz/9hLCwMISHhyM2\nNlaebOgACoUCp08LjBoFnDnT0tEQEbV+tbP+N5bdezZpaWkIDw/HnDlz8OCDDzb6QK0Nu9GIiORj\nt7JpixQKBc6dEwgLA86fb+loiIhav6ZWNnYHCLRVrGyIiOTTbpMNH+okIpJPg5JNdXU1zreRfidW\nNkRE8rGbbCIiIlBcXIzKykqo1WpERkZi6dKlcsTmUKxsiIjkYzfZ/PTTT+jRowc2bdqEJ554AseO\nHWvU3GitDd9nQ0QkH7vJpmfPnjh9+jQ+/PBDTJkyBQqFAmVlZXLE5lDsRiMiko/dZPPGG28gNjYW\nI0aMwODBg/HDDz/Az89Pjtgcit1oRETyueNDndevX8exY8fqzPzp6+uL7du3Ozouh2NlQ0QknztW\nNh06dMDGjRtRVVUlVzyyYWVDRCQfu9PVjBkzBtOmTcMzzzxTZ7qa4OBghwbmaKxsiIjkY3e6Gr1e\nX+9Ly/bt2+ewoBxNoVDgxg0BJyeg/U3WQ0TUcE2drqbdzo0mhIBCUVPdOLXbeRSIiO6Ow+dGu3Ll\nCpYtW4aoqCgANW/GfO+99xp9wNaEz9oQEcnDbrL585//DFdXV+Tm5gKoedvmihUrHB2XLDhIgIhI\nHnaTTXZ2Nl566SV06NABANCxY0fp53sdBwkQEcnDbrIJDg7GuXPnpO+fffYZwsPDHRqUXFjZEBHJ\nw+7Q5zlz5iA+Ph65ubkYMGAA+vfvj1WrVskRm8OxsiEiksddj0YrKCjA9evX0bdvX0fH5HC1oyp6\n9QJyc4FevVo6IiKi1q2po9HsVjZCCBw+fBiHDh1CVVXVL0OGFXj11VcbfdDWgpUNEZE87Cabl156\nCSdPnoROp0Pnzp3liEk2vGdDRCQPu8kmIyMDx44dq3cWgXsdn7MhIpKH3dFoTzzxBD766CNUVlY2\n+WDXr1+HRqPB+PHjAQBWqxXR0dFQKpWIiYlBSUmJtG5ycjL8/PygVqtx4MABqd1isSA4OBg+Pj6Y\nP3++1F5dXY24uDh4eXlBr9cjLy/PbjzsRiMikofdZBMeHo5Zs2bB1dVV+vTo0aNRB1u5ciXUarVU\nJa1evRpKpRInT56Eh4cH1qxZAwC4fPkyVq1ahT179mD16tWYPXu2tI+5c+di3rx5yMrKwv79+5Gd\nnQ0ASE1NxbVr12CxWBAZGYnFixfbjYfdaERE8rCbbGbOnIkdO3agpKQEVqsVVqsVxcXFDT7Q+fPn\n8eWXX+L3v/+9NKLBZDIhLi4Ozs7OiI2NhdFoBAAYjUZERkZCqVQiIiICQgip6jlx4gQmTZqE3r17\nY8KECXW2mTJlCrp27YoZM2ZI7Xc8eVY2RESysJtsHnroIQQHBzd5cMAf/vAHLF++HE43zXqZlZUF\nf39/AIC/vz9MJhOAmsQREBAgradSqWA0GnHq1Cn06dNHaler1cjMzARQk7jUajUAwM3NDfn5+Xa7\n/ljZEBHJw+4AgYCAAISHhyMqKgo9e/YEgAYPfd6xYwf69OkDjUZT562fDRmzXd8Ahdph2LU/37w/\ne/tOTEzEtWvAihXAhAl66PX6u46FiKitMxgMdf5eN5XdZNOvXz/ExMRAoVDUuYHfEF9//TU+//xz\nfPnll6i03pjZAAATLUlEQVSoqEBxcTGmTp0KrVYLi8UCjUYDi8UCrVYLANDpdNi9e7e0/fHjx6HV\nauHq6or8/HypPScnBzqdTtomJycHKpUKRUVFcHd3h7Ozs82YEhMTsXEjMGsW8KtfNeq0iIjaLL2+\n7j/CFy1a1LQdiga4ePFiQ1avl8FgEOPGjRNCCLFs2TIxa9YsUVZWJl566SWxfPlyIYQQeXl5QqVS\niR9//FHs27dPaDQaafuxY8eKTZs2iYKCAjFixAiRlZUlhBBiy5YtYsKECaKkpEQsWbJExMfH24yh\n9rRVKiFycpp8SkREbV4D08VtGvTasN/85jdNy2y/qO36mjlzJs6ePQuVSoULFy7gxRdfBAC4u7tj\n5syZGDVqFF566SWsXLlS2vadd97B22+/Da1Wi/DwcAwdOhRAzRDtnj17IiAgALt27cKCBQvsxsHn\nbIiI5NGgN3VqNBocOXLEkfHIonaOn0GDgI0bgUGDWjoiIqLWzeFv6rzZ888/3+gDtUYc+kxEJA+7\nyebmV0C/9NJLAIB58+Y5LiIZcegzEZE87I5G27ZtG5ydnTFlyhQAQHx8PMrLyx0emBxY2RARycNu\nsvnss88QFRWFDh06YOfOnbjvvvuQkpIiR2wOx8qGiEgeNpNNUVGR9PM//vEPREdHY+TIkVi4cCGK\niorg5uYmS4COxMqGiEgeNkejeXt713lqX9z0tL5CocDp06flidABakdVjBwJLF0KjBzZ0hEREbVu\nDntTZ25ubqN3eq/gczZERPJo0NDntobdaERE8mjXyYYDBIiI5GEz2Rw8eBAAUFFRIVswcmNlQ0Qk\nD5vJpvbtmMOGDZMtGLmxsiEikofNAQLu7u6YNm0aLly4gNmzZ9cZhaBQKJCcnCxLgI7EyoaISB42\nk81nn32Gf//739i3bx9CQkJuSzZtASsbIiJ52Ew2Li4uiIqKglKpRFBQkJwxyYaVDRGRPOyORuvX\nrx/mzZsHtVoNtVqNhIQEXL58WY7YHI7P2RARycNuslm6dCl69eolvY+6V69eWLJkiRyxORy70YiI\n5GF3Is69e/fiu+++k76//vrr0Gg0Dg1KLuxGIyKSh93KRq/XY/ny5bhy5QoKCwuxYsUK6PV6GUJz\nPFY2RETysJts5s2bh0uXLmHkyJEIDw/HxYsXkZCQIEdsDsfKhohIHjZnfW7Lamcvfe454LHHgOee\na+mIiIhat6bO+tyu50ZjZUNEJI92nWx4z4aISB7tOtnwORsiInnYTTaLFy+Wfm7KDNDnzp3DI488\ngoEDB0Kv12Pjxo0AAKvViujoaCiVSsTExKCkpETaJjk5GX5+flCr1Thw4IDUbrFYEBwcDB8fH8yf\nP19qr66uRlxcHLy8vKDX65GXl3fHmNiNRkQkD5vJZunSpfj666+xdetWqW348OGNPlCnTp2wYsUK\nmM1mbNu2DQsWLIDVasXq1auhVCpx8uRJeHh4YM2aNQCAy5cvY9WqVdizZw9Wr14tzUINAHPnzsW8\nefOQlZWF/fv3Izs7GwCQmpqKa9euwWKxIDIysk6irA+70YiI5GEz2fj7+2Pr1q04c+YMRo4cieef\nfx6FhYU4fvx4ow7Ut29faY61+++/HwMHDkRWVhZMJhPi4uLg7OyM2NhYGI1GAIDRaERkZCSUSiUi\nIiIghJCqnhMnTmDSpEno3bs3JkyYUGebKVOmoGvXrpgxY4bUbouzM1Be3qjTISKiBrCZbGqnpfH1\n9YXBYMDs2bOhUCiwbNmyJr/j5tSpUzCbzQgNDUVWVhb8/f0B1CQ4k8kEoCZxBAQESNuoVCoYjUac\nOnUKffr0kdrVajUyMzMBACaTCWq1GgDg5uaG/Px8VFZW2oyjRw/Aam3SqRAR0V2wOV1NWloa3nzz\nTfzwww+YO3cuBg8ejK5du+L9999v0gGtVismTZqEFStWoHv37g0at13fqw2EEFK7EKLO/u6078TE\nRGRmAsXFNbMktJVZEYiImkPtfJjNxWayqZ1sc8iQIZg6dSq++eYbFBYWYsSIEXBzc8MXX3zR4INV\nV1dj4sSJmDp1KqKjowEAWq0WFosFGo0GFosFWq0WAKDT6bB7925p2+PHj0Or1cLV1RX5+flSe05O\nDnQ6nbRNTk4OVCoVioqK4O7uDmdn53pjSUxMxD/+ARw6BDDPEBHVdes/whctWtSk/dkdjTZmzBgM\nHToUL7zwAjw8PHDw4EGkpKQ0+EBCCMTFxSEwMBBz5syR2nU6HVJSUlBeXo6UlBSEhYUBAEJDQ5GW\nloazZ8/CYDDAyckJrq6uAGq62zZv3ozCwkKkpqbWSTYbNmxAaWkp1q1bJ+3Llp49gWvXGnwqRETU\nUKIBvv3224asXkdGRoZQKBRiyJAhIigoSAQFBYmdO3eK4uJiERUVJTw9PUV0dLSwWq3SNklJScLX\n11cEBASI9PR0qd1sNguNRiO8vb1FQkKC1F5VVSWmT58uPD09RUREhLh06VK9sdSe9q5dQvz6140+\nJSKidqOB6eI27XputMxM4JVXADuD1oiI2j3OjdYEPXrUDBAgIiLHatfJhvdsiIjk0a6TDSsbIiJ5\ntOt7NkIAHTsClZU1/yUiovrxnk0TKBSAqytnESAicrR2nWyAmvs27EojInKsdp9sevTgIAEiIkdr\n98mGlQ0RkeO1+2TDyoaIyPGYbDj8mYjI4dp9suGDnUREjtfukw0rGyIix2v3yYaVDRGR47X7ZMPK\nhojI8dp9smFlQ0TkeO0+2bCyISJyvHafbPhQJxGR47X7ZMOHOomIHK/dJxtWNkREjtfukw0rGyIi\nx2v3yYaVDRGR47X7ZOPsDNy4UfO2TiIicox2n2wUCqBXL+Dy5ZaOhIio7WpzySY9PR0BAQHw8/PD\n3/72t7vaJioK+OADx8bVVhkMhpYOoU3h9WxevJ6tR5tLNq+88grWrl2L3bt34+9//zsKCwvtbvPq\nq8Df/w5UVMgQYBvD/zM3L17P5sXr2Xp0bOkAmtO1X4aVPfzwwwCA0aNHw2g04je/+c0dt1OrgeBg\n4JNPgLg4h4dJ1KYJUXMf9Pr1+j+1FArb/73Tsjuto1AATk7//VDr0aaSTVZWFvz9/aXvarUamZmZ\ndpMNAPzpT8DYsUByMtC3b03b3fzyt3f/+Q+Qnd3SUbQdTb2eQtR8rl+v+YNf+7n5+52WNfS7rWUK\nBdChQ/0fhaImxtp4b/3vnZbZW+fGjf8mu9qf//KXugno1k+HDnde3tCPrf3d+jfjTt8bsu7HHwP3\n3Wf7d6K1aFPJpiEUNrLF0aM1H7p7J08uaukQ2pS2cD2FAH7+uebT0oRYdFtV1Za4ubV0BHenTSUb\nrVaL1157TfpuNpsRGRl523qi9p9BREQkizbVq9mzZ08ANSPScnNz8dVXX0Gn07VwVERE1KYqGwBI\nSkrCCy+8gOrqasyePRv3339/S4dERNTutanKBgAiIiJgsVhw6tQpzJ49u86yxjyDQ//l7e2NwYMH\nQ6PRIDQ0FABgtVoRHR0NpVKJmJgYlJSUtHCUrVdsbCzc3d0xaNAgqe1O1y85ORl+fn5Qq9U4cOBA\nS4TcqtV3PRMTE+Hh4QGNRgONRoOdO3dKy3g9bTt37hweeeQRDBw4EHq9Hhs3bgTQzL+foh0JCgoS\n+/fvF7m5uUKlUomCgoKWDume4u3tLa5cuVKnbdmyZWLWrFmioqJCxMfHi+XLl7dQdK1fenq6OHz4\nsAgMDJTabF2//Px8oVKpxI8//igMBoPQaDQtFXarVd/1TExMFO++++5t6/J63tmlS5fEkSNHhBBC\nFBQUiP79+4vi4uJm/f1sc5WNLTc/g+Pl5SU9g0MNI24ZXGEymRAXFwdnZ2fExsbymt5BeHg47rtl\njKqt62c0GhEZGQmlUomIiAgIIWC1Wlsi7FarvusJ1D8AiNfzzvr27YugoCAAwP3334+BAwciKyur\nWX8/202ysfUMDt09hUKBUaNGISYmBp9//jmAutfV398fJpOpJUO859i6fkajEQEBAdJ6KpWK1/Yu\n/e1vf0NYWBiWLVsm/QE0mUy8nnfp1KlTMJvNCA0Nbdbfz3aTbKjpDh48iO+++w5LlizBq6++iry8\nPA4jb6KGXD9bz4bRf82cORNnzpxBWloafvjhB6xduxZA/deZ1/N2VqsVkyZNwooVK9C9e/dm/f1s\nN8lGq9Xi+PHj0nez2YywsLAWjOje069fPwBAQEAAoqKi8MUXX0Cr1cJisQAALBYLtFptS4Z4z7F1\n/XQ6HXJycqT1jh8/zmt7F/r06QOFQoGePXsiPj4eqampAHg970Z1dTUmTpyIqVOnIjo6GkDz/n62\nm2TDZ3CapqysTOqSKCgoQFpaGiIjI6HT6ZCSkoLy8nKkpKQwgTeQresXGhqKtLQ0nD17FgaDAU5O\nTnB1dW3haFu/S5cuAQB+/vlnbNy4EY8//jgAXk97hBCIi4tDYGAg5syZI7U36++nAwY2tFoGg0H4\n+/sLX19fsXLlypYO555y+vRpMWTIEDFkyBAxatQo8d577wkhhCguLhZRUVHC09NTREdHC6vV2sKR\ntl6TJ08W/fr1E507dxYeHh4iJSXljtcvKSlJ+Pr6ioCAAJGent6CkbdOtdezU6dOwsPDQ7z33nti\n6tSpYtCgQSIkJET84Q9/qDN6ktfTtoyMDKFQKMSQIUNEUFCQCAoKEjt37mzW30+FEOx0JyIix2o3\n3WhERNRymGyIiMjhmGyIiMjhmGyIiMjhmGyoTcvNza0zUWNrMm3aNGzfvt0h++7evbtD9kvUWEw2\nRM3sxo0bd7WeI59g59Px1Now2VC7cfr0aQQHB+Obb765bZler8eCBQsQFBQEjUaDU6dO4cknn0Rg\nYCDWrFkjrbd792489dRTGDZsGN566y2pvXv37njjjTcQFBR025x769evR2hoKEJCQvD666+jqqpK\nWvb1118jJCQEer1emuTwgw8+wMsvvyytM27cOKSnp0vHefPNNzFw4EA888wzKCoqAgBcvHgRcXFx\n8Pf3rxNXSUkJHnvsMQQHB+Pxxx/H/v37AdRUfGq1GvHx8VCr1XjxxRdRXV0NoGa6+blz50Kj0SAk\nJARnzpwBAGzduhXjxo1DeHg41q1b14j/Bag9Y7KhduHEiRN48skn8eGHHyIkJOS25QqFAvn5+Th8\n+DBiYmIQGhqKZcuWITMzE2+99RaEECgrK8OyZcvw8ccf4+DBgzh27JiUIMrKyvDAAw/g22+/xfDh\nw+vse+LEiTCZTMjOzkZZWRn27dsHoOap7aysLBgMBrz99tt4/vnn64395iqlrKwMDz74IMxmM7p1\n64YdO3YAAJYuXQp/f39YLBZUVFRI63fp0gWpqak4fPgw1qxZg8TERGnZ8ePHMWHCBHz//ffIzc3F\noUOHAABvvPEGfH19ceTIERw6dAh9+/ZFbm4utm3bhn/+85/Ys2cPNm7cKD2tT3Q3mGyozbt8+TJi\nYmKwcePGO96/efrpp+Hk5IRhw4Zh4MCB8PX1Rffu3eHp6Qmz2YydO3ciJycHw4YNQ0hICL799lsp\ncTg5OWHatGn17vf06dOYMmUKAgMD8eWXXyItLQ1ATRJ54okn4OrqitDQUAghcOHChTt2gXXs2BHP\nPvssAGDUqFFSgkhLS0NsbCwUCgViY2Ol9Tt06ICVK1di+PDhGD9+PLKysqTXbTz00EN49NFH4eTk\nhIiICBw6dAjV1dXYt2+flPg6d+6MLl26YPv27TCZTNBqtdDpdLh48SL27t17l/8LELXB10IT3apX\nr17w8vJCRkaGNF16bGwsjhw5goceekiqDnr16gWg5g9s7c+13ysrK3Hjxg2MHj0a77///m3H6NKl\nC3r06FHv8f/4xz9i/vz52LBhA1auXIlvv/1WWnbrBB4KhQIuLi6orKyU2mq7ygDA2dkZLi4uAIBO\nnTrVqWLqmwzEYDAgIyMDaWlp6NatG/r06SMlm1vPsbS0VNrPrfu6ceMGpk2bhoULF9Z7jkT2sLKh\nNq9z58747LPP8NFHH2HTpk0AgJSUFBw5ckRKNPYoFAqMHz8eGRkZ0iy4RUVFOHv2rN1tL168CD8/\nP1y9ehWbNm2SKhchBP71r3+hpKQEWVlZcHJywoMPPoiwsDBkZmaiqqoK33///V29dyUyMhIffvgh\nbty4gQ8++EBqv3DhAh566CG4urpi8+bNdRLXrYQQ6NSpEx555BGsX78eQghUVlaivLwckydPxvbt\n26XzvXDhAgoKCuzGRVSLyYbaPIVCga5du2LHjh1YsWKF3QSjUCjq7cpycXHB+vXr8cYbb2Dw4MEY\nPXo08vLypG1sefPNNzFu3DiMGTMGjzzySJ3jhISEICIiAq+99hrWr18PAPDy8sL48eMRFBSERYsW\nQa/X19mmvjgTEhKQk5MDtVoNZ2dnqT0mJgY//fQTAgICcODAAajV6nr3dfP3//3f/8WpU6cwZMgQ\njBgxAvn5+fD09ERiYiJefPFFDB48GL/97W/rvI+eyB5OxElERA7HyoaIiByOyYaIiByOyYaIiByO\nyYaIiByOyYaIiByOyYaIiBzu/wFjgiT45DbS3gAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "# this plot is biased towards 1, due to the large number of errors.\n", "# what does it look like up close?\n", "plot(dist[:,0], dist[:,1])\n", "axis(xmax=10)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 13, "text": [ "(0.0, 10, 0.0, 140000.0)" ] }, { "output_type": "display_data", "png": "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\nAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "# but out by ~200 you'll see a higher coverage peak.\n", "plot(dist[:,0], dist[:,1])\n", "axis(ymax=1000)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 14, "text": [ "(0.0, 200.0, 0.0, 1000)" ] }, { "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "# what happens if we trim out all the unique k-mers? => reads.fa.abundfilt\n", "!python /usr/local/share/khmer/scripts/filter-abund.py -C 2 counts.kh reads.fa" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "file with ht: counts.kh\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "loading hashtable\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "K: 20\r\n", "filtering reads.fa\r\n", "starting threads\r\n", "starting writer\r\n", "loading...\r\n", "... filtering 0\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "done loading in sequences\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "DONE writing.\r\n", "processed 16000 / wrote 14368 / removed 1632\r\n", "processed 1600000 bp / wrote 1199434 bp / removed 400566 bp\r\n", "discarded 25.0%\r\n", "output in reads.fa.abundfilt\r\n" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "# now let's look at the k-mer abundance distribution of the filtered reads\n", "!python /usr/local/share/khmer/scripts/load-into-counting.py -x 1e8 -N 4 -k 20 counts-filt.kh reads.fa.abundfilt\n", "!python /usr/local/share/khmer/scripts/abundance-dist.py -s counts-filt.kh reads.fa.abundfilt reads-filt.dist\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r\n", "PARAMETERS:" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r\n", " - kmer size = 20 \t\t(-k)\r\n", " - n hashes = 4 \t\t(-N)\r\n", " - min hashsize = 1e+08 \t(-x)\r\n", "\r\n", "Estimated memory usage is 4e+08 bytes (n_hashes x min_hashsize)\r\n", "--------\r\n", "Saving hashtable to counts-filt.kh\r\n", "Loading kmers from sequences in ['reads.fa.abundfilt']\r\n", "making hashtable\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "consuming input reads.fa.abundfilt\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "saving counts-filt.kh\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "fp rate estimated to be 0.000\r\n", "DONE.\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "hashtable from counts-filt.kh\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "K: 20\r\n", "HT sizes: [100000007, 100000037, 100000039, 100000049]\r\n", "outputting to reads-filt.dist\r\n", "** squashing existing file reads-filt.dist\r\n", "preparing hist...\r\n" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "# load\n", "dist_filt = numpy.loadtxt('reads-filt.dist')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "# plot reads v filtered reads k-mer abundance, overall.\n", "plot(dist[:,0], dist[:,1], label='reads')\n", "plot(dist_filt[:,0], dist_filt[:,1], label='filtered reads')\n", "xlabel('k-mer abundance')\n", "ylabel('# of k-mers with that abundance')\n", "legend()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 18, "text": [ "" ] }, { "output_type": "display_data", "png": "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\nRK5CYII=\n", "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "# now plot reads v filtered reads k-mer abundance\n", "plot(dist[:,0], dist[:,1], label='reads')\n", "plot(dist_filt[:,0], dist_filt[:,1], label='filtered reads')\n", "xlabel('k-mer abundance')\n", "ylabel('# of k-mers with that abundance')\n", "axis(ymax=1000)\n", "legend()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 19, "text": [ "" ] }, { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEKCAYAAAAFJbKyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVPX++PHXGWRxYdFUXMeVQBQVEXBDEa1IU8nqqrlk\nes1w3259u1nqzZ9lWqmVS13RzLT0lqWmYS4kmoHmrmiaIO6AoIDscH5/nJwkxWGbBXo/Hw8eMmfO\n8p7DOO/57IqqqipCCCFEMeksHYAQQoiKRRKHEEKIEpHEIYQQokQkcQghhCgRSRxCCCFKRBKHEEKI\nEin3xDFq1ChcXV3x8vIybEtLS2PAgAHo9XpCQkJIT083PLdkyRLc3Nzw9PRk3759hu0xMTF06NCB\n5s2b8/rrr5d3mEIIIUqp3BPHiy++yA8//FBo27Jly9Dr9Zw7d45GjRqxfPlyABISEli6dCm7du1i\n2bJlTJo0yXDM9OnTefXVVzl48CA//fQThw4dKu9QhRBClEK5J46AgABq1qxZaFt0dDSjR4/G3t6e\nUaNGERUVBUBUVBTBwcHo9Xp69OiBqqqG0sjZs2cZNGgQjzzyCAMHDjQcI4QQwrLM0sZx8OBBPDw8\nAPDw8CA6OhrQEkerVq0M+7m7uxMVFcX58+epW7euYbunpye//PKLOUIVQghhRBVzXKQks5ooilKi\n4x+0vxBCCONKO+OUWUocvr6+xMTEAFqjt6+vLwD+/v6cPn3asN+ZM2fw9fWlZcuW3Lhxw7D99OnT\ndOrUqcjzq6pq+Nl8ZjPNZz7F/Plqoe3yU7yfWbNmWTyGyvIj91LupzX/lIVZEoe/vz9hYWFkZmYS\nFhZmSAJ+fn6Eh4cTHx9PREQEOp0OR0dHQKvS+vLLL0lKSmLTpk34+/sX61o6RQcUUMb7IoQQogjl\nnjiGDBlCly5d+O2332jcuDGrVq0iNDSU+Ph43N3duXLlCi+//DIArq6uhIaGEhQUxLhx41i8eLHh\nPAsXLuTdd9/F19eXgIAAOnbsWLwXpOhQFUkcQghhKuXexrF+/foHbv/uu+8euH3y5MlMnjz5vu2e\nnp4cPny4xNfX2jwkcZRWYGCgpUOoNOReli+5n9aj0o0c1yk6VCRrlJb85yw/ci/Ll9xP62GWXlXm\npCUOKXEI8TC1atUiJSXF0mEIM6hZsybJycnles5KmTiQNg4hHiolJaXMPWtExWCKIQuVrqpKQZES\nhxBCmFClSxxad1xVEocQQphIpUwc0h1XCPFXOp2OCxcuWDqMSqFyJg4KLB2GEEJUWpU2cUiJQ4iK\nLS8vz9IhiCJUusQhAwCFqLiaNm3K0qVL6dKlCy4uLvz222+88sorNGnShDFjxhSa227VqlV4enri\n4uJCSEgIW7ZsKXSubdu24efnh4eHBxs3biz03L59+3jyySepVasWjRo14r333jPL66ssKl3iuDsA\nUBKHEBWPoih8/PHHzJ8/n4SEBAICAvD09OTkyZMEBATwxBNPGPZ1dXXl+++/JzExkcGDBzNo0CDu\n3LkDwMmTJxkxYgRvvPEG27ZtY/Xq1YWuM3XqVMaOHUtSUhKnTp0iKCjInC+zwquUiUPGcQhRcQ0e\nPJiAgAD2799Pu3btGDlyJI6OjowYMYLatWtz8OBBAPr06UOzZs2wtbVl8ODB+Pj4GFYf3bZtG336\n9KFfv340b96c6dOnF7pGQUEBv//+O6mpqTg7O+Pt7W3211mRVcrEIY3jQpSNopTPT2ncnQl7586d\nREZGUrNmTcPP+fPn2bt3L6BVNw0ZMoQmTZrg4uJCdHQ0x48fB7RVR9u3b284518Tw5o1azh27BjN\nmzfnueee49ixY6UL9m+q0iUOGQAoRNmpavn8lEaVKtqEFkFBQQQGBpKSkmL4SUtLY/r06aiqytix\nY+nRoweHDx/m1q1b+Pn5GUbD+/n5ceTIEcM5/zphauvWrVmzZg3Xrl3Dy8uLf/7zn6UL9m+q0iUO\naeMQonLo3bs3J06cYM2aNaSkpJCVlUVERARXrlwhJyeHxMREXF1dcXBwYNWqVURFRRmO7dOnDz/8\n8APff/89Fy5cYNGiRYbncnNz+eKLL7h9+zYA1apVM6wDJIqnUiYO6VUlRMVnY2NDREQEZ8+excfH\nB71ez3vvvYeqqtjb27N48WL+85//0LJlSw4dOsTgwYMNx7Zp04ZVq1YxZ84c+vTpwwsvvFBozqa1\na9fSrFkz9Ho9UVFRhRKLME5RK/hMZ4qiFJqs7VTCKYKW/YPR2aeYN8+CgQlhxf76/0ZUXkX9rcvy\nHqiUJQ5p4xBCCNOpdIlDURTpVSWEECZU6RKHNI4LIYRpVdLEIVVVQghhKpUyccjIcSGEMJ1Klzhk\nAKAQQphWpUscd9s4hBBCmEYlTRxS4hBCCFORxCGEsCpxcXE899xz1KxZkw8//JDQ0FDmzp0LQERE\nBI0bN7ZYbKtXryYgIMAi17b0a79XFWM7ZGdn8+2337J3714+/vhjzp07x9mzZ3nqqafMEV+J3R3H\nIYlDiIpp7dq1ODs7c/PmTXS6h3+3bdq0KWFhYbKehpkZLXHMmjWLw4cPExERAUCDBg14/fXXTR1X\nqWlzVck4DiEqqn379uHv7280aUDZps1QVdWk065U5qVvjf5l9uzZw/z587GzswOgevXqVj3HjVRV\nCVFxBQUFsXPnTiZNmoSTkxPnzp1j5MiRvPHGG/ftO3z4cOLj4+nXrx+Ojo4sXLgQgN9//73I5WYD\nAwOZN28ejz/+OM7OzsTGxnLt2jXeeustWrZsyaBBgwrNspuens68efNo1KgRvXr14vr160XGHhcX\nh06nY+PGjbRp04bHHnsM0BLh0KFDadasGXPmzCEpKclwzOTJk9Hr9bi6ujJ27NhC64Lk5uaydOlS\nmjdvjr+/PzExMYWut3LlSjp37oyzszMeHh7s3r27hHe79IwmDnd3d8P0wwC//PKLVa+WJQs5CVFx\n7d69m4CAAD7++GNSU1Nxc3NDUZRCM9ve9fnnn6PX69m6dStpaWnMmDGD/Px8unTpUuRyswAff/wx\nkydPJjk5mcaNG9O3b1+qVKnCoUOHGDFiBE8++aRhCdrZs2ezd+9eIiMjmTx5MosWLXpgLPdat24d\nmzdv5ocffuD48eMMGTKEF198kcOHD3Pz5k0mT55s2NfPz49jx45x9uxZnJ2dGT9+vOG5FStWEBYW\nxnfffcfChQsLXTspKYnZs2ezZs0abt++zY4dO2jatGlpb3uJGU0cEydOJCQkhMuXL9OzZ09GjRrF\npEmTzBFbqUiJQ4iK76+1GsWt5di9e/dDl5sFCA4ONiSLuLg4MjIyeO2113BxcaFv37706NGDbdu2\nAbB9+3ZeeeUVmjVrRv/+/Xn88ceNxjJt2jSaN2+Ovb09X331FaGhofTu3ZuaNWsya9YsduzYYajG\nGjp0KDVr1sTFxYU33niDo0ePGkok27ZtY9y4cXh5eREQEMCgQYMM11YUhczMTH777Tdyc3PR6/U0\nb968eDe3HBhtHPf19WXPnj38+uuvFBQU4Ovra464Sk0GAApRdsqcUq77+hfqrNL9RzT2rb4o9y43\ne1deXh579+7F19cXRVEMS9Pe3T82NrbQ/vn5+TRu3Jjg4GBiYmLuW4I2Njb2oTH89fynT59mwYIF\nhm05OTkcOXIEX19fVq9ezcaNG4mOjiYvL4/MzExOnDhBz549iY6ONvQmu3vtVatWAfDII4/w+eef\n89577/HCCy8wbNgwXn/9derUqVOKu1ZyRhPHN998Q1BQED4+PgDcunWLiIgIQkJCTB5caegU3R+N\nXpaORIiKq7Qf+KZSVCKxsbEpVAIICgri+PHjbN++vchz3V2a9u7+LVq0KNQOci8PDw+OHDlCr169\nAG0JWmNJ7a/nHzhwIK+++up9+126dIlp06axZcsWvL29yc/Pp379+vctf9uhQwfDte/15JNP8uST\nT5KQkMCYMWN49913CyUoUzJaVTVnzhxcXFwMj11cXJg9e7YpYyoTqaoSouK7Nxk8rPeTj48Pv/76\nq+Hxw5abfdC53d3dqVGjBgsXLuT69evk5uZy8OBBzpw5A2hL0C5cuJDY2Fi2bt3Krl27SvQ6hg8f\nzooVK9ixYwc5OTncvn2bjRs3ApCYmIiqqtSrV4+0tDT+/e9/k52dbTi2T58+LF++nJMnT7Jv3z7D\ncQC//fYbu3fvJjs7Gzs7O+zt7c26/K3RxOHg4EBGRobhcUZGBjY2NiYNqiykcVyIiu/eb/V/bRy/\n9/eXX36ZrVu3UqtWLd5///2HLjf7oOMBvv32W3Jzc+nVqxf169fntddeIycnB9CGI3Tt2pVu3bqx\naNEio+27fz23p6cnn332GRs2bKBRo0Z4eXkRHh4OQIcOHRg3bhxBQUF0796dNm3aFBrg99JLL/HC\nCy/Qr18/ZsyYwZQpUwznz87O5rXXXqNOnTp07NgRFxcXpk6dWqx7Wx6MLh27cOFCTpw4QWhoKKqq\nsnz5ctq0acO//vUvc8X4UH/tx52Rm4HLvEcYk5DJxx9bMDAhrJgsHfv3YZGlY8ePH0/Pnj2ZO3cu\nc+fOJTAwkAkTJpTqYp9++ildunTBx8eHKVOmAJCWlsaAAQPQ6/WEhISQnp5u2H/JkiW4ubnh6enJ\nvn37iveCZCEnIYQwKaMljvKSnJyMj48PJ0+epGrVqjz11FNMnjyZY8eOcenSJRYuXMj06dNp2rQp\nM2bMICEhge7du7Njxw5iY2OZOnXqfY1DcH/WzMnPodrcGoy5nsOyZeZ4ZUJUPFLi+PswRYnDaK+q\n2NhYPv/8cw4cOEBWVpbhgiUdpVi1alVUVTUMJszIyMDFxYXo6GhmzpyJvb09o0aN4u233wYgKiqK\n4OBg9Ho9er0eVVVJS0sz2gAkjeNCCGFaRhPHxIkT6dy5M2+++Sa2trZA6fpYV61alWXLltG0aVPs\n7e2ZNGkS/v7+HDx4EA8PD0Dr+hYdHQ1oiaNVq1aG493d3YmOjjZ0iyuKJA4hhDAto4kjPj6erVu3\nlvlCiYmJhIaGcvr0aWrWrMlzzz3H1q1bS1RUKiph3ds9uEePHrKQkxBG1KxZs9SD7ETFcndwY0RE\nhGGy2rIymjief/55Zs2axYgRIwqNrqxVq1aJLhQdHU2nTp1o2bIlAM899xyRkZH4+voSExODt7c3\nMTExhpHp/v7+7Ny503D8mTNnihy1ft+4kr1QoKqA/McQ4kGSk5MtHYIws8DAQAIDAw2P58yZU+pz\nGe1VtXz5ctasWUPv3r3x8fEx/JRUQEAAhw4dIjk5mezsbLZv387jjz+Ov78/YWFhZGZmEhYWRqdO\nnQBt1GR4eDjx8fFERESg0+mKPcBFQUeBKmM5hBDCFIyWOOLi4srlQk5OTsycOZOnn36ajIwMgoOD\n6dmzJ35+fgwbNgx3d3c6dOjA/PnzAXB1dSU0NJSgoCDs7OxYsWJFsa+lQ4eqFgDWO1BRCCEqqmJ1\nx71z5w67d+8mJSXFsG3EiBEmDay4HtSlrMocO4bFp7F6pb2FohJCCOtm0gGAn376Kb169WL06NFs\n2rSJCRMmGIbMWysFnTSQCyGEiRhNHKtWrWLv3r3UqVOHTZs2cejQIRITE80RW6nJfFVCCGE6RhNH\nbm4udnZ2NG3alCtXrtCiRQsuXbpkjthKTRrHhRDCdIw2jnfs2JGUlBReeOEFAgICsLW15ZlnnjFH\nbKWmoEjiEEIIEynRXFVpaWmkpKSg1+tNGVOJPKiBp9p/nBlwIZ71q50tFJUQQlg3k8xV9euvvxY5\nsjQpKcmwKpU1UhQdBdLGIYQQJlFk4pg+fTqKopCTk8OBAwfQ6/UoisLFixfp0qVLsac5twQFHUji\nEEIIkyiycTwiIoI9e/bQuHFjfvzxR+Li4oiNjWXnzp00atTInDGWmE4ax4UQwmSM9qo6fvw43bp1\nMzzu2rUrJ06cMGlQZadIVZUQQpiI0V5VQ4YM4fnnn2fo0KGoqsqXX37J4MGDzRFbqekUnSxSI4QQ\nJmI0cbz66qts3bqV7du3oygKzz//PH379jVHbKUm4ziEEMJ0jCYOOzs7Bg4cyMCBA80RT7nQKTpQ\nJHEIIYQpGE0cR44c4cMPP7xv6dgLFy6YPLjSkwGAQghhKkYTx5QpU3jppZeYO3cudnZ25oipzLRp\n1aWNQwghTMFo4rhz5w6DBw/GxqbirG0hAwCFEMJ0jCaOfv36MWbMGIYOHVpo6VirHjluWMhJCCFE\neTOaOPbs2YOiKMydO/e+7dZKh5Q4hBDCVIwmjoiICDOEUb60ObYkcQghhCkYTRxz5swxzKJ476SH\nb775pkkDKwtZAVAIIUzH6JQj1atXp3r16tSoUYOsrCy++uorbty4YY7YSk2nyABAIYQwFaMljhkz\nZtz3eMCAASYLqDxoJQ5JHEIIYQpGSxx/lZmZSWpqqiliKTeyAqAQQpiO0RKHl5eX4ffs7GwKCgru\n62FlbRRFB9LGIYQQJmE0cWzZsgXQeio5ODjg6upq8qDKSrrjCiGE6RitqmratCk1atRg37597Nq1\ni5s3b5ojrjJRFBkAKIQQpmI0cXzxxRd07tyZAwcO8PPPP9O5c2e++OILc8RWagqKNI4LIYSJGK2q\nWrBgAZGRkdSrVw+AGzdu8MQTTzB06FCTB1daWndcaeMQQghTMFriqFWrFpmZmYbHmZmZ1KpVy6RB\nlZV0xxVCCNMpssQxceJEAOrUqYOPjw8BAQGoqsq+fft47LHHzBZgachCTkIIYTpFJg4fHx/DFCNP\nPvmkYfvAgQMLTT1ijWTpWCGEMJ0iE8fIkSPNGEb5UhRpHBdCCFMx2jgeFxfHihUrCA8PJyUlBbD+\npWN1iqwAKIQQpmK0cXzWrFl4e3uTl5fHpk2b6NOnDy+99JI5Yis1GQAohBCmYzRxHD9+nH/84x8o\nikLr1q1ZtGgR69evN0dspaZNOSKJQwghTMFoVVXVqlXJz8+nR48ezJs3j2bNmlGjRg1zxFZqMgBQ\nCCFMx2iJY9GiRWRkZDBz5kxUVSUyMpJly5aZI7ZS0ymykJMQQpiK0cTh5+eHo6MjdevWZfbs2Xz6\n6ae0bdu2VBe7c+cOL7zwAo8++iienp5ERUWRlpbGgAED0Ov1hISEkJ6ebth/yZIluLm54enpyb59\n+4r/omQhJyGEMJkSr8dRFrNmzUKv13P8+HGOHz+Oh4cHy5YtQ6/Xc+7cORo1asTy5csBSEhIYOnS\npezatYtly5YxadKkYl9HRo4LIYTpmDVx7Ny5k3//+984ODhQpUoVnJ2diY6OZvTo0djb2zNq1Cii\noqIAiIqKIjg4GL1eT48ePVBVlbS0tGJdR6uqksQhhBCmYDRxPKiKaP/+/SW+0OXLl8nKyiI0NBR/\nf3/mz59PZmYmBw8exMPDAwAPDw+io6MBLXG0atXKcLy7u7vhOWNkAKAQQpiO0V5VEydO5MiRI4W2\nTZgw4b5txmRlZfHbb7+xYMECevfuzdixY9mwYUOJBuoVNdXJ7NmzDb8HBgaiQxrHhRDiXhEREURE\nRJTLuYpMHHfX30hMTOT99983fMAnJibyyCOPlPhCLVu2xN3dnX79+gEwZMgQ1qxZg6+vLzExMXh7\nexMTE4Ovry8A/v7+7Ny503D8mTNnDM/91b2JA0A5uVhKHEIIcY/AwEACAwMNj+fMmVPqcxVZVZWT\nk0NaWhr5+fmkpaWRlpZGeno6Hh4erFmzplQXc3NzIyoqioKCAr7//nt69+6Nv78/YWFhZGZmEhYW\nRqdOnQCtN1d4eDjx8fFERESg0+lwdHQs3ouSNg4hhDCZIkscPXr0oEePHowcOZKmTZuWy8UWLlzI\niBEjyMrKonfv3gwePJiCggKGDRuGu7s7HTp0YP78+QC4uroSGhpKUFAQdnZ2rFixotjXUVBk6Vgh\nhDARRTXSyJCcnMzGjRvvm+Rw9+7dZgnQGEVR7msn6bn0H9zY8yynN/7DQlEJIYR1e9BnZ3EZ7VU1\nc+ZMbt++zenTp5k8eTIuLi706NGjVBczF6mqEkII0zGaOA4cOMArr7yCra0t/fv354svvmDz5s3m\niK3UZCEnIYQwHaPdce3t7QHo1KkTq1evpmXLlla/1oWM4xBCCNMxWuJ4/fXXuXXrFq+88gp79+7l\nrbfe4r333jNHbKUmkxwKIYTpGC1x3B134eLiwurVq00dT7mQNg4hhDAdo4kjOTmZrVu3cuDAAbKy\nsgCtKigsLMzkwZWWThZyEkIIkzGaOCZMmED16tUJCgrC1tYWKHrqD2uhk9lxhRDCZIwmjmPHjnHq\n1ClzxFJupHFcCCFMx2jj+ODBg1m5cqWhmqoikMZxIYQwnSJLHDVq1DBUSd25c4fQ0FBD11xFUUhN\nTTVPhKUgjeNCCGE6RSaOe5dwrWh0ig4USRxCCGEKRquqevXqVaxt1kRB2jiEEMJUiixxZGZmkpGR\nQWJiIsnJyYbtCQkJxV7C1VJ0is7qR7cLIURFVWTiWLFiBYsXL+bq1av4+PgYtjdp0oQpU6aYJbjS\nkjYOIYQwnSITx5QpU5gyZQpLlixh0qRJ5oypzCRxCCGE6Rht46hoSQMkcQghhCkZTRwVkaIo0qtK\nCCFMpHImDmQAoBBCmIrRKUcAcnNzOXz4MNnZ2aiqiqIodO/e3dSxlZqNTqqqhBDCVIwmjiVLlrBg\nwQI8PT2xs7MzbLfmxCFtHEIIYTpGE8cnn3zC6dOncXR0NEc85UIGAAohhOkYbePQ6/UVbvoRnU4H\nirRxCCGEKRRZ4pg4cSIAzs7OtG/fnscffxwXFxdA67W0ZMkS80RYCrIehxBCmE6RicPHx8cwO+4T\nTzwB/LHOxR+N49ZM2jiEEMJ0ikwcI0eOBGDRokX3TTGyaNEikwZVVlpik8QhhBCmYLSN47PPPivW\nNmsiCzkJIYTpFFniWL9+PevWrSM2NpZ+/foZticmJtK6dWuzBFdaMo5DCCFMp8jE0aVLF+rXr09i\nYiIzZswwTFPepEkTmjVrZrYAS0MWchJCCNMpMnE0adKEJk2a8Msvv5gznnKhSK8qIYQwmSLbOLp2\n7Qpoa487OjoW+nFycjJbgKWhU2QAoBBCmEqRJY79+/cDFXPtcZ1OB9I4LoQQJmG0V9XMmTP58ccf\nuXPnjjniKRcyjkMIIUzHaOJo3rw569ato2PHjvj6+jJ9+nS+/fZbc8RWajbSOC6EECajqHe7Sxlx\n/fp1vvrqKxYuXEhKSorVVGHdHc1+rze2LmHJ2nPc/vJDC0UlhBDW7UGfncVldHbc0aNHExMTg6ur\nK926dePrr7/G29u7VBczF20ch7RxCCGEKRitqkpOTiYvLw8XFxdq1apF7dq1sbW1NUdspSbjOIQQ\nwnSMJo5NmzYRHR3NK6+8wq1bt+jZsyeNGjUq1cXy8/Px9vY2jERPS0tjwIAB6PV6QkJCClV/LVmy\nBDc3Nzw9Pdm3b1+JriON40IIYTpGq6q2bNlCZGQkkZGR3Lp1i6CgIAICAkp1scWLF+Pp6UlaWhoA\ny5YtQ6/Xs2HDBqZPn87y5cuZMWMGCQkJLF26lF27dhEbG8ukSZM4fPhwsa8jU44IIYTpGC1xhIeH\n4+Pjw9dff01MTAyrVq1i1KhRJb7Q5cuX2bZtG//85z8NDTLR0dGMHj0ae3t7Ro0aRVRUFABRUVEE\nBwej1+vp0aMHqqoakk1xKIoiVVVCCGEiRkscH330UblcaOrUqSxYsIDU1FTDtoMHD+Lh4QGAh4cH\n0dHRgJY4WrVqZdjP3d2d6OhoevXqVaxr6ZABgEIIYSpGE0d52Lp1K3Xr1sXb25uIiAjD9pJ0BXvY\n4lGzZ882/B4YGIhOp0OVEocQQhhEREQU+vwtC7Mkjp9//pnNmzezbds2srKySE1NZfjw4fj6+hIT\nE4O3tzcxMTH4+voC4O/vz86dOw3HnzlzxvDcg9ybOACO7L6ILOQkhBB/CgwMJDAw0PB4zpw5pT6X\n0TaOe+Xm5nL58uUSX2TevHlcunSJ2NhYvvzyS4KCgvj888/x9/cnLCyMzMxMwsLC6NSpEwB+fn6E\nh4cTHx9PREQEOp0OR0fHYl9PkUkOhRDCZIwmjh49epCamkp2djaenp4EBwfzzjvvlOmid6udQkND\niY+Px93dnStXrvDyyy8D4OrqSmhoKEFBQYwbN47FixeX6Pw2Oh0o0sYhhBCmYHTKkXbt2nHs2DFW\nr17N6dOnmT9/Pp07d7aadToeNGz+o5/W8a9Pt5K5dp2FohJCCOtWlilHjJY4nJ2duXDhAp999hnD\nhg1DURQyMjJKdTFz0UocUlUlhBCmYDRxvPHGG4waNYquXbvStm1bfv/9d9zc3MwRW6lJG4cQQpjO\nQ3tV5efnc+LEiUJduFq0aMHXX39t6rjKRKZVF0II03loicPGxoZ169aRk5NjrnjKhU5mxxVCCJMx\nOo7jiSeeYOTIkTz//PM0aNDAsL1Dhw4mDawspMQhhBCmYzRx7N+/H0VReO+99wpt37Nnj8mCKiud\nokMGAAohhGkYTRzlNUTdnBRFkSlHhBDCRIz2qrp58ybz58+nf//+AJw+fZqVK1eaPLCysNHJJIdC\nCGEqRhPHm2++iaOjI3FxcQC4ubnxwQcfmDquMpGFnIQQwnSMJo5Dhw4xbtw4bGxsAKhSpYrhd2sl\nAwCFEMJ0jCaODh06cOnSJcPjb775ptQrAJqLgizkJIQQpmK0cXzKlCmMHz+euLg4WrZsSbNmzVi6\ndKk5Yis1nbRxCCGEyRhNHO7u7mzevJnExETy8/OpV6+eOeIqExtFFnISQghTMZo4VFXl8OHDHDhw\ngJycHFRVRVEUpk2bZo74SkXrVSWJQwghTMFo4hg3bhznzp3D398fOzs7c8RUZrJ0rBBCmI7RxBEZ\nGcmJEyceuua3tdEp0jguKrfsvGzsq9hbOgzxN2W0V9XTTz/NmjVryM7ONkc85UKbckQax0Xl1X5F\ne04nnrZ0GPfJz4ddu+C//4WEBEtHI0zFaOIICAhgwoQJODo6Gn6cnJzMEVup6WSSQ1GJ3cq6xZmk\nMxy+dtiYUzR5AAAgAElEQVTSodznk09g7Fh4/3346itLRyNMxWhVVWhoKFu3bqVz584Vpo3DRicj\nx0XFpaoql1Mv09i58QOfP3b9GAAnEk6YM6xi2boV3n4bkpMhOtrS0QhTMVriaNiwIR06dKgwSQOk\njUNUbGFHwmiyqAkBqwI4cu3Ifc8fvX6URk6NOHHDuhJHZiZERsJjj0H79nD0qKUjEqZitMTRqlUr\nAgIC6N+/P87OzgAVozuuIm0couLJzM1k9k+ziXwxkt2xu5nz0xy+HfxtoX2O3jjKUK+hrDuxzkJR\nPlhEBHh7g4sLeHlBTAzk5oKtraUjE+XNaImjfv36hISEYGNjQ3p6Ounp6aSlpZkjtlJTZD0OUUF9\nGP0hfg396KrvyiT/SeyJ20NyZnKhfY5eP0qIRwgpWSncyrploUjvt20bPPmk9nu1atCkCZw5Y9mY\nhGkYLXHMnj3b8Pu1a9eoX7++KeMpFzLJoagoVFUlJSuFWlVrcT39Ogt+XkDki5EAODs480SLJ9h4\naiNjO44FICc/hzNJZ2jr2hbPOp6cTDhJN303S74EAFRVSxybNv257W51lZeX5eISpmG0xHGvvn37\nmiqOcqWThZxEBfHp4U9ptrgZR64dYWr4VEZ7j8ajtofh+WFth/HFiS8Mj2MSY2jm0oxqttXwquvF\nyYSTlgj7PnFxcOdO4SQh7RyVV4kSh6pWjHYDKXGIiiAjN4M5P81hSqcp9FrTi6jLUbzZ481C+wS3\nDObszbPM2DGDqMtRbDu3jfb12gPgVdfLanpW7d0LPXrAveOEJXFUXkarqu41ZswYU8VRrmQFQGHN\n5u6dy4HLB9A76+nauCtzAufgXc+bejXqUc22WqF97WzsODD6AJ/8+gljt46lQC3g3wH/BqBN3TZs\nPL3REi/hPnv3Qvfuhbe1bw9HjkBODlSgTpmiGIyWOO5dJnbcuHEAvPrqq6aLqBzIAEBhzaKuRFHT\noSY/xf3E3KC5AIR4hNCpUacH7t+8ZnPe6f0OR18+yvHQ4wxuMxiATo06cSHlAlGXo4q81i+XfyE7\nr3xnfVBViPrLJR+UOFxdoWdPGDZMG1EuKg+jieN///sfa9euNTweP348iYmJJg2qrCRxCGt28dZF\nZnSZwenxp3n0kUdLfZ7qdtWZ12seU8KnFFmNPOh/g9h+fnupr/EgFy9Cp07w88/a42vXtAF/rVvf\nv+8XX2jPeXpCgwawZUu5hiIsxGji+Oabb/jss89Yv349I0aMoEqVKoSFhZkjtlLT6WQAoLBeF29f\npIlzk3I514h2I8gryOO9A+/dlzxuZ90m/nY8ey/uLZdr3XXoEFSvDnPmaI8jI6FbN9A94NPEwUFL\nFqtWwfDh2lgPUfEVmTiSk5NJTk4mMzOT//73v8yfPx8nJydmzZpFcnJyUYdZBRuZ5FBYqVtZt1BV\nFRcHl3I5n07Rsfbptaw7sY4nv3iS/x7+r2HywxMJJ6hmW80kiWPqVG2Mxvr18Pnn91dT3atqVejS\nRau2OnL/QHhRARWZODp06ICPjw8+Pj4EBgZy69Ytvv/+e3x8fOjYsaM5Yywx6VUlrNXFWxdp4tKk\nXJcpcK/tTtQ/o3jq0afYF7+PbmHdyC/I5/iN4zzT6hnOJJ0hNTu13K536JCWCN56C2bO1Noyhg83\nfpy3t5Y4VFX7954hYqKCKbJXVVxcnBnDKF+SOIS1Ks9qqnvZ2tgywW8CAF7LvDh09RAnEk7g28CX\n+Nvx/HzpZ4JbBpf5OqoKv/4KPj5Qty6MGFH8Y11dtRHlcXGwejV8+in8619atZeoWEo0jqOiUP6Y\n5LCCDDsRfyN3Sxym9Fjzx9h5YSfHbxynrWtbujfpTmR8ZLmc+/ffwdFRSxqlcbfUsWWLlki2l2+7\nvTCTSpk4tF5VqiQOYXVMVeK4V+/mvdlxYQcnE07i5epF9ybd+Snup3I596+/Qllqqjt0gHXrIC8P\n/u//4OuvtRHnM2Zos+sCHD4Mly6VS7jCRIpMHPv37wcgKyvLbMGUl7vdcSVxCGtjjsTRvUl3oi5H\n4WjnSK2qtejYoCPHbhwrl5kfDh0qW+Lw9taSRb9+EBKilTiGDoUlS/7sqjtqFEyZUuZQhQkVmTgm\nTZoEQOfOncvlQpcuXaJnz560bt2awMBA1q3TpoROS0tjwIAB6PV6QkJCSE9PNxyzZMkS3Nzc8PT0\nZN++fcW+liQOYa3MUVVVw64G/o388XLVJo5ycXDB3saehDulX8tVVbUutatXQ+/epY/N21v7t18/\nraqqfXtISoIPP9TGfBw9qo37iIyUmXWtWZGN466urowcOZIrV64wadKkQt9WFEVhyZIlJbqQra0t\nH3zwAe3btycpKQk/Pz/69evHsmXL0Ov1bNiwgenTp7N8+XJmzJhBQkICS5cuZdeuXcTGxjJp0iQO\nHy7eUpmSOIS1MkeJA+CZVs+QkZtheOz2iBvnks/hWsO1VOd76y343/9g505o1670cTVpAv/8JwQG\nao8//xycnLQ5rl55RVty9sUXwcYGFiyAeyauEFakyMTxzTffsGPHDvbs2YOPj899iaOk6tWrR716\n9QCoXbs2rVu35uDBg0RHRzNz5kzs7e0ZNWoUb7/9NgBRUVEEBwej1+vR6/WoqkpaWhqOjo5Gr6Wg\nNY7LIjLCmmTmZnI763apP7xLYpL/pEKPW9Zqyfnk86Wagv3QIfj4Y61Ru0GDssWlKFpvqrsa37M6\nbnCwlkjOn4eaNcHNTUsm7u5lu6Yof0UmDgcHB/r3749er6d9+/bletHz589z6tQp/Pz8ePHFF/Hw\n0KaR9vDwIPqPhYqjoqJo1aqV4Rh3d3eio6Pp1auX0fPrFB2KTiUjQ+v+J4Q1iL8dT2PnxlqJ2Mxa\n1tQSR0nl5WldbhctKnvSMOall7QVA1u00B6/9Ra88ALs2wdVSjQdqzA1o3+O+vXr8+qrr7Llj5ar\n/v37M23aNOqWsj9eWloagwYN4oMPPqBGjRolarArqqRz72JTgYGBePl5oSgFZGQ8cHchLOLz45/T\nzrUM9Txl0LJWS7b8VvKJonbt0rrfDh5sgqD+olcv7eeul1/WFoZ69134979Nf/3KLiIigohymvPF\naOJ45513qFu3ruGCYWFhvP3223zwwQclvlhubi7PPPMMw4cPZ8CAAQD4+voSExODt7c3MTEx+Pr6\nAuDv78/OnTsNx545c8bw3F/N/ssQ1JTMFNBJ4hDW48uTX7L2+Fqi/ln0TLam5PaIW6lKHF99pSWN\nchzoXmw6ndbG0aEDPPssPFr6+SAF2pfqwLuNS8Ccu5ONlYLRMvPu3bt57bXXqFu3LnXr1uWVV15h\n9+7dJb6QqqqMHj2aNm3aMOWevnb+/v6EhYWRmZlJWFgYnTppU0v7+fkRHh5OfHw8ERER6HS6YrVv\nwJ8DACVxCGuQlJHE+G3j+W7wd2Zp33iQlrVaci75HKqqkpSRRIFqfGaF7Gz49lv4xz/MEGAR9Hpt\nWpOXX0Y6u1gRo4kjMDCQBQsWcPPmTZKSkvjggw8KZa3i2r9/P2vXrmX37t14e3vj7e3NDz/8QGho\nKPHx8bi7u3PlyhVefvllQOvVFRoaSlBQEOPGjWPx4sXFf1GKDkVRDQOKhLCkj6I/YmCrgbSrZ5lq\nKoBaVWtho9hwOfUybZe15e3It40es2MHtGkDDRuaIcCHmDABbt/WGuiFdVBUI40MV69eZeHChWz/\nY26APn36MGPGDOrXr2+WAI1RFOW+dpL0nHRc5tZje0A6jz1mocCEQHsvNlvcjP2j9pdp7Y3y4Pep\nH63rtuZs0lnOJ5/nx+E/PjCZXbum9XzatEnrOjt+vAWC/Yvz57Wlad97zzztLX8HD/rsLPaxxhKH\ntXvQi8/IzcBpbm2+7pDBH00pQpjVrgu7GPrNUPTOepq4NGHjc5Zf4nXoN0NZd2Ide0fu5feU31l6\ncCnRY6Lv22/iRG2xpqefhuefB3t7CwT7ACdOaIMPH30Uxo7VVhYUpVeWxFEpO7kpKKhIG4ewnI2n\nNzKy/Ug863gSoA+wdDiA1s7RpXEXuum70blxZ8Z9P4607DQc7f9sOywogG++0XpT/dFL3mp4eUFs\nrBbbCy/AoEEyTstSKvEkh5I4hGWoqsrW37byYvsXGdFuBM1qNrN0SABM9p/Mhmc3oCgKVXRV8Kjt\nYVj06a6oKHBxsb6kcVe1atp0JS1aaOM7hGVU3sSBNI4Lyzhy/QjVbKvhXtu6hjzXqlqLhk5/tnR7\nuXpxIuFEoX3+9z+t66u169dP1i+3JKOJY+7cuYbfK8pMuTpFJ1VVwmK2nN1CP/d+lg7DKK+6XpxM\nOGl4rKrazLXPPGPBoIrpbuKo2C20FVeRieOdd97h559/ZuPGPxv1unTpYpagykqn6FClqkpYyJbf\ntvCU21OWDsOoNnXbFCpxHDgADg5aW4K1a99eW7/j7FlLR/L3VGTi8PDwYOPGjcTGxtKtWzfGjBlD\nUlISZyrAXMd3pya5kyFfR4R5ZeRmcDrxdKkmEzQ3r7penLjxZ+JYuVJbC8MSo8RLSlGgb19ZQdBS\nikwcLi4uvP3227Ro0YKIiAgmTZqEoijMnz+/3NboMCUFhQxJHMLMTiee5tFHHsXWxvq7+zRwbEBe\nQR4JdxJIT9d6U5VkDXFL69pVa8wX5ldk4ggPD6dv3778/vvvTJ8+nejoaKpVq8aqVas4cOCAOWMs\nFQUddzLyLR2G+Js5ceMEbeq2sXQYxaIoilZddeMEGzZA9+7wx8oHFYKvL0TfPwxFmEGRiePtt99m\n165dNGvWjOHDh5OXl0dSUhJdu3alXz/rb/iz11UjLVsaOYR5nUg4gVfdCtBI8AcvVy+O3ThGWBiM\nHm3paErG3R1u3tRWEBTmZbRX1RNPPEHHjh0ZO3YsjRo1Yv/+/YSFhZkjtjKpZuNMavZtS4ch/mZO\nJpw0LNlaEfR168usPXOIatcR904XLB1Oieh04OOjLTSVlibdc83JaOJ49913Db+vXr0agDp16pgs\noPJSo4oT6bmplg5D/M2cSKg4VVUAfdz6MPZ2Em1rdibs+ApLh1Nivr5w8KC20NSAAdrvwvRKNACw\nXVkWGzYzRztn0vOkxCHMJykjiYzcDBo7NTa+s5XIzYUv1tgyu99Y1p9YX6zp1q2Jnx9ERMBHH2mL\nPY0dq61aKEyrUo4cB3C0cyIjT0ocwnxOJpykTd02Ra5UaY1++EGbvqOffxtqVa1F5MVIS4dUIr6+\nsHs3dOumLTVbsyZUgJr0Cq/SJg4XB2cyVSlxCPM5caNiNYwDfPklDB2q/T7UayhrT6y1bEAl1Lgx\ntGoF//d/2tiOiRNhwwZLR1X5VdrE4VzViSxVShzCfKKuRNHWta2lwyi27GzYtk2bPh3gea/n+Sbm\nG/6969/cyrpl2eCKSVG06dbvrirdu7c2tuO2fGc0qUqbOGpVcyYbefcI8zh38xw/nP+BQa0HWTqU\nYvvxR2jb9s+xGw2dGnJ07FEu3r5IyJchpV6rwdxsbP78vUYNrdoqPNxy8fwdVNrEUbOaEzmKlDiE\neczcM5NpnafxSLVHLB1KsT1oQsPGzo1ZE7KGlKwUvo752jKBldHdCRB//x1WrbJ0NJVTpU0ctWs4\nk1fltsyeKUzuyLUj7Ivfx2T/yZYOpVgGD4bgYPj2Wxg48P7nbXQ2LHpiETN2zCAzt+KtTfDUU7B5\nM3TpApMnw6VLlo6o8qm0icPZwQmbaqlUkJngRQW24OcFTOs0jep21S0dilHJyVq7xujR8Pbb0KjR\ng/fr2awnHep34MPoD80bYDnQ67UVAjdu1P795BNLR1T5VMqlYwGc7J3QVbtNRgZUrWrpaERldTn1\nMj+c/4FlfZdZOpRi2bEDAgPhueeM7zuv1zwCVgUwpsMYalatCcDNjJvUrFrzj8XSrNeSJdq/depA\nUBC88YZW8mjevGLM/mvtrPuvXwbODs7oHFJlTQ5hUh9Ff8TwdsNxdnC2dCjFsm0bPPlk8fb1qO3B\n0x5P887+dwDIzc/F779+rDhUcUaYt2oFnp7w6KPQsqU0mpeXSps4nOydQBKHMKHvznzHp4c/ZaLf\nREuHUiwFBdqAv+ImDoBZPWYRdiSMo9ePsvb4WjJyM1h9bLXJYjSFjz7Sqqs+/BD+mDVJlFGlrapy\ntndGtbstiUOYxOu7X+erk1+xadAmWtZqaelwiuXQIa3qpmnT4h/T0KkhS4KX8I+N/yCvII91A9cx\n9JuhnE48jWcdT5PFWp5atdJ+OnaEmTMhJUUbYS5Kr1KXOFQ7KXGI8vfbzd/45NdPiPpnFN2bdLd0\nOMVSUADz5pVuPfEhXkMIahZEi1ot6NmsJ8PbDeezY5+Vf5AmVqsWPPEEfPWVpSOp+Cpt4nB2cCa/\nym0yK15vQmHlZu6eybROFWvMxptvamtXvP566Y5f1ncZW4dsBWBku5F8dvQzkjOTyzFC8xg5EhYv\nhhs3LB1JxVZpE0fVKlVRdbncTs+xdCiiEtkdu5v9l/YzuVPFGLMB2lTjq1drS8Pa25fuHIqiYF9F\nO7hVnVY87/U8z218jtz83PIL1AyCg7UeZb6+cOSIpaOpuCpt4lAUBdt8Z26my+hxUT62ndvG4P8N\nZk3IGqrZVrN0OMX2/vswbZrWvlFeFjy2AIcqDkzbMa38TmoGigL/+Q8sWKANFJTBgaVTaRvHAexU\nJ1IyUoHalg5FVGBhR8JY+PNCUrJS2DxkM50adbJ0SMV26ZLWBXX58vI9r43OhnUD19Hhkw5013fn\nudbFGBhiRQYNgvh46N8f9u+HahXne4BVqLQlDgB7nEjOkIkORemlZqcyY8cMlj+1nMtTL1eopFFQ\noH2zHjECnE0wzMTZwZkNz25g/LbxnEw4Wf4XMLEZM7RR5ssqxthNq1KpE0dVnTOpWVJVJUpv5eGV\nPNbiMbo36Y6Nzsb4AVZi505wd9dWx5tmwtoknwY+LHlyCUGfBbEpZpPpLmQCigJz52rJ9c4dS0dT\nsVTyxOHE7WwpcYjSyS/IZ0n0EqZ2mmrpUErk9m1tjqb33oNjx7Rv1aY0uM1gtg3dxvht49l8drNp\nL1bOvLwgIEBKHSVVqds4qtk4k5opJQ5ROssPLad+jfoVqnoKtC63fftq9ffm0rFBRzYN2kS/9f3Y\nNWIXXq4VZyXEWbOgRw9IStJ6XSUkaFOzyxx3RavUJY4aVZxIz5XEIUpuw6kN/L/I/8fqkNWWDsWo\npCQ4cADOnYMpU2DTJnjnHfPH4d/In/efeJ9nNz5LRm7FGXnbpg0cParNHPz669q9mzFDe+6112Dc\nOMvGZ40qdYnD0c6ZxDypqhLFdzXtKrMjZrP57GbCh4Xz6COPWjqkh/rtN3j8cW0KjRs34Nln4fBh\nbZS0JQxrO4zt57fz2q7XWBy82DJBlELjxn9Ov37rlrYyYk4O7N0L+fnw3XcwYIBlY7QmlTpxONk7\nEZ8vJQ5RPMmZyXQN68qzns8SMz7GMJW4tUlPh6lTta62R49qU4mMGmXpqP700ZMf0XZ5W5ztnXnJ\n5yUaORWx6IeVcnGBlSth+HAtcSQkaIMGVVVbltbBQUsuFy9qpRVT9FizdlZdVbV3715atWqFm5sb\nH35Y8gVlalZz5laWlDhKIiIiwtIhlFhufi47ft/BnZzSd41RVZUXv3uRAe4DWPDYgnJJGuV5L48e\nhf/7P23092OPQV6eVi21Y4d1JQ2AmlVrsmvELpIykmi3vB1fn75/CVpVVUnLTivRec353nzsMbh6\nVZuOvVs3WLgQli7VpmavV08beT5lijZh5JgxEBdnttCsglUnjsmTJ7NixQp27tzJxx9/TFJSUomO\n923rxO2sVCrgZ6HFVLTEUaAW8OJ3LzJ261j0i/T8Y+M/eH3365xOPP3A/eNvxzMrYhZ91/XlqXVP\nseHUBnLzc5m4fSLX06/z7mPvllts5XEv8/O1kc6PP679vmwZ9OoFYWFaQ27btmWP0xQefeRRlvZd\nys7hO5mwfQJDvh6C58eezIqYRYFawKjNo3jk3UcY+NVAlh1cxu7Y3ahG1nk293tTd8+n49ChWpK+\ndUsr8V27pk3lcuYM1K+vzbz7xBPaaPT//ldrdxo9WnuckHD/uSv6ktZWW1V1+7ZWUujeXZt99PHH\nHycqKoq+ffsW+xwedZujezScYYuXsbN1b2xtdDR0akh+tgORkVqdcBXbAhr6HCONy3g5d+POreok\nZydQt2oDXJx1uLo+/BrpOemkZKZQ37E+NzNuEnUlCp96fthm16OqcxrX06+jU3Q0dWmKTrEhKUmb\nL8jJ6c9zHD2qTUDXpQvE3DrMpjObGOgxEO/63oWulZGh1bu6uPy5LTMTLl/Wfm/SBOzsICUzhcy8\nTOrVqEfqnRxi4hNo3cSVGtVsuZ5+nWq21XC0c+TAxV+5mpTOwA6BVLHR/pdk52WTlJFE7Wq1UVWV\nS6mXuHkrm7ysqrRrXh90+cTfjufE5d9JvpNKW31TXBz+DCg95w5H4mJpVKs2gS39sbOxQ1VVfr+e\nQH6eDW4NH0GnU1BVSEzU+tLnOVzn8gVHrsZVp0uXP6fGuJF+g70XI6le0JAqOY+AopLrcIX0gkQa\nOzcmJeM2y35Zxa28G5wed5qkjCQi4yM5mXCSwNWBBDQJoE417WR5BXn8eu1XLt66yDOPDuW5ZmNx\ncMxkVsQspu+YTpvabfnqqXDsbOwK3fOCAm0sRHa2tnpc06bG53vKztYaqHfv1v6m3bppI5Nzc7Xq\nDVWFhg21bfHxWpfZLl2090R8PFy4oE393bAh/L//p/3djxzRHlc03vW9iXwxkh/O/8AE3wlM+mES\nm2I24WjvSPzUeLac3cLBqwf5+ODH1KtRj1k9ZpGUkYTbI260qduGi7cucvDqQZo4NyG3wPrmxXJ1\n1RL7hAlaIsnMhI8/htBQrSTSvr1WOnnhBa1btK2t9vf+/HNtXZQVKypm7y1FNZbmLWTnzp2sXLmS\n9evXA7B8+XKuXLnCW2+9VWg/RVEe+k3l16uHeeKdN0nRnQVdHgXVr0FuNarY6LCxgXyyKbjdkGp5\njUh3iQKbHGxyXFCVAnTXO+JgW4Uqttobwt4ObKtlkOkQS64uFVXJJ59slGwXChxuosuvilO6D7er\nHUZJbYpa8zz2ua7k5udSYJuGkugFjldQUXHM10PVFO7YXEFVVWwLHMm9VRddzXhck5/lhvNmVMAx\nrzkFdrfIrHKF3LwCAKpU0T5wVVWrsrj7zUhVQWebg6qCmlsV1e42oKLLrk2BfRKgoOQ4o9hmoNrk\noCS7oVPtyLdLRpdVhwKnC6g/p6N0c0CXpke1v4Wqy4UcRxS7OxTYJ4OioqQ1RLnVHF2uE1VqX0S1\nSyUvF1RAzamK7Z2m5FW9CnVisCmoSr6SSUFOVRRdAaqSh01qc9TUBtjodOTXPEOBfTKKbSY2OJCf\na4OS7Ywu05X8mjHornSF6gnoqqUACvm3GmCTXRvV8RL52VWpfuMx8n+eSA1bJ5o31/5jxsZCRsEt\n8h/9hlp1cqhRA1AVsi95ceOIL+TbYm+vfXNs0iILXfMILu55DB02tGyp3c9r17RvkklJWsNz3bra\nB3p8PNSood3/2rWhQQO4fr3wt8qsLOjUCXJyZqOqszlyRFuF7uxZrdHaxkY7xs1NO1/79tqHTna2\ndr7mzbUvB/Hx2jKv8+Zpr6sySM1O5d397zKjy4xCXzjyCvJY+PNCNpzaQEOnhhy+dhhHO0cSMxLp\n2rgrl1Mvc2rjKXyG+JCWk0YDxwaED7PO5fxUVXvf3P0CtHs3/PST1iaVn681xA8erP1dDx/W3gep\nqdr79v33tQ4O5mDss/Ohx1aGxCGEEKLkSvvxb7VVVb6+vvzrX/8yPD516hTBwcH37WeleU8IISot\nq20cd/6jj9vevXuJi4vjxx9/xN/f38JRCSGEsNoSB8CiRYsYO3Ysubm5TJo0idq1ZXp0IYSwNKst\ncQD06NGDmJgYzp8/z6RJkwo9V9YxHn93TZs2pW3btnh7e+Pn5wdAWloaAwYMQK/XExISQnp6uoWj\ntF6jRo3C1dUVL68/52R62P1bsmQJbm5ueHp6sm/fPkuEbNUedD9nz55No0aN8Pb2xtvbm+3btxue\nk/tZtEuXLtGzZ09at25NYGAg69atA8r5/alWUO3bt1d/+uknNS4uTnV3d1cTExMtHVKF0rRpU/Xm\nzZuFts2fP1+dMGGCmpWVpY4fP15dsGCBhaKzfnv37lUPHz6stmnTxrCtqPt348YN1d3dXb148aIa\nERGhent7Wypsq/Wg+zl79mz1vffeu29fuZ8Pd+3aNfXIkSOqqqpqYmKi2qxZMzU1NbVc359WXeIo\nyr1jPJo0aWIY4yFKRv1Lx4Lo6GhGjx6Nvb09o0aNknv6EAEBAdSsWXh0eVH3LyoqiuDgYPR6PT16\n9NBGTaeVbNR0Zfeg+wkP7vwi9/Ph6tWrR/v27QGoXbs2rVu35uDBg+X6/qyQiePgwYN4eHgYHnt6\nevLLL79YMKKKR1EUgoKCCAkJYfNmbQ2Fe++rh4cH0dHRlgyxwinq/kVFRdGqVSvDfu7u7nJvi+nD\nDz+kU6dOzJ8/3/BhFh0dLfezmM6fP8+pU6fw8/Mr1/dnhUwcouz279/PsWPHePvtt5k2bRrXr1+X\nrs1lVJL7J+OPjAsNDSU2Npbw8HB+//13VqxYATz4Psv9vF9aWhqDBg3igw8+oEaNGuX6/qyQicPX\n15czZ84YHp86dYpOnSrWYjuWVr9+fQBatWpF//792bJlC76+vsTExAAQExODr6+vJUOscIq6f/7+\n/pw+/efcWWfOnJF7Wwx169ZFURScnZ0ZP348mzZpS9PK/TQuNzeXZ555huHDhzPgj/ngy/P9WSET\nh4zxKJuMjAxDsT8xMZHw8HCCg4Px9/cnLCyMzMxMwsLCJBmXUFH3z8/Pj/DwcOLj44mIiECn0+Ho\n6Aw1o5YAAAZSSURBVGjhaK3ftWvXAMjLy2PdunX06dMHkPtpjKqqjB49mjZt2jBlyhTD9nJ9f5qg\nUd8sIiIiVA8PD7VFixbq4sWLLR1OhXLhwgW1Xbt2art27dSgoCB15cqVqqqqampqqtq/f3+1cePG\n6oABA9S0tDQLR2q9Bg8erNavX1+1s7NTGzVqpIaFhT30/i1atEht0aKF2qpVK3Xv3r0WjNw63b2f\ntra2aqNGjdSVK1eqw4cPV728vFQfHx916tSphXoByv0sWmRkpKooitquXTu1ffv2avv27dXt27eX\n6/vTaueqEkIIYZ0qZFWVEEIIy5HEIYQQokQkcQghhCgRSRxCCCFKRBKHqDDi4uIKTYJnTUaOHMnX\nX39tknPXqFHDJOcVorQkcQjxEAUFBcXaz5Qjl2VUtLA2kjhEhXThwgU6dOjAr7/+et9zgYGBzJw5\nk/bt2+Pt7c358+d59tlnadOmDcuXLzfst3PnTp577jk6d+7MvHnzDNtr1KjBG2+8Qfv27e+bA+3T\nTz/Fz88PHx8fXnnlFXJycgzP/fzzz/j4+BAYGGiYQG716tVMnDjRsM9TTz3F3r17Ddd56623aN26\nNc8//zzJyckAXL16ldGjR+Ph4VEorvT0dHr37k2HDh3o06cPP/30E6CVxDw9PRk/fjyenp68/PLL\n5ObmAtoU29OnT8fb2xsfHx9iY2MB2LhxI0899RQBAQF88sknpfgLiL8zSRyiwjl79izPPvssn332\nGT4+Pvc9rygKN27c4PDhw4SEhODn58f8+fP55ZdfmDdvHqqqkpGRwfz58/n888/Zv38/J06cMHzY\nZ2RkUKdOHY4ePUqXLl0KnfuZZ54hOjqaQ4cOkZGRwZ49ewBttO7BgweJiIjg3XffZcyYMQ+M/d7S\nQ0ZGBg0aNODUqVNUr16drVu3AvDOO+/g4eFBTEwMWVlZhv2rVq3Kpk2bOHz4MMuXL2f27NmG586c\nOcPAgQM5efIkcXFxHDhwAIA33niDFi1acOTIEQ4cOEC9evWIi4vjf//7H99++y27du1i3bp1hlHa\nQhSHJA5RoSQkJBASEsK6dese2t4xZMgQdDodnTt3pnXr1rRo0YIaNWrQuHFjTp06xfbt2zl9+jSd\nO3fGx8eHo0ePGpKATqdj5MiRDzzvhQsXGDZsGG3atGHbtm2Eh4cDWkJ4+umncXR0xM/PD1VVuXLl\nykOrmapUqcLQoUMBCAoKMnzYh4eHM2rUKBRFYdSoUYb9bWxsWLx4MV26dKFfv34cPHjQsMRAw4YN\n6dWrFzqdjh49enDgwAFyc3PZs2ePIYnZ2dlRtWpVvv76a6Kjo/H19cXf35+rV6+ye/fuYv4FhLDy\npWOF+CsXFxeaNGlCZGSkYYroUaNGceTIERo2bGj41u7i4gJoH5Z3f7/7ODs7m4KCAh5//HFWrVp1\n3zWqVq2Kk5PTA68/Y8YMXn/9ddauXcvixYs5evSo4bm/TsKgKAoODg5kZ2cbtt2tjgKwt7fHwcEB\nAFtb20KliwdN6BAREUFkZCTh4eFUr16dunXrGhLHX1/jnTt3DOf567kKCgoYOXIks2bNeuBrFMIY\nKXGICsXOzo5vvvmGNWvWsH79egDCwsI4cuSIIWkYoygK/fr1IzIy0jBbaHJyMvHx8UaPvXr1Km5u\nbqSkpLB+/XpDiUJVVb777jvS09M5ePAgOp2OBg0a0KlTJ3755RdycnI4efJksdaNCA4O5rPPPqOg\noIDVq1cbtl+5coWGDRvi6OjIl19+WSgJ/ZWqqtja2tKzZ0/+f3t3j6owEEZh+KQyuAexzhRRsLSI\naZJGwUpcQjYg2AiKpHYBs4Z0WULWYGUbiNjYSSqtrlwhF5nywvt0M/DNT3WYKWastXo+n2rbVo/H\nQ+v1WkVRvPdb17Vut9vXdQE/CA78K57nqd/vqyxLnU6nr2HheV7ndZHv+7LWarfbKQxDJUmipmne\nNX85Ho+az+dK01RxHH/MM5lMFEWRNpuNrLWSpOFwqMViofF4rMPhoNls9lHTtc7tdqvz+SxjjHq9\n3rt/uVzqfr8rCAJVVSVjTOdYv9t5nutyuWg0Gmk6nep6vWowGGi/3yvLMoVhqNVqxf/ycMIjhwAA\nJ5w4AABOCA4AgBOCAwDghOAAADghOAAATggOAICTF0xU5YTM4g51AAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## question:\n", "\n", "Why is the green abundance distribution shifted left?? didn't we just eliminate abundance-1 k-mers?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "## DIGRESSION - back to presentation to talk about digital normalization" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "# run digital normalization\n", "!python /usr/local/share/khmer/scripts/normalize-by-median.py -x 2e8 -N 4 -k 20 -C 20 reads.fa" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r\n", "PARAMETERS:\r\n", " - kmer size = 20 \t\t(-k)\r\n", " - n hashes = 4 \t\t(-N)\r\n", " - min hashsize = 2e+08 \t(-x)\r\n", " - paired =\t False \t\t(-p)\r\n", "\r\n", "Estimated memory usage is 8e+08 bytes (n_hashes x min_hashsize)\r\n", "--------\r\n", "making hashtable\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "DONE with reads.fa ; kept 3044 of 16000 or 19 %\r\n", "output in reads.fa.keep\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "fp rate estimated to be 0.000\r\n" ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "# let's look at the abundance distribution post-diginorm\n", "!python /usr/local/share/khmer/scripts/load-into-counting.py -x 1e8 -N 4 -k 20 counts-dn.kh reads.fa.keep\n", "!python /usr/local/share/khmer/scripts/abundance-dist.py -s counts-dn.kh reads.fa.keep reads-dn.dist\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r\n", "PARAMETERS:\r\n", " - kmer size = 20 \t\t(-k)\r\n", " - n hashes = 4 \t\t(-N)\r\n", " - min hashsize = 1e+08 \t(-x)\r\n", "\r\n", "Estimated memory usage is 4e+08 bytes (n_hashes x min_hashsize)\r\n", "--------\r\n", "Saving hashtable to counts-dn.kh\r\n", "Loading kmers from sequences in ['reads.fa.keep']\r\n", "making hashtable\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "consuming input reads.fa.keep\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "saving counts-dn.kh\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "fp rate estimated to be 0.000\r\n", "DONE.\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "hashtable from counts-dn.kh\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "K: 20\r\n", "HT sizes: [100000007, 100000037, 100000039, 100000049]\r\n", "outputting to reads-dn.dist\r\n", "** squashing existing file reads-dn.dist\r\n", "preparing hist...\r\n" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "dist_dn = numpy.loadtxt('reads-dn.dist')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(dist[:,0], dist[:,1], label='reads')\n", "plot(dist_filt[:,0], dist_filt[:,1], label='filtered reads')\n", "plot(dist_dn[:,0], dist_dn[:,1], label='diginorm reads')\n", "xlabel('k-mer abundance')\n", "ylabel('# of k-mers with that abundance')\n", "axis(ymax=1000)\n", "legend()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 24, "text": [ "" ] }, { "output_type": "display_data", "png": "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\nAQEPJA5d1alThzp16gBQs2ZNmjdvzpEjR4iJiWHmzJnY29szatQoFi5cCEB0dDS9evVCrVajVquR\nZZn09HScnJy0tiXJMkiFxikiU5keR61aytst4bGQlZdFanZqhX9562Ji0MRSj5u6N+ViysUKHcF+\n9CisWqVMaterV7m4JElZTVWsQYnquL16KYnk4kXlPZWXl5JMvL0r16agf2UmDgcHB5599lnUajWt\nW7fWa6MXL17kzJkztGvXjldffRUfH+UYaR8fH2KKChVHR0fTrFkzzXO8vb2JiYmhe/fuj37xoiNH\nJJVMZqay/M+gKjPH4eqqzAhW5rwrwWIkpCbQwKUBKsn4a1KauimJQ1f5+cqS2+XLK580tBk7VqkY\n+MQTyuN582DECDhwQDlMWjAfWv866taty9tvv83WopmrZ599lilTplC7guvx0tPTGTRoEB9++CHV\nq1fXacKurJ5OyWJTISkptAEkqZDMzIferl+V6XFIkrKuMTER1Gr9xiWYnS9PfUkrj0qM81RCU/em\nbD2v+0FRu3cry28HDzZAUP/QvbvyUez115XCUB98AO++a/j2rV1UVBRRejrzRWvieP/996ldu7am\nwfDwcBYuXMiHH36oc2N5eXk8//zzDBs2jP79+wMQGBhIXFwc/v7+xMXFERgYCEBQUBC7du3SPPfc\nuXOar/1TycTB0aNkIIHKiImjMr0FkTgeC9+e/pavTn1F9Gtln2RrSF41vCrU4/juOyVp6HGje7mp\nVMocR5s28MIL8GTFz4MUgJCQEEKKJ5eAucWHjVWA1j7znj17eOedd6hduza1a9dm+vTp7NmzR+eG\nZFlm9OjRtGjRgskl1toFBQURHh5OVlYW4eHhtG+vHC3drl07duzYQUJCAlFRUahUqnLNbyBJyjFV\nxuhxyHLlehygLC1JrPhqF8H8JWcm80bkG/w8+GejzG88TFP3plxIuYAsyyRnJlMoaz9ZIScHfvoJ\nXnrJCAGWQa1WjjV5/XWMs9hFKBetiSMkJITFixdz584dkpOT+fDDD0tlrfI6ePAgX331FXv27MHf\n3x9/f3+2b99OWFgYCQkJeHt7c/36dV5//XVAWdUVFhZGaGgo48ePZ8WKFeVrqGgDoCTJmg1FBpOX\npyz/eNixoOVVuzbcvq2/mASz83HMxwxsNpBWdUwzTAXg7uiOjWTDtbRrtFzTkoX7F2p9zs6d0KIF\n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\n", "text": [ "" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Note, after running digital normalization, you have a LOT less data:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!ls -la reads.fa*" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "-rw-r--r-- 1 root root 1780890 2013-06-19 13:56 reads.fa\r\n", "-rw-r--r-- 1 root root 1361833 2013-06-19 13:56 reads.fa.abundfilt\r\n", "-rw-r--r-- 1 root root 336948 2013-06-19 13:56 reads.fa.keep\r\n" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 25 } ], "metadata": {} } ] }