{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import pickle\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib\n", "%matplotlib inline\n", "matplotlib.style.use('ggplot')\n", "from collections import Counter" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
uidiidruiestwasImpossibleerrI_uU_i
064263.03.649495{'was_impossible': False}0.649495233168
11778313.03.175855{'was_impossible': False}0.17585512599
27644.03.325020{'was_impossible': False}0.67498081128
\n", "
" ], "text/plain": [ " uid iid rui est wasImpossible err I_u U_i\n", "0 64 26 3.0 3.649495 {'was_impossible': False} 0.649495 233 168\n", "1 177 831 3.0 3.175855 {'was_impossible': False} 0.175855 125 99\n", "2 76 4 4.0 3.325020 {'was_impossible': False} 0.674980 81 128" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dump_file = '/home/nico/.pyrec_data/dumps/161017-15h46m41-KNNBasic' # launch \n", "dump = pickle.load(open(dump_file, 'rb'))['fold_0']\n", "\n", "df = pd.DataFrame(dump['predictions'], columns=['uid', 'iid', 'rui', 'est', 'wasImpossible'])\n", "# add the error column\n", "df['err'] = abs(df.est - df.rui)\n", "# add the |I_u| and |U_i| columns\n", "df['I_u'] = df.uid.apply(lambda uid: len(dump['trainset'].ur[uid]))\n", "df['U_i'] = df.iid.apply(lambda iid: len(dump['trainset'].ir[iid]))\n", "df[:3]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
uidiidruiestwasImpossibleerrI_uU_i
702274414204.04.0{'was_impossible': False}0.0273
23992811861.01.0{'was_impossible': False}0.05832
1187914514741.01.0{'was_impossible': False}0.01403
1668850514741.01.0{'was_impossible': False}0.01403
6717288891.01.0{'was_impossible': False}0.05832
129224415513.03.0{'was_impossible': False}0.01441
604630312621.01.0{'was_impossible': False}0.05324
1244541116184.04.0{'was_impossible': False}0.0871
374830313791.01.0{'was_impossible': False}0.05323
1688245314672.02.0{'was_impossible': False}0.01791
\n", "
" ], "text/plain": [ " uid iid rui est wasImpossible err I_u U_i\n", "7022 744 1420 4.0 4.0 {'was_impossible': False} 0.0 27 3\n", "2399 28 1186 1.0 1.0 {'was_impossible': False} 0.0 583 2\n", "11879 145 1474 1.0 1.0 {'was_impossible': False} 0.0 140 3\n", "16688 505 1474 1.0 1.0 {'was_impossible': False} 0.0 140 3\n", "6717 28 889 1.0 1.0 {'was_impossible': False} 0.0 583 2\n", "1292 244 1551 3.0 3.0 {'was_impossible': False} 0.0 144 1\n", "6046 303 1262 1.0 1.0 {'was_impossible': False} 0.0 532 4\n", "12445 411 1618 4.0 4.0 {'was_impossible': False} 0.0 87 1\n", "3748 303 1379 1.0 1.0 {'was_impossible': False} 0.0 532 3\n", "16882 453 1467 2.0 2.0 {'was_impossible': False} 0.0 179 1" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# let's take a look at predictions where error is very low\n", "best_preds = df.sort_values(by='err')[:10]\n", "best_preds" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "These are actually lucky shots: $|U_i|$ is always very low, meaning that very few users have rated the target item. This implies that the set of elligible neighbors is very small... And, it just happens that all the ratings from the neighbors are the same (and mostly, are equal to that of the target user). Not convinced ? try that:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "7022 0.0\n", "2399 0.0\n", "11879 0.0\n", "16688 0.0\n", "6717 0.0\n", "1292 0.0\n", "6046 0.0\n", "12445 0.0\n", "3748 0.0\n", "16882 0.0\n", "Name: iid, dtype: float64" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def std_dev(ratings):\n", " \"\"\"Return standard deviation of ratings contained in a list of (id, rating) tuples.\"\"\"\n", " return np.std([r for (_, r) in ratings])\n", " \n", "best_preds.iid.apply(lambda x:std_dev(dump['trainset'].ir[x]))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
uidiidruiestwasImpossibleerrI_uU_i
107012413391.04.507309{'was_impossible': False}3.5073092444
45342811771.04.518146{'was_impossible': False}3.5181465832
171163863251.04.526533{'was_impossible': False}3.526533121229
120162813951.04.568176{'was_impossible': False}3.5681765835
175025484021.04.599840{'was_impossible': False}3.599840396215
266146513951.04.609239{'was_impossible': False}3.609239565
151291844021.04.645398{'was_impossible': False}3.64539871215
64146216215.01.000000{'was_impossible': False}4.0000002861
21991715261.05.000000{'was_impossible': False}4.000000681
1843426710695.01.000000{'was_impossible': False}4.0000003681
\n", "
" ], "text/plain": [ " uid iid rui est wasImpossible err I_u U_i\n", "10701 24 1339 1.0 4.507309 {'was_impossible': False} 3.507309 244 4\n", "4534 28 1177 1.0 4.518146 {'was_impossible': False} 3.518146 583 2\n", "17116 386 325 1.0 4.526533 {'was_impossible': False} 3.526533 121 229\n", "12016 28 1395 1.0 4.568176 {'was_impossible': False} 3.568176 583 5\n", "17502 548 402 1.0 4.599840 {'was_impossible': False} 3.599840 396 215\n", "2661 465 1395 1.0 4.609239 {'was_impossible': False} 3.609239 56 5\n", "15129 184 402 1.0 4.645398 {'was_impossible': False} 3.645398 71 215\n", "6414 62 1621 5.0 1.000000 {'was_impossible': False} 4.000000 286 1\n", "2199 17 1526 1.0 5.000000 {'was_impossible': False} 4.000000 68 1\n", "18434 267 1069 5.0 1.000000 {'was_impossible': False} 4.000000 368 1" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Now, let's take a look at predictions where error is very high\n", "worst_preds = df.sort_values(by='err')[-10:]\n", "worst_preds" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABkMAAAQrCAYAAAA/l9sUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XtwnfV9J/63LB1f5LssX2IbMAZs4poiLqHDWgMbmHRz\nmyYb2OAN3VpjzIZ6s21mKGUTIOCkbgsZk5mG9o+tGWS2ITFpA5OdEgY2YZuRlwmTLJkJgQCugJQ1\nlhcLWRnLNseyfn/kFyVa8EWXc/Gj1+sv63mec76fz3kePufovDk6DUNDQ0MBAAAAAAAoqCm1LgAA\nAAAAAKCShCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAEAAAA\nAAAoNGEIAAAAAABQaMIQAAAAAACg0IQhx9HV1VXrEiZcEXtKitlXEXtKittXERXxXOnp9FHEvorY\nU1EV9VwVsa8i9pQUs68i9lRURTxXRewpKWZfRewpKW5fRVTEc6Wn00cR+6rHnsYdhvT29uarX/1q\nbrjhhvz+7/9+brnllnR3d484ZufOnfn0pz+d3//938+XvvSl7N27d7zLVtyuXbtqXcKEK2JPSTH7\nKmJPSTH7euGFF3L33Xfn05/+dK677rr88Ic/PO6x//W//tdcd911eeyxx6pY4dgU8Vzp6fRRxL6K\n2JP5d3opYl9F7CkpZl9F7MkMPH0UsaekmH0VsaekuH39yiOPPJLrrrsuO3bsGN5WLpezffv23HDD\nDfmDP/iDbNu2LQcOHKhhlaemiOdKT6ePIvZVjz2NKww5ePBg7rjjjpRKpdx22235yle+kv/wH/5D\nZs2aNXzMo48+mscffzw33nhj/vzP/zzTpk3L1q1bc/To0XEXD1BrR44cyYoVK3LDDTec8Lhnnnkm\nu3fvTktLS5UqA6gs8w+YzMxAgGT37t357ne/m7POOmvE9s7Ozjz77LO5+eabs2XLlrz11lvZtm1b\njaoE+LVxhSGPPvpoWltbc9NNN2XlypVZuHBhfvu3fzuLFi0aPuY73/lOrrnmmlx66aU588wz85nP\nfCa9vb155plnxl08QK21tbXluuuuy2WXXXbcY3p7e/PAAw/kj/7ojzJlir9OCBSD+QdMZmYgMNkd\nPnw4X/3qV3PTTTdl5syZw9sHBgby1FNPZcOGDVmzZk3OPvvsbN68OS+++GJ2795dw4oBxhmG/OhH\nP8o555yTe++9NzfeeGNuvfXWfPe73x3ev2/fvvT19eWCCy4Y3tbc3JzzzjsvL7300niWBjgtDA0N\n5b777svHPvaxLF++vNblAFSN+QdMZmYgUHTbt2/PJZdckrVr147Y3t3dncHBwRHbly5dmtbWVu8F\nAjU3rjCkp6cnTzzxRJYuXZrbbrstH/jAB/LAAw/k+9//fpKkr68vSTJ37twRt5s7d+7wvnq1ePHi\nWpcw4YrYU1LMvorYU1Lcvk7k0UcfTVNTUz74wQ/WupRRKeK50tPpo4h9FbGnkzH/6ksR+ypiT0kx\n+ypiTydjBtaPIvaUFLOvIvaUFLOvXbt25bXXXsunPvWpd+zr6+tLU1NTmpubR2z3XmBt6On0UcS+\n6rGnpvHceGhoKOecc07Wr1+fJFmxYkX+5V/+JU8++WSuuOKKE97uRB8T7urqescXrLz3ve/N7/3e\n742n3FHp6Oio2lrVUsSekmL2VcSekur29e1vfzsvvPDCiG3r1q1Le3t71Wro7u7Od77zndxzzz2j\nup0ZWBl6On0Usa9q91TrGWj+1Z8i9lXEnpJi9mUGnhozsDKK2FNSzL6K2FNSvN+D9+/fn87Oztxx\nxx1pajr1txWHhoZOuN8MrAw9nT6K2Fc9vgYcVxgyf/78LFu2bMS2ZcuWDX8fyLx585IkBw4cGP53\nkvT392fFihXHvd/29vbjDuq33nqrKl++PmfOnPT391d8nWoqYk9JMfsqYk9JdfpqamrK/Pnz83u/\n93tVfdH0bn72s5+lv78/f/iHfzi87dixY3nwwQfz2GOP5b777nvX25mBlVHvPTUd6M2Rv/piVdaa\n9kdfyNG59ftFrvV+rsaiWj3Vyww0/+pPEfsqYk9JMfsyA83AWqr3nrwG/LV6P1djVbTfg7u7u9Pf\n359bb711eNuxY8fy/PPP5/HHH89tt92Wo0ePZmBgYMSnQ/r7+0e8N/j/MgMro957MgN/rd7P1VjU\n42vAcYUhq1evzp49e0Zs27NnT1pbW5MkixYtyrx58/KTn/wkZ511VpJffpHSyy+/nH/zb/7NmNY8\nevRoyuXyeMo+JUNDQ1VZp5qK2FNSzL6K2FNS3L6O54orrshv//Zvj9j2Z3/2Z7niiivy/ve/f0z3\naQaOXd33dPhQyv/8YlWWajx8KOXm+n0s6v5cjUERezoR86/+FLGvIvaUFLOvIvZ0ImZgfan7nrwG\n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\na9PW1pYkueuuu/LCCy+MuM0HPvCBbNq0qeq1Avy/hCEAAAAAwEm1trbm+uuvz5IlS5Ik//N//s/c\nc889ueeee7J8+fI0NDTk6quvzvr16zM0NJQkmTZtWi1LBhgmDIEKKx06mBw6OKrbDBzYn9Lg4OgX\nmzEz5RkzR387AAAAgJO4+OKLR/y8fv36PPHEE3n55ZezfPnyJL8MP+bMmVOL8gBOSBgClXboYA7f\nWp2Pg06/e3siDAEAAAAq7NixY3n66adz5MiRrF69enh7V1dXvv/972fevHm55JJLcu2112bq1Kk1\nrBTgl4QhAAAAAMAp+fnPf57bb7895XI506dPzy233JKlS5cmSdrb27Nw4cLMnz8/r732Wr72ta/l\njTfeyM0331zjqgGEIQAAAADAKVq2bFm+/OUv5+DBg/nBD36Q++67L1u2bMmyZcty9dVXDx93xhln\nZN68efnSl76Uffv2ZdGiRTWsGkAYAgAAAACcosbGxixevDhJsnLlyuzevTuPPfZYbrzxxncce955\n5yVJ9u7de8IwpKurK7t27RqxbfHixeno6MicOXOGv4y9kkqlUlpaWiq+TjXVe08DB/ZXba3GxsbM\nruPHot7P1VhUq6eGhoYkSWdnZ3p6ekbsW7duXdrb24d/FoYAAAAAAGMyNDSUcrn8rvteeeWVJMm8\nefNOeB/t7e0j3rD8Tf39/ce9/4nU0tKS3t7eiq9TTfXeU2lwsGprDQ4O1vVjUe/naiyq1VOpVMrC\nhQvT0dFx0mOFIQDj8MILL+Tb3/52uru709fXl1tuuSWXXnppkl8+0X7961/Pj3/84/T09KS5uTkX\nXHBBrr/++syfP7/GlQOMj/kHTGZmIDBZff3rX89FF12UBQsW5NChQ+nq6srzzz+f22+/PT09Penq\n6spFF12U2bNn57XXXsuOHTuyZs2anHnmmbUuHUAYAjAeR44cyYoVK/L+978/27Zte8e+1157Ldde\ne23OOuusHDx4MA888EDuueee/MVf/EWNKgaYGOYfMJmZgcBkdeDAgdx3331566230tzcnLPOOiu3\n33571q5dm/379+cnP/lJHnvssRw5ciQLFizI5Zdfnk984hO1LhsgiTAEYFza2trS1tb2rvuam5tz\n2223jdi2cePGfP7zn8/+/fuzYMGCapQIUBHmHzCZmYHAZHXTTTcdd9+CBQty1113Va8YgFGaUusC\nACaTgwcPpqGhITNnzqx1KQBVZf4Bk5kZCABQe8IQgCopl8t56KGH0t7enunTp9e6HICqMf+AycwM\nBACoD8IQgCoYHBzMvffem4aGhmzatKnW5QBUjfkHTGZmIABA/fCdIQAV9qtfgvfv358vfOELJ/0/\nAru6urJr164R2xYvXpyOjo7MmTMnQ0NDp7z24X17c+zgL0Zd86EDvZmeU18nSabMnJ3pi5aMeq1q\nKZVKaWlpqXUZxzVwYH/V1mpsbMzsOn4s6v1cjUW1empoaEiSdHZ2pqenZ8S+devWpb29veI1/KZa\nzr+xKuL1lxSzr3rvyVz/NTOwNjNwLK8DvQasPrPi1+r9XI1VNfqqt/kHUK+EIQAV9Ktfgvft25c7\n77wzs2bNOult2tvbj/titb+/P+Vy+ZTXL/X35fCt1fm/EKffvT0DTVOrstZYtLS0pLe3t9ZlHFdp\ncLBqaw0ODtb1Y1Hv52osqtVTqVTKwoUL09HRUfG1TqbW82+sinj9JcXsq957Mtd/zQyszQys1utA\nrwHHx6z4tXo/V2NVjb7qaf4B1DNhCMA4HD58OHv37h3+uaenJ6+++mpmzZqVlpaWbNu2La+++mr+\ny3/5Lzl69Gj6+vqSJLNmzUpTkxEMnL7MP2AyMwMBAE4/XoUBjEN3d3e2bNky/PODDz6YJLnyyivz\n7/7dv8uPfvSjJMktt9wy4nZ33nln1qxZU71CASaY+QdMZmYgAMDpRxgCMA5r1qzJzp07j7v/RPsA\nTmfmHzCZmYEAAKefcYch3/zmN/P3f//3I7YtXbo0X/nKV5Ik5XI5O3bsyNNPP51yuZwLL7wwmzZt\nyty5c8e7NAAAAAAAwElNyCdDzjjjjHzhC1/I0NBQkqSxsXF4X2dnZ3784x/n5ptvzowZM3L//fdn\n27Zt+eIXvzgRSwMAAAAAAJzQlIm4k8bGxsyZMydz587N3LlzM2vWrCTJwMBAnnrqqWzYsCFr1qzJ\n2Wefnc2bN+fFF1/M7t27J2JpAAAAAACAE5qQT4a88cYb+fSnP52pU6fmvPPOy6c+9am0tramu7s7\ng4ODWbt27fCxS5cuTWtra1566aWce+65E7E8AAAAAADAcY07DDnvvPOyefPmLF26NH19ffnmN7+Z\nO++8M9u2bUtfX1+amprS3Nw84jZz585NX1/feJcGAAAAAAA4qXGHIW1tbcP/PvPMM3Puuedm8+bN\nefrpp1Mqld71Nr/6bhEAAAAAAIBKm5A/k/Wbmpub8573vCd79+7NBRdckKNHj2ZgYGDEp0P6+/sz\nb968495HV1dXdu3aNWLb4sWL09HRkTlz5lQlTCmVSmlpaan4OtVUxJ6S+u9r4MD+qq3V2NiY2XX8\nWFTjXDU0NCRJOjs709PTM2LfunXr0t7eXtH1AQAAAID6M+FhyOHDh9PT05P58+dn5cqVaWxszHPP\nPZfLLrssSbJnz568+eabWbVq1XHvo729/bhvWPb396dcLk902e/Q0tKS3t7eiq9TTUXsKan/vkqD\ng1Vba3BwsK4fi2qcq1KplIULF6ajo6Oi6wAAAAAAp49xhyH/7b/9t1xyySVZuHBhent78/DDD6ex\nsTHr1q1Lc3NzrrrqquzYsSMzZ87MjBkz8sADD2T16tW+PB0AAAAAAKiKcYch+/fvz1/91V/lF7/4\nRebMmZPzzz8/W7duzezZs5MkGzZsyJQpU3LvvfemXC6nra0tN9xww7gLBwAAAAAAOBXjDkM++9nP\nnnB/qVTKxo0bs3HjxvEuBQAAAAAAMGpTal0AAAAAAABAJQlDAAAAAACAQhOGAAAAAAAAhSYMAQAA\nAAAACk0YAgAAAAAAFJowBAAAAAAAKDRhCAAAAAAAUGjCEAAAAAAAoNCEIQAAAAAAQKEJQwAAAAAA\ngEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACg0YQgAAAAAAFBowhAAAAAAAKDQ\nhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEI\nAAAAAABQaMIQAAAAAACg0IQhAAAAAABAoQlDAAAAAACAQhOGAAAAAAAAhdZU6wIAAAAAgPr3xBNP\n5Mknn8y+ffuSJGeccUauvfbatLW1JUnK5XJ27NiRp59+OuVyORdeeGE2bdqUuXPn1rJsgCQ+GQIA\nAAAAnILW1tZcf/31ufvuu3P33Xdn7dq1ueeee/L6668nSTo7O/Pss8/m5ptvzpYtW/LWW29l27Zt\nNa4a4JeEIQAAAADASV188cVpa2vLkiVLsmTJkqxfvz7Tp0/Pyy+/nIGBgTz11FPZsGFD1qxZk7PP\nPjubN2/Oiy++mN27d9e6dABhCAAAAAAwOseOHcuuXbty5MiRrFq1Kt3d3RkcHMzatWuHj1m6dGla\nW1vz0ksv1bBSgF/ynSEAAAAAwCn5+c9/nttvvz3lcjnTp0/PLbfckmXLluWVV15JU1NTmpubRxw/\nd+7c9PX11ahagF8ThgAAAAAAp2TZsmX58pe/nIMHD+YHP/hB7rvvvmzZsuW4xw8NDVWxOoDjE4YA\nAAAAAKeksbExixcvTpKsXLkyu3fvzmOPPZbLL788R48ezcDAwIhPh/T392fevHknvM+urq7s2rVr\nxLbFixeno6Mjc+bMqUqgUiqV0tLSUvF1qqneexo4sL9qazU2NmZ2HT8W9X6uxqJaPTU0NCRJOjs7\n09PTM2LfunXr0t7ePvyzMAQAAAAAGJOhoaGUy+WsXLkyjY2Nee6553LZZZclSfbs2ZM333wzq1at\nOuF9tLe3j3jD8jf19/enXC5PeN3/r5aWlvT29lZ8nWqq955Kg4NVW2twcLCuH4t6P1djUa2eSqVS\nFi5cmI6OjpMeKwwBAAAAAE7q61//ei666KIsWLAghw4dSldXV55//vncfvvtaW5uzlVXXZUdO3Zk\n5syZmTFjRh544IGsXr065557bq1LBxCGAAAAAAAnd+DAgdx3331566230tzcnLPOOiu333571q5d\nmyTZsGFDpkyZknvvvTflcjltbW254YYbalw1wC8JQwAAAACAk7rppptOuL9UKmXjxo3ZuHFjlSoC\nOHVTal0AAAAAAABAJQlDAAAAAACAQhOGAAAAAAAAhSYMAQAAAAAACk0YAgAAAAAAFJowBAAAAAAA\nKLSmWhcAcDp74YUX8u1vfzvd3d3p6+vLLbfckksvvXTEMTt37sz3vve9HDx4MKtXr86NN96YJUuW\n1KhigIlh/gGTmRkIAHD68ckQgHE4cuRIVqxYkRtuuOFd9z/66KN5/PHHc+ONN+bP//zPM23atGzd\nujVHjx6tcqUAE8v8AyYzMxAA4PQjDAEYh7a2tlx33XW57LLL3nX/d77znVxzzTW59NJLc+aZZ+Yz\nn/lMent788wzz1S5UoCJZf4Bk5kZCABw+hGGAFTIvn370tfXlwsuuGB4W3Nzc84777y89NJLNawM\noLLMP2AyMwMBAOqTMASgQvr6+pIkc+fOHbF97ty5w/sAisj8AyYzMxAAoD75AnWAKhsaGsqUKcfP\noru6urJr164R2xYvXpyOjo7MmTMnQ0NDp7zWwIH9Y65ztBobGzO7paVq641WqVRKSx3X51z9Wr2f\nq7GoVk8NDQ1Jks7OzvT09IzYt27durS3t1e8hhOp5vwbqyJef0kx+6r3noo61w/v25tjB38xqtsc\nOtCb6Rndf79TZs7O9EWj+7JxM3Ckal2DXleMT1FnxVjU+7kaq2r0Ve/zD6BeCEMAKmTevHlJkgMH\nDgz/O0n6+/uzYsWK496uvb39uC9W+/v7Uy6XT7mG0uDgKR87XoODg+nt7a3aeqPV0tJS1/U5V79W\n7+dqLKrVU6lUysKFC9PR0VHxtU6kHubfWBXx+kuK2Ve991TUuV7q78vhWzdVfJ3pd2/PQNPUUd3G\nDBypWteg1xXjU9RZMRb1fq7Gqhp91cv8A6h3/kwWQIUsWrQo8+bNy09+8pPhbQMDA3n55ZezevXq\nGlYGUFnmHzCZmYEAAPXJJ0MAxuHw4cPZu3fv8M89PT159dVXM2vWrLS2tubDH/5wvvWtb2XJkiVZ\ntGhRvvGNb2TBggV53/veV8OqAcbP/AMmMzMQAOD0IwwBGIfu7u5s2bJl+OcHH3wwSXLllVdm8+bN\n+djHPpYjR47kb//2b3Pw4MG8973vzec///k0NRm/wOnN/AMmMzMQAOD045UYwDisWbMmO3fuPOEx\nn/zkJ/PJT36yShUBVIf5B0xmZiAAwOnHd4YAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAEAAAA\nAAAoNGEIAAAAAABQaMIQAAAAAACg0IQhAAAAAABAoQlDAAAAAACAQhOGAAAAAAAAhSYMAQAAAAAA\nCk0YAgAAAAAAFFrTRN7ZI488km984xv58Ic/nA0bNiRJyuVyduzYkaeffjrlcjkXXnhhNm3alLlz\n507k0gAAAAAAAO9qwj4Zsnv37nz3u9/NWWedNWJ7Z2dnnn322dx8883ZsmVL3nrrrWzbtm2ilgUA\nAAAAADihCQlDDh8+nK9+9au56aabMnPmzOHtAwMDeeqpp7Jhw4asWbMmZ599djZv3pwXX3wxu3fv\nnoilAQAAAAAATmhCwpDt27fnkksuydq1a0ds7+7uzuDg4IjtS5cuTWtra1566aWJWBoAAAAAAOCE\nxh2G7Nq1K6+99lo+9alPvWNfX19fmpqa0tzcPGL73Llz09fXN96lAQAAAAAATmpcX6C+f//+dHZ2\n5o477khT06nf1dDQ0An3d3V1ZdeuXSO2LV68OB0dHZkzZ85Jbz8RSqVSWlpaKr5ONRWxp6T++xo4\nsL9qazU2NmZ2HT8W1ThXDQ0NSX75fUU9PT0j9q1bty7t7e0VXR8AAAAAqD/jCkO6u7vT39+fW2+9\ndXjbsWOZSBzpAAAgAElEQVTH8vzzz+fxxx/PbbfdlqNHj2ZgYGDEp0P6+/szb968495ve3v7cd+w\n7O/vT7lcHk/Zp6SlpSW9vb0VX6eaithTUv99lQYHq7bW4OBgXT8W1ThXpVIpCxcuTEdHR0XXAQAA\nAABOH+MKQy644IJs27ZtxLa//uu/zrJly/Lxj388LS0taWxszHPPPZfLLrssSbJnz568+eabWbVq\n1XiWBgAAAAAAOCXjCkOmT5+e5cuXv2Pb7Nmzh7dfddVV2bFjR2bOnJkZM2bkgQceyOrVq3PuueeO\nZ2kAAAAAAIBTMq4w5FRs2LAhU6ZMyb333ptyuZy2trbccMMNlV4WAAAAAAAgSQXCkDvvvHPEz6VS\nKRs3bszGjRsneikAAAAAAICTmlLrAgAAAAAAACpJGAIAAAAAABSaMAQAAAAAACg0YQgAAAAAAFBo\nwhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACF1lTrAgAAAACA+vfII4/kmWeeyZ49\nezJ16tSsWrUq119/fZYuXTp8zF133ZUXXnhhxO0+8IEPZNOmTdUuF2AEYQgAAAAAcFI/+9nP8qEP\nfSgrV67MsWPH8tBDD2Xr1q35yle+kqlTpyZJGhoacvXVV2f9+vUZGhpKkkybNq2WZQMkEYYAAAAA\nAKfgc5/73IifN2/enBtvvDHd3d05//zzh7dPmzYtc+bMqXZ5ACckDAEAAAAARm1gYCBJMmvWrBHb\nu7q68v3vfz/z5s3LJZdckmuvvXb4kyMAtSIMAQAAAABGZWhoKJ2dnTn//POzfPny4e3t7e1ZuHBh\n5s+fn9deey1f+9rX8sYbb+Tmm2+uYbUAwhAAAAAAYJS2b9+e119/PV/60pdGbL/66quH/33GGWdk\n3rx5+dKXvpR9+/Zl0aJF73pfXV1d2bVr14htixcvTkdHR+bMmTP83SOVVCqV0tLSUvF1qqneexo4\nsL9qazU2NmZ2lR6Lw/v25tjBX4zqNocO9GZ6RnedT5k5O9MXLRnVbaqpWtdfQ0NDkqSzszM9PT0j\n9q1bty7t7e3DPwtDAAAAAIBTdv/99+fZZ5/NF7/4xcyfP/+Ex5533nlJkr179x43DGlvbx/xhuVv\n6u/vT7lcHl/Bp6ClpSW9vb0VX6ea6r2n0uBg1dYaHBys2mNR6u/L4Vs3VXyd6Xdvz0BT/f75uWpd\nf6VSKQsXLkxHR8dJj51S8WoAAAAAgEK4//7788Mf/jB33nlnWltbT3r8K6+8kiSZN29epUsDOCGf\nDAEAAAAATmr79u3ZtWtX/vRP/zTTpk1LX19fkqS5uTlTp05NT09Purq6ctFFF2X27Nl57bXXsmPH\njqxZsyZnnnlmjasHJjthCAAAAABwUk8++WSS5K677hqxffPmzbnyyivT1NSUn/zkJ3nsscdy5MiR\nLFiwIJdffnk+8YlP1KBagJGEIQAAAADASe3cufOE+xcsWPCOoASgXvjOEAAAAAAAoNCEIQAAAAAA\nQKEJQwAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACg0YQgAAAAAAFBo\nwhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKranWBQAU2bFjx/Lw\nww+nq6srfX19mT9/fv71v/7Xueaaa2pdGkDFmYHAZGX+AQDUH2EIQAU9+uij+R//43/kM5/5TJYv\nX55//ud/zt/8zd9k5syZ+eAHP1jr8gAqygwEJivzDwCg/ghDACropZdeyqWXXpq2trYkSWtra7q6\nurJ79+4aVwZQeWYgMFmZfwAA9cd3hgBU0OrVq/Pcc8/ljTfeSJK8+uqrefHFF3PRRRfVuDKAyjMD\ngcnK/AMAqD8+GQJQQR//+Mdz6NChfPazn82UKVMyNDSU9evXZ926dbUuDaDizEBgsjL/AADqjzAE\noIL+1//6X+nq6spnP/vZLF++PK+++mo6OzvT0tKSK664otblAVSUGQhMVuYfAED9EYYAVNDf/d3f\n5d/+23+byy+/PElyxhln5P/+3/+bRx555Li/CHd1dWXXrl0jti1evDgdHR2ZM2dOhoaGTnn9gQP7\nx178KDU2NmZ2S0tV1jq8b2+OHfzFqG5z6EBvpufUH7skmTJzdqYvWjKq24xVUc/VWJRKpbTUcX1j\nUa2eGhoakiSdnZ3p6ekZsW/dunVpb2+veA2/abQzcCLn31gV8fpLitlXvfdU1Llerb7G0lM9zcBa\nvwZM6vtcjVW1XgMm1XsdWNRZMRb1PtfHqhp91dP8A6hnwhCACnr77beHX5j+SkNDwwl/mW1vbz/u\ni9X+/v6Uy+VTXr80OHjKx47X4OBgent7q7JWqb8vh2/dVPF1pt+9PQNNUyu+TlLcczUWLS0tdV3f\nWFSrp1KplIULF6ajo6Pia52K0c7AiZx/Y1XE6y8pZl/13lNR53q1+hpLT/U0A2v9GjCp73M1VtV6\nDZhU73VgUWfFWNT7XB+ravRVT/MPoJ4JQwAq6JJLLsm3vvWtLFiwIGeccUZeeeWV/OM//mOuuuqq\nWpcGUHFmIDBZmX8AAPVHGAJQQRs3bszOnTtz//33p7+/P/Pnz8/v/u7v5pprrql1aQAVZwYCk5X5\nBwBQf4QhABU0ffr0bNiwIRs2bKh1KQBVZwYCk5X5BwBQf6bUugAAAAAAAIBKEoYAAAAAAACFJgwB\nAAAAAAAKTRgCAAAAAAAUmi9QB0atdOhgcujgqG83cGB/SoODo7vRjJkpz5g56rUAAAAAAH5FGAKM\n3qGDOXzrpqosNf3u7YkwBAAAAAAYB38mCwAAAAAAKDRhCAAAAAAAUGjCEAAAAAAAoNCEIQAAAAAA\nQKEJQwAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACg0YQgAAAAAAFBo\nwhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUWtN4\n7+CJJ57Ik08+mX379iVJzjjjjFx77bVpa2tLkpTL5ezYsSNPP/10yuVyLrzwwmzatClz584d79IA\nAAAAQJU88sgjeeaZZ7Jnz55MnTo1q1atyvXXX5+lS5cOH+O9QKBejfuTIa2trbn++utz99135+67\n787atWtzzz335PXXX0+SdHZ25tlnn83NN9+cLVu25K233sq2bdvGXTgAAAAAUD0/+9nP8qEPfShb\nt27NHXfckcHBwWzdujVvv/328DHeCwTq1bjDkIsvvjhtbW1ZsmRJlixZkvXr12f69Ol5+eWXMzAw\nkKeeeiobNmzImjVrcvbZZ2fz5s158cUXs3v37omoHwAAAACogs997nO54oorsnz58px55pnZvHlz\n3nzzzXR3dyeJ9wKBujah3xly7Nix7Nq1K0eOHMmqVavS3d2dwcHBrF27dviYpUuXprW1NS+99NJE\nLg0AAAAAVNHAwECSZNasWUnivUCgro37O0OS5Oc//3luv/32lMvlTJ8+PbfcckuWLVuWV155JU1N\nTWlubh5x/Ny5c9PX1zcRSwMAAAAAVTY0NJTOzs6cf/75Wb58eZKkr6/Pe4FA3ZqQMGTZsmX58pe/\nnIMHD+YHP/hB7rvvvmzZsuW4xw8NDZ3w/rq6urJr164R2xYvXpyOjo7MmTPnpLefCKVSKS0tLRVf\np5qK2FNS/30NHNhftbUaGxszuwqPRT331NDQkOSXf6O0p6dnxL5169alvb19QusDAACAyWj79u15\n/fXX88UvfvGkx3ovsDbqvad6fn9pPKrVVzV7GotqXX+jeS9wQsKQxsbGLF68OEmycuXK7N69O489\n9lguv/zyHD16NAMDAyMS4f7+/sybN++499fe3n7cNyz7+/tTLpcnouwTamlpSW9vb8XXqaYi9pTU\nf1+lwcGqrTU4OFiVx6KeeyqVSlm4cGE6OjoqVxQAAABMYvfff3+effbZfPGLXxzxZue8efO8F1hH\n6r2nen5/aTyq1Vc1exqLal1/o3kvcEK/M+RXhoaGUi6Xs3LlyjQ2Nua5554b3rdnz568+eabWbVq\nVSWWBgAAAAAq5P77788Pf/jD3HnnnWltbR2xz3uBQD0b9ydDvv71r+eiiy7KggULcujQoXR1deX5\n55/P7bffnubm5lx11VXZsWNHZs6cmRkzZuSBBx7I6tWrc+65505E/QAAAABAFWzfvj27du3Kn/7p\nn2batGnD3wPS3NycqVOnei8QqGvjDkMOHDiQ++67L2+99Vaam5tz1lln5fbbb8/atWuTJBs2bMiU\nKVNy7733plwup62tLTfccMO4CwcAAAAAqufJJ59Mktx1110jtm/evDlXXnllEu8FAvVr3GHITTfd\ndML9pVIpGzduzMaNG8e7FAAAAABQIzt37jzpMd4LBOpVRb4zBAAAAAAAoF4IQwAAAAAAgEIThgAA\nAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACg0YQgAAAAAAFBowhAAAAAAAKDQhCEAAAAA\nAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEIAAAAAABQ\naMIQAAAAAACg0IQhAAAAAABAoTXVugD4ldKhg8mhg6O+3cCB/SkNDo7uRjNmpjxj5qjXAgAAAADg\n9CMMoX4cOpjDt26qylLT796eCEMAAAAAACYFfyYLAAAAAAAoNGEIAAAAAABQaMIQAAAAAACg0Hxn\nCECF9fb25mtf+1p+/OMf58iRI3nPe96TP/zDP8zKlStrXRpAxZmBwGRl/gEA1BdhCEAFHTx4MHfc\ncUcuuOCC3HbbbZk9e3beeOONzJo1q9alAVScGQhMVuYfAED9EYYAVNCjjz6a1tbW3HTTTcPbFi5c\nWMOKAKrHDAQmK/MPAKD+CEMAKuhHP/pR2tracu+99+aFF15IS0tLfvd3fzdXX311rUsDqDgzEJis\nzD8AgPojDAGooJ6enjzxxBP56Ec/mk984hPZvXt3HnjggZRKpVxxxRW1Lg+gosxAYLIy/wAA6o8w\nBKCChoaGcs4552T9+vVJkhUrVuRf/uVf8uSTTx73F+Gurq7s2rVrxLbFixeno6Mjc+bMydDQ0Cmv\nP3Bg/9iLH6XGxsbMbmmpylrV6quIPSXV7WssSqVSWuq4vrGoVk8NDQ1Jks7OzvT09IzYt27durS3\nt1e8ht802hk4kfNvrIp4/SX139fhfXtz7OAvRnWbQwd6Mz2juyamzJyd6YuWjOo2Y1XUuV7Pz8H1\nNANr/Rowqe9zNVZF/O+qiD2NVb0/V41VNfqqp/kHUM+EIQAVNH/+/CxbtmzEtmXLluWZZ5457m3a\n29uP+2K1v78/5XL5lNcvDQ6e8rHjNTg4mN7e3qqsVa2+ithTUt2+xqKlpaWu6xuLavVUKpWycOHC\ndHR0VHytUzHaGTiR82+sinj9JfXfV6m/L4dv3VTxdabfvT0DTVMrvk5S3Llez8/B9TQDa/0aMKnv\nczVWRfzvqog9jVW9P1eNVTX6qqf5B1DPptS6AIAiW716dfbs2TNi2549e9La2lqjigCqxwwEJivz\nDwCg/ghDACroIx/5SF5++eU88sgj2bt3b7q6uvK9730vH/zgB2tdGkDFmYHAZGX+AQDUH38mC6CC\nzjnnnPzJn/xJHnroofzDP/xDFi1alI6Ojqxbt67WpQFUnBkITFbmHwBA/RGGAFTYxRdfnIsvvrjW\nZQDUhBkITFbmHwBAffFnsgAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAA\nACg0YQgAAAAAAFBowhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAK\nTRgCAAAAAAAUmjAEAAAAAAAotKZaFwAAAAAAnB5eeOGFfPvb3053d3f6+vpyyy235NJLLx3e/zd/\n8zf5p3/6pxG3aWtry+c+97lqlwowgjAEAAAAADglR44cyYoVK/L+978/27Zte9dj2tra8p/+03/K\n0NBQkqRUKlWzRIB3JQwBAAAAAE5JW1tb2traTnhMqVTKnDlzqlQRwKkRhgAAAAAAE+anP/1pbrzx\nxsycOTNr167N+vXrM2vWrFqXBUxywhAAAAAAYEK0tbXld37nd7Jo0aL09PTkoYceyl/8xV/kz/7s\nz9LQ0FDr8oBJTBgCAAAAAEyIf/Wv/tXwv88444yceeaZ+c//+T/npz/9adauXVvDyoDJThgCAAAA\nAFTEokWLMnv27Ozdu/e4YUhXV1d27do1YtvixYvT0dGROXPmDH8ReyWVSqW0tLRUfJ1qqveeBg7s\nr9pajY2NmV2lx6JafVWzp7Go1vX3q0+cdXZ2pqenZ8S+devWpb29ffhnYQgAAAAAUBH79+/PL37x\ni8yfP/+4x7S3t494w/I39ff3p1wuV6q8YS0tLent7a34OtVU7z2VBgerttbg4GDVHotq9VXNnsai\nWtdfqVTKwoUL09HRcdJjhSEAAAAAwCk5fPhw9u7dO/xzT09PXn311cyaNSuzZs3K3//93+d3fud3\nMm/evOzduzdf+9rXsnTp0lx44YU1rBpAGAIAAAAAnKLu7u5s2bJl+OcHH3wwSXLllVdm06ZNee21\n1/JP//RPGRgYyPz583PhhRfmuuuuS1OTtyGB2jKFAAAAAIBTsmbNmuzcufO4+2+77bYqVgNw6qbU\nugAAAAAAAIBKEoYAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEIAAAAAABQaMIQ\nAAAAAACg0IQhAAAAAABAoTWN58aPPPJInnnmmezZsydTp07NqlWrcv3112fp0qXDx5TL5ezYsSNP\nP/10yuVyLrzwwmzatClz584dd/EAAAAAAAAnM65PhvzsZz/Lhz70oWzdujV33HFHBgcHs3Xr1rz9\n9tvDx3R2dubZZ5/NzTffnC1btuStt97Ktm3bxl04AAAAAADAqRhXGPK5z30uV1xxRZYvX54zzzwz\nmzdvzptvvpnu7u4kycDAQJ566qls2LAha9asydlnn53NmzfnxRdfzO7duyekAQAAAAAAgBOZ0O8M\nGRgYSJLMmjUrSdLd3Z3BwcGsXbt2+JilS5emtbU1L7300kQuDQAAAAAA8K4mLAwZGhpKZ2dnzj//\n/CxfvjxJ0tfXl6ampjQ3N484du7cuenr65uopQEAAAAAAI5rwsKQ7du35/XXX88f//Efn/TYoaGh\niVoWAAAAAADghJom4k7+P/buPkrPuswP+DeZTF4mkJchb4QAIUJ4WSJRXqybObC6te6iB9vFEzH0\nLKmQqhFXPSxyVCAIpl2hQBdZe/aYHBJdkQQWKFuRIyvYnqRpqQotuKyBHbVKyMQkOwmdScIwmf5h\nmTqShMzb8/J7Pp+/Mvf9PLmva37P/c09ueZ57rVr1+bpp5/OzTffnNbW1v7t06ZNy2uvvZbu7u4B\n7w7Zu3dvpk2bdti/b9OmTdm8efOAbbNnz87y5cszZcqUigxTmpubB/RSglrvqXvProodq6mpKcdW\n6HtRYl+13NOYMWOSJOvWrUtHR8eAfUuWLElbW9uI1gcAAAAA1L5hD0PWrl2bH/zgB7npppsyY8aM\nAfsWLFiQpqamPPfcc7nggguSJNu2bcvOnTuzcOHCw/6dbW1th/0Py71796anp2e4Zb+p1tbW7N69\ne9SPU0m13lNzb2/FjtXb21ux70WJfdVyT83NzZk5c2aWL18+ekUBAAAAAHVlWMOQNWvWZPPmzfns\nZz+bCRMm9N8HpKWlJePHj09LS0ve/e53Z/369Zk8eXImTZqUe+65J6effnpOPfXUEWkAAAAAAADg\nSIY1DHn88ceTJDfddNOA7StXrsxFF12UJLniiisyduzY3HHHHenp6cnixYtz5ZVXDuewAAAAAAAA\nR21Yw5ANGza86WOam5vzkY98JB/5yEeGcygAAAAAAIAhGVvtAgAAAAAAAEaTYQgAAAAAAFA0wxAA\nAAAAAKBohiEAAAAAAEDRDEMAAAAAAICiGYYAAAAAAABFMwwBAAAAAACKZhgCAAAAAAAUzTAEAAAA\nAAAommEIAAAAAABQNMMQAAAAAACgaIYhABX00EMP5UMf+lDWr19f7VIAKkr+AY1MBgIAVJ9hCECF\nvPjii/ne976Xk08+udqlAFSU/AMamQwEAKgNhiEAFbB///585Stfycc+9rFMnjy52uUAVIz8AxqZ\nDAQAqB2GIQAVsGbNmpx77rk5++yzq10KQEXJP6CRyUAAgNphGAIwyjZv3pyf//znWbZsWbVLAago\n+Qc0MhkIAFBbxlW7AICS7dq1K+vWrcsNN9yQceOOLnI3bdqUzZs3D9g2e/bsLF++PFOmTElfX99R\nH797z65B1TscTU1NOba1tSLHqlRfJfaUVLavoWhubk5rDdc3FJXqacyYMUmSdevWpaOjY8C+JUuW\npK2tbdRreF2182+oSnz9JbXfl1wfnhL7GkpPMnCgWl6roSrxvCqxp6Gq9X+rhqoSfdVS/gHUMsMQ\ngFHU3t6evXv35rrrruvfdvDgwfzd3/1dHnvssdx77739F66va2trO+zF6t69e9PT03PUx2/u7R1a\n4UPQ29ub3bt3V+RYleqrxJ6SyvY1FK2trTVd31BUqqfm5ubMnDkzy5cvH/VjvZlq599Qlfj6S2q/\nL7k+PCX2NZSeZOBAtbxWQ1XieVViT0NV6/9WDVUl+qql/AOoZYYhAKNo0aJFuf322wds+4u/+Iuc\ncMIJ+ef//J+/4YdggFLIP6CRyUAAgNpjGAIwiiZOnJh58+a9Yduxxx77hu0AJZF/QCOTgQAAtccN\n1AEAAAAAgKJ5ZwhAha1ataraJQBUhfwDGpkMBACoLu8MAQAAAAAAimYYAgAAAAAAFM0wBAAAAAAA\nKJphCAAAAAAAUDTDEAAAAAAAoGjjql0AAAAAAFAfnn/++TzyyCNpb29PZ2dnrr322px33nkDHrNh\nw4Y88cQT6erqyumnn54VK1Zkzpw5VaoY4Ne8MwQAAAAAOCoHDhzI/Pnzc+WVVx5y/8MPP5zHHnss\nK1asyL/5N/8mEyZMyOrVq/Paa69VuFKAgQxDAAAAAICjsnjx4nzoQx/KBRdccMj93/nOd3LppZfm\nvPPOy0knnZSrr746u3fvzlNPPVXhSgEGMgwBAAAAAIZtx44d6ezszKJFi/q3tbS05LTTTsvWrVur\nWBmAYQgAAAAAMAI6OzuTJFOnTh2wferUqf37AKrFMAQAAAAAGDV9fX0ZM2ZMtcsAGty4ahcAAAAA\nANS/adOmJUn27NnT/+ck2bt3b+bPn3/Y523atCmbN28esG327NlZvnx5pkyZkr6+vlGp9zc1Nzen\ntbV11I8zVPt3bM/BrlcG9Zx9e3ZnYgb3vRs7+dhMnDVnUM8Zqu49uypynCRpamrKsRVa30r1Vcme\nhqJS59Trg9Z169alo6NjwL4lS5akra2t/2vDEAAAAABg2GbNmpVp06bl2Wefzcknn5wk6e7uzgsv\nvJD3vve9h31eW1vbgP+w/E179+5NT0/PqNT7m1pbW7N79+5RP85QNe/tzP7rrhr140z88pp0jxs/\n6sdJkube3oocJ0l6e3srtr6V6quSPQ1Fpc6p5ubmzJw5M8uXL3/TxxqGAAAAAABHZf/+/dm+fXv/\n1x0dHfnZz36WY445JjNmzMjFF1+cBx98MHPmzMmsWbNy33335bjjjsv5559fxaoBDEMAAAAAgKPU\n3t6eL37xi/1ff/3rX0+SXHTRRVm5cmU+8IEP5MCBA/na176Wrq6unHnmmfn85z+fceP8NyRQXVII\nAAAAADgqZ511VjZs2HDExyxdujRLly6tUEUAR2dstQsAAAAAAAAYTYYhAAAAAABA0QxDAAAAAACA\nohmGAAAAAAAARTMMAQAAAAAAimYYAgAAAAAAFM0wBAAAAAAAKJphCAAAAAAAUDTDEAAAAAAAoGiG\nIQAAAAAAQNEMQwAAAAAAgKKNq3YBAEC5mvd1Jfu6BvWc7j270tzbO7gDTZqcnkmTB/ccqENDOacS\n5xUAlVWxa8DEv1cAHDXDEABg9Ozryv7rrhr1w0z88prED8E0ggqdU4nzCoBh8O8VADXIx2QBAAAA\nAABFMwwBAAAAAACKZhgCAAAAAAAUzTAEAAAAAAAommEIAAAAAABQNMMQAAAAAACgaIYhAAAAAABA\n0QxDAAAAAACAohmGAAAAAAAARTMMAQAAAAAAimYYAgAAAAAAFM0wBAAAAAAAKJphCAAAAAAAUDTD\nEAAAAAAAoGiGIQAAAAAAQNHGDfcveP755/PII4+kvb09nZ2dufbaa3PeeecNeMyGDRvyxBNPpKur\nK6effnpWrFiROXPmDPfQAAAAAAAAb2rYw5ADBw5k/vz5ede73pXbb7/9DfsffvjhPPbYY/nEJz6R\nWbNm5b777svq1atz5513Zty4YR8eAAAAAAAYJc37upJ9XYN6TveeXWnu7R38wSZNTs+kyYN/3lEY\n9jRi8eLFWbx48WH3f+c738mll17a/26Rq6++OitWrMhTTz2V3/3d3x3u4QEAAAAAgNGyryv7r7uq\nIoea+OU1ySgNQ0b1niE7duxIZ2dnFi1a1L+tpaUlp512WrZu3TqahwYAAAAAAEgyysOQzs7OJMnU\nqVMHbJ86dWr/PgAAAAAAgNFUlZt29PX1ZezYw89hNm3alM2bNw/YNnv27CxfvjxTpkxJX1/faJeY\n5ubmtLa2jvpxKqnWe+res6tix2pqasqxFfpelNhXLfc0ZsyYJMm6devS0dExYN+SJUvS1tY2ovUB\nAAAAALVvVIch06ZNS5Ls2bOn/89Jsnfv3syfP/+wz2trazvsf1ju3bs3PT09I1rnobS2tmb37t2j\nftNAZ18AACAASURBVJxKqvWehnRDnSHq7e2t2PeixL5quafm5ubMnDkzy5cvH72iAAAAAIC6Mqof\nkzVr1qxMmzYtzz77bP+27u7uvPDCCzn99NNH89AAAAAAAABJRuCdIfv378/27dv7v+7o6MjPfvaz\nHHPMMZkxY0YuvvjiPPjgg5kzZ05mzZqV++67L8cdd1zOP//84R4aAAAAAADgTQ17GNLe3p4vfvGL\n/V9//etfT5JcdNFFWblyZT7wgQ/kwIED+drXvpaurq6ceeaZ+fznP59x46pyuxIAAAAAAKDBDHsi\ncdZZZ2XDhg1HfMzSpUuzdOnS4R4KAAAAAABg0Lw9A2AUPfTQQ3nqqaeybdu2jB8/PgsXLszll1+e\nuXPnVrs0gFEnA4FGJf8AAGqPYQjAKPr7v//7/OEf/mEWLFiQgwcP5t57783q1atz5513Zvz48dUu\nD2BUyUCgUck/AIDaM7baBQCU7HOf+1wuvPDCzJs3LyeddFJWrlyZnTt3pr29vdqlAYw6GQg0KvkH\nAFB7DEMAKqi7uztJcswxx1S5EoDKk4FAo5J/AADVZxgCUCF9fX1Zt25dzjjjjMybN6/a5QBUlAwE\nGpX8AwCoDe4ZAlAha9asyS9/+cvccsstR3zcpk2bsnnz5gHbZs+eneXLl2fKlCnp6+s76mN279k1\npFqHoqmpKce2tlbkWJXqq8SekjL7qmRPQ9Hc3JzWCtQ3ZsyYJMm6devS0dExYN+SJUvS1tY26jUc\nztFk4Ejm31BVaq2GSlYMT4k9JWX2NZSeajUDq3ENmNT2Wg1ViedViT0l5fY1FJW4tqjV/AOoNYYh\nABWwdu3aPP3007n55pszffr0Iz62ra3tsBere/fuTU9Pz1Eft7m3d1B1Dkdvb292795dkWNVqq8S\ne0rK7KuSPQ1Fa2trReprbm7OzJkzs3z58lE/1mAcbQaOZP4NVaXWaqhkxfCU2FNSZl9D6akWM7Ba\n14BJba/VUJV4XpXYU1JuX0NRiWuLWsw/gFrkY7IARtnatWvzgx/8IKtWrcqMGTOqXQ5ARclAoFHJ\nPwCA2uKdIQCjaM2aNdm8eXM++9nPZsKECens7EyStLS0ZPz48VWuDmB0yUCgUck/oJHdf//9eeCB\nBwZsmzt3bu68884qVQTwa4YhAKPo8ccfT5LcdNNNA7avXLkyF110URUqAqgcGQg0KvkHNLoTTzwx\nN954Y//9jpqamqpcEYBhCMCo2rBhQ7VLAKgaGQg0KvkHNLqmpqZMmTKl2mUADGAYAgAAAACMmJdf\nfjkf/ehHM378+Jx22mlZtmyZ+ycBVWcYAgAAAACMiNNOOy0rV67M3Llz09nZmfvvvz+rVq3K7bff\nnokTJ1a7PKCBGYYAAAAAACNi8eLF/X8+6aSTcuqpp2blypXZsmVL3vWudx3yOZs2bcrmzZsHbJs9\ne3aWL1+eKVOm9N97ZDQ1NzentbV11I8zVN17dlXkOE1NTTm2Qt+HSvWUlNlXiT0lg+9rzJgxSZJ1\n69alo6NjwL4lS5akra2t/2vDEAAAAABgVLS0tOT444/P9u3bD/uYtra2Af9h+Zv27t2bnp6e0Sqv\nX2tra3bv3j3qxxmq5t7eihynt7e3Yt+HSvWUlNlXiT0lg++rubk5M2fOzPLly9/0sWOHURcAAAAA\nwGHt378/HR0dmT59erVLARqcd4YAAAAAACPiG9/4Rs4999zMnDkzu3fvzsaNG9PU1JQlS5ZUuzSg\nwRmGAAAAAAAjYteuXbnrrrvyyiuvZMqUKTnjjDOyevXqHHvssdUuDWhwhiEAAAAAwIj49Kc/Xe0S\nAA7JPUMAAAAAAICiGYYAAAAAAABFMwwBAAAAAACKZhgCAAAAAAAUzTAEAAAAAAAommEIAAAAAABQ\ntHHVLgAAAAAAYCQ07+tK9nUN+nnde3alubd3cE+aNDk9kyYP+lhAdRiGAAAAAABl2NeV/dddVZFD\nTfzymsQwBOqGj8kCAAAAAACKZhgCAAAAAAAUzTAEAAAAAAAommEIAAAAAABQNMMQAAAAAACgaIYh\nAAAAAABA0QxDAAAAAACAohmGAAAAAAAARTMMAQAAAAAAimYYAgAAAAAAFM0wBAAAAAAAKNq4ahcA\nAFBPmvd1Jfu6BvWc7j270tzbO/iDTZqcnkmTB/88klgrAGDkDOW6IhnitYXrCoBRYRgCADAY+7qy\n/7qrKnKoiV9ek/hBeOisFQAwUlxXANS94ochpU7u/aYjAAAAAAAcneKHIcVO7kvtCwAAAAAARpgb\nqAMAAAAAAEUzDAEAAAAAAIpmGAIAAAAAABTNMAQAAAAAACiaYQgAAAAAAFA0wxAAAAAAAKBohiEA\nAAAAAEDRDEMAAAAAAICiGYYAAAAAAABFMwwBAAAAAACKZhgCAAAAAAAUzTAEAAAAAAAommEIAAAA\nAABQNMMQAAAAAACgaIYhAAAAAABA0QxDAAAAAACAohmGAAAAAAAARTMMAQAAAAAAimYYAgAAAAAA\nFM0wBAAAAAAAKJphCAAAAAAAUDTDEAAAAAAAoGiGIQAAAAAAQNHGVepAjz32WP7mb/4mnZ2dmT9/\nfv7Vv/pXOfXUUyt1eICqkoFAI5OBQKOSf0Ajk4FAranIO0P+63/9r/nGN76RpUuX5tZbb83JJ5+c\n1atXZ+/evZU4PEBVyUCgkclAoFHJP6CRyUCgFlVkGPLtb387//Sf/tNcdNFFOeGEE7JixYpMmDAh\nTz75ZCUOD1BVMhBoZDIQaFTyD2hkMhCoRaM+DHnttdfS3t6eRYsW9W8bM2ZMFi1alK1bt4724QGq\nSgYCjUwGAo1K/gGNTAYCtWrU7xnyyiuv5ODBg5k6deqA7VOnTs22bdsG/feNGze4ksdNnJTmt5w+\n6OMMxbiJk5Lm5oodq7S+Suzp9WOV1lct9zTYjBhtMnD0jlWJvkrs6fVjldZXiT29fiwZ+GtD6a2W\n12o4xymtp9ePJSuGd6zS+hpKT7WUgdW+Bkxqe62Gc6zSzqsSe3r9WKX1Vcs91VL+JdXPwFpeq+Ee\nS64P71il9VViT68fa7QysKppOWbMmENu37RpUzZv3jxg25lnnplLLrkk06dPH9xBZs5M7vrmUEus\nXSX2VWJPSZl91UFPjzzySJ5//vkB25YsWZK2trYqVfRGMnAYSuyrxJ6SMvuqg57qNQNHNP+Sulir\nQSuxp6TMvkrsKamLvmo9AytyDZjUxVoNmp7qR4l91UFPtZ5/iZ+Dh6XEvkrsKSmzrzro6agysG+U\n9fT09F122WV9/+N//I8B2+++++6+W2+9dbQPP2T33HNPtUsYcSX21NdXZl8l9tTXV25fRyIDa4ee\n6keJfZXY09Goxwwsda1K7KvEnvr6yuyrxJ7eTD3mX19fmWtVYk99fWX2VWJPfX3l9nUkMrB26Kl+\nlNhXLfY06vcMGTduXBYsWJBnn332Nwcwee6553L66ZV5a81QdHR0VLuEEVdiT0mZfZXYU1JuX0ci\nA2uHnupHiX2V2NPRqMcMLHWtSuyrxJ6SMvsqsac3U4/5l5S5ViX2lJTZV4k9JeX2dSQysHboqX6U\n2Fct9lSRj8l63/vel7/4i7/IggULcuqpp+bb3/52Dhw4kN/7vd+rxOEBqkoGAo1MBgKNSv4BjUwG\nArWoIsOQ3/3d380rr7ySjRs3prOzM/Pnz88XvvCFTJkypRKHB6gqGQg0MhkINCr5BzQyGQjUoord\nQP29731v3vve91bqcAA1RQYCjUwGAo1K/gGNTAYCtabppptuuqnaRdSqk046qdoljLgSe0rK7KvE\nnpJy+ypRiWulp/pRYl8l9lSqUteqxL5K7Ckps68SeypViWtVYk9JmX2V2FNSbl8lKnGt9FQ/Suyr\n1noa09fX11ftIgAAAAAAAEbL2GoXAAAAAAAAMJoMQwAAAAAAgKIZhgAAAAAAAEUzDAEAAAAAAIpm\nGAIAAAAAABTNMAQAAAAAACiaYQgAAAAAAFC0cdUuoNb09PRkzJgxGTeuvr81v/zlL/PYY49l69at\n6ezszJgxYzJ16tQsXLgwf/AHf5B58+ZVu0T+H2tFLZGBVJq1opbIQCrJOlFL5B+VZq2oJTKQSrNW\n1TOmr6+vr9pFVNv/+l//K9/+9rezdevWdHd3J0laWlqycOHCvO9978tb3/rWKlc4OE8//XRuu+22\nnHLKKTnnnHMybdq09PX1Zc+ePXn22WfT3t6ea6+9NosXL652qYNWWlhYK2qBDKwPJZ5T1opaIAPr\nQ2nnVanrlJS3ViWTf/WjtPPKWlELZGD9KO28KnWt6mWdGn4Y8v3vfz9/+Zd/mXe84x1ZvHhxpk6d\nmr6+vuzduzf/83/+z/y3//bf8vGPfzwXXnhhtUs9atdee23OP//8LF269JD7N27cmKeeeir/7t/9\nuwpXNjwlhoW1qp+1KpUMrA+lnlPWimqTgfWhxPOqxHVKylyrUsm/+lHieWWt6metSiUD60eJ51WJ\na1VX69TX4P7kT/6k7zvf+c5h9z/22GN9n/zkJytY0fAtW7as76WXXjrs/pdeeqlv2bJlFaxoZPzp\nn/5p34YNGw67f8OGDX3XXHNNBSsaPmtFtcnA+lDqOWWtqDYZWB9KPK9KXKe+vjLXqlTyr36UeF5Z\nK6pNBtaPEs+rEteqntap4W+gvnPnziO+9W3RokXZtWtXBSsavlmzZuVHP/rRYff/6Ec/ysyZMytY\n0cjYtm1b2traDru/ra0tL7/8cgUrGj5rRbXJwPpQ6jllrag2GVgfSjyvSlynpMy1KpX8qx8lnlfW\n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\nxz/+8SxYsKD/MTKwNuipfpTYVy32NKhhyIwZM3L55Zf3h9f3v//93Hrrrbn11lszb968Nzx+69at\nueuuu3L55Zfn7W9/ezZt2pTbbrvtsI8HqDcnnnhibrzxxvT19SVJmpqa+vetW7cuzzzzTK655ppM\nmjQpa9euze23356bb765WuUCjJg3uy6UgUDJDhw4kPnz5+dd73pXbr/99jfsf/jhh/PYY4/lE5/4\nRGbNmpX77rsvq1evzp133plx4wb1YzhATenq6soNN9yQRYsW5Qtf+EKOPfbYvPzyyznmmGP6HyMD\ngVo1qI/Jevvb357Fixdnzpw5mTNnTi677LJMnDgxL7zwwiEf/+ijj2bx4sV5//vfn7lz52bp0qU5\n5ZRT8thjj41I8QDV1tTUlClTpmTq1KmZOnVq/wVgd3d3nnzyyVxxxRU566yzcsopp2TlypX5yU9+\nkhdffLHKVQMM35GuC2UgULrFixfnQx/6UC644IJD7v/Od76TSy+9NOedd15OOumkXH311dm9e3ee\neuqpClcKMLIefvjhzJgxIx/72MeyYMGCzJw5M29961sza9as/sfIQKBWDfmeIQcPHszmzZtz4MCB\nLFy48JCP2bp1axYtWjRg2znnnJOtW7cO9bAANeXll1/ORz/60Xzyk5/MXXfdlZ07dyZJ2tvb09vb\nm7PPPrv/sXPnzs2MGTNkIFCc374ulIFAI9uxY0c6OzsH/Czc0tKS0047TQYCde+HP/xh3vKWt+SO\nO+7IihUrct111+V73/te/34ZCNSyQb837X//7/+d66+/Pj09PZk4cWKuvfbanHDCCYd8bGdnZ6ZN\nmzZg27Rp09LZ2Tm0auvQ7Nmzq11C8XyPR5/v8aGddtppWblyZebOnZvOzs7cf//9WbVqVW6//fZ0\ndnZm3LhxaWlpGfCcqVOn1kUGlrjmeqofJfZVYk/J4a8Lf/rTn9ZtBpa6ViX2VWJPSZl9ldjTkbye\nc799jyQZWB0l9pSU2VeJPSXl9dXR0ZHvfve7ef/7358/+qM/yosvvph77rknzc3NufDCC2VgjdFT\n/Sixr1rsadDDkBNOOCG33XZburq68t//+3/P3XffnS9+8YuHHYj8tr6+vowZM+aIj9m0aVM2b948\nYNuZZ56ZSy65ZLDlVt3y5curXULxfI9HXz1+jx955JE8//zzA7YtWbJkRG/c9PpNgpPkpJNOyqmn\nnpqVK1dmy5YtaW5uPuRzXr+3yJHUQgbW45q/GT3VjxL7qnRPlcjA5PDXhYfzZhko/0ZPiX2V2FNS\nZl+lZuBg9fX1ZezYw384gwwcHSX2lJTZV4k9JZXtqxL519fXl7e85S257LLLkiTz58/PL37xizz+\n+OO58MILj/g8GVh5eqofJfZVi9eAgx6GNDU19U91FixYkBdffDGPPvpoVqxY8YbHHupdIHv27HnD\ndPi3tbW1HTao//Ef/zGvvfbaYMuumilTpmTv3r3VLqPqxu3ZnQN31dcNUyf8yY15bWprtcuoCfX0\nOh43blymT5+eSy65pOID1JaWlhx//PHZvn17Fi1alNdeey3d3d0DfjN67969b3jH3G+rhQyspzU/\nWnqqHyX2VameKp2Bh7sufOc73zmkDJR/o6fEvkrsKSmzr1Iz8HBez7k9e/YMyLy9e/dm/vz5h32e\nDBwdtd5TJX9WruTPuKX2NRSVeA1WMv+mT5/+hl+IPuGEE/rvByIDa4ue6keJfdXiNeCghyG/ra+v\nLz09PYfct3Dhwjz33HO5+OKL+7c9++yzh73HyNF47bXXDnu8WnSk709D2b8vPf/wk2pXMShN+/el\np8XaJV7HR2v//v3p6OjI9OnTs2DBgjQ1NeW5557rv7Hmtm3bsnPnzrrIwBLXXE/1o8S+SuzpUF7v\nczQyUP4NT4l9ldhTUmZfJfZ0JLNmzcq0adPy7LPP5uSTT06SdHd354UXXsh73/veIf2dMnDoar6n\nCv6sXNGfcUvtawhq/jU4SKeffnq2bds2YNu2bdsyY8aMJDKw1uipfpTYVy32NKhhyLe+9a287W1v\ny3HHHZd9+/Zl06ZN+bu/+7tcf/31SZK77747ra2tWbZsWZLk4osvzqpVq/Kf/tN/ytvf/vZs2rQp\n7e3t+ehHPzrynQBU2De+8Y2ce+65mTlzZnbv3p2NGzemqakpS5YsSUtLS9797ndn/fr1mTx5ciZN\nmpR77rknp59+ek499dRqlw4wbEe6LpSBQOn279+f7du393/d0dGRn/3sZznmmGMyY8aMXHzxxXnw\nwQczZ86czJo1K/fdd1+OO+64nH/++VWsGmD43ve+9+WGG27IQw89lHe+85158cUX88QTTwz4vz4Z\nCNSqQQ1D9uzZk7vvvjv/+I//mJaWlpx88sm5/vrrc/bZZydJdu3aNeDz/xYuXJhPfepTue+++/Kt\nb30rxx9/fK699trMmzdvZLsAqIJdu3blrrvuyiuvvJIpU6bkjDPOyOrVq3PssccmSa644oqMYxWy\nowAAIABJREFUHTs2d9xxR3p6erJ48eJceeWVVa4aYGS82XWhDARK1t7ePuAeSV//+teTJBdddFFW\nrlyZD3zgAzlw4EC+9rWvpaurK2eeeWY+//nPZ9y4YX84A0BVveUtb8mf/umf5t57781f//VfZ9as\nWVm+fHmWLFnS/xgZCNSqMX1HczffGvKrX/2q5t5ecyStra3ZvXt3tcuouubdO7L/uquqXcagTPzy\nmvS0zqp2GTWhnl7Hzc3NmTlzZrXLGDWVysB6WvOjpaf6UWJfleqp5AyUf8NTYl8l9pSU2ZcMHD4Z\nOHS13lMlf1au5M+4pfY1FJV4DZacf4kMHA491Y8S+6rFa8Cxb/4QAAAAAACA+mUYAgAAAAAAFM2H\n9UENmzZt2oD78FTL2LFj09raWu0y+h08eDCdnZ3VLqPmjOTrpdbWfLgOHjxY7RKAUTZSGVhi/vk3\nE8onAw/NNSCUz8/BhycD4Y0MQ6CGjR07trjPCxwJJV2cjCSvl8PzmoHyycBDk3/QGGTgoclAKJ/8\nOzwZCG9U/V85BwAAAAAAGEWGIQAAAAAAQNEMQwAAAAAAgKIZhgAAAAAAAEUzDAEAAAAAAIo2rtoF\nAAAAlKZ5X1eyr2vQz+vesyvNvb2De9KkyemZNHnQxwIAgEZiGAIAADDS9nVl/3VXVeRQE7+8JjEM\nAQCAIzIMgTo01N80HHHD+C3EV199NbfddlsefPDBdHZ25swzz8xnP/vZXHjhhSNcJEmNvGaG+Vur\nXjPAUNRE/iX+zQSqQgYCjawmMtDPwVBTDEOgHlXwNw2PZDi/hfipT30qjz32WFasWJH58+dn48aN\n+eM//uPcf//9Of/880e4UmrhNTPc31r1mqlPQ/kBxEfEMKJqIP8S/2YCVSIDgUZWAxno52CoLYYh\nQMU9/fTT+Zu/+ZvceOON+df/+l8nSS699NK8+93vzurVq/Pwww9XuUJqjddMHavQDyA+IoZSyT+g\nkclAoJHJQBh5Y6tdANB4vv3tb2fcuHG5/PLL+7dNmDAhH/7wh/PDH/4wL7/8chWroxZ5zQCNSv4B\njUwGAo1MBsLIMwwBKu7HP/5xFixYkMmTB/4W9+LFi/v3w2/ymgEalfwDGpkMBBqZDISRZxgCVNyO\nHTsya9asN2yfPXt2+vr60tHRUYWqqGVeM0Cjkn9AI5OBQCOTgTDy3DMEqLj9+/dn/Pjxb9g+YcKE\n/v3wm7xmgEYl/4BGJgOBRiYD61fzvq5kX9egntO9Z1eae3sHd6BJk9Pj3pmDYhgCVNzEiRPz6quv\nvmH7gQMH+vfDb/KaARqV/AMamQwEGpkMrGP7urL/uqtG/TATv7wmMQwZFB+TBVTcrFmzsmPHjjds\nf/0tnrNnz650SdQ4rxmgUck/oJHJQKCRyUAYeYYhQMX9zu/8Ttrb29PVNfAtgz/60Y8yZsyY/M7v\n/E6VKqNWec0AjUr+AY1MBgKNTAbCyDMMASrufe97X1577bX81V/9Vf+2V199NRs3bszb3/72HH/8\n8VWsjlrkNQM0KvkHNDIZCDQyGQgjzz1DgIp729velve///35sz/7s+zcuTPz58/Pxo0b89JLL+XO\nO++sdnnUIK8ZoFHJP6CRyUCgkclAGHmGIVCPJk3+9U2Sqm0YN2m66667ctttt+XBBx9MZ2dnzjzz\nzKxfvz7nn3/+CBZIv1p4zQzzpl5eM8CQ1EL+/b86hkr+AUMmA4FGVgsZ6OdgqCmGIVCHeiZNHvY/\nqNU2fvz4fOELX8gXvvCFapfSELxmgEYl/4BGJgOBRiYDgd/mniEAAAAAAEDRDEMAAAAAAICiGYYA\nAAAAAABFMwwBAAAAAACKZhgCAAAAAAAUzTAEAAAAAAAommEIAAAAAABQNMMQAAAAAACgaIYhAAAA\nAABA0cZVuwDg8A4ePJjW1tZql5GxY8fm4MGD1S6jXy3VUktG8vVSa2s+XAcPHszYseb/ULKRysAS\n8w8onww8NNeAUD4/Bx+eDIQ3MgyBGtbZ2VntEpIkra2t2b17d7XL4E2M5OulxDWvhcEiMHpGKgNL\nzD+gfDLw8FwDQtn8HHxkMhAGMh4EAAAAAACKZhgCAAAAAAAUzTAEAAAAAAAommEIAAAAAABQNMMQ\nAAAAAACgaIYhAAAAAABA0QxDAAAAAACAohmGAAAAAAAARTMMAQAAAAAAimYYAgAAAAAAFM0wBAAA\nAAAAKJphCAAAAAAAUDTDEAAAAAAAoGjjql0AAJA07+tK9nUN6jnde3alubd38AebNDk9kyYP/nkA\nAAAAdcowBABqwb6u7L/uqoocauKX1ySGIQAAAEAD8TFZAAAAAABA0QxDAAAAAACAohmGAAAAAAAA\nRTMMAQAAAAAAimYYAgAAAAAAFM0wBAAAAAAAKJphCAAAAAAAUDTDEAAAAAAAoGiGIQAAAAAAQNEM\nQwAAAAAAgKIZhgAAAAAAAEUzDAEAAAAAAIpmGAIAAAAAABTNMAQAAAAAACjauME8+KGHHspTTz2V\nbdu2Zfz48Vm4cGEuv/zyzJ0797DP+f73v5//8B/+w4Btzc3N+au/+quhVQwAQNUdzXXhTTfdlOef\nf37A897znvfkqquuqnS5AACMgPvvvz8PPPDAgG1z587NnXfemSTp6enJ+vXrs2XLlvT09OScc87J\nVVddlalTp1ajXIABBjUM+fu///v84R/+YRYsWJCDBw/m3nvvzerVq3PnnXdm/Pjxh31eS0tL/vzP\n/zx9fX1JkjFjxgyvagAAquporgvHjBmT3//9389ll13Wfx04YcKEapYNAMAwnXjiibnxxhv7r++a\nmpr6961bty7PPPNMrrnmmkyaNClr167N7bffnptvvrla5QL0G9Qw5HOf+9yAr1euXJkVK1akvb09\nZ5xxxhGfO2XKlMFXBwBATTra68IJEya4DgQAKEhTU9Mhr++6u7vz5JNP5tOf/nTOOuusJL++RvzM\nZz6TF198MaeeemqlSwUYYFDDkN/W3d2dJDnmmGOO+Lj9+/fnE5/4RA4ePJhTTjkly5Yty7x584Zz\naAAAasjhrgs3bdqU//Jf/kumTZuWc889Nx/84AeP+I5iAABq28svv5yPfvSjGT9+fE477bQsW7Ys\nM2bMSHt7e3p7e3P22Wf3P3bu3LmZMWNGtm7dahgCVN2QhyF9fX1Zt25dzjjjjCMONubOnZuPf/zj\nOfnkk9Pd3Z1HHnkk119/fe644460trYO9fAAANSIw10XtrW1ZebMmZk+fXp+/vOf55vf/GZefvnl\nXHPNNVWsFgCAoTrttNOycuXKzJ07N52dnbn//vuzatWq3H777ens7My4cePS0tIy4DlTp05NZ2dn\nlSoG+P+GPAxZs2ZNfvnLX+aWW2454uMWLlyYhQsXDvj6M5/5TP72b/82S5cuPeRzNm3alM2bNw/Y\nNnv27CxfvjxTpkzp/0zCetDc3Gzok6R7z65qlzBoTU1NOdbaJamv1/Hr9yRat25dOjo6BuxbsmRJ\n2traqlEWQNEOd134+7//+/1/PvHEEzNt2rTccsst2bFjR2bNmvWGv6cWrgHr6d+8wSixr1rvqZLX\nv7V+3VqptXIdCDD6Fi9e3P/nk046KaeeempWrlyZLVu2pLm5+ZDPOZprONeBo0NP1VGp60DXgL82\nmGvAIQ1D1q5dm6effjo333xzpk+fPqjnNjU1Zf78+dm+ffthH9PW1nbYC9W9e/emp6dnUMesptbW\n1uzevbvaZVRdc29vtUsYtN7eXmv3/9TT67i5uTkzZ87M8uXLq10KQEMYzHXhaaedliTZvn37IYch\ntXANWE//5g1GiX3Vek+VvP6t9evWSq2V60CAymtpacnxxx+f7du3Z9GiRXnttdfS3d094N0he/fu\nzbRp047497gOHB16qo5KXQe6Bvy1wVwDjh3sX7527dr84Ac/yKpVqzJjxoxBF3fw4MH84he/eNMQ\nBACgtg32uvCnP/1pkrgOBAAoxP79+9PR0ZHp06dnwYIFaWpqynPPPde/f9u2bdm5c+eAT40BqJZB\nvTNkzZo12bx5cz772c9mwoQJ/Z/319LS0n8jzLvvvjutra1ZtmxZkuSBBx7IwoULM2fOnHR1deU/\n/sf/mJ07dw742AQAAOrLm10XdnR0ZNOmTXnb296WY489Nj//+c+zfv36nHXWWTnppJOqXD0AAEPx\njW98I+eee25mzpyZ3bt3Z+PGjWlqasqSJUvS0tKSd7/73Vm/fn0mT56cSZMm5Z577snpp5/u5ulA\nTRjUMOTxxx9Pktx0000Dtq9cuTIXXXRRkmTXrl0ZO/b/v+Gkq6srf/mXf5nOzs4cc8wxOeWUU/Kl\nL30pJ5xwwjBLBwCgWt7sunDcuHF59tln8+ijj+bAgQM57rjj8s53vjN/9Ed/VIVqAQAYCbt27cpd\nd92VV155JVOmTMkZZ5yR1atX59hjj02SXHHFFRk7dmzuuOOO9PT0ZPHixbnyyiurXDXArw1qGLJh\nw4Y3fcyqVasGfH3FFVfkiiuuGFxVAADUtDe7LjzuuOPeMCgBAKC+ffrTnz7i/ubm5nzkIx/JRz7y\nkQpVBHD0Bn3PEAAAAAAAgHpiGAIAAAAAABTNMAQAAAAAACiaYQgAAAAAAFC0Qd1AHYDDe+ihh3Lf\nfffl4osvzhVXXJEk6enpyfr167Nly5b09PTknHPOyVVXXZWpU6dWuVoAAEbLwYMHs3HjxmzatCmd\nnZ2ZPn16fu/3fi+XXnpptUsDAGhYhiEAI+DFF1/M9773vZx88skDtq9bty7PPPNMrrnmmkyaNClr\n167N7bffnptvvrlKlQIAMNoefvjh/O3f/m2uvvrqzJs3L//wD/+Qr371q5k8eXL+4A/+oNrlAQA0\nJB+TBTBM+/fvz1e+8pV87GMfy+TJk/u3d3d358knn8wVV1yRs846K6ecckpWrlyZn/zkJ3nxxRer\nWDEAAKNp69atOe+887J48eLMmDEj73jHO/LWt77VNSAAQBUZhgAM05o1a3Luuefm7LPPHrC9vb09\nvb29A7bPnTs3M/4ve3cfZFV93w/8DbsXYXnYdV0esqAiwcUwUjfG2CYw0pg+aTtN0rTG0c6wRWjN\nxjRmrDpGreKvNDUOdtKadtrAuNjUSJrGNK0Jo01MZ6C0TjqmFR+CzMakDgECuKyzC7gs+/vDZput\nrnCX3XuXw+v1F/d7zrnfz/dy3Ptx35xzmpqyY8eOSpcJAECFLFq0KNu3b8+PfvSjJMlLL72U733v\ne3nnO99Z5coAAE5fbpMFcBK2bt2aH/zgB/n0pz/9hm1dXV2pra1NXV3dkPH6+vp0dXVVqkQAACrs\ngx/8YA4dOpQbb7wxEydOzMDAQK6++uosXbq02qUBAJy2hCEAI7R///50dHTkzjvvTG3tif84HRgY\nGMOqAACotn/913/Nli1bcuONN2bevHl56aWX0tHRkcbGxlx22WXVLg8A4LQkDAEYoc7OznR3d+fW\nW28dHDt27Fiee+65bN68ObfffnuOHj2a3t7eIVeHdHd3p6GhYdj33bJlS7Zu3TpkbPbs2Wlra8uM\nGTMqEqaUSqU0NjaO+TyVNN7X1Htwf8XmqqmpyfQKfRaVWlcl1zQSlTr/JkyYkCTp6OjInj17hmxb\nunRpli1bNuY1wEiUDvUkh3rKOqb34P6U+vvLm2jK1PRNmXr8/eAkfeELX8iHPvShvOc970mSnH32\n2fnxj3+cRx99dNgwRA84Nsb7mvSAJ08fqAcEOFHCEIARWrJkSdatWzdk7HOf+1zmzp2bD37wg2ls\nbExNTU22b9+eSy+9NEmya9eu7Nu3Ly0tLcO+77Jly4ZtVru7u9PX1zd6ixhGY2NjDhw4MObzVNJ4\nX1PZv9A7Cf39/RX7LCq1rkquaSQqdf6VSqXMnDkzbW1tYz4XjKpDPTl866oxn2byvesTYQgV8Npr\nrw3+cvInJkyY8JaBhh5wbIz3NekBT54+UA8IcKKEIQAjNHny5MybN+8NY9OnTx8cv/zyy7Nx48ZM\nnTo1U6ZMyYMPPphFixZl4cKF1SgZAIAKeNe73pWvfOUrOeuss3L22Wfn+9//fh577LFcfvnl1S4N\nAOC0JQwBGEMrVqzIxIkTc//996evry+tra257rrrql0WAABjaOXKldm0aVM2bNiQ7u7unHnmmfml\nX/qlfPjDH652aQAApy1hCMAouuuuu4a8LpVKWblyZVauXFmligAAqLTJkydnxYoVWbFiRbVLAQDg\nf0ysdgEAAAAAAABjSRgCAAAAAAAUmjAEAAAAAAAoNGEIAAAAAABQaMIQAAAAAACg0IQhAAAAAABA\noQlDAAAAAACAQhOGAAAAAAAAhSYMAQAAAAAACk0YAgAAAAAAFJowBAAAAAAAKDRhCAAAAAAAUGjC\nEAAAAAAAoNCEIQAAAAAAQKEJQwAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQA\nAAAAACg0YQgAAAAAAFBowhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAA\nAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEIAAAAAABQaMIQAAAAAACg0IQhAAAAAABAoQlDAAAAAACA\nQhOGAAAAAAAAhSYMAQAAAAAACk0YAgAAAAAAFJowBAAAAAAAKDRhCAAAAAAAUGjCEAAAAAAAoNCE\nIQAAAAAAQKEJQwAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACg0YQgA\nAAAAAFBowhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgCAAAA\nAAAUWm05Oz/66KN56qmnsmvXrkyaNCktLS259tpr09zc/JbHbdu2LV/60peyd+/eNDc355prrsk7\n3/nOkyocAIDqOZG+sK+vLxs3bsy2bdvS19eXiy66KKtWrUp9fX0VKwcAYLQ8+uijeeSRR3LllVdm\nxYoVSfSAwPhV1pUhL7zwQq644oqsXbs2d955Z/r7+7N27dq89tprwx6zY8eO/Nmf/Vne//735777\n7su73/3u3HfffXn55ZdPungAAKrjRPrCjo6OPP3007npppuyZs2avPLKK1m3bl0VqwYAYLTs3Lkz\n3/zmN3PuuecOGdcDAuNVWWHIbbfdlssuuyzz5s3LOeeck/b29uzbty+dnZ3DHvP1r389ra2t+bVf\n+7U0NzfnqquuynnnnZfNmzefdPEAAFTH8frC3t7ePPnkk1mxYkUWL16c8847L+3t7fne976XnTt3\nVrl6AABOxuHDh/Pnf/7nuf766zN16tTBcT0gMJ6d1DNDent7kyTTpk0bdp8dO3ZkyZIlQ8Yuuuii\n7Nix42SmBgBgHPm/fWFnZ2f6+/tz4YUXDu7T3NycpqYmfSAAwClu/fr1ede73jWk10v0gMD4NuIw\nZGBgIB0dHbngggsyb968Yffr6upKQ0PDkLGGhoZ0dXWNdGoAAMaRN+sLu7q6Ultbm7q6uiH71tfX\n6wMBAE5hW7duzQ9+8INcc801b9imBwTGsxGHIevXr8/LL7+cG2+8sexjBwYGMmHChJFODQDAOPKT\nvvATn/jEcfcdGBioQEUAAIyF/fv3p6OjIx//+MdTW1t7wsfpAYHx4MR/av2UDRs25Omnn84999yT\nM8888y33fbOrQA4ePJj6+vphj9myZUu2bt06ZGz27Nlpa2vLjBkzTqkfoKVSKY2NjdUuo+p6D+6v\ndgllq6mpyXR/d0lOrfP4J0FrR0dH9uzZM2Tb0qVLs2zZsmqUBVBYP90X/vR3RUNDQ44ePZre3t4h\n/zKwu7v7DVcN/8R46AFPpe+8coz3dVWqV6xkf1fJ/ne8962VOv/0gQBjr7OzM93d3bn11lsHx44d\nO5bnnnsumzdvzu233152D5joA8eKNVVHEXvbw3t351jPq2Udc+jggUxO+f/tTpw6PZNnzTnh/cvp\nAcsOQzZs2JDvfOc7ufvuu9PU1HTc/VtaWrJ9+/ZceeWVg2PPPPNMWlpahj1m2bJlwzaq3d3d6evr\nK7fsqmlsbMyBAweqXUbVlfr7q11C2fr7+/3d/Y9T6TwulUqZOXNm2traql0KQOG9VV+4YMGC1NTU\nZPv27bn00kuTJLt27cq+ffuG7QPHQw94Kn3nlWO8r6tSvWIl+7tK9r/jvW+t1PmnDwQYe0uWLMm6\ndeuGjH3uc5/L3Llz88EPfjCNjY1l94CJPnCsWFN1FLK37e7K4VtXVWSuyfeuT2/tpBPev5wesKww\nZP369dm6dWtuueWWnHHGGYNXfNTV1WXSpNcLfOCBB9LY2Dh438Arr7wyd911V/7pn/4pF198cbZs\n2ZLOzs783u/9XjlTAwAwjhyvL6yrq8vll1+ejRs3ZurUqZkyZUoefPDBLFq0KAsXLqxy9QAAjMTk\nyZPf8OzgyZMnZ/r06YPjekBgvCorDHniiSeSJHffffeQ8fb29ixfvjzJ6/cOnDjxfx9F0tLSkk98\n4hN55JFH8sUvfjFve9vbcvPNN7/lQ9cBABjfTqQvXLFiRSZOnJj7778/fX19aW1tzXXXXVfpUgEA\nqCA9IDBelRWGbNq06bj73HXXXW8Y+7mf+7n83M/9XDlTAQAwjp1IX1gqlbJy5cqsXLmyAhUBAFAN\n//d3gXpAYLyaePxdAAAAAAAATl3CEAAAAAAAoNCEIQAAAAAAQKEJQwAAAAAAgEIThgAAAAAAAIUm\nDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACg0YQgAAAAAAFBowhAAAAAAAKDQhCEAAAAAAEChCUMA\nAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEIAAAAAABQaMIQAAAA\nAACg0IQhAAAAAABAoQlDAAAAAACAQqutdgEAp6rHH388TzzxRPbu3ZskOfvss/Obv/mbaW1tTZL0\n9fVl48aN2bZtW/r6+nLRRRdl1apVqa+vr2bZAABUwIEDB/K3f/u3+e53v5sjR47kbW97Wz760Y9m\nwYIF1S4NAOC0JAwBGKGmpqZce+21mTNnTpLk29/+dj7zmc/kM5/5TObNm5eOjo5897vfzU033ZQp\nU6Zkw4YNWbduXe65554qVw4AwFjq6enJnXfemSVLluT222/P9OnT86Mf/SjTpk2rdmkAAKctYQjA\nCF188cVDXl999dV5/PHH8+KLL6axsTFPPvlkbrzxxixevDhJ0t7enk9+8pPZuXNnFi5cWI2SAQCo\ngK9+9atpamrK9ddfPzg2c+bMKlYEAIAwBGAUHDt2LNu2bcuRI0fS0tKSzs7O9Pf358ILLxzcp7m5\nOU1NTdmxY4cwBACgwP7jP/4jra2tuf/++/P888+nsbExv/RLv5T3v//91S4NAOC0JQwBOAk//OEP\nc8cdd6Svry+TJ0/OzTffnLlz5+b73/9+amtrU1dXN2T/+vr6dHV1ValaAAAqYc+ePXn88cfza7/2\na/mN3/iN7Ny5Mw8++GBKpVIuu+yyapcHAHBaEoYAnIS5c+fmvvvuS09PT/793/89DzzwQNasWTPs\n/gMDA8d9zy1btmTr1q1DxmbPnp22trbMmDHjhN7jZJVKpTQ2No75PJU03tfUe3B/xeaqqanJ9Ap9\nFpVaVyXXNBKVOv8mTJiQJOno6MiePXuGbFu6dGmWLVs25jUA8HrP9/a3vz1XX311kmT+/Pn57//+\n7zzxxBPDhiF6wLEx3tekBzx5+kA9IMCJEoYAnISamprMnj07SbJgwYLs3LkzX//61/Oe97wnR48e\nTW9v75CrQ7q7u9PQ0PCW77ls2bJhm9Xu7u709fWN3gKG0djYmAMHDoz5PJU03tdU6u+v2Fz9/f0V\n+ywqta5KrmkkKnX+lUqlzJw5M21tbWM+FwDDO/PMMzN37twhY3Pnzs1TTz017DF6wLEx3tekBzx5\n+kA9IMCJmljtAgCKZGBgIH19fVmwYEFqamqyffv2wW27du3Kvn370tLSUsUKAQAYa4sWLcquXbuG\njO3atStNTU1VqggAAGEIwAh98YtfzAsvvJAf//jH+eEPf5iHH344zz33XC677LLU1dXl8ssvz8aN\nG/Pss8+ms7Mzf/mXf5lFixZ5eDoAQMH96q/+al588cU8+uij2b17d7Zs2ZJvfetb+ZVf+ZVqlwYA\ncNpymyyAETp48GAeeOCBvPLKK6mrq8u5556bO+64IxdeeGGSZMWKFZk4cWLuv//+9PX1pbW1Nddd\nd12VqwYAYKy9/e1vzx/8wR/k4Ycfzt///d9n1qxZaWtry9KlS6tdGgDAaUsYAjBC119//VtuL5VK\nWblyZVauXFmhigAAGC8uvvjiXHzxxdUuAwCA/+E2WQAAAAAAQKEJQwAAAAAAgEJzmywAAAAAACqq\ndKgnOdRT1jG9B/en1N9f/mRTpqZvytTyj6NQhCEAAAAAAFTWoZ4cvnVVRaaafO/6RBhy2nObLAAA\nAAAAoNCEIQAAAAAAQKEJQwAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAA\nACg0YQgAAAAAAFBowhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAK\nTRgCAAAAAAAUmjAEAAAAAAAoNGEIAAAAAABQaMIQAAAAAACg0IQhAAAAAABAoQlDAAAAAACAQhOG\nAAAAAAAAhSYMAQAAAAAACk0YAgAAAAAAFJowBAAAAAAAKDRhCAAAAAAAUGjCEAAAAAAAoNCEIQAA\nAAAAQKEJQwAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACi02nIPeP75\n5/O1r30tnZ2d6erqys0335xLLrlk2P2fe+65rFmz5g3jf/3Xf536+vpypwcAYBw4Xk8d745oAAAg\nAElEQVT4F3/xF/mXf/mXIce0trbmtttuq3SpAACMkscffzxPPPFE9u7dmyQ5++yz85u/+ZtpbW1N\nkvT19WXjxo3Ztm1b+vr6ctFFF2XVqlV+BwiMC2WHIUeOHMn8+fPzvve9L+vWrTvh4z772c9mypQp\ng6/9EAQAOHWdSE/Y2tqaj33sYxkYGEiSlEqlSpYIAMAoa2pqyrXXXps5c+YkSb797W/nM5/5TD7z\nmc9k3rx56ejoyHe/+93cdNNNmTJlSjZs2JB169blnnvuqXLlACMIQ1pbWwfT3nLMmDEjdXV1ZR8H\nAMD4cyI9YalUyowZMypUEQAAY+3iiy8e8vrqq6/O448/nhdffDGNjY158sknc+ONN2bx4sVJkvb2\n9nzyk5/Mzp07s3DhwmqUDDCo7DBkpG655Zb09fXl7LPPzm/91m9l0aJFlZoaAIAqePbZZ7N69epM\nnTo1F154Ya6++upMmzat2mUBADAKjh07lm3btuXIkSNpaWlJZ2dn+vv7c+GFFw7u09zcnKampuzY\nsUMYAlTdmIchDQ0NWb16dd7+9renr68v3/zmN3P33Xfn05/+dObPnz/W0wMAUAWtra352Z/92cya\nNSt79uzJww8/nE9/+tP5oz/6o0yYMKHa5QEAMEI//OEPc8cdd6Svry+TJ0/OzTffnLlz5+b73/9+\namtr33BnmPr6+nR1dVWpWoD/NeZhSHNzc5qbmwdft7S0ZM+ePfmnf/qn3HDDDW96zJYtW7J169Yh\nY7Nnz05bW1tmzJgxeN/pU0GpVEpjY2O1y6i63oP7q11C2WpqajLd312SU+s8/skv2Do6OrJnz54h\n25YuXZply5ZVoyyA08573/vewT+fffbZOeecc/Lxj388zz777JB/LfjTxkMPeCp955VjvK+rUr1i\nJfu7Sva/471vrdT5pw8EqIy5c+fmvvvuS09PT/793/89DzzwQNasWTPs/ifSw+kDx8Z4X1NR+yW9\n7ckpd13l9IAVu03WT1u4cGG+973vDbt92bJlwzaq3d3d6evrG6vSRl1jY2MOHDhQ7TKqrtTfX+0S\nytbf3+/v7n+cSudxqVTKzJkz09bWVu1SAPgps2bNyvTp07N79+5hw5Dx0AOeSt955Rjv66pUr1jJ\n/q6S/e9471srdf7pAwEqo6amJrNnz06SLFiwIDt37szXv/71vOc978nRo0fT29s75OqQ7u7uNDQ0\nvOV76gPHxnhfU1H7Jb3tySl3XeX0gBNPoq4Re+mll477QxAAgOLYv39/Xn311Zx55pnVLgUAgFE0\nMDCQvr6+LFiwIDU1Ndm+ffvgtl27dmXfvn1paWmpYoUAryv7ypDDhw9n9+7dg6/37NmTl156KdOm\nTUtTU1MefvjhHDhwYPAWWF//+tcza9aszJs3b/CZIc8++2zuuOOO0VsFAAAV9VY94bRp0/LlL385\nP/uzP5uGhobs3r07f/u3f5vm5uZcdNFFVawaAICT8cUvfjHvfOc7c9ZZZ+XQoUPZsmVLnnvuudxx\nxx2pq6vL5Zdfno0bN2bq1KmZMmVKHnzwwSxatMjD04FxoewwpLOzc8h9AB966KEkyfLly9Pe3p6u\nrq7s3/+/9xA7evRoHnroobzyyiuZNGlSzj333Nx5551ZvHjxKJQPAEA1vFVPuGrVqvzgBz/Iv/zL\nv6S3tzdnnnlmLrroonzkIx9JbW1V7tIKAMAoOHjwYB544IG88sorqaury7nnnps77rhj8DaoK1as\nyMSJE3P//fenr68vra2tue6666pcNcDryv6/0cWLF2fTpk3Dbm9vbx/y+td//dfz67/+6+VXBgDA\nuHW8nvD222+vYDUAAFTC9ddf/5bbS6VSVq5cmZUrV1aoIoATV5VnhgAAAAAAAFSKMAQAAAAAACg0\nYQgAAAAAAFBowhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgC\nAAAAAAAUmjAEAAAAAAAoNGEIAAAAAABQaMIQAAAAAACg0IQhAAAAAABAoQlDAAAAAACAQhOGAAAA\nAAAAhSYMAQAAAAAACk0YAgAAAAAAFJowBAAAAAAAKDRhCAAAAAAAUGjCEAAAAAAAoNCEIQAAAAAA\nQKEJQwAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACg0YQgAAAAAAFBo\nwhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAE\nAAAAAAAotNpqFwBwqnr00Ufz1FNPZdeuXZk0aVJaWlpy7bXXprm5eXCfvr6+bNy4Mdu2bUtfX18u\nuuiirFq1KvX19VWsHACASnr00UfzyCOP5Morr8yKFSuqXQ4AwGnJlSEAI/TCCy/kiiuuyNq1a3Pn\nnXemv78/a9euzWuvvTa4T0dHR55++uncdNNNWbNmTV555ZWsW7euilUDAFBJO3fuzDe/+c2ce+65\n1S4FAOC0JgwBGKHbbrstl112WebNm5dzzjkn7e3t2bdvXzo7O5Mkvb29efLJJ7NixYosXrw45513\nXtrb2/O9730vO3furHL1AACMtcOHD+fP//zPc/3112fq1KnVLgcA4LQmDAEYJb29vUmSadOmJUk6\nOzvT39+fCy+8cHCf5ubmNDU1ZceOHVWpEQCAylm/fn3e9a53DekHAQCoDmEIwCgYGBhIR0dHLrjg\ngsybNy9J0tXVldra2tTV1Q3Zt76+Pl1dXdUoEwCACtm6dWt+8IMf5Jprrql2KQAARBgCMCrWr1+f\nl19+OZ/4xCeOu+/AwEAFKgIAoFr279+fjo6OfPzjH09tbW21ywEAIImuDOAkbdiwIU8//XTuueee\nNDY2Do43NDTk6NGj6e3tHXJ1SHd3dxoaGoZ9vy1btmTr1q1DxmbPnp22trbMmDGjImFKqVQaspYi\nGO9r6j24v2Jz1dTUZHqFPotKrauSaxqJSp1/EyZMSJJ0dHRkz549Q7YtXbo0y5YtG/MaAHj9dqnd\n3d259dZbB8eOHTuW5557Lps3b87DDz88+DP7J0a7Bzy8d3eO9bxa1jGHDh7I5JQ3z8Sp0zN51pyy\njqkkPeD/KmIPmOgDEz0gwIkShgCchA0bNuQ73/lO7r777jQ1NQ3ZtmDBgtTU1GT79u259NJLkyS7\ndu3Kvn370tLSMux7Llu2bNhmtbu7O319faO3gGE0NjbmwIEDYz5PJY33NZX6+ys2V39/f8U+i0qt\nq5JrGolKnX+lUikzZ85MW1vbmM8FwPCWLFmSdevWDRn73Oc+l7lz5+aDH/zgG4KQZPR7wFJ3Vw7f\nuqqsY0Zi8r3r01s7acznGSk94P8qYg+Y6AMTPSDAiRKGAIzQ+vXrs3Xr1txyyy0544wzBp8DUldX\nl0mTJqWuri6XX355Nm7cmKlTp2bKlCl58MEHs2jRoixcuLDK1QMAMFYmT548+By5nx6bPn36G8YB\nAKgMYQjACD3xxBNJkrvvvnvIeHt7e5YvX54kWbFiRSZOnJj7778/fX19aW1tzXXXXVfpUgEAAADg\ntCYMARihTZs2HXefUqmUlStXZuXKlRWoCACA8equu+6qdgkAAKe1idUuAAAAAAAAYCwJQwAAAAAA\ngEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACg0YQgAAAAAAFBowhAAAAAAAKDQ\nhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEI\nAAAAAABQaMIQAAAAAACg0IQhAAAAAABAoQlDAAAAAACAQhOGAAAAAAAAhSYMAQAAAAAACq223AOe\nf/75fO1rX0tnZ2e6urpy880355JLLnnLY5599tk89NBDefnll9PU1JQPfehD+fmf//mR1gwAQJWd\nSE+4adOmfOtb30pPT08WLVqU1atXZ86cOVWqGACAk/Xoo4/mqaeeyq5duzJp0qS0tLTk2muvTXNz\n8+A+fX192bhxY7Zt25a+vr5cdNFFWbVqVerr66tYOcAIrgw5cuRI5s+fn+uuu+6E9t+7d2/+5E/+\nJEuWLMl9992XK664In/1V3+V//qv/yq7WAAAxofj9YRf/epXs3nz5qxevTp//Md/nDPOOCNr167N\n0aNHK1wpAACj5YUXXsgVV1yRtWvX5s4770x/f3/Wrl2b1157bXCfjo6OPP3007npppuyZs2avPLK\nK1m3bl0VqwZ4XdlXhrS2tqa1tfWE93/88ccze/bs/PZv/3aSpLm5OS+88EIee+yx/MzP/Ey50wMA\nVFXpUE9yqKesY3oP7k+pv7/8yaZMTd+UqeUfVwHH6wm/8Y1v5MMf/vDg1SI33HBDVq9enaeeeirv\nfe97K1UmAACj6Lbbbhvyur29PatXr05nZ2cuuOCC9Pb25sknn8yNN96YxYsXD+7zyU9+Mjt37szC\nhQurUTZAkhGEIeV68cUXs2TJkiFjra2t2bhx41hPDQAw+g715PCtqyoy1eR71yfjNAx5K3v37k1X\nV9eQHrCuri7nn39+duzYIQwBACiI3t7eJMm0adOSJJ2dnenv78+FF144uE9zc3OampqyY8cOYQhQ\nVWP+APWurq433BOwvr4+vb296evrG+vpAQCosK6uriR50x7wJ9sAADi1DQwMpKOjIxdccEHmzZuX\n5PU+sLa2NnV1dUP21QcC48GYXxnyZgYGBpIkEyZMeNPtW7ZsydatW4eMzZ49O21tbZkxY8bg8aPl\n8N7dOdbz6qi+508cOnggkzO69SbJxKnTM3nWqfMA0t6D+6tdQtlqamoyvbGx2mWUZazO5VPpPP7J\nz5WOjo7s2bNnyLalS5dm2bJlozofACduYGAgEycO/29xKt0DvplSqZTGU+z7/0SM93VVqlesZH9X\nyf53vPetlTr/9IEAlbV+/fq8/PLLueeee4677/H6OH3g2Bjvaypqv6S3PTnlrqucHnDMw5CGhoYc\nPHhwyFh3d3fq6upSW/vm0y9btmzYRrW7u3vUrygpdXdV7HYXo2XyvevTWzup2mWcsBHdJ73K+vv7\nc+DAgWqXUZZT7Vwei/O4VCpl5syZaWtrG9X3BeDENTQ0JEkOHjw4+Ofk9T5u/vz5wx5X6R7wzTQ2\nNp5y3/8nYryvq1K9YiX7u0r2v+O9b63U+acPBKicDRs25Omnn84999wz5JftDQ0NOXr0aHp7e4dc\nHdLd3T2kL/y/9IFjY7yvqaj9kt725JS7rnJ6wDG/TVZLS0u2b98+ZOw///M/09LSMtZTAwBQBbNm\nzUpDQ0OeeeaZwbHe3t68+OKLWbRoURUrAwDgZG3YsCHf+c53ctddd6WpqWnItgULFqSmpmbI7wJ3\n7dqVffv2+V0gUHVlXxly+PDh7N69e/D1nj178tJLL2XatGlpamrKww8/nAMHDuSGG25IkvziL/5i\nNm/enC984Qu5/PLL88wzz+Tf/u3fctttt43eKgAAqKjj9YRXXnllvvKVr2TOnDmZNWtWHnnkkZx1\n1ll597vfXcWqAQA4GevXr8/WrVtzyy235Iwzzhh8DkhdXV0mTZqUurq6XH755dm4cWOmTp2aKVOm\n5MEHH8yiRYs8PB2ourLDkM7OzqxZs2bw9UMPPZQkWb58edrb29PV1ZX9+//3HmKzZs3Kbbfdlo0b\nN+Yb3/hGzjrrrHz0ox/Nz/zMz4xC+QAAVMPxesIPfOADOXLkSD7/+c+np6cn73jHO/KpT31q2Nuk\nAgAw/j3xxBNJkrvvvnvIeHt7e5YvX54kWbFiRSZOnJj7778/fX19aW1tzXXXXVfpUgHeoOz/G128\neHE2bdo07Pb29vY3Pebee+8tdyoAAMap4/WESXLVVVflqquuqlBFAACMteP1f8nr9+9fuXJlVq5c\nWYGKAE7cmD8zBAAAAAAAoJqEIQAAAAAAQKEJQwAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIA\nAAAAABSaMAQAAAAAACg0YQgAAAAAAFBowhAAAAAAAKDQhCEAAAAAAECh1Va7AAAAAAAAhlc61JMc\n6inrmN6D+1Pq7y9voilT0zdlannHwClCGAIAAAAAMJ4d6snhW1eN+TST712fCEMoKLfJAgAAAAAA\nCk0YAgAAAAAAFJowBAAAAAAAKDRhCAAAAAAAUGjCEAAAAAAAoNCEIQAAAAAAQKEJQwAAAAAAgEIT\nhgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSaMAQAAAAAACg0YQgAAAAAAFBowhAAAAAAAKDQhCEA\nAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEIAAAA\nAABQaMIQAAAAAACg0IQhAAAAAABAoQlDAAAAAACAQhOGAAAAAAAAhSYMAQAAAAAACk0YAgAAAAAA\nFJowBAAAAAAAKDRhCAAAAAAAUGi11S4AAACAU0PpUE9yqKesY3oP7k+pv7+8iaZMTd+UqeUdAwAA\nb0EYAgAAwIk51JPDt64a82km37s+EYYAADCK3CYLAAAAAAAoNGEIAAAAAABQaMIQAAAAAACg0IQh\nAAAAAABAoXmAOgCnnNKhnuRQT1nH9B7cn1J/f3kTTZmaPg9vBQAAADjlCUMAOPUc6snhW1eN+TST\n712fCEMAAAAATnnCEAAAAACgEEZyJ4HE3QTgdCAMAQAAAACKoUJ3EkjcTQBONcIQgJPw/PPP52tf\n+1o6OzvT1dWVm2++OZdccsmQfTZt2pRvfetb6enpyaJFi7J69erMmTOnShUDADDWHn300Tz11FPZ\ntWtXJk2alJaWllx77bVpbm6udmkAAKetidUuAOBUduTIkcyfPz/XXXfdm27/6le/ms2bN2f16tX5\n4z/+45xxxhlZu3Ztjh49WuFKAQColBdeeCFXXHFF1q5dmzvvvDP9/f1Zu3ZtXnvttWqXBgBw2hKG\nAJyE1tbWfOQjH8mll176ptu/8Y1v5MMf/nAuueSSnHPOObnhhhty4MCBPPXUUxWuFACASrntttty\n2WWXZd68eTnnnHPS3t6effv2pbOzs9qlAQCctoQhAGNk79696erqypIlSwbH6urqcv7552fHjh1V\nrAwAgErq7e1NkkybNq3KlQAAnL6EIQBjpKurK0lSX18/ZLy+vn5wGwAAxTYwMJCOjo5ccMEFmTdv\nXrXLAQA4bXmAOkCFDQwMZOLE4bPoLVu2ZOvWrUPGZs+enba2tsyYMSMDAwNjXWJKpVIaGxvHfJ6R\n6j24vyLz1NTUZHqFPodKrSkp5rqKuKak/HVNmDAhSdLR0ZE9e/YM2bZ06dIsW7ZsVOsD4PjWr1+f\nl19+Of/v//2/t9xvtHvAIn4HH967O8d6Xi3rmEMHD2Ryyu+fJ06dnsmz5pR9XLnGc19xMoq4rpGc\nf8nIzsFyzz89IMCJEYYAjJGGhoYkycGDBwf/nCTd3d2ZP3/+sMctW7Zs2Ga1u7s7fX19o1rnm2ls\nbMyBAwfGfJ6RKvX3V2Se/v7+in0OlVpTUsx1FXFNSfnrKpVKmTlzZtra2sauKABO2IYNG/L000/n\nnnvuyZlnnvmW+452D1jI7+Durhy+dVVF5pp87/r01k4a83nGc19xMoq4rvF8/ukBAU6M22QBjJFZ\ns2aloaEhzzzzzOBYb29vXnzxxSxatKiKlQEAMNY2bNiQ73znO7nrrrvS1NRU7XIAAE57rgwBOAmH\nDx/O7t27B1/v2bMnL730UqZNm5ampqZceeWV+cpXvpI5c+Zk1qxZeeSRR3LWWWfl3e9+dxWrBgBg\nLK1fvz5bt27NLbfckjPOOGPweXF1dXWZNGnsrzYAAOCNhCEAJ6GzszNr1qwZfP3QQw8lSZYvX572\n9vZ84AMfyJEjR/L5z38+PT09ecc73pFPfepTqa314xcAoKieeOKJJMndd989ZLy9vT3Lly+vQkUA\nAPhtHMBJWLx4cTZt2vSW+1x11VW56qqrKlQRAADVdrz+EACAyvPMEAAAAAAAoNCEIQAAAAAAQKEJ\nQwAAAAAAgEIThgAAAAAAAIU2ogeob968Of/4j/+Yrq6uzJ8/P7/zO7+ThQsXvum+3/72t/OXf/mX\nQ8ZKpVK+8IUvjGRqAABOEX/3d3+XL3/5y0PGmpub86d/+qdVqggAgJP1/PPP52tf+1o6OzvT1dWV\nm2++OZdccsmQfTZt2pRvfetb6enpyaJFi7J69erMmTOnShUDvK7sMORf//Vf8zd/8zf53d/93Sxc\nuDCPPfZY1q5dm89+9rOZMWPGmx5TV1eXz372sxkYGEiSTJgw4eSqBgDglHD22WfnD//wDwf7wJqa\nmipXBADAyThy5Ejmz5+f973vfVm3bt0btn/1q1/N5s2b87GPfSyzZs3KI488krVr1+ZP//RPU1s7\non+XDTAqyr5N1mOPPZZf+IVfyPLlyzN37tysXr06Z5xxRp588sm3PG7GjBmpr69PfX39sKEJAADF\nUlNTM6QPnDZtWrVLAgDgJLS2tuYjH/lILr300jfd/o1vfCMf/vCHc8kll+Scc87JDTfckAMHDuSp\np56qcKUAQ5UVxx49ejSdnZ350Ic+NDg2YcKELFmyJDt27Bj2uMOHD+djH/tYjh07lvPOOy/XXHNN\n5s2bN/KqAQA4JfzoRz/K7/3e72XSpEk5//zzc80116SpqanaZQEAMAb27t2brq6uLFmyZHCsrq4u\n559/fnbs2JH3vve9VawOON2VdWXIq6++mmPHjqW+vn7IeH19fbq6ut70mObm5nz0ox/NLbfckt//\n/d/PwMBA7rjjjhw4cGDkVQMAMO6df/75aW9vz+23357Vq1fnxz/+ce66664cPny42qUBADAGfvL7\nwXJ+dwhQKaN2o77hngPS0tKSlpaWIa8/+clP5p//+Z9z1VVXjdb0AACMM62trYN/Puecc7Jw4cK0\nt7dn27Zted/73lfFygAAqKSBgYFMnFj23foBRlVZYcj06dMzceLEHDx4cMj4wYMH35D4Dqempibz\n58/P7t27h91ny5Yt2bp165Cx2bNnp62tLTNmzBh8AOdo6T24f1TfrxJqamoyvbGx2mWcMJ9xZZxq\nn/NYfMY/CWY7OjqyZ8+eIduWLl2aZcuWjep8AJy4urq6vO1tbxu2D6x0D/hmSqVSGsfx9//hvbtz\nrOfVso87dPBAJqe8z2/i1OmZPGtO2XONRKV6mEr2d5Xsy4q4rpGsSR8IUH0NDQ1JXv9d4U/+nCTd\n3d2ZP3/+sMeNZh/oO/jkFHFNSTHXVcQ1JeWvq5wesKwwpLa2NgsWLMgzzzyTSy65JMnrye727dtz\nxRVXnNB7HDt2LP/93/+dd77zncPus2zZsmEb1e7u7vT19ZVT9nGV+vtH9f0qob+//5S61ZjPuDJO\ntc95LD7jUqmUmTNnpq2tbVTfF4CTd/jw4ezZsydnnnnmm26vdA/4ZhobG8f193+puyuHb11Vkbkm\n37s+vbWTKjJXpXqYSvZ3lezLiriukaxJHwhQfbNmzUpDQ0OeeeaZnHvuuUmS3t7evPjii/nlX/7l\nYY8bzT7Qd/DJKeKakmKuq4hrSspfVzk9YNm3yfrVX/3VfO5zn8uCBQuycOHCPPbYYzly5Eh+/ud/\nPknywAMPpLGxMddcc02S5Mtf/nJaWloyZ86c9PT05B/+4R+yb9++vP/97y93agAATiF/8zd/k3e9\n612ZOXNmDhw4kC996UupqanJ0qVLq10aAAAjdPjw4SFX+u7ZsycvvfRSpk2blqamplx55ZX5yle+\nkjlz5mTWrFl55JFHctZZZ+Xd7353FasGGEEY8t73vjevvvpqvvSlL6Wrqyvz58/P7bffnhkzZiRJ\n9u/fP+QegD09Pfmrv/qrdHV1Zdq0aTnvvPPyR3/0R5k7d+7orQIAgHFn//79+bM/+7O8+uqrmTFj\nRi644IKsXbs206dPr3ZpAACMUGdnZ9asWTP4+qGHHkqSLF++PO3t7fnABz6QI0eO5POf/3x6enry\njne8I5/61KdSWztqjy4GGJER/RT65V/+5WEvbbvrrruGvF6xYkVWrFgxkmkAADiF3XjjjdUuAQCA\nUbZ48eJs2rTpLfe56qqrctVVV1WoIoATM/H4uwAAAAAAAJy6hCEAAAAAAEChCUMAAAAAAIBCE4YA\nAAAAAACFJgwBAAAAAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEIAAAAAABQaMIQAAAAAACg0IQhAAAA\nAABAoQlDAAAAAACAQhOGAAAAAAAAhSYMAQAAAAAACk0YAgAAAAAAFJowBAAAAAAAKDRhCAAAAAAA\nUGjCEAAAAAAAoNCEIQAAAAAAQKEJQwAAAAAAgEIThgAAAAAAAIUmDAEAAAAAAApNGAIAAAAAABSa\nMAQAAAAAACg0YQgAAAAAAFBowhAAAAAAAKDQhCEAAAAAAEChCUMAAAAAAIBCE4YAAAAAAACFJgwB\nAAAAAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEIAAAAAABQaMIQAAAAAACg0IQhAAAAAABAoQlDAAAA\nAACAQhOGAAAAAAAAhSYMAQAAAAAACk0YAgAAAAAAFJowBAAAAAAAKDRhCAAAAAAAUGjCEAAAAAAA\noNCEIQAAAAAAQKEJQwAAAAAAgEKrrXYBAIyd0qGe5FBP2cf1HtyfUn9/eQdNmZq+KVPLngsAAAAA\nxpowBKDIDvXk8K2rKjLV5HvXJ8IQAAAAAMYht8kCAAAAAAAKTRgCAAAAAAAUmjAEAAAAAAAoNGEI\nAAAAAABQaMIQAAAAAACg0IQhAAAAAABAoQlDAAAAAACAQhOGAAAAAAAAhSYMAQAAAAAACk0YAgAA\nAAAAFJowBADg/7d376FV138cx19nzto03dFy2VymJfstabn+8JZLhTJFQwpyqIsyy1MAAA/ISURB\nVEQS+wldLOsPEbPaumF6gkgkCLuY1YxhlKVjaFlCS7ByXTTjCKciHd4mZ2rHOS/f3x+h/YZz7mxn\n5/v9vM/zAf6xc872fb/Pe+8Xkw/nHAAAAAAAYFq23wUAAAAAPaH3yb+lk38n9T2J5ib1Pns2+Yvl\n9tXp3L7Jfx8AAAAAIC04DAEAAIBNJ/9Wy+L/puVSOcvfkjgMAQAAAIDA4m2yAAAAAAAAAACAaRyG\nAAAAAAAAAAAA0zgMAQAAAAAAAAAApnEYAgAAAAAAAAAATOMwBAAAAAAAAAAAmMZhCAAAAAAAAAAA\nMI3DEAAAAAAAAAAAYFp2V76prq5On3/+ueLxuIYNG6aHHnpII0aMuOTjt2/frpqaGh06dEgFBQWa\nO3eubrvtti4XDQCuSTY3AcASMhBApiL/AGQyMhBA0CT9ypBvv/1W77//vsrLy7VixQrdcMMNevnl\nl3Xs2LF2Hx+NRrVy5UrdeeedikQiGj16tCKRiPbt29ft4gHABcnmJgBYQgYCyFTkH4BMRgYCCKKk\nD0M2bdqku+66S5MmTdKQIUM0f/58XXnllfrqq6/afXxtba1KS0t1zz33qKCgQOXl5Ro+fLjq6uq6\nXTwAuCDZ3AQAS8hAAJmK/AOQychAAEGU1GHImTNnFIvFVFJScuG2UCikkpISRaPRdr8nGo22ebwk\njRo16pKPBwBLupKbAGAFGQggU5F/ADIZGQggqJI6DDl+/LjOnTunvLy8Nrfn5eUpHo+3+z3xeFzh\ncLjNbeFw+JKPBwBLupKbAGAFGQggU5F/ADIZGQggqLr0AertCYVCnX6s53lJPf7/ZWenrOR/f2ZO\nrnrf9J+U/9yelJ2TK/Xu7XcZncZznB6uPc898Rz3REb0lK7kYLL9pfN3Ip07k66+LPZ0/lrW+rLY\n0/lrJdOX5QzsSm9BnlV3rmOtp/PXIiu6dy1rfXWlJ1cyMB1/A0rBnlV3rmVtryz2dP5a1voKck+u\n5J/E/4O7ey1yvXvXstaXxZ7OX6unMjCpNOnXr5+ysrLU3Nzc5vbm5uaLTnvPa+9VIB09XpK++eYb\n1dfXt7nt5ptv1syZMzVgwIBkSu6cQYOklR+m/ufiXzzH6cHzfMFnn32mPXv2tLltwoQJKisrS2sd\nXcnNlGag1d8Ji31Z7Emy2ZcDPbmagSn/G9CBWSXNYk+Szb4s9iQ50VcQMtD3vwElJ2aVNHpyh8W+\nHOgpCPknBSADHZhVl1jsy2JPks2+HOipUxnoJenpp5/23nnnnQtfnzt3znv44Ye9DRs2tPv41157\nzVu+fHmb25555hlv9erVyV7aSe+++67fJZjHc9zzeI67J9ncDAKLM6cnd1jsy2JPneVaBlqdlcW+\nLPbkeTb7sthTZ7iWf55nc1YWe/I8m31Z7Mnz7PZ1OWRgMNCTOyz2FcSekvrMEEmaMWOGvvjiC23b\ntk379+/X6tWrderUKU2ePFmStGrVKlVXV194/PTp09XQ0KCNGzeqsbFRNTU1isVimjZtWteOeBxz\n8OBBv0swj+e45/Ecd8/lcjOILM6cntxhsS+LPXWWaxlodVYW+7LYk2SzL4s9dYZr+SfZnJXFniSb\nfVnsSbLb1+WQgcFAT+6w2FcQe0r6TQVvv/12HT9+XDU1NYrH4xo2bJiWLl2q/v37S5KampqUlfXv\nGUtRUZEWLlyojz76SOvWrdN1112nRYsWqbCwMHVdAECAXS43AcAyMhBApiL/AGQyMhBAEHXpE5am\nTp2qqVOntntfZWXlRbeNGzdO48aN68qlAMCEjnITAKwjAwFkKvIPQCYjAwEETdJvkwUAAAAAAAAA\nAOCSXlVVVVV+F2Hd0KFD/S7BPJ7jnsdznHkszpye3GGxL4s9WWV1Vhb7stiTZLMviz1ZZXFWFnuS\nbPZlsSfJbl8WWZwVPbnDYl9B6ynkeZ7ndxEAAAAAAAAAAAA9hbfJAgAAAAAAAAAApnEYAgAAAAAA\nAAAATOMwBAAAAAAAAAAAmMZhCAAAAAAAAAAAMI3DEAAAAAAAAAAAYBqHIQAAAAAAAAAAwLRsvwsA\nkrFv3z7V1dUpGo0qHo8rFAopLy9PRUVFmjZtmgoLC/0uEUAAkBXuYFZA6rFXbmBOQOqxV+5gVkDq\nsVfuYFb+CXme5/ldhEWnT59WKBRSdjbnTanS0NCgSCSi4cOHa9SoUQqHw/I8T83Nzfrll18Ui8W0\naNEilZaW+l2q0wjkzGYhu6xmhcXdZFYIGjIwuKztldU5SfZmlSnIv2CztlfMCkFDBgabtb2yOitX\n5sRhSAr9/PPP2rRpk6LRqBKJhCSpT58+Kioq0owZM3Trrbf6XKHbFi1apNGjR6u8vLzd+2tqarRj\nxw69+uqraa7MDquBjI5Zyy6LWWF1N5kVgoAMDD6Le2VxTpLNWVlG/rnB4l4xK3dmZRkZ6AaLe2Vx\nVi7Nyd0jz4D5+uuv9eabb2rs2LGaN2+e8vLy5Hmejh07pp9++knLli3TI488ookTJ/pdqrMaGxtV\nVlZ2yfvLysq0YcOGNFZkT3V1te699952A7m8vFw1NTX64IMPAhFeSA2L2WUxK6zuJrOC38hAN1jc\nK4tzkmzOyiryzx0W94pZuTMrq8hAd1jcK4uzcmlOHIakyCeffKJ58+Zp2rRpF903efJkFRcXa/36\n9U4FadDk5+dr586dKigoaPf+nTt3atCgQWmuyhaLgYyOWcwui1lhdTeZFfxGBrrB4l5ZnJNkc1ZW\nkX/usLhXzAp+IwPdYXGvLM7KpTlxGJIiR44c6fAldCUlJVq7dm0aK7KnvLxcK1eu1O7du1VSUqJw\nOCxJisfj2rVrlxoaGrRw4UKfq3SbxUBGxyxml8WssLqbzAp+IwPdYHGvLM5Jsjkrq8g/d1jcK2YF\nv5GB7rC4VxZn5dKcOAxJkcLCQm3dulUPPPBAu/dv3bo1MB8U46rx48fr6quvVm1trTZu3Kh4PC5J\nCofDKioq0vPPP6+ioiKfq3SbxUBGxyxml8WssLqbzAp+IwPdYHGvLM5Jsjkrq8g/d1jcK2YFv5GB\n7rC4VxZn5dKc+AD1FNm9e7deeeUVXXvttSopKVFeXp4kqbm5Wbt27dKBAwe0ZMkSjRw50udKgY5F\no1HV1tYqGo1eFMjTp093LpDRMbLLHeymO5iVO8hAd7BX7mBWbiD/3MJeuYNZuYEMdAt75QZX5sRh\nSAodOnRImzdv1t69ey8a+pQpU5Sfn+9zhQBwMbILQCYjAwFkKvIPQCYjA4HMxGEIzKiurlY8Htej\njz7qdykAAoyscAezAlKPvXIDcwJSj71yB7MCUo+9cgez6llZfhcApMrRo0d1+PBhv8swrbq6Wm+8\n8YbfZQDdYjErrO4mswJSj71yg8U5STZnBXewV+5gVkDqsVfusDirIM2JD1BPk1WrVqmpqUmVlZV+\nl2LWggUL/C7BvKNHj6qpqcnvMpBGFrPLYlZY203P8xQKhZgVfEcGusHSXlnOP8nWrKwj/9xhaa/I\nQAQFGegOS3tlOQODNCfeJitNeIkTABeRXfDDnDlzFIlEVFhY6HcpyHBkINKN/ENQkH/wAxmIoCAD\n4QcyMD04DIFTWltbFYvFdNVVV10UDq2trdq+fbsmTZrkU3U27Nu3T3v37lVRUZGGDBmi/fv3q7a2\nVqdPn9bEiRN1yy23+F0icFkWs8Libr733nvt3l5bW6s77rhD/fr1kyTNmzcvnWWlVEtLi7Zv364D\nBw5owIABmjBhwoW+gJ5CBgZfJuSfRAYi/Szmn0QGuooMRLqRgW7IhAwMcv71qqqqqvK7iExw5MgR\nrVmzRqNHj/a7FGc1NjZq6dKlqq2t1ebNm7Vr1y6VlpYqNzdXknT8+HFVVlZq1qxZPlfqrh9//FFV\nVVX69ddfVVdXp5tuukkrVqxQdna2EomEPv74YxUXFys/P9/vUpEmLmaXxaywupvLli1Ta2urEomE\n4vH4hX+HDx9Wdna2Tpw4oXg8rsmTJ/tdaqc99dRTKisr0xVXXKEjR45oyZIl+u6775RIJLRjxw5t\n2bJF48aNU9++ff0uFZ1ABgaDxQy0mH8SGWgJ+RccZKA7yEA7yMDgIAPd4FL+8ZkhaXLixAlt27aN\nl9h1w4cffqjrr79ey5YtUyKR0Jo1a/Tss8+qqqpK11xzjd/lmbB+/XrNnDlTs2fPVn19vV5//XXd\nfffdmjNnjqR/Xir66aefOnfqjq5zMbssZoXV3Zw9e7a+/PJLPfjgg21qnzNnjh577DEnXx7c2Nio\ns2fPSvpnLgMHDlQkElGfPn3U0tKiSCSidevWaeHChT5Xis4gA4PBYgZazD+JDLSE/AsOMtAdZKAd\nZGBwkIFucCn/svwuwIrvv/++w3+7d+/2u0TnRaNRzZ07V/3799fgwYO1ePFijRo1Ss8995wOHjzo\nd3km/PXXXxdOnsePH6+WlhaNHTv2wv1lZWX6888/faoOPcFidlnMCqu7ed999+nJJ5/U6tWrtXbt\nWp05c8bvklJq7969mjVrlvr06SNJysnJUXl5uX777TefK8N5ZKAbLGag9fyTyMCgI//cQQa6iQwM\nNjLQHWSge4Kef7wyJEUikYjfJZjX2tqqrKx/z+9CoZDmz5+vt99+W1VVVXriiSd8rM6erKws9e7d\nu81L2HJzc5VIJHysCqlmMbusZ4W13RwxYoSWL1+ut956S0uWLNHjjz/ud0ndFgqFJP3zuxgOh9vc\nN3DgQB07dsyPstAOMtA9ljLQYv5JZKAryD83kYHBRwa6gQx0ExkYbK7kH4chKRIOh1VRUaExY8a0\ne/8ff/yhxYsXp7kqWwoKChSLxS56uVhFRYUkacWKFX6UZUp+fr4OHDigwYMHS5JeeumlNi+nbGpq\n0oABA/wqDz3AYnZZzArru5mTk6MFCxaovr5eL774os6dO+d3Sd3ywgsvqFevXjp58qQaGxs1dOjQ\nC/cdPnw4MB8cBzLQFZYz0Fr+SWSgK8g/d5CBbiED3UAGuoMMdIcr+cdhSIrceOON+v333y8ZpOi+\nMWPGqL6+XhMnTrzovoqKCnmepy1btvhQmR1TpkxpE77/H1yS1NDQ4NT7MOLyLGaXxazIlN2cMGGC\niouLFYvFnH1f2/vvv7/N1zk5OW2+/uGHH1RcXJzOktABMtANmZCBFvJPIgNdQv65gwx0BxnoDjLQ\nHWSgG1zKv5DneZ7fRViwZ88enTp1SqWlpe3e39LSolgsppEjR6a5MgC4NLILQCYjAwFkKvIPQCYj\nA4HMxWEIAAAAAAAAAAAwLevyDwEAAAAAAAAAAHAXhyEAAAAAAAAAAMA0DkMAAAAAAAAAAIBpHIYA\nAAAAAAAAAADTOAwBAAAAAAAAAACmcRgCAAAAAAAAAABM4zAEAAAAAAAAAACY9j/YoK4eOZ2v7wAA\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def plot_ratings(ratings, ax):\n", " counter = Counter([r for (_, r) in ratings])\n", " pd.DataFrame.from_dict(counter, orient='index').plot(kind='bar', ax=ax)\n", "\n", "fig = plt.figure(figsize=(20, 13))\n", "for i, iid in enumerate(worst_preds.uid):\n", " ax = plt.subplot2grid((2,5),(i//5,i%5))\n", " plot_ratings(dump['trainset'].ir[iid], ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Conclusion? Well, when $\\hat{r}_{ui} = 1$ and very few users have rated $i$ to $1$, it's difficult for an algorithm to predict it..." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }