From louisadavis, 7 Years ago, written in Ruby.
  1. U2FsdGVkX19jhv+F8RMJzcSIA5Hal4fxZU/DfGnMSoeoS71XUniXOyRRO0m7ZOVz6Trd1rc9c/8Xr70dvtOA5cxdAtFqp4tV0rsA
  2. N2mDzpKuw6Y/yaTq9MHhms/ZMuLoC9/Eq3g/tlw4VVSiFMvGzKE/QJiEQDmiedDwZ4U0PHGkcFGuH/EDz3UpdxY92ZtrADObm6mC
  3. /f7VStqUAqeEkUSkQyphqYdVK4a8l1l40vk4z+JR07zfBH3fn5kg0MZXzG+h05AqqEToKiMfxXlBO/ugaUpW2oEfjSBG1VRJa6Dw
  4. 4S85XxJDUsROKtQNXZsXYN7all/AOKNCJJmEl/e2+/RZmfgF3ZM4KVSP7blYmETN6EspBb5FIeSQkIBM9CPD49jNpwG+lvKBnXv2
  5. 2CYH0O2l6uZoyQWIfLQTk0EgwXLedP4djTdzUv+K0xe70KxgpdydTFRIMaNx+VLZcHPCm10iD5oSJ0cTjK7K/txVIc90mnA3sxpZ
  6. ePViMgbnP0habw3VmFkCkcbvrAfqIT/OOqLCe7zJxXPPAxjHjz7PH6LCHwkILf0X7OPxJ6ruxwDQO5KpfKTPQDLV279ED7aKHpOP
  7. AU3fb7W08HxnzNniz67QBhF64xksPZAH2bpV8B3MlpjPXbj/SetW2ShEcPxbSeMPCZNX6W3QyOLtLlUuEPT5EPAEv1ko3IqWWqYN
  8. QEZwXn4jgAyNY0Zac71fCYQ34pNnrtAjwuNl4smFpcJkjBIdmXgvtcasyD8Jh+CyEZhLqDTbnkgtQ0WNIneu3swWvvtYOSxZdbXK
  9. WtjIdMeYnPfIpjDqPxecmY1e1e56nTIV9rfnm/0CHXNB0XHcYcWJJpn1bX80V4nGGIXjYL3UTKKP+ze0oVQZtfCx2Wl5CsP1E522
  10. OHPCG1RzReOyT7JUxcilxVA9lXNo/2QKp8gureTvftfxtbx9+pMMqVbXkTfKE/TI41BfriQNZihO0GJY72tD8ZivFwuiYxT633wj
  11. 6pHvIBPO+bPYrzpBWfY9oC39bIzKzyKSOB5vH3ua7Kx7xomskQoRD1wNGOWzvdwPRMYFLM2UmBsjEdutxaLPljS1nATiO18+YkIT
  12. 5XsHRTxXzGsHLumhPg+JTdmyO5sk+3QbzntWoIi32g4XVdRDtqueRk4gtkqymjT5ZF0OSuzB/v4pwJPBZeQlrqYykhkpSpaCQozq
  13. McUVRj+peq+co0HlBvFTlIiLWv4+pY55FcCczhO/EBym86PfPApDpMqkJkxTc2MVXR954ay+UVG3QSqcfpIS4x8HpOYvb3XCsYQM
  14. RQchfulS/fYoX/jtY7eD1MgiXDBPJevh2nTxIQIqO0o8oJZ+fh22679R0MtFqC4XGHeq7R/MSVbhOirQAAXv2Spjc4UCMe0dNm/c
  15. diOB1lJLqcpJTywWVa/hPLa9t5Sewe1qE3wtrJBQmb1nG3HtauKnnjotgjvrUvvgt4eVnPdzGilhBkpXSEt/GbDrerH4lf3iwLwT
  16. WITQaUjlZbgzkOOJAfsVKDT1ZyHKk/G0PoAYoN+giazbLl3wRl2V+u2MnpkB/sKDpm40niIqpWQoNo1KD0l4VBNNcooxrYrsIWov
  17. PD+c+1oYhZ4QZJcIGUL9agr/48qgFNXsgR/5EL6Dgm3mdauzU+L1cgFQKb0D5uaCvMpDVbF+QwJVXCaey5l026/+O6PDdJbrysEg
  18. Lsm49T5Yr8dhC6oNOIaAZTigSmWhBV/yyoaqHssIpuaeIKyF+nCTsNvgN8vuF9xIhZteyrlfrusnMB2Q437SWguoD3R8O4EQH+OM
  19. mAngS7909tTkgfIxbEc9d+u3GUkbcj8s+wIZl7y9hFXpjrkaMgMSLQE/qUa/1wlE9z9bFjWT7l3y0ETJd7oE6PT46BvUsG5PFJ3M
  20. 4oDAoFKqk3r1X+z1S8ehF0XNOkcWU39Twcrhhaoh3KQZxzzivIu4zLle80QUdlgHnNmMBm5GepQzYNNaeZ0KaDDXWPzh3V4IFDeI
  21. w6yb1yNR+4CHKhMLqFxZvFO6dKrLOE37eD6aJ6lzZBga9Hji4BEmfxF+WH+keDlGvCVOU7dsrU7CYwq1yVONb7mpXxUe4oNovzg6
  22. ZJSTO0P5sQycHh4dMWbb42KU18ReheVFOmtypWeWi8ctJvpuSEeKTpVmhCZ+kFxfEQNognv9z5LlaS+picGFvvFEvFK9JfyI29up
  23. OWeIck75a/UJolKZ97/9cBp/aURynrosbPptmuDPUx5N93rTt6aeXrUnUeAJGMRj68gfl6FieCfcPXwIbtnb1bfFzM1DIuRcGvAE
  24. pI9Xva/9qXaQKLP/DTEv+mOQmJIjiRSrR7QElqAjmczx5SIcA54WJV/nZIacbuc2NaALcjqhcHzsWDhzdZVSuhaEwbeAkmD1sMhr
  25. d2FFnh3xLwnugKr7sIDCr7gW+ASx3EjH1issYB84bQyQIouakaaRCJ/0cwSkcv32kW6nZpTI1dXqZ4j8v8Ciqwxd+3KqSG0IY/mh
  26. OvcD/YtMUPfvQl0UBtyPseGTZTecs/GselaTxpairKVmRgQ2URrIU97mNqu7bjf5jTheQHMEbhucG5xTkX58jgu3XoTyu83Tn6sO
  27. PAKwSfpkZBSPHSg1OcpZKU3fEq3pENAng4I32Pt1d+tGexe10gSxsE1ZrobNNNROB2AH4+9c8TCVZP8ayd7drWM5Zg+OkWQ44Az9
  28. 1kkge2btmUvBcU6ELlks5B2ITDYI6Qg7nTEwxX0j640/9meMKIm3wX45CFcykIaIeAl7XWQByp97sned1HjaepwEIbnaUub/2gae
  29. Iw7X+0XlPeM28XSUjnWGHlTgp0rzQUlPziFwRrVVGdk7gpHr2wFGvt8F5rm7yxpQXNj5enHHXu1SpOW2YMR/JzRayR5Ri44dwZqA
  30. ymXi5taHC/SFeJim61pgwnoZQ2ErXAj0QKKAiXtsjhPNZinUyCfRv74hSSH0DOE3DXTAic8A2M5/Y09AVpKxnrwZ47ujc1D9tDuY
  31. NM7yEByp0kvJHa9XvlavxHwZTPSbeygmQrpPRVJqknkdrJmaaf6eLv1TMh/CXGRAbojk5OyvCuUDuK6ltoYpmyrkZma6IsvO1GH/
  32. 1rkTyo1Mht6/ocCkhXmEOva8fv1QeCN19NETXokne7dMoWp2MNBzL930ryJ8QCc8nbCm4VdyGYmHShoA44YYau9LjzCYJ626xCfx
  33. t4KdTctKc2skZaUfh94p3GNW5urQf9Btwtpx64BydoT1KqM87iOG9hS9Yk4sLKU82hqCCll3Jv1I93ZXabDFUceUs2zqYse7bJS/
  34. smsphGlbqWO+7fJHyKI1XeslhX7KDDMpD6Cg56apjmNu3pS0CkrLe4Uwc5A0HOccGSQdOERTfqAmrN0y8H5wKIn/WucRX4utD/iw
  35. 2N2wcELXnp6dD+ZZtGK0Z2ZMtu0qAH1moaGptR97TDmgXd3lefqVvRTAITmQ8n0y4Fl6g6PjzoWneYqgw5E1J8RFXSC01KSJ3CGi
  36. f23ChgVNF2GHHSIecoa9r1UvV/giMKDKdlkfR3eZubGQdwBw3P/SvLUAT82ywA7/64W0arl/4s0nxaWyPBkRyLZH+Sd6MeS60CKH
  37. WnSYlySRFg8LQ11ZY+62NGXS6et2EVc6nhbNYTSsHEaQWU/WBfvPDfuUms8a7Sfca7edWWTTiW7DsRqpDqnB2qZt3AViF5eNFVfX
  38. /+1YLysPD6aKEQVoYR96E5AOZwrqOlIMDlMvhtj6kMz8JlK/NkbaadRADK72aKkE3ocKbObGjFtDOcp1rDATUZPd0+aZjQgGoRKp
  39. +iMRYggTtyzOyv/dHY0IQiudYGSK0COsbeGwuG+ZDQosy0ulKgC25PRHUxn5O5jF9Tw8kD1zdLli3H/sphI8vnCaRdB4s5ajaK2o
  40. j+e6Lu3yDMXyrRnIG4d7PLZV3nESkf8hb7bp4LbeJkGJIZ7q4lqEnesSRK8CV+p38IcN2rJpd0TVk+PYIqON6kle1huHxBnMhUEJ
  41. KfE2CQtbfCnYMB1vGmbA8+8hTy7qzQT3qVWWQzR3pFMClrluwdIpE+PurRGMtbbIFxatI9SyoA3e1pnqE52CG8ygze3RzBYSrbSk
  42. 5I/4VgEJTx12Gh1S1FbaXEFAuIX5drJAg8dvlsP21RVgbuTUB3E19isHtVoK1aRnpuJRpouJ+PZjRqZEEh5qa7W/LJUusGntJqOb
  43. rwtJxukJ6CYsEN0diIhBHBeKM4uCo6SwTeJbCr22Hcwh7Jal0cvcENGv0mzbFdeOMy2j3CiNpjT3Xqg503z5kA1RwdcV1wqc4TOt
  44. K7QKXJLeXDnoZ+z4laRDOziZW4dkoRq0t5MVf3VZyl7EUjVh3CN6hRcCqCLYweEiUQyU4nDLifSCCtBGgt+IZRFuUqeSFRMyHb6y
  45. +566NpTRAwVltb/KOZTwpRn0fZER4SX9pAawpO/pX2zwJC8I7m4AVCuhTb8iWWKKAvOR1H4sa3re4qOdWy1xbGvoblakOtAvNE1s
  46. 5FqPfZfTGZx8w5XpFYSlVbUjzjalceOfpRXVSFKKltdbTCOB7gPK3QDU1CvhidDd8bUL8LAyG6PNTgceeal8JgYvhm2V0qYLjGyX
  47. obujvs0Jd5ZZUn/IT7lAN0gHvOXXodCmKP6OnbzQHQXmfVa8DNj9aFk7Ehdj2gIYCc3I+PKMM4HiwKRDg7IiVn8Fu+lHm+RCIGHp
  48. g4dnzEgvZwLRjl3+H+gcvR6u+5HNZBr/mwJ+jd4IT6pRNpRvvXmR3jrk15mXGV1uz1uM3cFK7FPWG69qEXxDSuX1VR0xcU0u/aSR
  49. Y+L3PiE3zPjSGYm8DOhsGpXkGrykNRkWucvWnRQVdiIzwI5mB+SLXqSZSofey0q5x365yLdY2FYrpHszqvnwcxAwx9du41nFI/47
  50. IgqfJ/nUFgDq+WG24WcFC8InhudhZ0WvQZtJy/bTBcdKBOzNbOKR+f0Ffy2bhMEJPs2h8DNFsfVuPQWf8akU4k4UGU8rb7C+9wqC
  51. M+UnB2ONfWcD0yNzL0sMQXmmjqug4Q5PdXrovpYYRyG/T+idECqkZ+YQR18AmAiskMiyc53v/X59H2V014BAVwwR4UnBJD2Cg8u5
  52. MkYoY0Gk2msWMLkkMrRWF96p9Y1jncZ5gy3FGMyxutEs7EgMSC/oSLTBw74+jRHnSKI//10KCKdX0YhwVNr8dPe5HC8hgkCmEPwE
  53. aep/TSjFu46c0gqCeD7OTaF4v6mxdz4XsgFZgsqXzpkVVcwk37bl89wiRWMmJwV5pp8zOAnOhO9/JxSurdeFnsFeiPbIYdP36MZI
  54. EKpG1Adh5iwxkS133iCHcWJc7y/lXNIZNonNuO61J8OMEFPzYemuW/9g3692zfqOBUdlLd0e2PhBRCp4KXXpW2mcPTEjK/6Z0+VX
  55. M6k5KFUmF7n54IP2TUK75qgautmRsS5cV5tNm4BDNznWaDx6+vmrFDuedFLFjS1c98elZQaoM8ideN05ZX3coj2Sct0urV0Q0hPk
  56. 89PpZtVc6hcSgMwV4UdTEwIxZu7lyswf6NBonLlUr9d8ZcEb5XDA0AW0dsRwb1tDscD2FvQbTMh/7DOWns/B4A5XX+pAKD2VoJI5
  57. bCh2AufvtQ9Hy3MmaxJ2Fd4SE/pGcb5JCwD+di94Mty7IyddrOw/B7HisVZqrEIaIBrFhQGXWEZ/IE4LDnECEJ8iQ2VVADZ7p+NE
  58. NSLs9wh2wcLj5FbGo3m+gI4+V42weeaoIbq8MWUwLOQGT+lU4WObqs0b4veIMEUgXbX9c7NEoeti+iH2n+W8Cmv5v1pDzt5nNoRc
  59. RZsNAy9jSXXuHdygGseJZPYLoSoKSvW87KFXNyzdWfo392X+Z0LD1wRiaMFzma3AmMBnkObFAAs42mbTMq5gK8ZlX7C7JXDNAZNT
  60. A4VfZUOBubX8BRQsISLHf4qYyG2ManUf/HUGZe1bKtbIc5g0iIshCNyM7Z7hKyQzt7q9TMa/rYrEI0tcYMApe1yjxhgM8iBHbFzI
  61. GRm208aZz2SHxI1hTyR4CdGmds5KCvatGRJ1YFvUq4XNBhNCIwI/jHPV7mT35e+l/HN5BnzbjL7yrfjk4/WgXTv/uCJkkZmHut5l
  62. fdYUyACtLHA/UXbyTm45qswt45o1je8CqeqFRfdghgUisPRKNmyuEsQwWMxtuJhki8BLf2t4Ir72YfodYbk8XSnW1mgtNlEZCXf2
  63. bVXKsRQca00rvY1ZBtpDVNvBnuFhZnO8T6smW0nAz9z0iEoGYJhDYLKNQgiM3Exb05HIwx68J/GXqaJc+KOMwYS+P7HV0ON33FaT
  64. jsY1R3F4mvWgBcYWwVBQApUiEIeF/0gp9ybP0KEO9g4XCOB5+2QqvVJVRO0o+2hpnBylvdQSgE4lyqnvTz96NUfX6PJwhnsvMm63
  65. 6k7BqOSvd3aihT7CzfauSqyU62AO9WgSTyvtqipauORhESvzF5OiV7F3Ue4sFZSRGvFn7N7gj9MbexxcMg9wTw1DrLtOTSWbmzCQ
  66. bFHCDK1wwBHTyYsMnnSEBvJWk3sAIgTCUw8qP2o7t2GKP89EYM4hNO9ipxEmduuouD13fmtxcUcUrDYN9h7oyKFrX3OGNm6WMSKB
  67. NxN8GvO4YoD57i/4Bl4QEUcgPyt0erELPKn1pWb22kJUaYmlRvlrEcR7x8Qw9UnCibsXU+3PhD18FAIE5+906+KxL/TChg4Ih1Ki
  68. eQOCtAZxb2A2SQOYsk4mYh6nPlS711zMj04qVajvnV+00sJNAb0yAEThgqUpLffRS2CQ2XEIAjpQjH4Iv3JfO5IS2xbvmhd957q2
  69. slmIoLPofi55XB13AjAL0lzqmbp8fGbGi0F1ocUEJLMCHwzFZ7sPYscmfIaDEKTDcasTix77cwkZT6s5I7SPvCXifx4QJbXQYz9P
  70. IPmIlbx6owE6f4NaNPGTPMaKQ4uHU9lHwurcARHCuAJKpbIiZDedSvNOcWAI/NdQnA/qUneDwOugImPRk+ak2CiTYUupAZ7/dpow
  71. Z0cdl30alFiC+J0jJ/1VoIrPdofUpVYumsmslP4V0s4gAXj6JWXvWXXHnk8BncZFdXENTm/mkMNRF3wbyqGeKbGYdTRyD09FpfP2
  72. ulv3E4464K+M+ljH8P42CvdVXAQXaS9Zn5xjkzoJKbBXZAWiLV+ZrVisnsWjEkpSvcFZnupG+T9+yFRcN+27ciHBOnXPtaa631rm
  73. HDErIZQZv9splaQHCWXLvB1tOdEdSMSRprE7J0lwRb2DyKCxHacRzilrxBhwx6WCScbbY08QatQ8PX8gpQY4E3VIMh+kLQVXUXJY
  74. DIxkm4v3QgJLpY+zBB9bkDukRIERbdNHSw748b8k9yfXnCWKxtsKI8yuDNPk1NJkwfN9qm8x1SGII8OZ9oOBCNHjrhMsPClEuxJB
  75. Gy8NbjSC+PSil5728jmT1AAxt+wlimFlxvH5M4kcLJFJt9XfNxjFUSLAd7IUoRxDkmEz3/fqqVPH9+osrSxKG7ZcxnQwpb10dCj7
  76. evzx7K7FnqBBbeGlgeyZRxDOoA0BSU2T+zQlU8d/tKnFZyufe2nxeDZnpx+bKOXhucskycgKYoTr3PfuoM330iGmqqoPzmiqlLT3
  77. e7aMjny4UypWmlfafLC24D5gdmuL9vQcmZ6K7Ln5PaI2F5P/eHkO3IwWmcT/2bTnEmhglz6Z0bfXH111ctRiGspEmt7jsLk2Y/Er
  78. D3CcUJJ7Mu5I8FQgfM57WQ3m1+CXHhV+bkW3BbaJLd7IOXmguerXPv6yDfInnQpQV6HBK4ynRYOdjQEEJJVb5qGl0TFC2JsXvaP4
  79. r1UUg3i31qXIL1CpOy92Lcpp9LGdlk5VgWaTiUNY/TfxZgWEf25rHhP5HS6Kw9UUEbmC6qzFaE60JVcUd+AAHQTe0WCinHR4acO6
  80. AA87WrAcqDGQ8mMD1oFop9yWH5f4VcdqxW6WF20aeCFgKB2mJFFzpLQ1Gn30Agbwc/RJorBtBAAOa1GBrTFVow4O9kHyB8Wni6ip
  81. GhGjkxm+9Hpllj7sFvulKlwntqJAroXteziRcj2iy4WZRnLhd2FGF1aumvzCFuLK5duYXwPTQvyOug0DRV3/C//OKVaXu8FBASWb
  82. qfpiVGYSOLmDLRSJn89N0aaY89JuPii/b78QSdHqt4sXwCDV6GTHv/+GMJe6RxZB8aoVjxCU9ggt5zHkiXGPjCcfCmiWitIctp0Y
  83. qYvdm4KE95hNI8M0yxRgnC6IjJvaDRLkvuMmZSgatr4dJtk2bR1LdI5KIJscMjHI9twN2cIIMRsB/IKH7SEEEpyJy4/LJeaQ6fhu
  84. jNmrE+lSQ2jMAP+6XykaPFzXxsCGLwGlOl8Rl3gljnOji+a37UsI8Tp5YJGkLqNE0niTHw6I3E0AZmqoZFItHLeIvMkUUVBp3CS1
  85. YddbNlpOBeyjUlmC0rkI6h09/yGXIhso8qJ20/FVN0YZFOy/hSGFp9OzdoP194vzcQxJEQxQHmFa540z7yxcjdUPH6Duyldx8an6
  86. HfUmSjt0iZFhpzwyakmRV8aQzAZhVkyvV1e5yiNej/WBS1UriIcfzjmxhxjtJVucMPpcYiOkVt9zG9QqVW3P6Tu0ukLeMTg01G6E
  87. 4q+g4tZq6J8r2yMs7j960ehePxJEkEZ+t2vZkzfKi2HsDW6gd84kzqPnZhUzc+oLhPfz2e/Jh0NEiKBvSonWBUeRj0MFt/7osyFD
  88. yAY/b9XlP1qQPKfybjTsxkGTyb2jSJMJukOtySbzMaRnyq+yrIybYIRnjXSidSlRSC9e6L3oS5pKqkozskOkcbOvnE/NreBoAt0b
  89. TI8Y6caB7qH3aZGC6Bt3yqojLjy1wvM5TEdC39SSYdKR8/m2vkON5Bl2iCS2Tx6X32d7Wx+KSPcckQtUuf9pwNJiU7pOgo1PL5p7
  90. mBKifHMwwr2VZqUPB7+H0A6bnrHpJ9hrHZpfWUdczDAVwY7hXKogJoeFq+7jEG23oFNcME9QvfCQwRg0CP7Iyyw/3V77ffdA6VHQ
  91. 9O0njoT+4wvxrwbEQdQDaZdZafkKH5TJCaV1YFIx/T7bRJxEaFM5d41ycBceVgQyKTW/Ghgx7K0UiS3EIq6FftgzXzmYgtR9vMEh
  92. bK5H3UmBeHqmAxfwoHJjew9ahf94SC8=
captcha