Google Extra

Displays results for google image search, video search, wikipedia search and dictionary.com search alongside normal google searches.

  1. // ==UserScript==
  2. // @name Google Extra
  3. // @description Displays results for google image search, video search, wikipedia search and dictionary.com search alongside normal google searches.
  4. // @namespace znerp
  5. // @include http://www.google.*/search?*q=*
  6. // @include https://www.google.*/search?*q=*
  7. // @include https://www.google.*/#*
  8. // @exclude http://www.google.*/search?*tbm=*
  9. // @exclude https://www.google.*/search?*tbm=*
  10. // @grant GM_registerMenuCommand
  11. // @grant GM_getValue
  12. // @grant GM_xmlhttpRequest
  13. // @version 1.0
  14. // ==/UserScript==
  15.  
  16. var show = "data:image/gif;base64,R0lGODlhDAAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD%2FAP%2F%2FAAAA%2F%"+
  17. "2F8A%2FwD%2F%2F%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
  18. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA%2FwAzAAAzMwAzZgAzmQAzzAAz%2FwBmAABmMwBmZgBmmQBmzABm%2"+
  19. "FwCZAACZMwCZZgCZmQCZzACZ%2FwDMAADMMwDMZgDMmQDMzADM%2FwD%2FAAD%2FMwD%2FZgD%2FmQD%2FzAD%2F%2FzMAADMAMz"+
  20. "MAZjMAmTMAzDMA%2FzMzADMzMzMzZjMzmTMzzDMz%2FzNmADNmMzNmZjNmmTNmzDNm%2FzOZADOZMzOZZjOZmTOZzDOZ%2FzPMAD"+
  21. "PMMzPMZjPMmTPMzDPM%2FzP%2FADP%2FMzP%2FZjP%2FmTP%2FzDP%2F%2F2YAAGYAM2YAZmYAmWYAzGYA%2F2YzAGYzM2YzZmYz"+
  22. "mWYzzGYz%2F2ZmAGZmM2ZmZmZmmWZmzGZm%2F2aZAGaZM2aZZmaZmWaZzGaZ%2F2bMAGbMM2bMZmbMmWbMzGbM%2F2b%2FAGb%2F"+
  23. "M2b%2FZmb%2FmWb%2FzGb%2F%2F5kAAJkAM5kAZpkAmZkAzJkA%2F5kzAJkzM5kzZpkzmZkzzJkz%2F5lmAJlmM5lmZplmmZlmzJ"+
  24. "lm%2F5mZAJmZM5mZZpmZmZmZzJmZ%2F5nMAJnMM5nMZpnMmZnMzJnM%2F5n%2FAJn%2FM5n%2FZpn%2FmZn%2FzJn%2F%2F8wAAM"+
  25. "wAM8wAZswAmcwAzMwA%2F8wzAMwzM8wzZswzmcwzzMwz%2F8xmAMxmM8xmZsxmmcxmzMxm%2F8yZAMyZM8yZZsyZmcyZzMyZ%2F8"+
  26. "zMAMzMM8zMZszMmczMzMzM%2F8z%2FAMz%2FM8z%2FZsz%2Fmcz%2FzMz%2F%2F%2F8AAP8AM%2F8AZv8Amf8AzP8A%2F%2F8zAP"+
  27. "8zM%2F8zZv8zmf8zzP8z%2F%2F9mAP9mM%2F9mZv9mmf9mzP9m%2F%2F%2BZAP%2BZM%2F%2BZZv%2BZmf%2BZzP%2BZ%2F%2F%2"+
  28. "FMAP%2FMM%2F%2FMZv%2FMmf%2FMzP%2FM%2F%2F%2F%2FAP%2F%2FM%2F%2F%2FZv%2F%2Fmf%2F%2FzP%2F%2F%2FyH5BAEAAA"+
  29. "8ALAAAAAAMAAwABwgpAB8IHEiwoEAAAAwSRKhwIMOGDx4uREix4sGKGA1KVLhRY0KIHSEODAgAOw%3D%3D";
  30. var hide = "data:image/gif;base64,R0lGODlhDAAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD%2FAP%2F%2FAAAA%2F%"+
  31. "2F8A%2FwD%2F%2F%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
  32. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA%2FwAzAAAzMwAzZgAzmQAzzAAz%2FwBmAABmMwBmZgBmmQBmzABm%2"+
  33. "FwCZAACZMwCZZgCZmQCZzACZ%2FwDMAADMMwDMZgDMmQDMzADM%2FwD%2FAAD%2FMwD%2FZgD%2FmQD%2FzAD%2F%2FzMAADMAMz"+
  34. "MAZjMAmTMAzDMA%2FzMzADMzMzMzZjMzmTMzzDMz%2FzNmADNmMzNmZjNmmTNmzDNm%2FzOZADOZMzOZZjOZmTOZzDOZ%2FzPMAD"+
  35. "PMMzPMZjPMmTPMzDPM%2FzP%2FADP%2FMzP%2FZjP%2FmTP%2FzDP%2F%2F2YAAGYAM2YAZmYAmWYAzGYA%2F2YzAGYzM2YzZmYz"+
  36. "mWYzzGYz%2F2ZmAGZmM2ZmZmZmmWZmzGZm%2F2aZAGaZM2aZZmaZmWaZzGaZ%2F2bMAGbMM2bMZmbMmWbMzGbM%2F2b%2FAGb%2F"+
  37. "M2b%2FZmb%2FmWb%2FzGb%2F%2F5kAAJkAM5kAZpkAmZkAzJkA%2F5kzAJkzM5kzZpkzmZkzzJkz%2F5lmAJlmM5lmZplmmZlmzJ"+
  38. "lm%2F5mZAJmZM5mZZpmZmZmZzJmZ%2F5nMAJnMM5nMZpnMmZnMzJnM%2F5n%2FAJn%2FM5n%2FZpn%2FmZn%2FzJn%2F%2F8wAAM"+
  39. "wAM8wAZswAmcwAzMwA%2F8wzAMwzM8wzZswzmcwzzMwz%2F8xmAMxmM8xmZsxmmcxmzMxm%2F8yZAMyZM8yZZsyZmcyZzMyZ%2F8"+
  40. "zMAMzMM8zMZszMmczMzMzM%2F8z%2FAMz%2FM8z%2FZsz%2Fmcz%2FzMz%2F%2F%2F8AAP8AM%2F8AZv8Amf8AzP8A%2F%2F8zAP"+
  41. "8zM%2F8zZv8zmf8zzP8z%2F%2F9mAP9mM%2F9mZv9mmf9mzP9m%2F%2F%2BZAP%2BZM%2F%2BZZv%2BZmf%2BZzP%2BZ%2F%2F%2"+
  42. "FMAP%2FMM%2F%2FMZv%2FMmf%2FMzP%2FM%2F%2F%2F%2FAP%2F%2FM%2F%2F%2FZv%2F%2Fmf%2F%2FzP%2F%2F%2FyH5BAEAAA"+
  43. "8ALAAAAAAMAAwABwgeAB8IHEiwoMGDCBMqNAigocOHAh9KBLCwosWLCwMCADs%3D";
  44. var moveup = "data:image/gif;base64,R0lGODlhDAAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD%2FAP%2F%2FAAAA%2F%"+
  45. "2F8A%2FwD%2F%2F%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
  46. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA%2FwAzAAAzMwAzZgAzmQAzzAAz%2FwBmAABmMwBmZgBmmQBmzABm%2"+
  47. "FwCZAACZMwCZZgCZmQCZzACZ%2FwDMAADMMwDMZgDMmQDMzADM%2FwD%2FAAD%2FMwD%2FZgD%2FmQD%2FzAD%2F%2FzMAADMAMz"+
  48. "MAZjMAmTMAzDMA%2FzMzADMzMzMzZjMzmTMzzDMz%2FzNmADNmMzNmZjNmmTNmzDNm%2FzOZADOZMzOZZjOZmTOZzDOZ%2FzPMAD"+
  49. "PMMzPMZjPMmTPMzDPM%2FzP%2FADP%2FMzP%2FZjP%2FmTP%2FzDP%2F%2F2YAAGYAM2YAZmYAmWYAzGYA%2F2YzAGYzM2YzZmYz"+
  50. "mWYzzGYz%2F2ZmAGZmM2ZmZmZmmWZmzGZm%2F2aZAGaZM2aZZmaZmWaZzGaZ%2F2bMAGbMM2bMZmbMmWbMzGbM%2F2b%2FAGb%2F"+
  51. "M2b%2FZmb%2FmWb%2FzGb%2F%2F5kAAJkAM5kAZpkAmZkAzJkA%2F5kzAJkzM5kzZpkzmZkzzJkz%2F5lmAJlmM5lmZplmmZlmzJ"+
  52. "lm%2F5mZAJmZM5mZZpmZmZmZzJmZ%2F5nMAJnMM5nMZpnMmZnMzJnM%2F5n%2FAJn%2FM5n%2FZpn%2FmZn%2FzJn%2F%2F8wAAM"+
  53. "wAM8wAZswAmcwAzMwA%2F8wzAMwzM8wzZswzmcwzzMwz%2F8xmAMxmM8xmZsxmmcxmzMxm%2F8yZAMyZM8yZZsyZmcyZzMyZ%2F8"+
  54. "zMAMzMM8zMZszMmczMzMzM%2F8z%2FAMz%2FM8z%2FZsz%2Fmcz%2FzMz%2F%2F%2F8AAP8AM%2F8AZv8Amf8AzP8A%2F%2F8zAP"+
  55. "8zM%2F8zZv8zmf8zzP8z%2F%2F9mAP9mM%2F9mZv9mmf9mzP9m%2F%2F%2BZAP%2BZM%2F%2BZZv%2BZmf%2BZzP%2BZ%2F%2F%2"+
  56. "FMAP%2FMM%2F%2FMZv%2FMmf%2FMzP%2FM%2F%2F%2F%2FAP%2F%2FM%2F%2F%2FZv%2F%2Fmf%2F%2FzP%2F%2F%2FyH5BAEAAA"+
  57. "8ALAAAAAAMAAwABwgjAB8IHEiwoMGDAgEgTAhA4cGGEBc6lLgwYcUHExFmvMhRYEAAOw%3D%3D";
  58. var movedown= "data:image/gif;base64,R0lGODlhDAAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD%2FAP%2F%2FAAAA%2F%"+
  59. "2F8A%2FwD%2F%2F%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
  60. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA%2FwAzAAAzMwAzZgAzmQAzzAAz%2FwBmAABmMwBmZgBmmQBmzABm%2"+
  61. "FwCZAACZMwCZZgCZmQCZzACZ%2FwDMAADMMwDMZgDMmQDMzADM%2FwD%2FAAD%2FMwD%2FZgD%2FmQD%2FzAD%2F%2FzMAADMAMz"+
  62. "MAZjMAmTMAzDMA%2FzMzADMzMzMzZjMzmTMzzDMz%2FzNmADNmMzNmZjNmmTNmzDNm%2FzOZADOZMzOZZjOZmTOZzDOZ%2FzPMAD"+
  63. "PMMzPMZjPMmTPMzDPM%2FzP%2FADP%2FMzP%2FZjP%2FmTP%2FzDP%2F%2F2YAAGYAM2YAZmYAmWYAzGYA%2F2YzAGYzM2YzZmYz"+
  64. "mWYzzGYz%2F2ZmAGZmM2ZmZmZmmWZmzGZm%2F2aZAGaZM2aZZmaZmWaZzGaZ%2F2bMAGbMM2bMZmbMmWbMzGbM%2F2b%2FAGb%2F"+
  65. "M2b%2FZmb%2FmWb%2FzGb%2F%2F5kAAJkAM5kAZpkAmZkAzJkA%2F5kzAJkzM5kzZpkzmZkzzJkz%2F5lmAJlmM5lmZplmmZlmzJ"+
  66. "lm%2F5mZAJmZM5mZZpmZmZmZzJmZ%2F5nMAJnMM5nMZpnMmZnMzJnM%2F5n%2FAJn%2FM5n%2FZpn%2FmZn%2FzJn%2F%2F8wAAM"+
  67. "wAM8wAZswAmcwAzMwA%2F8wzAMwzM8wzZswzmcwzzMwz%2F8xmAMxmM8xmZsxmmcxmzMxm%2F8yZAMyZM8yZZsyZmcyZzMyZ%2F8"+
  68. "zMAMzMM8zMZszMmczMzMzM%2F8z%2FAMz%2FM8z%2FZsz%2Fmcz%2FzMz%2F%2F%2F8AAP8AM%2F8AZv8Amf8AzP8A%2F%2F8zAP"+
  69. "8zM%2F8zZv8zmf8zzP8z%2F%2F9mAP9mM%2F9mZv9mmf9mzP9m%2F%2F%2BZAP%2BZM%2F%2BZZv%2BZmf%2BZzP%2BZ%2F%2F%2"+
  70. "FMAP%2FMM%2F%2FMZv%2FMmf%2FMzP%2FM%2F%2F%2F%2FAP%2F%2FM%2F%2F%2FZv%2F%2Fmf%2F%2FzP%2F%2F%2FyH5BAEAAP"+
  71. "8ALAAAAAAMAAwABwgjAP8JHEiwoMGDAlEgHKhw4b%2BGCyEilFgQhUWLEzFGdMgRYUAAOw%3D%3D";
  72. var icons = "data:image/gif;base64,R0lGODlhdAEDAfcAAPVvb4%2Bv1Mw2NNbW1rIdIFVSVbfDyIzK7OoBAerz%2BcbHx%2FbOosnq0nTL"+
  73. "llSv4ZxjXf%2F55p5%2BufzMUf%2Foq%2F3ahTBrs%2F3p6P3%2B%2Fv%2B0Af3TaojFSjBccKuaX9Tb3w1TpFSJxYeHh%2BLr8%"+
  74. "2F%2FkmYKWqHuizce01fzKypCkraXctfLx8WjEga%2BTw6eJvHiJsPuZmbq7vE1vpezr7tfq9crY6NB4aoXOjyytUUNtftOxrU66"+
  75. "bvvX16eoqOX06C6Ir8HI1KnD4dSVi6mLN9fh6f7y8Zybm%2Fq6ujqk393AucrS2%2BHX5%2Fu7Ev%2F12Wi34vhYWfH4%2FM1WS9"+
  76. "almU%2BItm2JlTWVyv3IPKbV7%2F8zM8vm9UieyfS9IKW5x%2BDg4fn4%2BPiqqpXWqbLZ82mVxtIeI%2FaFhrzU6P%2F77v7lU%"+
  77. "2FX09bG2xBWFxp%2B72eLb2P7eJf%2FzyM4WGrOQjslHPeKqm%2B9JTf9CQv3rfPn9%2Fuzo1%2F3CK7LK47Tiwi90l9jN4siCfP"+
  78. "%2FsvbaeyNLDwSUhItBmWO748eodHeLl6Fy8U6%2BxtAJ7tcrh6drTwNHB3WBxnrPgsP75%2BP%2F8%2Be%2FUy%2Bu0GuZYVgSm"+
  79. "UO%2BbRvbdypqwudCsNW9%2Fqebo6rqrhpGPj%2BqEhMmxbv%2FhOPWuaurIvPvg3u09PYW%2B3R2nRd%2FXLeni7u7h4u2SNrOt"+
  80. "VmrAXH2WQnjA6aOqxCJgrHajub6PFfDu8vb894AyNtfv3J3E4aB%2BrlmVVO%2B%2FsLa80JovLPClWeKrGeJMUvj6%2FKXJQT%2"+
  81. "B0YdOgEJ7Q7DKLXndobf2%2FHJxRUPv8%2FL7h9eCpD6t1eMHfjr%2Fb8StXnRtihwKlT1a%2Beerp5%2BrZNGiGbqHYnHqofLmZ"+
  82. "MPf2%2BBCpWePQms%2FPzziRO76oz1h7irydnOmxEMLnyBFFYESo4I24h8S7ortbYvrPzr%2FQ5PhkZHCDSkR6ukFloN%2Fw%2Bd"+
  83. "uLee8sLOe1puSch%2FFRU%2Ba%2FgNTKH2ahi%2BRlZZGfvu94eefbuuW%2BQveQkPGNjMEkJFN4YRpYp9DWPePKzf%2F%2F%2Fy"+
  84. "H5BAAAAAAALAAAAAB0AQMBAAj%2FAP8JHEiwoMGDCBMqXMiwocOHECNKnEjxIKCLGAGt88Sxo8ePnmhgfENSQMWTKFOqRGCOoAsE"+
  85. "KmPKnEmzps2KYXLqzLnuWYwYz4IKFXppEI2c%2BpIS0EfgptOnEVkKdOECqtWrWLM63cmVhpoEQIcOPYqU6dKmWtNCZUlVrdu3cO"+
  86. "Fy3dkG0CQzKfLqNRODbNkwBALHHbyyKuHDiBPjnKuzjQBPvLhIlszIr74wSQWcpZgR40aQoDmKvEjyjUnFqFOrXh1Rp4B1AtrQFd"+
  87. "CO0b8L%2Fxi543pZY2B9FBmH6flT7NCiZJMyZcq6ufPnqV1PshWbbhh3Q%2F41ghNGtk59NFK0%2FwuMVqLwMF7BGhdq2Sxz6PDj"+
  88. "y7%2BqE9Skf7beeM%2FZps26T9x9hxkNtsHxW3DC1XWXXnv1tVNSgAk234QUVrhYGALc948jT3RHV4f75YRdbga%2BZ955jkE2GW"+
  89. "WWYaaPZiZaKOOMNA4k3UCfANKfdY1dN9B25CGIIWwhOlbbbbnt9mAYvi1V45NQOtTZRZ%2BFBtJogJR22okYaiiQBUeF2JgA7tAx"+
  90. "ECMlltdaThlSV%2BR12W3n4XfhjSdhlHjmaSNjxIW1HnJlLacmRPV5KVAK68w5JhyNEITmgRMVip9%2BdPkH4JLgFQipnpxCeV56"+
  91. "fhrX3m%2BDPnRjQWa4Ux1%2FtBn06J1rdv8pEIeKdgciVyM%2BGiNEU2pkJWhYatnpsBfOpSBeDKbAl18uRliqQ9LR0ShBnwBRXR"+
  92. "tvAJGdo1wY6GSkbHqZ44499ujOj94%2B25Bwfa4XFKAuCkrsvLEylmJkK1YmYGabgdslHVwwglsjn0wiXmxvHGGBCZ8MVAwXZkDR"+
  93. "L5cZEgRmrWOWeWaaQs4FqrvPjDoxvSQr5BqRsx2Jm268MbnOprGC4gjAXFwwxCSfZEcHDoAcgZsFnjjSyMN4SQwroTnZVxCiGDvG"+
  94. "qKPeAuevsXYhy%2BCyD14WZMlcIySdm9aNKGeI4Im3NcWOPMyLBY5YMO0%2FXDzDxUBDeGKLZEWPjLSsqKr%2Fup%2BRrqbbsbGP"+
  95. "4TuZvki5CKO6XZcsaX5FWhpg4pn%2BE7WQAszMxSeOpMBQIzq080w1KRgtNcWTSFtQtddmu%2B2Z3cK892ursqpyki03eXrjvJ9K"+
  96. "a5G37pQrxxNdhqEj1TgyyesMfWKLI68YzfhC0QY8cMEHY6swww5DLPGupoYLtrlxckd2nWd3ekEjjAxhgQ7kFNFFF1TV30URJujw"+
  97. "iQVDMPJ2RexrnwXepwMTFEF%2B9KsfVeZ3PxOQ4xP7G0L%2F%2Fjc7cenoTeZCV%2FogohwBmMARn7ANRFLgiSOYTkgyo5nNcKYz"+
  98. "nvnsH0ATGtFKt8HwhUFpkKvUfyaHmQFp6ludat8n%2F%2BSXj3o0ARTsEAQClrhEQbAjDuaohwvwlzPcTESIBaRfEc3xDiQqkYlg"+
  99. "dCIooAgAMbjgfg%2B0gMAe0r5TfSlM9iKTmQTyKn2o0YoPgRBtUjC0C6zvj41YXyAbQchC%2FqNuNKghtNiUNi6srW1vi9vcBFK3"+
  100. "u0GMhuBbJN9%2B9yGMDU9vVrFAPZAYh3owjyaMsED8XCAGAHTxi2AM4xOjiI8uMOyUCxGiAenXSi56MZbAZKIY32GOMp6xCA%2Fs"+
  101. "n0J0WQRJEYRpYnLa%2F15FAGTmTIQNWcqLPEEHM1TDDOAMpzjHKc4YuEOR62IkwDjnuYWATnSkO6G%2FKiaQcWGQPz4SCJCOBv8V"+
  102. "EwBTEDqwyRCG2AV8GPGXwYylIEDxDmMWQQdu%2B5wFPrFLfPQyDqAQBCwTGkwxklEMtaTiECionYlW1I0DSVXtAFeQOob0liQ9iF"+
  103. "ne4Amw%2FOSmOM2pTp8hPYoYL3PJW95DnAe9ns7TUBcTE6s0RkfiXeUTCWUHNmMyBB3IDx8AaEIc2MHRjjLUoeSwQC7fJz8XbLGL"+
  104. "SeyqWhHgxDgQsx74mOJD1egosmqxHtGiIOtkgy1ttTR2gYGrXCE6VYSc5TEJuIRiF8vYxQ7isZCFLBDQyZAOfjCEESGhCWVnQ6U9"+
  105. "M1HRFMDTNsZZpwCAo%2FiYCcHIQT9NmGOrG12rGJsAgJD%2F6gCXZ3qfCeZnUFdiVKNr7apGn0jbeuRjfvmja250y9t6mKN6aySY"+
  106. "wdqBsO01TCBEM10Uj2tLwi6EAKUBAhTGS97ykhcOR0ivetULhCe416eX2WMfAQnIQRaSkIcMCWWpFy6DqPRvrWqp4LASWzDGYSZV"+
  107. "vWpWtxpchX7VjMgUK0IGWtGLIrTBCR0mbc3YwJxRkqJX7SVaC4xhYbKDocXksEjjo83HdPOb5IzxOM25X5OFS3XUshZfXffXy2Gl"+
  108. "q%2BxAsFULWg9IXLjBC20ohMOaEAqX1cJpLXFHT%2FzRl3r4kCDmJQBee2Qpm3iMKbYyblcz05rq9Mxo5mmNEwLd6023%2F7oLu%"+
  109. "2B4%2FsgtKp5B4iQeWCSOyaFCtclXKJ1YyGseM5fjd1ZdR9rIsUVwPFT9QhAM1tFmdO2JFKzTQUXQ0ZuFz2Jo29tOKjayoJ8tPTa"+
  110. "ZQMiv08M569rOgDe2SRr3KaROa2pmosgisdCUSS9xWWtpy0xP%2BhKEtumWMJlrRHk3xMW9JkEiHuNhdlnKyyyhm%2BYCXJOI1r7"+
  111. "ahgN71rre9751nIx8ZUYFIkm52wxsmp0eTT5A4yDRpxK1Z6cs7%2F3OWcP01oQVis1vzktLRRjKmG33MsA4Bj7dxn6TFAPBj83rg"+
  112. "Ktbfvnk3O82x83OhGx0NgXiVIsQWoDeZqIKP%2BGfhsoOYS%2F9WLkOw%2BOQtVxrD0474NRHCci0j2t5TBrMx0Thziqvkp8hT3s"+
  113. "Sp9bzorZkmotzqO8Qw9JM0oqq7dYFzYfvPJIP1yhFJpbDLelYv3nm4jFZxcpu%2B3K0fesRfH2aml%2B1dn8vEsiAsLEM0K89h9X"+
  114. "vIBuUyO%2Fb%2B4CkyTOUAdJ%2FZJ81FY%2B%2F9xDoXO0TVGNPPCV7SZzU83xPP9gH6z%2B000WM7%2BFgMPw6yvoK8b34TWWrM"+
  115. "m%2F70cGkxN70p49aDk8alR73sZw%2BVMtsUzbgvTqxpz%2Fve26TTiQV1Y0UdWVKz2%2FfIT75Drp2tbWu7295OL7ifoPzqo%2B"+
  116. "QCvHjFIDrgg1XQowWWUAT%2FDMY%2FfkUowhItoMcZkDCIV%2FAC4dYviAfAQJA0eCD%2B1b8AEr6viHTAAB1R8AECOIAEKIDogA"+
  117. "7%2Bl363cAnwh3%2F%2FMH8CkQZp4IDK9wqKgA4EeIAHWAEc2IGsUAEfyIEaiIAj8AoUKH9gIIEnmHyDkA4fgA4dGIMeyAo0WIOs"+
  118. "wA84%2BIHooAiDsIIE4QET6IO%2BJwTpYIM0yA8ekIRKuIRKmIM5qAhCcH3Zt33d933hR37ld37pt37t935C%2BIWr0QhIsAxI6A"+
  119. "E4uAzLUAHpUAFYiIXp8IZkmISskA4dcBL6x3%2F%2BB4AFuIcviIAwoIAMCIaCiBgX4APpgA4tAAb0sAq34AN6%2F%2FCIetABST"+
  120. "CJavCIA6AHVdgCMKCGenASFoiBAziCMgiCpCiCGpgOJTiIqhgXxXALLBADrzAE1VANjkQ6RbEFAzAAHdABQrB9QpAAKRADpEAK5a"+
  121. "AISHASLfiCoxiDRliDOMgPOsiDqziNasELZ3AGc0Y6QoAEWxADihUDSFAIBoAE5IgEBkAJSJCLA2CC9OADJ0GEzViGTDiPTgiNUE"+
  122. "iN%2BIgVZsCI%2F5ACtHgJPnAJBNEBWoAEUAAE6wAEboAMe%2BAHSKAA2EAH9HALDegQYhiHZsgPaKiGbNiG4%2FeG6YCRc1iHdj"+
  123. "iF3Od94Gd%2BbaiF6sd%2B7leR%2Baga2Kd9J2mF4oeF5v%2BHfi3ZhTD5EGZADwqAfXM2CGfQAZewBR0wCAZwAhixBzRAA6YBBY"+
  124. "egAAbgBKuwCj25EIV4iIm4iI0IiZE4iUlQiXpwiZm4ienQiRVRDPvXAv33fwHIhxnohwoYA1kZk4Rxh26Zh3EplwZIlxMZiBTxCi"+
  125. "0wAFswCEipACdwBgpAldigBePwBDjQmApQCA%2FwBjjQAQpwBgmgBavACxTRiq8Yi7NYiylwi7m4i73Ii8AojMRojJ54gXO5gTL4"+
  126. "gSFYASOIiiaIl6vxibMJg7VZirh5iqlIEZfQAlvAmNiADQZABC%2BwnAqgBgbwBjRwCLooBFrwAICACJpZCEJwC%2FRQDRT%2FYY"+
  127. "3YWAzayI3eeAngKI7laI7oqI7s6I4VkYzAuYzNeIQ3CI24eY%2B8qRr0uYwzGI85uJ89SBGkYAnJuZwDsJQGoAbLqQZagAxP4Aeq"+
  128. "yQ2v0QEDgA2FMAN3QA9mQBH7eAv9%2BI8BOZAFeZAJuZAN%2BZAROZF3qRBbkIa2eYTzWKP1yAqKsAX9qRrwaITyWKNNCI1PGIUU"+
  129. "0QEtoAaFsJzY8AInUAhU%2BQIKQAkjIBJ74JTUqQBIsJyF4APl0AK7KRE%2FGZSgWQxEaZRIqZRMeRFOCZUCIJVUaZVYSRH6twxL"+
  130. "qJFzqIYe%2BZFwWIb8AAMkuaOJcZF8qpFpuIZ5CgMgKZJ0WBF6%2F2AJHZCkjfkCI%2BCkjbmkI2AA4oCQ6%2BAGWpAAITAIQmAA"+
  131. "tzADliCQE0GYhomYmrmYjWkAjxmZk9mYlomZmsmZngmaE1EMhvgBlqCIjOiIZakHYjmWkfiIZ%2FmGxwioibGViOirXwmJkkiJlo"+
  132. "iJKImWajkRPnCkOwCRA6CYL5CL2NCtJ6AAHXAI5qoFnZoACeAE5aAFyoCgxomcysmczgmd0kmd1smL2bmd3fmd4RmatzACpPAK3k"+
  133. "SLjEA6IXAJGKqLvHimrXkJr5msynoYogmLskiLvGCLiJmavOiLrTmMxSixElECI9ABO6Ck3tqtEMmklCmrZxACnqoOSLAKVWAJIv"+
  134. "8LEQeaoOHKoA6KDRAqoRTKixa6DhiqoRzqoRQBC9pQnlyQAFuAnt8YjuNYjufoA6kZA%2F%2FQjhOLGOSZjSmwjd0YtexJte%2BZ"+
  135. "i%2FFZEd5HCqsAkdiwma7qA9jgAz6gAHDrA%2BRot0KQtzJQDgFwB5YgnxJhpEiqpEzqpAYApVJKpVZKA1iqpVzqpRRRDYx4Af7I"+
  136. "CwBpqgJBkNiAAwipkMiwDg4JkRJ5C8UwLxdQDLzgBCEgA0JQDnfwAxIogT%2FwA%2BUwA0IAs07ghXZ4uqnrqSEgBDMwBuUwu7Eb"+
  137. "u7N7B2NguyGAu7zAC503ESnAj%2F7IBZdrogbZuSoautjACxOpuxGxiFz%2FgKFCcJghAIvqmgK56wTqq67qurwywKFpMAuWsAoU"+
  138. "0aiP2rYKIKmUurKXmqnrsKmd%2BqmhOqqlShEp0I5CSaZFeZRJuZSA8ARP%2BZQkAQWaWZVXWbrqUwyeOgY%2FEAAkAAYwyApMyA"+
  139. "oACAYkkAZ3MAMh4AR%2BFBF%2BlLq%2FC78eDAYfEAUc%2BKNJqJ8YaMIBkAY%2FMAa3mwDv96Iv7ARC0AKJgLpDucBn6sBqKsFt"+
  140. "OpUWTA9CkLst%2FBAjIKKpSwcXwMV0QAfNC8bpq77rmwDqIAMcHAAB0AItQBHZqgbbGq4pm6HiSq7megjoyr7s6q7weqojoAeHmZ"+
  141. "gnAKWH%2B6qSSZmUcJk4%2FzCVtroKk5QVCUACMPgBJOAETsELCdC6aeDByojDS0jCH2DCKKzCLPwQGvy7w7vJH6yM%2BQmkTaiD"+
  142. "oUwCPfzDKpwAGIwQp6zJipCqgsyYjgmZhyyrilyrnWkJtFvLt8wQLeADF%2BCpoNoB5DgDSDAD1FzNSFAO2JzNd6DKrUAPikARJG"+
  143. "uyKDvIKruk49qyhfCyMTuzNXuzD0EKLSAEULqcTHoGGbqz%2BHqdBkAMgIANHaCh%2FvrIV1EOIryEFUCkNKG6afzBIezKTYiblN"+
  144. "zD5fCLL3rKM5DKJLDKIezJDq3DsTzLEw2zyYxdnnrRsEsCitAB80yvz9m291qd17mv3FmZ3%2F8JAydMu0E80gjxt0hwC%2BiqBc"+
  145. "brw7MLuxLYw0ZdvEL9zRORtmsLnWfwtnE7t3V7t0iQt0Kwt337txQxCAh6BgranA36oAYAtBV6oRm6oR3aTlehDhyNDrgqE6rruj"+
  146. "NswwXt0DkM0WAg0RStEJgMvK87wzV8w3btyvwwnGDAw6P8i2%2F9D30twyQQfjq7oCcQ1j4boRNa1kR71jPgAzCA2Cms2AyhCGlw"+
  147. "Cz9wB3dQDmOQ2qZt2kM91PEbv7MwC8T7BS1AvxMBvuJLvuYLjGPsBOzru%2B%2B7zfJr2xKRBAiapPTcpE%2BqmFMKCFUKlTSADV"+
  148. "mqoY%2F7pVZBAq4cADNRDCEAvxr%2FXdeD7QEfGAU8%2FMMyIJ64nMmO%2FcFRAIMcHd53fYCHrcalbbu2TNJ%2BLYEZvYP3m9yG"+
  149. "i7jN%2FdxXOt1bOgYumNES%2BNn3rRAjMALqoAwc%2Brqyu9qv%2B7qzK9sY%2FtodrAhqHRFZzNhO4MVdDMa8IMapS8a%2BbcZo"+
  150. "3MFr3MYTgQSWMLiROqmUOQCSagCcm6JaoA6fOgi3YADvirlWAd5MGAUzUQ3v28EMXQHv7cp4HQCl%2FYsJobqHkMqA3dDw7cqwjN"+
  151. "i0vMICQeVWrtEg2OTwveWy7MPJ6%2BUKAc9aALuzi9pjoAxXYAx0rgzGoAxfkOd6rufG8AVaTRHL3MwCDM3TPM3VTM3X%2F5zN2L"+
  152. "zNHtzNSi0RiVCYlMCtimnPdKyYCjAAd6wFlLCu6rDH74rQVtHkFTATRrzQIAyCWZ6EEH3md3C7U97dYU7DG73qNWrm9F0Oh6Dmqm"+
  153. "vSqkzrY27r8zjeH923uq7mCpEEos2ht5AG3kcPI8DG0i7t6Id%2B0v7Y%2F0oRPO3T6BrUrR27R93DxTu7jx4RAZsE25qhCrADz0"+
  154. "mZL7ADBoDO6hwC6tCufuvOTlEBrmzkcN3dJ03Dqp7lhb3DUD7RlowQvPC7HPzrfXiDwl6nJByAnh3SuJrwQrDwV44ODv%2FwOUzC"+
  155. "O%2BzqFN8QZ6AI0r6Iq3AGt9CIcrvyLO8DKX8LJ2%2FdEv8h2qRt2nA%2BBhTe2sQ7C7At27BL28QdEX1AxU7q1K4a1SyfpUiAt6"+
  156. "DaugEADH9%2BFWCQ3TSRyeWgyp2c5RGf16McAjo9EBfQ67POymTe0bjuw7W7wlYU9rIOu1ce8A%2Fv0Vye9qUMHw3%2B4BFO1KW9"+
  157. "2qU91Bj%2BAzzP8xve4RBBD4XAC9C8Bbp9vk5gBiee4u27uvA73JDc1i8aERpc5WmQ0S%2B48Xatg%2BWtwot9ENin8G6%2FynRd"+
  158. "9jbq8R%2BNwkCs9gRR%2Bhd%2F%2BrSu8apPj6zP5a9f9%2FDB5m5Ou6kt53R%2B53e%2B58bf51EvES2gxSX%2BxSP%2Bxc3b22"+
  159. "V8xmMwC2rMxloxA0R%2B0Db%2FwfYzoOSpTuRMCI0YeOYTLcQOUQyqe%2FGMLuaeb9dyf%2BY4vcJfP2frj%2FMMX%2BvhHf8gDR"+
  160. "BCQjgp9s%2FgQYQJFS5k2NDhw39JFKWZcedWmlX06I1o0dFjR0stQnokYYleNYgNW2CjkyDGICEdkMyYOWNGB5tIyu3kWe5OmgD0"+
  161. "WtFTlNKo0QQkoqD7EMDJUagHiyUQUjENCTAfKrDi58GrB378KjAlESBNuUMDo%2F67wOuVDCFjfgYgQeJDlK1cu34Fy4%2FV2A9g"+
  162. "yqb5UW6GjAS8LkBs%2B1aIT6BY7%2BYNy7fvX6aCzRY%2BnHjxWtChIZ5R5JHeqlVnbt3y0dr1ax%2Brb6V%2BJfqf%2FyUfM25p"+
  163. "4Z1GC2HCP4SnIW7WOHHkwovaZt78KK8QVe%2FQzYquwliyZu%2FMCJGY%2BYViThxDpmt36fXr6DIPvmNYRggziteCd5Jg0CGr5e"+
  164. "9aR68%2BMHv34JPPOQILNBAqRW75IY077hjjQbkavEM44WZZcJY0ZtFwuCpaWOVAEEMUcUQSSzTxRBQT4kidQ5QpZzjCJGzwhwl%"+
  165. "2FsNBCGzH8IQBLakvxRyCDFHJIIokkpQUtflhFuHIeVOYKY4xRRhljvrDySiyV%2BcKSW4r08kswwxRTTInScFHJoOgh4aOPQhqp"+
  166. "o5Lo4WJMOuu08048oSKtoxFOS0012AKVbZVbfMzzUEQTXf%2BrGC6esecaSK9BpA4uPlNUTBBeQAgbEC719FMQL7C0IUbquCYDCa"+
  167. "hQVVUJrqF0VFCHzNQgbLCJ9VZcj7qAixQsKOXXV6qB1SAz7EHVjiwe6aabR7LIwo577DFj2FxRzLTWarPV1qBdSzkCCiD2oGEPIH"+
  168. "BQY4iEis2Aikd%2BcYUaeKn55REloL1mzm1%2FBMHWfPsF9YIY%2FAECkCfeEODgN96gAYpSPuPFWCq6cSUITMRRwA9xNqmkGyWG"+
  169. "iZZaf0MWeWTGYsCBBoMJUBkXlfUR4I091BC1DgrYnViBFBoxqJhnxKmEXiU2SYFkoos2%2BqAUcABEAJVjIeaBB4hhmQCX99j%2F"+
  170. "ggt7JMjilyAQ0Tnda%2B5RQgldEDn6bLS3LeaIpQnAhZgd%2FNhiiwFweKBlAYC4pGaJxeGFoVfgyUKJbjAxcdc6Ho100krTdvzx"+
  171. "qGLY4w23H8AGpYO4UAMZqgkA5IUM7NAliDpAbgQRsbvhQDRRISr11FRXleAeV%2FGF%2FHbcEzriCaaJUWDYC0oZR5%2Bq78nimF"+
  172. "MMXUgNCYbphpqodu3111JSEFahC9SVAFllma0XWmlBzn38Oxl1NFJJX4XKDcpx4ebvhXgRRwB9CHiC3mOEdmiLDJyH3qgLVKMU%2"+
  173. "FgCXuMhlLjOkC2Jbm1i8ftGNZ9HOduSjYJBa95DXoWpVrKqd%2BBJC%2F4PeKaAhwRuePt5wjCx04xQW%2BEcKXqCAgiCkDlo7Rh"+
  174. "AA%2BIojDKxgB3uZwqBAis9gLXQSo5g4%2FKCAjG1sbPcwWwWdeDhe%2BQpY11OI9ri3rGZFMHwpGR4BiKEG7JkBJZJjmgBcoQQM"+
  175. "VEJawvjDH4gQw388TGu%2FWB1E6GCBk6XMbSqj2stiNrOaPWJifkjBZxrRs5%2BNTX9PZOSBuvWtcI2rXOdS4Lra9S4H0steE2xI"+
  176. "F7%2BYkAuoIRNEGIQF9sA0XARhcEqAxwDa%2BAdhXIJbz6CAHfqWkqS1jQBOg5rU8BYzrM0xCAOgQxXDNrayNVKZzgGYwAhmMIT5"+
  177. "sGEGedi6iFixi%2F8lkWMes4cHDQKI%2Br3BD6OKARthqYZTehETlRhbFjZRgD8UAAQJbEQKriHMLUCkEX5om9O4gQ01bAEbduNj"+
  178. "3kxlM3Fw8iAxEBzhDFci8ykOUozz5jL%2FZTKUMW1leIOZzC5AM5sFAWdf45nPgLZIhyCDeLgAwtAOsgV4xlNp9UPGAOBBr2FQ4R"+
  179. "TCIMIWzJCCSVCAhhQr5kOeMTl94MJyCczc5qimj3H4IXQ1LF1DUOe8U7CuohmMnew6aNFt5VKjvIza1Kp2taxtrWtfQ4gZjkm2Jj"+
  180. "oEB8Sz3xFsF4NMxBMEk3ObG2Chhk0wK6e0EwEFTkUFBnIgBhX1wxPqRwxswFH%2FKnUYRx%2F3cI9h6OIUMXAI8%2FwXvShSL1jU"+
  181. "smKysOgs8E0LrNVaW9veFre51e1ufdQb31zhN8A1tHAQeUZliTcOf7j0H4N4ARH24Fgv2goW9tjEA7%2B3qmRxjQNbkGxDgNA%2B"+
  182. "IjCCIbzAAf30cb%2FjbUJ5CnmG1rphQwBywVsFlKS50NVWiF0yXvLSpARXmyvJtc9ymDOI5jhXv8%2BFbnRVXcjpUldHh1wAByxz"+
  183. "2Tig4A81kMIROURuLLjB1GIAVl7H4PAx3DUxTFDXKCBM7ggpG05dEO4Uz2jhC%2BH30qmit2TO3GE0FzbNOELsmhbDmMa2%2BbGR"+
  184. "iaoY1TBDDC5BtwHUSskD%2F9jCIJ6RAjNwoRgVZQx4uFCNFLziGUdWwwCSrORaeTmgTn4FlLnAiylDZXch5MWVs7zlLfjhAW1wGT"+
  185. "KMdwwOKGDMzyhzlNHs2ecxJgXcqJ%2FL3gCIcdFgHm%2BoXyyQIUuEvAIRmOBAECwdBA5gAhuFPIonwQhKMV7gFenExS%2BQqQYu"+
  186. "mPONUrEHYumYEoDlUaN77GNHARnSke4MkScVbr8CmAK6KeAFhdgBETIBAmSDIBOj3EEhFADQS6SgcaBhVApisIUOYEPYwy72spOd"+
  187. "7GUTYQfNfiE2mBztaqQZIuzr6yAGkWQFKKAQxCYCMnBBvPspoYbMJvezmfyMAfQv0Ix5Bv83pkYAHs46Fpm4xLAYkYJB2AMRiFDD"+
  188. "IFJQXYiMo3efPggdREnKUdMvlUBr5SuFwdl%2F0AGkt4SIWJv2tLL%2BEq3C9JoxxQbXE5nhBcXegQL4C6JimOEZAhU2sb39bXAz"+
  189. "29nmHsQrFJrgarziyPB%2Bwc67fWykZ13Z4t5B1f29hUuMNsEkjkUhtF31cRsb68Qg3gkJF4RkCwMERJh3uf1wDzvUEOMLuUAK5H"+
  190. "zwPcaiADhYrEPoUIxisDUqXRRnUQ3yCnMKoxQkJgYmbu5OeMpzaDy7p1rz%2BZDWohJucqMbQWm7t4jd9sUJCdzgdluiLWA92URA"+
  191. "%2BYG48Ip3F73bWs8618v%2FvYUYqPYhAcQ93c5Ob2PzXvlbH3chyn1usYOyGjHQuBedj3zZI%2FsBInfF4H6h7FcWIBPNf4E45s"+
  192. "iB6D%2BkETF4QSaEEQv4gwAHz1i9iPZAPH24gakGGUBMBw9OAqipTcApneKpJ0sBmhEm3HqI%2FKqcy0EI%2F%2BqcABMd0jEd1C"+
  193. "EcBBORFMi%2B2aMyqLi9YOO25Fu%2BbyMCuvu9S6Aihgi6a1ODsxPBESRBrQs3cnshLwM%2BM5AsFtwC5CIGuiu25BOGAigAuau%"+
  194. "2BVOIYJeAAc9IrpYMHW3KFngq%2BvaOTuaqfJ%2FAD20kBEBhCYeCrWHADzQmsR8ipVjEsCliX43EFDniGKUSI%2FzXzot%2FBHu"+
  195. "EhHgG4rONJns5qnoEbkRdQPn4hkL67BHibtxiUQeZzPgVgshh4Om4RukHINmyoOuwzROUbJXFDxGcLqOD7jOy5tg4oIVwYPxM8tm"+
  196. "jwPxCovlgQBnZSgiwIAlNkNngQphfQROHDk0HwLX0AhCPYvy0oNiDoQeVirgdCLejSBelSgzZECHZzn%2Fo7CPmhH%2FvBH5RaCP"+
  197. "75LBLhwG%2FbAQPhgmsbAN0rREM0QUSEtv1TCF6ZuhdMO2ykxG%2Fjt3E8N2nrrxRAx6Kjt3VkR2SzxH5LRLCLxzwphgWjQweDsF"+
  198. "JQgyNYB97ZpQvbGQ37BQ7TBQ9zF4rZAsd7CMoTIf%2BGIKG2QyEVYiEXgqGEmKHjkTERWT4i2MZujER7xEdlG7dyU4NLKMeEuL1B"+
  199. "MD7d2z2WzDpLrLuvCzt8uT165DaczMl2vMR3BDunO5S%2BAwIGexlEExdAoJxderSEiIFJq7RLy7RN88B%2F8LQwGqN0MiM0UiMz"+
  200. "UDU4kqOtycAQIQLl08YCKYZXMD4RvEfeUzobBDtGjKMUGDqqm0u6NEQa5Elz24IniyFe2EublMSrI8qibDZn%2B7rCRJQLKDizSr"+
  201. "j6wYVYAAECQ4hiQMCJQ4QBaLqK5KLH4jhu%2BbhSIjVVGpuSa6NYmqVaYjk%2B9MMDqYahOz4TxEel8zeLE59dkbrEJLb%2FoSRK"+
  202. "fvO6wfTJg%2FjNoBROcNRNd3w%2BpMxLOum7vwO8XSIGHOC0EbqARlA8qABAcSKnyEOn3lmndnonvaIne8KnEtlArSMCrgQgoXPB"+
  203. "ostNwLzEF2C6ixs%2BXuHLdFxMlqTBroPOJ%2BMk6fHPbVPHv6zL4iRQf7wUXniG9iMG%2BJOnQtgCWDARlUqqlkIImGqj%2F6Mp"+
  204. "myLAneqpnwqqocKE0QyR2EM62gsR4gvBlTRJcXvJZ8jB9LK24LTHBU06o3RQFQQlXknJegRQGRRQ4%2Fw364nPCqrCurqrvJInvs"+
  205. "IFvwIswaICwjIsNHQXxWLS0DADBSg2Z5PO5gigl0gytFM7pNtJ%2FxTcz0X5qaGjT8VUO2xctgb9uqbD0ZQIOsSUU7%2BsUySFzj"+
  206. "xNxtXqracCLuEiLuMCxn9YrubiGDuwA%2BhqF0wTsSDbQTRFPhN0yUwMu3QrUy4oMgSdUxMsVccU1BiQNnUDLVFNTBgs1R%2FF01"+
  207. "SVMi9lJAVryoGMsAn7xUZbyH%2FIsE3YsA77sIkk1Ps6VrDqO0KrtadUNEabSkg7CEmjtEvDNE3TTmTNVm1lC8osKB7io4VrOIV4"+
  208. "uIibuIpz021NV2SlzgcAPJYRPMLzoMNLPHWt121dv%2FZ7v%2Fibv2a0V381kEYgAwhgAzaAgH9tCFFoAIRAAVE42NUKWDaYgDlY"+
  209. "gzXgBP8RcFiGSFiDQAEUwNhluoCBnQNOoFhOKIM5WAKPXYiE5diUbaRGWAIRKAOSNVk20JkLYASc9U4TCdiBZQMyEBlR6NiWfaJG"+
  210. "YAORJdk5qNl%2FYAQL%2BARyMAET0AELGAKdPRCInYAyGFlOmIOh7Vo6KdqjXYMyEAGDbQQLKAIXEIN6AAAAEAN8KAId0C4RCdmR"+
  211. "rViTRVmvzVsvuYAlCNsymAAI6E4dcAEAiAPDPdx3MId8IAdGqFWHeNmYndmTtVmcZYSq1VvMFREyEIG6HVuDZQRyEIN3OFzSNdx3"+
  212. "EIO4BVijrdutrdmbbdqnjdqpvVwQ4VmC%2FdnM%2FdeildmKPVm20AH%2F0TXcJgCAeqiHcRiHXTBdF2AhAgHbziXb7jzbtF3btn"+
  213. "3buHXclLjarO3d3PXXCyCDiaXYMlBaC3CBJjDceugCEyAHfyiBFkAG5I0DczAB2o2Kvu1cwF1aHcAHABhd0k1cfDABuQURupVcvO"+
  214. "3ebbHdgi2Rj4IGkhWBn2WEIgCAXXgHfCCHIRgCRoCOH%2FgARYhffHgv5thc1gXc7gxd%2Fy1d00XdAW5emOXdkp1ctqjc%2BkVg"+
  215. "PLna8LXYEoGFZHDgkmWDxfgE0bXgT9CuYuABb%2BABdQiFKYAB5DUH5rWN3UXaJRAV4PVfSCDeepiH%2BI2Dd1he1Q3b1m2E13Va"+
  216. "qJVaqrXh%2F0QB2dU14BLhgV5A2p9thCIwhzjAh084CFjwhhqQhUZQBixAA0XYhV2IYtGAgPAVW%2FI1X%2FRVXxPwhzN43%2Fid"+
  217. "3xaW4jYWW%2Bg1W7RVW7Z1W7htXDW%2B4ReWXKW92ZwFEW%2BI44rlA4Mo3yaoBx34mgsIBGno43%2BQASZAgwoYhzgwAeZoBFlw"+
  218. "4IqF4KWdYC%2B%2BYAvAWQ72YBAWYea4X%2FHNX0bY3%2F4tXQAW4FC2E%2BdFWqVlWjOW3TQmEGnQAPFlA4Mgh3qAhCIY4AuQhR"+
  219. "qogTr4hwQIBTRAA2HYBR1gDh6mWLFdAp35hHx4ByI2YiRWYiZ24l2AYucgYZI14UZAYRVGXBbO5v8x2WZMLlvp5eTq%2FWQCqQFy"+
  220. "Llm8reN8%2BAROhIVFQAVpCAR5PoB6HmRDBo1AIOfeNdhiqOM7JmmDIAM%2BloViAGRBfoI4eGnQmOLereILuGLDzeLi5eLk9WIw"+
  221. "pmgw4Vu%2FdejBLVxrVlzGxd6D8OhRUOR%2FGIIuAIAiEOFikAUVQAVv0Bl1yGU0gIF5GK%2B1SGWSZeV%2FKF9IgGU4omVbxmVd"+
  222. "Rl5fZg5E5ufx1RlXbmSohWRJTl5KhuovYeiLXlqIjmgvnmjm0ABCiGNOYGUL6AIxYNyD4AFpQAVbvgAhcIB6hgEgcGbQGOdyNggd"+
  223. "qIcmWOeDAOZ3lgV5pmd7xudfDuYHjmD%2FY7ZgckjmDQ6BDv7g5A1hxi4Sot5alD3q4I2D4S3e423qLxbqtagBQtCAUdhaMtjsLr"+
  224. "CAxZjlRSAElFZpXgCGKWjpI6jk65bpMghpxcVpgzBplP7ZeU5vl9bnZBBsf%2F4HgBZoPCboJF7iJn5i6w6ZCzi8QOABHpAFBsAD"+
  225. "POBYCccDb2AAWeCBQICFVWWdYoAFWFjwBpcFb%2FAGCJdwE6dwBrBwBs9wDa9VIYMFHkjkMkgGEjeAdYAEw6UBIKiYF6CECBCG%2"+
  226. "BG0CT5i20Bjvyx6F8SWDTyjiRuWBkyaEGmAAg5ABVUADQ0ADWgAi5kAF7f7hrw5r2Z5vd0aFRViMtT7t%2F3lQ7bWIaaSlaZvG48"+
  227. "%2FQ6T7u6UBWBKA%2B8H4phgV%2FcC%2BoARVwBl%2BwAVEY9EH3BV9QgQbwAhTAgwuHBcft8AZ%2FcBTo8wb4c0MXdEIfdBuwAV"+
  228. "%2FIARVQgRpQdDxQ8QznSkh38GToB4qFhl5QgRywgXN4guR9gFrIhk3vdHnoAeOOA01gAAzf8KOQBVQg717ohzngg0BI9kBggNAm"+
  229. "75T%2BByf4gkCu51v4udDAbszmA7PlbM9mC9CGctv%2Bhysw7bYGApmMa1XO7FZ2gbvWgbyuZdvm613ehb%2F%2BkUCoAUB3Bi9Q"+
  230. "aRGhg0AQ8Umv9BwI9EwveE53hgaogUX39Qw9Cj1vcBKf9P8aqHRA3%2FSCv3hRuHVPT3hR94YLD4RkfHgRj3AvkOk16AdCEPRaeI"+
  231. "BZzwZC3%2FRN74G2Rl5IkAYK%2F3hjTQhaJgSe14BeSIZkWIRFqGWeB%2FeUE4JcvnIHEAKtNgjs7vI56O4u%2BG5uCYTxLu84Qm"+
  232. "%2F1Zu%2BoYG2v%2FofXju0Bpm1bnud6vud8%2FhEGwHRC94VwPxAY5%2FOJr3iMN%2FhOR3RF9%2FhAqKhZhniSr3RXD3S2r3uD"+
  233. "53RPB%2FWO%2F3jgWfCRD3gVkGlWx%2FRYj4MHcPmXJ3hrkPlB3oVwSHwM58p2xu6iRwXSJ%2F2ir4G0%2Fgd1OID0RoMpmIUEaP"+
  234. "p%2FuPpeQPKCXXKCfnLUn3L%2FtkaDFrCAnHcIjxZf%2BB5pS6FvabBvJhbkQv4RHhh8Qs%2BB4D8KGI94P6d7wi%2F4uw91FNB7"+
  235. "ef13Sad0Syf47Cd8w3cGROf%2BUZcFkEcIf3dwkp94V1fleNCAQc%2BGc6D8WjD4lAcIUaIMoakwLs60BjW8oMDDQFagYv8mUqxo"+
  236. "kcwiFYQ2cuxYwxusC06AYUFjkomMCxZXsmQpCxUhVBr6zeETCFagQAykwUQlLdA%2FJ19KmrxlpiVSljJHcSrD5t%2BQLgCKMKII"+
  237. "S1YNVItUqmNiEsa8IUnHkmXZQCDatF7Ksv13gQcDPCi8NFCRw0bavHpF2fDlTMVCh7JgIS0WSBYDb3Pp%2F6pwlsMX3r2S9fbN8b"+
  238. "eBFy94BEecaBix4sx1nRHSsGZNPEICaz15ci6vDUKRRVkzKWzXNMCZNz%2FsXPZCIG88O8ZUIY0BmX8JqhBF42AGr7ZjYUnjqKFX"+
  239. "smSLFkmrwbEGD7cyvJrEMkiidJbee63hxKeRhS5iyFV1y6N6DVkTrzj4CuRoegFW5MtkzgiI1FVxeVFDY5BNJpkvOaiAGQreQIQg"+
  240. "D7J4I9eCozn4IIgCVTbhQg1ZyANh%2F8CS4YZz1VBXDneFGKIvfjmjEEN4nJjibxBoKE13QC7CAA%2BN%2FKPOLM058IUTB7LUCA"+
  241. "PecYQKlVR%2Bx0BIIRwwBRqGTAGMEyo5Of%2BRdxowNQcZ8XVhwUTALRLTT%2F%2FwAgyXaChyRH1jSvegL3palCAeCzY424yiRD"+
  242. "ghQxYC1VIgcLVIVwOOQUZoobD5pYJuJsrCw6KNJsZhA5E%2BRmmlafX1V6Y6brooWxdcgBMPsXJKhqvKMFEnGkyMEaafFcHijZXE"+
  243. "fecNrSM1hxJ6er6JSi%2BjOAXBJ59UVQwPi8D00UTjmYRGCxYk2ytZBEpmILgqwiXXi858WOmlJSqKIWIcvtiguKXqFeFlJQqG4k"+
  244. "Qrxuuih%2Bvai1aEEuLY0EP8CtjIBY0YycsVt247RShXRFeuZ2R4kxVxqBiH5QXLKanMxX6%2BFNNMNd2U0049xSn%2FVHNGYVzW"+
  245. "WZKhMPNhocFY74w2WKYQwjyIydKrLMq7sw2kVjpiqt4QGVKb%2Fj4676gDm3rowTo%2BPbST4%2BE6BRPKJMA1xq%2F%2BGKQ0i3"+
  246. "gDQUhIKrkr2U5SZx122nEnJSHgiUceGuZ9O3NLPCidQ9x60pHzXDsX6vONNQTNY0t0SH30oEqDmHSMJOaYMNQUSW40wI3dZfmDmB"+
  247. "usL%2BeFB3gFUQ4AEwIvdAC%2BUiOwynpTrRKb5IAyTZYLJd4xVQnTRjWArCWXXoKp%2BuwUMUCpL%2FoBDty5gqpLukBYJwqR7G"+
  248. "V9%2Fm%2BHlS9%2BKqaor9r9St%2FHFfqo2JtKfqoJB4J%2B8%2FU%2F6bBKEDPR%2FxzFMnDB%2FIF%2BFSxh5Y1YIiHJtpBlv6"+
  249. "QEwgvqUoEXIAe4w50LBfOalKUk5K5NSZAtsALfvNSFQcqMKGsWgkgHW%2FLB9YVPhEnbS9Kwpq8T3mSBNhxLCHSHhimowhgJoF%2"+
  250. "B5iqExjnXEY8cJici2xbuS3bCJSXnVYRSUrscUDFEVItL8AEiWC0iuURqinGOoiC%2FNmYhInKKDFonWxQyxMIQxqtEYTWjGLDqx"+
  251. "jhZh3e5e5wQmTu8qwkGb2th2AbcpEW52PCQiE6nIRTLykLVr1O1CcgFb4Yp3vmskJjOpyU1yMpMOY5icIsa%2FUPgvjZ08JSpTqc"+
  252. "pVtiSHX%2BvhD1kpy1nSsv%2BWmsSjc%2FTIR1vyspebVMknipCPesyjmJpwgQksYCRfnjICJaiIHiLAzGlSs1VmIEUKTFAPSHCz"+
  253. "m9zMh7SWWU1MOnMietDDONOpTs%2BQogQrKMElyLFNb3KzHiaYxCSGYMp11s%2BZ5%2BQnQJlZjCT0gRYG1QYpdKAJekKiHuRYQC"+
  254. "4WMARxBrSOEUBnRTM6y0YQ1KAe7QMpSpEPetpzAZKQhETrB0xhEtOYyFSmRmMqU01egBQF9ehHk2CBfMyjm%2FVwhElNgVKKgusC"+
  255. "18zmPBkKTkYQdaZOfeoCzVACnFK1BNWwgAt62tCHSsIUpsjFJPbJlmK0853xTKo37YlPfUK1rW7%2FLVsSWEDVnBbjAvHpqUOD6l"+
  256. "V4iAVcA70pLRCqUIbmNaITfStiExugamhjrgYFKXroYIEizCOvXfWqJCYBLo4C9rEhHWlaTWBSlPZVsaY9LUtIIde5IpSiFxiCME"+
  257. "V72b32qqadzelOtdpQoHZ1qM1b6TCLCYBjJvNvqD1um%2F4RzOC6NJlN7VUi5sqCEsTAuEbVwSf06tVc9EqqjjWoVbGqVctuN6wz"+
  258. "MyopXqFNhnJTE59wGHKRi16kshcSS33umBqL0%2BnGAL8NY4R2heqnC8T1u31IQl3vulXt8hVjZHVnCUghT%2FaqdRIQEGt8K%2F"+
  259. "pgs06YsPfMJ4bHsoL9JiIFWmxE%2F4BN4SfGGpgUkZ1sZbnqVaFqdrMdPWhCF0pS0Ro2xBlW5189Klgdp%2FWhhsVvgFZLCxYkwg"+
  260. "xIpgiKZ%2BtVP6nWsa2tyGtjG2B4%2BPXGQv4sSXlL2h%2B7lbNUBalIdzzalPZqtSvQQwiUoQ6yRHnGU9ZTdKnKX%2BuaAbsB5u"+
  261. "6AberYA%2BfWp7IV6gLyRGaZ2nbQOuWpT3mL6Ce3Ra5vziEWDkHnFPtJvx7lr38bAWApS6K7U%2F1ueLNaT0l%2FtcaLlql3UX1V"+
  262. "VS%2F4smD18Ur6sIIk5NAQmd60lFWspxF%2FusQn5rSeCKzkMyPYrl3Aq4z3WtpXV1TZBm62gskrbT%2FpQQ0ycIAhfP%2Bt6bHU"+
  263. "ecal1pOSmexkYNtZ2GNisZW3sExnA%2BCn2s0stTUK77lCdiKSpay2aewnRhwCC%2BH29RXIQoZJdKLhDecyug16aTmz285UXvaX"+
  264. "yZYCW%2BTj0DOGOKMvUIxqmOEVpCBFEpJwzpWnnBQxMEM1eFHXARejGFwg%2BSticPKUr7znemi5y18Bcy7UHNduISvGH5sIn%2B"+
  265. "shEXDQRDvaIWV4uMroQWHCwcWNk5xwves54UEdwh72aR%2FI0nDe37iTUu4Z%2BynP%2By3BM547BD9LGdAxtbnJz1kCbeiaBRH4"+
  266. "%2B99Z0Ic%2BlGDpSSCFGXiBa1dxwQw6V3kiSrD3vvsd8IFnwQr6oA3%2FyRs%2B6NWY%2BVgbH4NT65kFlbd8BJbcByC0OxcxeM"+
  267. "Xncc2FUGQ903gIFe5zr3vco8C4AdI1r7H%2Ba3IjO796LsErmCfqAJ%2FbjlLVdR8SUY36FcPxkJ%2F8Ck6P%2BghgnvCdf8Uuk4"+
  268. "L3nTdd8nzPvva3D%2Fjua2Pzhk%2FC64kufi6YHOV6IDZV1W95g7K%2B3T%2BH%2FyvIn3RcgAwYXLhlWgNYQyREQjM0wwI%2BIA"+
  269. "QqoDWgABAJSLd92wGmHVKsnYAN2375wStQGge6mxOpFuqxwCvMDi%2FknR5IXt%2Fpn%2BWZnuYV3s%2FFQDWk0QVUQ%2F0lQSJE"+
  270. "Xvu9IAzqH%2Fu53zmdHOzFTQ7uYA%2BSHk4F%2FyHg0cIetJsp0KAeGOENSgcsAEOXIFwCNqAXfiEYRoIKCM3AFdzBYUHCjcXCOd"+
  271. "zD%2BUm6SV9ZjKDzpd%2FfrYDVtcQKolzklQAQOmEdzuDSndz0iZ%2Fj2d8Snl%2F2%2BaEQCh4gft%2FnVUT1PV7T%2BeBcKWLq"+
  272. "RWG7uZ8j%2Bl5LhEwo9ICvMUACMiAYlmIkOMMVVKCAOAHWneEhbJ3XeR3YiV0dkJ2AuBmcURzxBZsdlQAMYlRRpYAh7l0iWiL3ZZ"+
  273. "429GAVgl9h6KAh%2BuDgmZ4xqp8MAuI5HZ4NosfImRzkQWMTRoAlKCItuIEUWuPPudwjtoU6hELfXEEXlmIYOgNIgMvs1d4h3P%2"+
  274. "Fe7uUj73GidJgdpmlgS8hhHdEh4PUBxuRh%2BZ0fQQYhMtIg%2FA0iS9Af%2Be2hQk6jECIjEbacGXDBREjkMGLfQk7jEDrk4W3k"+
  275. "ACbALDCBN7wjPDagNagAA6jigRCgAYrbKJIiBOakBFKgn%2BiaGvTa8Kld8TURQ2IMFzxeD1akSFpjSSJFHqpcQg5eMVrkCTYkFR"+
  276. "ohR8oJN56TDyolVcagVS5dFaZXVrYFcCRAArBkKVqDL3iBOsik3GjhAbqjNbSkKY7hHU6EPyTBIbQiGpLFqNlZ8zVRSBpkEG2lC0"+
  277. "6lJTZkINpgYRRiN4JkSC5mWJ4jKcScZ0DmJErmV1reClTm4V3%2FZviVRTGIoi%2FUpRdGgg04gxfIABpNTwJ8YiiOol2mJirCpX"+
  278. "TwghlmIJ0xHBuCXBP5ov4BY21VQwxc3%2FmJZOY5ZHoxzwVIJM91ZR9%2BJftxnmUGIEUk4clx5d55JXWCJlYy0zq2o1q25CnOY6"+
  279. "9wQSvOJSzGItfNotjZYlQR5ApMj3Ei52daIua1Xw8e3ivwY5vwgmYeIuV9p%2BZlJPyZASOQjYBKIkUWKFWO5Pu93IIyU8ik5Eqi"+
  280. "pl2%2BZEyWCy%2FQnivioz7mIx6k0AKZYAymoH1yY1JOJzWuQEZeJoBimTN%2BpHc6oemB58ul40qM3DXZqIsGYY7OIHPu6IzK0l"+
  281. "mmpYau%2F2VbvmXZFOAZ0iUDTmlOPqAEegFu1k81JIKuJeNoFpUzQl77oV9VMuXLHSlLbONEQiOZUmN1Mmd6KSgOMkKNRqZCLuSQ"+
  282. "bh6cCl2FrlNpNsBpfqFqsqZr5iVLzMkWYoEoKmBtOqADqsCcOdUFNKj9uaCufSZTIt4VjgnjhamdSuVnZh6RiqURwhzoDeBzeupm"+
  283. "8t2lYuqoFmGcxl6%2BCQhwsCMXLmltOgMDGOqs9iq1eWLfLGqjOqCuXpKvHiuy%2FgYPpOQhlOdawmSWJqu0JqtIJAAPOKsXsqVb"+
  284. "Ruu0diuy0oFpLqk1WANrysJreiu6tkUmZMJErGu6sgUGZEBFiAAGvP%2FrqwnDH7yAAvyBMNhrWcTrRIiACPjrou3AH4BAJvzBDh"+
  285. "AsWcSrwDIsmZnBHxRAAfzBFhQCxS4sCBTAPxQACNiQu%2F5DyGoUBgwsxJIZvk7sFvwBy%2F7BIFTsP0ysDeGrvvLryd7sLBnsHx"+
  286. "DBvhJBwioAzMrsAhkswioszh6tKqUAyw7Avq7rHwDtH8Qsxy6Q0lKsxe4AxRbCP2xsx34s0n5tIrHsPzTtzwbt1C5QyhbAJbSsy5"+
  287. "otyLKryMIt2CKt2JLt07qtDRUCy%2FLsH2QCEdxt1Aqt%2FdDsvvbr3KpTyI7sItXtwYIA4O7r2drPKyyt3UKt1NoQ0Sbswh5uOh"+
  288. "GuzTb%2FktgqbcuaQcoK7gIxrtNaruk2T9VW7BZgbQFoLdd6LOfWUuYabSOF7ACs6wD8w%2B6%2BQCZsrg2hbtkGbuTWT9qubcu%"+
  289. "2BrPHWLi217tVm7dZyLO26FeOCgONCLeTekN7ubNP%2Breoer%2FOqUvKyLfNerv3oQBG4APu2r%2Fu%2BL%2FsWgQnIZ7mIrcS2"+
  290. "bAqUrvjOzuT%2BAdP2bfGi7%2FiyUvfyrd8CrgDPDgBYAQM3sAM%2FsBXIgRw0AQCYQxPoQP3oLu%2F6biYAr%2FCebtRWLt4O8C"+
  291. "r17%2F%2Bm7ggDThdAMAtD8AQDgBg0wUwRLwKvLgmjEg2Hb%2F0ssAlUhAs88D%2BYAAtPcBPQ74GoL%2Fwm%2F7H7yq8R98r1Zm"+
  292. "%2FFbu8Nr1IOp%2FDMmIMVdEEPD4EJiAEQC3ELy0EPg8sCt%2FAQv7AFY3Dz2C%2Fb5m%2FL7u8Ub9ITP64Nl4sDB3EEm8MEY3EQ"+
  293. "NwEW5%2FEfW8EY%2B8kKm7EZv3AMZzDc7m4m9O7vBq9iOQwZQMASsAEfTMAECKwmTwAf8MESLAEZkAEo%2BYkkQwAlV%2FIlY7Im"+
  294. "rzIm8wEbfLIpi%2FIoL0wjTDIlswHLTsD9sqwbs2wBuDIsQ4As5%2BUdC7EL%2FIM59LAVQMVEuIAcqLEOMHAXkLEg%2B%2FAXu%"+
  295. "2FAEv0MT42wtL8ElU0AGZAAV2IESYIA5m%2FMw2IEEZAAFiMAEsIEwO0ktU%2F%2FyJYsABYCzBIzzMJTzOZuzEiiBHVCBBKxzO3"+
  296. "PyK4uyWM2zN2fyPWfAutrBMDDyAGDAI%2B%2BAQBO0OwMzQh9IMVvBMSfzPyyzBeBDEJvDPxRBESCzR4MLFmsxVHTxNYfxIPcKEi"+
  297. "uxEjPxIpGBOAc0BSRH8zQCBFiyPWdAPg9DPx81BgA0FbCzO78ypVnEBZABKjN0OOczOfMzUh91Ogt0OBe0Rj9ZVE%2F1UBP1OP9z"+
  298. "ViP1Vq8zUxs0KD%2F1SnT0RyszHgfxMeNDSmPxMfdKR7%2BDHvvxMpuAXwNyA8%2B0npSxITuwBFNwGicSH2A1Oi%2FB7Ej1N1PA"+
  299. "QJPzWfezEgwDV7ezJ1%2F%2F2BZJtSVPQEOT9T5f9mUrtVp79UEjIWhPdlXXtE3DLxMHdGpn9GpLB1wjs1wLMV1XBF6DS26D9DL3"+
  300. "lTNDszSDSyEftgtTcCIfEgQ49jnbgVtLRyMs9D1bNXSbtmZjtCvTitrRM0Pjsz5nt2ljdlqzs1cvAQRQFFAvtD2Lt2ErdwTvcRqf"+
  301. "9z1ntHpPd0g3MB7HdUjPtQnUtTno8UrrNX8bs27%2F90iX9EnfdYH7CQ9bc0c%2FcGJr8yFlwGWbbFFVMlVLAESX91ErdVdzMihv"+
  302. "IHiLtnhTQWmD%2BGlr9mZTQCurt5i0dyo3dD4nt3w3MCI3QWZTwYvHuGeXBTuwgxWwQxCz%2F4N%2FG7kJKLkY%2FAMAfDQ7pLSB"+
  303. "M3B%2FJ%2Fhf%2F3VdO3he%2B0lLbzFMT%2FgQE%2FYNGfVZUwHGMII3CyxZWzaLn%2FN2M3V3b6BYg%2FOak3mbn%2FV5r7VGT0"+
  304. "R1h%2FZY53OEU8QPg7mOZ%2FMQ5Llql3hZxMGQKzk7kHQRiIWRRwWDmwAGNwE7iDlHH%2FhKCzeAb7lKg%2FqY7HVf8zFg%2F7Ec"+
  305. "DPhgH5Jp2wHGSLZoh%2FM437mbb3ZT%2BzRLtDaKy3pZ0zqe0zZGs3V96Ppo%2B3iXv7QXEzqFmwBqBzswK1pSQIIghIGSC8I8QI"+
  306. "VYCIJyiYUmCIKUdwE7hIEa%2B0lw7zaW%2FwM%2BDLgcPLielPt%2FE%2FczT%2F9ENGfxIdk5Upv577g3ZXs4ebe6rXsyrq8EI4"+
  307. "D3n4%2B3r6M1baO3ba%2F3RAy8vlc1FZD6Hv91YKd6IJuAfas2w5eFJoTBtIcByIeBAIR7yFP7LoS8AIBCyJcLkQ%2F5kSf5kQdx"+
  308. "kz85Mkc5cHO6f4s0SZuASaN0qF94hs%2BMVHe4itN6Oge7UyNFWPs5nWP3wfczotv2EuTJ0tdz0%2Ff606Nzwuv5K0N7UuhAyLdB"+
  309. "yY99GIj92Iu9JpQLo7v8kkO6pEPFNPN8EGOwOWT6zVM5gns6bwc4umu5c5O3dM9MLQu1eNu7aQP0QN%2FzOy%2FBU5PBEDA9xH%2"+
  310. "F400e9Qa832Tg%2B5Nd51lP%2FvitbvnQ4AiS8QRuMPumXvumPvgA8QdqXCyRQu7YvOSRg%2Bz9ouwVwu7dPRBd4%2FLi3O85b%2"+
  311. "Baf7Nrs7UWNrNWRPD6yLN5tf9tGvtXp7fUBO8sNr%2Fp2ntbOzwRAEOe1Av9VHvuGXN%2BdbP%2FbzUseTPSgIwMeDPDucPMiX%2"+
  312. "F8fbce%2Fr%2FbmnO4GLuhNBAGWrc0%2Fbz9J3%2BFUDBAaBApUMoyIhAwURfNhAYPQPYkSJEyUyIrNkCZ8JIihQyCCBip1hSpQM"+
  313. "NEnSzsEMCUVMYLgEQiOKM%2F9ZxKiRo0eQIkmaHIhSJUuXbGDKpHkUaVKlS2nqaBMG6tMwT6VOtQoVaxhNTJeys8KO%2F90%2FE%"+
  314. "2Bxc%2FDNn4l%2FYsWLF%2FANQ1hy7Ilzp1rV7F%2BKFRhAyTugoQYIdwSkRKnxJxiheiI3I8GWDs%2BNHKiEHT0Yo9CUExInpMn"+
  315. "YMWefkwSmDKhwKc7Ni1auP6pj3pk1s2bNpxxbwZCvriHHAqmWH71%2BRIWn%2FDeki1pxYHWbZodX9HHp06dOpV7d%2BHTtXSGHY"+
  316. "CRLLDlLx4d4tDNckaO6%2FLmEELc%2F%2BHn58%2BfPp15euKStWUAIEZWW3Sz%2F%2BoLKPwAINPBDBBO1yCiupqGrwqvxyU5DC"+
  317. "Ci28EEPdXIOttg5lu23CDEUckUSKinFiEAMMoGSEEaS44YYNvpnxmw1s9OGCEnU04v8Aib4wQscghZyumhNoZAZJZvJAo4ceppjC"+
  318. "iCnAKESKEQYZckQeIfriCyy9%2FNKuCzrYIApwjDgTzTTRxAIZZArQghcwL%2BSRSzntvNNEJGJMIxQz1fzTCEsEEMaSLXKMrphq"+
  319. "UlyxxRdjpHHGG%2FGEyIguJ71UTiQ2kEKBQiihJIoeAE3zg1hweZOL6Jww8kgk82jSSSinaIVKKzG9FVchzdhghAGkiJQZUUdFUx"+
  320. "hchNmmg0NZu0AIMh0YNk023YQz12qttXCLbwYY4ZsbTmDCT2iN%2BCCVSvahxAzditFzAy1UCRdaQYWRQohr7b2XQB82wGabbyhB"+
  321. "opVn%2FwSHYAcINmL%2FmnhOQVZZvC7QlFMtPg1V3ChiIaaAVWCRLtFFWXQRRhkhlRTfku%2FU1IARbqBECEpCEbhgJphQRZUDDg"+
  322. "AXi16g2eeEFFYz4wYpfAVWWGgLIODYZKFbFdIkX23yyShprfJKk632MoWgdzhhFgVOOKGVUMFhogpggJnlbGAOeDbhU%2FZBgg7V"+
  323. "OvimAyM3%2BBbeYck1F93nmHVW3DOlfTPOqw2v60SPGw155BsbxmtdGA1QQIoNbtjmBmaMcOCAWT5NQwu0mTACi1PuiWYEnxXTV4"+
  324. "F%2BKZkhYEAJLtjMthlmLfJ23w080EHpPRz4pYps1VUmY41ySqrVNWCDlL%2BR4gQsnDQC%2FxxVgEkjjVlmsXl3eag55QYkilEM"+
  325. "ZZVZpkQVgal3QGaabcZZZ55VV%2BzhTRWQGNSiR7UYY42D%2F38mYiJT3kY1OGqtphjMa90GfNCB2J2JCdyjGRMcYDDS1aIW%2B5"+
  326. "DC%2FOySNSlsrWtfC1sPxla2tKFtbQhTWPgeVxegCe1XNQpW4I6WtBYC8HC54xMBASWvQt2QLgncwAtUpgUhuAtmFTzYn3qQjVps"+
  327. "AAkbu8vDJEc5y2FOc5wDxudCB4zRlS4eqAuE3OhmN7zxbm%2FnShcOAQixTk1Mf4Aq1am0kKrVjAl6I9ACNk4wghEGbgrByEY0tv"+
  328. "EKxQhRAdyCnvSgVL3rZU97B%2F%2FoHjU4EL7x4YV1roOd%2BtI0O3BY0HZKYyPwdtWrGG5ghuIqlg1XwwtKXI4SBtjGFfOQB941"+
  329. "8YlauKRdEDnLBj7QCBGU5ASVeMFUaDAB5Gue%2BVqWPjR9sn01uxk4crazno0SeNnaVrfOGLg09k01F0jBCYY4gg1sYwShgpK4wB"+
  330. "HIQd7AkHcRogFeZEQtvOxMnzQYD3HJwF3WxYMg9BrYxEY2s6ENhWxbIRKAiM1r6Ytf%2FgIYJ59Ju9op7Haq4YUWbiDL5jmQotBq"+
  331. "YjhuoAXOcOVvUmCRFnwgQoqJy52ETOYU9dRRK14uc5s7wBYpATrRke4UYRzBGB1qtfKtrGX4pB7%2FNGcmTfhZk4N3gYW%2BXvAi"+
  332. "AxxRqYHDQjCkYYAbXAIvXHjlNmI5y8vV8pZObNc%2Fg6hARUZveo7Enva2N8lKiq9kF7gAHZyQgATI4ArGMAaXCGuMK8hAHQlwAi"+
  333. "%2Fo0FCU0oEOvOhrAtQB2MAOlrBcEqxhEZtYJzgBso5Fyl5foTWuDXSEJTxo2lLYtrfxQrSjFcINRkCJE%2FyAj358qbhacYhdIc"+
  334. "Fh4yzn89I5Pa0KMho3iCpXeslAkKJJmDRTBQUtiIVaHFMKM7UXXxMQ2CoM04IVndlOv3DYBMAWL5GlrAwG%2B13whldNFRwveQ3r"+
  335. "2cZyRb3quIJXbVo5nGaxc1z8aelO%2FzcCGYA2tjQJxBm2sY1CaGGWllPSqJ7UgzxEYQyK2gBYw8pRjxrgubwzwkhLmmATMY%2Be"+
  336. "JcVqEvcJqH76gK3vSYAXHWA9J1iHDpS9whe%2BO134qolgMttpFYwhg%2FOa%2BB%2FcBWx7uUddHgJZvtKswhc4q9i4HUXJgeXx"+
  337. "AfTlvEXG1Xpz3Z4kzeQ98GnBvKC9SwooscznwXWdZ5qChWsphVZoAQmBuEArthFj5jKvqje4QwfuGVIKc9WrHK5LSlfaUoLGEVAx"+
  338. "3YZ24XOFvDlAHdThRWWNUTaa%2FXhU0KzZlK%2BgDifE9gJ9XfIX1EbMJYp4c%2ByTJjCInOYWpvqvWm61KhToy%2F8QB1OCPq4u"+
  339. "BjUIjCqfui5c4OgLfB2wOdcSRpc7AUsvkQIZjGEWeRiBn5lygS3QthCtMEBu%2Fxi4VgghBVAM61jLSktbBq6fuoxPAnjIhCtDZ9"+
  340. "PefV%2BLeSfrA5D6wI7lq37bu2sKvhrW62vfkKmMWDVHZOBaLtswmQDoIh7Rmevjt5r6GQBSl%2FrhTBEiEbdxBx5A2HJB02M5th"+
  341. "CCQ4whFEyQHjO%2BIW%2FFVAPCDvboBvLAcwo%2FG8OBGMSGg0tOIhJXnbzb6juXa50DDKsK0bnAXwfbagomHJo2q7U6CjeTiO94"+
  342. "4tM9eMIHJuua0VqwIL%2Fy13lsdQqGYlN93GMfyw0tSSv%2FY8pFNvW9lzKIbUgh3FqIwSVWioRB8EAIMHcAFqLADBmh0wBNB2ib"+
  343. "vQyqqKHp2bXcxrSRwIVG8JnbS1F2R2cJYmDCOxsk1QKSV2PoM6kiOvnuNHifHGp%2FA%2FzGNOFFrpksSeqSHVBR1jqVS61YiOx%"+
  344. "2B1e4VNvD%2FVEH3%2FZv4Ru76UorRAbO2ogNOiEECQqB4xueB5pvSQgdCkAAprgbnN2A2Ayea%2BWhvHs%2BDCMS1Q6Ht0Ctl5C"+
  345. "8adKFFHMiufhU%2Bas8BYo%2Fg3GvsEs7fgIHKTO0oVM27eszHag%2FWhI%2B%2B0gwiHLDTIPD3mC9N5EuYFPDYECcEfGAb8kAL"+
  346. "xiANZE568mBG%2FzYPCcoPFlhPKWBBAcppG3zg5MxK5fBMCGLg5UKBBFaw5mRQIrwN3MSN3HYLWs4t3YDrPVzPCGAPOnLMu9RGZi"+
  347. "Sw7MZr63JvJnaP4NrO9w6QA%2FXp%2BfKu%2BK7MCyXO7aBQxJhKyogvsfiOK3COGaTHwsJvBAzAyAJBDqNDCP5OC04gFFJgEApP"+
  348. "CHiA%2FhYvCsDvGyCP0u4C5xqsEHau597tTyrswsZA6IjuPZ5uVKIOOlJNv7YsAmFtbM6u4RKgDyMC11ZNbXyvgjjwTCgQBA%2BL"+
  349. "61gRA1mtyWJRFmkx%2Bs5LMTrgBmhk8zogEBaLCO0CFqzPcrCPF7av%2B4AQC6aAEcWvA%2F8GARhZg83cTKWi4PLkjM7yAP467%"+
  350. "2FP6DD7oDVDsTTpSDbB00cfasKnQDrFWsQjTsPfEDuHakALNMA4b5gLscctgEdR4R5%2Fmix9VMRnzIkVm4Lzo8Tp44RJkyQRhTg"+
  351. "UtrAVPoBywUc%2BiI%2F3Wzwfaj87ej%2FPkj%2F7sLz5k4NIybTpEkb08TQxHJQHL68AcciJw7QuVz8n00d8q0L5owiYlbhcH0v"+
  352. "Z2shZ7Ek9gQQs2YBrvsEZawACw0QnuTzVo0AZxEOVgpEp40AdhLggtcvXkwwmAIX1UoQqmbyWdgNPcsZgq6vbKKw7vIssKLgw3Lp"+
  353. "80ziCjb%2B8SLC7BUOzoknrs8g2qOSsvb0UYifEEsg8WYjA7%2FlAKAnEQC1GPkOAQE%2FH7aM4R72WvdKzqiIl9tLDhBpN%2BIg"+
  354. "stk0%2BCKIi6Fg76BNPKiHCvJKuygJLi2McDA9MWV7NamAXEUqCxEhIvlvH6OuAZuY8rp7EaG%2FMas7GoklM54wMiJfIEYw4LhL"+
  355. "ARMVIjeXM5rxM76QIplfLZws8poVIqs1M8x1NuhvEiEVMxyVM919NvhCA3d%2FM6AgIAOw%3D%3D";
  356.  
  357. if (/search\?.*q=/.test(document.location.href)) {
  358. //Add div for pop-up images
  359. x = 0;
  360. y = 0;
  361. popupDiv = document.createElement("div");
  362. popupDiv.setAttribute("id", "imagePopup");
  363. popupDiv.setAttribute("style", "display:none; z-index:99;position:absolute;");
  364. popupDiv.addEventListener(
  365. 'mouseover',
  366. function(event) { this.style.display = "inline";},
  367. true);
  368. popupDiv.addEventListener(
  369. 'mouseout',
  370. function(event) {
  371. window.clearTimeout(globalTimer);
  372. this.style.display = "none";},
  373. true);
  374. popupDiv.addEventListener(
  375. 'mousemove',
  376. function(e) {
  377. if (sqr(x - e.pageX) + sqr(y - e.pageY) > 400) {
  378. window.clearTimeout(globalTimer);
  379. this.style.display = "none";
  380. }
  381. },
  382. true);
  383. document.body.appendChild(popupDiv);
  384. //Remove sponsored links column if it exists.
  385. if (foo = document.getElementById("mbEnd")) foo.parentNode.removeChild(foo);
  386. //Save the document location. This is used in XHR's.
  387. href = document.location.href;
  388. //Get results
  389. results = document.getElementById("res");
  390. //Create new div to put results in.
  391. newDiv = document.createElement("div")
  392. newDiv.setAttribute("class", "leftColumn");
  393. //Create new style element and add it to the head.
  394. style = document.getElementsByTagName('head')[0].appendChild(document.createElement('style'));
  395. style.type = 'text/css';
  396. style.innerHTML = "#leftColumn {float: left; max-width:"+(window.innerWidth - 385)+"px;}" +
  397. "#google_extra .znerp {background:#D5DDF3 none repeat scroll 0 0; border-top:1px solid #3366CC; font-size: small; font-weight: bold; padding:4px 0.5em 4px 4px; }"
  398. //If there's a div id 'navbar' in the results div, put the contents of the results div into the new div.
  399. if (document.evaluate ("//div[@id='navbar']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue
  400. && document.evaluate ("//div[@id='navbar']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.parentNode == results) {
  401. while (results.firstChild.nextSibling != document.getElementById("navbar"))
  402. newDiv.appendChild((stuff = results.firstChild).parentNode.removeChild(stuff));
  403. if (results.firstChild.nextSibling == null)
  404. newDiv.appendChild((stuff = results.firstChild).parentNode.removeChild(stuff));
  405. results.insertBefore(newDiv, results.firstChild);
  406. }
  407. //Create the google extra div.
  408. rightDiv = document.createElement("div");
  409. rightDiv.setAttribute("id", "google_extra");
  410. rightDiv.setAttribute("style", "max-width: 255px; float: right; padding: 0px 2px 0px 2px; margin: 8px 0px 0px 0px !important; background: #E5ECF9 !important; border: solid 1px #BCCEEF ! important;");
  411. results.insertBefore(rightDiv, results.firstChild);
  412. //I don't know what the following lines were supposed to do.
  413. //brclear = document.createElement("br");
  414. //brclear.setAttribute("clear", "all");
  415. //results.insertBefore(brclear, newDiv.nextSibling);
  416.  
  417. //Add the foreign wikipedia menu command.
  418. GM_registerMenuCommand(GM_getValue("foreign wiki", false) ? "Don't show results from " + GM_getValue("wiki address", "en") + ".wikipedia.org in future."
  419. : "Also show google extra results from another version of wikipedia...",
  420. toggleForeignWiki );
  421. if (GM_getValue("foreign wiki", false))
  422. GM_registerMenuCommand("Change the other wikipedia location to something other than " + GM_getValue("wiki address", "en") + ".wikipedia.org...",
  423. function(e) { GM_setValue("foreign wiki", false); toggleForeignWiki(); } );
  424. //Add google extra stuff.
  425. for (i = 0; i < 5; i++) {
  426. switch (eval(GM_getValue("order", "[0,1,2,3,4]"))[i]) {
  427. case 0: addImages(); break;
  428. case 1: addVideos(); break;
  429. case 2: addWiki(); break;
  430. case 3: addDict(); break;
  431. case 4: if (GM_getValue("foreign wiki", false)) addForeignWiki(); break;
  432. }
  433. }
  434. } else {
  435. //Stupid icons stuff.
  436. var FRAMEDELAY = 50,
  437. names = ['Gmail', 'Calendar', 'Toolbar', 'Desktop', 'Picasa', 'YouTube', 'Notebook'],
  438. urls = ['http://mail.google.com/', 'http://www.google.com/calendar', 'http://toolbar.google.com/', 'http://desktop.google.com/', 'http://picasa.google.com/', 'http://youtube.com/', 'http://www.google.com/notebook'];
  439. var place = document.getElementsByTagName('center')[0].insertBefore(document.createElement('div'), document.forms[0].nextSibling);
  440. place.innerHTML = '<table style="font-size:13px"><tr valign="bottom" align="center"></tr></table>';
  441. place = place.firstChild.rows[0];
  442. for (var i = 0; i < 7; i++) {
  443. new icon(names[i], urls[i], i);
  444. }
  445. GM_addStyle('.GM_stupidicon{width:52px;height:37px;background:#fff url("'+icons+'") no-repeat scroll 0 0}\
  446. .GM_blocklink{display:block;margin:0 6px 0 6px}');
  447. }
  448.  
  449. function addImages() {
  450. //imageurl = href.replace('search', 'images').replace('www', 'images');
  451. //imageurl = href.replace('search', 'images');
  452. //imageurl = href.replace('search?', 'search?site=imghp&tbm=isch&source=hp&');
  453. imageurl = href.replace('search?', 'search?tbm=isch&');
  454. if (document.getElementById("image"))
  455. imageDiv = document.getElementById("image");
  456. else {
  457. imageDiv = document.createElement("div");
  458. imageDiv.setAttribute("class", "image");
  459. imageDiv.setAttribute("id", "image");
  460. rightDiv.appendChild(imageDiv);
  461. }
  462. GM_xmlhttpRequest({
  463. method: 'get',
  464. headers: {
  465. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  466. 'Content-type': 'application/x-www-form-urlencoded'
  467. },
  468. url: imageurl,
  469. onload: function(result) {
  470. res = result.responseText;
  471. if (res.indexOf("Suggestions:") == -1) {
  472. imageDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 2px;margin-bottom: 2px;" style="margin: 3px;"><td><span id="sd"><a href="'+imageurl+'">Images</a></span></td></table>'
  473. addTopImages("image");
  474. if (eval(GM_getValue("show", "[true,true,true,true,true]"))[0]) {
  475. whatever = res.indexOf('<table align=center border=0')
  476. end = res.indexOf('<br clear=all>');
  477. // NOTE: change the value of ShownLinesOfImagesto how many lines of images you want to see (max 3)
  478. ShownLinesOfImages = 3
  479. ShownImages = ShownLinesOfImages * 8;
  480. for (i = 0; i < ShownImages; i++) {
  481. // N O T E : : : : this is an apparent fix, but I am not sure what it will do exactly, it may actually break the script!!!
  482. //if (res.indexOf('<a href', whatever) < end) {
  483. image = res.slice(res.indexOf('<a href', whatever),
  484. (whatever = res.indexOf('</a>',res.indexOf('<a href', whatever))+4));
  485. // image = image.replace(/width=\d+ height=\d+/, "style='max-width: 100px; border:0px; margin:0px -2px -2px 0px; padding:0px;'");
  486. imageDiv.innerHTML += image + "&nbsp;";
  487. //}
  488. }
  489. }
  490. addEventListeners("image");
  491. imageImages = imageDiv.getElementsByTagName("img");
  492. for (i = 3; i < imageImages.length; i++) {
  493. thisImage = imageImages[i];
  494.  
  495. thisImage.src = thisImage.src.replace('http://', 'https://');
  496.  
  497. thisImage.addEventListener(
  498. 'mousemove',
  499. function(event) {
  500. x = event.pageX;
  501. y = event.pageY;
  502. // var h = this.parentNode.href.match(/&h=(\d+)&/)[1];
  503. // var w = this.parentNode.href.match(/&w=(\d+)&/)[1];
  504. // source = (w > 50) ? this.parentNode.href.slice(this.parentNode.href.indexOf("imgurl=") + 7,
  505. // this.parentNode.href.indexOf("&", this.parentNode.href.indexOf("imgurl="))).replace(/%25/g, "%")
  506. // : this.src;
  507.  
  508. var h = this.height;
  509. var w = this.width;
  510. source = this.src;
  511. // source = this.src.replace('http://', 'https://');
  512.  
  513. globalTimer = window.setTimeout(
  514. // alert(source),
  515. // alert(thisImage.src),
  516. // alert(this.parentNode.href),
  517. // function() { popUp(x,y,source);},
  518. function() { popUp(h,w,x,y,source);},
  519. 10);},
  520. true);
  521. thisImage.addEventListener(
  522. 'mouseout',
  523. function(event) {
  524. window.clearTimeout(globalTimer);
  525. document.getElementById('imagePopup').style.display = "none";},
  526. true);
  527. }
  528. }
  529. }
  530. });
  531. }
  532.  
  533. function addVideos() {
  534. //videourl = href.replace('search', 'videosearch').replace('www', 'video').replace(/google\.[^\/]*\//, "google.com/");
  535. videourl = href.replace('search?', 'search?tbm=vid&');
  536. if (document.getElementById("video"))
  537. videoDiv = document.getElementById("video");
  538. else {
  539. videoDiv = document.createElement("div");
  540. videoDiv.setAttribute("class", "video");
  541. videoDiv.setAttribute("id", "video");
  542. GM_addStyle('.video a {font-size:0.9em;}');
  543. rightDiv.appendChild(videoDiv);
  544. }
  545. GM_xmlhttpRequest({
  546. method: 'get',
  547. headers: {
  548. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  549. 'Content-type': 'application/x-www-form-urlencoded'
  550. },
  551. url: videourl + "&num=4",
  552. //url: videourl,
  553. onload: function(result) {
  554. res = result.responseText;
  555. if (res.indexOf("Suggestions:") == -1) {
  556. videoDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px;" style="margin: 3px;"><td><span id="sd"><a href="'+videourl+'">Videos</a></span></td></table>'
  557. addTopImages("video");
  558. if (eval(GM_getValue("show", "[true,true,true,true,true]"))[1]) {
  559. videoString = "<table><tbody><tr>"
  560. whatever = 0;
  561. for (i = 0; i < 4; i++) {
  562. whatever = res.indexOf('<div id="res-' + i)
  563. if (whatever == -1) break;
  564. video = "<a href=\"znerp\">" +
  565. res.slice(res.indexOf('<img', whatever),
  566. res.indexOf('>', res.indexOf('<img', whatever))).replace(/\/0.jpg/, "/1.jpg") +
  567. " width=120px title=\"" +
  568. res.slice(res.indexOf('<div class="rl-snippet">', whatever) + 24,
  569. res.indexOf('</div>', res.indexOf('<div class="rl-snippet">', whatever))).replace(/<b>/g, "").replace(/<\/b>/g, "") +
  570. "\"></a>";
  571. video += "<br>" + res.slice(res.indexOf('>', res.indexOf('<div class="rl-title', whatever))+1,
  572. res.indexOf('</div>', res.indexOf('<div class="rl-title', whatever))) + "<br>";
  573. videoLocation = res.slice(res.indexOf('href="', res.indexOf('<div class="rl-watchon">', whatever)) + 6,
  574. res.indexOf('" target=', res.indexOf('<div class="rl-watchon">', whatever)))
  575. video = video.replace(/href="znerp"/, "href=\"" + videoLocation + "\"").replace(/href="\//, "href=\"http://video.google.com/");
  576. videoString += "<td>" + video + "</td>";
  577. if (i%2 == 1) videoString += "</tr><tr>";
  578. }
  579. videoDiv.innerHTML += videoString + "</tr></tbody></table>";
  580. }
  581. addEventListeners("video");
  582. videoImages = videoDiv.getElementsByTagName("img");
  583. for (i = 3; i < videoImages.length; i++) {
  584. thisImage = videoImages[i];
  585. if (thisImage.src.match(/\/[1-3]\.jpg/)) {
  586. thisImage.style.border = "2px solid #00ff00"
  587. thisImage.addEventListener(
  588. 'mouseover',
  589. function(event) {
  590. animate(this)
  591. },
  592. true);
  593. thisImage.addEventListener(
  594. 'mouseout',
  595. function(event) {
  596. window.clearTimeout(newGlobalTimer);
  597. },
  598. true);
  599. }
  600. }
  601. }
  602. }
  603. });
  604. }
  605.  
  606. function addWiki() {
  607. wikiurl = "http://en.wikipedia.org/wiki/" + href.match(/[&?]q=([^&]*)(?:&|$)/)[1].replace(/%20|\+/g, "_").replace(/%22/g, "").replace(/_[a-z]/g, toUpCase);
  608. if (document.getElementById("wiki"))
  609. wikiDiv = document.getElementById("wiki");
  610. else {
  611. wikiDiv = document.createElement("div");
  612. wikiDiv.setAttribute("class", "wiki");
  613. wikiDiv.setAttribute("id", "wiki");
  614. GM_addStyle('.wiki {font-size:0.75em;color:#333333;font-family:"Lucida Sans Unicode","Arial Unicode MS","Lucida Sans","Lucida Grande",Verdana,Helvetica,Arial,sans-serif;}'+
  615. '.wiki h2 {font-size: 100%;}'+
  616. '.wikiContent {overflow:auto;max-height:300px;}');
  617. rightDiv.appendChild(wikiDiv);
  618. }
  619. GM_xmlhttpRequest({
  620. method: 'get',
  621. headers: {
  622. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  623. 'Content-type': 'application/x-www-form-urlencoded'
  624. },
  625. url: wikiurl,
  626. onload: function(result) {
  627. res = result.responseText;
  628. if (res.indexOf('<p>', res.indexOf('<div id="contentSub">')) != -1) if (res.indexOf('Wikipedia does not have an article with this exact name') == -1) {
  629. wikiDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px;font-family:arial,sans-serif;" style="margin: 3px;"><td><span id="sd"><a href="'+wikiurl+'">en.wikipedia.org</a></span></td></table>'
  630. addTopImages("wiki");
  631. if (eval(GM_getValue("show", "[true,true,true,true,true]"))[2]) {
  632. if (/ may( also)? refer to:<\/p>/.test(res)) {
  633. endSearch = res.indexOf('<!-- end content -->');
  634. oldFoo = 0;
  635. foo = 0;
  636. while (foo < endSearch) {
  637. oldFoo = foo;
  638. foo = res.indexOf('</ul>', foo) + 4;
  639. }
  640. wiki = res.slice(res.indexOf('<p><b>'), oldFoo);
  641. } else if (res.indexOf('<p>"<b>') != -1) {
  642. wiki = res.slice(res.indexOf('<p>"<b>'),
  643. res.indexOf('</p>', res.indexOf('<p>"<b>'))+4);
  644. } else if (res.indexOf('<p>A <b>') != -1) {
  645. wiki = res.slice(res.indexOf('<p>A <b>'),
  646. res.indexOf('</p>', res.indexOf('<p>A <b>'))+4);
  647. } else if (res.indexOf('<p>An <b>') != -1) {
  648. wiki = res.slice(res.indexOf('<p>An <b>'),
  649. res.indexOf('</p>', res.indexOf('<p>An <b>'))+4);
  650. } else if (res.indexOf('<p>The <b>') != -1) {
  651. wiki = res.slice(res.indexOf('<p>The <b>'),
  652. res.indexOf('</p>', res.indexOf('<p>The <b>'))+4);
  653. } else if (res.indexOf('<p><i><b>') != -1) {
  654. wiki = res.slice(res.indexOf('<p><i><b>'),
  655. res.indexOf('</p>', res.indexOf('<p><i><b>'))+4);
  656. } else if (res.indexOf('<p><b>') != -1) {
  657. wiki = res.slice(res.indexOf('<p><b>'),
  658. res.indexOf('</p>', res.indexOf('<p><b>'))+4);
  659. } else {
  660. wiki = res.slice(res.indexOf('<p>'),
  661. res.indexOf('</p>')+4);
  662. }
  663. if (res.indexOf('class="image"') != -1) {
  664. wikiImage = '<img ' +
  665. res.slice(res.indexOf('src=', res.indexOf('class="image"')),
  666. res.indexOf('"', res.indexOf('src=', res.indexOf('class="image"'))+5)+1) +
  667. '" style="max-width:100px; float:right; margin-top: 13px; padding: 2px;">';
  668. //wikiDiv.innerHTML += wikiImage;
  669. } else if (res.indexOf('class="thumbimage"') != -1) {
  670. wikiImage = '<img ' +
  671. res.slice(res.indexOf('src=', res.indexOf('class="thumbimage"')),
  672. res.indexOf('"', res.indexOf('src=', res.indexOf('class="thumbimage"'))+5)+1) +
  673. '" style="max-width:100px; float:right; margin-top: 13px; padding: 2px;">';
  674. //wikiDiv.innerHTML += wikiImage;
  675. }
  676. wikiDiv.innerHTML += "<div class='wikiContent'>" +
  677. ((res.indexOf('class="image"') != -1) ? wikiImage : "") +
  678. wiki.replace(/href=\"\//g, "href=\"http://en.wikipedia.org/") +
  679. "</div>";
  680. }
  681. addEventListeners("wiki");
  682. }
  683. }
  684. });
  685. }
  686.  
  687. function addDict() {
  688. dicturl = "http://dictionary.reference.com/search?q=" + href.match(/[&?]q=([^&]*)(?:&|$)/)[1];
  689. if (document.getElementById("dict"))
  690. dictDiv = document.getElementById("dict");
  691. else {
  692. dictDiv = document.createElement("div");
  693. dictDiv.setAttribute("class", "dict");
  694. dictDiv.setAttribute("id", "dict");
  695. GM_addStyle('.dict .me {display:inline;font-weight:bold;}'+
  696. '.dict .pg {color:#558811;display:inline;font-style:italic;}'+
  697. '.dict .prondelim {color:#880000;font-family:"Arial Unicode MS","Lucida Sans Unicode",Helvetica,Arial,sans-serif;}'+
  698. '.dict .show_spellpr .pron {color:#880000;display:inline;font-family:Verdana,"Arial Unicode MS","Lucida Sans Unicode",Helvetica,Arial,sans-serif;font-size:0.9em;}'+
  699. '.dict .prongoto {color:#116699;cursor:pointer;font-size:0.9em;text-decoration:underline;}'+
  700. '.dict table.luna-Ent {background-color:#FFFFFF;color:#333333;display:block;padding-bottom:0pt;width:100%;}'+
  701. '.dict .ital-inline {display:inline;font-style:italic;}'+
  702. '.dict * {font-size:95%;line-height:1.25em;margin:0pt;}'+
  703. '.dict .sectionLabel {color:#558811;display:inline;font-style:italic;}'+
  704. '.dict .secondary-bf {display:inline;font-weight:bold;}'+
  705. '.dict .homno {display:inline;font-size:0.7em;vertical-align:top;}'+
  706. '.dictContent {overflow:auto;max-height:300px;}');
  707. rightDiv.appendChild(dictDiv);
  708. }
  709. GM_xmlhttpRequest({
  710. method: 'get',
  711. headers: {
  712. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  713. 'Content-type': 'application/x-www-form-urlencoded'
  714. },
  715. url: dicturl,
  716. onload: function(result) {
  717. res = result.responseText;
  718. if (res.indexOf('<div class="luna-Ent">') != -1) {
  719. dictDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px; margin: 3px;"><td><span id="sd" style="font-size:100%;"><a href="'+dicturl+'">Dictionary.com</a></span></td></table>'
  720. addTopImages("dict");
  721. if (eval(GM_getValue("show", "[true,true,true,true,true]"))[3]) {
  722. dict = res.slice(res.indexOf('<div class="luna-Ent">')+22,
  723. res.indexOf('</div>', res.indexOf('<div class="luna-Ent">')));
  724. dictDiv.innerHTML += "<div class='dictContent'>" +
  725. dict.replace(/href=\"\//g, "href=\"http://dictionary.reference.com/") +
  726. "</div>";
  727. }
  728. addEventListeners("dict");
  729. } else if (res.indexOf('<table>') != -1) {
  730. dictDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px; margin: 3px;"><td><span id="sd" style="font-size:100%;"><a href="'+dicturl+'">Dictionary.com</a></span></td></table>'
  731. addTopImages("dict");
  732. if (eval(GM_getValue("show", "[true,true,true,true,true]"))[3]) {
  733. dict = res.slice(res.indexOf('<td>', res.indexOf('<!-- google_ad_section_start(name=def) -->'))+4,
  734. res.indexOf('</td>', res.indexOf('<!-- google_ad_section_start(name=def) -->')));
  735. dictDiv.innerHTML += "<div class='dictContent'>" +
  736. dict.replace(/href=\"\//g, "href=\"http://dictionary.reference.com/") +
  737. "</div>";
  738. }
  739. addEventListeners("dict");
  740. }
  741. }
  742. });
  743. }
  744.  
  745. function addForeignWiki() {
  746. foreignWikiurl = "http://" + GM_getValue("wiki address", "en") + ".wikipedia.org/wiki/" + href.match(/[&?]q=([^&]*)(?:&|$)/)[1].replace(/%20|\+/g, "_").replace(/%22/g, "").replace(/_[a-z]/g, toUpCase);
  747. if (document.getElementById("foreignWiki"))
  748. foreignWikiDiv = document.getElementById("foreignWiki");
  749. else {
  750. foreignWikiDiv = document.createElement("div");
  751. foreignWikiDiv.setAttribute("class", "wiki");
  752. foreignWikiDiv.setAttribute("id", "foreignWiki");
  753. //the following has already been done by the normal wiki stuff
  754. //GM_addStyle('.wiki {font-size:0.75em;color:#333333;font-family:"Lucida Sans Unicode","Arial Unicode MS","Lucida Sans","Lucida Grande",Verdana,Helvetica,Arial,sans-serif;}'+
  755. // '.wiki h2 {font-size: 100%;}'+
  756. // '.wikiContent {overflow:auto;max-height:300px;}');
  757. rightDiv.appendChild(foreignWikiDiv);
  758. }
  759. GM_xmlhttpRequest({
  760. method: 'get',
  761. headers: {
  762. 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
  763. 'Content-type': 'application/x-www-form-urlencoded'
  764. },
  765. url: foreignWikiurl,
  766. onload: function(result) {
  767. res = result.responseText;
  768. if (res.indexOf('<p>', res.indexOf('<div id="contentSub">')) != -1) if (res.indexOf('Wikipedia does not have an article with this exact name') == -1) {
  769. foreignWikiDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px;font-family:arial,sans-serif;" style="margin: 3px;"><td><span id="sd"><a href="'+foreignWikiurl+'">'+GM_getValue("wiki address", "en")+'.wikipedia.org</a></span></td></table>'
  770. addTopImages("foreignWiki");
  771. if (eval(GM_getValue("show", "[true,true,true,true,true]"))[4]) {
  772. if (/ may( also)? refer to:<\/p>/.test(res)) {
  773. endSearch = res.indexOf('<!-- end content -->');
  774. oldFoo = 0;
  775. foo = 0;
  776. while (foo < endSearch) {
  777. oldFoo = foo;
  778. foo = res.indexOf('</ul>', foo) + 4;
  779. }
  780. wiki = res.slice(res.indexOf('<p><b>'), oldFoo);
  781. } else if (res.indexOf('<p>"<b>') != -1) {
  782. wiki = res.slice(res.indexOf('<p>"<b>'),
  783. res.indexOf('</p>', res.indexOf('<p>"<b>'))+4);
  784. } else if (res.indexOf('<p>A <b>') != -1) {
  785. wiki = res.slice(res.indexOf('<p>A <b>'),
  786. res.indexOf('</p>', res.indexOf('<p>A <b>'))+4);
  787. } else if (res.indexOf('<p>An <b>') != -1) {
  788. wiki = res.slice(res.indexOf('<p>An <b>'),
  789. res.indexOf('</p>', res.indexOf('<p>An <b>'))+4);
  790. } else if (res.indexOf('<p>The <b>') != -1) {
  791. wiki = res.slice(res.indexOf('<p>The <b>'),
  792. res.indexOf('</p>', res.indexOf('<p>The <b>'))+4);
  793. } else if (res.indexOf('<p><i><b>') != -1) {
  794. wiki = res.slice(res.indexOf('<p><i><b>'),
  795. res.indexOf('</p>', res.indexOf('<p><i><b>'))+4);
  796. } else if (res.indexOf('<p><b>') != -1) {
  797. wiki = res.slice(res.indexOf('<p><b>'),
  798. res.indexOf('</p>', res.indexOf('<p><b>'))+4);
  799. } else {
  800. wiki = res.slice(res.indexOf('<p>'),
  801. res.indexOf('</p>')+4);
  802. }
  803. if (res.indexOf('class="image"') != -1) {
  804. wikiImage = '<img ' +
  805. res.slice(res.indexOf('src=', res.indexOf('class="image"')),
  806. res.indexOf('"', res.indexOf('src=', res.indexOf('class="image"'))+5)+1) +
  807. '" style="max-width:100px; float:right; margin-top: 13px; padding: 2px;">';
  808. //wikiDiv.innerHTML += wikiImage;
  809. } else if (res.indexOf('class="thumbimage"') != -1) {
  810. wikiImage = '<img ' +
  811. res.slice(res.indexOf('src=', res.indexOf('class="thumbimage"')),
  812. res.indexOf('"', res.indexOf('src=', res.indexOf('class="thumbimage"'))+5)+1) +
  813. '" style="max-width:100px; float:right; margin-top: 13px; padding: 2px;">';
  814. //wikiDiv.innerHTML += wikiImage;
  815. }
  816. foreignWikiDiv.innerHTML += "<div class='wikiContent'>" +
  817. ((res.indexOf('class="image"') != -1) ? wikiImage : "") +
  818. wiki.replace(/href=\"\//g, "href=\"http://"+GM_getValue("wiki address", "en")+".wikipedia.org/") +
  819. "</div>";
  820. }
  821. addEventListeners("foreignWiki");
  822. }
  823. }
  824. });
  825. }
  826.  
  827. //for mouseover of image results.
  828. function sqr(x) { return (x*x) }
  829.  
  830. function popUp(h,w,x,y,source) {
  831. //function popUp(x,y,source) {
  832. obj = document.getElementById('imagePopup');
  833. obj.innerHTML = "<img src='" + source + "' style='max-width: 500px; max-height: 500px;'>"
  834. obj.style.left = (x - Math.min(w, (w*500)/h, 500)) + 'px';
  835. obj.style.top = y +'px';
  836. obj.style.display = "inline";
  837. }
  838.  
  839. //for mouseover of youtube video results
  840. function animate(image) {
  841. newGlobalTimer = window.setTimeout(
  842. function() {
  843. function increment(str, p1, p2, offset, s) {
  844. return p1 + (parseInt(p2)%3 + 1) + ".jpg";
  845. }
  846. image.src = image.src.replace(/(.*)(\d)\.jpg/, increment);
  847. animate(image);
  848. },
  849. 750);
  850. }
  851.  
  852. //for working out wikipedia links
  853. function toUpCase() {
  854. return arguments[0].toUpperCase();
  855. }
  856.  
  857. //Add plus/minus, up and down images to google extra headings.
  858. function addTopImages(div) {
  859. imageTable = document.getElementById(div).getElementsByTagName("table")[0].getElementsByTagName("tr")[0];
  860. imageToggleColumn = document.createElement("td");
  861. imageToggleColumn.setAttribute("style", "width: 100px;");
  862. imageToggle = document.createElement("img");
  863. imageToggle.setAttribute("style", "float: right;margin-right: 3px;cursor:pointer;");
  864. imageToggle.setAttribute("title", (eval(GM_getValue("show", "[true,true,true,true,true]"))[numberize(div)] ? "Don't s" : "S") + "how these search results");
  865. imageToggle.src = (eval(GM_getValue("show", "[true,true,true,true,true]"))[numberize(div)] ? hide : show);
  866. imageMoveUp = document.createElement("img");
  867. imageMoveUp.src = moveup;
  868. imageMoveUp.setAttribute("style", "float: right;margin-right: 3px;cursor:pointer;");
  869. imageMoveUp.setAttribute("title", "Move up in list");
  870. imageMoveDown = document.createElement("img");
  871. imageMoveDown.src = movedown;
  872. imageMoveDown.setAttribute("style", "float: right;margin-right: 3px;cursor:pointer;");
  873. imageMoveDown.setAttribute("title", "Move down in list");
  874.  
  875. imageToggleColumn.appendChild(imageMoveUp);
  876. imageToggleColumn.appendChild(imageMoveDown);
  877. imageToggleColumn.appendChild(imageToggle);
  878. imageTable.appendChild(imageToggleColumn);
  879. }
  880.  
  881. //Add event listeners to the top images on headings
  882. function addEventListeners (div) {
  883. // up arrow
  884. document.getElementById(div).getElementsByTagName("img")[0].addEventListener(
  885. 'click',
  886. function() {
  887. if (document.getElementById(div).previousSibling) {
  888. for (i = 1; i < 5; i++)
  889. if (eval(GM_getValue("order", "[0,1,2,3,4]"))[i] == numberize(div)) {
  890. tempThing = eval(GM_getValue("order", "[0,1,2,3,4]"));
  891. tempThing[i] = tempThing[i-1];
  892. tempThing[i-1] = numberize(div);
  893. GM_setValue("order", uneval(tempThing));
  894. break;
  895. }
  896. document.getElementById(div).parentNode.insertBefore(document.getElementById(div), document.getElementById(div).previousSibling);
  897. }
  898. },
  899. false);
  900. // down arrow
  901. document.getElementById(div).getElementsByTagName("img")[1].addEventListener(
  902. 'click',
  903. function() {
  904. if (document.getElementById(div).nextSibling) {
  905. for (i = 0; i < 4; i++)
  906. if (eval(GM_getValue("order", "[0,1,2,3,4]"))[i] == numberize(div)) {
  907. tempThing = eval(GM_getValue("order", "[0,1,2,3,4]"));
  908. tempThing[i] = tempThing[i+1];
  909. tempThing[i+1] = numberize(div);
  910. GM_setValue("order", uneval(tempThing));
  911. break;
  912. }
  913. document.getElementById(div).parentNode.insertBefore(document.getElementById(div), document.getElementById(div).nextSibling.nextSibling);
  914. }
  915. },
  916. false);
  917. // plus/minus
  918. document.getElementById(div).getElementsByTagName("img")[2].addEventListener(
  919. "click",
  920. function() {
  921. znerp = eval(GM_getValue("show", "[true,true,true,true,true]"));
  922. znerp[numberize(div)] = !znerp[numberize(div)];
  923. GM_setValue("show", uneval(znerp));
  924. if (this.src == hide)
  925. while (document.getElementById(div).getElementsByTagName("table")[0].nextSibling)
  926. document.getElementById(div).getElementsByTagName("table")[0].parentNode.removeChild(document.getElementById(div).getElementsByTagName("table")[0].nextSibling);
  927. else
  928. switch (div) {
  929. case ("image"): addImages(); break;
  930. case ("video"): addVideos(); break;
  931. case ("wiki"): addWiki(); break;
  932. case ("dict"): addDict(); break;
  933. case ("foreignWiki"): addForeignWiki(); break;
  934. }
  935. this.src = ((this.src == show) ? hide : show);
  936. },
  937. false);
  938. }
  939.  
  940. //enum type thing for results.
  941. function numberize(div) {
  942. switch (div) {
  943. case ("image"): return 0; break;
  944. case ("video"): return 1; break;
  945. case ("wiki"): return 2; break;
  946. case ("dict"): return 3; break;
  947. case ("foreignWiki"): return 4; break;
  948. }
  949. }
  950.  
  951. //Function for showing/hiding foreign wiki things in future.
  952. function toggleForeignWiki() {
  953. if (GM_getValue("foreign wiki", false)) {
  954. GM_setValue("foreign wiki", false)
  955. } else {
  956. GM_setValue("wiki address",
  957. prompt("Please enter the version of wikipedia.org you want to use.\n\nThis should be two letters to replace 'xx' in the address 'xx.wikipedia.org'",
  958. GM_getValue("wiki address", "en")))
  959. GM_setValue("foreign wiki", true);
  960. }
  961. window.location.reload()
  962. }
  963.  
  964. //the rest of the functions are for stupid icons.
  965. function icon(name, url, index) {
  966. this.name = name;
  967. this.url = url;
  968. this.x = 0;
  969. this.y = 'px ' + index * -37 + 'px';
  970. this.moving = false;
  971. with (place.insertCell(-1)) {
  972. innerHTML = '<a href="' + url + '" class="GM_blocklink"><div class="GM_stupidicon"></div>' + name + '</a>';
  973. firstChild.addEventListener('mouseover', animstart(this), true);
  974. firstChild.addEventListener('mouseout', animend(this), true);
  975. this.obj = firstChild.firstChild;
  976. }
  977. this.obj.style.backgroundPosition = '0' + this.y;
  978. }
  979.  
  980. function animstart(ico) {
  981. return function(e) {
  982. if (ico.moving) clearInterval(ico.moving);
  983. ico.moving = setInterval(movebg, FRAMEDELAY, ico, 1);
  984. }
  985. }
  986.  
  987. function animend(ico) {
  988. return function(e) {
  989. if (ico.moving) clearInterval(ico.moving);
  990. ico.moving = setInterval(movebg, FRAMEDELAY, ico, -1);
  991. }
  992. }
  993.  
  994. function movebg(ico, dir) {
  995. if ((dir == 1 && ico.x == 6) || (dir == -1 && ico.x == 0)) { clearTimeout(ico.moving); return; }
  996. ico.x += dir;
  997. ico.obj.style.backgroundPosition = -ico.x * 52 + ico.y;
  998. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址