{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Residual network" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/anaconda3/envs/py35gpu/lib/python3.5/site-packages/h5py/__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", " from ._conv import register_converters as _register_converters\n", "Using TensorFlow backend.\n" ] } ], "source": [ "import time\n", "import keras\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "plt.rcParams['figure.figsize'] = (7,7) # Make the figures a bit bigger\n", "\n", "from keras.datasets import mnist\n", "from keras.models import Sequential\n", "from keras.layers.core import Dense, Dropout, Activation\n", "from keras.utils import np_utils" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "X_train original shape (60000, 28, 28)\n", "y_train original shape (60000,)\n" ] } ], "source": [ "n_classes = 10\n", "\n", "# the data, shuffled and split between tran and test sets\n", "(X_train, y_train), (X_test, y_test) = mnist.load_data()\n", "print(\"X_train original shape\", X_train.shape)\n", "print(\"y_train original shape\", y_train.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Format data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training matrix shape (60000, 784)\n", "Testing matrix shape (10000, 784)\n" ] } ], "source": [ "X_train = X_train.reshape(60000, 784) # convert 28x28 image becomes a single 784 dimensional vector. \n", "X_test = X_test.reshape(10000, 784)\n", "X_train = X_train.astype('float32')\n", "X_test = X_test.astype('float32')\n", "X_train /= 255 # scale the inputs to be in the range [0-1] rather than [0-255]\n", "X_test /= 255\n", "print(\"Training matrix shape\", X_train.shape)\n", "print(\"Testing matrix shape\", X_test.shape)\n", "Y_train = np_utils.to_categorical(y_train, n_classes)\n", "Y_test = np_utils.to_categorical(y_test, n_classes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define simple model with just one inner layer" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model_short = Sequential()\n", "model_short.add(Dense(512, input_shape=(784,), activation='relu')) \n", "model_short.add(Dropout(0.2))\n", "model_short.add(Dense(n_classes, activation='softmax'))\n", "model_short.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define model training function with early stop" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def train_model(model, max_epochs=100, n_early_stop_epochs=3, batch_size=128):\n", " callbacks = [\n", " keras.callbacks.ModelCheckpoint('best_weights.h5', save_best_only=True, save_weights_only=True), # save best model\n", " keras.callbacks.EarlyStopping(patience=n_early_stop_epochs, verbose=1) # early stop\n", " ]\n", " t = time.time()\n", " history=model.fit(X_train, Y_train,\n", " batch_size=batch_size, epochs=max_epochs, verbose=1,\n", " validation_data=(X_test, Y_test),\n", " callbacks=callbacks)\n", " t=time.time()-t\n", " \n", " model.load_weights('best_weights.h5') # load best weights\n", " accuracy = model.evaluate(X_test, Y_test, verbose=0)[1]\n", " print('Test accuracy:', accuracy)\n", " print('Training time:',t ,'sec')\n", " return accuracy, t, history" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Train the model" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 60000 samples, validate on 10000 samples\n", "Epoch 1/100\n", "60000/60000 [==============================] - 2s 41us/step - loss: 0.3122 - acc: 0.9119 - val_loss: 0.1493 - val_acc: 0.9562\n", "Epoch 2/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.1399 - acc: 0.9589 - val_loss: 0.1040 - val_acc: 0.9691\n", "Epoch 3/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.1007 - acc: 0.9703 - val_loss: 0.0868 - val_acc: 0.9728\n", "Epoch 4/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0786 - acc: 0.9767 - val_loss: 0.0748 - val_acc: 0.9775\n", "Epoch 5/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0639 - acc: 0.9809 - val_loss: 0.0713 - val_acc: 0.9775\n", "Epoch 6/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0550 - acc: 0.9839 - val_loss: 0.0644 - val_acc: 0.9803\n", "Epoch 7/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0459 - acc: 0.9864 - val_loss: 0.0598 - val_acc: 0.9809\n", "Epoch 8/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0407 - acc: 0.9878 - val_loss: 0.0575 - val_acc: 0.9820\n", "Epoch 9/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0357 - acc: 0.9894 - val_loss: 0.0597 - val_acc: 0.9819\n", "Epoch 10/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0315 - acc: 0.9907 - val_loss: 0.0589 - val_acc: 0.9817\n", "Epoch 11/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0277 - acc: 0.9915 - val_loss: 0.0569 - val_acc: 0.9818\n", "Epoch 12/100\n", "60000/60000 [==============================] - 3s 52us/step - loss: 0.0260 - acc: 0.9927 - val_loss: 0.0562 - val_acc: 0.9826\n", "Epoch 13/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0225 - acc: 0.9935 - val_loss: 0.0568 - val_acc: 0.9827\n", "Epoch 14/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0197 - acc: 0.9946 - val_loss: 0.0548 - val_acc: 0.9827\n", "Epoch 15/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0181 - acc: 0.9951 - val_loss: 0.0554 - val_acc: 0.9833\n", "Epoch 16/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0165 - acc: 0.9953 - val_loss: 0.0532 - val_acc: 0.9831\n", "Epoch 17/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0146 - acc: 0.9960 - val_loss: 0.0583 - val_acc: 0.9833\n", "Epoch 18/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0129 - acc: 0.9970 - val_loss: 0.0529 - val_acc: 0.9830\n", "Epoch 19/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0122 - acc: 0.9968 - val_loss: 0.0561 - val_acc: 0.9831\n", "Epoch 20/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0112 - acc: 0.9973 - val_loss: 0.0574 - val_acc: 0.9836\n", "Epoch 21/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0102 - acc: 0.9975 - val_loss: 0.0533 - val_acc: 0.9841\n", "Epoch 00021: early stopping\n", "Test accuracy: 0.983\n", "Training time: 40.69113802909851 sec\n" ] } ], "source": [ "accuracy_short, t_short, history_short = train_model(model_short)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Let's view the training curves" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def show_history(history):\n", " plt.figure()\n", " plt.subplot(2,1,1)\n", " plt.tight_layout()\n", " plt.plot(history.history['acc'])\n", " plt.plot(history.history['val_acc'])\n", " plt.title('model accuracy')\n", " plt.ylabel('accuracy')\n", " plt.xlabel('epoch')\n", " plt.legend(['train', 'test'], loc='upper left')\n", "\n", " plt.subplot(2,1,2)\n", " plt.tight_layout()\n", " plt.plot(history.history['loss'])\n", " plt.plot(history.history['val_loss'])\n", " plt.title('model loss')\n", " plt.ylabel('loss')\n", " plt.xlabel('epoch')\n", " plt.legend(['train', 'test'], loc='upper left')\n", "\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAewAAAH+CAYAAABeND3wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8nXWZ///XlZOTPWnapFuabpQCXQZbqAWEqgyiLavg\n/HBDBxwtjBs6yAiO63e+fgfHGQZRBBE74sImijJStKAgMqxtKZDSlrZQaJIuadqszX6u3x/3nfY0\nTdqTNCcnJ3k/H4/zyDn3dq47J8k79+f+3J/b3B0REREZ3jJSXYCIiIgcnQJbREQkDSiwRURE0oAC\nW0REJA0osEVERNKAAltERCQNKLBFRgAz+6mZ/d8El91mZu9Jdk0iMrgU2CIiImlAgS0iw4aZZaa6\nBpHhSoEtMkTCpujrzOxlM2s2s5+Y2UQze8TMGs3sMTMbG7f8RWa23szqzOwJM5sTN2+hma0N17sP\nyOnxXheY2bpw3afN7OQEazzfzF40swYz225m3+wx/6xwe3Xh/CvC6blm9p9m9qaZ1ZvZU+G0d5tZ\nZS/fh/eEz79pZg+Y2S/MrAG4wswWm9kz4XvsMLMfmFlW3PrzzOxRM9trZrvM7CtmNsnM9ptZSdxy\np5hZjZlFE9l3keFOgS0ytD4AnAucAFwIPAJ8BRhP8Pv4eQAzOwG4B/hCOG8l8D9mlhWG12+BnwPj\ngF+F2yVcdyGwArgKKAF+BDxkZtkJ1NcMfBwoBs4H/tHM3h9ud3pY7/fDmhYA68L1/gM4FXhHWNM/\nA7EEvycXAw+E7/lLoAv4IlAKnAGcA3w6rKEQeAz4A1AGHA/8yd13Ak8Al8Vt92PAve7ekWAdIsOa\nAltkaH3f3Xe5exXwV+A5d3/R3VuBB4GF4XIfBB5290fDwPkPIJcgEE8HosDN7t7h7g8AL8S9x3Lg\nR+7+nLt3uftdQFu43hG5+xPu/oq7x9z9ZYJ/Gt4Vzv4I8Ji73xO+b627rzOzDOATwDXuXhW+59Pu\n3pbg9+QZd/9t+J4t7r7G3Z91905330bwD0d3DRcAO939P9291d0b3f25cN5dwOUAZhYBPkzwT43I\niKDAFhlau+Ket/TyuiB8Xga82T3D3WPAdmBKOK/KD71zz5txz6cD14ZNynVmVgdMDdc7IjM7zcwe\nD5uS64GrCY50CbextZfVSgma5Hubl4jtPWo4wcx+b2Y7w2by/5dADQC/A+aa2UyCVox6d39+gDWJ\nDDsKbJHhqZogeAEwMyMIqypgBzAlnNZtWtzz7cC33b047pHn7vck8L53Aw8BU919DHA70P0+24FZ\nvayzB2jtY14zkBe3HxGC5vR4PW8ZeBuwEZjt7kUEpwziaziut8LDVor7CY6yP4aOrmWEUWCLDE/3\nA+eb2Tlhp6lrCZq1nwaeATqBz5tZ1MwuBRbHrftj4OrwaNnMLD/sTFaYwPsWAnvdvdXMFhM0g3f7\nJfAeM7vMzDLNrMTMFoRH/yuAm8yszMwiZnZGeM78NSAnfP8o8FXgaOfSC4EGoMnMTgL+MW7e74HJ\nZvYFM8s2s0IzOy1u/s+AK4CLUGDLCKPAFhmG3H0TwZHi9wmOYC8ELnT3dndvBy4lCKa9BOe7fxO3\n7mrgU8APgH3AlnDZRHwa+D9m1gh8neAfh+7tvgWcR/DPw16CDmdvC2d/CXiF4Fz6XuA7QIa714fb\nvJOgdaAZOKTXeC++RPCPQiPBPx/3xdXQSNDcfSGwE9gMnB03/38JOrutdff40wQiac8OPQ0mIpLe\nzOzPwN3ufmeqaxEZTApsERkxzOztwKME5+AbU12PyGBSk7iIjAhmdhfBNdpfUFjLSKQjbBERkTSg\nI2wREZE0MKIG2i8tLfUZM2akugwREZGErVmzZo+79xyf4DBJC2wzW0EwjOBud5/fy3wDvkdwmch+\n4Ap3XxvOWxrOiwB3uvuNibznjBkzWL169SDtgYiISPKZWUKXICazSfynwNIjzF8GzA4fywlGN+oe\nCenWcP5c4MNmNjeJdYqIiAx7SQtsd3+SYACFvlwM/MwDzwLFZjaZYMSmLe7+ejhAxL3hsiIiIqNW\nKjudTeHQQf8rw2l9Te+VmS03s9VmtrqmpiYphYqIiKRa2nc6c/c7gDsAFi1adNg1ah0dHVRWVtLa\n2jrktQ2lnJwcysvLiUajqS5FRESSIJWBXUVw96Fu5eG0aB/TB6SyspLCwkJmzJjBoTc3Gjncndra\nWiorK5k5c2aqyxERkSRIZZP4Q8DHw7sJnU5w79odBDcPmG1mM80sC/hQuOyAtLa2UlJSMmLDGsDM\nKCkpGfGtCCIio1kyL+u6B3g3UGpmlcA3CI6ecffbgZUEl3RtIbis68pwXqeZfRb4I8FlXSvcff0x\n1nIsq6eF0bCPIiJDpSvmtHfGgkdX8OgIn2dFMphRmj/kNSUtsN39w0eZ78Bn+pi3kiDQRURkmOvs\nitHc1kVmxMiMGNGMDDIyknMQ0d4Zo7mtk6a2TprbO8PnXQentR06rTlcrjt4Ozqdtrjw7egKQrmj\nK0Zb58HXsSOM2r145jjuv+qMpOzfkaR9p7Phrq6ujrvvvptPf/rT/VrvvPPO4+6776a4uDhJlYmI\nHF1TWyc761vZ1dDKzvpWdjYcfL6rIXhd09h2WMBlGGRGMohmGNHMDDIzMojGBXpmxIhGMg4sc+B1\nhpEZyeglmLtoaguCNxFZkQzysyPkZ2eSlxUhOzNCVmZQw5isKFkRC19nkBXJIJoZfM3unhb39ZBl\nMzMoLchOwnf66BTYSVZXV8cPf/jDwwK7s7OTzMy+v/0rV6qBQUSSpyvm1Da1sbNH+O6ojw/kNpra\nOg9btygnk0ljcphYlMMJEwuZNCaHMblRYu50dDkdXTE6u5yOWPC1sytGR8zp6IzRGTs4vzMWO2T5\nps7OYL2uGNmZGeRnZzI1P4+C7MwD4VuQlRl8zQ6+5mdHDjyPn5adGUnBdzW5FNhJdv3117N161YW\nLFhANBolJyeHsWPHsnHjRl577TXe//73s337dlpbW7nmmmtYvnw5cHCY1aamJpYtW8ZZZ53F008/\nzZQpU/jd735Hbm5uivdMRIaTWMxpaO1gT1M7e5vb2dvcduB5bVMbtc3t1Ha/bm5j3/4OunocFkcy\njAmF2UwsymH2hEKWzB7PxKIcJofhHIR0NnlZio5UGFXf9W/9z3perW4Y1G3OLSviGxfO63P+jTfe\nSEVFBevWreOJJ57g/PPPp6Ki4sDlVytWrGDcuHG0tLTw9re/nQ984AOUlJQcso3Nmzdzzz338OMf\n/5jLLruMX//611x++eWDuh8iMrg6uoIm3Y4uJ+ZOZ8zpCo8qu193xs877HXssPnNbV0HwzcM5dqm\n7ufthwVwt8KcTEoLshmXn8X0kjxOmV7MuPysIITDIJ5UlENJQTaRJJ17lmM3qgJ7OFi8ePEh10rf\ncsstPPjggwBs376dzZs3HxbYM2fOZMGCBQCceuqpbNu2bcjqFRmt2jtjNLZ20NDaSUNLBw2tHTS0\ndIZfD77ua5n97V1Jq60wO5OSgizG5WdRPjaPBVODAC4pyKYkP+vAvNKCbMbmZZGVqTspjwSjKrCP\ndCQ8VPLzD14K8MQTT/DYY4/xzDPPkJeXx7vf/e5er6XOzj7YwSESidDS0jIktYqMRB1dMXaF52qr\n61qoqmuhuq6F6rrg9d7mdhpaO2jtOHLnpkiGUZSTSVFulKKcKIU5mRxXWkBRbiZFOVGKcqPkZ2eS\nFTEiGUFnqowMIzPDiMQ9Dn+d0ee8vKwI4/KzRuT5WTm6URXYqVBYWEhjY2Ov8+rr6xk7dix5eXls\n3LiRZ599doirExlZ3J36lo4whIMArq6Pe17Xwq6G1sN6NI/Ni1JWnHvgaDUI4YNh3B3ChXHP87Ii\nGv9AhpQCO8lKSko488wzmT9/Prm5uUycOPHAvKVLl3L77bczZ84cTjzxRE4//fQUVioyfHV2xdi3\nv4Pa5jb2NrWzp7mdveG53JrGNqrqWg4cMfdsis6KZFBWnENZcS5nHl9KWXEuZWOC18EjR52oJC1Y\nMH7JyLBo0SJfvXr1IdM2bNjAnDlzUlTR0BpN+yrprSvm7NsfdJTa09QW9mRuD3syh6/jnte1dNDb\nn6oMg3H52Uwpjg/gQwO5JD8raYN4iAwGM1vj7ouOtpz+rRSRQdfZFWNHfSvb9+1n+979vLV3P9v3\ntvDW3v1U7muhtrmt1wA2g7F5QYepkvwsTpxUSEl+dtiBKotx+dmUFGSFHauyGZMbVa9mGTUU2CLS\nb+5O3f4Otu87NIy3793P9n37qdrXQmfcieJIhjGlOJep43J5z5wJTCjMpiS8zCgI4CCIi3OjZEbU\no1mkNwpsETlMe2eMPU1t1DQGjx31QSB3h/P2vftp7DECVkl+FuXj8ji5vJgLTp7M1LF5TBuXx9Rx\neUwek6MgFjlGCmyRUaK7B/XuxoNBXNPYxu7GYCzomriA3re/47D1szMzDgTw4pnjKB+by7RxeUwr\nyaN8bDB8pIgkj37DREaAWMypaWrjzdr9B5qmDwbzwUDu6Dr8xHF2ZgYTirIZX5DNcaUFnDazhPGF\n2YwvzGZC+HVSUQ7jC7N1GZNICimwRdJEa0cXlftaeGtv84Fgfqv76979tMXdxcgsaKIuLQgC9/gJ\nhQdCOD6IxxdmU5idqSAWSQMK7CQb6O01AW6++WaWL19OXl5eEiqT4cbd2be/gzdrmw8J4zfDI+ad\nDa2H9KzOy4owbVweM0vzedcJ45leEjRXTy/JZ0pxroajFBlhFNhJ1tftNRNx8803c/nllyuwR6Da\npjY27Wxkw85GNu5oYNOuRt6oaT6sI9eEwmyml+RxxqwSpo/LZ1pJLtPG5TNtXB6lBVk6MhYZRRTY\nSRZ/e81zzz2XCRMmcP/999PW1sYll1zCt771LZqbm7nsssuorKykq6uLr33ta+zatYvq6mrOPvts\nSktLefzxx1O9KzIAbZ1dbNndxMYdjWzc2cDGnY1s3NlITWPbgWVKC7KZM7mQS0+ZwrSSfKaHHbmm\njs0jN0tjRotIYHQF9iPXw85XBnebk/4Glt3Y5+z422uuWrWKBx54gOeffx5356KLLuLJJ5+kpqaG\nsrIyHn74YSAYY3zMmDHcdNNNPP7445SWlg5uzTLo3J3q+lY27jgYyht3NPD6nuYDtzzMyszghIkF\nvOuE8Zw0qZCTJhVx4qTg3LKIyNGMrsBOsVWrVrFq1SoWLlwIQFNTE5s3b2bJkiVce+21fPnLX+aC\nCy5gyZIlKa5U+uLu7G1uZ2tNM5t3N7JxR2PYtN1AY+vB5uzysbmcNKmQ982bxEmTg3CeUZKna5FF\nZMBGV2Af4Uh4KLg7N9xwA1ddddVh89auXcvKlSv56le/yjnnnMPXv/71FFQo3Tq7YlTua2FrTRNb\na5rYsruJrTXNbK1poi7uGuWC7ExOmlTIxQvKOGlSESdNKuSESYUU5URTWL2IjESjK7BTIP72mu97\n3/v42te+xkc/+lEKCgqoqqoiGo3S2dnJuHHjuPzyyykuLubOO+88ZF01iSdPc1snr4dBHIRy8Ni2\nZz/tXQcvkyotyGLW+ALO+5vJzBpfwKzx+cwaX0D52Fx1/BKRIaHATrL422suW7aMj3zkI5xxxhkA\nFBQU8Itf/IItW7Zw3XXXkZGRQTQa5bbbbgNg+fLlLF26lLKyMnU6O0ZtnV2se6uOTbsa2Rp3tLyj\nvvXAMpEMY/q4PI4bX8DZJ00IgzkI5+K8rBRWLyKi22uOKKNpX4/G3XltVxN/3VzDXzfv4fk39tLS\nEdwnuSA788AR8qwJB4+Wp5fk69plERlyur2mjDq7G1p5assentq8h6e27GF3eOnUcePzuWxROWfN\nHs/J5WOYoCE2RSQNKbAlbe1v7+S5N/YGAb15D5t2BX0FxuVncebxpSw5vpSzZpdSVpyb4kpFRI7d\nqAhsdx/xR1Qj6dRGX7piTkVVPU9t2cNfN9ew9s062rtiZGVmsHjGOC45ZQpnHV/K3MlFZGSM7M9b\nREafER/YOTk51NbWUlJSMmJD292pra0lJycn1aUMuu179/PXzXt4aksNT2+tPXBJ1ZzJRVxx5gzO\nOr6UxTPHkRPViGAiMki6OqCtsZdHQ/A1bxzMvXjIyxrxgV1eXk5lZSU1NTWpLiWpcnJyKC8vT3UZ\ng+K1XY08/PIOVr6yg827mwCYVJTDe+ZMZMnsUt4xq1Sjg4nIodyhs+3QYO0tbBOZ3tly5PeaeroC\nOxmi0SgzZ85MdRlyBN09uh9+JQjpLbubMIO3zxjH1y+YyztPKGXW+IIR20IiaSYWC/7It9ZDax20\n1B36tbX+4PO2JsiIQCQKGVGIZAXPI3HPD0zPDL9mQUbm4ctmRIP7pna1B0eAXR0Q6zj0dVc7xDp7\nmdbRyzIdwbYzc4JHNPyamQ2ZueHX+Olx86Nx87sfkSh4DGJd4F09vnov02K9LB8Ln8egY3//AzfW\ncfTPLyMTsosgu/Dgo2AClMyKm9Zj/mHTipL/c9aLER/YMjy5Oxt3NrIyDOmtNc2YweIZ4/j4xfNY\nOm8SE4pGXhP/qNbZBs17YP8e6Gzv/x/ww6Z1Px/M/hsO7c19B3BLXRAQHut7ExaBnDGQWwxZBUF9\nXe29h2msI/i+MNh9UOxg+Hf/I5AR7fEPQAS6OqGzNe7RBh0twfd3uMnMPTxEi6f1EqxHCdzM7OAf\nnzSkwJYh4+5s2HEwpF/f00yGwWkzS7jizJm8b95EJhQqpNOGexBeTTXQ3P3YHYRy0+7w9Z5wWk0Q\nfOkikgU5xUHo5hRD/ngonX3otO5Q7jktu7D/gRDr6uMIuf3QI2nn0KPz+KPvnmF8LLo6g2bhzrYg\nyDviAr2zpfdpXZ3B+5oF/7RkROK+ZgSPQ6aF0zMyepkWgWjeoYEb0XC/CmxJKnfn1R0NYUjv5I0w\npE8/roRPnDWT982bNHzPR8e6oHEH1G2H+kqofyt8vj34un8PYAn+Yeq5XOTwP24Z0b6PhnprOj1s\nmbim1IzMg0es8Uey7oc3WR44qo31cgQbrtPe1EsQ10BXW+/fu9xxQcgVTAjuaJc/HvInQH5p8MjM\n6eX71P2HO6OXaXF/yK2XP/CDKZobPIbyKCwj3J/oMPmHNZIJkTAoZdhQYMugc3fWVzccOJLeVruf\nDIMzZpXwySVBSJcWDIOQ7miB+qrDg7g7nBuqg6OdeLnjoHhqcLRVcGYw7UAA9hKQRzt/1xU3rfu8\n4oHzkp09zj+2H17PUIlkHQzcggkwcV4YwuGjIO55XomOhkSSIKmBbWZLge8BEeBOd7+xx/yxwApg\nFtAKfMLdK8J5XwQ+SdAI9Apwpbu3IsNWVV0Ldz/3Jr9/eQdv1u4nkmGccVwJy985i/fNm0hJskO6\nozXu3GMfHYIaqg6Gc3OPKwcsAwrLgkCeehqMmRo8HzMt+Fo0BbILkrsPR+Pee6j3bEqNdfZomkzg\nSPVozZlpet5PZKRIWmCbWQS4FTgXqAReMLOH3P3VuMW+Aqxz90vM7KRw+XPMbArweWCuu7eY2f3A\nh4CfJqteGbiKqnp+/NfX+f3LOwB4x6wSrn7XLN479xhDet+bsKui784/Pad1HuX/uWg+FE0OgnjS\n/CCIx5SHoTwVisqG/5GhGWRmAVlAfqqrEZEhlMwj7MXAFnd/HcDM7gUuBuIDey5wI4C7bzSzGWY2\nMa62XDPrAPKA6iTWKv3k7jzxWg0/fvJ1nt5aS0F2Jp84cwZXnDmTKQMdCjQWgx0vwqZHYONK2L3+\n8GWyx0DumIMdfUpP6KPzT3GPaWOGfxiLiBxBMgN7CrA97nUlcFqPZV4CLgX+amaLgelAubuvMbP/\nAN4CWoBV7r6qtzcxs+XAcoBp06YN7h7IYdo6u3hoXTV3/vUNNu1qZFJRDjcsO4kPnzaNopwBBGJH\nK7zxJGxaCa/9IejkZRkw7Qx477dh+hnBeePc4uCyjGPt/SoikqZS3ensRuB7ZraO4Dz1i0BXeG77\nYmAmUAf8yswud/df9NyAu98B3AHB7TWHrPJRpr6lg18+9yY//d9t7G5s46RJhdx02du44OSy/t+S\nsrkWNq+CTQ/Dlj9DR3PQXH38OXDS+TD7vcHQfyIickAyA7sKmBr3ujycdoC7NwBXAlgwjNUbwOvA\n+4A33L0mnPcb4B3AYYEtyVW5bz8rntrGfS+8RXN7F0tml/If/9/bWDK7tH8jj9VuDY6iNz0Cbz0T\n9JAunAxv+yCceB7MWDJ8LmkRERmGkhnYLwCzzWwmQVB/CPhI/AJmVgzsd/d2gh7hT7p7g5m9BZxu\nZnkETeLnAKuTWKv08EplPXf89XVWvrIDAy56WxmfXHIcc8sSHJIv1gVVa2Djw0FI79kUTJ84H5Z8\nCU5cBmUL1fNYRCRBSQtsd+80s88CfyS4rGuFu683s6vD+bcDc4C7zMyB9cA/hPOeM7MHgLVAJ0FT\n+R3JqnVU2/t68CDo8/VKVT0rX9nBhp0N5EYjfHv+BM6dN5GS/HBIyS1H2V5bI2z5U3A+urkmGMBj\nxlnw9n+AE5bC2OnJ3ycRkRHIRtJ9lBctWuSrV+tAPCF7X4cnvgOv3H/kcZEHIrsIZp8bNHUf/56g\nw5iIiPTKzNa4+6KjLZfqTmcy1Oq2w5P/Di/+Eo9kUTHtcm6uPJF9+zuYXprP+xdM4czjS8jMGOBw\njxmZQbN3Ztbg1i0iMsopsEeLxp3w1/+ENT8FoOltV/ClHX/LHzYZZx5fwj+963jOPL5Et7AUERmm\nFNgjXfMeeOq/4IU7g+EqF17OqtKPc+0f9xCLOd/9u3n83anlCmoRkWFOgT1SteyDp78Pz94e3Pru\n5A/RcPo/8fW/NPHb/63mlGnF/NcHFzC9RMNbioikAwX2SNPaAM/eBs/cCm31MP8D8K7rebaxhGvv\neomdDa3807kn8Ol3zyIzMsi3JRQRkaRRYI8U7c3w/I/hf28Ojq5PugDO/grtJXO46dHX+NGTzzJ9\nXB6//sd3sGCqem2LiKQbBXa662iFNf8ddChrroHjz4WzvwJTTmHL7kY+f+v/8uqOBj68eCpfPX8u\n+dn6yEVE0pH+eqerznZ48efw5H9AYzXMfCec/UuYdhruzs+f2ca3H95AfnYmd3zsVN47b1KqKxYR\nkWOgwE43XR3w8v3wlxuh7i2Yehpccjsc9y4Adje2ct2vXuYvr9Xw7hPH8+9/dzITCjVGt4hIulNg\np4t9b8Lau+DFX0DTLpi8AM7/r+AOV+ElWX9cv5MbfvMKzW2d/OvF87j89Om6XEtEZIRQYA9nXZ3B\nbShXr4AtjwXBPPt9wbjcx7/nQFA3t3Xyr79/lXtf2M78KUXc/MEFHD+hMMXFi4jIYFJgD0cN1bD2\nZ8GjoSq4DeW7/hlO+TiMKT9k0bVv7eOL963jrb37+cd3z+KL7zmh//enFhGRYU+BPVzEYrD1z0GP\n702PgHfBrHNg2b8Hd7mKHPpRdXbF+MHjW/j+n7cwqSiHez91OqcdV5Ki4kVEJNkU2KnWtDvo7b3m\nLqh7E/JK4czPwyl/D+Nm9rrKtj3NfOG+dazbXsclC6fwrYvnUZQTHeLCRURkKCmwU8Ed3ngyODe9\n8ffBGN8zlsB7vhkMeHKEO109tXkPy3++mkiGccuHF3LR28qGrGwREUkdBfZQaq6Fl+6G1f8Ne7dC\n7lg47Wo49QoonX3U1d+sbebTv1xD+dhc/vvKxUwpzk1+zSIiMiwosIdC1ZrgJhyv/ha62mHq6fCu\nL8PciyGa2DXSzW2dLP/ZGsyMOz/+doW1iMgoo8BOtqq18JP3QjQvOJI+9UqYOLdfm3B3rnvgJTbv\nbuSnVy5mWklecmoVEZFhS4GdTO3N8JtPQcFEuPopyBs3oM3c9petrHxlJzcsO4l3njB+kIsUEZF0\noMBOpj9+BWq3wt//z4DD+vFNu/nuHzdx4dvKWP7O4wa5QBERSRcaYSNZNvwe1vwUzrwGZi4Z0Ca2\n7Wnmmnte5MSJhXznA3+jYUZFREYxBXYyNO6Ehz4Hk98GZ//LgDbR1NbJ8p+vJiPD+PHHF5GXpcYQ\nEZHRTIE92GIx+O0/QkcLXHrnEa+p7ou786X7X2LL7iZ+8OFTmDpOncxEREY7HbYNtud/FAwxev5N\nMP6EAW3i1se38If1O/mX8+Zw1uzSQS5QRETSkY6wB9Ou9fDoN+CEZbDoEwPaxJ837uI/H32NixeU\n8cklvQ9NKiIio48Ce7B0tMKvPwk5Y+DiHxy49WV/vLGnmWvuXcecSUXceOnJ6mQmIiIHqEl8sPzp\nW7D7VfjoA5Df/2bsprZOPvWz1WRmGD/62KnkZkWSUKSIiKQrBfZg2PInePaHsPgqmH1uv1ePxZx/\num8db+xp5uefWKxOZiIichg1iR+r5tqgV/j4OXDutwa0iR88voVVr+7iK+fN4R3Hq5OZiIgcLqHA\nNrPfmNn5ZqaAj+ceXG/dsg8+8GOI9v+GHH/asIv/euw1Llk4hU+cOWPwaxQRkREh0QD+IfARYLOZ\n3WhmJyaxpvSx9i7Y9DCc8w2Y9Df9Xn1rTRNfuHcd88qK+LdLNZKZiIj0LaHAdvfH3P2jwCnANuAx\nM3vazK40s2gyCxy29myBP9wAx70bTv90v1dvbO1g+c9Wk5WZwY8+toicqDqZiYhI3xJu4jazEuAK\n4JPAi8D3CAL80aRUNpx1dcBvPgmZ2fD+2yCjf2cKYjHni/e9xLba/fzgI6fo3tYiInJUCfUSN7MH\ngROBnwMXuvuOcNZ9ZrY6WcUNW0/8G1S/CJf9HIrK+r36LX/ezGMbdvGNC+dyxqySJBQoIiIjTaKH\nhre4+1x3/7e4sAbA3Rf1tZKZLTWzTWa2xcyu72X+WDN70MxeNrPnzWx+3LxiM3vAzDaa2QYzOyPh\nvUqmbf8Lf70JFn4M5l7U79UffXUXNz+2mQ+cUs4V75gx+PWJiMiIlGhgzzWz4u4XYdAe8cStmUWA\nW4FlwFzgw2Y2t8diXwHWufvJwMcJmtm7fQ/4g7ufBLwN2JBgrcnTUgcPXgXjZsLSG/u9+pbdTXzx\nvnWcXD5qG28YAAAgAElEQVSGb18yX53MREQkYYkG9qfcva77hbvvAz51lHUWA1vc/XV3bwfuBS7u\nscxc4M/hNjcCM8xsopmNAd4J/CSc1x7//imz8kvQUA2X/hiyC/q1akPYySwnmsHtl5+qTmYiItIv\niQZ2xOIOB8Oj56PdN3IKsD3udWU4Ld5LwKXhNhcD04FyYCZQA/y3mb1oZneaWX5vb2Jmy81stZmt\nrqmpSXB3BuDl++GVX8G7b4DyPs8C9CoWc7547zre2rufWz9yCmXqZCYiIv2UaGD/gaCD2Tlmdg5w\nTzjtWN0IFJvZOuBzBL3Puwg6w50C3ObuC4Fm4LBz4ADufoe7L3L3RePHjx+Eknqx7014+FqYejos\n+ad+r37znzbzp427+fqFczntOHUyExGR/kt0LPEvA1cB/xi+fhS48yjrVAFT416Xh9MOcPcG4EqA\n8Aj+DeB1IA+odPfnwkUfoI/ATrpYV3DeGuDSOyCjf03Z+9s7ufXxLVy8oIyPnT49CQWKiMhokFBg\nu3sMuC18JOoFYLaZzSQI6g8RjJZ2QNiRbX94jvuTwJNhiDeY2XYzO9HdNwHnAK/2470Hz1M3wVvP\nwCV3wNj+B+6GHQ10xZwLTy5TJzMRERmwRK/Dng38G0EnsZzu6e5+XF/ruHunmX0W+CMQAVa4+3oz\nuzqcfzswB7jLzBxYD/xD3CY+B/zSzLIIjrqv7M+ODYrKNfDEjTD/A3DyZQPaREVVAwDzphQNZmUi\nIjLKJNok/t/AN4D/As4mCM+jnv9295XAyh7Tbo97/gxwQh/rrgP617trMLU1BaOZFU6G82+CAR4d\nV1TVU5KfxaSinKMvLCIi0odEO53luvufAHP3N939m8D5yStrGPjjDbD3DbjkdsgtPvryfaiobmDe\nlDFqDhcRkWOS6BF2W3hrzc1hM3cV0L8LkdPJhv+BtT+Ds/4JZpw14M20dXaxeVcjZ5+YpN7rIiIy\naiR6hH0NQc/tzwOnApcDf5+solJux8tQtjC45voYvLazic6YM3/KmEEqTERERqujHmGHg6R80N2/\nBDSRis5fQ+1v/wWWXAuZRxsb5sgqqusBmFemDmciInJsEuk41gUMvF04XUWPvZNYRVU9hTmZTBuX\nNwgFiYjIaJboOewXzewh4FcEo44B4O6/SUpVI0RFdQPzyorU4UxERI5ZooGdA9QCfxs3zQEFdh86\nu2Js3NGg0c1ERGRQJDrS2cg/bz3IttY009YZU4czEREZFImOdPbfBEfUh3D3Twx6RSNERVXQ4Wy+\nRjgTEZFBkGiT+O/jnucAlwDVg1/OyFFRXU9uNMLM0pF7ubqIiAydRJvEfx3/2szuAZ5KSkUjxPqq\nBuZMLiSSoQ5nIiJy7BIdOKWn2cCEwSxkJInFnPXV9Tp/LSIigybRc9iNHHoOeyfBPbKlF2/u3U9z\nexfzyxTYIiIyOBJtEi9MdiEjSXeHM91SU0REBktCTeJmdomZjYl7XWxm709eWemtorqerEgGsyfo\n/xwRERkciZ7D/oa713e/cPc6gvtjSy/WVzVwwqQCsjIH2kVARETkUIkmSm/LJXpJ2Kji7lRU1+v8\ntYiIDKpEA3u1md1kZrPCx03AmmQWlq6q6lqo29/BPPUQFxGRQZRoYH8OaAfuA+4FWoHPJKuodLa+\nugGA+bqlpoiIDKJEe4k3A9cnuZYRYX1VPZEMY85kBbaIiAyeRHuJP2pmxXGvx5rZH5NXVvqqqG7g\n+PEF5EQjqS5FRERGkESbxEvDnuEAuPs+NNJZryqq6pmn5nARERlkiQZ2zMymdb8wsxn0cveu0W53\nYyu7G9vU4UxERAZdopdm/QvwlJn9BTBgCbA8aVWlKXU4ExGRZEm009kfzGwRQUi/CPwWaElmYelo\nfTgk6VwFtoiIDLJEb/7xSeAaoBxYB5wOPAP8bfJKSz8VVQ3MLM2nMCea6lJERGSESfQc9jXA24E3\n3f1sYCFQd+RVRp+K6nodXYuISFIkGtit7t4KYGbZ7r4RODF5ZaWfuv3tVO5r0ZCkIiKSFIl2OqsM\nr8P+LfCome0D3kxeWennQIcz3VJTRESSINFOZ5eET79pZo8DY4A/JK2qNLS+OrwHto6wRUQkCfp9\nxy13/0syCkl3FVUNTCnOZVx+VqpLERGREUg3bB4kFdUa4UxERJJHgT0Imto6eWNPs5rDRUQkaRTY\ng2DDjgbc1eFMRESSJ6mBbWZLzWyTmW0xs8Nuzxne9etBM3vZzJ43s/k95kfM7EUz+30y6zxWFeEI\nZ/M1hriIiCRJ0gLbzCLArcAyYC7wYTOb22OxrwDr3P1k4OPA93rMvwbYkKwaB8v66gZKC7KZUJid\n6lJERGSESuYR9mJgi7u/7u7twL3AxT2WmQv8GSAcjGWGmU0EMLNy4HzgziTWOCgqquqZP6UIM0t1\nKSIiMkIlM7CnANvjXleG0+K9BFwKYGaLgekE45UD3Az8MxA70puY2XIzW21mq2tqagaj7n5p7ehi\n8+4mjXAmIiJJlepOZzcCxWa2DvgcwZ3AuszsAmC3u6852gbc/Q53X+Tui8aPH5/kcg+3aWcjXTHX\nJV0iIpJU/R44pR+qgKlxr8vDaQe4ewNwJYAF7clvAK8DHwQuMrPzgBygyMx+4e6XJ7HeAamoVocz\nERFJvmQeYb8AzDazmWaWBXwIeCh+ATMrDucBfBJ40t0b3P0Gdy939xnhen8ejmENwQhnRTmZlI/N\nTXUpIiIygiXtCNvdO83ss8AfgQiwwt3Xm9nV4fzbgTnAXWbmwHrgH5JVT7K8Wl3P/Clj1OFMRESS\nKplN4rj7SmBlj2m3xz1/BjjhKNt4AngiCeUds46uGBt2NnLFO2akuhQRERnhUt3pLK1t2d1Ee2dM\nHc5ERCTpFNjHoHuEM40hLiIiyabAPgbrqxvIy4owszQ/1aWIiMgIp8A+Buur65k7uYhIhjqciYhI\ncimwBygWc9ZXN+j6axERGRIK7AF6o7aZ/e1d6nAmIiJDQoE9QOpwJiIiQ0mBPUDrqxvIimQwe2JB\nqksREZFRQIE9QBVV9Zw0uZBoRN9CERFJPqXNALgHHc7UHC4iIkNFgT0AlftaqG/pYP4UdTgTEZGh\nocAegPXdt9TUEbaIiAwRBfYAVFQ1EMkwTpxUmOpSRERklFBgD0BFdT2zJxSQE42kuhQRERklFNgD\nUFGlDmciIjK0FNj9tLuhlT1NbepwJiIiQ0qB3U8V3R3ONIa4iIgMIQV2P1VUNWAGcybrCFtERIaO\nArufKqrqmVmST0F2ZqpLERGRUUSB3U/rqxuYp+ZwEREZYgrsftjX3E5VXQvzdUtNEREZYgrsflhf\n3QCow5mIiAw9BXY/dPcQn6cjbBERGWIK7H6oqKqnfGwuxXlZqS5FRERGGQV2PwS31NTRtYiIDD0F\ndoIaWzt4Y0+z7tAlIiIpocBO0IYdjYA6nImISGoosBNUURV2ONMY4iIikgIK7ARVVNczoTCbCYU5\nqS5FRERGIQV2gtZXNag5XEREUkaBnYCW9i42725UD3EREUkZBXYCNu5sIOYwTz3ERUQkRRTYCTg4\nJKmOsEVEJDUU2AlYX11PcV6UKcW5qS5FRERGqaQGtpktNbNNZrbFzK7vZf5YM3vQzF42s+fNbH44\nfaqZPW5mr5rZejO7Jpl1Hk1FVQPzy8ZgZqksQ0RERrGkBbaZRYBbgWXAXODDZja3x2JfAda5+8nA\nx4HvhdM7gWvdfS5wOvCZXtYdEu2dMTbtVIczERFJrWQeYS8Gtrj76+7eDtwLXNxjmbnAnwHcfSMw\nw8wmuvsOd18bTm8ENgBTklhrnzbvbqS9K8Y8XdIlIiIplMzAngJsj3tdyeGh+xJwKYCZLQamA+Xx\nC5jZDGAh8Fxvb2Jmy81stZmtrqmpGZTC462vCjuc6QhbRERSKNWdzm4Eis1sHfA54EWgq3ummRUA\nvwa+4O4NvW3A3e9w90Xuvmj8+PGDXuD66nrysyLMKMkf9G2LiIgkKjOJ264Cpsa9Lg+nHRCG8JUA\nFvToegN4PXwdJQjrX7r7b5JY5xFVVDcwr2wMGRnqcCYiIqmTzCPsF4DZZjbTzLKADwEPxS9gZsXh\nPIBPAk+6e0MY3j8BNrj7TUms8Yi6Ys6r1Q264YeIiKRc0o6w3b3TzD4L/BGIACvcfb2ZXR3Ovx2Y\nA9xlZg6sB/4hXP1M4GPAK2FzOcBX3H1lsurtzRt7mmjp6NIIZyIiknLJbBInDNiVPabdHvf8GeCE\nXtZ7Ckh5G3RFlUY4ExGR4SHVnc6GtfXV9WRnZnD8+IJUlyIiIqOcAvsIKqoaOGlyEZkRfZtERCS1\nlER9cHcqqut1/bWIiAwLCuw+bN/bQmNrJ/M1wpmIiAwDCuw+VFTXA2gMcRERGRYU2H2oqKonM8M4\nYWJhqksRERFRYPdlfXUDsycWkhONpLoUERERBXZv3J2KKnU4ExGR4UOB3YtdDW3UNrerw5mIiAwb\nCuxeVFQFHc40wpmIiAwXCuxeVFTXYwYnTVJgi4jI8KDA7kVuNMI7Z48nPzupQ62LiIgkTInUi6ve\nNYur3jUr1WWIiIgcoCNsERGRNKDAFhERSQMKbBERkTSgwBYREUkDCmwREZE0oMAWERFJAwpsERGR\nNGDunuoaBo2Z1QBvDtLmSoE9g7StVNE+DA/ah+FB+zA8aB8ON93dxx9toREV2IPJzFa7+6JU13Es\ntA/Dg/ZheNA+DA/ah4FTk7iIiEgaUGCLiIikAQV23+5IdQGDQPswPGgfhgftw/CgfRggncMWERFJ\nAzrCFhERSQMKbBERkTQw6gPbzJaa2SYz22Jm1/cy38zslnD+y2Z2Sirq7IuZTTWzx83sVTNbb2bX\n9LLMu82s3szWhY+vp6LWIzGzbWb2Sljf6l7mD/fP4cS47+86M2swsy/0WGbYfQ5mtsLMdptZRdy0\ncWb2qJltDr+O7WPdI/7uDJU+9uG7ZrYx/Fl50MyK+1j3iD93Q6WPffimmVXF/byc18e6w/lzuC+u\n/m1mtq6PdYfL59Dr39Nh8zvh7qP2AUSArcBxQBbwEjC3xzLnAY8ABpwOPJfqunvUNxk4JXxeCLzW\nyz68G/h9qms9yn5sA0qPMH9Yfw69/FztJBgMYVh/DsA7gVOAirhp/w5cHz6/HvhOH/t4xN+dFO/D\ne4HM8Pl3etuHRH7uUrwP3wS+lMDP2rD9HHrM/0/g68P8c+j17+lw+Z0Y7UfYi4Et7v66u7cD9wIX\n91jmYuBnHngWKDazyUNdaF/cfYe7rw2fNwIbgCmprSophvXn0MM5wFZ3H6xR95LG3Z8E9vaYfDFw\nV/j8LuD9vayayO/OkOhtH9x9lbt3hi+fBcqHvLB+6ONzSMSw/hy6mZkBlwH3DGlR/XSEv6fD4ndi\ntAf2FGB73OtKDg+7RJYZFsxsBrAQeK6X2e8ImwcfMbN5Q1pYYhx4zMzWmNnyXuanzecAfIi+/zAN\n988BYKK77wif7wQm9rJMOn0enyBonenN0X7uUu1z4c/Lij6aYdPlc1gC7HL3zX3MH3afQ4+/p8Pi\nd2K0B/aIYWYFwK+BL7h7Q4/Za4Fp7n4y8H3gt0NdXwLOcvcFwDLgM2b2zlQXNBBmlgVcBPyql9np\n8DkcwoO2vrS99tPM/gXoBH7ZxyLD+efuNoLm1QXADoIm5XT1YY58dD2sPocj/T1N5e/EaA/sKmBq\n3OvycFp/l0kpM4sS/HD90t1/03O+uze4e1P4fCUQNbPSIS7ziNy9Kvy6G3iQoHkp3rD/HELLgLXu\nvqvnjHT4HEK7uk83hF9397LMsP88zOwK4ALgo+Ef2cMk8HOXMu6+y9273D0G/Jjea0uHzyETuBS4\nr69lhtPn0Mff02HxOzHaA/sFYLaZzQyPjD4EPNRjmYeAj4e9lE8H6uOaRlIuPDf0E2CDu9/UxzKT\nwuUws8UEn3vt0FV5ZGaWb2aF3c8JOgxV9FhsWH8Ocfo8khjun0Och4C/D5//PfC7XpZJ5HcnZcxs\nKfDPwEXuvr+PZRL5uUuZHn00LqH32ob15xB6D7DR3St7mzmcPocj/D0dHr8Tqe6Vl+oHQe/j1wh6\n9/1LOO1q4OrwuQG3hvNfARaluuYe9Z9F0DzzMrAufJzXYx8+C6wn6LX4LPCOVNfdYx+OC2t7Kawz\n7T6HsMZ8ggAeEzdtWH8OBP9c7AA6CM65/QNQAvwJ2Aw8BowLly0DVsate9jvzjDahy0E5xO7fydu\n77kPff3cDaN9+Hn4s/4ywR/+yen2OYTTf9r9OxC37HD9HPr6ezosfic0NKmIiEgaGO1N4iIiImlB\ngS0iIpIGFNgiIiJpQIEtIiKSBhTYIiIiaUCBLSLHzII7kf0+1XWIjGQKbBERkTSgwBYZRczscjN7\nPrzv8I/MLGJmTWb2X+H9f/9kZuPDZReY2bN28J7SY8Ppx5vZY2b2kpmtNbNZ4eYLzOwBC+5D/cvu\nUd1EZHAosEVGCTObA3wQONODGy10AR8lGKFttbvPA/4CfCNc5WfAlz24WckrcdN/Cdzq7m8D3kEw\nuhUEdzb6AsH9g48Dzkz6TomMIpmpLkBEhsw5wKnAC+HBby7BTQxiHLwxwy+A35jZGKDY3f8STr8L\n+FU45vMUd38QwN1bAcLtPe/heNFmtg6YATyV/N0SGR0U2CKjhwF3ufsNh0w0+1qP5QY6XnFb3PMu\n9PdFZFCpSVxk9PgT8HdmNgHAzMaZ2XSCvwN/Fy7zEeApd68H9pnZknD6x4C/uHsjUGlm7w+3kW1m\neUO6FyKjlP4DFhkl3P1VM/sqsMrMMgjuqvQZoBlYHM7bTXCeG4LbCN4eBvLrwJXh9I8BPzKz/xNu\n4/8bwt0QGbV0ty6RUc7Mmty9INV1iMiRqUlcRDCzn5rZ/01w2W1m9p5j3Y6I9I8CW2SU09G1SHpQ\nYIuIiKQBBbZImgiboq8LRx5rNrOfmNlEM3vEzBrD0cfGxi1/UTh6WZ2ZPREOnNI9b2E4Slmjmd0H\n5PR4rwvC0dDqzOxpMzt5gDV/ysy2mNleM3vIzMrC6RaOrrbbzBrM7BUzmx/OO8/MXg1rqzKzLw3o\nGyYywiiwRdLLB4BzgROAC4FHgK8A4wl+nz8PYGYnAPcQjDw2HlgJ/I+ZZZlZFvBb4OfAOOBX4XYJ\n110IrACuAkqAHwEPmVl2fwo1s78F/g24DJgMvAncG85+L/DOcD/GhMvUhvN+Alzl7oXAfODP/Xlf\nkZFKgS2SXr7v7rvcvQr4K/Ccu78Yjjj2IMHwoBBcmvWwuz/q7h3AfxCMbPYO4HQgCtzs7h3u/gDw\nQtx7LAd+5O7PuXuXu99FMCjK6f2s9aPACndf6+5twA3AGWY2g+BysELgJIKrVTa4e/cQpx3AXDMr\ncvd97r62n+8rMiIpsEXSy6645y29vO7uQFZGcEQLgLvHgO3AlHBelR96Teebcc+nA9eGzeF1ZlYH\nTA3X64+eNTQRHEVPcfc/Az8AbgV2m9kdZlYULvoB4DzgTTP7i5md0c/3FRmRFNgiI1M1QfACwTlj\ngtCtIrhZx5Qed9OaFvd8O/Btdy+Oe+S5+z3HWEM+QRN7FYC73+LupxLcLOQE4Lpw+gvufjEwgaDp\n/v5+vq/IiKTAFhmZ7gfON7NzzCwKXEvQrP008AzQCXzezKJmdimwOG7dHwNXm9lpYeewfDM7P7zx\nR3/cA1wZ3qYzG/h/BE3428zs7eH2owQjrbUCsfAc+0fNbEzYlN9AcHMSkVFPgS0yArn7JuBy4PvA\nHoIOahe6e7u7twOXAlcAewnOd/8mbt3VwKcImqz3AVvCZftbw2PA14BfExzVzwI+FM4uIvjHYB9B\ns3kt8N1w3seAbWbWAFxNcC5cZNTT0KQiIiJpQEfYIiIiaUCBLSIikgYU2CIiImlAgS0iIpIGMlNd\nwGAqLS31GTNmpLoMERGRhK1Zs2aPu48/2nIjKrBnzJjB6tWrU12GiIhIwszszaMvpSZxERGRtKDA\nFhERSQMKbBERkTQwos5h96ajo4PKykpaW1tTXUpS5eTkUF5eTjQaTXUpIiKSBCM+sCsrKyksLGTG\njBkcenOikcPdqa2tpbKykpkzZ6a6HBERSYIR3yTe2tpKSUnJiA1rADOjpKRkxLciiIiMZiM+sIF+\nh3Xd/nZ21LckqZrkGMn/kIiIyCgJ7P5q6ehiT1M7Md3JTEREhgkFdi9yoxHcnbbO2DFvq66ujh/+\n8If9Xu+8886jrq7umN9fRERGBgV2L3KiEQBa27uOeVt9BXZnZ+cR11u5ciXFxcXH/P4iIjIyjPhe\n4vG+9T/rebW6IaFlm9s7iWZkkJV55P9p5pYV8Y0L5/U5//rrr2fr1q0sWLCAaDRKTk4OY8eOZePG\njbz22mu8//3vZ/v27bS2tnLNNdewfPly4OAwq01NTSxbtoyzzjqLp59+milTpvC73/2O3NzcxHdc\nRETSXlKPsM1sqZltMrMtZnZ9L/MvNrOXzWydma02s7MSXTfZMswG5Rz2jTfeyKxZs1i3bh3f/e53\nWbt2Ld/73vd47bXXAFixYgVr1qxh9erV3HLLLdTW1h62jc2bN/OZz3yG9evXU1xczK9//etjrktE\nRNJL0o6wzSwC3AqcC1QCL5jZQ+7+atxifwIecnc3s5OB+4GTEly33450JNxT5b791Ld0MHdy0aD2\nwF68ePEh10rfcsstPPjggwBs376dzZs3U1JScsg6M2fOZMGCBQCceuqpbNu2bdDqERGR9JDMI+zF\nwBZ3f93d24F7gYvjF3D3JvcDh7H5gCe6brLlRiN0xZyOrsHtKZ6fn3/g+RNPPMFjjz3GM888w0sv\nvcTChQt7vZY6Ozv7wPNIJHLU898iIjLyJDOwpwDb415XhtMOYWaXmNlG4GHgE/1ZN5kOdDzrOLaO\nZ4WFhTQ2NvY6r76+nrFjx5KXl8fGjRt59tlnj+m9RERk5Ep5pzN3fxB40MzeCfwr8J7+rG9my4Hl\nANOmTRu0uroDu6Wji6LcgY/PXVJSwplnnsn8+fPJzc1l4sSJB+YtXbqU22+/nTlz5nDiiSdy+umn\nH3PdIiIyMiUzsKuAqXGvy8NpvXL3J83sODMr7c+67n4HcAfAokWLBq39OpJhZGdGjvkIG+Duu+/u\ndXp2djaPPPJIr/O6z1OXlpZSUVFxYPqXvvSlY65HRETSTzKbxF8AZpvZTDPLAj4EPBS/gJkdb2GP\nLjM7BcgGahNZdyjkRDNoGYTAFhEROVZJO8J2904z+yzwRyACrHD39WZ2dTj/duADwMfNrANoAT4Y\ndkLrdd1k1dqX3GiE+pYOumIxIhkaY0ZERFInqeew3X0lsLLHtNvjnn8H+E6i6w61gx3PYuRnK7BF\nRCR1lEJHkJt1sOOZiIhIKimwjyAzw8jMyBiUMcVFRESOhQL7CMxMHc9ERGRYUGAfRW5WhNbO2IDH\nFR/o7TUBbr75Zvbv3z+gdUVEZGRRYB9FTnhv7PYB3htbgS0iIoMh5SOdDalHroedr/RrlTHuRNu7\niEQzoLdLuyb9DSy7sc/142+vee655zJhwgTuv/9+2trauOSSS/jWt75Fc3Mzl112GZWVlXR1dfG1\nr32NXbt2UV1dzdlnn01paSmPP/54f/dWRERGkNEV2ANgBhgDbhK/8cYbqaioYN26daxatYoHHniA\n559/Hnfnoosu4sknn6SmpoaysjIefvhhIBhjfMyYMdx00008/vjjlJaWDuIeiYhIOhpdgX2EI+G+\nGLBjdyMRM44bX3BMb79q1SpWrVrFwoULAWhqamLz5s0sWbKEa6+9li9/+ctccMEFLFmy5JjeR0RE\nRp7RFdgDlBuN0NDSibsf072x3Z0bbriBq6666rB5a9euZeXKlXz1q1/lnHPO4etf//qxlCwiIiOM\nOp0lICcaoTMWo3MA98aOv73m+973PlasWEFTUxMAVVVV7N69m+rqavLy8rj88su57rrrWLt27WHr\niojI6KYj7ATkxt1qM5rZv/9x4m+vuWzZMj7ykY9wxhlnAFBQUMAvfvELtmzZwnXXXUdGRgbRaJTb\nbrsNgOXLl7N06VLKysrU6UxEZJQzH2BnquFo0aJFvnr16kOmbdiwgTlz5hzTdrtizvrqeiYV5TCh\nKOeYtpVMg7GvIiIytMxsjbsvOtpyahJPQCTDyMrUiGciIpI6CuwE5UYjtCqwRUQkRUZFYA9Gs39O\nNEJbZ4yu2PA8hTCSTm2IiMjhRnxg5+TkUFtbe8yBlnvg3tjD7yjb3amtrSUnZ/ieXxcRkWMz4nuJ\nl5eXU1lZSU1NzTFtpyvm7KpvpW1PlILs4fdty8nJoby8PNVliIhIkgy/5Blk0WiUmTNnHvN23J2P\n/eujLJ0/iX+7VD2xRURkaI34JvHBYmbMLSvi1eqGVJciIiKjkAK7H+ZOLmLjzkY6uwZ2q00REZGB\nUmD3w9yyIto6Y7yxpznVpYiIyCijwO6HuZPHAPDqDjWLi4jI0EpqYJvZUjPbZGZbzOz6XuZ/1Mxe\nNrNXzOxpM3tb3Lxt4fR1Zra657qpcNz4fLIiGTqPLSIiQy5pvcTNLALcCpwLVAIvmNlD7v5q3GJv\nAO9y931mtgy4Azgtbv7Z/397dx4fV13vf/z1mSX71jRJm3RfqUGgQAFlqSL3cil6RVERxV3s5V7R\n68+rP3H96d3U664XQUCu6EVQVBSVTbjKIhdpCoUCpXtLl7RN2qbZJ5mZ7++PcyaZpEk6SWaSmeT9\nfDzmcc6cZfo9ncm8z/fM93y/zrnmTJVxtMLBAMtnl6iGLSIiEy6TNeyzgW3OuR3OuR7gTuCy5A2c\nc0845476T58Esv5G4vpar6W4ehYTEZGJlMnAngPsSXq+1182nA8C9yU9d8BDZrbezNYOt5OZrTWz\nBjNrGG/nKKmory3jcEcPh9oiGf+3REREErKi0ZmZXYgX2J9KWny+c24lsAb4sJmtHmpf59xNzrlV\nzhb8xAcAACAASURBVLlV1dXVGS9rfZ0anomIyMTLZGDvA+YlPZ/rLxvAzE4FbgEuc84dTix3zu3z\np4eAu/EusU+6FbWlAGp4JiIiEyqTgb0OWGZmi8wsD7gSuCd5AzObD/wKeLdzbkvS8mIzK03MAxcD\nz2ewrCkrKwgzv7JINWwREZlQGWsl7pyLmtm1wANAELjVOfeCmV3jr78R+AIwE/i+mQFEnXOrgFnA\n3f6yEPBT59z9mSrraNXXlrFJNWwREZlAGR38wzl3L3DvoGU3Js1fDVw9xH47gNMGL88W9XVlPPDi\nAToiUYqzcOQuERGZerKi0Vmuqa8twzl46UDbZBdFRESmCQX2GNTXlQFqKS4iIhNHgT0GteUFlBeG\n1VJcREQmjAJ7DMzM6/FMNWwREZkgCuwxqq8r46XGVo2NLSIiE0KBPUb1td7Y2LsOa2xsERHJPAX2\nGPU3PFNLcRERyTwF9hgtqS7R2NgiIjJhFNhjlBcKsGyWxsYWEZGJocAeh8TY2CIiIpmmwB6H+roy\nmtsjHGrrnuyiiIjIFKfAHof6Wr/hmWrZIiKSYQrscVhRqy5KRURkYiiwx6G8MMzcGYWqYYuISMYp\nsMdJXZSKiMhEUGCPU31dGTubO+jsiU52UUREZApTYI9TYmzszRobW0REMkiBPU4aG1tERCaCAnuc\n5lQUUlYQUsMzERHJKAX2OJkZ9XVqeCYiIpmlwE6D+tpyXmpsIxZ3k10UERGZojIa2GZ2iZltNrNt\nZnbdEOuvMrPnzGyjmT1hZqelum82qa8ro6s3prGxRUQkYzIW2GYWBK4H1gD1wDvMrH7QZjuB1zjn\nTgH+BbhpFPtmDXVRKiIimZbJGvbZwDbn3A7nXA9wJ3BZ8gbOuSecc0f9p08Cc1PdN5ssrSkhHDT9\nji0iIhmTycCeA+xJer7XXzacDwL3jXZfM1trZg1m1tDU1DSO4o5dXijA0ppS1bBFRCRjsqLRmZld\niBfYnxrtvs65m5xzq5xzq6qrq9NfuBSpi1IREcmkTAb2PmBe0vO5/rIBzOxU4BbgMufc4dHsm03q\n68poaovQ1BaZ7KKIiMgUlMnAXgcsM7NFZpYHXAnck7yBmc0HfgW82zm3ZTT7ZptEw7NNqmWLiEgG\nZCywnXNR4FrgAWAT8HPn3Atmdo2ZXeNv9gVgJvB9M9tgZg0j7ZupsqZDvcbGFhGRDApl8sWdc/cC\n9w5admPS/NXA1anum83Ki8LMqdDY2CIikhlZ0ehsqlAXpSIikikK7DSqry1jR1M7XT2xyS6KiIhM\nMQrsNKqvKyPuYPNBjY0tIiLppcBOI3VRKiIimaLATqO5MwopzQ/xYuOxyS6KiIhMMQrsNDIzXlFX\nphq2iIiknQI7zepry3jpQBtxjY0tIiJppMBOs/q6Mjp7Yuw+0jnZRRERkSlEgZ1mangmIiKZoMBO\ns2WzSggFTA3PREQkrRTYaZYfCrK0pkQ1bBERSauUAtvM/tHMyszzQzN72swuznThcpW6KBURkXRL\ntYb9AedcK3AxMAN4N/CVjJUqx9XXlnGwNUJzu8bGFhGR9Eg1sM2fXgr8xB/q0kbYflqrr9PY2CIi\nkl6pBvZ6M3sQL7AfMLNSIJ65YuU2tRQXEZF0S3U87A8CK4EdzrlOM6sE3p+5YuW2iqI86soL9Du2\niIikTao17FcDm51zLWb2LuBzgO5bGkG9uigVEZE0SjWwbwA6zew04J+A7cCPM1aqKaC+toztTe10\n92psbBERGb9UAzvqnHPAZcB/OueuB0ozV6zclxgbe4vGxhYRkTRINbDbzOzTeLdz/d7MAkA4c8XK\nffW15YAanomISHqkGthvByJ492MfAOYCX8tYqaaA/rGxFdgiIjJ+KQW2H9K3A+Vm9gag2zmn37BH\nEAgYr6hVwzMREUmPVLsmvQJ4CngbcAXwFzN7awr7XWJmm81sm5ldN8T6FWb2v2YWMbNPDFq3y8w2\nmtkGM2tI7XCyS31dGZsaWzU2toiIjFuq92F/FjjLOXcIwMyqgYeAXwy3g5kFgeuBvwb2AuvM7B7n\n3ItJmx0BPgq8aZiXudA515xiGbNOfW0ZHT0xXj7SycKq4skujoiI5LBUf8MOJMLadziFfc8Gtjnn\ndjjneoA78VqZ93HOHXLOrQN6Uy3whHjp93DfcRcERi3RRal+xxYRkfFKNbDvN7MHzOx9ZvY+4PfA\nvSfYZw6wJ+n5Xn9ZqhzwkJmtN7O1w21kZmvNrMHMGpqamkbx8iNofA7+cgNsHPYCQkqW1pQQDJh+\nxxYRkXFLtdHZJ4GbgFP9x03OuU9lsmDA+c65lcAa4MNmtnqYst3knFvlnFtVXV2dnn959Sdh7lnw\nu49Dy8tjfpmCcJCl1SWqYYuIyLilWsPGOfdL59zH/cfdKeyyD5iX9HyuvyzVf2+fPz0E3I13iX1i\nBENw+c3g4vCrv4P42HsrUxelIiKSDiMGtpm1mVnrEI82MztRCq0DlpnZIjPLA64E7kmlUGZW7I8I\nhpkV443D/Xwq+6ZN5SJ4/dfh5Sfg8W+O+WXqa8s40NrNkY6eNBZORESmmxFbiTvnxtz9qHMuambX\nAg8AQeBW59wLZnaNv/5GM5sNNABlQNzMPgbUA1XA3WaWKONPnXP3j7UsY3bq22Hrg/DHL8Pi18Hc\nM0f9EsljY5+3tCrdJRQRkWki1du6xsQ5dy+DGqc5525Mmk/0mjZYK3BaJsuWEjN4/Tdhz1Pwyw/C\nNY9DfsmoXuIV/tjYT2xvVmCLiMiYpfwb9rRVWAGX3wQtu+H+0bezqyzO429OnsWNj+zgz9ty9pZy\nERGZZArsVCw4F87/ODzz3/DCr0e9+zeuWMnS6hL+4fan2dnckYECiojIVKfATtVrr4O6M+C3H4Vj\ne0e1a0l+iFveu4qAwdW3raO1O7v6iRERkeynwE5VMAxvuQViUbj7mlHf6jWvsogb3nUmuw938pGf\nPkNM/YuLiMgoKLBHY+YSuPQ/YNdj8MT3Rr37qxbP5EuXncwjW5r4yn2bMlBAERGZqhTYo7XyKqi/\nDP7nX2D/M6Pe/apzFvCeVy/g5sd28ov1o7u0LiIi05cCe7TM4A3fhuIa+OXV0DP6RmSff0M95y6Z\nyWd+tZH1u49koJAiIjLVKLDHoqgSLv8BHN4OD3xm1LuHgwG+f9UZ1FYU8Hc/eZr9LV0ZKKSIiEwl\nCuyxWrQazvtHWP8j2PS7Ue9eUZTHD9+7ikhvjA/9uIHOnmj6yygiIlOGAns8Lvws1J4G93wEWhtH\nvfvSmlK++47TebGxlU/c9SxxtRwXEZFhKLDHI5QHb/kh9HbBr6+BeHzUL3Hhiho+vWYF9248wHf/\nZ2sGCikiIlOBAnu8qpbBJV+GHX+CJ78/ppf40AWLufyMOXz7oa3ct3H0NXUREZn6FNjpcOb7YMUb\n4OEvQeNzo97dzPj3N5/C6fMr+PjPn+WF/cfSX0YREclpCux0MIO//S4UVvq3enWO+iUKwkF+8O4z\nqSgK86HbGmhqi2SgoCIikqsU2OlSPBPefAM0b4Y/fH5ML1FTWsDN71nFkc4ervnv9USio+v+VERE\npi4FdjoteR28+lpYdwtsvn9ML/HKOeV8420rWb/7KJ+7+3mcU8txERFRYKffRV+AWafAbz4MbQfH\n9BKvP7WWj160jLvW7+WHj+9McwFFRCQXKbDTLZTvjerV0w6/+Ycx3eoF8LGLlrHmlbP593s38cfN\nh9JcSBERyTUK7EyoWQEX/ytsewieumlMLxEIGN+44jROml3GR3/6DNsOtae5kCIikksU2Jly1tWw\n/BL4wxfg4AtjeomivBA3v+dM8sMBPvTjBo519qa5kCIikisU2JliBm/8Tygo92716u0e08vMnVHE\nje86k71HO/nwT58mGhvbJXYREcltGQ1sM7vEzDab2TYzu26I9SvM7H/NLGJmnxjNvjmhpBredAMc\nehFuvRi2/3FML7NqYSX/9uZTeHxbM//6+01pLqSIiOSCjAW2mQWB64E1QD3wDjOrH7TZEeCjwNfH\nsG9uWPZXXn/jnUfgJ2+C294I+9aP+mWuWDWPD56/iB89sYs7nno5AwUVEZFslska9tnANufcDudc\nD3AncFnyBs65Q865dcDgH2dPuG9OOeWt8JH1cMlX4ODzcPPr4OfvgebRDfbx6TUrWL28ms/9+nm+\n89BWenV5XERk2shkYM8B9iQ93+svS+u+ZrbWzBrMrKGpqWlMBZ0QoXx41d/DRzfAa66DbQ/D9ed4\nQ3Me25faSwQDXP/O0/nbU2v51kNbeOsNT6j1uIjINJHzjc6cczc551Y551ZVV1dPdnFOrKAMLvy0\nF9xnr4UNd8D3zoAHP+9dNj+B0oIw377ydK5/5xm8fKST13/3Mf7rzzs1lraIyBSXycDeB8xLej7X\nX5bpfXNDSTWs+Yp3qfzkN8MT34PvrITHvgE9HSfc/fWn1vLA/1nN+Uur+NJvX+SqW/7CvpauCSi4\niIhMhkwG9jpgmZktMrM84ErgngnYN7fMWABvvhH+/glYeB48/M/w3dO9/shjI993XVNawC3vXcVX\n33IKz+1t4ZJvPcov1u9V/+MiIlOQZfLL3cwuBb4NBIFbnXP/ZmbXADjnbjSz2UADUAbEgXag3jnX\nOtS+J/r3Vq1a5RoaGjJ0NBPk5SfhoS/Cy/8LMxbB6z4HJ18OgZHPrfYc6eSffv4sT+06wsX1s/j3\ny0+hqiR/YsosIiJjZmbrnXOrTrjdVKqNTYnABnAOtv4BHv6S16p89ilw0Rdh6UVehyzDiMUdtz6+\nk689sJnSghBfvvwULj559sSVW0RERi3VwM75RmdTkhksvxj+7jG4/GboboXb3wI/egPsWTfsbsGA\n8aHVi/ntR85ndnkBa3+ynk/c9Syt3erSVEQk16mGnQuiPfD0bfDIV6GjCZavgbM+CIsvhGBoyF16\nonG+9z9b+f6ftjO7rICvve1Uzl1SNcEFFxGRE9El8ako0g5P3gBPfh+6jkDJbDj1Clh5lTdC2BCe\nefko//TzZ9nR3MH7z1vIpy5ZQUE4OMEFFxGR4Siwp7JoD2x9ADb8FLY+CPEo1J0BK98Jr3wLFFUO\n2LyrJ8ZX73+JHz2xiyXVxXzzipWcNq9ikgovIiLJFNjTRXsTbLzLC++DGyGYByet8WrdSy4acMn8\n8a3NfPIXz3KoLcK1Fy7l2tctJRxUMwYRkcmkwJ6OGp+DZ++A534GnYehuAZOezuc9k6Y5Y2dcqyr\nly/d8wK/emYfp8wp51tvP42lNaWTXHARkelLgT2dRXtg2x+8WveW+71L5rUrvVr3KW+Fokru29jI\nZ+7eSEdPjH947RLe++qFzCjOm+ySi4hMOwps8XQ0w8ZfwIbb4cBzEAjDSZfAyqtomnUBn//tZu5/\n4QCF4SBXrJrL1RcsZl5l0WSXWkRk2lBgy/EOPN9/ybyjCYqr4ZQr2Ft5Dne8FOeOzVFa4oWsOaWO\ntRcsVsM0EZEJoMCW4cV6YdtDXq178/0Q7+9YpSdQwL7YDPbHK4mW1LJg4RLmL1xGoHwOlNV5j6Kq\nE3aVKiIiqUk1sIfudUOmtmDYa0l+0hpvSM/mrdC6D1r3k9e6n7kteylq3EX82AaqXvwjgU2xgfsH\nwlBWC6V1/SFeNsdbVj4PauohT5fVRUTSSYE93RVVwvxzBiwKA7OA3lic3z27l7se2UDbod2cVNTK\nGxfB2TO7Keg6CK37oXEDbL4Xot39L2BBr1X6nDNhzipvWn0SBNRhi4jIWOmSuJyQc47HtzVz06M7\neGxrM0V5Qa48az4fOH8hc2cUeYOVdB31ArxlN+x/Bvat9x7dx7wXySuButP9ED8T5q7yauYiItOc\nfsOWjHhxfys3P7aD3z67Hwe8/pRa1q5ezCvnlB+/cTwOR3bAvgYvvPc2wIGN/b+Zl9YODPC60yFf\n94SLyPSiwJaM2t/SxX/9eSd3PLWH9kiUc5fMZO3qxbxmeTU2whCgRCNeaCcCfN96OLLdX2lQvcIP\ncD/Ia+q939xFRKYoBbZMiNbuXu74y8vc+uedHGyNsHxWCWteWcvq5dWcNrecUCpdn3Yegf1Pw17/\nMvq+Bq+nNoBACCoWQOVimLnEm1YugcpF3vJhRisTEckVCmyZUD3ROPc8u5/b/7KbDXtacA5KC0Kc\nt6SK1curuWBZVeodsjjn/Ra+twEOvQiHt3uX1o/sgJ72/u0CIaiY7wf44oGhXjFfNXMRyQkKbJk0\nLZ09/HnbYR7d0sSjW5toPOa1IF9cVcwFy6q4YFk1r14yk+L8UdaOnfM6fOkLcH+aeJ4c5hb0QntA\nrXwxlNRA4QzvkV8KI12+nwixKHS3QFcLuLh3khHM8x9hCOV782phLzJlKbAlKzjn2N7UwaNbmnhs\naxNP7jhCV2+McNA4Y/4MVi+vZvWyak6uKyMQGEd4JsI8OcD7An0H9LQdv08g1B/exz0qobBi6HUF\n5QODPhb1WsMngrf7qD/1n3cdTVp3LGnd0YEnGSOxwMAg75vmD1qWFPT5ZV5Zh3yUQUFF/3NdjZg+\noj1wdCcc2Qmls6BqOeQVT3appjUFtmSlSDTG+l1HeXRrM49uaeLFxlYAKovzOG9pFav9Gvjs8oL0\n/aPOeX2qH9kBnc1eUHYd9X47T8z3PVqg68jIQWpBL8xDhRBp9R4jCRV62xdUDJwWzhi4LBD0eqGL\n9fiPXohFhlg2wnzUfx7thkibfyJxDFxs5DKGi0YI93Jv/YAThqSThkB4FMvzvBMlF/NOdOK93uA0\nseRpr7/OX3+idWbHn5wknocLJ/8qymTpPuZ1itS0GZq3ePPNm72gHvB5MO9qVM0rvEaf1SugZgVU\nnTR5HSDFer2/wd4u/9E5cNrTMfy6AfP+dvGYdxvpjIVe25cZC7xpxfys6ORJgS05oaktwuPbmnhs\nSzOPbm2muT0CwEmzSrlgmff799mLKikIT/Al4WhPfy04+ZEc8r1dXigMFcYFFf218XAaTz7Gwjnv\nCy4R3kM+WkZef6LAz1aBsH81YYgwLyj3rzKUDVwXCCWdSCRODhInF7H+E4jBj5i/Pp603sUhf6TP\nSMX4rm445/VS2LwFmrb4wew/2g8O/H+YucSrTScelYugrdEL9EOboOklL9T7uirOQJDHotBxCNoO\n+I/G/mn7wf7nHc3AKLMpVOidoIWL/Kk/n1fkHcuxvdDyMkS7Bu5XXNMf4IOn5XMn5OpTVgS2mV0C\nfAcIArc4574yaL356y8FOoH3Oeee9tftAtqAGBBN5WAU2LnNOcemxjYe2+r99r1u51F6YnEKwgFe\ntXgmr11ezWtOqmHhzKKRbx2T9HLOux0vUaNN1ObjSfOjXW5BvxYe6p/2zYeHWBf27ggYap1zA68m\nRAafcLQmrWsduK63MzP/Z4njwY4PiMHCxUNfcRlq2ts5KJi3erXIhPxyqF7uhWrVMi+Yq09K/Y6K\nWK9XA2/aBIde8kI81SAvmeWH7sGBQdx2ANr9gG4/xHFBbAEvNEtneX0zlM6Gktne8Q4VwH3Tov7n\noYLUxjdwzitDy244uhtadvlT//mxvQNPTi0AZXOPD/KqZTDnjBP/eyma9MA2syCwBfhrYC+wDniH\nc+7FpG0uBT6CF9jnAN9xzp3jr9sFrHLONaf6byqwp5aunhhP7jzMI5ubeGRLEzubvS+m+ZVFvGZ5\nNa9ZPsbGayIJsV4/0Fv6wzweG3gSMeBkIuT9dBFIPskI9Z9UJNYnn1BGe5LaOAxq3zB4OqC9Q8vw\nJxTl8/oDOfGoPskbgS8TJ7MpBflgBsVVXgAngri01gv25OfF1dlze2Ys6l2x6Av0QdP2A95288+F\nD9yXtn82GwL71cAXnXN/4z//NIBz7stJ2/wA+JNz7g7/+Wbgtc65RgW2DLb7sNd47ZEtTfx522G6\nemPkBQOctWiGH+A1LJ9Votq3TB3RSH9Dxa6jXmPCmUshv2SyS+ZJDvKOJq9m3FdLrpl6jRl7u6Bl\nj3eVaPYr0/ay2RDYbwUucc5d7T9/N3COc+7apG1+B3zFOfe4//xh4FPOuQYz2wkcw7sk/gPn3E3D\n/DtrgbUA8+fPP3P37t0ZOR7JLpFojIZdR3lkSxOPbG5i80GvFXhteUFf7fvcpVWUF06xLwwRmXKm\nwvCa5zvn9plZDfAHM3vJOffo4I38IL8JvBr2RBdSJkd+KMh5S6s4b2kVn7n0Fexv6eqrff/+uUbu\nXLeHYMA4Y34Fr1lezWtPqqG+dpy3jomITKJMBvY+YF7S87n+spS2cc4lpofM7G7gbOC4wBYBqKso\n5Mqz53Pl2fPpjcXZsKeFP20+xCNbmvj6g1v4+oNbqCrJ45VzyllWU8LSxKO6lPIi1cJFJPtlMrDX\nAcvMbBFeCF8JvHPQNvcA15rZnXiNzo75v18XAwHnXJs/fzHwzxksq0wh4WCAsxZWctbCSj75Nyto\naovw2NYmHtvazKbGVp7YfpieaLxv+6qSfJbWFLO0poRlNaV9YV5Tmq/fw0Uka2QssJ1zUTO7FngA\n77auW51zL5jZNf76G4F78VqIb8O7rev9/u6zgLv9L8sQ8FPn3P2ZKqtMbdWl+Vx+xlwuP2MuALG4\nY+/RTrYdau9/NLXzm2f20xaJ9u1Xmh9iSVJtPFEznzujiKAurYvIBFPHKSI+5xyH2iIDg9wP86a2\nSN92eaEAi6u8GvmS6hKW1JSwpLqYxVUlFOapz28RGZ2p0OhMZEKZGbPKCphVVsB5S6sGrDvW2cu2\npna2+wG+7VA7z+09xu83NpJ8zjunorAvwJdUJwK9mOoSXV4XkfFRYIukoLwozJkLZnDmghkDlnf3\nxth1uIPthzrY3tTO9qZ2djR18LNdR+js6e8xqbQgNCDAF1eVsLSmmPmVxeSFUuihSUSmPQW2yDgU\nhIOsmF3GitllA5Y75zjQ2j0gyLc3tfPnbc388um9fdsFA8aCyiIWV5ewcGYR82cWMW9GEfMqC5k7\no2ji+1AXkaylwBbJADOjtryQ2vJCzl828PJ6eyTKjkSIJwX6Y1ubiCS1XgeoKc1nXmUR82YU+tMi\nb1rpvbYav4lMHwpskQlWkh/i1LkVnDq3YsBy5xxNbRH2HO1kz5Eu9hzp5OUjnew52sm6XUe559n9\nxJN+Lw8FjLqKQuZVFjK/soi5iTD3w31mcZ5+NxeZQhTYIlnCzKgpK6CmrIAzFxy/vjcWZ39Llxfm\nRzuTAr2LB184yOGOngHb54cCzKkoZM6MQurKC6mrKKSuooA5MwqZU1HI7PIC8kO65C6SKxTYIjki\nHAywYGYxC2YWD7m+IxIdUDvf39LF/mNd7GvpZlPjob6xxpNVl+Z7oe6HeV3fvDetKAqrli6SJRTY\nIlNEcX5oyAZwCd29MQ4c62Z/Sxf7/Mf+li72t3SzqbGVhzYdPO439KK8IHUVhVSX5FNSEKIk33sU\n54coLQhRnBekpCBMSX6QkvwwxflBb3liu7yQ+m8XSRMFtsg0URAOsrCqmIVVQ9fQnXMc7ujxQ9yr\nme876s03t0fYc6STjp4o7d1R2iNRemOpdbpUnBf0ArwgRKk/rSrJZ3Z5AbPLCqgt9+59n11eQHVJ\nPqGgbnMTGYoCW0QA7zf0qpJ8qkryj2sQN5RINEZHJNYX4O2RKB2RKG3+tL174Hy7H/Zt3b08/fJR\nDh6L0BMbWKMPmHeZfnZ5IbPL8qktL/TDPJ/ZZYV9Ia8e5WQ6UmCLyJjkh4Lkh4JUFueNaX/nHEc6\nejjQ2s2BY939U39+R1MHT2w/TFt39Lh9ywvDfTXzWWXeScbMknyqSvL8eW86oyhPt77JlKHAFpFJ\nYWbM9IP25LryYbfriESPC/Pk6abGVo509BCNH3+J3gwqi/L6AnxmST4zi/OSgt0L92p/WpSnr0TJ\nXvp0ikhWK87v79Z1OPG4o7W7l+b2Hg63R7xphzdtbo9wuD3C4fYent93jOa2yIBR2ZIVhoOUF3qN\n50r839uL80L9832N6fob2yWWJRrjJZ6rZi/ppsAWkZwXCBgVRXlUFOWxtGb4YE/o7o1xpCMR5v60\no4fmtgit3b10RGJ9v78fbu+krTva1+BuqJr8UArDiTD3psV5IYqTAr7YD/7kkC/KCw4I/uKkfXUC\nIApsEZl2CsJBvyOZwlHt55wjEo3TEYl6De6SGtsdN58I+UiMTn9ZU3uEXYc7aY9E6YxE6UgaIOZE\nEicAZQXeLXWlBWFK/VvtEvOlBSHK+ubDXsv8pOX5oYDuq89hCmwRkRSZGQXhIAXhIDNPXJE/oXjc\n0dkb808A+k8COiJe2HdEYn0nAJ093rS1O0qb39r+QGs3bd29/snBicM/HLQBQV+SuJ8+cW99/vHz\n3v33x1/6D+v2uwmnwBYRmSSBgPWF4HjF4o727iit3b19gd7m33LX1t07IOgT045IjP0t3QOuDAzu\nPGc4+aHAgN/5i/KC5IUChIIB8oJGOBggHAwQChp5/rz36F8XDnnrQgEjHPKW5SXtkx8O+lNveUE4\nQF4w2Pc8MZ0u9+4rsEVEpoBgwCgvClNeFB7X6/TG4sdd4m/r7q/tt/VdDRg43xGJefv2xIjG4vTG\n4vTGHD3RONG4N98bjdPrz8dSbAuQimDABgR43zTknUTkh7zwzw8FKPCn3sML/wJ/2rcsebvw8cuK\n80NUl+anrfypUmCLiEifcDDQ14Avk2JxR28sTjTuB3ksTq8/3xOL0xONE4kmprFBz+P0RGNETrBN\nxF8eicY51tVLpLd/m+7eWN/6VHvtSzhr4QzuuubcDP3PDE+BLSIiEy4YMIIBv8e6ia+sDhCLe1cC\nkkM8Eo0T6Y3THY0R6U1aFo1RUZjZk5nhKLBFRGRaCwaMwrxg1nd5Oz1+qRcREclxGQ1sM7vEzDab\n2TYzu26I9WZm3/XXP2dmZ6S6r4iIyHSSscA2syBwPbAGqAfeYWb1gzZbAyzzH2uBG0axr4iI+FSd\nwgAAB1FJREFUyLSRyRr22cA259wO51wPcCdw2aBtLgN+7DxPAhVmVpviviIiItNGJgN7DrAn6fle\nf1kq26SyLwBmttbMGsysoampadyFFhERyUY53+jMOXeTc26Vc25VdXX1ZBdHREQkIzJ5W9c+YF7S\n87n+slS2Caewr4iIyLSRycBeBywzs0V4YXsl8M5B29wDXGtmdwLnAMecc41m1pTCvsdZv359s5nt\nTlP5q4DmNL3WZNExZAcdQ3bQMWQHHcPxFqSyUcYC2zkXNbNrgQeAIHCrc+4FM7vGX38jcC9wKbAN\n6ATeP9K+KfybabsmbmYNzrlV6Xq9yaBjyA46huygY8gOOoaxy2hPZ865e/FCOXnZjUnzDvhwqvuK\niIhMVznf6ExERGQ6UGAP76bJLkAa6Biyg44hO+gYsoOOYYzMuyotIiIi2Uw1bBERkRygwBYREckB\n0z6wxzOiWDYws3lm9kcze9HMXjCzfxxim9ea2TEz2+A/vjAZZR2Jme0ys41++RqGWJ/t78NJSf+/\nG8ys1cw+NmibrHsfzOxWMztkZs8nLas0sz+Y2VZ/OmOYfbNiRL1hjuFrZvaS/1m528wqhtl3xM/d\nRBnmGL5oZvuSPi+XDrNvNr8PP0sq/y4z2zDMvtnyPgz5fZo1fxPOuWn7wLvHezuwGMgDngXqB21z\nKXAfYMCrgL9MdrkHla8WOMOfLwW2DHEMrwV+N9llPcFx7AKqRlif1e/DEJ+rA8CCbH8fgNXAGcDz\nScv+A7jOn78O+Oowxzji384kH8PFQMif/+pQx5DK526Sj+GLwCdS+Kxl7fswaP03gC9k+fsw5Pdp\ntvxNTPca9nhGFMsKzrlG59zT/nwbsIlhBkrJcVn9PgxyEbDdOZeuXvcyxjn3KHBk0OLLgNv8+duA\nNw2xa9aMqDfUMTjnHnTORf2nT+J1b5y1hnkfUpHV70OCmRlwBXDHhBZqlEb4Ps2Kv4npHtjjGVEs\n65jZQuB04C9DrD7Xvzx4n5mdPKEFS40DHjKz9Wa2doj1OfM+4HWlO9wXU7a/DwCznHON/vwBYNYQ\n2+TS+/EBvKszQznR526yfcT/vNw6zGXYXHkfLgAOOue2DrM+696HQd+nWfE3Md0De8owsxLgl8DH\nnHOtg1Y/Dcx3zp0KfA/49USXLwXnO+dWAmuAD5vZ6sku0FiYWR7wRuCuIVbnwvswgPOu9eXsvZ9m\n9lkgCtw+zCbZ/Lm7Ae/y6kqgEe+Scq56ByPXrrPqfRjp+3Qy/yame2CPZ0SxrGFmYbwP1+3OuV8N\nXu+ca3XOtfvz9wJhM6ua4GKOyDm3z58eAu7Gu7yULOvfB98a4Gnn3MHBK3LhffAdTPzc4E8PDbFN\n1r8fZvY+4A3AVf6X7HFS+NxNGufcQedczDkXB25m6LLlwvsQAi4HfjbcNtn0PgzzfZoVfxPTPbD7\nRhTza0ZX4o0gluwe4D1+K+VX4Y8oNtEFHY7/29APgU3OuW8Os81sfzvM7Gy89/3wxJVyZGZWbGal\niXm8BkPPD9osq9+HJMPWJLL9fUhyD/Bef/69wG+G2CaVv51JY2aXAP8XeKNzrnOYbVL53E2aQW00\n3szQZcvq98H3V8BLzrm9Q63MpvdhhO/T7PibmOxWeZP9wGt9vAWvdd9n/WXXANf48wZc76/fCKya\n7DIPKv/5eJdnngM2+I9LBx3DtcALeK0WnwTOnexyDzqGxX7ZnvXLmXPvg1/GYrwALk9altXvA97J\nRSPQi/eb2weBmcDDwFbgIaDS37YOuDdp3+P+drLoGLbh/Z6Y+Ju4cfAxDPe5y6Jj+In/WX8O74u/\nNtfeB3/5jxJ/A0nbZuv7MNz3aVb8TahrUhERkRww3S+Ji4iI5AQFtoiISA5QYIuIiOQABbaIiEgO\nUGCLiIjkAAW2iIybeSOR/W6yyyEylSmwRUREcoACW2QaMbN3mdlT/rjDPzCzoJm1m9m3/PF/Hzaz\nan/blWb2pPWPKT3DX77UzB4ys2fN7GkzW+K/fImZ/cK8cahvT/TqJiLpocAWmSbM7BXA24HznDfQ\nQgy4Cq+Htgbn3MnAI8D/83f5MfAp5w1WsjFp+e3A9c6504Bz8Xq3Am9ko4/hjR+8GDgv4wclMo2E\nJrsAIjJhLgLOBNb5ld9CvEEM4vQPzPDfwK/MrByocM494i+/DbjL7/N5jnPubgDnXDeA/3pPOb+/\naDPbACwEHs/8YYlMDwpskenDgNucc58esNDs84O2G2t/xZGk+Rj6fhFJK10SF5k+HgbeamY1AGZW\naWYL8L4H3upv807gcefcMeComV3gL3838Ihzrg3Ya2Zv8l8j38yKJvQoRKYpnQGLTBPOuRfN7HPA\ng2YWwBtV6cNAB3C2v+4Q3u/c4A0jeKMfyDuA9/vL3w38wMz+2X+Nt03gYYhMWxqtS2SaM7N251zJ\nZJdDREamS+IiIiI5QDVsERGRHKAatoiISA5QYIuIiOQABbaIiEgOUGCLiIjkAAW2iIhIDvj/I2oK\nJbyTusYAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_history(history_short)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define more complicated model with two extra layers" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model_long = Sequential()\n", "model_long.add(Dense(512, input_shape=(784,), activation='relu')) \n", "model_long.add(Dropout(0.2))\n", "for _ in range(2):\n", " model_long.add(Dense(512, activation='relu'))\n", " model_long.add(Dropout(0.2))\n", "model_long.add(Dense(n_classes, activation='softmax'))\n", "model_long.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Train it" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 60000 samples, validate on 10000 samples\n", "Epoch 1/100\n", "60000/60000 [==============================] - 3s 44us/step - loss: 0.3018 - acc: 0.9059 - val_loss: 0.1237 - val_acc: 0.9626\n", "Epoch 2/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.1146 - acc: 0.9651 - val_loss: 0.0838 - val_acc: 0.9739\n", "Epoch 3/100\n", "60000/60000 [==============================] - 2s 39us/step - loss: 0.0830 - acc: 0.9742 - val_loss: 0.0878 - val_acc: 0.9736\n", "Epoch 4/100\n", "60000/60000 [==============================] - 2s 39us/step - loss: 0.0639 - acc: 0.9806 - val_loss: 0.0852 - val_acc: 0.9738\n", "Epoch 5/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.0504 - acc: 0.9843 - val_loss: 0.0631 - val_acc: 0.9809\n", "Epoch 6/100\n", "60000/60000 [==============================] - 4s 62us/step - loss: 0.0402 - acc: 0.9869 - val_loss: 0.0651 - val_acc: 0.9813\n", "Epoch 7/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.0363 - acc: 0.9886 - val_loss: 0.0649 - val_acc: 0.9825\n", "Epoch 8/100\n", "60000/60000 [==============================] - 2s 39us/step - loss: 0.0301 - acc: 0.9902 - val_loss: 0.0651 - val_acc: 0.9824\n", "Epoch 00008: early stopping\n", "Test accuracy: 0.9809\n", "Training time: 20.911303997039795 sec\n" ] } ], "source": [ "accuracy_long, t_long, history_long = train_model(model_long)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_history(history_long)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define simple model excluding the output layer using Keras Functional API" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Combine first two layers into a separate model" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "inp = keras.layers.Input(shape=(784,))\n", "out = Dense(512, activation='relu')(inp)\n", "out = Dropout(0.2)(out)\n", "model_head = keras.Model(inputs=[inp], outputs=[out])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Last layer" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model_output = Dense(n_classes, activation='softmax', input_shape=(512,))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Combine two parts" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model_1 = Sequential()\n", "model_1.add(model_head)\n", "model_1.add(model_output)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compile" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model_1.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adadelta(), metrics=['accuracy'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Train the model" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 60000 samples, validate on 10000 samples\n", "Epoch 1/100\n", "60000/60000 [==============================] - 2s 33us/step - loss: 0.3154 - acc: 0.9104 - val_loss: 0.1582 - val_acc: 0.9538\n", "Epoch 2/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.1409 - acc: 0.9590 - val_loss: 0.1018 - val_acc: 0.9705\n", "Epoch 3/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.1004 - acc: 0.9703 - val_loss: 0.0870 - val_acc: 0.9741\n", "Epoch 4/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0780 - acc: 0.9774 - val_loss: 0.0763 - val_acc: 0.9774\n", "Epoch 5/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0648 - acc: 0.9805 - val_loss: 0.0682 - val_acc: 0.9792\n", "Epoch 6/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0547 - acc: 0.9836 - val_loss: 0.0661 - val_acc: 0.9805\n", "Epoch 7/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0473 - acc: 0.9859 - val_loss: 0.0606 - val_acc: 0.9819\n", "Epoch 8/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0403 - acc: 0.9883 - val_loss: 0.0611 - val_acc: 0.9814\n", "Epoch 9/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0354 - acc: 0.9899 - val_loss: 0.0571 - val_acc: 0.9820\n", "Epoch 10/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0311 - acc: 0.9912 - val_loss: 0.0562 - val_acc: 0.9818\n", "Epoch 11/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0268 - acc: 0.9923 - val_loss: 0.0596 - val_acc: 0.9814\n", "Epoch 12/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0242 - acc: 0.9932 - val_loss: 0.0573 - val_acc: 0.9816\n", "Epoch 13/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0220 - acc: 0.9936 - val_loss: 0.0555 - val_acc: 0.9825\n", "Epoch 14/100\n", "60000/60000 [==============================] - 3s 53us/step - loss: 0.0201 - acc: 0.9944 - val_loss: 0.0545 - val_acc: 0.9823\n", "Epoch 15/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0172 - acc: 0.9958 - val_loss: 0.0546 - val_acc: 0.9825\n", "Epoch 16/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0166 - acc: 0.9955 - val_loss: 0.0535 - val_acc: 0.9844\n", "Epoch 17/100\n", "60000/60000 [==============================] - 2s 31us/step - loss: 0.0146 - acc: 0.9964 - val_loss: 0.0545 - val_acc: 0.9831\n", "Epoch 18/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0131 - acc: 0.9967 - val_loss: 0.0545 - val_acc: 0.9830\n", "Epoch 19/100\n", "60000/60000 [==============================] - 2s 30us/step - loss: 0.0122 - acc: 0.9968 - val_loss: 0.0544 - val_acc: 0.9835\n", "Epoch 00019: early stopping\n", "Test accuracy: 0.9844\n", "Training time: 36.56938576698303 sec\n" ] } ], "source": [ "accuracy_short2, t_short2, history_short2 = train_model(model_1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Construct two extra layers with shortcut connection" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "inp_3 = keras.layers.Input(shape=(512,))\n", "out = Dense(512, activation='relu', kernel_initializer='zeros')(inp_3)\n", "out = Dropout(0.2)(out)\n", "out = Dense(512, activation='relu', kernel_initializer='zeros')(inp_3)\n", "out = keras.layers.Add()([out, inp_3])\n", "res_layers = keras.Model(inputs=[inp_3], outputs=[out])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Put all together" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model_long_res = Sequential()\n", "model_long_res.add(model_head)\n", "model_long_res.add(res_layers)\n", "model_long_res.add(model_output)\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model_long_res.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adadelta(), metrics=['accuracy'])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 60000 samples, validate on 10000 samples\n", "Epoch 1/100\n", "60000/60000 [==============================] - 2s 38us/step - loss: 0.0144 - acc: 0.9963 - val_loss: 0.0532 - val_acc: 0.9835\n", "Epoch 2/100\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.0134 - acc: 0.9966 - val_loss: 0.0546 - val_acc: 0.9835\n", "Epoch 3/100\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.0117 - acc: 0.9973 - val_loss: 0.0563 - val_acc: 0.9835\n", "Epoch 4/100\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.0110 - acc: 0.9972 - val_loss: 0.0555 - val_acc: 0.9825\n", "Epoch 00004: early stopping\n", "Test accuracy: 0.9835\n", "Training time: 8.824687242507935 sec\n" ] } ], "source": [ "accuracy_long_res, t_long_res, history_long_res = train_model(model_long_res)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAewAAAH+CAYAAABeND3wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmYXVWd7vHvW0NSqcxkkqSApBUwMReDFhEHukUcEkBR\n7EsDHVEcIiqKPjQKtEPTT7ed7vbaYosiSm5jKyACUVqjBGTqvoyVEDCRYGIAMwAJ0UxkquF3/9ir\nkl1VJ6mTpE6dOlXv53nOk332WmuftasK3rPWnhQRmJmZWd9WVe4OmJmZWfcc2GZmZhXAgW1mZlYB\nHNhmZmYVwIFtZmZWARzYZmZmFcCBbdYPSfoPSf9QZN1nJb291H0ys8PjwDYzM6sADmwz67Mk1ZS7\nD2Z9hQPbrEzSVPRlkp6U9LKk6yVNkPRLSdsk3S1pdK7+eyQtl7RZ0n2SpubKTpS0JLX7MVDX6bPO\nlLQ0tX1Q0glF9vEMSY9L2ippjaS/61T+lrS9zan8Q2n9EEn/R9JzkrZI+p+07q2S1hb4Obw9Lf+d\npFsl/VDSVuBDkmZKeih9xvOSviVpUK79ayTdJemPkl6UdKWkV0jaIWlMrt7rJG2UVFvMvpv1NQ5s\ns/J6P/AO4Djg3cAvgSuBcWT/fX4GQNJxwE3AZ1PZQuC/JA1K4fVT4D+BI4CfpO2S2p4IzAc+DowB\nvgvcIWlwEf17GbgAGAWcAXxC0nvTdo9J/f331KcZwNLU7mvA64E3pT59Hmgr8mdyFnBr+swfAa3A\n54CxwBuB04BPpj4MB+4GfgVMBF4F/DoiXgDuA87JbfcDwM0R0VxkP8z6FAe2WXn9e0S8GBHrgP8G\nHomIxyNiF7AAODHV+yvgFxFxVwqcrwFDyALxZKAW+EZENEfErcBjuc+YC3w3Ih6JiNaIuAHYndod\nUETcFxG/iYi2iHiS7EvDX6Ti84G7I+Km9LmbImKppCrgw8AlEbEufeaDEbG7yJ/JQxHx0/SZOyNi\ncUQ8HBEtEfEs2ReO9j6cCbwQEf8nInZFxLaIeCSV3QDMAZBUDZxH9qXGrCI5sM3K68Xc8s4C74el\n5YnAc+0FEdEGrAEmpbJ10fFJPs/llo8BLk1TypslbQaOSu0OSNIbJN2bppK3ABeRjXRJ2/h9gWZj\nyabkC5UVY02nPhwn6eeSXkjT5F8tog8APwOmSZpCNouxJSIePcQ+mZWdA9usMqwnC14AJIksrNYB\nzwOT0rp2R+eW1wD/GBGjcq/6iLipiM+9EbgDOCoiRgLXAu2fswZ4ZYE2LwG79lP2MlCf249qsun0\nvM6PEPwOsAI4NiJGkB0yyPfhzwp1PM1S3EI2yv4AHl1bhXNgm1WGW4AzJJ2WTpq6lGxa+0HgIaAF\n+IykWklnAzNzbb8HXJRGy5I0NJ1MNryIzx0O/DEidkmaSTYN3u5HwNslnSOpRtIYSTPS6H8+8HVJ\nEyVVS3pjOmb+O6AufX4t8EWgu2Ppw4GtwHZJrwY+kSv7OXCkpM9KGixpuKQ35Mp/AHwIeA8ObKtw\nDmyzChART5ONFP+dbAT7buDdEbEnIvYAZ5MF0x/JjnffnmvbBHwM+BbwJ2BVqluMTwJ/L2kb8GWy\nLw7t2/0DcDrZl4c/kp1w9tpU/DfAb8iOpf8R+GegKiK2pG1+n2x24GWgw1njBfwN2ReFbWRfPn6c\n68M2sunudwMvACuBU3Pl/4/sZLclEZE/TGBWcdTxsJeZWf8i6R7gxoj4frn7YnY4HNhm1m9JOgm4\ni+wY/LZy98fscHhK3Mz6JUk3kF2j/VmHtfUHJQ1sSbMkPS1plaTLC5SPlrRA2Z2eHpU0PVd2iaRl\n6c5On82tnyHp4XTXpqZ0IoyZWQcR8cGIGBkR/1Huvpj1hJIFdrpc4xpgNjANOE/StE7VrgSWRsQJ\nZHdTujq1nU52ksxMspNYzpT0qtTmX4CrImIG2Ukw/1KqfTAzM+srSnlj/ZnAqohYDSDpZrJbDv42\nV2caMA8gIlZImixpAjCV7I5PO1Lb+8nOgv0Xsms0R6T2I8muTz2gsWPHxuTJk3tin8zMzHrU4sWL\nX4qIzvcj6KKUgT2JjncsWgu8oVOdJ8iC+L/T1PYxQAOwDPjHdOP+nWSXjjSlNp8F7pT0NbIZgjcV\n+nBJc8luycjRRx9NU1NToWpmZmZlJamoSw7LfdLZPGCUpKXAp4HHgdaIeIrsus1FZDf1X0r2AADI\nbprwuYg4iuyBANcX2nBEXBcRjRHROG5ct19czMzM+rRSBvY6slsntmtI6/aKiK0RcWE6Hn0B2S0K\nV6ey6yPi9RHx52Q3e/hdavZB9t0U4id0vKOTmZlZv1TKwH4MOFbSlPT4v3PJ7km8l6RRuefafhR4\nICK2prLx6d+jyabNb0z11rPvST1vI7uzkZmZWb9WsmPYEdEi6WLgTqAamB8RyyVdlMqvJTu57AZJ\nASwHPpLbxG3pGHYz8KmI2JzWfwy4WlIN2QMG5h5K/5qbm1m7di27du06lOYVo66ujoaGBmpra8vd\nFTMzOwwD4k5njY2N0fmks2eeeYbhw4czZswYOj7kqP+ICDZt2sS2bduYMmVKubtjZmYFSFocEY3d\n1Sv3SWdls2vXrn4d1gCSGDNmTL+fRTAzGwhKeVlXn9efw7rdQNhHs96wq7mVLTub2bKzmbYIhKgS\nZP+JCQmqJES2Tmld9tq3vr0OqU5Vp3IhVEV6n62vkmj/T7nj5+Ta+b/1fm9AB7aZDSxtbcG2XS1s\n3rmHzTuy8N28s5ktO/ZkyzvS+53NbNnRzOad+9bvbmkrd/e7lQV+Ft5VKfzZu27/Qd/ebt8Xg67r\n9rZTxy8kHb+AdPzs9u8QVQXadfySkv+cbEVVh7qF2+W/IJH7AlX4y1L7l599yx2/NHX6jP383Np/\nzpfPfjWDa6p74be6jwO7TDZv3syNN97IJz/5yYNqd/rpp3PjjTcyatSoEvXMrO9rH+3uDd0de9i8\ns5mte0N3D1t2trA5BXF73a27mjnQaTv1g6oZOaSWkUNqGVVfy5SxQxk1ZBCj6msZWZ+tH1FXS3WV\niIAgaIvsfBGACGiLSGXZ+r3/7l2X6qQGQfZFor2sY/197dq3S668rVOdzu3ay8mVZ/3NtYv8Z+8r\nZ2/5vv7uv11Whw6f3XGfO/wscj8H8p/d1qnv0dblZ9kW+35uBX/e+/2Z5Lexb9/I/1wO0K4ttw8E\nXPau4w/nT/iQOLDLZPPmzXz729/uEtgtLS3U1Oz/17Jw4cJSd82sV+RHu11Ht51HwO3Le7od7VaJ\nFLiDGDmkltH1g1LwZoE7sn7Q3uVR9dlrRHrf2yMms4PhwC6Tyy+/nN///vfMmDGD2tpa6urqGD16\nNCtWrOB3v/sd733ve1mzZg27du3ikksuYe7c7Oq1yZMn09TUxPbt25k9ezZvectbePDBB5k0aRI/\n+9nPGDJkSJn3zAaa/LHdzTuau4xq20N384492Qi4yNHukNrqbGSbwnTy2HpGDRm1d6TbXrZ3BDwk\nGwUPG1RDVZWP51r/48AGrvqv5fx2/dYe3ea0iSP4yrtfs9/yefPmsWzZMpYuXcp9993HGWecwbJl\ny/ZefjV//nyOOOIIdu7cyUknncT73/9+xowZ02EbK1eu5KabbuJ73/se55xzDrfddhtz5szp0f2w\ngaGtLdi2u6XLcdt908xdR7zt9XY1FzfaHZH+nTx2aArabLTbvpwPXY92zbpyYPcRM2fO7HCt9De/\n+U0WLFgAwJo1a1i5cmWXwJ4yZQozZswA4PWvfz3PPvtsr/XX+qZdza17R7HdjXj3nmiVQrmtm9Fu\nflQ7eWw9I4eM3DvtvHd6ecigffU82jXrUQ5sOOBIuLcMHTp07/J9993H3XffzUMPPUR9fT1vfetb\nC15LPXjw4L3L1dXV7Ny5s1f6aqWVH+3mj9vuC91CI+CsXnej3RH5kW39II4ZM7TDtHN7AGfhm06y\nGlJLXa1Hu2bl5sAuk+HDh7Nt27aCZVu2bGH06NHU19ezYsUKHn744V7unfWE3S2tudDteEZzh2O+\n+ROtihjt1tVW7T1uO2JILUcfUc8JDR0Dt/OId2R9LcMHe7RrVskc2GUyZswY3vzmNzN9+nSGDBnC\nhAkT9pbNmjWLa6+9lqlTp3L88cdz8sknl7Gn/VdE0NoWNLcGe1rbaG5to6U1aG5t6/B+T2sbzS1t\nNLcGzW1tvLy7pcuIt+P77N+dza37/Wy1H9vNnbl8zBH1Haad2wN438lVHu2aDWQD9l7iTz31FFOn\nTi1Tj3pXb+1rW1sWaM2tQcve0IsUdmk5BeGeXDhm77M27cvNLW20pG3tSe1b2vYtdwjTTtvet5xb\n19JGc1vsW05tD1ddbdXeM5VH5oJ13wlUnS4hSiPe4XUe7ZpZpth7iXuE3UdFpxsKtF/k3/nC/rb8\nhf/t9VPb9gv9t+9u4fv/vXo/oVYgTFsihWUbzS1ZsLW0ZcudwzY/Em050DzuYaqpErXVVdRWi0E1\nVdRUVVFbk9bll6urqKutYnhdDbXVVQyqrqKmel/ZoGpRk1uura5K77Pt1lZXUVO1b7k2tR+UWx42\nuGbvCNijXTPrLQ7sg7BjTws797Tu9+45e+/mU2B9/k5B0PFuQwQpbDu27SmbdzTzD794au97ib1h\nVpsLs/0tjxhUS217YNakslxIdg3Ffe8HVWf1aqpSWWpTU7Vvuetnd+2L75NsZgOdA/sgbNvVwotb\nu56t3eXG/Z3vS8u+e9Nm96ytoobO97ktYjv5+97S+X63+9mORPWWOp78u3fuHSVWeyrWzKzilDSw\nJc0Crgaqge9HxLxO5aOB+cArgV3AhyNiWSq7BPgYWR59LyK+kWv3aeBTQCvwi4j4fCn3o93YYYM4\nYuiggmHZl1VViRF1teXuhpmZHYaSBbakauAa4B3AWuAxSXdExG9z1a4ElkbE+yS9OtU/TdJ0srCe\nCewBfiXp5xGxStKpwFnAayNit6TxpdqHzqqrqvARSzMzK4eqEm57JrAqIlZHxB7gZrKgzZsG3AMQ\nESuAyZImAFOBRyJiR0S0APcDZ6c2nwDmRcTu1G5DCffBzMysTyhlYE8C1uTer03r8p4gBbGkmcAx\nQAOwDDhF0hhJ9cDpwFGpzXGp7BFJ90s6qYT7UDLtT+s6FN/4xjfYsWNHD/fIzMz6slIGdjHmAaMk\nLQU+DTwOtEbEU8A/A4uAXwFLyY5XQzaNfwRwMnAZcIsKHESWNFdSk6SmjRs3ln5PDpID28zMDkYp\nTzpbx75RMWQj53X5ChGxFbgQIIXuM8DqVHY9cH0q+yrZCJ307+2RXff0qKQ2YCywsdO2rwOug+zG\nKT25Yz0h/3jNd7zjHYwfP55bbrmF3bt38773vY+rrrqKl19+mXPOOYe1a9fS2trKl770JV588UXW\nr1/PqaeeytixY7n33nvLvStmZtYLShnYjwHHSppCFtTnAufnK0gaBexIx7g/CjyQQhxJ4yNig6Sj\nyabN2+/P+VPgVOBeSccBg4CXDqunv7wcXvjNYW2ii1f8L5g9b7/F+cdrLlq0iFtvvZVHH32UiOA9\n73kPDzzwABs3bmTixIn84he/ALJ7jI8cOZKvf/3r3HvvvYwdO7Zn+2xmZn1WyQI7IlokXQzcSXZZ\n1/yIWC7polR+LdnJZTdICmA58JHcJm6TNAZoBj4VEZvT+vnAfEnLyM4g/2BU+P1VFy1axKJFizjx\nxBMB2L59OytXruSUU07h0ksv5Qtf+AJnnnkmp5xySpl7amZm5VLS67AjYiGwsNO6a3PLD5GdRFao\nbcF0SqPxOT3YzQOOhHtDRHDFFVfw8Y9/vEvZkiVLWLhwIV/84hc57bTT+PKXv1yGHpqZWbmV+6Sz\nASv/eM13vetdzJ8/n+3btwOwbt06NmzYwPr166mvr2fOnDlcdtllLFmypEtbMzMbGHxr0jLJP15z\n9uzZnH/++bzxjW8EYNiwYfzwhz9k1apVXHbZZVRVVVFbW8t3vvMdAObOncusWbOYOHGiTzozMxsg\n/HjNAWAg7auZWaUp9vGanhI3MzOrAA5sMzOzCjCgA3sgHA4YCPtoZjYQDNjArqurY9OmTf060CKC\nTZs2UVdXV+6umJnZYRqwZ4k3NDSwdu1a+uJ9xntSXV0dDQ0N5e6GmZkdpgEb2LW1tUyZMqXc3TAz\nMyvKgJ0SNzMzqyQObDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAlDWxJsyQ9\nLWmVpMsLlI+WtEDSk5IelTQ9V3aJpGWSlkv6bIG2l0oKSWNLuQ9mZmZ9QckCW1I1cA0wG5gGnCdp\nWqdqVwJLI+IE4ALg6tR2OvAxYCbwWuBMSa/Kbfso4J3AH0rVfzMzs76klCPsmcCqiFgdEXuAm4Gz\nOtWZBtwDEBErgMmSJgBTgUciYkdEtAD3A2fn2v0b8Hmg/94I3MzMLKeUgT0JWJN7vzaty3uCFMSS\nZgLHAA3AMuAUSWMk1QOnA0elemcB6yLiiQN9uKS5kpokNfX3+4WbmVn/V+6TzuYBoyQtBT4NPA60\nRsRTwD8Di4BfAUuB1hTeVwJf7m7DEXFdRDRGROO4ceNKtgNmZma9oZQP/1hHGhUnDWndXhGxFbgQ\nQJKAZ4DVqex64PpU9lWyEforgSnAE1l1GoAlkmZGxAsl3BczM7OyKmVgPwYcK2kKWVCfC5yfryBp\nFLAjHeP+KPBACnEkjY+IDZKOJps2PzkiNgPjc+2fBRoj4qUS7oeZmVnZlSywI6JF0sXAnUA1MD8i\nlku6KJVfS3Zy2Q2SAlgOfCS3idskjQGagU+lsDYzMxuQFNH/T7RubGyMpqamcnfDzMysC0mLI6Kx\nu3rlPunMzMzMiuDANjMzqwAObDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAO\nbDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswrgwDYzM6sAJQ1sSbMk\nPS1plaTLC5SPlrRA0pOSHpU0PVd2iaRlkpZL+mxu/b9KWpHaLJA0qpT7YGZm1heULLAlVQPXALOB\nacB5kqZ1qnYlsDQiTgAuAK5ObacDHwNmAq8FzpT0qtTmLmB6avM74IpS7YOZmVlfUcoR9kxgVUSs\njog9wM3AWZ3qTAPuAYiIFcBkSROAqcAjEbEjIlqA+4GzU71FaR3Aw0BDCffBzMysTyhlYE8C1uTe\nr03r8p4gBbGkmcAxZAG8DDhF0hhJ9cDpwFEFPuPDwC8LfbikuZKaJDVt3LjxsHbEzMys3Mp90tk8\nYJSkpcCngceB1oh4CvhnYBHwK2Ap0JpvKOlvgRbgR4U2HBHXRURjRDSOGzeuhLtgZmZWejUl3PY6\nOo6KG9K6vSJiK3AhgCQBzwCrU9n1wPWp7KtkI3TS+w8BZwKnRUSUbA/MzMz6iFKOsB8DjpU0RdIg\n4FzgjnwFSaNSGcBHgQdSiCNpfPr3aLJp8xvT+1nA54H3RMSOEvbfzMyszyjZCDsiWiRdDNwJVAPz\nI2K5pItS+bVkJ5fdICmA5cBHcpu4TdIYoBn4VERsTuu/BQwG7soG5TwcEReVaj/MzMz6Ag2EGeXG\nxsZoamoqdzfMzMy6kLQ4Ihq7q1fuk87MzMysCEUFtqTbJZ0hyQFvZmZWBsUG8LeB84GVkuZJOr6E\nfTIzM7NOigrsiLg7Iv4aeB3wLHC3pAclXSiptpQdNDMzs4M4hp3O2P4Q2eVXj5Pd9/t1ZPf2NjMz\nsxIq6rIuSQuA44H/BN4dEc+noh9L8unXZmZmJVbsddjfjIh7CxUUcyq6mZmZHZ5ip8Sn5Z87nZ5j\n/ckS9cnMzMw6KTawP5a70xgR8Sey51WbmZlZLyg2sKvTwzkAkFQNDDpAfTMzM+tBxR7D/hXZCWbf\nTe8/ntaZmZlZLyg2sL9AFtKfSO/vAr5fkh6ZmZlZF0UFdkS0Ad9JLzMzM+tlxV6HfSzwT8A0oK59\nfUT8WYn6ZWZmZjnFnnT2f8lG1y3AqcAPgB+WqlNmZmbWUbGBPSQifk32/OznIuLvgDNK1y0zMzPL\nKzawd6dHa66UdLGk9wHDumskaZakpyWtknR5gfLRkhZIelLSo5Km58oukbRM0nJJn82tP0LSXZJW\npn9HF7kPZmZmFavYwL4EqAc+A7wemAN88EAN0rXa1wCzyY59nydpWqdqVwJLI+IE4AKyB4qQgvtj\nwEzgtcCZkl6V2lwO/DoijgV+nd6bmZn1a90Gdgrev4qI7RGxNiIujIj3R8TD3TSdCayKiNURsQe4\nGTirU51pwD0AEbECmCxpAjAVeCQidkREC3A/cHZqcxZwQ1q+AXhv97tpZmZW2boN7IhoBd5yCNue\nBKzJvV+b1uU9QQpiSTOBY4AGYBlwiqQxkuqB04GjUpsJuaeFvQBMKPThkuZKapLUtHHjxkPovpmZ\nWd9R7I1THpd0B/AT4OX2lRFx+2F+/jzgaklLgd+QPWe7NSKekvTPwKL0eUuB1s6NIyIkRaENR8R1\nwHUAjY2NBeuYmZlVimIDuw7YBLwtty6AAwX2OvaNiiEbOa/LV4iIrcCFAOle5c8Aq1PZ9cD1qeyr\nZCN0gBclHRkRz0s6EthQ5D6YmZlVrGLvdHbhIWz7MeBYSVPIgvpc4Px8hfTIzh3pGPdHgQdSiCNp\nfERskHQ02bT5yanZHWQnvM1L//7sEPpmZmZWUYq909n/JRtRdxARH95fm4hokXQxcCdQDcyPiOWS\nLkrl15KdXHZDmtZeDnwkt4nbJI0BmoFP5R7vOQ+4RdJHgOeAc4rZBzMzs0pW7JT4z3PLdcD7gPXd\nNYqIhcDCTuuuzS0/BBy3n7an7Gf9JuC07rtsZmbWfxQ7JX5b/r2km4D/KUmPzMzMrItib5zS2bHA\n+J7siJmZme1fscewt9HxGPYLZM/INjMzs15Q7JT48FJ3xMzMzPavqClxSe+TNDL3fpQk3xLUzMys\nlxR7DPsrEbGl/U26xOorpemSmZmZdVZsYBeqV+wlYWZmZnaYig3sJklfl/TK9Po6sLiUHTMzM7N9\nig3sTwN7gB+TPSZzF/CpUnXKzMzMOir2LPGXgctL3BczMzPbj2LPEr8rPaij/f1oSXeWrltmZmaW\nV+yU+NjcwzeIiD/hO52ZmZn1mmIDuy095hIASZMp8PQuMzMzK41iL836W+B/JN0PCDgFmFuyXpmZ\nmVkHxZ509itJjWQh/TjwU2BnKTtmZmZm+xT78I+PApcADcBS4GTgIeBtpeuamZmZtSv2GPYlwEnA\ncxFxKnAisPnATUDSLElPS1olqctlYels8wWSnpT0qKTpubLPSVouaZmkmyTVpfUzJD0saamkJkkz\ni9wHMzOzilVsYO+KiF0AkgZHxArg+AM1kFQNXAPMBqYB50ma1qnalcDSiDgBuAC4OrWdBHwGaIyI\n6UA1cG5q8y/AVRExA/hyem9mZtavFRvYa9N12D8F7pL0M+C5btrMBFZFxOqI2EN2h7SzOtWZBtwD\nkL4ETJY0IZXVAEMk1QD1wPq0PoARaXlkbr2ZmVm/VexJZ+9Li38n6V6yoPxVN80mAWty79cCb+hU\n5wngbOC/09T2MUBDRCyW9DXgD2Qnty2KiEWpzWeBO1N5FfCmQh8uaS7pTPajjz66UBUzM7OKUewI\ne6+IuD8i7kij5sM1DxglaSnZ/cofB1oljSYbjU8BJgJDJc1JbT4BfC4ijgI+B1y/n35eFxGNEdE4\nbty4HuiqmZlZ+Rx0YB+EdcBRufcNad1eEbE1Ii5Mx6MvAMYBq4G3A89ExMaIaAZuZ99I+oPpPcBP\nyKbezczM+rVSBvZjwLGSpkgaRHbS2B35CpJGpTKAjwIPRMRWsqnwkyXVSxJwGvBUqrce+Iu0/DZg\nZQn3wczMrE8o9k5nBy0iWiRdDNxJdpb3/IhYLumiVH4tMBW4QVIAy4GPpLJHJN0KLAFayKbKr0ub\n/hhwdToZbRe+45qZmQ0Aiuj/twRvbGyMpqamcnfDzMysC0mLI6Kxu3qlnBI3MzOzHuLANjMzqwAO\nbDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswrgwDYzM6sADmwzM7MK\n4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswpQ0sCWNEvS05JWSbq8QPloSQskPSnpUUnTc2Wfk7Rc\n0jJJN0mqy5V9WtKKVP4vpdwHMzOzvqBkgS2pGrgGmA1MA86TNK1TtSuBpRFxAnABcHVqOwn4DNAY\nEdOBauDcVHYqcBbw2oh4DfC1Uu2DmZlZX1HKEfZMYFVErI6IPcDNZEGbNw24ByAiVgCTJU1IZTXA\nEEk1QD2wPq3/BDAvInandhtKuA9mZmZ9QikDexKwJvd+bVqX9wRwNoCkmcAxQENErCMbOf8BeB7Y\nEhGLUpvjgFMkPSLpfkknlXAfzMzM+oRyn3Q2DxglaSnwaeBxoFXSaLLR+BRgIjBU0pzUpgY4AjgZ\nuAy4RZI6b1jSXElNkpo2btzYC7tiZmZWOqUM7HXAUbn3DWndXhGxNSIujIgZZMewxwGrgbcDz0TE\nxohoBm4H3pSarQVuj8yjQBswtvOHR8R1EdEYEY3jxo3r6X0zMzPrVaUM7MeAYyVNkTSI7KSxO/IV\nJI1KZQAfBR6IiK1kU+EnS6pPo+fTgKdSvZ8Cp6b2xwGDgJdKuB9mZmZlV1OqDUdEi6SLgTvJzvKe\nHxHLJV2Uyq8FpgI3SApgOfCRVPaIpFuBJUAL2VT5dWnT84H5kpYBe4APRkSUaj/MzMz6Ag2ErGts\nbIympqZyd8PMzKwLSYsjorG7euU+6czMzMyK4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswrgwDYz\nM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5s\nMzOzCuDANjMzqwAlDWxJsyQ9LWmVpMsLlI+WtEDSk5IelTQ9V/Y5ScslLZN0k6S6Tm0vlRSSxpZy\nH8zMzPpQRS3PAAAgAElEQVSCkgW2pGrgGmA2MA04T9K0TtWuBJZGxAnABcDVqe0k4DNAY0RMB6qB\nc3PbPgp4J/CHUvXfzMysLynlCHsmsCoiVkfEHuBm4KxOdaYB9wBExApgsqQJqawGGCKpBqgH1ufa\n/RvweSBK2H8zM7M+o5SBPQlYk3u/Nq3LewI4G0DSTOAYoCEi1gFfIxtBPw9siYhFqd5ZwLqIeOJA\nHy5prqQmSU0bN27sif0xMzMrm3KfdDYPGCVpKfBp4HGgVdJostH4FGAiMFTSHEn1ZNPoX+5uwxFx\nXUQ0RkTjuHHjSrcHZmZmvaCmhNteBxyVe9+Q1u0VEVuBCwEkCXgGWA28C3gmIjamstuBN5GNyKcA\nT2TVaQCWSJoZES+UcF/MzMzKqpSB/RhwrKQpZEF9LnB+voKkUcCOdIz7o8ADEbFV0h+Ak9OIeidw\nGtAUEb8BxufaP0t2YtpLJdwPMzOzsitZYEdEi6SLgTvJzvKeHxHLJV2Uyq8FpgI3SApgOfCRVPaI\npFuBJUAL2VT5daXqq5mZWV+niP5/onVjY2M0NTUd/oZ2bYFdWw9/O2ZWuSQYcgQMqi93T6yfkLQ4\nIhq7q1fKKfH+5+HvwH3/VO5emFlfMHgEDJuQvYZPyC2/AoaNh2GvyJaHjM5C3uwwObAPxvGzYUTn\nK9PMbECJVtixCbZvgG0vwPYXYf3jsO1FaH65a/2q2m5CPa0bOh5qBvX+/ljFcGAfjCNfm73MzArZ\nvS0X5C90DPXtL8KfnoM1j2SBX0j9mAOHevvyoGEetQ9ADmwzs54yeHj2GvPKA9drbc7CvEOop/fb\nUrhvWpX927qna/va+q6hPmx8ep9brh8LVeW+3Yb1FAe2mVlvq66FkZOy14FEwM4/ZcFdKNS3vwgv\n/hZ+fx/s3tK1vaph6Lg0Qs+Hen4Un5Zr67q2tz7FgW1m1ldJUH9E9ho/9cB19+xIId451NPytufh\n+aXw8kaItq7t60YeINRzU/N1ozwdXyYObDOz/mBQPRwxJXsdSFsrvPxS4VBvH7WveTT7t2VX1/bV\ng4s/ia7aEdOT/NM0MxtIqqqzUB0+AY48QL0I2L21Y5DnT6Db9gJs+j089/+yafsuBEPHdnMSXVo/\naGip9rZfcWCbmVlXUjZNXjcSxh134Lotu9NUfIFQb5+i3/AUvLwB2lq6th807MCh3l425IgBfRKd\nA9vMzA5PzWAYdVT2OpC2Ntj5x46hvv3FNIpP4f78k7D9LtizvWv7qppsqr3bk+jGZ33qZxzYZmbW\nO6qqsmnyoWOB6Qeuu3v7/kN92wuwZQ2sa8qOx1PgFttDRnd/ZvzwCdkd6yrkJDoHtpmZ9T2Dh2Wv\nYq5pf3lj4VBvD/vnHsrWF7qmvWZILtT3c6OaYROyy+Oqqkuzr0VyYJuZWeWqroURE7PXgUTArs37\nD/VtL8DGp+GZB7IHPXWmqiy020P9L6/Pju/3Ige2mZn1f1I2TT5kNIx/9YHrNu/cd017l5Po0nJt\n75/Z7sA2MzPLqx0Coydnrz5k4J4fb2ZmVkFKGtiSZkl6WtIqSZcXKB8taYGkJyU9Kml6ruxzkpZL\nWibpJkl1af2/SlqR2iyQNKqU+2BmZtYXlCywJVUD1wCzgWnAeZKmdap2JbA0Ik4ALgCuTm0nAZ8B\nGiNiOlANnJva3AVMT21+B1xRqn0wMzPrK0o5wp4JrIqI1RGxB7gZOKtTnWnAPQARsQKYLGlCKqsB\nhkiqAeqB9aneoohov1XOw0BDCffBzMysTyhlYE8C1uTer03r8p4AzgaQNBM4BmiIiHXA14A/AM8D\nWyJiUYHP+DDwy0IfLmmupCZJTRs3bjysHTEzMyu3cp90Ng8YJWkp8GngcaBV0miy0fgUYCIwVNKc\nfENJfwu0AD8qtOGIuC4iGiOicdy4caXcBzMzs5Ir5WVd64D8jWUb0rq9ImIrcCGAJAHPAKuBdwHP\nRMTGVHY78Cbgh+n9h4AzgdMiosA96czMzPqXUgb2Y8CxkqaQBfW5wPn5CukM7x3pGPdHgQciYquk\nPwAnS6oHdgKnAU2pzSzg88BfRMSOYjqyePHilyQ910P7NRZ4qYe2VakG+s/A+z+w9x/8M/D+9+z+\nH1NMpZIFdkS0SLoYuJPsLO/5EbFc0kWp/FpgKnCDpACWAx9JZY9IuhVYQjbt/ThwXdr0t4DBwF3Z\noJyHI+KibvrSY3PikpoiorGntleJBvrPwPs/sPcf/DPw/pdn/0t6p7OIWAgs7LTu2tzyQ0DBB61G\nxFeArxRY/6oe7qaZmVmfV+6TzszMzKwIDuyDd133Vfq9gf4z8P7bQP8ZeP/LQD7J2szMrO/zCNvM\nzKwCOLDNzMwqgAN7P4p40pgkfTOVPynpdeXoZ6kUsf9vlbRF0tL0+nI5+lkqkuZL2iBp2X7K+/vv\nv7v97++//6Mk3Svpt+mpgZcUqNPf/waK+Rn0278DSXXpKZJPpP2/qkCd3v0biAi/Or3Irhv/PfBn\nwCCye55P61TndLL7mAs4GXik3P3u5f1/K/Dzcve1hD+DPwdeByzbT3m//f0Xuf/9/fd/JPC6tDyc\n7MmAA+b/AQfxM+i3fwfp9zosLdcCjwAnl/NvwCPswop50thZwA8i8zDZPdGP7O2Olkgx+9+vRcQD\nwB8PUKU///6L2f9+LSKej4glaXkb8BRdH17U3/8GivkZ9Fvp97o9va1Nr85naffq34ADu7BinjRW\nTJ1KVey+vSlNA/1S0mt6p2t9Rn/+/RdrQPz+JU0GTiQbYeUNmL+BA/wMoB//HUiqTg+n2gDcFRFl\n/Rso6Z3OrF9bAhwdEdslnQ78FDi2zH2y3jMgfv+ShgG3AZ+N7GFFA043P4N+/XcQEa3AjPTciwWS\npkdEwfM6eoNH2IV1+6SxIutUqqKetNY+XRTZLWhrJY3tvS6WXX/+/XdrIPz+JdWSBdWPIuL2AlX6\n/d9Adz+DgfB3ABARm4F7gVmdinr1b8CBXdjeJ41JGkT2pLE7OtW5A7ggnSV4MrAlIp7v7Y6WSLf7\nL+kVSk9fkTST7G9pU6/3tHz68++/W/3995/27XrgqYj4+n6q9eu/gWJ+Bv3570DSuDSyRtIQ4B3A\nik7VevVvwFPiBURxTxpbSHaG4CpgB+m53v1Bkfv/l8AnJLWQPQL13EinTfYHkm4iOwN2rKS1ZA+i\nqYX+//uHova/X//+gTcDHwB+k45hAlwJHA0D42+A4n4G/fnv4Eiyp0lWk30RuSUifl7OHPCtSc3M\nzCqAp8TNzMwqgAPbzMysAjiwzczMKoAD28zMrAI4sM3MzCqAA9vMelx6itPPy90Ps/7EgW1mZlYB\nHNhmA5ikOemZv0slfTc97GC7pH9LzwD+taRxqe4MSQ+nBz0skDQ6rX+VpLvTc4OXSHpl2vwwSbdK\nWiHpR+13xDKzQ+PANhugJE0F/gp4c0TMAFqBvwaGAk0R8RrgfrK7nAH8APhCRJwA/Ca3/kfANRHx\nWuBNQPutGU8EPgtMI3u2+ptLvlNm/ZhvTWo2cJ0GvB54LA1+h5A9RrAN+HGq80PgdkkjgVERcX9a\nfwPwE0nDgUkRsQAgInYBpO09GhFr0/ulwGTgf0q/W2b9kwPbbOAScENEXNFhpfSlTvUO9f7Fu3PL\nrfj/N2aHxVPiZgPXr4G/lDQeQNIRko4h+//CX6Y65wP/ExFbgD9JOiWt/wBwf0RsA9ZKem/axmBJ\n9b26F2YDhL/xmg1QEfFbSV8EFkmqApqBTwEvAzNT2Qay49wAHwSuTYG8mn1PJvoA8F1Jf5+28b97\ncTfMBgw/rcvMOpC0PSKGlbsfZtaRp8TNrLPBkv6hmIqSnpX09v2U/Uex2zGz7jmwzayzH5W7A2bW\nlQPbzMysAjiwzSpQmoq+LN117GVJ10uaIOmXkralO4+NztV/T7pz2WZJ96WbprSXnZjuULZN0o+B\nuk6fdWa6E9pmSQ9KOuEQ+/wxSask/VHSHZImpvVKd1bbIGmrpN9Imp7KTpf029S3dZL+5pB+YGb9\ngAPbrHK9H3gHcBzwbuCXwJXAOLL/tj8DIOk44Cayu46NAxYC/yVpkKRBwE+B/wSOAH6StktqeyIw\nH/g4MAb4LnCHpMEH01FJbwP+CTgHOBJ4Drg5Fb8T+PO0HyNTnU2p7Hrg4xExHJgO3HMwn2vWnziw\nzSrXv0fEixGxDvhv4JGIeDzdbWwB2a1BIbss6xcRcVdENANfI7ur2ZuAk4Fa4BsR0RwRtwKP5T5j\nLvDdiHgkIloj4gayG6KcfJB9/WtgfkQsiYjdwBXAGyVNJrsUbDjwarIrV56KiPbbmzYD0ySNiIg/\nRcSSg/xcs37DgW1WuV7MLe8s8L790qyJZCNaACKiDVgDTEpl66Lj9Z3P5ZaPAS5N0+GbJW0Gjkrt\nDkbnPmwnG0VPioh7gG8B1wAbJF0naUSq+n7gdOA5SfdLeuNBfq5Zv+HANuv/1pMFL5AdMyYL3XVk\nD+qY1OlJWkfnltcA/xgRo3Kv+oi46TD7MJRsin0dQER8MyJeT/agkOOAy9L6xyLiLGA82dT9LQf5\nuWb9hgPbrP+7BThD0mmSaoFLyaa1HwQeAlqAz0iqlXQ2MDPX9nvARZLekE4OGyrpjPTQj4NxE3Bh\nekTnYOCrZFP4z0o6KW2/luwua7uAtnSM/a8ljUxT+VvJHkxiNiA5sM36uYh4GpgD/DvwEtkJau+O\niD0RsQc4G/gQ8Eey492359o2AR8jm7L+E7Aq1T3YPtwNfAm4jWxU/0rg3FQ8guyLwZ/Ips03Af+a\nyj4APCtpK3AR2bFwswHJtyY1MzOrAB5hm5mZVQAHtpmZWQVwYJuZmVUAB7aZmVkFqCl3B3rD2LFj\nY/LkyeXuhpmZWReLFy9+KSLGdVdvQAT25MmTaWpqKnc3zMzMupD0XPe1PCVuZmZWERzYZmZmFcCB\nbWZmVgEGxDHsQpqbm1m7di27du0qd1dKqq6ujoaGBmpra8vdFTMzOwwDNrDXrl3L8OHDmTx5Mh0f\nVNR/RASbNm1i7dq1TJkypdzdMTOzwzBgp8R37drFmDFj+m1YA0hizJgx/X4WwcxsIBiwI2ygX4d1\nu4Gwj2Y9orUZdm+DXVuyfzu88uu2Q1U1VA/KXjWDoHrwAZZroWZwp+X2tp2Wq6rL/VOwPmxAB7aZ\n9QMte1KQbs2F6tau63Z1U95SxEyUqmHwMGhrg9Y90Lq7Z/dFVVmw16QQ77BcIOCra1Od/HKubXdf\nEA7mS4e//JedA7tMNm/ezI033sgnP/nJg2p3+umnc+ONNzJq1KgS9cysl+wN2gIj2oKj3PaA3dpx\nXbFBWzcCBg+HwSOy17AJMOZVad3wVD5i3/t83fb3tUM6BldENjJv3ZO9WnYfYLk5C/jWPdm+d1lu\nTvXyy4W2tQf2bIedfyzQNlc/Wnv291Xd+YtDN18Wivmi4VmJg+LALpPNmzfz7W9/u0tgt7S0UFOz\n/1/LwoULS901swNr2X2A0WuhUWzufX6UW8zotKqma3AOewWMOTYXwMNzoVpgXd0IqKkrzQhRykKm\nZlDPb/twtbV2/bLQYXnPvlmCvcuH8qWj0xeN3dv3/0WjvW1PUnUu7HtgVmJ/bTu/bzgJqns3Qh3Y\nwFX/tZzfrt/ao9ucNnEEX3n3a/Zbfvnll/P73/+eGTNmUFtbS11dHaNHj2bFihX87ne/473vfS9r\n1qxh165dXHLJJcydOxfYd5vV7du3M3v2bN7ylrfw4IMPMmnSJH72s58xZMiQHt0P60fag7bg6LXA\nyHVvEHdaX3TQdgrR4UfC2OM6jWBHdno/HOpy60oVtANBVTVUDclmBfqSvbMS+5tVyC8X+qJxKF86\nmrNZiR2bCrdt/7yDmZW4Yh1UDyvdz6kAB3aZzJs3j2XLlrF06VLuu+8+zjjjDJYtW7b38qv58+dz\nxBFHsHPnTk466STe//73M2bMmA7bWLlyJTfddBPf+973OOecc7jtttuYM2dOOXbHSql5Vzej160F\njtEWCOFiRjb5oG2fIh4x8cAj2boC6xy0tj8VMyvRzSxBGb4IObDhgCPh3jJz5swO10p/85vfZMGC\nBQCsWbOGlStXdgnsKVOmMGPGDABe//rX8+yzz/Zaf60bEZ2mjguNXosc6RYVtLVdp4hHTITBr+56\nTLbuAMdpawY7aG3g6quzEokDu48YOnTo3uX77ruPu+++m4ceeoj6+nre+ta3FryWevDgwXuXq6ur\n2blzZ6/0tV9qa4XmHbBnBzS/DM079y3v2ZGVtZfv2V7cMdq25u4/t0vQjoQRDZ2miPd3MtRwB63Z\nAOLALpPhw4ezbdu2gmVbtmxh9OjR1NfXs2LFCh5++OFe7l0f1B6ozTthz8tdl/ekkN3vcoHgzS8f\n7OU5e4M2F5wjGmDc8CJOhsqNdGsGd/9ZZmY4sMtmzJgxvPnNb2b69OkMGTKECRMm7C2bNWsW1157\nLVOnTuX444/n5JNPLmNPi9TWti8A84HYJTCLCM/OI9zmncVdutOBoLY+m9oaVA+1Q9O/9dlZxu3L\ntfUHWB6ate+wPDS7DtdBa2a9TBFR7j6UXGNjYzQ1NXVY99RTTzF16tQy9ah3PfXUU0w9/nho6TzN\n2114dh6pHmCEe9CBSpEh2R66hZYLhW17+yGeIjaziiBpcUQ0dlfPI+y+IgKirbhXW5H12l9bnoe/\nP4RReu1+Rp7DxhcxOs2Paod0HOG2B68D1cysaA7sgxFt2bHUUoRqtB1Ch6qgqiq7nWH+VVXT8f2g\n7fAXlx/ENHB9dllO1YB9NoyZWZ/jwD4Y216E7S8cRIMiA7VD2X7WF3wVOUIdsh1ed8Uh7bKZmfUN\nDuyDUTciC9uiQ9VTvmZm1jMc2Adj0NDsZWZm1st8kNLMzKwCOLDLpP1pXYfiG9/4Bjt27OjhHpmZ\nWV/mwC4TB7aZmR0MH8MG+OXl8MJvenabr/hfMHvefovzj9d8xzvewfjx47nlllvYvXs373vf+7jq\nqqt4+eWXOeecc1i7di2tra186Utf4sUXX2T9+vWceuqpjB07lnvvvbdn+21mZn2SA7tM8o/XXLRo\nEbfeeiuPPvooEcF73vMeHnjgATZu3MjEiRP5xS9+AWT3GB85ciRf//rXuffeexk7dmyZ98LMzHqL\nAxsOOBLuDYsWLWLRokWceOKJAGzfvp2VK1dyyimncOmll/KFL3yBM888k1NOOaWs/TQzs/JxYPcB\nEcEVV1zBxz/+8S5lS5YsYeHChXzxi1/ktNNO48tf/nIZemhmZuXmk87KJP94zXe9613Mnz+f7du3\nA7Bu3To2bNjA+vXrqa+vZ86cOVx22WUsWbKkS1szMxsYyjLCljQLuBqoBr4fEfM6lSuVnw7sAD4U\nEUtS2bPANqAVaCnmCSd9Uf7xmrNnz+b888/njW98IwDDhg3jhz/8IatWreKyyy6jqqqK2tpavvOd\n7wAwd+5cZs2axcSJE33SmZnZANHrj9eUVA38DngHsBZ4DDgvIn6bq3M68GmywH4DcHVEvCGVPQs0\nRsRLxX6mH685cPbVzKzSFPt4zXJMic8EVkXE6ojYA9wMnNWpzlnADyLzMDBK0pG93VEzM7O+ohyB\nPQlYk3u/Nq0rtk4Ad0taLGnu/j5E0lxJTZKaNm7c2APdNjMzK59KPOnsLRExA5gNfErSnxeqFBHX\nRURjRDSOGzeu4IZ6+3BAOQyEfTQzGwjKEdjrgKNy7xvSuqLqRET7vxuABWRT7Aetrq6OTZs29etA\niwg2bdpEXV1dubtiZmaHqRxniT8GHCtpClkInwuc36nOHcDFkm4mO+lsS0Q8L2koUBUR29LyO4G/\nP5RONDQ0sHbtWvr7dHldXR0NDQ3l7oaZmR2mXg/siGiRdDFwJ9llXfMjYrmki1L5tcBCsjPEV5Fd\n1nVhaj4BWJBd9UUNcGNE/OpQ+lFbW8uUKVMOa1/MzMx6S69f1lUOhS7rMjMz6wv68mVdZmZmdpAc\n2GZmZhXAgW1mZlYBHNhmZmYVwIFtZmZWARzYZmZmFcCBbWZmVgEc2GZmZhXAgW1mZlYBHNhmZmYV\nwIFtZmZWARzYZmZmFcCBbWZmVgEc2GZmZhXAgW1mZlYBHNhmZmYVwIFtZmZWARzYZmZmFcCBbWZm\nVgEc2GZmZhXAgW1mZlYBHNhmZmYVwIFtZmZWARzYZmZmFcCBbWZmVgEc2GZmZhXAgW1mZlYBHNhm\nZmYVwIFtZmZWARzYZmZmFcCBbWZmVgHKEtiSZkl6WtIqSZcXKJekb6byJyW9rlN5taTHJf2893pt\nZmZWPr0e2JKqgWuA2cA04DxJ0zpVmw0cm15zge90Kr8EeKrEXTUzM+szyjHCngmsiojVEbEHuBk4\nq1Ods4AfROZhYJSkIwEkNQBnAN/vzU6bmZmVUzkCexKwJvd+bVpXbJ1vAJ8H2g70IZLmSmqS1LRx\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_history(history_long_res)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Now let's create the same long model with shortcut and train entire model in one step" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "inp = keras.layers.Input(shape=(784,))\n", "out = Dense(512, activation='relu')(inp)\n", "out = Dropout(0.2)(out)\n", "shortcut = out\n", "out = Dense(512, activation='relu', kernel_initializer='zeros')(inp)\n", "out = Dropout(0.2)(out)\n", "out = Dense(512, activation='relu', kernel_initializer='zeros')(out)\n", "out = Dropout(0.2)(out)\n", "out = keras.layers.Add()([out, shortcut])\n", "out = Dense(n_classes, activation='softmax')(out)\n", "model_long_res2 = keras.Model(inputs=[inp], outputs=[out])\n", "model_long_res2.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy'])" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 60000 samples, validate on 10000 samples\n", "Epoch 1/100\n", "60000/60000 [==============================] - 3s 46us/step - loss: 0.3135 - acc: 0.9108 - val_loss: 0.1565 - val_acc: 0.9536\n", "Epoch 2/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.1407 - acc: 0.9592 - val_loss: 0.1038 - val_acc: 0.9704\n", "Epoch 3/100\n", "60000/60000 [==============================] - 2s 41us/step - loss: 0.1001 - acc: 0.9708 - val_loss: 0.0908 - val_acc: 0.9731\n", "Epoch 4/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.0782 - acc: 0.9772 - val_loss: 0.0794 - val_acc: 0.9763\n", "Epoch 5/100\n", "60000/60000 [==============================] - 4s 62us/step - loss: 0.0649 - acc: 0.9816 - val_loss: 0.0744 - val_acc: 0.9777\n", "Epoch 6/100\n", "60000/60000 [==============================] - 2s 41us/step - loss: 0.0548 - acc: 0.9841 - val_loss: 0.0748 - val_acc: 0.9759\n", "Epoch 7/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.0472 - acc: 0.9864 - val_loss: 0.0628 - val_acc: 0.9807\n", "Epoch 8/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.0416 - acc: 0.9873 - val_loss: 0.0636 - val_acc: 0.9807\n", "Epoch 9/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.0352 - acc: 0.9898 - val_loss: 0.0581 - val_acc: 0.9819\n", "Epoch 10/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.0313 - acc: 0.9908 - val_loss: 0.0550 - val_acc: 0.9826\n", "Epoch 11/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.0275 - acc: 0.9922 - val_loss: 0.0547 - val_acc: 0.9828\n", "Epoch 12/100\n", "60000/60000 [==============================] - 2s 40us/step - loss: 0.0247 - acc: 0.9930 - val_loss: 0.0567 - val_acc: 0.9826\n", "Epoch 13/100\n", "60000/60000 [==============================] - 2s 41us/step - loss: 0.0222 - acc: 0.9937 - val_loss: 0.0549 - val_acc: 0.9826\n", "Epoch 14/100\n", "60000/60000 [==============================] - 2s 41us/step - loss: 0.0200 - acc: 0.9942 - val_loss: 0.0574 - val_acc: 0.9824\n", "Epoch 00014: early stopping\n", "Test accuracy: 0.9828\n", "Training time: 35.978739500045776 sec\n" ] } ], "source": [ "accuracy_long_res2, t_long_res2, history_long_res2 = train_model(model_long_res2)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAewAAAH+CAYAAABeND3wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmYXVWd7vHvW0NSqcxkkqSApBUwMReDFhEHukUcEkBR\n7EsDHVEcIiqKPjQKtEPTT7ed7vbaYosiSm5jKyACUVqjBGTqvoyVEDCRYGIAMwAJ0UxkquF3/9ir\nkl1VJ6mTpE6dOlXv53nOk332WmuftasK3rPWnhQRmJmZWd9WVe4OmJmZWfcc2GZmZhXAgW1mZlYB\nHNhmZmYVwIFtZmZWARzYZmZmFcCBbdYPSfoPSf9QZN1nJb291H0ys8PjwDYzM6sADmwz67Mk1ZS7\nD2Z9hQPbrEzSVPRlkp6U9LKk6yVNkPRLSdsk3S1pdK7+eyQtl7RZ0n2SpubKTpS0JLX7MVDX6bPO\nlLQ0tX1Q0glF9vEMSY9L2ippjaS/61T+lrS9zan8Q2n9EEn/R9JzkrZI+p+07q2S1hb4Obw9Lf+d\npFsl/VDSVuBDkmZKeih9xvOSviVpUK79ayTdJemPkl6UdKWkV0jaIWlMrt7rJG2UVFvMvpv1NQ5s\ns/J6P/AO4Djg3cAvgSuBcWT/fX4GQNJxwE3AZ1PZQuC/JA1K4fVT4D+BI4CfpO2S2p4IzAc+DowB\nvgvcIWlwEf17GbgAGAWcAXxC0nvTdo9J/f331KcZwNLU7mvA64E3pT59Hmgr8mdyFnBr+swfAa3A\n54CxwBuB04BPpj4MB+4GfgVMBF4F/DoiXgDuA87JbfcDwM0R0VxkP8z6FAe2WXn9e0S8GBHrgP8G\nHomIxyNiF7AAODHV+yvgFxFxVwqcrwFDyALxZKAW+EZENEfErcBjuc+YC3w3Ih6JiNaIuAHYndod\nUETcFxG/iYi2iHiS7EvDX6Ti84G7I+Km9LmbImKppCrgw8AlEbEufeaDEbG7yJ/JQxHx0/SZOyNi\ncUQ8HBEtEfEs2ReO9j6cCbwQEf8nInZFxLaIeCSV3QDMAZBUDZxH9qXGrCI5sM3K68Xc8s4C74el\n5YnAc+0FEdEGrAEmpbJ10fFJPs/llo8BLk1TypslbQaOSu0OSNIbJN2bppK3ABeRjXRJ2/h9gWZj\nyabkC5UVY02nPhwn6eeSXkjT5F8tog8APwOmSZpCNouxJSIePcQ+mZWdA9usMqwnC14AJIksrNYB\nzwOT0rp2R+eW1wD/GBGjcq/6iLipiM+9EbgDOCoiRgLXAu2fswZ4ZYE2LwG79lP2MlCf249qsun0\nvM6PEPwOsAI4NiJGkB0yyPfhzwp1PM1S3EI2yv4AHl1bhXNgm1WGW4AzJJ2WTpq6lGxa+0HgIaAF\n+IykWklnAzNzbb8HXJRGy5I0NJ1MNryIzx0O/DEidkmaSTYN3u5HwNslnSOpRtIYSTPS6H8+8HVJ\nEyVVS3pjOmb+O6AufX4t8EWgu2Ppw4GtwHZJrwY+kSv7OXCkpM9KGixpuKQ35Mp/AHwIeA8ObKtw\nDmyzChART5ONFP+dbAT7buDdEbEnIvYAZ5MF0x/JjnffnmvbBHwM+BbwJ2BVqluMTwJ/L2kb8GWy\nLw7t2/0DcDrZl4c/kp1w9tpU/DfAb8iOpf8R+GegKiK2pG1+n2x24GWgw1njBfwN2ReFbWRfPn6c\n68M2sunudwMvACuBU3Pl/4/sZLclEZE/TGBWcdTxsJeZWf8i6R7gxoj4frn7YnY4HNhm1m9JOgm4\ni+wY/LZy98fscHhK3Mz6JUk3kF2j/VmHtfUHJQ1sSbMkPS1plaTLC5SPlrRA2Z2eHpU0PVd2iaRl\n6c5On82tnyHp4XTXpqZ0IoyZWQcR8cGIGBkR/1Huvpj1hJIFdrpc4xpgNjANOE/StE7VrgSWRsQJ\nZHdTujq1nU52ksxMspNYzpT0qtTmX4CrImIG2Ukw/1KqfTAzM+srSnlj/ZnAqohYDSDpZrJbDv42\nV2caMA8gIlZImixpAjCV7I5PO1Lb+8nOgv0Xsms0R6T2I8muTz2gsWPHxuTJk3tin8zMzHrU4sWL\nX4qIzvcj6KKUgT2JjncsWgu8oVOdJ8iC+L/T1PYxQAOwDPjHdOP+nWSXjjSlNp8F7pT0NbIZgjcV\n+nBJc8luycjRRx9NU1NToWpmZmZlJamoSw7LfdLZPGCUpKXAp4HHgdaIeIrsus1FZDf1X0r2AADI\nbprwuYg4iuyBANcX2nBEXBcRjRHROG5ct19czMzM+rRSBvY6slsntmtI6/aKiK0RcWE6Hn0B2S0K\nV6ey6yPi9RHx52Q3e/hdavZB9t0U4id0vKOTmZlZv1TKwH4MOFbSlPT4v3PJ7km8l6RRuefafhR4\nICK2prLx6d+jyabNb0z11rPvST1vI7uzkZmZWb9WsmPYEdEi6WLgTqAamB8RyyVdlMqvJTu57AZJ\nASwHPpLbxG3pGHYz8KmI2JzWfwy4WlIN2QMG5h5K/5qbm1m7di27du06lOYVo66ujoaGBmpra8vd\nFTMzOwwD4k5njY2N0fmks2eeeYbhw4czZswYOj7kqP+ICDZt2sS2bduYMmVKubtjZmYFSFocEY3d\n1Sv3SWdls2vXrn4d1gCSGDNmTL+fRTAzGwhKeVlXn9efw7rdQNhHs96wq7mVLTub2bKzmbYIhKgS\nZP+JCQmqJES2Tmld9tq3vr0OqU5Vp3IhVEV6n62vkmj/T7nj5+Ta+b/1fm9AB7aZDSxtbcG2XS1s\n3rmHzTuy8N28s5ktO/ZkyzvS+53NbNnRzOad+9bvbmkrd/e7lQV+Ft5VKfzZu27/Qd/ebt8Xg67r\n9rZTxy8kHb+AdPzs9u8QVQXadfySkv+cbEVVh7qF2+W/IJH7AlX4y1L7l599yx2/NHX6jP383Np/\nzpfPfjWDa6p74be6jwO7TDZv3syNN97IJz/5yYNqd/rpp3PjjTcyatSoEvXMrO9rH+3uDd0de9i8\ns5mte0N3D1t2trA5BXF73a27mjnQaTv1g6oZOaSWkUNqGVVfy5SxQxk1ZBCj6msZWZ+tH1FXS3WV\niIAgaIvsfBGACGiLSGXZ+r3/7l2X6qQGQfZFor2sY/197dq3S668rVOdzu3ay8mVZ/3NtYv8Z+8r\nZ2/5vv7uv11Whw6f3XGfO/wscj8H8p/d1qnv0dblZ9kW+35uBX/e+/2Z5Lexb9/I/1wO0K4ttw8E\nXPau4w/nT/iQOLDLZPPmzXz729/uEtgtLS3U1Oz/17Jw4cJSd82sV+RHu11Ht51HwO3Le7od7VaJ\nFLiDGDmkltH1g1LwZoE7sn7Q3uVR9dlrRHrf2yMms4PhwC6Tyy+/nN///vfMmDGD2tpa6urqGD16\nNCtWrOB3v/sd733ve1mzZg27du3ikksuYe7c7Oq1yZMn09TUxPbt25k9ezZvectbePDBB5k0aRI/\n+9nPGDJkSJn3zAaa/LHdzTuau4xq20N384492Qi4yNHukNrqbGSbwnTy2HpGDRm1d6TbXrZ3BDwk\nGwUPG1RDVZWP51r/48AGrvqv5fx2/dYe3ea0iSP4yrtfs9/yefPmsWzZMpYuXcp9993HGWecwbJl\ny/ZefjV//nyOOOIIdu7cyUknncT73/9+xowZ02EbK1eu5KabbuJ73/se55xzDrfddhtz5szp0f2w\ngaGtLdi2u6XLcdt908xdR7zt9XY1FzfaHZH+nTx2aArabLTbvpwPXY92zbpyYPcRM2fO7HCt9De/\n+U0WLFgAwJo1a1i5cmWXwJ4yZQozZswA4PWvfz3PPvtsr/XX+qZdza17R7HdjXj3nmiVQrmtm9Fu\nflQ7eWw9I4eM3DvtvHd6ecigffU82jXrUQ5sOOBIuLcMHTp07/J9993H3XffzUMPPUR9fT1vfetb\nC15LPXjw4L3L1dXV7Ny5s1f6aqWVH+3mj9vuC91CI+CsXnej3RH5kW39II4ZM7TDtHN7AGfhm06y\nGlJLXa1Hu2bl5sAuk+HDh7Nt27aCZVu2bGH06NHU19ezYsUKHn744V7unfWE3S2tudDteEZzh2O+\n+ROtihjt1tVW7T1uO2JILUcfUc8JDR0Dt/OId2R9LcMHe7RrVskc2GUyZswY3vzmNzN9+nSGDBnC\nhAkT9pbNmjWLa6+9lqlTp3L88cdz8sknl7Gn/VdE0NoWNLcGe1rbaG5to6U1aG5t6/B+T2sbzS1t\nNLcGzW1tvLy7pcuIt+P77N+dza37/Wy1H9vNnbl8zBH1Haad2wN438lVHu2aDWQD9l7iTz31FFOn\nTi1Tj3pXb+1rW1sWaM2tQcve0IsUdmk5BeGeXDhm77M27cvNLW20pG3tSe1b2vYtdwjTTtvet5xb\n19JGc1vsW05tD1ddbdXeM5VH5oJ13wlUnS4hSiPe4XUe7ZpZpth7iXuE3UdFpxsKtF/k3/nC/rb8\nhf/t9VPb9gv9t+9u4fv/vXo/oVYgTFsihWUbzS1ZsLW0ZcudwzY/Em050DzuYaqpErXVVdRWi0E1\nVdRUVVFbk9bll6urqKutYnhdDbXVVQyqrqKmel/ZoGpRk1uura5K77Pt1lZXUVO1b7k2tR+UWx42\nuGbvCNijXTPrLQ7sg7BjTws797Tu9+45e+/mU2B9/k5B0PFuQwQpbDu27SmbdzTzD794au97ib1h\nVpsLs/0tjxhUS217YNakslxIdg3Ffe8HVWf1aqpSWWpTU7Vvuetnd+2L75NsZgOdA/sgbNvVwotb\nu56t3eXG/Z3vS8u+e9Nm96ytoobO97ktYjv5+97S+X63+9mORPWWOp78u3fuHSVWeyrWzKzilDSw\nJc0Crgaqge9HxLxO5aOB+cArgV3AhyNiWSq7BPgYWR59LyK+kWv3aeBTQCvwi4j4fCn3o93YYYM4\nYuiggmHZl1VViRF1teXuhpmZHYaSBbakauAa4B3AWuAxSXdExG9z1a4ElkbE+yS9OtU/TdJ0srCe\nCewBfiXp5xGxStKpwFnAayNit6TxpdqHzqqrqvARSzMzK4eqEm57JrAqIlZHxB7gZrKgzZsG3AMQ\nESuAyZImAFOBRyJiR0S0APcDZ6c2nwDmRcTu1G5DCffBzMysTyhlYE8C1uTer03r8p4gBbGkmcAx\nQAOwDDhF0hhJ9cDpwFGpzXGp7BFJ90s6qYT7UDLtT+s6FN/4xjfYsWNHD/fIzMz6slIGdjHmAaMk\nLQU+DTwOtEbEU8A/A4uAXwFLyY5XQzaNfwRwMnAZcIsKHESWNFdSk6SmjRs3ln5PDpID28zMDkYp\nTzpbx75RMWQj53X5ChGxFbgQIIXuM8DqVHY9cH0q+yrZCJ307+2RXff0qKQ2YCywsdO2rwOug+zG\nKT25Yz0h/3jNd7zjHYwfP55bbrmF3bt38773vY+rrrqKl19+mXPOOYe1a9fS2trKl770JV588UXW\nr1/PqaeeytixY7n33nvLvStmZtYLShnYjwHHSppCFtTnAufnK0gaBexIx7g/CjyQQhxJ4yNig6Sj\nyabN2+/P+VPgVOBeSccBg4CXDqunv7wcXvjNYW2ii1f8L5g9b7/F+cdrLlq0iFtvvZVHH32UiOA9\n73kPDzzwABs3bmTixIn84he/ALJ7jI8cOZKvf/3r3HvvvYwdO7Zn+2xmZn1WyQI7IlokXQzcSXZZ\n1/yIWC7polR+LdnJZTdICmA58JHcJm6TNAZoBj4VEZvT+vnAfEnLyM4g/2BU+P1VFy1axKJFizjx\nxBMB2L59OytXruSUU07h0ksv5Qtf+AJnnnkmp5xySpl7amZm5VLS67AjYiGwsNO6a3PLD5GdRFao\nbcF0SqPxOT3YzQOOhHtDRHDFFVfw8Y9/vEvZkiVLWLhwIV/84hc57bTT+PKXv1yGHpqZWbmV+6Sz\nASv/eM13vetdzJ8/n+3btwOwbt06NmzYwPr166mvr2fOnDlcdtllLFmypEtbMzMbGHxr0jLJP15z\n9uzZnH/++bzxjW8EYNiwYfzwhz9k1apVXHbZZVRVVVFbW8t3vvMdAObOncusWbOYOHGiTzozMxsg\n/HjNAWAg7auZWaUp9vGanhI3MzOrAA5sMzOzCjCgA3sgHA4YCPtoZjYQDNjArqurY9OmTf060CKC\nTZs2UVdXV+6umJnZYRqwZ4k3NDSwdu1a+uJ9xntSXV0dDQ0N5e6GmZkdpgEb2LW1tUyZMqXc3TAz\nMyvKgJ0SNzMzqyQObDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAlDWxJsyQ9\nLWmVpMsLlI+WtEDSk5IelTQ9V3aJpGWSlkv6bIG2l0oKSWNLuQ9mZmZ9QckCW1I1cA0wG5gGnCdp\nWqdqVwJLI+IE4ALg6tR2OvAxYCbwWuBMSa/Kbfso4J3AH0rVfzMzs76klCPsmcCqiFgdEXuAm4Gz\nOtWZBtwDEBErgMmSJgBTgUciYkdEtAD3A2fn2v0b8Hmg/94I3MzMLKeUgT0JWJN7vzaty3uCFMSS\nZgLHAA3AMuAUSWMk1QOnA0elemcB6yLiiQN9uKS5kpokNfX3+4WbmVn/V+6TzuYBoyQtBT4NPA60\nRsRTwD8Di4BfAUuB1hTeVwJf7m7DEXFdRDRGROO4ceNKtgNmZma9oZQP/1hHGhUnDWndXhGxFbgQ\nQJKAZ4DVqex64PpU9lWyEforgSnAE1l1GoAlkmZGxAsl3BczM7OyKmVgPwYcK2kKWVCfC5yfryBp\nFLAjHeP+KPBACnEkjY+IDZKOJps2PzkiNgPjc+2fBRoj4qUS7oeZmVnZlSywI6JF0sXAnUA1MD8i\nlku6KJVfS3Zy2Q2SAlgOfCS3idskjQGagU+lsDYzMxuQFNH/T7RubGyMpqamcnfDzMysC0mLI6Kx\nu3rlPunMzMzMiuDANjMzqwAObDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAO\nbDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswrgwDYzM6sAJQ1sSbMk\nPS1plaTLC5SPlrRA0pOSHpU0PVd2iaRlkpZL+mxu/b9KWpHaLJA0qpT7YGZm1heULLAlVQPXALOB\nacB5kqZ1qnYlsDQiTgAuAK5ObacDHwNmAq8FzpT0qtTmLmB6avM74IpS7YOZmVlfUcoR9kxgVUSs\njog9wM3AWZ3qTAPuAYiIFcBkSROAqcAjEbEjIlqA+4GzU71FaR3Aw0BDCffBzMysTyhlYE8C1uTe\nr03r8p4gBbGkmcAxZAG8DDhF0hhJ9cDpwFEFPuPDwC8LfbikuZKaJDVt3LjxsHbEzMys3Mp90tk8\nYJSkpcCngceB1oh4CvhnYBHwK2Ap0JpvKOlvgRbgR4U2HBHXRURjRDSOGzeuhLtgZmZWejUl3PY6\nOo6KG9K6vSJiK3AhgCQBzwCrU9n1wPWp7KtkI3TS+w8BZwKnRUSUbA/MzMz6iFKOsB8DjpU0RdIg\n4FzgjnwFSaNSGcBHgQdSiCNpfPr3aLJp8xvT+1nA54H3RMSOEvbfzMyszyjZCDsiWiRdDNwJVAPz\nI2K5pItS+bVkJ5fdICmA5cBHcpu4TdIYoBn4VERsTuu/BQwG7soG5TwcEReVaj/MzMz6Ag2EGeXG\nxsZoamoqdzfMzMy6kLQ4Ihq7q1fuk87MzMysCEUFtqTbJZ0hyQFvZmZWBsUG8LeB84GVkuZJOr6E\nfTIzM7NOigrsiLg7Iv4aeB3wLHC3pAclXSiptpQdNDMzs4M4hp3O2P4Q2eVXj5Pd9/t1ZPf2NjMz\nsxIq6rIuSQuA44H/BN4dEc+noh9L8unXZmZmJVbsddjfjIh7CxUUcyq6mZmZHZ5ip8Sn5Z87nZ5j\n/ckS9cnMzMw6KTawP5a70xgR8Sey51WbmZlZLyg2sKvTwzkAkFQNDDpAfTMzM+tBxR7D/hXZCWbf\nTe8/ntaZmZlZLyg2sL9AFtKfSO/vAr5fkh6ZmZlZF0UFdkS0Ad9JLzMzM+tlxV6HfSzwT8A0oK59\nfUT8WYn6ZWZmZjnFnnT2f8lG1y3AqcAPgB+WqlNmZmbWUbGBPSQifk32/OznIuLvgDNK1y0zMzPL\nKzawd6dHa66UdLGk9wHDumskaZakpyWtknR5gfLRkhZIelLSo5Km58oukbRM0nJJn82tP0LSXZJW\npn9HF7kPZmZmFavYwL4EqAc+A7wemAN88EAN0rXa1wCzyY59nydpWqdqVwJLI+IE4AKyB4qQgvtj\nwEzgtcCZkl6V2lwO/DoijgV+nd6bmZn1a90Gdgrev4qI7RGxNiIujIj3R8TD3TSdCayKiNURsQe4\nGTirU51pwD0AEbECmCxpAjAVeCQidkREC3A/cHZqcxZwQ1q+AXhv97tpZmZW2boN7IhoBd5yCNue\nBKzJvV+b1uU9QQpiSTOBY4AGYBlwiqQxkuqB04GjUpsJuaeFvQBMKPThkuZKapLUtHHjxkPovpmZ\nWd9R7I1THpd0B/AT4OX2lRFx+2F+/jzgaklLgd+QPWe7NSKekvTPwKL0eUuB1s6NIyIkRaENR8R1\nwHUAjY2NBeuYmZlVimIDuw7YBLwtty6AAwX2OvaNiiEbOa/LV4iIrcCFAOle5c8Aq1PZ9cD1qeyr\nZCN0gBclHRkRz0s6EthQ5D6YmZlVrGLvdHbhIWz7MeBYSVPIgvpc4Px8hfTIzh3pGPdHgQdSiCNp\nfERskHQ02bT5yanZHWQnvM1L//7sEPpmZmZWUYq909n/JRtRdxARH95fm4hokXQxcCdQDcyPiOWS\nLkrl15KdXHZDmtZeDnwkt4nbJI0BmoFP5R7vOQ+4RdJHgOeAc4rZBzMzs0pW7JT4z3PLdcD7gPXd\nNYqIhcDCTuuuzS0/BBy3n7an7Gf9JuC07rtsZmbWfxQ7JX5b/r2km4D/KUmPzMzMrItib5zS2bHA\n+J7siJmZme1fscewt9HxGPYLZM/INjMzs15Q7JT48FJ3xMzMzPavqClxSe+TNDL3fpQk3xLUzMys\nlxR7DPsrEbGl/U26xOorpemSmZmZdVZsYBeqV+wlYWZmZnaYig3sJklfl/TK9Po6sLiUHTMzM7N9\nig3sTwN7gB+TPSZzF/CpUnXKzMzMOir2LPGXgctL3BczMzPbj2LPEr8rPaij/f1oSXeWrltmZmaW\nV+yU+NjcwzeIiD/hO52ZmZn1mmIDuy095hIASZMp8PQuMzMzK41iL836W+B/JN0PCDgFmFuyXpmZ\nmVkHxZ509itJjWQh/TjwU2BnKTtmZmZm+xT78I+PApcADcBS4GTgIeBtpeuamZmZtSv2GPYlwEnA\ncxFxKnAisPnATUDSLElPS1olqctlYels8wWSnpT0qKTpubLPSVouaZmkmyTVpfUzJD0saamkJkkz\ni9wHMzOzilVsYO+KiF0AkgZHxArg+AM1kFQNXAPMBqYB50ma1qnalcDSiDgBuAC4OrWdBHwGaIyI\n6UA1cG5q8y/AVRExA/hyem9mZtavFRvYa9N12D8F7pL0M+C5btrMBFZFxOqI2EN2h7SzOtWZBtwD\nkL4ETJY0IZXVAEMk1QD1wPq0PoARaXlkbr2ZmVm/VexJZ+9Li38n6V6yoPxVN80mAWty79cCb+hU\n5wngbOC/09T2MUBDRCyW9DXgD2Qnty2KiEWpzWeBO1N5FfCmQh8uaS7pTPajjz66UBUzM7OKUewI\ne6+IuD8i7kij5sM1DxglaSnZ/cofB1oljSYbjU8BJgJDJc1JbT4BfC4ijgI+B1y/n35eFxGNEdE4\nbty4HuiqmZlZ+Rx0YB+EdcBRufcNad1eEbE1Ii5Mx6MvAMYBq4G3A89ExMaIaAZuZ99I+oPpPcBP\nyKbezczM+rVSBvZjwLGSpkgaRHbS2B35CpJGpTKAjwIPRMRWsqnwkyXVSxJwGvBUqrce+Iu0/DZg\nZQn3wczMrE8o9k5nBy0iWiRdDNxJdpb3/IhYLumiVH4tMBW4QVIAy4GPpLJHJN0KLAFayKbKr0ub\n/hhwdToZbRe+45qZmQ0Aiuj/twRvbGyMpqamcnfDzMysC0mLI6Kxu3qlnBI3MzOzHuLANjMzqwAO\nbDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswrgwDYzM6sADmwzM7MK\n4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswpQ0sCWNEvS05JWSbq8QPloSQskPSnpUUnTc2Wfk7Rc\n0jJJN0mqy5V9WtKKVP4vpdwHMzOzvqBkgS2pGrgGmA1MA86TNK1TtSuBpRFxAnABcHVqOwn4DNAY\nEdOBauDcVHYqcBbw2oh4DfC1Uu2DmZlZX1HKEfZMYFVErI6IPcDNZEGbNw24ByAiVgCTJU1IZTXA\nEEk1QD2wPq3/BDAvInandhtKuA9mZmZ9QikDexKwJvd+bVqX9wRwNoCkmcAxQENErCMbOf8BeB7Y\nEhGLUpvjgFMkPSLpfkknlXAfzMzM+oRyn3Q2DxglaSnwaeBxoFXSaLLR+BRgIjBU0pzUpgY4AjgZ\nuAy4RZI6b1jSXElNkpo2btzYC7tiZmZWOqUM7HXAUbn3DWndXhGxNSIujIgZZMewxwGrgbcDz0TE\nxohoBm4H3pSarQVuj8yjQBswtvOHR8R1EdEYEY3jxo3r6X0zMzPrVaUM7MeAYyVNkTSI7KSxO/IV\nJI1KZQAfBR6IiK1kU+EnS6pPo+fTgKdSvZ8Cp6b2xwGDgJdKuB9mZmZlV1OqDUdEi6SLgTvJzvKe\nHxHLJV2Uyq8FpgI3SApgOfCRVPaIpFuBJUAL2VT5dWnT84H5kpYBe4APRkSUaj/MzMz6Ag2ErGts\nbIympqZyd8PMzKwLSYsjorG7euU+6czMzMyK4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswrgwDYz\nM6sADmwzM7MK4MA2MzOrAA5sMzOzCuDANjMzqwAObDMzswrgwDYzM6sADmwzM7MK4MA2MzOrAA5s\nMzOzCuDANjMzqwAlDWxJsyQ9LWmVpMsLlI+WtEDSk5IelTQ9V/Y5ScslLZN0k6S6Tm0vlRSSxpZy\nH8zMzPpQRS3PAAAgAElEQVSCkgW2pGrgGmA2MA04T9K0TtWuBJZGxAnABcDVqe0k4DNAY0RMB6qB\nc3PbPgp4J/CHUvXfzMysLynlCHsmsCoiVkfEHuBm4KxOdaYB9wBExApgsqQJqawGGCKpBqgH1ufa\n/RvweSBK2H8zM7M+o5SBPQlYk3u/Nq3LewI4G0DSTOAYoCEi1gFfIxtBPw9siYhFqd5ZwLqIeOJA\nHy5prqQmSU0bN27sif0xMzMrm3KfdDYPGCVpKfBp4HGgVdJostH4FGAiMFTSHEn1ZNPoX+5uwxFx\nXUQ0RkTjuHHjSrcHZmZmvaCmhNteBxyVe9+Q1u0VEVuBCwEkCXgGWA28C3gmIjamstuBN5GNyKcA\nT2TVaQCWSJoZES+UcF/MzMzKqpSB/RhwrKQpZEF9LnB+voKkUcCOdIz7o8ADEbFV0h+Ak9OIeidw\nGtAUEb8BxufaP0t2YtpLJdwPMzOzsitZYEdEi6SLgTvJzvKeHxHLJV2Uyq8FpgI3SApgOfCRVPaI\npFuBJUAL2VT5daXqq5mZWV+niP5/onVjY2M0NTUd/oZ2bYFdWw9/O2ZWuSQYcgQMqi93T6yfkLQ4\nIhq7q1fKKfH+5+HvwH3/VO5emFlfMHgEDJuQvYZPyC2/AoaNh2GvyJaHjM5C3uwwObAPxvGzYUTn\nK9PMbECJVtixCbZvgG0vwPYXYf3jsO1FaH65a/2q2m5CPa0bOh5qBvX+/ljFcGAfjCNfm73MzArZ\nvS0X5C90DPXtL8KfnoM1j2SBX0j9mAOHevvyoGEetQ9ADmwzs54yeHj2GvPKA9drbc7CvEOop/fb\nUrhvWpX927qna/va+q6hPmx8ep9brh8LVeW+3Yb1FAe2mVlvq66FkZOy14FEwM4/ZcFdKNS3vwgv\n/hZ+fx/s3tK1vaph6Lg0Qs+Hen4Un5Zr67q2tz7FgW1m1ldJUH9E9ho/9cB19+xIId451NPytufh\n+aXw8kaItq7t60YeINRzU/N1ozwdXyYObDOz/mBQPRwxJXsdSFsrvPxS4VBvH7WveTT7t2VX1/bV\ng4s/ia7aEdOT/NM0MxtIqqqzUB0+AY48QL0I2L21Y5DnT6Db9gJs+j089/+yafsuBEPHdnMSXVo/\naGip9rZfcWCbmVlXUjZNXjcSxh134Lotu9NUfIFQb5+i3/AUvLwB2lq6th807MCh3l425IgBfRKd\nA9vMzA5PzWAYdVT2OpC2Ntj5x46hvv3FNIpP4f78k7D9LtizvWv7qppsqr3bk+jGZ33qZxzYZmbW\nO6qqsmnyoWOB6Qeuu3v7/kN92wuwZQ2sa8qOx1PgFttDRnd/ZvzwCdkd6yrkJDoHtpmZ9T2Dh2Wv\nYq5pf3lj4VBvD/vnHsrWF7qmvWZILtT3c6OaYROyy+Oqqkuzr0VyYJuZWeWqroURE7PXgUTArs37\nD/VtL8DGp+GZB7IHPXWmqiy020P9L6/Pju/3Ige2mZn1f1I2TT5kNIx/9YHrNu/cd017l5Po0nJt\n75/Z7sA2MzPLqx0Coydnrz5k4J4fb2ZmVkFKGtiSZkl6WtIqSZcXKB8taYGkJyU9Kml6ruxzkpZL\nWibpJkl1af2/SlqR2iyQNKqU+2BmZtYXlCywJVUD1wCzgWnAeZKmdap2JbA0Ik4ALgCuTm0nAZ8B\nGiNiOlANnJva3AVMT21+B1xRqn0wMzPrK0o5wp4JrIqI1RGxB7gZOKtTnWnAPQARsQKYLGlCKqsB\nhkiqAeqB9aneoohov1XOw0BDCffBzMysTyhlYE8C1uTer03r8p4AzgaQNBM4BmiIiHXA14A/AM8D\nWyJiUYHP+DDwy0IfLmmupCZJTRs3bjysHTEzMyu3cp90Ng8YJWkp8GngcaBV0miy0fgUYCIwVNKc\nfENJfwu0AD8qtOGIuC4iGiOicdy4caXcBzMzs5Ir5WVd64D8jWUb0rq9ImIrcCGAJAHPAKuBdwHP\nRMTGVHY78Cbgh+n9h4AzgdMiosA96czMzPqXUgb2Y8CxkqaQBfW5wPn5CukM7x3pGPdHgQciYquk\nPwAnS6oHdgKnAU2pzSzg88BfRMSOYjqyePHilyQ910P7NRZ4qYe2VakG+s/A+z+w9x/8M/D+9+z+\nH1NMpZIFdkS0SLoYuJPsLO/5EbFc0kWp/FpgKnCDpACWAx9JZY9IuhVYQjbt/ThwXdr0t4DBwF3Z\noJyHI+KibvrSY3PikpoiorGntleJBvrPwPs/sPcf/DPw/pdn/0t6p7OIWAgs7LTu2tzyQ0DBB61G\nxFeArxRY/6oe7qaZmVmfV+6TzszMzKwIDuyDd133Vfq9gf4z8P7bQP8ZeP/LQD7J2szMrO/zCNvM\nzKwCOLDNzMwqgAN7P4p40pgkfTOVPynpdeXoZ6kUsf9vlbRF0tL0+nI5+lkqkuZL2iBp2X7K+/vv\nv7v97++//6Mk3Svpt+mpgZcUqNPf/waK+Rn0278DSXXpKZJPpP2/qkCd3v0biAi/Or3Irhv/PfBn\nwCCye55P61TndLL7mAs4GXik3P3u5f1/K/Dzcve1hD+DPwdeByzbT3m//f0Xuf/9/fd/JPC6tDyc\n7MmAA+b/AQfxM+i3fwfp9zosLdcCjwAnl/NvwCPswop50thZwA8i8zDZPdGP7O2Olkgx+9+vRcQD\nwB8PUKU///6L2f9+LSKej4glaXkb8BRdH17U3/8GivkZ9Fvp97o9va1Nr85naffq34ADu7BinjRW\nTJ1KVey+vSlNA/1S0mt6p2t9Rn/+/RdrQPz+JU0GTiQbYeUNmL+BA/wMoB//HUiqTg+n2gDcFRFl\n/Rso6Z3OrF9bAhwdEdslnQ78FDi2zH2y3jMgfv+ShgG3AZ+N7GFFA043P4N+/XcQEa3AjPTciwWS\npkdEwfM6eoNH2IV1+6SxIutUqqKetNY+XRTZLWhrJY3tvS6WXX/+/XdrIPz+JdWSBdWPIuL2AlX6\n/d9Adz+DgfB3ABARm4F7gVmdinr1b8CBXdjeJ41JGkT2pLE7OtW5A7ggnSV4MrAlIp7v7Y6WSLf7\nL+kVSk9fkTST7G9pU6/3tHz68++/W/3995/27XrgqYj4+n6q9eu/gWJ+Bv3570DSuDSyRtIQ4B3A\nik7VevVvwFPiBURxTxpbSHaG4CpgB+m53v1Bkfv/l8AnJLWQPQL13EinTfYHkm4iOwN2rKS1ZA+i\nqYX+//uHova/X//+gTcDHwB+k45hAlwJHA0D42+A4n4G/fnv4Eiyp0lWk30RuSUifl7OHPCtSc3M\nzCqAp8TNzMwqgAPbzMysAjiwzczMKoAD28zMrAI4sM3MzCqAA9vMelx6itPPy90Ps/7EgW1mZlYB\nHNhmA5ikOemZv0slfTc97GC7pH9LzwD+taRxqe4MSQ+nBz0skDQ6rX+VpLvTc4OXSHpl2vwwSbdK\nWiHpR+13xDKzQ+PANhugJE0F/gp4c0TMAFqBvwaGAk0R8RrgfrK7nAH8APhCRJwA/Ca3/kfANRHx\nWuBNQPutGU8EPgtMI3u2+ptLvlNm/ZhvTWo2cJ0GvB54LA1+h5A9RrAN+HGq80PgdkkjgVERcX9a\nfwPwE0nDgUkRsQAgInYBpO09GhFr0/ulwGTgf0q/W2b9kwPbbOAScENEXNFhpfSlTvUO9f7Fu3PL\nrfj/N2aHxVPiZgPXr4G/lDQeQNIRko4h+//CX6Y65wP/ExFbgD9JOiWt/wBwf0RsA9ZKem/axmBJ\n9b26F2YDhL/xmg1QEfFbSV8EFkmqApqBTwEvAzNT2Qay49wAHwSuTYG8mn1PJvoA8F1Jf5+28b97\ncTfMBgw/rcvMOpC0PSKGlbsfZtaRp8TNrLPBkv6hmIqSnpX09v2U/Uex2zGz7jmwzayzH5W7A2bW\nlQPbzMysAjiwzSpQmoq+LN117GVJ10uaIOmXkralO4+NztV/T7pz2WZJ96WbprSXnZjuULZN0o+B\nuk6fdWa6E9pmSQ9KOuEQ+/wxSask/VHSHZImpvVKd1bbIGmrpN9Imp7KTpf029S3dZL+5pB+YGb9\ngAPbrHK9H3gHcBzwbuCXwJXAOLL/tj8DIOk44Cayu46NAxYC/yVpkKRBwE+B/wSOAH6StktqeyIw\nH/g4MAb4LnCHpMEH01FJbwP+CTgHOBJ4Drg5Fb8T+PO0HyNTnU2p7Hrg4xExHJgO3HMwn2vWnziw\nzSrXv0fEixGxDvhv4JGIeDzdbWwB2a1BIbss6xcRcVdENANfI7ur2ZuAk4Fa4BsR0RwRtwKP5T5j\nLvDdiHgkIloj4gayG6KcfJB9/WtgfkQsiYjdwBXAGyVNJrsUbDjwarIrV56KiPbbmzYD0ySNiIg/\nRcSSg/xcs37DgW1WuV7MLe8s8L790qyJZCNaACKiDVgDTEpl66Lj9Z3P5ZaPAS5N0+GbJW0Gjkrt\nDkbnPmwnG0VPioh7gG8B1wAbJF0naUSq+n7gdOA5SfdLeuNBfq5Zv+HANuv/1pMFL5AdMyYL3XVk\nD+qY1OlJWkfnltcA/xgRo3Kv+oi46TD7MJRsin0dQER8MyJeT/agkOOAy9L6xyLiLGA82dT9LQf5\nuWb9hgPbrP+7BThD0mmSaoFLyaa1HwQeAlqAz0iqlXQ2MDPX9nvARZLekE4OGyrpjPTQj4NxE3Bh\nekTnYOCrZFP4z0o6KW2/luwua7uAtnSM/a8ljUxT+VvJHkxiNiA5sM36uYh4GpgD/DvwEtkJau+O\niD0RsQc4G/gQ8Eey492359o2AR8jm7L+E7Aq1T3YPtwNfAm4jWxU/0rg3FQ8guyLwZ/Ips03Af+a\nyj4APCtpK3AR2bFwswHJtyY1MzOrAB5hm5mZVQAHtpmZWQVwYJuZmVUAB7aZmVkFqCl3B3rD2LFj\nY/LkyeXuhpmZWReLFy9+KSLGdVdvQAT25MmTaWpqKnc3zMzMupD0XPe1PCVuZmZWERzYZmZmFcCB\nbWZmVgEGxDHsQpqbm1m7di27du0qd1dKqq6ujoaGBmpra8vdFTMzOwwDNrDXrl3L8OHDmTx5Mh0f\nVNR/RASbNm1i7dq1TJkypdzdMTOzwzBgp8R37drFmDFj+m1YA0hizJgx/X4WwcxsIBiwI2ygX4d1\nu4Gwj2Y9orUZdm+DXVuyfzu88uu2Q1U1VA/KXjWDoHrwAZZroWZwp+X2tp2Wq6rL/VOwPmxAB7aZ\n9QMte1KQbs2F6tau63Z1U95SxEyUqmHwMGhrg9Y90Lq7Z/dFVVmw16QQ77BcIOCra1Od/HKubXdf\nEA7mS4e//JedA7tMNm/ezI033sgnP/nJg2p3+umnc+ONNzJq1KgS9cysl+wN2gIj2oKj3PaA3dpx\nXbFBWzcCBg+HwSOy17AJMOZVad3wVD5i3/t83fb3tUM6BldENjJv3ZO9WnYfYLk5C/jWPdm+d1lu\nTvXyy4W2tQf2bIedfyzQNlc/Wnv291Xd+YtDN18Wivmi4VmJg+LALpPNmzfz7W9/u0tgt7S0UFOz\n/1/LwoULS901swNr2X2A0WuhUWzufX6UW8zotKqma3AOewWMOTYXwMNzoVpgXd0IqKkrzQhRykKm\nZlDPb/twtbV2/bLQYXnPvlmCvcuH8qWj0xeN3dv3/0WjvW1PUnUu7HtgVmJ/bTu/bzgJqns3Qh3Y\nwFX/tZzfrt/ao9ucNnEEX3n3a/Zbfvnll/P73/+eGTNmUFtbS11dHaNHj2bFihX87ne/473vfS9r\n1qxh165dXHLJJcydOxfYd5vV7du3M3v2bN7ylrfw4IMPMmnSJH72s58xZMiQHt0P60fag7bg6LXA\nyHVvEHdaX3TQdgrR4UfC2OM6jWBHdno/HOpy60oVtANBVTVUDclmBfqSvbMS+5tVyC8X+qJxKF86\nmrNZiR2bCrdt/7yDmZW4Yh1UDyvdz6kAB3aZzJs3j2XLlrF06VLuu+8+zjjjDJYtW7b38qv58+dz\nxBFHsHPnTk466STe//73M2bMmA7bWLlyJTfddBPf+973OOecc7jtttuYM2dOOXbHSql5Vzej160F\njtEWCOFiRjb5oG2fIh4x8cAj2boC6xy0tj8VMyvRzSxBGb4IObDhgCPh3jJz5swO10p/85vfZMGC\nBQCsWbOGlStXdgnsKVOmMGPGDABe//rX8+yzz/Zaf60bEZ2mjguNXosc6RYVtLVdp4hHTITBr+56\nTLbuAMdpawY7aG3g6quzEokDu48YOnTo3uX77ruPu+++m4ceeoj6+nre+ta3FryWevDgwXuXq6ur\n2blzZ6/0tV9qa4XmHbBnBzS/DM079y3v2ZGVtZfv2V7cMdq25u4/t0vQjoQRDZ2miPd3MtRwB63Z\nAOLALpPhw4ezbdu2gmVbtmxh9OjR1NfXs2LFCh5++OFe7l0f1B6ozTthz8tdl/ekkN3vcoHgzS8f\n7OU5e4M2F5wjGmDc8CJOhsqNdGsGd/9ZZmY4sMtmzJgxvPnNb2b69OkMGTKECRMm7C2bNWsW1157\nLVOnTuX444/n5JNPLmNPi9TWti8A84HYJTCLCM/OI9zmncVdutOBoLY+m9oaVA+1Q9O/9dlZxu3L\ntfUHWB6ate+wPDS7DtdBa2a9TBFR7j6UXGNjYzQ1NXVY99RTTzF16tQy9ah3PfXUU0w9/nho6TzN\n2114dh6pHmCEe9CBSpEh2R66hZYLhW17+yGeIjaziiBpcUQ0dlfPI+y+IgKirbhXW5H12l9bnoe/\nP4RReu1+Rp7DxhcxOs2Paod0HOG2B68D1cysaA7sgxFt2bHUUoRqtB1Ch6qgqiq7nWH+VVXT8f2g\n7fAXlx/ENHB9dllO1YB9NoyZWZ/jwD4Y216E7S8cRIMiA7VD2X7WF3wVOUIdsh1ed8Uh7bKZmfUN\nDuyDUTciC9uiQ9VTvmZm1jMc2Adj0NDsZWZm1st8kNLMzKwCOLDLpP1pXYfiG9/4Bjt27OjhHpmZ\nWV/mwC4TB7aZmR0MH8MG+OXl8MJvenabr/hfMHvefovzj9d8xzvewfjx47nlllvYvXs373vf+7jq\nqqt4+eWXOeecc1i7di2tra186Utf4sUXX2T9+vWceuqpjB07lnvvvbdn+21mZn2SA7tM8o/XXLRo\nEbfeeiuPPvooEcF73vMeHnjgATZu3MjEiRP5xS9+AWT3GB85ciRf//rXuffeexk7dmyZ98LMzHqL\nAxsOOBLuDYsWLWLRokWceOKJAGzfvp2VK1dyyimncOmll/KFL3yBM888k1NOOaWs/TQzs/JxYPcB\nEcEVV1zBxz/+8S5lS5YsYeHChXzxi1/ktNNO48tf/nIZemhmZuXmk87KJP94zXe9613Mnz+f7du3\nA7Bu3To2bNjA+vXrqa+vZ86cOVx22WUsWbKkS1szMxsYyjLCljQLuBqoBr4fEfM6lSuVnw7sAD4U\nEUtS2bPANqAVaCnmCSd9Uf7xmrNnz+b888/njW98IwDDhg3jhz/8IatWreKyyy6jqqqK2tpavvOd\n7wAwd+5cZs2axcSJE33SmZnZANHrj9eUVA38DngHsBZ4DDgvIn6bq3M68GmywH4DcHVEvCGVPQs0\nRsRLxX6mH685cPbVzKzSFPt4zXJMic8EVkXE6ojYA9wMnNWpzlnADyLzMDBK0pG93VEzM7O+ohyB\nPQlYk3u/Nq0rtk4Ad0taLGnu/j5E0lxJTZKaNm7c2APdNjMzK59KPOnsLRExA5gNfErSnxeqFBHX\nRURjRDSOGzeu4IZ6+3BAOQyEfTQzGwjKEdjrgKNy7xvSuqLqRET7vxuABWRT7Aetrq6OTZs29etA\niwg2bdpEXV1dubtiZmaHqRxniT8GHCtpClkInwuc36nOHcDFkm4mO+lsS0Q8L2koUBUR29LyO4G/\nP5RONDQ0sHbtWvr7dHldXR0NDQ3l7oaZmR2mXg/siGiRdDFwJ9llXfMjYrmki1L5tcBCsjPEV5Fd\n1nVhaj4BWJBd9UUNcGNE/OpQ+lFbW8uUKVMOa1/MzMx6S69f1lUOhS7rMjMz6wv68mVdZmZmdpAc\n2GZmZhXAgW1mZlYBHNhmZmYVwIFtZmZWARzYZmZmFcCBbWZmVgEc2GZmZhXAgW1mZlYBHNhmZmYV\nwIFtZmZWARzYZmZmFcCBbWZmVgEc2GZmZhXAgW1mZlYBHNhmZmYVwIFtZmZWARzYZmZmFcCBbWZm\nVgEc2GZmZhXAgW1mZlYBHNhmZmYVwIFtZmZWARzYZmZmFcCBbWZmVgEc2GZmZhXAgW1mZlYBHNhm\nZmYVwIFtZmZWARzYZmZmFcCBbWZmVgHKEtiSZkl6WtIqSZcXKJekb6byJyW9rlN5taTHJf2893pt\nZmZWPr0e2JKqgWuA2cA04DxJ0zpVmw0cm15zge90Kr8EeKrEXTUzM+szyjHCngmsiojVEbEHuBk4\nq1Ods4AfROZhYJSkIwEkNQBnAN/vzU6bmZmVUzkCexKwJvd+bVpXbJ1vAJ8H2g70IZLmSmqS1LRx\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_history(history_long_res)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Printing summary" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "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", "
simplelongresidual (two steps)residual (one step)
error (%)1.7000001.9100001.6500001.72000
calc. time40.69113820.91130445.39407335.97874
\n", "
" ], "text/plain": [ " simple long residual (two steps) residual (one step)\n", "error (%) 1.700000 1.910000 1.650000 1.72000\n", "calc. time 40.691138 20.911304 45.394073 35.97874" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "data = np.array([[accuracy_short, accuracy_long, accuracy_long_res, accuracy_long_res2],\n", " [t_short,t_long,t_short2+t_long_res,t_long_res2]])\n", "data[0] = (1-data[0])*100 # convert to %-error\n", "df = pd.DataFrame(data, ['error (%)', 'calc. time'], ['simple','long','residual (two steps)', 'residual (one step)'])\n", "df.head()" ] }, { "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.3" } }, "nbformat": 4, "nbformat_minor": 2 }