Created
August 20, 2011 19:03
-
-
Save ussy/1159506 to your computer and use it in GitHub Desktop.
SBMCounter for KeySnail
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var PLUGIN_INFO = | |
| <KeySnailPlugin> | |
| <name>SBMCounter</name> | |
| <name lang="ja">SBMCounter</name> | |
| <description>Social Bookmark Counter</description> | |
| <description lang="ja">ソーシャルブックマークカウンタ</description> | |
| <version>0.1.0</version> | |
| <!--<iconURL></iconURL>--> | |
| <!--<updateURL></updateURL>--> | |
| <author mail="ussy00@gmail.com" homepage="http://www.pshared.net/">ussy</author> | |
| <license>The MIT License</license> | |
| <license lang="ja">MIT ライセンス</license> | |
| <minVersion>1.8.0</minVersion> | |
| <include>main</include> | |
| <provides> | |
| <ext>sbmCounter</ext> | |
| </provides> | |
| </KeySnailPlugin>; | |
| // ================ Options ====================== // | |
| let pOptions = plugins.setupOptions("sbm_counter", { | |
| "enable": { preset: [ | |
| "hatebu", | |
| "delicious" | |
| ]}, | |
| "cache_size": { preset: 50 }, | |
| "cache_time": { preset: 5 * 60 * 1000 }, | |
| "ignores": { preset: [ | |
| /^about:/, | |
| /^chrome:/, | |
| /^file:/, | |
| /^https:/, | |
| /^http:\/\/(?:127\.|10\.|172\.16\.|192\.168\.).*/, | |
| /^http:\/\/[^\.]+\//, | |
| /^http:\/\/www\.google\.(com|co\.jp)\/search/ | |
| ]}, | |
| "rescues": { preset: [ | |
| /^https:\/\/developer\.mozilla\.org\//, | |
| /^https:\/\/.+?\.github\.com\// | |
| ]} | |
| }); | |
| // ============================================================ // | |
| // $U | |
| // ============================================================ // | |
| const $U = { | |
| createElement: function (name, attrs, childs) { | |
| let elem = document.createElement(name); | |
| if (attrs) | |
| for (let [k, v] in Iterator(attrs)) | |
| elem.setAttribute(k, v); | |
| if (childs) | |
| for (let [, v] in Iterator(childs)) | |
| elem.appendChild(v); | |
| return elem; | |
| }, | |
| insertAfter: | |
| function insertAfter(parent, node, referenceNode) { | |
| parent.insertBefore(node, referenceNode.nextSibling); | |
| } | |
| }; | |
| var sbmCounter = | |
| (function () { | |
| const Cc = Components.classes; | |
| const Ci = Components.interfaces; | |
| function toHexString(charCode) { | |
| return ("0" + charCode.toString(16)).slice(-2); | |
| } | |
| function md5(s) { | |
| let converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]. | |
| createInstance(Ci.nsIScriptableUnicodeConverter); | |
| converter.charset = "UTF-8"; | |
| let result = {}; | |
| let data = converter.convertToByteArray(s, result); | |
| let ch = Cc["@mozilla.org/security/hash;1"].createInstance(Ci.nsICryptoHash); | |
| ch.init(ch.MD5); | |
| ch.update(data, data.length); | |
| let hash = ch.finish(false); | |
| return [toHexString(hash.charCodeAt(i)) for (i in hash)].join(""); | |
| } | |
| function CacheItem(key, value, seq) { | |
| this.key = key; | |
| this.value = value; | |
| this.seq = seq; | |
| } | |
| function LRUCache(maxSize) { | |
| this.items = {}; | |
| this.count = 0; | |
| this.seq = 0; | |
| this.maxSize = maxSize || -1; | |
| this.purgeSize = Math.round(this.maxSize * 0.75); | |
| } | |
| LRUCache.prototype = { | |
| get: function get(key) { | |
| let item = this.items[key]; | |
| return item ? item.value : null; | |
| }, | |
| set: function set(key, value) { | |
| let item = this.items[key]; | |
| if (!item) { | |
| this.count++; | |
| if (this.count > this.maxSize) { | |
| this.purge(); | |
| } | |
| } | |
| this.items[key] = new CacheItem(key, value, this.seq++); | |
| }, | |
| merge: function merge(key, dest) { | |
| let src = this.get(key); | |
| for (let prop in dest) { | |
| let value = dest[prop]; | |
| if (value === null) { | |
| delete src[prop]; | |
| } else { | |
| src[prop] = value; | |
| } | |
| } | |
| this.set(key, src); | |
| }, | |
| purge: function purge() { | |
| let temps = []; | |
| for (let key in this.items) { | |
| let item = this.items[key]; | |
| temps.push(item); | |
| } | |
| temps = temps.sort(function(a, b) { | |
| return a.seq < b.seq; | |
| }); | |
| while (temps.length > this.purgeSize) { | |
| let item = temps.pop(); | |
| delete this.items[item.key]; | |
| this.count--; | |
| } | |
| } | |
| }; | |
| function Counter(params) { | |
| var cacheSize = pOptions["cache_size"]; | |
| this.cache = new LRUCache(cacheSize); | |
| this.label = params.label; | |
| this.requestCountUrl = params.requestCountUrl; | |
| this.requestCommentUrl = params.requestCommentUrl; | |
| this.getLinkUrl = params.getLinkUrl; | |
| this.handleRequestCount = params.handleRequestCount; | |
| this.handleRequestComment = params.handleRequestComment; | |
| } | |
| Counter.prototype = { | |
| isValidCache: function isValidCache(value) { | |
| if (!value) { | |
| return false; | |
| } | |
| let cacheTime = pOptions["cache_time"]; | |
| return value.requestTime > +new Date - cacheTime; | |
| }, | |
| hasCountCache: function hasCountCache(url) { | |
| let info = this.cache.get(url); | |
| return this.isValidCache(info) && info["count"] !== undefined; | |
| }, | |
| hasCommentCache: function hasCommentCache(url) { | |
| let info = this.cache.get(url); | |
| return this.isValidCache(info) && info["comments"] !== undefined; | |
| }, | |
| showCount: function request(url) { | |
| this.abort(); | |
| if (this.hasCountCache(url)) { | |
| this.refreshStatusBar(this.cache.get(url).count); | |
| return; | |
| } | |
| this.refreshStatusBar("*"); | |
| this.xhr = new XMLHttpRequest(); | |
| this.xhr.open("GET", this.requestCountUrl(url), true); | |
| var self = this; | |
| this.xhr.onreadystatechange = function(aEvt) { | |
| if (self.xhr.readyState == 4) { | |
| if (self.xhr.status == 200) { | |
| let count = self.handleRequestCount(self.xhr.responseText); | |
| self.refreshStatusBar(count); | |
| self.cache.set(url, { | |
| requestTime: +new Date, | |
| count: count | |
| }); | |
| } | |
| self.abort(); | |
| } | |
| }; | |
| this.xhr.send(null); | |
| }, | |
| abort: function abort() { | |
| if (this.xhr != null) { | |
| this.xhr.abort(); | |
| this.xhr = null; | |
| } | |
| }, | |
| refreshStatusBar: function(count) { | |
| this.label.value = count; | |
| } | |
| }; | |
| const CONTAINER_ID = "keysnail-sbmcounter-container"; | |
| const HATEBU_STATUS_ID = "keysnail-sbmcounter-hatebu-status"; | |
| const DELICIOUS_STATUS_ID = "keysnail-sbmCounter-delicious-status"; | |
| var statusbar = document.getElementById("status-bar"); | |
| var statusbarPanel = document.getElementById("keysnail-status"); | |
| var container = document.getElementById(CONTAINER_ID); | |
| var hatebuStatusLabel = document.getElementById(HATEBU_STATUS_ID); | |
| var deliciousStatusLabel = document.getElementById(DELICIOUS_STATUS_ID); | |
| var counters = []; | |
| if (container) { | |
| while(container.firstChild) { | |
| container.removeChild(element.firstChild); | |
| } | |
| container.parentNode.removeChild(container); | |
| } | |
| container = $U.createElement("statusbarpanel", { | |
| align: "center", | |
| id: CONTAINER_ID | |
| }); | |
| let box, icon; | |
| if (pOptions["enable"].indexOf("hatebu") != -1) { | |
| // ================ | |
| // Hatebu | |
| // ================ | |
| box = $U.createElement("hbox", { | |
| align: "center", | |
| flex: 1 | |
| }, [ | |
| icon = $U.createElement("image", { | |
| src: 'data:image/vnd.microsoft.icon;base64,' + | |
| 'AAABAAQAEBAQAAAAAAAoAQAARgAAABgYAAAAAAAAiAkAAG4BAAAgIAAAAAAAAKgQAAD2CgAAQEAA' + | |
| 'AAAAAAAoQgAAnhsAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA' + | |
| '53lSAP///wDJXyoA+qWFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAABMzMzMzMzMAQREREREREwBBERERERETAEERIiIiERMAQREiERIhEwBBESIREi' + | |
| 'ETAEERIhESIRMAQREiIiIREwBBESIRIhETAEERIhEiERMAQREiIiEREwBBERERERETAEERERERER' + | |
| 'MAREREREREQQAAAAAAAAAAD//wAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAA' + | |
| 'gAEAAIABAACAAQAAgAEAAIABAAD//wAAKAAAABgAAAAwAAAAAQAgAAAAAAAACQAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAKlkK1+pZCvvqWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCvvqWQrX6lkK++pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr76lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/++imD////////////////////////////59fH/' + | |
| '6djK/86nh/+pZCv/qWQr/7N3Rf/06+T/+fXx/8meev+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/++imD////////////////////////////////////////////Zu6L/qWQr/9Sx' + | |
| 'lf///////////+nYyv+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/++imD/////' + | |
| '////////////6djK/+nYyv/59fH/////////////////rm04/76KYP///////////9m7ov+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/++imD/////////////////qWQr/6lkK/+5' + | |
| 'gVL/////////////////vopg/6lkK/+zd0X/vopg/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/++imD/////////////////qWQr/6lkK//UsZX/////////////////rm04' + | |
| '/76KYP///////////+nYyv+pZCv/qWQr/6lkK/+pZCv/qWQr/7V3RP+5fk3/uX5N/7l+Tf/Knnn/' + | |
| '///////////////////////////////////////////hyLP/uX5N/8qeef///////////+3e0v+5' + | |
| 'fk3/uX5N/7l+Tf+5fk3/tXdE/7l+Tf+/h1n/v4dZ/7+HWf/PpYL/////////////////////////' + | |
| '/////////////+fSwP+/h1n/v4dZ/8+lgv///////////+/h1f+/h1n/v4dZ/7+HWf+/h1n/uX5N' + | |
| '/7l+Tf+/h1n/v4dZ/7+HWf/PpYL/////////////////z6WC/9u7of/79/T////////////TrIz/' + | |
| 'v4dZ/8+lgv///////////+/h1f+/h1n/v4dZ/7+HWf+/h1n/uX5N/7l+Tf+/h1n/v4dZ/7+HWf/P' + | |
| 'pYL/////////////////v4dZ/7+HWf/r2cv////////////n0sD/v4dZ/8+lgv///////////+/h' + | |
| '1f+/h1n/v4dZ/7+HWf+/h1n/uX5N/7l+Tf+/h1n/v4dZ/7+HWf/PpYL/////////////////38Os' + | |
| '/+vZy//////////////////jyrb/v4dZ/8+lgv///////////+/h1f+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'uX5N/7l+Tf+/h1n/v4dZ/7+HWf/PpYL////////////////////////////////////////////P' + | |
| 'pYL/v4dZ/8+lgv///////////+/h1f+/h1n/v4dZ/7+HWf+/h1n/uX5N/7l+Tf+/h1n/v4dZ/7+H' + | |
| 'Wf/PpYL////////////////////////////79/T/69nL/8+lgv+/h1n/v4dZ/8udeP/v4dX/7+HV' + | |
| '/+PKtv+/h1n/v4dZ/7+HWf+/h1n/uX5N/7l+Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/uX5N/7l+Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/uX5N/7l+Tf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/uX5N/7l+Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/uX5N/7N0QO+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/s3RA76lkK1+zdEDv' + | |
| 'uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5' + | |
| 'fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+zdEDvqWQrX4AAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAgAABACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAACpZCsP' + | |
| 'qWQrv6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCu/qWQrD6lkK7+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCu/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/6djK/////////////////////////////////+7h1//p2Mr/3sSv' + | |
| '/76KYP+pZCv/qWQr/6lkK/+pZCv/yZ56//n18f/06+T/yZ56/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK//p2Mr/////////////////////////////' + | |
| '/////////////////////////97Er/+pZCv/qWQr/7N3Rf/////////////////59fH/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/+nYyv//////////' + | |
| '/////////////////////////////////////////////////8meev+pZCv/vopg////////////' + | |
| '//////////+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/6djK/////////////////+nYyv/UsZX/1LGV/+TOvP//////////////////////6djK/6lk' + | |
| 'K/+pZCv/7uHX////////////3sSv/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK//p2Mr/////////////////1LGV/6lkK/+pZCv/qWQr/9m7ov//////' + | |
| '///////////p2Mr/qWQr/6lkK/+pZCv/vopg/76KYP+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/+nYyv/////////////////UsZX/qWQr/6lk' + | |
| 'K/+pZCv/2bui/////////////////+nYyv+pZCv/qWQr/+nYyv/p2Mr/6djK/+nYyv+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/6djK////////////' + | |
| '/////97Er/++imD/w5Rt/9m7ov/59fH/////////////////2bui/6lkK/+pZCv/////////////' + | |
| '/////////6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+0dUL/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf/v4dX///////////////////////////////////////////////////////Po3//DjmP/v4dZ' + | |
| '/7+HWf//////////////////////v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/tHVC/7R1Qv+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/+/h1f/////////////////////////////////////////////////j' + | |
| 'yrb/w45j/7+HWf+/h1n/v4dZ//////////////////////+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+0dUL/tHVC/7+HWf+/h1n/v4dZ/7+HWf+/h1n/7+HV//////////////////fw6v/v4dX/8+jf' + | |
| '//////////////////v39P/XtJf/v4dZ/7+HWf+/h1n//////////////////////7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7R1Qv+0dUL/v4dZ/7+HWf+/h1n/v4dZ/7+HWf/v4dX/////////////' + | |
| '////38Os/7+HWf+/h1n/06yM//////////////////v39P+/h1n/v4dZ/7+HWf//////////////' + | |
| '////////v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/tHVC/7R1Qv+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/+/h1f/////////////////fw6z/v4dZ/7+HWf/LnXj//////////////////////8udeP+/h1n/' + | |
| 'v4dZ//////////////////////+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+0dUL/tHVC/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/7+HV/////////////////+/h1f/fw6z/38Os//fw6v//////////////' + | |
| '////////x5Zt/7+HWf+/h1n//////////////////////7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7R1Qv+0dUL/v4dZ/7+HWf+/h1n/v4dZ/7+HWf/v4dX/////////////////////////////////' + | |
| '//////////////////////fw6v+/h1n/v4dZ/7+HWf//////////////////////v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/tHVC/7R1Qv+/h1n/v4dZ/7+HWf+/h1n/v4dZ/+/h1f//////////////' + | |
| '///////////////////////////////////79/T/y514/7+HWf+/h1n/v4dZ////////////////' + | |
| '//////+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+0dUL/tHVC/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| '7+HV//////////////////////////////////Po3//v4dX/48q2/8eWbf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/7+HV/+/h1f/v4dX/7+HV/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7R1Qv+0dUL/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'tHVC/7R1Qv+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+0dUL/tHVC/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7R1Qv+0dUL/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/tHVC/7R1Qv+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+0' + | |
| 'dUL/snM//7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7JzP/+qZi6/uoBQ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+6gFD/qmYuv6lkKw+qZi6/snM//7R1Qv+0dUL/tHVC/7R1' + | |
| 'Qv+0dUL/tHVC/7R1Qv+0dUL/tHVC/7R1Qv+0dUL/tHVC/7R1Qv+0dUL/tHVC/7R1Qv+0dUL/tHVC' + | |
| '/7R1Qv+0dUL/tHVC/7R1Qv+0dUL/tHVC/7R1Qv+0dUL/snM//6pmLr+pZCsPgAAAAQAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA' + | |
| 'AAEoAAAAQAAAAIAAAAABACAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpZCsPqWQr' + | |
| 'f6lkK9+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCvfqWQr' + | |
| 'f6lkKw8AAAAAAAAAAAAAAACpZCsPqWQrz6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCvPqWQrDwAAAACpZCsPqWQrz6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK8+pZCsPqWQrf6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQrf6lkK9+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK9+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/7mBUv/p2Mr/6djK/+nYyv/p2Mr/6djK/+nYyv/p2Mr/' + | |
| '6djK/+nYyv/p2Mr/6djK/+nYyv/p2Mr/3sSv/9Sxlf/UsZX/yZ56/7mBUv+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+zd0X/2bui/+nYyv/kzrz/zqeH/65t' + | |
| 'OP+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/++imD/' + | |
| '////////////////////////////////////////////////////////////////////////////' + | |
| '////////////////////+fXx/97Er/+zd0X/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+5gVL/+fXx///////////////////////u4df/rm04/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/vopg////////////////////////////////////////' + | |
| '/////////////////////////////////////////////////////////////////////////9Sx' + | |
| 'lf+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/9Ovk////////////////////////////////' + | |
| '/97Er/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/76KYP//' + | |
| '////////////////////////////////////////////////////////////////////////////' + | |
| '////////////////////////////////////////3sSv/6lkK/+pZCv/qWQr/6lkK/+pZCv/vopg' + | |
| '////////////////////////////////////////////qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/++imD/////////////////////////////////////////' + | |
| '////////////////////////////////////////////////////////////////////////////' + | |
| '///////DlG3/qWQr/6lkK/+pZCv/qWQr/76KYP//////////////////////////////////////' + | |
| '/////6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/vopg////' + | |
| '////////////////////////////////////////////////////////////////////////////' + | |
| '////////////////////////////////////////////9Ovk/6lkK/+pZCv/qWQr/6lkK/+5gVL/' + | |
| '//////////////////////////////////////n18f+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/76KYP//////////////////////////////////////////' + | |
| '////////////////////////////////////////////////////////////////////////////' + | |
| '//////////+5gVL/qWQr/6lkK/+pZCv/qWQr/+7h1//////////////////////////////////Z' + | |
| 'u6L/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/++imD/////' + | |
| '//////////////////////////////////////+pZCv/qWQr/6lkK/+pZCv/qWQr/7N3Rf/Jnnr/' + | |
| '+fXx////////////////////////////////////////////zqeH/6lkK/+pZCv/qWQr/6lkK/+z' + | |
| 'd0X/7uHX///////////////////////exK//qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/vopg////////////////////////////////////////////' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/7mBUv//////////////////////////////////' + | |
| '/////////9Sxlf+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK//DlG3/1LGV/9Sxlf+5gVL/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/76KYP//////' + | |
| '/////////////////////////////////////6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/7uHX///////////////////////////////////////UsZX/qWQr/6lkK/+pZCv/qWQr/6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/++imD///////////////////////////////////////////+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/+nYyv//////////////////////////////' + | |
| '////////1LGV/6lkK/+pZCv/qWQr/6lkK//UsZX/1LGV/9Sxlf/UsZX/1LGV/9Sxlf/UsZX/yZ56' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/vopg////////' + | |
| '////////////////////////////////////qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/65t' + | |
| 'OP/59fH//////////////////////////////////////8meev+pZCv/qWQr/6lkK/+pZCv/////' + | |
| '/////////////////////////////////+nYyv+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/76KYP///////////////////////////////////////////6lk' + | |
| 'K/+pZCv/qWQr/6lkK/+pZCv/qWQr/65tOP/exK//////////////////////////////////////' + | |
| '//////+zd0X/qWQr/6lkK/+pZCv/qWQr///////////////////////////////////////p2Mr/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/++imD/////////' + | |
| '///////////////////////////////////UsZX/1LGV/9Sxlf/UsZX/2bui/+nYyv//////////' + | |
| '///////////////////////////////////////p2Mr/qWQr/6lkK/+pZCv/qWQr/6lkK///////' + | |
| '////////////////////////////////6djK/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/7l+Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/z6WC////////////////////////////////////////////////' + | |
| '///////////////////////////////////////////////////////////////////////79/T/' + | |
| 'x5Zt/7+HWf+/h1n/v4dZ/7+HWf+/h1n//////////////////////////////////////+/h1f+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+5fk3/qWQr/6lk' + | |
| 'K/+5fk3/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/8+lgv//////////' + | |
| '////////////////////////////////////////////////////////////////////////////' + | |
| '///////////////////////////79/T/y514/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ////////' + | |
| '///////////////////////////////v4dX/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/uX5N/6lkK/+pZCv/uX5N/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf/PpYL/////////////////////////////////////////////////' + | |
| '//////////////////////////////////////////////////////v39P/n0sD/x5Zt/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf//////////////////////////////////////7+HV/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7l+Tf+pZCv/qWQr' + | |
| '/7l+Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/z6WC////////////' + | |
| '////////////////////////////////////////////////////////////////////////////' + | |
| '//////////fw6v/LnXj/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/////////' + | |
| '/////////////////////////////+/h1f+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+5fk3/qWQr/6lkK/+5fk3/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/8+lgv//////////////////////////////////////////////////' + | |
| '/////////////////////////////////////////////////////////+fSwP/DjmP/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ///////////////////////////////////////v4dX/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/uX5N/6lkK/+pZCv/' + | |
| 'uX5N/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf/PpYL/////////////' + | |
| '///////////////////////////////PpYL/z6WC/8+lgv/XtJf/48q2//fw6v//////////////' + | |
| '////////////////////////8+jf/8OOY/+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf//////////' + | |
| '////////////////////////////7+HV/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7l+Tf+pZCv/qWQr/7l+Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/z6WC////////////////////////////////////////////v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/69nL///////////////////////////////////////fw6z/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n//////////////////////////////////////+/h1f+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+5fk3/qWQr/6lkK/+5' + | |
| 'fk3/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/8+lgv//////////////' + | |
| '/////////////////////////////7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/8udeP//////////' + | |
| '////////////////////////////9/Dq/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ////////////' + | |
| '///////////////////////////v4dX/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/uX5N/6lkK/+pZCv/uX5N/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf/PpYL///////////////////////////////////////////+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n////////////////////////////////////////////DjmP/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf//////////////////////////////////////7+HV/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7l+Tf+pZCv/qWQr/7l+' + | |
| 'Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/z6WC////////////////' + | |
| '////////////////////////////v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/06yM////////////' + | |
| '////////////////////////////////z6WC/7+HWf+/h1n/v4dZ/7+HWf+/h1n/////////////' + | |
| '/////////////////////////+/h1f+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+5fk3/qWQr/6lkK/+5fk3/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/8+lgv///////////////////////////////////////////7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/z6WC//v39P///////////////////////////////////////////8udeP+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ///////////////////////////////////////v4dX/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/uX5N/6lkK/+pZCv/uX5N' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf/PpYL/////////////////' + | |
| '///////////////////////////v4dX/7+HV/+/h1f/v4dX/+/f0////////////////////////' + | |
| '//////////////////////////////+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf//////////////' + | |
| '////////////////////////7+HV/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7l+Tf+pZCv/qWQr/7l+Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/z6WC////////////////////////////////////////////////////////' + | |
| '///////////////////////////////////////////////////////////////z6N//v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n//////////////////////////////////////+/h1f+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+5fk3/qWQr/6lkK/+5fk3/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/8+lgv//////////////////' + | |
| '////////////////////////////////////////////////////////////////////////////' + | |
| '////////////////////////17SX/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ////////////////' + | |
| '///////////////////////v4dX/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/uX5N/6lkK/+pZCv/uX5N/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf/PpYL/////////////////////////////////////////////////////////' + | |
| '////////////////////////////////////////////////////////59LA/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf//////////////////////////////////////7+HV/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7l+Tf+pZCv/qWQr/7l+Tf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/z6WC////////////////////' + | |
| '////////////////////////////////////////////////////////////////////////////' + | |
| '////////////59LA/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/////////////////' + | |
| '/////////////////////+/h1f+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+5fk3/qWQr/6lkK/+5fk3/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/8+lgv//////////////////////////////////////////////////////////' + | |
| '///////////////////////////////////////r2cv/z6WC/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ///////////////////////////////////////v4dX/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/uX5N/6lkK/+pZCv/uX5N/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf/LnXj/7+HV/+/h1f/v4dX/7+HV' + | |
| '/+/h1f/v4dX/7+HV/+/h1f/v4dX/7+HV/+/h1f/v4dX/7+HV/+PKtv/fw6z/38Os/8+lgv/DjmP/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf/PpYL/z6WC/8+lgv/P' + | |
| 'pYL/z6WC/8+lgv/PpYL/y514/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7l+Tf+pZCv/qWQr/7l+Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+5fk3/qWQr/6lkK/+5fk3/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/uX5N/6lkK/+pZCv/uX5N/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7l+Tf+pZCv/qWQr/7l+Tf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+5fk3/qWQr/6lkK/+5fk3/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/uX5N/6lkK/+pZCv/uX5N/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7l+Tf+pZCv/qWQr/7l+Tf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+5fk3/qWQr/6lkK/+5fk3/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/uX5N/6lkK/+pZCv/uX5N/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7l+Tf+pZCv/qWQr/7l+Tf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+5fk3/qWQr/6lkK/+5fk3/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/uX5N/6lkK/+pZCvftHVC/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7R1Qv+pZCvfqWQrf6pmLf+9hFb/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/72EVv+qZi3/qWQrf6lkKw+pZCvPrWoz/72EVv+/' + | |
| 'h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+H' + | |
| 'Wf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ' + | |
| '/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/' + | |
| 'v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/7+HWf+/h1n/v4dZ/72EVv+t' + | |
| 'ajP/qWQrz6lkKw8AAAAAqWQrH6lkK8+qZi3/tHVC/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+' + | |
| 'Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N' + | |
| '/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/' + | |
| 'uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5fk3/uX5N/7l+Tf+5' + | |
| 'fk3/uX5N/7l+Tf+5fk3/uX5N/7R1Qv+qZi3/qWQrz6lkKw8AAAAAAAAAAAAAAACpZCsPqWQrf6lk' + | |
| 'K9+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr' + | |
| '/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/' + | |
| 'qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+p' + | |
| 'ZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCv/qWQr/6lkK/+pZCvfqWQrf6lk' + | |
| 'Kw8AAAAAAAAAAPAAAAAAAAAPwAAAAAAAAAOAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAHAAAAAAAAA' + | |
| 'A/AAAAAAAAAP' | |
| }), | |
| hatebuStatusLabel = $U.createElement("label", { | |
| id: HATEBU_STATUS_ID, | |
| flex: 1, | |
| value: "N" | |
| }) | |
| ]); | |
| let gHatebu = new Counter({ | |
| label: hatebuStatusLabel, | |
| requestCountUrl: function(url) { | |
| return util.format("http://api.b.st-hatena.com/entry.count?url=%s", encodeURIComponent(url)); | |
| }, | |
| requestCommentUrl: function(url) { | |
| return util.format("http://b.hatena.ne.jp/entry/jsonlite/?url=%s", encodeURIComponent(url)); | |
| }, | |
| getLinkUrl: function(url) { | |
| return util.format("http://b.hatena.ne.jp/entry/%s", url); | |
| }, | |
| handleRequestCount: function(responseText) { | |
| if (responseText == "") { | |
| return 0; | |
| } | |
| try { | |
| return parseInt(responseText); | |
| } catch (e) { | |
| return 0; | |
| } | |
| }, | |
| handleRequestComment: function(responseText) { | |
| if (responseText == "null") { | |
| return []; | |
| } | |
| let json = JSON.parse(responseText); | |
| return json.bookmarks.map(function(bookmark) { | |
| return { | |
| "user": bookmark["user"], | |
| "tags": bookmark["tags"], | |
| "comment": bookmark["comment"] | |
| }; | |
| }); | |
| } | |
| }); | |
| counters.push(gHatebu); | |
| container.appendChild(box); | |
| } | |
| // ================ | |
| // Delicious | |
| // ================ | |
| if (pOptions["enable"].indexOf("delicious") != -1) { | |
| box = $U.createElement("hbox", { | |
| align: "center", | |
| flex: 1 | |
| }, [ | |
| icon = $U.createElement("image", { | |
| src: 'data:image/x-icon;base64,' + | |
| 'AAABAAIAEBAAAAEAGABoAwAAJgAAABAQAAABACAAaAQAAI4DAAAoAAAAEAAAACAAAAABABgAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0tLT0tLT0tLT0tLT' + | |
| '0tLT0tLT0tLT0tLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0tLT0tLT0tLT0tLT0tLT0tLT0tLT' + | |
| '0tLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0tLT0tLT0tLT0tLT0tLT0tLT0tLT0tLTAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAA0tLT0tLT0tLT0tLT0tLT0tLT0tLT0tLTAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAA0tLT0tLT0tLT0tLT0tLT0tLT0tLT0tLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| '0tLT0tLT0tLT0tLT0tLT0tLT0tLT0tLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0tLT0tLT0tLT' + | |
| '0tLT0tLT0tLT0tLT0tLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0tLT0tLT0tLT0tLT0tLT0tLT' + | |
| '0tLT0tLT////////////////////////////////0HQy0HQy0HQy0HQy0HQy0HQy0HQy0HQy////' + | |
| '////////////////////////////0HQy0HQy0HQy0HQy0HQy0HQy0HQy0HQy////////////////' + | |
| '////////////////0HQy0HQy0HQy0HQy0HQy0HQy0HQy0HQy////////////////////////////' + | |
| '////0HQy0HQy0HQy0HQy0HQy0HQy0HQy0HQy////////////////////////////////0HQy0HQy' + | |
| '0HQy0HQy0HQy0HQy0HQy0HQy////////////////////////////////0HQy0HQy0HQy0HQy0HQy' + | |
| '0HQy0HQy0HQy////////////////////////////////0HQy0HQy0HQy0HQy0HQy0HQy0HQy0HQy' + | |
| '////////////////////////////////0HQy0HQy0HQy0HQy0HQy0HQy0HQy0HQyAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA' + | |
| 'AAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA' + | |
| '/wAAAP8AAAD/AAAA/9LS0//S0tP/0tLT/9LS0//S0tP/0tLT/9LS0//S0tP/AAAA/wAAAP8AAAD/' + | |
| 'AAAA/wAAAP8AAAD/AAAA/wAAAP/S0tP/0tLT/9LS0//S0tP/0tLT/9LS0//S0tP/0tLT/wAAAP8A' + | |
| 'AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/0tLT/9LS0//S0tP/0tLT/9LS0//S0tP/0tLT/9LS' + | |
| '0/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/9LS0//S0tP/0tLT/9LS0//S0tP/0tLT' + | |
| '/9LS0//S0tP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/S0tP/0tLT/9LS0//S0tP/' + | |
| '0tLT/9LS0//S0tP/0tLT/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/0tLT/9LS0//S' + | |
| '0tP/0tLT/9LS0//S0tP/0tLT/9LS0/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/9LS' + | |
| '0//S0tP/0tLT/9LS0//S0tP/0tLT/9LS0//S0tP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA' + | |
| '/wAAAP/S0tP/0tLT/9LS0//S0tP/0tLT/9LS0//S0tP/0tLT////////////////////////////' + | |
| '////////////////0HQy/9B0Mv/QdDL/0HQy/9B0Mv/QdDL/0HQy/9B0Mv//////////////////' + | |
| '/////////////////////////9B0Mv/QdDL/0HQy/9B0Mv/QdDL/0HQy/9B0Mv/QdDL/////////' + | |
| '///////////////////////////////////QdDL/0HQy/9B0Mv/QdDL/0HQy/9B0Mv/QdDL/0HQy' + | |
| '////////////////////////////////////////////0HQy/9B0Mv/QdDL/0HQy/9B0Mv/QdDL/' + | |
| '0HQy/9B0Mv///////////////////////////////////////////9B0Mv/QdDL/0HQy/9B0Mv/Q' + | |
| 'dDL/0HQy/9B0Mv/QdDL////////////////////////////////////////////QdDL/0HQy/9B0' + | |
| 'Mv/QdDL/0HQy/9B0Mv/QdDL/0HQy////////////////////////////////////////////0HQy' + | |
| '/9B0Mv/QdDL/0HQy/9B0Mv/QdDL/0HQy/9B0Mv//////////////////////////////////////' + | |
| '/////9B0Mv/QdDL/0HQy/9B0Mv/QdDL/0HQy/9B0Mv/QdDL/AAAAAAAAAAAAAAAAAAAAAAAAAAAA' + | |
| 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==' | |
| }), | |
| deliciousStatusLabel = $U.createElement("label", { | |
| id: DELICIOUS_STATUS_ID, | |
| flex: 1, | |
| value: "N" | |
| }) | |
| ]); | |
| let gDelicious = new Counter({ | |
| label: deliciousStatusLabel, | |
| requestCountUrl: function(url) { | |
| return util.format("http://feeds.delicious.com/v2/json/urlinfo/blogbadge?url=%s", encodeURIComponent(url)); | |
| }, | |
| requestCommentUrl: function(url) { | |
| return util.format("http://feeds.delicious.com/v2/json/url/%s", md5(url)); | |
| }, | |
| getLinkUrl: function(url) { | |
| return util.format("http://www.delicious.com/url/%s", md5(url)); | |
| }, | |
| handleRequestCount: function(responseText) { | |
| if (!responseText) { | |
| return 0; | |
| } | |
| let json = JSON.parse(responseText); | |
| if (json.length == 0) { | |
| return 0; | |
| } | |
| return json[0]["total_posts"]; | |
| }, | |
| handleRequestComment: function(responseText) { | |
| if (!responseText) { | |
| return []; | |
| } | |
| let json = JSON.parse(responseText); | |
| if (json.length == 0) { | |
| return []; | |
| } | |
| return json.map(function(bookmark) { | |
| return { | |
| "user": bookmark["a"], | |
| "tags": bookmark["t"], | |
| "comment": bookmark["n"] | |
| }; | |
| }); | |
| } | |
| }); | |
| counters.push(gDelicious); | |
| container.appendChild(box); | |
| } | |
| $U.insertAfter(statusbar, container, statusbarPanel); | |
| counters.forEach(function(counter) { | |
| counter.label.parentNode.onclick = function(event) { | |
| let url = counter.getLinkUrl(gBrowser.selectedBrowser.contentDocument.location.href); | |
| openUILinkIn(url, "tab"); | |
| }; | |
| }); | |
| var self = { | |
| ignore: function ignore(url) { | |
| let ignores = pOptions["ignores"]; | |
| let ignore = ignores.some(function(ignore) { | |
| return ignore.test(url); | |
| }); | |
| if (!ignore) { | |
| return false; | |
| } | |
| let rescues = pOptions["rescues"]; | |
| return !rescues.some(function(rescue) { | |
| return rescue.test(url); | |
| }); | |
| }, | |
| showCount: function request(url) { | |
| if (self.ignore(url)) { | |
| self.disable(); | |
| return; | |
| } | |
| counters.forEach(function(counter) { | |
| counter.showCount(url); | |
| }); | |
| }, | |
| disable: function disable() { | |
| counters.forEach(function(counter) { | |
| counter.label.value = "N"; | |
| }); | |
| } | |
| }; | |
| return self; | |
| })(); | |
| if (my.handleLocationChange) { | |
| hook.removeHook("LocationChange", my.handleLocationChange); | |
| }; | |
| my.handleLocationChange = function handleLocationChange(aNsURI) { | |
| if (aNsURI || aNsURI.spec) { | |
| var pbs = Cc["@mozilla.org/privatebrowsing;1"] | |
| .getService(Components.interfaces.nsIPrivateBrowsingService); | |
| if (pbs.privateBrowsingEnabled) { | |
| sbmCounter.disable(); | |
| } else { | |
| var url = aNsURI.spec; | |
| sbmCounter.showCount(url); | |
| } | |
| } | |
| }; | |
| hook.addToHook("LocationChange", my.handleLocationChange); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment