{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "オリジナルの作成: " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\tHiroshi TAKEMOTO\n", "\t(take.pwave@gmail.com)\n", "\t\n", "\t

SageでTheanoの畳み込みニューラルネットを体験する

\n", "\t

参考サイト

\n", "\t

\t\n", "\t\tここでは、\n", "\t\t 人工知能に関する断創録\n", "\t\t のTheanoに関連する記事をSageのノートブックで実装し、Thenoの修得を試みます。\t\n", "\t

\n", "\t

\n", "\t\t今回は、TheanoのTutorialから畳み込みニューラルネット(CNN)を使った手書き数字認識を以下のページを参考にSageのノートブックで試してみます。\n", "\t\t前半は、人工知能に関する断創録から参照されている「StatsFragments」さんのページを参考に畳み込みとMaxPoolingをSageで動かしてみました(ほぼ引用ですみません)。\n", "\t\t

\t\t\n", "\t

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

前準備

\n", "\t

処理系をSageからPythonに変更

\n", "\t

\n", "\t\tSageでTheanoのtutorialのCNNを実行すると、DimShuffleでエラーになるため、今回もPythonを使用します。\t\n", "\t

\n", "\t

\n", "\t\tそこで、ノートブックの処理系をSageからPythonに切り替えます。上部の左から4つめのプルダウンメニューから\n", "\t\t「python」を選択してください。\n", "\t

\n", "\t

\n", "\t\t\n", "\t

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

必要なライブラリのimport

\n", "\t

\n", "\t\t最初に、theanoを使うのに必要なライブラリをインポートします。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 必要なライブラリのインポート\n", "import six.moves.cPickle as pickle\n", "import gzip\n", "import os\n", "import sys\n", "import timeit\n", "import time\n", "import urllib\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt \n", "%matplotlib inline\n", "\n", "import theano\n", "import theano.tensor as T\n", "from theano.tensor.nnet import conv\n", "# 変更され、パッケージが移動\n", "# from theano.tensor.signal import downsample\n", "from theano.tensor.signal import pool\n", "\n", "# これまで確認したlogistic_sgd.pyのLogisticRegression, mlpのHiddenLayerをインポートする\n", "from logistic_sgd import LogisticRegression, load_data\n", "from mlp import HiddenLayer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

畳み込みニューラルネットワークの構成

\n", "\t

\n", "\t\t「Theanoによる畳み込みニューラルネットワークの実装 (1)」から\n", "\t\tニューラルネットワーク(CNN)の構成図を引用します。\n", "\t

\n", "\t

\n", "\t\t\n", "\t

\n", "\t

\n", "\t\t最初に畳み込み(convolutionの矢印部)とプーリング(maxpoolingの矢印部)を持つLeNetConvPoolLayerが2層あり、\n", "\t\tその後に多層パーセプトロン(HiddenLayer)と最後のロジスティック(LogisticRegression)から構成されています。\n", "\t

\n", "\t

\n", "\t\t前半の畳み込みでは画像の特徴を際立たせるためのフィルタリングを行い、Max Poolingでは画像のずれを吸収し、\n", "\t\t疎な結合を構成しています。\n", "\t

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

畳み込み演算

\n", "\t

\n", "\t\tTheano で Deep Learning <3> : 畳み込みニューラルネットワーク\n", "\t\tの例題をSageで動かしながら、畳み込み演算の効果をみてみましょう。\n", "\t

\n", "\t

\n", "\t\tTheanoでは、畳み込みの処理がパッケージtheano.tensor.nnet.convのconv2dで提供されています。\n", "\t

\n", "\t

\n", "\t\tconv2dへの入力テンソルは、以下の様な次元を持ちます。\n", "\t\t

\n", "\t

\n", "\t

\n", "\t\t入力テンソルinputを4次元のテンソルとして定義します。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "rng = np.random.RandomState(23455)\n", "# 入力画像を受けとるシンボルを作成\n", "input = T.tensor4(name='input')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

\n", "\t\t重みテンソルWの次元は、(2, 3, 9, 9)で、フィルタは9x9で、2x3(出力の特徴マップ数x入力の特徴マップ数)=6種類のフィルタが使われます。\n", "\t

\n", "\t

\n", "\t\t以下の例では、重みの値は一様乱数を使って生成した意味のないものです。実際にはこのWが学習によって画像の特徴をより抽出できる形になります。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(-0.064150029909958411, 0.064150029909958411)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 重みテンソル \n", "# W の次元を指定 ( 出力の特徴マップ数, 入力の特徴マップ数, 畳み込み(フィルタ)の縦幅, 畳み込み(フィルタ)の横幅)\n", "w_shp = (2, 3, 9, 9)\n", "\n", "# 発生させる一様乱数の範囲を指定\n", "w_bound = np.sqrt(3 * 9 * 9)\n", "-1.0 / w_bound, 1.0 / w_bound" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

\n", "\t\tバイアスベクトルは、出力の特徴マップ数の長さを持ち、フィルタリングの後に各画像に加えられます。\n", "\t

\n", "\t

\n", "\t\tそのため、4次元のテンソルと足し合わせられるようにdimshuffleで次元を調整します。\n", "\t\tここでは、conv_outの2つ目の次元と合うようにします。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([-0.3943425 , 0.16818965])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 重みテンソルを初期化\n", "W = theano.shared( np.asarray(\n", " rng.uniform(\n", " low=-1.0 / w_bound,\n", " high=1.0 / w_bound,\n", " size=w_shp),\n", " dtype=input.dtype), name ='W')\n", "\n", "# バイアスベクトルを初期化\n", "b_shp = (2,)\n", "b = theano.shared(np.asarray(\n", " rng.uniform(low=-.5, high=.5, size=b_shp),\n", " dtype=input.dtype), name ='b')\n", "b.get_value()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[[[-0.3943425 ]],\n", "\n", " [[ 0.16818965]]]])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b.dimshuffle('x', 0, 'x', 'x').eval()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 畳み込み とバイアスの足し合わせの定義\n", "conv_out = conv.conv2d(input, W)\n", "output = T.nnet.sigmoid(conv_out + b.dimshuffle('x', 0, 'x', 'x'))\n", "f = theano.function([input], output)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

畳み込みの画像

\n", "\t

\n", "\t\t通常の画像をどのようにしてTheanoで解析可能な形式にするのか、\n", "\t\tTheano で Deep Learning <3> : 畳み込みニューラルネットワーク\n", "\t\tの例がとても分かりやすく参考になりました。\n", "\t

\n", "\t

\n", "\t\t入力画像は、縦130px * 横120pxのRGBのJPEGファイルです。\n", "\t

\n", "\t

\n", "\t\tこれをswapaxesを使ってTheanoの入力にあった形式に変換していきます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(130, 120, 3)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 画像の読み込み\n", "from scipy.misc import imread\n", "\n", "# 読み込むファイル名を指定\n", "# PILでjpegのdecodeができないため、pngに変換して使用\n", "# img = imread(\"images/01.jpg\")\n", "img = imread(\"images/01.png\")\n", "img = img / 256.\n", "# 元画像の次元 (縦幅, 横幅, RGB)\n", "img.shape" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3, 120, 130)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 1軸目と3軸目を入替 (RGB, 横幅, 縦幅)\n", "img.swapaxes(0, 2).shape" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3, 130, 120)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 2軸目と3軸目を入替 (RGB, 縦幅, 横幅)\n", "img.swapaxes(0, 2).swapaxes(1, 2).shape" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(1, 3, 130, 120)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 1軸目にダミーの軸を追加 (dummy, RGB, 縦幅, 横幅)\n", "img.swapaxes(0, 2).swapaxes(1, 2).reshape(1, 3, img.shape[0], img.shape[1]).shape" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "img_ = img.swapaxes(0, 2).swapaxes(1, 2).reshape(1, 3, img.shape[0], img.shape[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

サンプル画像へのたたき込み

\n", "\t

\n", "\t\tサンプル画像のRGBのそれぞれの画像にフィルタを使って畳み込みを施すと以下の様になります。\n", "\t

\n", "\t

\n", "\t\tフィルタによる畳み込みで2つの特徴マップ(画像)は、異なる表情を示します。\n", "\t\tこれがフィルタによる特徴抽出の効果です。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(1, 2, 122, 112)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 係数テンソル + バイアスベクトルを適用\n", "filtered_img = f(img_)\n", "filtered_img.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "オリジナルの画像\n", "" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# RGBの画像\n", "plt.figure()\n", "for index in range(3):\n", " plt.subplot(1, 3, index + 1)\n", " plt.axis('off')\n", " plt.imshow(img_[0][index], cmap=plt.cm.gray, interpolation='nearest')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAADGCAYAAADCFnuZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsfUeTXNlx9SnvfZuqRjv4AQYYckgOnUIKUlooQqHQWqF/\noI3+jFZaayFFaM2NJAaDImOGpDjkOAADDNBooL0p7/23qO9kn/vQAEeUOA1BlRt0ocx775q8mSdP\nZvqm0ynmMpe5zGUu//vFf9E3MJe5zGUuc/mfkblCn8tc5jKXN0TmCn0uc5nLXN4QmSv0ucxlLnN5\nQ2Su0Ocyl7nM5Q2RuUKfy1zmMpc3ROYKfS5zmctc3hCZK/S5zGUuc3lDZK7Q5zKXuczlDZG5Qp/L\nXOYylzdEghd14b//+7+fessO+Hw+AMDL/p8ynU6dz/h8Pnvt9/vt836/H5PJBMPhEAAQjUbR6/UQ\nCoXsu41Gwz4biURwdHQEAJhMJigWi6jX6wCAWCyGfD6PYDBo3/P7Z+fh6ekpdnZ2sL29be+lUikU\ni0X7biAQQDweBwBkMhmk02kAwGg0QrfbRbfbBQCMx2NMJhP7LADE43G7Lu8TAAKBACaTCQaDgf1W\nIBBAIBCw7/K9breLXq+HZrNp95BKpTCZTADAxiWRSAAA0uk0Hjx4AABoNpvw+Xx49913AQDHx8fo\n9/tIpVLO+PMe9R44B3w9mUxs3DiXv6/ovJ+3Rv7u7/7Od973/tDy13/91y9d2wBeunb5mnPi/Z6u\nbe84DodD5PN5W+vj8djGvNfr2ff5utVqYW1tDcBsfWWzWfT7fQBAp9NBOBwGAJRKJUwmE7Tbbbvu\nYDCwfVIulwEAS0tLAGbrhtfr9XoYjUZ2j6PRyHm26XSK4XBo9zmdTu19Piu/z3Hi2o9EIva9aDSK\naDSKZDIJYLbWq9Wq3ZvP50MkErHvnp6eotPpOOPK78bjcUQiERsLv99v+4zPxHHkHHBOvHP5qnn+\n74jP58M///M/n7u25xb6XOYyl7m8IXJhFvp5p5VaWy+zcCaTybnWjp7ylMlkgvF4bJbjdDqFz+cz\n66NSqZiFnk6ncXJyYq9LpRIGg4FZMaPRCIPBAK1WC8DMivn4448BANvb2xgOh3jrrbcAAKurqwiF\nQnaqF4tFXL9+HSsrKwBmFi+tmKOjI/R6PbN2w+EwAoEAotGoPZfX66CFEAqF4PP57NnH4zH6/b6N\nwWQysd9Jp9OYTCY4Pj4GANTrdbTbbWxsbNg9HhwcmOXV6/XsmuFwGCsrKzZugUAA/X4fhUIBwMwi\nCgQCNnbxeNw+S6tI50Qty1fN9cssGq81/vt+5quUl3kS3v/jGj3vPa+1rr/LuaBHViwWba0CszXH\n93w+H65cuYJsNmvfabfbNmdra2v2+91uF41GAycnJwBm6+Lp06dYWFgAMLPMs9msrfVgMGhzvrS0\nZGuS99Dr9RwrXb3PYDBo3jP/5toOBoOOhd/v980b8fv9aDabtv7G4zGi0SjW19cBAPl8HqPRyKx9\nXYPlchn9ft9eJ5NJx5seDAZoNps2VjrmHE9FB1S8c6nyP2mxq1yYQn/VRj7v71dteu9AUobDIXw+\nn8Ebp6enNmEAHKhjMpmg3+87bmgikXAmazgc4qOPPgIAPHr0yBbUxsYGksmkLcylpSXcvn3bFv1w\nOESj0cDjx48BALVazaCNer2Ofr9v3w2FQs5hwHvjPfOavP/JZGKf5Xt8HY1G7f/C4TBGoxHy+TyA\n2SJvtVo4PDy0e2q1WrYJQqEQMpkMAODJkyfo9/v2PIlEAj/72c9skxcKBYNWeF9UJoVCAcFg0MYx\nGAw6h6w+p86r92+KF257HeVV9/cqQ4aia9u7vvk3FRwP7Mlkgm63a3PUbDZRq9Wc71y6dAkAkEql\nnPny+XxIJpO2NgDg4OAAALC1tYXj42OMx2MAs7V99+5du87p6SlOTk5sfcZiMZvbw8NDdDodU+jj\n8RjxeNyBVabTqSnGXq9n1+n1eo5CpJHAwyIajdoBFAwGEYvFbCy63S76/b7d02g0Qq/XMyUdiURs\n/9FY0kMnHA4bJEOYlWOp0M14PMZ4PLbx5d8vg11U/jtr+FXfvTCFrvK7TiudWC4GryXORTQajZzP\nhsNhw41zuRxGoxFOT08BzBatKt1AIGCWjs/nQyKRwM7Ojl3nX/7lX2zRRKNRx7pVBZ5MJnHv3j1T\n4IuLi7h586Zzz7Tux+MxstmsHTrRaBTT6dQWFO/La+lS+v2+LcbhcIjBYGAbRK35YDAIv99v70Ui\nEYTDYdvkw+EQ/X4f9+7dAzDbuNwAly5dwvHxMXZ3dwHMlP3Vq1cNo6TyXlxcBADs7+/bhtnb28PK\nyorNj8/ng8/ns43rtWJeZdW8Sn7f771Oct79q4JQLNfn88Hv9yMWiwGYraOFhQV7/+joyL4XiUSw\ntrZmc0DhHOVyOYRCITx79gzATInz71gshrW1NVv31WoVw+HQ4kWpVAqXL1/G9evXAcziK1wXu7u7\nGAwGTgyr1WrZmuS/VMyhUMiuQ0xb13atVnOsbK6h8XjsjF08HkculzODZDweI51O21glk0m7p0gk\ngsFgYJ5BJBLB4eGhxb+2t7exurpq+3M8HpsnkM/nUa/XHQzdGwP5n5RXeXmUOYY+l7nMZS5viLwW\nFjrwasbCq04knooUxceCwSB8Pp+dzJ1OB51Ox5grygbJZDJYX183bDufz+PevXtmiWxvbyMYDJoV\nfu3aNdy+fdu+u7e3hy+++ALAjOVy48YN3LhxA8DMa/jRj36EarUK4MwlBIDNzU1ks1mzhnu9Hrrd\nrlkt6oJ6x4NuNt8js4G/Raucn/Xi1+1223Fhl5eXzYIPhUJmkXc6Hdy4ccOsmG63i93dXbz99tsA\ngMePHyOdTmNvbw8AsLKyYlBOIpHA6empeT6hUAjT6dQZe4UY/itW9h8Kh7wo4fPoPngZBEWMmXOS\nTCbR7/cNBqtWq7h69SqA2VpOJpMWP8lms7h9+7athUePHuHp06fY398HgBegt36/b15uPp/H4uKi\nWbjr6+uoVCr41a9+BWDmkfGzZGRx/9GTVlw8Go06uLnCF2p5k8Wia5/j1Ol0MB6PbV9XKhWcnp5a\nXCqbzWJjY8OuyzUIzNbn0tKS7bednR2DI4EZZMjfB2YWPO+31WohGo06noJ6xd5436vkVeuY6+LL\n/NZro9CBl2Om51G7vH8rFMPPxuNxBAIBgy8GgwE6nY4p3o2NDXPL/H4/lpeX8emnnwKYKftf//rX\ntshzuRzu3r1rSjydTtvEffbZZwiFQgY5JJNJHBwc4PPPPwcwW3APHjwweKPdbuNrX/sagLOADRfj\ncDjEdDp16F7BYNBoY71ez5Qu71ODoOqKKnZNV5YKvN/vG92Lv3N8fGzjuLi4aM83Go0MS+W4+nw+\nU9rvvvsuPvroI5uLRqOB5eVlADNMcjqdmptK/PJlSkvn9Ly51/e9n1X536LovXirFzP3xgyoTAKB\nAGKxmMEm4/EYzWbT1uv169ftdzqdDiaTCTY3NwEA77zzDvb39/Gf//mfAICnT586gfm1tTVnz/h8\nPjscSqUSdnd3DYI4OTnB9va2rY1wOGy/EwqFLI4FzNZRMBh0IAldy8Ph0NY96buUQCBgMBPHhRAS\nDwVet91uo91u228xPkQYZ3Fx0QyMSqWCTCZjB9Ty8jJqtZodQjs7O1hZWbH912g0TGe0220Hmw8E\nAhgOh7b/XmWY/q71ed53v8yankMuc5nLXObyhsiFWujnJYP8rve8Frm67oAbRKJ7R+vQ5/Nhd3fX\nmCzpdNpcq7/6q7/CL37xCwvovP/++6hWq2bVrK+v486dO2ZR7O/vm5uWTCbh9/udIGilUrFTfXt7\nG6VSyVgE0+nUTvnpdIp2u+08j1KsgJlVoM+pLh0tKB0jDToRjgkGg+j1emahDwYDJ4Hp6tWr8Pl8\n9vnpdGpeQyqVwsrKit3/p59+ilAoZM+3uLiIW7du2djt7e3Z2JCGSTZRo9HAdDq192kJ6dx6rdb/\nCgzzOljm5wV5vwwF82UBYs4nKazAbG4Vruj3+2i32xacZEIMMIPANjY2DEb5x3/8R0wmE4MTx+Mx\nbt26ZTBgo9Gw+8jlckgmkzZ/9Xod3W4XpVIJAPDhhx86STqpVMphjsXjcbtnrzfGYD/vMxAImHXL\nID33Af/1JlPxOlyLwAxGicViNjbD4RDBYNDuq9frOTphf3/f9mM0GkUmk7F9cPv2bXzxxRfI5XI2\nJ4S1SLIgxJROpx3Wi+5hndPz5HdRdb+svFaQy6vkZZuaLioXgnK2mfHF9zqdDpLJpFGQNjY28M1v\nfhPADDZ58OCBwQjD4RDvvfee8U8TiQTG47G5lrFYzBZUrVZDOp22CeQEc9EkEgmsr6/j+fPnAGYQ\nBZVlMBhEp9Mx97HVaqHf75ui5Yamwh8MBk6k3+fz2cL1+/0WN+D7ikmSQQPMFO1wOLQDzevuKz2r\nUqlgcXHRFvmf//mf45/+6Z8sRvDgwQMsLCzYJo/FYrbofT6fUeyA2SY4Pj62DaQ4MJ9HDzfNeOR9\nqngVoLJALkrOU8xfVs5T/pyH6XRqUEcwGEQqlbK1Xa1WMRgMTGmVSiWDSe7evYt2u41/+Id/ADBb\nC6FQyJgc0WgU29vbdmCn02mDJ3gY83m2t7exsrKCJ0+eAJit8eFwaPMZDAZtzxDO40FBmrDmMxAr\nB1xcnGOoeLseCLrnx+Oxk3Ha7XadsWJeh7JR+N3RaITxeGwK++joCNeuXTMG287ODjY3N43GOR6P\nLZ/k0aNHWFlZseckrMPn1XXPPeylW3uf97x1o/et/3+eXGhi0asW/av4m7rog8EghsOhLXqmvwMz\ny3l3d9dO73A4jC+++AI/+MEPAMywwp///OcAZoqyXC6bcqHSJS63sLCAra0tw4br9bqTZATAlHC7\n3UYqlTKs/sqVK6hUKmbtM90fmC3iZrNp98xFzEVCRcsFyGdW4Qbx+/2GU1K8i0DpnTykgJnVUq/X\n7X2lci0uLmIwGNiGH41GeO+99+z5Ll26hF6vZ0HUQCBgyuSzzz5DoVAwS7zf7yMcDpunU61WLW1c\n55d/66Lngvd6afrd18FCB74cF53PorRELwUvGAyagtDgOTCzhmkkNJtNdDodW2MbGxv4xje+AWAW\ntP74449tvJjnoMbLrVu37LqpVMpRwuolkOLI68bjcfR6PVuDo9HIoQu2Wi1b6yQoKEWQeQkcFw3+\nq0eiyYHAWbyIwrIeACyvg9fVsgAUr6fA9dhsNrG1tWXrd2Njw34HmNEyue5v3LiBhw8fmk4IBAJO\nQl40GjXd41XKFG+C2Hn3533/VWtrjqHPZS5zmcsbIq8F5HKede49QbVID/8PODupNWOOFkC1WkWz\n2XROyfX1dbO6d3Z2HFeSWDEws8DX19ftBD04OECxWDQWgTJPotEo0um0JSz5fD6LngMzyCKXy+Ha\ntWsAYNmmwMyK0Wy5cDjsuIccC4WUFHP0xhB0PL3v0XOgKNwBzCwb3geLPfHvXC5nEFIqlcK1a9ds\nbI6OjjAcDs16DIfD5pLfvHkTjx8/dhJgMpmMWT2DwcAgsGw263gGXgz5vLIB+vfrlFz0KvfYe99e\nKp4WNgsEAjYe0WjUvMHV1VV0u12LWzQaDSQSCYsPXb9+3ebgyZMnaLVajmX88OFD82rfffddy6YE\nZglB3G/pdBqBQACXL18GMFtDJycnth6bzSZisZjNva6pRqPhpNUPh0Mnw5PPzd9SeFRhRo6j16NX\nT+e8om9alEzZNsPh0Fn3ygYLh8MYj8f47LPPAABf+9rXkM/nzWIPhUK2Rw4ODpDL5Qw+5X7Xvays\nMoUTvRTVV2WY/i7rXeW1Sv2nvCyVHziDWDgwo9EIyWTSON6Li4vmXm1vbzswymg0Qi6Xcw4F4t3A\nDPvlhtnc3ES327WDIpVKodFo2OdDoZADQZRKJePirq6uYnd318nEKxQKTuCGSiwejyMej9sG4vU0\nOOSlMaoop9abqaYbgmnivAcGNbkIW60W4vG4vd9utx1Xf2FhweHv7+7u4u7du/bdg4MD+61ut4tK\npQJgpjxu3LhhmYeDwcBxf4PBoM2dzzdLQddFz/nmdVVepSwvEnr5rx4qSrlVuGwymdiaBWZzxrFL\npVJ4+PChrcdoNIqbN2+aYj05OTFlz0OTCq5cLuPWrVtG3eNBQggmlUoZDBaNRp24VK/Xw5MnT2yu\nechz3YbDYSffQhVtJBJBNBo1JRcKhdDtdh3Ixbv3FaogpMjP6jrXsWN8iOuF1UI5Nn6/33D+4+Nj\nRKNRe97xeIz9/X2Drh4+fIibN2/auOfzeZuPn/3sZ04ZAZb04GdrtZpRmYnVeznqL4Nc9P+o+F8G\n26i8Fhj679p8iitSwWngbDAYOMVzmK7farUwnU6N//3o0SN897vfNfwvEonYgH/88ce4dOmSkyyj\nCRQnJyfodDpOCVwurlAohJ/+9KdmebB8rqbOdzodR4lz0U8mE8RiMbNgiS/rmHS7XTuUdBGEw2EH\njwZePOn1s7pZ6NlQafd6PcRiMYdLTit6Op0imUza8+zu7qJYLNom3tjYwGQyMQWSTCZtXB88eAC/\n32/KY2FhAc+ePbMN1O/3nVo7LEnAe9c6Nl7R5+Eaed0w9FflUFB0UxOHBWDKjwpwMpnYuJXLZVtP\nwGwtb25u2nfVGHn69KnDn7579y7C4bDDPGo0GhYIjEQitrYbjQaWlpbsgH727BkSiYRdZ3FxEQsL\nC/a+Gi66T3VMtMaKBj5jsZiDkXuDhF4r3Kscec/hcBjBYNDB3SeTid3j8vKyjSmTmbgPqKy5lhcX\nF/Hw4UNLKPzud7+L3/zmNwCAO3fu4Pnz50YAWFlZQblctvtIpVJ2TSp5Hl5axkHHx+uZnydzDH0u\nc5nLXP4PyGsBufwu/JMZWMCZFUOJRCLw+/3m9gwGAzuZnz9/jvX1dcO2b9++jUgk4lihH374IQBY\neVu6kBsbG3j69KmdqKlUCuFw2JgtBwcHZqUkEgmjHwIz9sx4PDZLs9VqYWlpyQpyFYtFp7yswiRk\n6fC3B4OBk06sRbqUugWc8dL1tVotPp/PYSPoeA8GA0SjURvbfD5vpXSr1arDVJlOp9je3rYxX1hY\ncCpXqnt/9epV3Lt3D3/yJ39iY76wsGDWZaFQcFLSldJIvF9LI3vXiJem+CoX9quUV2UJvozpwHgK\n55jjTe9M2ScnJyfo9Xr2+vr162i3287zv//++wBmkMPy8rLti1Qqhel06vCn19fXbf2Wy2Wz7uPx\nOMrlslms/X7fKWubSqXQarWMArm1tWXrguVuOUfj8RidTuelmc58DZzlL1B0LXMMvfCUwpS6Lwit\n8v9qtZpZ4sVi0aH6+v1+xONxG4tGo+FQK//1X//V2EOkOPK+jo6OHKSgVquZZV6v162MAO9X968X\nrTgPQ3+tIRfg1YtcXyv25OVLT6dT5HI5e+jhcGgKPB6PI51O2yBeunQJDx8+NOiAtRiAWW2Wcrls\nbufe3h7i8bgdJHt7exbUoRA2AWbURU4mqxMSSqhUKqjVauYu7+3t2Wen06lT25nlCrQby8soi4qf\nA2dldnVRcLH1ej1HYbOWOn9vPB47fONCoeBASsfHx1hdXQVwxifmuPr9fiwsLFgtl2QyaRDL3t4e\nEomEJbEsLy8jkUjYd09PTw2eOTw8RCQScfD3aDT6QrlVFe/rV8VfLkLO26AqGvDmaw0KqwFSKBTs\nIJxOZwlpWrJ5MBjYIfDb3/7W1lQul3PogYPBAL1ez5RNLBZDvV63+c7n87ZOmEDH3+LhwLV8cHCA\nq1evOnRDCtcnrxsKhayvAPAi9TAYDNre5PdUiWnikUI12h8AOEs40rK9Wna60Wg4gebhcOgYD9Fo\n1CFHeOs/6VoejUZ45513AAC//vWvnd/WcUulUiiXy7YvWCpY99/LqIpeRf4qhf56rf65zGUuc5nL\n7y2vTcei8yAYfo4nu36X7zNJgifhcDg0amEsFsPe3p7RBYfDIfx+v0EDz58/t2zHbreLt956y5Jj\n+v0+er2ewQGpVArBYNAgFwYGgZnVEo/HrecmT2IGSwhz0HPQDD9vcIQFirQDDKvS8bU+q5fGp9lo\nSsdiZUalfyYSCcfFDYfDDoTBa/r9fpyenr7gKpPadePGDeRyOWP9PH/+3Ky/dDqNcDhsVk0+n0e7\n3basUvZjBWaezcnJiV232WzC7/ebxaOUNq4DtVp0XfyhalL/PvKqJBF9nwWoNDtyYWHBxmM4HDq9\nPHu9nmU6DwYDjMdj3L9/HwBeCCYXCgWnrAN7ygIzqKDf7xtUMplMsLW1ZfcEnFm/S0tLyGQyBsGQ\nNca1HgqFnPnxNjPxeo2aREf4FJjBNecF93XMvOU/CFVxDzE4OxwOHfKAlirIZDIW8NRrqUUeCoVs\n7LLZrHmQ6XQaly9ftkSj69ev4/nz56ZDrl27Zp+dTqeIx+MOK0m9l/Osbu/a/jJyoRg6xeuWeqEY\nb42HUChkSpJ1F6jkjo6ObAFxsfF39/f3EYlEnPomxNICgQB2dnZswFutlgOx8P850blczhbMjRs3\nHCgmlUrh6OjIDo6VlRUcHBw4ypPuICES5erqRiT8olxlTXnW73pdWB1LLiDlmfNZgDNmA112n89n\n7mGj0UCr1bKNmEwm0el07Pmr1apTk+Xq1atGgbtx4wZ+8pOfWB2R7e1tvPfee1bp78aNGw5VkgwF\n4IwGpof3yxb3q9bQRct52a/6txd20AqYWq9Fm5eMx2Osr6+bEmPcQqEF3SNsEwicVbzk4dBqtQwm\nBGYsMY5jqVRCNBo1qIeVGNXAOD4+dpqYKw3T5/M598TPADAsXitIess86AFNhhvgzi9hSW2eriyX\nUCiE8XjsHGjcm2yfp8wiZlEDsGcjRFqtVk1ntFotK4UAzPRLNBo1zvrjx4/NmNzd3UWpVDqXmcXn\nUwYb71P//TLyWiQWeQNaXtEAY7fbRTqdNoXI7/PU1YQeJjUo7jwej81Svnz5si0+xW6B2WRFIhGz\nNIfDIZ4+fWpWOQsAATOrRdOfnz59iul0aoue3WOU883vkp+qgSM9sLihOUbdbtcpSuStD6G4uBdf\nVwrcaDRCp9OxIDCLPWlrLlrcgUAA5XLZCajm83mLIZyeniIej9vnvR7H9773Pfz4xz8GMMMdHz16\nZGWIf/7zn+O9994DMNs8etglEgkcHh4a7ZTPpD1Ufx8r5g8trzpwgJd7D962coDLvee6painB8yU\njSbMcI2xvjcP5EQigWfPntlnmTfx4MEDALMgN613WtiMn9Ar5DqpVqsIh8NOgowqdPU2SR/0lr3V\n5+drlt7VAwxwFbkaJ96ifNls1qkp0+l0bDzY9hGYWevD4dCeJxqNotvt2m+zFDbnYX193fGQ0+m0\nGUaxWAylUsk8zkKhYBTpK1eu4OjoyKEvJhIJuw8e7uehFP8V42SOoc9lLnOZyxsirwVtUf8POD/p\niC4RrVW1nDVtWcsAdDod6yYEzGCSVqtlLlIoFDIrs1wuIxKJ2OmaSCSwublpTSpqtRri8bgxMvr9\nvjFiaD3wNPY2a/ZSsLRRLkW9k1Qq5bihmqmn16Nlr9/1wjX8HjFJvk4mkwiHw8YqYNU8xh+y2axZ\n3IuLixiPx5ZKDszceFrOOzs7qFarNh7D4dDcToWlgJm3Uq/Xzdq/desWHj16BGCWqKEF0NhogHjt\n8vLyS9lQXmvmdckU9VIt1YL1Jk5xXSvmHIvFHCyYVnoymUQ0GjVLkpCKMpMIDfR6Pado1s7ODkKh\nkLGwDg8P8eDBA/u8lodIpVIOU4zWLvcN4y7KMNE1p3RDWtLehujeHqM6bspk0UQ4LTHN63EsuGfU\n6ia0wnsm5k8vQjNstUTGaDTCcDg0fVMul21tP336FBsbGwYvslw3yy/s7e3ZM21tbeHy5cvmEbN4\nmDLuVCeeNxZfZm2/NrRF7//rotfPJhIJRxkyhZ2LnvgZAFuw/C5pisq1Zg1zdrWnW7a8vIzHjx/b\nQk4mk0gkEoYlXrt2zZTSwcEBTk5OHPy50WjY+/l8Ht1u1+6r3W47tWeUB0sMVSdN4SVuTooqe+Lr\nHB+mbetn9WD0+/12QE2ns9oXSsUkprq8vIzFxUVTJltbW1haWrLP3rp1C3t7e7awr1y5YveQyWTw\n6aefOsqDUAowc/d5cDx58gRra2v2u6ylzdKljUYD+XzeyTh8mVt6kQr9d137VYaMHsK5XM5RnrVa\nzeGoT6dTGxumtjNov7S0ZOvx+PjYSlcAs3WwtLRk371//z5KpZLNUa1Ws7rqpPxpeedGo+Gs3/F4\n7JSMVZhkOp2+kEPysrny5lHwXvm7Ct8Abj0nfa/X66HT6Tgt6CaTia2zUqlkivT4+BjZbNZZ96QS\nA7NDQmuyaP3zq1ev4tNPP7VYU6fTQblcNoMkn8/bZzOZDE5OTuy60WgUjUbDgZ80fuZtX/faB0V/\nl+jDjEYjU479fh/Ly8u2cGu1Gjqdjg1EOp02pcugJ09qn8/npOxvbW05C7PX61nE+/T0FKenp3Zd\n/gat0Ol0atchq4MKEIBTP7xerzvlPb3JFLFYzDm4NGW63+87qf/nWfZq0Xk5t8qJVUYBNxut/XA4\n7NSK7/V65q0AM+VC5c9aLVQAxWLReXbl3LNWDa3s69ev47e//S2+//3vAwB+85vf4Fvf+haA2ebZ\n3993EmqGw6FhobVaze6T4q374mXCvG6iHpXXCg2HwwiFQjafmUwG29vbTr0hZXaQnQKc4dGa2MI9\nks1mHUbU2toa6vW6eUZkHFGp3bx50wyZpaUl22PAWU8BKl4qWi3Nwfc0qQ2Alc7l83G+tDa5KnTt\nP6qlfwE3qY4la71Fv3iADYdDVKtV+w1Nsur3+6jVamZgXL161UoCA7N9sry87PTL5bqfTqdIJBIO\nlr++vm51i1KpFN566y0As0MzEAjYPR4eHqJYLFpwNpPJOAaXPofXy5un/s9lLnOZy/8Bea0sdG+x\nHf5N2hF9uEKGAAAgAElEQVRwFrHXtlwqx8fH2Pz/ldK2t7dx9epVO5kXFhbM5QdmVCK6ZbQkia2x\nyaxWSwuFQuYynZ6emgUUi8XQ6/XsdC0Wiw4eFolEXsAWeVLH43GHqkeL3NuKS09lLdak1r6OH4X3\nyDZ5yjWeTqdOtic/B7hlQu/fv48f/OAHBrnk83kcHx/bbx0dHVnjYcBt8eX3+7G5uWnXOT4+xg9/\n+EN88sknAGYeFTnq3/rWt/D55587zT8KhYI9Xzwex+npqVnw3rnXjjcXSVt8VQEuxcy9zUhIvSM0\n0Gq10Ol0HN42n53rjfEgspg4zsz8Bc68VnqXp6en1hYRgKXjc990u11bB81mE7VazYG5gLOM5fMK\naGkHIoVA6UWot6mQjNcK7ff7zvUUrvFSmzXnIhaLORAMPVx6IH6/39hqy8vLTmVUlj2gpzMej9Fu\nt43lo0XNCOVoB7HDw0MbV+0udvnyZezv79s9ELLkdZUlx2fyltp97VP/XybeFF/lZ6q7B5wFK6lM\nVOmy9jkxLtaAZj1y7SlKChg3BIMu/K2DgwN873vfM3dK28ZxYqj8WSuDE0/ergZlNDCkraqGwyF6\nvZ49I11yb0yB46T4OzBTApq0pC7qZDKx5+OYKkWO3wFmC5lKOR6PY2dnxzi1jx8/xtLSko3F+vo6\narWacc2fPHlim5Q4IgNFP/vZzzAajSyw9OjRI/udGzduYHl52aCeWCyG/f1923yTycQ68/B9rfPi\n5eRflOjhe14gS+dSqWqst6M5FWoIqPJj9yIqmkajYaVggZkC5HVYaZH0usPDwxconxsbG7bWe72e\nA2kOBgNTPEzy4z17A/MKK3CNaaVQ3dsUXXN6SHvLzWrsiH0D+KyDwcApT82y2nye6XRqvPtOp+P0\nvN3Y2DBD7ujoCKVSye45nU5b0hbHnffE2jnevUuIjHVugNlaZc9R4CwIyrXMaqheiInjppz8/3UK\n3bshaH0AL5bQZClPnny3b982q/s73/kOyuWyTeTh4SEGg4HhvdFo1DDz6XT6Qgu25eVlw9a+8Y1v\nYH9/3767trZm7/l8PsMagbNFzslhsEOVjzfZggrcO2mqnAE4G4Sf0+/oYaG/ywL7XMgcR8UKM5mM\nkyBE3JuZg5yD7373u9ja2rJNcHBw4DCAFhcXbcwfP36MTCZj95jJZHD//n1873vfAzBjCvAgeP/9\n9/Gnf/qntlH39vawsbFhYxUKhZwM3EuXLtnzeLNmXxfxsrlUgdO7UiWmlmSn03kh+YQbPRaLYWlp\nyZQwjQb+lja06HQ6KBQKdlCWy2UkEglTPKurq04vgEQiYWPMtavJTV5RbjmfGTgrTcv3yMLxFlRT\nBaXrXBlBxNpfdliqwcT9pwlpvE++T8bW8vKycxDE43H4fD5b+1euXMHp6anplEql4jC2UqmU7XsG\nTzmO0+nU6U2az+dtPx8eHiKZTNphwMQnjel5vZAvI6/fDpjLXOYyl7n8XvLaWOje5gsUMj54simT\ngZ8dDodGFcpms2bxkRb07//+7wBmlsejR4+snZZaFczaUvc3HA4bW6PT6aDf79tJXavVnLKmWraX\n90SLVtktgFvekxx6PakVYjoPo1T+7XncVXVxKaSWaanWVCrlsCZarZaDWWpK89raGn77298CgLWf\nI854cHBg0Be/qwygGzdu2PMmEgm0Wi3Ho+LvJhIJfPrpp/j6178OYGbFaGMGemO0YpTPTo/odSuf\nqzAQRS1HTTNn1jDHjvOs3hvhw8XFRWSzWWOq+P1+RCIRg1VOTk7MY8rlcmg2mwahkaLK+aM1q7V4\neO14PO48A2shaf0ZfV7FzL1rt9/vO03c+RltqegtG6A5F7rvlZ7LEgLcm/Q8CHkSWuT7mjVLSItj\nkUgksLOzY8+QTCbRbrcNIqzX6+aZZzIZ7O7u2vU2NzfNswHglGKIRqNOYxuWkKaOINzEuWYJAh2L\nL7OmXwuFzgXDB1AoIJPJOHWFiUnpZCmF7s6dO5YMlEgk8NOf/tQG9d69e7h8+bIFf0KhkEEDhHWU\nNzoajQw3vnfvnm0aAI6i4cLjgHuTeHifGtzSQIr3s6qYvK6nV6EDcA4ShWR04wwGA+e7xEX5G/F4\nHPV63UnO4O+Slsg5+PGPf4y/+Iu/sLFKJpOYTqcW3Lxy5YodhJ9++imOj48NQw8Gg6Y4gNmG4sFx\nfHyMnZ0d2zx37tzBBx98YEXPBoMBUqmUsxl1HbyqXd1XKecdsroZtYwFy0YAsznQlnylUslpoRiP\nx/Htb38bwGyNHR4eOrXknz9/bnNGhQ+c8aM12ByJRCyRiDV8GPTWejLeNUWDw9vj9jy4izkSXirp\ny1rOaU6Fl1ZLw05hE2/vVb7WWACfQf/Vff7FF1/grbfesljEwcEB1tbWbCyePn3qJARFo1FT2kyy\nOg/mAtyuUul0GltbWwbxVioVdLtdpy+xPt9oNHohHvRljJU55DKXucxlLm+IvBY9RX0+n3MiaTGu\n0WjkRIdDoZA1TQBgxelJFdKEmEAggCdPntiJvbS0hOvXr+PmzZsAZv0RNfUdgFmPCwsL8Pv9xp5h\nyVCexkzWAGBJQ2pNeLNdx+OxWZZaqsDrltLaUchFGQvnFcL3iloutLTIntB76vV6DgtGmym0220b\n40QigeFwaIGkYrGIX/7yl1ZUq1KpoFgs4he/+AWAs0QVYAZHPX/+3LyieDzuNAru9/tmoVcqFeTz\nebvOnTt3sLGxYUkdhMo0zZwBqHQ6bWncnIOLEm/pCu8cazMT7f05Go0czw+YWWfcC9evXzdo8aOP\nPsJnn31mQexHjx5hNBqZVc7+lsBsXNXD8vl8SKVSjnemHX00wMi1rZY0g53AGWNLA/5KW/RWk9Sx\noBWujBn9nLeErnfta0KPrinev7JRNAs1nU47/XK1ZDMAh2Y7mUzQarVsXBuNhlnzR0dHiEaj5lFl\nMhmr/grMPDD1eorFoln3RACUHKE6UMeFr78Mg+tCIRevK8HXg8HAKVFJPBuYuTFeBkk0GrVB3tra\nMgXQ6XSwsLBg2XTvvfeek51VqVQcd7darZriAeDUDw+Hw4jFYqb4deKIfXndfH6XVC2FWShU3lyo\ndG+9LBfKec1ltRSvlxmgmaGpVMpczUAg4CwmsmAoupjq9TouXbpk8FQwGMTjx4+tlsuNGzewt7dn\nsMrR0ZFd59atW/jggw/su9ls1qnDsbq6anXVv/GNb+DHP/6xwQb7+/u4evUqfvKTnwCYzdHy8rLB\na/1+36lxTaX+Oom3TokqaCodPgMPO67PYDCIZDJptM1SqYSHDx8CgP3LcS6Xy7h586a59PV63Qwb\ndgLS5sXKxsjlcg5FMBQKOdUIeaDzOdTACAaDiEQijjFDoVJSFpbGhwC3m5AaMt55ZDaqdnNS/rpi\n7D6fD5FIxNYRDRkdd66hQCCAfr9vNcwvX76MZrNpRka5XMbW1paVQqjVagb78tBRqmG9XjesPhaL\n2Ti1Wi2ntn29Xkc2m7W539nZwerqqtOcWqtHeg+3l8mFKXRVyudREXmSlUolPH/+3LDscrmMfr9v\nVgwtS3biZpIPMBuUJ0+eWD/L5eVl+P1+m7xoNGoFtQqFAnK5nIO3tdtts4CIj2kxHS6oXq/ndEI/\nj3Ko1jEAB+f20tbC4bCzOLUUQDgcdvi4Sm/iZuNmjEQizqJQfI8BGy6owWCAeDzutCmjYkmlUjg9\nPbVeir/4xS+wvLyMTz/9FADwZ3/2Z8hkMjYewWDQShEXi0W8++67TlOAyWTiBOToCdBap8Wzt7eH\nZDJpNLGdnR2kUin7rlLGarUaotHol0q++Crld21CNVam06mzfieTCW7cuGG/0Ww2rfZQvV63NQrM\nvJlCoWC/tbW1ZeuEzSuUwhoOh03x8HqatKTrRrFdKmQNnmsehTe5S5W0/t9546PUUy9FkWWlX0ae\nUK+XFFzeYzKZtIAsn58Knc/KtX58fIxisWh7pVgsotlsms4YDAZ2ULJwmdaZUk89m83aXmRpYz1U\nRqORxZr6/b717uVrjZF92aDoHEOfy1zmMpc3RC60fK5asAoVKK66s7ODYrFobs5oNHISStjBm1iV\nViwLBAJ4++23jcY4GAywvb3tJG5oGd6FhQW7h2az6VhPnU7HSb2u1+tmrft8Pid1l+6h10LXhBJv\nhF5ZEV4rR7E1wE271t8ltqnUL3VLI5GI3WMgEHAgJXYLotWm+DQtBc7BrVu38OTJE/v/e/fu4caN\nG5bx+bWvfQ2//vWvAczSzK9fv27NE7rdLvx+v+PdaEEpvYfpdIrPP//csPput2vV8YCzVHngzN0l\n5KBezEWIzqd6WNrOrFQqWfIQMLMG2+22rSvCg3zGBw8eGKvF5/Oh3W4bNbFYLKJQKFgWtGaNArO1\nr/CPltqlxa5sFF1DSqcj5Md7UrgQeBFOVMiF8QStvuj9V+m82r6O9EbdQ2rtKqTJkhZ8fi+mPhgM\nbC2zYTnnZHd3F5lMxinNcffuXYvr7O/vWwzu6OgIKysrFtdgUxyiBxpz8/l86Pf7pm+m0ykODw9t\nvWazWWdsNAFtMBi80GntZXKhQVENpHj5qMQGmcHGBz84OLBSlMBsMj/++GMnm5D4eyQSwcbGhi0y\n1l+h25pIJCzQpm4mMFvk7FoOwLLw6OJ6A5Xe1H7lpfPAOq89GOBSGr3xBIVJ9H2+x8MEOJ/GqPWx\nFfYh7slFX6lU0G63TVnqpm40GgaVcCyuXLlifNzDw0P0ej2jG47HY3NpI5EIarWaQWYffvgh4vG4\n4/4rPXJ7e9s2yLNnz5x6M6lUCsPh0OiRxWLReVZVjt5M3K9S1D1m/ERjPtzwvV7PCURzjPlMzWbT\nSADAbB44n8fHx7h27ZrNXzqdxsHBgc1Jq9Wy30kkEg4uTkycv8WgJuNDwJmSZSVQ3auqbIiB87U3\nAKpCePBl/GoNJhNy0XvUw0OV+3A4RCwWs+djSj3vmTx1hTb1UNHYGMeW8SHGCAiNtFotg1+m0ymS\nyaStdcZweB/9ft/mJ5VK4fDw0OaEVUN53YWFBaciJGNCwEyhawb3axkU9U62KjwqAeAsIk2rZTqd\nNY3m+w8fPkShULCg2507d0xZrK6uOmVtDw8Psbu762BeyrdVXjOVGxUvC+1oMIjvEd/TuuXeWt16\nOJzHv1WLTgNU553GmpiiCoD4pLJplB2kxY54oKrHQZYF4GL1TDiip/P06VNcuXLF5mBxcRE/+clP\n8Ld/+7c2rjyQg8GgUx54YWHB6cOo8xOLxbC6uupglN1u1xRaoVCwOtLAGbsGODuAeeB6D8KvWhQL\nVktTDYFIJOIYIIVCwYnNRCIRnJ6e2vjod4vFIpaWluw5G40GHj586PQF4NqmstNSyvV63Q5OYOb9\n0DAIh8NOHoiuRwb/z7OqvUKmlyYHqULnOGkMyCveta51X7weh3K4x+OxrUG2XtTDgWPcbDYRjUad\ngmgnJyeGZbPdpZbV1kbyWg+KB7Jel/qk1Wo5xkksFkOxWDQWXTQadZKJqtWqc2Cp4TPnoc9lLnOZ\ny/8BuTALXa1S4s3aFYUnZrVaxc2bNw1iWVhYQKvVsm4r/X4fT58+NVzL7/cbD3oymeDg4MDSobe3\ntzGZTMzlXVlZcXBEhS8CgYBDTeTvKUVQGTBqabAsqqbVk0/O36F4q895T2FmbPI7vV7vhYpsarUA\ncHB/dfWBM8uV461ueaPRMAsvnU7b7/j9fnQ6HfOCLl26ZIWz+FvT6RQ///nPAQB/8zd/Y9ANq9dp\n04ZsNmuWSiQScfjCKysrZuHUajV0u12jcoVCoRca62qnHM3iI4XyIsRbME2tR6WkstG48sG3t7cd\nOO7BgweOu01GEJs00JL88MMPres8gBcKrQFncQVWG9SCU+rZaQyHcRjOH5tYa3zoZeuZEIvi4rrv\nCbEop12hm/MaTGtVR4U81etlBVONu+l9+f1+G2NWlqSXxFIHXHP5fB6Li4v2emFhwe7xgw8+QCaT\nMeu93+8jl8s5JQhUJ2isqFarYXFx0ZCHarVq3ivgVpWlx8TPvio+dGEK3Zs8pC5FJBKxjbm6ump1\nVABYp3o+eCKRQKlUMiVdKBRsIPx+P5rNprmsw+EQuVzO3tfylgx4agsvuqbAGReUCr5QKJiy1NZz\n/DcSiTiBl+FwaMqUQSh+Vkukknr4slIAutlYE0aDJ7qJNU5Bd1fdeQ3WEdfmPdNNBc7qafO9TCbj\n8KVXV1extLRkgU9V9sTXST3c29tDqVQy7nksFjMl1G63Ua1WTRm3220EAgGnNnc8Hrf78vl8Nj+r\nq6uOQuO9XbQQKuD6VV45YQPmPhwdHSEWi9m9/8d//AcSiYRhqQAcui5riQAzGExptYlEwvYT4Qdd\nG1rpz+fzYTAY2DrSmkUkGeh4aoKPl2uu4i0ToFRcflfFC0Nq3SYSDRR/f5lBqAcEADMeNCFN43Xx\neNzgw0QigaWlJTMqms0mLl265Ch46o9MJuPsGf4W5+v4+Niuw9aZqpuUlNFsNq3nAn+L97SysoJu\nt3tu3XivzCGXucxlLnN5Q+TCLHTNVFQ3Sv8FzooO8RTs9/t49uyZWcq3b9/GwsKCuaKZTMYCDbVa\nDZVKxSiNpVLJ6cbi8/nME+j1ek4yQiKRQLvdNiuAp7g3cg7AKF9eiMVrcWhgiVYmA0xei/w81gB/\nR3s2BgIBp2AYu7XwHnnie91Or8UeDoeRTqdtXLXQ0PLyMiqVilk6zOS9f/8+AOCtt95CPp+3z//b\nv/0bvvOd79jvHh4eGpsomUyi2Ww6jYT57P1+34JUwMwa6vV6ZnkdHx+j3W6bBaQVBJl0wveYyHRR\notYgcObFLS4uOglb165dc7rlVKtVG9fhcOiMK/tO8vfb7bZVW2y328bMAGb7hlZmv9/HeDw2630y\nmSCZTNpc05NVeE7de7XQudaVMuiFmLyUR4UPFZr00ha90KNCLN1u99wsaX5WrXeOF9cRi7rx+bTk\nhZIiOFbJZNLmi+uesMr9+/dx+/ZtALP+wp1Oxwl0VioVm0/NVp1MJmg0Gk5tdibz8brAWdmMvb09\nuwc20uB80Xs6Ty5UoWtWpmaBNZtNXLlyBcBsAXU6Hcvo5IYlZv72229je3sb3/zmNwHMcC3Fno6O\njmyAgdkCZRrvYDAwtyYajaLVajkt6Y6Ojhx2gk4AmS38W1Nz4/E4+v2+M1mKO/KZVbwpzwqj6Gvg\nzOUiXUxdTKXIKQ6nioDjoFmlzKbjWGn3plwuh+XlZWxtbQGYLbp+v2/QyPPnz1EqlQwjvH//vtHn\nLl++DJ/Ph48//hjAmUJjjIR0Q+CsA5E2Nz49PXUy746Ojgx2YH0dAFbfh7/l7cT0VQohDAqbIwMu\nTZPQ1RdffAFgtu6fP3/uwHqZTMYgmtFoZDGOTCaDp0+f2vplC0WFRrSmiNL2fD6f0RyB2dpQip03\nc1tLNZCeq+tR6bHetH7vuHhptwqdKNWUCl1Lb+h1FWLxssZ4/8qCUQYa4RzgrOmGZoC3220b83a7\njePjY6MtamnoYDCItbU1Y2H5/X5nbWsMjvuSByFr5/DQTafT6HQ6psTJegFgfHVv9cjz5MIUutY+\nGQwGCIfDtliz2ay9t7+/j06n84LFQIUfCoXMguRvccC5IEjPonJgMsa9e/ds0THBRRNvqtWq8afZ\nd5EHivY5jUQiqFQqZvlzsXnLhSqtStPklfPt5epqR3Vel+LtZsSgkvLFvZxfbwBLS/qy6zx/21tA\njM9TrVaRyWRsThj4pBLb2trC+++/D2BWO71UKuGDDz6w59UUdfKAeZ1Op+PU68hkMg4VsVqt2mGx\nsrJi3/Wm/nsDgl+1qCfn9/vNUAgEAmaFJZNJHBwcmAd5cnJi3eAp2WzWnqVcLtthVq/X8ezZsxcU\nE9fgYDAwJcba/HpPalUzFqMeppb4HQwGDj9c1xGv6w1mUs4zRLyiBorOvfLQmVbvJQTwb8Yq9Lr8\n3XA47HgdSlv0JvYxoZBruVQqOWvu7t275kElk0nk83mnI5p2OVOPiQYj5ySTyaDRaJiuunbtmlPi\neGFhwX6XLS15z3o4eWWOoc9lLnOZyxsiF2ahRyIRp5dfJBJx4AVtwKwNmaPRKC5fvmy4cblctuLx\nwOy05kn8ySefYHFx0SzLTqdjnbqBmcWuXkIul3MaJChscnBw4LBG1L0ntEGrpt/vO0WWvKVA1SL3\nFt/yYud0MzULVJODtPsRmSva/YgWDy1wL+yjzAB1Rfl/HLdwOGxwTLVaxfXr182aGI/HaLVaDh30\nl7/8JQDgV7/6Fb7//e8bHPPkyRP88R//sVkvLLbGsVDrKBQKWYMTYGZ1Z7NZ88YWFhaMtnd6eupk\n1ynd9KsWL72OxduA2brRTlbMXgZmMZClpSXbF3fv3kWpVDKLT73C09NTTKdT+61QKISlpSWDoLR0\nw3A4xOLiopNYpIwLel9cc+dlJZ6X9cnn89Ic+R7x8pfBibofeA31ZtW6J2Tk/Y73e/pd9V4U4lUI\nFphZ5ep5KyuJVVj1tcZwSDcEZrDf8vKyrb2TkxPzxnh96ohWq+VUBy2Xy9ZQHXCZcPF4HI8fP7Zk\nvFet7QtT6N76JN7gCRfjyckJFhYWbBOHQiHk83mrG3LlyhUnHVxdKwAONOD3+51u9VrvIRwOI5vN\nWpCUdRg0YKfB2nA4/EJTaMWn9V8tL8r78CpObi7NhuN1vHigBjK95VfV5dVFwRRtDRTpbzEDV/m5\nWgM6lUoZbFCv19FoNOy3SAPTmAEX+S9/+UtcvnwZb731FgDgRz/6EZrNpr0/GAycOiHAGeVwOp1i\ncXHRwR2Xl5dNAR4eHjrljuv1uvGJL1I0b4B1T7QtoMJc9XrdqJdHR0e4cuWKYbCrq6tOhqcGerVz\nPQCDC5VCx3GMxWIOTTGRSDhla8PhsKOwtUon6bwap9GqiFyv3i5a/FvXMuVldEXVAfw+32P7RL7W\ncgPk0OueUjov75GKMJlM2trVuufAGbyh+3V5edn0S6VSMSPi5OQEfr/fYC7G3fi+1sAJBoPIZrN2\nWJOcobks6+vrFuRX3nmn03F0yMsyc4ELruWiKdAMKACzAvP8u9vtOqnkKysrToGj/f19B49XZRmL\nxTAcDp1gi5YC1f6UHGxukufPn5uCBM5wfr2ORsaBF/m13ug+P6c4ODH0V3Fy+Ru8hlo0egCwlRjH\nbjgcOslB3hIDes3hcOgsdCaQ8D3t30kOLRV+s9lEJpNxkmeIA5+cnOCTTz7BX/7lXwKYbZhKpWLW\n/OrqqhNkUvYTE72opMmO0b6uaq0fHx/bxrvIxCJvwC6dTpslrYlRzGvgfGazWUSjUbPqjo+PnToq\nvV7PSabp9Xqm/KPRKGq1mpPerglMwWDQCRhrX03GSHgdjUXwfV1z3rIWXqtcRb0VWtKqaBWPP6+u\niwaTqTj5vvceKCyf4fUq1GLXJKNQKGQHIQ8sSqPRQD6ft2vTkgZmxqImt125cgX379+3faEB6mw2\na8QD4KxGFb2FdruN09NTZ85UnxSLRcs50AYoXplj6HOZy1zm8obIhXYs0lR1byEplrjN5/PodrsO\nbqWVDP1+Pw4PD52oNU/bWCxmKe3AWcNpje7T6iQLgNbEwcEBbt++7RQ7YrstAA4tjfCRl06k0X5a\nQbyuWtyK7wWDQQf/0+wxfp7ijdDzefS36cnQ2uZn1V3X51ELnfeUzWYdDC8ajVojAP4WuxoBbtOK\nQqGA+/fv4+tf/zqAWd7Aw4cPcefOHQCzIlO8ZjAYRL1et+cdDAYO6yWbzSIUCpm1VKvVzCL/9re/\n7XSgott7EaIuOytact46nY79zVILXLsbGxtO7kCj0UAul3MKOHFfDAYDFAoFg65YFIpWoTIhWAaa\nazkej2Nvb8/ug1miSm31dsHSMsWK5auVrK/5f+rpkaGmXoTXslbrXanM6tXoOFM0q5TlMtRz5Thw\nTrxePKHWzc1N1Go1+y2Wx6BXuL+/b6V0k8kkfD6fZaLfvXsXe3t7TjNuWuvtdhvBYND02MnJCfr9\nvln7gUAA9Xrd1m273XYK5al3ppCyVy60YxEnKx6P4/T01B5ebx5w8etkMonHjx+bG86gICctk8nY\nJt/Y2HC4uwyOaGKHt3YKFRuDraSUkX/LhdtsNp0qh166Vrfbddw6r1tIoVv5siSk84JACvuoS97v\n951OJ1pDmZtUyxMopl6v1534g5YuYNla5UBXKhXHza7X6waLadLV0tISAoGA1Uf/4Q9/iOl0alBJ\nPB63Ko6ff/65w0Nn+QGOI/FGDUwTrjk6OjLYhfNzUaKwHzct509pqOPxGPV63VxoQovaYV7L4PL3\neI1UKmVjE4/HbdwAOGuKUBrXPdvPUcERj9byE7putGIiIYqXJb55DQ41DFjqQK+jVRMVJqGBpBRc\nrQ3vTTLy4vUKq3CtK22RQgPIW+eFhyyNCl53PB7bOGazWWeuO50ONjc3rT2gVngk5EodxwOHv6Xj\nAszmmRBZPp9Hv983LryW+vXKhWLoijEPh0Oz+FqtlgWKuFD5sJxkLkZvg1ftM1kqlbC1teUQ9JXl\noo1yeQ3FnwOBs7rsTHDSusjKNgHgYJJaG4OLTTcQhRaAjoVilpooRFFl7+0/qhaRd+NpsO68Yl3d\nbtdp78YFxcNJswXD4bApZSZQMNgcDocd5aHBoJ2dHXz96183nnoul3OaJSjXmA2K9XlqtZqT7EWL\nh41OOMa0oi5CNJOSxZ5U8XJcuVa1lk0wGHQ2uXqC5XLZiWtoT0pgplC8WdfA7CDUBhdkcXDsuPbp\nVbG2EnAWeFdjRT0OMnjUoldvUwvEeS10r9LWQ8VbCposuPMORorXq+U9RaNRp8CYGgneBthkg3n/\nj5/X8s0HBwdYX183Q6PZbCKfzzu1hsg6Wlpawng8tntaWFjAwcGB4zX1ej0zSFKplN0DW2HyHl5l\nrNlNy+wAACAASURBVMwx9LnMZS5zeUPkQiEXnmxsS6bYKbFCMk0Y+T85OXFoVUwdp9vqbb0VCATs\nd5lxSosgmUyaG3Z8fGxdfQBYTRSehqy4dl7XIfKwmYFKy1jZL0qrUqy+2+0il8uZVZbJZJxSu17X\nVrFOwjh8TRddrTSFVKLRqGPFKDeevHtaAYuLiw63fzKZ2D2yIQCj7pcuXUIwGHRKD/OzxWIRp6en\n5nE9fvwY169fNxz88PDQvJ5r167hV7/6lVmO9E68ng4lGo06LAhtuvv555/jokRZHyxnoC491wWr\nY/IZms2mWXLAWUyBz9/pdGwfHB0dObV3KpUKAoGA7YNarWbeVjKZtPkHznjMXotVoTvlgyukCZzB\nhADM8tUYjNcC53UIj3oZNPq3slzG47HDldf9qVAH4U56GMxs9TZ6UbiKz8pGNcTIO50OFhcX7X3G\ncLROjNZYmU6ntpYfPHiAd955x+Dger3ulM9VDzkejzu1lBj/0qqPHAvWL6Ku0vwdr1xoLRdVcJr2\nW6vVjHb26NEjrK2tOYG/aDRqSqvRaDilQgeDgSlWptpywJm4wUWiNCj+n3YfAWCK6MqVK+j1ei9N\nydcWdtFoFOVy2VmcxOYAFx/z+XyIx+M2sd40Zip3pfJpUgdhF/6uLprBYOAEVFmECTirk8LFR9iH\niyUWi9kY7O/vO8HlQqGAZDJpNUg2NjYQiUTw9OlTADPFTPisXq9jaWnJ0pgDgQA++ugjC6CydgYw\ng8jy+byNDRWY1sO4fPmy1YVpt9tWl+ejjz7C8fGxFQHT2tNftXgP2fOofMBZeWBvTRJVjqpMiTkD\nMyUci8VsXAm18beSyaQpd8KbXH+k53qhO4UEFdpQGJNKV4OkkUjEKWXhhUfPSyDi+y+LLXlJBuPx\n2IkJaW6KF0/nXtMDSveFJggSStXCZHrIttttK9sMuCVLVldXUa/Xba2tra3hyZMnVpak3+/bPaZS\nKYTDYQfKymQyttbJ91d+POcylUphNBqZkcRD/TyZQy5zmctc5vKGyIXSFtVtS6fTjhWqwUov7SuT\nyTik/XQ6benRvV7PWBOtVstJvKGFoFY4gxAMpPB3CoWCcyrSitYCObRS+JoWADPvvEWH6Ko1Gg2n\nzIFSCGmJqJvqzcTzMgHU2lBRtzORSDiB2mg06pQHZnIXreXl5WWz8J4/f45iseh0GdLfpmXJ+1JX\nk0FA/la73XaSlLLZrAWO1tbWrGkApd1uO9bhZDIx6//Ro0cO4+Dw8NA8O29691cpSr+LRqOORTsY\nDMzKHI1GCIfDjtfE7/CztCABOBYe+1d6E9+4xtPptJOdqgwtBv40C1rpoMrgGg6HGAwGL7DO+Fk2\nUVYvxNu5XjOBFbrxlhU4r3iXFuNSyEXhing8/kL2pHrEDKxrtrV+Tj1ZPqu3G5l6ibTW+X/qNZyc\nnDhNcUgrPT4+xvr6ukHJqVTK8cwrlQry+bz99unpqTWJ8fl8qFQqNnavaoB+oQpd6xpo96B8Pm8P\nzrR6LTNJmhww2xSpVMoqoAFn9Da6O+ryKYdT3VvyWHkP165dQ7vdtolm+jYnj41b+V2vy+dtIj0a\njYxzqoqVGJ1SNiORiNPRyAvXKANGlUckEsFkMnGa/XKThEIhp2sN3UxVnqFQyPi4Kysrplh8vlln\nIG8NGXUPFd9WtoyX7snxYSPozc1NrK6uAjhjIRFHZEaqNggvl8tO5ig/u7y8jGq1amWWL5KHfl7O\ngWZ78hBiTXN+ljWBdJy9zA8K6/XzAGYuhK5XhVSUe83vUAmyRITOH3+n2+2+UKGT3HrgDErgutLu\nW15WC7F6ZWV5qYbnGS7Ai+Wfdf3pfQGwfBGt/xQInLWMVNaRlv7g7w6HQ8dYUUhG6yGRacQ9Q6ON\n0CRhTb63u7tr65JzS+y+0Wg4hlAqlTIdyHnldXXPeuVCg6LKl9bJ1bZOPBGZXKH9+4CzVF0qeG0I\n4MUkta4Lr8PFTUtKP1sul502eaxzDswODV5zYWHBqR/u9/sRi8UczJLKic9Oi43pvnqS896Bs3Rp\nb/Eu/q2FibiQtY4Ix5SWP4XJIlxwrPfB01+DaoPBwJpnAGflRzXAymfW5wVeLK+aSqXQbDYtznFw\ncGAHHWtNM7C5v7+PWCxmz9NsNp3DbjQaGYa8vr6O5eVlU/Acz4sSbSWmvTIVE+92uw6eC8yUBL2Z\n4XCIRqPhKDalm9J6Bs5KJ/O67LFKYawGmBELYrGY3ROVn36Xc9toNByr2ltvhUFftWgpvDeNWek9\neluqae0kxgu83rWuOT5PvV5HKpWy66TTaaeUMBU0vTatu6T5MMDM2vcWAdPCc+oV8dBRymY2m3WC\n2hw7trVjKe/hcIhut2uxpH6/j93dXbtOJBIxUsLS0hLi8bh5sq9KLJpj6HOZy1zm8obIhVnoGsX2\n+/0OywWAuTEsbE8hTEDrmFXk6MaqpUE3hactMxh5Uk+nU/ttYpL6WV4PmFlWTBPma83k0mp23W7X\nweyOj4+RyWQMNhqPxwYbkBmiND69L1q4mgCkFoUmD/H5dYyVFZFIJMyijcViSKVSlgw0GAywsbFh\nFtLR0ZFBIaFQCEdHR07rvna7bZZCo9FAoVAwK+3o6Mi5p2q1auyTTz755IVEMI5jPB5HMBg0r2lh\nYcGBVZrNJkKhkLFv2KKO1/D5fGbdc/1chCitz+/3G50UcBtAKBQBnDEoOK77+/tOAlClUrF1EwqF\nUKlUbL4YE6ELr0wpwn+alJTJZBwLWWE9tUK9bQ6Jx6tnoDRbNtPgdflcfO0t9AWcQT+6/7kXvXi3\nQkEKafL5gbM9w33O7kAcVy05TU9TvVcvxKR6odfr2T7odrs4Pj42GOX4+Bi5XM7icKlUyixudpPS\n5C71PkllVs+cz9doNBAOh+3+X9WN60IxdH04zXCcTCa2iUkX5HukIHGDlEolHB0dOR1hFHKJRqNO\nednxeOwEzBRj1horxLj0dTKZNIhCcax6vW7YPjCDK8LhsAXvPvroIySTSTt0RqORbVKm1GtAVVvh\nkTKl2ZFUYl4uK9OJtRSvLk5vsJFtr/h8yo9X/nOhUMDW1paTOq3t6g4PD7GysmKvFQogBMQNxIOT\nh1s0GrVDJpfLObXt/+iP/ggPHz60Mc9kMjg9PbWDRqtD7u7u4p133jFuPL9zEaJZwaQDKvzg5R6r\nYlLFyzXuhTwoetATXlN3X+def/e8bFLtMapwGg0iKi3GS3idRCKB4XDoGGcaWCc1EziLD2mMp9fr\nOYpd6ZLe+1dOu46b91kIg/Dw85beCAQChnMzCKrQjhpJGq/ia82C1po5PIz5/MVi0eZwMBg4cFs6\nnXbKXLBcLvXe0tKSHQYHBwdYXl52unO9TC5MoesJNJlM0Gq1bKMeHBw4ilSj90yA4YDn83lsb2+b\nMtHazZPJxKlhQeWuJ5wWq9L64UwM4m/poUJRPnEsFnOaNRcKBVPKtAi0jAA3YiwWQ7VafaFwEBcK\n0+41/Z3eiXKHgdmi8ZYY1ZrYqtArlYr1+wRmClA9oeFw6KQtEysFzoLJikkqRq+eAZtO8NmJo3Ih\nMwUamCUzxWIxU8bsk8kNEg6HnYNRCzCx/g/H4yJ7imotHpZm0GYTnFs2QlGlrPU/yEXWRCBVyl6v\nVgN2iu0qPx04S9bTQLuWduXvA2derAYNvbWHtKCaBoDj8bhDAGByjXomapVqIxBa/RoPooHG++Pf\nPFTUkPOWy1DDLhQKmUKnNa/FutSr51yqt6P7RIuCscCf7km9fy2jzFpJ3GMcLypr7dWQzWYdVp83\nr0FljqHPZS5zmcsbIq8F5MIqgTzZarWaQ4NKJpPWWXtxcRFffPGFnV7aEAGAw2OmFaOWCLm/FP5N\nqEMzwtQV63a7iMfjTvdz/VtP5kaj4VSM5D3yZCcnHIBZoLQQ6vU6isWifTYSiThF9b0MBLVGmHWo\ntDFaGsRbFddkeWGOeblcdixLWgsskaBlCCaTidO8WedA56TT6TiNdOl9KFZI66PVauH69ev27PSQ\ntFPSwsKCY9GRzRKJRLC7u2s89Fe5pX9oUcyV46ZlILxjpeVk1aVn9qC2FFRYUtc2oUZlYGjnKo1F\nkUqqXHmdQ2+BLW1lSJhPYyRayZBrkvcfDofNGvZWVyQ7yptRDbjeBq+hcalEImFjkUwm0Wq1HOte\n2TSk8yq8yn3Q7Xad58lkMjg6OnKa0QQCgRfGDpjtIS8cqpRPZcmNx2MUCgWDWllegd9lo3UyyxQa\nbjQaqFartrZfS9oicOYWs84EFxQDMcAZZqVBQcXlSAfUYBCFeLsqfy+diQskFouhVqvZ77Cym5ZB\nZWARgHMPTBzRcrrVatXcK2LV5yVfcLOTMx8MBlEul21iY7EYDg4O7P2lpSVHSesm7/f7iEajL/Rb\n5Wej0ajTFV5LJiSTSTQaDfu8BlDv3r2LaDTq0BIjkYhTLpcV/IBZMEjpnXwuzq3Sxtrtto1pvV5H\nt9s1atdgMHBwfgYbVXnws0tLSzbuAOwAvAhRN5yHt/dwB85gRz2AtSQwITQNQHI8mY7PsVPqHOBW\nMz2PAqjxFd7DeQE50lv1oNCYAIkCXHNaX2c4HDqQGq/L67RaLSewrcpdefEcG00wJDUROKMEciw4\n9lpmttvtGlVWDxVCXDpf3EfAGdRKGJBJdTo/lFQqhVqtZmvv5OTEKTuytrbmwMHKd2cHKRoop6en\nNubpdNppP+gtWawyh1zmMpe5zOUNkQuth85TvdvtolQqmZWhAQGyQDTzTqEQnq58rRZ6r9dz2CeA\nm0jAqDtw5vorA0atJwY2NfLMDj5MHeZ7zLjkqc8kJVqasVjM2BikP/JkDgaDaDabxirIZDJO7fGF\nhQWn6XWz2TSLL51Oo9FoOJXiaHGXy2VkMhl7TXqgWjUnJyfGzBkMBkb943xo6QKtEEnvSlkEalXS\nNQVm1K5kMmnUrnA4bFTDZrMJv99v41gul62eOt/3po/TIl9aWkKlUrHErLfffhsXJVrHOx6Po1Kp\nvNBAnJ/TpKPpdGoVFvm+WtLaOISMLG/CmVr7FC/7iYFJTehRpkosFnuhMJSyZ9hhjNft9XpOBzH1\nYhXqiEajzt4mxKnPoNUItZwEmTca+NTKqEonZLa0wpaswAjAKT1BqJfwoZZD4POMx2N7fh1X4CyT\nXeePz7ezs+MkuGmm+ng8xv7+vsMsajabBquMRiPzChKJBEqlkukM7tHz5EIVuk5WNpu1CSKlDpgp\nXdZkAc6UGDOsdJHyfY2q66LgRlMesB4cXk63ZugR6qHyIQ2J3202m8a1JqNE+dX1et1JN2aKer/f\nx+npqVVoi0ajqFQqDi0zmUyaoiKWD8xoYUdHR04kXeGqXq/n1Khg5iEwgyQODw/t/XQ6jd3dXQdj\n59g8fvwYa2trTls1dr3hdyuVCjY3NwHMar+ocq9Wq7h69SoA4NmzZ9jc3LSuUmQiAbODo9lsGt2M\nUJQ2xS2VSnbdQCBgGcSBQABXr161TUCleBHijdEwkxGAHWTAGYTE+ePBqLRTrSOytLRkioYUPs1A\n9Wak6rrnd3gd7YREVodi+ZR0Ou0wLKiwtBWefj4Sidh81mo1p+4Lm2jw85lMBq1Wy+5ZoalWq2WM\nKH5X40fcj/xb9y6zPbWGjMKArVbL1lin03Hoyt4KkIRFFCLkXPK+NMahkBKvDcwouZpNfXp66lSx\nJBSpjX04buFwGOl02qCrV8mF0hZVseZyOTx48ADATBFpCVEWDwJgJV75mtaB1nbWpAg9OLjIFYPy\nJkRw0mmxcDNw0r2YMEUPHdKxtJP4eDy2haAUSPaU5MRnMhk8ffrUFN7i4qIpW2CWbMKiPV7rgd1+\nVCFobQhtK3fjxg3Hi2ChICrExcVFUyS7u7vmjejzUDqdjtOlRxc0g6f0hBjDUIojxzyZTOLp06dm\nkZN6RwVeKBSQyWTs8xps/eKLL7C4uGilRfmdixANnPl8s76uPJTq9brNQTabddYneeRKiwNcRay/\nq4eBHraA269TE+34ryY40Qvw9t7k7ySTSaccsNYLImau3GxtXxeNRm0+2ZWMc8M640qGoHi78pAS\nqOVBtMxyLpezQyadTjuxiMlkgqWlJVOWxK8p7XbbLGnGxjSBUIkH6o0Abuu4yWRiJADgbH6Bsz4H\nHCcmC3H9sgYO918ymbRDh0YcjVgaMefJHEOfy1zmMpc3RC7MQtd06Ol06hSfAeB0ClKLZTQaOZXW\n6Coq5KLWCpM3KBpZjkQiDvVOM+0UrqCMx2ODgtSyIPzibVqhUXa1LhSnTyQSTlbjcDh0ugXt7u5i\nc3PTnm9nZ8dOauCsnyfHQpMgNPvv0qVLaDQaDt6+tbVlz5NMJhEKhZym2JogotY+mRfq+WiVQG+T\njUAg4ODtSskiNY/3dHBwYHOby+VQq9XsGXK5HPL5vFVqTCQSZsW0Wi189tlnBl29qsToH1omk4nj\nZWiyECFEYOYFsaECACsOp4Xn1BNSOJGUN7WG+Ru8B4UMteAU70eTdLzlIzR5K5PJOHtGIQh6lxzv\ncDhslnIikUC32zXogDADn5f7lvcRjUbNiibkp+U01BtttVoO/lwsFq2MxuXLl5HJZMyrHQ6HWF5e\ntvd1PRLm4T3Qcqb+YaxBvXqvR0UIlLRo9agULtPCZUQdlL1Gbw6YxZreeecdG/PpdOoUrXuZXJhC\nTyQSjgIEzupvZDIZU4askaKVCxWn00HyCgOZSs/SrkPeRrKKC6dSKce96na7L2TbabVIxchbrRay\n2awtikQigUAgYMpTlTt/W+stLywsGNZK/ikDIfv7+w7PPpVKOVXyNItvc3PTsPqbN2+iXC7b5hqN\nRo6r6a2vUS6X7ZqsqUIlnEgkcHBw8AKeyTlRfi3HmmORSqUcyEwhhkKhgHa77dDYtIlvMBhEpVKx\n+1B+frPZRL1et3VzkfXQtSwqueU0HJg6D5xRALXqoTfoxkAbRaEkDQxS+XFdeWuLa1axBm35WjNH\ntdZJt9tFsVh0snWVlDAYDJBKpWzcl5eXbR/z0OCaOz4+dgL1p6enznqNxWKOgcXfB87iQ96cE2DG\n4daa6N1u1wm+soyFtufTqqq8V16XipljrKIEC8JehA95TQ3G8oAaj8fIZrPO704mE7t+LBZzSgb3\nej08fvwYwFknLx4cr6okemEKPZPJWGEonszEvC5duuTgYdVq1U71k5MTJ2mAHct50qml2Ol0nASY\nVCqF8Xhsi4+1jgEYPk4LNZ/Po1wuO8W5+v2+kyRBYURerXstT8r/00Cu1kEOhULmnbBQELHgcrmM\n8XjsKFctQhSJRJygkxbnz2QyZumz7CwtWj4Hx5FJG9xse3t7xttNJpOo1WpOCzpNbuBmU8Wr46Pe\nSzweR7VatcXZ6XTsUE0kEg5HfWFhwckN4DhqEJg89E6ng16vZ2vqIlkuw+HQ7pkGBceLZSKAM4Wn\ndUKUpaRp/IBr8THZRet0a6MGPRwSiYSTVBaLxZwSrPSoqJg0x6Lf7ztlbb3NTMjL1vvge+1229YQ\nP6sGlSo+YLY2qODYCEQT/TQQ6j2gWGIBmOkE5eiXy2Ur0KVzwmfXhjncXxqb0BwZb70cFXrm1EVa\nSnc4HDq4viY9AbO1nM/nnYOTljjjIbTQuYfPkzmGPpe5zGUub4hcmIWubeOKxSJqtZrDt9XMM7UG\nmVGlVrhiicoE8Pv9hlNSCoWCuf/6dygUQi6XczjeamEzk5L/R8sFmFkWLOrD7yp7I5vNOrikWtF8\nVp7qpVIJrVbLLM96vY5+v2+WTqlUsntm82w+b6FQQKVSccoZaNVGhX3K5bLjGbDZsrIZ+N7m5iaS\nyaS5gLdu3XJKA7CkLeEvxT4pOhb7+/tG8dQsX1qstF5SqRT29/fx1ltvAZi57NevX38hkxKYraHT\n01PzBJQe+FWLppYTFlHmFdc20/q1VRxwZrURbtISrOrea2d4dnZS+p1CV15WkmZ7ZrNZpyuPluFg\nqQLl0WuKfjqdtqbT/C6hjm63a01JgBlOvLW1ZZAMPRLNOvUWeNMyxIoxKwefzWm0IqR2TorH42i1\nWs7+pPR6PccD9LatbDabTvMMjVGRUaYQmkJX6gnRi1VoR5uXEKbk+9r5qNFoIBqN2m+Rq36eXGjq\nv25yrWyoBHy/349KpWJUPW9/Q/bt4yLRVnbAbMKo0CORCOLxuCmmO3fuOLUjdIMsLCxgf3/fFAbx\nak0Z5v2vra1ha2vrhcWnqdd6z1oXORwOI5vN2kJld6Br164BmB0kBwcHFuxjrQk+m9aXZg0ZLa/L\nxcU+kVww1WoVxWLxhcCRuotUjkyo4oHUbDaNXgnMNjW7GFF4HW91TLrnWnFQ3XKOCTDDWPWeCUdw\nbWgi0ZUrV7Czs2OHkCqwr1q0MmWz2XwB++X9szaQVh1VfJtwDA8HrXp4dHSEfD5vh9toNEK5XDZl\n6u1YVK/XDYI4OTmBz+czhZHL5RzlyXr+wFncSfF1LStASEL7vipGnkqlnJySxcVFe75sNovHjx87\nMIrWl+l2uy+UhuZns9msjTG58gqx5HI50wN+vx/lctlZZ1zb7XYbV69etbVMHrkqfy3bq8J7UnhG\nodbpdOrAa3qY7+7uOlCVxp/4mmPe7XZxdHTkGIEvkznkMpe5zGUub4hcmIWu7gczz3jy0M0BzoIj\nGsHWgkUstEOrtN1uG62NVcp4GjOwQshiOBxa0HBzcxP1et0sACYJMBjJqmzKBlH2jNLEvF1dRqMR\nlpaWLOCqUWrW/GY1SeAsuxIAVldX8fz5c7M24vG4BUXq9ToWFxed/qtqDbIGMzDL0CyVSk7gUmuL\nBwIBLC8vW7PtfD7v1OVWNs3x8bFjaTFBRFkvSmtTpgatFG2wzXtisJT3VK1WUSgUnAxGrVXNSpTA\njF1x5coVs9gvkrao0IfS3wC38BXJAFpZVAtH/T/23uTH0es6H37I4jwPRRZrnnqe1KPmwY4sy4at\nGHYAAw5iI9kkWQRZ5Y/IOoDXySZZJIEBxXFiwf5ZkqWWu9Vq9ayuqq55JItDcSaLZLG+xfs9p85l\nS9pFZQh1AcNNkfUO95577hme8xwSzxHJQ0grrzM8PCzvGwqFkM1mxUolmybvoztqVatVoYngM2o2\nUACGbPeyHu7t7RkyxncGLI9LI2/0dVmgQyu1r6/PCHvqdyWHvLZKa7WaPAsZWjl0B61arWZUFFPO\nuSYaHbW6umokhFm5qhPTGiatQRfc7738/NoD0YV7Wuetrq4KXzzXT1OY9PX1GSSC7XZbohC9CCY9\nDk2hU0EC1suura3Jpt/Z2cHY2BiAA4xzbws2Xfar6S11ayrG5Hg4kLmP2eLjx4/j0aNHAKzJ17E1\nj8eDWCwmvy0Wi9IeDjBj7E6n0yDNZ4kzBXV3dxfxeFziuh6PRxYnEokYcCW6e7pisxeZw/um02nE\nYjG5DykGtKARWfPRRx8hkUgIjJFUuzqcoZkaddywWq0anCrpdBojIyNGtWssFjPeQcPauE7AAa6X\nz8xrAgc0rJwb3pPrkkwmkc1mRYlo1FE2m4Xb7caJEycAQA71wxiaka83l9DbXFsrAN3lCDioSmQM\nvZeKQiO4QqGQwZmjw5Y2mw3RaFTkhlhrjUPXMXUtj4wna4oNDTvVzwNYe5cGB5uO0+AIBALGgVyv\n15FIJIz6E93MQ9NVs2xeP7NuPq1hiuxIxLlhSEnzqGg6CR3LdjgcqNfrhjGmaah7Qyw6nEo0l47t\n84Cl8maIrNlsolwuG2yNuhmPXh9+x3mkkfZ549AUuk6ktFotY9J0GTnhcNqi66XX1VzkbBUHWFab\n3W6X05iCzFNfTxqtWe0l9BbAuFwusT78fr9B6KOhTYQe8lr1eh2RSMRo4aYPoHg8bsSFdWy7l495\nYGBAFp2xQy4wyY84isWiHIzNZhORSERgfcS6c97m5+cxNTVlUB/0lnNr3hudKNO83FwzDpa2a8pR\nv98vm1gLbaFQQCwWM+oTQqGQyMXAwAByuZzRW5HPyN6OVJaHSZ+rN7mWaX7Wyl4raVIQa++C3h9g\nktZ1Oh3s7OwYVLHFYlEOMuZmgIMaCt3XVCdbCcXT3Cccvck60gTomLqmme52u7L/FhcXhcNEX1d3\n8opGo+IFExoMWPvL7/eLB0LPTu85Gh+xWEyMDuCgNaGOR9dqNXkHbazQetcKnQVevXOh5wqAUGZz\nfQip1QenJv8DIHLvdruxs7Mje5cJVM5rr7ekaUi+jOv/KIZ+NI7G0TgaX5NxqCEXTYyl0ShOp1NO\nQcL6tPXbaDSMLt0E7QMmDI4ZehbpLC8vG3FkhkqAA7eTJyatd4YG6Cry5E4kEpidnQVwwDinC0G0\n1cK4Wy8rIv8dCAQMAiPdOcnn8xkhmoGBAQkDNRoNNBoNQcSQppXXikQiYi0x9EJoF+GdvFYul8P4\n+LjMs65IpRXC67KYi55OqVQyyKC0harhepxHFroAlpdBq6xYLCKZTEoYpdPpwOv1igtPGB8LLkKh\nkFhw5XIZQ0NDT1UaHsbQBHGkmtW5it5wjO7gAxx4LZomADigUgas9XS5XJKP2d/fx8jIiFwrHo/L\n+rBZC2U5FAohEAjIMzLk0Nsrk8+kaaZJcMf7sEELZaNer0tosa+vT8r/eV8dgmFBIPfu7OysQdOh\nq4gZTtKVlpTVTCaDYrEo+QW/349OpyOfWbmrm7kwR5VIJFAoFIzfarI8rp8u99fV5Xw2Dp1Lqlar\nsjedTie2traMUI5muGS1raZJIHSZhWqU7S/zPg+VPle7pRo3qqvNekuN2clE88Ds7e0JdWun0xEF\n/sEHH6BerxstzsLhsCheNmgGLCFIp9Pyt5VKBYlEQkIf8Xgc5XLZcAk5iNvVClDDK3uTX7w3n19X\nkW5tbWF1dVU2KpNDdNX29/dx5swZAJYC1A2meR++bywWe4orggLj8XiwsrIicEhCxHTlpY4bEHY1\ntwAAIABJREFUlstlESTt/uk10ApK/1vDvpi84vfxeFxYNolf57UrlYq4z1y/arUqgr2/vy8HcLlc\nRqFQEMXCZPdhDB0XZ4JcY5d1VyFtvOhDHzigKebvI5GIkQDXfNq5XA52u13kptlsGnSxut9AKpWS\nnAlwkAOh3PSWvne7XQPGp5W/0+lEf3+/fNbrl0gkxOjg3yYSCYMLf2RkRGQ0EAgYVaa6zVw+n4fN\nZpM9VqlUDEigBiHk83kUi0UxBBKJBGKxmBwAgUBADjfmKXitSqVitOOr1+vGGnBNuQY6ZOh0OlGv\n1yWUpfsNrK+vG/kTdl/SNQmVSkXeQQNBtL4Cvrxj0aEqdD1JWkloZUF8MydYfwdYp34ul5Pvq9Wq\nWKEsM9YlzbVaTRaTVLyAdQrqhMbq6iouXbokFiBJ9HXSRmO8I5GIIFW01QkcFMiQglYnGBn3fPnl\nlwFA8LB8xkqlgomJCUmSEgMOWNjrJ0+eyDOeO3cOsVhM+CP29/cNCy+dThsHoxYMWgBU+LVaTZ4x\nGAwamX6bzYatrS2jn6XmKNExdE0KxWfS3ouOQSYSCWNjkhOnl6+Enzk3fN5CoSBrzbqFwxiaGprv\no+eEz0hDoNdI0MllHvjAAZoIsGSsN2+hE4HtdlvkhMUypGRmd3kWdxWLRUQiEaMcXhsnOl/C3+jm\nEgCMxLz2zgqFgniBzHNQxnZ3d1EsFuV9BwcHJQcQj8cNIq9EIgGn0yned7ValcOLFjdjy70HI8EM\n3AunTp16ymDU5HHZbNZAm+jCLK2zmL/Th52OFtRqNaPdnpZtRgT4Puwxqg0h/pY5Ag6u2+eNoxj6\n0TgaR+NofE3GoVno2iJnjI9Dx8xJHanpOwmd4nWcTqecinNzc4Z732g0JKwyPDyMlZUVuVc2mxUr\nlDFw7bL39/fj/fffBwAcO3YMqVTKsLQ0DMrlchlwM90UgFaqrtTjfba3t1Gr1YwybI10KBQKOH/+\nvFSHrq2tiYs6NjaGTCZj4IsnJiYESz46OmrE3h89eiTWUjabxcDAgMwjqQzopi4vL8tveytdU6kU\nGo2G0d1dx1U1OohhAx1L19StGh/M/2cMnTFzDVNkmTfXnogYuvIMmfV6cl/l0FZbp2O2SNSVrqwS\n1THYVqtleD4+n0/e0W63iyynUim0Wi0JCQaDQfkfYFmaXL9MJgO/3y+WXTKZlBAGYIUoxsbGZM60\nZUmEE79jSzqO3d1dIacDLC+DnmoymZSmy4AFafR4POI5zMzMoN1uY2RkBIDlKXDecrkcbDabyD3l\niRY7LWfA8hYYUgQsWdAUud1uV8r/ActiZ/efS5cuGU1HWPfQy0ap8xtcL7fbbVD6Uodwrfk9cJCD\no6fN/UJvja0Z+Xvm/wALkVav1w2v74vGoZb+9+KWddGLdtM1xzBx5loBbmxsiPCGQiGJR/eynw0N\nDRk4dfawBA6ww/xue3tbkjjAQZGSxpXqcl3t4qbTaUSjUaMvI10qwBJc4qUfPnxotH47ffq00WqK\nHV4YN19ZWZHvBwcHMTIyIm5qLBaDx+ORBA83G2Ap/2w2K+9LPmmGgcbGxowYXzKZlA3BEma6tISi\ncV65yXWiTLvVXFOun77P/v6+bNoTJ04gnU5LXHxhYQHnzp2TTcCEmo6bc336+/uxsLAgz8SWd4cx\nbDbbUxtZb3odtmDhHHCQpNct4+x2uxz+qVRKFDoAoxN8OBxGoVAw9snc3ByAgwOZyoNxcY3pJlYd\nMPdFqVRCIBCQdQwGg8berNVqSKVSBgCgNyFMRUTKZt7X7/cbXbSi0ag84/LyMoLBoFF0pSkkNFMq\nDSn+tlgsGoU5BAowmd7tdg066r6+PnkmFixx32SzWSOPo5PtDofD4L1heFeDO6jcqXeo84rFIgKB\ngGHEhMNhI3SlOy4R0w9A9svnjUNT6NqC6i2+0EkJCjUtyUAgIET5gCU0iURCLNFSqSRYa/Jr0+IL\nh8N4+PCh3HtjY0NisPl8HsPDw0brO81TnkqlsLCwIMpkfn7eaKisK/H4vDqWFo/HDc5zTYIVDAbx\n8OFDAMBrr72Gs2fPipXNNnFUUD6fD0+ePJFnmp6eFm4aJm2Z6Hz8+LEobB6KfH6/349SqWQcHrFY\nTJRHuVwWwQkEAojH47h37578TgtcJBIxEEN6MzH5potJ+B6AtYE4LzabTRQIYKEedNw4EAgIUgmw\nNoUmM3I6nUZPxsMaOlba2wZO10xww1NO+J1u3NBqteRgXVhYEOt3aGgIHo9HZHB7exs7OzuiMKam\npozkcj6fNxJuGvWRSqWMg7Q32adbtlGpUmkHg0HU63Xj/fjOpVIJdrvdQLnoPE4sFsPi4qKsZygU\nkjg/ecn1ftTKUh8swWDQIIRjURUNgXA4LPoDOChE4hgdHRXEGht4aB52jUzSCW5Wr/ZWiPMZdfES\n5biX74hrHQqFxNPlc+jeyH6/Xw7zL7PQj2LoR+NoHI2j8TUZfxQoF+I8NfZcE8PrEAx/q3kZNNxH\nY7wBy8q7desWAOC5554zqtFu3LghMcdHjx7hhz/8oUCqNGYUsE5Qm80msL67d+/KCZzNZlGtVsXy\nImKE37MalNBDHc+LxWJwu91iob/00ktIJpNiqbD7Cufj2rVr+O///m8AB6gBWuGZTAZDQ0NixTkc\nDgnHkItF804EAgEDWbG2tiaezpkzZ8QCZ+MBomkuX75sdAc6fvy4gdZgngM4aHKgW5S1Wi2Jm+Zy\nOSMUoOlXCdmkpRkOh42ON9pa2t3dhd/vF4tHI0AOc5BKmUNbsKTV5WdCcil3fr8fTqdTLNizZ88K\ngoshFO6DgYEBOBwOcdl1KMPr9aLRaMh6ulwu1Go1sVI5bwxZsKEJYIWyWGcAHEBJNXwym81KmFNb\noel0GmNjYyKPnAu+H5kY+Xvd+KVSqaBWq8lab21tGV6XhiWSvVRz3gQCAQmx0HvUiBLKR6lUgtvt\nlvsQkaQtcp0T4hry/zVLLKttddOKXroG7j/OsUZ79TYM123x+vv7jar2Lxp/FCEXkjfpl9cunuYc\nBsyS76GhIYPgBziILZ46dcroQZlIJAwX6eTJk3jw4AEAK6a8trYmXCexWAz379+X666srIhrBxwU\nWAAHiSMKHHss6rZrgUBAFCL5IgBLWYZCIcFib2xsoL+/XwSsUCigUqlICObUqVPCD/7JJ59gfHxc\nwjGPHj3CyMiI0amGm6dcLiMYDMqhwg3NTTE9PY1YLCZx10wmIy5eq9XC6OioKBPGRXWxTDgcNtZU\nK1qXyyXv6/V6JUkFWMlnPaedTke+Y9xRH9DE+vLfPERYQEZunt6S7a9yaNx2Lz+L7qzTCwXc39+X\nzlGAFVPW0L25uTkJR1EZaCNId3DSrd98Ph/i8bgkUD/++GPs7e3JPmFXeSrpZDKJmZkZABZp3fb2\nthGK01BSTVbF56JCY9crrQyj0ahBmhUKhWTPAZCDnpxElIVkMmmEKvWBTUXK59/Y2HgqbKufsd1u\nC6d4q9VCoVCQfUB57KXo5lxq6muuM9eR4Shd0KXzB5rQz+FwPKXzAJMqgtepVqtIpVIyF7pXce84\nCrkcjaNxNI7G12QcmoXeW3mlT0TNrkjiJ50AcTqdEs5ot9uIxWKSKJycnDTocev1upxor732Gh4+\nfCjfr6+vi4XT2/X+woULcDqd4kqurq5iYWEBL730EgDrhKXF2m63kc/njV6fzWbTsEy63a5YEFNT\nU2Id+Xw+JJNJw0KoVqtiQWQyGcPy3dzclG7gN27cwM7Ojljhk5OTWFpaEtdT09ayyTPdTlpstLI/\n/vhjnDlzRt4hmUwKsVc2m8Xs7Kw8c7VaNYpPYrEYgsGgzJ0eLMDqrezVloimKtXuLhERvf04mfgM\nBoOylqQm0IUbhzn0O2lyMgBGEphNz/XQfW6LxaJYaprCeHZ2FgMDA4a1/+DBA7nv6Oio/B3DVgzN\nTU9PG/dklSnvG4lExDtjolZT6JKGGjgozNHEX5R70jTwvoBleWsaCJ2oZ7ENAGn6THkkikeX3fO3\niURCinx4nW63K+CIhYUFDA8PG+X9lBOfzyeJXcCS9d4CLqfTKXNZKBQMNJ6G6+qQJocOHbtcLiNB\nTPQb57xYLBpNRjgvxWLRIP/7o6TPBWDEErWA9TL76U4mrVZLynMBS9G+/PLLEvtdWVkR92h0dBRn\nzpyR+PTs7CyWl5dx/vx5ANbiUHEODAzg8uXLuHPnDoCDZrFU6MxoMyShsavRaFSaOfO3Pp/PqKbT\nbp9uOTcwMIB6vS6VjezSw/cfHByURtLAAa4ZAN5880384Q9/wHe+8x0AlmLd3Nw0WOb0QUguecAS\nmFwuJ5svmUwiHA5LSEZzb2cyGfT19Ul+gRVxumOM3W4XRasVAFtnLSwsADhoaabdYY2I0XzoXHfe\nJ5vNIhqNGnQGOtSmq3d7N9ZXPXQruF4qBM3vToZF4OmNOj4+jtOnT4vhoDshXb58Gfl83ui+9dxz\nzwnlgd1ux/379wFYeaZms4kXXngBAKTFoa7B0CXre3t7hkHhcDhkfxHDzjVjKzy+g+Y0Zxxf46c7\nnY4oKuaZuMcWFhYEfjw2Nobl5WUD6lsqlYy8FCtFWTWq4/p+v1+uVavVMDk5KTLBOQOsPZPNZg1E\nSrPZNEJkLpdLDCPNFcX6GL4PockavsuDw+VyGTj7drttMImSt4Z6kLxGXEuNWdcIpN5xqAqdL84S\nfY3xpOAyocH4UbPZRDKZNOLVJKUCgJdfflmE2ul0YmlpCRcvXgQAsYaomHgYAFbh0PHjx/FXf/VX\nAKwJ11bp+fPnceLECRHWnZ0diWtPT09jampKEpnT09NGrN7v96NQKIjQ6NgZi6r4nW6NBVjFUG63\nW+CFsVhMYvGEMt2+fVueUVu8msg/k8mgUCiIgBWLRayursqmjsfj2N/fF4WYz+dF2NbW1hAMBuW3\nxEpTwHgg0/LUOQ3i+3USWCd5dTK8Nx7LpJKWE4/HY0C9OBdOpxOVSkU2+ZfFGb/K0dsKT1vC4XDY\niJkDB0R1gHW4M1EKWAqDct5qtVCv1+UwT6fT+OSTTySBGovFDEiuboTSbDaxsLCAZ555BsABER0T\noeFwWOCQ6XQaiURC8lCEUWqDS1PVEtMOQIqi+L4ej8fgNOfhrjH6jN2/+OKL6HQ6RhvEkZEROTgm\nJydljSORiBgVwAHlhe6DoPMtU1NTsi+y2Sx2dnbk0MlkMhgeHpaIQaVSMXJ2NpvNWIPe/rHdbtfA\nztNwIYWD7kms5434fV2Ax/uQ94WfvwySexRDPxpH42gcja/J+KNgW2SptO5+rpuytlotcedJFkQ3\nJxqNIpFIiPWYy+XkulevXkW5XBYX6+2338Zf/uVfiou3trZmFGqwGg0Avv3tb2N0dBQffvghAOvk\nDofDcq3jx48LaiAUCuHq1avy20uXLn1u+Tfd1J2dHfl3tVoVimDACrHo52CohlbaZ599JjHJ/f19\njI2NCaHX6dOnMTU1ZbhxjGs3m03cu3dPLJNisWiEn9bX1xGPx8W7cblcBlpBN70OBAJoNpsSCqhU\nKkYnJW2RJxIJA57lcrlQKBSMUmp6I8FgECsrKzh58qTMm74vYFk2GtqlmyasrKyIHFBeDmto8ifd\neEQ3a6HVpquVNUFTNpuFx+MRj/L06dOCcBoeHobf7xcZY7MSWoderxdXrlyRe87NzeEPf/gDAGv9\nzp8/L+E1ekY6dEC0SblcNnIvvYV+LpfLeCdeD4BABbkWtDIpG+Fw2IBpjoyMyDxVq1VMTU2J/A4N\nDcHr9UpcXNNIX758GcViUb4DLL1AWW61Wjh//rx4bx6PR7zptbU1xGIxo4BJrwmb1ejGGhx2u93w\nGHXIT/+Ga60ZZbneuvOa0+k0vE/KfTgcfoqx84vGocIWNWxLK3S/329AuXTVlN1uR7VaFZeeCYs3\n3nhDvv/kk08AAJ9++ilSqRSef/55ANYkTUxMyOL9zd/8DX77298CAB48eIDjx4/LBimVSohEIqLw\nuBn4jJOTkxIXXlxcxKuvvioKbmNjw8DqciE1VFHzUFQqFeHZYNyem/jJkydGybDb7ZYww3e+8x1s\nb2+L67mysiLUqMABNSifqV6v49y5c/IeiURCNmokEsHk5KSEka5fvy4JYGLQST/Q7Xbx0UcfycFC\nWKIutdZJpXw+bxzQlUpFlMfm5qbB0qiToqFQyPjMCj4+887Ojihwm82GYrFocMMf1tBhFtZMaIVB\nWSZtK91yGgH6sA8Gg3I9VnwClqLd29vDr3/9awBWGIFrCFj7gMnzqakpOBwOfPDBBwCAd955B++9\n9x6uXbsm3+fzeUnMt9ttCb/EYjE4HA4jBKNjymyDpzHSvcqeeRpW0PJzqVQSCmHApGx2u92YnJyU\nsNHS0hLi8TguX74MwAoj8fC6ffs20um0PFOhUIDX65W8FA8h3UmIe3FoaAj1el321OjoKCqVigGt\n5Jxw8PlZfa1DMDpsqekw9vb2UCwWjffTHdAYj9cwV64783mU+94wnh5/FCgXjQgAzKIjZro5MUQy\naH6Wra0tURDxeNzgcgmHw8ZCXrt2TUrYdU/Kn/zkJ5ibm5OF/Kd/+if8/d//vXCuLC0twW63G02U\nn332WQBWMmdxcVEUOpM9VMpcaFq8mlC/VCoZmPZ2u21Q/G5vb6O/v1+EaGpqymj/5XK55Jm2trYw\nPz8vgv748WMcP34cgKXsdSl1qVTCyZMnxWqZn59HqVSSfEOpVDL4O2w2m1AK3LlzBw8fPhQBW19f\nx+DgoDyXpsdlPFN/1pTG2pPhPHBNqGB4uOfzefj9fsk3bG1tySFD+lhe9/MQN1/V0BuTh6qOh1LG\nKpWKUSpO7DRlP5PJfG7fVF5nZ2dH3vPy5ct4++23JXmZSCTw+uuvAzgo/KJyHBkZwa9+9SvxNpnD\n0Y0puLYshae8ptNpRCIRow+otkq1ddvrXXY6HaOHLJtB8NqnTp2SwyCbzWJjY0OMBjbsoGy73W4j\nT7KzsyP3bTQa6Ha7UtvBHBbv02q1pOgoGo3i3LlzErun3POZ+/v7DZSWy+USJb+6uvpU72CNbNMN\n0IvFopFs5cHO31cqFQN3HwgEZK9Go1Gsra3Jd5q2oHccxdCPxtE4GkfjazIOlT5Xh1E0KZHX6zVg\njL2uicvlEmuCLqZGyNC6mJ+fRzQalevOzMzg1q1bEoJxuVwSS5udncXU1JRUji4tLeEf//Ef8Sd/\n8icArFP/Bz/4geDdHQ6HnOLxeBz379/HpUuXAFhx7kQiYWCiG42GuK3r6+ti7bKCk7hfUgxod2tq\nakosZ4/Hg7t37wKwwkS6lVi1WkW5XJY46+nTp2WepqamMDo6Kt7L4OAgHj9+LJ7N1NQU1tfX5ZnD\n4TC+973vAbA8in/7t3+TNSGMkXNeLBaNjjDValWsGCIVei0TWi4+n08sxWPHjkmLQf6W3g3vEwqF\n5H011SyJqWjhaTKmr3q0222xpuiS09uoVqtiZe7u7hqWJikT6OnRgqNVqxupr6+v48mTJyLbc3Nz\nqFarMpcDAwP4+OOPAVh7ZGBgQGSOMWcdF3/8+DFeffVVAFYIgxWn9JZphRIto/HSXq/XgOzymYjK\noUwNDAwYlMeRSARDQ0PiZTx69Eg8ysnJSfT394snzpAF/5YWNu959epVkXUyhbKOYmhoCPfv3xev\nQv+t3+/H5uamyNTQ0BA6nY5Ur05PT2Nvb894Zo1MSSQS8vx7e3sYHBw0sPP0ckulErrdrniX9OJ0\ng2lNA86WdIClD0lcRxn6onFoCr237NXr9cqD9vf3G7hrl8slL8c2alycUqkkgsnPmq2uUCjIYiST\nSfT19UnypL+/H2+99RYAq7Dm/v37shj37t3DqVOnROEXi0Wsr69LmX1fX58IX6FQQK1WkwkntSxd\nvM3NTcRiMYM1kELFkBC/Y6k8r91utw2Bu3Dhgjz/J598gtXVVTz33HMAgFdeeQWLi4sicGfOnDF6\nGg4NDcmc1+t1DA4O4urVqwCAn//85zh37hy+9a1vAXhaKV++fFlish988IHhLsbjcSn8AGDg3e12\nO5rNphwcbrcbrVZLFNze3p7EL0+ePGlw47PgQyeIdTs7fdBnMhnpXsX7HNbodDpGyFBj7TOZjGC8\n2ame8snwBmVQM30CVhiJ/414ds7j7u4url27JrHszc1NyQ9961vfQqPRkCR+o9HAhQsXZN4ZouBh\nkEqlJHQzOTlphDzJ6c1nYg6Ia8LOXnxGDd0jd41O5JLqAgCeeeYZUXhzc3O4f/++vE8qlcJHH30k\n3+uDrlgsYmZmRvSAz+eD1+uVZzp37hxqtZqEYLrdrhhm4XAYyWRSwrCFQgGDg4PGfex2u9EykgYH\nk5q6nF9zmsdiMdFT7FikgR9ut1sOSlLx8pl74ZAej0d0hm5l2TuOQi5H42gcjaPxNRmHinLpJaLR\n1X3afQ+Hw1JYU6vVMDExISc3u6BotkWegiyy6e0iz9P4Zz/7Ga5fvw7AOqlzuZwkjo4dO4ZGoyE8\nyT/84Q+xv78vJ+ro6KhBilUulw3yrVarJad8oVCAx+MxXCi+3/b2NoaGhgzkg7aWotGoUT35X//1\nX1KteunSJbzyyisyZ6zM+8Y3vgEAePbZZ8VqJrc53W63243V1VWjGKjdbuOf//mf5f3efPNNAMC/\n//u/4969ewbr4fHjx6WIhYx8HDoBzH/TquDc0Lrf2dmRZ2QoRhdQ7O7uypwz2UqLKBaLyXfZbBbJ\nZNKo3j2sodENLJ5hGEVDcumZ6e7xujycCWXKik7AMRTCv6XHyO+Hhobk36FQCLdu3ZLiIBLaEcLa\naDQwPT0tsrC0tISzZ89+7n22t7cNNk32T2Xoq3f/6SRvoVCAz+cTWWdCkgVOuVxOQh3pdBorKyty\nrUgkggsXLojXqyGAAwMDcLlcBvokHA7L+6TTaVSrVUGsPfvss7h58yYAax/89re/lX2+v7+Pzc1N\n8ZDpZXBNyPgJWPtYEwcShMG9oPc8C4k02kt7K5QZft/X1yd7htfTyKMvGoeq0HWLNg3T0S9arVbh\n8/lEKHZ2dnDu3Dlx4avVqqG0bTabxIkJ+9K8DXNzc/K32WxWFF0ikcDm5qb89u/+7u/wzjvvCExq\nZmYG3/3ud0VJLy8vCwLmG9/4Bn7+85/Lb8vlMvb3943S6kajYXR1YYx1bW3NyIbTVSSCJpfLYW5u\nTp7rzJkzkjdwOByIxWKy+fx+P2ZnZwW2eeXKFamEvXPnDm7cuCHufqfTwbPPPivzevz4cVy5ckVc\n0ffffx//+q//CsDa8NeuXZPwTb1eR7PZlOcg54guc6ZCL5fLBuyyXq/D5XKJssnn8/IMrKTjxmw0\nGkY7PrvdbvC3xGIxOQwoM5qO4LCG3uTkHKHC0xwk5OegTG1ubhrNmr1er9EAxOVySSiE3zFu7Ha7\n8dxzz8n68iDh82xsbIjSmp+fx7Vr14zy9hMnTghue319XYyTaDSKvr4+USqpVAo2m02eg0yiOnzK\nEJnT6TRgmmzooGkvWq2WUHPMz89LiHN3dxfBYFBkbHNzE+122wj9MNS4v79voLKi0Sja7bbsv+PH\njxuU1IFAQHIEr7zyClqtlhh2nEedX9BNRhwOh+ia/v5+7OzsGK3iNNW30+k0jMmBgQFDx+lm4q1W\nC/F4XGRDUwiwlSb/9ssqRQ9NoesYUSqVEuwoYL0cLQJ28WARAaF6PKk3NjZQLpeNuCo3PDnIGaOb\nmppCp9MRAWq1WrKwhOxp3OlPf/pTUY77+/sol8tyct+8eVNicm+99ZYkU4AD+lEWdujO7YDZoWlk\nZAS5XM7wVsjnzHkiNhawFpfvc+7cOQwNDYnFfvPmTTz//POS3JqYmBBagP/4j//A3NycxJgbjQaO\nHz8uCvDkyZPY3t6WTf+jH/1IFM36+joKhYLAI9966y2Mj4/Lpl9dXRXlC8CwwpgT4Nqurq5iaGhI\nksClUknep7c3KZWSVo7AQbGGtoDYBo+b+DDpc4GDZ2RPVW21cf0Jh9O83jrpRutWJ4F1H9dQKGQk\ngdfW1sQQWF5eFsjfZ599hlQqJevV7XZx584dvPbaa/J5dnZWCrpqtdpTSUHOJw8gKhWbzYaNjQ05\nhP1+v1iQ5DbRbeNarZasEZOxurMQPWSHw4HV1VV89NFHAKz1/fGPfyzAA60Ma7UacrmckRDe2Ngw\niPU0LcTIyAi++c1vyjM9fPhQZD0ajaLVaslBwmI7eljE1nOQKpvPz2IjwDJmdO/jQCAgBwNrLrRR\nq/sQ6z4AtVrNgFJqAEjvOIqhH42jcTSOxtdkHJqFromYWGzBk4cFJIB14muYHxsv0ELP5/PY3t6W\n07hcLot1Gw6H0el0xBokRQAtnoWFBfn3lStXcOPGDQmjnDt3DpVKRT7v7+/j5s2b8vnZZ581So2f\neeYZoxLU4XAYZfQul8tgadOVaENDQxIfYy9SWnTtdhvRaFSq+nZ3d+V93n77bfj9fvz0pz8FALzx\nxhuoVCoCV/vFL34hcVO73Y6lpSWJV7788stot9vCyBcKhfDnf/7nEjax2WwGIdjQ0JB4JGTQ429b\nrZZQfPJvORqNhkETWiqVMDExIbHucrksliG7v2g60lqtJnJBaCutQ903cmxsDI1GQ+RGd5v6qocu\nB2dhEdEOurCI1h4/k3mT8ssGCRqyS2ueoRZNfFWpVGS9dQOLcrmMQqEglZOM3XNNGJ7S3a24v7LZ\nrLFnSLxGj4vySitcU28MDg4aKB4NU+b7ORwO8ST29vYkBNrX14eBgQGxlAnjo+zrRi537txBuVwW\nHZHP542Y+meffYZKpSLeXLvdlvxXsVjExMSEeMDnz5+H1+s18l+6P/Du7q54GL3y6na7Dd1VKBSM\nHqi6126j0TCYU3vhvH19fWLNt1ottNttmfPeHsx6HJpCz+fzT7WU4suur6/LIk9NTeHLYSf1AAAg\nAElEQVT27dui0AqFgrjtwMGL0yV69OiRQS+p3X/GtKiU6/W6xNW+//3v46WXXpJwzLVr14SBELDK\n+91utyjLn/70pwaj4NjYmAgb4778PDw8jHw+b8QhdSm1z+eT2Jnf74fNZnuqkTDv22q1pDqSMfB3\n3nkHgKU8xsfHjW5AxNW/+eab8Pv9okgdDgcmJiZEoZ86dQo3btwQZfzXf/3X+Jd/+RdZK5fLJbAp\nwjlJNcxScM6V3uD5fB4DAwMSc93Z2cGLL74ormir1TKUg+7Cw2Q3w2nkDNEKT4cg2BwYMLHGX/VI\nJpNPcYPokBrX1uFwIBgMGlXP9+7dk/Ai8HSrRuYmGGOmkUCmQoYEp6amhK6CfQE0j8/09LQoOCYr\nqUzD4bBguMvlMrrdrkGrPDU1JbLN8AvbPDLmDlh1EmxmDVh7VR9gjM3zICmVSpK4vHjxIrxer8hn\noVBAtVoVZbqzsyMGBqkkeJBQSdNIarfb2N/fF86jpaUl+e2DBw9Qq9Uk/xWJROD3+yUX8fDhQ3Q6\nHZG5ZrMp3y0uLhpK2el0Sk0G78u1ZQcp7gOXyyVslPxeh5HYIJzvF4lE5Lsvo4Y+NIVer9dlcQKB\nAAqFgiT3Hj58KJPC1lOctEgkgsXFRVHoLPChtZxKpSSW9tJLL2FjY0MskZ2dHRw/flxOzaGhIZng\nTz/9FC+//LJsmMePH+PMmTOiSM+fP2+0S6PQ8N+a9pRFHIxDZjIZTE9PGyXfVKx9fX1GkRJ5qank\nstksHA6HbDDgwDqbn583+h2+8MILyOfzcu3FxUWDlvdP//RP5f3Yjo6COjg4iO3tbaM1F5X7hQsX\ncPfuXVHCT548wczMjFgTy8vLsNvtBpKDG55xYiqEoaEhhEIhOTij0ajBAa0VOhEfuu3Y7u6uCLYm\nCCuXy5icnJR5/LLii//roesM7HY78vm8UabOw9zj8RjUB/V6HQMDA+IZxeNxg65BN4BgwY4GAORy\nOTFQ9vb2RIFxzinr0WhUWrwBloLQjSe8Xq9Y7clkEuvr63JQZjIZg5c9EAggEolI4dvW1pYcwESa\n6MR1IpEQ4i+Xy4VcLid7ii33AGs/jo2NyR4Lh8OIx+Oyh+bn50XZ7+zsYHBwUPQHlSfL+Y8dO4YP\nP/xQLHiHwyE8TCT1oj5xu92IRqOyfsVi0YiZu91uI8ejayyY8NeGKXVNIpEwOFg0PxXnXNP06iQo\n97huy/lF4yiGfjSOxtE4Gl+TcWgWerVaFSu8Wq2iVCqJq6lDJoy16yo2u91ulMrX63U52UZHR8VK\nuXTpEmw2m1hxbIdFC8npdEr8lqc9Xb4HDx4I2x8AacCrIWXaWtfNcYvFIlKplJz69+7dw8bGhlg5\n7XZb4pl9fX3Y3NwUi4fWuYbqNRoNcYe1y3758mWsra2Jd/L48WMMDQ2J1abRJCMjI3j11VcFqbK/\nv4+NjQ2xEjY2NuByuWSuEomEWOv37t3D6uqqVJE2m03kcjmjBFrD0/x+v9ASJ5NJ7O7uimV14sQJ\n9PX1SexbW52AZfHpGKEOOfD9dfcqeiDlchnRaFSszi+zYv6vh34HehVEmOiaA3pWmuwplUqJ9Tg2\nNoZKpSKen663IHkT5b7b7eLixYsiC91uV0KLn376KSYmJmSuVldXMTIyIl7M3Nyc1BRw0JpdX183\nqnPdbjdyuZyR74pGo7J3NcSRYQ9d9Q1APAV6GQwb6fJ2NpbQpHtut1tCiMBBxWS324XH45F9TX1C\n2SdFLj2DQqEgMpfL5VAulyXk4nA4UKvVxKOs1+vw+XwGHTLXg01VuE8Y1uIa1et1+TtGI3Q4UedH\nNDUEAAOi6XK5pHMS8OWyfahcLnzJtbU1A5B/4sQJedFarWZ0Bg+FQtLOCbBCBbdv3xZa2EajIYp0\ndnYWiURC4EpM3FHZHDt2TK5rs9mQTqdF0UYiEczPzwsvyubmJs6ePSsQQZ/PJ270xsaG9LsEINwP\nVKzHjh1DpVIRwV1eXhY+luHhYZw8eVIWmqxx3ECMsepiDQrU8PAwJicnRSFsbW2hWCyKgP3oRz/C\nL3/5SwBWTLJWqxmtw+7cuSNJ0lqthunpaXHTHz58KC3Lrl+/jlwuJ5uL/6aSYixXM+lpqOHW1pYo\nsaGhIaFGACylxRiqx+NBPB4XLLzmuwEOkmq6kEP3r9T9Rg+zpygpc4EDTD436uDgoNFXstFoPJUv\n0ayBNptNFISGNBKiSVkmLl0nOCknyWQS3W5XPgeDQXz22WdinGxsbMBut4vCYz9PwDq8icXmfTUP\nDMvfmU8Kh8PynWYXBA4Ob02LoNfJZrMZifV6vW5wq+vwRzqdlhh6IpGQIjTAKn4aGBiQ933y5Am+\n//3vi+xvbm5KKIcKW8fBy+WyrBdDidzbPp/P6GbUbDYNZs3+/n4jmcn1IGUA34/vQ/llfwgNb+Yz\nkX6A44+SD11jk7PZLLxer1ihFy9eNCzSWCwm1Z3NZhNer1fijKdOnYLD4RAFmE6ncfr0aQAW10kw\nGDR4GGq1mlz7zJkzUpyQy+WwsrIiyjASiRjY3Hg8jtnZWVFa9XpdDgMKORdgaGgIy8vLsjjElnNR\nnn32WfEiKJg8dFgspKsnezcFBYYIEFom4+PjuH//vijaRCIhXC1bW1t45pln5D6///3v0Ww25RmZ\nDNJ9JYnBp3ehrV+PxyPCqA8fvpMWQFbz8j47OzsyV8FgUJTS6dOnEQqFxLLioADrBClgVtxys2rr\n/bBGo9GQ9YtEIsL7DVjvwnljQ2IqomQyiUwmI7HglZUVTE1Nyfywmhc4MGwo28w3cP101eXk5CTS\n6bQckCdOnEAmkxFLmSRYtLJjsZjhAa+trcl60uNiPoWJP13RSSWm1xmwlFi32xVPlm0MdSyZVjxr\nN3RrOA0e0Hk0t9stOSFeN5vNihc4NTWFvr4++V7Xquj3Bg7QQtoi1+Rjfr9fjMlcLmcAO9iUnXO3\nv78vc0EFTg8YgIHY4sHNw0IDI5iz0BTbXzSOYuhH42gcjaPxNRmHZqFrrDW7cZANjk2WAesUjMfj\nBgTw7t27Yolsb2/j5MmTEgN/4YUX5Lq0+ml1k1WN4ZmbN2/ixRdfBGDFo2/evCmWFfGmvO53v/td\n5PN5o7kxLQAiXJgTaDabiEajcpJ7vV5Eo1GxCnK5nPx2cnJSYn7AQfcfjUfVceRms2lA1bxer4Qk\narUafD6fxBn/7M/+TCyCTz/91GggAFihIM7F0tIS3G63WNKNRgOPHj0CcOAl0aLz+XxYW1szwioO\nh0P+Np1Oi9Wzs7MjZc2AZamsra2JF7W2tibvRmZGWiZswksrhhXBmidGl0pr2Bfn/jCG3W43qjs1\nNlk306anxWf1eDwYGhqS9XQ6nQiHwxKSKpfLYp1FIhHx5gBr7fv6+iRXoRtnrK+vo1KpiCe3sbGB\n48ePi5frdDoxPT1t5DIof6wCpidgt9uRSCQMjhJSPwBWLorx4EQiAYfDYZS3s8sPP7ObEGB67X19\nfajValIpeuHCBcRiMUFHnT59Wt5ndnYWd+/elecfHR3F6uqqyOP4+DiCwaB4pwsLC8ac6urOZrMp\n1ejAQXhPo+4YEux0OggGgyKPPp8PrVZL9onOBfL39CTZcYpzQWgl76fb2ekwFdf6i8ahKXRNxlUs\nFnH69GlRIMlkUhTr5uYmksmkTCi7eujEAKF/gPWy/O3U1BQeP34sEwxYE8WDI5FISLLVZrPh0qVL\nAnVicQUF6JNPPkEkEhE409bWlhGCcLvdRmzN6/WKK8mOPTyESqWSEaPr6+uT99EwNsDamLoTio6z\npdNpjIyMSBFItVrF/v6+xOfv3r1rdDl59913JUeQTqeFyhaAdL/hBorFYrLhXS6XJKMBSId4HR8c\nHR2V59YtyTKZDEqlksFz02w2xf1/+PChcMQwQcyiD0Jbteupcb96zjkv2n0/rKGLQrhJGR4gfwtg\nhTM2NzdlnsfGxgxceigUkgQ7ACMRHQwGJb8EWDK4u7sr7z85OSkhM5fLZYQtT548CY/HI4nQarVq\nkKLl83mRMd3LF7DCRD6fz+j+ozvU7+7uiqFTLpfh8XhEBkkvy/cn7I9D1xV4vV6kUim575MnTzAw\nMCDKs16vG71KBwYGZM4fP34s1MS8VrfbFSXe7XbFQNzZ2UEymRRFS24hDbIIhUJiRBUKBQndMN/B\n+7BfKtekVCoZRGx6fTQcl8+kueOdTqfMqdvtRrvdlmt9WWHRUcjlaByNo3E0vibjUNkWeVL7fD5E\no1GxpFOplEGXm8/nJTm5tbUlyBbAyqpr9rTPPvtMiHdYJMAS/EQiYSBmRkdHxRpi01ZafPV63Wiq\nvLW1hbm5OQnfbG9vG4mgVqslJ7XNZkOj0RA3id2ZaF3pLkO9oQL2WdQeCKFv/F4Xz+jGBZcvX8bk\n5KS4hI8ePZKQ0vHjx3H9+nXDUhwdHTUKgBYXF8WdY7EJ309bE7lcDn6/X9xjVrFp+mBed2FhAbFY\nTKzujY0Ng9DIZrOJR7WwsICJiQmxlpaXl6WqkXM1MzMjCAVtrZPESjfhPayhQ3PZbNYIZWioJZFV\nlLF0Om1Q0UYiEaTTafk9E3YABB6nETCaDMrtdgvKimEEennLy8uIRCKCatne3kYgEDAQQpoOWUNS\nmXzVnpDuxKPDL1wTnehkD13eRw/d7YgJXl43n89jY2NDvApNCPbqq6/igw8+kOsxJERLORwOG3QU\n5XJZ9ozP5zP6qbJjFK/N7mmU9eXlZZnjer0uqC0+s9PpNBghdfGWz+eTvyUSinOxu7trVLVroAcp\np3Wh0ReNQ1PoiURCmP3cbjf8fr8sQDqdlpgrNzQ7lhPSSDd0c3MTqVRKYrKPHz82uo4PDw9LHDwe\nj4t7CZidwyuVioHDXl9fNypU2WKN7iTdK37ncrmMCXe73aKENZ8FcICbBQ6y23RLibvvRbbocAcX\nnSXdVF6PHj3C1NSUNAd+9OiRcUC5XC4R5HQ6jf7+fnlm4p+5GalUAUuo6/W6xMULhYLRKi0Wi6FU\nKuHTTz8FYLmaupLw9OnTEr/c3Nw0eG4mJydlE6+treGFF16Q9XM4HEaNwcDAAD788EOZi0wmI8+k\n4Zyc48MaOzs7EkculUoIh8MyH+xKBEDcaK49WysSP/7o0SPE43GRBV0OXq/X4fV6xSBxOp0IhULy\n23K5LIf39va2UA8DVviCdA58pr29PXkOrbBpbPQ2ddcHh+641Wq1RHb29vaMGDpDFPowsNlsBr0u\nZZlshPrAbrfbIp80uABrr/b398s+93g8GBgYkAOrWq1ia2tL5rVYLMr7pFIpKa0HYODzgYNwjYZ4\ncs69Xi/Gx8clbHvlyhWh6OYz8wCiYUOjdXh4GE+ePDGYJ7mOnBf+N824ye++aByaQtf4WqfTiVgs\nJhtVK12/3498Pi/Ko16vS0MMAFKkQgEj3SdwoKS5sOS/4KRqThg2r6BwxWIxsYABK2ap45/NZlOU\nMltH6dNVx/U7nY7BNdFoNERo2PCAQq8LOPi32pux2+2yoN1uF9lsVt6hUqmgUCjI96FQSOCRk5OT\nOHPmjOQpAoEAKpWKQOIY56cHUi6X5Zl8Pp9BbuTz+aSJAGBtkDt37kiMcnBwUJTDwMAAhoeHxQrv\n6+vD9va2POOxY8fE2woGgwZ9rt/vRzqdNvIHLFsHDhQGr8v/xvU8rFEqlcQ4KRaLiEQicvDoBHer\n1TLyRWNjY1L4BVjzXK1WxSo/duwY/t//+38ADoqSdJx1cXFR6iY0eZrf7zcSphMTEyiXyxILDgQC\nhkVIGmMOXerPUnfNpc6ELAADa80DSFuUNHY4FxqCpz2sTqcjxWKABQVeXV01et7SOOEeZ6/gfD6P\nYrEo77C9vW00tllYWBCPvt1uY2RkRJ5pb2/P4IxJJBLw+/1yWDx8+FCe+dlnn0W73TZ6iLIWBLDg\noJSDvb098aJ43729PSM2DxzIsebJpwHI62robu84iqEfjaNxNI7G12QcmoVeq9XkpKO7Rysun8+L\nZcwiB56g7NKtK7v29/fFhQ8EAuICTUxMoNPpSPUjYXG0lDc3N+XUi0ajEi8DIPHJ3qo9no69dJa6\n4CcUChkwvlwuZ1ieDGFwaEIqwLT+2+22AX/SLiutJO12b2xsiMVut9uNhrxut1ssk48//lja+fGZ\nHz58aBQaMWSkYXSAZVn19/fLnM/NzYlVBAA//vGPjVi2bvDw6aefYn9/XyzWlZUVsWK8Xi9WVlae\nahigLa3x8XGxzIaHh2UtidJgSEyHjL7qUavVxKPUzZOBA8pV4CCmzM/9/f3o6+uT/AM74HA+crmc\nNLBYW1szqHgJeeS1dNcvwmo1EkUzYpLwTFvluqUcqxiBA/nTlrUOTTJEwWfqrRbVzV50xS+/43A6\nndKAGrC8t1gsJnusr69Pvnv06BE2Nzflme12O/r7+2XOx8fHcevWLZHjRCJhsJuyqTRgyVgikZAQ\n7tbWFq5fv2540MznHTt2DA8ePJAcSCQSwXvvvWe8B4sYeT96HNlsFsPDw+KpUyfoPJsOvwAHxXI6\ntNg7DhWHrhX65uamuIvFYlEmJRgMwm63C79FuVxGo9Ew2six0wu/ZzKIGHXG2zudDj777DP5LSvk\ngAOeDCqlZDL5VJs8XbWp8bQcVLwsaebfclNqgePo6+szYEjExGruaH2Q9JZK607hHExO9vf3i+Ik\nVws/X7p0Cd1uV8Id09PT8Hg84obncjlR/pFIBDabTYQxk8mIEgcsoR8fHxfBPnv2rLiojL8SSrmw\nsIAXX3xRNmN/f78I6NmzZzE/P2/g91OplEBHz58/b/So1OvFkILmpj6socMKY2Nj2N3dNTYl15sh\nI75DuVyG3++XQykej0tXesDs0rOysoJoNCprzUQ1lZamSm42m6jVarJ+vX1A2adVJ2+1waT/n/S3\nOo+jk9x2u10UD5P7ulK7NyGuDR0CBICDfaHzYbFYTGSl0+kYeTSdbA6Hw8KAClj6pNFoyN/u7++L\nbA8PD6Ner4tMjY6OIhwOCzx5bW3NOJAGBgakkjedTmN4eFhi8w8ePMD29raEUXTObXx8HC6Xy6DY\nHhsbE/AHmRapQ3TbRofDgUqlYrSv+6JxaAqdZbKAlURaXl4WbGsmkzGUlNvtNvhKGE8DrBefmJiQ\n2CMXCLA2BJObACSxxw3SarVkkVnOrrmndfKSwH9t1WiLRpeadzqdpxJFughGE+2wl6oWcl5DX09b\nMVrZs5waOMgZ0LLW5Fvkq9CkWblcTg6/W7duGZwcJ06cMJ7R6/VK7mF9fd2gz33uueews7Mjlotu\nNHHz5k2DrIpeA78fHx+X2Cab7nIuyctDbPzZs2eNcupmsynrRSw/N9Nh8qFrjysejyObzRr0yJrc\nSXNiswCLSpkYZ13vwH1w5swZzM/Pi9KemprC4uKiXGtqakrWnq3PtGWn91evzOlYNnm6+RuiOLj2\n7J9L+fV6vYYistlshvfZ22JQDy3LVO563rrdruRm7Ha7gfjRuG02wOH7kquGv9f49oWFBVy7dk08\n1Vwuh0KhYNAfh0IhkcmBgQEj16ARQUtLS1hfXxdUViKREG+SdRc8oPx+PzqdjhyybITC+/T19cm7\nc375HWX888ZRDP1oHI2jcTS+JuPQLPS9vT2BshUKBSwtLUknHp/PJ6ctCbPI/PfRRx8JLA+w4u26\nEbTH45HwTKFQwPT0tFj+xOPSEhkdHRWLhmgEWn+EDdFSYZduWiIas67jvIDZ4JXvo0uctTvcbrfR\nbrfFRW+32+h2u1/IqKaRHWzeq59Dewput9voVq49jlKpBLfbjffffx8ApDuTJjxiaOpb3/oWPvzw\nQ5nXmZkZJBIJiROHw2FMTU3JHNy8eVMQL6lUSpovABbaZmdnB6+88gqAg7g4YGF8vV6veBGcM3oK\na2tr8Pv98g5PnjwRi5X0AxovfVjDbrfLOwwODhrl4Tq2zUYn9Bh3d3dRKpUE6ra3t2esZyQSEVmO\nRqPY2tqScMbdu3fh8Xhk32hmwlKpZDD26apD3geA4e3o32oXPxwOS0cuABK60Q2MdQMSMkhysM4C\nMHHanDd9r89DKunGMLrdIAm5AGtfk3KW75fP50W2SeEMWA3PbTab0A7XajVsbW0ZTTn6+/tF1sfH\nx42m1tvb2/JMm5ubGB4ellCQxsJ7vV4Ui0WD/nhvb88gMvN6vXItTd1Nml3duu+LxqEp9N3dXQPX\nnE6nJYGQyWREaS8sLCAYDAr0cGdnx8CuJpNJbGxsCNzu8ePH4pL4fD5ks1n57djYGC5evCjl/eQo\nAazNpYH+pCbQ4Q2Xy2UkgzixTKpQGJkk1RArdjznfTU2l3/D0XtAaLdVU5lyA/QWJelrc8PTZaWy\nWFpaEjeP1/X5fFKiPzU1Jcnk999/H7/5zW9EKSWTSYNTZmJiAn/4wx9EMWtI2fb2Nvb29iTOGA6H\nkclkDDw/n+nu3bvodDqyeRi24n22t7dx4cIFmRetwMl7wvtqKt+veugkfjAYFEpWwDrQKEMzMzN4\n8uSJHFAejwfdbldi6oVCAV6vVxSXZuGs1+sYGRkRWKrH48Hw8LB832g0pMsVi3koQ72hEM6jjvPr\nnA3zR7wvjRDgoF+uho1qg0NT5DK8qOka9J7TMXT9PXCwPzivDodDlB+vRx1AcABDLA6HAwMDA2L0\nBYNBCTXu7u6i2WxKyNbpdEpeArAMnTNnzsj9q9WqFCGtrq6iWq1K7q/dbmNiYsIAD9BIbTQaApHk\ndTKZjKzR+vq60VOUIAxeRyv0L6PPPQq5HI2jcTSOxtdkHJqF3mw2paP3/Pw8hoaG5PRdXl4WS4sF\nMHThnU4nZmdn5fTy+/0YHh6W7DHZC4GDSi6exjs7O7h3755YfCMjI2LtVqtVVKtVSSgS1qVhjBph\nQSuc/9bwLL/fD7fbLRYC+0LSvapWq5LcqVQqYrkAT1tLvVaLdkuZyO0tpaaFRHIk4MBLINokEAig\n2WyKxRAIBMQSBCwoGCkENjY2kM/nxTKZnp5GNBo1QgP6fRcXF+X9YrEYxsbGxFNg42BWCetKURaR\ncS2JdKCc/P73v8fZs2dlTcbHxw1UUrfblRAMvYvDGH19ffJOq6uriMfj0kiE0EzACpsMDQ3JOzid\nTqN4jR2YaB0vLCxIAo5WI0Nqp0+fxtzcnMy7x+OREEQwGEQ0GpWEHEnMtLw0m82nSOGAAySKRrUw\n6Q9AePK1d6qLvTR0ttFoGKEenfTjvXTyvDcEY7fbjXCObhahK3CJWqGXls/nMTo6KqGQkydP4qWX\nXgIA/PrXv0alUhFPPZ1OG/uNlbqcO9IzcN6uXr2KGzduALASpolEQvYNUVmUA1Kc8DrsDQBY+2R5\neVmeo16vG41CNCy6l8VRj0NT6NlsVpTJ9PS00aR2cHDQCEHUajXJOne7XSSTSaOJQ7lcFndqf39f\n2Pvm5+cF7wlAUBj829u3b4vL43Q6cefOHQPXGwqFRNh0gwI+BweVsC7pJjIEsBSe0+k0GlNw4zEG\nrg8H7eJyM31ek4deBjcKtQ5H0QVnOIuhj83NTUSjURG4/v5+QwkUCgXBmZPp7vvf/768z/DwsBwA\no6OjuHv3roTQdEPkVquFXC4n8/rKK6/gzp074h7Pzc3JxqP7TaEmzItrm0wmjRLuYDBotMHTQs94\n6WEMHW4juyQPGq/XK/N04cIFXLhwQSgT/H6/GDLAQYxZozX4XrVaDTabTWS91WphcnLSqL7m3FSr\nVWxvb8s+qFQqT7WG03FzjWoBLMNB/1Y3X+C8a+VK5dcL39V5J95Ho7b0Pvi8OdWHgw4Z9fX1CWUG\nYCnAcDgsz3Hq1CmEw2EJjVy8eFHmfG1tDYODgxJySaVSEjoBLNRcu92W/aobaXg8HmQyGTE4iGgi\nhp3IOMA6+BqNhtEgXDcTP336tHQ+4324zwl1pX75o2xBt7i4KMqGXVD4AuPj46JMisUiLly4IHjN\nCxcuoFariXXo8XikBRoAA29LitD33nsPgBXr/dnPfoZf/epXAKwEq4ZO1ut1Edz5+XmcOHFCNiIL\nKnT8mkLfG9vSyUjggB+do16vy7uTqEsXnmhLiVaK7qDCZ6AHwc/s7cnBRC+/azQaRj9H8tPwmWdn\nZ0V5NJtNUcInT57E2tqaYHcTiQTsdrtskL6+Pvh8PrH+NQHTqVOnJL4NWPDITqcj8fYbN24IBHVg\nYMDA+pOgiXMzNjaGxcVFwQE7HA6Rgzt37mB4eNgoGDmswY5AgKXU0uk0rl+/DsAqF6entrGxIWXp\nwEEZOteAfOFcUw3pXF9fx+DgoOGt8bqASa4WjUYNTDfhoVz7Vqv1lLLVMXK/3y/7pBf+SBgjZV8X\nDBJ615sP0uX9WoFr5c650xhwXWTncrkMa17D+qLRqHh7gJVPeeaZZ2R+fvOb3xjU1h9//LHs83a7\njbGxMTn8OF/MVdCjBixlr3MGW1tbRp2B9kgCgQDq9boUPcbjcezu7sq+qNVqiEQiBmafhhEPdb77\nl9VYHMXQj8bROBpH42syDs1C397eFmjX3bt3MT4+boRKeMo3Gg3cu3dPrI1MJmMA/ck2qLu+MN7u\n9XoRCAQk9lsqlfD+++/Ltev1usGMpkupm82mdGEHLC9CEx7RygEOOuswds8iB92lu1gsGpWiGqoG\nwICB6bi4Lq4ADqCKwEEBCC0Gj8djxOcDgYDRn5MQQsAKBegeh7lcDh6PRyyRpaUlsaL39/fxF3/x\nFxLqyOfzCAaDUhB06tQpVKtVsfCSyaQ8/+zsLM6dOycWK5sJ0EOZ+P87wwMWVCsQCMjn4eFh3Lt3\nD2+88YZ8PzQ0ZORTdHim0+kYRWOHNer1urjd5XIZwWDQkCuGVRheosVLygDKBNeWlpnP5zNCZIFA\nQN53dXXVaEyxs7Mj3tjY2BgikYjkOGj1U2509SUAg+2T1q+OGzudTiMWri12klwQXj8AACAASURB\nVE4BB/tAV4Rrz7Y3hq4RLzabTWg9OEgKB8BoVM3/Rnll1fA3vvENAJbF3mg0RN/oOHmz2cTg4KB4\nL5cvX8b29raEg3/3u98hmUzKXJ47d07Wh40yNIvl4OCgyPrg4KBRMMhuZJwnm80mawJYoUuGfkiP\nDFjepoY6f1mDi0NT6GNjY7JxV1dXkc1mJZE1ODhoLHIgEJCYKxkCqRzJd9ErgMCB20nXpdvtYm5u\nTtwrnZyz2+04efKk4WqyZBiwYloaBkhqV8BSHvyef1upVIyKLrfbLULh9/tFKKiwtbur4+Sk7tSu\nJwfdWR3n1+Ee3cg5m80ik8nIZ7qlFJKHDx8aFZ4vvPCCgUvOZDK4dOkSACu+3t/fL6GseDyOjY0N\nyVGsrq5KYiiZTCKdThsHy5kzZ4wYrO4oBUAOpGazCb/fL9/TJech/Oabbxod1rUc6Oa9X/Ww2+2i\ntNfX13Hs2DFx97e2tnDr1i0AwPPPP2/ANL1eLzY3NyW0VS6XhWcFsOSK12k0GigWi7ImbrcbIyMj\n4tJvbm4KNJTNtDWjoDYUGNbj3Ol4erfbNbhp2EVKQ3D13+qSdSotXSfRGwfvhSn2yrmuOtUwRr/f\nb/C8sBITsAyZaDQq+49QUMarO52O1FQ0Gg1MTEzIvj979ixOnTol0OZIJAKfzyeKdnp6WmQ5EAgY\nlaL9/f1GDUoulzPChW63WxLiZH3VNBCapleHsXZ3d6WTEvDlsn1oCv3hw4fy8C+++CJ++ctfGs0j\neNqur68bAkRiIcaka7UaSqWSWGr7+/sGf4LmgS4Wi5ifn5d4/NWrV0VQOZlaKQMQpb26uor+/n6J\neWmly2QkJ5qtwzQniS5Karfbokj9fj9sNpvR01CX73e7XaPhhS4VZxGHLqDQRR+1Wk2ecWRkxCjS\naTQaSKfTYpGXy2VDUBwOh2C+m80mTpw4IWuwtLSEnZ0diVHSYqdlcu7cORHUx48fw+PxyPoUi0Vk\ns1lJdCYSCZmn/f19RCIRUdJUCNyIY2NjmJ6elqQ2GzUAlhEQCoWeIhQ7jPHrX/9avJnFxUU4HA6x\nALPZLK5evQrAev6lpSUxMPx+P06dOiUKj+RW2gKmnHi9XqmzAKxDslwui/fS25bR5XIZrdK0lUfE\nE9dXU03wEOlNPvOZPu97GgWaIhs4UFoal67j6NqooXLX9RfaeGk2m6IvxsbGDI8hEokYuaTt7W3k\n83mZq3Q6LbJ+/PhxxONx4SEKh8O4deuW6J+ZmRksLi7Kvr9//76srcPhwMTEhDxTPp/HzMyMgR/n\n+29ubgrZHGAZpvF43HjOzc1NAWloz4TcOXwG5o0+bxzF0I/G0TgaR+NrMg7NQten6M2bN5HJZOTE\nvXTpkkFgNDExYZTber1ecS3p0vAk9Hg8cl273Q6fzyenns1mw927d8Va+vDDDwUxkUqlYLPZxFok\n8kQTX1UqFYEohUIhw2XVjWWDwSDC4bDRiEFTxtZqNcOKoSUGHJRS63im7rperVblbwlZ1JV2uhON\npiRutVoYHh4WRMnjx4+FpQ6wLNoXX3xRLJ2xsTHJHzx+/BjxeFws8nq9btAm8J60cnTcu1QqYXd3\nV9gXr1y5gpmZGUERDA0NyfrcvHkT4+PjYgFtbW0hHo+Li1upVDA6OiohCe2dMIdBK+zLOqP/X49X\nXnlFUFo7OzuYm5uT8MCVK1dExvx+P55//nmJ7QYCASwvLxuNUTTyQ6NNiLOmXLjdboRCIZnLbDYr\na0s3n1Zpp9MxmlYA1n7UOHX+rdvtNhrOsC5Eew06ZKi9SXoJvBYrrTVMUddc6CbJrGbVc7G3tyd7\n+9y5cwaiKZfL4fz58wCsEODm5qbsv3w+j/n5ecO70c/v9/uNzl7a4qdVTY+yVqtJOPHUqVP47LPP\nJOw1NjaG/v5+8SB3dnZkH6+urmJsbEz0Ry6Xk7AZr5tMJg2aCx1+ikajsl6MMHzeODSFfv36dXHp\nX331VQAHFJ2hUEgm/PXXXzdaXqVSKRQKBYmZsTya7mQ+n5c4I7GfFOR4PG5wLO/u7gre1G63IxAI\niIJfXV1FsViUDRMKhbC+vi6bI5lMGmW8WkiYcNStwxwOh4SJNB86uxvpcmj2FwQONh8FTOOSuXl0\ncRQ7KwHWZuR1pqenMTc3J8L49ttv4/Lly3IIHTt2DG63WzhzlpaWxMULBoPGMzG5yg00MzODTCaD\nl19+GYBFG8Ck5/nz55FIJPCLX/wCgCWo5KcGLPwt55EHjt7wsVjMyDfs7u7KYaDhn8Vi0cAef1nx\nxf/10IlN0lrQIEkmk3LwtdttFAoFg3GP/VmBpxUeGfr4t/F4XHDpe3t7mJ+fl8N9eHhYXPNIJIK1\ntTVRNMPDw9jd3ZVwI7HylDHNl9Nut8UoAKyDgiEcAKLc+Rt2neJ1tUInjI/vwE5KlP1eimldU8GW\nhzrxqUNIb7zxhsz5o0ePsLGxIXssk8kgGo1KviwYDIqxMjU1hXQ6LWEwAgUYuopGo5icnDRCotQf\n169fx2uvvSY6YWJiAmfOnJEQ79LSksjntWvXUKlUxKBKpVKSjwCsw04zVQaDQQnLhsNh5PN5+fxH\nyeXyk5/8BA8ePAAAfPDBB6hWq/iHf/gHAGb86N1330VfX58ocFJhapIeXaWpuVZCoRAajYZsmBs3\nbmByclIEaGtry6iqXF5exsWLFwFY2OuVlRWJMYdCIYTDYRHGxcVFWQwiaShg5E3RmfSBgQGxNEOh\nkJG47eW7sNvtYoWzIQd/r635RqOBRqMhMViXy2VQt46NjUks+Xe/+x1mZmakBV0wGITf78fx48cB\nWIp1f39fBO7YsWNiCX/44YeYnJwUhUCEDy2GYDCItbU1PH78WNZEJ1Snp6dF2dOS5n339/fFqh4f\nHxdKWcDCpeuGy41GA7Ozs6LQdY9J4IBjGjhcLpdUKiVyE4lEkMvlBMEVCAQMjm/tYTE+3Yvb5tBx\n4omJCYyMjMhcLS4uYmlpSfZBIBAQhT40NIQHDx7gP//zPwFAesnyb1lhq5PrVBrMK/He/f39iEaj\nckB1u10kEglRcrqyORgMolKpGBa67mVAzLbmstHEZbo5cyqVMixph8MhMnTixAncv38fN2/eBGB5\nhcViUQyFvr4+LCwsyHP5fD7Zq2y+onvTfvDBByL7p06dwscffyyH8N7enrQBHB4exvz8vOw/xukp\nnzoKwf3CA7her8Pv9xuNWHT7yGg0Ku9aKBSQyWQMHfFF4yiGfjSOxtE4Gl+TcWgW+pMnTyTUUqvV\nsLi4KJaa7j7y3HPPYX19Xdwph8NhtDSjhardOLpTZIbjtQhr4wnaarUEXra7uwuXyyVwplQqhWPH\njonbVigUhKMFgBG6Yaye1kShUIDD4ZDTOBwOC64WsLwBWtzM5uv2YBrVQ4uN1pOGHuowCHBQjUYM\n9KNHjyTX8O6772J4eFgs9m9+85vo7+8XjpG9vT24XC555nK5LBb5+fPnEQwGZW4mJiZw+/ZtA7Uz\nPT0ta3D37l2xSPf39zEzM2NUbmqa4pmZGVnbYDCIgYEBmfNSqYTLly9Lx6KtrS3k83mjrRvXIJFI\nSLf3wx5er9doim2324X2NhAIyL8XFhYQj8dFlt1ut9HRh+3oKL9EeAGW9xWNRo25ajQaRsciWuik\naaCsZzIZg/cmk8ng2LFjBiqG1iGhrQzNUd4YGmGlM8M3mlOlt+sRK1J5LZfLhWAwaCBX6H3GYjGE\nw2F5d3qtnLvXX39dQhvvvvsu/vd//1diy2yCwjoJhi0pG5o2wOl04uzZs3LdW7duYXBwUHIgXq8X\nx44dkzUKhUJ46623AFgVp61WSyINiUQCjx49wosvvijvS4QW8xC02IeGhrC9vW3UtUQiEZnX/f19\ng3WzWq3KevU2BtHj0BQ6uaABqwR/cnJSlMDs7KzEuzY3N3Hy5Emjv169XhclwK49XKDBwUERgnq9\njkQiIaGOvb09jI2NSWjg9ddfF6jdnTt3cOrUKSOp1NfXJ8+0vLxsCEIikRChZ1EN7zs8PIzt7W1Z\nEBJzMf6Xy+Xk8KpUKkgkEkYnFh0rrdfrklgEzORVJBKRlmCApQBisRh+//vfy7X+53/+B4BFgrW7\nuyu0xKOjo/j2t78t79/f3y8FXoB1oFHpklqXwkkaASqXvb09PPPMM9LOzuv1yjMWi0Wj6w6hlLpv\nqN7QuptMrVbD+++/L8908eJFbG5uGrw2Gv/s8/mMhOlhjdu3b+Pdd9+V56JxAMAIVzidTmQyGaPb\nj+452mw2DUirpj9mn08qBIYX9eGgi4EGBgbwve99D4B14H7yySdy2Pt8PszPz8vcRaNRWRPydDNs\nWSqV0Gw2jXBNbxycRg/7perDQRfcMeGrARCaW6lSqcjeHR0dxfT0tCjLbDYr8nb9+nXDcKtWqwJ3\n5jMNDQ3JHioWi2L0xeNxDAwMPFX8RBmrVCrodDpGT2M+78TEhHTKAqz9ViwW5bmCwaDk6IrFotRz\nABaHEamHeV1dGKbzGC6XC5FIRJ7hi/hugKOQy9E4GkfjaHxtxqFZ6MzqAtZJViwWxc3Z3983oDkb\nGxvibjidTiN5wHAFPw8PD8u/CXOjS0TWNFo1Z86cEVcrnU5jfX1d3LhAIIDV1VWxft98803k83k5\nYUulkpygsVgMW1tbYnnt7u7ixIkTYsVks1k0m02B7unGvxrNAhw0hNXkXjabTazh/f19eUZWEdIy\nWVpaMug9O52OWAjRaBTxeFzgVz/4wQ+wtbUlUNFSqYTR0VHDEtHUu5ubm7I+TLYSgrW8vIxqtYrn\nn38eAPDee++JFXH16lUjcbmxsYEzZ85IVWlfX59YKSsrK6hUKjLn4+PjRsOAbDaLYDAo7+ByucQT\nyGQyKBaL8lknm77qodEMJ0+eRK1WEySErhKu1+uo1+vikezu7hrsmfQ6dOUsrc5gMChyBxyE+ehV\nRSIRkVWv1wu73Y4rV64AgFD0fvDBB/LM2qLXDdAJW9TVkLrBO8vxtddBK5Pl7pQFduTh+3EPUZ5T\nqZR4wGygwmTk2NgYBgcHJam/u7sr75dOp1Eul8WDZDc0zkU0GjXgoB6PR/p++nw+uFwueb9OpyNW\nOWB5PouLi7JPms2mRA+4h7k3C4UCOp2OfO7v73+KhoPvUyqVhMyLY2BgQEJmrIylHGhUD/f7541D\nU+haYZTLZVy9etVgKSPmmRzC3AStVuupSjDggBciFAqJm0ZuFiqioaEhdLtdwTm3221RHhcvXkQm\nk5HPnU4HgUBA6AgY+qGCvHv3rsSYyU+ihfHBgweysIxhUjGVSiWDplfHFeny6Q7lTqdTlJieG4fD\ngdXVVYFYnT59GqFQSNzJxcVFEbpAIIArV66Iwuvv75eQF2ApF6/XK3/b7XYFH51KpXD37l0RNnai\n0XC70dFRgWhFIhEJk7BxM/MW7OJCQR8eHpb1ee655wx41vLyMlwul2ymY8eOoVwuS7hKQ+3Gx8ex\ntLQkz3iYCr1UKokycbvdxtpXKhV5xmw2a2xcsity4/p8Png8Hpkrn88nOQ6uH+ecZeZUVJVKRQ6R\n6elpgz0zEAjg1VdfFY4jzS8CWJWVNHTII0JZ1+gWAKKw+ftGoyHXY+5HQyD1PhkdHYXX6zWql3VI\n8+TJk2KcbW9vY2try+BvoRwQHsg9EolEDOjohx9+iFgsJiGl6elp2Rd8B/42k8kYYRTSafCdHj9+\nbDA11ut10Te1Wg07Ozsyj6lUSoyZcDgMv98v19nb2zPaLZJHXnMT8bfdbtegffijVOiBQEAmjRAq\nCkskEpGJ0BAjwHrxVCpl8Ftsb2/LS3a7XVF4AwMDyGazIiTj4+O4ffu2WCo6htXtdvHaa6/hnXfe\nAXBQnk8hIG0AY3hnzpyRhVtZWTEExO12G8UZT548QSQSEYHTMWQdqwQOipQouA6Hw0h2VSoVsUTW\n1tbgdrslsenz+RAOhyVR2Gq1ZFP/7d/+LWZmZvDjH/8YwAEnPO9/8uRJdDodg66A0LtEIoGZmRlR\nLOR+5+dEIoFEIiHvOzw8LO/62WefIR6PG8U0JIvi3/J9NjY24Ha75dAk6RrnJpVKYXj4/2vv2nrb\nqrbu8C22Y2c7tmPHdm2cpCFpExdE1IKQikD0gUi8IP4EP4t33hBPPCFUUYQgJSUVJGlT1U3S+Lp9\ny/YlF+c8WGNmrXCozsP3nXzyt4ZUqVVSe++15pprrrnmHOOG1mBBI3e73cjlcrIxcjFcB5rNpmw0\n0WgUJycnYutnZ2cyl81mE5lMRjawfr+v8QWdnp4ikUiIjWazWbGzSCSCx48fa3THgUBAHGAul5NL\n0JcvXyIcDssJsdFoIJvN4rPPPgNwqVaviqqoufhoNCpBUKPRgG3bWl12u92WDVQlsAsEApJX5r9j\nsZh2J9DtduUdgsGgnNwYrXOzj8fjSCQS4gt++eUXfP311wBGG8ft27e1y+NutyvOcnJyUtO8jUaj\n8gzkmuE6YeMT7SeVSon+Lj+Ln0v9UY6rZVlYXFwU2+d4cNwsy5KNz3EcZDIZCVZs29Y0R9W7Feoh\n0C6MBJ2BgYHB/wNcW4SeyWRkV/R6vYhEIhpJPndty7JEsBm4lBpTu8TUPNRgMJCIb2lpCVtbW1qp\nYT6fl4i92+1q1KTHx8eSF7ZtG9VqVY6ww+EQlUpFUjBqfppEV/zcq+o/Xq8Xtm1rlSqqIjtwWeLF\nkj4eh91uN9rttkYfrJIY5fN5OaaFQiHtLqLdbkvnp23b+PzzzyXl0mq1sLq6qolJqJJmjUZDE1rY\n3t7G+++/D2BEmJbJZOQdQqGQ1qGqllkeHx9jenpacso8vv+7EtVYLIZyuSzVF7QTNoj0ej2tSiKZ\nTEr07vf7MTU1JT97U/PF/zbUMj426fC5HMeRkyiFjtUSVVWCTq22AEbRIqM/su+pAhd+v187cTJ9\nVqlUpHUeGM3tq1evpPLm/v376Ha70r1bLpflFMGIm8+cSqWQz+cl1XN2doZ0Oq2RdalydcPhUOaP\nbIu0MXZPM2qdmZnRSN3q9bp0ky8uLsLn8+G7774DMCJAY1pvenoa/X5fo30IBoNiA0tLSxgOh3Iq\nnJyclBPF4eEhotGonGa63S4ikYicsFjBxhOz2rjo8Xhg27Ym3N1sNuU0s7KyIuvt6OgIxWJRTgnp\ndBqxWEyi7mw2q9HtAvhbSbVazfZPuDaHHolEhKKSRzM6CFW7kzlmVVqLzofwer0yQaouX7/fR71e\n12hD5+fnxeifP38u30m2QPVStF6v4969ewAg+fVHjx4BuJwQ4DIvzAuqg4MDnJ+fy/H4av6xXq9r\n6QpuWkSxWJRn5mUtF9j09LQ4wEwmg7t372qSeltbW1hbWwMwWiC8qGy1Wsjn83JBnMvlkMvlhAqg\nWq3i4uJCDJlamHzeUqkkC29/f1/+DoyctKqVOTk5KXn94XCIs7MzOaYuLS2Jkwf0Wvn5+Xlks1nZ\nVIfDIX788UdNNSqXy2k0EDzOM6/PFJnabfzfhspqySM8n0fNoZOBk7/r9XrhdrtlDsgBREcci8U0\nXhtyoxBqr4O6GaTTaaGo5v+tVqsyVqenp7hz547Y3MOHD8XxkGqCn7u/v49IJCKpLtZL8zlUJtRg\nMAjLsiQFSCk+3i253W7cuHFDPtu2bbGTQCCATz75RGzh6dOn+OOPP6QkV+VSYtc21zJTfhzXWq0m\nl7kcZwZXlUoFlmVJmjaTyWhslPQt/Cy1jJTMp7RPj8ejca7s7OyIsyc/E+e2WCxiMBhIGarP58Ng\nMJDNrtfraUEAZS2BNysWXZtD9/v9YgTMp6v1qxwUNsvQ4bGumRErq2WYi3r06JEQ2wOj3Y3Gyc2B\nUfeff/4pk8OaWfUZcrmcxgOdTqdFvs62baysrAAYRYrtdlsu/nw+Hw4ODuQWnicBTkitVpPovt/v\n4/DwUIzN5/Nhf39fnL/L5UIqldJuuClwe35+jo2NDXGkx8fHKBQKEnnF43ExEOb81XbwZ8+eSeRc\nq9UQj8e1CJeb6N7eHoLBoGwk5Ke/WvOs1tDyJEOOG5VnXr0oIwEX3/Wvv/4SZ7GysoKvvvpKNqGj\noyM8fvxY48jmuIVCIZEJ5LxfJ9TKFbVl3bZteUafz6e11XMjUPPTrVZLq9tWZePUXg4AYlPAKADh\nuAKX+WpgtEFPT09rOdrnz5/LuH788cdaMYBK4jY1NQXHcTTZxVQqJe80PT2tnfocx5H3yeVy0uQD\njGyjUqlowhts579z5w4qlYpI99Xrde0CcmZmRnjx2YzHyJibO8d8dnYWgUBA7Pfi4kKa5KrVKpLJ\npLyP3++H2+2WZ6RojCpAw7FoNpsol8uyNi3Lwq1bt4SmxHEc/P777wAgugxqAMleAuBShITfq1b5\nWZb1H3MTmRy6gYGBwZjg2iL0q9SnnU5HIty9vT3ZBRmpq8LJqvpNtVrF4uKiHJFSqZREihS+YK6t\nWCwikUjIbmtZlkYZUCwWJRVg2zby+bxEHtwheQvvcrlkl2c1Bnfqt956C4FAQKIcVeiYz8xuVb/f\nL0LCwGXnqHpjD0By4aFQSOpg9/b2cH5+LhFtqVTCRx99JOkQy7IkIpifn8f+/r5Eg7u7uzg4OJAI\n1+PxoF6vy5xQ2g8YRXvqMTsWiyGXy+Hbb78FMIqWarWaHC+p3AJcnhKYJmEqQI0WGaEtLCxgaWlJ\nUhLFYlEj/Wc+lePebDZlfKLRKCzL0joYrwsqSyBPOmpJq3rCUO3i4uJCU9xixRbffzgcam3znU5H\nI2ILBoOaIr0qiej3+zUaXnUdeL1e7c4kEAhIpBwKhYRpFIBEpEwzsGuUuf1araaxpsbjcVnD0WhU\noxEol8toNBpyNzMxMSF2v7e3p90XVSoVPHz4UMar1+uJ3VB4m+m3mZkZuFwusf1UKoWjoyOxlUAg\nIOttMBjAcRyZE5ZVclwZsasnLj4/69/VU229XpexUHtE0uk0vF6vptKm9q5UKhUUCgWtQoi2XC6X\ntZTS/8kceqfTkZdtNptarlBNx5BCVGV/Ay5fajAYCHscMDIaHj2///57TE5OalJwp6en2mWemvZR\nyyX9fj/efvttmbx4PA7LsjT17/X1dQAj2gDmmQFgfX0d2WwWt27dAjByntRCBUYLiOmYwWCAUqkk\nxnnz5k202215z9u3b6NQKMjx0rZtLc+mLswHDx5gfn5eNsanT5/i008/BQDJU3Mh8nNoUGxRZxrF\ncRytzXxubk7uDOjoefk6NzenpVW8Xq845Xg8Lk0vwGUKhhunWo5VKpXw+vVr+R5uSNwMWPql8qTw\nO+v1OhzH0Wr9rwu87ARGNmbbtlxQnpycaMdnj8ej5WsHg4F2Qa6WBDqOI58bi8W0oCiVSsHj8UgO\nulAoaHXm+/v72gV8MpmUZzo9PcXBwYHMA+l0+TnZbFajkebv83vpfIHRBSsd3MHBgcats7W1pdF0\npFIpFAoFcVylUknWH50vCxyePHmiBXW1Wk2YUflOzN2TNpprqlgsajqpaiNUKBRCr9cTe7QsC7Va\nTZOAVDVUe72e1nrv9Xq1O5BAICDzWSqVxHZPT0+1JqrV1VX0+32Nr+XJkyfi1yKRiPwu1xc3nTfl\n0E3KxcDAwGBMcK0pF4IEP0ylTExMaBcrKsf3ycnJ346PKke4KkBcrVbx3nvvSVRDRkFWdgQCAYlS\njo6OtGMab+vVygC/3y/qJM+fP5cqneXlZbx48UIuQHZ2dpDNZmX3ZVkXo5p+v6+RDqkCHm63G/fv\n39ciou3tbUlnZLNZbG5uArhkOWSKhRfDaoTHI3i1WkWhUJB0xfb2tsYZzksjtZVcJcFaXl6WLsVe\nryd0Bnwfv9+vaawS5+fn2g19JBLRLlzVC3BWaXBsbNuGZVma5ma325UUmnoh5fF48PLlS42g6boQ\nDoe1rlr1edQSRj47x43c97RBy7LE3oFRlMqLP+p+cg7ZVs8LcVVculqtarzkrNRgBFiv1xGJRKQy\nye12y+/+/PPPWF1dlZPe5uYmwuGw2Dpb0jnuGxsbWiS9tbUl/7YsC3fu3NEUxLrdrqQm2+22nD79\nfj/K5TIeP34MYGQL7PTm93IcKYauisZ0u13Nx6RSKTkJvH79Wr7z3XffRTAYlDTJ5OSkEGlxvlSd\nXrVJjBQBtM9gMCiiHcRVsRJVkcnn88n8+f1+jeWyWq2KD0gmk2i1Whpr5T/h2hw6hQ6Ay4XKfC4n\nCrjkdFBz6izvAkYLht1rAPDll19Kjpm15TSSRCKBi4sLrWuPi8nr9SKbzYrDY+0sj3HkoOAx7t69\ne0J07/F4sLa2plUN7OzsiAE5jqPV1qttvC9fvkQikRABCOYz6Viz2SxKpZJW181yyIWFBeTzeZF7\n29zc1FgRg8GgGO7c3JzGRZNIJNBut8WgcrmcKC1xbGhQ7LQjKpWK8OLwe9QKjOFwqIkWsI6WP1M7\n8Th+wGiDUufk4uICjuPIz9lJSaPv9XrynWTq42bAjew6MD09LYEAj9pqG7dafqYuTubQiZOTE8zM\nzMj7D4dDsb9KpYLj42NJi3EuVElB2gwdqnpk51gCl+tPLfVkuobcQl988QWA0V1OOBwWG2R6kPO7\nsbEh9kcmVK6hWCyGTqcjaUsGaxwrNYW0u7urle+ura2h2WzKupidnZX1FIlENBHsq7X/4XAYMzMz\nYhPPnj2TcVpeXhb5Po6xalcUa1Fz6GpfiwoGhPQvqswdu8PVwFQthyRrqqpIpdJYRCIRsfs3Vbxc\naw5dJQByHEcizWAwKIM1GAxgWZYYI41Evaw8OzuT6EJ12IVCAd1uV8vnqs5yaWlJU/8JBAJifMvL\ny8hmsxIhTExM4Pj4WH7O1l1gpBweDoe18rtvvvlGM7Bff/1VLjZnZ2fFge/u7mJhYUEWAcsUVWWT\nbrcreeNYLCaL+MMPP9RofFutllZb7/P5ZGPqdDqo1WoyFqVSCblcTuM8OWJZcAAAA5ZJREFUKRaL\nMq4qje3U1BTS6bTkHWu1Gvx+v6bdqi5q1Qmrc8jfVXPMKhUra7ZV1XT1ctZxHK3ON5lMinNgGSkd\nkXrZ+N8GbRS4JNRSL0LVXC5pFACIXau15MlkUuyq2WxKjrzZbEqwA0Cr/QZGGxrXUKvVQr1el3WR\nTqc1paBqtYrDw0M5+dTrdVlPoVAIs7OzEiS98847cLvdMp+kqSBd8MzMjOTNS6WSRipFKUY+I3UC\n+F0kWAMgDUlqL0en05FIWq3hjkajWm8H6Z65LtiwxEKEVqulnWpV2cpGo6Fd7HLe+MxqLpub4tWe\nGZVKWJVT5B9C7aeJxWJCSw1AC06oVsRnVO8Er8Lk0A0MDAzGBNcWoXMXBUa74s2bNyUCzOfz2o27\nquTBIzkjvGQyiVKpJNFIrVaTaHd+fh6bm5uy62cyGbTbbYkIfD6fNAe5XC68evVKbs4ty0IymZSU\nRLlc1rQ/s9mspHnYmcZj9Q8//IB4PK6JAqyvr0t09eDBA/mchYUF1Ot1URmi4AO7P8vlMnw+n0Q9\nH3zwgRCEUWGJjTf7+/twu92Sozw5OZFn2N3dxevXr2V3/+mnn3D79m2JNti4oTZ98O/UPqRyEMvl\nVIY99fjY6XS0Zpl+v6+xL6p0x47jaAyPascwG5AY5Xg8Hk0pXT0VvXr1Ci6XSyqcmDq7DpAoi39X\nOzivNuVcLWNU/2+320UymZTTWblcFrt3uVz47bffxC56vR7m5uZE5JyCLMBoPtRokWpAXG+NRgPh\ncFg+u1QqSdkiU5pMh9ZqNWxsbEi0yFw875aOjo7k1DQ5OYlGoyGfu7y8jE6nI/dFpVIJL168EGWh\nSCQiEfjdu3fR6/Uk+j0+PsbR0ZF0bg+HQ6kiq1QquHHjhkTgN2/e/Fu3ebFYlKqsRCIhdkOlIM4P\nyeB4H8UOT76vy+XSmFFVmouJiQmcn59LOoedvirUdQFAS89QjQ0Y+T2uVYrK87T9ppSL6zpbpA0M\nDAwM/udgUi4GBgYGYwLj0A0MDAzGBMahGxgYGIwJjEM3MDAwGBMYh25gYGAwJjAO3cDAwGBMYBy6\ngYGBwZjAOHQDAwODMYFx6AYGBgZjAuPQDQwMDMYExqEbGBgYjAmMQzcwMDAYExiHbmBgYDAmMA7d\nwMDAYExgHLqBgYHBmMA4dAMDA4MxgXHoBgYGBmMC49ANDAwMxgTGoRsYGBiMCYxDNzAwMBgT/AtJ\ncFM4imLSfgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# フィルタ後の画像\n", "plt.figure()\n", "for index in range(2):\n", " plt.subplot(1, 2, index + 1)\n", " plt.axis('off')\n", " plt.imshow(filtered_img[0][index], cmap=plt.cm.gray, interpolation='nearest')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

フィルタの形

\n", "\t

\n", "\t\t畳み込みに使用されたフィルタの形を表示してみると訳の分からないランダムな模様に見えます。\n", "\t\t畳み込みニューラルネットの学習によってこのランダムなフィルタに少しずつ特徴的な形がでてきます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nEOMMAAYxzgBgEOMMAAYxzgBgEOMMAAYxzgBgEOMMAAb5QqHQ7f4zAAD+hSdnADCIcQYAgxhnADCI\ncQYAgxhnADCIcQYAgxhnADCIcQYAgxhnADCIcQYAgxhnADCIcQYAgxhnADCIcQYAgxhnADCIcQYA\ngxhnADCIcQYAgxhnADCIcQYAgxhnADCIcQYAg/p6dSG/3x9S27feeku+7ttvvy23CxculNsNGzbI\n7bJly+R21qxZcnvmzBm5XbBggdyGQiGfHPeioqJCvq/jx4+XrxsXFye3tbW1cjts2DC5TU5Oltvr\n16/fkuu6WL58uWf3NSkpSb6vJSUl8nWfeOIJuU1ISJDb9PR0ub127ZrclpWVye3cuXPlduPGjXJb\nVVXV7X3lyRkADGKcAcAgxhkADGKcAcAgxhkADGKcAcAgxhkADGKcAcAgxhkADPLsDcH6+nq5vXz5\nstzOnz//llw3Pj5ebhMTE+V27969cnvvvffK7a+//iq3XmpsbJTbQCAgtw888IDcdnZ2ym1sbKzc\n9uvXT27HjRsnt7t27ZLbpqYmuV2+fLnc9sbv98vtK6+8IrfBYFBus7Oz5faDDz6Q24EDB8rtuXPn\n5DYpKUluBw0aJLc94ckZAAxinAHAIMYZAAxinAHAIMYZAAxinAHAIMYZAAxinAHAIMYZAAxinAHA\nIM9e3w4LC5Pb8+fPy63LYZmnT5+W27S0NLmtqqqS29TUVLl1ORC1Tx/939EbN27IbW+GDh0qtx0d\nHXKbkpIitzt37pTbAQMGyO1nn30mt6+++qrcxsTEyO3WrVvl1ks1NTVyu379ern9+eef5fbPP/+U\n28OHD8ttXl6e3Obm5sqty89VdXW13PZ0KC5PzgBgEOMMAAYxzgBgEOMMAAYxzgBgEOMMAAYxzgBg\nEOMMAAYxzgBgEOMMAAZ59vr2kiVL5DYuLk5uV61aJbft7e1yGxERIbeTJ0+W23fffVduv/jiC7l1\neSXVSy7/3fT0dLn1+Xxy29LSIreVlZVym5+fL7eFhYVy63JauMtp1V5y+XUL06ZNk1uXE6r3798v\ntyUlJXJ78OBBuXX5bL3++utye+nSJbntCU/OAGAQ4wwABjHOAGAQ4wwABjHOAGAQ4wwABjHOAGAQ\n4wwABjHOAGAQ4wwABnn2+rbL6cRFRUVy6/IaZGlpqdweP35cbq9evSq327dvl9vo6Gi5fe211+TW\nSy6vb/d0inB3Zs+eLbfPP/+83A4ZMkRuc3Jy5Pbzzz+X2/fff19uMzMz5TY7O1tue9PV1SW3Lp/T\nuro6uc3KypLbQCAgty4/r7t375bbp556Sm5dTizvCU/OAGAQ4wwABjHOAGAQ4wwABjHOAGAQ4wwA\nBjHOAGAQ4wwABjHOAGAQ4wwABjHOAGCQZ79bY8aMGXJbXV0tt0OHDpXbqKgouU1PT5fb3NxcuW1u\nbpbbF198UW6/+eYbuXX5fRi9cfl9JaFQSG4ff/xxuW1ra5Pb1NRUue3fv7/cunwGampq5PbgwYNy\n66W0tDS5PXbsmNzOmzdPbr/99lu5vXjxotz+9ddfcuvyGdi0aZPcrlixQm4PHz7c7dd5cgYAgxhn\nADCIcQYAgxhnADCIcQYAgxhnADCIcQYAgxhnADCIcQYAgxhnADDI5/LK7f9SW1srX2jJkiXydU+f\nPi23Ln+X8PBwua2qqpLbKVOmyG0wGJTbjIwMuc3Pz/fJcS8KCwvlb6rLq8hjx46V20uXLsnt5s2b\n5fall16SW5fXfBsaGuT2008/ldsxY8Z4dl8fe+wx+b4WFRXJ171y5Yrc1tfXy217e7vcurxu7vJ3\nGzFihNyOGzdObpuamrq9rzw5A4BBjDMAGMQ4A4BBjDMAGMQ4A4BBjDMAGMQ4A4BBjDMAGMQ4A4BB\njDMAGOTZ6dvr1q2T27q6OrltamqS2+HDh8vtpEmT5Nbl1d1HHnlEbk+dOiW3Lq+FeykxMVFuGxsb\n5faPP/6QW5dTj0+cOHFL2pkzZ8ptZWWl3MbExMitlyZOnCi3OTk5crtjxw653bVrl9wuXrxYbsvL\ny+U2NjZWbleuXCm3N2/elNue8OQMAAYxzgBgEOMMAAYxzgBgEOMMAAYxzgBgEOMMAAYxzgBgEOMM\nAAYxzgBgkGevb3d2dsrt6tWr5TYyMlJu33zzTbnNysqS29bWVrl1edW4urpabouLi+X26aefltve\n7NmzR24vXLggty7f/8GDB8vtxx9/LLf79u2T2/fee09u+/bVf6xcThYfOXKk3PZm27Ztcpueni63\nHR0dcrtz5065HTVqlNyWlZXJrctr7Pfcc4/cHj16VG57wpMzABjEOAOAQYwzABjEOAOAQYwzABjE\nOAOAQYwzABjEOAOAQYwzABjEOAOAQb5QKHS7/wwAgH/hyRkADGKcAcAgxhkADGKcAcAgxhkADGKc\nAcAgxhkADGKcAcAgxhkADGKcAcAgxhkADGKcAcAgxhkADGKcAcAgxhkADGKcAcAgxhkADGKcAcAg\nxhkADGKcAcCgfwCzkhj+fCHXwwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#フィルタの形\n", "w = W.get_value()\n", "plt.figure()\n", "pos = 1\n", "for i in range(2):\n", " for j in range(3):\n", " plt.subplot(2, 3, pos)\n", " plt.axis('off')\n", " plt.imshow(w[i][j], cmap=plt.cm.gray, interpolation='nearest')\n", " pos += 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

Max Pooling

\n", "\t

\n", "\t\tMax Pooling 法とは、あるウィンドウサイズの中で 最大の値を代表値としてサンプリングする方法です。\n", "\t

\n", "\t

\n", "\t\tTheanoのtheano.tensor.signal.downsampleパッケージのmax_pool_2dでMax Poolingを提供しています。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Max Pooling のウィンドウサイズ\n", "maxpool_shape = (2, 2)\n", "# downsampleのパッケージが移動\n", "# pool_out = downsample.max_pool_2d(input, maxpool_shape, ignore_border=True)\n", "pool_out = pool.pool_2d(input, maxpool_shape, ignore_border=True)\n", "f = theano.function([input],pool_out)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "invals[0, 0, :, :] =\n", "[[ 4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01\n", " 1.46755891e-01]\n", " [ 9.23385948e-02 1.86260211e-01 3.45560727e-01 3.96767474e-01\n", " 5.38816734e-01]\n", " [ 4.19194514e-01 6.85219500e-01 2.04452250e-01 8.78117436e-01\n", " 2.73875932e-02]\n", " [ 6.70467510e-01 4.17304802e-01 5.58689828e-01 1.40386939e-01\n", " 1.98101489e-01]\n", " [ 8.00744569e-01 9.68261576e-01 3.13424178e-01 6.92322616e-01\n", " 8.76389152e-01]]\n", "output[0, 0, :, :] =\n", "[[ 0.72032449 0.39676747]\n", " [ 0.6852195 0.87811744]]\n" ] } ], "source": [ "# Max Poolingの動作確認\n", "invals = np.random.RandomState(1).rand(3, 2, 5, 5)\n", "print 'invals[0, 0, :, :] =\\n', invals[0, 0, :, :]\n", "print 'output[0, 0, :, :] =\\n', f(invals)[0, 0, :, :]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "\n", "\t

\n", "\t\t以下の例では、2x2のマトリックスからその最大の要素(0.7203)が抽出されていることが確認できます。\n", "\t

\t\n", "" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.417022 0.72032449]\n", " [ 0.09233859 0.18626021]]\n", "0.720324493442\n" ] } ], "source": [ "print invals[0, 0, 0:2, 0:2]\n", "print invals[0, 0, 0:2, 0:2].max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

Max Poolingの結果

\n", "\t

\n", "\t\tサンプル画像のMax Pooling後の画像を表示してみると、左の画像は瞳の白い部分が強調され、右の部分はまぶたの部分が強調されているように見えます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(1, 2, 61, 56)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# フィルタ後の画像にMax Poolingを施す\n", "pool_img = f(filtered_img)\n", "pool_img.shape" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nWbUrBaTtu7aq2l0gdscdd1TV7qIy+9E+v//++6tqt42F7ZU5IKUXjvfIDc6HVdvnOf39al/HwMVu\nq6iTzCOf1/ooQ2S8+2xGydh+2YHePTGNDul2s7depqHookpW8mWXsVOZ8rB5P5b2YDAY7BFOqaXd\nWZNdLHPVgXDvbuDGVru0PNavlrhOQOO04yTotu+qOvgiai1o1XeJX7QWvNZqJ/nu//m6rhxNWvCx\nIlYJtIx3Tptr9btTtVZ56nPWWWdtx375l395K7/whS+sqjXz0OGTOPdVvmUtoViSq9zp3dJt2c1x\no9teyjp3ea+72POq3W3ybrnllqradY7pCEtSrqqDsbBiPlp66b/VuO4c4J3D+sT75Xer9RjOk4wF\nj9lO1j33cM4bF+3Yz3OsEqhpdSdAwaAFneXO2Yxt57fzTKdklzvb+uq8T1vKkA7LFT+W9mAwGOwR\n5qU9GAwGe4RjidOW+kjPdSiEeiiJ3HPPPVvZHZbjyJJ+h1p6Lc85LI+3tL/bLqqqX4Iqzex2Xu+c\nEP5uFcPe5dbuMhaeeI1QvFX2QY/nmaVyxrDffPPNVbW7zF0HjI6X0FMzAirLSDMTh7yK6Y7DqOpA\n5nk0LWPv6mLf6lxMFjqdrvbjXXfdtZUTI+/41WnebV3n+NNpZtumn1drJJTd0k8rB/nK4do9W7dt\n3EpO7CQa66tUYvtGfnK+rDIN5t5dPu6qg/FedbDl4Gq7QaWU3MN+c04q0aQtD0vxIcbSHgwGgz3C\nvLQHg8Fgj3Dk8oi0K1RAurLKsBUafPvtt2/HpMlS7UQffOQjH9mOGdvrMvZENSgLSK9Cu1aJ56Vz\noWJSm1W2vZyzikUN7ZJ6Si2lV/ndyqPf1UdqaQZDY00TZbPK3Be6roxlvb7u675uK8eb7vJdlxZL\nQ1Mfqb/U0siH9LvRMMeBLuudETG2q6kA0mcuY1/1R9rZSBm3tXLcph+k/y5jV46JJOmYcFx341Yp\nYCWJZLyu4oxNTZBrPJLNLLod2qv6KCrfJbZJt7nJmWeeuR1zDBo/H5nP/nGMKtd0aQ18TuXHpM3o\nontWGEt7MBgM9gjz0h4MBoM9wrEsY5e6uHjm7rvv3soJQDebnzRTepnf6ZV1GXuXfU2KItWOJ9kM\naGY4M6okzyFtWy1pD+Xx3NWu9IHSgtSyg9fqFiwopUjrPDd0UHlE+Srll770pduxK664YitLoUPN\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Max Pooling後の画像\n", "for index in range(2):\n", " plt.subplot(1, 2, index + 1)\n", " plt.axis('off')\n", " plt.imshow(pool_img[0][index], cmap=plt.cm.gray, interpolation='nearest')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

LeNetモデル

\n", "\t

\n", "\t\tLeNetに関する\n", "\t\tTheano で Deep Learning <3> : 畳み込みニューラルネットワーク\n", "\t\tの説明(図を引用)も分かりやすいです。\n", "\t

\n", "\t

\n", "\t\t\n", "\t

\n", "\t

\n", "\t\t特徴マップに畳み込みを実行し、Max Poolingで疎な結合とし、これを複数層連結して最後に、多層パーセプトロンと目的の活性化関数を施す、\n", "\t\t一連の流れが、とても分かりやすいです。\n", "\t

\n", "\t

\n", "\t\tLeNetというのは、畳み込みニューラルネットを発明したLeCunの最初のニューラルネットの名前に由来するのだそうです。\n", "\t

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

LeNetConvPoolLayerクラス

\n", "\t

\n", "\t\tDeep Learning TutorialのLeNetConvPoolLayerクラスは、畳み込み層とプーリング層のペアを実装しています。\n", "\t

\n", "\t

\n", "\t\t重みWの初期値に、$[ - \\sqrt{\\frac{6}{in + out}},\\sqrt{\\frac{6}{in + out}}]$を与えるのは、 \n", "\t\tTheanoによる多層パーセプトロンの実装\n", "\t\tで紹介されている、活性化関数にtanhを使う時の収束の良いWの初期値です。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "class LeNetConvPoolLayer(object):\n", " \"\"\"畳み込みニューラルネットの畳み込み層+プーリング層\"\"\"\n", " def __init__(self, rng, input, image_shape, filter_shape, poolsize=(2, 2)):\n", " # 入力の特徴マップ数は一致する必要がある\n", " assert image_shape[1] == filter_shape[1]\n", "\n", " fan_in = np.prod(filter_shape[1:])\n", " fan_out = filter_shape[0] * np.prod(filter_shape[2:]) / np.prod(poolsize)\n", "\n", " W_bound = np.sqrt(6.0 / (fan_in + fan_out))\n", " self.W = theano.shared(\n", " np.asarray(rng.uniform(low=-W_bound, high=W_bound, size=filter_shape),\n", " dtype=theano.config.floatX), # @UndefinedVariable\n", " borrow=True)\n", "\n", " b_values = np.zeros((filter_shape[0],), dtype=theano.config.floatX) # @UndefinedVariable\n", " self.b = theano.shared(value=b_values, borrow=T)\n", "\n", " # 入力の特徴マップとフィルタの畳み込み\n", " conv_out = conv.conv2d(\n", " input=input,\n", " filters=self.W,\n", " filter_shape=filter_shape,\n", " image_shape=image_shape)\n", "\n", " # Max-poolingを用いて各特徴マップをダウンサンプリング\n", " pooled_out = pool.pool_2d(\n", " input=conv_out,\n", " ds=poolsize,\n", " ignore_border=True)\n", "\n", " # バイアスを加える\n", " self.output = T.tanh(pooled_out + self.b.dimshuffle('x', 0, 'x', 'x'))\n", "\n", " self.params = [self.W, self.b]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

畳み込みニューラルネットワークを使った数字認識

\n", "\t

\n", "\t\t2つのLeNetConvPoolLayerと全結合したHiddenLayerとLogisticRegressionを組み合わせて、\n", "\t\tMNISTの数字文字認識のMini版を試してみます。\n", "\t

\n", "\t

\n", "\t\tTheanoによる畳み込みニューラルネットワークの実装 (1)\n", "\t\tとの違いは、最後に収束したモデルを以下の様に保存しているところです。\n", "\t\t

\n",
    "    # dump layers\n",
    "    with gzip.open('data/model.pkl.gz', 'wb') as f:\n",
    "        pickle.dump([layer0_input, layer0, layer1, layer2_input, layer2, layer3], f)\t\t\t\n",
    "\t\t
\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def evaluate_lenet5(learning_rate=0.1, n_epochs=200,\n", " dataset='mnist.pkl.gz', batch_size=500):\n", " rng = np.random.RandomState(23455)\n", "\n", " # 学習データのロード\n", " datasets = load_data(dataset)\n", " train_set_x, train_set_y = datasets[0]\n", " valid_set_x, valid_set_y = datasets[1]\n", " test_set_x, test_set_y = datasets[2]\n", "\n", " # ミニバッチの数\n", " n_train_batches = train_set_x.get_value(borrow=True).shape[0] / batch_size\n", " n_valid_batches = valid_set_x.get_value(borrow=True).shape[0] / batch_size\n", " n_test_batches = test_set_x.get_value(borrow=True).shape[0] / batch_size\n", "\n", " print \"building the model ...\"\n", "\n", " # ミニバッチのインデックスを表すシンボル\n", " index = T.lscalar()\n", "\n", " # ミニバッチの学習データとラベルを表すシンボル\n", " x = T.matrix('x')\n", " y = T.ivector('y')\n", "\n", " # 入力\n", " # 入力のサイズを4Dテンソルに変換\n", " # batch_sizeは訓練画像の枚数\n", " # チャンネル数は1\n", " # (28, 28)はMNISTの画像サイズ\n", " layer0_input = x.reshape((batch_size, 1, 28, 28))\n", "\n", " # 最初の畳み込み層+プーリング層\n", " # 畳み込みに使用するフィルタサイズは5x5ピクセル\n", " # 畳み込みによって画像サイズは28x28ピクセルから24x24ピクセルに落ちる\n", " # プーリングによって画像サイズはさらに12x12ピクセルに落ちる\n", " # 特徴マップ数は20枚でそれぞれの特徴マップのサイズは12x12ピクセル\n", " # 最終的にこの層の出力のサイズは (batch_size, 20, 12, 12) になる\n", " layer0 = LeNetConvPoolLayer(rng,\n", " input=layer0_input,\n", " image_shape=(batch_size, 1, 28, 28), # 入力画像のサイズを4Dテンソルで指定\n", " filter_shape=(20, 1, 5, 5), # フィルタのサイズを4Dテンソルで指定\n", " poolsize=(2, 2))\n", "\n", " # layer0の出力がlayer1への入力となる\n", " # layer0の出力画像のサイズは (batch_size, 20, 12, 12)\n", " # 12x12ピクセルの画像が特徴マップ数分(20枚)ある\n", " # 畳み込みによって画像サイズは12x12ピクセルから8x8ピクセルに落ちる\n", " # プーリングによって画像サイズはさらに4x4ピクセルに落ちる\n", " # 特徴マップ数は50枚でそれぞれの特徴マップのサイズは4x4ピクセル\n", " # 最終的にこの層の出力のサイズは (batch_size, 50, 4, 4) になる\n", " layer1 = LeNetConvPoolLayer(rng,\n", " input=layer0.output,\n", " image_shape=(batch_size, 20, 12, 12), # 入力画像のサイズを4Dテンソルで指定\n", " filter_shape=(50, 20, 5, 5), # フィルタのサイズを4Dテンソルで指定\n", " poolsize=(2, 2))\n", "\n", " # 隠れ層への入力\n", " # 画像のピクセルをフラット化する\n", " # layer1の出力のサイズは (batch_size, 50, 4, 4) なのでflatten()によって\n", " # (batch_size, 50*4*4) = (batch_size, 800) になる\n", " layer2_input = layer1.output.flatten(2)\n", "\n", " # 全結合された隠れ層\n", " # 入力が800ユニット、出力が500ユニット\n", " layer2 = HiddenLayer(rng,\n", " input=layer2_input,\n", " n_in=50 * 4 * 4,\n", " n_out=500,\n", " activation=T.tanh)\n", "\n", " # 最終的な数字分類を行うsoftmax層\n", " layer3 = LogisticRegression(input=layer2.output, n_in=500, n_out=10)\n", "\n", " # コスト関数を計算するシンボル\n", " cost = layer3.negative_log_likelihood(y)\n", "\n", " # index番目のテスト用ミニバッチを入力してエラー率を返す関数を定義\n", " test_model = theano.function(\n", " [index],\n", " layer3.errors(y),\n", " givens={\n", " x: test_set_x[index * batch_size: (index + 1) * batch_size],\n", " y: test_set_y[index * batch_size: (index + 1) * batch_size]\n", " })\n", "\n", " # index番目のバリデーション用ミニバッチを入力してエラー率を返す関数を定義\n", " validate_model = theano.function(\n", " [index],\n", " layer3.errors(y),\n", " givens={\n", " x: valid_set_x[index * batch_size: (index + 1) * batch_size],\n", " y: valid_set_y[index * batch_size: (index + 1) * batch_size]\n", " })\n", "\n", " # パラメータ\n", " params = layer3.params + layer2.params + layer1.params + layer0.params\n", "\n", " # コスト関数の微分\n", " grads = T.grad(cost, params)\n", "\n", " # パラメータ更新式\n", " updates = [(param_i, param_i - learning_rate * grad_i) for param_i, grad_i in zip(params, grads)]\n", "\n", " # index番目の訓練バッチを入力し、パラメータを更新する関数を定義\n", " train_model = theano.function(\n", " [index],\n", " cost,\n", " updates=updates,\n", " givens={\n", " x: train_set_x[index * batch_size: (index + 1) * batch_size],\n", " y: train_set_y[index * batch_size: (index + 1) * batch_size]\n", " })\n", "\n", " print \"train model ...\"\n", "\n", " # eary-stoppingのパラメータ\n", " patience = 10000\n", " patience_increase = 2\n", " improvement_threshold = 0.995\n", " validation_frequency = min(n_train_batches, patience / 2)\n", "\n", " best_validation_loss = np.inf\n", " best_iter = 0\n", " test_score = 0\n", " start_time = time.clock()\n", "\n", " epoch = 0\n", " done_looping = False\n", "\n", " fp1 = open(\"validation_error.txt\", \"w\")\n", " fp2 = open(\"test_error.txt\", \"w\")\n", "\n", " while (epoch < n_epochs) and (not done_looping):\n", " epoch = epoch + 1\n", " for minibatch_index in xrange(n_train_batches):\n", " iter = (epoch - 1) * n_train_batches + minibatch_index\n", " cost_ij = train_model(minibatch_index)\n", "\n", " if (iter + 1) % validation_frequency == 0:\n", " validation_losses = [validate_model(i) for i in xrange(n_valid_batches)]\n", " this_validation_loss = np.mean(validation_losses)\n", " print \"epoch %i, minibatch %i/%i, validation error %f %%\" % (epoch, minibatch_index + 1, n_train_batches, this_validation_loss * 100)\n", " fp1.write(\"%d\\t%f\\n\" % (epoch, this_validation_loss * 100))\n", "\n", " if this_validation_loss < best_validation_loss:\n", " if this_validation_loss < best_validation_loss * improvement_threshold:\n", " # 十分改善したならまだ改善の余地があるためpatienceを上げてより多くループを回せるようにする\n", " patience = max(patience, iter * patience_increase)\n", " print \"*** iter %d / patience %d\" % (iter, patience)\n", " best_validation_loss = this_validation_loss\n", " best_iter = iter\n", "\n", " # テストデータのエラー率も計算\n", " test_losses = [test_model(i) for i in xrange(n_test_batches)]\n", " test_score = np.mean(test_losses)\n", " print \" epoch %i, minibatch %i/%i, test error of best model %f %%\" % (epoch, minibatch_index + 1, n_train_batches, test_score * 100)\n", " fp2.write(\"%d\\t%f\\n\" % (epoch, test_score * 100))\n", "\n", " # patienceを超えたらループを終了\n", " if patience <= iter:\n", " done_looping = True\n", " break\n", "\n", " fp1.close()\n", " fp2.close()\n", "\n", " end_time = time.clock()\n", " print \"Optimization complete.\"\n", " print \"Best validation score of %f %% obtained at iteration %i, with test performance %f %%\" % (best_validation_loss * 100.0, best_iter + 1, test_score * 100.0)\n", " print \"Ran for %.2fm\" % ((end_time - start_time) / 60.0)\n", "\n", " # dump layers\n", " with gzip.open('data/model.pkl.gz', 'wb') as f:\n", " pickle.dump([layer0_input, layer0, layer1, layer2_input, layer2, layer3], f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

CNNの計算

\n", "\t

\n", "\t\tさくらのVPSでこの計算をすると約2時間CPUを占有してしまいますので、以下の処理は実行しないでください。\n", "\t

\n", "\t

\n", "\t\tまたは、このノートブックをダウンロードして、ローカルのSageで試してみてください。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "... loading data\n", "building the model ...\n", "train model ...\n", "epoch 1, minibatch 10/10, validation error 37.200000 %\n", "*** iter 9 / patience 10000\n", " epoch 1, minibatch 10/10, test error of best model 40.400000 %\n", "epoch 2, minibatch 10/10, validation error 34.200000 %\n", "*** iter 19 / patience 10000\n", " epoch 2, minibatch 10/10, test error of best model 34.400000 %\n", "epoch 3, minibatch 10/10, validation error 22.400000 %\n", "*** iter 29 / patience 10000\n", " epoch 3, minibatch 10/10, test error of best model 22.400000 %\n", "epoch 4, minibatch 10/10, validation error 18.400000 %\n", "*** iter 39 / patience 10000\n", " epoch 4, minibatch 10/10, test error of best model 17.200000 %\n", "epoch 5, minibatch 10/10, validation error 16.800000 %\n", "*** iter 49 / patience 10000\n", " epoch 5, minibatch 10/10, test error of best model 15.000000 %\n", "epoch 6, minibatch 10/10, validation error 16.000000 %\n", "*** iter 59 / patience 10000\n", " epoch 6, minibatch 10/10, test error of best model 13.800000 %\n", "epoch 7, minibatch 10/10, validation error 13.800000 %\n", "*** iter 69 / patience 10000\n", " epoch 7, minibatch 10/10, test error of best model 12.400000 %\n", "epoch 8, minibatch 10/10, validation error 13.400000 %\n", "*** iter 79 / patience 10000\n", " epoch 8, minibatch 10/10, test error of best model 12.000000 %\n", "epoch 9, minibatch 10/10, validation error 13.000000 %\n", "*** iter 89 / patience 10000\n", " epoch 9, minibatch 10/10, test error of best model 11.200000 %\n", "epoch 10, minibatch 10/10, validation error 12.200000 %\n", "*** iter 99 / patience 10000\n", " epoch 10, minibatch 10/10, test error of best model 11.200000 %\n", "epoch 11, minibatch 10/10, validation error 12.000000 %\n", "*** iter 109 / patience 10000\n", " epoch 11, minibatch 10/10, test error of best model 11.000000 %\n", "epoch 12, minibatch 10/10, validation error 11.800000 %\n", "*** iter 119 / patience 10000\n", " epoch 12, minibatch 10/10, test error of best model 10.600000 %\n", "epoch 13, minibatch 10/10, validation error 11.600000 %\n", "*** iter 129 / patience 10000\n", " epoch 13, minibatch 10/10, test error of best model 10.400000 %\n", "epoch 14, minibatch 10/10, validation error 11.000000 %\n", "*** iter 139 / patience 10000\n", " epoch 14, minibatch 10/10, test error of best model 10.000000 %\n", "epoch 15, minibatch 10/10, validation error 10.800000 %\n", "*** iter 149 / patience 10000\n", " epoch 15, minibatch 10/10, test error of best model 9.600000 %\n", "epoch 16, minibatch 10/10, validation error 10.000000 %\n", "*** iter 159 / patience 10000\n", " epoch 16, minibatch 10/10, test error of best model 9.200000 %\n", "epoch 17, minibatch 10/10, validation error 10.000000 %\n", "epoch 18, minibatch 10/10, validation error 9.600000 %\n", "*** iter 179 / patience 10000\n", " epoch 18, minibatch 10/10, test error of best model 8.800000 %\n", "epoch 19, minibatch 10/10, validation error 9.200000 %\n", "*** iter 189 / patience 10000\n", " epoch 19, minibatch 10/10, test error of best model 8.800000 %\n", "epoch 20, minibatch 10/10, validation error 8.600000 %\n", "*** iter 199 / patience 10000\n", " epoch 20, minibatch 10/10, test error of best model 7.800000 %\n", "epoch 21, minibatch 10/10, validation error 8.400000 %\n", "*** iter 209 / patience 10000\n", " epoch 21, minibatch 10/10, test error of best model 7.600000 %\n", "epoch 22, minibatch 10/10, validation error 8.200000 %\n", "*** iter 219 / patience 10000\n", " epoch 22, minibatch 10/10, test error of best model 7.600000 %\n", "epoch 23, minibatch 10/10, validation error 8.200000 %\n", "epoch 24, minibatch 10/10, validation error 7.800000 %\n", "*** iter 239 / patience 10000\n", " epoch 24, minibatch 10/10, test error of best model 7.000000 %\n", "epoch 25, minibatch 10/10, validation error 7.800000 %\n", "epoch 26, minibatch 10/10, validation error 7.600000 %\n", "*** iter 259 / patience 10000\n", " epoch 26, minibatch 10/10, test error of best model 6.200000 %\n", "epoch 27, minibatch 10/10, validation error 7.600000 %\n", "epoch 28, minibatch 10/10, validation error 7.400000 %\n", "*** iter 279 / patience 10000\n", " epoch 28, minibatch 10/10, test error of best model 6.000000 %\n", "epoch 29, minibatch 10/10, validation error 7.200000 %\n", "*** iter 289 / patience 10000\n", " epoch 29, minibatch 10/10, test error of best model 6.000000 %\n", "epoch 30, minibatch 10/10, validation error 7.000000 %\n", "*** iter 299 / patience 10000\n", " epoch 30, minibatch 10/10, test error of best model 5.600000 %\n", "epoch 31, minibatch 10/10, validation error 6.600000 %\n", "*** iter 309 / patience 10000\n", " epoch 31, minibatch 10/10, test error of best model 5.400000 %\n", "epoch 32, minibatch 10/10, validation error 6.600000 %\n", "epoch 33, minibatch 10/10, validation error 6.600000 %\n", "epoch 34, minibatch 10/10, validation error 6.600000 %\n", "epoch 35, minibatch 10/10, validation error 6.600000 %\n", "epoch 36, minibatch 10/10, validation error 6.600000 %\n", "epoch 37, minibatch 10/10, validation error 6.600000 %\n", "epoch 38, minibatch 10/10, validation error 6.400000 %\n", "*** iter 379 / patience 10000\n", " epoch 38, minibatch 10/10, test error of best model 4.400000 %\n", "epoch 39, minibatch 10/10, validation error 6.400000 %\n", "epoch 40, minibatch 10/10, validation error 6.400000 %\n", "epoch 41, minibatch 10/10, validation error 6.200000 %\n", "*** iter 409 / patience 10000\n", " epoch 41, minibatch 10/10, test error of best model 4.400000 %\n", "epoch 42, minibatch 10/10, validation error 6.000000 %\n", "*** iter 419 / patience 10000\n", " epoch 42, minibatch 10/10, test error of best model 4.400000 %\n", "epoch 43, minibatch 10/10, validation error 6.000000 %\n", "epoch 44, minibatch 10/10, validation error 6.000000 %\n", "epoch 45, minibatch 10/10, validation error 6.000000 %\n", "epoch 46, minibatch 10/10, validation error 6.000000 %\n", "epoch 47, minibatch 10/10, validation error 6.000000 %\n", "epoch 48, minibatch 10/10, validation error 5.800000 %\n", "*** iter 479 / patience 10000\n", " epoch 48, minibatch 10/10, test error of best model 3.800000 %\n", "epoch 49, minibatch 10/10, validation error 5.800000 %\n", "epoch 50, minibatch 10/10, validation error 6.000000 %\n", "epoch 51, minibatch 10/10, validation error 6.000000 %\n", "epoch 52, minibatch 10/10, validation error 5.800000 %\n", "epoch 53, minibatch 10/10, validation error 5.800000 %\n", "epoch 54, minibatch 10/10, validation error 5.800000 %\n", "epoch 55, minibatch 10/10, validation error 5.800000 %\n", "epoch 56, minibatch 10/10, validation error 5.800000 %\n", "epoch 57, minibatch 10/10, validation error 5.600000 %\n", "*** iter 569 / patience 10000\n", " epoch 57, minibatch 10/10, test error of best model 3.800000 %\n", "epoch 58, minibatch 10/10, validation error 5.600000 %\n", "epoch 59, minibatch 10/10, validation error 5.600000 %\n", "epoch 60, minibatch 10/10, validation error 5.400000 %\n", "*** iter 599 / patience 10000\n", " epoch 60, minibatch 10/10, test error of best model 3.600000 %\n", "epoch 61, minibatch 10/10, validation error 5.400000 %\n", "epoch 62, minibatch 10/10, validation error 5.400000 %\n", "epoch 63, minibatch 10/10, validation error 5.400000 %\n", "epoch 64, minibatch 10/10, validation error 5.400000 %\n", "epoch 65, minibatch 10/10, validation error 5.400000 %\n", "epoch 66, minibatch 10/10, validation error 5.200000 %\n", "*** iter 659 / patience 10000\n", " epoch 66, minibatch 10/10, test error of best model 3.600000 %\n", "epoch 67, minibatch 10/10, validation error 5.200000 %\n", "epoch 68, minibatch 10/10, validation error 5.200000 %\n", "epoch 69, minibatch 10/10, validation error 5.200000 %\n", "epoch 70, minibatch 10/10, validation error 5.200000 %\n", "epoch 71, minibatch 10/10, validation error 5.000000 %\n", "*** iter 709 / patience 10000\n", " epoch 71, minibatch 10/10, test error of best model 3.200000 %\n", "epoch 72, minibatch 10/10, validation error 5.000000 %\n", "epoch 73, minibatch 10/10, validation error 5.000000 %\n", "epoch 74, minibatch 10/10, validation error 5.000000 %\n", "epoch 75, minibatch 10/10, validation error 5.200000 %\n", "epoch 76, minibatch 10/10, validation error 5.200000 %\n", "epoch 77, minibatch 10/10, validation error 5.200000 %\n", "epoch 78, minibatch 10/10, validation error 5.200000 %\n", "epoch 79, minibatch 10/10, validation error 5.200000 %\n", "epoch 80, minibatch 10/10, validation error 4.800000 %\n", "*** iter 799 / patience 10000\n", " epoch 80, minibatch 10/10, test error of best model 3.200000 %\n", "epoch 81, minibatch 10/10, validation error 4.800000 %\n", "epoch 82, minibatch 10/10, validation error 4.600000 %\n", "*** iter 819 / patience 10000\n", " epoch 82, minibatch 10/10, test error of best model 3.200000 %\n", "epoch 83, minibatch 10/10, validation error 4.600000 %\n", "epoch 84, minibatch 10/10, validation error 4.600000 %\n", "epoch 85, minibatch 10/10, validation error 4.600000 %\n", "epoch 86, minibatch 10/10, validation error 4.600000 %\n", "epoch 87, minibatch 10/10, validation error 4.600000 %\n", "epoch 88, minibatch 10/10, validation error 4.600000 %\n", "epoch 89, minibatch 10/10, validation error 4.600000 %\n", "epoch 90, minibatch 10/10, validation error 4.600000 %\n", "epoch 91, minibatch 10/10, validation error 4.600000 %\n", "epoch 92, minibatch 10/10, validation error 4.600000 %\n", "epoch 93, minibatch 10/10, validation error 4.600000 %\n", "epoch 94, minibatch 10/10, validation error 4.400000 %\n", "*** iter 939 / patience 10000\n", " epoch 94, minibatch 10/10, test error of best model 2.800000 %\n", "epoch 95, minibatch 10/10, validation error 4.400000 %\n", "epoch 96, minibatch 10/10, validation error 4.400000 %\n", "epoch 97, minibatch 10/10, validation error 4.400000 %\n", "epoch 98, minibatch 10/10, validation error 4.400000 %\n", "epoch 99, minibatch 10/10, validation error 4.400000 %\n", "epoch 100, minibatch 10/10, validation error 4.400000 %\n", "epoch 101, minibatch 10/10, validation error 4.400000 %\n", "epoch 102, minibatch 10/10, validation error 4.400000 %\n", "epoch 103, minibatch 10/10, validation error 4.400000 %\n", "epoch 104, minibatch 10/10, validation error 4.400000 %\n", "epoch 105, minibatch 10/10, validation error 4.400000 %\n", "epoch 106, minibatch 10/10, validation error 4.400000 %\n", "epoch 107, minibatch 10/10, validation error 4.200000 %\n", "*** iter 1069 / patience 10000\n", " epoch 107, minibatch 10/10, test error of best model 2.400000 %\n", "epoch 108, minibatch 10/10, validation error 4.200000 %\n", "epoch 109, minibatch 10/10, validation error 4.200000 %\n", "epoch 110, minibatch 10/10, validation error 4.200000 %\n", "epoch 111, minibatch 10/10, validation error 4.200000 %\n", "epoch 112, minibatch 10/10, validation error 4.200000 %\n", "epoch 113, minibatch 10/10, validation error 4.200000 %\n", "epoch 114, minibatch 10/10, validation error 4.200000 %\n", "epoch 115, minibatch 10/10, validation error 4.200000 %\n", "epoch 116, minibatch 10/10, validation error 4.200000 %\n", "epoch 117, minibatch 10/10, validation error 4.200000 %\n", "epoch 118, minibatch 10/10, validation error 4.200000 %\n", "epoch 119, minibatch 10/10, validation error 4.200000 %\n", "epoch 120, minibatch 10/10, validation error 4.200000 %\n", "epoch 121, minibatch 10/10, validation error 4.200000 %\n", "epoch 122, minibatch 10/10, validation error 4.200000 %\n", "epoch 123, minibatch 10/10, validation error 4.200000 %\n", "epoch 124, minibatch 10/10, validation error 4.200000 %\n", "epoch 125, minibatch 10/10, validation error 4.200000 %\n", "epoch 126, minibatch 10/10, validation error 4.200000 %\n", "epoch 127, minibatch 10/10, validation error 4.200000 %\n", "epoch 128, minibatch 10/10, validation error 4.200000 %\n", "epoch 129, minibatch 10/10, validation error 4.200000 %\n", "epoch 130, minibatch 10/10, validation error 4.000000 %\n", "*** iter 1299 / patience 10000\n", " epoch 130, minibatch 10/10, test error of best model 2.200000 %\n", "epoch 131, minibatch 10/10, validation error 4.000000 %\n", "epoch 132, minibatch 10/10, validation error 4.000000 %\n", "epoch 133, minibatch 10/10, validation error 4.000000 %\n", "epoch 134, minibatch 10/10, validation error 4.000000 %\n", "epoch 135, minibatch 10/10, validation error 4.000000 %\n", "epoch 136, minibatch 10/10, validation error 4.000000 %\n", "epoch 137, minibatch 10/10, validation error 4.000000 %\n", "epoch 138, minibatch 10/10, validation error 4.000000 %\n", "epoch 139, minibatch 10/10, validation error 4.000000 %\n", "epoch 140, minibatch 10/10, validation error 4.000000 %\n", "epoch 141, minibatch 10/10, validation error 4.000000 %\n", "epoch 142, minibatch 10/10, validation error 4.000000 %\n", "epoch 143, minibatch 10/10, validation error 4.000000 %\n", "epoch 144, minibatch 10/10, validation error 4.000000 %\n", "epoch 145, minibatch 10/10, validation error 4.000000 %\n", "epoch 146, minibatch 10/10, validation error 4.000000 %\n", "epoch 147, minibatch 10/10, validation error 4.000000 %\n", "epoch 148, minibatch 10/10, validation error 4.000000 %\n", "epoch 149, minibatch 10/10, validation error 4.000000 %\n", "epoch 150, minibatch 10/10, validation error 4.000000 %\n", "epoch 151, minibatch 10/10, validation error 4.000000 %\n", "epoch 152, minibatch 10/10, validation error 4.000000 %\n", "epoch 153, minibatch 10/10, validation error 3.800000 %\n", "*** iter 1529 / patience 10000\n", " epoch 153, minibatch 10/10, test error of best model 2.000000 %\n", "epoch 154, minibatch 10/10, validation error 3.800000 %\n", "epoch 155, minibatch 10/10, validation error 3.800000 %\n", "epoch 156, minibatch 10/10, validation error 3.800000 %\n", "epoch 157, minibatch 10/10, validation error 3.800000 %\n", "epoch 158, minibatch 10/10, validation error 3.800000 %\n", "epoch 159, minibatch 10/10, validation error 3.800000 %\n", "epoch 160, minibatch 10/10, validation error 3.800000 %\n", "epoch 161, minibatch 10/10, validation error 3.800000 %\n", "epoch 162, minibatch 10/10, validation error 3.800000 %\n", "epoch 163, minibatch 10/10, validation error 3.800000 %\n", "epoch 164, minibatch 10/10, validation error 3.800000 %\n", "epoch 165, minibatch 10/10, validation error 3.800000 %\n", "epoch 166, minibatch 10/10, validation error 3.800000 %\n", "epoch 167, minibatch 10/10, validation error 3.800000 %\n", "epoch 168, minibatch 10/10, validation error 3.800000 %\n", "epoch 169, minibatch 10/10, validation error 3.800000 %\n", "epoch 170, minibatch 10/10, validation error 3.800000 %\n", "epoch 171, minibatch 10/10, validation error 3.800000 %\n", "epoch 172, minibatch 10/10, validation error 3.800000 %\n", "epoch 173, minibatch 10/10, validation error 3.800000 %\n", "epoch 174, minibatch 10/10, validation error 3.800000 %\n", "epoch 175, minibatch 10/10, validation error 3.800000 %\n", "epoch 176, minibatch 10/10, validation error 3.800000 %\n", "epoch 177, minibatch 10/10, validation error 3.800000 %\n", "epoch 178, minibatch 10/10, validation error 3.800000 %\n", "epoch 179, minibatch 10/10, validation error 3.800000 %\n", "epoch 180, minibatch 10/10, validation error 3.800000 %\n", "epoch 181, minibatch 10/10, validation error 3.800000 %\n", "epoch 182, minibatch 10/10, validation error 3.800000 %\n", "epoch 183, minibatch 10/10, validation error 3.800000 %\n", "epoch 184, minibatch 10/10, validation error 3.800000 %\n", "epoch 185, minibatch 10/10, validation error 3.800000 %\n", "epoch 186, minibatch 10/10, validation error 3.800000 %\n", "epoch 187, minibatch 10/10, validation error 3.800000 %\n", "epoch 188, minibatch 10/10, validation error 3.800000 %\n", "epoch 189, minibatch 10/10, validation error 3.800000 %\n", "epoch 190, minibatch 10/10, validation error 3.600000 %\n", "*** iter 1899 / patience 10000\n", " epoch 190, minibatch 10/10, test error of best model 2.000000 %\n", "epoch 191, minibatch 10/10, validation error 3.600000 %\n", "epoch 192, minibatch 10/10, validation error 3.600000 %\n", "epoch 193, minibatch 10/10, validation error 3.600000 %\n", "epoch 194, minibatch 10/10, validation error 3.600000 %\n", "epoch 195, minibatch 10/10, validation error 3.600000 %\n", "epoch 196, minibatch 10/10, validation error 3.600000 %\n", "epoch 197, minibatch 10/10, validation error 3.600000 %\n", "epoch 198, minibatch 10/10, validation error 3.600000 %\n", "epoch 199, minibatch 10/10, validation error 3.600000 %\n", "epoch 200, minibatch 10/10, validation error 3.600000 %\n", "Optimization complete.\n", "Best validation score of 3.600000 % obtained at iteration 1900, with test performance 2.000000 %\n", "Ran for 41.04m\n" ] } ], "source": [ "# 以下を実行するとCNNを計算します。1/10のmini_mnist.pkl.gzデータで約2時間かかりました。\n", "# さくらのVPSではこの計算を解放できないので、計算結果で読みすすめてください。\n", "evaluate_lenet5(dataset=\"data/mini_mnist.pkl.gz\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

フィルタの可視化

\n", "\t

\n", "\t\tTheanoによる畳み込みニューラルネットワークの実装 (1)\n", "\t\tのフィルタの可視化を使って最初のフィルタを可視化してみました。\t\t\n", "\t

\n", "\t

\n", "\t\t当たり前かもしれませんが、\n", "\t\tTheanoによる畳み込みニューラルネットワークの実装 (1)\n", "\t\tと同じ結果が得られました。\n", "\t

\n", "\t

\n", "\t\t各フィルタの形を見ると数字を特徴付ける形の断片のようにも思われますが、ややシャープさに欠けるように思います。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def visualize_filter(layer):\n", " \"\"\"引数に指定されたLeNetConvPoolLayerのフィルタを描画する\"\"\"\n", " W = layer.W.get_value()\n", " n_filters, n_channels, h, w = W.shape\n", " plt.figure()\n", " pos = 1\n", " for f in range(n_filters):\n", " for c in range(n_channels):\n", " plt.subplot(n_channels, n_filters, pos)\n", " plt.subplots_adjust(wspace=0.1, hspace=0.1)\n", " plt.imshow(W[f, c], cmap=plt.cm.gray_r)\n", " plt.axis('off')\n", " pos += 1" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 保存したモデルのロード\n", "classifiers = pickle.load(gzip.open(\"data/model.pkl.gz\"))\n", "(layer0_input, layer0, layer1, layer2_input, layer2, layer3) = classifiers" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nMf4fPZzmO+PKWJkAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 最初の畳み込み層のフィルタの可視化\n", "# layer0のフィルタの可視化\n", "visualize_filter(layer0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

テストデータの予測

\n", "\t

\n", "\t\t畳み込みニューラルネットの練習用データから求まったモデルを使って、\n", "\t\tテスト用データを予測してみましょう。\n", "\t

\n", "\t

\n", "\t\tmini_mnist.pkl.gzからテスト用の画像データを読み込み、batch_sizeはCNNの計算と同じ500として、\n", "\t\tモデルの入力layer0_inputとLogisticRegressionの0〜9の数字に対する確率p_y_given_xを返す\n", "\t\t関数predict_modelを定義し、テストデータの最初の500サンプルに対して結果を求めます。\n", "\t\t

\n",
    "predict_model = theano.function(\n",
    "    [layer0_input],\n",
    "    layer3.p_y_given_x,\n",
    ")\t\t\t\n",
    "\t\t
\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# テストデータの読み込み\n", "f = gzip.open(\"data/mini_mnist.pkl.gz\", 'rb')\n", "(_, _, test_set) = pickle.load(f)\n", "f.close() \n", "test_set_x = test_set[0]" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# テストデータを使って求まったモデルの認識率を試す\n", "# 分析に使ったのと同じbatch_sizeで計算する必要がある\n", "batch_size = 500\n", "# compile a predictor function\n", "index = T.lscalar()\n", "\n", "predict_model = theano.function(\n", " [layer0_input],\n", " layer3.p_y_given_x,\n", ")\n", "\n", "predicted_values = predict_model(\n", " test_set_x[:batch_size].reshape((batch_size, 1, 28, 28))\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

\n", "\t\tロジスティック回帰の結果は、\n", "\t\t

\n",
    "['(7, 0.988)', '(2, 0.733)', '(1, 0.951)', '(0, 0.995)', '(4, 0.936)',\n",
    "'(1, 0.979)', '(4, 0.957)', '(9, 0.912)', '(6, 0.912)', '(9, 0.844)',\n",
    "'(0, 0.904)', '(6, 0.668)', '(9, 0.917)', '(0, 0.983)', '(1, 0.991)',\n",
    "'(5, 0.832)', '(9, 0.790)', '(7, 0.986)', '(3, 0.659)', '(4, 0.979)',\n",
    "'(9, 0.775)', '(6, 0.952)', '(6, 0.801)', '(5, 0.955)', '(4, 0.862)']\t\t\t\n",
    "\t\t
\n", "\t\t多層回帰の結果は、\n", "\t\t
\n",
    "['(7, 0.999)', '(2, 0.780)', '(1, 0.991)', '(0, 0.999)', '(4, 0.993)',\n",
    "'(1, 0.998)', '(4, 0.995)', '(9, 0.999)', '(6, 0.995)', '(9, 0.982)',\n",
    "'(0, 0.996)', '(6, 0.994)', '(9, 0.996)', '(0, 0.993)', '(1, 1.000)',\n",
    "'(5, 0.974)', '(9, 0.995)', '(7, 0.998)', '(3, 0.980)', '(4, 1.000)',\n",
    "'(9, 0.911)', '(6, 0.905)', '(6, 0.933)', '(5, 1.000)', '(4, 0.994)']\t\t\t\n",
    "\t\t
\n", "\t\tであることから、CNNではかなり認識率が良くなっているように思えます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "予測計算終了\n", "['(7, 1.000)', '(2, 0.999)', '(1, 1.000)', '(0, 0.998)', '(4, 1.000)', '(1, 1.000)', '(4, 1.000)', '(9, 0.999)', '(5, 0.985)', '(9, 0.995)', '(0, 1.000)', '(6, 1.000)', '(9, 1.000)', '(0, 1.000)', '(1, 1.000)', '(5, 0.997)', '(9, 0.999)', '(7, 1.000)', '(3, 0.976)', '(4, 1.000)', '(9, 0.995)', '(6, 0.992)', '(6, 0.999)', '(5, 1.000)', '(4, 1.000)']\n" ] } ], "source": [ "print('予測計算終了')\n", "print([\"(%d, %.3f)\" % (np.argmax(vals), max(vals)) for vals in predicted_values[0:25]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

\n", "\t\t同様にlayer0の出力画像も求めることができます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# テストデータのlayer0の出力画像を計算する\n", "filter0_model = theano.function(\n", " [layer0_input],\n", " layer0.output,\n", ")\n", "\n", "filter0_images = filter0_model(\n", " test_set_x[:batch_size].reshape((batch_size, 1, 28, 28))\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

\n", "\t\tテストデータの最初の7をフィルタリングした結果は、以下の様になりました。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(500, 20, 12, 12)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# LeNetConvPoolLayerの出力画像を可視化\n", "# layer0\n", "print filter0_images.shape\n", "plt.figure()\n", "for i in range(20):\n", " plt.subplot(4, 5, i + 1)\n", " plt.axis('off')\n", " plt.imshow(filter0_images[0, i], cmap=plt.cm.gray_r)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 }