{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "I'm interested in a wide variety of problems involving modeling, strategy, and simulation. I'd heard that it takes seven shuffles to randomize a deck of cards, and I finally came across the article that is the source of this urban legend - Bayer and Diaconis (1992). For an excellent discussion of the problem, see How to Win at Poker, and Other Science Lessons." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you might expect, the measurement of randomness is key. Trefethen and Trefethen (2000) used a different measurement and determined that at six shuffles, the information content of deck reaches a value near its minimum. Also importantly, Bayer and Diaconis argue that the deck remains essentially ordered until the fourth shuffle, when randomness increases sharply. Trefethen and Trefethen argue that by the information content definition, the randomness increases from the first shuffle, and continues more or less linearly until the fifth shuffle." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from riffle import riffle, count_rises\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEsCAYAAACWkycOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO29f5xdVXkv/H1mckLOBJMhEoGMJMEfTRCjGeBabqNegq1RURx+2GixSl/rrdZayeWmhkoLVCtT03uxSu9rL+obq6ihQkckvUauCaXSAiZmIEQSfxHAg4FgMgnJTMiZmfX+sfee7Nmz1tprrb3W3uucWd/PJ5/MzNnn7H2e77PW86znedaziDGGgICAgIAA39BR9QMEBAQEBATwEAxUQEBAQICXCAYqICAgIMBLBAMVEBAQEOAlgoEKCAgICPASwUAFBAQEBHiJYKBiENGfE9EXq34OVRDR/yGi90te/wIR/YWje7+KiLYpXnsnEb3FxXMEiEFEVxLR9ySvv4GI9ji8//1E1Ktw3SVE9M2C9/oUET1HRPuKfI5rENENRPS1Au//MBE9Q0RHiOjFRLSCiH4a/95HRPcS0R/afObKwRhrqX8AbgDwtYKfcSGAX1b9XSzK5CoAPyjxfncAeLfita8DsL1qGVXIjRe6BoABeEVJ93oHgO9qXP8ogNcY3utMACMAXhL/XupY0HxW47kLQC3+nq9N/e37AD6W+v1eAH9Y9fe0+W/araCIaEbVz9DKIKIzAKwEMKByPWPsIQBziOh8pw9mARShI/O3oC/6+BCAr2pc/w0A/9XwXosA/Jox9qzh+yfBY75PAzALwK7U3xZlfm8/VG0hJR7DxwE0ADwPYA+ANwF4C4DjAJoAjgB4OL72DwA8Fl/7CwB/lPqcCwH8Mv68fQD+CZEnMh5/xhEAC5DybgAsRuRxvh/AkwCeA/CJ1GfWAXwFwMH4vn8GiZccf9afxs/2HID1ADri1zoAXAfgCQDPAvhHAHPj12YB+BqAXwMYAvBDAKelvSUAZwM4BmAs/i5D8esbAHwq9QwfBPAzAAcA3AVgQeb5PgTgp/F3+nsAJPgu7wPwf1O/vzz+zHPj3xfE3/HC1DW3Arhe8HmPAXh76vcZ8fvPlX1/zuecCeBOAPvj62+J/z7Ba4bbGSk5/jWA+2O9eEX8+kdieTweX/d2AIPxc/w7Uh4/gL0A/juARwAcArAxfvbZ4Oga59k3APgCgHsQ6fC/AliUev234u9+KP7/t1KvXYVIr54H8DiAK1N//0H8833xdzoaP8NqZFZ2iPTo3vj77QJwSeb5/h7Apvg+DwJ4uYCHmfF3fmn8++kAhgG8OHXNeTFPtfj3FYmcBZ+5DsDP43v/GMCl8d9/OyPfjeCPhZMA/C2isfxMLOu6YH74Kuf+VwH4QfwZB2M5v1Vn7krp4u2IxvjzsZzPz4zDV6R+3wDgUwB+I+aOxd9rSyyP8fj7H4m/471IraAA/D+IxtdBAJsR6xQAAnAzovnmECK9fbXrOd3kX+UPICB4CYCnEA9mRJPKy1Mkfy1z/cWIJkoC8F/iAZFMmBcCGAXwNzGJdXDCLuAbqFvj618L4AUAZ8ev9yOaRE4B8NKY4DwDtRXAPAALAfwkUaRYiX4G4GUATkY0yX41fu2PAHwHQBeATkQDe0782r2pz7gKmbAGUgYKwEU4MemfBODzAO7LPN/dALrj59sP4C2C77IewN9n/vbBeCB0xQPhbzOv/zcAdwo+7y8B3Jbhcnfe9898RieAhxENutmIjMPrefoCvoF6EsA5iIxjLX79npiveiy3ZwH8Znyv9yMySifFn7EXwEOIjPO8WBYfSumfNMQXc/U8gDfG/PwdThiXeYgmmN+Pn+898e8vjr/rYQBL4mvPAHAOTycwdfKbeK74O/8MwJ8jMjAXxc+zJPV8BxCFa2cAuA3ANwXf5RwARzN/+xcAH079fjOAz6d+nxc/3xRu49ffFcu2A5FxPQrgDJ58s987/ttnETll8wC8CJFO3SSaHzj3vwqRU/zBmP8PA3gaHCcO+XPXMQBviz/nJgAPSDjagBNjeDFSepvSu99O/X4vTswJfTGnZ8ecXQfg3+PXVgHYjmi8U3zNGTpzdFn/fA3xjSFSllcRUY0xtpcx9nPRxYyxTYyxn7MI/wrgewDekLpkHJEH/wJjbETjOW5kjI0wxh5GNAG+Nv777wL4NGPsIGPslwA+p/BZf8MYO8AYexLRgHlP/PcrAfxPxtgvGGNHAFwL4N1xqKGJaCJ6BWNsjDG2nTF2WOP5E1wJ4MuMsR8xxl6I7/GfiWhx6pp+xthQ/HxbASwXfFY3oslrAoyxWxGtNh5ENEl+IvOe5+P38fB1AJcQUVf8++/FfwPUv//rEE1gaxljRxljxxhjPxDcj4cNjLFdjLFRxlgz/ttNMV8jiCamf2CMPRg/x1cQOSwXpD7jc4yxpxljBxBNgCL5ibCJMXZfzM8nEPFzJiKD/VPG2Ffj5/sGgN2I8jxApNuvJqI6Y+xXjDGTkM8FiJyjfsbYccbYFkQOy3tS19zJGHuIMTaKyEAp6weiaMN7AYCIOuPPTYcAk+u5OsIY+6dYtuOMsY2IdO11Kl+MiAgRf2tiPp8H8GkA705dpjI/PMEYu5UxNhZ/nzMQhd2yyJu7fsAY+5f4c76KE3OKbfwRIh1+LObs0wCWE9EiROPqRQCWIjKyjzHGfuXoOQrBSwPFGPsZgKsReRzPEtE3iWiB6HoieisRPUBEB4hoCJGHcmrqkv2MsWMGj5KuChpGNIiBaDJ8KvVa+mcR0tc8EX9G8llPZF6bgUj5v4poRfJNInqaiD5DRDX1x5/ApHvEhvDXAHpS14i+axYHESl3FrcCeDUiz/iFzGsvQhQ6moKY68cAvCM2UpfghIFS/f5nIppARgXPnAcef+m/LQJwDRENJf/ie6Z1UlV+uc8Q83Mg/vysfiD+vYcxdhTRiuJDAH5FRJuIaKnmfRHf4ynG2Hj2Hqnfi+jHtxFN2C8D8DsADrEoN5kguZ6rI0T0PiIaTMn+1Zg8vmWYj2gFvj31/u/Gf0+gMj9MfH/G2HD84xQZKMxdWTnOcpT3WgTg71Lf+QCi1VJP7IDcgihs+wwR/W8imuPgGQrDSwMFAIyxrzPGXo9I0AzREhzxzxMgopMQVZX9LaL8RDeikAKlPy778QUf71eIQnsJzlR4T/qahYhCBIj/X5R5bRTAM4yxJmPsRsbYqxDlId6OKAeURd73mXQPIpqNaGXSUHjuLB5BFBOfABGdjGhV+CUANxDRvMx7zka0AhXhG4i86ncC+HE8yKHx/Z8CsFAw0I8imqASnM65hie/9N+eAvDXjLHu1L+ueDWTB1Vdm9CPWJ7zEPGW1Q8g0pEGADDGNjPGfgeRR78bkaOgi6cBnJkpEJm4hyZ+imjhMmHc4sn/dkQr+d/H1AKKswHs5a2OY4//VgB/giiP1Y2o6o+y1ya3y/z+HKI8zTkp7uYyxk6WvKcQJHNXHoaRr6uqeApRLj6ts3XG2L/Hz/g5xth5iEKyvwFgbYF7OYOXBoqIlhDRRbHxOYZIwcbil58BsDg1mGYiWlLvBzBKRG8F8OacWzwD4MVENNfwEW8HcC0RnRIPxD9ReM/a+PozAXwMUUIXiCbnNUR0VjwxfRrARsbYKBGtJKJlcVjkMKKl+Rjns58B8FIimim499cB/AERLY9l+mkADzLG9ip+3zTuAXAuEc1K/e3vEJWS/yGiRPoXMu/5LwD+j+Qzv4mIsw/jxOoJGt//IUROQz8RzSaiWUS0In5tEMAbiWhhzPe1ql80hVsBfIiIfjOu9JtNRBcTEW8lmYWqrr2NiF4fc/hJRPw8hcjZ+g0i+j0imkFEqwG8CsDdRHRavI9oNqKQ4xHw5ZM8x8sErz2IyJD/GRHViOhCRCFE7f1JcYj0/yLiPI1/RJTLuQRR4UsaMv2YjWiS3w8ARPQHiFZQIkwaC/Gq8FYANxPRS+LP6CGiVYpfSQs5c1ceBgH8HhF1UrR3MCtDHXwB0Rx1Tvxcc4noXfHP/ynW5Roi3pPCEu/gpYFCZHD6EXk/+wC8BFECF4iq8ADg10T0ozim/KeIjMZBRDmMu2Qfzhjbjcgw/CJeAgvDhwL8FaLKn8cRDcZvIZogZPg2osTkIKJJ/Evx37+MyKO8L/68YwA+Gr92evzZhxGFwf4VUwc3EFX17AKwj4iey77IGPs+gL9AtNL8FaKCkndnr1MBY+yZ+H7vBAAieiei6soPxZf8N0QG7Mr49f+EKGn+EOfjks/8FYD/QLRK2ph6Sen7x/H8dyCqwHsSETer49fuiT/zEUTyv9vgO29DlMe4BZGO/QzRZKvyXlVd+zqA6xGFYs5DtNoAY+zXiFaO1yAKy/4ZoqrH5xCN32sQrYAOIJrQ/ljw+TcA+Er8DL+becbjiAzHWxGNuf8F4H3xs5vgHxCtlNL3uB9RrudHHMfoPfF7poAx9mMA/wORfjwDYBmiiksReGPh44g4e4CIDiMas0s0vo8OZHNXHj6GSI+HEPGvtJWDB8bYPyNauX0z/s6PIuIXAOYgMtoHEYVyf40oAuUdiDGrq9tpCSL6MKKNq1yPh4gYgFcmoatWBxG9ClGi+HUsR4GI6A4AX2KM/UspD9eCIKINiCrRrqv6WWyBiH4A4KOMsR2pv20B8HXG2BdTf3sHgN9njP0u52MCpjmCgTIARZtVX4bIq3slohXRLYyxzwqubysDFWAX7WigsohX0vcAODOOegQE5MLXXdO+YyaikMRZiJbj30QUFgkICMiAiL6CaF/Ox4JxCtBBWEEFBAQEBHgJX4skAgICAgKmOYKBCggICAjwEsFABQQEBAR4iWCgAgICAgK8RDBQAQEBAQFeQqvM/NRTT2WLFy929CjTD0PDTew7fAzNsXHUOjtw+pxZ6O6KeqFu3779OcbY/JyPmILAkV0EjvyEjJc0TDkCAk9ZqMrcBCKetAzU4sWLsW3bNisPNJ0xsKOBG+7ahdGR5qSWzLVaJ667bBn6entARNkO1koIHNlB4MhPqPCShilHQOApga7MTSDiKYT4SsbAjgauvXMnhkaaU14baY5h/eY9FTxVQBqBIz8ReCkfVcs8dJIoEQM7Grjm9ocxJtkc/fSQznmKATYxsKOB9Zv3oJHDQeDIDRL5Pz00ggXddaxdtWSSd75+8x6MNMVNtwMv+ciTcRZVyzwYKMdIT3qE/INnFnTXy3isaQvRAE08RdlgTBA4iqA72eV9Vlr+jaERXHvnTgCY+My8ydAFLza/Y9VQkXEWVcg8jWCgHCGJ26aXxnnGqV7rxNpVrk4BmN7g8ZEeoHmeYoLpzFF6sp5br+Ho8VE0xyKtVpnsZODJPwkhJZ+3oLsuXN264GVouKk9ofsMFRlnYUvmpoY+5KAsY2BHA8tv/B6u3jjIjduKcEpXDTdZSjhORwzsaGBF/xactW4TVvRvwcCOxqTX8uLoKqGKduJIJi/R9dfeuRONoREwAEMjzQnjlKBITkIk//Tf165agnqtc8o1rnjZd/iYcEJvRYhk3BgaEeqADZlndScx9Hk6B4QVlFXohIkSdBLhf/zua9ti0qsKeaELlTi6zFPsafHQThYmoR7VFaZpTkIk/3QIKXm2skJuzbFx7t9bNdcl03GRDtiQucnKLUEwUDnQWZqqDuIE9Vpn23jkQHXx+rwBoBJHX7tqyRTnot34SWAyYahOynPrNazo36KtAyL5Z0NIfb09pfFR6+QHmFTyLj7mrngyTkOkA0VlrrI6FiEYKA5EhQ15nqaKwJPPa2WvnDf4AFQWr88bACpx9LK98yphMmHIZJig1kE4enx0IpSqowM+yv/0ObNQq3XmGs0sTFaoZSAtYxGXLlaHIt3pIMLAjoZUJsFApaBS2CDzNPMG8SldNVz/jnNactLLM9qzah3Gy/iiyAsPiTzHLB9leudVQiQv2eonz/s+Je4ocHB4cp5PRwd8k393Vw3XXbZM22gWCWm5RiLjFf1bckOqKlBZKYp0Z4yxCcMtwrQ1UFnBrlw6H3dsbxSKs6tOhL5CtQSbZ7RFcisjXp8XHvLRO7cFk1AST155q5/kM0X7+LpmzigUyvEVJkbTlhxchglVQ6p5z6eyUpTpTl7RybQ0UDzB3vbAk7ll4AlEXkYrT4QyZdPNraVRxp4hFbn75p3bgGkoiSev4eOjuaufvt4erNk4yP1MWaHJdNs3ZkMOrsOEZRc/5OmOCNPGQKW9kQ6iKZZc1TjleRm+T4Qir0ymbCqeX3e9hhdGxwt5ZEXgu9xNYNJZQTWUlJXXWes2ca/Lci+bfG145e0AnhwIwMql6j1rywgTll38INOdvYJ7TIt9UNcN7MSajYMTdfiyVkM8UPx/T3e9pau6snJI70eQKVue51evdeKGS87BTZctQ093HYTWl1XVkHGVwGZITcRx9u+8fTHpQpPprgOJU5E1LgzAHdsbSnt/ALvcuoKqziSQ6Y4IbbmCyu54V90wy2tF1Cr5ozREVXa8MGbilel6xqJqxFaSU9WQ5fxkXOV1VjAJqemUeQPi0FA7rmQBtXxQ3j5InRVQK4RLdVfMJmHFtjNQWSVRNU71WicuP68HW3fvb7n8URqi9iyzah3CMObTQyO4efVyobK1cm7NV+Tl/GRcJbAZUtPhuF2NkAiq+SCVXK3qCqgVwqUm84Ku7rSdgbrxO7uUE/qdRBhnrK0m3KcPjeAlnNi1TCYLuuvT1jOuAkPDTWlFU95+pAS2HYfA8WTs3vc8zlq3iZuz5q2GVIyP6gqoVZxC1zrTUgYqb5k9sKMxpRJJBALassXQ2Lh+fi1djt1O8vBxNz8QeeCnCfKgsmq4NFcJXHHmq+zKRHNsXJqzVi0gSaC7AmrF8Whbb1rCQOV1ok57GyogAFdesLDlyC8CXpVdu8pBVV+qwrikSEeW8yuLq+sGdk7KgfkkO5/AKyBRzdW2G1yNOW8NlMo5StlltmyJfUpXDUPDzWnrDd5wyTkA/A8Z6EJnw7Uvu/lFKCPnpxKFUCnQmO4wKSCpAmWshGXFIUX1xksDlde5II20URItsbvrNez4yzfbfsyWQXe91pZVdiYbrn0q002jk2hSSbaL8I5Ksl+1QGM6QiVn7VNYrqyegC5P3fXOQKkci55GepktqnxJVg/TAR1Ek35v1+8v0pNWOLGYx5Hr/UIieelEIXyQXVVopc726ehTFi5Wwi5P3fXCQOkei54gu8z2cYldNnq66zitu95W318UxtPdcO1Lma4LjmShnMSTVkn26xRotDtqnR0goPJxpBOmUzmTzvZK2OVJx5UaKJNj0ROINtD6tMSuAt1dNdy/7qKqH8MKRInXvDCe7xuuTTlSbeare2BjXhSiXYtp8rD09BdhW//FTj5b1ejohulU9mLZXgm7bJLtzECpJGN1Tp+dLtUw7QxbnqDMOLXLhussdJv5qh7Y6EsUYjqVtesYHd2efCqro+Hjo7nnMOnApc44MVCqyVidDbXtuGdpOsGFJ5hFttCgnWDSzDfvwEaRvMqOQvh6wJ8r6BgdWw1Z0zgYd5sB7MnXlc44aRbL6+aQPfdDNQ5ar3UG49TCGNjRwIr+Lbh642CuTqSRpx+U+b3d9cSkmW/6wEZek84q5ZXoxVnrNuGa2x/W0o1Wh47RUWnImpbl0RdGUeucPDqyYwVoHflaNVADOxpYfuP3hN0csslYEdqle3i7Iz0wVvRvmdKpOfGMZR6dzBMUoV7rxJUXLJxWXbNlE1Vel+i+XrddxvP0gHd9ohc6nRp8he731+kCnsdtVpZDI02ARfmfhOtW3jZgJcTHS2bzkJeMBfxKZgdMRd7R74BeGFfWmj/oxwnImoeq5ABMQzC6uWSV8Jxq+LYVytpNvr9OI9g8bnmybI4zdM2cMbH309bx7qqwmU8sbKB0ih18SMYGmEPl6HfVPTWA/db87Ywqmvma5pLz9tqoeO6+bAnIg8n319VtGbcq4cIyO6PbzicaGyjZZjAe0t0MEkz3knAfoOPt6B4nIEvYqlRjBv2YjOzEluQQXMlIZfI1OVhPVrTRaqcLmB4smNXtJEyo64ypnBtVprNn+yRgbQOlGs5Lo127GbQyTJo76h4nIPLc2j1fZBs6YVWbUJl8TQ7Waye9MPn+ef0jdXjVOWiyDNnaPglYq0jix08fxtUbB7WM0yldtZZUvHaAKHmbLMN5PMqqe1SOfs+Gcaf7EeB50C00EYVVXUAlmW9yjHer6gWPK93vny1qSDaem1Yx+iZL3WPg86C1gtJpLTNdk9lVY2fjEFb0b5F6ZabNHU2OEwhhuqlQ4Uin0MRVNZaKd24aPmoFvUh4Sr4vL7dy02XLcNNlywqFyYtW2fkkS9v5LusbdUOnh+ohagekcmIrIPZ2QuGCPeRxpFpoArirxlLl26cJ0jYSQzSr1iFc5dy/7iLl76/jTLRCFWMWtucIawaqVWPIVcNVixeZV1akuWM7T0Yy8HgqChXP2fYprbpoJb5dcAREhki0itVdvcqa8ab1oVWqGHmwVQACWDJQIZwnh0mTT1cQndgKTC8ei/QFTHjqqM+Z5+LZVJq3+t6XsuzeemVzlEBllZOWxdx6DbVOQnPshDlq1/6RQPGy80IGajpNaCoQeXAmTT5tQOSVtWqoztakZ6Mv4EhzDJ0nzysssDzPuQhXVTVgraK3nkuOgGibzAuj49q5lawshkaaqHVQ4RO+W6W5btGycyMDlbTf/1TfMpO3tx1kJduy2LXtksw08rwy30M3Nktxs7DVIZo6Z8zUunEGPI5WLp2P9Zv3YM3GwUmcmUxgVTVgtb0XRgWuOAImb5PJ6iSPqzRUOj3oopWa6xad47QNlM9hhSog66SRF7uW7aHYW+CZWp0j1aPcTSc9Wx2i2djoca0bp8DjyObEU4WRSODS8RLBBUfAVJ6S/1W5ciGLKrnVhck+sTS0DNSynrltcxieDegeT5+GKBeUhA0uvdbsmVqVo/SKqYNI+Sh3k4GuO2hEPI0dOSDvCiqAiCObE08VRiJB0UlJFSq5HVOOAPlYUuXKhSyq5BbQCy8WLTt3ctxGuyPp2n71xsFc49Rdrwk38vm2yc4VdDajyrpb82Ay0HU3V4p4Gh85fED75hLYnHhsb5jUgY58dTuBp9+X18XbBUcJVLky2cicB90jOHTkmgfeRuNr79wp/Pyic1ylR763Iq4b2Jl75HgCUey6lXJBprDd9RywV4prUnhQBk82ve0yG4RmIZIvgEnlxkXyii5yOzpQ5UpX11RWJ3ncusxRmTbHrXwf1HTAwI6GsnHKVji2oxESwXbXc8B+Ka6PjoFNo1J1pSZvL4zNvGLVYS7dIzNUqy5VDEsety5zVGXLPRgoRST5pjzjNN2Pp1fNy6lsRm3F7tZFYNuoVG2EXeYVy8pziWDCVd7qSMewyLh1aUTKlnswUBKIwlQiTNduGrpyAkLXcxGqNiqmyNsWYDuvWGUIM0Gaq+T7i0rOVVZHtgyLSyNSttyDgYLaBtu84dWOm5ZV4uF54TwebG5GDZgKH7o4qIbCTfOKPumMrYMdVQyLjRxVEZQt92lvoLJFD7INtjy046ZlnbOidAscQtdzdzA548sGdDp0p1E0r+iLztg62FFmWHS4dW1EypT7tDZQoqIH2QbbNNox35S38TgbD1cJP7SjnHyDLm82oROCase8oq2DHWXVj7rc+mK8i2LaGahs4lZ/i22EdsqR5CWz08gORpVu2+0iJ5+QDfUMHx81OuPLBnQ6dLejLqgYH52Tb4ETRmr95j2Vcls12tpAFUnc8ppDtkIXaR5kceus552XzM4mWlu127ZvKNpdPQ8uq9tEk287d+iWzSuAeZ7VN26rRtsYKJXmojqJ27wNtq2CvASuag4JUPP4WlVOCaroEm2ju7oMZZwZBdjXAR87dvO4umN7Q8kYq4TdquDWRzknaAsDpVpFpGqcrrxgYdtssM1L4KqGB2RViu0S766qS7St7uo8lFVdalsHfO3YLeJq6+79Vnpgls2tr3JO0PIGSrQxVCe31I6J2wR5CdywSXbyPq4syugSbau7ene9htknzfDSE05DxWP3tWO3604KutwWOa0W8FfOCVrWQPHKLlUwXRK3CfISuNN5k6yqDrlOQtvqrn7DJX7uw8t2HT96fHSi63iZx1TYgO1NsKr5LB63NlY/vso5QUt2M79uYCfWbBzMnVgo83u91okrL1jY9t3D08jrptzX294d1UVdnZPBreLguE5C2+qu7nozrq2u4+kjMQD+KdJVdmOXwWZ3cl5n8CSfpcKtjRO5XcrZRkd171dQPA9DpdihnauIdKCSwG6nHJLqKbyqyegy2ueYFBnY4Ew1OV7EU1eVM++YiqpbGfFgsyCkaD7LxupHVIW7cul85c/gwVZuy2sDZdpCpZOorVYBRdEuBkgG3W7ZKoO4zDL5sjnSmUCK5ClUJ8uix1SUCVtcFTUwNsKNfb092PbEgUljhQG4Y3sD5y+aZ/w9beW2vDFQPG/OpIXKdMmfTFeIvH4dXUneK9pj0k46pCMv0QRSZCLN28gNFD+molVR1MCIVj+NoRGs6N+ibNC37t5vfOyJCLZyW5UYKNVQjM5+AKA9G7ZON+hsKk57/TqKn3wuT8faSYdM5MX7e5GJlCfnWgfh5FkzMDTctLIy8nkfjwxFw5jpVabKwaAimBiTPJnbKiYp3UDxmrOKQjGdgrY72Uq8dmzYOl2gU+El8/p12u1kD3drtYlNFSby4k0gRSZSW3IWTYi+7+ORwYZsklXmiv4tU/hUXQXJdEHlpAeezG3lEEszULKSXlEoZowx1Gud06aFynRD1lnh6YbKpuKnh0Zw8+rl2u122j2EZCIvUagNMJ9Ii8pZdOJA8kw+7+PJgw/5LFE04eDRF7D2Ww9PcRh5Jz1kZW7LMSnFQMk6LcvQk8pFBWPUXhB1kuchb1Pxgu76tFgR6cKmvKoy5rITB2TFLr7s4ykLRUJqCa/ZBcRwc3zKtbKTHrIyt6Ezzg2U6hHgslDMdJ5k2hGJTqh2+8jbVJze0xV05QRaVV6qJw7Iil2q3i9VNnRCarLCGd3GB2Yc4IoAACAASURBVGm4kHlhA6WS1FYxTldesDCE7TyE7QS0qk4kyE6oQFglqUJVXj4VGeh01xcVu/iwX6ps6HBdtNCId9KDK5kXMlA2OmWHAgd/4SIBraITp3TVhBVevnr9viJPXr4VGeic0Dxdil1UoTI2TApn0kjaLiWf5VrmhQxU0U7Z7VTS245wkYCW6URwVsqHb0UGKl4878SBMIeoQbdwJo1sA4QyZE5MMdQCAES0H8ATye8zT3/FeaJrj+/72fba/MXLqHPGzCkvMmD08LOPj48cPqD5vNMJixhj2v1GshwVQR6/Jp/ZZjpROUdF4YLjIpDpBwhgY6PHx44caGjoiRFHgF882YJIvmxs9Hhz/96dHfU582bMfclZovc71AkuT1oGKiAgICAgoCy0ZDfzgICAgID2RzBQAQEBAQFewisDRURfJqJniehRzfddRUS3aL5nPhE9SEQ7iOgNRPQuInqMiLYS0YVEdLfe07cviOjMWC6PEdEuIvqYxnsDNyWAiGYR0UNE9HDM0Y0a7w0clQwi6oxlpyyn6ciTVwYKwAYAbynpXm8CsJsx1ssY+zcAHwDwx4yxlSXdv5UwCuAaxtjZAC4A8BEiepXD+wVu9PECgIsYY68FsBzAW4joAof3CxwVw8cAPFbCfVqaJ68MFGPsPgDS6pzYA3g09hTvS720gIi+S0Q/JaLPpK4/kvr5CiLaQETLAXwGwNuIaJCIrgfwegBfIKL1mfvNjld2P4y9kHfa+K6tBMbYrxhjP4p/fh7RwJpSY+oLN0R0TryaGCSiR4jolRbF4SVYhESetfjflAqowFH1IKKXArgYwBcl1wSeAIAx5tU/AIsBPCp5fSeAnvjn7vj/qwD8AsBcALMQlYaeGb92JPXeKwBsSL3nltRr9wI4P/75QgB3xz9/GsB7k/sB+AmA2VXLqWJ+ngQwx1duAHwewJXx32cCqFctt5K46QQwCOAIgL8RXBM4qp6nbwE4Ly2nwBP/n1crKEXcD2ADEX0Q0YBM8H3G2CHG2DEAPwawyNL93gxgHRENIiJ3FoCFlj67pUBEJwO4A8DVjLHDnEt84eY/APw5EX0c0f6KadE5lDE2xhhbDuClAF5HRK/mXBY4qhBE9HYAzzLG8vYTBZ7g0Ym6qmCMfYiIfhPREnkwXsYCUQw+wRhOfLd0mGOWwS0JwOWMsT0G720bEFENkXG6jTF2J+8aj7h5jIgejJ9jMxH9IWNsi8HntyQYY0NEdC+ifO6jmdcCR9ViBYBLiOhtiOQ5h4i+xhh7b/qiwFOElltBEdHLGWMPMsb+EsBzAM7MecszRHQ2EXUAuNTglpsBfJSIKL5/r8FntDTi7/4lAI8xxv6n5DovuCGilwH4BWPscwDuAvAag89uKVBUrdUd/1wH8NsAdnOuCxxVCMbYtYyxlzLGFgN4N4AtWeMEBJ4SeGWgiOgbiJaUS4jol0T0Ac5l64loJ0Wl6PcBeDjnY9cBuBvAFgC/MnisTyJKOD8S3/OTBp/R6lgB4PcBXBQnSwdjDzALX7hZDeDROFyxFMA/Gnx2q+EMAFuJ6BEAPwRwD2OMV0IcOGoNBJ4QWh0FBAQEBHgKr1ZQAQEBAQEBCYKBCggICAjwEsFABQQEBAR4iWCgAgICAgK8RDBQAQEBAQFeIhiogICAgAAvEQxUQEBAQICXCAYqICAgIMBLBAMVEBAQEOAlgoEKCAgICPASwUAFBAQEBHiJYKACAgICAryE1nlQp556Klu8eLGjR3GHoeEmGkMjGE81xu0gQk93Hd1dtQqfTIzt27c/xxibr/s+XY5aUTa+oCyOXKLd+TflCPCLJ9vwjXcRT1oGavHixdi2bZu9p3KMgR0NrN+8B6NDIziN8/pp3XXcv+6i0p9LBUT0hMn7Fi9ejOtu/TbWb96Dp4dGsKC7jrWrlqCvt4d7/Yr+LRgdmnpIps+y8QVFOBKNo0RnVbizgXbn35QjwGy+K5s/U/jGu4in0k/ULYvAgR0NXHvnTow0x4TXPM0hqNUxNNyc9L0bQyO49s6dAMCVs0gGJrJplcHpK7I6m8edDdjkv2z4pm9V8GcKl7zb5KWwgdJ5mDIJXL95j9Q4AcCC7rrVe/qAfYeP4dTM9x5pjmH95j3o6+2Zwld3Vw0Hh5tTPkdXNq00OH0FT2fT3BWBaJwu6K6jwZmUfB8bPuqbS/5MUTbvtnkpVCSRPExjaAQs9TADOxrc62UE2kaeJ1CvdWLtqiXW78vDwI4GVvRvwVnrNmFF/xahfGygOTbO/fvTQyNcvo4cG0WtkyZdayKbMrktgjK50IUrr1Y2TteuWoJ6rXPS9a7Hhg0OfNQ32/wVlVMVvNvmpZCB0n2YMsMJMk+gp7uOmy5bVopXo2vEi6LWyad0QXedy1dznGH2zBno6a6DYC6bVggVlc2FLkQ6W9SrzfPsb7psWWH+VWGLAx/1zSZ/NuRUBe+2eSkU4tN9GJVlpa345dpVS6bkoOq1ztIMU4Kyl/2nz5mFWq1zyvdeu2oJ1mwc5L7n0EgTg9e/udB9bYUMXOYVfAzBpCHS2bRXayKfvHHa19tT2ve3xYGPoUkV/gA1Dm3IqQrebfNSaAWl6zHkLSvzvAadJW/ZnqEIZXt63V014fd25aED+dyqoKjXmKcfPnrdaeTprKl8XPKePJfquLTFQRmhyd37ntcKr6nMOaoc2pCTa955sM1LoRWUqseQICFK5D3khQx1k29leoYiiDyKDiKctW6Tk+oj0ffW5Uv3noCYWxUU8RpVkrMiLubWa1jRv8WLajCZzprKxyXvuklxmYetszq0oW95aI6NTzIiou+UfS7ZNaoc6qxERHJzybsItnkpZKBMHkZGoMxr8D08IwJPSQBgLN4gV2b1ketBXdQhKOI1qugHj4taB+Ho8VEMjUSVjD5Ug4lgKh+XvOuOS9GkuXLpfK8dUFtzjSqHOuHCPLmVXYpvk5fCZeY2H0bmNVQVnimaE8kqSQfRhHFKUKah9WFVmcBmybuKfvAG7PDx0Sn39MXxsSkfV7zrjkvRpNkKDqjuXMObO1RXRqrGJU9uPo13E5S+UVcGmdewfvOe0pOi1w3sxG0PPInEnJh612klOWvdJu41vuRBysDAjgZuuGvXxKoFiGRb6yDUOgnNsRMGXDUkoTPw09z5ygdP94rIxxVMkuK8SVNUwFM1D2nozDWiuePy83pwx/aGUthNxbj4nlctCq+axcqSjLzkGwAMHx91UiY8sKMxScESFN1rUUXi0ickIYm0cUpQpORdlJxduXS+NIHvIx8i3bO1JcAmZElxneIJH3lIQ8cRkM0dW3fvx02XLUN3/US/u1k182nYd7kVhTcrqOxy+ObVyycNvOTnrOd9cLjpJGewfvOeKQqWoIh3UkXi0ifkdfgYMix554VEVi6dP8lb5a2AfeRDpntDI03ccMk53oRtRKEoQK+oyUceap0dIEA7tC/jrzE0gm1PHMALoyc21BeZw3yUm014YaBUK4H6enuwfvOeKd63i1i1zAgV8U6qSlz6gjzjToj0wUQe2ZDIiv4tuXkNH/nIk5FvRRy8UJSK7LOfAfjFw9LTX4Rt/Rdrvy+PP1lkRvf7+ig3m7BioIoWEugkSMuKuYpi6wQU9k58SFxW1WhTJNcEDLDmbKjqig98pJEnoyIOWVm8m4xT33gwhYqO82A6h6nIzbfGuqrQNlDZL6oSRsmDjjKXtYOct3QmAFdesLAliE3DBWemEJXdp2HL2fCx24AKTGSkMgGV2WC1VWVvAyr88aAjG1+bdNuGVnYuOcohvQv6tgeeLNwcUCfRV1ZzS17Bxs2rl+NTfcsmrvG58WgC3s51G5yZIi1XEWQDVUfmVTRCtQFdGal2JxBFKq65/WHrutuqsrcBFf4o87tuEYaNJt0ueLcNLQO17/CxKV/UxnJVR5lllX620dfbg/vXXYTH+y+eKHVPJsbrBnZ63Xg0AU85XRR/6CCR62dXL9eqzNQdmGXqim3oyEi1abOI3zHGrOtuK8veBvL4q9c6cEpXzUg2tpp0u+DdNrRCfKKjHHjQWa7qJvrKjlXzlsg2E50uYaN3lyvoVmaabOZs9byGioxUQ+Sy3IgL3W112duAiL/h5jgYaEq1sgpsNekG/Jyz0tBaQYmOcuAtV/P2n2SRXq3cv+4irwTm4ypEFSKjUzTEYCu02dfbg9knTfWTdFYAvsncNvJkpBoiF+0lTOBKjq0QCncJGX833LVLWzY2mnSn4fP40TJQzbFx7sR25QULJy3lk93Svoe/VOHzKiSLoeHmJIVfuXQ+N3ya5Uw1xODiTCWdFQAPVcvcFLa6gKuGyJOwWydlR3EEF3L0/QwuVRQ1siL+hkaa2rLRze9VwbstaFfxMUTeN0M0sfFCcbp7IHxHXtloAh+SwI2hEYzGz9oYGsEd2xu4/LwebN2930qJqYueaXkVX0nFUmNoZEL3EvggcxPY7AKeDZHPrddAFLUPWr95zyS+k//L2tzZCj328mCjCk51DlGRjWxztKgrf9m824LRPqjEON2/7iLu6+0WipGVjeYZ67IxzmlEu3X3fiFXunDBrWw3fHZyUHGQWgG2uoAnk0uS71GZTMvc3NkOc4ENI6tTeq4im2x+zzfebcF4o25epwWf9kDY6kh+ze0PT+lEnmesfYCMK13ZuOBWNnB4q/FWkHkebHUBz3KlOplmPy/J94X9UFNhw8jy+ON10gfMZOMb77ZgbKBkQhR5C0lpbNUVeKYdyVuh4zIPIq5MZOOKW1HFVzt44DzY6gKehaq8ytq8mbfya4UOB7aMbN6qBxCH3PLk5BvvtmDURjcvbpkk5dIde4ETpbFlJkh19wzIYDtJ76K6qSOTCJVxZSKbsrktuzCirIozVxtZVeVlc1zIINsPlVdA4Uv1nyuuVPeKqRSa2OLdF5kn0F5Bqcb9+3rFjV1vuGtXaV6TTQ/cZudgV55MT3cdp3XXlWRb5ITWsrgts1tzmd6lq3yAqrzKXJmKVn55k6UqF65XYS5zNyqrYtPTonV5t63/NnjRMlDLeuZqxf1lpZVlHbFtMwZuU1FdVTd1d9WUOSoim7K4LTOxW3bFmYuNrKry8iE3JJssVbkoy6moctOx6WnRurzb1H9bvDg9bsNmaaUpbHvgPEU18RR8yK0UkU2Z3MomB5vesw+c2IDKZFqEe1syl02Wqly0Qxl7HkxPi+ZBxrvNHLuIl6s5Wx9kcHqibt4O5jRcTQKiOC8AK7FW042IPmw6zYuBy+LRPnBrexOoD5yUBZ38R1oHbPaglOV2VLloF6dCBps5MBnvJvovmiNk8tfRGacrKNellSLwPLx02MtmWMDUg3OVW9nZOIQV/VuUPRSR15Uno6q4TcO291xWvkuXI1fI87hd96DMC0upcOEyVOkTT4C9MLeId139l80Rts40c36ibpHSShOoGB+bE1uRQoPkWWznVmzE4VVkVDa3Wdj2nsvMd/le3guU04NSNFmqcuHaqfCFpzJyYLr6L5sjbJ37ZtVAqcSmXU8CKhOrzYmtiAfnUumKrCQGdjSE3k/eiahAeTvVXW0aLmsi8jlXItMBHlysklW4KEPnfObJNnTyvbI5Is2L6DoVndEyULv3PY+z1m3iKoFO2MzlJKBifGxObGWWQeuiMTQi7M0lQsKjCHkyKnOC91n2qiiaK3FRYp2nA771QyxD58rMafm4eZk3v2f1IEEyRyS8FImsaJ8HlU6MJg8B+FNNo2J8bE5sIg8OEDduLAsETMhCNVTB4zFB1RNRFnnes48DPYsiKw9XJdZ5OqDSfLgVZK+DvEIBW9/V104PonCvirNSZJVrHOJzGTbTQVY5Vi6djzu2N6TGx3XS0Qcl43k3Kg6DjC8fT0Q1LfLgoexJtajBd+UUFtWBovrvm3EzLRQweeYqHH0VeYt0IumLmceV6Sq3UA7KVdhMFTzlUD1ewmVYoOrVZE9OfFgGEY893XXvjJMMuhyU7VTY6MTuyiksqgNF9N8H5y6NPJ5sj/WyHX1Vect0wmXT5kL7oLJhMxf9qmQQKUdyvERVp/OKlKkxNOK8t1XS7aPHcE9PFTy6gIwD3r63snrTASc4KqqXrvZtFdWBPNnL9h6WyUMeVHiybVC6u2rcv1exVSONquYFYwPFC5uZbvo0ha+b9GTKVFazXFOFyuORB98aTAJyDngbBX3VJRmqbmIqgkj2SU5UtsE3jwffdM2mkzCwo4Ejx0an/L3WSZVv1UjrBAB0Ek0YMpccaIX4ap0dIEA7bOZq2W4jrOgi3i3bA1BWqK9Ini3NYyKfNRsHC1dvlom8fRhZHnzoTacLlyXWvLyqatEPT/aqOVEZDz7qms2Cq/Wb96A5PrUubvbMGV5s1UiegcfBticOWDu1Ow0tA7X09BdhW//FAPQU1lVOpqhyuFL45L1XV3x+VJFJJrm+zE3PNqGyDyPNQ6uWrOvsWzGdNHTHCc9wquZEZTz4qGs2nQTRvHAoc2pAHnR419V7EQfpDiM2HQejIgldhXUVPimqHC4Vvq+3Rzg5VuGVmxjjsjc920Yyea/o35LLg8vVSBWoup1X1nCqcJB+Nh4Pvh4YaqvgylZEqKgzIdN7WTVfGrbmUSMDpauwLsMnRZRDlsy1AZ+8cpNJJq/Yo6+3pyVCY6o8uKzsLBtltPPSGSc6Y0HEQyvoWhHYmC9sOBMyqJ5iAEyeJ0xhVCSh6zWXUQFikjyVJXNtJP6KJpttwmSlo1Ls0QpVf+1S+KED2+28eNAZJ0XGQsJF0r0gDd90rQhszBe2eBfpP2+8ZzlJo2hRmNEKSteTyVtGFo2Vm4YzkjNQsstTFj+ri2RzVTDxPlWKPZI9EL53c9DhwXUyfmi46bzLiO12XjbGiclYyHKR7l5gYy+Zyv3L1N+i80VZYcK85ggJiob6jAyUyVLUZYWfaTijr7en8kKGsmDKGZBf7FF29aZruE7GN4ZGMDqk14JKF7bbeVU1TkQtdlxvEAUiR6LV9LeMMCFvvJ+/aJ4THTEK8dkMXdnYmFdkWWu6oZUHn8NCppz19fYYy6jMTZc2Ze+68GOcTV6LuJCJ7fCySAc6iJzqe5VFOPsOH/Nm07AqqgoTqs4TuuPUuNWRrdCVDQUssqw18Th4y36Avz8A8MfbMuXM1CuzPbmIwi22V2pVJONdTLjZcEwysdrSAQAYi42tK32vsjCiOTbO/bvv0ZWivJvKPG+ekI1TEZwe+a4CGzuxiyTq0x4HkL9DWnTM+I3f2dVy3pYqTL0yEYdz6/x2LjLIjne3vVKrovCDAdZXITKZ6SKrA500NTXuQt+rLMKpdfKnx7n1mreREqA476660JiMUycGSmcZZ0MBiy5r+3p7Jp4j6xGq9mzjHXUO+O9tqaKvtwf3r7sIN69eDgBYs3FQidtax9SJ7OjxUe1BLVNuFyfruqy+7OBM7kAxA8KDbcOd6MDj/RdPCVMmEPU6NEWVlbCnz5k1ZW4CgKGRphWj7wpFeS8i87SOZPsYmoxT60e+u94oJkLRkKNqYlx30muXPRqAGbc3fmfXFOPdHGPaBQcy5W61k3V7uus4TfDMNosxXOZvZPthbIf7qqqE7e6q4brLlk1suBcd0Fd1N4ssbPDuQuaycbpX8B7rKygT682zumUXHKiSKpr0uus17/cDFYUJt0OGK8ss/7Iuz62wFyuN7q4a7l93kXD/iMpEojI+XHU7B/iRjzTaKbydnA7AXzNGsHEysq35ziXvRWAyTq2voGxY7yrKk1W9cFEi8IZLzgEgXwn6sifIFKabfXVXNzz+ax2EWiehOXZimkiU22QV7gMXpis/1fHhspNJWuYmZ4/5IH8dqJyjZoo8PnVl5VMHmzRMxql1A2Uj3OJyH4qIbJ12OMkz8oQser5W2BOUNxBsbfbNGyw8/pvjDN31GmafNEMod1824qrCdCJRHR+m4XPVCTGRuWqfvfTn+yB/HchCmi5PRgb0q4NtpU0S2HQmdEOH1g2UDevtKnauu0M6b2CK7sH7DB87MaehIpsim311FFzW1Xnw+jcrfRfZ/XzhwnQi0RkfuhOCifEQlaAPx8Uw2ff5In8diL5jB002JibPL+OzSBMCG7Ks2pmwbqBsWG9Xex9MdkjrQEamz12/AbVJw5RbXbkW4V9lQPnEhYnOudwbZNpsFABuuGsXhlJHQxwcbnInM5/kr4qs7s+t13D0+OhEyLnIxC3js2pZVe1MOCkzl5UaqkCUgB02KE9OwzXZMjJ9TVwmUJVNUW5VIGpIuXLp/Nz3qhRy+M5FHkTJ5pVL5xdOtJuOkb7eHsw+aaq/yyuWaFX5p3V/9kkzJuVDAfPCEFnxQJ6sXBeTVW0gK9+oy0NSh9+d2dCZeGSmJLgeGDIyXU4qNuDTpNHX24PLz+uZVOXGANyxvZErH5UBZVJN5FMbK94+lcvP68Ed2xuF9+cU0QPVycxG1WXVfNicuGX7jmSysrkRWwTZZvsy5O+lgQL0PDJVqA4MU+WXDW6Xk4oN+HYkytbd+4WHoMmgMsHqbkQUTQQd9TnzpA+jAV2dy65kt+7eb2VTbhE9UDVuRTffljEx50H0XU07gogiEzJZldHrkqcPtQ7C0eOjpcjfeg7KJlx0CADyS8FNk4J5RQTZfMOK/i3etEeyXfmTRVmnMLs4nFA0EXSePM+KcGwkom2NlSJ6YONQQhVUnRcB5EfRlLVRuYzwG08fho+PTtl870r+Xhso0z00ssGVNzCKKL/u4K46vpuFrcofHnTlaloI4KLEVlReTJ0zZhp9aAY2JlybhROmeuDSyUmPa9GG2TLHTfq7uu4IIkIZjXR58+maEo9e8dpA8bwUWbLcB09UZ3CbtP5oVejKVaUzsmwvms0SWxHY2OjxwjeBHUfFxvYOG/tdXDg52XEtQtn50uS7nrVuE9doujaYNjfk6pzQ0N1V4/YedSH/Sg2Uympn2xMHcNsDT04oQJIsP3/RPCf7K8ps7y9TsEuvtX67UpHlVlepZd54WXszePqUoF7rxNiRA1aC7jZ0rujqper9LjLIeEiQLjjKTrKuUdWRILZWrCLuZ9U6uPPpSTM6UK91KhvGIo5PZQZKdUCIkuU33LVrypf2xRNVheu8T1XQbVUkgsgbt5WDyBs4Mr256bJluPRThw8o30wCWzrXynkdGRcyHgiRIcgeO+6ikEWEMucMnpyKniws4l7kFBwaaeLm1cuV5q2ijk9lBqpo9/ChkebEpkCbS8+yjYbLvE9VMGlVpIOy+j2KPOOeuCrTFnxwVKrMh+ZxIeMhmZxFBUe2CllkKIs/V6tcXY6TqmSVexZ1fCozUDrdw0VJ6jRMlp4itKPRKBNFWxXloax+j2WvpqvUuarCVEA+Fyo8iHTOViFLHsrgz9UqV8R9d72GF0bHK21bR0xw8Bj3YqL9AJ5QfoMEtfmLl/GUh42NHm/u3zuRme6oz5k3Y878RSBS2rM1eujZxztPntdDnTNmsrHR42NHDjTGR+yEYkrGIsZYfuuEDGxyZApVbk3B1QnGxkcP739CleuZp7/iPNFrx/f9bHv6XhJ9almOsrAhU1OocJHDg1DnmkP7xsdHnhefCyKBbzyp6qwuZNwDQJH5VGMu4I4lLQMVEBAQEBBQFrztJBEQEBAQML0RDFRAQEBAgJcIBiogICAgwEt4YaCIaC8R7SSiQSLapvG+q4joFs17zSeiB4loBxG9gYjeRUSPEdFWIrqQiO7W/wbtDyLqJqJvEdHuWF7/WfF9gaMSQERL4vGT/DtMRFcrvjdwVCKIaA0R7SKiR4noG0Q0S/F9044nLwxUjJWMseWMsfMd3+dNAHYzxnoZY/8G4AMA/pgxttLxfVsdfwfgu4yxpQBeC+Axh/cKHGmCMbYnHj/LAZwHYBjAPzu8ZeDIAETUA+BPAZzPGHs1gE4A73Z4y5bmyScDJUVs+R8looeJ6L7USwuI6LtE9FMi+kzq+iOpn68gog1EtBzAZwC8LfYyrwfwegBfIKL1mfvNJqIvE9EPY+/jnfHfzyGih+L3P0JEr3T6xT0AEc0B8EYAXwIAxthxxtgQ57rAkR94E4CfM8amlEgHjrzADAB1IpoBoAvA09kLAk8xGGOV/wPwOIAfAdgO4L8KrtkJoCf+uTv+/yoAvwAwF8AsRHsWzoxfO5J67xUANqTec0vqtXsReTMAcCGAu+OfPw3gvcn9APwEwGwAnwdwZfz3mQDqVcuvBH6WA3gIwAYAOwB8EcDswJGf/wB8GcCfCF4LHFXPz8cAHAGwH8BtgSfxP19WUCsYY+cCeCuAjxDRGznX3A9gAxF9ENGyOMH3GWOHGGPHAPwYwCJLz/RmAOuIaBARqbMALATwHwD+nIg+jmhzWTVnY5SLGQDOBfD/MsZ6ARwFsI5zXeCoYhDRTACXAPgnwSWBowpBRKcAeCeAswAsADCbiN7LuTTwBE9CfIyxp+P/n0UUN38d55oPAbgOwJkABonoxfFLL6QuG8OJ9k3pHchKScgMCMDlLI7rM8YWMsYeY4x9HdEEMAJgMxEV69TYGvglgF8yxh6Mf/8WIoM1CYEjL/BWAD9ijD3DezFwVDl+G8DjjLH9jLEmgDsB/Fb2osBThMoNVBz7fFHyMyJL/ijnupczxh5kjP0lgOcQESfDM0R0NkXtOy41eLTNAD5KRBTfvzf+/2UAfsEY+xyAuwC8xuCzWwqMsX0AniKipAnXmxB5b5MQOPIC7wHwDdGLgaPK8SSAC4ioK5bJm8ApOAo8RajcQAE4DcAPiOhhRHmOTYyx73KuW09RKfqjAO4D8HDO564DcDeALQB+ZfBcnwRQA/BIfM9Pxn9fDeDReCm8FMA/Gnx2K+KjAG4jokcQ5aQ+zbkmcFQhiKgLwO8g8spFCBxViDgK8S1EOfediObg/825NPCE0IsvICAgIMBT+LCCCggICAgImIJgoAICp30GEAAAHPhJREFUAgICvEQwUAEBAQEBXiIYqICAgIAALxEMVEBAQECAlwgGKiAgICDASwQDFRAQEBDgJYKBCggICAjwEsFABQQEBAR4iWCgAgICAgK8RDBQAQEBAQFeYkb+JSdw6qmnssWLF+deNzTcxL7Dx9AcG0etswOnz5mF7q6a6TNOS2zfvv05xth83fepcuQC0433VuSoXaCqa6YcAYEnHRQd+yKetAzU4sWLsW3bNuk1AzsauPbOnTi1OTbxt1qtE9ddtgx9vT06t8u9z/rNe/D00AgWdNexdtUSq59fNYhoynHdKlDhyAXK4r0q8PTt0nNf2lIctQtEuvaW83qwdfd+KxwBgSdV6PAhmgtE852WgVLB+s17MJJ6UAAYaY5h/eY91iaqRCDJfRpDI7j2zp0AYH0ybHdDaAs6vLeaTEX61lGfM8/1fVtJTmVBpGu3PfDkxKl9ZXGUYDpzpcMHoDdHW89BPT3EPxFY9HcTyCZDm0gmpsbQCBhOCHlgR8PqfdoBqry3okxF+tZ58jxnM1AryqksiHQte3CQa44STHeudPjQnaO1DdTAjgZW9G/BWes2YUX/likkLOiuc98n+rsJyjCCQHmG0DfkccyDKu+tKFORXlHnjJmu7umbnEx0whV05hKXHCXwjauyocNHY2hES4+0DNTQcDPXU1i7agnqtc5J76vXOrF21RLYQhlGEMg3hD4NWlsw9QZVeS/iXFQlb5FesbHR467u6coJM5GhbysEnq6R4FqXHCUoy2GuAir6osMHAVp6pGWg9h0+lusp9PX24KbLlqGnuw4C0NNdx02WE+UmRtD2qsC3QasLkTxMvUFV3k2diyrlLdK3sSMHnN28iBMm4tZUhr6tEHi6duUFC0vnKEFZDrMObDhzqvqiygdBP+ynZaCaY+Pcv2c9hb7eHty/7iI83n8x1q5agvWb91j1enWNoItVgW+DVgcyeRTxBlV4N11hVylvkb6Njxw+4OqepnKScWsqQx9XCFld27p7f5Rzosh3L4OjBGVEjXRgy5nT0RcVPrLGKYFMj7Sq+GqdfHsm8hRcVtv19fYof4ZpZWHyGq86Z83GQe57WmFZL5PHgu46GpzvoOMNqvCuW/FU9SSpo2+27gfoy0nGrakMbeiEK2R1bYyxCeNQFl+mXLmCrUpqE32R8bF+8x6hHu0VfJ6WgTp9zizUap2TvrzMUyij5FwFRVcFvGe1NZFXodQyedy8evkkBQP0vcE83k0m+7ImSZ/KhU3kJOPWVIZrVy0prBN5MJW7L3NM2Q5MAp7cbDlzJvoi40OmR5dey/88rRBfd1dNK7RWhdfLi726iBEXXda7zKkUqbS0kUN0wXsZYZQq81y2CkBk3JrK0HVeuYjcy5xjfCuKEslN1MFBd74z0RcZHyZ6pL1RV8dTKMPrTXsQc+s1HD0+iuZYFO1MCLv8vB7csb1h1QMsuqx35fntbBzCmo2D0g1yeR5xUW/QBe9lhFHK9sYT3W0MjUxKIBcJhcu4LSJDlyuEInJ3Pce44MgWRHI7aUYH6hqRLhFM9CWPD109st5JIg3XoYFsvHNopDnlmpHmGLbu3o+bLltmfXIrMmhden6iSpnkWV1P9q54dx1GKdsbT8sojzNV5HFbVShKhiJydznHJNtqbHNkCyL5HBpp4ubVy62Mb119sc2HUwPleiLkeRA8JMvLvt6eCY9ozcbBibhoFQpWduKZV2mZfO+0TGxw5FvSWBVlcqKiu6aGUXdSqTrvVkTuLnVt3+Fjk/rL8VBlUZRMbi4dEZm+2ObDqYEC3Hpsqsoxtx7FZMvs4ZeHMhLPaXQQYWBHg9sXz4VMfPTU81AmJyq6K+LMJnwYE0Xl7krXRNtq0uggwlnrNlVi2MueQwA1fbHJR2EDVaX3JfIgsjh6fDR3H0jZk2nZq4wxxrgTT55Mqvauy0SZnKjorogzmygyJmzphq8rbtG2mjTG2OR8NyDmyvZYqkJuZc+hhQxU1d4Xz4PgoTnGCu0DKYK85XCZg5CnSDKZVM2vDehOCmVxoqq7rh0o0zEh0o1tTxxQPmIhDR9X3LxtNUmhRCfRhHFKIOPKtrwSlC23sufQQt3Mq+6mwCtbFCFRAB5c5X2qKlvOk0MaMplUzW9R+NyOSld3XcF0TMiOWPBR3ibgbau5efVy7O2/GOOM3xdBxFW7yKvsObSQgRKRoRJ2s4W+3hMtNu5fd5FwoBfZB2KKKib4ZT1zc+WQhkwmrd4s13cDq6O7rmA6JlwesZBFlXqW5ShZrehO1GXKSxc68i17Di1koERkEOBVp+NaB2H4+CjWbBzESTM6cEpXzVkj2zSqbM8jUqSVS+dPUkYAws1zrd4st+r2SLooMvhNJ3HTTbg6RrOIvH3VM12uypBXGZ3qXW/azqJQDmrtqiWTNoUmYEBl+wOyicNk8+7B4WiP1NBIE/VaJ25evZxb0WYz4VhlDzNeAnXl0vmTNiwnynjTZctw/7qLpnyGqEpo5dL5uOb2h7Vi8FXA5x5yPJgmvYvmCk3yGDzd4HWrBszlPbCj4a2e6XLlWl6qOpCd44aPj2oXPZSZ9ypkoPp6e3C1haapLqpbkvev6N8yZQMvjwAXBQFVlIGmkVWkFf1btJRRZuSyk0YCm6uTonpRtfxNYDL480KZLqq8VBwgwFzeyXgsQ89MocOVa3mpVNfx5jgRfJAvYKHMvKegl+q6Ukw1zOOifNK38lmTkJeKkUvDZouZonrhm/xdQZYLdjm2eBP0+YvmWZF33kZmX1fBMriUl8rYVm1sAPgj38IGqqiX6rquXjXM4ypfkedllbnPyEbISyYPm6sTW3pRNBzRCvvARLx2EpW+789W+EemZwRg5dL5he/hA2zJS2Vsq85lPsm3UJEEMDlpBpwYFOs37/GiG7FqMrPs8kmg/ASwjQocmTx0eM+DDwUOvibosxDx6nN4LA8yPWMAvvbAk+j9q+95x0VVUBnbqnOZT/ItbKCAyEglAsrurM77gq4Ng2rVia3ySZ1KmrLLoG1U4PDklIatSVxXL1yUIvtepp5AxKuNsvWqSrzz9AwADg43vXQYqoDK2FaRaRo25WuqR9Z68ZmGZMpIZKsso23kK3TzJlWsEoqGFLJy6tDcUa8KHb1wlcf0YRWnChGvRcZWlZ1E0nomS+b7UNHnC/LGdlamoirCNGzIt4geWTNQOoM5G9e//LyeQu0+bKHo5K1rpGVx473GT+EeaTmdtW4T95oieznSWwRm1TowNNyU6oWrPGarlanz8mVFjpmpundlomcr+re0RMWZL1Btr5Y+60qGovItokfWDJTqYOZZ0zu2N5xu9rIBlWS5rsdtcgSybygyiWdlmi27le1ZS8PVSseXMnUV3RN5qaI9birwZQWZ17fQJ4eh6qIandVKYqyy78miqHyL6JGVHBSgnsNplbh+GqrJ8ry8STYOC4i7OLQKTHN3PJne9sCTRrphmsfMi4uXvWte9IwquudiXLnKD+vmIxIeuutTjzL3aV+by6IaVZmZ6IFr+RbRI2srKNUcji9eWQIVj0d1iSrzuF14uGVCJCfT3B1PpqJ4eJ5umKx0VD3NMnfN86Cqey7GVdEVJE9nABjlI9Levq9l/zZCokVlZqoHLuVbRI+sHlioMph9iuurTlKqpMsma90uDj4hT04mk7jOxJmnGyZGsur8iipUdc/FuCpSOCTSmVm1jkJyr9phkKGok2BDZkX1wIV8i+iRsYEytbS+xPUB9UlKh3QRwb6tHFUgS6IWncxFMs1WFqnqhu7AahU+VHXP1bjiybVI1EGU5/BN7iYQcaV6MrINmfk0v6ZhaviMclBFYq2u4vomdfaqk5TLDa62V45Dw00r+1bSHItQNHzEk+mVFywsJedTxcZsHvL0VlX3ysqXqY59Xd3wqdCBB5X5RbTPKDkZOW8s2pCZD3lTmzBaQRUNj9heRprW2at6p9kl6tx6DUTAmo2DWL95j9LqsSzPpjE0gtH4OxXZt6LSt6us8JFvcXFbUNFbHTnJxpUtGRaNOnTXa3hhdNw7D18GnXwlAOMO7LZkZmN+9SXXZ2Sgyg6P5AmrjE3CopJMnSRv8qwuSc+e9Gkaisvj0lX4KAvbm0VN9lm5gqreFp1wbMpQJ+rAK10mgjf7HlWhM7/09fZgjeEJD6IjOd7+2jOsNZVVQZUbtLMwMlBlFjqoCKtI5QpQXnK9qgSvieMg4hiIwgZlTSo2ixmyuqS6z8oVynL0bMpQN+pww127Jh13c3C42RL7HtPQ5cl0fuzr7cG2Jw7gtgeenMjDMgB3bG/g/EXzSqv29amAyCgHpRIXt9XDS6Wuv0g+oa+Xf6SzCK2SXE/DxHEQcfzZ1culcrLdu82mvH3bg1dWHsymDHXysX29PZh90lQf2JbMy+oTqMtTkZz11t37Kz8Gvoi+2ObEyEDlJeJsblhTEZatRq8q6O6aupkN8CfJ20E06XdTOZgkW014z1Nom5O4b86Frt6aDn6bMtTVC1cyL7PTvC5PiYzSG19n1dSmWh90tMjGd9ucGJeZy8JVZYcURKE6IDpgz1bcdmBHA0eOjU75e62TvEny9nTXcVp33YocdEOSuryrhG9tFjP4tAcP0C8UycpqzcZBbHviAD7Vt0x6H9sFITp64UrmZYahTPPHL4yOT/x8cLiJqzcO4sbv7ML17zhH+F4fdNRUX1xwYnWjbgLbIQUVYWUHjYtE3/rNe9Acn9rvYPbMGd7E07u7apNi1WUmPHV5V1Fom8UlPlTuZaE62Ys6b9z2wJM4f9E8Lwp0eHAl87JXGjacNeDEERbJZ2bhg46a6osLTpwYKJtegKmwdKy5akmlSNCHUklg32Dbq5HJSpd3nQ4dNibTKifqohDJigFeF+i42k7gw0pDBtmkLBt/tnXUtFzcRF9ccKJloHY2DmFF/5bcL1llSCGB6uSns8LwfVDwIJJDY2hEaXd7Gnmy0uW9CnlWNVEXhayqsjE0grPWbfLW4LrYTuDDSkMGGV+A3IDp6qjICJVdLu6CE+0VlMqX9MFTVZ388iq7ZMdBAH4NCh5kA0VXWfNWY3m85x2vAfgvz7LAk1W6/DiLdFIaKH+/SlHorvR9mGMS8AyEaB9YAltOmMwIlV0u7oITYizvTMUTOOmMV7Iz3v9ZAFEyvmhdvsvdyrwzTuq1zikVR2et2yQc9PVa55T3l7XJkIi2M8bO133f+eefz7Zt2zbxe95ZLzo8imRFAB7vv1j6XhEfInn6spNdBlscZSGS1bkL5+Lff34g9xTUhNNWkGGCIrolgylHQD5PgHyeAabuA0u/boML0WGOPXGhlEhXktd90QsRT8Y5KFtloq6Wn6rWXLTC6CTieh9bd+9vieMxEiTf92rD3e1pFAnJibw5njx92sleBUSy2vvrEdy8evmETsuOJ2k1GbZi+ByQr1KS/YIuHQVZKkPWkDn5u+96YWygdBUnS9Lw8VHny0+VWK4obtpOXZf7enuEXcl1eDSNMQ/saAjDjDx5+rST3QWShr6iCUs26aR1WuQ9L+iut5wMfcwp7d73fG5uTyXX7TLvKTPsotZJoo3APuqF0UZdXcXhbeA6OMyvfCvbAIg2HvY43OVf1g74NGxsZi6yeVcEnjyr6PVYJh+NoRHpZkbVjZIyTn3Y8ClDK5wu3Rwbz91wWnZX/KzcVi6dL9QB3ng1PRS0KhitoFR3RSdQ6YydoIolvcjDceHRVRV6sbWZ2dZ+EEAsT996PdpGXkNfnb1/AD+MrbJiripH1YqnS4tWGWWu/Hhyu2N7Q5oXz45X2apb5f5l64uRgcrbbJaFqnWu1zqxcul8q90fTOGqSqjK0EsZm5mzkHEv8pCLhBJd7pdziWxIKHk20yM28mRown3ZR3b4hoSjrBzKKpzSyeOKUGRsVeFYG+egdBRKds7J7JNmCMuOq07guYgd+xR6KWOiEHHf0123uk3BdAD5wgevG3gRDvJk6KItlSp8kbkuFnTXhauYMsKRNuRm6nhX5VQU6iShKhiR1b7hkhM9qQZ2NIwP+mol+FStVMZEYeqx5U3QtopuquDDVkPfPMhkKOOet1Kq4sgOn5BwVOXqz5bcTJwf2YZ/lxEvoyKJBKqCyUuuJ15J1jglKNuzcpk0L7Pzeh7KSvCeNOOEmp3SVSvsbdosuqmCj3HG0BkbqaqKAUQcz63XuB2pdaow8+DTGFBBWmerXP1VKTeRviQl6646yhuvoEwqwESDMK+IokzPqkgoQyVG79MOeNcJXt4mxmPNcck71GCz6KYqPsYYm1RtVTZE3BOBu0IgAnj+Y5n9NatCWmerXP1VKbciJetFcpdaBqrW2QECrAtG5n2U7VmZLuF1DJvLfRE6cK3wrsIhOkU3KrpTFR9Vhq9F3IuOK2csOlamOXZiSiq7v2ZVSPNU9X6tquTG0xeVVXXR3KWWgVp6+ouwrUDbERFk3RyyoUDX3oPpEr5VK5NcKryrcEheI07A7Fj6KspoqywM4HEvKk8HomNl0kVNNuTTKu2YEp58Wf1VITeTkvWi86KT4zZ0IfJKkn5WiSDSS0pXFX6mS/hWrUxyCVfhkLxGnARw2yfJBnRVZbS+FQasXbVE2Bbr0EgTg9e/WelzVCbQVmrHlObJhVOnY3B8kZvKarLovOiFgRJ5JcDkzbJltOgwXcLLJuNW8RJtw1U4JJEdr+oTmDrp8wb02n96GDd+ZxeGhpultd7KwsfCgL7eHtz4nV3cohNVYyqaQLc9cWDSfqEqZG4C1zypyiu9CdsHuamsJos6qV4YKIDvlazo35KbDDddoYiMhukSXjQZr1w63wtvRwW2DanLcEjyGSoGkDegm+NsYhI2PbenCExCkK6R8H9wuDklAa4zSYsm0PRxIVXI3ARl8KQqr2Te8CFak50rbl693GjDeB68MVA8qAjcJESSt0Q2WcKLJmNfvJ08uAobuMxxqRrAIgPXRQhuWc9c71r6ZPlnOFGlpTtJi+SterCPL2HPsnhSlVcyb1S9j0y3IAwwd1K9NlAqyfDh46PaJ8O6Mhq8yVhUFeWTlwi0d5GHih7xkOzxUDlFutXB4z8xTrqTtKm8Ab/anZUFHXk9PRQduaK7KrEZHTE5XNL0Xt4aqIEdDRx9YTT3Ot2+gEC5S+SqvR1V+BA2sI1kUGYLbERIWm+VVZDjE4ryn54A59ZrU0rSRfL3vd2ZK5jKa0GqRVhVRRVlzhWlGyiT6p4Ep3TVAGBKAlfX0y/TaFS9b0IVVRtS2/kvWciqu17D0eOjU/b0JK23eOWzvq0mbcurCP9ZWQ+NNFHrIJzSVZsoQskaHmBquzOAn3f2TfZFYSovYHLESFUetqMjZc4VhVod6YLXoobXGkPUKaBr5gwMcaqLAD3rXWbLkL5e/TOUqkCVbVRU9UIHspDV4PVvxvorXivkxPfVpAt5FeFfVITSNXMGHu+/GPevuwif6lumNA58l70N6Miru16bdF0SMdLh2rZMy5wrSl1BqVpymUBtWG/b1WV53mwr7JqvcgOijoenunLIG5QyTqpeTebBhkfMk+NNly0z4l91AiySL/RF9jagI6/1m/dgaKTaiJFNXdFFqQZKlRiZQG2FzGwZDd09DD6jKkOqqheqsfSBHQ10ECntkeLB97CsjXyRzQMDu7tqhfZNpeG77G1AR142Vj9FZFr14ZKlhvhUu2fLlpC+hcxkexhcdvltJ6jqhWzlkEDWGV+nN59POpZF0S70KnJUxcCOBo4cm1rMVOskI6Piu+yLQldeNk4cKCJTm7piglJXUKqWPC/c5FPITHcPgy/P7RNU9ULFmxTlL7N9HfPgk45lUXSVYTMnsX7zHjTHpzoDs2fOMJafz7IvCl15VR0xqjonSExwBhP3YqL9AJ4ocsOO+px5nSfP66HOGTPZ2OjxsSMHGuMjhw8U+cwqUZu/eBl1zpipev3xfT/brnjpIsbYfN3nscFRFVDRC5Gs2djo8eb+vTsBYObprzhPdA8N2auiMo6KjCMVOaqiZHmbwIgjwM1YMpFXlXOmTV3JAZcnLQMVEBAQEBBQFkrNQQUEBAQEBKgiGKiAgICAAC/hhYEioo8R0aNEtIuIrtZ431VEdIvmveYT0YNEtIOI3kBE7yKix4hoKxFdSER363+D9gQRfZmIniWiRzN/n0dE9xDRT+P/T9H4zCMGz7E+1o31HP72EtGpup/ZLpBw9K5YZuNEdL7mZwaOLELC0Xoi2k1EjxDRPxNRt8ZnTguOKjdQRPRqAB8E8DoArwXwdiJ6pcNbvgnAbsZYL2Ps3wB8AMAfM8ZWOrxnq2IDgLdw/r4OwPcZY68E8P34d5f4IwDnMsbWYip/0x0bwOfoUQCXAbivpOcIHImxAXyO7gHwasbYawD8BMC1jp+j5Tiq3EABOBvAA4yxYcbYKIB/BXBp9qLYI3yUiB4movSgW0BE3429+c+krj+S+vkKItpARMsBfAbA24hokIiuB/B6AF8govWZ+82OPZ8fxl7GO+O/n0NED8Xvf8SxMa0UjLH7APCqhd4J4Cvxz18B0Je9gIjOIKL7Yjk9SkRvSL321zGPDxDRafHfNhDRFalrjsT/3wVgNoAHiejjmMxfPXPP96a4+Qci6oz/bYifYScRrSkkFM8g4ogx9hhjTLpZJXBUDiQcfS+e8wDgAQAvzV4z7TlijFX6D5GB+gmAFwPoAvAfAD7PuW4ngJ745+74/6sA/ALAXACzEJWEnhm/diT13isAbEi955bUa/cCOD/++UIAd8c/fxrAe5P7xc84G8DnAVwZ/30mgHrVMnTMz2IAj2b+NpT5/SDnfdcA+ET8cyeAF8U/MwDviH/+DIDr4p83ALgi9f4jgp+z/O0FcGqsR98BUIv//r8AvA/AeQDuSV3fXbVMy+Ao9dqEfgeO/OQofv07yXwTODrxr/LjNhhjjxHR3yBa7h4B8DAA3jkb9wPYQES3A7gz9ffvM8YOAQAR/RjAIgBPWXi0NwO4hIj+e/z7LAALERnQTxDRSwHcyRj7qYV7tSN+CODLRFQDMMAYSw7GOg4gyfNtB/A7lu73JkSD6IdEBAB1AM8iGmwvI6LPA9gE4HuW7tcOCBx5ACL6BKI57zbOy9OaIx9CfGCMfYkxdi5j7I2IlsJTJn3G2IcAXAfgTACDRPTi+KUXUpeN4UR3jPQGr1kGj0UALmeMLY//LWRR2OTrAC4BMAJgMxH5dTRqOXiGiM4AohAEIgWeBBaFNd4IoAHgq0T0vvilJotdMEzmaxSxPlI0MpQ3P8cgAF9J8bWEMXYDY+wgotzmvQA+AuCLmp/btggcVQ8iej+AtyOKykzZlDrdOfLCQBHRS+L/FyJK7H6Dc83LGWMPMsb+EsBziAyVDM8Q0dlE1AFOTksBmwF8NCYZRNQb//8yAL9gjH0OwF0AXmPw2a2OuwC8P/75/QC+nb2AiBYBeJYxdiuALwE4N+cz9yLy3IAox1UTX8rF9wFckdKleUS0iKLKpA7G2B0A/kLhOaYNAkfVgojeAuDjAC5hjA0LrpnWHFUe4otxR7wiagL4SGyts1hPUUECIRLiwwCWSz5zHaIl8FOIKppO1nymTwL4LIBHYiO1F5GnsxrAe4moCWAfgL/S/NyWARF9A1Fe7lQi+iWA6xljXwLQD+B2IvoAgCcBvIvz9gsBrI3ldARRHFuGWwF8m4geQsTvUZ1nZYz9mIiuA/C92ClpIvL0RgD8f/HfAPeVUqVCxBERXYooXzofwCYiGmSMrcq8/UIEjpxDMo5uAXASgHtiP/iBOFKUxoWYxhyFVkcBAQEBAV7CixBfQEBAQEBAFsFABQQEBAR4iWCgAgICAgK8RDBQAQEBAQFeIhiogICAgAAvEQxUQEBAQICXCAYqICAgIMBLBAMVEBAQEOAl/n/5ppf4F1Lk3wAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n_shuffles = 12\n", " \n", "deck = np.arange(52)\n", "\n", "for i in range(1,n_shuffles+1):\n", " riffle(deck)\n", " plt.subplot(3,4,i)\n", " plt.plot(np.arange(52),deck,'o')\n", " plt.xticks([])\n", " plt.yticks([])\n", " if i==1:\n", " plt.xlabel('1 shuffle')\n", " else:\n", " plt.xlabel('{} shuffles'.format((i))) \n", " plt.xlim(0,53)\n", " plt.ylim(0,53)\n", "plt.suptitle('starting position (x) vs current position (y) after n shuffles', y=1.03)\n", "plt.tight_layout()\n", "\n", "plt.savefig('fig1.png',dpi=600,bbox_inches='tight')\n", "\n", "# Figure 1: Starting position vs. ending position for a single deck of cards shuffled up to 16 times.\t" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Figure 1 is a single run of shuffling a deck twelve times, where the x-axis is the starting position, and the y-axis is the ending position. At zero shuffles, starting position = ending position. As the shuffling process continues, the starting position and ending positions should be increasingly unstructured. At three shuffles, the deck looks pretty random, although you can still see a few isolated \"rising sequences\" - places at which you're likely to see a run of sequential cards. At n=5, the deck appears about as random as it's going to get." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "deck_size = 52\n", "n_shuffles = 12\n", "k = 1000\n", "\n", "results = np.zeros((n_shuffles,deck_size+1))\n", "for j in range(n_shuffles):\n", " for i in range(k):\n", " deck = np.arange(deck_size)\n", " riffle(deck,j+1)\n", " rises = count_rises(deck)\n", " if np.shape(rises)[0] > 0:\n", " results[j,rises[:,0]] = results[j,rises[:,0]] + rises[:,1]\n", "results = results/k" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "random_results = np.zeros((n_shuffles,deck_size+1))\n", "for j in range(n_shuffles):\n", " for i in range(k):\n", " deck = np.arange(deck_size)\n", " np.random.shuffle(deck)\n", " rises = count_rises(deck)\n", " if np.shape(rises)[0] > 0:\n", " random_results[j,rises[:,0]] = random_results[j,rises[:,0]] + rises[:,1]\n", "random_results = random_results /k\n", "\n", "nshow = 6\n", "plt.figure(figsize=(20,3))\n", "for i in range(n_shuffles): \n", " plt.subplot(1,n_shuffles+1,i+1)\n", " plt.bar(np.arange(1,nshow),results[i,1:nshow])\n", " plt.ylim((0,1.1*np.max(results)))\n", " plt.xticks(np.arange(1,nshow).astype(int),np.arange(2,nshow+1).astype(int))\n", " plt.bar(np.arange(1,nshow) ,random_results[0,1:nshow],color='red')\n", " plt.title(str(i+1))\n", " if i==0:\n", " plt.ylabel('rising sequences per deck')\n", " if i>0:\n", " locs,labels = plt.yticks()\n", " plt.yticks(locs,[])\n", "\n", "plt.savefig('fig2.png',dpi=600)\n", " \n", "# Figure 2: Probability distributions of \"rising sequences\" in a shuffled deck (blue) vs. a randomized deck (red). Blue has far\n", "# rising sequences than one would expect through about 7 shuffles.\n", "# X axis is the length of rising sequences (e.g., 1-2-3 has a length of 3). Even a randomized deck is likely to have \n", "# a small rising sequence (9-10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But that's not the whole story. Figure 2 shows the distribution of these rising sequences (blue) in comparison to one drawn from a true randomization (red). The distribution of blue doesn't approach the distribution of red until about 8 or 9 shuffles. Before that, you'll find more rising sequences in the deck than you'd expect. " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n_shuffles = 12\n", "n_decks = 10000\n", "top_card = 255*np.ones((n_decks,n_shuffles),dtype=np.uint8)\n", "\n", "# Shuffle each deck, and locate where the top card went. Store that result\n", "# in an array.\n", "\n", "for i in range(n_decks):\n", " deck = np.arange(52)\n", " for j in range(n_shuffles):\n", " riffle(deck)\n", " top_card[i,j] = np.where(deck==0)[0][0]\n", "\n", "for i in range(n_shuffles):\n", " plt.subplot(3,4,i+1)\n", " hist, bin_edges = np.histogram(top_card[:,i],bins=np.arange(0.5,51.5,1),density=True)\n", " plt.plot(hist)\n", " plt.xticks([])\n", " plt.yticks([])\n", " if i==0:\n", " plt.xlabel('1 shuffle')\n", " else:\n", " plt.xlabel('{} shuffles'.format((i+1))) \n", " \n", "plt.tight_layout()\n", "plt.suptitle('probability location of top card after n shuffles (10,000 deck simulation)',y=1.03)\n", "plt.savefig('fig3.png',dpi=600,bbox_inches='tight')\n", " \n", "# Figure 3 below:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Figure 3 shows the results of tracking where the card that started on top ended up. At n=1 shuffles, there's roughly a 50% chance that the new top card is the original top card. When the deck is truly random, it should be equally likely that the original top card is at any position in the deck (1/52 chance of being anywhere, or about 1.923%). The probability distribution is certainly in that range at n=5 (varying from about 1% to 4%), but is still obviously oriented towards the top of the deck. Only at thirteen shuffles does the p value for a correlation between the original order and the distribution go above 0.05) (n=12 was p=.02, by the way). Statistical tests aside, the remaining order is pretty easy to pick out visually up to this point by the slope of the line. (Note the extent of the y-axis changes as you progress through the shuffle to highlight the remaining structure!) These results were based on a simulation of 1 million decks.\n", "

So, as you might expect, the number of shuffles to randomness depends on your definition of randomness. If I were betting on the top card, my chances of winning (though small for n>4) are better than average all the way up until the twelfth or thirteenth shuffle!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "References\n", "

Bayer, D., & Diaconis, P. (1992). Trailing the dovetail shuffle to its lair. The Annals of Applied Probability, 2(2), 294-313.\n", "

Gilbert. (1995). Theory of shuffling (Technical memorandum): Bell Laboratories.\n", "

Trefethen, L. N., & Trefethen, L. M. (2000). How many shuffles to randomize a deck of cards? Proceedings of the Royal Society of London: A, 456(2002), 2561-2568." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 1 }