singa-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wang...@apache.org
Subject [11/15] incubator-singa git commit: SINGA-290 Upgrade to Python 3
Date Fri, 04 Aug 2017 08:32:55 GMT
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/bd5a8f8d/doc/en/docs/notebook/cnn.ipynb
----------------------------------------------------------------------
diff --git a/doc/en/docs/notebook/cnn.ipynb b/doc/en/docs/notebook/cnn.ipynb
index 64a3a25..d5198b2 100644
--- a/doc/en/docs/notebook/cnn.ipynb
+++ b/doc/en/docs/notebook/cnn.ipynb
@@ -24,20 +24,28 @@
    },
    "outputs": [],
    "source": [
-    "import cPickle, gzip\n",
+    "from __future__ import division\n",
+    "from builtins import zip\n",
+    "from builtins import str\n",
+    "from builtins import range\n",
+    "from past.utils import old_div\n",
+    "from future import standard_library\n",
+    "from __future__ import print_function\n",
+    "from tqdm import tnrange, tqdm_notebook\n",
+    "\n",
+    "standard_library.install_aliases()\n",
+    "import pickle, gzip\n",
     "\n",
     "# Load the dataset\n",
     "f = gzip.open('mnist.pkl.gz', 'rb')\n",
-    "train_set, valid_set, _ = cPickle.load(f)\n",
+    "train_set, valid_set, _ = pickle.load(f, encoding='latin1')\n",
     "f.close()"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 2,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
@@ -49,15 +57,15 @@
     }
    ],
    "source": [
-    "print train_set[0].shape, train_set[1].shape\n",
-    "print valid_set[0].shape, valid_set[1].shape"
+    "print(train_set[0].shape, train_set[1].shape)\n",
+    "print(valid_set[0].shape, valid_set[1].shape)"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 3,
    "metadata": {
-    "collapsed": false
+    "collapsed": true
    },
    "outputs": [],
    "source": [
@@ -70,14 +78,12 @@
   {
    "cell_type": "code",
    "execution_count": 4,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.image.AxesImage at 0x7f0747e21410>"
+       "<matplotlib.image.AxesImage at 0x7fdde5663438>"
       ]
      },
      "execution_count": 4,
@@ -86,9 +92,9 @@
     },
     {
      "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAD8CAYAAAC4nHJkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADn9JREFUeJzt3X9sXfV5x/HPU8dxlhDauCmeSzMSIC3QsIbtKoCIgImR\npQgpoKqhUVWljDVdC3RsmQTLpjWb2JRNLVXKGJJZsyQVv0oLIn+wVmBV0GrgYbIQfpVfwV0TjE1w\nIYHSxLGf/eGTygXf73XuPfeeaz/vl2T53vOcc8+jk3x87r3fe8/X3F0A4vlA0Q0AKAbhB4Ii/EBQ\nhB8IivADQRF+ICjCDwRF+IGgCD8Q1IxG7mymtfkszWnkLoFQfq13dNgP2WTWrSn8ZrZS0mZJLZL+\nw903pdafpTk62y6qZZcAEnq8e9LrVv2038xaJN0i6dOSzpC0xszOqPbxADRWLa/5l0l6yd33uPth\nSXdJWpVPWwDqrZbwnyjpF+Pu782W/RYzW2dmvWbWO6xDNewOQJ7q/m6/u3e5e8ndS61qq/fuAExS\nLeHfJ2nBuPsfy5YBmAJqCf/jkhab2SIzmynpc5J25NMWgHqreqjP3Y+Y2TWSfqSxob4t7v5Mbp0B\nqKuaxvnd/QFJD+TUC4AG4uO9QFCEHwiK8ANBEX4gKMIPBEX4gaAIPxAU4QeCIvxAUIQfCIrwA0ER\nfiAowg8ERfiBoAg/EBThB4Ii/EBQhB8IivADQRF+ICjCDwRF+IGgCD8QFOEHgiL8QFCEHwiK8ANB\nEX4gKMIPBFXTLL1m1ifpoKQRSUfcvZRHU8iPzUj/E7d8ZH5d9//8Xy8sWxuZPZrc9qRTBpP12V+1\nZP21m2aWre0s3Z3cdv/IO8n62fesT9ZP/avHkvVmUFP4M3/k7vtzeBwADcTTfiCoWsPvkh4ysyfM\nbF0eDQFojFqf9i93931mdoKkB83sZ+7+yPgVsj8K6
 yRplmbXuDsAeanpzO/u+7Lfg5Luk7RsgnW6\n3L3k7qVWtdWyOwA5qjr8ZjbHzOYevS1phaSn82oMQH3V8rS/Q9J9Znb0ce5w9x/m0hWAuqs6/O6+\nR9Kncuxl2mo5fXGy7m2tyfqrF3woWX/3nPJj0u0fTI9X/+RT6fHuIv3Xr+Ym6//ybyuT9Z4z7yhb\ne2X43eS2mwYuTtY/+hNP1qcChvqAoAg/EBThB4Ii/EBQhB8IivADQeXxrb7wRi78g2T9pq23JOsf\nby3/1dPpbNhHkvW/v/mLyfqMd9LDbefec03Z2tx9R5Lbtu1PDwXO7u1J1qcCzvxAUIQfCIrwA0ER\nfiAowg8ERfiBoAg/EBTj/Dloe/7VZP2JXy9I1j/eOpBnO7la339Osr7n7fSlv7ee8v2ytbdG0+P0\nHd/+72S9nqb+F3Yr48wPBEX4gaAIPxAU4QeCIvxAUIQfCIrwA0GZe+NGNI+3dj/bLmrY/prF0JXn\nJusHVqYvr92y+7hk/cmv3nzMPR114/7fT9YfvyA9jj/y5lvJup9b/urufV9LbqpFa55Mr4D36fFu\nHfCh9NzlGc78QFCEHwiK8ANBEX4gKMIPBEX4gaAIPxBUxXF+M9si6VJJg+6+JFvWLuluSQsl9Ula\n7e6/rLSzqOP8lbTM/3CyPvLGULL+yh3lx+qfOX9Lcttl/3xtsn7CLcV9px7HLu9x/q2S3jsR+g2S\nut19saTu7D6AKaRi+N39EUnvPfWskrQtu71N0mU59wWgzqp9zd/h7v3Z7dckdeTUD4AGqfkNPx97\n06DsGwdmts7Mes2sd1iHat0dgJxUG/4BM+uUpOz3YLkV3b3L3UvuXmpVW5W7A5C3asO/Q9La7PZa\nSffn0w6ARqkYfjO7U9Kjkj5hZnvN7CpJmyRdbGYvSvrj7D6AKaTidfvdfU2ZEgP2ORnZ/0ZN2w8f\nmFn1tp/8/LPJ+uu3tqQfYHSk
 6n2jWHzCDwiK8ANBEX4gKMIPBEX4gaAIPxAUU3RPA6df/0LZ2pVn\npkdk//Ok7mT9gs9enazPvfuxZB3NizM/EBThB4Ii/EBQhB8IivADQRF+ICjCDwTFOP80kJom+42v\nnJ7c9v92vJus33Dj9mT9b1Zfnqz7/36wbG3BPz2a3FYNnD4+Is78QFCEHwiK8ANBEX4gKMIPBEX4\ngaAIPxBUxSm688QU3c1n6E/PTdZv//o3kvVFM2ZVve9Pbr8mWV98W3+yfmRPX9X7nq7ynqIbwDRE\n+IGgCD8QFOEHgiL8QFCEHwiK8ANBVRznN7Mtki6VNOjuS7JlGyV9SdLr2Wob3P2BSjtjnH/q8fOW\nJuvHb9qbrN958o+q3vdpP/6zZP0T/1D+OgaSNPLinqr3PVXlPc6/VdLKCZZ/y92XZj8Vgw+guVQM\nv7s/ImmoAb0AaKBaXvNfa2a7zWyLmc3LrSMADVFt+G+VdLKkpZL6JX2z3Ipmts7Mes2sd1iHqtwd\ngLxVFX53H3D3EXcflXSbpGWJdbvcveTupVa1VdsngJxVFX4z6xx393JJT+fTDoBGqXjpbjO7U9KF\nkuab2V5JX5d0oZktleSS+iR9uY49AqgDvs+PmrR0nJCsv3rFqWVrPddvTm77gQpPTD//yopk/a3l\nbyTr0xHf5wdQEeEHgiL8QFCEHwiK8ANBEX4gKIb6UJjv7U1P0T3bZibrv/LDyfql115X/rHv60lu\nO1Ux1AegIsIPBEX4gaAIPxAU4QeCIvxAUIQfCKri9/kR2+jy9KW7X/5seoruJUv7ytYqjeNXcvPQ\nWcn67Pt7a3r86Y4zPxAU4QeCIvxAUIQfCIrwA0ERfiAowg8ExTj/NGelJcn6C19Lj7Xfdt62ZP38\nWenv1NfikA8n648NLUo/wGh/jt1MP5z5gaAIPxAU4QeCIvxAUIQfCIrwA0ERfiCoiuP8ZrZA0nZJ\nHZJcUpe
 7bzazdkl3S1ooqU/Sanf/Zf1ajWvGopOS9Zev/GjZ2sYr7kpu+5nj9lfVUx42DJSS9Yc3\nn5Osz9uWvu4/0iZz5j8iab27nyHpHElXm9kZkm6Q1O3uiyV1Z/cBTBEVw+/u/e6+M7t9UNJzkk6U\ntErS0Y9/bZN0Wb2aBJC/Y3rNb2YLJZ0lqUdSh7sf/fzkaxp7WQBgiph0+M3sOEk/kHSdux8YX/Ox\nCf8mnPTPzNaZWa+Z9Q7rUE3NAsjPpMJvZq0aC/7t7n5vtnjAzDqzeqekwYm2dfcudy+5e6lVbXn0\nDCAHFcNvZibpO5Kec/ebxpV2SFqb3V4r6f782wNQL5P5Su95kr4g6Skz25Ut2yBpk6TvmdlVkn4u\naXV9Wpz6Ziz8vWT9rT/sTNav+McfJut//qF7k/V6Wt+fHo579N/LD+e1b/2f5LbzRhnKq6eK4Xf3\nn0oqN9/3Rfm2A6BR+IQfEBThB4Ii/EBQhB8IivADQRF+ICgu3T1JMzp/t2xtaMuc5LZfWfRwsr5m\n7kBVPeXhmn3Lk/Wdt6an6J7//aeT9faDjNU3K878QFCEHwiK8ANBEX4gKMIPBEX4gaAIPxBUmHH+\nw3+Svkz04b8cStY3nPpA2dqK33mnqp7yMjDybtna+TvWJ7c97e9+lqy3v5kepx9NVtHMOPMDQRF+\nICjCDwRF+IGgCD8QFOEHgiL8QFBhxvn7Lkv/nXvhzHvqtu9b3jwlWd/88Ipk3UbKXTl9zGk3vlK2\ntnigJ7ntSLKK6YwzPxAU4QeCIvxAUIQfCIrwA0ERfiAowg8EZe6eXsFsgaTtkjokuaQud99sZhsl\nfUnS69mqG9y9/JfeJR1v7X62Mas3UC893q0DPpT+YEhmMh/yOSJpvbvvNLO5kp4wswez2rfc/RvV\nNgqgOBXD7+79kvqz2wfN7DlJJ9a7MQD1dUyv+c1soaSzJB39zOi1ZrbbzLaY2bwy26wz
 s14z6x3W\noZqaBZCfSYffzI6T9ANJ17n7AUm3SjpZ0lKNPTP45kTbuXuXu5fcvdSqthxaBpCHSYXfzFo1Fvzb\n3f1eSXL3AXcfcfdRSbdJWla/NgHkrWL4zcwkfUfSc+5+07jlneNWu1xSerpWAE1lMu/2nyfpC5Ke\nMrNd2bINktaY2VKNDf/1SfpyXToEUBeTebf/p5ImGjdMjukDaG58wg8IivADQRF+ICjCDwRF+IGg\nCD8QFOEHgiL8QFCEHwiK8ANBEX4gKMIPBEX4gaAIPxBUxUt357ozs9cl/XzcovmS9jesgWPTrL01\na18SvVUrz95OcvePTGbFhob/fTs363X3UmENJDRrb83al0Rv1SqqN572A0ERfiCoosPfVfD+U5q1\nt2btS6K3ahXSW6Gv+QEUp+gzP4CCFBJ+M1tpZs+b2UtmdkMRPZRjZn1m9pSZ7TKz3oJ72WJmg2b2\n9Lhl7Wb2oJm9mP2ecJq0gnrbaGb7smO3y8wuKai3BWb2YzN71syeMbO/yJYXeuwSfRVy3Br+tN/M\nWiS9IOliSXslPS5pjbs/29BGyjCzPkkldy98TNjMzpf0tqTt7r4kW/avkobcfVP2h3Oeu1/fJL1t\nlPR20TM3ZxPKdI6fWVrSZZK+qAKPXaKv1SrguBVx5l8m6SV33+PuhyXdJWlVAX00PXd/RNLQexav\nkrQtu71NY/95Gq5Mb03B3fvdfWd2+6CkozNLF3rsEn0VoojwnyjpF+Pu71VzTfntkh4ysyfMbF3R\nzUygI5s2XZJek9RRZDMTqDhzcyO9Z2bppjl21cx4nTfe8Hu/5e6+VNKnJV2dPb1tSj72mq2Zhmsm\nNXNzo0wws/RvFHnsqp3xOm9FhH+fpAXj7n8sW9YU3H1f9ntQ0n1qvtmHB45Okpr9Hiy4n99oppmb\nJ5pZWk1w7Jppxusiwv+4pMVmtsjMZkr6nKQdBfTxPmY2J3sjRmY
 2R9IKNd/swzskrc1ur5V0f4G9\n/JZmmbm53MzSKvjYNd2M1+7e8B9Jl2jsHf+XJf1tET2U6etkSU9mP88U3ZukOzX2NHBYY++NXCXp\nw5K6Jb0o6SFJ7U3U23clPSVpt8aC1llQb8s19pR+t6Rd2c8lRR+7RF+FHDc+4QcExRt+QFCEHwiK\n8ANBEX4gKMIPBEX4gaAIPxAU4QeC+n8DZI6NXofNrQAAAABJRU5ErkJggg==\n",
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAD8CAYAAAC4nHJkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADoBJREFUeJzt3X2MXOV1x/HfyXq9jo1JvHHYboiLHeMEiGlMOjIgLKCi\nuA5CMiiKiRVFDiFxmuCktK4EdavGrWjlVgmRQynS0ri2I95CAsJ/0CR0FUGiwpbFMeYtvJlNY7Ps\nYjZgQ4i9Xp/+sdfRBnaeWc/cmTu75/uRVjtzz71zj6792zszz8x9zN0FIJ53Fd0AgGIQfiAowg8E\nRfiBoAg/EBThB4Ii/EBQhB8IivADQU1r5M6mW5vP0KxG7hII5bd6U4f9kE1k3ZrCb2YrJG2W1CLp\nP9x9U2r9GZqls+2iWnYJIKHHuye8btVP+82sRdJNkj4h6QxJq83sjGofD0Bj1fKaf6mk5919j7sf\nlnSHpJX5tAWg3moJ/8mSfjXm/t5s2e8xs7Vm1mtmvcM6VMPuAOSp7u/2u3uXu5fcvdSqtnrvDsAE\n1RL+fZLmjbn/wWwZgEmglvA/ImmRmS0ws+mSPi1pRz5tAai3qof63P2Ima2T9CONDvVtcfcnc+sM\nQF3VNM7v7vdJui+nXgA0EB/vBYIi/EBQhB8IivADQRF+ICjCDwRF+IGgCD8QFOEHgiL8QFCEHwiK\n8ANBEX4gKMIPBEX4gaAIPxAU4QeCIvxAUIQfCIrwA0ERfiAowg8ERfiBoAg/EBThB4Ii/EBQhB8I\nivADQRF+IKiaZuk1sz5JByWNSDri7qU8mkJ+bFr6n7jl/XPruv9n/np+2drIzKPJbU9ZOJisz/yK\nJesv3zC9bG1n6c7ktvtH3kzWz75rfbJ+6l89nKw3g5rCn/kTd9+fw+MAaCCe9gNB1Rp+l/RjM3vU\nzNbm0RCAxqj1af8yd99nZidJut/MfuHuD45dIfujs
 FaSZmhmjbsDkJeazvzuvi/7PSjpHklLx1mn\ny91L7l5qVVstuwOQo6rDb2azzGz2sduSlkt6Iq/GANRXLU/7OyTdY2bHHuc2d/9hLl0BqLuqw+/u\neyR9LMdepqyW0xcl697Wmqy/dMF7k/W3zik/Jt3+nvR49U8/lh7vLtJ//WZ2sv4v/7YiWe8587ay\ntReH30puu2ng4mT9Az/1ZH0yYKgPCIrwA0ERfiAowg8ERfiBoAg/EFQe3+oLb+TCjyfrN2y9KVn/\ncGv5r55OZcM+kqz//Y2fS9anvZkebjv3rnVla7P3HUlu27Y/PRQ4s7cnWZ8MOPMDQRF+ICjCDwRF\n+IGgCD8QFOEHgiL8QFCM8+eg7ZmXkvVHfzsvWf9w60Ce7eRqff85yfqeN9KX/t668Ptla68fTY/T\nd3z7f5L1epr8X9itjDM/EBThB4Ii/EBQhB8IivADQRF+ICjCDwRl7o0b0TzR2v1su6hh+2sWQ1ee\nm6wfWJG+vHbL7hOS9ce+cuNx93TM9fv/KFl/5IL0OP7Ia68n635u+au7930tuakWrH4svQLeoce7\ndcCH0nOXZzjzA0ERfiAowg8ERfiBoAg/EBThB4Ii/EBQFcf5zWyLpEslDbr74mxZu6Q7Jc2X1Cdp\nlbv/utLOoo7zV9Iy933J+sirQ8n6i7eVH6t/8vwtyW2X/vNXk/WTbiruO/U4fnmP82+V9PaJ0K+T\n1O3uiyR1Z/cBTCIVw+/uD0p6+6lnpaRt2e1tki7LuS8AdVbta/4Od+/Pbr8sqSOnfgA0SM1v+Pno\nmwZl3zgws7Vm1mtmvcM6VOvuAOSk2vAPmFmnJGW/B8ut6O5d7l5y91Kr2qrcHYC8VRv+HZLWZLfX\nSLo3n3YANErF8JvZ7ZIekvQRM9trZldJ2iTpYjN7TtKfZvcBTCIVr9vv7qvLlBiwz8nI/ldr2n74\nwPSqt/3oZ55K1l+5uSX9AEdH
 qt43isUn/ICgCD8QFOEHgiL8QFCEHwiK8ANBMUX3FHD6tc+WrV15\nZnpE9j9P6U7WL/jU1cn67DsfTtbRvDjzA0ERfiAowg8ERfiBoAg/EBThB4Ii/EBQjPNPAalpsl/9\n8unJbf9vx1vJ+nXXb0/W/2bV5cm6//w9ZWvz/umh5LZq4PTxEXHmB4Ii/EBQhB8IivADQRF+ICjC\nDwRF+IGgKk7RnSem6G4+Q58/N1m/9evfSNYXTJtR9b4/un1dsr7olv5k/cievqr3PVXlPUU3gCmI\n8ANBEX4gKMIPBEX4gaAIPxAU4QeCqjjOb2ZbJF0qadDdF2fLNkr6oqRXstU2uPt9lXbGOP/k4+ct\nSdZP3LQ3Wb/9Qz+qet+n/eQLyfpH/qH8dQwkaeS5PVXve7LKe5x/q6QV4yz/lrsvyX4qBh9Ac6kY\nfnd/UNJQA3oB0EC1vOZfZ2a7zWyLmc3JrSMADVFt+G+WtFDSEkn9kr5ZbkUzW2tmvWbWO6xDVe4O\nQN6qCr+7D7j7iLsflXSLpKWJdbvcveTupVa1VdsngJxVFX4z6xxz93JJT+TTDoBGqXjpbjO7XdKF\nkuaa2V5JX5d0oZktkeSS+iR9qY49AqgDvs+PmrR0nJSsv3TFqWVrPdduTm77rgpPTD/z4vJk/fVl\nrybrUxHf5wdQEeEHgiL8QFCEHwiK8ANBEX4gKIb6UJjv7U1P0T3Tpifrv/HDyfqlX72m/GPf05Pc\ndrJiqA9ARYQfCIrwA0ERfiAowg8ERfiBoAg/EFTF7/MjtqPL0pfufuFT6Sm6Fy/pK1urNI5fyY1D\nZyXrM+/trenxpzrO/EBQhB8IivADQRF+ICjCDwRF+IGgCD8QFOP8U5yVFifrz34tPdZ+y3nbkvXz\nZ6S/U1+LQz6crD88tCD9AEf7c+xm6uHMDwRF+IGgCD8QFOEHgiL8QFCEHwiK8ANBVRznN7N5krZL\n6pDkkrr
 cfbOZtUu6U9J8SX2SVrn7r+vXalzTFpySrL9w5QfK1jZecUdy20+esL+qnvKwYaCUrD+w\n+Zxkfc629HX/kTaRM/8RSevd/QxJ50i62szOkHSdpG53XySpO7sPYJKoGH5373f3ndntg5KelnSy\npJWSjn38a5uky+rVJID8HddrfjObL+ksST2SOtz92OcnX9boywIAk8SEw29mJ0j6gaRr3P3A2JqP\nTvg37qR/ZrbWzHrNrHdYh2pqFkB+JhR+M2vVaPBvdfe7s8UDZtaZ1TslDY63rbt3uXvJ3Uutasuj\nZwA5qBh+MzNJ35H0tLvfMKa0Q9Ka7PYaSffm3x6AepnIV3rPk/RZSY+b2a5s2QZJmyR9z8yukvRL\nSavq0+LkN23+Hybrr/9xZ7J+xT/+MFn/8/fenazX0/r+9HDcQ/9efjivfev/Jredc5ShvHqqGH53\n/5mkcvN9X5RvOwAahU/4AUERfiAowg8ERfiBoAg/EBThB4Li0t0TNK3zD8rWhrbMSm775QUPJOur\nZw9U1VMe1u1blqzvvDk9Rffc7z+RrLcfZKy+WXHmB4Ii/EBQhB8IivADQRF+ICjCDwRF+IGgwozz\nH/6z9GWiD//lULK+4dT7ytaWv/vNqnrKy8DIW2Vr5+9Yn9z2tL/7RbLe/lp6nP5osopmxpkfCIrw\nA0ERfiAowg8ERfiBoAg/EBThB4IKM87fd1n679yzZ95Vt33f9NrCZH3zA8uTdRspd+X0Uadd/2LZ\n2qKBnuS2I8kqpjLO/EBQhB8IivADQRF+ICjCDwRF+IGgCD8QlLl7egWzeZK2S+qQ5JK63H2zmW2U\n9EVJr2SrbnD38l96l3SitfvZxqzeQL30eLcO+FD6gyGZiXzI54ik9e6+08xmS3rUzO7Pat9y929U\n2yiA4lQMv7v3S+rPbh80s6clnVzvxgDU13G95jez+ZLOknTsM6PrzGy3mW0xszlltllr
 Zr1m1jus\nQzU1CyA/Ew6/mZ0g6QeSrnH3A5JulrRQ0hKNPjP45njbuXuXu5fcvdSqthxaBpCHCYXfzFo1Gvxb\n3f1uSXL3AXcfcfejkm6RtLR+bQLIW8Xwm5lJ+o6kp939hjHLO8esdrmk9HStAJrKRN7tP0/SZyU9\nbma7smUbJK02syUaHf7rk/SlunQIoC4m8m7/zySNN26YHNMH0Nz4hB8QFOEHgiL8QFCEHwiK8ANB\nEX4gKMIPBEX4gaAIPxAU4QeCIvxAUIQfCIrwA0ERfiCoipfuznVnZq9I+uWYRXMl7W9YA8enWXtr\n1r4keqtWnr2d4u7vn8iKDQ3/O3Zu1uvupcIaSGjW3pq1L4neqlVUbzztB4Ii/EBQRYe/q+D9pzRr\nb83al0Rv1Sqkt0Jf8wMoTtFnfgAFKST8ZrbCzJ4xs+fN7LoieijHzPrM7HEz22VmvQX3ssXMBs3s\niTHL2s3sfjN7Lvs97jRpBfW20cz2Zcdul5ldUlBv88zsJ2b2lJk9aWZ/kS0v9Ngl+irkuDX8ab+Z\ntUh6VtLFkvZKekTSand/qqGNlGFmfZJK7l74mLCZnS/pDUnb3X1xtuxfJQ25+6bsD+ccd7+2SXrb\nKOmNomduziaU6Rw7s7SkyyR9TgUeu0Rfq1TAcSvizL9U0vPuvsfdD0u6Q9LKAvpoeu7+oKShty1e\nKWlbdnubRv/zNFyZ3pqCu/e7+87s9kFJx2aWLvTYJfoqRBHhP1nSr8bc36vmmvLbJf3YzB41s7VF\nNzOOjmzadEl6WVJHkc2Mo+LMzY30tpmlm+bYVTPjdd54w++dlrn7xyV9QtLV2dPbpuSjr9maabhm\nQjM3N8o4M0v/TpHHrtoZr/NWRPj3SZo35v4Hs2VNwd33Zb8HJd2j5pt9eODYJKnZ78GC+/mdZpq5\nebyZpdUEx66ZZrwuIvyPSFpkZgvMbLqkT0vaUUAf72Bms7I3YmR
 msyQtV/PNPrxD0prs9hpJ9xbY\ny+9plpmby80srYKPXdPNeO3uDf+RdIlG3/F/QdLfFtFDmb4+JOmx7OfJonuTdLtGnwYOa/S9kask\nvU9St6TnJP23pPYm6u27kh6XtFujQessqLdlGn1Kv1vSruznkqKPXaKvQo4bn/ADguINPyAowg8E\nRfiBoAg/EBThB4Ii/EBQhB8IivADQf0/sEWOix6VKakAAAAASUVORK5CYII=\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7f077003c810>"
+       "<matplotlib.figure.Figure at 0x7fdde7991f60>"
       ]
      },
      "metadata": {},
@@ -113,27 +119,25 @@
   {
    "cell_type": "code",
    "execution_count": 5,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "conv1 (32, 14, 14)\n",
-      "relu1 (32, 14, 14)\n",
-      "conv2 (32, 7, 7)\n",
-      "relu2 (32, 7, 7)\n",
-      "pool (32, 4, 4)\n",
-      "flat (512,)\n",
-      "dense (10,)\n"
+      "('conv1', (32, 14, 14))\n",
+      "('relu1', (32, 14, 14))\n",
+      "('conv2', (32, 7, 7))\n",
+      "('relu2', (32, 7, 7))\n",
+      "('pool', (32, 4, 4))\n",
+      "('flat', (512,))\n",
+      "('dense', (10,))\n"
      ]
     },
     {
      "data": {
       "text/plain": [
-       "<singa.layer.Dense at 0x7f0735355990>"
+       "<singa.layer.Dense at 0x7fddc5ca3b00>"
       ]
      },
      "execution_count": 5,
@@ -154,7 +158,7 @@
     "net.add(Activation('relu2'))\n",
     "net.add(MaxPooling2D('pool', 3, 2))\n",
     "net.add(Flatten('flat'))\n",
-    "net.add(Dense('dense', 10))\n"
+    "net.add(Dense('dense', 10))"
    ]
   },
   {
@@ -170,20 +174,18 @@
   {
    "cell_type": "code",
    "execution_count": 6,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "conv1_weight (32, 9) 0.0764843672514\n",
-      "conv1_bias (32,) 0.0\n",
-      "conv2_weight (32, 288) 0.0803024768829\n",
-      "conv2_bias (32,) 0.0\n",
-      "dense_weight (512, 10) 0.0795410946012\n",
-      "dense_bias (10,) 0.0\n"
+      "conv1/weight (32, 9) 0.07648436725139618\n",
+      "conv1/bias (32,) 0.0\n",
+      "conv2/weight (32, 288) 0.08030246943235397\n",
+      "conv2/bias (32,) 0.0\n",
+      "dense/weight (512, 10) 0.07954108715057373\n",
+      "dense/bias (10,) 0.0\n"
      ]
     }
    ],
@@ -193,7 +195,7 @@
     "        pval.gaussian(0, 0.1)\n",
     "    else:\n",
     "        pval.set_value(0)\n",
-    "    print pname, pval.shape, pval.l1()"
+    "    print(pname, pval.shape, pval.l1())"
    ]
   },
   {
@@ -207,7 +209,7 @@
    "cell_type": "code",
    "execution_count": 7,
    "metadata": {
-    "collapsed": false
+    "collapsed": true
    },
    "outputs": [],
    "source": [
@@ -219,7 +221,7 @@
     "\n",
     "opt = optimizer.SGD(momentum=0.9, weight_decay=1e-4)\n",
     "batch_size = 32\n",
-    "num_train_batch = train_x.shape[0] / batch_size\n",
+    "num_train_batch = old_div(train_x.shape[0], batch_size)\n",
     "\n",
     "tx = tensor.Tensor((batch_size, 1, 28, 28))\n",
     "ty = tensor.Tensor((batch_size,), cpu , tensor.int32)\n",
@@ -243,18 +245,40 @@
   {
    "cell_type": "code",
    "execution_count": 8,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "b9a8c3eff6744b90a2be87729cb60cd5"
+      }
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
      "name": "stdout",
      "output_type": "stream",
      "text": [
       "\n",
-      "Epoch = 0, training loss = 0.292792, training accuracy = 0.906530\n",
+      "Epoch = 0, training loss = 0.291366, training accuracy = 0.907370\n"
+     ]
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "4cca5a2fff6b47859adafae922ea20d9"
+      }
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
       "\n",
-      "Epoch = 1, training loss = 0.109958, training accuracy = 0.965589\n"
+      "Epoch = 1, training loss = 0.111163, training accuracy = 0.965089\n"
      ]
     }
    ],
@@ -276,7 +300,7 @@
     "            opt.apply_with_lr(epoch, 0.01, g, p, str(s), b)\n",
     "        # update progress bar\n",
     "        bar.set_postfix(train_loss=l, train_accuracy=a)\n",
-    "    print 'Epoch = %d, training loss = %f, training accuracy = %f' % (epoch, loss / num_train_batch, acc / num_train_batch)    \n"
+    "    print('Epoch = %d, training loss = %f, training accuracy = %f' % (epoch, old_div(loss, num_train_batch), old_div(acc, num_train_batch)))"
    ]
   },
   {
@@ -308,7 +332,6 @@
    "cell_type": "code",
    "execution_count": 10,
    "metadata": {
-    "collapsed": false,
     "scrolled": true
    },
    "outputs": [
@@ -316,13 +339,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "NOTE: If your model was saved using pickle, then set use_pickle=True for loading it\n",
-      "conv2_bias\n",
-      "conv2_weight\n",
-      "dense_weight\n",
-      "conv1_bias\n",
-      "dense_bias\n",
-      "conv1_weight\n"
+      "NOTE: If your model was saved using pickle, then set use_pickle=True for loading it\n"
      ]
     }
    ],
@@ -343,14 +360,14 @@
    "cell_type": "code",
    "execution_count": 11,
    "metadata": {
-    "collapsed": false
+    "collapsed": true
    },
    "outputs": [],
    "source": [
     "from PIL import Image\n",
     "img = Image.open('static/digit.jpg').convert('L')\n",
     "img = img.resize((28,28))\n",
-    "img = np.array(img, dtype=np.float32)/255\n",
+    "img = old_div(np.array(img, dtype=np.float32),255)\n",
     "img = tensor.from_numpy(img)\n",
     "img.reshape((1,1,28,28))\n",
     "y=net.predict(img)"
@@ -359,14 +376,12 @@
   {
    "cell_type": "code",
    "execution_count": 12,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "[<matplotlib.lines.Line2D at 0x7f07356e4210>]"
+       "[<matplotlib.lines.Line2D at 0x7fddc4b29240>]"
       ]
      },
      "execution_count": 12,
@@ -375,9 +390,9 @@
     },
     {
      "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAG7pJREFUeJzt3WuMY+dZB/D/Y3s8F/vsbOZ2nJ29zG5iuyyX0HZIy0VQ\nKKVJC4RKICVcKipQiGigIKQ2IAEfyhdUQFARulqVghCIqGojCNXS9EOh/YBasoHSNEntmU72mswZ\nz+zteO62Hz7YZ9bjjMdnxsc+9jn/nxLtnOMzPs9a4/+cfc/j9xVVBRERBUvE7wKIiMh7DHciogBi\nuBMRBRDDnYgogBjuREQBxHAnIgoghjsRUQAx3ImIAojhTkQUQDG/TjwxMaEzMzN+nZ6IqC+9+OKL\ny6o62eo438J9ZmYGFy9e9Ov0RER9SUQuuzmOwzJERAHEcCciCiCGOxFRADHciYgCqGW4i8hnRGRJ\nRL7V5HERkU+KyLyIfFNE3uZ9mUREdBBurtz/HsBD+zz+MIB07f/HAXyq/bKIiKgdLcNdVb8K4MY+\nhzwC4B+06msAjorIvV4VSEREB+fFmPs0gKt129dq+4hCqVSu4Jn/voLtcsXvUijEunpDVUQeF5GL\nInKxUCh089REXfPVuQKeevYlfPnbS36XQiHmRbhfB3Cibvt4bd+bqOp5VZ1V1dnJyZafniXqS99e\ntAEA+dqfRH7wItyfA/DBWtfMOwHcVtU3PHheor7khHrOYriTf1rOLSMi/wzgXQAmROQagD8GMAAA\nqnoOwAUA7wMwD2ANwIc6VSxRP8hZRQBAnuFOPmoZ7qr6WIvHFcCHPauIqI+VyhV8Z6mIaESwUFjF\nVqmCeIyfFaTu408dkYcu31jDVrmCH7pvHKWK4tLKqt8lUUgx3Ik85Iy3/8wDxwAAOd5UJZ8w3Ik8\nlLNsiADvPZtCRDjuTv5huBN5KG/ZODU2gtGRAcxMJ
 HjlTr5huBN5KLdoI2MaAICsafDKnXzDcCfy\nyGapjEsra8imquGeMQ1cvrGGje2yz5VRGDHciTyyUFhFuaJ3r9xTBlSB+aWiz5VRGDHciTziDME4\n4Z4xkwDYMUP+YLgTeSS3aCMWEZyeSAAATo0nEI9GOO5OvmC4E3kkb9k4M5nY+UTqQDSCM5MJzjFD\nvmC4E3kkbxV3hmQc2ZSBOYtj7tR9DHciD6xtlXDlxhqyDeGeMQ1cv7UOe2Pbp8oorBjuRB5wrs7T\ne4Q7UL2qJ+omhjuRB5xxdafH3ZHdCXeOu1N3MdyJPDBn2RiMRXBybGTX/uP3DGN4IMpwp65juBN5\nIGcVkTaTiEZk1/5IRJAxkwx36jqGO5EH8nVzyjTKmAZyixxzp+5iuBO16fbaNhbvbOwb7svFTawU\nN7tcGYUZw52oTfml2s3UZuGeYscMdR/DnahNO3PKpPYOdyf055Y47k7dw3AnalN+0UZyMIZjo0N7\nPm4eGcSRoRgnEKOuYrgTtSln2ciYSYjIno+LCLIpLtxB3cVwJ2qDqu5afamZtGkgt2hDVbtUGYUd\nw52oDcvFLdxc224Z7lnTwJ2NEqw77Jih7mC4E7Vhrsm0A40ynIaAuozhTtSGXMPqS804qzIx3Klb\nGO5EbchbNsYScUwk4/seN54cxERykB0z1DUMd6I25BZtpKead8rU4xwz1E0Md6JDUlXMWcWW4+2O\njGkgbxVRqbBjhjqP4U50SG/c3oC9WWo53u7Ipgysb5dx/dZ6hysjYrgTHVqzBTqacX4JcNydusFV\nuIvIQyKSE5F5EXlqj8dHReTfROT/RORlEfmQ96US9ZZ8LaQzU27Dvdoxk+O4O3VBy3AXkSiApwE8\nDOAsgMdE5GzDYR8G8IqqPgDgXQD+XET2bx8g6nM5y4Z5ZBCjIwOujjeGBnBsdIg3Vakr3Fy5Pwhg\nXlUXVHULwDMAHmk4RgEYUm0Z
 SAK4AaDkaaVEPSZvtZ52oFEmZXBYhrrCTbhPA7hat32ttq/eXwP4\nLgCvA3gJwEdUteJJhUQ9qFxRzC8Vm87h3kzWNLBQWEWpzLcHdZZXN1TfC+AbAI4B+H4Afy0iRxoP\nEpHHReSiiFwsFAoenZqo+67eWMPGdqXpHO7NZEwDW+UKLq2sdagyoio34X4dwIm67eO1ffU+BOBZ\nrZoH8BqAtzQ+kaqeV9VZVZ2dnJw8bM1EvnM77UCjbIpzzFB3uAn3FwCkReR07SbpowCeazjmCoB3\nA4CImACyABa8LJSolzidMump5IG+777JJETYDkmdF2t1gKqWRORJAM8DiAL4jKq+LCJP1B4/B+Dj\nAP5eRF4CIAA+pqrLHaybyFc5y8aJsWEkBlu+hXYZjkdxamyEV+7Uca5+MlX1AoALDfvO1X39OoCf\n8rY0ot41Zx38ZqqjOg0Bw506i59QJTqgrVIF3ykUDzze7simDFxaWcPGdtnjyojuYrgTHdCllVWU\nKnrocM+YBsoVxUJh1ePKiO5iuBMdkHMztJ1wB9gxQ53FcCc6oLxlIxoRnJlMHOr7T08kEIsI55ih\njmK4Ex1Q3rIxMz6CoYHoob4/HovgzGRiZ/1Vok5guBMdUP4AC3Q0kzENXrlTRzHciQ5gY7uMSyur\nSLuc5reZrGng6o11rG5yfj3qDIY70QHMLxWh6n6BjmbStZuqc0tFL8oiehOGO9EBtNsp49iZY4bT\nEFCHMNyJDiC/ZCMejWBmfKSt5zk5NoLBWITtkNQxDHeiA8gv2rhvKolYtL23TjQiSJtJ3lSljmG4\nEx1A3irurIXaLs4xQ53EcCdyyd7YxvVb622PtzsypgHrziZurW158nxE9RjuRC7lrWpny2Fng2yU\n3ZmGgB0z5D2GO5FLzidK222DdGS4KhN1EMOdyKWcZWMkHsX00WFPnu/Y6BCSgzGGO3UEw53Ipbxl\nIz2VRCQ
 injyfiCBjJrnkHnUEw53Ipdzi4RfoaMbpmFFVT5+XiOFO5MKN1S0sFzc9G293ZEwDN9e2\nUShuevq8RAx3IheccXGvr9ydXxZz7JghjzHciVzIe9wp43B+WXDcnbzGcCdyIbdo48hQDFPGoKfP\nO5GMYywRZ8cMeY7hTuRC3rKRTRkQ8aZTxiEiSE9xjhnyHsOdqAVVrc0p4+2QjCObMjBnFdkxQ55i\nuBO1sGRv4vb6tufj7Y6MaaC4WcLrtzc68vwUTgx3oha8WqCjGS7cQZ3AcCdqoVNtkI5MbT1WjruT\nlxjuRC3kFm1MJAcxloh35PlHRwZgHhnklTt5iuFO1EJ+qYhsypsFOprJmAbySwx38g7DnWgflYpi\nzrI7NiTjyJrVjplyhR0z5A2GO9E+rt9ax9pW2bMFOprJpAxsliq4cmOto+eh8HAV7iLykIjkRGRe\nRJ5qcsy7ROQbIvKyiHzF2zKJ/OF0yqS7cOVefz6idrUMdxGJAngawMMAzgJ4TETONhxzFMDfAPhZ\nVf1uAL/QgVqJui630ynT2TH3+6eqz89pCMgrbq7cHwQwr6oLqroF4BkAjzQc84sAnlXVKwCgqkve\nlknkjznLxvTRYRhDAx09T2IwhhNjwwx38oybcJ8GcLVu+1ptX70MgHtE5D9F5EUR+eBeTyQij4vI\nRRG5WCgUDlcxURflrGLHr9od2drCHURe8OqGagzA2wG8H8B7AfyhiGQaD1LV86o6q6qzk5OTHp2a\nqDNK5Qq+s1TcWci60zKmgYXCKrZKla6cj4LNTbhfB3Cibvt4bV+9awCeV9VVVV0G8FUAD3hTIpE/\nLq2sYatc2fkEaadlUwZKFcVry6tdOR8Fm5twfwFAWkROi0gcwKMAnms45l8B/IiIxERkBMA7ALzq\nbalE3dWpBTqaSXMaAvJQrNUBqloSkScBPA8gCuAzqvqyiDxRe/ycqr4qIl8E8E0AFQCf
 VtVvdbJw\nok7LWzZE7naydNqZyQSiEcEcw5080DLcAUBVLwC40LDvXMP2JwB8wrvSiPyVt2zMjCcwNBDtyvmG\nBqKYGR9hrzt5gp9QJWoit2gj3aWrdkc2xY4Z8gbDnWgPG9tlXFpZ69p4uyNjGrh8Yw3rW+WunpeC\nh+FOtIeFwirKFe34hGGNsqYBVWB+qdjV81LwMNyJ9jC31N1OGYczhw2HZqhdDHeiPeQWbQxEBTPj\nia6ed2Z8BPFohOFObWO4E+0hb9k4PZFAPNbdt0gsGsF9U0n2ulPbGO5Ee8h1YYGOZrJmkkvuUdsY\n7kQNVjdLuHpjveMLdDSTSRl4/fYG7mxs+3J+CgaGO1EDp1OlWxOGNXLmspmz2DFDh8dwJ2rgjHf7\ndeXudOjwpiq1g+FO1CC/aGMwFsGJsRFfzj99dBgj8SinIaC2MNyJGuQsG2kziWhEfDl/JCJIc+EO\nahPDnahB3sdOGUfWTDLcqS0Md6I6t9e2Yd3Z9G283ZExDSwXt7BS3PS1DupfDHeiOvnatAN+dco4\nMjvTELBjhg6H4U5Ux7mJ6fuwDDtmqE0Md6I6ectGcjCGY6NDvtYxZQxidHiA0xDQoTHcierkFm1k\nzCRE/OmUcYgIsqbBaQjo0BjuRDWqirxld32a32bStY4ZVfW7FOpDDHeimuXiFm6ubfs+3u7Ipgzc\n2SjBusOOGTo4hjtRjXPzslfC3amD4+50GAx3oppe6ZRx7LRDctydDoHhTlSTt2yMJeKYSMb9LgUA\nMJaIY9IY5JU7HQrDnaimOu2A/50y9TJmEnMMdzoEhjsRnE6Zou/TDjTKmAbyVhGVCjtm6GAY7kQA\nXr+9geJmCekeC/esaWB9u4xrN9f9LoX6DMOdCHdvWvZKj7vDmeOG4+50UAx3ItS1QU71Vrinp5IA\nOMcMHRzDnQjVK+PUkSGMjgz4XcouxtAApo8OM9zpwBjuRKh1yvT
 YkIwjYya55B4dmKtwF5GHRCQn\nIvMi8tQ+x/2AiJRE5Oe9K5Gos8oVxZxVRKY2BNJrMikDC4VVbJcrfpdCfaRluItIFMDTAB4GcBbA\nYyJytslxfwrgS14XSdRJV26sYbNU6dkr96xpYKtcweWVVb9LoT7i5sr9QQDzqrqgqlsAngHwyB7H\n/RaAzwNY8rA+oo5zxrN7rcfdwVWZ6DDchPs0gKt129dq+3aIyDSADwD4lHelEXWH0waZNntzWOb+\nqSQiAo6704F4dUP1LwF8TFX3HRQUkcdF5KKIXCwUCh6dmqg9OcvGybERjMRjfpeyp6GBKE6NJ9gx\nQwfi5qf5OoATddvHa/vqzQJ4pjYnxwSA94lISVX/pf4gVT0P4DwAzM7O8vPU1BOcOWV6WcZM8oNM\ndCBurtxfAJAWkdMiEgfwKIDn6g9Q1dOqOqOqMwA+B+A3G4OdqBdtlSpYKKz2zDS/zWRNA5eWV7Gx\nXfa7FOoTLcNdVUsAngTwPIBXAXxWVV8WkSdE5IlOF0jUSZdWVlGqaM9NO9AokzJQUWChwI4ZcsfV\nIKOqXgBwoWHfuSbH/mr7ZRF1R68t0NHM3Y4ZG2ePHfG5GuoH/IQqhVreshGNCM5MJvwuZV8z4wkM\nRIXj7uQaw51CLbdoY2Z8BIOxqN+l7Csei+DMRJJL7pFrDHcKtbxl9/x4uyOTMnjlTq4x3Cm0NrbL\nuHxjrefH2x1ZM4lrN9exulnyuxTqAwx3Cq35pSJUe3fagUbOKlFzS5yGgFpjuFNo5XamHeiPcHd+\nCXHcndxguFNo5S0b8WgEM+MjfpfiyomxEQwNRDjuTq4w3Cm0cpaN+6aSiEX7420QjQjSUwbnmCFX\n+uOnmqgD5qwisj0+p0yjjMlwJ3cY7hRK9sY2rt9a79kFOprJmElYdzZxa23L71KoxzHcKZSchS8y\nU30W7iku3EHuMNwplHZWX+qzK3enY4Y3Va
 kVhjuFUm7Rxkg8iumjw36XciD3jg7BGIyxHZJaYrhT\nKM0t2UibBiIR8buUAxERZFK8qUqtMdwplHKL/dcp48iYSeQtG6pczIyaY7hT6KwUN7Fc3OybOWUa\nZUwDN9e2UShu+l0K9TCGO4XOTqdMn4b73WkI2DFDzTHcKXT6tVPG4bRDsmOG9sNwp9DJWzZGhwcw\nZQz6XcqhTCQHMZ6IY47hTvtguFPo5C0bWdOASH91ytRLm0leudO+GO4UKqqK3KKNdJ92yjiypoH8\nIjtmqDmGO4WKdWcTdzZKfTve7sikDKxulXH91rrfpVCPYrhTqDhDGf3aKePY6Zjh0Aw1wXCnUJkL\nSLinTU4gRvtjuFOo5BZtTBqDGEvE/S6lLaPDA0gdGeIcM9QUw51CJW/ZyPT5zVRHJmWwY4aaYrhT\naFQqirxV7PshGUfWTGJuqYhyhR0z9GYMdwqNazfXsb5d3rkZ2e8ypoGtUgWXV1b9LoV6EMOdQsPp\nLOm3pfWayXJVJtoHw51CwxmfTk8FY8z9/trfg+2QtBeGO4VG3rIxfXQYxtCA36V4YiQew8mxEd5U\npT25CncReUhEciIyLyJP7fH4L4nIN0XkJRH5LxF5wPtSidqTWwxOp4wjU5uGgKhRy3AXkSiApwE8\nDOAsgMdE5GzDYa8B+DFV/V4AHwdw3utCidpRKlewUFgNzHi7I5tK4rXlVWyVKn6XQj3GzZX7gwDm\nVXVBVbcAPAPgkfoDVPW/VPVmbfNrAI57WyZRey6trGGrXAlMp4wjYxooVRSvLbNjhnZzE+7TAK7W\nbV+r7Wvm1wD8+14PiMjjInJRRC4WCgX3VRK1KR+QaQcaOX8fjrtTI09vqIrIj6Ma7h/b63FVPa+q\ns6o6Ozk56eWpifaVW7QRkbsdJkFxZjKBaEQ47k5vEnNxzHUAJ+q2j9f27SIi3wfg0wAeVtUVb8oj\n8kbesnFqPIGhgajfp
 XhqMBbF6YkEr9zpTdxcub8AIC0ip0UkDuBRAM/VHyAiJwE8C+BXVDXvfZlE\n7QnSnDKNsqbBJffoTVqGu6qWADwJ4HkArwL4rKq+LCJPiMgTtcP+CMA4gL8RkW+IyMWOVUx0QBvb\nZVxaWQvczVRHxjRw+cYa1rfKfpdCPcTNsAxU9QKACw37ztV9/esAft3b0oi8sVBYRbmigWuDdGTM\nJFSB+aUivvf4qN/lUI/gJ1Qp8ILaKeNwfmlx3J3qMdwp8HKWjYGoYGY84XcpHXFqbATxWIRzzNAu\nDHcKvDnLxpmJJOKxYP64x6IR3D+ZZLjTLsH8aSeqk7PswI63O7IpzjFDuzHcKdBWN0u4emMd2YC2\nQTrSZhKv397AnY1tv0uhHsFwp0CbW6ouZJEO6M1Uh9PmyX53cjDcKdCcoYqg9rg7duaYWeSqTFTF\ncKdAy1s2hgYiODE24ncpHTV9dBiJeJQ3VWkHw50CLWfZSE8ZiEbE71I6KhIRpE2D4U47GO4UaNU5\nZYI9JOPImGyHpLsY7hRYt9a2YN3ZDOyEYY0ypoHl4haWi5t+l0I9gOFOgZW3qjcXg97j7sjW/p68\neieA4U4B5oRc0DtlHHfbIdkxQwx3CrC8ZcMYjOHe0SG/S+mKSWMQR0cGOIEYAWC4U4DlFm2kzSRE\ngt0p4xARZKY4DQFVMdwpkFQVecveGYcOi0wqiZxlQ1X9LoV8xnCnQCoUN3FzbTs0bZCOrGnA3ihh\n8c6G36WQzxjuFEjOTcWw3Ex1OL/M8rypGnoMdwqkXG3cOSxtkI6dcOe4e+gx3CmQ8paNsUQcE8lB\nv0vpqnsScUwag+yYIYY7BVPOskPzydRGWc4xQ2C4UwCpKuasYujG2x0Z08CcVUSlwo6ZMGO4U+C8\nfnsDxc1S6MbbHdlUEuvbZVy7ue53KeQjhjsFTlgW6GhmZ+EODs2EGsOdAscJtaAvrddM2uQEYsRw\n
 pwDKL9pIHRnC6PCA36X4IjkYw/TR4Z12UAonhjsFTs6yQzve7sim2DETdgx3CpRyRTG/VEQ2pG2Q\njoxpYKGwiu1yxe9SyCcMdwqUKzfWsFmqhG5OmUbZVBJb5Qour6z6XQr5hOFOgbIz7UDIwz09VeuY\nWeQcM2HlKtxF5CERyYnIvIg8tcfjIiKfrD3+TRF5m/elErWW3+mUCfewzP1TSUSE7ZBh1jLcRSQK\n4GkADwM4C+AxETnbcNjDANK1/x8H8CmP6yRyJWfZODk2gpF4zO9SfDU0EMXMeIITiIWYmyv3BwHM\nq+qCqm4BeAbAIw3HPALgH7TqawCOisi9HtdK1NKcZYd+SMaRMQ3klxjuYeXm8mYawNW67WsA3uHi\nmGkAb7RV3R6+ki/gT77witdP29fanUGkl1btaXdJvIVCEe85a3pUTX/LpAw8/8oi3vMXX/G7lJ6g\nqP6sa22jflsVUCgqteaixv1af/xe39vs6ybf+xs/egYffegtHf37dvXfriLyOKrDNjh58uShniM5\nGAv9eOpeBG2uE9oLy4x68Dvmu+49gg+8dbr9JwqAn/v+Y7i0vIpShe2QDoGg9h9EpPZndTsizmOy\ns0/qt6XJftQ/1nDMzjl273/w9HjH/65uwv06gBN128dr+w56DFT1PIDzADA7O3uot/LbT92Dt596\n+2G+lShUzkwm8cnH3up3GeQTN2PuLwBIi8hpEYkDeBTAcw3HPAfgg7WumXcCuK2qng/JEBGROy2v\n3FW1JCJPAngeQBTAZ1T1ZRF5ovb4OQAXALwPwDyANQAf6lzJRETUiqsxd1W9gGqA1+87V/e1Aviw\nt6UREdFh8ROqREQBxHAnIgoghjsRUQAx3ImIAojhTkQUQOLXR89FpADg8iG/fQLAsofl9Du+Hrvx\n9biLr8VuQXg9TqnqZKuDfAv3dojIRVWd9buOXsHXYze+HnfxtdgtTK8Hh2WIi
 AKI4U5EFED9Gu7n\n/S6gx/D12I2vx118LXYLzevRl2PuRES0v369cicion30Xbi3Wqw7TETkhIj8h4i8IiIvi8hH/K7J\nbyISFZH/FZEv+F2L30TkqIh8TkS+LSKvisgP+l2TX0Tkd2vvkW+JyD+LyJDfNXVaX4W7y8W6w6QE\n4PdU9SyAdwL4cMhfDwD4CIBX/S6iR/wVgC+q6lsAPICQvi4iMg3gtwHMqur3oDp1+aP+VtV5fRXu\ncLdYd2io6huq+j+1r21U37yhXWNORI4DeD+AT/tdi99EZBTAjwL4WwBQ1S1VveVvVb6KARgWkRiA\nEQCv+1xPx/VbuDdbiDv0RGQGwFsBfN3fSnz1lwA+CoCLhgKnARQA/F1tmOrTIpLwuyg/qOp1AH8G\n4AqAN1BdKe5L/lbVef0W7rQHEUkC+DyA31HVO37X4wcR+WkAS6r6ot+19IgYgLcB+JSqvhXAKoBQ\n3qMSkXtQ/Rf+aQDHACRE5Jf9rarz+i3cXS3EHSYiMoBqsP+Tqj7rdz0++mEAPysil1AdrvsJEflH\nf0vy1TUA11TV+Zfc51AN+zD6SQCvqWpBVbcBPAvgh3yuqeP6LdzdLNYdGiIiqI6pvqqqf+F3PX5S\n1d9X1eOqOoPqz8WXVTXwV2fNqOoigKsikq3tejeAV3wsyU9XALxTREZq75l3IwQ3l12todormi3W\n7XNZfvphAL8C4CUR+UZt3x/U1rwl+i0A/1S7EFpASBeuV9Wvi8jnAPwPqh1m/4sQfFKVn1AlIgqg\nfhuWISIiFxjuREQBxHAnIgoghjsRUQAx3ImIAojhTkQUQAx3IqIAYrgTEQXQ/wNXckf+AMbmGAAA\nAABJRU5ErkJggg==\n",
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAG7xJREFUeJzt3WtsY2d+3/Hvn9RtJNJzk4Zaz4xnxrbIZjZIuhvBu80C\n7aLrBva2tV+0KWw0vQSL+E2cbppFCqct3MJ9labYXgA3rZOmadNkHa+7KAbptA7QbNug6C483k22\nazuk5PHYM7MjSnM1KY2u/PcFeTQaWhdKOuQhz/l9AMMidYb8gxj99Mzz/M/zmLsjIiLxkoq6ABER\nCZ/CXUQkhhTuIiIxpHAXEYkhhbuISAwp3EVEYkjhLiISQwp3EZEYUriLiMRQX1RvPDo66qdPn47q\n7UVEetJbb7113d3HdrousnA/ffo0Fy5ciOrtRUR6kpl90Mp1mpYREYkhhbuISAwp3EVEYkjhLiIS\nQwp3EZEY2jHczew3zGzWzL6/xffNzP6VmU2b2ffM7NPhlykiIrvRysj9N4Entvn+k8BE47/ngF/d\nf1kiIrIfO4a7u/9v4OY2lzwN/Eev+xZwyMw+EVaBIr2murTK1y9cRkdYSpTCmHM/Dlze8PhK47mP\nMbPnzOyCmV2Ym5sL4a1Fus83vnOFX3z9e7xz7aOoS5EE6+iCqru/4u6T7j45Nrbj3bMiPelPZioA\nlMqViCuRJAsj3K8CJzc8PtF4TiSRSo1wL85UI65EkiyMcD8H/M1G18xngTvufi2E1xXpOe5OsayR\nu0Rvx43DzOxrwOeBUTO7AvwjoB/A3f8NcB74IjANLAA/3a5iRbrdzEeLVBZXSaeM4ozCXaKzY7i7\n+7M7fN+Bnw2tIpEeVirXp2J+/JGj/OHUdapLq2QGI9t8VRJMd6iKhCiYb//LP/IgAFOampGIKNxF\nQlQsVxjLDvLYmSOA5t0lOgp3kRCVyhUKuSwnjwwz1
 J9Sx4xERuEuEpJazZkqV8nnsqRTxsSxrEbu\nEhmFu0hIrty6y92VNQrjGQDyOYW7REfhLhKSoL89n8sCUBjPMFtZ4tb8cpRlSUIp3EVCEozSJxrh\nHvxfo3eJgsJdJCTFmQrHDx1Y72svKNwlQgp3kZCUyhUK49n1x584OER2sG99ukakkxTuIiFYWatx\ncW5+fb4dwMzIj2fX71oV6SSFu0gIPrgxz/Jabb1TJhB0zOjgDuk0hbtICIKblSaOZe97Pp/LcHth\nhbnKUhRlSYIp3EVCUCxXSBk8euz+kXuwqKp5d+k0hbtICKbKFU4fHWGoP33f8/nxoGNG8+7SWQp3\nkRAUy5X7FlMDo5lBjo4MrO8WKdIpCneRfVpcWePS9fn1UXqzfC6raRnpOIW7yD69N1el5vXF083k\ncxmmyhVqNXXMSOco3EX2KbgDtbDJtAzU593nl9e4evtuJ8uShFO4i+xTqVylP22cHh3Z9PtB6E/N\nampGOkfhLrJPpZkKj4xl6E9v/uMUbCCmgzukkxTuIvu0VadM4OCBfj5xcEgbiElHKdxF9qG6tMqV\nW3e3XEwNTOSyFNUOKR2kcBfZh6mmAzq2UshlmJ6rsqaOGekQhbvIPkw17jwtbNHjHsjnsiyv1vjg\nxnwnyhJRuIvsR7FcYag/xcnDw9teVxjXwR3SWQp3kX0oNRZTUynb9rpHj2UwU8eMdI7CXWQfijOV\nj23zu5nhgT5OHh7WyF06RuEuske3F5aZrSx97ICOrWiPGekkhbvIHgXb+O7UKRMojGe4dH2epdW1\ndpYlAijcRfYsGIXv1CkTyOeyrNac96+rY0bar6VwN7MnzKxoZtNm9sIm33/IzL5pZt81s++Z2RfD\nL1Wku5RmKmQH+xh/YKil64NfArqZSTphx3A3szTwMvAkcBZ41szONl32D4HX3P1TwDPAvw67UJFu\nUyxXyI9nMdu+UyZwZnSEdMq0
 qCod0crI/TFg2t0vuvsy8CrwdNM1DjzQ+Pog8IPwShTpPu6+3gbZ\nqsG+NGdGR9QOKR3R18I1x4HLGx5fAT7TdM0/Bn7fzH4OGAEeD6U6kS41V13i9sIKhR32lGlWyGX5\n/g/utKkqkXvCWlB9FvhNdz8BfBH4LTP72Gub2XNmdsHMLszNzYX01iKdV2qMvrc6Wm8r+VyWD28u\nsLC82o6yRNa1Eu5XgZMbHp9oPLfRl4DXANz9/wJDwGjzC7n7K+4+6e6TY2Nje6tYpAsUW9wwrFlh\nPIM7TM9qakbaq5VwfxOYMLMzZjZAfcH0XNM1HwJfADCzH6Ie7hqaS2yVZiocHRlgNDO4qz937+AO\nLapKe+0Y7u6+CjwPvAG8S70r5m0ze8nMnmpc9hXgZ8zsj4GvAX/b3bW3qcTWTgd0bOXUkWEG+lLq\nmJG2a2VBFXc/D5xveu7FDV+/A3wu3NJEupO7M1Wu8JOTJ3e+uElfOsWjY5n1u1tF2kV3qIrs0tXb\nd5lfXtvTyB3qNzNp5C7tpnAX2aXS+mLq7togA/lclmt3FrlzdyXMskTuo3AX2aXgJqSJPY7cg18K\nUxq9Sxsp3EV2qVSu8ImDQxw80L+nPx9M52j7X2knhbvILu1224Fmxw8dYGQgvX7+qkg7KNxFdmGt\n5kzNVlve5nczqZQxkcuq113aSuEusgsf3JhnebXGxLG9LaYGCjl1zEh7KdxFdqG0ywM6tjKRy3Bj\nfpnr1aUwyhL5GIW7yC4UZ6qYwaP7Hbk3fjmUNDUjbaJwF9mF0myFh44MMzzQ0s3dWyo0FmQ1NSPt\nonAX2YXSzP46ZQJj2UEODfdTVMeMtInCXaRFS6trvH99fs93pm5kZuS1qCptpHAXadH71+dZrXko\nI3eo36lamqmgDVSlHRTuIi0K+tL32ykTKOSyVJZWuXZnMZTXE9lI4S7Soqlylb6U8fDo/qdl4N42\nBJqakXZ
 QuIu0qFiucGZ0hIG+cH5sFO7STgp3kRbtd0+ZZodHBjiWHVzfZVIkTAp3kRYsLK/y4c2F\nUMMdUMeMtI3CXaQF07NV3KEwHs58eyCfyzI1W6FWU8eMhEvhLtKC4MzTsEfuhfEMiys1Lt9aCPV1\nRRTuIi0olSsM9KU4dXQk1NddP7hDe8xIyBTuIi0ozlR4dCxDOmWhvu6EOmakTRTuIi0olSuh3by0\nUWawj+OHDmiPGQmdwl1kBx8trnDtzmLo8+2BwnhWh2VL6BTuIjuYWj+gI9xOmUA+l+W9uSora7W2\nvL4kk8JdZAfBTUbtG7lnWFlzLl2fb8vrSzIp3EV2UCpXGBlIc/zQgba8/nrHjKZmJEQKd5EdFGcq\nTOSymIXbKRN4ZCxDynTknoRL4S6yg6nZyvqxeO0w1J/m9NGR9RulRMKgcBfZxvXqEtery+Tb0Aa5\nkfaYkbAp3EW2EQRuO0fuAPnxLJduzLO4stbW95HkaCnczewJMyua2bSZvbDFNX/NzN4xs7fN7HfC\nLVMkGsE8eBjnpm6nkMtS8/oGZSJh2DHczSwNvAw8CZwFnjWzs03XTAC/BHzO3T8J/HwbahXpuGK5\nyqHhfsayg219n+CXh6ZmJCytjNwfA6bd/aK7LwOvAk83XfMzwMvufgvA3WfDLVMkGlONAzra1SkT\nOD06Qn/atKgqoWkl3I8Dlzc8vtJ4bqM8kDez/2Nm3zKzJzZ7ITN7zswumNmFubm5vVUs0iHuTrHc\n3k6ZQH86xSNjGY3cJTRhLaj2ARPA54FngV8zs0PNF7n7K+4+6e6TY2NjIb21SHvMfLRIZXG17Z0y\ngXwuq61/JTSthPtV4OSGxycaz210BTjn7ivu/j5Qoh72Ij0rCNr8sfYupgYK41mu3r5LZXGlI+8n\n8dZKuL8JTJjZGTMbAJ4BzjVd81+oj9oxs1Hq0zQXQ6xTpOOCKZJ27SnTbKLxS2RKHTMS
 gh3D3d1X\ngeeBN4B3gdfc/W0ze8nMnmpc9gZww8zeAb4J/KK732hX0SKdUCpXOZYd5PDIQEfeL9gvXtv/Shj6\nWrnI3c8D55uee3HD1w78QuM/kVho1wEdWzl5eJih/tT6LpQi+6E7VEU2Uas5pXKFiWOdC/dUyrQN\ngYRG4S6yicu3FlhcqbXtgI6t5HNZbf0roVC4i2xivVOmQ4upgUIuy1xliVvzyx19X4kfhbvIJoKO\nlYkOh/uEtiGQkCjcRTZRnKlw4vABMoMt9RyEJljAVbjLfincRTZRauwp02njDwyRHerTvLvsm8Jd\npMnKWo335qqRhLuZUchlKakdUvZJ4S7S5NL1eVbWvOOdMoH8eL1jpn77iMjeKNxFmgTb7kYxcof6\nXjZ37q4wV1mK5P0lHhTuIk2K5Qopg0fGohu5B3WI7JXCXaRJaabC6aMjDPWnI3n/YP94bf8r+6Fw\nF2kSVadM4GhmkNHMgNohZV8U7iIbLK6scenGfMcO6NhKfRsCdczI3incRTZ4b65KzenI0Xrbyeey\nTJcr1GrqmJG9UbiLbBBMhUTVBhnI57LML69x9fbdSOuQ3qVwF9mgOFOlP22cOjoSaR3BLxfNu8te\nKdxFNiiVKzwylqE/He2PRrBhmdohZa8U7iIbFGei7ZQJPDDUz4MHhyipHVL2SOEu0lBdWuXq7bsd\nPVpvOxO57PrdsiK7pXAXaQgOpu6GkTvUt/+dnquyulaLuhTpQQp3kYbSerhH2ykTyOeyLK/W+ODm\nQtSlSA9SuIs0FGeqDPWnOHl4OOpSgHu99pp3l71QuIs0BNsOpFIWdSkAPHosg5k6ZmRvFO4iDVHv\nKdPswECah44MM6VFVdkDhbsIcGt+mdnKUuTbDjSr7zGjkbvsnsJdhHuLqRNdspgaKOSyvH99nqXV\ntahLkR6jcBdh454yXTZyH8+yVnMuzs1HXYr0GIW7CPWj9bJDfYw
 /MBR1KfdZ75jR1IzsksJdhHpH\nSiGXxaw7OmUCZ0ZH6EuZwl12TeEuiefu9U6ZLpuSARjoS3FmdITijDpmZHdaCncze8LMimY2bWYv\nbHPdXzEzN7PJ8EoUaa+5yhK3F1bIH+uuxdRAfjyrkbvs2o7hbmZp4GXgSeAs8KyZnd3kuizwZeDb\nYRcp0k5Bq2E3jtyhPu/+4c0FFpZXoy5FekgrI/fHgGl3v+juy8CrwNObXPdPgF8GFkOsT6Ttgp0X\nu63HPRDcWDU9q6kZaV0r4X4cuLzh8ZXGc+vM7NPASXf/ryHWJtIRpZkKo5kBjmYGoy5lU8FGZkXt\nMSO7sO8FVTNLAV8FvtLCtc+Z2QUzuzA3N7fftxYJRbHLth1oduroCAN9Kc27y660Eu5XgZMbHp9o\nPBfIAj8M/E8zuwR8Fji32aKqu7/i7pPuPjk2Nrb3qkVCUqs5U10e7umUMXEsQ1F7zMgutBLubwIT\nZnbGzAaAZ4BzwTfd/Y67j7r7aXc/DXwLeMrdL7SlYpEQXb19l/nlta4Od6ivB2jrX9mNHcPd3VeB\n54E3gHeB19z9bTN7ycyeaneBIu00NRtsO9CdbZCB/HiWmY8WuXN3JepSpEf0tXKRu58Hzjc99+IW\n135+/2WJdEZwc9BEl4/cg0XVqXKFydNHIq5GeoHuUJVEK5UrPHhwiAeG+qMuZVvBtJG2/5VWKdwl\n0Yozla4ftQMcP3SAkYG05t2lZQp3Say1mjM9V+26bX43Y2bkx3Vwh7RO4S6J9cGNeZZXa13fKRMo\n5LI6ck9apnCXxFo/oKNHwn0il+XG/DLXq0tRlyI9QOEuiVWcqWIGj3bpbpDN1g/u0Ly7tEDhLolV\nKld46MgwBwbSUZfSknyjF1/z7tIKhbskVrfvKdNsLDPI4eF+7TEjLVG4SyItra5x6fp8z8y3Q6Nj\nJpdd36JYZDsKd0mk96/Ps1rzrj2gYyv5xh
 4z7h51KdLlFO6SSMHe6MFt/b0iP56lsrTKtTs6E0e2\np3CXRCqVK/SljIdHeyvcC9qGQFqkcJdEKs5UOTNaPwSjlwT/0lA7pOykt/5mi4RkarbSc/PtAIeG\nB8g9MKhFVdmRwl0SZ2F5lQ9vLvRUp8xG9Y4Zjdxlewp3SZzp2SruvbeYGsjnskzNVlirqWNGtqZw\nl8S51ynTmyP3Qi7L4kqNyzcXoi5FupjCXRKnVK4w0Jfi1NGRqEvZk2CtQB0zsh2FuyROqVxl4liG\ndMqiLmVPJo7dO3JPZCsKd0mcUrnSs4upACODfZw4fICiOmZkGwp3SZQ7d1e4dmexJ47W206hsQ2B\nyFYU7pIowVRGYbw3O2UC+fEs781VWV6tRV2KdCmFuyRKsAjZq50ygUIuy2rNuXRjPupSpEsp3CVR\npspVRgbSHD90IOpS9iX45aSbmWQrCndJlOJMfdsBs97slAk8PDZCyrTHjGxN4S6JUipXyB/r7SkZ\ngKH+NKdHR9TrLltSuEtiXK8ucWN+uSc3DNtMQacyyTYU7pIYwRRGL/e4b5TPZbl0Y57FlbWoS5Eu\npHCXxAgWH/M93gYZKIxnca9vhCbSTOEuiVEsVzk83M9YZjDqUkKxfnCH5t1lEwp3SYxSucJErvc7\nZQKnjo4wkE5pUVU21VK4m9kTZlY0s2kze2GT7/+Cmb1jZt8zs/9hZqfCL1Vk79yd0kxv7ynTrD+d\n4uGxEbVDyqZ2DHczSwMvA08CZ4Fnzexs02XfBSbd/UeA14F/GnahIvtx7c4ilaXV2HTKBArj6piR\nzbUycn8MmHb3i+6+DLwKPL3xAnf/prsHJwd8CzgRbpki+xPMS8dp5A71jpmrt+9SWVyJuhTpMq2E\n+3Hg8obHVxrPbeVLwH/b7Btm9pyZXTCzC3Nzc61XKbJP650yPXq03laCbQim1DEjTUJdUDWznwIm\ngV/Z7Pvu/oq7T7r75
 NjYWJhvLbKt4kyVY9lBDg0PRF1KqIJ/iWjeXZr1tXDNVeDkhscnGs/dx8we\nB/4B8OfcfSmc8kTCUSpXKMRsvh3gxOEDHOhPq2NGPqaVkfubwISZnTGzAeAZ4NzGC8zsU8C/BZ5y\n99nwyxTZu1rNmZqt9Pw2v5tJpYx8LsOUFlWlyY7h7u6rwPPAG8C7wGvu/raZvWRmTzUu+xUgA3zd\nzP7IzM5t8XIiHXf51gKLK7XYLaYG8rmsRu7yMa1My+Du54HzTc+9uOHrx0OuSyQ0xZlg24H4hvvX\n37rCzflljozEa01B9k53qErsBZ0yE8fi1SkTCH5paRsC2UjhLrFXLFc5cfgAI4Mt/UO15xR0KpNs\nQuEusTdVjte2A81yDwzywFCfwl3uo3CXWFtZq/HeXDW28+0AZlbfhmBGHTNyj8JdYu3S9XlW1jzW\nI3eAiUbHjLtHXYp0CYW7xFrQIjgRs20HmhVyWe7cXWG2ovsHpU7hLrFWmqmQMnhkLN7hHtygVdQ2\nBNKgcJdYK5WrnB4dYag/HXUpbaVTmaSZwl1irRTzTpnA0cwgo5lBhbusU7hLbC2urHHpxnws95TZ\nTD6Xoag9ZqRB4S6xNT1bpeYkKNyzTJUr1GrqmBGFu8TY+ulL4/FeTA0UxrMsLK9x9fbdqEuRLqBw\nl9gqlasMpFOcOjoSdSkdkdc2BLKBwl1iq1Su8PDYCP3pZPw1DzpmtP2vgMJdYqw4E88DOraSHern\nwYNDOnJPAIW7xFRlcYWrt+/G8mi97eTHs+qYEUDhLjE1NVsPuCSN3KG+DcF7s1VW12pRlyIRU7hL\nLE0FnTIJC/d8LsvyWo0Pbi5EXYpETOEusVScqXKgP82JwweiLqWjgmkozbuLwl1iqVSuMJHLkEpZ\n1KV01CNjGczUMSMKd4mpYjlZnTKBAwNpTh0ZVq+7KNwlfm7NLzNXWUrcfHsgn8tq619RuEv8BKPW\n
 OB+tt53CeJZLNxZYWl2LuhSJkMJdYqeU0E6ZQD6XZa3mXJybj7oUiZDCXWKnWK6QHeoj98Bg1KVE\nQnvMCCjcJYZKM1UKuSxmyeqUCZwZHaEvZZp3TziFu8SKu9c7ZRI63w4w0Jfi4bERjdwTTuEusTJX\nWeLO3ZXEzrcH8rksJe0xk2gKd4mV4OadJPa4b1TIZfnw5gILy6tRlyIRUbhLrATzzMHe5kk10fjl\nNqXRe2K1FO5m9oSZFc1s2sxe2OT7g2b2u43vf9vMToddqEgrSuUKo5kBjmaS2SkTCPaY0TYEybVj\nuJtZGngZeBI4CzxrZmebLvsScMvdHwX+OfDLYRcq0opiuZr4KRmAh44MM9iX0gZiCdbKyP0xYNrd\nL7r7MvAq8HTTNU8D/6Hx9evAFyypfWgSmVrNmU7onjLN0iljIpehNKtpmaTqa+Ga48DlDY+vAJ/Z\n6hp3XzWzO8BR4HoYRW702puX+bU/vBj2y/Ysj7qALlJzZ355LXGnL20ln8vye398jb/w1f8VdSld\nIayfFff9v9KXH8/z1I8+GEI1W2sl3ENjZs8BzwE89NBDe3qNQ8P9TCR8sayZoX8kBf70iUN84YeO\nRV1GV/jrnznF0motlDCKi9B+Vvb5MoeH+8OpYxuthPtV4OSGxycaz212zRUz6wMOAjeaX8jdXwFe\nAZicnNzT37if+OQ4P/HJ8b38UZFE+bFTh/mxU4ejLkMi0sqc+5vAhJmdMbMB4BngXNM154C/1fj6\nrwJ/4BouiIhEZseRe2MO/XngDSAN/Ia7v21mLwEX3P0c8O+A3zKzaeAm9V8AIiISkZbm3N39PHC+\n6bkXN3y9CPxkuKWJiMhe6Q5VEZEYUriLiMSQwl1EJIYU7iIiMaRwFxGJIYuqHd3M5oAP9vjHR2nD\n1gY9TJ/H/fR53KPP4n5x+DxOufvYThdFFu77YWYX3H0y6jq6hT6P++nzuEefx
 f2S9HloWkZEJIYU\n7iIiMdSr4f5K1AV0GX0e99PncY8+i/sl5vPoyTl3ERHZXq+O3EVEZBs9F+47HdadFGZ20sy+aWbv\nmNnbZvblqGvqBmaWNrPvmtnvRV1L1MzskJm9bmZ/YmbvmtmfibqmqJjZ3238nHzfzL5mZkNR19Ru\nPRXuLR7WnRSrwFfc/SzwWeBnE/xZbPRl4N2oi+gS/xL47+7+p4AfJaGfi5kdB/4OMOnuP0x96/LY\nb0veU+FOa4d1J4K7X3P37zS+rlD/wT0ebVXRMrMTwF8Efj3qWqJmZgeBP0v9rAXcfdndb0dbVaT6\ngAONk+KGgR9EXE/b9Vq4b3ZYd6IDDcDMTgOfAr4dbSWR+xfA3wNqURfSBc4Ac8C/b0xT/bqZjURd\nVBTc/Srwz4APgWvAHXf//Wirar9eC3dpYmYZ4D8DP+/uH0VdT1TM7C8Bs+7+VtS1dIk+4NPAr7r7\np4B5IJFrVGZ2mPq/8M8ADwIjZvZT0VbVfr0W7q0c1p0YZtZPPdh/292/EXU9Efsc8JSZXaI+Xffn\nzew/RVtSpK4AV9w9+Nfc69TDPokeB9539zl3XwG+Afx4xDW1Xa+FeyuHdSeCmRn1+dR33f2rUdcT\nNXf/JXc/4e6nqf+9+AN3j/3obCvuPgNcNrNC46kvAO9EWFKUPgQ+a2bDjZ+bL5CAxeWWzlDtFlsd\n1h1xWVH5HPA3gP9nZn/UeO7vN867FQH4OeC3GwOhi8BPR1xPJNz922b2OvAd6l1m3yUBd6rqDlUR\nkRjqtWkZERFpgcJdRCSGFO4iIjGkcBcRiSGFu4hIDCncRURiSOEuIhJDCncRkRj6/5J3/U/FAH0D\nAAAAAElFTkSuQmCC\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7f0747e45890>"
+       "<matplotlib.figure.Figure at 0x7fdde5663da0>"
       ]
      },
      "metadata": {},
@@ -386,7 +401,7 @@
    ],
    "source": [
     "prob=tensor.to_numpy(y)[0]\n",
-    "plt.plot(range(10), prob)"
+    "plt.plot(list(range(10)), prob)"
    ]
   },
   {
@@ -405,270 +420,268 @@
   {
    "cell_type": "code",
    "execution_count": 13,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "conv1_weight (32, 9) 7.97165679932\n",
-      "conv1_bias (32,) 0.0\n",
-      "conv2_weight (32, 288) 8.00566577911\n",
-      "conv2_bias (32,) 0.0\n",
-      "dense_weight (512, 10) 7.92119693756\n",
-      "dense_bias (10,) 0.0\n",
+      "conv1/weight (32, 9) 7.971656799316406\n",
+      "conv1/bias (32,) 0.0\n",
+      "conv2/weight (32, 288) 8.005664825439453\n",
+      "conv2/bias (32,) 0.0\n",
+      "dense/weight (512, 10) 7.921195983886719\n",
+      "dense/bias (10,) 0.0\n",
       "\n",
       "\n",
       "Epoch 0\n",
-      "-->conv1: 3.886751\n",
-      "conv1-->relu1: 2.299547\n",
-      "relu1-->conv2: 603.797852\n",
-      "conv2-->relu2: 295.446167\n",
-      "relu2-->pool: 955.442017\n",
-      "pool-->flat: 955.442017\n",
-      "flat-->dense: 284901.062500\n",
-      "-->dense: 0.311904\n",
-      "dense-->flat: 0.311904\n",
-      "flat-->pool: 0.086828\n",
-      "pool-->relu2: 0.050518\n",
-      "relu2-->conv2: 9.024708\n",
-      "conv2-->relu1: 2.790344\n",
-      "relu1-->conv1: 336.182007\n",
-      "\n",
-      " loss = 79.148743, params\n",
-      "conv1_weight 10.1786603928\n",
-      "conv1_bias 12.2705039978\n",
-      "conv2_weight 8.05525493622\n",
-      "conv2_bias 0.13293106854\n",
-      "dense_weight 8.18883609772\n",
-      "dense_bias 0.00134002871346\n",
+      "-->conv1: 4.059905\n",
+      "conv1-->relu1: 2.407956\n",
+      "relu1-->conv2: 620.319519\n",
+      "conv2-->relu2: 302.810760\n",
+      "relu2-->pool: 965.994873\n",
+      "pool-->flat: 965.994873\n",
+      "flat-->dense: 276680.062500\n",
+      "-->dense: 0.270273\n",
+      "dense-->flat: 0.270273\n",
+      "flat-->pool: 0.074453\n",
+      "pool-->relu2: 0.046011\n",
+      "relu2-->conv2: 8.166893\n",
+      "conv2-->relu1: 2.553801\n",
+      "relu1-->conv1: 299.891296\n",
+      "\n",
+      " loss = 68.231674, params\n",
+      "conv1/weight 9.855006217956543\n",
+      "conv1/bias 9.832422256469727\n",
+      "conv2/weight 8.0507173538208\n",
+      "conv2/bias 0.1285100281238556\n",
+      "dense/weight 8.218809127807617\n",
+      "dense/bias 0.0013595324708148837\n",
       "\n",
       "\n",
       "Epoch 1\n",
-      "-->conv1: 20.362625\n",
-      "conv1-->relu1: 4.780766\n",
-      "relu1-->conv2: 2066.139404\n",
-      "conv2-->relu2: 488.272614\n",
-      "relu2-->pool: 1144.980225\n",
-      "pool-->flat: 1144.980225\n",
-      "flat-->dense: 1392742.250000\n",
-      "-->dense: 0.286131\n",
-      "dense-->flat: 0.286131\n",
-      "flat-->pool: 0.084796\n",
-      "pool-->relu2: 0.034586\n",
-      "relu2-->conv2: 7.695237\n",
-      "conv2-->relu1: 2.117975\n",
-      "relu1-->conv1: 487.341522\n",
-      "\n",
-      " loss = 70.960945, params\n",
-      "conv1_weight 16.7161483765\n",
-      "conv1_bias 34.0985298157\n",
-      "conv2_weight 8.74045848846\n",
-      "conv2_bias 0.33584010601\n",
-      "dense_weight 9.48363685608\n",
-      "dense_bias 0.00340566551313\n",
+      "-->conv1: 17.634811\n",
+      "conv1-->relu1: 3.629616\n",
+      "relu1-->conv2: 1683.136475\n",
+      "conv2-->relu2: 389.035248\n",
+      "relu2-->pool: 934.496582\n",
+      "pool-->flat: 934.496582\n",
+      "flat-->dense: 1198527.500000\n",
+      "-->dense: 0.322575\n",
+      "dense-->flat: 0.322575\n",
+      "flat-->pool: 0.094647\n",
+      "pool-->relu2: 0.039437\n",
+      "relu2-->conv2: 8.781067\n",
+      "conv2-->relu1: 2.430810\n",
+      "relu1-->conv1: 502.457764\n",
+      "\n",
+      " loss = 79.148743, params\n",
+      "conv1/weight 14.95351791381836\n",
+      "conv1/bias 28.66775131225586\n",
+      "conv2/weight 8.543733596801758\n",
+      "conv2/bias 0.320060670375824\n",
+      "dense/weight 9.1849365234375\n",
+      "dense/bias 0.0028705699369311333\n",
       "\n",
       "\n",
       "Epoch 2\n",
-      "-->conv1: 52.302490\n",
-      "conv1-->relu1: 10.072969\n",
-      "relu1-->conv2: 12706.870117\n",
-      "conv2-->relu2: 1381.310059\n",
-      "relu2-->pool: 1888.169067\n",
-      "pool-->flat: 1888.169067\n",
-      "flat-->dense: 4740897.500000\n",
-      "-->dense: 0.350905\n",
-      "dense-->flat: 0.350905\n",
-      "flat-->pool: 0.111108\n",
-      "pool-->relu2: 0.023244\n",
-      "relu2-->conv2: 7.156909\n",
-      "conv2-->relu1: 1.548402\n",
-      "relu1-->conv1: 516.079651\n",
-      "\n",
-      " loss = 73.690216, params\n",
-      "conv1_weight 30.0410804749\n",
-      "conv1_bias 60.256187439\n",
-      "conv2_weight 11.2280254364\n",
-      "conv2_bias 0.536676049232\n",
-      "dense_weight 13.0333833694\n",
-      "dense_bias 0.00553257204592\n",
+      "-->conv1: 44.400776\n",
+      "conv1-->relu1: 8.777474\n",
+      "relu1-->conv2: 12810.666016\n",
+      "conv2-->relu2: 1705.242798\n",
+      "relu2-->pool: 2268.597656\n",
+      "pool-->flat: 2268.597656\n",
+      "flat-->dense: 4815859.500000\n",
+      "-->dense: 0.347976\n",
+      "dense-->flat: 0.347976\n",
+      "flat-->pool: 0.109863\n",
+      "pool-->relu2: 0.024067\n",
+      "relu2-->conv2: 7.023767\n",
+      "conv2-->relu1: 1.075155\n",
+      "relu1-->conv1: 418.399963\n",
+      "\n",
+      " loss = 76.419479, params\n",
+      "conv1/weight 29.47024154663086\n",
+      "conv1/bias 52.10609436035156\n",
+      "conv2/weight 10.518251419067383\n",
+      "conv2/bias 0.5825839042663574\n",
+      "dense/weight 12.961698532104492\n",
+      "dense/bias 0.004623417742550373\n",
       "\n",
       "\n",
       "Epoch 3\n",
-      "-->conv1: 96.670937\n",
-      "conv1-->relu1: 2.220010\n",
-      "relu1-->conv2: 16051.786133\n",
-      "conv2-->relu2: 705.551208\n",
-      "relu2-->pool: 846.462280\n",
-      "pool-->flat: 846.462280\n",
-      "flat-->dense: 4615773.000000\n",
-      "-->dense: 0.454912\n",
-      "dense-->flat: 0.454912\n",
-      "flat-->pool: 0.146553\n",
-      "pool-->relu2: 0.012394\n",
-      "relu2-->conv2: 6.071361\n",
-      "conv2-->relu1: 0.411632\n",
-      "relu1-->conv1: 328.999054\n",
-      "\n",
-      " loss = 81.878014, params\n",
-      "conv1_weight 44.8700485229\n",
-      "conv1_bias 111.767730713\n",
-      "conv2_weight 14.0987415314\n",
-      "conv2_bias 0.919560790062\n",
-      "dense_weight 18.0457553864\n",
-      "dense_bias 0.00845981575549\n",
+      "-->conv1: 82.561668\n",
+      "conv1-->relu1: 2.029232\n",
+      "relu1-->conv2: 19918.304688\n",
+      "conv2-->relu2: 2221.255859\n",
+      "relu2-->pool: 3186.028076\n",
+      "pool-->flat: 3186.028076\n",
+      "flat-->dense: 8799418.000000\n",
+      "-->dense: 0.585852\n",
+      "dense-->flat: 0.585852\n",
+      "flat-->pool: 0.186150\n",
+      "pool-->relu2: 0.025595\n",
+      "relu2-->conv2: 10.546330\n",
+      "conv2-->relu1: 1.008846\n",
+      "relu1-->conv1: 2478.874512\n",
+      "\n",
+      " loss = 87.336548, params\n",
+      "conv1/weight 45.3760871887207\n",
+      "conv1/bias 122.97279357910156\n",
+      "conv2/weight 12.587639808654785\n",
+      "conv2/bias 0.9543725252151489\n",
+      "dense/weight 21.757226943969727\n",
+      "dense/bias 0.007790021598339081\n",
       "\n",
       "\n",
       "Epoch 4\n",
-      "-->conv1: 165.898941\n",
-      "conv1-->relu1: 0.000018\n",
-      "relu1-->conv2: 1.004575\n",
-      "conv2-->relu2: 0.049885\n",
-      "relu2-->pool: 0.214831\n",
-      "pool-->flat: 0.214831\n",
-      "flat-->dense: 1963.049194\n",
-      "-->dense: 0.560196\n",
-      "dense-->flat: 0.560196\n",
-      "flat-->pool: 0.182800\n",
-      "pool-->relu2: 0.026711\n",
-      "relu2-->conv2: 10.339769\n",
-      "conv2-->relu1: 0.006092\n",
-      "relu1-->conv1: 11.064970\n",
-      "\n",
-      " loss = 45.199768, params\n",
-      "conv1_weight 58.6796875\n",
-      "conv1_bias 162.814819336\n",
-      "conv2_weight 16.8376598358\n",
-      "conv2_bias 1.47756028175\n",
-      "dense_weight 23.0595436096\n",
-      "dense_bias 0.01112665236\n",
+      "-->conv1: 181.790573\n",
+      "conv1-->relu1: 0.000030\n",
+      "relu1-->conv2: 1.017071\n",
+      "conv2-->relu2: 0.120676\n",
+      "relu2-->pool: 0.305297\n",
+      "pool-->flat: 0.305297\n",
+      "flat-->dense: 2401.528809\n",
+      "-->dense: 0.703576\n",
+      "dense-->flat: 0.703576\n",
+      "flat-->pool: 0.229087\n",
+      "pool-->relu2: 0.029813\n",
+      "relu2-->conv2: 13.549859\n",
+      "conv2-->relu1: 0.006924\n",
+      "relu1-->conv1: 4.986567\n",
+      "\n",
+      " loss = 68.686081, params\n",
+      "conv1/weight 59.74170684814453\n",
+      "conv1/bias 191.91458129882812\n",
+      "conv2/weight 14.60444450378418\n",
+      "conv2/bias 1.4008562564849854\n",
+      "dense/weight 30.463171005249023\n",
+      "dense/bias 0.010233680717647076\n",
       "\n",
       "\n",
       "Epoch 5\n",
-      "-->conv1: 241.562866\n",
+      "-->conv1: 260.486359\n",
       "conv1-->relu1: 0.000000\n",
-      "relu1-->conv2: 1.477560\n",
-      "conv2-->relu2: 0.000000\n",
-      "relu2-->pool: 0.000000\n",
-      "pool-->flat: 0.000000\n",
-      "flat-->dense: 0.011127\n",
-      "-->dense: 0.668576\n",
-      "dense-->flat: 0.668576\n",
-      "flat-->pool: 0.218311\n",
-      "pool-->relu2: 0.000000\n",
-      "relu2-->conv2: 0.000000\n",
+      "relu1-->conv2: 1.400860\n",
+      "conv2-->relu2: 0.062520\n",
+      "relu2-->pool: 0.062520\n",
+      "pool-->flat: 0.062520\n",
+      "flat-->dense: 296.831329\n",
+      "-->dense: 2.126958\n",
+      "dense-->flat: 2.126958\n",
+      "flat-->pool: 0.694517\n",
+      "pool-->relu2: 0.014730\n",
+      "relu2-->conv2: 6.709585\n",
       "conv2-->relu1: 0.000000\n",
       "relu1-->conv1: 0.000000\n",
       "\n",
-      " loss = 2.299366, params\n",
-      "conv1_weight 71.2618331909\n",
-      "conv1_bias 208.757034302\n",
-      "conv2_weight 19.3444824219\n",
-      "conv2_bias 2.00746393204\n",
-      "dense_weight 27.6571712494\n",
-      "dense_bias 0.0137531962246\n",
+      " loss = 65.246483, params\n",
+      "conv1/weight 72.80561828613281\n",
+      "conv1/bias 253.96200561523438\n",
+      "conv2/weight 16.481393814086914\n",
+      "conv2/bias 1.8957630395889282\n",
+      "dense/weight 38.40126419067383\n",
+      "dense/bias 0.014084763824939728\n",
       "\n",
       "\n",
       "Epoch 6\n",
-      "-->conv1: 296.653534\n",
+      "-->conv1: 347.085114\n",
       "conv1-->relu1: 0.000000\n",
-      "relu1-->conv2: 2.007464\n",
-      "conv2-->relu2: 0.000000\n",
-      "relu2-->pool: 0.000000\n",
-      "pool-->flat: 0.000000\n",
-      "flat-->dense: 0.013753\n",
-      "-->dense: 0.910015\n",
-      "dense-->flat: 0.910015\n",
-      "flat-->pool: 0.297148\n",
-      "pool-->relu2: 0.000000\n",
-      "relu2-->conv2: 0.000000\n",
+      "relu1-->conv2: 1.895745\n",
+      "conv2-->relu2: 0.013967\n",
+      "relu2-->pool: 0.013967\n",
+      "pool-->flat: 0.013967\n",
+      "flat-->dense: 33.670372\n",
+      "-->dense: 1.395184\n",
+      "dense-->flat: 1.395184\n",
+      "flat-->pool: 0.455570\n",
+      "pool-->relu2: 0.009508\n",
+      "relu2-->conv2: 3.835509\n",
       "conv2-->relu1: 0.000000\n",
       "relu1-->conv1: 0.000000\n",
       "\n",
-      " loss = 2.301979, params\n",
-      "conv1_weight 82.6378097534\n",
-      "conv1_bias 250.104797363\n",
-      "conv2_weight 21.6229515076\n",
-      "conv2_bias 2.484375\n",
-      "dense_weight 31.8290367126\n",
-      "dense_bias 0.0165074821562\n",
+      " loss = 38.581238, params\n",
+      "conv1/weight 84.56834411621094\n",
+      "conv1/bias 309.804443359375\n",
+      "conv2/weight 18.20405387878418\n",
+      "conv2/bias 2.4867684841156006\n",
+      "dense/weight 45.590518951416016\n",
+      "dense/bias 0.016868162900209427\n",
       "\n",
       "\n",
       "Epoch 7\n",
-      "-->conv1: 348.356262\n",
+      "-->conv1: 416.296112\n",
       "conv1-->relu1: 0.000000\n",
-      "relu1-->conv2: 2.484375\n",
+      "relu1-->conv2: 2.486759\n",
       "conv2-->relu2: 0.000000\n",
       "relu2-->pool: 0.000000\n",
       "pool-->flat: 0.000000\n",
-      "flat-->dense: 0.016507\n",
-      "-->dense: 0.927903\n",
-      "dense-->flat: 0.927903\n",
-      "flat-->pool: 0.302989\n",
+      "flat-->dense: 0.016868\n",
+      "-->dense: 1.538023\n",
+      "dense-->flat: 1.538023\n",
+      "flat-->pool: 0.502211\n",
       "pool-->relu2: 0.000000\n",
       "relu2-->conv2: 0.000000\n",
       "conv2-->relu1: 0.000000\n",
       "relu1-->conv1: 0.000000\n",
       "\n",
-      " loss = 2.302492, params\n",
-      "conv1_weight 92.8762283325\n",
-      "conv1_bias 287.317565918\n",
-      "conv2_weight 23.6872882843\n",
-      "conv2_bias 2.9135928154\n",
-      "dense_weight 35.6038131714\n",
-      "dense_bias 0.0192515775561\n",
+      " loss = 2.308411, params\n",
+      "conv1/weight 95.16199493408203\n",
+      "conv1/bias 360.06231689453125\n",
+      "conv2/weight 19.77170753479004\n",
+      "conv2/bias 3.043811798095703\n",
+      "dense/weight 52.087501525878906\n",
+      "dense/bias 0.01910635642707348\n",
       "\n",
       "\n",
       "Epoch 8\n",
-      "-->conv1: 394.178162\n",
+      "-->conv1: 469.519379\n",
       "conv1-->relu1: 0.000000\n",
-      "relu1-->conv2: 2.913593\n",
+      "relu1-->conv2: 3.043824\n",
       "conv2-->relu2: 0.000000\n",
       "relu2-->pool: 0.000000\n",
       "pool-->flat: 0.000000\n",
-      "flat-->dense: 0.019252\n",
-      "-->dense: 1.218609\n",
-      "dense-->flat: 1.218609\n",
-      "flat-->pool: 0.397913\n",
+      "flat-->dense: 0.019106\n",
+      "-->dense: 1.641877\n",
+      "dense-->flat: 1.641877\n",
+      "flat-->pool: 0.536123\n",
       "pool-->relu2: 0.000000\n",
       "relu2-->conv2: 0.000000\n",
       "conv2-->relu1: 0.000000\n",
       "relu1-->conv1: 0.000000\n",
       "\n",
-      " loss = 2.300582, params\n",
-      "conv1_weight 102.090713501\n",
-      "conv1_bias 320.808746338\n",
-      "conv2_weight 25.5548191071\n",
-      "conv2_bias 3.29988527298\n",
-      "dense_weight 39.0138893127\n",
-      "dense_bias 0.0218270029873\n",
+      " loss = 2.301430, params\n",
+      "conv1/weight 104.70797729492188\n",
+      "conv1/bias 405.2940368652344\n",
+      "conv2/weight 21.199617385864258\n",
+      "conv2/bias 3.545147657394409\n",
+      "dense/weight 57.95866775512695\n",
+      "dense/bias 0.02116413414478302\n",
       "\n",
       "\n",
       "Epoch 9\n",
-      "-->conv1: 430.156555\n",
+      "-->conv1: 525.609802\n",
       "conv1-->relu1: 0.000000\n",
-      "relu1-->conv2: 3.299885\n",
+      "relu1-->conv2: 3.545132\n",
       "conv2-->relu2: 0.000000\n",
       "relu2-->pool: 0.000000\n",
       "pool-->flat: 0.000000\n",
-      "flat-->dense: 0.021827\n",
-      "-->dense: 1.221773\n",
-      "dense-->flat: 1.221773\n",
-      "flat-->pool: 0.398946\n",
+      "flat-->dense: 0.021164\n",
+      "-->dense: 2.182356\n",
+      "dense-->flat: 2.182356\n",
+      "flat-->pool: 0.712606\n",
       "pool-->relu2: 0.000000\n",
       "relu2-->conv2: 0.000000\n",
       "conv2-->relu1: 0.000000\n",
       "relu1-->conv1: 0.000000\n",
       "\n",
-      " loss = 2.302244, params\n",
-      "conv1_weight 110.383636475\n",
-      "conv1_bias 350.950500488\n",
-      "conv2_weight 27.2405776978\n",
-      "conv2_bias 3.64754581451\n",
-      "dense_weight 42.0904846191\n",
-      "dense_bias 0.0241855494678\n"
+      " loss = 2.316046, params\n",
+      "conv1/weight 113.30311584472656\n",
+      "conv1/bias 446.00213623046875\n",
+      "conv2/weight 22.49642562866211\n",
+      "conv2/bias 3.9963467121124268\n",
+      "dense/weight 63.25651931762695\n",
+      "dense/bias 0.02255747839808464\n"
      ]
     }
    ],
@@ -680,18 +693,18 @@
     "        pval.gaussian(0, 10)\n",
     "    else:\n",
     "        pval.set_value(0)\n",
-    "    print pname, pval.shape, pval.l1()\n",
+    "    print(pname, pval.shape, pval.l1())\n",
     "for b in range(10):\n",
-    "    print \"\\n\\nEpoch %d\" % b\n",
+    "    print(\"\\n\\nEpoch %d\" % b)\n",
     "    x = train_x[idx[b * batch_size: (b + 1) * batch_size]]\n",
     "    y = train_y[idx[b * batch_size: (b + 1) * batch_size]]\n",
     "    tx.copy_from_numpy(x)\n",
     "    ty.copy_from_numpy(y)\n",
     "    grads, (l, a) = net.train(tx, ty)\n",
-    "    print '\\n loss = %f, params' % l\n",
+    "    print('\\n loss = %f, params' % l)\n",
     "    for (s, p, g) in zip(net.param_names(), net.param_values(), grads):\n",
     "        opt.apply_with_lr(epoch, 0.01, g, p, str(s), b)\n",
-    "        print s, p.l1()\n"
+    "        print(s, p.l1())"
    ]
   },
   {
@@ -707,7 +720,7 @@
     "       and visualize each (height, width) thing in a grid of size approx. sqrt(n) by sqrt(n)\"\"\"\n",
     "    \n",
     "    # normalize data for display\n",
-    "    data = (data - data.min()) / (data.max() - data.min())\n",
+    "    data = old_div((data - data.min()), (data.max() - data.min()))\n",
     "    \n",
     "    # force the number of filters to be square\n",
     "    n = int(np.ceil(np.sqrt(data.shape[0])))\n",
@@ -726,21 +739,13 @@
   {
    "cell_type": "code",
    "execution_count": 15,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "NOTE: If your model was saved using pickle, then set use_pickle=True for loading it\n",
-      "conv2_bias\n",
-      "conv2_weight\n",
-      "dense_weight\n",
-      "conv1_bias\n",
-      "dense_bias\n",
-      "conv1_weight\n"
+      "NOTE: If your model was saved using pickle, then set use_pickle=True for loading it\n"
      ]
     }
    ],
@@ -752,24 +757,19 @@
     "x = train_x[idx[b * batch_size: (b + 1) * batch_size]]    \n",
     "tx.copy_from_numpy(x)\n",
     "\n",
-    "r = net.forward(False, tx, ['relu1', 'relu2'])\n",
-    "\n",
-    "\n",
-    "    "
+    "r = net.forward(False, tx, ['relu1', 'relu2'])    "
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 16,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAD8CAYAAAC4nHJkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnWl0HNd1529VNYDGDhA7AYLgAoCLuEiUKFp2bEsek44k\nJ854mTO2Mx88drxEmjnOzJmcyWTiLJOTyXHG8thJTjKyYseWJpHO+EgxJdlwrMV2xEUkRYmSuIIL\nSCxcQOxAo4Guqvlwq957QDcagFBV3dT7/770w6vXXRfV9freeu8uhuu6BADQDzPXAgAAcgMmPwCa\ngskPgKZg8gOgKZj8AGgKJj8AmoLJD4CmYPIDoCmY/ABoSizKk33Y+lReuBN29R0nIqJ9q3fmWBKm\nq/910c43mSBPZuZ8Zy27ciiJpKv3GBERmY3njKWMh+YHQFMw+QHQFEx+ADQFkx8ATcHkB0BTMPkB\n0JRIt/oyEmQyEWNJOxzZPyImL4mbSq3484IgtnYNERGd/UoLERGlym1xzJjl32/DkePdAr6m8QGL\niIjW/OmBUOQyd2wW7WRDKTcc+X0aXtMuYhljCSm39fM3vPGyL5fEWppFO9Xbt+LPsyoriIjIbW4g\nIiJzaloccy1P5xYo029mloiI7O6L6R9mWiuWJxPQ/ABoCiY/AJqSc7PfN7fGdreIvviNGSIicmPS\njDen2TycqSokIiKnUB4r/qdXA5PHrKoUbbeFTTbn9ZPcoTxWGLECHl9aLPqm79xIREQFPzsWmDxE\nRJTi/720l8/f9OgJcciZnk4f78l58U/3EBFRrK1VftSly4GJ5bxxSrQLsozLdJOZt23iz3jrdGDy\nqJz9691ERFR/SJrMZb3p91XBT48SEVHvJ9aKvsZvrtzsp5oqIiLq27uKiIjWPNUjDhkxTyZbPqvZ\n1fzY1PNH9xAR0dqvhfOopgLND4Cm5Fzzp/r6iYior
 GtE9LnJJL/a6YtBRd6rVVsr+oJcMrIHb8o/\nhkbmHlQWJ91Z1iL2yIzos5IOhYF/jRr+6hoRETmLLZJ5chobJvn9AWr7wOi+FOrHb/69M0REZI+M\nLmn82G3ye2wM4Pz2Bb7mzY8OEhFRanxcHsy0gHeJX2IfvjuAsy8NaH4ANAWTHwBNybnZ7+NMTaV3\nZvEBsG/cEG0zHufP8B4XghNqrnltlpTIQ768igln/vJ4sOdfRB4iIud9HOI60i4XHgfv5nG1Pwln\nfzgbZnm5aBsN/GiWquM9b+PgG+JYxoXKAFmquR9r5EXd+l9kW7J85ziT6fdJrLmJiIjsq9flwB0d\nRETU+jT3ReH9AM0PgKbkjebPyO5tommX8i+za/I2TewFuZ2WbbsrSJztG0XbOj/ApymUGsNfmIuS\nyRa2emJJaSWVdfPXOtrOfdZn94hjlY8fClUeR13Y8tpGN/9p7twiDrkWfz/usbdDlUcldR8n3SgY\nl4t7zizr2Jofd0vZSnnbzZmcDEWO4ffytraVlF6F01Wsh2vezPAG3+IL2NMPmh8ATclrzW+eOCfb\nJv9OmdXsPJG89w5xrKhniIiIUhcuhSvQYfmzbPvbaQWFos+qYYcOqq+R407J/yEMyp86wg1lPaDC\n0xCmZ5Wc+V87xLHKx0MVJyvCWUrBaqgXbfva9bTjQVJ45CwRzYvfWMPP/Ooa0rWH2dGm4dvhONpU\n/oidtNxZGTtS7jmXOW280Xj1q/eIY42PhBSbEcqnAgDyHkx+ADQlr83+TFt3TiJBRESWurjmbdeE\nToatR9/Tj4jIvsmPH9TekjYuNDJ5+3l9jhcPEW8IZ+EqCNypRGTnmrMY6TM8nNY1upXN8bDuKmc6\n/b4W9473morA0w+aHwBNyWvNv1Sc8Ylci0BE0sHFOZxpvyZ6jF1biYgo1V2+yMhoUBdHfYspozbO\nMeVnczctfAegyvPhxImoQPMD
 oCmY/ABoyq1n9mdYdDMsz/NJ9YBywzebiObuGZte3rZcm7J+gpST\nX2F//84vHhHHclkvzSyOi7atLJTmA5f/UO6rr/s2JxiJMrugVVFGREQje/i7K38yXE9MImh+ALQl\nvzV/lqg+a+M60XaueNt+IWv7TAtWaobfILK+Lhc/s+/JP5AbU+Y4f61b/rCX5cpRFmL3PexZaE15\niU+UtF/5wvWHWOO3Pi+tNbHtFhJWNXvz2cqWsDvB16jqEN9Dc74xZO8FAARJXmt+4StPRKMf4njn\n+CDnNzd+KbfT3NRstIIRUax5NRHlJpJPxY8J3/SwTD/m5xrIddUBP34/mtWXxbE/yPEgw51Foq/p\np5wazT57PnJ5ZiqlJVnS5zn3XGFrLSxtrwLND4CmYPIDoCmGG2S5rEVwrrbncqcJAC0wG88tKZMN\nND8AmhLpgt/92+6L8nQL8vybLxIR0b7VO3MsCdPV/7po72u+PYeSSLr6OBnpvpZdOZaE6erltG35\ndn2I8vM+WgrQ/ABoCiY/AJqCyQ+ApmDyA6ApmPwAaAomPwCagskPgKbkPLAniPBJv1CnUVqyyMjF\nsaqrRdvu5HBZOnRixZ+7EoxCDgAZ+DLvubd//Kw4trWCy4YNz8r/Pel45bpmOZnH+cc6xbFV3115\nkgijgD8/sVcWAxnq9G4lxbfM8LJhOF5FM0fGsdCaLi+E9mh6IY9lk8lL1S9csqVddKVq+HoUXFXC\nd890UxoBlnqzKrwipauq0j9/NkPolVdoxR0dkzKGFGIMzQ+ApuRc8/tpsNSkGJf/gBMslPYrxScH\n+LhfqDO+/1VxLPEhLuhZcmjlYZm2msf9UHpO91zgevULCsb5ehx7e704NvUIaxRjVGoz/1om7uRx\nL33nEXHs4999T2DyqN/B6v3L+4yB/8TfcdPRFYtDsbZW0b74F6xpYzE2O1JHpCVXcpWvX3K3LGc+\ntYMzGzf
 sl2G+5U8dXrlQvnZv5iQrU62V4lB8gLNNm+OyZoHrF3yNscUyuUUWhY0/K69zkEDzA6Ap\nOdf8ftJL9Tlr/eOcIEN97pmPmlxxaBP/apaEn/MwK1YtF+i0B28uMnKZeNem5rGDRERU9w/y+d5O\nLFzxJpZgjfj1mwH75/uJJjJVC8qWhEIZX/NWcAk8Uz1XRLvtc16NAm9dwh46nfW9yfvvJCKiG9ul\nHgykyoG3DmGfuUBEREXd8ro4fs2CDG+zvIKdVnP4tRag+QHQFEx+ADQl52a/QNmu8c39pW5xFI5G\nkyMktr5N/uHJ61ry99PuvhiuAJ757yimvuU9Nl3+0lbRl6hng/K3PvwCERF1ffX94lgBvRacPBlM\nfKusVLTH9m4mIiK7kOWOJeT3VPL04QU/YyXY82smLJKsZriDHxnrXg8pD6T3qONmeESy6urSxs1s\nbyMiouLuQXEorFyM0PwAaEr+aP5FMO7i7Txz0itvfENuw9V8hxfC3HK5SGL4WycBkrpwKfDPXCnu\nDGusxFZpDRSX8oJSSyFbTi1/ck4cuz7CFoJ77O1Q5LHH5CJt2X5OLuFvDSY+tlsc87dz1z96QfSl\nrt0IXJ7k/XeJ9vRDfM+sr5QLsmdPsF5tfOQIpRGgs0+mz7XXNYoup5inopHyLMqYtIh8JzZnejpQ\nMaD5AdAUTH4ANCWvzX5/35yIyBicu+ef2tAk/7jB5uL0PdKHvfjoBdIBv0BH++cVH3mbF48eL+Tr\n0fvQbeJQ8R/xtap+MHzZfHNfnPsZ6anW+gy/Dv6m9DiseiJ4s7/45/K6lBxh/4iRVfK+qtvD5vXZ\nv5GPJFv+51Uimus/EAbGGzJGI+YVmzVXsUeis0rZ5+/0StMFXO4Mmh8ATclrzT9n+29s7haOpfzt\nb6IMbpNhY2sC8Bl/p/iRXERzF8BCwVs8cmfSPeZcb0uw+ozcLDL/VcilzZa6decVVS3r
 C7dUt28Z\nERGR3x6U22jVXpkua+Zu0Tf4fi6TXfWDkDS/v02sWEb+ne7LayXlNuBsJ8sTtKaG5gdAUzD5AdCU\n/Db7s5DJ+69gMrfVwGJNvG+bGriaUzl8zBJe4Or9DeldVvkMVxeup57o5YnLsFljLZuysXPXRF9O\nqgp7JvhYm9SDDUeSC42ODGdtg2gXXPM8XgM+BzQ/AJpyy2n+TBp/7NN7iIio8YXrUYsjQjCJMi+6\n5QI/7Vf/5znNVn29vC7Vf89pvzKFk4Ymjxde6/pbVkRkxz2PtlPS+zCKmvQsiLQQzR0cf2AoRmP8\nOMdoBK1pl4IIC49Jvexc7gvlXND8AGhKXmv+bFF9yQekz3bRsPcbfTPctFuqlnc2cnJP++hboZ5z\nMXwtf/G/3yH6HvxVjpjrPsPbRi2/Lbf3UurWVxjyFMhbauJBLmA52cgavalrQBxzPe0aurZXtLyf\nMo5u3yz6zn+8jIiI1j85KvrsoWjSt1k1q+Qftdy2KznFWOySshaSDGcNApofAE3B5AdAU/La7Fd9\n+2e2rSUioptbOLyx7vikOBY7E64Pto89Ik1DOjq68MAI8b3E1v+ZrC1w8h87iIio4wbnQkxdD95n\nfjF5iIhKf8iPH356jzkLaBEt7qkJM3o+zzn87bg8vvEx3pYNPRGLgv/4YVRKT1AnziHo1tnLRESU\nGgn//oLmB0BTDHeRNEdB4lxtz60XDgAaYDaeW1IWEmh+ADQFkx8ATYl0we+Be34tytMtyHMHfkRE\nRPtW78yxJExX/+uinW8y5Zs8D9x1f44lYZ478rxo72u+PYeSSLr6ji9rPDQ/AJqCyQ+ApmDyA6Ap\nmPwAaAomPwCagskPgKbk3Lff9cpqjW2vFX12ATsolV2R5YkKhjkTbbKBQzCHNsmUUDWneFzRRZmV\n9d2EH0o8+LEtREQ0dJt0lLSrOPmVUSDTc7gp/k0v6uNru+F7MpQ
 2iJJjfsHSs1+UtRNcT40UDUnn\nMstz85/1XNhNJTK15c8OrFgOgSP/99n1jZ48LIfhKIk7pjm02ZiVUQauly/fuh5sGK9ZxPfn5Ee2\n82u9jGUovcbnLx6QJdZS5RyaPdzOrzVvyWPmK28EKpv43FA+FQCQ9+Re83spikq9/OkL4f9Wx7z6\nkvUvymPWlo4QJMsf/GKc5ixrsTX/LFNdFnYtXKDAL1J58dOrRd+a/3Fp5fKMc0Rl27PSMjN/ubiD\niVqoM0jclNTkxivsDJTJud2d96pi3ymrGlkDSysNnw2/qKZfpah4kfH+RKzjquo0/VF5reLpwwMB\nmh8ATcHkB0BTcm72m431/DqtlC6a9RZmyssWfJ/d2y/bJ7ngYaytNQwRl43IFUdEbmrl2ej9Ek6V\nTxxa1vum6liOiovB5uq1vcKo1rBcJFtKrHbvv5bXov2Z4OQxvEVjIiKrge8nw/T0mrmIfovxQlxK\nzcXYvHqBwcsRynvwyBQybywccevnZIzvf1XpXFKE7rKB5gdAU3Ku+QVqNRev7VSUiL4bu7l0cdEo\na7GqpMyRny8VcnyC0PZLJbaWswhPbJPbbiPt/LUmq1nrrPv62+JYkDZApv8zdd8u0R7uZC022sly\nND8Tfi4X1eoiIlGunIjIXsNWgV0kt90KzrEFOSeTbqACpWttyyvDffN+WVLe8YyXmh8cC0eODEDz\nA6ApmPwAaEr+mP0ZcE6cFu2aE3OPqQbn0OfeQ0REta/JjKfmyESYouUNTiXnxh3ukF/lrLdOmmzg\nq3T54W3i2Nq/5IUte2wsFHlcRZ00/D17pjW2tfA5y+Sj3cSnuMRa2VPLW8RctjzK46F75E0imqfx\nvOy+Tqt8bLKu3uTGYouF7xC/GE3VDw6mHfMfjEY/s0f01RxgD83UpcuBygHND4Cm5LXmjylbLu4U\n+zo7E+xd5s7KX/RVf8e/oM5uqeF0+VXzra
 OmEwuPuf7b94j2xL2biIio+J9eXWj4iih8WfqhO/6C\noLcVq5Lcztbawpu5wWAUFYp2rJHLXjuTsmSZv21pqHnya6pDlmpx1G3diQfZ2y8OzQ8ACIK81vyk\nFH00KsuJiMjyXlXEs9Crb8rOPHH4EZVpnFwUfGaspBLZlgp3u22p25xDv8JOXTXfCVMaIrLSKwOZ\nFeXp7Zgcl+rhClCxIJx9MrEUpx3FOajsaA8RzV3nCgJofgA0BZMfAE3Jb7M/C67iz53X5NDcjzVx\nYovkKmlm1r/MCU9yIZVxl1yQLTkVVqDqMvE8AN1SGXRrlqc/WkaFWcZLoM74uOhzp6cXGr6yc4Xy\nqQCAvOeW0/yuvwiYyWc6LP/sZWIUSWcWtWR1VFgVnDer/zfWExFR+WXp0R9lKWofP/7g1GdLRV/7\nfwwwjddyUdJ+pdp4+48Oyb3SWEszNyIsYuun/XI7uRQ9KVGG9lg4DmvQ/ABoCiY/AJqS12a/q+zz\nT3XUEBFR4YiX6OOV19PGZ0v+EQV+OGmUpr6f2ffKF7aKvsk2XsSqP8Dmbfk/hus/rxJbt1a0T/4u\nm9TFV/i65MTUV0z86S1szltTcsfcOMgeiXP29EM2930TP/EhuQBqF7IeLnn6cPob3GCTsQg5QvlU\nAEDek9ean0bkdkfRcxfmHjOlR1astTkqibISZRIPH9vzSV/99RwuoCk4126IdseXenIoCeOnhCMi\nir2QnigjNC++LPiZfYueO7LwoJBSd6lA8wOgKZj8AGiK4Ua4l+lcbY/uZABoitl4bknPDND8AGhK\npAt++1bvjPJ0C9LVz9uED+x+IMeSMM+9+pxo72u+PYeSSLr6uPxWvn1nH1kbTsmv5fKTHpkMJd++\ns6UCzQ+ApmDyA6ApmPwAaAomPwCagskPgKZg8gOgKTn37fdLKp/76gbR13Q7F94sK5TRcVWFnLe/\nuXiEiIiuJGRu9ZGHu
 NqKe1wWpHyn2DcGRfudRueZ2zfJ9tB4lpFLwy/b7MtjlsgCpqZX9NEtkWmx\njASPS13pzfBhwfmM+0lDiIiMao4unN5YL/oStZxqrWiEYx6Kj8lEIvbgzcDkUFHrORARmaUygYi4\nVlNK3n6veo6KUVCY1rdczGJOC+Zu4YQqyRr5/Uw28XVJVsrvomCC/d9qX+NKSnPuZZToBgAECSY/\nAJqSc7PfvnadiIiaDraJvt4SNh07H5PFJEf6OTRzaIxNsmufl6b1f33yCSIieqxj3YrlMdWEIBtZ\npr69nEikrE8mVfBNWScmTbLiF7loyFSrNIfLAjD7TS9kue9BzsZb1S1Dh0uuePndlBiN6dYqIiIa\n/CQXLmn6RrDhvn4Y7Kn/IgujFI6wHmn+hXxUKrvCj2oz1fyd9f2mrEdfd5zDWq2XX1uxPKZXCJSI\n6PTv8/9uWHw9is7IrLzF17kvUSu/M+MODolu/ZrMZ+yemRc+/k5kauACoDN/zp9/5arMNl1+kK9H\n6TUl0UgVy2R+Y5iIiMa/dbc4VvJMOKXVoPkB0JSca34ftXBk54ucN13NXT6fyksyScP/HfDLGV9b\nsRxGXMknP8ELQ83PeqnDEtkXAFNekoahzfKylqVnG1s2fsbd5u/yIpk9Ki2iTAmefB1T0sjaw0/1\nNf+975RUXz8REXX+nixu6S9GZkpo4ucyLiuVZaftItY76cW0lo9zSS5sbvrP3j3jpb5yRrNbXqOf\nuIOIiG7uktbAqjMrl8kvIRf7GFuS7TQi5Z1Iz8brVwroqeYCptZ6eawkbXQwQPMDoCmY/ABoSt6Y\n/Sq+ua/ul/d8lAtyJJo9s1L52Ur+DS/0VQRg9s/BZtNR7Jv39mUd7ryPw18bjoZTXimTye7v+TuT\nk2l9JVf5ccVWa88HuGesnjMbpvcoNdYmv7TW73Ml3KCzHjrq/zqP+T4ARESu99xR0RNOxuVMJr7l\n
 +xtMy3PaOzYSEVGqjBcl1/w/+V2HlQEHmh8ATclLze/jnDgt2omvcBKHgirWqmff/31x7GOb9xER\n0cyPlYWtLBogCJL338XyTErdVTDgeWcNXBd9bhNvWxpT4VgDE3tvIyKiRK38HZ8tZe2++kX2Xgsn\n63tm7HvvEO3zn+Tby6pijVuoOK25ZWEtY81leu8O0b78Kd7Oq6mR2njyEF+3ysfllqOvaYPw9MvE\n8N4OIiJq+JL0eNxdzbUV/vkaW7vGk3KLUqTaC9jTD5ofAE3Ja82v0vkQ/zL7W0n7SKaXOvftNj72\nDemo0fG5o4HLIAo4ElHsNOend+NSO8w0s+VhnT0v+pLv41/y0jf7A5eHiKjsZyf5VclPb3oFS5Pt\n7BSU+JTcYit7yqveE5K/eMHBk6K96TDrFrOaHW+mO5vEscuf4Paabw6IPieEUtQlB7pFe/NrvOno\n1FWJPvse1qpn/1qmB9v0O1y007XDsZmqnub935kfy4Ku/1K7hYiIEndzlaPCR+T2Zeyz/D2mrga7\npgXND4CmYPIDoCm3jNmfrRRWwwE2Ycc/mYhKHKIZz+tvRprbRWO89aVKOr6GL3Hpm+GIkWkryeln\nU9ryXu3PSD9xw68DP5O+7RWIPBlMd8cLoY31yUef+Dr2ZDPWrZEDT50LXp4JZTvSbw/KMN76U/xq\n/rtdom/6A7yIWvTiicDlISJy/FBxNWTc28atPH+JiIgubJePak27+XG2+Ecw+wEAAXDLaP75xNa3\nifZ4K/+GGYcqFxgdDb4TkOUtuBERVVyOvninj1nGfuXFg0rEmq9tIigEmY2pJj6/MbLyqMeVYFh8\n79hF8noUDkdXYn0+vgNQqkreN6UX+RoFvfwIzQ+ApmDyA6Apt5zZb9VyYo3ej8q66pOdvHi1+Xfk\ngpFN0eBkyEXX/2kZk9D8XDj7+9kQOf86ONlGvFea1lF6+80ndZ9cVKu8wJKkr
 t3IlThMRxsREVmz\n0oPeOs+Pb1FeK9NbiL3x65zwpPiy8ljWfTmcc4byqQCAvCevNb9VVyfap/6EI/fKGnhra+Zt+Uu9\n6Vu8lRS2P/9imX1v/nvevmr6xbDsVLYCw8DXGOpWqLmeNf5UA/vPFz1/RL4hwoU+q5Mj1RLreBFr\ncJtMZdXyV+zl5jgh22im/H/dWb5GsQZ5X116gBdnW/fL7T9nLH37NFCRvKjLxAe3iL7JBp6Kw1v4\nvu7831fEsVQinC1saH4ANCWvNb99Qz4PdnzJ86V/L/v0F/TLZ+nUxZ5I5LHqakV79G5OGjlbIn8/\n6w/y878xtrQ49yAwvRRdI7/SJvoqT3LKKKHxo9T2yjbnyO18veKDbP00f+uYOOa8w5oIy5anXmr5\nc19mhyJT2X3d8D2+j+wr0a3N+GsyqiVkej5XHX/OsQipwcG09wUNND8AmoLJD4CmGK4bVpKgdJyr\n7dGdDABNMRvPLek5D5ofAE2JdMHvA1/8rShPtyA//9v/Q0RE+1bvXGRkNHT1y+T++SZTvsnzwS98\nIceSMC8/+qho37/13hxKInn+7ZeWNR6aHwBNweQHQFMw+QHQFEx+ADQFkx8ATcHkB0BTMPkB0JTc\nB/Z4Pn8lP5OZUpdbvCG2bi0REU3c1hCYWHmFydUkzW1c5ml4m8xV6JfpcgqU4V7gSnyQL27ty0p4\n6BVZDCJszNJSIlLCjW0Zvmu1cmBU6sKlFZ8nUSNv4+vv887lsJNb5Ul5LH6T03OoBUOdHZzopOSl\nMtEXRN5Fo4TLbaUGvIy7KwhdtqqrVyxPJqD5AdCUnGv+4gEOf82k7c2dMtmB64WlWiOcaEEN4xXt\nd6vm97SGXcaJOwxFiTQ/wanLnGGZQMTXtFYDFwk99d/WiWPt/yEczT/+bzjPfPUB+fmul6/fMDl5\nhRqiPbybS1CVB6D5a/9Flvyq+v7in5cpx7NfeJWIiAKI
 gM6m8Y0YT7tstSiiAJofAE3JueZPrObn\nQqtaJne04/yMm/EXuIXHxyNK4JFPGK+wf3vlUVng0c6SFMO+xqXCzeSGcAUjovInuQDoUnVZsoK/\n3PIAzj25WSbsKGxkve56+fhnK7Lf4qVvXeWGkuos+cBdC4xeOlZlBcvhVUYyiuPyYJYCoLZiwYUN\nND8AmoLJD4Cm5Nzs97GLrbQ+w5G5P0peOcvjMmToTX1oV1rfuxk1c7BfeNPcsFb0OcW873d9N5ue\nHX8n88FFVc8gE+aOzaJdf4DN26Bz489UF875e7hd7oFO3sVZcO1Jedt3PMfboH49iKDx8/Wppr5R\nxd9L6pKSj39eUh1/+5qIyB0ZC0U2aH4ANCVvNH8m4l3HRdvOsi0Se4Gzwsb2bBd903XxhYa/q/Ct\ngOvvUTSX95M+vJOvmZmSWYfrenmByxkPv0CmsWsrnz/hlTMfUs7p5dM3quTGWxh1Fxq/eWBJ405/\nbaNo1x9i2eIj4dhJS8k2rY4xCth6MMtKA5UDmh8ATcHkB0BT8trsn7lP5o9zvT1/K8kLJ4XXpAlp\nn/IKdL76tnzzA3otAtY8djC9z0szN/Zv94i+qQ/yolt8/6uhy+Qe4+/DN57NuHwU8z06Jz9+t+gr\n/eHhwGVwPnC7aJtJliTWc130pQb4Maj9YXnu0c/I6xUGfsyDUSCnn5Pg65GpDJw761X0IJj9AIAA\nyGvNbxel/zY5hZ7nVrmMdIqf4leroixtPCCq+IdDon3jy1xMNBfLoZniNxI18jsOVq8xs2XKLe61\nkzVrlBHcjitRpdVPcztx79YQJFK2/xT84p3kvaqefv52btBA8wOgKZj8AGhKXpv92TDs9Mpf9qa1\nGUZqjJcEZOITMlCl/ggvlOZL3bTKCzOLDwqRiUaeAkXKQpu1vi1H0hAZ/l6+YvZbTRyq7o4G65sB\nzQ+Aptx6mt9TWUVKCKZffz5ZE87
 CyC2Hp/GtavaeG9kof+PLnz6bE5HmM/FJ3uIr++HRyM89XS3j\nSEpupnvxJdeuilIcIiIy4nzvZkqz5k4mQjknND8AmpLfml95MI0/u7BTSvIjd/JwM4D8S7cantUz\ns1c6NSVq+Wud8RJmrH30nDhmz+buGXv6wd2iXflSNxER2StIbLmkc1ZJLX/dO33dUXmfFD/D95W1\nuV30JUvSI0yDRGh5z8EoE7GWZtF2J6dCkQOaHwBNweQHQFPy2uwvHJ0V7VhbKxERpep5EStZK33U\nXEtDc9/HSwJR2CUXzkq8RBDuTd4ussfCSQaxGL4Pu1nLC2glL8nYC3tyMhIZqk7K7bHKJ95OO+6H\nHU81lkQwjbyaAAADhUlEQVQiDxGRPZSep8/34rNWsedqWKa+CjQ/AJpiuG507h7O1fZ88S0B4F2L\n2XhuSaYwND8AmoLJD4CmRLrg95G1uxcfFAE/6eG93X2rdy4yMhq6+l/PtQhAQ6D5AdAUTH4ANAWT\nHwBNweQHQFMw+QHQFEx+ADQl9779Xhhupnzly8UvaxQUVgUXVJze08Gv1fJy+eGydoF0prJm2YGx\n7qD03XbeOh2oTAAEBTQ/AJqSc83vJyccuatJ9MWHuMDkZKMsr1w0ypV6klX8ezW6Xv5utf7x0oox\nLhc/7qHnV/kybXxSRlrFBjztPiMjD/1IrML9xaIv8YFQRANgxUDzA6ApmPwAaErOzX67j/OYVao5\nyW3O61aQSC/v5BvUFXduDls0UcO+4/ff5L+VBBSpLO87P9Qi2qvpWiiyAbBSoPkB0JSca34fZyJ7\nWid3XtZZ4+Aboh3z0lbZvQPBC0ZzNb44p1fVxR2VKbJu/FonEREVPRuKGAAECjQ/AJqCyQ+ApuSN\n2Z8J++4tom142f/8eutqttrUxZ609wbt7Tefgb3sl+Baq0Xf6BZeqCzulUUfrGrOxqrWWwcgH4Dm\nB0BT8lrzF5
 y4oPzBohZUsr/9+K8rKcE893q/9FIUNHzvOBEROdNyO7Lee7U2rhN9p/+Y4wLaHz4c\nmWwALAVofgA0Ja81v6M6+fhViscmiIio5Eq/OOTu2hShVIyq8edjd18U7aLGsijEAWDZQPMDoCmY\n/ABoSl6b/dkwCqTo7mH2vTfjSvFO24lcJh+rqlL+8VZ5zuQAIBvQ/ABoyq2n+b20X85Uegljo1A6\n9rgZIgKjovt3pXPSxr/gNF52roQBYAGg+QHQFEx+ADQlv81+U2bGnZ/d1ywtle3aVUREZPdHlzjD\nqq0hIqKJ924QfSMb+HK27ZchwPbNochkAmA5QPMDoCl5rflNZcvs+kdZw1peTo/an0q//yg1vjjn\n4E0iIioaahV9LadZy9tnuiOXB4DlAs0PgKZg8gOgKYZfmCIKnKvt0Z0MAE0xG88Zi4+C5gdAWyLV\n/ACA/AGaHwBNweQHQFMw+QHQFEx+ADQFkx8ATcHkB0BTMPkB0BRMfgA0BZMfAE3B5AdAUzD5AdAU\nTH4ANAWTHwBNweQHQFMw+QHQFEx+ADQFkx8ATcHkB0BTMPkB0BRMfgA0BZMfAE3B5AdAUzD5AdCU\n/w99eh37iWlJHwAAAABJRU5ErkJggg==\n",
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAAD8CAYAAABXXhlaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGwdJREFUeJztnWmQHVd1x//9+s2iWTUzkmaTrNEyY1mWsGxLsmWMWYwt\nkJMQCGBMOSGh4gAJFBRZigpVBAJZWSoVioQlwQbsShnKEOLYsRxcIGNsIdmSbGNZ0mCto9FoZrTM\nvr3XnQ+nu2+PXs+MHL++3TP3//vy7tzbT33U3eed0/fec47lui4IIWaRSVoAQoh+qPiEGAgVnxAD\noeITYiBUfEIMhIpPiIFQ8QkxECo+IQZCxSfEQLI6T3Zb5j2p2Ca4s/sAAGB7y6aEJRF8eYD0yUR5\noknzPcs0dVpzHUuLT4iBUPEJMRAqPiEGQsUnxECo+IQYCBWfEAPRupw338m2XRG0c8dPJiiJYujO\nGwEAW//i2aAv59gAgMc6rwIArP3iVDDm7n8pVnnspUuD9uiWNu+k8lHeM6pNjjTj3CzLfyXnQ9fj\neJeMjY5GfqfY0OITYiBUfEIMJNWufra1JWjnTncDAEZ+5wYAQNXR4WBMl9s4vka5sVnP1bcb6oM+\nZ3WryLP3RS3yAMDAavntfvJbW4K+pV9/BgBQ9bEKAMDZm9TxjS/KLXdzuVjkcS5cCNplj/ZNG7Ob\nm9Rxm9bL54GDscgRhbV5AwCgd0t10Lfs2/sAACM71O67yv/eDwBwpyZjkaPrLXJf2v5zPOgbvVVk\n67lRXtPaPv1MLOf2ocUnxEBSbfFz3WcK+iof+iUAwF7dpo7TJE92qNAC5M+dD9qTm1cDAEo1yQMA\nox0TAICm+wvHxhplVm3xYdXnOvGGS1hZ9UjZjcsAKG8td6YnGMsuKgcAOLFKM53Tb64BACz/6r6g\nz5mQ6zdZrWxgTat4JnFN4E7Wyf/aeeFQ0Ff+gnxO3
 XZDLOe8FFp8QgyEik+IgaTa1Z+69bqgXfKT\n56aN5Y4e1ywN4CxSlyvqF7O8Z0SO0yQPAKz8gUiSfWJv0Oe7287qMQBA7SMh997JxyqPM64mrKyR\nkemDGVu1p3S9oCnGlsl1CMvoM7xcRbLWdXXHK0jU25Z/beYMqC0OtPiEGEiqLX75/mNBO295P4UJ\nlvzK7Npf0JddsTxoO50ndIoDACh7dG9B38U7NwMA7KxYXOsZfcuLYfIXB0QOb5LPHQotwQ4M6hEi\n5GVc+RV5nqJ8jYkG5afFtdTps+4fC+VwbtoIACg/a0d8o/jQ4hNiIKm2+OGlMh+rrAwA4HrLMEkz\ntaIhaFunuhKURHH29WK9Gn9cmbAkQr5XNvJYpWqh0xnXdP9Ccxrh5UQff0NY4259nmSu52xB34k7\nFgEA1nzheQDxzxPR4hNiIFR8Qgwk1a5+FGlx8f0ls+yZi0Gf/gUqRWbDuqBd3TIEAKj7kUw26lxe\nnIY3sZbxdulZFRXBUL6vL/Iruum+RSaNO/5UhTXrcvr9SU8AyFV4S42XLoHGBC0+IQYybyx+ptzb\n2x2x+SIJnBskmsr9xYE5jtTDiXeqKEH7Kfl0Rl9OSBpPjpoqAGpZL5PgUmyYbFNj0K7tFNsX9xJe\nFKffvzZot//H8CxHFh9afEIMhIpPiIHMG1c/LS6+T/a8TMLEu/N9buzFtQCA7PUqAcaKj4vbmORk\nIwC4eZlWzHoJOKLW0ZOg8+Org/aaz0mIrs4JUH8vykhr6Ky7X9AoAS0+IUaSbotvhUKVUjAxZK/v\nUH90pcN6nf8NyaRbXnIu6HMvDCQlTuCBAAA8y5aGexfGDT1WSXiSY7dfAwAoHUjO7tLiE2Igqbb4\n9jq13DGwUfbEV/9I3sniSoQ4G+4plQrMsjQFTs9B7f27pRFKvZXkvIO/dJdGBu6WGgStu5Kd/VjU\nLfNDy5yKOY6MD1p8QgyEik+I
 gViuxokXp6c9XbM8hCxAMk2dc76H0uITYiBaJ/e2t16r83QzsvO0\npNDa3rJpjiP1sLNb7fdPm0w7rn5zwpIIj770UwDpe4aA9N2zy4EWnxADoeITYiBUfEIMhIpPiIFQ\n8QkxECo+IQZCxSfEQFIdpPOqwzljDpwJl8vKpaR4hl0jNd+rHi0J+m6qewUA8PCZ1wEAhu5vDcbq\n7nsmVnmsOhWWe+yuFgDA5GK5j5kpdVzTHgklqtrVGas8mUWLgnb+Wgmrzl4cU30vHS78UgIBWPYS\nCUJz2poBAJnBkIxHXin6+WjxCTGQdFv8EKPvklJHgyskV3vrY73B2PnNSwAAix8M5UbPFz841Ulj\nyGmpWPpPtjwedH3sCx8FAAyukb8P/+2/BmM7fngLACA/GE/RSuesype/6tuS5CIq5dbYO7YCAKzy\nsqDPjaGs1vgb1gft5s+I5cy5yt5tWSw1CO59cHvQt+LzT0sjbg8ylO03KKvVLwlVej68LRhbSotP\nCCkG88biX1wjln75VyURRz6UMmnyzUsBAPbSJUFfVGHC18zU1KzDVokUhdSZJGTwTZKspDbzcNBX\nf98eAMDSNSul4w/U8Vb9Yu+L8Vj8TCj1lrNE2plBsarh3PUVXZKMwp3jmr5W+jeqQp3Hn28HAKz7\npEps+f333w4AyN2u8trbdXUAgPxFVSUpDnp3qKSf9d+e/rwuOqcScWa8CkTO6GjRzk2LT4iBUPEJ\nMZB54+rnvTmgqKyok4tlEibf1x+rDJEZWUMTQFaJXE6drn71r8WN3vHYJ4K+Dkdc/d43yeTRY6Nq\nAi13/GSs8uROd6s/vLbdIOW9rDpVJBKj3jWaDLn6tl10eYbXqteL7ID8++H7ONLiPTtnVP47Z2io\n6HJEUX1y5udkqlLZ5GK6+D60+IQYSKotvl9xBABW3XscQHR1GD9PehxLeHORXbUyaOeOHtd+fufA\nQQDAuj+
 vDvosb4JtyV1i3T/y87uDsQ48p1E6T55a2WQ02aQm/uy9UtAzUxFvptn1nyv0cPKh52ps\ntVjduj1qA5Su56j0579S57xkrGww3to+tPiEGAgVnxADSbWr706qyY9c95lpY/1/pHY2NRxMrkCC\nOzSS2LnDhCek3G1Sounf1n4NAPD7f/+JyO/Egb8GHkXpK2oHX27C26UXs6sftZ9j+N1bg/a1a48C\nAAbuvyJWOaJwJwp3KlrXXw0AqDqidonG4fTT4hNiIKm2+NO4JFJvpFUtoy29V7KL6kzaby+V3YL5\nvr45jtRDeCK0865yAMA9ne8DAJQ8/mzkd2KXqdLbcVYl8qBbWXw/qlAr3jN05g2qq3+X7Hxc9eRe\ndZhWoaYztLoKAFD1g1/Geh5afEIMhIpPiIHMH1ffw71JJq5qjimHzM3FG+gRhVVaMvdBGvETOQDA\nv+y4DwDwmc9/EABQh3QkDQnvmLNDCTJ0YW3ZCABo6VCvZ9Y35JUtiT0gYTLl8jpU2V380OTI82k5\nCyEkVaTb4kek3jp1WyUAoO2LqlxQvHucFOEJtPzZ3lmO1IgXK3DqfW1B175Radd9b49+ebLqkXLq\nZTehdVKWYjOVlfrlCT1Dp94q8oweU97Guv95HoC+Z2gmBt4hZbiqH9yt5Xy0+IQYSLotfgRZb7+M\nMzY2+4ExEE4ykRaL7+91v/l9+4K+7x6SDSornRe1yxOe+5iqkffW0movjmBY/2an7HKVaNTaIpti\nWh+oCvqciE00SeBo1kRafEIMhIpPiIGk2tXPVKtQ0/53bwAANLysf+nOJy3ufRhnRNznE+9SOf9X\nV4v7msQCVTgRR8Zr+5EUs+3jj4t84+KgPdInr0XLhpJduouifo88W7oko8UnxEAs99VWq3kNOD3t\nSW6DJsQIMk2dcxYEoMUnxECo+IQYiNbJvTu23qHzdDPyyJ5HAADbWzYlLImws1vtQkyb
 TGmTZ8ct\n70xYEuHRJ38UtN+26oYEJVE8duzyQ3lp8QkxECo+IQZCxSfEQKj4hBgIFZ8QA6HiE2Igqd6r75y/\noNp+4cCMFD7MbOxQB3rJKDL9Khe5KdgdawAAL38qtA/eyypR+4LUhm/53svBUP6CuqZxMPYOlbO+\n63a5L9kBsS+LetWGstYHOkWemLMUWxMqtiPfJNcoMxIKxfWeHaeiNOjKXBiOVaaMl2F44nUql/9U\ntTzXuXK5VhU9qqZE9pmXii9D0f9FQkjqSbfFjyoP7Ej8kvP8ywVDmRUqQi0qbddCZGKFRJ/Z59Wt\nXPugROyd3C5W7JU/WxeMtX36mVjl6blBlbpu/5Pp5wpH58XteQTn6VUehXtKko7OGQG3dlV8AgFw\nvapH2SdUAdNLFTGzaX3Q9lO+FTNpCC0+IQZCxSfEQFLt6keRbW4CAOTO9BSMuePKFbLKSgvGFyJ9\n14gbWBGqKerulVx7DStkD/nZrer33SqR6+JOqcmjYuK2zZwL8dDn1YRs+0fjLRHlY5Wq58AvUpld\ntTLoyx07UfidYXnFdKviKejpu+zhMmJ+gdig9kCnkiuO0HlafEIMZN5ZfNj2jENpq26jg5oTMlVV\nOlBYKvxCu1yrylOqLy5L79P6wMz3oGSp/szI4fLhPq6t7J2fpXjaRHJFzFV+PAueHxxUcniVdPzl\nRWRCNnmq+OnmaPEJMRAqPiEGkmpXP1wMwfUmPdzZCmlYc6YaW3BUPlQ4Sebv5htdIa8BHfeqnWhx\n724oe/TZgr7h994ojblTwRWdbFOj+sN/TRxTk8D5iL0ibkaPnOGSbFatN9HnZXK2Qq8jziQn9wgh\nRSDVFj+M5U1+5LpOJyxJ+rlwvZR+tke9GIZONbsXe972iKWnM3fIhGL7B/YVjMVN5JLcxcHCPo3e\nYtjSz4gTr29Gi0+Igcwbi4/szMt42dYWjYKkE39ZCgD6rxXr1fK
 k2PfwspFO7KvaAQBWJh1xE1ZO\nrkeu/1zBWHhTjy5pw/fs0ipN/oae2M4d679OCEklVHxCDGTeuPq54ydnHjRwGe9SJrddFbSdEnFW\nqw7IRGjhnj49HLtTJhk7/lhiB5yE5PBxBwp38QVjmpbwpmEX2l1//34xQ3CjoMUnxEDSbfFnseR+\nlB4Rut+glojqXxSLn8TSZ3jCqnSTJNuI2i+vCyu0LOZGWFh/Uk/n9KOVFbVzx8YLxuKe1POhxSfE\nQKj4hBhIql39WV3VWcJzTcK++koAwORaFcNQtzO5abSB33xd0J7clwK7MqquSz5i/T7K/Y8bPzlI\nOO+gv+fBOTrLJHYRScGdIYToJtUWP7wjj3v0o8m/dBgAsPbuhAXxWPyzo0G7+sHeWY7UgzNSGH0X\nJL1IiKgMw+7Jbq0y0OITYiBUfEIMxIojg+dMOD3t6YjWIGQBk2maO+MJLT4hBqJ1cm97yyadp5uR\nnd0HAAA71t2SsCTCo4eeDNppu0aUJxpfHiCdMs0FLT4hBkLFJ8RAqPiEGAgVnxADoeITYiBUfEIM\nJNV79e31qqwyvibVYN64pBMA8OKQqrLT9TcS2VT2yN5Y5bncbLV+pBUA4PTZmKTxznXl2oI+a1KK\nLEaVgNaJX8XG9SLkksj2m6muDtqWXwwzlAAjCZmyK1cAACZWLw367BG5Z/YRic7LXxyIVQZafEIM\nhIpPiIGk2tW3BkeC9uFur/jhh8Rd67l1WTD24S/9GADww8eXB31x14HPrm6T84Sys+Z/fUw+q1XY\np13q1YufLH6NcwA4/Xa5DlWnVXGsqQr5PR++W16HVnz+6VjOHUV2hboHvbeJS2t5ok3WqGvV+Esv\nD9+eF2OVZ/z164L2ibdL8ha3SuUdLquWbLbN/65yFpbuLCz8WUxGrpZ8kSe3q2QyliPJOWrXyFjF\nd5TcUYVRXyu0+IQYSKot/ugGlYhja9uvAQ
 DnjkgSg+Yp9at98A/lOLtRTZbEnbhjeL1Y2spfdBaM\n5StLgrYdpAiLx+JPVcpn1Q8KrcLgX2+L5ZyzMd6uylLXnBCvK/vEcwCAzKb1wdjoiioAwKKsegTd\nXPErAAw3q39/yX75rL9f7Wm/cNcWAMDFtcobadolHpszXpgFtxgMrJLno/aw6lv2dbl/F353q3x2\nKHmqy4svDy0+IQZCxSfEQFLt6pc+ptbl9227CQCwEjJRde6m5mBs/ILk98h26clQCgDZMZmxinJP\nJ2vUZS2NuRRSrnLm3Cb2mP6yUJO16v9ednH6681Yc2XQLr0grwFxuPdhRpvUNajqcgvOmfPqf5QN\nqMzEcZevGl8in5WnQ/fOkedprFHkXdSnxuJ45aDFJ8RAUm3xw6z6u30AAPfaqwEA/ZvUL/nFp2XZ\naiXitfiZSmWxyl7wdlhFlYcKG1on3mxj7V+VJcSw3YzazaeLqsd/FbSdS0pE5SqUnak80CN9McvT\ndu8rQdv1LKcb2s033iA3q/pkSJKY09Gt+ueX5TQhzyLjLYOOLRPPo3FvvMvRtPiEGMi8sfj+e06u\nXpY2qjtUbvKGf6qI/E6xscLVeyLeAy3PG6n6VZ8WeQAgd6anoK/rDllqbHl6rGAsbpyRkYI+P+Zi\nslrZGXc83vdon1xPYazE2G9vDdqTi8W6V5xUe/bzBd8oLlF59Qfv2Djt77Kj6hmKwyuixSfEQKj4\nhBjIvHH1s8tlAq9ng+ypHjqpRF/20+LvZZ6LqHDO4TWyG63mJ126xZlWFspfosrs2q9djiiGrqwD\nADQ8q1zcKHdXFxfXqGen4XmZTMsfPKJdjvA9698kNnjpPnn1yJ2M9xmixSfEQOaNxXeW1AIAhq6T\nSb5lj5cmKU5AOBqt+pCXPCHmJbwozr/n2qBdezS5Mtlh7IZ6AMBkldiXzLmLwVgiEm6VCbTxBnV/\nWnZJghedFaV8prap2
 IV8mZy/br+U8s7HLA8tPiEGQsUnxEBS7epbJcqd77teXH0rI65+7QO7tcsT\ntYd7cLPK/Vf9M/0TRLBk59lIi9ou2PoPz+iXI4KxzasBADXHvT0YEXsOdHJ+gzf5eizUeeCQfkEy\nsh+k7xo1uVfzirj2+cNH9Yig5SyEkFSRaotvL1cReOffKNbW6iub6fDYcSMsvj0RmqbKx73nqxDn\n9dfIqZO7LNPJqN2No42ScKL++7J/P4kJPX8ZGAAG18hn28Nqd2Hc0YFR2FeKJzS4XkUvXvVlWd7M\nO3qeIVp8Qgwk1RY/nBe+/fekbXfIz7Z+2zodX47Kg2ovuP4FIQTv+M27443mulyyzSr1Vvl5uUtW\nqTdXE1Mqq9nIN9WpPzyXIzM2dWmXVqxhiaGoeVmlirNG9V4bWnxCDISKT4iBWDp3LDk97Yl4w4SY\nRKapc86ca7T4hBiI1sm97S2bdJ5uRnZ2S171tMkDpE+mtMnzpnvuSVgS4Wff+lbQTts1uhxo8Qkx\nECo+IQZCxSfEQKj4hBgIFZ8QA6HiE2IgVHxCDCTVQTrk8un96E1B2/V+zqtOS5BM7e5TwVjudLc2\nmbJNErAztaoJAGDlVUiMfUKCm/Jne2OVYahVPeLnr5PrYdeogKblSyQPYO+ulqBv2YHpxT4XIrT4\nhBgILf4CYVLVgUTbd49L3yoppXXwsyoZRcc9+ix+7w5JOFHZI8kuyvpV6OmJD0phzxVfUpl33ani\nhxYv3avqHyz55kszHtd68+KgPbFEwogzUws3tIQWnxADocVfIIyuVCmk/Pf4jPdp3XNdMGaVSY6u\nqDRixcZPAFp/n5Q4RyitlPUWmZOwG1UyilzX6aLLYPeqij3+FZrcvjnoW7THK6P9lNrnnr1dxp2S\nOYPc5i20+IQYCBWfEAOhqz/P8WsP1O+3Cwf9jLdDJUGXDhffJzvmNSIyx+a9NHxxuPdhopYvndKQ\n
 vbMLbZ9jL1wX34cWnxADocWf5/hLYEu+UVg9Z/DOLQCApqe0ihTQ+s0XAahMtnZNTTBma3I87Kuv\nDNq5WqlcM7BKPfblD58r/JIB5tCA/yIh5FKo+IQYCF39Bcy5jTJJ1f41VZhEZ8EoZ2ho2t9d92wI\n2o3P6vH1R9tqCvqWPTtS0Ge3r9YhTmqgxSfEQGjxFyDuNimkWTogFl9nRN5sTIaMb/aJ57Sf34/U\nW/LI3oKx0bUNusVJFFp8QgyEik+IgdDVX4CcubkSAHDFw/0Akq8sPPzeGwEAdYeSqE2rqOouvBLZ\n5RKyPGGYCTTsv0sIAWjxFwx2naoDP9osljV/8EhS4kzj3AaZZFz52T3azz1VoWxb7YE+ANM9oNGr\nmzVLlA5o8QkxEFr8BUL/b60L2s2/SPZd2ie7ug0AYOW9aLeIKL3YsVSkXb7zKADAvnJt0OdmF34k\nXhS0+IQYCBWfEAOhq79AqPuOCsu1F9cCSH4ZD468crQ9dF7+TECE6h/vD9p+zlxreDR0RB1MhBaf\nEAOxXFdf7nCnp33hJionJCVkmjrnnLGkxSfEQKj4hBiI1sm9t12xee6DNPDYyWcBANtbNiUsibCz\n+8DcBxFSRGjxCTEQKj4hBkLFJ8RAqPiEGAgVnxADoeITYiCp3qvv5l5dFngrq++/c+ED2wAAQyvV\nJqnMlHwu/+mwOnD3C9pkIuRyocUnxEBSbfGzzU1B250Sc3r8Q1IEsfqU2va/+LsSmRb2EOK2/n23\niDzN/6vOk5kSmZZ+5WTQd+6tFQAAZzQcEUZIstDiE2IgVHxCDCTVrn6u56z6wwsfXvnlfQCATIt6\nDfAdfKukNHR8vGkfOtp65JwP9apTerXqz3zkiqCvbHmJNI68Eqs8hLwaaPEJMZBUW/yJHSqar7xb\nJsec5w/J59HjSYgUcORwCwCgY6qrYCzvqN9TP7MrIWmCFp8QA6HiE2IgqXb1K
 /edCtrupEyc5SOK\nMmTbZDIt36WvDvxVf3VMzhnqy916PQDgxAn1e9rhHtcmEyGXCy0+IQaSaouf7+sv7MzYAAC7qlL1\nacwU7JPv6yvo6/+YTEAue2ixbnEIeVXQ4hNiIKm2+GEujdSz6mqDdr777KWHa8NuqA/aE5NyOZvu\n352UOIRcFrT4hBgIFZ8QA5k3rr5VVgYAcKc8lz8T+s2KeV/+bBz5y46gXb7PkymByUZCXg20+IQY\nSKot/rQJPa/tT6Y5Z5Kb0AOUB1LTfiHoW/Yp2dRDe0/SDi0+IQZCxSfEQFLt6vu79AAA3h59Z2Aw\nIWGmM/CuawEAYxMjQZ+fiIOQtEOLT4iBpNriZzaqpbJTb68DAFzxX7J/3zmSbIKL+qckAceivsZE\n5SDk/wMtPiEGQsUnxEAsV+MuM6ennUvchMRMpqnTmvMYHYIQQtKFVotPCEkHtPiEGAgVnxADoeIT\nYiBUfEIMhIpPiIFQ8QkxECo+IQZCxSfEQKj4hBgIFZ8QA6HiE2IgVHxCDISKT4iBUPEJMRAqPiEG\nQsUnxECo+IQYCBWfEAOh4hNiIFR8QgyEik+IgVDxCTEQKj4hBvJ//HxftMJ4RmkAAAAASUVORK5C\nYII=\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7f0747eafc90>"
+       "<matplotlib.figure.Figure at 0x7fddc4be1e48>"
       ]
      },
      "metadata": {},
@@ -784,15 +784,13 @@
   {
    "cell_type": "code",
    "execution_count": 17,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAD8CAYAAAC4nHJkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADrhJREFUeJzt3WlsHsUdx/F9DseOYydxnMN2Qsj1OIFwJA0JSYqIKkET\naKsWWrWiqOIqVUpVRBFVD6RW6iFatUK8KUUF2qJCqFAPoSKIK1SUCkJIyAV1aOwcDrEdxzmcA9ux\n/Ty7fVnN/jc8m83uPM+T//fzbkbjnSH2j9GMdmdSnuc5APRJl3oAAEqD8ANKEX5AKcIPKEX4AaUI\nP6AU4QeUIvyAUoQfUCprs7O19XeL1wlTVfaG8OqeTeZ4WpZY6ztIW+8uUXfLvJVG2R0dszUcp617\nu6grt3+jchuP45R2TEHjSTd1psL8LDM/oBThB5Qi/IBShB9QyuqGnzs4GMtzhr+wQtSNf3mbWVGh\nnyr7P7FO11SLNnt/u8gor1nYKdrkavuN8lufyYk2+cPdUYaIIjJXyH/rk8sajfLEA8OiTWrz7sTG\nFISZH1CK8ANKEX5AKatr/qj2/2qVUa4/KN9hGF+ha/xi3KEhUZe7a4dR7g34uV5nvFHe9/gs0WbB\nw/Gs+VNZ+WeUrq83yoWBAdHGXbPU/JlNOyP13/3XxUa5fdULos01W+8wyvUbJok2dS9tidS/X+qM\n3Nua9Lzcl/FL19Ya5aDffZyY+QGlCD+gFOEHlCL8gFIVseE3/7tvF23T8fRyo9x6/7bztIxfpqFB\n1AVtcNnU8ZT5IlTr+ng2s4J4+byoC/PfX9V31vyZiP3P+mK7UV7ryK/smp0PIj79wuV75BZsaqm5\nKbn3wRrRpvUe+VVlkpj5AaUIP6AU4QeUqog1f99Dq43y5bcdEG1a19hb4/ulJtTKygTX/KmqcUbZ\nGxsVbVrXb02s/zBO3mu+mDXl93LfptB50NZwhCMPr
 xZ1zY9vTqw/b6e5L9F6T2JdhcbMDyhF+AGl\nCD+gFOEHlKqIDb+mJ8yNmJEnZJtM4xSjXDhxMskhGfLdPaIuM2O6qCsc7Rd1UQRt8JWboA0+v66f\nmi8izXm0+M/EJcnNvVDSGVF18m7z3yPMv+FFDSHRpwMoW4QfUIrwA0pVxJo/jP7bFxrlxqftrR+D\nxLW+v1Rk58wWdUmt8YNOFup7wFxPt7x+XLQp7OlIZDyO4ziZyebJQYe+uVi0mfWY3X0IZn5AKcIP\nKEX4AaUIP6BUyn89VJLcvtyleb42UEbSTZ3ybPugdkkPBEB5IvyAUoQfUMrqSz5rW+SpqkEfOCSl\nrds8HTVwPBa19e4SdaUcU7mNx3HkmMptPI5Tfr+zsJj5AaUIP6AU4QeUIvyAUqX/qs+NeklTEalQ\n7zlUpEzrfKM81jxRtIl6131SMtOmibrCsWOxPDu95EqjfOTGyaLN1PfPGeWqk8Oijbs7uSu9spfN\nMspefcBx7wXXLO7dl9h4HIeZH1CL8ANKEX5AqZKv+Yduu94oNzx0SLS5fcYOo/ziopbExjP4JXM8\nE/7yTmJ9RVXo2G+U08kdQBOboPX9mvfMdfema8ZHera7a49RnhHivRe3eJNY5Q93W+6xOGZ+QCnC\nDyhF+AGlCD+gVMk3/Ope222UR/5+TrR50Sm+wZdtbjLK+b6jkcbj3+BLT5gg2riDg5GenZTj31gl\n6qb+rrRHl4fx7O7VRnmBk9yLSanqaqPsjYyINkO3Xy/qav9mb8P3xNfN32PjM1zXBSABhB9QivAD\nSpV8ze/61l7e6mtFm4Efmi+DDG6ZKtpc9jPfVUcxfdgTtL5P19QY5dn/ln11rZAfjiQlaH2fWmZe\nB+Vtb7c1nNBq34v2Uk8UYo0f8Pdhc30fJOk1vh8zP6AU4QeUIvyAUoQfUKrkG35+qbffE3VTPmve\n8jXFCfiMzeLJPe4580WkrhXn
 aVhCp66oN8qTtp+nYQkNXi1f6LIlMz3gZKGj/SUYSekw8wNKEX5A\nKcIPKEX4AaXKbsPP8byiTfxHVzuO4wwubDTKNa9si21I5S47U371OOn5LSUYycdYeY2oWvSdLqOc\n0CHugYI290bXLRd14zZeun9HzPyAUoQfUIrwA0qlvBBr7Li4fTl7nQFKpZs6Q73xxswPKEX4AaUI\nP6AU4QeUsvqSz9qWJTa7E9p6zUvcym08jlPaMZXbeByH31kxQeMJi5kfUIrwA0oRfkCp8vuwB4Z0\nba2oc4eGSjCS//NffTV8szxuva7dd13a6Jhok+/pjXVc5SyzeKFRLrTvFW1SWTOOXj6f6JiY+QGl\nCD+gFOEHlCL8gFIVueH30cZ5oq5u3YESjOT8hj8vz/Me//LWC39QJhNL/5H6Pg//vXc1r8hnJ7tV\n9fG8T8qXblJvmS/DdPxhmWjTeu+OgIdd+Ieo2XlzRF0+YINPdJXwBp8fMz+gFOEHlCL8gFIVseZ3\nbzDXcHXron/MYEv3bfIs2tzLF/4c9+xZUZeury/aJs41fqXxr+8dx3E++vJKo9x6T3KnG+cPdIm6\n7KyZRrnQPEW08ba9n9SQAjHzA0oRfkApwg8oRfgBpSpiwy/9prmB8+GPVos2s3+y2dZwBG+1/Kot\nd/f2xPrzb/BlcvKlp6GceX1Z9at2r51y1yw1yulNO63271f3UvENvlNfWyXqJv/p7Vj69wbNLzG9\nbT2xPPdiMPMDShF+QCnCDyhVEWt+v1Ku74OkNu8WdZkFc0VdYd/BRPovdMqPmkaXTTfK1aJFskq9\nxo8irvV9kMLAQNE2vY+Ye1ktv07275yZH1CK8ANKEX5AKcIPKFURG35jn77OKFf9890SjSS8Dx6Z\nJupa1yez4Ze+apGoq/9zcl+tVaLuH5ibabMes7xpnDZPZMrUTRBNkt7g82PmB5Qi/IBShB9QKuVF\nOJ00Krc
 vZ68zQKl0U2cqVLukBwKgPBF+QCnCDyhF+AGlrL7ks7ZFXqNkU1uveSJQuY3HcUo7pqDx\nrJt9naizea2U+J3NXCobWdy0Dvo3unXRjUbZHT5nazjOxkPRj2hn5geUIvyAUoQfUIrwA0qV/Ku+\ndE2NUT7xFbmhkx0xN3Rqj46KNplNvqO0XHlXXhQjtywXdbVdp8yKMbkBltSRXY7jOKnlVxvl0QZ5\nSFdcXz4mubmXmTzJKBdOnS7+QwGbe6nrrjKbvPufixrXhfIK5t9aespk2eajQaPsDg6KNrYx8wNK\nEX5AKcIPKFXyNb97znwhouE5eXyyf41r8x7z6tfkNVfx7CZE5//vr7Lcf8/3zVNxZv4i2gk0odb4\nIWR6jhtle68gBSsc7S/aJrN4ofy59r1JDOe8mPkBpQg/oBThB5Qi/IBSJd/wCyPMBt/pO1ca5Ukv\nJHd0dXbu5Ub51PJm0SbMffBxybTOF3XDcxuMcnX/sGjj7WyP1F/UDb6k5I/0GeXsrJmyTXePreGI\nF9ccR25s297cC8LMDyhF+AGlCD+gVEWs+bPz5hjl3nUtos30J+2tQwvdR4xy3cFD1voOUujYL+rG\ndZjl/b9cJdrM25nUiErL5vo+iH997zjyyrl//fEZ0WbVI+uN8sQNye4bMfMDShF+QCnCDyhF+AGl\nKmLDL3+gyyhPf7IrsJ0t3pg8Sajczfue/FpSs8y0aaKucOxYYv35T1YKOqJ9omPvxTDHYeYH1CL8\ngFKEH1CqItb8YWSubDXKhT0d52kJG/ofME/7sfkSVhhJru8rBTM/oBThB5Qi/IBShB9QKuVZvNvc\n7cvZ6wxQKt3UmQrVLumBAChPhB9QivADSll9ySfoYwab2np3GeVyG4/jlHZM5TYex6mM39mti240\nyoUzZ2wNJ3A8YTHzA0oRfkApwg8oRfgBpS6Zr/pgT+FTnzDKPWvk9VTnmseM8oINedEm
 val0Z4en\nli0Wdd72aNeXuSMjFzscx3EcJ9s0wyh7Q/KKtTg3E5n5AaUIP6AU4QeUumTW/IcfNU+Ouezn0U6O\nGbtpmVGe8mN5FdeejeapQUF9ZefMFnX5rg8jjancZN7YYZRnvxHtOf3f8p3285t4Tvs597kVom7C\nvgGjXAhY36eqxok6myc15/uOGuUDQVesxXgKMzM/oBThB5Qi/IBShB9Q6pLZ8Jvz5AdGuRDxOVWv\nbzfKZ1+XbS5zjhd9zqWyuRfVvidWGuXUdHln/fyvJnOcd80/too6/9/DsfVyM23aU+V1pVnumaOi\nLurfdRBmfkApwg8oRfgBpSpyzW/zBZqgvgavMD/AqH5tm2iTWn61qPO2vR/LmPzXSw/cPF+0mbjB\n7nXPfgseKt5/trnJKOeP9CU1HMdbfa1RDlrfZxYvFHWF9r2JjamY/35bXiOee/BAbM9n5geUIvyA\nUoQfUIrwA0pV5IZf0ObeifvMlzYan43nhY2gvqpDbC66VfL/q6HuUArBf7f8xA2Vedd8kht8fqnN\nu4u28aoyFkYSXu7BdxJ9PjM/oBThB5Qi/IBShB9QqiI3/ILEtcEXxpk7zC/W+m6Sx1K33veureGU\npXR9vVF2z54t0UiCDdwlv+preK68vupLGjM/oBThB5Qi/IBSKc/zrHXm9uXsdQYolW7qDPU+GTM/\noBThB5Qi/IBShB9QyupLPmtbltjsTmjr3WWUy208gE3M/IBShB9QivADSlXkhz3ZuZeLuvzBQyUY\nCVC5mPkBpQg/oBThB5Qi/IBSZbfhl66tFXXu0JBRTnJzz3+nW5gjn4OMrlsu6sZtlHf6AaXCzA8o\nRfgBpQg/oFTZrfn96/sgJ+6XJ682Ph3Pyav+Nb7/DnnHCXfNVO3uw/Lnog8LiB0zP6AU4QeUIvyA\nUoQfUKrsNvzCCNrcO32neYXWpBe2xNKXNzxctI17gzwRKP8mp/S
 gvDHzA0oRfkApwg8oVZFr/iBu\nNtQNRRescOp0Is8FSo2ZH1CK8ANKEX5AKcIPKFWRG36ZqY2iruG5eL7qiyId8EJP0BgLx0/YGA4Q\nCjM/oBThB5Qi/IBSKc/zrHXm9uXsdQYolW7qDPXGGzM/oBThB5Qi/IBShB9QyuqGH4DywcwPKEX4\nAaUIP6AU4QeUIvyAUoQfUIrwA0oRfkApwg8oRfgBpQg/oBThB5Qi/IBShB9QivADShF+QCnCDyhF\n+AGlCD+gFOEHlCL8gFKEH1CK8ANK/Q/zQX1soXEu2gAAAABJRU5ErkJggg==\n",
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAAD8CAYAAABXXhlaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADeFJREFUeJzt3W1sHMUdx/Hdu3NsEuzEECcXOyQOid0kQHDqJCQUqVVF\nSUqlFgm16oPKQxEtUFQKUktLS1ErIVJRlZKqQFupwBue1Qf1IUlLoa0gzyEJMSTkTEMebOw44JAn\nbHy325fV7H/RXU67s3v+fz/vZjS3M7nzL6MZ7c66vu87AHTJJD0AAPYRfEAhgg8oRPABhQg+oBDB\nBxQi+IBCBB9QiOADCuVsdvap7BfEbYLuhAnW+l+3f7NRXtnaZa3vMOv7d4q6JMeUtvE4jhxT2sbj\nOOn7zTL5glvuc8z4gEIEH1CI4AMKEXxAIaube07II8D+6OgZXybTtVDUuX1DRrk0NCTajFd9d14q\n6kYvPm2U517TI9r4xWJsY4Ip19ZqlPuubhdtpq/ZYGk0zPiASgQfUIjgAwrZXeNHxNv5eqL9v3/V\nMqN8do/cTyj17rc1HKftp+XXhoN/mi/qpn1ubxzDqdj+1SuM8pzvbYzkutnmZlF36MYFRnlKb0m0\nmfj7zaIuKr03zTbK7XfbW8+HYcYHFCL4gEIEH1CI4AMKpW5zL9PYKOq8EyfKf3D5IrO86dWIRiSd\naDO/tsEledGm/Yf2NvcqYXsjb/hac+Ou+XG5cTc2/YNY+u67boGoO3f3mFGuX7s1lr4/zLxHDhjl\npG+dYsYHFCL4gEIEH1AodWv8itbzIYqT6oxynP+wab8yb74oPNYdY2+1KbimP/n5S0SbzuvjuWEm\n/0CyN8eEKfb1G+V9jywTbTpv2mJrOMz4gEYEH1CI4AMKEXxAodRt7lUr98/tifXd+udx8zXG5q77\nHhd1a56VTwxq0bQn2b8ZZnxAIYIPKETwAYVqcnHqr
 7hY1Lkbd1nrv7DGvBml41vxndwyXtz7g+tE\nXaOzKZa+cu2zRN3JC80HqRr+Yu9mGceRJ0PnH+QEHgCWEXxAIYIPKETwAYVcP+S1VnHxBjrsdQYo\nlckX3LJtbAwEQLoQfEAhgg8oZPUGnpWtXTa7E9b37zTKaRuP4yQ7prSNx3FCfrOZ8rQjN1N2SRuZ\ndQe3ibqVbYvNCov7ZmG/WSWY8QGFCD6gEMEHFCL4gELJP52XyZplT763PJLrVsmtmyDq/LHyr36q\n9nPjVXZBh6wcetcolo6+U/Y6YRt5ftF8IZWbk3/W++9ZapTzm+XfWdVP7FWxmXf06ytE3ekZ5r9t\n9mp5qpQ/OnrGfYVhxgcUIviAQgQfUCj5NX7KHblB3jDS8oh85XOQu3CuqPN37YlkTNl5c4xyqTdd\nr+QOU9pTEHVLd5rr7K1d0ezLZNrPE3Xtd5u/WXbquaJNRLtLFZn6m/J/Q3HeBsSMDyhE8AGFCD6g\nEMEHFErd5p7bfYGoG8lPNMr1f90q2mQWma9j8nrkZlI18i8OibrgJtDRb8ibMab+uvzmTdWOHS/b\nJJefbpSLA4NxjaZqf3hzkVGe6bwWyXUr2ex0Gxpk3ZILRZ2/rSeSMaUNMz6gEMEHFCL4gELpW+Pv\nOyjq6refKPu599sazc9EtDQrvdEr6oZuNtf0LQ/HuJ4PEXyYZexyeZOR83xyrw0PE/bas/Zvm/+O\nomgRndErzYd0nL/JfaLRRa2irj6uAVXCDTlZKKLTfZjxAYUIPqAQwQcUIviAQqnb3PNOlN/Iy82W\nT1+5/9hhlON8ssn2Zl45mWL630xWuLFO1HV+7bC1/s96YbdR9kLa1Ids+CUqxmO6mfEBhQg+oBDB\nBxQi+IBCqdvcq8TYTHlsknuoP5a+sgs7RZ1/oM8oe6dOxdJ3pbL/eiXR/isx7UW5uWeTNzJilEc/\nvVS0qV+bss29GDHjAwoRfEAh
 gg8o5PoW3+XtDXSk/04ToMZl8oWQx/oCbWwMBEC6EHxAIYIPKETw\nAYWs3sCzsrXLZnfC+v6dRjlt43GcZMcUNp5Vs5YkMJL/W3dwm1FO428mvqNsNO8ArMS6/Zur+hwz\nPqAQwQcUIviAQjX5kI522aYmo1w6Xv6VWtXyixUcep2Ra9pD37/EKE8clPdutTxtnoFeyelLaSS+\no5DvzK03D+o+fLs8Ev2sI+Z3dM7v4jvpiRkfUIjgAwoRfEAhgg8oVJObexdul/9f9XSHHZicnMKD\ny0Vdx22bIrn28GcWGuWmJ0OuG9xw80qR9B0q5Nrn3buh/MfiGEuF5m5tEHX7b2gXdd6reyPpz51/\nvlFuW13++4kTMz6gEMEHFCL4gEI1scbf99vAiajd6T8N9dnPrhF1d922LJJrT9l9zCiHrZUHv2ne\nQDP9l8muKdPmzaUjoi7bPBhbf96uPbFduxrM+IBCBB9QiOADChF8QKGa2NzrvDH9m3lBX3r6NlE3\nx4nmaSuvx7ypZOD2S0Wb/ANs5p2p0vCwtb68jy8WdZl/77DWPzM+oBDBBxQi+IBCNbHGT7t9D8sb\nczpvju/0lKBTbel6QAnl2VzPh/afaO8AEkHwAYUIPqAQwQcUqonNvRNfNE+zaXwqmpNsovKJxfLJ\nq/4Y+8tOmWyUOx47Jtqw3WcKHknu+/K47ziP987lpxvl4kB8TwJWghkfUIjgAwoRfEAhN2ytExdv\noMNeZ4BSmXzBLdvGxkAApAvBBxQi+IBCBB9QyOoNPCtbu2x2J6zv32mU0zYex0l2TGkbj+PUxm+2\nao55lLmbsxertYWXq/ocMz6gEMEHFCL4gEIEH1CoJp/OO90i/79qfabXKJcGj8Q2nuFrVxjlKb3v\nizbuy3ITKC5xHq+dbW4Wdd7JU0bZH/ugqmvnZuSNcunou1VdR8hkZZ1XiubaIfwPzH+/PzoaW19R\nYcYHFCL
 4gEIEH1CoJtb4wRN3GkPaxLeCkyZ+5W2j7F7xlsXepTS+Liu47xA2xuLbA0bZrZsQSd+H\n77xE1M28L33fUZKY8QGFCD6gEMEHFCL4gEI1sbkXlF3YKepKr++z1n99YDPvoQMviTa3zL7M0mgc\nx7/0YlHnbthllINHcjuO45SOvRdJ/8VPdou6JDccp/Ta3OqtjNt9gVF+r1NuUTc9ae/YeGZ8QCGC\nDyhE8AGFanKNH7aeD74iqXT8uK3hONfuuUbUTXL+a63/4HrecRwn02iuIaNaz4fJvbA9tmtX4+xn\nN4u6gz8ybyia9RO7exCZt8ybvpq2v2a1/yBmfEAhgg8oRPABhQg+oFBNbu6FsbmZF7xhZdKqdG1u\nOY7dI57DTrzJzQi8D76vX7SxOcYZm6o7JSgqpXciOl0oIsz4gEIEH1CI4AMKjZs1vk1XPPgfo/zC\nRZMSGsmHKw0P2+ss7ARbzyv/OTeeeSds76Du79ti6atabn29qLN5Oi8zPqAQwQcUIviAQgQfUMj1\nfd9aZ95Ah73OAKUy+YJbto2NgQBIF4IPKETwAYWs3sCzsrXLZnfC+n7z1dVpG4/jJDumsPGsmrVE\n1IXdfBKXtYWXjTK/mSlsPJVgxgcUIviAQgQfUIjgAwrxdJ4S1T4N5heLIRcz5wu3Tv4ZDT/XapZ3\ntIg2c3+21yh7J0+VHU9Ush+ZJ+pKb/TG16Fr3lNz6uplokndSfOJxgnrtsY2HGZ8QCGCDyhE8AGF\nxs0av/fny43yvDvie+XwkVvN1zG1vCLXprk9B0Wd1VNxAuI83cU7fVrUTb7SXC9PduT6+dB3zO+x\n7RfxnZJz4MdmX7Pvka/QyrbIfYjS0FA0Awg8DDfpOfmar+Lzs4xy5vB80cbr2SvqqsGMDyhE8AGF\nCD6gEMEHFBo3m3sTzovn5o9jX10h6mY89YZRduvqRJtix0x5sS3RbO65Sy8yyv7W3aKN
 d5n5xFjm\npeqe4opT6/2BDba6CbH1FdzMy+WnizbFgcHY+q9E7nJzQ9jvviC2vpjxAYUIPqAQwQcUGjdr/Dk3\nHDDKIS91qkrzM6+IulLgZphsx/miTe7oCVEX8rhLVdzdBaMcdnSxzTV9dspkUVc69p61/qux97tz\nRN28O5Jd4wf5O6K5WScMMz6gEMEHFCL4gEIEH1CoJjf39j0kTy/pvGVLLH2FPdUWvIHGOSg3hYqD\nR2IZj+M4jjcyYpSzU88VbUpH34mt/yB/pLon/8LeY2/L/PvfEnVRbb5Gxotqi1pixgcUIviAQgQf\nUIjgAwrV5ObetI3ZRPvP3X/UKI/e3SbaZGLc3AvyZudlpcXNveBmY8Vce/NObqb5GxUP91nru1KZ\nhgajXPX3WklfsV0ZQGoRfEAhgg8o5Pp+2LNd8fAGOux1BiiVyRfcsm1sDARAuhB8QCGCDyhE8AGF\nrN7As7K1q3yjGK3vN4+jStt4AFuY8QGFCD6gEMEHFKrJh3TcxfLVQv6O1xIYCVCbmPEBhQg+oBDB\nBxQi+IBCNbG5N/DHBUY5f1X6N/LevX6FqDvn

<TRUNCATED>


Mime
View raw message