{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "from PIL import Image\n",
    "import matplotlib.pyplot as plt\n",
    "import pytesseract\n",
    "import cv2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cv2ToPil(img):\n",
    "    return Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [],
   "source": [
    "img = cv2.imread('validateCode.jpeg')\n",
    "grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
    "thresh = cv2.threshold(grayImg, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]\n",
    "retImg = cv2.medianBlur(thresh, 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [],
   "source": [
    "grayImg = cv2ToPil(grayImg)\n",
    "thresh = cv2ToPil(thresh)\n",
    "retImg = cv2ToPil(retImg[2:-2, 2:-2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x118e20a90>"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAACTCAYAAACXvkKnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOy9d5QmV3Uvuk99OfbXuXu6JwflgBAiYxENWDIZkzHGlvN1wL6271r33fuW8bW5971rmwe2r0w2GdlGgAEjS4AIBiGhPJIm9sx0T0/nr7+cqs77Y++q325Nt2YUGNyzzl5La0qnv6o6qap2+O3fNtZacuLEiRMnm0+8n3YHnDhx4sTJExP3AnfixImTTSruBe7EiRMnm1TcC9yJEydONqm4F7gTJ06cbFJxL3AnTpw42aTypF7gxpiXG2MeMcYcMsb88VPVKSdOnDhxcmYxTxQHboyJEdEBInopEU0T0Y+I6M3W2v1PXfecOHHixMlGEn8S515DRIestUeIiIwxnyWiVxHRhi9wY4z1yBARkWdY+Q9sEP09/JslfFSMtNG6bWt/q+70qDMej2x8vbO7pn3Uv+tfORGH8dPrBaf91qwzBk8MpmCDuQjbvXXatMS8GBER+YG/7gjMWbZ5a475/3w6/Zqnj279/nCfehve3SP8Lojug/Gpy1AQnPZn8igp5+o9F8jP1u+ledR+JSLyZc96agbWXxO0hUfrrc2Z9vPaNUYrParVbDAGu+7qbbyTjRrXevPieWougnX+vuZ2/D979uyJWg4dOkhERIHqQkyuud711lx73blCm4n+XX9OwzVbb1zrvXfWfxet/1ytL6f3bf2/n75X7Nq2RWvt8KPPfjIv8AkiOqH+f5qInvlYJ3hkKEMJIiIqpApERNRoVaO/p0yKiIh824nakvLQ+YS2uOp2b50XBkUvutPlTNOuHwL8Fm+G9V4vwZqJDn/R1Rfl3ylrZ7iUi46XFqv6Z0REFI9eNpBMPE9ERLVeM2pLeZnouB5we9pLR22toCPXwZUGsgNERLRcW1b3g4SPp3ofUmKdjZZSv8gQr12NsJ6+nNNWa2TXXJWllMlHx+X60jp3j8k9+qKWJlX4wLSitiwuQ41witQy5O0Y/41wToYaRETUo9pp9yPCRyMbx8Vr3ToREaUJa9hS14zLHtdzHh6F+5mIqCPnrN3P6HD44vXWnBNeKaH625Fe19HvGHZTx0/I9dSzEsPzFN3P53PS8SzG5at5kUvmMhh3tR7+HfsindK7iU/60AffH7Vcd9113K8O+pPP8D6u1eunnaslJfuMiKgnz5r+sIcv2aSaH/3uyBE/Gx1qnnZOV82PF7VhDdNxrEOj14p+ebrofnvqyJz2dyhluLcv99R7oUl0bJ0bPakX+FmJMeYGIrqBaKMvkBMnTpw4eSLyZF7gM0S0Vf3/pLStEWvtjUR0IxFRwsRtNs5f2lu+8Q0iItqzc1f026DHX9ROsx21lcZYa2otLkVt3S6+TKkUtE3c9PSvYmRRb/AVMaJAeOZ0vT2w2qQ83ZwNjLbTeQxBDH3M5XnMd919R9Q2uWUsOh4Z5uNuU32F5fR8uhi1LS7wHPQN9EdttRo0pEaLtYJUBlp5PM5L7MWhpcRifLy8DA28r4D7hCayp8xZT4YY+Ohjp6W0TnExFEqlqG15tUxERMk8+pNOswbV9XHuShlrm89xP7Jq3N0296PVxJxmcjwuk4LGVmtiPOEeyaWG0MfuCBERNWsN9CfL2pmJq2tnce9em/++PL8StQ0O83WW5tHv0sBAdNyQNYkloLGF8+Ml8Mh126KBK401rtwTRtap0YS2mJD5S8cxp52Ar9PsqWekpy1Wth7iaeyBdIEXtFwuR21DpW1ERFRZxfxU6mpt8nydRhVzlc3n5H44J1B2aj7LlvZyGfN37533EBHR9ksujtoe+tFdREQ0OTkZtSnvKjXqPMZMEs97Ls33brcw1l6b+xbucSIiz+CZTYp/p6nmNJPla8YS0NoXVxblb7BGllcxhvHJCSIiaql3FTqutO41LxyxqPT7Sf4eeHiuVjurRET0wpdcG7UdmNHODsiTQaH8iIj2GmN2GmOSRPQmIvrSk7ieEydOnDh5HPKEUShERMaYVxLRXxE7DT9irf2zx/p9zHg2L76pk1MniQgaIhHR6gp/4ZIxfAkT8vd2A1/MAaXttOpoh2zsA98oROJF/wantQVrglVKwq/nOhq4VRp4Ks3jWS4v4FQVrCuIlpJLwc+6vMg+3sHB8aitK5qj1cFHpSUnR0f5oA2toFHhr7mn5jk8I5VVWlxHxR1S4s9W2n2oeReLSjNWllCzxppwTmmviTgfzy3AMPPjvMYTe6FpLZ44FR2n5Jyghb4l4qwhmRjG3Wiz5thRPtqhoUGck+XjpRNzUVurwXM+sWdH1FaZn+b7ZpQfuo25sIY1uXw/rh1G32wL41+twvdfFE11TUDX51kPlEJmRMX09a5S6xkYPr/TwRiTWd5L6SS0+3aP17veQB/aag94MgZtEeRkzzVb+N1AiS2LRk2fi2cxmeA1qVeV5SXWQzaHgc3MQ1sM50Jrt6Hl9vAjB6O25zzzOURE5CsLr64spVaD+6Qt7oIEPXo9PEu2x2ujNXD9jqus8L4Z3DIata3M8R5JK207M8zvGL+N90ssB9//qePH+XfK2oV5r3zc62jbZp02G8MY4gWe08EJvOeaRHdZa6+mR8mT8oFba79KRF99Mtdw4sSJEydPTFwmphMnTpxsUnlSLpTHK0kTt0MxNntOnGAza3FxMfp7aG5l+hCkq8yyed1TJv7AIMzZoLMOsE9MlGCdgOXGLhT+S3w9oKFdHxb0WC4U8mBe9wTKlxyAe4Hqlehw7iSbcKPDW9S1xQTsqvuFYx2HW4WW5tXfT4eGUUzOT6tgr7hg6gqyZWK4T1bcJHpvNCTgpk1hbXL2xJ1SW4XJmTUM+0sOwMxsNg7z760KzCl4YDrLAd3mPEzpXpePC4NqLlLc1moiCKdN+1yK90g6haBqtx26GjD3pVEea68Dcz3uwTAtr7ILyiqsfiJ0Ma3CtTG2c1t07Mu8NjvoT9Dj+UnnsA7JhKyxht31FIxQ3GxG5QyQBH97Aa5tJEgXMwpiZzF/zQ7PUbOJc3pNXkcdsK3UOGBZKMJ0HxjYHh3XVnje8iMjUVt9gfefdm8ldVBWnun6IgKAWdk3TbX/Vpa5jxkFURzYqjASFZ7rThvzE4Ie/J6CMMo+jyk3bEsFLMO/U18B15ZrVpbg4mz6vFcyeb3HFeyxKG6ydXI49DvC6HeHvJfWBDajICaus9Llddh9CQAeG7lQnAbuxIkTJ5tUzqkGHjee7ZMg5vFDHATQAYiUBFkC9aULv7J5FTxrrUKDSqjATCT2MYKYG8AIQw08sd5Z68AS17Rr6GF4rDTwrnzNW00EmQqjSKpqSBBlZQHa5MQegVgFKqHFiGazAquFciqIEmo0/bBgIo2uAQ2TtogGv4r7BV1o713ZE6kSNGMrAbfZRWgpCRVIC9enWVMauCSgpJNq/gq8nu1VzEXCB9SvUebf5jNoExQctWqzUVO9y3M2OKI0qbzStk+K9tqDRhdP8oV0QLzaZgtvaC80zRMPPBAdb73icj5Qe47CgHAcm6ktmjoRUTJxelZqPCbP2QD6uHKUg3ipLLTyhLpmIoQKdvB3XwKAbR/9iSV5j6QSuDapIHqjx4HaSh1zPpBji6GnAuI9j/dDpYp9kbDKGhaLY9ceWBu9Lu+LThP9zqbwrAYSlE2ksU9XBb6aSUG7TUqAcPEkAtppbTX6PH95BVOlvOxPtZdaEkxO6+BiHuCA+jxbDDkFxZ2ZYm/AxNWANdIKj9X38Vy0lLUfzrnW/iEqiBl4p7V762jlPRXEzI1y37PacnUauBMnTpycX+Je4E6cOHGySeWculBSXtyOx9nsmZqaIqJHYTgFA1pTJlFWzKjUEFwOwRKyw0KM6xoRs2S9rMsNg5hmPUIgObbqHvqi67I+ne5CoawEl/phMtK0yqwKAyEqiNnaz+b1O9/xS1HbYJ7dBbaF4M/WLQhoLsm8xJVro95k18nIFlz7d97z+0RE1Hf5ZehDRpmrEpiyKnvTFNgM7XaAEW6rtYun5J4+9pO/KthwhbmlOrt/ThwFtcPWi5+n7s3Xry7AdE1I4DSIY1/81u/+MhER3fr9r0Vtu7bBDZJL8n5p17BIsYD3nsa83/Y9QcEm1HOg5q88x/kKfX1wJ5UlI69/H4JMKweBae4fEfM8wH3q4j7TAdQ/+MPfIyKi+UXlGmogMJpJ8JynA9w7JpvOJLEOYRAz6CGIGSiOGD/Jc+4bhbFe4rUdHcNz9eHP/DUREeXzcDt5RuHfe3yfY8ceiZqywmOTieN3KgmUSpJl3FLPdDp0hyaw57oL4ppTz1f4jiAi+vu/u5GIiP7t3/4taisU+HkYH5uI2kKXTUtlCXeVm+hrt32LiIjaCrefkmdj9RjulyvwHNSaWI+SCt6uSmbpGjdP6FK1j40D99YBRfQ8PEuLXV6vvZeBAMy5UJw4ceLkPBP3AnfixImTTSrn1IWSMJ7tFxTKvXfcy20KVzwUpsgrDCcJdrWrzF6j+hzXvw3lMVAoG5FZha6PmNG4crnPRi6UdShWwYoFF4rfYdTD1LEDUdvuC/bhHDHP3/nCl+EcIXCKezDn0yExla/S9BVGOCTo0em9YUp1T6UoD4yyKVhrAY3xJ//1v0bHE7t28DkKG94QM7So0tW7atxlMUnziho2IyiKuaNHorbRS2Xcilbgjju+Hx1f85xr+aAFd8Abrn8bj6WOuQ9N5GRWUR8ksUdCTLNOBc/EGNnSaan9IwRP5VW45f79zjuj42aFXR6ZEYWKCXj+F04cjZqGt8OMb6zI2JRZbGVf5Yowua+77uVr/kZEFFisbbHAiIvlWWCok+LeSaRVyn1wOhLEV+4bL8t7QD9rns/uh57K9v/qt77M/VFY61ZNUQZLqv3SDNxfg6PsIqktwyXR7aBvNcFvb1EuvLakxWdVvgc1ub9vedOboibt6ioLTjyrcg+GhnhNmspdEhK0eQn0u1iAC6peZ5dip405/8a9P+a+Sno8EVG+X85RrsWF4xj38ASPp70elccGeSNesA6ZlbxDNAqlIzkOF155UdR2cnXFuVCcOHHi5HySn5oGfuoY4z011WOzyl/rlCJOD//aUjjmzLAqTLHuF/DsvktrlWn+6hlPa+DrBTFP/3o+6qr8jw5iJuR3inKzpTDYYVDnLde/KmrLJDmIomlDw2zUmMraampsuRAUaVy63+ZxJZIYQ1tImNo+AmFFRdb03v/1F0RElN+xM2o7uP8+IlqrNfkJjL/aYC1o926c43XDDFRce+HAISIiGh5DQIi2QLu9+yscVPy//suf49rLvCatVeyLgX4+Rwc22xZadConhFMKh9tZ5TlNGFgJgZDm62IHmgjpG7feytduIHAcUuHmx7EPu0qDT2T4no0G1rjZ5n4OTmLc1z73Gr5OAWvcUOsZ9iPhQXM2Ia+vd7p9GRZkIFpLkBVmSRpVVSjo8TV7XTz/n/vcZ4iIqFhQa9zDnGeygsFWhFsdsfCSiuhpeQ4EYgMlWXtdfkf6GSgN+7WveQMRETWqKoi7Di2y0e8LsTg7Pp7ZkuQuxJKYsyUFeigowrhQymJl3XY3LK+uEOtNHZ+K2vYq+tuW5FzozGS8UNank/XWMf+N7M+uymRtJfh4dAcACi6I6cSJEyfnmbgXuBMnTpxsUvmJl1TbSEL8t1XBtTDIsqYgqZhrGWWiUU3XL1znG7SOW2g9R5Fd5/9OCe6XiKivxK4NTfijzdSeRIB0kdeYBP6MagvT1FstVemkBlN5bCtzY1cV6U6xjwO6H/zEp9BFwWUvTAFzPHzRXvxdKvbowMvvvuMX+X4rqFYzWOJrew3lAqnA3M/vEDy1CgRtlwokyS0I1lEb47nrvvuJiGhxGfO3vDxFRESTPri/Tywyxryj1tg/gYDme/7gT4mIqNdWZqjghWMF5TYosgn7+S/+fdTU85DOHroiJrcgEPTcS17D1zGnc1OPjKxf5ei1111PREQ3/eMXojYTPjZq74Z830REVmo9ZsdQdWnu3uPSL6xDSCrWUcHkoUH049Pi0ogrM70mvOtrUsplnRZmp6Km4W1Id++u8BiNcg3Nzk3L/eDSCXo8z+UagoKNOvbFoAToEwk8i2GuQL2BuR/YifVePs5c8H15UB7ExDXyylciaG/FldM/rMal3JUh8dpXvvaVqO3YMQ4qbt8HvHRXnrHXvv41aFP1L208JCIDHj8rLqzXvfzaqO0f//mfiYhoq3JjTB0F/j105UxM4HmIihArV0mgixpLzop2ZVGM95LCC1Bg16u8u744DdyJEydONqn81IKY04dZA9AaeJhlFlPflVAD11quDqKsr4Gf3rauBr5OELPWAWQrpOSMqSBSKo0gSNzjr7nOJqVIS1GBRKmYElNQoZiC4x2544dERLRrN7Tp5gprNJmcJiiScSXR8f0P3h8dX3zlVXyg50eu82tve1vUNC+EQWMjCMJlMqr2n2jjH/0ytB2SIGhbaac1RZeaFiik7yEwVW1xMGtxCUGtKy7lwN3cDDS71/z8L0THJmAtMOlBYws1lpbSVL/xzS8SEVF+CPtnpQoiJCtrNz+D/g6kGcL45le/I2rLxHgNF07h3BGVcbckFKPfvv1bUVtiF89b7QDgkflBrRHz/C/NTmEMsvZ9A5jn14mWGEIeiYhK/YC8vffPucBVPIlgXk4IuzQ8clYqHg2N49oagteq8NqVlHafK/Ee0pV7cgmBBFbRli0oal2hk+0rqDqjEmTXGczNOiyzoSHOwu00cM2XvfDFREQ0OoQM3ZBSWb8P4irL+huSgRlLKqeBHM/PTkdNgwL3rCm65t/6jd+Ijhen2QIcVpTUYS3ZeUUne8ttHLxOjatgu9r7ZYErakrmtJBzZbOwUDJp5TnwTrfcfIFsNhSNcJDhwPG4oih+wkFMY8xHjDHzxpgHVNuAMeYWY8xB+bf/sa7hxIkTJ06eejkbF8rHiOjlj2r7YyK61Vq7l4hulf934sSJEyfnUM4YxLTW3m6M2fGo5lcR0bVy/HEi+hYR/dFT2K9zLmFVnUIJAcuFZTapGsr885KKu1lMWxvowKbwUCs3R0qIoFYWEeDLL8HkrArhFHlw9GQuZHdKbwoFgeNSxLXahuti16WXRsfHjk4REdEWxXWcKLLJ/Xdf/9eo7Tde+goiIup24JLoqsK5gyFuu477kHA8p4YRmEu1YT72xNyN55SZLrhhz8KMPLnAfWxbXLvtgd+8L8cZbkETZmbIQ/1vt309apuZZTKw7Tm4gQpZmLshudb87INR23KbMeif/drfRm1veMnbiYho63YQYS0swJQeHmMzP1GAS6d7nM3wNYF1XWha3BclVXzbGjaRj6vszURYoLeBx7CtOKcvvOAyOVeRPvnsOllS3PFXXfUCIiJ6+PAdUds2heGnDvdTFz1eLHM/jOIfPznDfx8dQdbk4WkEzHNFvs7CDKpAlQo856kY3DzTJ7DPbejOVM9ITuby4YcfjtrGRzhYOKByBj79D5/EGMIqVMrNcWqGXSddTRomRG99W7BP//oD74+Of/HN7Eo8fARZ0VslaJ/JAfPuhfztdTwXd935w+j46c9/vnQC7sFQ2j1FJFbHeibEhRJXeS4hjjyfQVtFuVPOJE80iDlqrQ0p1E4R0ehj/diJEydOnDz18qRhhNZaa4zZMBJqjLmBiG4gWv9rEaz5rfz7ZDsV9m29tjNc3CTQy7jAs7qqQpAODiWk6olVww/jLoEKDoewtKb6staW8GW/4sU/Q0REUz++L2rLSa3QoX5omG0JtljFfxKoWd2+70IiIrrnO7dHbVde9jQ+aMKKCCchrwKy1TKCPvGw8o+m6pXKK80VaBzxgqLHTbMGcewoaHLD+objOy+M2k4c+4GcjPnZqmofnppma6RXwdbMS2ZgqV9B0XKsMxw4CA17fCsgXwWxVrKqj4HUkQw8BNlSOdaAllWVo1we2mQYOG3XMD9hNmSlgrb+SWh8nQpfPzmiqFhbHExeLWPdm5K9msvA6qs3cc3Q2vN9xUkj8NOqgvdRgjXmhqKi1YH1olCjzqlgcv8wB/vCDEcioj3bmR73uFrDiy6+PDoOx7t7KzT08jLfc/oEKHGffe2Lo+PpR9jqyavqOwnDe+WiCy6J2pYWOCi4vKBglipQ2zwyRUREmWFYNSWBUqbVep08xVp5rQnrcMvu3dFxVTh7du5B26xkjiYz4N9JCOfKitL4d+0CfXBFKJdLw4pGV56xeg37q9bEcZggnVVzEXK7xDxVQehxyBPVwOeMMeNERPLv/EY/tNbeaK292lp7tfeUvZqdOHHixMkTfYF/iYjeKcfvJKKbn5ruOHHixImTs5UzulCMMZ8hDlgOGWOmiei/EdFfENHnjTHvJqJjRPTGs7mZJbhMNqqMczayxu3yJK6znljlIsmJSRUnlbnXVcVipVpHSuF0Y5KZFgT4XVuumVfFVVsthZudYwzyjkvhajgg7pRhlfnohTSfqpBqQuFi28tspl/5zOegjweniIgoq8ijKktsfu/aDtdFOoZA2fEpodXUlU5muS2jqt50qsDMrwht6Pa9qopIhfuzND0VtW3dzZmR37v1tqht+iCy+HpNNveH8jDTm2KGGjXWowf2ExHRhZdhDCfnQAd6coZdH3v3KkrOaQ4I93qaDEzcKj24i0pZYLqnpXKSzqwNicH69wC3v3DPQ9Hx8LhgkWeBLc/38bguu+wKdW9ez0JRuXl89OMhwfhP7sRcFAd5r+X60MeHH/4eX/tyUBQ/9DCCdLu287xlMhjD6gK7EsZGsMbzxwQj3Yf7TT8CjPXkBK/9yjTccakU9+PKi3HO8f0IfI6PcntHkc51m+zeaSzDzeGJm6ignhFKKNKx0LVUw73To4yTnj8AN9qo0NsuLMMlVj6GoOqY9Ofhh5BVuVNcLCsV7GeSzNFEFS6tusqUzkneREuNK/SaxhXQIa/ooMMCyD3lki1LpaJOGc9AevDsUdlng0J58wZ/evEG7U6cOHHi5ByIS6V34sSJk00q55zMKjT+QzTIeu6QNW4R+Z8n8qV5PEWNQ/G7cKGkUoLbVBzEtoa/h+6Unkq1T3hCWKM6XJI083YXKAHtTrlfTOUL9sAEzpcE812GWZeXCi0phXDp1WFSZsLo9iIQCtkxNhlrB2BSX3UJIwsOHYQZOTQItEuIyaWTQBZ4k2yunnwQroJmDP0YnGQCo+lpmNzDghsu5YGymNnPBER7J4FfHyoCPdIWrGy1DMxyMsVzevGOC6K2f7n100REtLwAUzmlEERXPJfRN/d8B9jdyy5+OhERXf9ypO7ncoICUMVpT5yAK+b22xnRk+zDenUFkVK97zDGulPhroXYSVeL8sVsjhVVyn3A42qoNSzk8feLBEF0/ATw0r2ATfb+fpjZ+QzfJ6Z464s5IHbyhZT8C1dfeZnblubgIhgc4D3QUAV/92yHW+/4MV7b/j6k0qeEimD2ONxFwwNAFcetVBBS7q8EcVtSIWDS4pJoKzfF61WFqptuvUWO4H5oHmH31sgY3Gjk8d/HRkGo9cqXwlnQqvH1L7n0yqhtbpFRKDfe+JGorSJYdqtcZ9PqeXja09hV09Q5IvLbhBoXKcRYWPC7o2oF9KQykPFVJegzQeWUOA3ciRMnTjapnFMyq7jxbF9IZnWEv+aBKsoXM6eTWYXETHFdTUSRNa2hZgzlMSrybKiBSyUeL64CK6GGaaFJ6QomTckWVDExSgh2PJlVlTqkekqnh2vnB5RGJ9lei/NAY46Pc3Dp2OEptElQMZkG4VG3gmsmwuon6jqUY+33Pa9CtZ+4aALdDrQH60F7+8svM1HUGtreHazR9MrQ7ldURZ/ZVdY6x8ahfdkqt/Upoqz0BGvyd/3rN6K2vbuh5V3/c0zwVMhAywvnXBOardQ4IHnzNz4atc2vHsI5hrXIK6+6Kmo78iBrWm967a9EbYkua7JxA+30ttsQYA1rLA4q8iMvJ79VpEQri9DOUpIFmlXUqF0J+DbbmNPXv4HH2morGuEiNOdPfuoTRERUGsB1KlUmvur6Cl8sz029As2urx/7a6nCmmp5Ffe+ZN8ziIioobJtV5tszWwZh/ZaV3G9kEBrtYaAW1i3sy8LfHYYpCQiSiRkrjpqrmb5Pr/5qyCZqojVmE4g6NdTgIIwU/pLP0D9VAoDm1ZpryneIzWFiX/r2xDGa8qzpi3gT3ySMz7LFYxr8gIOULfVWFeVZZIUymZdozPMyLb6JePjfRHVwrSnU8z2VBWtlryLJnbCsnAVeZw4ceLkPBP3AnfixImTTSrnPIgZBSqjaOZ6RYKVE9+eIb9+PXeJd3pFi0BIgAJdoNiDWRdmiXoe0mn90LRV94gnYGrHk2HqLNwKvsfXScbh5mgJ+VTMwyBWFWFSUYJL46pIbiBEUT1l4iZDfHJZuU2KCjMaXjOBMZCY8z1FytMnAcuycp/5ce3yETN2C0y43km+di+NLaPxrJXVZRkDXA39gzwHpgvzcPUwB/4KihyqOIlzvnYLu29+9sU/j/tIdZ6UKkYct3z8jjfADPdjWIcP/cNfERHR9AG4k9755l/mfqk5i8tY6zXMqR9DYC8/xOM9fByBxL4iuwtGJsHXnC9gvUO3ZH0e/clJSr9OcQ/zC9IJzONqGdzgb3/rW/k6VUUqJns2loK7pH+A7/2n//19UdtWRSuwXOb+TI6iLRnjvWTiuE48x/NcXoTbIJ9DADp8aPvUOpSl+K8XYF/ovImIlkG5EvpH2c326c98Jmr7hVe/nq+jPLoDiht95hQHFd/2sy+N2qpSEerm227BSdLHd775tVFTQ2G1R8Y5qH/0BNxtK015bjLYp5Uqk33Fk3DptAkulJSQUGm3aOjO9VR5HaOOQxeKdrGERbeDNZ7s9eAc67u6nQbuxIkTJ5tUzmkQM2lidojY+X/wIf4CJmMqmNfiYES2D9pZY4W/jtk8YF5WRw19/kIq3huiPH8VF2YQWBruF1qrFOoAACAASURBVNiajx822tCQEukwWIqASPilDDoIVPTUR7GXYM2o6+EL3/D5mrr+5fgQa7InpwFP27EVmZF+hzW+VAzjapf5mqkcMh+XDnIwavDpT0cnDiHrjfpZq/rgu34papqf4XN8pQkEQpB1dBma1v/+0MfQ38sZvlY9DkhgQSqddOqA7XXUXCX7Wes/qOoGhvA2TQC2W7LeGg3Mz+xJZMrt2cmZkwsz6Nub3/AuIiJKBNgrtQrPvac0k9IA6F2XVvmahSLaWpI5G8tA4/3IZ/5fIiLavgcZiWWVIVga5PbaIgK2p2ZY65wYASFSKq7oZiVgp2Fy3Q5fMx7HGr/4ZZwxWyjBYgos5iUM1htS5FpimWVKGENN6mxqYip9/HWpLnPgblDZ7hnje3dbKlNQKG+TRfTx+CIqPmUEmjg+CBKqxirPy/FZrPvoGALQfTmpv6rImhrzvLbZNOaMJHj5c899btSUVBC8orwTqopULJXieTMexrq8xGtjFRFbaRgW1+e+whaeH8P+eniaCdb2XIo98PBBzoQuKNjn6iKslYF+tma0tRKSaw2qTMqk0uBtm9fMV2yxScPvFi+OfdqW9R4ch8XUpJ4LYjpx4sTJ+STuBe7EiRMnm1TOcVFjY/uJTZv5aal2U4Y9kc2wiVwpgxO4WGRzoqdwr7qiRdDmYy+hApdFNrNOTisSmyLjgcOiuURE9S5Arqk0z0OMcB0vYBdArwvzT7tQ/AT3qaOw4y3LJlVHYawT4jYqKjz0/OxUdLzrYsniqyj8tlTy+KU3/GbUlE9zsO/EKVTp2bUFJEK9GXbR5JVboZDle+cGYdb+duguKQC721PY3YUyjyvKyCSipTl2Rw1O4jrUhQtqVY5nlzDnO3YxnnhVcVfPznDft21DALBWgQsqm+agWT6FvqUTbJJefSlIukpSiadRwb7QMjjE5yytqAzBUW77u4/+P7i3ZbdCx8A0H1Ac7ENDPL+LczCVhwbYrVVeRHCx11SBu4D3y7Cav5bweCdTyoXy4mcTEVGugE1VbSK4XZAM1lYDelZWMOhNH66s0iDvq5rCMScS6M+qYPSHS3DH3fTp70nH4cawYTWpPlUtKoBr5Ljsr0v2IrNx6iBn1o5MwL21oCpPFTO8jl1VYWlkUPasciUEQirmKXz2q19ybXQcusr0+2pFAqjpNJ7PC/exe2dKcZp/8VvfjI67Qoy23AU3+ugVHFR98F4U8Y6luXMXKs7ye+5EFvKuHeySzWXgLqlIAfEVxS3fVLzkKeFBj8fgMjNdbmt3sQcm9nLG8fAY8PgOB+7EiRMn55m4F7gTJ06cbFL5KbhQWOZPsWnbrsC0Cl0jy4twJfQJV7KJwd5KpGAy+Q12yXhxuABMnk3249NwNYyX2IXi+XBjNC1cKGkhTIr5ykci2Far3C6+St334+wm6ZqG+jsfB6rI7coym+djqvySVS6hRpXN5hGVek15nqk3Pgu4V89yP4aG4MaIW1VMd5XHPaHws6tSEiqWRZT7//7AjXzQjzJgpFLJSUy9Tl2hTPKCY+7ATO8EMA+zo2zu91TbXfdy2vMzX/DsqK08x+4xXfg2rUpMpeJsQr/xNYrFWJBG6STMfWN5bUoFzNnSMtwPsRivZ7ujyls1eB2GhmCm9w2xq+G9//O/RW2798G9M7/MrqORUbhVjKRPdNtAP5yahpto9zbm/D45BTN9fJgRDr0u3EWJJO/Zdg/npgbgHjwmnNXbt4F4aXmR529gGGN40Yuv5esp7ulqHes0MsZrv6jKlWVT7Db42pe+HbXFPF6HxVWszeCO6JCMWP73/AgY6iufxQWVK/NALBlF/rZ0ivux45KnRW3+HI+3olBQ73oH14fpKjKrmMpSCcvCaRTKdilEffwY3CUhzD4RxzO7vAL8dt8Au7W+dDuoHGaO3UVERBOXwh25fz+TmI1vxTNSW8XzUCpye6eOTnqyLzSZVUwVjU7IvAQKEx+0ZJ8qOoDDy4wsi2dx7hVXXudcKE6cOHFyPslPTQOfOsr0ptkENKiqkO1o/OeCaECjo/id1sCD8AuoMspsnjWNEwrHPN7H2Glj8GXuBPiapwWzTG3c24bVURTI3MSAL7VCbdm1mhSK24xKKZudZQ0hX0S/R7W2LWRX998F6tNL9nEg49dvQKZheZk1l15LEYCpFK5SJtSckXU5PsSa46oqWhxLsvammDDpw1/4F4yhLmNQWjuFJEs9aEiBr7IX43zOSh3W08AIj3dBWVS5DFsHWkM6fhR4/V/9FR6vplgt9fGuqSrirhtvvFH6AM3lD/7wPdHx3Cm+58QEsL0hBesDDzwQtfXafP7Fl4HK968++D+i41SB90OrC20xJ9V1sqoo9LEpjHHXxMVERNRpYK94Pd5DGUXzSr7MZQJr2KrDilha4X08sQU0uj3BEhtF5RsL52cKwbN3vettuI3H2Z3Ww1yFHHJLc9gr3/82Y59NVmXyJqC1zy/x85RS4547xffcsweVmEKaXCKiZpXX8cF790dt17yArco3vOyVUdvCKbZWBvqR+WkVoOCfv/VvRER06K4fRW2ve93riIjoGc94ZtQWViIaGgSpWsKDhbeyLBWYlOH6ze8wTp5S2Nt1y3vyyAwycC+75pro+L4f3EtERHu3IScjIRmqMWU6BIrwrSt00oF6ZjMx3g8mo3IGcvy7vlFFZtV6gkFMY8xWY8w3jTH7jTEPGmN+R9oHjDG3GGMOyr9nXwfIiRMnTpw8aTkbF0qPiN5jrb2YiJ5FRL9pjLmYiP6YiG611u4lolvl/504ceLEyTmSx+1CMcbcTEQfkP+utdbOGmPGiehb1toLHuvchDF2UKyr/Q+ySZVPQnEPhBwplcR3Zer4ESIiGh5WFUZKOMc2xPSIKe7gHJuhJ06oIGaf4MAJ5lTXIrgRulB6DQQOQh5q4wEXm1BEUZ6k6/q901nGFVSdvAL38cc/+k7UdsUVF0fHZam6k8/pwAubpn0DcLtkpdAqdeHSqZ9S7okhdk8sqKo4f/QHf0hERI0VuFB2DLNpVlHVWPrySO1fXWUz82++Afzs6iNsSvbtQ+UZv4P5WxVu5oFtCLC2ahwMu/ueu6K2Z79ESKpqsGGfdeWzouOYBFB1oHa5zOv5kU98CGOVKjPtLoKUO/citf3BezkF/Dd//T9FbUEYoO7CxO+XYF67BUx3tY05/cKXPkVERIUhRcHQ5XGnFee7p1K3jx5h83t8FMHQTEzw7Yo3uyZVhyLCJyJqt2Fy9/Xzeh+aAhZ7206+ZjKl8hkWpO8NVQRYgaxf99ZriYioSwiWhnj0/hKw6p/9ByaF6rXwTjAJzIsVoEC8gHt3hRLh4EFQOlx8BdwKFSH08pRb5RdeywHqVgPX3iF5AcdPIN3/ltvByx5IMNpTPOe1OXa7aE7uF7zgRUREND6GgGS7gfEM5Xm88zMawMDuzJu+/NmorZfkPVDpIqA7MIn3zo9/yC6UKy94UdTWrfOe7CnyNqsqCMVTgnVXfHrUEboJxXBVETqFS5+GqlUrnda6LpTHxUZojNlBRE8joh8S0ai1NnReniKi0Q3OuYGIbiByEVMnTpw4eSrlrDVwY0yeiL5NRH9mrf0nY0zZWltSf1+x1j6mH1wHMY8e5gyupqoiMhTWb1xGMKbbYYd+t4dgy/AQtEUTwgLj0FyCLJ9/7AQ00bEiw5g8q4iBLAJTaQkAWgUNC+vzBQaaQlrVTozoTbsq8Cn0kArRRTXR6DJFaGwnT6Fv2y5gw6WmqETjKV6X43PI/to2LtClZVgbxUHAnA5PsRaULSIQlJQqNoMZBE3f/EIOHu0bgza9eBTBs/5+/ha/96P/gEFEFWkQWGqozD/fcHthK+B2foPHGEvBannoTg4y7dt7RdT2kmt/LjrO5sSKWEIGZUzgdrd+G5lyvRhrKSdmoLHlC9DEKkK5m1KESX157tvbXv/LUVt9lvdNNoWAbb6E69SF8OzDn/zbqG1ENLHZJZCT7dyNrLlTi9x3TbdblPlvq8TR4a2c5debx96OB+hHCNN8cOrfo7bLn8F7ZeY4rMvKPI/h0stegYurLMfaCltP7/p1UKw2JROxXlWWa4PX+LZ//UHUpq1PT4LwSyenorZsHz8PmSFAZPff9ePo+KK9bGmaPvz9umcy9LDTRieN1MrKZPHgfPbzn4qOk1mB9Kr9d/Q4r/3YOALV2QI/k5oW+jlXI4O3V+bzL9h2edS2Klu/HSCI+a93fp6IiA4cw9z3jUF1NoKpjDVx7wTx/sqk8PzFVIDaJFdPG4Pn8/xZBZSoyzt5ZAee7Sa1nziM0BiTIKJ/JKJPWWv/SZrnxHVC8u/8Ruc7ceLEiZOnXs4GhWKI6MNE9JC19n+rP32JiN4px+8kopuf+u45ceLEiZON5IwuFGPM84joO0R0P6Em8H8h9oN/noi2EdExInqjtXZ53YuIxI2xJXG7nzwqJlwZZku/FOWtq0KiqRQHnmoKH6uLgvblxMxQQUybFxeKMjNHi2yymwCmVTNQQZ00m0cpAxO2UuNAh6+CnXlFSJWNi1nYgfkTdMPMUBXYTIuJPA7Tqnoc5vchMQV3794btdWEV3y1h995PrtyLhhFEWBfcXg9ssCm+5LCgY9J9Z29W4HT/Y0XX8fnzmD8w0lkb4YEPasqK/UvPvc5GaAC0CpXDYmrZmHuGK45yeZsfRXrWZ7jdXrLL7w7akt6uHcga6s5sr/4rzcREVFDBZTSBZ7fozMHorZdu+ESMil2nRzdDxeL7fI1xwdA6nTdz3BQdaAA18/MCRiTQyPsTpqZA1b9rgfvICKiZg8ur5lF4IXT/dy3bAEmd1UK4o4OIbBZn+c5K6bgfqmeUhzYw9zfTgGZj42A93Q6g/mpLQjR0yLCUMN9COLFh7kfz3nGjqgtVWD3zNAg3JGdFV6Hm/8J2ZlEcGl0JHEgqfi+Kye5b00faxwSiRERLZ7iOXrda98YtWVTvC804VYqzcef/wICiYlBBCwP3X83ERHtuRT7OOTcX1zGa2dUKu40GngfFJJ4Zt96PReSDqpYm8aS7GNVUyA/we+lz3wNrrPDs3dEx319PG9DGWTJUpvfB2F2JRFRRfHnr3b42QhI5Thked/lipjTtgTyR7dhDZvkP7EgprX2u7RxQbMXb9DuxIkTJ05+wuKAIU6cOHGySeUcFzU2FH4zwnJRpT7gYpeW2BQaHIBp3umxmaSLxs6cAHlNMctmozWKIEbcQhqDacX74yu8pR/A/+DLT73k6d+0gJR7RtduM3KSgZkZFi4l5UGxQiLePaGQFTFcZ1iQJDk1xlZN0m4VxjzE9gYqdT+WxVzlpYhwQ3VxTgiubA2lsf7m7/+OiIjee8PvRm3xKuaqIa4jUqYnJcPitIrMS2GnY0l2PQ0rgqxOhdczl4d5mJLzixm0zc/C5TMoaJeZ43BZ9Bo87mwRiJJyhfdATNEuzM/r+WWXxc4LLoraZg+zG25uDiRTn/78R4mI6C2ve0vUVhoAYiKkIBjpB166J/zcPUVKtHM7TPtmjPs+t3IkastJScATp4Aq2ruD8e/lE3DFDAzDDVTtcHs2A5P83v1MA/CMa4CiWJjj3+3cg7ESWAeoOitc7gNwE5G4Jpst/DDE/1MWc9pQhZkz4mbrzCq+/hKjMIoJ7F1S3PzymK8pLRYWtG6p/VOT/T4/r4jsfOyLPZex2/DwIw9GbaNb2cVQUiXMDh5ml9ruPUhJqVYwhs984WNERPTO18CF15RScpkM9tdqOXzH4FnLKZdY6NLtT8AF3G3ynrM9jFWXgszn2O3SURQU1SU+nj+GPVDu8Pz19yviPUXIpcVp4E6cOHGySeUca+CWrGiRvuV/qy1kA4bZdb0AX2ZftM2m+l0yh27XBKdbLOJr5QtpTzID1327JxVREvhmNZsKB17ol99B287nWavsqEKzDRUgDCSDrpDBV5aS/JXuNPBlTqb4dzE13UZ9Oyek8sY9P4aWPLqLNZqcys4c7mdrZeYwLJDRsR3RcUihqqvdHDnAQbzAhybfrPNXv9nEuLIqMBxqi3MLCMBQiM9tArurq+Ek23y+NdC+0mJR+BVoMfEYt4XUuEREnRa0i4JkKi6qqiZxLy39xh7ICL67pwsrJ2F6JBIcAFuZgbY4LnPVTCMLb+YEZwSPbMe5KwvQ2OKSbZlQhZBDUqctV+2K2k4c+G50PLid13b7LmjtDz3CmXspZdW0JSjbU1hhm0YQPZOTCjkx3DsM/MVjWK9Ki69Tb8FqySWBT06npfiv2n/JJGO6l9U8Z0QzppgqHFzAvqlV+LeFSWS81qb43vlJtZ4qP2DL1h3chyT+3hP8d1JZoaFFrjNwj80geLtvjJ/PkEKWiOjozBSfqyJ0E5M859MnEfzfNQlSqCjYvghrLU7cR9LUzNEx2nQBbTLcXw0Cicu116RaKos/NEeSiuwqDPj2DeKcIbEIau31tW4tTgN34sSJk00q7gXuxIkTJ5tUzrELhciIGWISYvoqrLFNsIkRS6JbcalukVH47EIXQYKleTb3llQh5Pwouy+6HtwdhQFxz+hiwyqIWa5yYGsoDxPXCHrSU1V44gnFBy7lP3xVXScm38SECoZ2xFWRVPjYWA/3rkhx1ssvQQHVesDm6gNHYArueP4ziIgoN6GKI6sqK54E+byu4giXajcF5SLx6jzPHR/uEO3yGR5k87owpLirpcKLbcMkLOzcER0H82zueQPqHAmGtlrKnSQulloVbTqQfUrIuQYGVPFky3Oe6QdmmQSDfdeP74yarngaqr5kJEiaUgjY6YOMoR4fw3X2XMwkZw8/jIDjiMKJx2Jici8jyDQ+zmb68iFg3rduQwCxKa6RI/uBWy/l2a21uAiXRTnO+7PXwZ46tgTiqp6Y3zapqvgQPweHj4E8qtjHc16pIlciNw63QVgwqryiqA+kgPbENsxFrcKuyyOHkQq/azdI1wpScHj1GFwbfaMcSGyV4ZLwLfZ2p8F7IB7DMxsG9as1BPP6hR8/pYip9l0N/u3v3/IlIiJ6zktfGLUNDfC+yZUQQD14iPu270L0+5677omOr9zJ7p9CEXuuYHgOVlX+SS0sRjyAoPwjd30NfdsjRFOBeoXKPo3+JVrrlvFDl5Fdp035gaT6mNkIvK3EaeBOnDhxsknlnGrgxiNKSCzDE2pFv4Ovda/HX6auikoYqbQTT0Bb9FU2YGmMYXSLZZWpmeS/dwjaaSzLakhHnZst4Us4f0oCWzEEf6zP06O1hyCpYYh8rWZXBX0kuJRIgzQrIYQ1lZPQvkIoFRFRWoh3Yklk12WkMlBfApZHb4XHEFOZn6uL0BpiDZ7L/DjuvSXN2omtwUroStCwMAyLoKaCNd0M33tZaWzU4sCe2QlNc/khaIEkQclkQwVGJbs11w/4mq3y/CTTGEMmCSjkyZOstcZbmIuXvuRlRER0082fiNriKe7vc56tCJx6KsA6x/tLKf80eQFrZb1TWK/VU2wJPv0CEGpNHQPR2EqZ52BgSNXElLUNlqAtVqehCyVzO4iIKN2EJrZ1hDXVrXuwt+eFOnVREZtd8YLnRcenDjAkrtgPbTo7yPC4R44hWzKf5f4M9AP++IPbbomO/8efvo+IiHLKuiyU2MqoVWFZzErwNpVXgcs2rIzjUnVoIIMg5uoUP3c6M3RkHBmE3RrPb0oFMUMLe2UFweKm7M/rX4F1eO+f//fo+DkvezkREQV1nFOUeqgd9Q655HK2wu74Pkioto/viI6py3MQM9hzS6u8HxptWAR7LhRreB77+fkvelN0fOx+yQAuqapVXRljoHC82vLthX9Xr91IA1e6tLx3TE/zzipNXonTwJ04ceJkk4p7gTtx4sTJJpVz6kKxlii0dmZPcUCpB8h3FLDMKU7glGTaJVLKRFXZkH6HzeZ2FwHLpgQI4ymYgiEO3CoMpokpJihPzG+riiNLMCKu7qegxtSQajCNNu4dFj1OKJPRyhiLWxAc6ykCnmRCxttSeGmpOjuoSKbiaTGRM3CRjBRh4vUNc3Dt5BGYveMjHITxfZhjv/E7v899aMJk9BSu2Fr2O3zk2zDDqcnuJn8G1x7YorIT6/z3uKoU067yGJMtRU4t89/u4t5Liv/9okvYRXPwIIJ5BRlvXwGBzZCjff4IXGcjO4F/j0sWX1Et2Px+DgiXinA1vOkNb+e/qQzA4XEEuPZdypmRn/wsuNHnZ6f4fhMYv1VVWIzH9xwowJXQq3NbeQbBvj5xeYyM4X7VkwgQju3j/IDyMeDWs0XB1tfhsihXeS4mLoBb4P3/31/h3pJXEai9PXuS12ZyB/r41VtuJyKiB+4HadOQImAbmpCivYrnfGyC3TvlBbilunU81AnJr5ifV7h+ee1s24rnISx8nVSAgSue+ezo+OjdXHA514f9lStKcekC3BiNJXZ5jY/AFar79kvvZi74sDIPEdGJFXbbjW1FQPcDf/MBIiKqVfBs5z3cu1GRfZXHs0h++N5S0Ucd0OzJmnnahcLneEZV8QnBBda5UJw4ceLkvBX3AnfixImTTSrn1IXieUQ5sXa2bec0ZF1Srd1kF4LvAzqwKoVfy2WFoujB1ZBJcCS61URKdYgx1pHvaoVN9qwqLabJdEL3TUfhxFMhSZVyoRhNmhUX1IyP67TFPEoTTKteTwomz8KMzCmUCgXc99e+6Geiph272V3we7/761Hbyj1sXvcpVEe3gnHTOCNbtkzui5ree8MNRLTWRZCREmedJEy0dBH9+d7djJu1dSAUTI7N/HoFro8MwTRNpPnv84ooamQL97Ol+MBjMTYVb7sfqecvevozo+NDxx+Uc+HmWBGc/M8KGoWIaHCQ7/d//s+NUVvzpOpbXtA3HZieIwO8+d7wxtdFbUlBXAznMP5qE9j78jLvu7sOol7JZVJs9vA0iKk6CnufsIx02LUT/O5tKeA7OIFH7lWvYTbmdhfutI/+wwei44K4ZUpbduA6S4zC2DEKNND8PLsjn/t0uBz6+4Aw6gVCjKYQWAlJpS8vYu82F/h+lz79JVHbkUNYp117+ZmdnkKK98IK76vhSZB5tVWxbJIx3H4HsOXXP58LAc/PYk+OjbP7Ym4BHP5veBkQKQ0prfipz3w8aqss8n1yBTzTaY/dF1snQQr2ml96TXTcavLfeznoruM72c24sArcvi8UDYVtO9CmEF/5DLtgAo04CfNGaAMR9InRKBQ59jy4c7vi8rKeerY3EKeBO3HixMkmlbOpyJMmotuJKEWssd9krf1vxpidRPRZIhokoruI6O3W2sf8ZMSNsSH6+YjQPpoevkYhGVNKEU5Zj79GiaSiqFSZXr02n1NvQ1tspxhXW29Ckw8qrA32FaG96qLGfXkO1nTLCKDmkpIdlj6dKIuIqBmw5hRS3hIRGSvYcYvAStZnyttUEsGq3jICU3G5/LveBM0nm2LLZGQQ50zPsnbSMdCcR1RFlWN3M9XolXsVVvsUB/nqPvqdEux8U2Hal7rQqj76mU8SEZFKVKWaaPoTu1GBpDkLjdcKrjadVQGlKo8xn0PArd3h9azVcD9dKPqVr2StK6ECPZ6USgkLRhOhaPHoEIJROngUau25HPoTdHlAOmcg3cfrnS7i3IbSiG/6Ms/F5E7sm6VlJo3KKXrbXgfnBy0+PjkNi8sTPHBaBVV/8RcZV1woqWcgofZXjfdAswrrIKwoFUtCmx4QOtW+PLTu+x6Axrt9F1szvo9z/DbPyxe/9v2orXJCiOG2Ys/dt/+r0fG+S1gDr1cw1sE+Dha2F9X+yuD8xqLgtgPsWV+yeX/7t387alsScqmwMhYRkU94fisNsTx2ARMfEp412rAiQvrarNqH1RX0bbi4g4iI5k5B+2/6fJ07ZxE4pxUmjGt14CHotvFu8Fu8jtmEougVbdzTXNJKs46Z0wORRoKYPVVR7ESL8wMueyYK8NQ79ISLGreJ6EXW2iuI6Eoierkx5llE9D4i+ktr7R4iWiGidz/GNZw4ceLEyVMsZ3yBW5YQS5OQ/ywRvYiIbpL2jxPRq38iPXTixIkTJ+vKWQUxjTExYjfJHiL6IBEdJqKytZEvY5qIJjY4XV+JwiKpKTMo11a47DDtVKXGBvKN6XYRXPSVOZaViiDpBAqg1jx2Cy3PA7NcjHNQsF1VQYeUcnOIe2OhCddGWniYtelu1TfPE2KrpCLfare5n9VVmF59RcYnd8pwOSQHEaSjVTbnYor4xhMc+OJx4IYTslyFYZx77OBUdPy8y5jsqjWPMQxJKv7OCRTOvWeR56Xdj7l43wfeHx3PSiWdYgZzOrGPg0LdJbgXMv0ootuRoS0twZVV6mfXSK2lsLQSSEyNqGo/qirMJz77ISIiuv4Vr4ratgxz32MEV0s35IfvYT2qip88LX6pmMXa5IXnPJ5SPNQS9Ko3EHj7wV2gCKhVef4rc7h2u8MujZVFpHVPTGD7ZzK8x3dsV3QJEgQm5dbLeLyOqydx70IBa5tM8B7wFZnVgFSrajbwPBx4iIPbJVVkWldzWShzUPbjHwOWfbzErrDOHNwPxSynyM/tRxD3kr3Pj46PHOWg7XA/9pIvRFyep4ofV7Ge2WIp7FDURsLR/rEv3BQ1PetSrrizTRXy1a+njARdOwqsEB5rrnETcowrOo6M4lgvl3nNBscwV1/87jeIiOiHt6Kg8jXPYpIzHfg1isKiNMH97CwqroYQy61dJZ7mGA//VThxcbHoIGZb8kuCx/Zu83ln/gmRtda31l5JRJNEdA0RXXiGUyIxxtxgjLnTGHNnQGfRIydOnDhxclbyuGCE1tqyMeabRPRsIioZY+KihU8S0cwG59xIRDcSEcVNzIYaeNAVSI2qseiZsKqL+q6Ihm48BAZiKoi3MsO39ZJK4x3lr302Dg1p204OwMzNAObW7uHrGdYGbBMCm4FkXlkD6mtd6wAAHeJJREFUbSZQdRDjMQkuKQ28I9U0mj1oIY2AtdKFVQS1xg2yCtMDfJ8PffnTURv1WGv9k1/7rahpfpH7vrgKLXhkN4KYD0xxdZmteWiDQcB9XJpD0PDvv/Mj/lsVsKlDFdCpTm7nwODSEgI9i4tTREQ0NAB41uocSJgyaT4nX0LAzYvxXGVUBaUFycDNFdKn/Y6IqBfwmtw3BYhe4xSvyctedD36uGNMxoU53T6JTMwQNtlW2a3pNGtdN3/xH3HvBAcFA6UptVexdvm8aMkKGTcqED2/D1r5yWnMxfYtrMm2q5jzuKynir/Tv3xFCKmUxXn99RhjVwK+sTTm5+Q874F0AoHhCy9h2OjsSazX12/5Bm40wNc5fB/mNCGVgWwHe3tJsiVHd2Meq7XD0bEvZHMmpgjdQsivqq6j1cJ2SG5Ww/OZEsvXVxbpD45w4M7OoarQ694IKyyd4n01M6uqDkkmpucpK0xqaw4Pwzr8n+/7s+h41w4mA/M97ItOjed0z8XIDD0klZqaLazN5Vf9bHQ8f0iIxlKK4jj0DGgNXMGOvUgDVxmWMpWB+l1XYJ+kEYoqmVnLGTVwY8ywMaYkxxkieikRPURE3ySi18vP3klEN69/BSdOnDhx8pOQs9HAx4no4+IH94jo89barxhj9hPRZ40x7yWiu4nowz/Bfjpx4sSJk0fJGXHgT6XETcz2SYbizCE2pW2gSIDEt29I2ZnEgYqEKvyqTZQQE15rw/VR2sLBtwfuuztqy+bYfB5XBEQavz23KP0hBHW2DLFJVUgiy6zXQLCm3ZSiswkVfEzzNX1VDejQETZdc4r4JpOAC6FY5P7mFF66vMJY5V4XfRzZzm6XU/MIsrWrCOqMJDjzL5NCJiaVJRCpM8aE79snBDtbaWCjp5ceJiKidEGbyjzGvizmL2YRmCoV+d61RV19h9dMF5IO16ulgtI9VUh6VlwEe/dcgL5Jhq5HmHtPzFVPZbV5KrgdHeuAkZV+KOIgEo7sVkVhw/uxDr3QBeBrLDu35cZw76bKNp07zn8fGEBAsjAgv1WRKdvhPeDFcG0ysJVbEhlO98HN0bTsy4mlsL+OTrH7a8+2K3Cu4rY2We7bwizGOJzlbFLbxrVjhvvhpdXzFUNQui546YBUVasYn19KIbDZa6q9JoE/XcTaSGayr0ixYuIiNSmsV7cLF2gix+2+xfNZlSpRRpWuyQvZl1FBVZ1xvbTC+0sTiB2bYXfI9r2ovnN4hnMqdu+Dy/DEFNyvowPskk36cNX4wmHf62INA/V+y6YE9BBTAXyZ/6ZRz2IfB5GPLtwXtT39kl99wjhwJ06cOHHyH1DOeU3MEEvjC//HGg1cPieeDgKIxuYH62c3JdI8hFgP59h2CM3B9ymswVlvIejVC/ClHBxmyFetAW1wXmgmV1WgtZRBgCfhsVbfVjA4a1k7UUVmaGA0I32A9lVXlUXqor0VLU6qC/R+qY7Y8ImDrHknUuj3gKrZl5JsUlLZraIsRnSvRESJjgSjUoq214N1UMoPyGVUDUVZt2oT0TzbxTr4Pp+fULVLrVDYWhWNCQPUMYN7mzjmN5fhMVRUvcREgs8PdIZbGPTRQSJNySl7yCitHBo4mkjgiEbDuNS9UwJf67ZxUi4t8EBl9aWURTUsUD9PQWR7shCx+OkWQa+lNNEkxpOW+pDVhso0lH3spaGB+wm+9qqCwFYqCKCWEgKVbGPfbBtiy8zGse6dDl+704UVFVc0w7mU1N6sQwOfm2OYZWarqrqkJtiQ7AGV1huX/RCLKwix7K9A8RxpSmaS50oXikwmeQ91fFy7Wue1iysjQNexzeZZSy5XYFkUcgx1PPjIVNRWFJjh0WMI4qYz6E+5wQHjnFH0tmnWxrM5wEfbLQ2U4L1WU1WrUoFYAjnFU5PlMaYKZ9avnQbuxIkTJ5tU3AvciRMnTjapnNuixkSUEJMqI1VWrMo+tJZNYBvAjeH7pwMgNSlPIjj9G9SVIEJGVa7J5djU0VS0jRZMmZ1jHLCMKxKlapv74StKUj+B83Ni9sQyMNF6XogFhVm3vMDmbiarMwlxH18CyfkM2gakakwqo4JaQjhVV/jiXhPXXJRixakAeOBiljHhSVV0NhBTeg32tKMyFpNsClZVW1aw2i1Ftxv4MGfrTXYnTKos0c6SZLJaVUFJ1juWQFvMQz/68nzPpQUE3MbHx+U66wTcdZByPTH6nOC0tq64gWIJjHWlCjfb0IDsIdVHErddo6kKOOeRtZrr50Bap67I1MRFkNC2vQ2zjNUzoFwNicj0V+6kPF8zloNbpW9IKkfFVbayqiTTV+Lgd3lZFcMWt11GVZnxJFBru5p0CeekwyxRg7HWLbsZm3U8s0nlsohLdaJAFZwOJDs2ltCUyjzuniKP0sRW4VwZlSOSFkpm28a4m7K3jXKn5ZRLIyy+XK/C/ZWTij6VOuZsYpRdk0em90dtxTwCn80qX//kzImoLRPn/ZDPYn4yyu2SF+K0WEy5hqTwdUPxAN7/4P08hqIqV7aBOA3ciRMnTjapuBe4EydOnGxSObdFjclSV3JCa3U29/01ppUgTrowJ0Is7NpiwzCZwhT7nkFbUnCo9QZcDV5KXACqmO7cPIii8mJmFVKo7jFQZHOrrSLxzQbMrBCP3tcP5IUn5EirynzetZWpY7I5mFa2B9O0Ki6RWhOR8VNVdiG0LNp8wd8OqWK51IU5Ni/8yAnC/MVH2MxMGphjXUHsaBdTqwVzNZNjU7mhqsxk0jwXpgfTs60w87Ump/f3LFAxMY/nxSgMeugx82LKPFZooUyaf1urIDXd2yK4YUUsFHo0NtRAIjeJRq6c/rNEWJUotv6VGlL4OavNfUE9aFfeGpF97MWV2yXcQwpFEd4zkcLvfOUm6kkq/cn5qajNE4SMl9WIE0Y01dU8zp2CC6pviPs5v4g0dErzOpkMimbnZe8n1VwE6ln0GzxX6RgQJ1uHeU8vVOBKSCmSNAGKUMfXOQW8jzUlRrgHNKbb9nTR8fBnygUl56eS2mUTpvurV5u6TNAJZAx4FrtVPme0BK7xoCXVkPIYa7UMBFZbinzv3HlJ1Nao8jxXykCYlct4L2UFy14sYs7TxHPux/C+2HshUzGsKlfoRuI0cCdOnDjZpHKOg5iGvDCIKRlwpPHdoXqmNK2u4Is1NjxQGmYgGn0yjS+3l+TjhCIBSgv+M55StQJVgDQtBDsnj0PjzcQYC6pgplSrKfytBFtTK9AK4oLjDTG1RMhCS6pqKyVVGSiTleCQUvJiEtQZyEG7SIY0qF01BqU5B5Jxp+N2tQ5nj9Ur0ARiAfdnax4ZppqqNRbwXMSV1pS03Lme0vK6hGBfVepnzsyBFGt7jjMDTU9hvv0Q74s+krJwQq0spgh/QsIzb90g5ulNa0RPRnioNXGpkOOruqa6AtOqWEe5MaxXW7Ick6qSkJYwUB5TwTwb5+OWqh5jhAo3qTDkWitt+RwU0yRd3QRbOlYFvOOCox/JgcQspbI7+0q8j4eHsQeGkqwFxhUdb0y035giylJJhdSuyrgUcVVKsOo62zEglWkoS+91sZd6koUb9FTmrFwzoXICum08L4mQEE2BA3pCAmbiuE5KgAI6GFpegeYc1oPV9XJbkvuRyyMA3xWLMp2AtlxugUTOCl1tpaLolaWC1/gYiOp0Rmyrw1ZTrYbnphXw3/00xjU3w89QI64Y1DYQp4E7ceLEySYV9wJ34sSJk00q5ziIGVBPAnG1uqQwK3IfT0xpT2Fuwy+Mp9Ju4yrQ0ROz2lOml5WAZ6cHs60hRW77R2ASWXWddovNqG0Tu/H3tuBV1bXjSRXQbAsuW1VziQk3eF8RmNHQiqpXYBKGxWmJiBKSjhsokpuO5b836zAFlxbYRbJ3G8iqKgqLbGLs3kkpQqBUxsjfVFq3xEtqDQRbkgZumdDKj1vgZ42QRmUyiiMgqbDIPv+21UHguJvltdZp+mHQOSBV6YRgAnclcBqa/UREvd7p1AjRvng8RUJkWvQZRgKRXRWQTKWwNiuVVekXgky+mPHZHMbVVS4zIwFao1woYcCz1oRJ7YVBOhU0TClu+YRgtGMxuKB6wr/tBQicN2scsIzl4BZIxvH3pUU283Ux8PwAr1dnGc9IS1K9kypgm1B7KaRB0O6JVjhuxdfvK5BBSEancfaBuFOCAL+LHnn1rK3htAtXXBdHlm4Y5VoLvTtd5fupqryJ/j55/hWVQy7Dz11bARyyOX4e6sq1VizgGQnX89QJcOr35cXt2YdnP5fHMz0gEV2dz9Cp81xUVFHxvdsuJyKi7/74djqTOA3ciRMnTjapnGMyK0OhGhQGG3z1NTcUZu7hjJ4EOTVVqFUVXIIwm01VNUkX+EvXVwIkcGmFIYNxpclrete8ZNL5DU33GQZVoV3ElTYUk6xNz6gai0IU1VI0r9mCUE528TXX54TjtYEmDgqJqaD5LVXDWnn47rYVoVRXIoMafpUWWOPQFmgFrSqfP38cwZSxfsxVW8iTUkloD2FN0kRKZcIloamOZTnItzSPoE69x8eegnkZIXPyVR8TccxpWOtxZBQBpabUkQzrIq6RjTIxpX09/Vyf0hGYnFF99NTfUwK1XKliXMUBZYWIVFRwu5Tn8fRUsN2Xva0tyTDzuKECXaTIkWIJIWtqKItTLJ1sGtepL0lVqkEFT1MQxrklhg8WVc3MRk2CoRZrHPatazRdrAqi53jt4wow0BUtOpXVbRh3WN8x6Wmtnu+juOQoLK9r1CtJzxXQoCrgLValXs/QEtIQz5QK+FbrbImnNaVrwM9+RwVavSaf31CB1KayGEJr5mlXXYlrr/BvV5dhkS8tw0IuSpZxqR/rlJKszVKA+Zk/xfvhLa/+z3QmcRq4EydOnGxScS9wJ06cONmkctYuFCmpdicRzVhrrzPG7CSizxLRIBHdRURvt1YxsqwjVsKYRMDKakKprhSg7SpymrYc68CmJW1+879BDG1jk2x+x9Kqeo4ENTQXb0u5XcIgVkLB0rM5CQQpYpxOGy4NK8GnUhG4z9AFsLSkeLP9nPyruIwVhrjTY5dFWxFFFSUzNJnGN7ac5t/pQFgii7/35fmc1VVUDpld4EBlTJnCKcG2tnyY/Sl1nZCwKqaIeKo1DuYlVJFXP6l4s/PsEmp3cc264MRT2gwXjLEuUu0pnvSeZM/Gh+Dy8U9IsFVVWQnt5kAFQDXfVGRW29N1FBU3p464x3SFpEDh33MFntPZk8gM7RsRHngVuKzUEYQK3XEdxVEfF79MWIiXCDzg1ZrCULfgV8gangPbVTh6MfeTMVyHuuwOiMcRZCuqQtJzqzxHQ0PYp7OH2aU4MoBCvpkCm/Ed9Uw2VTAwDO7GU6q6jjw3SUVYFiiCupa4AGMpBUIQ7L3yhJIv7gtdjUvzhYcuEV3vPC5r5itseHg//WbrG0QwvrwkRaH7Mae+AAUK/ZifRoeDk6k0MjYXl46jbzLcpWW4IVOSNzI4gOvofBBfcP2thnqGYm0ZgwpAe3y+eow3lMejgf8OcTHjUN5HRH9prd1DRCtE9O7HcS0nTpw4cfIk5axe4MaYSSL6OSL6kPy/IaIXEdFN8pOPE9GrfxIddOLEiRMn68vZulD+ioj+MxGFtsggEZWtjYCl00Q0sd6Jj5bQOM2Ie2JVFYMdHmO0RkabLac4wh6lkRNRPAFXRCbD7T++70dRmz/NZks8g981QmRFQ2F8FTmN8RlLm1WojpGSRLkVLKamym0N7+FUdKuuE7pQBkso/rsg3Naaf3tyK6a+KyiEXAFmVEOQF6kUotO+z+fMKHKjfRcjHf7++7kQa38/TMZsiufy+AxcAJddNMIHcYy11oUpmBZ+5EYHNly1zWOorwKNYVKqTFaYCqzS4qtdRj+0FYIjRsI5rTC+fhfnxA27A+wsTPd8QRAyVqGBEtzHlnI/GOWiioWkRwqiEBaYNarIcibD11lewfhzeewRK2umqqNRqshrUl6Au6itSJ/iUjS6vATCqdFRLvrbbqqivFKebnB0JGqbPgZccULq8qXjQC2E6ePVZczp8BA/egsn0ZYr4nkJC3rX1b19eRK7yuuZEb5qE8AdFChEyUOHuPivpoEI3Zn940C4zM2DNGvndn6mVxbwnA8N83jayp0ZvoqSqsSb5uFvSKp+6MojIhqd4Gtrbvlmg+d8QCFyqg3QY9gkP1e1jkIVZaXvnrqf9C03pNFiitxNcgCSafw9n+V7zhwBCdXYMIoeN1v822NTKNO2ZYwJtOIKVRQXhEygingTre+dPqMGboy5jojmrbV3nem3G5x/gzHmTmPMnY8j5cKJEydOnJxBzkYDfy4R/bwx5pVElCaiIhH9NRGVjDFx0cIniWhmvZOttTcS0Y1ERDFjbEhmFdJqFvoUWYyQzix08cVMCxY2owiGfMWENDfPmtPTr34mbprle0wdeRAD7fIXc3gEmrFS2Gi4n+k1Ew1o/zEpyptQfTx4BF/PkNRHB6G2X8gETq0VfOGHRvgrvLSigotzoN/sl4LKCRV0tR0+rq7i2skk/26pfihqu+ehO6LjkOSrpzClbamuUlSY+Lvv/TEREe3beWHUtnAKyzcgFVzySovJDXJbx4em5Vv0rSHBy3oL2Z3tLs9BUgVI81JFJRnHepoeNN6Yz1ZIwmAMoTZdnoP25ZmOjAvaYFcVpK5L4d2cqo4SanRdpS0Hks43qIKmWqMLNZ9WF1bW7d+6hYiIrrn62VHb9h2gIj109BEiIiqpOW+1eH4OHgDZ12XPew73axlzZlXAfGmZNbmSCkhasZp6CjtekWzRbRddEbUtqP1l4mG+Aq4zuY2fg6OHsO5Lkq08qHDKxUHg8S8b4WekOof+htnT80uw8LoqA/qOO39IRERbRjE//VLgeVEVFp7YytnFrRWVqaqoYwuy/1pq7e5/kJ/vbB/2z5ZtbM14qjh0QmUDFCX/ZGURz2c2wfTMDz9wNGq75Bp5NlJY9+ohHHsZyRiGsRsRleVymD/PYJ/nJUi8bw/2ZOgZuPd+vKsmL7qAiIiGhnHxxQXMlZYzauDW2j+x1k5aa3cQ0ZuI6DZr7VuJ6JtE9Hr52TuJ6OYzXcuJEydOnDx18mRw4H9ERL9vjDlE7BP/8FPTJSdOnDhxcjbyuFLprbXfIqJvyfERIrrm8d3OkBU87H333UdERDt27Ir+OjjM5rCnAk9xSWXuKEKalTLMn3HhSp6ZhvmTF5NqcgJm2+FjbKosKNOpVoW5NlBksy/mK6IZMQUXp2D2Xv6SF0XHB7/L5uHOnRdEbbbO5uGySqcNTadt24G5pRSCdHff+wMiItq9G0RaMcE8a/KoIzPsvkmrwMqFl+yIjn94B19nm64sItDy40dh4hbTbJplijA9O7MIyDWEf5vampRIrqeONclXxGmtglDlZb6mJWDnjUQvA09j+WFSBhIo6nY1pQGbzaUL4fI58D0OyaxJ91eB0ZBkKaPh0hIETaYx7prkHrQUXremAoRJCUhmixjXJZdfzNdTrjxf5YWbJN8nV0JQOp3hMSYUUdaDP/o+X1t1ctdVV6MfJ9mFcvwYXGY79nHAMlvCnC0IbcPCItwmw5MInt35AAf4R8cvitq6tZBQCmu48yp2Qy4+ciBq6zQUXl9Wv9OCqy9f5DEODsI1aZT7Ip1hF+dAP1xUVXEnTezFfqcGz9+yqmZT6oP7xm/xHhoaQ8WnwrA8GzHs01nBat9x/8Go7TnPvzw6DiRou1yDO7M/y+6bS664NGorL3LQPj2ANb7o8sui44cPMGAgm0Z/GwJmuGDb06O2ThNzMX2E+5bLYs+OTfB6Pu+FWK+pFZ7/v//En0Vtr3nFr9F64jIxnThx4mSTyjmvidkTreWt73g7ERHNncSXsCfaWUxl14XikdYElIYuQZSODw0qLObiq89TWpScf7/j6/idYi3atZO1j7hCNoVZmaVhaMELC9Csv/7VrxAR0dgktAIr0J+YmtowuKgzSAM9RDm+Q/Xt+c99ORERKRZT+sG93+RzS5iLgS0vjI4fvPuTRES0Zx8g+fvvZqj+K17xW4++HX37to9FbbksNMNmm8dYb6qApGjjvtLYkkloYvGQgjSFwKY1rFU1OtDuW22e4JjFPKYCaJNGKjDF2tBKrdT9vPtOBHp+4fXv4N8ZFQBVx3WhXY0rKFZHgllJtb/CZL9WD9ZYsIYCi9cs34e98sG/eT8REb37F38bv9KmiRhIN9/8oajpNdf9MhERpZOYv3//4XeJaC316YCqFBOi1vSlv/y1TxER0evf+tao7eZ//hgREb3g2dCwdTnJH+//MhERjY4/A42itGYVidfHPvxRIiJ6+9vfEbXpwGdInJYiBNesZEE2DDaqKrNJX/6nLxAR0VVPwz7NypKohE/KJlgr7SlIadLDHqhL5Rq7Zm34ufIU/K8jsM8MthR95wcIzz3/Ba8iIqLbvv6pqO0y0bxXqpq/ltckUNfOAO1J3/sBP1cnTiAI/ObX/QoREa3O6xXDnoxL3/NJdK7eqcjdcO+2KOhdHUvfQJwG7sSJEyebVNwL3IkTJ042qRi7XqHYn9TNjFkgojqRqoa7+WWIzp/xnE9jITq/xnM+jYXo/BrPuRjLdmvt8KMbz+kLnIjIGHOntfbqM/9yc8j5NJ7zaSxE59d4zqexEJ1f4/lpjsW5UJw4ceJkk4p7gTtx4sTJJpWfxgv8xp/CPX+Scj6N53waC9H5NZ7zaSxE59d4fmpjOec+cCdOnDhx8tSIc6E4ceLEySaVc/oCN8a83BjziDHmkDHmj8/lvZ+sGGO2GmO+aYzZb4x50BjzO9I+YIy5xRhzUP7tP9O1/qOIMSZmjLnbGPMV+f+dxpgfyvp8zhiTPNM1/qOIMaZkjLnJGPOwMeYhY8yzN/na/J7ssweMMZ8xxqQ3y/oYYz5ijJk3xjyg2tZdC8PyfhnTfcaYq356PV9fNhjP/5K9dp8x5p+NMSX1tz+R8TxijPnZn2TfztkLXIoif5CIXkFEFxPRm40xF5+r+z8F0iOi91hrLyaiZxHRb0r//5iIbrXW7iWiW+X/N4ucT3VO/5qIvm6tvZCIriAe16ZcG2PMBBH9JyK62lp7KTH7wZto86zPx4jo5Y9q22gtXkFEe+W/G4job89RHx+PfIxOH88tRHSptfZyIjpARH9CRPT/t3c2L1VEYRj/vWBJGkRtpCTIoFWbbBEuIqJalERuhSCi/oH2rtpHy2pRRIUUVBKXIIjatNK+iIo+SDP8QEuIpFW5eFqcMzSVg97UcY68P7g4c51x5uW5PDrvOZ4nekI3sD2ecy5635JQ5l/gu4BBSR9jev0NoKvE6y8ISROSnsft7wSDaCXUcCUelkw26ErKOTWzdcAe4pLGkn5K+kai2kQagDVm1gA0ARMkoo+kR8DXv94u0qILuKpAPyEoZiMVYrZ6JN3PRUr2E0JtINRzQ9IPScPAIHWv2jp/yjTwVmA0tz/vHM2qYWZbgHZgAGiRlIUATgItBadVjSznNFt5579zTitAGzAFXI4toYtm1kyi2kgaB84AIwTjngaeka4+UKzFSvCFE8C9uF1qPT6IWSdmtha4DZySckvqAQpTeio/rWehOacVpAHYCZyX1E5YruGPdkkq2gDE/nAX4RfTJqCZfx/hkyUlLebCzHoI7dXeuY5dCso08HFgc26/MEezqpjZKoJ590rqi29/zh754tcvRedXiCzn9BOhlbWPXM5pPCYlfcaAMUkDcf8WwdBT1AbgADAsaUrSDNBH0CxVfaBYi2R9wcyOA4eBo/o9H7vUeso08CfAtjiSvprQ6K+VeP0FEXvEl4C3ks7mvlUjZIJCItmgKy3nVNIkMGpmWTTSfuANCWoTGQE6zKwpfu6yepLUJ1KkRQ04FmejdADTuVZLZTGzg4QW5BFJuZXNqQHdZtZoZm2EwdnHs/2MRUFSaS+gkzBiOwT0lHntRbj33YTHvpfAi/jqJPSOHwIfgAfAhuW+1zrr2gvcjdtb44dtELgJNC73/dVRxw7gadTnDrA+ZW2A08A74DVwjZAMkIQ+wHVC736G8HR0skgLwAiz04aAV4SZN8tewzzqGST0ujMvuJA7vifW8x44tJT35v+J6TiOkyg+iOk4jpMobuCO4ziJ4gbuOI6TKG7gjuM4ieIG7jiOkyhu4I7jOIniBu44jpMobuCO4ziJ8gvDVDb09dFUnQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x1193c8cc0>"
      ]
     },
     "execution_count": 126,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(grayImg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x119475978>"
      ]
     },
     "execution_count": 127,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(thresh)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x1196707f0>"
      ]
     },
     "execution_count": 128,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(retImg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'3858'"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pytesseract.image_to_string(retImg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 定义函数,添加参数增加识别率"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 转灰度图\n",
    "2. 分离图片的前景与背景\n",
    "3. 过滤噪音\n",
    "4. 去除边框"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [],
   "source": [
    "def recogVerifCode(imgPath):\n",
    "    img = cv2.imread(imgPath)\n",
    "    grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
    "    thresh = cv2.threshold(grayImg, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]\n",
    "    retImg = cv2.medianBlur(thresh, 3)\n",
    "    \n",
    "    verifcodeImg = retImg[2:-2, 2:-2]\n",
    "    return pytesseract.image_to_string(verifcodeImg, config='--psm 6 --oem 3 -c tessedit_char_whitelist=0123456789')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'3858'"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recogVerifCode('validateCode.jpeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'3213'"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recogVerifCode('verif_code.jpeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0465'"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recogVerifCode('verif_code1.jpeg')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.7.3 64-bit",
   "language": "python",
   "name": "python37364bita178267b7104410b8f4fa90d927b8508"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}