Add Syntax Highlighting (this will take a few seconds, probably freezing your browser while it works)
// ==UserScript==
// @name AideRSS Google Reader Integration
// @namespace http://aiderss.com/
// @description v 2.7.0
// @include https://reader.google.tld/*
// @include http://reader.google.tld/*
// @include https://*.google.tld/reader/*
// @include http://*.google.tld/reader/*
// ==/UserScript==
//XPI GUID : 2cb2992a-9ed2-4587-9bb8-2930178512d3
/*
Icons and logos
*/
var aiderss_logo = 'data:image/gif;base64,R0lGODlhvgBMAOYAAPqXOMnJyeJtLKqqqt5lKuvq6%2BZzL%2Fz8%2FOt%2BMeXl5d7e3t56Rfb6%2FPOMNOPY0%2Fri0eTSydmKZPHx8v78%2B%2Bh4MJeXlzIyMvj4%2BFtbW0RERFFRUfv6%2BmVlZf7z6fb29nNzc%2FTz8%2B%2Fu79HR0fj9%2Fvz08dfX1%2FfUv%2Fvt4vnbyNuBVv759t1rM%2BNqJuLKwO6DMvHJs9xyPYiIiPzp2t2xnOFlIvz%2F%2F9%2FEuPH199udgOng3OB3PLu7u9qjiueMV9mRbtmXeP39%2Fduqk%2FH2%2Bdu4qPLq5uC9rurv8e3y9efFst5fIuOWbPTl3vGDLfbg1ex7K%2Brl493KwvB%2FKuJiHPHa0OlzJux4J%2Bbp6uOsjvjl2Xx8fP7%2B%2Fv%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAC%2BAEwAAAf%2FgFuCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp%2BgoaKjpKWmp6ipqqujWloHByMMsyMHQFqsubqnWkAjI0IFOQ7ExTlPIQwjQEC7zs%2BYr8A5LTM%2BKTArBEkEMAspOEMtCcoHuNDo6YlaGwxGLTgp2zQsAvb3Aiw0SSsRPA5HGGxQR1DdqwsFbPiAIaUevocPadCAgQPCkQvmCmrM9UoChB8r6hkYaY%2BFyZMm7Y0cyaLbPyEZN8os1cvdjJArDQig0e1bip8%2FF8AgQENATgM0Fti4weDczKefgDDIgUMlyaQRgthwkMDIkSNGEjiwESTCgqI5BcCYQa4Z1LeZ%2F2pCWGCUAgUDLBbwgFCAFrO%2FvmYVgMBjAQsDd%2B8KiJCDwS24kCfVbGHY7l0CPgAysKWlhiwPHpQtY8bgiIMIBBDbRcp4WeTXj6Q6oIugtoAFRQpcADIhlhEHLYrMmFGkhYMCtXozKDAEhoDaCCiwiPCkKezr65b7YAH9NhQJG4BsGFGgyI8F8%2FYl9cFWIJALR2wsoAIdAY0gRwZi30%2FogIQgBkBHxQJQCBHeBUYUgRo9R%2BkkUQpDGIHRBjdAMV99OtjgGH8cMgDBcy64UAWBME2AEA84pWVUTvXg0Jh4QtiggxMhipjCEzVwyN8IVwgQIhMCLBUeAwlUpRoFO0nhzf8KRVmmUwQQOLbBEUP4GCICBiCRo47YHZBDClIgIIAP%2BflSQFVO1IbUAhEoYdwMEaRAQ4C1sZDCiwhGQEUDVUjxQwhucQmbVDlcoYMSur0SAg%2FPIeDCgP8YMcsspgVBm6MG4FDABlpckEMPUqQwQwjhCXpdLzUwMAURI7hyQQtWPkpgQI8JogUwEKQQqwBDeEBaDkXkUItTpsLmFC5agKCEEw00gMACEMCESw3UbnkAAw6kwGwDTKQQwgFbuEJtrcVyqYUEC0TRrAFF3GBOqjlAIG8INfQiBBQCNNuAABBsaWsvgZbLnxYeplAFAj5sukUNEiChRA89KHHFFE1tYIT%2FDwg0QIUSRBC7BRAHbCAyZ6584srJKKfssSQgizzLyOQ%2B8orLL3N2SAUFDDCAJteeJkWUrngwA8RKFB1xDuZ4SJSmGxKyQQk7iJBAASFI4AFGnLzCgAcSdO31110ztVnMirhyrQQFWDHWVlNXjRGy62iNtto22ABB2xLMAvcWO2wRQN9xxSLBElgDAQHEiCOOgwe9XDDFFCA0PYgWHgzAAQcfZBFDBQOIcMHKlbzXAg84lG766aXPMAQEOSQT0zqyPDF6CivUbvsCPvDQQg4SLAP6rQzIzgPttteOOw828O4Y6HFNjgsDVySeuBI52ErtyYaAYPnl3HNQAeOb1JDD%2FwLcEGD%2B%2Beibz9MCONiAHNmDXPtEEfIUBZEARBGwQBAO3OAaIRMgEv2Icj%2F8mU8vFvkfKRhwHukhrl%2BMSNb2uuc9CQTsEjVogXMKiA%2BS7GQFP4CAuw7RjtMQ4DA6KSBLpKCXJ7yuhKgRCQeNshOKCIt5nRgBDhbAwx7ysAfVi6D2LvcBzF2uAoDaxAg0uKIGOZEkLIDBEEZICNnIqYlPPAoLpKAECQzCimjJYoMEwMUQmOIASNDBAtT4rDUqAXyLkCDmPkDHIlbAgkpkohizKIAVtEByBMsWCvfYIBrgAAS2uoAgCelEFnTxFMoyig4maQBoXTARQ6xjHe94yUosUf8HR7KMKEc5yjEZAVyC2EABIiAAUrqSlFTQgQNatQWLbeeVuLQLFWAAAVqWogZEwAFeTNKDFviSERfYwRw1yck86uBg9YmmNOtDAR0Y01YesEGjpslN6LCABzAJ16tg0M1yIoAFODjC6xzximaYTWQjK5khfCGBalyhCP0rFSHk%2BYqQHeACAVjmJvFoCFeIB2Y4FMQn0yRNy5hTADywzgGOEAE6TRMvBKhLfQzggwRw6mNC8IFFpYlRjULHABHwaELXATIPFCABCoipAqbmgXUKAmTuSIBOp7abQrhiAyGAaUwTEABNDvSCzECIUGdaAPDI0xCfjEKNakQBnzjHUVP%2FrREVIlCAHHlpAVjNKgJ08IMiQGEGw4NBgJwAraYdIAELoFFWQ0RWs6I1AmpFAFuj1MlFJDUBIthBBWKQBTpqrgI7UEBNj%2BUBBQQgADobQAUqoABidQSyhM3cZAtr1Gba6p8KEGxmP7C5zpEKdEtcABP0pS8n%2BKAEMAUQa1lbBerkaAQyWu1sG%2BCEFJTACDe4QQgGg4NJThGVW%2FikbmcbhQX8NrhocwAPJjkDCSCXnRu4QGgrwNnMZeG7dYzBDr5FiARUwKiZK0Gg3pOAAXD2u%2B%2BFL3g9y44Q7CAGdZSvYQeggJ4WIrXLbe0PNgUCBaxgt82Kgm2TWwQdIJhbC4jQ%2F8su4IEbyEsghMCtgxHMBB0MoS8CobCFo%2FVRSBygAPc1rHxXzNkBJDFc5vUufGNQAv10SgHnZbGOv9tMduRMxTsmbQk%2B91%2FKINgJfwJCY2HwYAXjiMEbRrALcDcDvljtAiOoQcxwu4AHN2DKEaiyFY4AmizbtBFA2AGQd7xiz9kKxyymsX7emmM2s7iZQNCejO38AcquM7UNAICgBx2FH3TFCkMwwKAXDYAo%2BMAICi1Clxm9aG6NNQU%2FGIICknELp3A50JQWtKXVmGkHuA5%2Bfi0BYVm85xUPAATIivGK5SzOHdh5xxUAQTMAGuRWF%2FbVxAI0pZngjyDggMmhbnREcf%2BR2mRTmlvV%2FAEUjDCCCQxiBHMBtbNF7YJoT1tyjniPreFL2s1xV8dIdKd541zjjylg1bde8R17UYBzz1pnOo6BAq7b7Gfr1QlR2LZSaPnWSW%2Bb0s39gQM2I4gTp0DbByc0WRd%2B3UZsYN1ZQKwIZqoA98aZvFrAuHzl3Klxs3gAj7W3fAdgwQuIAN0l8IB9dbwDOCaXMhF3dgMShkog3IAHTMg5pauQAr6CNAgIEDqjif7HviKiUwEQbwJ2k9SXx7kA4Aq5yr9LY3P8OM79DYHH5W1d7dHcVxeHN3wHUIBA9VvpizaAhpyiyBTAfdFOpqWnHn53QXfrhiYGQQJAEJ7%2FDYBguAGlIOawHi4FZEHxHxCBLRRQRMV%2F7wDaw4DiY0D4EDxe8Z4TT70hnwDkvh3uDTAAD8DTnxvMwAAQVzoChiAEXBzgBomOvdARMAMhOB0RIdMuZCU7WM0rnvFacLzxL4eByIOsBMvv3gA%2Bl3kKYiAG4EkAB6K%2F%2Fcjim%2FscUIB%2Bbu4cRh5lf6fd5wFCEIQVYNH8dsqBO%2F3T%2FvczUgB3GoGJteteDmhAAxgQgAI4gFmQRMmXBQMYgBwgecmUgAI4fUAgAQPggNcnAS63fRT4f%2F9HgRgQABdwbRpUPukzgugTASJQJvO0fjaQAkkggiT4gr30WRJgAxHQgi94gwTw%2F0ePgHlqhgEAyIEEaICO94MCuIAHUDkcOH0SRIQCiH0ABYRQGIA78IEKFYI4SIIkUnGTQygKog3bcIXmkwRDwABbGDxdGIZguA29x04NyIRQqAEF6E5DOIAaYIQXMABuGIBKKIFuqAFOGABRCIVTCIIw4ILnYxYvmAQpkAD6tw4HEAwOEAQ%2BsADaYIjpkwRBcAM%2B9YgF4ADWQIlfeINJsHrsVAL%2Bp4GomAGoiIpx2HgfsIp1KHmVA4sAqITaQ4t%2F6IO0uIuoOIhVWIgjmAQ%2BsANeSIJT5DGoomVmwwA3cAQJQBa0I4qZaD1adgv%2F1IxW0AJBEI2JSIoRtAEDoIqreP99k0WLrbgFlCeOGogBIvAeeEiLexiOsJgFhCcCuriKAoVedBQA47dEQxGMP6AAOGCJ27CIZNgfDEAEDiAE7hEuOCUEJVCDiTgDmhhACikEHlAqvXAtN6AAqJGI09gICfAB6qgBqsh2GxAAJWmSH%2FBi6ZiK7CgeKgmPu6E9K5kB9KhKJrmKGZBYMvWTMpUABEV%2BL%2FgDVmADxTiCUxQonTIbMCBtVmA1Y8OMHskTJJgEf0QwXwIDPmADQhkatkAhCuADoqghjqAAHJABarmWHFB6QKCSa7mWLekWaBmXahmTQFACdrmWMYAREriXONl5JLmXA%2BArW3hxCdBpnqZBGfX%2FEAQwYAlQg%2FdDAIs4frc3kDyxAimAPMVADChSQPozS4%2FIA0mQmZu5FZ3JAxsEEd0Qg41Ql3aJAR51AHBplxxAXuiYlnapAQFwC7AZm5InARUAmPR4hMO5l23ZaYKAYqSla0U2FKw5YEIQBI0JEStQBBvSlNB5D%2BazAj20nfcjjG3HAApwFvjQnd9ZnRCRBFzlL4uAlhawlzhjXvG5l0MmCPAZlxbAm80gATFQn%2FrJAZKFAXtpAfQoHiIAmDgZACVQApBFkvE5ACX2iw5xnn%2FiITBQoefJVeACBEKAA%2Bo5Q6CJnaMZoiLKmmO4UoPgefHZohkQn9v3ojLaohbQl80A%2F58uup%2B9GS478KI56qMWEKQz%2BqIfIAG4EAL%2FOaRB%2BoMaEKQtigHqtZjlp0V%2FYkv2pxMrMHcjMBuDZH45gRlYNwJf0qVeyhIcqqLhsgUD4KRs2qZuGp%2BAg6NsmgE7qgUh8AFvmqdOigHOmZcYoKd52pJSan8s8CfXUiVPRAM%2FoE4MMAOpUaYsAgNNNwJF8KiQyhJZah3spAB%2FCqhv%2BgEJgJ%2BdOqd1%2BpZN6qltqgEg95ZAiqoWgAEFkGF6RKWAcnFq5URq0UvKIgV3cakssALHtQUe8AO8eql4sQIUqYVlQ5utiqqg%2BlGc6qZ06hbisQOn6qrxuaNbAAsBcK2eGgMqBf%2BCoERKAvAnvbAoLPBK9%2BE%2FSGCeuURKOpECNmAgzEYZ9fCuo6QTuHEDE%2BoIthBQeYoBkuWkz%2BoWCdCsQSoCTpOSHPCmGTCBbrozg7ABByACw6mnC0p1hFADEDCuo4ROsLYFHtJKrmQAOrAEsrGNKvGueAEDQdAYGVETOTADulIXudSyPACzaGoIsJAA93WKHBAD%2FCVz4diWMZEsDroDj%2FVYIvBiNwUEBRB1QFsBARACjqW0S1t6%2BySsHYdfGpg5ppWmhbB%2BV1A8tUOZEEBkJ6YEZls8ShACWnMECmAD5%2BF%2BVpFCfZQC%2FCMptjA51yK3NhAPdttE96CZQcAXYyMZlBP%2FVCUgAkwLW01ltY%2BVKBM7XDulUyFAZP8icwnQuI9LNZa7UwVgmP9yAWjTuY77uG1TU2J7UyAAAcMRu8NRBE%2FwUUCFBLIru0MwBZ8zASGwBFMQHEMQBD%2FgAz4QJykQAT6AA0EwBEgAAUuQuX0bLv4BvC2ABMOLA8aLvMrLvENgN62DEb93CD7moEt7vo%2FluUu7aVToAamLvl6USAVgvujLtPVbtbaiZAWgAO97vwEgArCFmyv6AgRcwAU8BQOhZCZgwAz8Agi8BUTQwASMBBRcwUggwVNAKm5xAhL8AhZcwRhMBOAWR1DruCJwwiicwirsuIolCB7QuCtspL3QWCa8%2F8I2fMI1ZjYh4Lk3rMKPlZiFIAEmMMRETMRNsBsbsARFvMQm0ATgQwRMHMVSbMSfowUnMMVYvMRO%2FFSLoF0N%2BsUloAAFAAJoA8ZfrADWJQhebMYKELIXZ8ZfnADDpQBwDFucAgRWC8czVTVdE1QydVpOUQMggAKEXMiFjAUYQQSGvMgosAS%2BYjaKzMiSPMkoYAJLcMeRTMmaTMgmgAXjh0xL9ZOZa7pAOVQldgGhLFOMQzmlHFObEjL7W8pueXGtPMagcctkHAIhcDXrRAJN8ADAHMzATDgS8MvCLMyOHCg1sAFEEMxN8MxLsAREMM1LYMzHLMwkgAvM7MzQLM3UbP%2FN1wzM2cxOgne5olsAL2XOUzN%2BSqXOVSwB6qxTFnSu8Yx1nRLP%2BKzONqcFJIAFMvDPAP3P0uzPAR3QROBfk7MBHXACVgMaIHB4IUDNBF3Q%2F%2FwAHeBOCs3QuAzRJ0AESzDRFP0AJzC%2B%2B2S6w4XOKJ3SKv1i9aXS6FzFLuXSY4wLeSbTgNIpMp3TLq254nQCPv3TQC0DQD3UJ7AbXCwuSkYCQQ3QRD3UMjDOSH0BSv3TAd3UQT3OMiMeF0BhHvDQuazLYK3LgeIfYQ3W%2BnEBZQ3Wj6xkaR0CuqYobQ0CuNzWpFIIF3ACHZDXer3XfK3XeN0BCJ2%2FKrDQPt3Xht3XH9X%2FCxsw1X992Id9Ap%2BMZhR2ASMDC9nl1ZjtnA3X1ZlNeDfF2Z1NsZfd2eDTKZ0NApRt2acd2LVEAo792nqtAh4z2LD92iQwobRd24d92zt7Uxtwy1ez1cIN3LfM0%2B9B3Lycv1yN3FuN3KBBZK7i3MK93MVNNhNAAtid3dq93dyd3Z8MBN0d3t2tAtb2RSog3uiN3eTNMtk13e793vrk2%2B%2FN0%2BHS3vN93%2F0qMvcN36ADBCrw3wAO4BswAQS%2BAQF%2B4P8NQAi%2B4AE%2B4AO%2BMhPA4BI%2B4ATe2%2BS7kbCQ4RpuMwW14bCwMmbj4SI%2BvT4FMiPODAlF4Cq%2B4oDBGyv%2B4gGjBS8%2BHOMTgOIAAxjISOMw3mktjmoC8%2BNAHuRCPuRDHggAOw%3D%3D';
var aiderss_mini = 'data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAD%2F%2F%2F8P%2F%2F%2F%2Fov%2F%2F%2F%2B3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F5%2F%2F%2F%2F43%2F%2F%2F8G%2F%2F%2F%2FqP%2F%2F%2F%2F%2BHh4f%2FJiYm%2FycnJ%2F9JSUn%2FPj4%2B%2F2pqav%2F%2F%2F%2F%2F%2Fm5ub%2FyUlJf9hYWH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Fiv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FNDQ0%2Fzo6Ov%2BAgID%2FZWVl%2Fx4eHv9WVlb%2F%2F%2F%2F%2F%2F52dnf8iIiL%2FYmJi%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Br%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Fz8%2FP%2F9NTU3%2Fvr6%2B%2F5ycnP8pKSn%2FgYGB%2F%2F%2F%2F%2F%2F%2BioqL%2FNDQ0%2F3Jycv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2BVlZX%2FUFBQ%2F1VVVf9bW1v%2FR0dH%2F4iIiP%2F%2F%2F%2F%2F%2FqKio%2F0BAQP99fX3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8jIyP%2Bvr6%2F%2FgYGB%2F1FRUf%2BLi4v%2F%2F%2F%2F%2F%2F7Gxsf9TU1P%2FiYmJ%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F7CwsP%2BoqKj%2F1dXV%2F5ubm%2F9hYWH%2FnZ2d%2F%2F%2F%2F%2F%2F%2B4uLj%2FZ2dn%2F5KSkv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Bjo6P%2FcnJy%2F21tbf9zc3P%2FgYGB%2F8nJyf%2F%2F%2F%2F%2F%2Fx8S%2F%2F4N%2Bdf%2Bdm5j%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F9%2Ff3%2F%2FFxcX%2FwsLC%2F93d3f%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F9be6f%2Bjssv%2FztHW%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Bjv%2BP90oe7%2FO33u%2F5e69f%2F3%2Bv7%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FY4vX%2FTYTk%2Fxtk4f9klOb%2F9Pf7%2F%2B7x%2Bf%2F%2B%2Fv3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F57A8f9%2Fquz%2F8PP2%2F8TV8%2F%2BKruz%2F2ub1%2F9bh8f9XlOv%2Fztz0%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2BmxPD%2FEmbk%2F3al6f%2Fk6fL%2F9fP0%2F9Te8P9Ih%2Bf%2FJHPl%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FP%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Fzz%2F5m67P8ja%2BD%2FMnLg%2F06C4v8na%2BD%2FNnfj%2F8nY8P%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F6v%2F%2F%2F7r%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F28%2FD%2F2eLw%2F5W06f%2BCpef%2FpL3r%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F5z%2F%2F%2F8b%2F%2F%2F%2Fuv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F6X%2F%2F%2F8PgAFhAAAAcwAAAAAAAAAAAAAAAAAAAAVtAAC5EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAA%3D%3D';
var icon_comments = 'data:image/gif;base64,R0lGODlhEAAQAKIHAKjA2vH2%2BsXW5%2BTs9e%2F1%2BouszvX4%2B%2F%2F%2F%2FyH5BAEAAAcALAAAAAAQABAAAANeOFDcJeRICYS5mAgwZblBSBAGUXTHF4wsMZydOgqOA7xBad5D7y%2BbQamwGg1crtNLUzi6fEkPjYiE0g4GxsviOxpeh8DtAMT0GBwUbTBlGFCTAhCOyj7oqNcAz4cnAAA7';
var icon_digg = 'data:image/gif;base64,R0lGODlhEAAOAMQZANvb2%2Fn5%2BdfX1%2FDw8O3t7dLS0tXV1c%2FPz%2Bnp6dDQ0Pj4%2BPb29szMzO7u7vX19dbW1vLy8vv7%2B%2BXl5eLi4tjY2N7e3qioqP%2F%2F%2F5mZmf%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABkALAAAAAAQAA4AAAVyYCaOomWaGImto3W9VypibyC7DiHJ9BUME4zpoqsILbTfRICJuCSVB4ayugAFB4xtxaXSlgcGZlEpU87UDHc1JCAkE6NM3bq844A5vXSBVwBpMywZLnEWFAY8MCkufxYGBTwKEA2MF4AWBQk8a2prXBkhADs%3D';
var icon_delicious = 'data:image/gif;base64,R0lGODlhDgAOAJEAAAAAAP%2F%2F%2FwAA%2F%2F%2F%2F%2FyH5BAEAAAMALAAAAAAOAA4AAAIjjB%2BiK3i8nIFKJmppkzpTAIbAQJaDGJolCqokO7qwe7L07BYAOw%3D%3D';
var icon_google = 'data:image/gif;base64,R0lGODlhEAAQAKIAANIgEczf9xtDunaR0P7%2F4%2F%2F8%2Fzy1RP%2F%2F%2FyH5BAAAAAAALAAAAAAQABAAAANhKLbcLuSUKIMsuABxehiDIAqDRWxeaHkitkXhRGSBpQmFekTEjPWoWEHSGe5uB5EvgzmiWsNmFMgRGg%2B12gkSGhSxowGyIFr5AqTtDk26ogfqTGgkEh82k45ezwQ4%2Fg0ACQA7';
var icon_postrank = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQVJREFUeNq8UqGqhEAUXdYtJpMgWP0DkyAIguBPCCabYLRarYJtsYlBsPgBVpMg2ARBzKIIBst7By4sC8%2Fntj3hcO7MPXfunZnb7Usoy%2FLnDcuy%2BL6P9SiKaEVRlCsDwbZtnuf3fYdOkuTEEMcxtCRJbdsibJoGYV3X0F3XUeb9b3t93z%2BfTwhRFMHjOIIFQfjXAKiqCp7nGcxxHPg4Dtp6vOdpmlZVFQqjK4RpmrIsK8sy9DAMH4bOsoxhmCAIKIQ4MaC84zimadIJlmVR9rZtrxlObomA1qdpIgO9ydXQwLquruuS1nX9swEoiiLPcwjDMF6e%2B%2FWX8TyPLjcMw299018BBgC8R7d7W5y5RAAAAABJRU5ErkJggg%3D%3D';
var image_congratulations = 'data:image/gif;base64,R0lGODlhOwEdALMAAESPtN3r8e71%2BMzg6xFwoDOFrWajwiJ6p5nC1netyarM3VWZu4i4z7vW5ABmmf%2F%2F%2FyH5BAAAAAAALAAAAAA7AR0AAAT%2F8MlJq7046827%2F2AojmRpnmiqrmzrvnAsz3Rt33iu73zv%2F8CgcEgsGo%2FIpHLJbDqf0KgU02gMppMGgxEQabm6LWKkED%2B%2FXRX6JzA43g6CYYjYehjvBscswTv0OW8AIm6CT36AKYg%2BAgVvBAAHb0MAkx2LG4YSa4EOgyABbwUNCod5K5w8hQUCEgoEEwJ1DKUTAVUCAVtpEroMVlW9uA8NXQNlW4kDjn8NrVVXD7fOD5gNswzRxKLB0629W9kU0A91YxQD4YkagrK%2FFb5gDwJ%2BBtTzs7USA8EC9%2B7iLPizImHgN36J4vGqgCgdg28TkOkD9wuhMGrefC2MQeDNwjQD%2FzrCYdVHEBwC0RDAWVnSAQNJDB5UWklyJhw9mhZhWvlmzgOeDqqdKsfT508HByT1LGhTEzukSh0kmJCAZ8wGPPWEpPltJoOOehCIdBpLVMtzjgpIqLoypgU%2FNgmAjIo0jUqgLfXAPakNBlYHagV2PKDg7ic%2FnpTOESDSwFdLiN%2FETNZgwZsxCJTuOnr4FCYDCEgx6%2BLngJ1FfwE0YOsWzgGbXQr9QmDg01MHBhKI7HL318wAAQoB4MIYaWFNTf%2BEwr36sgXLDlrNXDBPMlGXDX6%2FfWN6pk9Jo%2B4ubvw4qNA%2F5xMvlZH6ggLrDwq18lNq%2BaDeEma2dBtLi%2Bz8lkiQk%2F9nQ0mjxUyAOLUIW9GAJyBgEhSih1eAbHTBgC49kFYVflwF33sZxveGdG9ow1YVf1FXwV0KCIDUiCB2saEW8FGASUewgPhLA47Agp9MkBHoQH1kvfBXYAwNpdNQhmCi33nrsNUWgOY92Bl6iwiQHHqcTbDIk0Cah2FYPAHQFwaa%2FBUTUNapmdebYIZZpkBvJKBSAo4gUFVgbIZo41D6RcaSk0FiyaQnNMDxEZRv7oQooeZh8gCIBvADX5xjMsqaLofa9mWAT2ZaTlMHcJCmddygWMw2IWLyaZVhqkqQBWm5UYYDCzgy1VGjqGohpOftiCKjYTbaKQ2rfNNAjpeOSKz%2FISAukItSb77pZrETPCKAANDpdcqTjnp6yonzdMQnoozqMwC1A9RIgSbkMqPNAF1cqyOVJMLKWn8X%2BEEALKGIFI28E9C7HXouIhotBaVEO22h3nKJnCXXFvlBcXFEYkmPCRSya7gS0AVHtdcV8BJ8hSyQwBXMZMVoyroNpVTHjAYwGAMz1ZIpAHIwEPMgeBAA0btxMLDKJo8kwIBlelyrYRwd10klBRg7ZgAB%2FFGwHK4SMFMq0lAvzeWfuJ48JJXDJfBayGwaKzG6T1aM7ghtrETArlqutOuz6A4AnQHMkBzm3fBtdYrhAHRbs1IFKH7dJJise9I5XWpaVCuW7V3BsCMikeQKXQdc4XTecOwd5wMDNEUA5RUodY4fmisA%2BpnnRUV53Xrv83fgjIKMrdy2lUAOPMN4gEA0R27ATwbDzzPrBs9XMJCFBQcDAooQecRB9LZUQT3x93AwEO0kTPO91uGPY70Ex4ONJBYdbDkR%2FCRgZRT9PsiPfwdqw7HA%2FPsLgRbOF8Aa9O8N%2FyugAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAxhCCMAADs%3D';
var image_authorize = 'data:image/gif;base64,R0lGODlhpAA%2FANUAAPT09cPExfj4%2BdTU1GdnaIWFhXt7e%2FHx8ejp6aurrLi4uF5eXs7Oz5aXl7nc7lOp1Nrb22ez2e3t7snJybKys%2BTl5eHh4uDg4ebm6N%2Fg4fz8%2Fd7f4Z%2BgoL29vuLj5PPz9OPk5eXl5%2FHy8%2BHi493e4Pb29vf3%2BPn5%2Bvr6%2B%2Fv7%2FOfo6e7v8Ovs7erq60Cfz19fX4zF4s3m8uXm58bHx9ns9svMzKioqXBwcb%2FAwI2OjtfX2P7%2B%2Fv39%2Fd3d3zOZzP%2F%2F%2FyH5BAAAAAAALAAAAACkAD8AAAb%2FwJ9wSCwaj8ikcslsOp%2FQqHRKrVqv2GwzBou4fD5XBBbTms%2FoNNPxALvfvodDTa%2FbpbQ2fA9%2B0O6AgYEOX3yGLnOCiotZDoaPbomMk5RNNIWQh3%2BVnJ1EeoYRoo8PnqaVjnwuMCJDkJKnsYCgbxECRZClsrt1MaFCrUKZZbzFZzCGDzGirpAwxtBZEZkRzY%2FV0dlUmL%2FCkC4K4eLj5OXm5%2Bjp6uvs7e7kExhJmT7YP%2FTa%2BUYSMyRI9Pbo7RhIsKDBgwgTKlzIsKHDhxAPllCg4Qg3PgG%2FRdzIsaPHjxEnSDgyDVLGazxSqlzJsqXLlzBjypxJs6ZNlzVaHEFm0poh%2Fxg3gwodSrTozZxHfPX09iiGhqdQo0qdSrWq1atYs2rdypUq0iO09pzk8yCF2bNo06pdy7at27dw48qdy%2FarkVTd7j1ygKKv37%2BAAwseTLiw4cOIEysebNdIWHpwHpyYTLmy5cuYM2vezLmz58%2BgNTcucgmyKhqhU6tezbq16tFF8JqOJKC27du4c%2Bvezbu379%2FAgwvvDTv2xUyITChfzry58%2BfQo0ufTr269evTi5N%2BnIxGie%2Fgw4sfT768%2BfPo06tfzz79BJ1N2ORyAKC%2B%2Ffv48%2Bvfz7%2B%2F%2F%2F8ABihggO9BwYUXYIhBxoAMNujggxBGaF%2BBUijwwYUYZqjhhhx26P%2FhhyCGKOKIJJa4IYVRKCDCiiy26OKLMMYo44w01mjjjTjm%2BCKKUChwwI9ABhkkCRNMIOSRRypQgI9INglkAQU4KSWQRBoJpA0FDCAklE6qUOSXQaqgQAIJ4EACkDiQqYCWU%2FL4BJNTHlDACy9Y6eScVibwQgJxIslln03OWSeQHGQpJJ1OTkDnojdoOQABiyKqggGRDiqlm04osMKmnHbKKQSLNsBpkZsOMIEMEFCawKl6rpqAppvKQGYCMmwKwQQQyDDBCqTq%2BuWpm6aZwACe2hoqp6bWusKYONCJLJk4bKponRNQmsMKN%2BwZrAErNPBCDrUOkMOuxXaKaRMKSKD%2F7rrsrqvnnASsS6e6c86g56L2vgApnQlIwMC%2B%2BjIggZ4GQCrBvDNUOgMIlBaQLQXtDvwCvOvWK4G3karrrQGUNsDPvBIXcPC3C1f8ggEdQBDxyhKcy0S6LLObLQSQQjwyvS%2FMIIHFIc%2Fgrchz9vuuxDeQeTMIM%2Fh8Mgh6QgzCCzdEPHPNOCcNtcrzMvCCxxJQCkHCe3IAaQcScBCpATp3EGnRMa%2Fr8hIKsCD33HTLzcACN8xQwAI5yL3AAnLvPQMLgsudwAIJsDDDAgWw8Pfcjx%2BeuN%2BAy03BAgZ4QPjfnFc%2B991579335vYiTjkLh3e%2BQNKqT84CBTkQ8DcBmvt8%2FwPng9dd9wzwpdjC78AH%2F3sDqi%2BgQwt%2F%2F753AC0s%2F7sNC9jQQgCMI7%2BABS1YkDz00v%2BefAuXG4B989EHYD7zwROv%2BvHLc%2B%2F9Ai1An8P5AVhA%2FfUG4I19B8DfHwD%2Fv9PB7bonvODxbgoKQIACF8hABcpOAeYbIAJklwOxLSAACNibDS5wAe4hgHoFQADxGhCAESLAgwr8GwIU8DcO2MAGOggfBQJAgRs08IERjF4GLwg6BVxuAQjQwQIIYIMAKMl8KtSB7AyAAL7NEHoEuEABDFBECsgOgw1s4AErlMUGspCJCuQA5hAgRrzdDoMs%2FFsAPAhCBGRgb38rQAZOqMMUAv8Rep3DYBn%2FZsMFfnGBYmTi8kQYRxUiwIqcI0AN7qfANDYgf5y7QQ3I2DkCUKCLWuxdj1TAyU568pOgVMEiQakD84XSk4uswSlX%2BUnzqZKVq6zBKz%2B5yADAUgUbcGUrTXlLFWwxRRgIpjCHScxiGvOYyEymMpfJzGY685nF%2FGWPQkDNalrzmtjMpja3yc1uevOb4AynOLHJPARW4JzoTKc618nOdrrznfCMpzznSc96rrOcFQKBPvfJz376858ADahAB0rQghr0oAj1Jz5T5IGGOvShEI2oRCdK0Ypa9KIYzahGNxrRhfZoBCANqUhHStKSmvSkKE2pSlfK0pa6lKT5Hn2TBWZK05ra9KY4zalOd8rTnvr0p0AN6k1jmimhGvWoSE2qUpc6U6KiKwNQjapUp0rVqlr1qljNqla3ytWuepWqTn3ZBsZK1rKa9axoTata18rWtrr1rXCN61nDCjcS2PWueM2rXvfK17769a%2BADaxgB0tYvdJVCQHQQQ8Wy9jGOvaxkI2sZCdL2cpa9rKYzaxjOwCAKeRSs6ANrWhHS9rSMmAAVRgADmrAgNa69rWwja1sZ0vb2tr2trjNrW53ywAjrsAKEoDAAIZL3OIa97jITa5yl8vc5jr3udCNrg5UsAN9WPe62M2udrfL3e5697vgDa94PREEADs%3D';
var image_done_off = 'data:image/gif;base64,R0lGODlhpAA%2BANUAAMjj8dTU1enp6cLCwq6ur9vb27a2try8vebm5%2BTk5OLi4szMzPb39%2Bzs7d3d3d%2Fg4NjY2PT09PHx8vDx8e7v8Pn5%2BfDw8PDw8e%2Fw8Pj4%2BfHy8u%2Fv8Pj4%2BPPz9Pf3%2BPn5%2Bvv7%2B%2Fv7%2FP39%2Ffz8%2Ff39%2FvP09PT09fX19p%2FP5%2Bby%2BOz1%2BqzV6qbS6LLZ7Njs9d%2Fv9%2BHh4fn8%2FePj4%2FHx8fPz89nZ2r%2Ff7%2FX19fb29vz8%2FPr6%2BvLy8%2B7u75nM5f7%2B%2Fv%2F%2F%2FyH5BAAAAAAALAAAAACkAD4AAAb%2FwJ9wSEwBWqheD9UCpIjQqHRKrVqv2Kx2y4W6WMqwuMdydc%2FotHrN%2FqlW43h4pWrb7%2Fh89ZWU%2B1EveoKDhFwvfohhgYWMjYwqfYl%2FdY6Vlm1wck0AAGB%2BK5eholsucgAxUHx%2BZqOtrlCeYixTKX6zr7ijtXIvDEc2lD%2BZcU%2B5xpUAn7JDyabHz4wtkmHMfi3Q2IKRiddCw2MoBeLj5OXm5%2Bjp6uvs7e7v5Ak0VdNLlLt%2B2fpaOAo8VPVYxfgWx4fBgwgTKlzIsKHDhxAjSpyYUEcBEVO2yWH1w0YiFBRDihxJsuREGTimSPsjcCWiFiZjypxJU2GCCFOaxUFBaeA0%2FwA1gwodCvEmLTksgqlIwTRFKTkpSEidSrWq1atYs2rdyrWr169WjU6JFQYAFXyyRKhdy7at27dw48qdS7eu3btvxUp5Ksbs0TguRggeTLiw4cOIEytezLix48eH9UohWE%2FMihyYM2vezLmz58%2BgQ4seTbq0Z8lRIFXeqcK069ewY8t2jTrKodViXoTYzbu379%2FAgwsfTry48ePIhde2rVESIBDQo0ufTr269evYs2vfzr079uWpKX9SoaO8%2BfPo06tfz769%2B%2Ffw48t3D34v2Thl5uvfz7%2B%2F%2F%2F%2F10XJEH0w48cGBCCao4IIMNujggxBGKOGEFFIYIBUFVKDhhhx26P%2FhhyCGKOKIJJZo4okoenjhFAVk4OKLMMYo44w01mjjjTjmqOOOPMq4ohQFcCDkkEQWaeSRSCappAAJNJmAklBGKeWUVB75YxQFeKDlllx26eWXYIYp5gAElEmAAQGIqeaabLbpZpcy4NRFAQzUaeedeOap55589knmAgkEYAABAdhZQAABNFBnAwkwGgCddj6AqAB9VmrppX3GeUYBOHTq6aeghirqqKSWSmYAnTpQpgQSHGAmATXgEMCZZqLaKgEDDBprqbz26uuoms7567DEmkqop2XKMOsAOCBw5gzLyrAArrLCisMMZxar7bY4BMtFASeEK%2B645JZr7rnopnv%2FargTlKkAmQqEC%2B%2BsAZygAK4nkPkqAen26%2B%2B%2F6Hq7RQEmFGzwwQgnrPDCDDd8asGzGmACmQ4U7CoM9JoAA64TEwrDxzA0LPLIJDMssBYFRKDyyiy37PLLMMcsM5kDBDAtAQ5EAAEBB2B8ZgT0RrDxADrzDAEMEBgg89JMNx2zAnJ%2BW8LUVFdt9dVYZ6311vqWOQAMVN98JgIl0FvC0FOLfebWbLftttZQb9rB3HTXbffdeOet9958C%2FAx33R%2FjADghBdu%2BNxxz7nD4ow37vjjkEcu%2BeSUV2755Zhn%2Fnji32ru%2Beeghy766ItzPrAGqKeu%2Buqst%2B7667DHLvvstNdu%2FzvrpqPM6u689%2B7778AHL%2FzwxBdv%2FPHI%2F557FgVM4Pzz0Ecv%2FfTUV2%2F99dhnr%2F323Eu%2FPBYFXCD%2B%2BOSXb%2F756Kev%2Fvrst%2B%2F%2B%2B%2FCbD0PUA1tg%2F%2F3456%2F%2F%2Fvz37%2F%2F%2FAAygAAdIQP3Nb1MYSKACF8jABjrwgRCMoAQnSMEKWvCCDTzgnDbAwQ568IMgDKEIR0jCEprwhChMoQpBqMFvUeCFMIyhDGdIwxra8IY4zKEOd8jDHs6whQPjgRCHSMQiGvGISEyiEpfIxCY68YlQNCIMbnCGBzQgiljMoha3yMUu8sABOjjDBvzhxTKa8YxoTCICBJAGATwgAQiIoxznSMc62krxjnjMox73yMc%2B%2BvGPCIBBltSAgwYI4JCITKQiF8nIRjrykZCMpCQnSclKCoAGPtiHJjfJyU568pOgDKUoR0nKUprylKhMpSmDAAA7';
var image_done_on = 'data:image/gif;base64,R0lGODlhpAA%2BANUAAO3t7dTU1Lnc7VOp1IrE4s7Oz8TExaqqq5vN5oWFhbi4uGhoacnJyeTl5V1dXnt7e9rb3LKys5mamujo6Pz8%2Ferq6r6%2Bv%2BLj5OPk5d7f4fPz9N%2Fg4fHy8%2BHi4%2Bbm6N3e4ODh4eHh4uXl5%2FHx8efo6fDw8fT09fX19fb29vf3%2BPj4%2Bfn5%2Bvn5%2Bfv7%2FPr6%2B%2B7v8Orq7Ovs7ejp6UCfz83m8tns9maz2fP5%2FMvMzF9fX3BwcP7%2B%2Fv39%2Fd3d3zOZzP%2F%2F%2FyH5BAAAAAAALAAAAACkAD4AAAb%2FwJ9wSKQRbDOfb2Yj0IjQqHRKrVqv2Kx2y4UKBsqw2DcQdM%2FotHrN%2FtXA47hyUGvb7%2Fh8VZCU%2B2dmeoKDhFsCfohhgYWMjYU1fYl%2FdY6Vlm1wcTYICASZcQOXoqOGcgg3XpFji6StrkOfc1M0fqGvt6S0cgIcRwSUP7FhT7jFlQS1YrY%2FCH4ExtCMNpJhQ81yNtHagqqI2ULCSjMK5OXm5%2Bjp6uvs7e7v8PHmDBNV1EuUun7b%2FFoABh%2Bo3At0I1yYHQgTKlzIsKHDhxAjSpxIseJCFAooTOkWZxEyRDMsihxJsqTJigwATJn2hyBLbzxiypxJs6bNmzhz6tzJs6fP%2F5o4Kkz5GGcGpYLUCPxcyrSp06c%2Bg86SQ2dIDRpYaVyLQ4OC169gw4odS7as2bNo06pdK1bqFGEIqOhT1qKu3bt48%2Brdy7ev37%2BAAwvW61bKoTFxp3Z0wbix48eQI0ueTLmy5cuYM0cuLMXgPTIrQoseTbq06dOoU6tezbq169Oco0D6XLQGi9u4c%2Bvezbu379%2FAgwsfTrx37CiHaStSwby58%2BfQo0ufTr269evYs08%2FjpxjIkApwosfT768%2BfPo06tfz769%2B%2FTcZXseQweF%2Ffv48%2Bvfz7%2B%2F%2F%2F8ABijggP8xIFQWXyRSxgkMNujggxBGKOGEFFZo4YUYZnihgVwYgf%2BEOE3QYMKIJJZo4okopqjiiiy26OKLMMLIYRcKaGDjjTjmqOOOPPbo449ABinkkETqOCMXCnCg5JJMNunkk1BGKeWUVFZp5ZVYOnnkFgqM4OWXYIYp5phklmlmAAykyYCZbLbp5ptwjrmlFgqUYOedeOap55589ulnAjkEmsMCB%2Fhp6KGIJqponnNmocALkEYq6aSUVmrppZgCKgEDByyQgwSRKnDAARBACgEDpx7waKQWjBoAprDGKiumjWKhAAC45qrrrrz26uuvwAJ6AK4WBIoBBg8ImkMEABwwqKDDIptDAjosC%2By12Gb7a61X3Krtt%2BD%2BKmyugXI6LQAFDIr%2FgbMJMCDBuc4yi0EOOoRr770AcGuFAjH06%2B%2B%2FAAcs8MAEFyxsvxcEagCgBvTLsLMHxGDAtDEAqmwOBWes8cYE61uFAjCELPLIJJds8skop5yAAweEfIADC8CwsgUhP%2BCAAS%2B3bIADCcjMsgFAG5Dy0EQXjbLHVCggw9JMN%2B3001BHLfXUKydwgAQOOKB0BA48gLMDOsiQsww7JyAD1w9EYEAEYU%2Ft9ttwR23AgUjGbffdVGeddQIGMI111jrgIDbLZPO89N%2BA46344mTTzSUJkEcu%2BeSUV2755ZhnHgDQmUcONA6dhy766JDPfYYCHqSu%2Buqst%2B7667DHLvvstNdu%2F%2FvtrZtOowi89%2B7778AHL%2FzwxBdv%2FPHIJ6888Loj2cDz0Ecv%2FfTUV2%2F99dhnr%2F323Hc%2FffNcHiv%2B%2BOSXb%2F756Kev%2Fvrst%2B%2F%2B%2B%2BaDT%2BcF9Ndv%2F%2F3456%2F%2F%2Fvz37%2F%2F%2FAAygAPEnP0d14IAITKACF8jABjrwgRCMoAQnSMEKLrCAtgqBBjfIwQ568IMgDKEIR0jCEprwhCj0IAa7BYIWuvCFMIyhDGdIwxra8IY4zKEOdxjDFe5rA0AMohCHSMQiGvGISEyiEpfIxCY6kYg%2B%2FFgGpkjFKlrxiljMoha3yMUuevGLYAzjFaOYtA%2BY8YxoTKMa18jGNrrxjXCMoxznSEc1kohxCgaAQA%2F2yMc%2B%2BvGPgAykIAdJyEIa8pCITKQfLXCCM2TAAIqMpCQnSclKWrIAAUhDACyAgwJ48pOgDKUoR0nKUprylKhMpSpXycoCGOBRagAABAJAy1ra8pa4zKUud8nLXvryl8AMpjADMIEd9OOYyEymMpfJzGY685nQjKY0p0nNalpzmkEAADs%3D';
var image_screenshot = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK8AAABkCAIAAAB%2F3%2FdVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAgY0hSTQAAeiUAAICDAAD5%2FwAAgOkAAHUwAADqYAAAOpgAABdvkl%2FFRgAAEIFJREFUeNrsXX1QU2e6%2FwVFEQuCH4kpgy4J%2BBWxaZe1Dm2dC0ZzWbW1XGXwThlddzYZWzXczFiZnd7dHeudht2ZlIjdXdIZqzfOymCHWisykQC965bbsVRTMLYIEatXMRHkYxNUPnLuH%2BckOUlOkoOiDcn5zRnmnOe87znvOc%2FvfZ7nfd%2FnEB5BEODAAQAQx70CDhwbOHBs4MCxgQNL8M6cOTMlGjpjxozU1NTVq1dzOnsauNlHAOCNj49HflvHxsYGBwe7u7v7%2BvoKCgo45T0NKgDgjY2NTZVGu1yu9vb2kZGRNWvW%2BJs4Ho9TKkv4zSl4qABg%2BlSKceLiMjIyWlpamB%2BySsZpOnxkoDSFesMjkY0xX8yaNcvlcoV92lj4%2B9qdvRPdwnNleHg4wu2Bn5VraGjYvHlzoKeIKdvAU5pe%2Ff3nTb%2FbzL5K%2FsEvLjxfyVOaosRTsHlHMcIJokr22h0AGHjEamEhZSaruCoO1iP5iXvOR3DI44fQ7yjW3L%2BL3cZ69km8p2n4yIboDZG6Glt5SpPyCl3Wp1S26uz0nalnGyg2EKw21myIDCQGwaxZs57MNgzXtULxWore3BedtoEg2Gys2eDxFNYj%2BYl7jhzJJ9WQf8RKFbG6RXuOeJ3K%2BT1ufXkLPgmCBbMTCnIZbIO9twb8%2FRv4uRfs9dEVN5A74wSrjS0bSN64e93RWuidTqfzs11fv%2FuhkSAIwrgn%2B90VnzmdTmfbstp3vyaLGvdsufrHNqfT6XR%2BtuLd3xzpIiYBTqfTr3FOp9OvTOjhZaBtqD9%2FDTnzM%2Fnzi0S3DzUOR59tmGQ2%2BB6uKfxXMQCIl1Gzfee%2FOLrmj6UbAED8zoFd3pJf%2F0CahA2VzsZ3xJP0kHRCBJJj4rah7%2FSFlKLsRCBRtTGtpbW3K%2Bpsw6iL2kTJ0wM3z1nWtgGEi%2BzwIFxYkSki3PsgCMJ67QpchDuyFy9dTRZdf9hRizdnk9hrJCYRDocDgMPhCFZgArbhil0v4m%2FkAwBW8hXX7XX2aLMNt5zUZrrtv8Jguj3mOTs5UaQoayU9PO%2B46NnfcNjhcDgcjtpdRwv3Te4AlSTEk48p6s23cf1altLEU5p4yst6DJSe74sy2%2FBo3OXZ6m6OeArU3Ryhn5pQ3ED2fs8ObX%2F9pl9dPPDheYIgCOtHmqOk1PpR%2FnP5H1kpK0Kr9SzA2jb0nb6QUvG%2BjKhyb3vTEC2xpDducBH07cyNRwDO3HjkJ5%2BsEeb6w9%2BVWwqTkpKSXvhB8iusXiYGRG831koOvJCUlJSUVGgp%2F%2B7wegBAw76kdX%2B%2BjpD7z2y%2Boaux2%2Bsm4HYWiJJY0jum8NX6uIv47PrDQCHLy04nMnabhgCC8O4A8N%2FfTYaUqk8shIsgCECmGxrS0SYMAUCmG5K5D4LtP%2FnUJEvb8KeagdyiFZk%2B5%2BftL0rJqvmxfh0%2FCmzDq7%2FfS7JhEi8bbp3C%2BmfZi7WFl01vi4HzdZ9A8qn4J%2B0TIdlAX6eoYpqlzlyXQ6wDgIKqeSQ%2FqqidqWcbyHWK8Un9ACIujJcW7a76AGUvJicnJydvtXxwuWI98ZPB5XJNdL4hWkH3iS4XEXabJNsAiN5uGHw7MjoEQTx48MBvjTuYbYhueGzDm6KEybQNU%2BPhCWJ8fHxsbOzOnTvz5s0L8Y5iJ9sFQP7BL9hvrExOb29v5LPB5XI5nc6enp6BgQHGLNlYy3Z5EhcTIttlymTQx8fHp6amvvzyy8wPyWXJPm4k7sOG6Pgq9%2Fjx45ya2WPnzp0evUdnJtyO1%2B5yambLhmBjin9c415OLIKmd94UG1NweDaIZjZ0HfsLT1ym%2FJIu61CK%2F6L7kb7DISbY0FdXB8X2xXpTB6fmmGfDj9%2FXIHv%2Fb7JzT1rqOT3HOBvqPz6LjcszFy8veunioWN9nKZjmQ0dp08uLsqbB8xTvbO6pe77Lk7VscuGLy36l7I3LgYA%2FItEcam9jgsYWWB6VD5VvekiLiFLfNYr%2BrhDdWgpp%2B8YZEPH6ZOLK5p2qxZ7TEUt79eW%2BkNLuf8KE3OeoutYk9dNwO0swMWSsciGjj%2B9%2F2PuxuW%2BGZFL9%2F%2Fn4pb3%2F4cbaoYG70JHNKxhWv%2F3OLdqNQGti8sY9c6tU3Dg2MAhyscU317n1MnZBg4cGzhwnmIiuKUsqte7D3J3Fn%2F1y%2BRJuuylFYffUC3k2DBVcPfKK%2FtasLOYoBgwpHuvmvd%2FBYQinTMAMecp6s%2B0wMcYJKsOFShMl3TclETs2YZbp02CosN%2BfiG9qsZjGIZ071WXkmmiS3I7D63MZC%2BXLVNwbJhSbmLwClK3BPfr9frq0kUFxKF0APV6fZZ%2BDulB2Mhh%2FjvPhArOU0xRdJ37nFek5xXpeUWf6%2B5SlqPidcpOFLyem2vqrgdbOaQZUWwbopENC%2BesRP81d4iQ%2Bcs3iBoFUVOgoFmOJQsDCrOUc1HkVEP6Fpmt5tIQG654lc1SzrFhyqHg9Vwcq37l3BDT3EP6Fpmt9Mwtz%2BijRZZRwF6u985hcFHkVHEWK7%2BqmaMsquYdowSK3xZXfNpMcUVRXPFeNa%2FIM3ZIZy%2FP3ZmrgDVa2RBF%2BQ2JLdyEAVutF%2BkZ9T791SWICjZwKp4YGPXOrVpxiMa4Iae%2FilMna%2BhjaEzBgRthcuA8RXBoFVjr3r95GYXf%2FPRNco0%2BfGTvnMnPiotP4NgQHPZmndYm0xRLwgrZYC5qtwKXkeNmwN5taE1BTsMkMKz7U1Tef8zqj%2Byd09tOOvirZks2TktIiozXbuzxYcNjv%2FSnwQA6%2BHkqzeNceNPPAV9jUHkKGQrsnfv4ipwUjP7TNne8%2F4UFD76xdcwSroibkRgBHVFa4lZBdHqK%2FAw0f%2BovVOu9%2FRvdWJuBP%2BhxFti7DTtSAQDdNOMxF7Vbsch99PdGqK3Yuw1rgbVbgcc2DwTxvJBfuf%2Ffdh38m7mtc86qNyKDEF7bYKnWGnsAQ5lNrlbl8enWQ0hJ%2FGCpLjOY4V%2FAI%2FVyLYjQfYp%2BX9%2FiVGm68WC%2BKbOb%2BBnQFFJbPxtAjh4ANq1H3g3knAKApb9A63qKENqtuNGIQnIOWozWddhkpQzMk3gKgDcyOjZnTvKHqs2lujPftX0eUYSIAyTFarkQ0hIN%2BYot1VqjoESj0Wg0JQKjttoSyAWDTa52FzjZbKeMvgElGo1Go5bbDLoQQg%2F87gvAbGjP1mg0mhKp2eB3X8abssLSX6BVQW1751LCZivNirj3O6y4mYFNbkOi9ixH9OPmZL%2F3RYvSKtVvSpMGH%2FRcdY0MR45t8PPldhukMrIXS7KlMNntkPh3xB7bPYAPSIo1ZEm7pa2HqsXPk0mNJos9jw8mYagfChHK8yUAsEAghC3gbMBNg%2BE%2BbgAZc4H7ANDxDRVLahXMVmTtVuygyTwVvR7k6SAtbaF238b%2F0J1ta%2BtMjgwLEcCGe7YeoWABdbBAIHTrgN6nNSXVZWVlfhEIzIYys1evCCEMBkFwrgS7KTOaurFLzMKe38cNoJnJ8msVQCNyrLQRyqSC%2FK%2F66elp%2F6WU%2FfavDT%2F0XE0QLJmWkBxhbPAhgA81fHWjKaZ8eXU2pZoAHdnZKI49GG%2FKjLPfYtdW1MI7rCDnHrqZePOHn6OywRsfkKElgO5%2Bt68Re8PJyQL5AwsjIyPLl4rLd%2BPgJ19essclLnopQuYibXbSFfP5ApjbSadtaTcH9ld7s67MPwQAX7JK6K5lb9aVVVuCCf3hvm%2FYsWjgTUN2%2BkI9brzojRjQiOP9TLxpwPEUdzEaFdSN2LGVkn%2BQ4o0buvuxYyu04iexCgAwOjrqcDgGB4f2%2F06nNZhG%2BnvGHwxEhqfgS1YJjUZtma1EUyyRFKvlOi1pk4VytUoSOAdQYivTlhl9CvDzVB5LHlroxyH3fReEbCbzTWGpLjMJgg4w1H5LM1ZmeeUpVAZWtrrdBFgUnqCPAKA%2FevKbduu%2BXxfe6H1gHuW7iKTZCzJ%2FIg54vfkU%2F0UCe3O1RVKcxz9%2B%2FHjlox2R396hq0ap8x%2Bv573415aBR6649%2BT8zpv2v3XEE1kbp81KeWbN%2BFbJrPepvWplt9gEkqn0c4bTZs%2Bz3Br4%2BILtfor0n66E%2F26wLM5aMs%2FZPXjlHCKgW0bPr5Xs%2BP5g5Ldz8JGr8%2F7o3FlxopT4e8PjtT3JvPgZ9wccadMG%2Fn3F7GnP6gd4eOXXGfUezWuYEYg5M%2BNyhDOp0VvitELh0LgL46nEwueeHRUmMsLk8AyxIHFaRLUnKtkwrCy%2F6zNuSJvf%2BVZyJse%2BsGw4depUND5XQoXieZV7Xrmr9U7WCUycEMPK8oEVtOtEExj1Pn3btm3REUWGOJspfi63caQT4MyDB4x6j4m4ocvqaJGmuP%2FJ9KjuxK3S2wAA6UJC7l4rut7LO0V9qafYJqoSjepO3NUD0N9BlJqH2GHDw1L99VKfuIHSer3xVs2ydOKteNKD8Iwg5InoH3rlFM4dEBVQtOjdcmC%2B6q2FV6PXUzAiWnOmEyoUIuIAtZ1b0Jt1YqgLAIZPmxOKxPFeD2IergeQOn0lhg61jgKAaD5xYH5s%2Frf6mPAUBavn5%2Boddf3JKoxdwUM93Wwg4Vo%2FClITqw4sVJbf4jUCQO669K9y4jk2RDFmLEkFMH0lEoqYjX9i1QFRFYD%2BoVf093TiGHIQ4TwF4wJ00FXp4KfDVHk8TPii9Rd7W9JmZAFA4hbpw9KLw97Isby3ntyhXAmdOrFsG55GPvvjpsA%2FhSiSmmwokKdXnLjFKydPJJ8jQwTR%2FM77d7LKez1jigIAiF%2BR9rBUf%2F3qNlGVKKpZ4FZ9VHoKt81nRrzqLZEqcE4i53kih1XJWLANE8lntzfrtLZVcpvR2APGhHZLdZnBLJSrVRJLmCqebH2pXG4zMpgmb%2BK8b1pdOyUPl07PgRkWQBKgek%2FcMKF8dgDmNmwnz%2FYYmyz%2B%2BrPJ1ZoAJQVW8WbrqwVt3g%2FA6NcymKVUOr8UZpMnGc5sE6iDJ%2FlzCAtap%2FOqPoSnCJ3PLlxFppn4nbU364y2IN01oIql3SyUq70p9obANhdr3HGHJFtKu5FURt5Bki2Fod2yHOCVc79P8RRHmIKQ3z4wnzW3oUQOQ5MljyEY9a9it9sAgfuImXS%2Bn40y5OCT1XbkzPy%2BoonufmwyTfECWlzs6%2BYYguXQQbRfM9SqPNDL%2B37cSvNr9madtm2VX%2B9gFAZcI%2FAuNOvrTQelPexJbFdJLLqT2E5WZHe1pzffIJXlSSR8aZmpOV8S1pvz%2BQLa0T1bD6MO2lapNSo%2B9Q4CL0Il%2BbNK%2FH%2BSkDtkM%2ByWth7fbwXszTot%2BRIE4R48gEE%2BV2Yqxfiw%2FDyZQGexoA2rtvODfL4QLuncb76BXT57OJdUzPLjOEm2J4KwN5vMjKp2WxRLtYFegAoh7M0mMsmfMfGfJrRb2noe%2BzGDN4Pqq03GHmm2xHdoLZP2tFns9Gf0fgfAKGT1wYGHTQxfOUiyBUaDEaQ%2FZn812juh2Qb2%2Bezh1ZwvN2m11XxNfjjeeLL1pVIp4N%2BhJflyoZbM7xbKS%2BRCg6dHSAU2sp5Qri6W%2BF7Km2LvrS%2BUy6mww%2BdzAdaPE9gMb1Np4Y8v1Q2GJkteMa1hkJZo8vh%2BrfUIw31wwPje6CUl2VIgm7LJ7K%2FmfSeRkyUb%2BtsIDs8C%2Fz8ArqDyoAz2WXkAAAAASUVORK5CYII%3D';
var image_powered_by = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKYAAAAjCAMAAAApK4EuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBQTFRFSUpKua2w0aqezXRJhYqS1m88d3h4s5KJ2eP04ePu5dXSy9Tk5Gks%2BIo0w8rX0tzsuYVw6nEu4On6%2FZY2rrTA53g1u8PRvnlaz5d%2BZGZq44VIzcPJ3uj6zH9V9n0w4czJ8XQvNjc36ci829TakZafydDenqSw3d7p1uDw6oU91dXhwbvB5N%2Fi7ZRjgYOF0svS2Vwqa21v5G8u0NnofH1%2BcXN13OX2WVlatKCe1tnnXmBi2Nfj2N%2Ft32IqcHZ%2F4ez%2BI3bULAAABW1JREFUeNrUlw13qjgQhqWAyV4EEfmoClxsCUXZ4iryobXm%2F%2F%2BrnYlgtXfvuXvu2nPcaZ3MO1F5DMkk9Pj%2Fwnpf8aUWk5q4yXZ3jXmQTFndbFTZI9n9YkreJgyj0SiKwkg1jfvEPBAnjDwi2ZlEgDeSpXvE3JlhKEupZVXUt6rMi0KnuT9MCpQe44fGlGFmGrwC7UjWvWE2oe5pPPNgckZhqD5UPgl1md0bpjSdujyTdccjjanqEeGHQA%2FuDpPPMs4C3Wkoxp7uSNxolndZkLJQb7g%2Fe1hyYzo277ZuVo3pU%2FL6%2BjrjjTmDRFpU%2F2rrKpaHi8V2WO6qr90sKz6bvk5fH7kvLpSUZW5fv2NITGGk6eYtazwoDh6ZCdJKMlGaUsorbZh%2B0Z4OmAtn8dgKZb0ulU%2F9KmxTaBuVpGLtySjwZcJJgJkQbvAVZCw%2F1l%2BFmZph5HQberyelPFnzBMFuIjA%2BElqhCFkQnnFCy8C5Ahd2HDXTr4Kk1eZdC5Dcbnu%2F4AZOs4ISr%2FjhLLB0wAjFCFwcYIqEsorvmBuaq5tZwbOrkJjBl6B2nGi9MstYvpuEifuCRMRZOJhA0UrEy3JGtMxKaeejoCSRIJpdvMlRN0475dlfxunnEK4hWXDlG2%2F38cc%2FAYFQtGLc1fXdZMbMjQLiUsLaHUC47%2BC36YFqLyM8t3q9ivdzfNtvgWsPOE0F5iFAokcUzFPcxFvxcDOpmN9HGRkAY3AHCPZNBAH1CIQahE8SofbY6ZJvlUSGL4851TJ%2B1CEEsRSAB0wMc6FcwXmeKwvdPDjQMN9oLWFybhldkqfSrevmzRxKbXXcN9hNPvrvi28Qk9LKC%2FL0vahhuJymp25xjoe9MhZjs2UZ4uz6ibnLZcQjue6rvclp9t9vbeLNfiEK%2BDjFOK6VEroztuChDZSGx%2Fvs%2BlAOcJEtIEBbORN1ErT%2Bh3M49n9w%2BREBoCpj5z2obW1CQjABB8XGIveeouYf7Umt08h%2BPz0jol3gnsS8Vol726M6a7rXj3Z93qIeYTY1kD0ELMHmBjXk8l%2BMlEswHx%2Ff%2FdMcAMTR%2FMF1sowI%2B%2BYILx6gx3ekGSU8tsF5hHs1JwgTq%2BTPLvuXW17%2FAQcA8eeJeBLnpbQ2MMafMwV9JVAZgZzXQ1HcwCAmQxezXDT8pqZlkqYHTS8CcyMpcwbALRXXWKesE5R93%2BVvIg%2B3nc1rEpv3quH8Xzem%2FB0DcKm6Pf2GlIKP0J81FL7KAqSOhiMPGqOoIGznjSI4HlZhuRgpLIU9kpQ8gAl4T%2FHbP%2FEqHXD%2BEvMpDcHHnRzuwK0ecITFCKTc7frhmmAS2gQebwZQaO6lhdt8IEZoeHA3%2BB%2Bj0tosIlk7aeYF6PKL%2B%2FtLzCHyry12qATgUnLLrWuTszzDjMaRYHFZHyeJ2nQnpfAoB6Rs4rk683ycm5eoHZj2M3Gq7n541KKa7jh9rqGJ8p4v59AGa9iuNW5st8rKVYCXEUKjg8LNqoDtYY4KrRpQQIVy4%2FqSafDplAbmWjXu9Dxt%2Brk9aesFE8eRuHahc81w2Bpm2LMMAoLDvEGCJfhWb56AJvhowi21nI1e3gEe5itlhU%2FdOphxdL%2FjHn89CGgcHEhg1ELYreAExOkMHRZ240KHucO38FW1vMTNN8oXz1hAPb09LTyh50C%2BX13611oyJimDQsGDbc08KkPMRvyQngNO4bDoihghKpvYM874YHaf1uCvT2j%2FvbCD88f6tm69Wbpp8PWuIWenjzHdMqHHwaYf55NHIKsw8vLS5sAbPqhXm6PWYFRNLgQmM%2BFOjkRV34l8tz648KuJc7cD0Wtmx89LL%2B1Nr5MWR%2BxuLB1aZfqU2f33X8LMADTM5X7TeItvwAAAABJRU5ErkJggg%3D%3D';
var image_loading = 'data:image/gif;base64,R0lGODlhEAAQAPYAAP%2F%2F%2FwAAANTU1JSUlGBgYEBAQERERG5ubqKiotzc3KSkpCQkJCgoKDAwMDY2Nj4%2BPmpqarq6uhwcHHJycuzs7O7u7sLCwoqKilBQUF5eXr6%2BvtDQ0Do6OhYWFoyMjKqqqlxcXHx8fOLi4oaGhg4ODmhoaJycnGZmZra2tkZGRgoKCrCwsJaWlhgYGAYGBujo6PT09Hh4eISEhPb29oKCgqioqPr6%2Bvz8%2FMDAwMrKyvj4%2BNbW1q6urvDw8NLS0uTk5N7e3s7OzsbGxry8vODg4NjY2PLy8tra2np6erS0tLKyskxMTFJSUlpaWmJiYkJCQjw8PMTExHZ2djIyMurq6ioqKo6OjlhYWCwsLB4eHqCgoE5OThISEoiIiGRkZDQ0NMjIyMzMzObm5ri4uH5%2BfpKSkp6enlZWVpCQkEpKSkhISCIiIqamphAQEAwMDKysrAQEBJqamiYmJhQUFDg4OHR0dC4uLggICHBwcCAgIFRUVGxsbICAgAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAEAAQAAAHjYAAgoOEhYUbIykthoUIHCQqLoI2OjeFCgsdJSsvgjcwPTaDAgYSHoY2FBSWAAMLE4wAPT89ggQMEbEzQD%2BCBQ0UsQA7RYIGDhWxN0E%2BggcPFrEUQjuCCAYXsT5DRIIJEBgfhjsrFkaDERkgJhswMwk4CDzdhBohJwcxNB4sPAmMIlCwkOGhRo5gwhIGAgAh%2BQQJCgAAACwAAAAAEAAQAAAHjIAAgoOEhYU7A1dYDFtdG4YAPBhVC1ktXCRfJoVKT1NIERRUSl4qXIRHBFCbhTKFCgYjkII3g0hLUbMAOjaCBEw9ukZGgidNxLMUFYIXTkGzOmLLAEkQCLNUQMEAPxdSGoYvAkS9gjkyNEkJOjovRWAb04NBJlYsWh9KQ2FUkFQ5SWqsEJIAhq6DAAIBACH5BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhQkKE2kGXiwChgBDB0sGDw4NDGpshTheZ2hRFRVDUmsMCIMiZE48hmgtUBuCYxBmkAAQbV2CLBM%2Bt0puaoIySDC3VC4tgh40M7eFNRdH0IRgZUO3NjqDFB9mv4U6Pc%2BDRzUfQVQ3NzAULxU2hUBDKENCQTtAL9yGRgkbcvggEq9atUAAIfkECQoAAAAsAAAAABAAEAAAB4%2BAAIKDhIWFPygeEE4hbEeGADkXBycZZ1tqTkqFQSNIbBtGPUJdD088g1QmMjiGZl9MO4I5ViiQAEgMA4JKLAm3EWtXgmxmOrcUElWCb2zHkFQdcoIWPGK3Sm1LgkcoPrdOKiOCRmA4IpBwDUGDL2A5IjCCN%2FQAcYUURQIJIlQ9MzZu6aAgRgwFGAFvKRwUCAAh%2BQQJCgAAACwAAAAAEAAQAAAHjIAAgoOEhYUUYW9lHiYRP4YACStxZRc0SBMyFoVEPAoWQDMzAgolEBqDRjg8O4ZKIBNAgkBjG5AAZVtsgj44VLdCanWCYUI3txUPS7xBx5AVDgazAjC3Q3ZeghUJv5B1cgOCNmI%2F1YUeWSkCgzNUFDODKydzCwqFNkYwOoIubnQIt244MzDC1q2DggIBACH5BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhTBAOSgrEUEUhgBUQThjSh8IcQo%2BhRUbYEdUNjoiGlZWQYM2QD4vhkI0ZWKCPQmtkG9SEYJURDOQAD4HaLuyv0ZeB4IVj8ZNJ4IwRje%2FQkxkgjYz05BdamyDN9uFJg9OR4YEK1RUYzFTT0qGdnduXC1Zchg8kEEjaQsMzpTZ8avgoEAAIfkECQoAAAAsAAAAABAAEAAAB4iAAIKDhIWFNz0%2FOz47IjCGADpURAkCQUI4USKFNhUvFTMANxU7KElAhDA9OoZHH0oVgjczrJBRZkGyNpCCRCw8vIUzHmXBhDM0HoIGLsCQAjEmgjIqXrxaBxGCGw5cF4Y8TnybglprLXhjFBUWVnpeOIUIT3lydg4PantDz2UZDwYOIEhgzFggACH5BAkKAAAALAAAAAAQABAAAAeLgACCg4SFhjc6RhUVRjaGgzYzRhRiREQ9hSaGOhRFOxSDQQ0uj1RBPjOCIypOjwAJFkSCSyQrrhRDOYILXFSuNkpjggwtvo86H7YAZ1korkRaEYJlC3WuESxBggJLWHGGFhcIxgBvUHQyUT1GQWwhFxuFKyBPakxNXgceYY9HCDEZTlxA8cOVwUGBAAA7AAAAAAAAAAAA';
// Generate at : http://software.hixie.ch/utilities/cgi/data/data
/*
Caching stores
*/
var subscriptions_cache = {};
var cache_count = 0;
var feed_id_cache = {};
var feed_stats_cache = {};
var stats_cache = {};
var request_lock = false;
var event_lock = false;
/*
API server
*/
var api_server = 'http://api.aiderss.com';
/****** LIBRARIES &C *****/
/*
This function lets you send debug messages to Firebug, without crashing when it is absent
*/
var debug = function(obj) {
if(typeof(unsafeWindow) == 'object' && typeof(unsafeWindow.console) == 'object' && unsafeWindow.console.log)
unsafeWindow.console.log(obj);
};
/* TIMER CODE */
var timer = 0;
var timer_str = '';
var timer_start = function(str) {
timer = new Date().getTime();
timer_str = str;
};
var timer_stop = function() {
debug('[' + timer_str + '] That took : ' + (new Date().getTime() - timer) / 1000.0 + ' seconds...');
timer = 0;
timer_str = '';
};
/* END TIMER CODE */
/* FF 3 selector function */
getElementsByClassNameFilter = function(className, notClassName, filter) {
var result = [];
var rightClass = new RegExp( '(^| )'+ className +'( |$)' );
var wrongClass = new RegExp( '(^| )'+ notClassName +'( |$)' );
seek = document.getElementById("entries");
if (!seek.getElementsByClassName)
seek.getElementsByClassName = document.getElementsByClassName;
seek = seek.getElementsByClassName( className );
if (filter) {
for( i=seek.length-1; i > -1; i--)
if (rightClass.test(seek[i].className) && !wrongClass.test(seek[i].className))
result.push( seek[i] );
else
break;
return result;
} else {
for( i=0; i<seek.length; i++ )
{
if (rightClass.test(seek[i].className) && (notClassName == "" || !wrongClass.test(seek[i].className)))
result.push( seek[i] );
}
return result;
}
};
/*
This function lets us easily do //*[@class~=] in FF2
*/
if (!document.getElementsByClassName) {
document.getElementsByClassName = function(className, nodeName) {
var result = [], tag = nodeName||'*';
var rightClass = new RegExp( '(^| )'+ className +'( |$)' );
seek = this.getElementsByTagName( tag );
for( i=0; i<seek.length; i++ )
if( rightClass.test( seek[i].className ))
result.push( seek[i] );
return result;
};
}
/*
This function takes a string and returns a colour
*/
var colour_from_string = function(s) {
var f = 0;
for(var c in s)
f += c.charCodeAt(0);
f = f % 360;
return 'hsl(' + f + ', 60%, 93%)';
};
/*
This function extracts the original feed URL from an AideRSS feed URL
*/
var original_url = function(url) {
var level = 'all';
var original_url = url;
if(url.match(/aiderss\.com\/rss/)) {
level = url.match(/aiderss\.com\/rss\/([^\/]*)\/.*/)[1];
original_url = 'http://' + unescape(url.match(/aiderss.com\/rss\/[^\/]*\/(.*)/)[1]).replace(/^https?:\/\//, '');
}//end if aiderss.com
return {
'level':level,
'url':original_url
};
};
/*
This function gets the current feed url/identifier from the hash
*/
var current_url = function() {
var url;
if(!url && window.location.hash.match(/feed\/(.*)/)) {
url = window.location.hash.match(/feed\/(.*)/)[1];
}
if(!url && window.location.hash.match(/stream\/(.*)/)) {
//url = 'http://www.google.com/reader/public/atom/' + window.location.hash.match(/stream\/(.*)/)[1];
url = window.location.hash;
}//end if stream/
if(!url && window.location.href.match(/\/ig\/(.*)$/)) {
url = unescape(window.location.href.match(/\/ig\/(.*)$/)[1]);
}
return url;
};
/*
This function sends attention data to the click API
*/
var send_attention_data = function(url,data) {
if(!data) data = 'type=greader_click';
debug(url + ' -- ' + data);
if(!send_attention_data.sent) send_attention_data.sent = {};
if(send_attention_data.sent[url] == 'done&' + data) return;
send_attention_data.sent[url] = 'done&' + data;
GM_xmlhttpRequest({
method: 'GET',
url: api_server + '/log?appkey=reader.google.com/aiderss&url=' + encodeURIComponent(url) + '&' + data + '&greader_id=' + unsafeWindow._USER_ID,
onload: function(r) {}
});
};
/****** END LIBRARIES &C *****/
/*
These functions render aide stats &c onto the current data
*/
var render_aide_step2 = function(data, entries, level) {
if(!data) return;
if(level == 'all') level = 0;
if(level == 'good') level = 2.7;
if(level == 'great') level = 4.7;
if(level == 'best') level = 6.5;
var hidden_count = 0;
for(var i in entries) {
if (!entries[i].getElementsByClassName)
entries[i].getElementsByClassName = document.getElementsByClassName;
var url = entries[i].getElementsByClassName('entry-title-link')[0];
if(!url) url = entries[i].getElementsByClassName('entry-original')[0];
if(!url) continue;
url = url.href;
var stats = data[url];
if(!stats || !stats.postrank) {
//entries[i].style.display = 'none';
continue;
}
var postrank_render_lst = entries[i].getElementsByClassName('aiderss-pr');
for(var p in postrank_render_lst) {
postrank_render = postrank_render_lst[p];
if(!postrank_render.className.match(/aiderss-postrank/)) {
postrank_render.className = 'aiderss-postrank';
var formatted_postrank = stats.postrank;
if(stats.postrank+'' == ''+Math.floor(stats.postrank) && stats.postrank != 10) formatted_postrank += '.0';
if(stats.postrank == 10) formatted_postrank += ' ';
postrank_render.style.cssFloat = 'left';
postrank_render.innerHTML = ' <b style="display:inline;line-height:16px;vertical-align:top;padding-right:6px;padding-bottom:1px;margin-right:5px;color:black;background-color:'+stats.postrank_color+';"><img style="position:relative;top:4px;" src="'+icon_postrank+'" alt="PR" /> '+formatted_postrank+'</b> ';
}//end if ! postrank
}
entries[i].addEventListener('click', function(){
if (!this.getElementsByClassName)
this.getElementsByClassName = document.getElementsByClassName;
var url = this.getElementsByClassName('entry-original')[0];
if(!url.className.match(/aiderss-foundyou/)) {
send_attention_data(url.href);
}
url.className += ' aiderss-foundyou';
}, false);
if(!GM_getValue('opacify',true)) {
if(stats.postrank < level) {
entries[i].style.display = 'none'; hidden_count++;
}
else entries[i].style.display = 'block';
} else {//opacifying!
entries[i].style.display = 'block';
if(!entries[i].style.opacity)
entries[i].addEventListener('click', function(){
this.className += ' aiderss-clicked';
this.style.opacity = 1;
}, false);
if(stats.postrank < level && !entries[i].className.match(/aiderss-clicked/)) {
var author = entries[i].getElementsByClassName('entry-author')[0];
if(author) author.style.display = 'none';
var body = entries[i].getElementsByClassName('entry-body')[0];
if(body) body.style.display = 'none';
entries[i].style.opacity = Math.max(0.15,(stats.postrank/10)-0.2);
if(body) entries[i].style.fontSize = '0.7em';
} else {
var author = entries[i].getElementsByClassName('entry-author')[0];
if(author) author.style.display = 'block';
var body = entries[i].getElementsByClassName('entry-body')[0];
if(body) body.style.display = 'block';
entries[i].style.opacity = 1;
entries[i].style.fontSize = '1em';
}//end if-else
}//end if-else ! opacify
if(entries[i].className.match(/aiderss-entry/)) continue;
entries[i].className += ' hentry aiderss-entry';
}
if(hidden_count == entries.length) debug('All entries hidden.');
//timer_stop();
};
var render_aide_helper = function(url, entries, i, feed_id) {
var entryurls = '';
var feedids = '';
var c = 0;
if(feed_id) check_hash.feed_id = feed_id;
if(typeof(render_aide.asked_urls[url.href]) == 'undefined') render_aide.asked_urls[url.href] = 0;
if(render_aide.asked_urls[url.href] < 1) {
url.addEventListener('click', function(e){
send_attention_data(this.href, 'type=greader_click')
}, false);
var star = entries[i].getElementsByClassName('item-star');
for(var j in star)
star[j].addEventListener('click', function() {
if(this.className.match(/item-star-active/)) send_attention_data(url.href,'type=greader_star');
}, false);
var share = entries[i].getElementsByClassName('broadcast-inactive');
for(var j in share)
share[j].addEventListener('click', function() {
if(this.className.match(/broadcast-active/)) send_attention_data(url.href,'type=greader_share');
}, false);
var email = entries[i].getElementsByClassName('email');
for(var j in email)
email[j].addEventListener('click', function() {
send_attention_data(url.href,'type=greader_email');
}, false);
}//end if this is the first time processing
var title = entries[i].getElementsByClassName('entry-title')[0];
if(title && !title.className.match(/aiderss-postrank/)) {
title.className += ' aiderss-postrank';
var postrank_render = document.createElement('span');
postrank_render.style.cssFloat = 'left';
postrank_render.className = 'aiderss-pr';
postrank_render.innerHTML = ' <b style="padding-top:2px;padding-bottom:3px;padding-left:6px;padding-right:6px;margin-right:5px;"><img src="'+image_loading+'" alt="Loading..." /></b> ';
title.parentNode.insertBefore(postrank_render, title);
}//end if title
if( (!stats_cache[check_hash.feed_id] || !stats_cache[check_hash.feed_id][url.href]) && render_aide.asked_urls[url.href] < 3 ) {
render_aide.asked_urls[url.href]++;
render_aide.entryurlsa.push(url.href);
entryurls += '&url[]=' + encodeURIComponent(url.href);
feedids += '&feed_id[]=' + encodeURIComponent(check_hash.feed_id);
c = 1;
}//end if ! already cached
if(document.getElementById('entries').scrollTop > 10 && entries[i].offsetTop < document.getElementById('entries').scrollTop) { //we've scrolled past
if(!send_attention_data.sent || send_attention_data.sent[url.href] != 'done&type=greader_read') {
/* mark as read */
GM_xmlhttpRequest({//This gets a token from Google Reader and then edits the subscription to mark it as read.
method: 'GET',
url: 'http://www.google.com/reader/api/0/token?client=scroll',
onload: function(token) {
var feed_url = window.location.hash.match(/feed\/.*/);
if(feed_url) feed_url = feed_url[0];
if(!feed_url) {
feed_url = subscriptions_cache[entries[i].getElementsByClassName('entry-source-title')[0].innerHTML];
if(feed_url) feed_url = original_url(feed_url.id.match(/feed\/(.*)/)[1]).url;
}
GM_xmlhttpRequest({
method: 'POST',
url: 'http://www.google.com/reader/api/0/edit-tag',
headers: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: 'i='+url.href+'&a=user/-/state/com.google/read&s='+feed_url+'&ac=edit-tag&async=true&T='+token.responseText,
onload: function(r) {
entries[i].className += ' read';
var t = document.createEvent('MouseEvents'); t.initMouseEvent('click',true,true,window,1,12,345,7,220,false,false,true,false,0,null); document.getElementById('sub-tree-refresh').dispatchEvent(t);//click refresh button
}
});
}//end outer onload
});
/* end mark as read */
send_attention_data(url.href, 'type=greader_read');
}//end if send_attention_data
}//end if
return {
'entryurls': entryurls,
'feedids': feedids,
'c': c
};
};
var render_aide = function(level, force) {
if(!feed_id_cache[original_url(current_url()).url] && !check_hash.no_feed_id)
return;
else
check_hash.feed_id = feed_id_cache[original_url(current_url()).url];
this.max_c = false;
if(request_lock) {
event_lock = false;
return;
}
// TODO: use old code for FF2 and lower...
//
// var entries_block = document.getElementById('entries');
// entries_block.getElementsByClassName = document.getElementsByClassName;
// if(force)
// var entries = entries_block.getElementsByClassName('entry', '', '');
// else
// var entries = entries_block.getElementsByClassName('entry', '', 'aiderss-done');
if(force)
var entries = getElementsByClassNameFilter('entry', '', false);
else
var entries = getElementsByClassNameFilter('entry', 'aiderss-done', true);
if(entries.length < 1) {
event_lock = false;
return;
}
var c = 0;
var entryurls = '';
var feedids = '';
var tmp;
if(!render_aide.asked_urls) render_aide.asked_urls = {};
render_aide.entryurlsa = [];
for(var i in entries) {
if (!entries[i].getElementsByClassName)
entries[i].getElementsByClassName = document.getElementsByClassName;
entries[i].className += ' aiderss-done';
var url = entries[i].getElementsByClassName('entry-title-link')[0];
if(!url) url = entries[i].getElementsByClassName('entry-original')[0];
if(!url) continue;
url.rel = 'bookmark';
if(check_hash.no_feed_id) {
if(entries[i].getElementsByClassName('collapsed')[0]) {
if(GM_getValue('colorize', false)) {
entries[i].getElementsByClassName('collapsed')[0].style.background = colour_from_string(entries[i].getElementsByClassName('entry-source-title')[0].firstChild.textContent);
} else {
entries[i].getElementsByClassName('collapsed')[0].style.background = '#fff';
}
}
tmp = render_aide_helper(url, entries, i, '');
entryurls += tmp.entryurls;
c += tmp.c;
} else {
tmp = render_aide_helper(url, entries, i);
entryurls += tmp.entryurls;
feedids += tmp.feedids;
c += tmp.c;
}//end if-else no feed id
if(this.max_c && c > this.max_c) break;
}//end for var i in entries
if(entryurls != '') {
document.getElementById('loading-area').className = 'aiderss-good round-box';
request_lock = true;
GM_xmlhttpRequest({
method: 'POST',
url: 'http://api.postrank.com/v1/postrank?appkey=reader.google.com/aiderss&format=json',
data: 'fields[]=postrank&fields[]=postrank_color&fields[]=digs&fields[]=slash_comments&fields[]=delicious&fields[]=google' + entryurls + feedids,
onerror: function(r) {
for(var i in render_aide.entryurlsa)
delete render_aide.asked_urls[render_aide.entryurlsa[i]];
},
onload: function(r) {
try {
if(!stats_cache[check_hash.feed_id]) stats_cache[check_hash.feed_id] = {};
var stats = eval('(' + r.responseText + ')');
if(typeof(stats) == 'object' && stats != {}) {
for(var i in render_aide.entryurlsa) {
if(!!stats[render_aide.entryurlsa[i]])
stats_cache[check_hash.feed_id][render_aide.entryurlsa[i]] = stats[render_aide.entryurlsa[i]];
else if(render_aide.asked_urls[render_aide.entryurlsa[i]] >= 3)
stats_cache[check_hash.feed_id][render_aide.entryurlsa[i]] = {
'postrank':1,
'postrank_color':'#ffe08e'
};
cache_count++;
}//end for var i in stats
}//end if stats != ''
render_aide_step2(stats_cache[check_hash.feed_id], entries, level);
} catch (ex) {
for(var i in render_aide.entryurlsa)
delete render_aide.asked_urls[render_aide.entryurlsa[i]];
}//end try-catch
document.getElementById('loading-area').className = 'round-box hidden';
request_lock = false;
}
});
} else render_aide_step2(stats_cache[check_hash.feed_id], entries, level);
if(cache_count > 100) {
render_aide.asked_urls = {};
stats_cache = {};
cache_count = 0;
}
event_lock = false;
};
/*
This function handles user interaction with the dropdown.
*/
var dropdown_change = function() {
event_lock = true;
var view_id = check_hash.feed_id;
if(check_hash.no_feed_id) view_id = window.location.hash;
if(isNaN(parseFloat(this.value)))
this.className = 'aiderss-' + this.value;
GM_setValue('last_view_' + view_id, this.value);
render_aide(this.value, true);
};
/*
This function injects the dropdown menu item.
*/
var inject_dropdown = function(level_in) {
if(event_lock) return;
event_lock = true;
var block = document.getElementById('aiderss-dropdown');
if(!block) {
block = document.createElement('div');
block.id = 'aiderss-dropdown';
if(document.getElementById('stream-prefs-menu')) {
document.getElementById('stream-prefs-menu').parentNode.insertBefore(block, document.getElementById('stream-prefs-menu'));
} else {
document.getElementById('view-cards').parentNode.insertBefore(block, document.getElementById('view-cards'));
}
}//end if ! block
block.className = 'button-container button-container-menu scour-disabled single-feed-menu';
block.style.marginRight = '5px';
block.style.marginTop = '2px';
block.style.cssFloat = 'left';
var view_id = check_hash.feed_id;
if(check_hash.no_feed_id) view_id = window.location.hash;
level = GM_getValue('last_view_' + view_id, level_in);
if(!document.getElementById('aiderss-dropdown-select') || this.last_feed_id != view_id || GM_getValue('slider',false) != this.last_slider) {
this.last_feed_id = view_id;
this.last_slider = GM_getValue('slider',false);
if(!GM_getValue('slider',false)) {
if(!isNaN(parseFloat(level))) level = level_in;
var html = '<span id="aiderss-dropdown-nothere" style="display:none;">Filtering not available for this feed.</span> <select id="aiderss-dropdown-select" name="aiderss-dropdown-select" class="aiderss-'+level+'" style="border:1px solid black;padding:1px;width:100px;cursor:pointer;margin-top:-1px;"> ';
// if(level_in != 'good' && level_in != 'great' && level_in != 'best') html += ' <option value="all" class="aiderss-all"'+(level=='all' ? ' selected="selected"' : '')+'>All</option>';// '+(feed_stats_cache[view_id] ? '(100%)' : '')+'
// if(level_in != 'great' && level_in != 'best') html += ' <option value="good" class="aiderss-good"'+(level=='good' ? ' selected="selected"' : '')+'>Good</option>';// '+(feed_stats_cache[view_id] ? '('+Math.floor(100*(feed_stats_cache[view_id].good/feed_stats_cache[view_id].all))+'%)' : '')+'
// if(level_in != 'best') html += ' <option value="great" class="aiderss-great"'+(level=='great' ? ' selected="selected"' : '')+'>Great</option>';// '+(feed_stats_cache[view_id] ? '('+Math.floor(100*(feed_stats_cache[view_id].great/feed_stats_cache[view_id].all))+'%)' : '')+'
html += ' <option value="all" class="aiderss-all"'+(level=='all' ? ' selected="selected"' : '')+'>All</option>';// '+(feed_stats_cache[view_id] ? '(100%)' : '')+'
html += ' <option value="good" class="aiderss-good"'+(level=='good' ? ' selected="selected"' : '')+'>Good</option>';// '+(feed_stats_cache[view_id] ? '('+Math.floor(100*(feed_stats_cache[view_id].good/feed_stats_cache[view_id].all))+'%)' : '')+'
html += ' <option value="great" class="aiderss-great"'+(level=='great' ? ' selected="selected"' : '')+'>Great</option>';// '+(feed_stats_cache[view_id] ? '('+Math.floor(100*(feed_stats_cache[view_id].great/feed_stats_cache[view_id].all))+'%)' : '')+'
html += ' <option value="best" class="aiderss-best"'+(level=='best' ? ' selected="selected"' : '')+'>Best</option>';// '+(feed_stats_cache[view_id] ? '('+Math.floor(100*(feed_stats_cache[view_id].best/feed_stats_cache[view_id].all))+'%)' : '')+'
html += ' </select>';
} else {
html = '<input id="aiderss-dropdown-select" style="border:1px solid black;padding:1px;width:100px;" type="text" class="aiderss-good" value="'+level+'" onclick="this.select();" />';
}
block.innerHTML = html;
block.style.display = 'block';
document.getElementById('aiderss-dropdown-select').addEventListener('focus', function(e){
e.cancelBubble = true; e.stopPropagation();
}, true);
document.getElementById('aiderss-dropdown-select').addEventListener('change', dropdown_change, false);
document.getElementById('aiderss-dropdown-select').addEventListener('keyup', dropdown_change, false);
var bar = document.getElementById('aiderss-icon');
if(!bar) {
bar = document.createElement('div');
bar.id = 'aiderss-icon';
bar.style.cssFloat = 'right';
bar.style.marginLeft = '1em';
if(document.getElementById('viewer-top-links')) document.getElementById('viewer-top-links').insertBefore(bar,document.getElementById('viewer-all-new-links-parent'));
}//end if ! bar
if(check_hash.feed_id)
bar.innerHTML = '<a target="_blank" href="http://www.aiderss.com/feedid/'+check_hash.feed_id+'"><img style="border-width:0px;" src="'+aiderss_mini+'" alt="AideRSS" title="Archive at AideRSS" /></a>';
else
bar.innerHTML = '';
}//end if level changed
render_aide(level, false);
};
var periodic_update = function() {
if(check_hash.feed_id || check_hash.no_feed_id) {
var view_id = check_hash.feed_id;
if(check_hash.no_feed_id) view_id = window.location.hash;
level = GM_getValue('last_view_' + view_id, 'all');
render_aide(level, false);
}//end if check_hash.feed_id
};
/*
We are now viewing feed at url, change views appropriately and cache feed id
*/
var hash_changed = function(url,test_only) {
if(!test_only) test_only = false;
url = original_url(url);
level = url.level;
url = url.url;
if(url.match(/aiderss\.com\/rss\/myfeed/)) {//don't get myfeeds
if(document.getElementById('aiderss-dropdown')) {
document.getElementById('aiderss-dropdown-select').style.display = 'none';
document.getElementById('aiderss-dropdown-nothere').style.display = 'block';
}
return;
}
if(feed_id_cache[url]) {
check_hash.no_feed_id = false;
check_hash.feed_id = feed_id_cache[url];
if(!test_only) inject_dropdown(level);
} else {
GM_xmlhttpRequest({
method: 'GET',
url: api_server + '/v2/feed/info?appkey=reader.google.com/aiderss&format=json&url=' + encodeURIComponent(url),
onload: function(r) {
var feedid = eval('('+r.responseText+')').feed_id;
if(!feedid)
check_hash.no_feed_id = true;
else
check_hash.no_feed_id = false;
if(!test_only) inject_dropdown(level);
feed_id_cache[url] = feedid;
check_hash.feed_id = feedid;
}
});
}//end if-else feed_id cache
};
/*
This function periodically checks if the hash has changed (ie, viewing a different feed). Sometimes we force it to have changed (check_hash.was = '')
*/
var check_hash = function(e,test_only) {
if(!test_only) test_only = false;
if(window.location.hash != check_hash.was || window.location.hash.match(/\/ig\//)) {
url = current_url();
if(url && !url.match(/aiderss\.com\/rss\/myfeed/)) hash_changed(url,test_only);
else if(document.getElementById('aiderss-dropdown')) {
check_hash.feed_id = false;
document.getElementById('aiderss-dropdown-select').style.display = 'none';
document.getElementById('aiderss-dropdown-nothere').style.display = 'block';
}
} else //end if
return false;
check_hash.was = window.location.hash;
};
/*
This function handles easter eggs
*/
var keypress = function(event) {
event = event || window.event;
var key = String.fromCharCode( event.which || event.keyCode );
if(key == 'X') {
GM_setValue('opacify',!GM_getValue('opacify',true));
}
if(key == 'Z') {
GM_setValue('slider',!GM_getValue('slider',false));
}
if(key == 'C') {
GM_setValue('colorize',!GM_getValue('colorize',false));
}
if(key == 'X' || key == 'Z' || key == 'C') {
entries = document.getElementsByClassName('entry')
for(var i in entries) {
entries[i].className = entries[i].className.replace(/aiderss-done/,'').replace(/aiderss-entry/,'');
}
check_hash.was = ''; check_hash();
}
return true;
};
/*
This function handles the on/off state
*/
var do_enabling = function(toggle) {
on = GM_getValue('aide_enabled', true);
if(!toggle) on = !on;
if(on) {
if(toggle) GM_setValue('aide_enabled', false);
document.getElementById('aide-enabling').checked = '';
document.getElementById('aide-enabling-icon').src = icon_postrank;
} else {
if(toggle) GM_setValue('aide_enabled', true);
document.getElementById('aide-enabling').checked = 'checked';
document.getElementById('aide-enabling-icon').src = '';
}
if(toggle) unsafeWindow.location.reload();
};
/*
This function makes all the calls to inject the actual functionality into Google Reader -- it is done later so that it will not happen if the user is not authorized.
*/
var main_init = function() {
/* Can we detect when things scroll by? Yes we can!
document.addEventListener('mousemove', function() {process_viewport();}, false);
*/
/* Can we add tabs to the trends view? Yes we can!
document.addEventListener('mousemove', add_trends_tabs, false);
document.getElementById('trends-selector').addEventListener('click', function() {setTimeout(add_trends_tabs, 1500);}, false);
*/
GM_xmlhttpRequest({
method: 'GET',
url: 'http://www.google.com/reader/api/0/subscription/list?output=json',
onload: function(r) {
var subscriptions = eval('('+r.responseText+')').subscriptions;
for(var i in subscriptions) {
subscriptions_cache[subscriptions[i].title] = subscriptions[i];
}//end for var i in subscriptions
}
});
if(document.getElementById('quick-add-bubble-holder')) {
var enabling = document.createElement('div');
enabling.innerHTML = '<table cellspacing="0" cellpadding="0" border="0" id="aide-box" class="round-box"><tbody><tr><td class="s tl"/><td class="s"/><td class="s tr"/></tr><tr><td class="s"/><td class="c" style="width:247px;padding-left:8px;"><div style="float:right;"><input type="checkbox" id="aide-enabling" /></div><span style="float:left;font-weight:bold;font-size:105%;" class="link"><img id="aide-enabling-icon" src="'+icon_postrank+'" alt="" /> PostRank Filtering</span></td><td class="s"/></tr><tr><td class="s bl"/><td class="s"/><td class="s br"/></tr></tbody></table>';
document.getElementById('quick-add-bubble-holder').parentNode.insertBefore(enabling, document.getElementById('quick-add-bubble-holder'));
enabling.addEventListener('click', function(){
do_enabling(true);
}, false);
do_enabling();
}//end if add-box
if(!GM_getValue('aide_enabled', true)) return;
document.getElementById('entries').addEventListener('DOMNodeInserted', function(){
setTimeout(function(){
if(!check_hash()) periodic_update();
}, 0);
}, true);
document.addEventListener('keydown', keypress, false);
/* Make sure we capture view changes */
document.getElementById('mark-all-as-read').addEventListener('click', function() {
check_hash.was = ''; check_hash();
}, false);
document.getElementById('viewer-refresh').addEventListener('click', function() {
check_hash.was = ''; check_hash();
}, false);
document.getElementById('reading-list-selector').addEventListener('click', function() {
check_hash.was = ''; check_hash();
}, false);
document.getElementById('view-cards').addEventListener('click', function(){
check_hash.was = ''; check_hash();
}, false);
document.getElementById('view-list').addEventListener('click', function(){
check_hash.was = ''; check_hash();
}, false);
document.getElementById('nav').addEventListener('click', function() {
check_hash.was = ''; check_hash();
}, true);
};
/*
This function blocks until Google Reader has fully loaded and then kicks off authentication
*/
var init = function() {
var subs = document.getElementsByClassName('sub');
var entries = document.getElementById('entries');
if(!subs.length && !entries) {
setTimeout(init,1000); return;
}//If the page has not finished loading yet, wait (ie, block for GR AJAX load)
var style = document.createElement('style');//Add styles for our UI elements (many have inline styles, so this is not complete)
style.type = 'text/css';
style.innerHTML += '#loading-area {display:none;}\n';
style.innerHTML += '.aiderss-all {background-color: #fd8;}\n';
style.innerHTML += '.aiderss-good {background-color: #fa6;}\n';
style.innerHTML += '.aiderss-great {background-color: #f94;}\n';
style.innerHTML += '.aiderss-best {background-color: #f72;}\n';
style.innerHTML += '#aiderss-home .s, #aiderss-home .c {background-color:#e1ecfe;}';
style.innerHTML += '#aiderss-auth-footer a {color:#269;text-decoration:none;}';
style.innerHTML += 'h2.entry-title { padding-left: 30px ! important; }';
style.innerHTML += 'h2.entry-title.aiderss-postrank { padding-left: 0px ! important; }';
style.innerHTML += '.RIL-checkmark { float: left ! important; }';
style.innerHTML += '.entry .entry-icons .item-star { clear: left ! important; }';
document.getElementsByTagName('head')[0].appendChild(style);
main_init();
};
unsafeWindow.addEventListener('load', init, false);//On page load, start the init block