{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Title: Active Contours\n", "Author: Thomas Breuel\n", "Institution: UniKL" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "\n", "from scipy.ndimage import filters\n", "gray()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Active Contours" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The idea behind snakes or active contour segmentation is the following:\n", "\n", "- start with a contour that represents an approximation of the segmentation\n", "- deform the contour slightly in order to improve the segmentation\n", "\n", "Deformation of the contour may be done by a number of criteria:\n", "\n", "- make the contour conform closer to edges in the image\n", "- make the inside and outside of the regions more homogeneous" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# GVF Snakes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's illustrate another image segmentation method with a really simple example (of course, we could solve this one just by thresholding)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n3W5HOBwGAIRCIdhsNgA3nmMgEIDL5dqQY7yVarWKxx9/HE899RQeffRRAOI/JwAwGAx4+OGHcfbs\nWdGez4cffojXX38d3d3dOHLkCN555x089dRToj0fxul0AgCsVisee+wxTExMiPac3G433G43vvjF\nLwIAnnjiCZw7dw4Oh2NDzmddg3zPnj2Ynp7G7OwsKpUKXn31VRw6dGg9D2HVHDp0CCdOnAAAnDhx\ngofhoUOH8Morr6BSqcDn82F6eppfod8sBEHA008/jeHhYXzrW9/i94v1nGKxGJ8dUCwW8dZbb2Fs\nbEy05/PCCy/A7/fD5/PhlVdewR//8R/jP//zP0V7PgBQKBSQzWYBAPl8HqdOncKuXbtEe04OhwMd\nHR2YmpoCALz99tsYGRnBI488sjHns2rV9jv0P//zP8LAwIDQ29srvPDCC+v98Cvyla98RXA6nYJc\nLhfcbrfw85//XIjH48KBAweE/v5+4eDBg0IymeTf/0//9E9Cb2+vMDg4KLz55psbeOTLO336tCCR\nSITR0VFh9+7dwu7du4U33nhDtOd04cIFYWxsTBgdHRV27dol/PM//7MgCIJoz6fZu+++y2etiPl8\nZmZmhNHRUWF0dFQYGRnh730xn9Pk5KSwZ88e4Z577hEee+wxIZVKbdj5SASB1ssTQoiY0cpOQggR\nOQpyQggROQpyQggROQpyQggROQpyQggROQpyQggRuf8DYI2BAbuogFMAAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "blob = mean(imread(\"blob.png\"),2)\n", "imshow(blob)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We actually perform the segmentation on the edge image. Snake based segmentation works even if the edges do not form a closed contour.\n", "\n" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ne63r9710PP/5n/8Jm82GmZmZ9yzV7aXjYbz55ps4d+4cfvazn+F73/se3njjja7f99Ixra+v4+zZ\ns/jCF76As2fPQq1W4/Tp01332cnj2VEhd7vdCIVC/OdQKNT1KfX/27dj1dShOI7jP4fOTrWRxqGE\nVmhIYyC+gOIkhgYd2iFTX6AvYYY+REG6xNVBRUUEwUFQxNFAU6jQDi0tiBbi8O90w4V7uVwupd4D\n/88YAjnfIf8hOUckBwcHeH5+BgA8PT0hkUgA+LVxuVzi8PBwJ2v8k+12i3K5DMdxcH5+DkD8JgCI\nx+MoFouYTCbC9oxGIzQaDRwdHeHy8hL9fh+O4wjb80MymQQA7O/vw7ZtjMdjYZtkWYYsy8hmswCA\nSqWC6XQKSZJ20vOtg9w0Tfi+j4eHB4RhiHq9DsuyvnMJX8ayLNRqNQBArVaLhqFlWfA8D2EYIggC\n+L4f/aH/XxARrq6ucHp6iuvr6+i6qE0vLy/R7oCPjw90u10YhiFsj+u6eHx8RBAE8DwPuVwOd3d3\nwvYAwGazwWq1AgCs12t0Oh1omiZskyRJSKVSWCwWAIBerwdVVVEqlXbT82Vf2/9Ss9mkk5MTUhSF\nXNf97sf/k4uLC0omk7S3t0eyLNPt7S29vr5SPp+n4+NjKhQK9Pb2Ft1frVZJURRKp9PUbrd3uPLf\nGw6HFIvFSNd1ymQylMlkqNVqCds0n8/JMAzSdZ00TaObmxsiImF7fjYYDKJdKyL33N/fk67rpOs6\nqaoavfsiN81mMzJNk87Ozsi2bXp/f99ZT4yIz8szxpjI+GQnY4wJjgc5Y4wJjgc5Y4wJjgc5Y4wJ\njgc5Y4wJjgc5Y4wJ7hPuR3wZlti80gAAAABJRU5ErkJggg==\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = filters.gaussian_gradient_magnitude(blob,2.0)\n", "imshow(f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we compute the gradients of the edges. These gradients point towards the center of the edge.\n", "\n" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nB+cAAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fx = filters.gaussian_filter(f,2.0,(1,0))\n", "fy = filters.gaussian_filter(f,2.0,(0,1))\n", "imshow(fx)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Gradient Vector Flow" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(getting long range flow information)\n", "\n", "These gradients are very short-range. But we will want to use them to draw a curve towards the center of the edges.\n", "\n", "In order to do this, we need to propagate or spread out the gradients.\n", "\n", "The GVF approach accomplishes this by using generalized diffusion." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(interpolating missing gradient information)\n", "\n", "The starting point is the derivatives $g = (f_x,f_y)$.\n", "\n", "We want a spread out vector field $\\phi = (u,v)$ that agrees with $g$ where $g$ is large and interpolates elsewhere.\n", "\n", "$$ E = \\int \\mu(u_x^2+u_y^2+v_x^2+v_y^2)~+~|g|^2~|\\phi-g|^2 dx dy $$\n", "\n", "Here, the first term is a smoothness term.\n", "\n", "The second term is the difference between $\\phi$ and $g$ scaled by the magnitude of $g$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(iterative solution by diffusion)\n", "\n", "This can be solved using a diffusion equation (that can be formally shown using the calculus of variations).\n", "\n", "This gives rise to the following Euler equations:\n", "\n", "$$ \\mu \\nabla^2 u - (u-f_x) |g|^2 = 0 $$\n", "$$ \\mu \\nabla^2 v - (v-f_y) |g|^2 = 0 $$\n", "\n", "These equations can be solved iteratively by diffusion:\n", "\n", "$$ u_t = \\mu \\nabla^2 u - (u-f_x) |g|^2 $$\n", "$$ v_t = \\mu \\nabla^2 v - (v-f_y) |g|^2 $$" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": false }, "outputs": [], "source": [ "u = fx.copy()\n", "v = fy.copy()\n", "mu = 0.1\n", "for i in range(10000):\n", " m = (fx**2+fy**2)\n", " ut = mu*filters.laplace(u)-(u-fx)*m\n", " vt = mu*filters.laplace(v)-(v-fy)*m\n", " u += ut\n", " v += vt" ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAB9CAYAAAC/BehoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztXXlwHFV+/nouzWh0XzOSRvdly5ZlGxObXSgOI7MkixcK\nQhYScHFspaAqVcQUYbdSXKkKNklIAiSporIm8dZWwcJWGTuAvcbYxlewwQcyFrZuWceMpBlpJM1I\nmrPzh/Kap6fXPSNpRpqR+6vqmp6entevX7/++tff7/d+TxBFUYQKFSpUqEhaaJa7AipUqFChYnFQ\niVyFChUqkhwqkatQoUJFkkMlchUqVKhIcqhErkKFChVJDpXIVahQoSLJERciP3ToEFatWoWamhq8\n8cYb8TiEChVLDrVfq0hUCLGOIw+FQqirq8ORI0dQXFyMm2++Ge+//z5Wr14dy8OoULGkUPu1ikRG\nzC3yc+fOobq6GuXl5dDr9fj5z3+O/fv3x/owKlQsKdR+rSKREXMi7+/vR0lJifTdZrOhv78/1odR\noWJJofZrFYkMXawLFAQhJvuoULEYxDrzhNqvVSQKeH075kReXFyM3t5e6Xtvby9sNtuc/V555ZVY\nH1rC8ePHcccddyRl+clc90Qp/7XXXov5caPt13fffTeamppifnwA+Pzzz+eULffwoLeTdfqTXRcE\nAQcPHsQf//EfQ6vVQhAEaDQa6bdI62xZPHz00Ud46KGHAMyQEVnC4fCcbewSDodltxN89tln+MlP\nfjKrLLLO+2TXed8J6LaPR3oq3rXl4cUXX+Ruj7m0smnTJrS1taG7uxt+vx+/+93vsH379lgfRoWK\nJUUi9uvFvgHQxEvK0mg0s8pm91EidLKw39nt7O9arXbOdt5x5bbz2oR9WPE+eW2YrG9eMbfIdTod\n/u3f/g333HMPQqEQnnrqKdWzryLpkUz9OlprnPc/lmx55AtAstpZQo1UPtmPZ10LgiBZ2RqNZo7F\nDYC7XavVSt/JsUl59Drvk/yHtrLp/ym1cSIljo05kQPAvffei3vvvTceRUeF8vLypC0/meu+EspX\nQjT9urKyMm7Hp8uej6Qi9xu71NbWylrgNHHzLGyedc9i3bp10Gq1syQOnnQiCIL0nV6n9yWEThaN\nRoPa2lrFtiHHpMmc3ca2F9nGu66xJPPF9pu4EPlyI5nJJJnrvhLKXyyqqqriXvZ8X+0jETgwY+nW\n1dXJSiOEzHm/88rj1bGxsVFaZwmctrRpYg2FQpLFzSN6elm1ahXXileCHLHT7SWKoux1jcZ6jwaL\n7TcrkshVqFipUCLxaCQVHumyzk05EidEziNxOUKnQVvicgSu0WgQDoe5EggAWUudJm+6zFhY58kg\ntahErkJFkiAWJM6CJWCeE5L9zm6fD5HLRaOEQiEAkGSTcDgsS+jRSjC05h4NorXOla7BcpH5ooi8\nvLwcGRkZ0Gq10Ov1OHfuHEZGRvBnf/Zn6OnpQXl5OT788ENkZWXFqr4qVMQdidivF0vi9O9yWjdL\n2mQ7bY3LkTldllx95Yg8HA5L8glZaDJnCZ1sYwmcdwy6LHLebPghzxHK/sa2rxxhx0pqmS8WFX4o\nCAKOHz+Oixcv4ty5cwCA3bt3o6mpCa2trdi6dSt2794dk4qqULFUSLR+HQsSl3Ni8tbJd51OJ5G4\nVquFTqeDXq+ftRgMBhgMhjnbUlJSZi30NnZ/vV4PnU4nLeQ7OSZZ6HqQ7/SDRu5NgX7wsG2h5KyV\nexhGuibR/B5rLFpaYZ88Bw4cwJdffgkA2LFjB+644w6VzFUkHRKlXy+GxOnfeItcHLhGo4FOp5MI\nkCZVmkxZa50uk60DT06hLe5QKDTrO88qZy10cjx2G62Ps3ILqQupH89yVgpTZP9Pf5e7PkthnS+K\nyAVBwN133w2tVou//Mu/xC9+8QsMDg7CYrEAACwWCwYHB2NSURUqlgrJ0K+jIfH5EjiRU2hLl5A3\nayXTn3IOUBo8OYVdQqEQl9DliJ7W1zUaDUKhkETe7CdPV6edodHo20px58utnS+KyE+fPo3CwkIM\nDw+jqakJq1atmvW7nNMDmBlqTVBeXo7yBA8rU5G46O7uRnd3d8zKW0y//vzzz6X1ysrKRYWVyR2D\nR+Lsdzm5gOec5IUY0nIFLX3Q6zwyZ8smYEmcEDNN0DSRs9sJUctZ5/Qn3Rbs8H86Bp223tk2VCJe\nnjM0Gut8IWTe0dGBzs7OiPstisgLCwsBAPn5+XjggQdw7tw5WCwWOBwOWK1W2O12FBQUcP97Rxzz\ncai4scAaAkQCWSgW069jlWdlviSupIeT7bzRmKxFzjo2aQLn6do8Ryh7XJ41TkibLMFgEFqtVvpO\nJJNgMCits2RO70e+k+PSIz1pK5xXHyVnKIGS3BKtdb4QMq+qqpplDBw5coS734KdnZOTk5iYmAAA\neL1eHD58GA0NDdi+fTv27t0LANi7dy/uv//+hR5iRYK9icjNkpKSAqPRCKPRCIPBIGmQStafitgj\nEfp1vEmcJ4XwNHLW4cg6Mkl/NRqNSE1Nhclk4i6pqamzfif/4TlE6YUcT6/XS28G5DvrFGU1fLKQ\ntww5CSiSM1SuPeXWla4fb99YYcEW+eDgIB544AEAQDAYxJ//+Z9j27Zt2LRpEx5++GHs2bMH5f8f\npnUjg36l1Wg00g1Ad3DSqcnwZZ/PB6/Xi7GxMYyNjcHr9SIQCMxy2KiID5a7X8eDxKOJUKE/6dBD\nYlCwJE5HntDWPFsuOwiIWNnsQlvj0VjotHVOLG6yTlvmcnKLXLgi2Ub2jUZi4e0fL6lFDgsm8oqK\nCly6dGnO9pycHFnz/0YCsQQMBgPS0tKQnZ2NvLw8ZGdnIyMjAykpKRAEAYFAAH6/Hz6fD4FAAACQ\nmZmJlJQUaDQaeL1eDAwMoK+vDyMjI/D7/SqZxxGJ3q8Xa4mTfknvxyNg2oqlpZWUlBSYTCaJzAnR\n06MpA4EAAoEAfD4f/H6/ZIRoNJo51jY5DiFvQtz0NvKgYJ2arIOTDCrikTlNrKymTuvk5DyiGRlK\nl0evx1NqkYM6sjPGEISZ+NuMjAxYrVbYbDbk5+dDr9djYmICDocDly9fRl9fHxwOB4aHhzE+Po7p\n6WkEg0HodDqYTCZYLBZUV1dj7dq1qKysRElJCXp6etDd3Y2xsTGEQiGV0FcYorHG6W2LIXGePq4k\nsxCjhJZRtFotAoEA3G63tIyNjWFiYgJerxeTk5Pw+/0SwZK+nZmZiZycHOTn5yM3N1d6G9VqtbPI\nnJA4bZXT9aW30evs/1jrnOcgJaTKRrjQhB6tdc5a40tB5iqRxxCCICA1NRU2mw3V1dXIysrCyMgI\nTp06hebmZly7dg12ux1er1dystCvqeTGmJycRH9/P86dO4eMjAw0NDTgzjvvxLp161BYWIhr166h\nv78fU1NTKpmvEMxHUlmMJs4janY7T5YhhG4wGAAAw8PDGBoagt1ux/DwMJxOpyQDTk9PSyRK152U\nr9frkZaWhvz8fJSUlKC8vBxFRUUSoRMyp8lYzjqn60eTNntsdpELUaTX2ZBFurxIDlF2v1hLKSxU\nIo8RBEGAyWRCSUkJSkpKYLfb8cEHH+Crr76C3W6HRqNBRkYGsrOzUV5ejrS0NEkbpx2bwIw26/P5\nMDY2hqGhIZw7dw7Nzc245ZZbsH37dmzevBmdnZ24evUq3G73vLK9qUg8zJfE6W3zIXEekbOhg+xD\ngo7+EEURTqcTDocDPT09uH79OkZHRzE1NSXp1azOzDuf6elp6e20o6MDxcXFqK2txZo1a1BQUCAZ\nNLR1TVverHXOkjivzeTInNRVjsxZySXSvbYQMo8FyUck8ieffBKffvopCgoKcPnyZQBQzDuxa9cu\nvPfee9BqtXj77bexbdu2RVUwGUDklKysLJjNZnz33Xc4fPgwOjo6YDabsX79euTk5CAtLU3SFemb\njZRBQCyB3NxcFBUVYXR0FD09PTh8+DDOnz+PBx98ENu2bUNmZiYuXLgAp9M56yZSERmJ3q+VSFyO\nmABlEleyyMlCH4f0p1AohEAggMHBQTgcDnR1dWFoaAiTk5MIBoOzyJ78jyYn1uFJ1kOhELxeL4aG\nhtDZ2Ymenh5s3LgRq1atQkpKCgKBgCQH8Sxz9rzYNiNWeTAYnNO29MIbCcrWW846j4RI4Yp0nRZz\n/0YMP3ziiSdw6NChWdvk8k60tLTgd7/7HVpaWnDo0CE8++yzN4y1SF477XY7zp07B4/Hg7Vr12Lz\n5s1YvXo1ioqKkJmZidTUVMnJIxdeSL/KpqWloaioCOvXr8dNN92EQCCAd999F//6r/+KUCiELVu2\noKioCDqdjmvZsTe6ihkkSr+e73WR6y/A3OgUHtmx4Xk8kgd+IN1gMAi/34+xsTHY7Xb09vZiYmIC\ngiDMGRwk158BzBqJycaR+/1+2O12nDhxAh9//DGOHTuGkZER6Z6iHaRkm1woIhuSKBeWyPuNfkOJ\nlOmRjfbhvc3wPpWu+WLu0YhEfttttyE7O3vWtgMHDmDHjh0AZvJOfPzxxwCA/fv345FHHoFer0d5\neTmqq6ulpEMrHRqNBpOTk7Db7QgGgygvL0dJSQnS09OlEK2FXiitVou0tDSUlZVhy5YtqKmpwenT\np/FP//RPcLvduPPOO7FmzRpkZGRIWrvBYJBCHM1mM0wm06LrsZKQyP1aSR6gt7NadiSLmzdqUy6+\nmljMgUAAU1NTUigsccjLkThL5mxYHztEnx7J6fV6cfnyZezfvx+ffPIJ+vv7pb7Mhj3Sn/R2NsEW\nL9HWfBaltxf6DUaJzJWuq9K1nw8WpJHL5Z0YGBjAli1bpP1sNhv6+/sXVLFkg9/vl0Kv8vLypA4W\nSxD5ZvXq1UhPT0dzczP+9m//Fs899xx+8pOfYHx8HJ2dnRgfH4der0dqair0ej3C4TCmpqbgdrsx\nPDwMt9st1VfFD1jqfh3ppo1WF49kidOExLMwWZmPgCZZElVFSJHNi0JImmjVdPQG3c9oMqfXaeu8\nvb0d/f396OnpwT333IMNGzYgNTV1jvxAyy70mwRbPi1rEGmEtBUvORcrhdC/k2OQ/xEJh3ct5xvB\nshgs2tkZ6bVd7reVlGtFFEVMT08jHA7DaDQiLS0NgUAgbrq1yWRCeXk5jEYjvvnmGzz77LO4/fbb\n8eSTT+KWW26BTqeDy+WC0+mEx+OBKIowmUzIyclBcXEx+vr6pFfklUDmsc61Aiy8Xy8214qSpcbT\nyOdrhbO/yVnR9OAdv98Pv98vWcc8nVopXwlZZ+8F3kAc8hYwMjKCzs5OnD17Fj/+8Y+xadMmlJSU\nQKPRSGMuiLxDRouShww9XJ+2mgmx0sRMtrNkzg40otudJXStVit7H/HInNdGctvjmmtFLu9EcXEx\nent7pf36+vpQXFzMLeOOFZRrRRRF+P1+TE1NwWg0Ij8/H5OTk3GN99br9SgqKsKdd96J1tZWnDlz\nBvv370dOTg5sNhvMZrN0Y+j1euTk5KCurg4bNmyAzWaDTqdDZ2cnJiYmkt5JyhoCC821Eot+Hetc\nK3Kv53KkHklK4VnorOOPJtdQKASfzycRo16vlyJKlKQeNq6aN1hG6dw1Gg0CgQDOnz+Pc+fOIT8/\nH+Xl5bBarcjKypJGRZNIsPz8fBQUFCAjI2NWe9BlssRNP7Bo4mfztsgRMesUVSJzUodonZ8Ecc21\nIpd3Yvv27fjggw/g9/vR1dWFtrY2/NEf/dFCDpFUIBfD6/VieHgYer0epaWlyM/Pl0ZoxkOX1mq1\nyMzMxPr16/Gnf/qneOCBB1BTU4NgMChZ20ajERqNBoODgzh69Cjef/99nDt3Thp0ZDAYVM38/7GU\n/ZrX5pGscZ4uriS18PRw3gQOdBIs9pMQHhmhST8IaNDEFM05sedFvpPyiY8nPT0dBoMBLpcLzc3N\nOHv2LM6fP4/vv/8e7e3tuHbtGr777jt8++23+P7779Hf3z9n9DN5aNHnzi70+fIcpKxTVMkBKrfQ\n7RGtrBYtIlrkjzzyCL788ks4nU6UlJTg7/7u7/DLX/6Sm3eivr4eDz/8MOrr66HT6fAf//EfNwxJ\nGAwGaDQa9Pb2QqfTYcuWLSguLoZOp4PT6YTP5wMQ+yTzgiDAYDAgJycHWVlZqKmpkbRLAlGcyd8y\nOjqK4eFhnD59GjqdDjabDWlpaRgdHU16q3y+SIZ+HckhJmeJC8Lc2X3kojd44Xv0cPdgMAiDwSAN\n9CGWLT0Ck7x1sno08INlzqszsYyJ1k1kChKZIooitFotjEYjwuGwNDKU/BYMBiVnrMvlQiAQkMIh\nMzMzZ7WZVquV1um6ss5XNr8Lb3QoOQ/6HqN1d1oz57UH73ou9v4TxGW4gwVBwCuvvLLUh40paOsh\nNTUVaWlp0Ov1GBoaQnd3N0RRhNVqhdlsnpVvYjkIkxyXDKceGhpCYWEhbr75ZgQCATgcjjmxtsmM\n1157bVnaWRAEvPHGG1Htp7SdJT1AeZJkWiaRI25eDnE5Mqe1ajJ4x+l0wul0SrHj9MJqywB/fk5C\n+GzECimHEDHR5EnOFvJQoS11OpMiPZVcZmYmysrKYLPZpDQCdFQNAY/IlXKjs3nS5XKjE78Y+3Dj\n+QN4nyzY7S+++CJ3X3Vk5zxBrAeTySQN2LFYLEhPT4coihgZGUFPTw96enowPDyMsbExpKSkQK/X\nL9vbCblBU1JSkJ2djXA4jImJCQwPD6OgoABGoxFTU1PqoKJlRCQJgreNR+y0gUHLBLxFicxJBBYA\neDwe+Hw+uN1ujI6OznJ0suSoVGdi7dLWMdnOcwRqtVop6gqYeZjRybbIMemsiOPj4xgcHERqaios\nFsscSYS2jFkiJw8lNikXqQ+9zjtP2mnKcwDz2okuZzH3nkrkUYJ0rNTUVFitVlRUVCAvLw/T09Po\n6urClStX0NLSgu7ubkxMTECv1yMvLw9FRUXIy8uDXq9f7lMAMOMkzcjIwPT0NBwOB6qrq5Gfnw+H\nw4GRkRFpuLVK6MuL+ejl9MI6MlmLnNbAeda5IAgIBoNwu90YGBhAb28vent70d/fD5fLhWAwCKPR\nCLPZzE0vEekc5Mic/R/RtGkrn30wkTLIPiRB1+DgoJScy2w2S+fMOkDpAUo0+dJJt0i7BoNBaZ3O\n40IkGJrEWQkmXnIKDZXII4Bc/JSUFFitVlRXVyM3NxeDg4PYv38/zp49i46ODng8Huj1emRmZsJm\nsyEnJweZmZnSsPxE8RUQTV2r1aKlpQVZWVm49957UVVVheHhYXR3d8Nut2NycnLZpKAbGXLWHs9h\nRm+Xk1xYEpebuV6n0yEQCMDpdEpZNq9fvw673Q632y0laDMYDLPkBkKMSmROSIsshAxZMqfrT0sY\n7O+shU2kDELmHo8HoVBIOmeLxTIr6ICuD22Na7VaicRJeCO90HWRA+0ToImd/o2sk3NSuseiJfwF\n5Vp59dVX8etf/xr5+fkAgNdffx333nsvgJWVa0UQBCl0r7q6GsXFxXA6nfjwww9x8uRJDAwMwGAw\nIC8vD6tWrUJmZqaUq1nJUllukDS7AwMD+P3vf48LFy7gxz/+MW6++WYpPLGjowMjIyPw+XxztM+V\ngGTp1zSBs9t4DkSaDHnWOD0hBMn7I4ozybA6OzvR0dGB7u5uuFwuaUITAFL+fNq6Bfj9QSmihacT\n03IOTdaEjNlzp9866GMQ4vf5fNI4iZGREVRVVaGiogJWq1UidNKfyX/ogUXE+qbJXA70+RCrnufg\njSb8cjFWekQif+KJJ/BXf/VXePzxx2cdcOfOndi5c+esfemcFP39/bj77rvR2to658ImAzQaDVJT\nU1FaWorq6mqEQiH84Q9/wOeff47e3l6YzWasWrUKBQUFkqNTLt9JokEQBGRkZKC2thYpKSno7u5G\nW1sbjh49ijvvvBN33XUXmpqa4HK5JMlldHQUExMTcR3otJRYrn4d6/7Bk1d40gptiROfjVarhcfj\nka5/Z2enFGFFSI3sR45FypIzUnjbebo0Tdy0o5AemEO0czbygz4Gq3uTbQDgdDoxMTEhSUQ1NTWo\nq6uDxWKB0WiULHkywIkQN11vehtL6iSqBuCTOGuVRzsgaCGISOS33XYbd9QcrwJyOSno4c2JDkGY\nCd3KyclBTU0NCgoK0Nraik8//RTNzc3Q6/Woq6uD1WpFenq6ZHknGzQajTSwori4GIODg+jv78d/\n//d/44svvsBdd92FLVu2oKKiAlVVVZicnJTSl7pcrqSfqSiR+nW05M4SSTQSC2uRk5wloVAIvb29\naGtrQ2trKxwOh5RHnBA2IVmaSFk9nT0m+7ZAg7VeaUuVHVlJSx88JyrvGIRIyVsGCWkcGhrCyMgI\nurq6cO3aNdTW1qKsrAy5ubkwm82yc+Syx+Idk9STPHR4D1a67vG6Zxaskb/zzjv4zW9+g02bNuHN\nN99EVlbWvHJSJOIQfUGYiewoKipCXV0dRFHEp59+iiNHjsDtdqOoqAglJSXIzMyUrJJkhkajkSZ7\nzszMRGFhIfr7+9HV1YW3334b7733Hurq6lBfX49169ahuroaeXl5UsrRycnJhBjiH8sh+ovt14sd\noh8NeLIKvc5q5XRstk6ng8fjQWdnJ65du4bu7m54PB5JTiAETRMsfVzW2ucNhCH/kSNz8httnQNz\nMyTyQvTkHnqsP4do+XQ4ocPhgN1uR0tLC0pKSlBaWgqbzSZFnpHcSOT4bHvTbU32IQRO2oF1dvKu\nXTQyCwEZoh9p3wUR+TPPPIOXX34ZAPDSSy/h+eefx549e7j7yp3QHQk2RF8QBBiNRpSVlaGqqgp2\nux3/8z//g0uXLsFsNqOhoUEK1Ut2AmdBnLkGgwEZGRkoLS3F8PAwHA4Huru70draii+++AINDQ24\n6667UFFRAa1Wi87OTni93mW3zFlDYKFD9GPRr2M1RF8JkdqbJnZaJxcEAcPDw2hra8O1a9cwODgo\naeBEIyYkRMiJHI8lMzq8EQCX0CPVjZAvLUmQdV7sNfCDJc+2BS2r0NY9bdmTc5yamkJ3d7fk2C0u\nLkZ5eTnKysqQk5MjtRn90KG1c3I8umwlq30xqKqqQmVlpfRdboj+goic5KAAgKeffhr33XcfgPnl\npEgkCMJMJIfNZkNJSQlaWlpw4MAB9Pb2ori4GCUlJVKK2JUM0g4kRLG0tBRTU1MYHR3F0NAQmpub\nYbfb0dTUhLVr18JqtaK3tzfpZRaC5erXSpYmux+7HimyiCbH/v5+tLW1oaOjQ5pZiiZOmlx5b1q0\nfKI0RB1ARKucdXrShM7Wgd6PjXRhyyDnQevrLKHTcfaTk5OSY3R8fByVlZUoKCiYdU70/1iLnJ6t\niD1fpTeSWGNBRG6321FYWAgA2LdvHxoaGgDM5KR49NFHsXPnTqnTJEOuFa1Wi7y8PFitVly9ehWf\nfPIJXC4XamtrUVhYCJPJlPBWeCz1N9qSS0lJQXp6OgoKCuByudDf348TJ05Ap9OhtLQU6enpGBkZ\nWRFEvhT9OlrSjrYsep1nwQIzVqzdbpde0ycnJ7mOOPq/vP7Os8pZbVxOZ+bVnSZh3ohQ+o2AtcqV\nyuSRO/kf/eAhvgNBEDA5OYmenh6pLnl5ebN8AUR7J3UikS40ufP0cznE+n6Zd66V1157DcePH8el\nS5cgCAIqKirw7rvvAkjOXCuCMDNhcn5+Pux2O44dOwav1ys5OhMpBlwOC+lI8ylbp9NJTqGUlBQ4\nHA5cuXIFmZmZyMzMhM/nmzNcO1bHjxcStV/TRM+LciDblRZWGx4ZGZHiwkm+FFrb5VnhvGtHW9s0\nISqRuBKR0+eiVA/2gUWP6uSVx/sffQ68qB5gZk6BgYEBieBzcnKkME0AUtIwURRnpfJltXM5sL/F\n8v644XOt6HQ6WK1WZGRk4Ouvv8b3338Pi8WCgoKCmE8MEU9EumFiBb/fj+HhYUxMTGD9+vX40Y9+\nhKysLAQCAYyPj0s5OcjkFctB5smYa4X3Ss6LgKAJlNap5cIMBUGQoo3Gx8fnaMc8K5b+pOtE14vn\n4GQ1YvY85d4aeVY0b51XL7ny5NqWWNS0Nc2GTGZkZKCiokJ6IzebzRAEAT6fD16vd9YyNTUFn88H\nn88Hv98vGTRsQrGFtDnvfNRcKxwIgiA9cYlHOycnR0o/m0wgF5e+WWjHVayg1+uRlZUFt9uNr776\nCgaDAY2NjcjIyEBhYSHKysowMTGBzs5OKV1BIkS2JDrkJBf62tHXkrZcaTKlddtgMAiv1yslu6J1\nXCUrXMkaVyJznjUe6c2FJwfx6hGJ7OQQzUORgCQKczgc8Hq9GB8fR3l5OSwWC7Kzs6XBfiTjIvkv\nL2mWHHHLkbhS+0QDlcj/PynP0NAQBEFAXl5e0pE4DV7njyUE4YfkW5cvX8Y///M/IxQKwWw2o7Cw\nEI2Njbj11ltRVlYGrVaLjo4OlcwZRNLJye/sfqxOTPYh6+xw9nA4jLGxMXg8Hmkb7QSkJQ1SJnsc\nurxIpA2AqxlHOld2nUfucv+h6xdNnVmnLAE590AgAJ/Ph+HhYbS3tyMjIwP5+fkoLi6GzWaD1WpF\nWlqa9B9eFkQ6vYAcgcude6TzlMMNTeTAzCvW9PQ0xsfHpUmKE10TX27odDrk5+dj06ZNqKiowMTE\nBKampjAxMYEvv/wS165dw9atW7F27VopsdhKiWyJFXhkzurjSrorS9w8hMNhaZg9S9is3g7MdnDK\nyRM86YS29OWklWikPyVLPBooWd/kIcbT8mnNOxwOw2QySWGKXq8XwWAQY2NjsNvtKCkpQXFxsTSd\nI1mInEJnUKTfeuQko/meoxwUQzF6e3ulGdrXrl2Lt99+GwAwMjKCpqYm1NbWYtu2bXC73dJ/du3a\nhZqaGqxatQqHDx9edAXjCXIxvV4vQqEQUlNT5+R2UMEHyUFTVVWFxsZG3HzzzdLcijqdDufPn0db\nW5sUo55oD8dE7dvsDS630HmveUswGMT09DR8Pt8cTZ1kDqS3sVq73EJIkN1GlyMXlqj0nR3AJFcn\n3jZ2ph9AE2GeAAAgAElEQVR25iPipCefvMVoNMJoNEpzC2RlZSE3Nxc5OTlIT0+XJBW73Y7r169j\naGgIk5OTs/Rxkjs9GAxK10hJG2evN3vd5wNF1tLr9fiXf/kXrF+/Hh6PBzfddBOamprwX//1X2hq\nasLf/M3f4I033sDu3buxe/fupMq1QuvHU1NTUqhdohFOIoPc0ACkkYPkRnC73XA4HFKbJlq7JkLf\nVtLFWcuctuZ48gZN8GQh0URs+7OWLx3mx9YD4DstyaecjBJJVlF6G2GPH+n/cro97+FAhxTS500y\nIAaDQakv03mF6P3Hx8chCDMDCEOhkJQ+l0gqsXBqzheKRG61WmG1WgEAaWlpWL16Nfr7+3HgwAFp\n9NyOHTtwxx13YPfu3UmZa4U4OOj8xioWBkGYCVXMzMyUwjbHx8cXZGHEG4nSt+XIkue8Zn+njRFa\nLyev9kTO4iWWotflCIZ1tCqtKxG33G9yjlzecdjtvOPSRM4jcN68m3S7EWuakDgdUkv6MPE9eDwe\nTE9PA8Acy5s9t3gQN4uodYTu7m5cvHgRmzdvxuDgICwWC4CZmccHBwcBIOlyrYiiKHX2lJQUlchj\nAOIMTUtLQzg8MxMRIfh4YbG5VmLZtxeaa0WONFlCoAlPjswIkZEh97y2jxQ5IUcySm9Wcvq40v7z\nAfsAkTtvWg9np7sjsgtN6ABmETmRSejp52jdOxwOz0owBvBHsio91KIFGcQVCVHdXR6PBw8++CDe\neustpKenz6lYpIvLw3LnWiEdmaSpXM6p2FYCSNtptVqYzWZkZmbC5XJJE26kpqbGTWJjDYH55FqJ\ndd+ORa4VJUstGquV1JsdVi5XlpIVqeT05B03mm0LwXxInGeJs5o5m/GQEDVxXpJ5Q0lsOPkkEorX\n64XP55v1kODlm4nmwab0W1VV1SxjYMG5VgKBAB588EE89thjuP/++wHMWCoOhwNWqxV2u13KUZFs\nuVbopPJ6vV6d4owD3g3Dg0ajkXK0WCwWhEIhtLe3w+12Izc3dymrHDWSpW9H82rOI17i2IyWyOW2\nRYtYG0KRJBx2oa1xWg8nmjft7CRZP0n7EI3c5/NJIYh+v1+KuCLHCIVC8Hg8GB0dhd/vl8ojedtZ\npy/AT3dAn4ucvDYfKBK5KIp46qmnUF9fj+eee07avn37duzduxcvvvgi9u7dK90EyZZrhUwNlZqa\nCqPRKL0u3ehkTt8YKSkpkgPTZDJx31zIG43ZbEZaWho8Hg/OnDmD1tZWqZMnmsM7kft2JKmDJls6\nPp91tBHy4kmGctZ4NEQuFw4Za8gROU8XBzCHRHlRLaQ/m81mpKamSr4cMrMQWQwGA6anp6WHA5FZ\nnE4n7HY7xsfHZxl/4XAYer0eovhDbnLinyDXiL4HaN8G264LaUtFIj99+jR++9vfYt26ddiwYQOA\nmRCsX/7yl3j44YexZ88elJeX48MPPwSQfLlWiGc/JSVFih2NZl6+lQxyY2RkZKCkpASVlZVS3Gw4\nHJZCrGiEQiFMT0/D5XLh2rVrOHPmDK5cuQKj0ShNr5VoSLS+HcnqZj/ZJFPsoBTye2pqqqzvRymi\nQsnxuZDzmA/mY4kDc3O/8MicvDESmS8jIwNpaWnQaDSYmpqCx+PB+Pj4rJBCMiR/dHQUTqcTDodD\nSk+h0+mQnp4OvV4vxenLvbHS8g3tYOWROWnDefsPxGUwPwUhMXKtBAIBjI6OwmQyYdWqVfD5fHC7\n3Te0VS4IAtLS0lBfX4+Kigq4XC5cvHgRFy9exMDAAPx+/5z/EMcayT+h0WhQVFSEyspK5OTkLHls\nfqLnWmGxEAuctrx5IwpJ9EVeXt4c7Z/9f6RIi/mQeqR2j9aJGkkTBzCLvOUiVuj8M0ajUfLfkIyQ\nXV1d6OnpkQiaxN7Tg32I1EL8aaSMjIwMpKamSkP3iVRD9HJag6d9FdGMfpUjcjXXCgfkVWdsbAx+\nvx/Z2dnSLNxAfIa4Jzo0mpm5SgHgo48+wu9//3v09vZK0gktrdCvgjqdDmlpaSgtLUVBQQFyc3MV\nrUEVM4iGxCNZ4aL4wyzy5I2JRF4QWYxICCyB88h8vvJKtFEvkSzNSJY4+WQ1cZ6zk/6NtBVxWvb1\n9aGtrQ3nz5/H1atXpVw09MAeEqlCZEOj0Yj09PRZ0zsqvQ0RC5y+V1gZRakt5muV3/BEbjAYpDzb\nhYWFKCgokIbnAjcmmYfDYXR2dkqZIBsbG5GdnR0xpS/7Kqti/pgPiZN12hKnB7YEg0G43W6kp6fD\naDTOSv8qN+qQVwe2frQsAEQe3DNf7ZdnpdJaOI/EeQROkyjRwKenp2G32/H9999jaGgIoihKEzET\nK5qOHSdETrR1o9EoOTbpAUW89uNNRkFLLPS2hcgpNG5oIhcEASaTCTqdDm1tbbBaraivr4der0df\nXx+8Xi+AG4fMyc1Aki1lZWXBZrOtyOntEgHRWrw8OYWQMe1so0cXEut8ZGREGnqemZkpOe4I0ckN\nZFGSUyKtswnSeETPgkdiPD1cjsTZ7SyBkmHzk5OTGB4exuTkJHQ6HUwmk0Tier0efr9/lo+BkDsd\n8UKInK0b237sG1A8/YULyrXy6quvwmazYcOGDdiwYQMOHjwo/SeZcq0AM5O05ubmwuv14tSpU+jp\n6ZEmZjUajQntrI2EhdSddFjyRpKIESexQCL27Wi1aDk5hCe5TE1NYWBgAAMDA5ienpb0Yl6OE1Zf\nlnMasrlQ2HJ4IyhZXVjJackrl7W4efVn9WiayMmbCklPS0IKSSSL0WiEyWSSollIBFZqaqq0kHws\nZDpEWgNfyL22UH8CDwvKtSIIAnbu3ImdO3fO2j+Zcq0QCIKAjIwMFBcXo62tDfv27YPf70ddXR3G\nxsbgcDhm3TTJAvrVN1oQfVyr1UpD6xP52i0Gy92352uNk+1sX+RJLQSEXCYmJtDT0wOtVovKykrJ\nQGEJSI6M5B4wPGtcybKPpj/KaeL0upxGDkCWWIm84vV6MTExgWAwCGAmRxBpYzI5M5tfhY54oUM6\n2URikQg9nlb5gnKtkEqxSMZcK8APaVlFUURnZyeOHDkCrVYLk8kEg8EgWafJhPmSuCDMDK3PysqC\ny+WC2+1GVlbWiiXyZOvbPDJl84ezJE4sW1EU4fV60dvbC6PRiMLCwjkadySCiUTmsSJyUh+2Xjwr\nntbNeWRKW+QajUZKR+vxeCQiJ28QZJ20KdGx6TcEevYlWidnHx5y7RnPt/t551rZsmULTp8+jXfe\neQe/+c1vsGnTJrz55pvIyspKulwrNAwGA6xWK0wmE0ZGRtDV1YWqqiro9Xr4fL4VHV8uCDOj4TIz\nM2EymXD9+nX4/f6kkZZilWslFn07FrlWeN/p7UqWMAEhEzpqaHp6Gk6nEyaTSYqh5lnA86mrEoEv\nhMzlLHIlQpfTzOljiqKIiYkJuFwuTE9Pz9KtiURCS1J0OXT6XzpfC1nkrPJID8ho2jrmuVYeeugh\nvPXWW0hLS8MzzzyDl19+GQDw0ksv4fnnn8eePXvmVdk7ljnXCg86nQ4ZGRmSlhYMBmE2mzE9PS1d\n4JUKk8mE/Px8jIyMoKenB2lpaQk5kIcH1hCYb66VWPbtWORaiQZKfZEmOGKxEktzYmICY2NjkkTA\n068jgSdbLMRCVyo7klUOYI7DUYnIyaw/LpdLcvaSMghxk3W6LrxRosQ6Z1PiykXNLFRDB+KQa+Uv\n/uIvpOHKJP8EADz99NO47777ACRfrhUeyMUhr2ClpaXw+/0YHR1dVjLn3TyxKlev10vzlDY3N8Pn\n86GkpGTFT7Kx0vo2T1Yg8c4ApDwhJCRRr9fP+i/Zn/6uBDpKhSVO8jlfq5zV7OXOKRrLnPwnFArB\n6XRKDl9g9kOAPm/ecWgiZye0oB2zdB3o+i8U8/mvogAqivx8FHa7XVrft28fGhoaAMzko/jggw/g\n9/vR1dWV8LlWeCBa8fT0NLq6ugAARUVFSE9Pn3WRlrpOvM4aC2g0GmRlZcFqtaK9vR3t7e3Izc2F\n2WyOSfmJimTv2+z15xEgG+ccCoUwOTkJp9OJkZGROZNOyI2QlFvYGYdYiUEuqmW+S7TlsXUm+3q9\nXly/fh3Dw8OSXs6+tdBSCQk3pJ2brJxCnzMdzRON3MN7aCwW88618vrrr+P999/HpUuXIAgCKioq\n8O677wJIvlwrPAiCIA3l7e7uRm5urjSZ8PXr1zE+Pr4sljnt8SZW1mLrIQgzcfQ2m01KdKXT6ZCX\nl7fiR2SulL7NI3De73QI3vDwMLRareT45Gm88zEWWAucfguQi7SJ9pwAeQtcaSFkGQwGcf36dfT0\n9CAQCHDJVql83sOLza5Ik7ic8zPSOS62L93QuVbkQOJv29vb4fF4sHXrVmzZsgVerxfd3d0YHR2V\nBhgsJQSBP5puIfUQBAEGgwElJSUoLCzEp59+im+//Ra1tbXIz89P6miVZMi1ouTcpEkwUm4V8p2d\nr5POuUIy95H82tPT0xAEAaWlpaitrYXVapX0cjk5I9pzkYtxZ8+L1wbsMVmJgvc9kvXb29uLs2fP\nore3d47OLQgC9yHGi1vnxdXz1sm+vAcFMFe6mg/ZA2qulXmBWOWlpaW4du0aDh48iEAggNtvvx2r\nV6+WJl9dSicoeTUmnW0xMamkcxFJ5cqVK2hubobVakVOTk5Sk3iygn5IRws6XI4lIt4Dn8bk5CTa\n29ulyRLoEbxyRC5XllzEykK0ct7xlEhcjsAFQYDb7UZ7ezvsdvscaYYQLqtvK8lLLKHzvvOsfLlz\nVLp/53tvq0QuA41mJpVrTU0Nrl27hs8++wxutxvbtm3DmjVrkJ2djd7eXoyNjUnWeTwJnb5BFzuw\nQBBmMhyWlJRgdHQUJ0+ehMlkQlFR0SwHmIr4Yb7Eze7Pvp3JER29P030Wq0WU1NTaG1txdTUFCYn\nJ1FZWYmMjAxZq5Eui0UkEp+P01OJzGnLlnfe5Defz4fOzk50dnYiGAwqjlSNpLXzJBY5y5uVVth6\nRTrfhUIlcgUQq3X16tVoa2vDkSNH0NPTg5/+9KdYt24d8vLy0N3dDYfDgcnJybinv5V7ws+3DJPJ\nhNLSUhgMBhw+fBijo6Oora2FyWSKUU1VLAY0SbNWN3mI0w9z1hLnbaeJhpYYpqen0dbWBrfbDbfb\njdraWlgsFqSkpHAfBrx1AiUS51ntkfqyksQi98DSaGYG/vT19aG9vR0TExOKxC1nYcuROY/AWWte\n7g1B6ZN33vOB4jv09PQ0Nm/ejPXr16O+vh6/+tWvAAAjIyNoampCbW0ttm3bBrfbLf0n2XKtRAKx\nzOvr61FXV4f29na88847+O1vfwuPx4O1a9di3bp1KCwshMlkki7yQsHrnLECkYxKSkqQl5eHr7/+\nGleuXIHFYlnRozh5SNa+HUnyYIlFjmzo6AtRFNHf34+zZ8/i1KlTuHz5MkZGRriyDWthylmuclYs\nbz92UfpNqS5arRbhcBhDQ0O4evUq7Ha75HxlyZrVuGntnN4m911JP1d6I2KvV6ygeOcajUYcO3YM\nly5dQnNzM44dO4ZTp05h9+7daGpqQmtrK7Zu3Yrdu3cDmJ2P4tChQ3j22WfnZEJLRmg0GpjNZlRX\nV2Pz5s3IysrCwYMH8eabb+KLL75AWloaNm7ciPr6eikem3ZwzAc8L38sQFviNpsNV65cwYkTJ2A2\nm1FYWHjDSSqJ2LejkTDo7YT06HU5YuRNRkyH2el0Ong8Hly+fBknT56UpuojGUBZq5dHcDQR8urC\n04/lpI35kjh5S3G5XGhpaUFnZ6c0cw9dX3qSZCUrPRoLnnyXa3u6vaK1vBdK8hFNMDLJgN/vRygU\nQnZ2Ng4cOIAdO3YAAHbs2IGPP/4YgHw+ipUCvV6PgoICbNy4ERs3bsTo6Cjee+89vPPOO/juu+9Q\nXFyMm266CbW1tcjJyZGS68TLwo4GpJOZzWZUVFSgsrISra2t+OSTTxAOh1FWVobU1NRlq99yYrn7\ndrRtTpO10qu7HGmyCz06kY6VJnKKw+HA119/jS+//BJfffUVenp64PP5pLqwJMyzcFlimy9BK50r\n2zakfVwuF7777jtcvXoVk5OTcx5icoSsZHkrkXokTZy+duw1j/X9FlEjD4fD2LhxIzo6OvDMM89g\nzZo1GBwchMViATAz6/jg4CAAJHWulWih0cxkCCwvL0dubi66u7vR3NyMq1ev4pZbbsG2bdtQVVWF\noqIi2O12uFwueL1e+Hw+KRQs3o5RAvLal56ejoqKChQVFeHbb7/FRx99hKmpKdTX168ISWWhuVbi\n0bcXmmuFBbEwyafS7xqNRhpdyZInLS2QIeiiKEqSCusw1Wg0UqhiZ2cnhoaG0N/fj+rqalRVVSEv\nL09646SHqNOz4pB1Uq94gD5PIqc0NzejpaUFExMTkhHFI2/2U+4BJKeFR/uwoR/A9KfSObGIWa4V\njUaDS5cuYWxsDPfccw+OHTvGbdD5VA5IzFwr84FOp0N2djZSU1NhtVrR2dmJo0eP4uLFi7j99ttx\n6623oqqqCrW1tfD7/ZiYmIDT6cTQ0JA0tVy8QhdJm+v1euTm5qK6uhqZmZk4c+YM9u3bh2AwiPr6\neuTm5q6IgT+sIRBtrpV49O3F5lqJhrgBzHFqkk9C3mQfksWPJnGeE5JnZQeDQXg8Hly5cgX9/f3o\n7e1FZWWl5GNJT0+X4s/puHZSFl02u063XbT3AHv+wEyahYGBAVy+fBnff/89JicnpekIlSxv9nde\nGCH9HZg9ybPcWxEBK6fIrSttA2KYa4UgMzMTf/Inf4Lz58/DYrHA4XDAarXCbrdL+SmSIR9FrJGS\nkgKr1Yrs7GzYbDZ0dHRg3759OH36NBoaGrB69WqUlpaiqKgIRUVF8Hg86OnpQX9/P8bGxhAIBGJq\noZNOSGawr6yshCiK2L9/Pw4fPoyUlBSsWbMGeXl5Kz6XSrRYzr4tR9z0byx5kd/INtYqJ+ssgfPI\nnC2PJ5mEQiG43W58++236Ovrg81mg9VqRUFBAfLz8yVSZx98LDnJvWXIkRivXeiHFEmX0NLSgra2\nNvj9/llD6dnzYM9NyVnJrkdrhcttUzrXWMgsiney0+mETqdDVlYWpqam8Pnnn+OVV17B9u3bsXfv\nXrz44ovYu3evlHBo+/btePTRR7Fz50709/cvez6KpYIg/BANkpubi4GBAVy/fh1Hjx7FF198IbXh\nunXrcPvtt6OmpgZWqxV9fX1wOBwYHx9fFKHTN6Fer0dGRgZsNhuKioowNDSEAwcO4Ny5c8jPz0dd\nXR2ysrJWhCW+GCRy347WKifbyCe9EAJmyZx8Z8sleVdo4gsGg9BoZsL5dDodQqGQlKu+o6MDaWlp\nSE9Ph9VqRXFxMWw2G3Jzc2EwGABEn5o3mnag741wOIzx8XG0t7ejpaUFfX19CIfDSElJmZUDhc0B\nQ+vdcvIKS96LkVKU1pW2LQSKRG6327Fjxw5J93rsscewdetWbNiwAQ8//DD27NmD8vJyfPjhhwAS\nNx/FUkGj0SAtLQ1VVVUoLCzE2NgY3G43PB4PRkdH8cUXX+Cbb77Brbfeirvuugt1dXWS1jo0NISJ\niQn4fL45kovcUGayrtVqkZKSArPZjPz8fBQWFsJgMKC5uRmffPIJuru7UVZWhqqqKpjN5qTXxGOB\nROrbC7XKye/kk9bE6X2JNc6ClVVIGYTUaUKk5wINh8OYnp6W8ptfv34dmZmZsNlsKCsrQ1lZGXJz\nc6VIKLkBQdGC/J9MoOxwONDe3o62tja4XC4Iwky6CV4yK15eFLkIFDkSl3NmzkcPjyeJA1BzrcQT\ndMcnE+F2dnZicHAQ2dnZuPXWW3H77bejtLQUgUAAw8PDGB4extjYGKamphAIBGZNBAv8cMOSuQbJ\npLq5ubnIzs6GVqtFb28vTpw4gVOnTiEQCKC2thY2m02KSljpSIZcKywiyQj0p1z+FfLJLoSE2Rws\nvLwsvG3sxM708cg6mXglPT0dJSUlKC8vR2lpKXJyciTnqNK50m3ItkEwGMT09DRcLheuX7+O7u5u\n9Pb2YmpqSprogYRRkkVuAggeycuRuZI1Ttd3vlKK0vZIUHOtLAPo0CiDwQCTyYScnBwMDQ2hs7MT\n+/btw8mTJ7F582bccsstqK6uRmlpKXw+H8bHxzExMTGL0IkVQSaJzcjIgNlshiAIGB8fR2trK86f\nP4/z589jaGgIBQUFaGhomGUdqUhMRGuVK+nkZBshIgLyH51OJ01xRu9L5/Ah/yXbaEcm7dCkE3aR\nB0swGITT6YTT6URnZ6cktxQXFyMvLw9ms3nWZN48MiN1Jdb3+Pg4nE4nHA4H7HY7BgYGMD4+LsmI\nkQibdWjKkTcdJhwtiS9ESlHavhioRL6E0Ghm4rnLyspQUFCAwcFBdHV14bPPPsPRo0dRVVWFhoYG\nrFmzBjabTRpGT9+U9GzgDocDXV1duHr1KlpbWzEwMIBAIIDc3Fw0NDSgsLBQlVKSGDRx02TOhvWx\n5EGImJVaAHkyZ0mckBnpb0RzJ6MnyXdC6jT8fj9cLhecTifa2tqQm5uLgoICFBQUICcnB5mZmUhN\nTZUIGJjp136/Hz6fT5r8wuVyScvY2JiUtZG2vGlLnCZzMoMPS+y0c5NH2gsl8WikFKXti4UikU9P\nT+P222+Hz+eD3+/Hz372M+zatQuvvvoqfv3rXyM/Px/ATB7ne++9F8DMMOb33nsPWq0Wb7/9NrZt\n2xaXiiczCKGXl5fDYrFIs5e0t7fj4sWLUtggiQhIS0uDXq9HOByW9Pbh4WE4nU54PB5otVpkZ2ej\npKQEFosFubm5SE1NveEdmkpIxL7Ns8rlLHU6SoW3nSZeAkLqZOZ41hqnLXGW1MkbIS3Z0HVgyY5o\n7V6vF2NjY+js7ITRaERaWpr0Jkmck4IgSETu9Xrh8XgkeZHo9bSEQvRwORIn5M0OuSfl8DTyWJG4\nElHHU9ZUJHIyjDk1NRXBYBC33norTp06BUEQsHPnTuzcuXPW/vQw5v7+ftx9991obW1VLUIZEEI3\nmUwoLCyUOr3L5ZImgL569aqkU5KOaDAYkJaWBpvNhpycHGRlZSE1NRUpKSlSDK0KZSRq316MxMJ+\n55E5IWZ2f0GYHbnCkjhtjROZhSZ41jnIyhvBYBCTk5OYmJjAwMDAnLqy50TqQJM0Tdq8WXvo79FE\nqERyaPKcmwvRwyP9FgtElFZ4w5gBvsNCbhgzPSJOxVxoNBrJ0sjKykJxcbE0GUAgEJBGg5LXQto6\nWe4UAMmMZOnb0UgsrMVItrNkTqxfmpRoK5wQNW2R06RNyJ39pK15+v90LDrtOGWd+KTebGw36e88\nsuZZ4nJOzUiOTSUyJ+2WqCQORJFrJRwOY/369bBYLLjzzjuxZs0aAMA777yDxsZGPPXUU1KGuIGB\nAdhsNum/SkP0VfBBNECTyYSMjAxJX7RYLCgoKEBubi6ysrJmOY5UEl8YErVv866nHGnQ1jWrdZN1\nQuJyOUdY8pMjTvo775PWrVNSUuYsRqMRRqMRJpMJJpMJqamp0rrcQv5jNBqRkpIiGTzRzKM5nxwp\n8SDxpTSw5j1E//jx43jmmWfw8ssvAwBeeuklPP/889izZw/3/3Inkqy5VpYDKlErY6G5VuLRt2Od\na0VpG61HR2OZ0zIIbY3T+VJoOUXuOz30n9XQWWudlM/GoculCKCJlZVFWO2b/WQfRkqDfsgDMJIm\nzvvOXhO56xcLxCzXCgEZxvzNN9/gDipPytNPP4377rsPwPyGMd+R5LlWVCQOWEMg2lwrBLHs24vN\ntRIteJqyHJnTxEuvk33ZvOO09MJKKvR3nvxCW/p07DlN5HQcOntOtEbPOiWJo5LnzIxGF6fXAcwa\nts8jcbpObLvGm8AJos21oiitOJ1O6dWSDGPesGEDHA6HtM++ffvQ0NAAYGYY8wcffCDlQLhRhuir\nSD4kQ9+OVmKhLXP6N9bCZSUFluTINh4ZyskvWq12lhOSllj0er0khyhJLbR0Qj7p/9FSColYiTTY\nR47ESVtFQ+JysmUiviEvaIj+448/jkuXLkEQBFRUVODdd98FoA7RV5E8SJa+HUlioZ2fJLyQZ5nT\nIARFR7CQMljrnA4x5Ekuck5QEgJJO0rZEaFsbiE5zZo3oIdH2HKhhSxZR5JT6LrQbR7pOi0n1CH6\nKlYcknGIfiQoDeGn19lh/GSb0sIOt5f7JAN/eGkAIi2RSJyAJVuexCIIc+PBeVY4+9ZBl8cehxwb\nmH+c+FKSuDpEX4WKFYbFWuYEtNUNzLXO6WOwFjtr6fIcpLwHA10ue05KZM6ztudD4kpaOGkL+nsi\nkbgSVCJXoSIJwJNY2O3RkDn5jV0ISROHKEverBOUN6KT3kaG7tMOVtrqB+SJPJLEwpI4j7Rp6519\nKMhJKnKf7LrStuWCSuQqVCQJYkHmdIItFvS+5Dst1dDf5axzlvQJgdMPEK1WO+thQZ8HWx5rkZPv\nNFHzSFxOD+eVzx6f176JjhU5dn4hMcWJUn4y130llL9YdHR0xLXsaMhGTvPl7UcvPT09XIuVR6Ss\n3hyN7OF0Oufo2nIDeHjbCEnT3+n69vX1zdnOO08elCQVAHNiuWNN7ovtNyqRJ1j5yVz3lVD+YhHN\n4I2lLFuOzFkiEgQB169fV5QflPRruW3096GhoTnWM++BwZNQWEubd5y+vj5Zy5v9rkTqvPaL53WN\nRfmqtKJCRZJBTmJZyD4EciGOrBxDQgzZfXj6Mu1EZTV1IrHI1Ykma3LcSJa2XD3Yc1U6ZqR9o/l9\nObAiLXIVKm5EzEfjnQ8Z8bRkJatX7j9Kv/N+ox8ebFk8uUiOiBOReGONZYsjV6EinliuOHIVKuIN\nrsN7OYhchQoVKlTEDqq0okKFChVJDpXIVahQoSLJsaREfujQIaxatQo1NTULzknx5JNPwmKxSFnp\nAJpAEFEAAAUoSURBVGBkZARNTU2ora3Ftm3bpKx2wMw8izU1NVi1ahUOHz4csfze3l5pkoG1a9fi\n7bffjtkxpqensXnzZqxfvx719fX41a9+FfP6AzPTeW3YsEFKwRrL8svLy7Fu3Tps2LBByv4Xy/Ld\nbjceeughrF69GvX19Th79mzM2yceSPS+Hc9+Dah9O1L5ce/X4hIhGAyKVVVVYldXl+j3+8XGxkax\npaVl3uWcOHFCvHDhgrh27Vpp2wsvvCC+8cYboiiK4u7du8UXX3xRFEVRvHLlitjY2Cj6/X6xq6tL\nrKqqEkOhkGL5drtdvHjxoiiKojgxMSHW1taKLS0tMTuG1+sVRVEUA4GAuHnzZvHkyZMxrb8oiuKb\nb74pPvroo+J9990X8/YpLy8XXS7XrG2xLP/xxx8X9+zZI7WR2+2OefvEGsnQt+Pdr0VR7dtK5ce7\nXy8ZkZ85c0a85557pO+7du0Sd+3ataCyurq6ZnX2uro60eFwiKI402Hr6upEURTF119/Xdy9e7e0\n3z333CP+7//+77yO9bOf/Uz8/PPPY34Mr9crbtq0Sfzuu+9iWnZvb6+4detW8ejRo+JPf/pTURRj\n2z7l5eWi0+mctS1W5bvdbrGiomLO9nhe31ggGft2vPq1KKp9m8VS9Oslk1b6+/tRUlIifY/lnIeD\ng4OwWCwAAIvFgsHBQQCLn2exu7sbFy9exObNm2N2DN48kbGs/1//9V/jH//xH2fF2cayfEEQcPfd\nd2PTpk34z//8z5iW39XVhfz8fDzxxBPYuHEjfvGLX8Dr9cbt+sYKyda349GvAbVvy5W/FP16yYh8\nqWJsIw29jbYeHo8HDz74IN566y2kp6fH7Bgazcw8kX19fThx4gSOHTsWs7I/+eQTFBQUYMOGDbJx\n1Ittn9OnT+PixYs4ePAg/v3f/x0nT56MWfnBYBAXLlzAs88+iwsXLsBsNmP37t0xrX88kEx9O179\nGlD7ttxvS9Gvl4zI2TkPe3t7Zz11FgOLxSJN0WW321FQUMA9ptIcojQCgQAefPBBPPbYY7j//vvj\ncgwyT+T58+djVvaZM2dw4MABVFRU4JFHHsHRo0fx2GOPxbTuhYWFAID8/Hw88MADOHfuXMzKt9ls\nsNlsuPnmmwEADz30EC5cuACr1RrTto81kqVvL0W/BtS+zWJJ+rWi8BJDBAIBsbKyUuzq6hJ9Pt+C\nHUKiOFdHfOGFFyRNadeuXXOcBj6fT+zs7BQrKyvFcDisWHY4HBYfe+wx8bnnnpu1PRbHGB4eFkdH\nR0VRFMXJyUnxtttuE48cORLT+hMcP35c0hFjVb7X6xXHx8dFURRFj8cj/uhHPxL/8Ic/xLT+t912\nm3jt2jVRFEXxlVdeEV944YW4tE8skQx9O579WhTVvh2p/Hj36yUjclEUxc8++0ysra0Vq6qqxNdf\nf31BZfz85z8XCwsLRb1eL9psNvG9994TXS6XuHXrVrGmpkZsamqSOpQoiuLf//3fi1VVVWJdXZ14\n6NChiOWfPHlSFARBbGxsFNevXy+uX79ePHjwYEyO0dzcLG7YsEFsbGwUGxoaxH/4h38QRVGMaf0J\njh8/Lnn2Y1V+Z2en2NjYKDY2Nopr1qyRrmEs63/p0iVx06ZN4rp168QHHnhAdLvdcWmfWCPR+3Y8\n+7Uoqn07Uvnx7tfqEH0VKlSoSHKoIztVqFChIsmhErkKFSpUJDlUIlehQoWKJIdK5CpUqFCR5FCJ\nXIUKFSqSHCqRq1ChQkWS4/8ATwlBMO2jTDAAAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# result of GVF gradient spreading\n", "subplot(121); imshow(fx)\n", "subplot(122); imshow(u)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Snake Fitting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's generate a closed contour and plot it.\n", "\n", "We consider the closed contour a function $p: [0,1] \\rightarrow R^2$\n", "\n", "For actual computations, we subsample this path." ] }, { "cell_type": "code", "execution_count": 124, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(-100.0, 700.0, 400.0, -50.0)" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAADaCAYAAABKF5KzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztvXu8ZFV17/ur9961389+NzTd0kADQiMvAVGDggoakeDb\nG89Ro96cHI16jebh0aiJ15h4cjxHb2K8J8dwkhCVQMT4QI0gEGxAHjY2INANDb33rv2oXa9d7zp/\nbMbqUaPGnGtV7d3d+zF/n0991qq55lprrlm1vmPMMeeaK9RoNBpwcnJycloXCp/oAjg5OTk5HT85\n6Ds5OTmtIznoOzk5Oa0jOeg7OTk5rSM56Ds5OTmtIznoOzk5Oa0jOeg7OTk5rSM56Ds5OTmtIzno\nOzk5Oa0jOeg7OTk5rSM56Ds5OTmtIznoOzk5Oa0jOeg7OTk5rSM56Ds5OTmtIznoOzk5Oa0jOeg7\nOTk5rSM56Ds5OTmtIznoOzk5Oa0jOeg7OTk5rSM56Ds5OTmtIznoOzk5Oa0jOeg7OTk5rSM56Ds5\nOTmtIznoOzk5Oa0jOeg7OTk5rSM56Ds5OTmtIznoOzk5Oa0jOeg7OTk5rSNFT3QBVrIajQYajcaJ\nLobTMioUCgXO6357p3YVCoXa+o+dCDnoW1SpVPDFL37xRBdj2dTOn1HLK9P4d21dW/J84XC4KV3L\nx7f5befix/a7LpM49Pl6vV5X83EnQVt2mmY7n19ZpeGybfNL99tm03oxoFdffTXOOOOME10Mq1x4\nx2lZZYKsCbY2CGswNxmaTsrWTn7beW0G71hqqec4nh7pSvd+15Mc9J2OiTq9yZfSwiBJL18aD9l6\n0D62c5ma8Brw/QxCkOPQ9QTZJ8jxlyIH79UvB32nFgW5sTsBixba0fY3efhBwKYBP8hxbeeT67by\ndGokTCExk5arRRHEyC6XnMFYGXLQXyc6HqGAdkM4QYFsStP6CPwAbfLoTdv8WgSa8bKVwQZrW5r0\n9rU8QYxiu+e1nc9pdcp15K4DtXOTLscN7eeF2mBvCrGYgAzYwzntAE92NoZCoUAdkOFw2OtsNV1z\no9Hw3cbzyLRGo9F0Hlk+mde0vZ3rsuULegxtP7o+pxMjB30nX2kesWmbad92vHqbly2PK0cAmY7l\ndx30vVMYUTkk/DWQy3UuW55jCX7TtR8L8DudWDnor3Ett5fvFzbwg60Mh5i8d1tIxbav6ThBr1WC\nM6hnyr1xGnbZaatJgz0vBz8HvxatdcDLZluXx9GuzXbd7cp5/CdODvpOVrVjCPyAawO2lm4CPsXu\nTccywT/oNdlgyrdzuEuQag/2LSWsohmRUCikev2awbKBn1+T6fzHyuN3rYXjLwf9Nazj5eUHPZ4G\nepkeFPhBPX9tGfQ6TWETubR50Y1GA/V6PZChkZCW6zKvLdyjlcXPy18q+HmdtSMH/uMrB/01quUA\n/lK8fLmujaxp92MCvvZk73J4+vK77Qla7bufcZDbgna6yjRTuIeX3+T982tZKviDbLftx8vidOzk\noL8GdSyAr0HTtpTAl8cKAnfKq8E+SKtAa1Vo5ZGS0x5onnIQaJtCPkE8f5tM/QWh0PKHezQY+wF6\nKZ678/qPvRz015iWAhPTMdoFPpfJCw/izdP+nYCfn9N0DSaR5wyY59CxeesmYyDPbTIu7UBPGoCV\n4vUvxXN34D+2ctBfQ2oX+CZv0fTdr1Xg5/m3A3y/72RMgoSNtDL5yQ/6WkhH2659IpEI6vW6t+Tl\nolZA0JCPDcYmr19epwn+J9LrX4rRcLLLQX+dainAtwFU5lsq8CXotTyA3sFrA74J/hwyJuDzdRmu\nCQL9RuPosEsyXnQc3sqgcnbq/fs9O+AX5mnX65f1F2Sbn5zXv/xy0F8jasfLbxf4WrrJmye1E47x\nA74f+E3wl+Xyg76Ei4Q8T9MAzg1AUPjzc3DgS9j7ef8myfLx/aT372cEeD2Yzm0rk/P6V4Yc9NeA\nlgr8oPssBfg8nx/wOexNwJfbtGP5efs2BQ3dAEc9aQ7Qer3etF2u+x2Le+fS07el+a2bpouwGQFe\nHzZDoJVFynn9J14O+qtcywF8m5cfBPhc3OvW0v08fgl9E/w16Gvg5+dvp74kjG3g5xCWXrTcj+L4\nQcI+MnSkwZ6nB5EW8uFw59cfxJDwOvVL67TMcj/bcZ385aC/inW8gW9Kl6EVStPg6+fha6CPRCJe\nPlq3hYBs3r52LVpYRy47/RC0ubfP4c1bCVqLgOfVvpvS5bXxdTIqfrF+WSe2FoA8ji0tyDY/Oa+/\ncznor1KdCODbwiVaPj8v3A/49AHQkmaK9y9HiMcW2tEgLSEvYSzj/Pw7bQfQ1ArgcXgtDMTrWku3\nifYxdfTyepAtF74/38cUarKlBdkW5Dqc2pOD/irU8QK+33aTV+/30eL0JuD7fUzevhbm0Tx9TTYP\nn8OYvGUN5rY07XsQ2JuOa/p9+TaTpw7oY/s14Ns8fXm+TsDPjxdUDvzty0F/lelEefi0XCrw+TGC\nAp9COpFIpCXs4wd/W9kBoFgMoVbjtUHAf/4bA200Wkc0Wm8CPY+9SyMgDYMpZGMyFjbo8xaC3FcD\nuCnsI/8H7bwXIIgh4N9NabIMnYDfdkynZjnoryKdSA/fBE0N5u0C3/YhsHPAawaBw7/RCGF+PoaZ\nmRimp2OYno4ilYp6y1QqiqmpCKano6hWgWiAu6DRACoVIJmsY2ysitHRCkZGFj+jo2UMDy9+RkbK\nGB4uIZmsWEM80gjU63U17GMDP4mD2vRwV1CthI5e5/UfWznorxIdT+CbvHmZT3bcannp087oGxPw\nOfhpvdGI4ODBLhw40INHHunGgQPd+OUvuxCPNzA+XsX4eA1jY4uf7dtrOP/8BYyN1TA+Xsf4eA29\nvfax+RzOtVoD6XQYExMhTE8vGo5UKorJyS7s39+L6eno80Ymhu7uGnbvzuPUU3M49dQsXvCCHMbG\nigBaYU/rEtYm8BOQ5Ugfvm77b/iBkbdQ+G/bTsjHBPp2Qz4O/MsvB/1VoOMFfFNaJ8A3hVhso3Y0\nqEciEW+9Xo/i4MEePPpoLx59tAcHDiTx+ONd2LChij17Stizp4Qrr5zDmWdWMDjYaDqHXs7Wvz/v\nqKUlgTcSqWNsrIGRkTrq9WIThHkIp15vYGIigkceSeLAgSS+/e1NOHCgB7VaiBmBLHbtymDjxgUA\nrbF+OqY2xNOvFeD3gBj/jU2etjQmtv+Wn9fP6/N4eP0u3GOXg/4a0vEK6diGZvJ9+HYOXpOHz7cT\n8OfmunH33SO4664R3H9/PzZtKuP00xewZ08RV1+dwhlnVNDf3zy6JxQyd+hq10OSHr709JvBXm8C\nLAdlvV7H5s11bNqUxcteNu/lS6WiOHBg0RDcdttG/Pf/vhOVShgXXjiDF784hb17Z5FIVFo8f61M\ntlYAlcHmLNg8Yu6pUz6/2TuDxPed178y5KC/whXUyz9RIR3bh8ft+b6al380fxhPPdWPe+4Zx113\njeG557pw0UXzeNWrZvGZzzyNoaFQk/cfjUZbOndNsNeMEl0HhyvQ+uRsvV5HrVZT4a8ZAQ5eMgYb\nNtQxNpbBpZfOe/s891wcd945jFtu2YbPfe4MnHlmGhdfnMKFF6YwMlJsGeevhXck8LlRoOvrNNZP\nx2o31u+3zv9XQVoffttMcuBvlYP+ClZQ4Afd/3gCXwJWxvD5erUawf79o9i3bxP+/d/HEI02cMkl\ns3j/+w9i794CEolFrz8ajTYtaZ1gv5SRPBz29F169ZFIxAN/rVbzwM7z8HQOf+m907Zt22r4jd+Y\nwHXXHUE2G8Y99wzirrtG8LWv7cLGjQu46KIULrxwEqeckgH1B3Dv2+b983ymWL9mCDgoJTS5oZFA\nN6X5HVP7zn8TrbztyIG/WQ76K1TtAF/LeyyAz/cJCnvb9iNHevG9752CH/94G7ZuzePii1P40z99\nADt2lBCNtsI9EokgFou1gF/2BZhaGjZvH9Dj+HzJgU5LCX/uVUtvX0vj+/T313HFFbP4tV+bQbnc\nwMMP9+Ouu4bx2c+eAwC4+uqnccUVh9HTU24Cueb983CMTOvE45eSLQlZj0GMAK/zdrx+m1GwldeB\nf1EO+itQKxX47Xj3vFXAve1GI4T779+E7353J558cgiveMXT+K//9Q5s3lxlHbjNwzB5KEd+JPQ1\nb18zRCTpKRMYIpGIF5aRsfJaraZCnkOdPnwfDkK+Lg1CvV5HItHAeedlce6583jf+57E/v29uPnm\nrfjf/3snLrtsAldffQgnnTRv9PLltcmWjPafsXn8mjrp6NVgf7y8fgf+RTnor2IdL+AH8dpNXjTt\nn88n8JOfnILvf38nensreM1rnsTHP34vuroWAQs0w1rG7AnysVhMBb+EvrwOCr0QgOWHh2ikwaHj\nc0PCQS5j+5SPQkEc8lorQLYGOMAXv9dx1ll57NnzS8zMRHHrrZvxiU+8CBs3FnDNNYdwwQXPIRpt\nbqWYWgGyHMvh8cuWhWbQ2o31y/LYvH4H/vbkoL/CFNTLX8nA55+nnx7C979/Kn72s20477wj+MAH\nfoZTT51HJNI80kbzzmldxvJjsZj34dAnEZCr1SrK5TIqlQrK5TJKpRLK5bKXVqlUUK1WUa1WPcjS\ntdL54vE44vE4urq60N3djUQigXg83mSYJPQ57DXI21oHpjRajo7W8Pa3H8Kb3nQId945iltuOQl/\n9Ven41WvOoRXvvJpDA4WAaAF9tLD9xvhExSO3EhqrQQT8P1i/ZqH78C/PHLQX0EKCvx2j3UigH/k\nyAD+4R/OxcGDw3jFK57AX/zFdzE8XDGCXZ6HGwHy9DnwE4mElxYKhVCr1TywFwoFLCwseEv6lMtl\nFIvFJkNAxoGHSQjosVjMA34ymUQymURfXx96e3vR19eH7u5uryUiyy4NAQe6NAJayEcaCABN+UKh\nOl760mlcfnkKTzyRxC23bMX73385XvGKZ3D99Y8jmSy3tBhMHb9U91o4SG7j303rsqOXFNTr9wv3\nOPAvTQ76q1BBvHwt/XgAP5frwk03nY277z4Zr3vdI/jgB+9GIkHH0WPsWpkk+MnzJuhTzH1hYQHF\nYhG5XA7ZbBbZbBa5XA75fB6FQgH5fB7FYhHFYtHz9MnD5145Lwd5+tzb7+7uRk9PD/r6+jAwMIDB\nwUEMDg5iYGAAPT09TS0OCq9Q+Edekxb2oXNrrQG+j9zeaDSwc2cB//k/H8Db3vYE/vZvd+F973sZ\n3vjGx/HKVz6FSAS+Hj8/rvb/6QSO0qBoMnn90st34F9eOeivEAX18oMAXwO5Bnxt/06BX61G8IMf\nnI5bbz0DF1/8NL7whVsxMFAxwt50DlN5CMQAUC6Xkc/nkc/nkclkkMlkMD8/j0wmg2w2i3w+3+Td\nE+Qpdq91WJrqifcTEPz7+vowODiIoaEhjIyMYHR0FENDQ0gmk03gJ/DZwj6ad6917PLtcvw9rY+M\nVPDBDz6CJ544hK9+dTe+/e2T8Zu/uR8vetEEQqHWWL8Ge1usX3r8frKN7deWPI9tnf8+QWP/Jq1H\n8DvorwAdC+BraTZPH+gM+EAIP/vZybjxxnOxbVsan/jEbdiyJdfirfvBPciNVy6XvbDN/Pw80uk0\n5ubmMDc3h0wmg1wu1+TNy45ME7BsHYg1NgUntSjS6TRSqRQGBgYwPDyM8fFxjI+PY8OGDRgcHERX\nVxei0WgT7KX3zutHi+WbvH7+4cCmctfrdezaVcCnP30v7r13FF/96hm45Zad+A//4Rc4+eR0S53Q\nNA9kDGR5tJCPZhRMgObHlL+5Jj8jwK/V9Js58NvloL+GZPNY/dI7Af4TT4zh7//+RahUonj3u+/B\nmWem2jAWenkkZOhDMM9ms0in05idncXMzAzm5ua8EA7vkOXQ4UvbDW678TkoS6UScrkcMpkMZmZm\nMD09jenpaczNzWHz5s3YuHEj+vr6mp4ZkKEeXhaebvvOIc+PS+Am1et1RKMRXHDBDM4996f47ne3\n4JOfvAh7907hLW95BMPDC00ev/T+6byyFcBbFkFFxwrS0WuL+bcb519vIG9HDvonWMvl5fsBX/Ow\nadku8Gu1MG6++RzcfvsLcP31P8dllx1ENNqaz/Q0rCwPoM93Q15yqVRCqVRqAv7s7CwymQyKxSIq\nlUrL6BsuP4hQupRmOHj5CP7z8/OYmZnB7Oys1+rYsmULRkZGkEgkjA+2cbBqsX6tX4Cgy4FM4Oci\n7z0Wq+Pqq5/F5Zc/hxtv3IUPfehl+K3fehAXX/yc0cBqncgS3n6tALnOv3Pjov1GMq3TOH874F9P\nRsJB/wRquYDfTt6lAn9mphdf+cpL0N1dxWc+cyuGhspGyJuMgKmcEjoEwWq1inw+j/n5eQ+shUIB\n1WrVOxaBVYYv+LFNktu0fTWDRB+CPxmkubk5zM/P46STTsKmTZuQTCabxvdTeXmHry2ko4WEaB/b\n9fGQT19fA+9856O4+OIJ/NmfnYsHHxzDO9/5C8Tj1Zb9+JQNvBUh4/1cpnRZHgl62lfm0Zb8PHJd\n+25KM2m9gN9BfxVKAtMGes2ztrUEbMC+556T8Xd/dwGuuWY/rrzyAKJR+2yW2lO58lwkDdb0nWLp\n8/PzyOfzHuxpBA8AVKtVD5D8SVg/oHBp0DIBn6fVajVUKhWUSiXk83mk02mvYzmXy2H79u0YGBgQ\n00TXW+L3QeL9HPb82ni/BU/jnanhcBinnTaPL37xDvyP/3EmPvKRy/HhD9+L7dszRq+fe/fcGHBj\nZDMCtjStJeG3lMdx4G9fDvonSEvx8k3bTVA3AT/op1KJ44YbLsBjj23ARz7yY5xyypw3VYIJ9NpH\nloXEPVLaxmFeKBRQKBRQKpW8cAcBnz7RaBTVarXJ45fH5Oma/IBP0Ne+E7Sps5li/rlcDgsLC9ix\nYwfGxsaaZgWVYSxZTzLUww0E5ee/KeWXD6pJ8Pf11fHhDz+AH/1oK/7wDy/Bm9/8KK666imEQmbw\na/UgjYAW7uH/Ta3uTZ28JxL8a10O+qtMJiNg8v5NRiHo5/DhEXz5y5dj585pfOpT30F3d7UJ+CYP\nn87D1zUPn0Q3JPf2G42G50GXy2XPm+cjTjhAaRZMfp1ybLo0KiaZYMe3aQZAev3c4z/ttNOwadMm\ndHV1efDmMKeRQtLzN439pxaPvB6aBI68cw5+KmsoFMKv/dphnHbaHD7/+XPxwANj+O3ffgC9vSXV\ni5cf2sbzaeLevEna0E4qa6fgN5UlCPjXuoFw0D8BOhZevl+ahH+Qz+2378Y3v7kXb33rvbjkkoPP\nA0gHvl88X2tpSHHYE/RojD1BnYdv6KEtCSMORw4FOrYmnq7l0UJPpg/N57OwsIBsNov5+Xkvzn/6\n6afj5JNPRn9/P6LRqJdfqwcNrNzTB44OKdUMkgwj8dYFsBge27ZtAX/2Z3fjb//2VHzwg5fj937v\nXuzaNWcN5fAWh5ZPrvM8/D8o69z0e3UC/qWCey2D30F/hcoP6CYPXi7lcYLAORQK4TvfORu33/4C\n/NEffRcbN+asc+No37VzadclPXweLqEpEjg8OOylN8yhK+tAgw4/v5QpVGFKM8X56ZmCVCqFyclJ\nHDlyBKeffjp27tzZ0snLyySPx8vNwzeUn4wfrwvZSpAQpk8i0cB73vMYzjxzDn/8xxfiox+9H2ee\nOa169hK+fNSUfPhLgz1dQ5CWwbEA/1qGeVA56K9ySYhqcLV5163eeAjf/OaL8MADW/H7v/99DA8X\nW4BvAj/BSDMspvMDrV42ecr0FC0dUwKfl4eHRiTog3iAncBAAhlofeNWrVZDsVjE3NwcJiYmcOjQ\nITzxxBPYuXMnTjnlFGzduhXDw8NIJBIA0DQRHB2LrpFPPMevXXryErjcCNvCNi9+cQo9PT/Hn/7p\nXvzO7zyICy6YasnDvXw6pjynPIccheRXz7aHuYKA3+93Dfpbr1UD4aB/nGUCXzv7+bUCeJrcT4Mx\nbWs0wvi7v7sYhw6N4OMf/z76+yuBgO9nBExet8lbrtfr3uyXPFRB4RAe3uHnkrFjE/zlzRzk5g5y\n88sQC/9eq9W8B8qeeuop7N+/H1u3bsWWLVswNjaGgYEBdHd3t4x4IiPHJ3/r7u5Gd3e39+Qvv37N\n0PLf2a/z9dxz5/HJT96PT35yL971rkdw+eXN4/nl76d9uFHg5zR5/rIO5e9p+w07hfpaBXoQOeiv\nQAU1DNKDNt3ogD2ss+gph/G1r12GdLoHv/d7tyGZrBqBL4GrpcmQBV9KaGgjbCi8w2928vCj0WjL\naBetbqSn65fPlh4UJLz+eV3QUM1isYipqSlMTU3hsccew8DAAIaGhjA8PIyBgQEkk0lvCmcCfTwe\nRyKRQHd3N5LJJHp7e72ZPnt7e9HV1eU9/St/c1m3HPT8N+Drp5+exZ/8yb34gz84D6VSDFde+XSL\n907rsmUjjyf7AvzE61nz+G2hnnZbd0G0Fo2Dg/5x1LHy8v3ymjxu+lQqEXzlKy9DoxHChz70Q3R1\nNaygt6XJdQ38gB4b5+PuCRI8jEDj3Gl0ig36Qbw/P+Bz0ASVLA8ZK5qtkyBZLpeRy+WQy+UwOTnp\nTdvc19eH/v5+9PT0NHn0iUTCm+K5t7cX/f39GBgY8D7JZNJrCfmVSV6j5rnv3LmAz39+Hz72sfOQ\nz8fwhjc8qUJc9g9onbdav4tmAKiFwMumjb4KCn7tev3S1oMc9FeY2vXyte+mm1zLVyrF8N/+2ysw\nMFDEe95zJ+Lxo0bBBHe5HgT8mrjXCLS2RhqNhjcskXde8mNyiGiepq3+pCevhYhkXltriYOK9z0Q\n9DkQ6bkC2icUWhyCSe8D4NfLO7XpnQD07AK9H2BwcNCb4lkzqLLO+G8gfw/6bN9ewZ//+X346EfP\nRaEQwzve8bhXR3Rdsu4J3Pz8lMalGQsKAclRQVqLJQislwvqa804OOivItlgblo3QWrxjxzC3/zN\nSzA8nMe73303otHWfUzAp3CCfBE5zwu0PonLJUM79J08errZKpUKIpGI9/CVKZaswUyDH9+ufdc8\nRmkUbPCnlggPR/Hjh8NhxGKxps5nagnQ28CoXPzhLRoRROl8umj69PT0NNWR3/9Ia33x9Y0bq/ji\nF3+O3/3dczE6WsLVVz/TZJS1oaDaSCH5e2tGQILf5PHLMtu8fdM6v/7jaUBWghz0j5OCevCd7Gfz\n8k2GIhQK4V/+5RxkMkm8733fA83Xxb136blz4Gtevi3mr3n83MvjxoHSYrGYN0VyqVRq2o8AyF93\nKPsBTB4trwcJf55XKy/fTzOsBHvKzydCo+3UJ0GQo/rkbwST9cHDXfT8QigUQiaTafldu7q6mloK\nfJvtuvi5uAEYHq7h05/+Bf7Tf9qLk0/O46yz5jxwc8/etC49dzmElMTB7wdwfh1LDfOsNznoryAF\nNQymm9e0XQPvAw+chNtv341PfOJW9mYrfey9BnzyxLXtJvDLMkvo830AeGCn1yBWKhUP6gRN8nY5\nRPnYcZu3a/IGTeEEeR10vfwJWII4X5KoFSAnS6Pj0Cgd/hpICX669lDoaDgol8s1vUM4FAohFosZ\nQ2/af0fWlwzZbN9exu///gF85jNn4Utfuhfj48UWwEojII9LvzMdX7YQqI78Onz9jIHtt+5k+1qT\ng/4Kls2D1/JqXr48RigUwpEjQ/if//NSfOADt2FoqAggWAyfA1+mceBz8EtjookgQVMEU1567+3C\nwoI33p3ea8sNBh0DMD88Zas37rWb4si05OEbDh26RpL08Hld8vg+3x6NRr0PrwdeTxysZPQI/PyF\n8QR+bqx4GU2/BdWd7HSt1+u46KIM3vjGZ/Ff/svZ+OIX70ciUWuqdyoXlVWGdviSfl9uZEl+4A8a\nmltub3+tGAcH/eOgoB58J8fUQE9Lbb1QiONLX7oC11+/D7t2zcD0KkMJbQl8+TGlm1oQXAQWPrUA\nhTBo8jJ69y15+3Rdpj4DU0yf8plCAnx/ns5BxL177r2afie+P8X5uRfNDQL32KV3zq+HgA8svlGM\nIE/DO+k9wlorTHMGbCEeHnZ5y1uO4PHHe/EXf3EaPvaxXyISCbV49/I4QHNIR4Z6gFbQ2+4ZzSg4\nbz+4HPRXiIIaBi2fLa0ZGGH89V+/DGeffRiXXfaEB3zKJ4FvAzv36rV0LQQkz7FYpqNP4PIplOXc\n9LlcDsVisQkSPBRia0mY6lGCXm6XT5KawK+Jtxi4Zy7DGSQOZglrXleyhUMjgOhaqF+gq6sL8Xi8\n6bfgv6X8b/Byy5AMB38oFMLHP/4U3vvePfjGN7bj+uuPduzKh8Pot+V1wI9L5eChIV7/pjqVvxPf\nFtTb71RrwTg46K9Q+d0AfvvI9FAohJtuOg/VagTXX7+vKa8Wx9cMgIQ5BxSfMlgzABrEKDRBc9DT\nO2/5UgKfd3hyCJo84yD1pXn7PMRh8vhtnj5BjkIYHPqy9aHVs+16ZFiLvH5eP3yMP/0W0tPXWhG0\n1Lx8yt/T08DnPvcY3vWuM7FrVwHnnTfbdM20zsNgEvIyjMZ/D7kuwzlyP9Nvqf0mQfsB1rIc9Fex\nTDeJdlMfOjSCO+88FZ/61D8jFrMPOfTz+DnUOfg1r18CH1iE/cLCAjKZjAd4egUifadwDn8dIu/o\n5ADlXqJfzNqvHjVxcHHwcw9W1pn2MnQeJ9fKYKpvCUA6NzcojUbDC32FQov9AxTfj8fjLb8NPyeX\nDO3IsAwZmS1bavjEJ57AZz+7C1//+tH4vuZ5cw8fgPdb8nmVADRdj8kYyDoLAvmggF8vhsBBfxWp\nc48/hH/4hxfj9a+/H/39JQDmkI4JPtz75J49B78N/gC86YbptYf0Xll6wTn36vmLzglifLIxEgeE\nvGnbAb/MrwGAvzpQerA81MPhxutThk7kueXvYAvFSK+c+kHISPJx/WNjYxgcHEQymfRG9dDx+bFl\nDF525ErjdvHFeezZk8ff//02/Mf/+EzLtcvr43Ukwc+NqRaiMdVZkDST1gvkpRz0V4CWCic/3XPP\nLtRqEVwkhhk6AAAgAElEQVR66WOgkTq0n8njB2AEvgzp8Lg6D/PQQ0YEI3qB+PT0NGZmZjzoZ7NZ\n7+lSGndPoOceIz8XGRINhqY68Yu/a2EE+s7DHbJ1QeeUI1lkx6X0eKVsBtgEfaB59BOFzEqlEorF\nIvL5PLLZLEZHRzEyMuI9uUvePz+nNgKKA5+Hq+jzwQ8+i7e85Qy85jXT2LChYLw2SjeB32bIef3I\n45kMQ5AQT6da7cbCQX8NyAb+YjGOb37zArz//bchHNaBphkBDh0JfBnLl94+fRqNxYeqstmsB/up\nqakm2C8sLHjTCdP56dgy9itbEe0YSw4VE9Q53HldyFAFpcvx+RyePE0aDJORMRlgboS5tBh8o7E4\ndUU6nW7pGE+n0xgdHfU8/76+Ps/z58eUwOctCbo+gv/mzTW89a2T+Mu/PBmf+9xjTSEZzaAAaFnn\ngNf+i1QubZ3Xg/w9/dLWqxz0j7Ha9eKX67h0w9x6617s2XMYO3dOIxRqjuVKiJhCDFrIhw8tlOAP\nhULecMuZmRmkUqkm4HPY05h7CpHw2SJlqEa2NExesFSQOD8HjYQphz+BGzg6QZwMSXDQm54f0KAk\nl7y8pmvQxvuHw2Gv34SW2WzWA386ncb4+Dg2bNiA4eFhb84eXm4OfR5rlwAHgHe8I4Xrrjsd+/YN\n4fzz51rK5SderzK+r/0uxzKEsx6Mg4P+GpGEBgAcOTKIu+7ajU996hvW/fy8fVPnLQGfQ7/RaHhx\newJ9KpVCKpXC/Py8B3s5FFB2igKtnrCpk1OW3VYvQYyw9PyB5vi89KxlmlZ2CX/bueVSC3HIEBJt\n48aBoE11TqOkKLQ2MzODjRs3ep4/zc/Pf3cegiEQy9c79vSE8OEPP4svfGE7brghg0hED0HKupfh\nMunxy9/C5vV3YhDWqxz015iO3gzAjTe+GK95zf3o71986pZv19ZtHz/wEwxyuRxmZma8OeNTqRRm\nZ2eRz+ebPHugecijBKh2XZoh4gbBZsD49XYCfjJoEi7ah8T310bumK7Tb13bR4avKI3H0qnfJJPJ\neK9vnJiYwNjYGEZGRjA0NIT+/n4kk0lvnL9sVWmq1Wp4+cvz+MY3yrjxxo1461uPtITEAN37lx3g\nvOymdyZIyPN9ZevQGYBWOeivQYVCITz22GbMzvbipS/dDwK+Ka8N/pp3LcM7AFAqlZreBTs1NYXp\n6WlkMhmUSiXvISI6B18CaAqRAK2hHentSwOgwZ0bBVtrIEh9Sth34vmbQjuyXuS5/SRHD3EvnYOW\n4v3k9c/OzmJiYgKDg4NNHb00R39/fz96e3vR3d2NeDzu9eHw4x2dbqKGj370CN7+9p34jd+YRiJR\nbSm/di3aCCf++/EX3NsA7xRcDvprVD/96el46Uv3IxJpQELfBBJTaMHk6RNY8vk85ubmPO9+amoK\nc3NzyOfzTS82l0127gFLT9rUyUlg0zx+bTutm66Rl0erD81zlLCX12TqYOXXJddN5TCFLmRePrkb\nNz68hUFp1ClbKpVQLpe9jvaBgQEMDg5ieHgYg4ODGBwcxNDQEAYHB70WABl62XppNBrYsaOCc84p\n4Ic/HMY118x4Xj6dk/pseBnlsTRPnwNf/g4nCvyr2eg46K9B5XJd2L9/O9785p8G3kdrQtOS34i8\nuV+tVr1wDnn3qVQKmUzGe4JWxp61m9cGRM1T52A3xfWDhHls1y/LyL1MCRxKk/0RNi9fA4b2kJlp\nu6w/m/Hh4RUqO8XqKR9NakcPzdGbuYaGhrzQD4V/urq6mgwKf9r2uuvm8NWvjuJ1r5vz6py3Ngj8\nvB6oz0CGpKSTsJpBu5LkoL/G1Gg0cM89L8DZZx9ET08ZWmhHek6a/CBKQzGnp6cxOTmJVCqFmZkZ\nL3ZP+3HJ0S78XFrzXQs70bqEvQxttAN8E2D5uWXdSAhx75/2NxkAklznM3Nq4l4yX3LQc5BLA8Uh\nzctEdUCGuVgsotFYfKVjoVBAPp9HLpfz+gQGBwebXuLOf4OXvCSPT396M558Moldu4ot/x1yFuha\nuKcvh23KOl1JWollCioH/TWiox5cAz/96R687W0/WZbjasAvFostwE+n094QQdqPlhw8/DhyqKNf\nOQDzC979ttkMiCYOYAlIvp/Ji9eukcsW5tFk2p8bGXlMU5iJd5zStYRCoabO+UZjcVqHQqHgTXFN\nn0ql4j3kJes5kYjg9a+fx7e+NYKPfWzCgzl58iQ+UZwM7fgZ/NUM3JUgB/1jrCBAW87jPvnkJgDA\nzp0TIC9f86Jp3RRuMEGuVCohk8lgenoaqVQKU1NTXmetKXZvulFlM98krcXBv9OxZB4JD22se5Df\nRpZfetGaYeOeN78+GXKxlYGfk+fRfkMZK5fnsNUz99Tlk9UE/1wuh0bj6ENatEwmky31ev31Wbzh\nDdvxkY/MIJGoN8X1ZR1qc/vI39dBfnnloL/KJeOfd911Bi655BEADdC9wiGkASYIeKnjL5fLYXp6\n2oN+NptteZpWQpFkCot0Gm4Cgg/VtHn9nUhC1wR+yiPTpTHgkr+pKV3CXy6lR8/LK+tFAz/vM6Gw\nTzqdbqlPmsmT8p50UgNnnVXCD384gNe+NuuVhXeua8DnrYFj4Sg5LcpBfwWo3daAKX+hEMfDD5+C\na6+927qvqdlv+tTrR19oQhOkzczMeC81AZrHimvnIElIyXUpE6DpfBrY/WBvAosJsrLccp3nM4Ws\nNMPq17qypct6tRkP27E16Js6yMnwZzKZljn/u7q6AMALD73lLQV87Wv9uO66UtPDd1QWSuN9CfxB\nM5PaCYt10kJYD60KB/1VJA0k/Pujj27DKaccQW/vAoDm+VR4fi2sIyHP12ls9/z8PObm5rzhmHyG\nRCnpzfNz2SbSsomHEfzALg2CbSnLrV2D6bok+LWQlQxZ0Dbbb8n319JtBkr7rknWoRz6yo0AHZNP\nniefyKZlLBbD1VfX8aEPxbGw0IW+vmqTF0//Lzlzpyb+v5RpJNvTzscC4qvdMDjor1BpHqVf/oMH\nN2DHjiNG75ofiy+5d8phTx8amjk/P4/5+Xlv/D1wdIphOo8pfMPXORh5uaQ0w2AL3/B1k4ffrrHx\nM2hamhbKkdCSx9BaBdq5Tf+FoCAy1an09k11SK2+QqHQ9MwGvdgmEokgHo8jGo3inHPqeOSRJC6/\nvOy1COkY3Ps3XU+Q/0i7ae20FNaqHPRXiIKGeCS0edrBgxvxqlf9zEsDmmFk8uo58Hkzm25wiuVn\ns1kV+PJYtvNq4R0/SVBpnrqtFcDzmurYNMUAFweRzXM3XWenoR2TcehE2nQNfJ2nyQ5a/jvTw1aU\nFg4ffaNZKLQ4LfZFFwE//3kCr3zlUUPSaBx9PSZvjZkkPX3+3RbicqEdsxz0j4OCAt22n83DC4VC\nqNXCOHx4DNu3TzalmzxM+khvPxRqfoqyXq+jUCggl8shn8+jXC4D0DtgTZ24JiNF6yaZvPLlgH2n\nXr8srxyxJPPZ1oHgnbadylaHppaQLdxCoRk5bz+9wH5sbAwDAwPo7e3F7t1DuPHGPu/F7RQCqlar\nqpevAd30kfVk8+SX08tfC4bBQX8FqVNvv9Fo4NlnhzE0lEF3dxmNBjx4cyhyT17z0GV8tdFoeB24\nCwsLKJVKTTCSZaB9tHWupYDM5IX6hXJkWrvAl3npukxDMrV9TNuPBUi0a5dLDfYyD78u3iqkTt18\nPo9MJoOZmRlMTEx4T/L29/cjkRjBvn0vwVNPHURPT9Ib5aMZFv5f5DF/G/hNsfxO4B4k31oAPuCg\nf9x0rLx9Sjt0aCNOPnmiJY/J4+ejJPioCX4zUqddsVhEqVRqGmdtuxbNs+dLXg4/T1+DcxCPlctv\nfP5SvWk6hq0Fo7UITOcPAhe/Mts8eb5uMoRSHLD8WiqVCorFIubm5jA5OYlEIoFkMom+vj4MDAwg\nFLoQt99+GLt3R70J3OLxeFNoiPcfSfBz+JuMAK8323/NVL9rBeZB5aB/HBUE/H55pJdPOnRoI3bs\nOOLlAVq9exL39uUQOQ6ter2OcrmMUqmESqXiHZe3FLQQjjQ0JiB24mHbjEA7xsDkCS+XpKHVOq9J\nMj1oWYJ487T0g70prMN/Z/770cvp4/G45/VXq4ujdEqlkvfilvHxp3DXXVXE489geHgYAwMD6Ovr\nQyKRQKNx9GEv/sIWvjQBXz54pgE/SFhnOVsCq0UO+qtAJkhyuB46tBGXX/5zI3A18ANQx0bTDVSp\nVLzH7uXwTA4AE7SWy7sK6qHbQL/cXr52jVoLy/Sdq1PP3u+a/OBuC+vwcnHvW8Kfroti9QC8UT31\neh1jY0/hiSdGccYZD3rx/2KxiN7eXsRiMTQaDe+9yNTBK8FPrQLNAPByyHVZtw74i3LQP85aTm+f\nr8/O9mNsbE79g0rwNxqNlpCOPD69ZLtSqXjzpJjKpAHQNBa/Ey9fHoPLNm1yO8biWMsU9mn3/EFA\nz5eyw9Q0P5EtxMNhq01lTcM05QtyIpEIRkamsX//C7wpnOl4lUoF3d3dnrGg/xm9VU2C3y+80453\nb0rTtNaADzjonxB1Cn5TiKRWA2q1MKLRCgD7XCU0VE6b64RuIgIp3Yh+8WjZqgBawxkS9u3eTEFh\n55cW9HsQBfkdpWTYJ0h+W5oplGP7aOCXQ1Z5OXlIhT9FS2CPRqNNQzh5OZLJOqrVuOf5LywseOeq\n1WqIx+Oet08tSu7t8xAPL4sJ+nzdwV6Xg/4JUlDwA/roDw7PcjmOeLwKKPPtaOfinXJ8/LQc1cNv\nQDqmVmZbszlok7odDziIB3+sgc/3C1J2UxgoyPFt+/k9payB3vTkrTwOlZuHd/j7cvkQTA5pru7u\nBqrVhDdtA8X8yeGoVCpeOv/wc5og78I4nclB/wQqqKfoB/9SKYp4vNKU7qdQKOTdUCbw+3n5/Fiy\nTCbP3gTKIPVgg2Cn25ZDy3W8oHWghWNkujbXPV+X0yxooR7g6O/EQywU+iPQk6cvIQ0A3d11VCpx\nb2grn7mTYM8HFfAY/vEAfbt514Ic9E+w2olxm+BP0NegK/enbfzm5i+gpm08ngocvVlNHqypZWEq\nMz+fVj5TnfAy8jRt3ZZm2x60BRY0PcgxtXxyH/kbSPjzN4rxNBPo5eRqQb39Wq3mefj86VwZjmk0\nGkgmG6hUFqdl4L8vefzVarXpv6LBXtatC9ssTQ76K0TtNP9l3nI5hlisYrwZNJCawKGNx+axfxn7\n5TenPLZWXpnWiZdsCjMFOZbfdAvttDg6aa20c17NAGgPpZk+3Ahon0gk4uXj60Ggzz18CX3uqXd3\n11Eux1v6ePg0H7YwmdPyy0F/BapdA7Do6ZdbAG/KH8QI0E1O+U3zpPgBXo7i0fZr52ZvB6wmwB/P\ncEynx9GAbwvpmKDPPXsCO8XX+QvuOfTlb22CvgQ+9/wp76KnH2uZooPvx/+LNuPWbt0v1++z1uSg\nv8IVBIjlcswa0w/S0ShvLunpd1pmPgsn324ybJ2ESPzCO0G2HU+1ex1+rbMgwCew83X54Xn4OTTo\nc9Dzjl05zj6ZrKNSiQIIIxw+egw+TJPi+jLcxD/adZvqM0jLYaX8F06EHPTXgCKRGqrV6DHpvAoK\nVH5MCXF5E3bq5bdT1qXkOZYKAnz+vR0vH0ATNGkp34Ql57+nJa3LdxHQb6R5+Hz0Dj1kRR20oVAI\nlUoIkUjteU+/5oUQafoGGpcvjY+8BnmddK1aPQZpKbfTml5rctBfAxocTGN2tj8QQNvpBDNNjmUK\n6Wgw58C3bfcri03t3rQn+iYPGs6hdRvw+XdthI788Jee0Dz4lMa38WNpXj4fwROJRFCtVr1j0sic\nUCiEublejIzkEI2GUa3Wm6ZpWFhY8ObZly9jkQZLM3LafFGyDtsxACf6f3G85KC/CuQHwoGBLPL5\nJCqVMKLRWst2v1EQcgkcvQHoRuRpQcvqN4yuk1EwQbXSbuDlCOnQUvN4TWPvbeGdWCzmfaLRqPfy\nEw5e4GioT8KePPtoNOqFaujcBPO5uUGMji4+iVur1VAsFpHL5ZDL5VAsFr3QDs3hQ1MzkAGh89ue\nJKbwk18d+8F9vcDfQX+Fqp0haKFQAwMDWczNtU7FIEdMyH058OVIHLqhNNCYy9Lq2Wtev/adZDtP\nkHpZqTdtux4+LbV1QJ9SwTT+Xnbe8lcdxmIxxOPxpg/lB9DU8crj8JVKxYvjmzqAp6f7MDycQblc\nRiaT8T6FQgHlchnh8OLLV0z/L/7/lIZN1iP9f+XQVq2V6fcfW6n/oeWQg/4KU6chmqGhNGZnBzA6\nOtuUR3aa8jS+Tc5vQjcx3ZByNIVWHhPwg8I/yPUvx814rIcG2spoCkPw9SBLvzH5HI5yZA73+vmr\nDru6upBIJDyPn45Nna4UfyevX/O6ATTF7J97LoFkchITExOYn5/33r5WLi+ONqM3bVGIKBQKNU3h\nTaJpHKhMfJ07J3ybA78uB/0VoqXG44eG5jE7O9AEcZlP8+p5vJZ/JzjQDSg9Kxq7D9gNgW3d75r8\n1Cm8l9qS6OS4Qb180xJofdm79tG8YQ3MBFrp6dN7bhuNhvfinEKhgEKhgIWFBZTLZW/mVQrvcM+/\nXC57b9LK5/N4+um92LbtAJ566ink83kvjk8hnVgs5hkR2+gdPjqIwj5y5lheXw78ZjnorwB1Anz5\nfWgojbm5QRX2tNQ8e+7da15cPB4H0Oxdkujmk+fSZtjkXr3sO7CFd4IOu+sU1u2EltqRH+T5dxv8\naV1C2wR0CXy/4Y8ctNVqFel02nsb1uzsbJN3Ti/TIa+fx/d5jJ/gXy6XMTn5f6Gn5z5ks096s7VG\no1F0d3c3hY34f49aJvJ6OMjpGmytTAd+XQ76J1h+sPLzhI96+mk88sipLflM3r0J9tzrD4VCnkcX\ni8WMD2jxcvCYKj+vdoP61UGQG5LkVy6TlsNw2I5pSvMDPX3XpkYwgV6CXTsm/134mPl0Oo1cLoeZ\nmRlMTU1hcnISU1NTmJ2dRSaT8bx+Dfh8+gU5904+P46pqZ8hHs8gGo2iq6urxVmg8nCngf5DVE76\n//CWqPZ7adcrwz/audca2G1y0D+BWi7gA8CGDRP43vdeikYDCIV04PMpFihsI29YOecO3ahdXV0t\nENLKIiHP88nr8ZvMzQ/I3HszSWtJSJmM0VIUNJyj5fUDvfzu5+2TuMHnHbMLCwvIZDKYnJzE4cOH\n8cwzz+C5557D9PS05+GXy+WWcA6fEZPH4Y/2I+wGUEClMoFotKupP0FKc0rkf5iWmtduciw0oLcL\n+bVmFBz0T5CWE/j1eh1jY9MIhxuYnBzHhg2TxrCODfhkGLj3FolEUCwWvQ4+bYSGXJrALwFseoWg\nFsqy3XRBwG7Ssbyhg3j3/LsEOs/XLvQ1ca+Z3nJVLpeRy+WQSqXwzDPP4PDhw5icnEQ6nfbei0x1\nxI2J/C/yMAqBvVZ7LRKJ7yORiDcNDeUPYWlA1jx6+Z8yhXq0a9fCPFrdrCWw2+Sgv0pkAz6w6N2f\ndtpjOHDgBRgfn/DyaSEduU0DPsVfgUVvP5FIIJFIqGEem5cmb0Z5HdqNZgv3aNuDGAXTsYO0FjqR\nDfgy3QR503Y/8Gv78dAJQbparaJcLmNubg6pVAqzs7MoFApoNBreuH06Fh/qKePwMsxG+TOZ16C/\n/ytNI4L4w1+2cKEm/p8KkteWbz17+w76J0Dtevmm/LLTdvfuR/GDH/waXvKSO6wglqCnpXxhBT1M\nQyMt6OalUA8vXxDwS3WaHtRQyPqhYyxF7YSCbHlME4rZ4G5a17x7zYPmSwJ3oVBANptFNptFqVQC\nAG8YJwc67/DlzgFvRTaXbwTV6pno77/Xcxakp0+tAj/4y3OYnAgtvOPUKgf9VSabt3vSSc9gdnYY\nmUwPenuzTdtMXr6fYaDmvfYgDzWZZXjIJgl0G+C167SlyzRtbhZT/dma/X75ghoALbzTKfRN3wGo\nLTGqH/4pl8vecEx6Opb25y9GoTQ+jDcajRqhHw6Hkc9fiWTyHnR1AdFoM/C1qR78QlPyWgB44Udt\nm2k/aTDWo3Fw0D/OatfLbydfOFzDrl2/wmOPnYq9e+9ruSFpP/7R0iT4i8WidzPLOVKA1rHRQcDP\nr6HdOKtMl8fRjmvKw7XcLQNudGzAp/WlgN+WDjQbOzLk1WrVG1NfLpebAE+/Lx/JRf8Bm5GnPDMz\nr8Dg4E+awjoyvNMp+I+V1osRcNBf4ZLNWpkmv+/e/SgeeugsnHvuvd42HsbheWU81nR8CgMARz0+\n8voJ/DKcE0QmLz/odlO+oPtJaS0DkmZA/fbRQM/Xg8A/yLppX9s10FOzpVLJG4opX2zOR9rI8I4t\ntNNoxJHPX4KTTvp8i4cvO3Llw1hafXUq59XrctBfhdLgQ2m7dv0Kt9xyDcrlOGKxknF/6eWbvFz6\nVKtV5HI5bxvdrH19fS0P02gA7tQQ+MVutfNo/QjLYRgklLRymr7ztCAevrZNWwf8XzjCRb9zvV5H\nuVxGqVTyhmTKF5rI0VXS0+fH42XKZl+MZPJJ9PTkEQ43x/G1zlztKVy6rmNhDDrVWjEcDvorSDYP\nPuj+XV0l7Nr1K9x//15ceOHdAJrDFu0cUzbpa7Ua8vk8QqGQd/OGw2Ekk0nv2O0C3wZHE1S1Y2pp\npnAP/+5nYIKUU5PNCASFvLZNMxi2lgOJrolDm4BP76qlEVv8uNLbpydmZRiQG55U6i0YH/+uN9JL\nmytfDtu0ef1+de3Unhz0j6M6CTn47asZissuuwM33PAW7N27D5FI2XoME+Dkh893srCwgHQ67Y3I\nCIVCiMViavmWcrOavHGbp69t7zTcs1S1G94xAVyDuZyHx3Y+GeagTtxiseh14hLwZXiHH4/grvUJ\nUTmz2dNRLJ6CLVv+CJFItAXwWmhHthS1KSa067SF1pzMctBfZfLrJAWADRuOYMuWZ/Hzn+/Fi170\n7y3bTeEckmxiS5g2Gg0Ui0Vks1l0dXUhGo0imUw2hQNMsG/XCJi8Vgk1nldCzrbN7zidqFMv37QM\nAvugIRD6DfmLTMrlsjdyR4vRE5S1h6XkOZ999p046aS/RzzeQDgca4G7NsWz5ulLj9/WirFd63Jq\nrbQ2HPTXgDQ4XXbZv+HGG9+Cc87Zh3DY31BoohucPCrZ6Vsul5HP55FIJBAOh72lFtZZzrisnydv\n8/qPh5YL+hL2pu3tgrFSqaBQKCCXy6FQKDQ9iCfLyZ9klcaQj/YBgGx2F3K5U3HOOZ9tmiNfhnXk\nyB35sJYtlCVlaglp+ZwW5aC/RrVp0xGMj0/goYf24pxz7jGOzOGy3WxyKGaj0fBGfywsLHgv3ohG\no15+CYvjCX5T3nYMQqcG41h5+rZ1bSmvIxRa7JBfWFhALpdDNpv1xufLffjvLY041QkfIx8KhXDo\n0NuxY8c3kEg0EArp8XoOfB7aMQ3d5Nv4dZvq2MHdXw76a1iXXvpv+Na3rsdZZ92LcLiq5uE3NAcc\n3fQSLtx48HHefIoGCvPYYKeVI6hMISQOJb7NFNKxrZvKZTMsfuk242faJiFngr2fYW00Fsfnl8tl\nZLNZZDIZ5HI5bw4eeU4Zv/czgNnsDqTTp2Pv3j/3DD+HtvbhXr8J+H5141fn7aStF4PhoL+GtXXr\nYYyMTOMXvzgHZ599rzWvzQvXDAN5+sVi0ZuiIZFINL3U2u+4poeX/GTqkPbrTwiqTjz8dqDP17V6\n8gvlBIG+Vp5arYZcLof5+XnMz8+jVCq1GHZT+fyM3ZNPvgm7dt2MRKKOUKh1bD+dQ4Zygi5tHn5Q\nyNvS15Mc9Ne4Lr30x7j55utx6qkPI5Eo+gJNNuVNwKcPvVmJ5uShNy/RvrS0QY2fO4i0a9DSuJeq\n5TOtd6KlQp/WZZ2ZYN6Oxw8s1gWNupqbmzN6+aZrsV3H7OypmJk5Ey960VeMnbE83dR5awr1mOop\nqOfv1CwH/TWu7dufxs6dj+KHP7wGr371P3nppphtkDg5jf6h2TgBeLMykrcvwc/PS+m2VoCfNKjx\nNFO4RnurF8+vtRZs4Z6g5QvS4ukU7H4tAep0n5+f996GVSwWW/pcbMc3qV5P4r77PoC9e7+KRKKC\nUKg1tCOXQTx9XhZtJE87nrwb2tksB/11oJe//F/xta/9Nh599EyceurDVq/WdNPLcdkEfnqDEnB0\ndkY+PQM/jm1s+VK9NJvB4uscALxjWl7rUhWkFWODvVy2A3oJxWq1imw2i9nZWczOziKXy3nvpDV5\n0Fr5tTLcd987MDb2KLZvvw+hUKTlt5ZeuxbyMaVp5WinU1fKZnj9/n9rqRXhoL8OFI+Xcc01/4Rv\nfvNt2Lz5IHp6Mt427uVzmbx/PlyPwF+tVj0PmsAfiUSQTCaNN6gf9Nu5yUzeufTied5Go+G1RrQH\njWxlabczV+YJAnlb3nYMQL1eR6FQwPT0NKanp5FOp1EuH31gD9BBytdN5zxy5FxMTp6Lq676PSOw\nNeDTOgA1pGOL55sMk8n7X0uwXi456K8TbdnyDF74wp/hu9+9Dtde+7WmbRLwft43j+lTmIcP/dOG\n5tnApJ2rnZu1E+9c7iONAr9Obd92ZOqwXk74y+10zlKphLm5OczMzGBmZgYLCwveyBwbSE1xdVov\nlfqxb9978OIXfwldXSWQl2+CvW29HeBrv4VWp6bvprT1JAf9NSANYJrHesklP8LXv/4+PPjgRXjh\nC+9u65iauHdM71uVk3YB8ObmoTQNUnJd+95Oefl307rftZrS/TrCbWk26NP6UuAPHAV+pVJBJpNB\nKpVCKpVCNpv1DLP2O9B+fgYBCGHfvndjx447sXnz4wD8x9h3agTkdZoMQDv1bsvXyfbVJgf946hO\nPFIp+ZBUkHPReiRSx9VX/yNuuOG3sG3b4xgaSrXMl64dJ8ifnsCfy+Va3sYFLILfNipjKcDX9vEb\njy2XSPEAABxcSURBVK913GphIJOR6KRM8rsN7nLZTl5gMfyWz+cxPT2NVCqFubk5L6xj86L9wBsO\nh/Hkk5chnx/H5Zd/WW3FBXnQiq/7nVdL4/Xi9x9aa9Beqhz0V7kklEyQorSRkRQuueQ2fPvbb8Ub\n3/hlRKMLTdvlqB5+DNtNReu1Wg2ZTAaVSgXVatXr6B0dHUVfX1/Ly9Vt3thSblYN6H75ghyr07LY\n1k1p7RgDvj+F22ZmZjA1NeWFdQAE8qxtMfm5uW2477434cor/1/EYnWEQsFaBxTmozIuBfiaAZAy\njdhp9z+2Fg2Gg/4Kkg3gywEn2n7uuXcjldqIf/7n38Sv//pfIxKpeDeR3/ls3hZ9qtUq8vm896KO\ncrmMcrmMsbExDA4OepO02QyJX9pStVSQt3su0/d2PHjTNhI9QVutVpFOpzE9PY2ZmRlks9mmh7Bs\nnrctHJPNbsCPfvRhXHTRDRgZeQ6A3UhQGYN6/ibgm+rBVhe2ul7vctBfI9IgRn9yaUjCYeCKK27C\nt7/9ZnznO2/H1Vf/LYBq0z42rw1onYhLPl5fqVSQzWa9p3b5Z2RkBL29vYjH4743ZZCbWZMtvGNq\nCdmM3lKMRDvQp/Ug8Oei36NWqyGbzXpx/HQ6jUql0vQ7SdjS/iYgh8NhFApDuO22/wcvfOEtOOWU\nfW13BHe6nda1erEZv05+l/Ui99TCKpTfn1XzhuSNEIkAr371P6BWi+EHP7ge1Bknj2+Dkg0SBKFC\noYBUKoVnnnkGhw4dwqFDh3D48GHMzMygUCh4U/qajm86p60cEmqm8EWQIYFBz9fOvvI3suUxXbv2\n2/LhmalUyqtjMmjy97HVBzfipVIvbrvtI9i9+yc444w7mrZpo7O0h69MwA+yXauvIMDX/sftaK0a\nBefpr3CFQv6jTfh3Lb/cF1j0eKPROl772v+Fb3zj3bj99tfh0ku/ZQQXBwf3nOXNT5Ot0bJaraJU\nKqFcLnvT+dJnfHwcw8PDaqyfl1Urv1+6NnrpWEl7TkCT7do00NPSZnhJMo6fSqWQyWTU0TpBRtTQ\n92q1Gz/84e9i27YHcc45312S4fMLA/lts9WHX/3afov1Jgf94yw/KB/LfTXjEI9X8LrXfRX/9E/v\nx759V+KCC77n62lyONCYbw3+/KUb1WoVmUzGe/kK/1CsP5lMejN18nKb5JePP0jGr2W5Y/ntACQI\nqPwAx71f4Oj7bufm5jA1NYXJyUnvISw/4GteP31vNOL48Y9/B8PDh3H++d8K5JmboC09dplH26bV\ngQ34QR2CIFrLRsFBf4UpKJS0fDKN/3G1oYq0TCZLuPbav8I//uNvI5Eo4Oyzb1dvNC2OT0CVnr58\n4pXSS6USKpUKFhYWvCl+M5kMxsfHMTo6iv7+/qaOXtO1a8Aw1RGdWxuVZJKpT4BvD6IgIDKBPwjw\ngcXx+Ol0GpOTk5iYmGgJ69iMthnWUdx++3uRSORx6aU3IBLRZ7ukJ2pl2WwGQcvD09oFfpD6NOXV\ntJaBDzjor1ppgJdhhiBhHlr29GTxhjd8Gd/4xvuRy/Xjwgv/BUBNvREJ/uTly3UOfyoH7V+r1bwX\nrJdKJeRyOQ/8mUwGY2NjGB4eRm9vb9OMnSQJPc0AkGTnLIe/zSAeKwWFlQlacjRLo7E4kVo6ncbE\nxASOHDmCVCrlPSvhF7s3efnlci9+8pP/G9FoBVdc8RVEIs3w5mUxee4yv8m7N+WT9WEDfjtx/LUO\n9CBy0D8B8vPm/YDe7r4kArL2cFcoFMLAQBpvetMXceutv4l//dd34+Uv//8RixU9IPD4MADV06fz\nLPYZNP+9uOdJT/Cm02kv5JNOpzE/P4+xsTGMjY1haGgIPT093qv3bMDXwG+aRoHXgebNayN5KF2r\n105lA748voQjcNTDP3LkCJ599llMTEwgnU43TaYm4U51aOrczmQ240c/+gC2b38AF1zwTSPwTaNr\ntGPbPPd2PPvjAfz1YBQc9FexTAAnBWkN8Bu1Vqshmczj9a//Mn7842tx000fxqte9RX09qaa4MCN\nB/foySvX0uhc3HDUajXU63Xv5dyFQsGDfzqd9kI+AwMD6O7u9l7QQseS0OLXQ+Amo8Q9fGn8/Lx+\nraN2uYZvBsmr7UNz6hw5cgSHDx/GkSNHMDc3h2q1qsbdNU9fAv+5516IO+98N170on/Caaf9u5rX\nlCbPQd/bBb0tTSpo30+Q7UHzrAU56K8SBfH2bXk4yExeLIEwGq3j5S+/EQ8+eCluuunDuOKKv8HG\njY96hoHAT/sR5HmoR3r5spz0oemZ6/U6crmc5/XT253S6bQX8uHxfj5fvwxT8A5cXlbeMuHfZf0c\nL08/qHh9Ub/I7OysEfhBwzhHW2ch/PKXV2H//lfh5S//EjZtehKhUOuDWrbRN34jc+R1BAG8Cfh8\nH9N2J7Mc9E+QTOBejuOYgKWBTW6jfcLhEF74wjswODiBH/zgXTj//H/B7t0/8UApQzky9i7TTIDg\n3jeFfObn51EoFJDJZLw3PY2NjWF0dBRDQ0Po6+tDV1eX93AXBxk/Px1fmwSuk87ydvbtVLZ+hVqt\nhmKxiNnZWTz77LN47rnncOTIEaTT6RYPP8g6ANTrMfzsZ+/E3NzJuPrqz6K/fy6Qd89bVkFG5mgt\nAFqXaTJdql3gOy+/WQ76K1RBjYLJo7cdw+Tt0w3MH9nfvv0xvP71f4HvfOe3MDOzGRdeeCNCoXJT\nmIefg9Ki0aj34JU8B38gi85FS/L6y+UyZmdnkc/nPa9/bm4Ow8PDGB4exsDAAPr6+pBMJj0DIPsV\n5NQDlG6qv068/OUyABL2skzVahULCwtIpVI4cuQInnvuOUxMTGB+ft5rfZm8fBO4S6Vh3HHH76C7\nO4NXv/pPEI+XEQr57yeBr3nuft493ybTtHqW+U3bpRzwW+WgfwLlB/ZOgE7bAPNDQ6bRKqabcnh4\nGtde+3n86EfvwE03/QEuvfR/YXT08Sbw03Glx0/HqdVqTeejNO7xcwNAnn+xWESlUkGhUEA6ncbs\n7CyGhoYwMDCAwcFB9PX1obe3Fz09Pejp6WkyACaQmOrUVvcmtQMMv+Np5aJ6yGazmJ6e9rz7yclJ\nb06dSCTS8t5ZG7BDoTCefPKleOCBN+H002/DOefcilCogXA44jtKx9QRzPOTtCGcNtDbvHt+XJnH\n9Bs44Oty0F8DsnXoal6raT9+0xGgKU93dwlXXfX/4fHHz8Vtt70fO3bsw96930I0ujh7I4e/FDcG\n3KOnJR8ZxMvFjUEul0OpVEImk8Hc3Bz6+vo84BP0e3t7m9K6urqaxpGfaJkMiQn2NCQzk8lgamqq\naVhmPp8H0Axf/tIaGjbLDUE4HEYutwn79r0LtVo3XvGKz2N09HDTvp0CX3rhQcI5tiWXrcN2KcBf\nr3LQP8FaLm9fO4705k0erZYmPanFmz6EU0/9ObZu/SXuvvsNuOmmP8bFF38dW7Y8YL3GaDTaAnvg\nKBg44An4PBbPlzTSJ5PJIJFIoLu7G11dXeju7kYymURfXx8GBga8lkB/fz+6u7tbJncjcaMnw1TH\nWtr5CPZ0rel02gP+5OQkZmZmUCwWAcDz8DmwTZ4+EMOBA9fgwIFrcNZZN+P003+ISKQBrcPWdBwg\n2NO3pjRaty2ljiXw16thcNBfhdJgbzIOWrqU3pHbPC6fbr5arYbu7gW87GVfxzPPnIo77ngbRkcv\nxvnn34BEIq3emKY0Oj6N4OGjg/goIYI+rdM8M+VyGfl83gNfLBZDV1cX+vv7MTg4iOHhYQwODmJk\nZAQDAwPo6enxhn2axvBTfdi+L6c47AF401HncjnMzMwglUphcnISk5OTmJ+f92bM5LAnr94E/3T6\nBbj//veiq2seV131hxgYmG0ZwbPSgK85HnK7Jgd8fznoryH5tQoAvUNStggonxziSLChjtitWx/F\nddd9Cvfe+2rccsuncd55N2LHjtsRDh89p9Zi4B/e2aqNo+fDLvlzARyW1WoV1WrVG+ufyWQwOzuL\n6elpDA0NYWZmpqkDmOb4kdcr60f7vlyS10AvmC8Wi8hkMt5MmVNTU5ienkYul/MMofTwZViHPvV6\nNx555M145pmX4JxzbsCOHXc9P52C7t3zlkG7wG9ndI4N5nQsLgf85ZWD/gqQhHWn2035NPgDrSNE\n+DY+KodCIHy4Ji1jsQouuuifccop+3Dnne/AL395Bc4662Zs3rwPoVBzf4Hpw1sV3NDQOvfyZRhE\nwpri4OVyGblcDnNzc0ilUhgeHsbIyIgH//7+fiSTSc/z1+pFark7dqluK5WKNyVFOp32PPzp6WnM\nzc2hWCx6Bo979hrwF3/LHjzxxKvwxBOvw/j4w7jyyo8gmcw35aXfU4O9X2y/HeAvp3ffTppJ6x34\ngIP+qpHNi+fSOme1Mfmm/WSLgMOXfwfQZADGx5/FNdd8Bk8/fTYeeOAaPPjgtdiz52Zs3Xo3wuFW\n745/+Jh6Gq2ihXaohcGBr8XC6VilUsnznGdmZjA9Pe1Bf3h4GENDQx78Y7GY1/EZxACYZOo056IW\nDL1ghoalzs3NYXZ21vvQS2iohWXy8GlZq/Xi4MFr8NRTr8Xo6H5ceumnMTx8uCXsQ8ej73KUTdAP\n/W+OB/CX6t23m3cty0F/hcjPm/fbx7Tudx55o8lROzIf9/KBZvBHo2GcfPJD2LbtARw+vAcPPngN\nHn74DTjjjJuxffsdiETgAZmOSV6+PD/Bnnv7vEzS6+cveJcTqpXLZc+TnpmZwcDAAIaGhjzwDwwM\noL+/Hz09PUgkEt70zhJE7Uj+FmS06P0CCwsLyOfzyGQyTc8hpNNpZLNZr7NWA74Ef63Wj6eeej0O\nHboGGzbcj8su+0MMDk40jeCRHrwGb1OH7rEG/rEO57Sbd63LQX8FyQ/8QQ2DqVUgDQPQDCctjSQ7\ndikNQEvIBwC2bduPzZsfxpEjp+Ghh16Lhx++FmeccTNOOunfEIlUvONxUPOx+hz2HJzUAuBl1ebX\nIfHOYhn2mZ6ebhrlQw989fT0eCN+KPwTxAjIstL1EOjJq8/n88hms00zjGazWeTzeRSLxZbYveys\nPerZD+Pgwetw+PCrsXHjv+MlL/kI+vqmngd9cxhHg7/W6WsK8wQBvgZ9/j/yA76pBaDJAb9zOeiv\ncpk8/HbDPO2EgPixJfilUdqy5VFs2vQ5TE7uwkMPvQ779/86du78EbZvvwPJ5FQT6Ak0PMQjO3L5\neSXwa7Wa9/IWU13VajUP/vTAU09PD/r7+72x/zTWP5lMIplMIh6PIx6PeyEgDlMSN1q8Y7lYLGJh\nYQGFQsEDfi6X85aFQgELCwuoVCpevWte/VHjE0EutwdTU1dhYuKl2LTpdlx22QfR2zvdEvKhY2kg\nDzISh9dbO8Dn+8k0+X+SeU3fg25bSt71Igf9FaZOvH0T+E0ev7bOJeP7PB1onaKZe+aUj0BAaRs3\nPoENG76AVOok/OpXl+G22z6L/v5nsX37Hdiy5S5Eo9kmb53OIz14GeuX2yXwTTc9xdRpeOTs7CwS\niYQHeg598vop9EMTvsnWBoVvyKhw4BP0FxYWvGcNqtVqk8EjuGvAL5W2YWbmKqRSr0Qo1MDmzT/E\npZe+H8nk3PNgb24VcA9e8+y5EbB13Jq2Ud2aQjk24JtaAn6/mYP98shBfxUqqGEw5fPz+gE7+HmM\nncfVyZMm+PIOQtpnfPxpjI5+Heed93d49tmzcPDgpXjoobdhfPwhbN9+O8bH7/PCP7wTl4dNZKyf\ne/t0PtlXwNN4OSnERHBOp9OIRqOIxWLew1+JRML7cG+fG0EaOspbEsVi0QN/uVxGpVJpMlYcyhLy\niy2WIUxPX4mZmatQLG7F+PiPcOaZn8Xg4BOIRJpH8UiIS5ib0qSXL7dT/fF65OvtAt/F70+8HPRX\noPyg3s4+tjCPBD9tl/uaPH7N+5bvxqVjc9ACQCxWx0knPYht236OUqkbTz99AX71q9fgvvvei61b\n78aWLbdjePgxhMPVJqibOm15GoFc5qlWq6oBkJO9Ufw9m82qUOYjX0h85JH88LLw49E6hW6i0Sga\njT5kMpdgbu41yGbPw9DQ3di+/esYGbkf8XiroZDlk9C3GQEJfPnh/wcN+Pw/peXR/otyH/kf1uSA\nv7xy0F+l0iAvvV2/MI/MA7TC3wZ+GU7hoJexd55O+1IZurtLeMELfoJdu/4NudwIDh58MR5++F3I\n5TZgZORRjIzsx+jowxgY+BVCoUoT5GU/AzcCfEnll9NBUB451w//kPduGxEl65W+c8BKAC8+aNaH\nhYXzsbBwAfL581EsnoLe3ocxNvZ97N79GSQSJRXmQZ7GNYHdFNfXvvPr0AzCcgDfwf74ykF/hSqI\nt++Xx+TNy31lPsrrB37axuPwlEbH5CEaOheHLD9Xo9FAX98szjzzX7Bnzy0oFnswNbUbU1Nn4MEH\n34t8fgOGhx/FyMgvMDLyCwwMPA6g3HQMaYgkrPhDYLQuO475R7Yu+LXIuubXboJoo9GPUul8FIsX\nolC4EOXyKUgmf4G+vvuwbdtfor//AGKxGgN760NYNuBrY/K1OL8EuGYgTHXI07R17T8i68n03S99\nqXmdHPRXtIKA328fP/BT2lLAL7dzIyA7eDmcefhHhmMajQa6uwvYvv1+bN16LxqNBkqlHqRSp2Fq\n6gw8/PB7kM9vxtDQo+jtPYhk8lnvE49PIhRqnr2Tf7ShoRrw+Wgh3rksw1a8Po/CrwuVyjbUaqeg\nUtmBSuVklMt7UCqdgmTyYfT23ostW76A3t5HEI3KIZqtQzUl7AnwJuBzQ2ML5dDvwstvMwat1+mA\nv9rkoL/KpRkGk7Ew5eVqB/wEUFry7TysI0FriscDaDEc1E+waAQWsHXrfdiy5d7nY+9JzMzsRja7\nBdnsTkxMXIZ8fjPK5V4kkxNIJp9Fd/dhdHc/g66uZxCPTyAUyiMUyiMcLnpGgS+5h695+otlbKDR\n6Ea9nkS93odqdTsqlZOfh/sOVConoVbbgGj0OcTjh5BIHEIy+ThGRv4VPT37EYkcfa3hIsxjTdCW\nwOfbtBAPbedwDmIA6DfVWiV820oEvoN953LQX+EK4u37gZ+vy45d07HaAT9PN42TlyEfSuOtDD79\ngmwR8Ng8rXd3F7FlywOo1+9vAnO5HEMutxGFwmbkcpuRyZyFI0euQrE4inq9G9VqN4AwwuECIpEF\nhMOF59cLCIUKyGQuRyw2iUTi0efBLj/dCIVKz++XRyx2GPH4IXR1HUJ//51IJJ5GPP4cIpHmIa1H\nwXsU8gC89wmbPHo+P5DcrsXvTSEe6ckHAb78b2iQPxEevlPnctBfBeoU/KbtEvwc9KZQDxcHM++8\npXUe56djcY+Z728K7Wijb0z5ZKshkagiFnsag4OHmrx2vl6thlGtJlCpdKFapU83qtUuJBLTiMUm\n0dX1KMLhHEKhRaMQCuWeB/0CGo1qS53w+lysO/3BKO51y3CNBvMgeYIA3xTm4eVuLr85ni/z2epC\n/g9N/88gcoZh6XLQXyUKAn6/fZYT/CRbHs3rl8D3AzovC9+Hn18rt+xjIOiR0QmH64hGF5BIFFo6\nbUdH72w5V3MHbgT1utkLpus0LWXHKsFaftdgbzMYJtBrYR7tu7wOP8OgqV3gtwNxB/zlkYP+GpJm\nGJYL/DxUJPPLDl4OaZvXz8vFy0HGwmYY+LnpWmT/AYHQNIxT64OQM3wSxGQHruldwHIpoarB2ARz\nLZ2++82lY/Lsbd6+XytAuz7t+v222dJMcsBfPjnoryIF8faXA/wkzYvnadyD1voPuLQ8vA9Agp5/\nl8aFw5e3DICjHcHSUGnevyy/DD2ZRuzwpaw3E/glcDUw+8Fe8/hN+fxCOjawm4yBdn1yX9M2KQf8\nEycH/VWm4wF+2g4Emx+eZMorPXzpXWt9AVQuLb4PQDUKmjHgRkFrJchWCc9r8vL59fJ8/HolUG2x\nfQ3gtjSbobAZFBv0te38WvjveryA72B/bOSgvwp1vMEP2N+yRSL4ydE9shzc6+d5ZHyeyiNbBppX\nrqVx8NN2LWwljRFdrykUZap7k9csv/P4vh/4bWC3wT2Ih28Cvul6ZBq/LtM2Wx3Z5IB/7OSgv4a1\nXOA3QR5ob7I2fjwZQuHbNfgSXKSnLztr+bH5VMvSmGj5uafPz03rfGmTBnr6rnWiUp35QZzyml6M\nou0vy2EDPi+/BvJ2IL4UaDvgH1s56K9SBfH2TfmWAn65BMzg58A2SbYOtHCPFhKi7RzksoVArQIq\no9aS4H0B8pyaUQrSwtKuTy41j10aA78wTRDgm45P2zTjIK/F9PvxsFYQUC9XHqelyUF/FSso+IPs\nu1Twk2xpNgNkah2Qd8+Hf2qtBb7d1BcgwzX8OPKYvC6CevsSkn6etgZvG8SXE/haPWvwN+W3Ab+d\nFkG7eZyWLgf9Va4g4OceuW3fpYDf5NFL71t6kvz82ggfzfOXxsG0Pah3L8M42nMAWv351bf0nIN2\npvIlpdsMgx/wtbKYyuCAv/bloL8GtFI8flvoJ2i4h8NZQkqmtTP2n8QNg2wR8PJyw8DP2Wl4xwR5\nWtoMQSfAl8ZGlkkaAVl2E/DbufZ293c6PnLQX0cyGYelgF/KL+avwdt0XllW6dGbQkLadltoR0uX\n5Q7q7Zu8ZJNHzQEdBO4ynwn42vnkdlO5bDJ5+UsBvjMMx1cO+mtEQb395QY/X9cgr4kfT3rREiT8\nbVumY8ly8PH5tr4A7UPloKUN9rK+bOsmD5+2yXUN/rRPO8C3tQCkt28yWLyutWtcihzwj78c9NeQ\nlgp+Wz5tHz/wy3x8aQI/F3nrQGuYRZaDD8PUWgRayEiWT+bh6abr0o4l1zWv2g/MfsDXgGw7rixj\nECMVVJ16+Q74J0YO+mtMSwG/bV8NerbjUF7Nk7eB39RK8Bvdw8fYm2Bi6ijmaTJdArLdmD4/rhZK\nCQp8P4Nhgji/9iCwN+lYePlOJ0YO+k5NkhD38/Z5um1fUz4T+LXvGvj58YKAPxRaDBnx4/vVgzQM\nQaTBXa5zkNo6cwn+tu1+5wxatiD1Yvvut387eZyOjRz016CW4u1r6SZIa/sEXfJ95DH94M/TuIL0\nK5hCRn51ppVBO4cGTpt3D/iHZvwgbPL4tTydSI7+cVrdctB3alvtGhUb8G2tARLfx9SpLBXUQGij\njYJck3ZcmwHQ1oHgna/tGAQb4KUx0soaVM7LX51yJnydq51wRdB9gm4PekwJMRNA+TYeC9eOFeSY\npvPYIBzkHEGuuR3ZjiNH7CznsZ1Wpxz016iWerN2sr8fuIPu6wdKPy82iJdL8ht3bgrTmI7v5/22\nYzxkJ65cl0/cBlU7Btxp7cmFdywKh8PYs2fPiS7GCZMM4ch4drv78O/a+He5bhojT0Mr/Y6rHVuO\n2LGd1ybTiCWTtNYD3+bXwtAMiubFyxZOkFaL33WYDIszGK0aGBg40UXwVagR5B/u5OTk5LQm5MI7\nTk5OTutIDvpOTk5O60gO+k5OTk7rSA76Tk5OTutIDvpOTk5O60gO+k5OTk7rSA76Tk5OTutIDvpO\nTk5O60gO+k5OTk7rSA76Tk5OTutIDvpOTk5O60gO+k5OTk7rSA76Tk5OTutIDvpOTk5O60gO+k5O\nTk7rSA76Tk5OTutIDvpOTk5O60gO+k5OTk7rSP8H2Y2B11XMdbcAAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = linspace(0,2*pi,50)\n", "path = array([150*cos(t)+200,200*sin(t)+300]).T\n", "imshow(u); plot(path[:,1],path[:,0]); axis(\"off\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simplest kind of fitting is to update the curve iteratively by:\n", "\n", "$$ p_t = \\phi $$\n", "\n", "This means every point of the curve is just drawn in by the vector field, and eventually comes to lie directly on the edge." ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(-100.0, 700.0, 400.0, -50.0)" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAABJRU5ErkJggg==\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# iterative deformation of contour by GVF\n", "t = linspace(0,2*pi,50)\n", "path = array([150*cos(t)+200,200*sin(t)+300]).T\n", "for t in range(10000):\n", " dx = array([u[int(y),int(x)] for y,x in path])\n", " dy = array([v[int(y),int(x)] for y,x in path])\n", " delta = array([dx,dy]).T\n", " path += 30.0*delta\n", "imshow(u); plot(path[:,1],path[:,0]); axis(\"off\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(smoothness constraints)\n", "\n", "Usually, we want to impose smoothness constraints. This is actually again a kind of diffusion equation.\n", "\n", "For example, we can update as:\n", "\n", "$$ p_t = \\phi + \\alpha p'' $$\n", "\n", "Here, $p''$ is the second derivative with respect to the path length.\n", "\n", "This update rule will have the effect of ``diffusing the positions of points'', i.e., smoothing the curve. We can do the same for second derivatives, i.e., curvatures, and end up with:\n", "\n", "$$ p_t = \\phi + \\alpha p'' - \\beta p'''' $$" ] }, { "cell_type": "code", "execution_count": 127, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(-100.0, 700.0, 400.0, -50.0)" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAADaCAYAAABKF5KzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXmcJFWV739ZlVlZVV1b790s3dAtTdM0tA3dKLssDYh0\nI6Cog8o8HWYGR/3ozMcZhzf6PvOZcZynz6fviTKuo6MIKvhklbVBRJu1QfatERp6qb0ql8o98/1R\nnOiTp869EZG1V97f55OfiLgRcePGjYzvOffcGxGRSqVSgZOTk5NTXahhugvg5OTk5DR1ctB3cnJy\nqiM56Ds5OTnVkRz0nZycnOpIDvpOTk5OdSQHfScnJ6c6koO+k5OTUx3JQd/JycmpjuSg7+Tk5FRH\nctB3cnJyqiM56Ds5OTnVkRz0nZycnOpIDvpOTk5OdSQHfScnJ6c6koO+k5OTUx3JQd/JycmpjuSg\n7+Tk5FRHctB3cnJyqiM56Ds5OTnVkRz0nZycnOpIDvpOTk5OdSQHfScnJ6c6koO+k5OTUx3JQd/J\nycmpjuSg7+Tk5FRHctB3cnJyqiM56Ds5OTnVkRz0nZycnOpI0ekuwExWpVJBpVKZ7mI4TaAikUjg\nbd21dwqrSCQS6j82HXLQt6hQKOAb3/jGdBdjwhTmz6htK9P4sjavTfl2DQ0NVenadnyd33ounrff\neZnEoc/ny+Wyuh13ErRprWm24/mVVRou2zq/dL91NtWLAb3ggguwbt266S6GVS684zShMkHWBFsb\nhDWYmwxNLWULs73tuDaDN5ka7zGm0iOd6d5vPclB32lSVOtNPp4WBkl6+dJ4yNaD9rMdy9SE14Dv\nZxCC5EPnE2SfIPmPRw7es18O+k5jFOTGrgUsWmhH29/k4QcBmwb8IPnajifnbeWp1UiYQmImTVSL\nIoiRnSg5gzEz5KBfJ5qKUEDYEE5QIJvStD4CP0CbPHrTOr8WgWa8bGWwwdqWJr19bZsgRjHscW3H\nc5qdch25daAwN+lE3NB+XqgN9qYQiwnIgD2cEwZ4srMxEokE6oBsaGjwOltN51ypVHzX8W1kWqVS\nqTqOLJ/c1rQ+zHnZtguah7YfnZ/T9MhB38lXmkdsWmfaN4xXb/OyZb5yBJApL7/zoOVaYUTlkPDX\nQC7nuWzbTCb4Tec+GeB3ml456M9xTbSX7xc28IOtDIeYvHdbSMW2rymfoOcqwRnUM+XeOA27rLXV\npMGel4Mfg5+L1jrgZbPNy3y0c7Odd1g5j3/65KDvZFUYQ+AHXBuwtXQT8Cl2b8rLBP+g52SDKV/P\n4S5Bqj3YN56wimZEIpGI6vVrBssGfn5OpuNPlsfvWgtTLwf9Oayp8vKD5qeBXqYHBX5Qz1+bBj1P\nU9hETm1edKVSQblcDmRoJKTlvNzWFu7RyuLn5Y8X/LzOwsiBf2rloD9HNRHAH4+XL+e1kTVhfybg\na0/2ToSnL5dtT9Bqy37GQa4L2ukq00zhHl5+k/fPz2W84A+y3rYfL4vT5MlBfw5qMoCvQdM2lcCX\neQWBO22rwT5Iq0BrVWjlkZKvPdA85SDQNoV8gnj+Npn6CyKRiQ/3aDD2A/R4PHfn9U++HPTnmMYD\nE1MeYYHPZfLCg3jztH8t4OfHNJ2DSeQ5A+Z36Ni8dZMxkMc2GZcw0JMGYKZ4/ePx3B34J1cO+nNI\nYYFv8hZNy36tAj/PPwzw/ZbJmAQJG2ll8pMf9LWQjrZe+zU2NqJcLntTXi5qBQQN+dhgbPL65Xma\n4D+dXv94jIaTXQ76darxAN8GULndeIEvQa9tA+gdvDbgm+DPIWMCPp+X4Zog0K9UDgy7JONF+fBW\nBpWzVu/f79kBvzBPWK9f1l+QdX5yXv/Ey0F/jiiMlx8W+Fq6yZsnhQnH+AHfD/wm+Mty+UFfwkVC\nnqdpAOcGICj8+TE48CXs/bx/k2T5+H7S+/czArweTMe2lcl5/TNDDvpzQOMFftB9xgN8vp0f8Dns\nTcCX67S8/Lx9m4KGboADnjQHaLlcrlov5/3y4t659PRtaX7zptdF2IwArw+bIdDKIuW8/umXg/4s\n10QA3+blBwE+F/e6tXQ/j19C3wR/Dfoa+Pnxw9SXhLEN/BzC0ouW+1EcP0jYR4aONNjz9CDSQj4c\n7vz8gxgSXqd+abWWWe5ny9fJXw76s1hTDXxTugytUJoGXz8PXwN9Y2Ojtx3N20JANm9fOxctrCOn\ntf4I2tzb5/DmrQStRcC31ZZN6fLc+DwZFb9Yv6wTWwtA5mNLC7LOT87rr10O+rNU0wF8W7hE287P\nC/cDPv0AjEkzxfsnIsRjC+1okJaQlzCWcX6+TOsBVLUCeBxeCwPxutbSbaJ9TB29vB5ky4Xvz/cx\nhZpsaUHWBTkPp3By0J+Fmirg+603efV+Py1ObwK+38/k7WthHs3T12Tz8DmMyVvWYG5L05aDwN6U\nr+n68nUmTx3Qx/ZrwLd5+vJ4tYCf5xdUDvzh5aA/yzRdHj5Nxwt8nkdQ4FNIp7GxcUzYxw/+trJr\nChLa4aDnsXdpBKRhMIVsTMbCBn3eQpD7agA3hX3k/yDMdwGCGAK+bEqTZagF/LY8narloD+LNJ0e\nvgmaGszDAt/2I7BzwGsGwTbSJ4y37wd7AGMgzkFOkJfrbGCn9VrYxwZ+Ege16eGuoJoJHb3O659c\nOejPEk0l8E3evNxOdtxq22oQ9ht9YwI+Bz9P4/nzTl+ev+08uDgoTV53qVQCUA1/7tHTsWmdFtOX\nYKeymcI+mvGRI334vO2/4QdGbrx4XYUJ+ZhAHzbk48A/8XLQnwWaKuCb0moBvinEYhu1Y4K6aV5u\nq3n8lGYqpxTvqKWp9OwJiBLsPF1uSz86vhbWkYaBv6ohiDGwhYs0z98ESN5qkWEhTX5eP6/PqfD6\na20p1Isc9OeQxuvhy7SgwNd+PC8JXpOHz9ebgM/TotGosXNX8/b9PH1TaEdCn4dvCLAclBy6fL30\nwvk2Ns9fK5OtFcDLYJLNI+aeOi+j3Deo168dz3n90ycH/RmuoF7+eIFv89rDAl8Cl4Bu8/LlsmwB\n0C8ajRrBH4mMHcfvZ5ToPDhcgbFPzpbLZZRKJRX+mhGQ8OcePwGbjicNhDQCEvAyvCOBz/el86s1\n1s/DVVQvvM5kXYYJ+Zi8fgf+yZWD/gxWUOAH3X8qgS8BG6SjVeus1YDPwR+NRsfsKw2O5uXL8+Ow\np2Xp1Tc2NnrgL5VKY0I3Mp3DX3rv3POnPDXIS2DLeZv3z7czxfo1Q8BBKaHJDY0EuinNL09tmV8T\nrbxh5MBfLQf9GaowwNe2nQzg832Cwj7otpq3z0M7BPpYLDYG/DK+b2pp2Lx9wB7HJ09fxu0l/Dmk\npbevpfF95LY275+DXPP+eThGptXi8UvJloSsxyBGgNd5GK/fZhRs5XXgH5WD/gzUTAV+GO+etwr8\nQi0mz1/CPxqNjvlJ6GvevmaISNJTJjA0NjZ6YRkZKy+VSirkOdRl526pVKoCoYS73Fdbz42A5tXz\nZXlusiWj/WdsHr+mWjp6NdhPldfvwD8qB/1ZrKkCflivXdvfBngZ85eg58CPxWIq+CX05XlQGIUA\nLH88RCMNjhwdRIAlkMvYPm3HwzYS2tzjl5DXPHvuWcs8qRy0ztYKkOWYCI9ftixMBkt6/do83187\njun4Yctbz3LQn2EK6uXPZOCbvGvTMoepFveXsfxYLOb9OPRJBORisYh8Po9CoYB8Po9cLod8Pu+l\nFQoFFItFFItFD7JUNjpeU1MTmpqa0NzcjJaWFsTjcTQ1NVUZJgl9LUbPIW9rHZjSNA+fGwIZt5ew\nlx6+3wifoHCU/RMS3Cbg+8X6NQ/fgX9i5KA/gxQU+GHzmi7g28Ischt5HBnjl8CPx+NeWiQSQalU\n8sA+MjKCTCbjTemXz+eRzWarDAEZBx4mIaDHYjEP+K2trWhtbUV7ezva2trQ3t6OlpYWryUiyy4N\nAYe2NAJayEdCHqj28GXnMKWVywfG9msGQoazTHF+DbZBQC3z5wrq9fuFexz4xycH/VkozTjYPDY5\nP5XA9/tpZdPAT543QZ9i7plMBtlsFqlUCslkEslkEqlUCul0GiMjI0in08hms8hms56nTx4+98p5\nOSKRSNXooKamJrS0tGDevHlob29HZ2cnurq60NXVhc7OTsybN6+qxUFeN4Vd5DlpYR86ttYa4Pto\nHr8su9bhTNdV8/h5vtr/pxY4SoOiyeT1cyOglcGBf3xy0J8hMt0YQbaTaRrINeBr+0818E1psjwE\nYgDI5/NIp9NIp9NIJBJIJBIYHh5GIpFAMplEOp2u8u4J8hS71zostXqqVIBKpQmlUjNKpVGAzZuX\nw8qV+9HV1YX58+dj4cKFWLRoEebPn4/W1tYq8HPv2xT24aAzjfSRIR45/p7mCfYAqoAvO6P5+UvY\n22L9PD2IbGP7tSnfxjbPr1PQ2L9J9Qh+B/0ZoMkAvpamTScb+CYDIMsa5MbL5/Ne2GZ4eBhDQ0MY\nHBzE4OAgEokEUqlUlTcvOzJNwKK0QqEZv//9Zdi7dy0KhSYUi3FEImXEYjlEoznEYjnkcvPQ1dWH\n4457GJs3v4IlS3qxZMkSLFmyBEuXLkVXVxeam5sRjUarYC+9d14/Wizf5PXzHwc2nYOWxs9b1gmF\ngsgYyPJoIR/NKJgAzfOU11yTnxGQ/xUN2g78djnozyHZPHu/9Kn08G3llJChH8E8mUxiaGgIAwMD\n6O/vx+DgoBfC4R2yHDp8arrBBweX4d57P4GlS1/Gtm3/hlgsi1gsj4aGkrf/KMQbsXv3BuzceSa2\nb78A69c/gne962msXt2HwcFBHHTQQVi2bBna29urnhmQoR5eFp5uW+ZA5/kSuEk8rk/LdI3leH6C\nsozFa60A3rIIKsorSEevLeYfNs5fbyAPIwf9adZEefl+wNc8bJrWCnw+NDLI0Ex5bOnpy7ADecm5\nXA65XK4K+AMDA0gkEshmsygUCmNG33D5QeTVVzfhD3/4M2zefAPWrPl91X7lsjQcBRx66KM4+OCH\nMTi4FK+8sgX/9/9egY0bH8B55z3rtToOPvhgLFy4EPF43PhgGwerFuvX+gU4yOmcCPxc5L3TMeWw\nTttP60SW8PZrBch5vsyNi3aNZFqtcf4w4K8nI+GgP42aKOCH2Xaiga8NsbTtoxkkkoQOQbBYLCKd\nTmN4eBgDAwMYHBzEyMgIisWilxeVR4YveN5S5XIjHnnkYrz++kace+7XsWjR7rfSx+6rGaS2tjdx\n7LE/wKpVN+OZZy7DV77yMZx++t04++ynMDw8jJUrV2L58uVobW2tGt9P5eUdvraQjhYSon1s58dD\nPjKMY/PY+dBP2WLg4OYypcvySNDTvnIbbcqPI+e1ZVOaSfUCfgf9WSgJTBvoNc/a1hII6tUD/sDX\nnsqVxyJpsKZlGp0zPDyMdDrtwZ5G8ABAsVj0AMk7MU1AyWS6cO+9VyAWy+LCC/8F8fiICi0T8Hla\nc/M+HHfcVzAwcCQefvgv8OijMVxyyZ048cTRfoYVK1ags7Oz6kEvWUa/YZ0a7Pm58X4LnqZ17NL1\n8PP4ZfiHGwNujGxGwJamtST8pjIfB/7wctCfJo3HyzetN0HdBPwwXn2QND9vX5aFxD1SWsdhPjIy\ngpGREeRyOS9MQcCnXzQaRbFYrPL4ZZ6Uvm/f27B9+xVYu/YBbNx4G4CxwKRlDfracrlcRkfHszjh\nhM9g376z8KMffRzPPPN7XHrpM8hkMjj88MOxePHiqreCyjCWrCcZ6uEGgodreJ1xo0znL8HPW1NB\nwa/VgzQCWriH/zc1mJo6eacT/HNdDvqzTCYjYPL+TUahVuADwTx8Og6f1zx8Et2Q3NuvVCooFApe\nJy558zxUwQFKb8Hk58mhUqkATz99Np588lycfvp/4pBDnvHStfJoP75OMwDlcgmLF/8G7e2P4YUX\n/h5f+tKR+MhH7saJJ6awdu1aLF++HM3NzR68Oczpi1zS8zeN/acWD68/AN7QTfLOOfiprHQ8+f+Q\nISVTPdA6vp3pf+nX+asN7aSy1gp+U1mCgH+uGwgH/WnQZHj5fmny5p4IDz9MPF8aIa2cHPYEPRpj\nT1Dn4Rt6aEvCiMORbt5CoRn3338ZhocX473v/Xe0tfVVwZ7f5NoNz40RLZt+o9DdgzVrPoWenkvx\nzW9ejieeuA8f+MAjOOaYtTjssMPQ0dGBaDTqba/VgwZW7ukD8KaaQZJhJBnPl3UXNJTDDYO2nZzn\n2/D/oKxzCXGZHgb84wX3XAa/g/4MlR/QTR68nMp8gg6rNI23t4GeL2vH0s5Levg8XEKvSODw4LCX\n3jCHLj/e0NAy3HHHFVi69FVceOFX0dhYAKA/3MPLpYUqTGnS6x8tewHt7f+J1avvw86dV+GxxzZj\n27bf4b3v3Ye3vW31mE5eDjqZH7/WPHxD2xPAeV3IVoItng8c+HCMdv7c65cGiO+vDQWVCtoymAzw\nz2WYB5WD/iyXhKgGV5t3XQvwbd4+oBsW0/GBsV42vfmSnqKlPCXweXl4aIR+lUoFr7zydtx//6V4\n5ztvwtq1o8MxtWhDLTCQQB7Neyz8S6Vn0dn5fhSLW/CrX12Fe+/N4KKL/oBTTmnFIYccggULFiAe\njwNA1YvgKC86R/7iOX7u0pPXPHWqQ1vYhu9j2o57+ZSn3F/uq4WMbLI9zBUE/H7XNei1nqsGwkF/\nimUCX5j9/FoBPE3up8HYtC4o8P2MgGx5cG+SxL3bcrnsvf2ShyooHMLDO/xYPPxSLjfgwQe34pVX\nNmDr1m9j0aLXAYyFBZXL7+YOcvNrXvKBcyshn/81WlpuRjb7MXzve3+LG298HStW9GLVqv044ogR\nHHJIHtFo9YgnMnL85W8tLS1oaWnxnvzl568ZWn6dg3S+ci9ebiOvn/bjRoEf0+T5yzqU11ODuwZ+\nUpDrOVeBHkQO+jNQQQ2D9KBNNzpgD+v4jcTRplprwAR/WTYJDW2EDYV3+M1OHn40Gh0z2oUrnW7H\nrbd+BNFoDpde+lU0N6chwuZVdRjEQwwKEl7/vC5oqGY+n0Uu93U0NHwfyeT5eOml4/Dii8fippvW\nolDoRFfXHixevAdLluzH0qU9WL68Dx0dZcTjcbS0tKC1tRVtbW3emz7b2trQ3NzsPf0rr7msWw5x\nfg34PIc3gKowmoS/bNmMNXbVfQF+4vWsefy2UI/J8x8P4OeicXDQn0JNlpfvt63J49Y8Qhvwg6SZ\njIgsmwQEUD3uniDBwwg0zp1Gp2jQf/PNw3DLLX+G9esfwubNdwIooVIJ18znEKGyBJUsDxkrelsn\nQTKfTyKfvxb5/LWIRqNobW3FvHkHIxrdiFxuA3btOhJPP70ByeRKxOMjWLhwDxYv7sbBB/dhzZo+\nrFgxhM7OTu/X2trqtYT8yiTP0dRC4cDl4Obzsn9A67zV+l00AyBbF1oLzg/4QY24Ka0e5KA/wxTW\ny9eWTTe5tp0N2Ca4y/kg4NckPUq5T6VS8YYl8s5LniflUSqV8eijJ2LHjjNwzjnX47DDnnsLsOb6\nk568BIy2rdYi4kDj9UItE4I+ByI9V0D7jAJvANHoDsyb9xTa2treCuG0olg8BCMjq5FMHoZnnlmD\nu+/eii1bbsdJJ/3J+z5AV1eX94pnzaDKOuPXQF4P+lF9cJhSGp2X9PYJ3Pz4lMalGQuePzcaWosl\nCKwnCupzzTg46M8i2WBumjdBSvPCeYuAw0wDPoUT5IfI+bbA2CdxuWRoh5bJo6ebrVAooLGx0Xv4\nSsIpl4vh5psvQn//Ilx22TfR1taHcnls+IKXgQNJLmseozQKNvhTS4SHo3j+DQ0NiMViVZ3P1BKg\nr4EdKFcJra370dU1gKamPyIajSKRWIm77vpr7N27HNu2PehBuFwuY968eVV15Pc/0lpffJ7qgYNZ\nev68A5euuebx8+utGQEJfpPHL8ts8/ZN8/z8p9KAzAQ56E+Rgnrwtexn8/JNhkIzCkD1KBnpuXPg\na16+LeavefwcJtw4UFosFvNekZzL5ar2K5VKKBQK2L+/Ez//+aU46KDd+OAHr0ZDQ64KMnwfrR4k\n/Pm2Wnn5flodEuxpe/4iNFpPfRIEOapP/kUwWR883DV//pu45JJ/x/btH8f3v38pLrvsFgCDXhma\nm5urWkbaNdfOix9LhnmkF0/zWpqcl567HEJK0loWNmjz+rGB33TN61UO+jNIQQ2D6eY1rTd59hxU\n2jwHuAQ+eeLaehP4ZZkl9Pk+ADyw02cQC4WC17lbKpXw7LNrcdttW3Haab/B+vUPVUFGA7+sI5M3\naAonaPXH+xjofCjswfsoAHitAPmyNMqHRunwz0BK8NO5x2JpvPvd1+Dxx7fiW9+6HB/96M3YsCHh\n7ReLxYyhN+2/I+tLhmxsIR/u9XPYy3zpOlP+soVAdeTX4etnDGzXupb1c00O+jNYNg9e21bz8mUe\nJu+bg8EW0uEjUXgaBz4HvzQmmggS9Ipg2pa+e5vJZDA42IxHHjkG69Y9glgsjQceOA8vvngsLrro\nO1i69E0Ui9UfSvHz8nmdcK/dFEfmLSEOeV6v3LuWHj6vSx7f5+uj0aj34/XA66n6adgSTjjhFixd\nugc//OGluPLKG3HMMSnEYjEP/NxY8TKargWHu2xhUBmkl0/78WXp3cspXV9uZEl+4A8amptob3+u\nGAcH/SlQUA++ljw10NNUm9e2Mf04tCXw5c+UbmpBcBFY+KsFyuXRVzCk0xncc89q3HHHSVi69DXs\n2PFJtLf3IxrN4aKL/g3z5mWQz+utCJqa4rjalO/P0zmIuHfPvVfTdeL7U5yfe9HcIFCnL4e+qXVE\nndwrV+7E6afH8eMfn49/+IcbEY+PeN8R1lph2v/BFuKR3r0Ev/TuZT6A/vlGSgfGgt52z2hGwXn7\nweWgP0MU1DBo29nSNE+fz5sMgB/YuVevpWshIK2FQR5+qVSqeoXy0NAQnnsOuO66s1EolHHuuf8T\nLS2vYu/eozE0tAJr194BIIpcTveKg9SjBL1cL+FmAr8m3mKgPHj4SYqDWcKa1xWHPgBvBNCqVX/A\nm2+uxrXXnowrr9yB5uZmNDU1VV0Lfi3lf4OXW4ZkOPh5PWjg59eXri2vA54vlYOHhnj9m+pUXie+\nLqi3X6vmgnFw0J+h8rsB/PaR6SbYA2OHSpri+hLmHFD8lcGaAdAgViwWkcvlkE6nMTQ05H3ztrc3\nidtv34DHHtuMY465AcuX34yRkQxSqTLi8QdwyCExFApxRCJNVXF0zTMOUl+at89DHCaP3+bpE+Qo\nhMGhL1sfWj3bzodDn/ItFot4xzt+hl//+vO4555DsW1bn/fULl0L6elrrQiamrx8Xhcc9vycaZ6H\nwSTkZRiNXw85L8M5cj/TtdSuSdB+gLksB/1ZLNNNYrqpTV59EOCbPH8Ofs3r1zpoi8UiMpkMEomE\nB3r6BOITTyzB3Xd/CO3tr+Pkk/8GwF4MDRW80Ah1dHKAci/RL2btV4+aOLg4+LkHK+tM+xg6j5Nr\nZTDVtwQgHZsblFHYFXDGGf+BW2/9HFasuAmbNw95r2+Q14Yfk0uGdmRYhvcrSGdCDr/l6TyNriV/\nrxKAqvMxGQNZZ0EgHxTw9WIIHPRnkWr1+G1GwAR8DTwcGuTZc/Db4A+M3tSZTMb77GF/f783feWV\nGLZvvwDDw4tw1FHfQ1fXg95LxyKRyJiXjZE4IORNGwb8cnsNAPzTgdKD5aEeDjdenzJ0YrpGvFVl\nMmLSK6d+kIaGF/HOd/4Y3/725TjnnEdw8cV7sXTpYnR1daG1tdUb1UP587xlDF525ErY8/+TPC8t\n5s7rSIKfG1MJa3kM2zUKA+56gbyUg/4M0HjhVMvx/Lx+AEbgy5AO73jkYR56yKhcHv3k4fDwMPr7\n+9HX14f+/n709/djz54sfve7M7Br1wlYs+YGbNhwK8rlLMrliPpQEx2LDIkGQ1Od+MXftTACLfNw\nh2xd8A5Oviw7LqXHa7oumgE2QR+oHv1ULBbR2XkPzjprFx5++JN46qnD8fGPP4g1axJYuHCh9+Qu\nef9amEZ6+vwnP9ROPxpKazo3SjeB32bIef3I/EyGwc/7H49mu7Fw0J8DsoFfA5hc1owAh44Evozl\nS2+ffpXK6ENVyWTSg31PT89b84N4+OFN2Lnz3Tj00Idw9tmfRlNT4i2oNI7xjOXxw3bccqiYoM7h\nzutChio46Hg5OTx5mjQYJiNjMsDcCHNpMfhKpfJW5+6LOPHEf8Du3ZfiS196L97znvuxZcsuLF68\nCIsXj3r+7e3tnufP85TA5y0JOj/51S1eP9q5cM9fznPAa/9FKpc2z+tBXk+/tHqVg/4kqxZPfCLy\nNYVy+LyEiCnEwNM4fHnIhcM+EomgUCggk8mgv78fvb29VcAfGMjjzjsvRy7XgjPO+Bd0dLzxFkhQ\n9bZIGaqRLQ2TFywVJM7P60bClMOfwA0ceEGcDElw0Gveszw3eXzt+pnOQRvv39DQgGKxiGw2jYMP\n/ikWLXoU27d/Gk88kcDWrY/g2GOHsGTJEixduhQLFizw3tnDy82hz2PtEuDaOchy+YnXq4zva9cl\nDMDDwr4ejIOD/hyRhIa2zrSfn7dv6rwl4HPoVyoVL25PoO/t7UVvby+Gh4fR29uMu+76LBYs+BNO\nOul/o7GxhHL5wLFMnYHA2FdEyE5n7Vw1mAapS9kByD1R6VnLNK3sEv62Y8upFuKQISRax40DQTse\nfxGnnvp32L17G7773QuxfPl+vPvdO7F5cz+WLVvmef70fn5+3XkIhkAsP+9IaXysvlZmWfcyXCY9\nfnktbF5/LQahXuWgP8cUpAVgmrf9/MBPN34qlUJ/fz96eno84A8MDCCdTmPv3kNw771/g6OO+g3W\nrv0NgArK5eo3LppuWpMh4gbBZsD4+dYCfjJoEi7aj8T310bumM7Tb17bR4avKO3AMXJYufIGrFhx\nC/bsORs/+tGFuOmmYZx77uM48cQ9WLRoIebPn4+Ojg60trZ64/xlq0oTPUnNJUNigO79yw5wXnbT\nNxMk5Pl9GMVHAAAgAElEQVS+snXoDMBYOejPQQWBGt/WBn/Nu5bhHQDI5XJvefK96O7uRk9PD/r6\n+pBIJJDL5fDyyxuxY8dlOPnkH+KQQ55ApRIBUB0OkKEVrYwc9loIip8/Nwq21kCQOpKwr8XzN4V2\nNO+YH9tPcvQQ99I5aEfLkMHy5Tdj6dLbsG/fu/CLX7wPv/51GSefvBOnn/4MFi9u997R39HR4b3i\nuampyevD4fnxkVkc/H5j7/l20kjx68c/cG8DvFNwOejXoUwgMYUWTJ4+gSWdTmNwcNDz7nt6ejA4\nOIh0Oo1CoYidO8/Hiy+einPP/RoWLNgNYOx3VaUnberkJLBpHr+2nuZN50jzJq9b8xwl7Pk6DfQm\n4IftgLSFMfjL3bjx4S0MShsFaRFLl96JpUvvxuDgZjzyyIW4664zsHHjYzjjjBexcuV+dHV1Yf78\n+ejq6vJaAGToZeuFDKE2IoiOyQ0D7SPz0jx9Dnx5HaYL/LPZ6DjoOwGwx8L5jcib+8Vi0QvnkHff\n29uLRCKBbDaLQqEBv/3tx5BILMW2bf+G5uZBcO9eglMDouapc7Cb4vpBwjy285dl5F6mBA6HntxO\nm5fnStIeMjOtl/VnMz48vEJlJ0BXKhUsWbITy5Y9iWx2JV577T34X//ro1i16hWcd94jOPLIASxc\nOBr6ofBPc3NzlUHhT9vyeQ5+EoGf1wP1GciQFL9e0w35uSQH/TkmW6iAb+MXNvCDKA3F7OvrQ3d3\nN3p7e9Hf3/+Wd19AudyA++77C5TLDbjggq+hsTEHoHEMHCl/rfmuhZ1oXsJehjbCAN8EWH5sWTda\nByJfthkAkpyXcXEp7iXzKQc9bzFJA8UhLfsXGhoa0Nzcjc2bf4JNm27Crl1n4j/+40PYsOGP2Lr1\nCRx0UAojIyPIZrPo6upCS0uL8RpwgyL/O+Qs0LlwT9/08NdMBP1MLFNQOejPEfGb2w/oYaQBP5vN\njgH+0NAQMpnMW2PEI3jggQ+jUGjGeed9Gw0NBVBIh+cjhzr6lQMwf+Ddb53NgGjiAJaA5PuZvHjt\nHLlsYR5Npv25kZF5msJMvOOUziUSibCO+Tw2bLgb69Y9hocfvhBf/vJHcd55v8NZZ+1BPp9HoVDw\nHvKS9UwtQX4sbVw/vShOC+34GfzZDNyZIAf9SdZEQ7iWfDUvmuZN4QYT5HK5HBKJBPr6+tDb24ue\nnh6vs3YUPMCOHZdgaGgZtm79JqLREgj4UrKZb5LW4uDLlJfcRsJDG+sepA4laKQXLT1/6Xnz85Mh\nF1sZ+DH5Nto1lLFyeQxbPXNPnT90F4+P4JxzfoGenpXYvv0iPPnkUfjkJ+/xIF4ul9Ha2jqmXrlR\n4S07PtSTryPDIJ/Cncme/myWg/4slymcI4HBIWXKw3Zzlctl5HI5pFIp9PX1edBPJpMoFArecZ54\n4nzs2bMWF174dcRiOWgxfBkWqTXcBAQfqmnz+muRhK4J/LSNTJfGgMvvmpoMuJxKj56XV9aLBn76\nHXTQHnzkI/+B2277AK655kx88pPbq+qT3uSpPTBHLRA5xFYDPm8NTIaj5DQqB/0ZoLCtgfG0HmzN\nftOvXC57T9jSC9L6+/uRSqWqgP/006fjhRfegUsu+QZaWw/E8DWPNWh4wwRoCRcb+CVITGDxM5yU\nJuf5dqaQlWZY/VpXtnRZrzbjYctbg77WQd7QUMHWrTfiV7/6EL773dPwiU88WLVdc3MzAFQ9lc3r\nxAR8+sk3a5oUJixWSwuhHloVDvqzSBpITJ67CTjc65frOOT5fLFYRKFQwPDwMAYHB73hmPwNic8/\nfzwef/wsvP/930RbWwo8pCNBb3uRlk1yVAiflyCXBsE25ZLl0sJcWiuF0rSQlQxZ0Dq/a2nz+G0G\nSlvWJOtQDn3lRgAAGhpKuPjin+MXv/gwfvCDd+Kv/uqRqieyaUpf7SLxp3mpPui/JZ/AleL/S5lG\nsj3tPBkQn+2GwUF/hkrzKP22B8YOg6Q0mS+fcu+Uw55+NDRzeHgYw8PDSKfT3qf6Ghoa8PLL6/C7\n323D+953DTo7ByGBL+c5GGX5uTTDYAvf8HmThx/W2JgMQxhjIM9XayFoRjqIQZf7hDkfU53ZXm/R\n0FDA+953La677nL88IfH44ornvRAH4/H0djYiKamJu8pbeDAB+5J9L+So6zk+QT5j4RNC9NSmKty\n0J8hChqykdA27atB1+TVc+DzZjaFdSiWn0wmxwD/9ddX4e67L8XFF38fCxd2g2L4puNq4R0/SVBp\nnrqtFcC3NdWx6RUDXBxENs/ddJ61hnZMxqEWaa9r4PM8TXbQUlkaGrJ43/t+hBtu+HN861ubcOWV\nj6GhocEDfyRy4CPvwIFXLdB/gjx/3hozSXr6fNkW4nKhHbMc9KdAQYFu2y9IKMcWduDb8htGevuR\nSPVTlOVyGSMjI0ilUkin08jn894x9u49GDfffBm2bfspli/fAx7D5+WyGSnbjWbyyicC9rV6/bK8\nptcN2Fo6fHtbCCdoufzKbJo3tYRs4ZYDHbMpXHjhNfj1r/8S//mfR+Kyy55AKpXC4sWL0dnZ6b2+\nIR6PIxaLIRKJeCGgYrGoevka0E0/WU82T34ivfy5YBgc9GeQavX2NZAQvDkUuSevefsyvlqpVLwO\n3Ewmg1wu5x2rr28pfvWrP8f559+Aww57DZXK2O+fak10Xs5aZPJC/UI5Mi0s8OW2dF6mIZnaPqb1\nkwES7dzlVIO93IafF28VUiswkZiHzs7H8fLLu7B//350dHRUvbeHpvQSNy10RPlTvjzmbwO/KZZf\nC9yDbDcXgA846E+ZJsvbN3n6cr28EfgoCT5qgt+M9MWrbDaLXC7nddwODc3HL37x33DmmbfjiCNe\nBDAWMFq5tJCGn6evwTmIx8rlNz5/vN405WFrwWgtAtPxg8DFr8w2T57PmwyhFAcszT/55Fno7NyL\nrq4/YN++Mrq7uxGPx9Ha2or29tEXt3V1dXk/MgBNTU1VX9ri/UcS/Bz+JiPA6832XzPV71yBeVA5\n6E+hgoDfbxvp5Wv7yXAC9/gBVHn7cogcz6NcLiOfzyOXy6FQKKBSqSCZbMP1138MJ530ANav/yNk\nDN/UAvEzTn6yeei1GAOTJzxRkoZW67wmyfSgZQnizdPUD/amsA4P1fHrl04vwpNPnomLL/4ympqa\nkMvlUCwWUSqVkMvlkMlkkEwmMTg4iM7OTsyfPx8LFixAZ2cn2tvbEY/HUakc+CIX/2ALn5qAP/bt\noeb3G00E8OeSYXDQnwUyQdIPsnxeAz9Q7eXzfCm0Q4/dj37UvAXXXffn2LBhJzZvfhTaOHxezony\nroJ66DbQT7SXr52jyQhry1y1evZ+5+QHd1tYh5eLe9+0/X33XYjjj38QixenkM+3eLF6AN4DXvRA\n3/DwsDcggFqObW1tiMViqFRGP+9IBoN+0gCYPH4qnymk6IA/Vg76U6yJ9Pb5vBbGIUnwVyqVMSEd\nmT99ZLtQKKBYLCKXi+K66z6M1at34ZRTfqdChh/bNBa/Fi9f5sFle21yGGMx2TKFfcIePwjo+VR2\nmJreT2QL8XDYjg7RPQJ9fUtx8cW/RKXS7A3TJDjTcfgbWfP5PJLJpJdfoVBAS8sBY0H/s9GX9Y31\n+P3CO2G8e1OaprkGfMBBf1pUK/htIRw/8JNoqJz2rhO6iQikdCPm8xFcf/0HsWRJL7ZsuWsMbLQW\nhjY2nbbhy0EVFHZ+aUGXgyjIdZTyuz7a9rY0UyjH9tPAL4es8nLykEqpFMNtt52DCy+8C/PmNaJY\nHP3EInno/DpTvtzzz2Qy3rFKpRKampo8b59alNzb5yEeXhYT9Pm8g70uB/1pUlDwA/roD83T55I3\nLc+Dd8rx8dNyVA/dfL/97QmIxQrYuvVWdTy7rdkctEkdxgMO4sFPNvD5fkHKbgoDBcnftp/fU8oa\n6E1P3sp8qNw8vHPXXcfj4IP7sX79HpRKcc9T55CW5ePHopg/ORyFQsFL5z9+TBPkXRinNjnoT6OC\neop+8Nfm/RSJRKpehqWBv1gsolwu45VXVuG00x7A6OhEs+dpKpN2DqZ+AL8ym5ZrXTcRmqj8gtaB\nFo6R6dq77qX3LedlHsCB61Qul9HT04bf/nYD/vEfb/DCOeVy2fP0JaS186L/F4c9H1TAY/hTAfqw\n284FOehPs8LEuMcLfxkGonz4B6hpHd182WwD9u1bhsMO2zMGCKbjm8JQshyynLLVYgptSGNpA7wp\nzbY+aAssaHqQPLXt5D78vfO0ns/zL4rxNBPo5cvV/Lz9X/ziRLz73c9i+fI8yuVmzykwhWM0ENP1\nI4+/WCxW/Vc02Mu6dWGb8clBf4YoTPNf29YGIg2kJnDI8divv34wli3rRlNTAcDY2C+/OWXeWnll\nWi1esmZ8gubl97qFMC2OWlorYY6rGQDtoTTTjxsB7Udvw5TzGvQffXQZ9u/vxGc/uwMNDfEqD19C\nX47Bpzx4ffHXfPj9h50mVg76M1C1GgDa3nbzBDUCdMPu2nUoVq3abXxPih/g5Sgebb8wN3sYsJoA\nP5XhmFrz0YBvC+mYoM89ewI7jarhH7jn0JfXOpuN4Ec/ejv++q//iLa2GEqlhioPn4DPPX/N69f6\ni3gnrQxPaeccpu4n6vrMNTnoz3AFAaIfQIN0NMqbi6C/Z88ynHjiTt/vt5qORyEJud5k2GoJkfiF\nd4Ksm0qFPQ+/1lkQ4PMhlBz4/CeHWdIxrr/+cKxZk8KJJyZRLjePAT0t0wfO+XBL7SEr/rpu2l8L\nN/Gfdt6m+gzScpgp/4XpkIP+HFAtzeKg+5TLDYjFSlU3nF+eEuLyJqzVy/fTbPD+ggCfL4fx8gFU\nQZOm8ktY8v33NKV57unv2dOCW245FD/84RNobm4e4+Hz0Tv0kBV10FK5KG5PaRTWyWaz3rh8aXzk\nOcjzpHPV6jFIS7mW0VRzRQ76c0DjHalg2l92CJJMIR0N5hz4tvV+ZbEp7E073Td50HAOzduAz5e1\nETryxz96Qu/BpzS+bvR6R/DNb67G5Zf3YMWKBpTLLVXAJ9g3NjaiWCx6edLIHH4e3Pun1zRkMhnv\nPfvyYyzSYGlGTntflKzDMAZguv8XUyUH/Vmg8Y5M8BsFIacABwwANI65iYOUwW8YXS2jYIJqpt3A\nExHSoanm8ZrG3tvCO7FYzPtFo1Hv4ycE3u3bO7BvXzM+/vF9iEZbx8CePPtoNOqFaujY/KMpPIaf\nzWaRSqWQSqWQzWa90E5TUxPK5bL3agYyILS/7UliChf61bEf3OsF/g76M1TjAb0JvKZ37PB52ak2\nb94I0unWQNCXoRzTzWZaJtmOE7aPYyYprIdPU20e0F+pYBp/LztvCezRaBSxWAxNTU1Vv3w+in//\n96X46lcHMX/+PA/aPA5fKBS8OL7WAUywpxf3JRIJ7zcyMoJ8Po+Ghgbvffta/fD/pzRssh7p/yuH\ntmqtTL//2Ez9D02EHPRnmIJALUiIRsJcrpOQl+83oZu4oyOFZLJtzGgK7Vgm4AeFf5Dzn4ibcbKH\nBtrKaApD8PkgU78x+RyOcmQO9/r5pw6bm5sRj8fR1NSEq69ux+bNZZx7bhTFYjMKhYIXf6cwjeZ1\nA6iK2afTaSSTSe9Tm/T1tXw+j0ql4n1pi0JEkUjEe4U3F73Ggc5X+1YEP74Dv1kO+jNEEwH7Wrx6\nPqKCLxMc2toSGB5eOMazosfoAbshsM0HOSebaoX3eFsSteQb1Ms3TYGxH3vXfpo3rIGZQCs9/Xg8\njj/9KYYf/agZd93Vg6GhDEZGRjAyMoJMJoN8Pu+9eZXCO9zzz+fzyGazyGQySKfT3mc26ctrFMen\nkE4sFvOMiG30Dh8dRGEf+eZYXl8O/GY56M8A1QJ807IGe5pqnj337jUvbt68BPbsWaE2qeUwTp63\nBBr36mXfgS28E3TYXa2wDhNaCiM/yPNlG/xpXkLbBHQJfL/hjxy0xWIRg4ND+Oxnl+EDH/gTnnnm\nBTzzTBQvvzwPBx20C0uW/Mn7tgK9HI0P2SQDQPCnbzHQr1gsolKpIBqNoqWlpSrWz/971DKR58NB\nTudga2U68Oty0J9m+cFqsrx7E+y51x+JRLBs2W7cfvt5yOWimDfPvxOMx1T5cbUb1K8OgtyQJL9y\nmTQRhsOWpynND/S0rL0awQR6CXYtT35d+Jj5oaEhpFIpbN/eiB071uCppxrwgx8chFIpgkikiGOP\n/Sni8adU4PMHsbR33fNWRXNzs/rMh3RI6D9E5aT/D2+JatdLO18Z/tGOPdfAbpOD/jRqqoHPH4mn\nuKm8YTn8AaC1dT8OO2w3duxYiy1bXhwTR5VlkZDn28nzsYWHZLrtBvdrDQSt54m88YOGc7Rt/UAv\nl/28fRI3+LxjNpPJIJFIoLu7GyMj/Tj77EeRzf4Rr722Hvv3fxiLF/859u17ekw4h78Rk8fheYcx\nhY3o+7i0TkpzSuR/mKaa125yLDSgh4X8XDMKDvrTpOnw8GnZBHwyDNx7a2xsxAkn/A433fR+nHXW\nS4hGx47QkFMT+CWATZ8Q1EJXtpsuCNhNmswbOoh3z5cl0Pl2YaGviXvN9JWrfD6PVCqF3t5evPHG\nG+jufhNAN3bt+jP095+Ggw/+ICqV11AsVhsT+V/kYRQCOw0Dpdg9DQ3lD2FpQNY8evmfMoV6tHPX\nwjxa3cwlsNvkoD9LNJEhHblOAz7FXwFg4cKX0N6exB/+cDjOOOMNdWie6SdvRnke2o1mC/do64MY\nBVPeQVoLtcgGfJlugrxpvR/4tf146IQgPfqBnDwGBwfR29uLgYEBpFJZPPfc3yKZPBRHHvkXKJf7\nkc/Hq4Z6aq9XkOfDO4mpo1g+/BX02Q8S/08F2dYvNFiv3r6D/jQorJdv2j4s8E2gp6l8ORY9TNPQ\n0IAzzrgFN954OTZu3ItFiyJjQBoE/FK1pgc1FLJ+KI/xKEwoyLaN6YViNrib5jXvXvOg+ZTAPTIy\ngmQy+dZQygoeeujvUSwCGzb8LYrFEeRyMa+89OPOAf/P8TLJ5wA0T59aBX7wl8cwORFaeMdprBz0\nZ5ls3i6f15Y1L9/PMFDMtrPzBRx11NP4+c+Px5VXPoampiavySzDQzZJoNsAr52nLV2mae9mMdWf\nrdnvt11QA6CFd2qFvmkZgNoSo/rhv3w+7w3HHBpqwJ13fg6trXuwYcPXUCgUAUS968mhT+/cMUGf\nx+45+OW7fkxP2drEgU/hR22daT9pMOrRODjoT7HCevlhttMMgSktaKugXC4jm80iEong+OP/H372\ns6uwc+cr2Lw5iWh09O/Db0I+ft8kCe6wcVaZLvPR8jVtwzXRLQPT+4ok4Gl+POC3pQPVxo4MebFY\nRDabRXd3E2688QosX/441q79MfL5CsrlxiqwU750fU1GXkKfg1+Gd2oF/2SpXoyAg/4Ml/TYZZq2\njQZ0zSuT8VhT/hQGALpx9tk/ww9+8BF0df0G69aVPfDLcE4Qmbz8oOtN2wXdT0prGZA0A+q3jwZ6\nPh8E/kHmTfvazoGemu3pacJPf/pxrF17J1atugn5/IERVXykjQzv2EI7mrfP4S/fpsnBr9VXrXJe\nvS4H/VmoIF6+KY3SNaMgxW/iYrGIVCqFtraHcdppbfg//+dCfP7zt+Pww4tjHqbRAFyrIfCL3WrH\n0foRJsIwSChp5TQt87QgHr62TpsH/D84wkXXmd6Hc889J2P16kdxxBG3olCo/qCJHF0lPX2eHy+T\n9mZP6fVL6EuPn/KZDGNQq+aK4XDQn0GyefC17E/iQA+Tp2zSl0olpNNpLF26Hccf34Gvfe0c/NM/\n3YGlS6sNCN/f70axwdEEVS1PLc0U7uHLfgYmSDk12YxAUMhr6zSDYWs5kOicOLTffLMVL754FC66\n6B+88fc8lKN5+/TErAwDymcL5Ht+pHcvh23avH6/unYKJwf9KVQtIQe/fU2GQgvVBG0NaDFW/r6T\nTCaD1atvQyKxGNdffwz+8i8fQywWU8s3npvV5I3bPH1tfa3hnvEqbHjHBHAN5vI9PLbjyTAHdeLe\nccepOPbYe1GpDHjA53Uo+yQI7loIUfP0udHQPtHIDYA0NPzcTedpC605meWgP8vk10kKmGPzfL0t\nH3kDS5hWKhVks1ls3HgTrr32i9i16ymsWpWrCgeYYB/WCJi8Vgk1vq2EnG2dXz61qFYv3zQNAvug\nIRC6hq++2o4//WkFLrroW8hk8t4De1qMnqCsPSylnZf03DXvnnv/mqcvPX5bK8Z2rhOpudLacNCf\nA5osL5ZucPKoZKuhoWEY73jH/fj1rzfjE5+4B/F43LtZJVCDQimI/Dx5m9c/FZoo6EvYm9aHBWOh\nUMCtt56G4467C4XCYNWDeLKc/ElWaQz5cE5eJgltGdaRI3fkw1rSw9fqQ0v3M3ZOo3LQrxP5ef+A\nPW4sh2JWKhUUCgUcffT92LnzFLz44kKsWzeEaDTqbS9hMZXgN20bxiDUajAmy9O3zWtTeR6RyGiH\n/NNPz8fevYuwadMdSCaz3ltVufj1lkac6oSPkZetQw5+zeOXoR3T0E2+jh/HVMcO7v5y0J/j8oMW\nv6H5tnTTS7hw4zHa+ZfCqaf+Br/85Rn4/Odv9G5kk6dvuinD3KymEBKHEl9nCunY5k3lshkWv3Sb\n8TOtk5Azwd7PsFYqo+PzBwYi+PGPz8LJJ1+PTGbIewePPKaM3wcxkJqXr0Ff8/pNwPerG786D5NW\nLwbDQd8JgN0L1wwDefrZbBaHH74Dzz23Cffcsx7vec/zatxZy9f08JKfTB3Sfv0JQVWLhx8G+nxe\nqye/UE4Q6GvlKRRKuOaaE3HEEX/EwoUPYmgoN8awm8rnZ+w0WGsjcmQoJ+jU5uEHhbwtvZ7koF9n\nCuKxca/XBHz65XI5RKMjOPPMG/Czn30amza9joMOynn70tQGNX7sWs9BS+Neqradab4WjRf6NK9B\nVNs+jMcPjNbFjTcegVSqASeddB36+lKql286lyDnwWEvgc1Bb+q8NYV6TPUU1PN3qpaD/hyXBm3A\nHLMNEien0T/0Nk4A6Ox8HSec8Dtcd90p+Mxn7vbivSbvXrtpw56XLBNPM4VrtK968e211oIt3BO0\nfEFaPLWC3a8lUKlUsHNnF+6+ey0++MGvIpEYRDabHdPnYsvfJK0Tl/9s8X2bZ8/z1EbyhPHk3dDO\najno16FsXq3pppfjsgn89AUlAFi79jY8//wG3HXXWrznPa9U5QnYx5aP10uzGSw+zwHAO6bluY5X\nQVoxNtjLaRjQSyju2dOEb37zBGzb9kvk868hlUp536Q1edBa+f3K5+fta9C3pWnlCNOpK2UzvH7/\nv7nUinDQr3NxL9+ULodqAqh64VaxWPQ86He/+zv41a8+i87OLE47ba/xBvWDfpibzOSdSy+eb1up\nVLzWiPagka0sYTtz5TZBIG/bNowB6O6O44tffCfe9a4H0dHxCPbuHUI+n68qkwZSPh+2HKaRONLD\nB6CGdGzxfJNh0uAf9JrUmxz0ncYA3s/75jF9CvNks6ND/xYseBnbtl2DX/7yk2hrux+bNvVbm+cT\nAX1pmGrZRxoFfp7avmFk6rCeSPjL9Q0NDejri+O///d34NRTn8CqVfdg9+5+ZDIZb2SODaSmuLqp\nHLafyYM3xf5twNeuhVanpmVTWj3JQX8OSAOYzWPV1vnlqYl7x/S91XK5jIULn8L5538fP/zhFWhp\nuRPr16eq8tXgIee15TDl5cumeb9zNaX7dYTb0mzQp/nxwB8YBfbgYBP+8R9PwCmnPI916+7B66/3\nIplMemPytetAxsnPIARJ0yBfixGw5V9rvdu2q2X9bJOD/hQqCEj9JB+SCnIsExApL61Dj28b5E9P\n4E+lUiiXy1i06GGceWYzrr76w/joRx/ESSf1WEdljAf42j5+4/G1jlstDGQyErWUSS7b4C6nYbYd\nHm7CVVe9Ayed9Co2b74Pr73Wi8HBQS+sY/Oi/cBriqlr2/gZAZ6X7bhamjy+ra7nGrTHKwf9WS4T\n0G3b2PKQo3r4NrabiuZLpRISiQQKhQIWL74X558/jOuu+yu8/vpL+MAHXkBzc1PgcfzjuVltRs+0\nXZC8ai2Lbd6UFsYYkJLJJlx11QnYvPkNnHbaA3j99R7094+GdQAE8qxtMXl+XBuYtfV8//EAXzMA\nUqYRO2H/Y3PRYDjozyDZAD4RcLLlRzeR3/Fs3hb9isUi0uk0yuUyFizYgQsu6MYDD3wKu3cvxN/8\nzUNYsADe6xqC3ISTceONF+Rhj2VaDgJ2mprWkUZGmvBP/3QC3v72bpx77h/w5pt96O/vRzKZrHoI\ny+Z5+4VjNADXut5vX9NoLz/D6VfX9S43gHWOyARLDTg2j0lbp21nG4rX2NiIUqmEZDKJ7u5u9Pc/\nh1NP/WdEo/vxP/7HufjjH5tRKBTGHCcMcEyP9ssRIqbx4doxTLFmP3BN5M+v7rVrAQDZbBO+8IXN\nWLeuDxdd9BD6+nrR29uLoaEhFAoF67lq19NWx7ROe01ymPVBgS9bGNo8V9Bx+fVqBJynPwsVifh7\n9EB1XFr2BVAefCrTeF7SMJhAzG/oYrGIkZER5PN5ZLNZHHHE17F48Xm4+ur345hj3sCHP/wsliw5\n8HpdWX7tnPzStDqS9aWdp5+CdH7bpBlfOW+bmgAXiUSQzUbxxS9uwurVw/jQhx7F/v196O3tRX9/\nP0ZGRrz+GxNwTUbPZAgAc9iF1vHt5DnI49jWm+ogCPD9/lN+mqtGwXn6M1xBYBfmz227Yfh6k5ep\neYjSy+deHgDkcjn09/dj9+7diEZvwPnnfw7ZbD/+/u/fg5tvXoJMJmftR/BL08ptO5eJ/vnVnV95\n+HkHBT5di1yuEf/8z5tw6KEpXH75oxgY6EdPTw96e3uRSCTU0TpBRtQEbRHJfeTXsOTU9G1cU9m0\nOs2/56kAABZTSURBVDD9f8PeB/Uq5+lPsSKR2mPJ492X70/ztpvJD1YNDQ1VXqSEP//oRrFYRCKR\nQDabRTKZxIoVX8dhhx2H7dsvxwMPvA1XXPEI1qwpIBaLGb01Kb/t+INk/FwmOpYfBiBBQOUHODrv\nQqER//qvx2Px4gyuuOIxDAwMoqenB93d3RgaGn0Iyw+qmtcvYU3HNEHZrxOX9uPnFMRoanVgA77p\nOtQC+LlsFBz0Z5iCQknbTqbxP642VJGmFPrh6dqNRgDngKD9OOzpoSb+xCul53I5FAoFZDIZzJ+f\nxMknP4+engvxpS9dgC1bnsUll7yKtra419FrOncNGKY6omNrrQmTTEM++fogCgIiE/htwC8WG/Cv\n/7oRHR15fOITj2F4eAjd3d3Yv39/VVjHBGOTx66ts8XeeWguSKjG9L/iaWGBH6Q+g1yToOtnuxz0\nZ6k0wMs4fJC4v+YxabF+6bUR2LV5Dn8qB+1fKpW8D6zncjmkUiksXPhfOP/8R/DYY3+Fxx57F664\nYgeOOiqDeDxe9aEOwPzaYe1GlXF7Dn+bQZwsBYWVCVoE0EIhgi9/eSPi8TI+/enHkEgMYf/+/di3\nbx96e3u9ZyX8Yvc2L9+0jw3mpvV0Htq1Mm0n68MG/DBx/LkO9CBy0J8GSWD7rZdAD7sviXv12n58\nXt5wDQ0NVfFhAKqnT8epVCqIRqv/XtyI0BO8Q0NDyGaz6OhIYsOGVzE09F585SuX4NRTn8X7378L\n8+c3IxaLecfgZTUBhx9PqyteB9xAynmbEZ0IeNiAL/MnOD7//Hx84xvrsWpVAp/61ONIJgexb98+\n7NmzB/v378fQ0FDVy9QkzE0dsX7GQV530+gaLW+b5x7Gs58K4NeDUXDQn8UyAZwUpDXAb1T6ODa/\n+eX4bu7Nl8vlKo+evHItjfLlhqNUKqFcLiOTySCfz2NkZARdXT/BWWc9hOee+0v83d+dj4svfhRn\nndWL1tYWRKNRY2xYgofAzcNWfF4DP9/P9HQu364WhYEKv0aZTCP+67+OxIMPLsOVVz6PzZt3Y3Bw\nFPhvvvkm9u3bh8HB0e/dmjpDTXH5MDF8U5o8Bi2HBb0tTSpo30/Qeq8H4AMO+rNGEth+74oxAZ9u\nKM2LlSDUbnbyInnohiDPQz3Sy5flpB+9nrlcLiOVSiGbzWLevCSOOOIqrF59Mm6//XLcc886fOhD\nj2LjxjSam5sRjUar3tcvwxK8A5eXlRsxvizrZ6o8/aB64onFuPrq9TjmmEFcc82DaGpKob9/wAj8\noGGcsKN0bLF927paoK9NSXwf03onsxz0p0kmcE9EPiZgaWCT62gfDQTcMMhQjoy9yzQTILj3TSGf\n4eFhjIyMoKPjN9i8+VEMD2/Ft7/9fhx++H5s2bILmzal0NoaR1NT0xiQ8eNT/vR+IVkfYes2zL61\nil+XZDKGH/xgHZ5+eiE+9alnsXFjD7LZLHp7B7Bnzx7s3bsX+/btw9DQ0BgPP8g8nZM0FEG8e96y\nCjIyR2sB8Do1gVwDeFjgOy+/Wg76M1RBjYLJo7flYfL26QbWHtkHUAV6bgT4MSgtGo164SJ5DB5G\nomPRlLz+fD6PgYEBpNNpdHb+BGeeuR09PRfi2mtPxve+14UTTngV73rXXhx99AhaWprR1NQ0pl9B\nngelm+qvFi9/ogyA7ET+/e+X4XvfOwYnnbQPV1/9AOLxPFKpDHp7e7Fv3z7s3bsX+/fvx/DwsNf6\nMnn5NnBroA6yH9WDrcNWLttAr0F+Ijx8B/yxctCfRvmBvRag0zpAj0VTuvT2+XbyppSduDLMw0Er\nPX7Kp1QqVR2P0ihP8shpnjz/bDaLQqHwluf/XZxyyi8RiRyFPXtOxde/fgIaGyM48cQ/4cwz92LV\nqgqamw8YABNITHVqq3uTwgDDL79KpYLBwTi+970N2L27HZ/73GNYt24ApVIJQ0NJ9PX1ed59d3e3\n904dehBO89Q1YEuvnnfu+o3SMXUES8eAz2tGgNedDfwyL5IN/n7pYbeZa3LQnwOydehqXqtpP37T\nEaB5OIeP1CFPmo/FlzcmiRsD7tHTlBsVXi5uDFKpFHK5HBKJBDo6BrFkydNYtaodmczReO21k3HV\nVWdg2bIBnHrqKzj11P1YtKgZzc3NY17xMJ0yGZLREBlw330r8JOfrMeWLa/hM595DLFYCZlMHolE\nAj09PVXDMtPpNIBq+MqnXU0fIJf7Aah6krYW4EsvPEg4xzblsnXYjgf49SoH/WnWRHn7Wj7Smzd5\ntFqa9KT4jc9j+nzepGg0Ogb2wAEwcMBT/jwWz6c00ieRSCAej6OlZT8OOuj3OPzwNvT3n4Tf/vZd\n+PnP34n161/BWWe9ire/PYvW1hYv/i/FjZ4MU0226Bg9Pa245pq3I5Fowhe+8CAOO2wI5XIZyWQG\nQ0NDHvBHX17Xj2w2CwCehy9ffaB5+ppxMLUGTPkA4/vACs3bplKTCfx6NQwO+rNQGuxNxkFLl9Li\n2FpIB4CXZgK9dmOa0igvGsHDw0Y8fETQp3n6PGM+n0c6nfbAF4u9gdWrb8JRR61Ab+95+M53zkRb\nWxbnnfcsTj99AO3trd6wT9MYfqoP2/JEKZNpxC23vA233bYa27a9hK1bX0ZDQwm5XAGpVAr9/f3o\n7e1Fd3c3uru7MTw87L0xU77B0gZ/E6hNI3hmAvA1x0Ou1+SA7y8H/Tkkv1YBoHdIyhYBbcfDLLQd\nvTaZlmVcnx/D1mKgH+9s1cbR82GX/LkAPmS0WCyiWCx6Y/2j0QTmzXsVp5zyMySTZ+LWW7fhxhs7\nsGXL09iyZS8WLIh7D3zJMk8F8AuFBtx550rceOOROOaYHnz5y/dhyZLkW28lzSKRSKCvb/RNmT09\nPejr60MqlfIMofTwtdcX235+hkAuA8GfwJXX3ZYm50m2+L1pH1t6rdvNVTnozwBJWNe63rSdBn9g\n7CcB+To+KodCIDK+T1MyBPJmlQbG9OOtCtl3IL18DmcJf5rm83nk83mkUim0tPwSGzfegVLpHXj8\n8ffi1ls34WMfuxObNg2gtfWA56/Vi9R4O3ZLJeD++1fg+uvXYuXKYXzhCw9ixYrR992n06OvpBga\nGvI8/L6+PgwODiKbzXr1zD17DfhkmE2jd2THrQZ7v9h+GOBPpHcfJs2kegc+4KA/a2Tz4rm0zllt\nTL5pP9ki4PDlywB8wa91EtM8//Ex9TRqRwvtUAuDA18aAd4/kMvlkM2Oes7NzbfjbW/bgaOOOgqZ\nTAy7djVj/vz56OjoQGtrK2KxmNfxGcQAmKQbV+Chh5bj2muPQkdHDp/5zCNYs6YPhUIByWQW6XQa\nw8PDGBwcxMDAgPdLJpNjwjmahy+NgYS35uHLTl7tuvj96H8zFcAfr3cfdtu5LAf9GSI/b95vH9O8\n33HkjSZH7cjtTB25BH45iohuZm40pAHh4SJpALi3z8skvX7+gXf5QrV8Pu+93K21tR+ZTCeGh+dj\nwYIFmD9/PgqFw7Bjx2nYvHkfNm7sR1vb2KGLYUVle+qpxfjJT9ahVIrgox99EuvX70E+n0NfXwbp\ndBqJRALDw8Me9IeGhpBMJr3OWg34QUI7fL3mwWvwNnXoTjbwJzucE3bbuS4H/RkkP/AHNQymVoE0\nDIAef9e8VdmxS2kAxoR8uEwhHsqPg5qP1eewp3IT+GXLRXu/Dol3FvOwz+DgIPr6+tDZ2Ynm5hSi\n0cW46aaN+M53TsGaNXtx3HF7sGnTfixaVBwDRJN4WV96qQs/+9l69PW14uKLn8Tb3/4S8vks3ngj\njXQ6jWQyiVQqhUQigUQigWQyiXQ6jWw2OyZ2LztrTR6+9OZ5GMfUAjC1BGoBvgZ9/j/yA76pBaDJ\nAb92OejPcpk8/LBhnjAhIJ63BL+pI1Tz9jnsOWh4iEd25PLjSuCXSiW1tcHroFQqefBPJkcfeJo3\nbz86Ol7C8ce3o6lpKQYGTsAjj2zEz39+PNraspg/P4WFC0ewaFEGCxdmsGjRCDo7M8jnm5BKxZFI\nNCORaEIiEUciEUd/fyt6e9txzjkPY8OGncjn03j55RGk06PAT6VS3nRkZASZTAaFQsGrd82rp74H\ngjstm+BPkDcNz/SL00tohwE+30+myf+T3Na0HHTdeLatFznozzDV4u2bwG/y+LV5Lhnf5+mA/nI2\naQgIBJRGQJPAl2kEcr4Ph7uM9cv1WnhJU7lcRqFQQKEwOjxyYGAA8Xgcra1vorX1eaxefSOOProd\npdJKFArLkc0uxuDgQrz55gIkkyuRSrUjHs+jtXUE8+al0dKSQkvLfixenMRBBw1j6dIXUCwm8fzz\nGYyMjGBkZBT6mUzGe9agWCxW1QHBPQzwOcQ5/LkHr3n23AjYOm5N66huNeCbjAC/Jppx8LtmDvYT\nIwf9WaighsG0nZ/XD9jBz2PsPK5OnjTBl3cQckibjIGEO+/EpfU8zMMf2pJGTPYV8DReTgoxZTKj\ncB4aGkI0GkUsFnvr4a9XEI/HEY/H0dkZx6JFsSq40jnQ0NHRD8Tk8cILox+Dz2azHuQLhUJVPcgY\nPIc8B7wthq958hL2mgEweftyPdUfr0c+Hxb4Ln4//XLQn4Hyg3qYfWxhHgl+Wi/3NXn8ptcyyFCP\nNAi8LFoHLA/VSKibOm15GoFcblMsFlUDIF/2RqN+ksmkCmU+8oXERx7JHy+LFpIhz5179DJ+r3n4\npoezbD8b8OWP/x804PPrqG2j/RflPvI/rMkBf2LloD9LpUFeert+YR65DTAW/jbwc4+d0mh/GXvn\n6bSvFp6RnrwGfA552c8gQ0c8fELH5waItpF9DPxH/QC2EVGyXmmZA1YCmHvvtnkN5kGexjWB3RTX\n15b5eWgGYSKA72A/tXLQn6EK4u37bWPy5uW+cjva1g/8tI7H4SmNw5xDX0KWH0tuTyCRwOehJVOf\nAT9P/uMPgdG87DjmP9m64Oci65qfuwmiEtyRSMQKfRPkTcA3jeLR5jmoNQNhqkOeps1r/xFZT6Zl\nv/TxbuvkoD+jFQT8fvv4gZ/SxgN+uZ7DmIeXCNQc5nQcGY7Rlm2GQfYZSLDznzY0VAM+Hy3EjYsM\nW/H65PVFUxP0NSNgA77sqLUBXx5T89ZlWU3rHPDnlhz0Z7k0w2AyFqZtucKAnwBKU76eh3UkaE3x\neABjDAf1E5jCO34dwfw48kdGgU+5h695+lQnpmuhgdTmcUuPXwM+X6eFeGg9P7cgBoDKqbVK+LqZ\nCHwH+9rloD/DFcTb9wM/n+eety2vMODn6aZx8jLkQ2ncg+evXzDBnENcMwTcwEgQcmMgWw9aK4K/\n9sEP+ry+uJdP6zTwNzaOfmOAvids8uj5+4Hkei1+bwrxaHXhB3x5jhrkp8PDd6pdDvqzQLWC37Re\ngl+CTwM/FwczzfN0Hm/ncKY0vr8ttCNbBH4hIOnVc6PH0+S8DO/Ic+OtEJI0bBJymrdsC/WYvPmg\n2wQBvinMw8sty69tq21nqwv5P9TkPPypk4P+LFEQ8PvtM5HgJ9m20bx+CXw/oPOy8H348bVyyz4G\n7uVzwMt5LazDj0OS5yUBKL19PpVhHoK1XNZgbzMYJtBrYR5tWZ6Hn2HQFBb4YSDugD8xctCfQ9IM\nw0SBn3vNcnvZwcshbfP6TRAlY2EzDPzYdC6y/4BAaBrGqfVByDd8EsR4eSsV87eA5VRC1RTf12Cu\npdOy37t0TJ69zdv3awVo56edv986W5pJDvgTJwf9WaQg3v5EgJ+kefE8jXvQWv8Bl7YN7wOQoOfL\n0rhw+PKWAXCgI1gaKs37l+WXoSfTiB0+lfVmAr8ErgZmP9hrHr9pO7+Qjg3sJmOgnZ/c17ROygF/\n+uSgP8s0FeCn9YD+pK5Jpm2lhy+9a60vgMqlxfcBqEZBMwbcKGitBNkqkTF9yk+DvdyOn68Eqi22\nrwHclmYzFDaDYoO+tp6fC7+uUwV8B/vJkYP+LNRUgx+wf2WLRPCTo3tkObjXz7eR8Xkqj2wZaF65\nlsbBz2P1/Bw0Y0TnawpFmere5DXLZR7f9wO/Dew2uAfx8E3AN52PTOPnZVpnqyObHPAnTw76c1gT\nBX4T5IFwL2vj+ckQCl+vwZfgIj192VnL8+avWpbGRNuee/r82DTPpzZpoKdlrROV6swP4rSt6cMo\n2v6yHDbg8/JrIA8D8fFA2wF/cuWgP0sVxNs3bTce8MspYAY/B7ZJsnWghXu0kBCt5yCXLQRqFVAZ\ntZYE7wuQx9SMUpAWlnZ+cqp57NIY+IVpggDflD+t04yDPBfT9eNhrSCgnqhtnMYnB/1ZrKDgD7Lv\neMFPsqXZDJCpdUDePR/+qbUW+HpTX4AM1/B8ZJ68LoJ6+xKSfp62Bm8bxCcS+Fo9a/A3bW8DfpgW\nQdhtnMYvB/1ZriDg5x65bd/xgN/k0UvvW3qS/PjaCB/N85fGwbQ+qHcvwzjacwBa/fnVt/Scg3am\n8iml2wyDH/C1spjK4IA/9+WgPwc0Uzx+W+gnaLiHw1lCSqaFGftP4oZBtgh4eblh4MesNbxjgjxN\nbYagFuBLYyPLJI2ALLsJ+GHOPez+TlMjB/06ksk4jAf8Un4xfw3epuPKskqP3hQS0tbbQjtauix3\nUG/f5CWbPGoO6CBwl9uZgK8dT643lcsmk5c/HuA7wzC1ctCfIwrq7U80+Pm8BnlNPD/pRUuQyK9t\naXnJcvDx+ba+AO1H5aCpDfayvmzzJg+f1sl5Df60Txjg21oA0ts3GSxe19o5jkcO+FMvB/05pPGC\n37adto8f+OV2fGoCPxd568DYMIssBx+GqbUItJCRLJ/chqebzkvLS85rXrUfmP2ArwHZlq8sYxAj\nFVS1evkO+NMjB/05pvGA37avBj1bPrSt5snbwG9qJfiN7uFj7E0wMXUU8zSZLgEZNqbP89VCKUGB\n72cwTBDn5x4E9iZNhpfvND1y0HeqkoS4n7fP0237mrYzgV9b1sDP8wsC/kgk4r0n3wYvXkZpGIJI\ng7uc5yC1deYS/G3r/Y4ZtGxB6sW27Ld/mG2cJkcO+nNQ4/H2tXQTpLV9gk75PjJPP/jzNK4g/Qqm\nkJFfnWll0I6hgdPm3QP+oRk/CJs8fm2bWiRH/zjNbjnoO4VWWKNiA76tNUDi+5g6laWCGghttFGQ\nc9LytRkAbR4I3vkaxiDYAC+NkVbWoHJe/uyUM+F1rjDhiqD7BF0fNE8JMRNA+ToeC9fyCpKn6Tg2\nCAc5RpBzDiNbPnLEzkTm7TQ75aA/RzXem7WW/f3AHXRfP1D6ebFBvFyS37hzU5jGlL+f9xvGeMhO\nXDkvn7gNqjAG3GnuyYV3LGpoaMDRRx893cWYNskQjoxnh92HL2vj3+W8aYw8Da30y1fLW47YsR3X\nJtOIJZO01gNf59fC0AyK5sXLFk6QVovfeZgMizMYY9XZ2TndRfBVpBLkH+7k5OTkNCfkwjtOTk5O\ndSQHfScnJ6c6koO+k5OTUx3JQd/JycmpjuSg7+Tk5FRHctB3cnJyqiM56Ds5OTnVkRz0nZycnOpI\nDvpOTk5OdSQHfScnJ6c6koO+k5OTUx3JQd/JycmpjuSg7+Tk5FRHctB3cnJyqiM56Ds5OTnVkRz0\nnZycnOpIDvpOTk5OdSQHfScnJ6c60v8HO4ihN1ztBvsAAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# deformation with smoothness term\n", "t = linspace(0,2*pi,50)\n", "path = array([150*cos(t)+200,200*sin(t)+300]).T\n", "for t in range(30000):\n", " x2 = filters.gaussian_filter(path,1.0,(2,0),mode='wrap')\n", " x4 = filters.gaussian_filter(x2,1.0,(2,0),mode='wrap')\n", " dx = array([u[int(y),int(x)] for y,x in path])\n", " dy = array([v[int(y),int(x)] for y,x in path])\n", " delta = array([dx,dy]).T\n", " path += 0.001*x2-0.001*x4+10.0*delta\n", "imshow(u); plot(path[:,1],path[:,0]); axis(\"off\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 0 }