summaryrefslogtreecommitdiff
path: root/data/extensions/https-everywhere-eff@eff.org/chrome/content/code
diff options
context:
space:
mode:
authorRuben Rodriguez <ruben@gnu.org>2018-02-25 20:04:31 -0500
committerRuben Rodriguez <ruben@gnu.org>2018-02-25 20:04:31 -0500
commit229240370f009a7ba1dc31f57bcfcbd2cf785d0a (patch)
treedefa51219f44d19451bbcfd1e8298eadb1e3f4b7 /data/extensions/https-everywhere-eff@eff.org/chrome/content/code
parentf2a3be07039056c76e3ca4e6040ec900ba64f376 (diff)
Updated extensions
- HTTPS Everywhere updated to 2018.1.11 - "goteo.org payments with free JS" updated to 1.1 - "LibreJS compatible Pay.gov" updated to 1.3 - "Reveal hidden HTML" updated to 1.6 - Enabled WebRTC, but prevent leaking the LAN ip.
Diffstat (limited to 'data/extensions/https-everywhere-eff@eff.org/chrome/content/code')
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/AndroidUI.jsm260
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/ApplicableList.js279
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js150
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPS.js330
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js780
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/IOUtil.js267
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/NSS.js489
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Root-CAs.js348
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/X509ChainWhitelist.js1007
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/commonOCSP.json289
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/code/sha256.js249
11 files changed, 0 insertions, 4448 deletions
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/AndroidUI.jsm b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/AndroidUI.jsm
deleted file mode 100644
index a269e04..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/AndroidUI.jsm
+++ /dev/null
@@ -1,260 +0,0 @@
-const CC = Components.classes;
-const CI = Components.interfaces;
-const CU = Components.utils;
-
-var HTTPSEverywhere = CC["@eff.org/https-everywhere;1"]
- .getService(CI.nsISupports).wrappedJSObject;
-
-CU.import("resource://gre/modules/Prompt.jsm");
-
-var menuToggleId;
-var menuParentId;
-var menuRulesId;
-var menuDefaultsId;
-var aWindow = getWindow();
-
-
-/*
- * Setup/Teardown for the UI
- */
-
-function loadIntoWindow() {
- if (!aWindow) {
- return;
- }
- var enabled = HTTPSEverywhere.prefs.getBoolPref("globalEnabled");
- addMenuItems(enabled);
-
- // When navigating away from a page, we want to clear the applicable list for
- // that page. There are a few different APIs to do this, but this is the one
- // that work on mobile. We trigger on pagehide rather than pageshow because we
- // want to capture subresources during load.
- var BrowserApp = aWindow.BrowserApp;
- BrowserApp.deck.addEventListener("pagehide", function(evt) {
- var browser = BrowserApp.getBrowserForDocument(evt.target);
- HTTPSEverywhere.resetApplicableList(browser);
- }, true);
-}
-
-function unloadFromWindow() {
- if (!aWindow) {
- return;
- }
- aWindow.NativeWindow.menu.remove(menuParentId);
-}
-
-
-/*
- * Add a menu item to toggle HTTPS Everywhere
- */
-
-function addToggleItemToMenu(enabled) {
- if (menuToggleId) { aWindow.NativeWindow.menu.remove(menuToggleId); }
- var menuLabel = enabled ? "Disable" : "Enable";
- menuToggleId = aWindow.NativeWindow.menu.add({
- name: menuLabel,
- callback: function() {
- popupToggleMenu(aWindow, enabled);
- },
- parent: menuParentId
- });
-}
-
-function addRulesItemToMenu(enabled){
- if (menuRulesId) { aWindow.NativeWindow.menu.remove(menuRulesId); }
-
- if (enabled) {
- menuRulesId = aWindow.NativeWindow.menu.add({
- name: "Enable/disable rules",
- callback: function() {
- popupInfo.fill();
- rulesPrompt.setMultiChoiceItems(popupInfo.ruleItems);
- rulesPrompt.show(function(data) {
- var db = data.button;
- if (db === -1) { return null; } // user didn't click the accept button
-
- for (var i=0; i<popupInfo.rules.length; i++) {
- var ruleOn = popupInfo.ruleStatus[i];
- var ruleChecked = (data.list.indexOf(i) == -1 ? false : true);
- if (ruleOn !== ruleChecked) {
- HTTPSEverywhere.log(4, "toggling: "+JSON.stringify(popupInfo.rules[i]));
- popupInfo.rules[i].toggle();
- }
- }
- reloadTab();
- return null;
- });
- },
- parent: menuParentId
- });
- }
-}
-
-function addDefaultsItemToMenu(enabled){
- if (menuDefaultsId) { aWindow.NativeWindow.menu.remove(menuDefaultsId); }
-
- if (enabled) {
- menuDefaultsId = aWindow.NativeWindow.menu.add({
- name: "Reset to Defaults",
- callback: function() {
- popupResetDefaultsMenu(aWindow);
- },
- parent: menuParentId
- });
- }
-}
-
-function addMenuItems(enabled){
- if(!menuParentId){
- menuParentId = aWindow.NativeWindow.menu.add({
- name: "HTTPS Everywhere",
- });
- }
- addToggleItemToMenu(enabled);
- addRulesItemToMenu(enabled);
- addDefaultsItemToMenu(enabled);
-}
-
-function popupToggleMenu(aWindow, enabled) {
- var buttons = [
- {
- label: "Yes",
- callback: function() {
- toggleEnabledState();
- var msg = enabled ? "HTTPS Everywhere disabled!" : "HTTPS Everywhere enabled!";
- aWindow.NativeWindow.toast.show(msg, "short");
- return true;
- },
- positive: true
- }, {
- label: "No",
- callback: function() { return false; }
- }
- ];
- var newState = enabled ? "off?" : "on?";
- aWindow.NativeWindow.doorhanger.show("Would you like to turn HTTPS Everywhere "+newState,
- "doorhanger-toggle", buttons);
-}
-
-
-/*
- * The HTTPS Everywhere icon in the URL bar shows a popup of rules that the
- * user can activate/deactivate. On long click, reset all rules to defaults.
- */
-
-var popupInfo = {
- rules: [],
- ruleItems: [],
- ruleStatus: [],
- alist: null,
- getApplicableList: function() {
- var browser = aWindow.BrowserApp.selectedBrowser;
- return HTTPSEverywhere.getApplicableListForBrowser(browser);
- },
- fill: function() {
- this.clear();
- this.alist = this.getApplicableList();
- HTTPSEverywhere.log(4,"applicable list active: "+JSON.stringify(this.alist.active));
- HTTPSEverywhere.log(4,"applicable list inactive: "+JSON.stringify(this.alist.inactive));
- for (var rule in this.alist.all) {
- if (this.alist.active.hasOwnProperty(rule)) {
- // active rules are checked and toggleable
- this.ruleItems.push({ label: rule, selected: true });
- this.ruleStatus.push(true);
- this.rules.push(this.alist.active[rule]);
- } else if (this.alist.moot.hasOwnProperty(rule)) {
- // moot rules are checked and toggleable too
- this.ruleItems.push({ label: rule, selected: true });
- this.ruleStatus.push(true);
- this.rules.push(this.alist.moot[rule]);
- } else if (this.alist.inactive.hasOwnProperty(rule)) {
- // inactive rules are unchecked and toggleable
- this.ruleItems.push({ label: rule });
- this.ruleStatus.push(false);
- this.rules.push(this.alist.inactive[rule]);
- } else if (this.alist.breaking.hasOwnProperty(rule)) {
- // breaking rules are get a unicode clockwise arrow next to them
- var ruleLabel = "\u21B7"+rule;
- var isSelected = this.alist.breaking[rule].active;
- this.ruleItems.push({ label: ruleLabel, selected: isSelected });
- this.ruleStatus.push(isSelected);
- this.rules.push(this.alist.breaking[rule]);
- }
- }
- },
- clear: function() {
- this.rules = [];
- this.ruleItems = [];
- this.ruleStatus = [];
- this.alist = {};
- }
-};
-
-var rulesPrompt = new Prompt({
- window: aWindow,
- title: "Enable/disable rules",
- buttons: ["Apply changes"]
-});
-
-function popupResetDefaultsMenu(aWindow) {
- var buttons = [
- {
- label: "Yes",
- callback: function() {
- resetToDefaults();
- var msg = "Default rules reset.";
- aWindow.NativeWindow.toast.show(msg, "short");
- return true;
- },
- positive: true
- }, {
- label: "No",
- callback: function() { return false; }
- }
- ];
- aWindow.NativeWindow.doorhanger.show("Reset all HTTPS Everywhere rules to defaults?",
- "doorhanger-reset", buttons);
-}
-
-
-/*
- * Some useful utils
- */
-
-function reloadTab() {
- // There seems to be no API to do this directly?
- aWindow.BrowserApp.selectedTab.window.location.reload();
-}
-
-function toggleEnabledState(){
- HTTPSEverywhere.toggleEnabledState();
- loadIntoWindow();
- reloadTab();
-}
-
-function resetToDefaults() {
- HTTPSEverywhere.https_rules.resetRulesetsToDefaults();
- reloadTab();
-}
-
-function getWindow() {
- return CC['@mozilla.org/appshell/window-mediator;1']
- .getService(CI.nsIWindowMediator)
- .getMostRecentWindow('navigator:browser');
-}
-
-
-/*
- * Here's the external API to this UI module
- */
-
-var AndroidUI = {
- init: function() {
- loadIntoWindow();
- },
- shutdown: function() {
- unloadFromWindow();
- }
-};
-
-var EXPORTED_SYMBOLS = ["AndroidUI"];
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/ApplicableList.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/ApplicableList.js
deleted file mode 100644
index 1c5263a..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/ApplicableList.js
+++ /dev/null
@@ -1,279 +0,0 @@
-// An ApplicableList is a structure used to keep track of which rulesets
-// were applied, and which ones weren't but might have been, to the contents
-// of a given page (top level nsIDOMWindow)
-
-var serial_number = 0;
-
-function ApplicableList(logger, uri) {
- this.log = logger;
- this.uri = uri.clone();
- if (!this.uri) {
- this.log(WARN,"NULL CLONING URI " + doc);
- if (uri) {
- this.log(WARN,"NULL CLONING URI " + uri.spec);
- }
- }
- this.home = uri.spec; // what doc we're housekeeping for
- this.active = {};
- this.breaking = {}; // rulesets with redirection loops
- this.inactive = {};
- this.moot={}; // rulesets that might be applicable but uris are already https
- this.all={}; // active + breaking + inactive + moot
- serial_number += 1;
- this.serial = serial_number;
- this.log(DBUG,"Alist serial #" + this.serial + " for " + this.home);
-}
-
-ApplicableList.prototype = {
-
- empty: function() {
- // Empty everything, used when toggles occur in order to ensure that if
- // the reload fails, the resulting list is not erroneous
- this.active = {};
- this.breaking = {};
- this.inactive = {};
- this.moot={};
- this.all={};
- },
-
- active_rule: function(ruleset) {
- this.log(INFO,"active rule " + ruleset.name +" in "+ this.home +" -> " +
- this.uri.spec+ " serial " + this.serial);
- this.active[ruleset.name] = ruleset;
- this.all[ruleset.name] = ruleset;
- },
-
- breaking_rule: function(ruleset) {
- this.log(NOTE,"breaking rule " + ruleset.name +" in "+ this.home +" -> " +
- this.uri.spec+ " serial " + this.serial);
- this.breaking[ruleset.name] = ruleset;
- this.all[ruleset.name] = ruleset;
- },
-
- inactive_rule: function(ruleset) {
-
- this.log(INFO,"inactive rule " + ruleset.name +" in "+ this.home +" -> " +
- this.uri.spec+ " serial " + this.serial);
- this.inactive[ruleset.name] = ruleset;
- this.all[ruleset.name] = ruleset;
- },
-
- moot_rule: function(ruleset) {
- this.log(INFO,"moot rule " + ruleset.name +" in "+ this.home + " serial " + this.serial);
- this.moot[ruleset.name] = ruleset;
- this.all[ruleset.name] = ruleset;
- },
-
- dom_handler: function(operation,key,data,src,dst) {
- // See https://developer.mozilla.org/En/DOM/UserDataHandler
- if (src && dst)
- dst.setUserData(key, data, this.dom_handler);
- },
-
- populate_list: function() {
- // The base URI of the dom tends to be loaded from some /other/
- // ApplicableList, so pretend we're loading it from here.
- var uri = this.uri;
- if (!(uri.schemeIs("http") || uri.schemeIs("https"))) {
- return true;
- }
- HTTPSEverywhere.instance.https_rules.rewrittenURI(this, uri);
- this.log(DBUG, "populating using alist #" + this.serial);
- },
-
- populate_menu: function(document, menupopup, weird) {
- this.populate_list();
- this.document = document;
-
- var https_everywhere = CC["@eff.org/https-everywhere;1"].getService(Components.interfaces.nsISupports).wrappedJSObject;
-
- // get the menu popup
- this.menupopup = menupopup;
-
- // empty it all of its menuitems
- while(this.menupopup.firstChild.tagName != "menuseparator") {
- this.menupopup.removeChild(this.menupopup.firstChild);
- }
-
- // add global enable/disable toggle button
- var strings = document.getElementById("HttpsEverywhereStrings");
-
- var enableLabel = document.createElement('menuitem');
- var text = strings.getString("https-everywhere.menu.globalDisable");
- if(!https_everywhere.prefs.getBoolPref("globalEnabled"))
- text = strings.getString("https-everywhere.menu.globalEnable");
-
- enableLabel.setAttribute('label', text);
- enableLabel.setAttribute('command', 'https-everywhere-menuitem-globalEnableToggle');
- this.prepend_child(enableLabel);
-
- // add the label at the top
- var any_rules = false;
- for(var x in this.all) {
- any_rules = true; // how did JavaScript get this ugly?
- break;
- }
- // This label just describes the fact that the items underneath it enable
- // and disable rules.
- var label = document.createElement('menuitem');
- label.setAttribute('label', strings.getString('https-everywhere.menu.enableDisable'));
- label.setAttribute('disabled', 'true');
- label.setAttribute('class', 'menuitem-non-iconic');
- label.setAttribute('style', 'font-weight: bold; color: -moz-MenuBarText;');
- var label2 = false;
- if (!any_rules) {
- label2 = document.createElement('menuitem');
- if (!weird) text = strings.getString('https-everywhere.menu.noRules');
- else text = strings.getString('https-everywhere.menu.unknownRules');
- label2.setAttribute('label', text);
- label2.setAttribute('command', 'https-everywhere-menuitem-preferences');
- label2.setAttribute('style', 'color:#909090;');
- }
-
- // create a commandset if it doesn't already exist
- this.commandset = document.getElementById('https-everywhere-commandset');
- if(!this.commandset) {
- this.commandset = document.createElement('commandset');
- this.commandset.setAttribute('id', 'https-everywhere-commandset');
- var win = document.getElementById('main-window');
- win.appendChild(this.commandset);
- } else {
- // empty commandset
- while(this.commandset.firstChild)
- this.commandset.removeChild(this.commandset.firstChild);
- }
-
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
-
- var browser = wm.getMostRecentWindow("navigator:browser").gBrowser.selectedBrowser;
- var location = browser.currentURI.asciiSpec; //full url, including about:certerror details
-
- if(location.substr(0, 6) == "about:"){
- //"From" portion of the rule is retrieved from the location bar via document.getElementById("urlbar").value
-
- var fromHost = document.getElementById("urlbar").value;
-
- //scheme must be trimmed out to check for applicable rulesets
- if(fromHost.indexOf("://") != -1)
- fromHost = fromHost.substr(fromHost.indexOf("://") + 3, fromHost.length);
-
- //trim off any page locations - we only want the host - e.g. domain.com
- if(fromHost.indexOf("/") != -1)
- fromHost = fromHost.substr(0, fromHost.indexOf("/"));
-
- // Search for applicable rulesets for the host listed in the location bar
- var plist = HTTPSRules.potentiallyApplicableRulesets(fromHost);
- for (var i = 0 ; i < plist.length ; i++){
- //For each applicable rulset, determine active/inactive, and append to proper list.
- var ruleOn = false;
- try {
- if(https_everywhere.rule_toggle_prefs.getBoolPref(plist[i].name))
- ruleOn = true;
- } catch(e) {
- if(https_everywhere.https_rules.rulesetsByName[plist[i].name].active)
- ruleOn = true;
- }
- if(ruleOn)
- this.active_rule(plist[i]);
- else
- this.inactive_rule(plist[i]);
- }
- }
-
- // add all applicable commands
- for(var x in this.breaking)
- this.add_command(this.breaking[x]);
- for(var x in this.active)
- this.add_command(this.active[x]);
- for(var x in this.moot)
- this.add_command(this.moot[x]);
- for(var x in this.inactive)
- this.add_command(this.inactive[x]);
-
- if(https_everywhere.prefs.getBoolPref("globalEnabled")){
- // add all the menu items
- for (var x in this.inactive)
- this.add_menuitem(this.inactive[x], 'inactive');
- // rules that are active for some uris are not really moot
- for (var x in this.moot)
- if (!(x in this.active))
- this.add_menuitem(this.moot[x], 'moot');
- // break once break everywhere
- for (var x in this.active)
- if (!(x in this.breaking))
- this.add_menuitem(this.active[x], 'active');
- for (var x in this.breaking)
- this.add_menuitem(this.breaking[x], 'breaking');
-
- if (label2) this.prepend_child(label2);
- this.prepend_child(label);
- }
-
- },
-
- prepend_child: function(node) {
- this.menupopup.insertBefore(node, this.menupopup.firstChild);
- },
-
- add_command: function(rule) {
- // basic validation for data to be added to xul
- var ruleId = String(rule.id);
- if (!ruleId.match(/^[a-zA-Z_0-9]+$/)) {
- return;
- }
-
- var command = this.document.getElementById("https-everywhere-menuitem-rule-toggle-template").cloneNode();
- command.setAttribute('id', ruleId+'-command');
- command.setAttribute('data-id', ruleId);
- command.setAttribute('label', rule.name);
- this.commandset.appendChild(command);
- },
-
- // add a menu item for a rule -- type is "active", "inactive", "moot",
- // or "breaking"
-
- add_menuitem: function(rule, type) {
- // create the menuitem
- var item = this.document.createElement('menuitem');
- item.setAttribute('command', rule.id+'-command');
- item.setAttribute('class', type+'-item menuitem-iconic');
- item.setAttribute('type', 'checkbox');
- item.setAttribute('label', rule.name);
-
- // we can get confused if rulesets have their state changed after the
- // ApplicableList was constructed
- if (!rule.active && (type == 'active' || type == 'moot'))
- type = 'inactive';
- if (rule.active && type == 'inactive')
- type = 'moot';
-
- // set the icon
- var image_src;
- if (type == 'active') image_src = 'tick.png';
- else if (type == 'inactive') image_src = 'cross.png';
- else if (type == 'moot') image_src = 'tick-moot.png';
- else if (type == 'breaking') image_src = 'loop.png';
- item.setAttribute('image', 'chrome://https-everywhere/skin/'+image_src);
-
- // all done
- this.prepend_child(item);
- },
-
- show_applicable: function() {
- this.log(WARN, "Applicable list number " + this.serial);
- for (var x in this.active)
- this.log(WARN,"Active: " + this.active[x].name);
-
- for (var x in this.breaking)
- this.log(WARN,"Breaking: " + this.breaking[x].name);
-
- for (x in this.inactive)
- this.log(WARN,"Inactive: " + this.inactive[x].name);
-
- for (x in this.moot)
- this.log(WARN,"Moot: " + this.moot[x].name);
-
- }
-};
-
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js
deleted file mode 100644
index 80b3e50..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js
+++ /dev/null
@@ -1,150 +0,0 @@
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-
-function Cookie(s, host) {
- this.parse(s, host);
-}
-Cookie.computeId = function(c) {
- return c.name + ";" + c.host + "/" + c.path;
-};
-Cookie.find = function(f) {
- var cc = Cookie.prototype.cookieManager.enumerator;
- var c;
- while (cc.hasMoreElements()) {
- if (f(c = cc.getNext())) return c;
- }
- return null;
-};
-
-Cookie.attributes = { host: 'domain', path: 'path', expires: 'expires', isHttpOnly: 'HttpOnly', isSecure: 'Secure' };
-Cookie.prototype = {
-
- name: '',
- value: '',
- source: '',
- domain: '',
- host: '',
- rawHost: '',
- path: '',
- secure: false,
- httponly: false,
- session: true,
- expires: 0,
-
- id: '',
-
-
- toString: function() {
- var c = [this['name'] + "=" + this.value];
- var v;
- const aa = Cookie.attributes;
- for (var k in aa) {
- var p = aa[k];
- v = this[k];
- switch(typeof(v)) {
- case "string":
- if (v) c.push(p + "=" + v);
- break;
- case "boolean":
- if (v) c.push(p);
- break;
- case "number":
- if (!this.isSession) c.push(p + "=" + new Date(v * 1000).toUTCString());
- break;
- }
- }
- return c.join("; ");
- },
- parse: function(s, host) {
- var p;
- if (this.source) {
- // cleanup for recycle
- for (p in this) {
- if (typeof (p) != "function") delete this[p];
- }
- }
- this.source = s;
- this.host = host;
-
- var parts = s.split(/;\s*/);
- var nv = parts.shift().split("=");
-
- this.name = nv.shift() || '';
- this.value = nv.join('=') || '';
-
- var n, v;
- for (p of parts) {
- nv = p.split("=");
- switch (n = nv[0].toLowerCase()) {
- case 'expires':
- v = Math.round(Date.parse((nv[1] || '').replace(/\-/g, ' ')) / 1000);
- break;
- case 'domain':
- case 'path':
- v = nv[1] || '';
- break;
- case 'secure':
- case 'httponly':
- v = true;
- break;
- default:
- n = 'unknown';
- }
- this[n] = v;
- }
- if (!this.expires) {
- this.session = true;
- this.expires = Math.round(new Date() / 1000) + 31536000;
- }
- if (this.domain) {
- if (!this.isDomain) this.domain = "." + this.domain;
- this.host = this.domain;
- }
- this.rawHost = this.host.replace(/^\./, '');
-
- this.id = Cookie.computeId(this);
- },
-
-
- get cookieManager() {
- delete Cookie.prototype.cookieManager;
- var cman = Cc["@mozilla.org/cookiemanager;1"]
- .getService(Ci.nsICookieManager2).QueryInterface(Ci.nsICookieManager);
- return Cookie.prototype.cookieManager = cman;
- },
- belongsTo: function(host, path) {
- if (path && this.path && path.indexOf(this.path) != 0) return false;
- if (host == this.rawHost) return true;
- var d = this.domain;
- return d && (host == d || this.isDomain && host.slice(-d.length) == d);
- },
- save: function() {
- this.save = ("cookieExists" in this.cookieManager)
- ? function() { this.cookieManager.add(this.host, this.path, this.name, this.value, this.secure, this.httponly, this.session, this.expires); }
- : function() { this.cookieManager.add(this.host, this.path, this.name, this.value, this.secure, this.session, this.expires);}
- ;
- return this.save();
- },
- exists: function() {
- var cc = this.cookieManager.enumerator;
- while(cc.hasMoreElements()) {
- if (this.sameAs(cc.getNext())) return true;
- }
- return false;
- },
-
- sameAs: function(c) {
- (c instanceof Ci.nsICookie) && (c instanceof Ci.nsICookie2);
- return Cookie.computeId(c) == this.id;
- },
-
- // nsICookie2 interface extras
- get isSecure() { return this.secure; },
- get expiry() { return this.expires; },
- get isSession() { return this.session; },
- get isHttpOnly() { return this.httponly; },
- get isDomain() { return this.domain && this.domain[0] == '.'; },
- policy: 0,
- status: 0,
- QueryInterface: XPCOMUtils.generateQI([Ci.nsICookie, Ci.nsICookie2])
-
-};
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPS.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPS.js
deleted file mode 100644
index c7328f6..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPS.js
+++ /dev/null
@@ -1,330 +0,0 @@
-INCLUDE('Cookie');
-
-var securityService = CC['@mozilla.org/ssservice;1']
- .getService(CI.nsISiteSecurityService);
-
-// Hack. We only need the part of the policystate that tracks content
-// policy loading.
-const PolicyState = {
- attach: function(channel) {
- IOUtil.attachToChannel(channel, "httpseverywhere.policyLoaded", true);
- },
-
- extract: function(channel) {
- var res = IOUtil.extractFromChannel(channel,
- "httpseverywhere.policyLoaded", true);
- return res;
- },
-};
-
-const HTTPS = {
- ready: false,
-
- secureCookies: true,
- secureCookiesExceptions: null,
- secureCookiesForced: null,
- httpsForced: null,
- httpsForcedExceptions: null,
- httpsRewrite: null,
-
- /**
- * Given a channel and a list of potentially applicable rules,
- * redirect or abort a request if appropriate.
- *
- * @param {RuleSet[]} applicable_list A list of potentially applicable rules
- * (i.e. those that match on a hostname basis).
- * @param {nsIChannel} channel The channel to be manipulated.
- * @param {boolean} httpNowhereEnabled Whether to abort non-https requests.
- * @returns {boolean} True if the request was redirected; false if it was
- * untouched or aborted.
- */
- replaceChannel: function(applicable_list, channel, httpNowhereEnabled) {
- var blob = HTTPSRules.rewrittenURI(applicable_list, channel.URI.clone());
- var uri;
- if (blob === null) {
- // Abort insecure non-onion, non-localhost requests if HTTP Nowhere is on
- if (httpNowhereEnabled &&
- channel.URI.schemeIs("http") &&
- !/\.onion$/.test(channel.URI.host) &&
- !/^localhost$/.test(channel.URI.host) &&
- !/^127(\.[0-9]{1,3}){3}$/.test(channel.URI.host) &&
- !/^0\.0\.0\.0$/.test(channel.URI.host)
- ) {
- var newurl = channel.URI.spec.replace(/^http:/, "https:");
- uri = CC["@mozilla.org/network/standard-url;1"].
- createInstance(CI.nsIStandardURL);
- uri.init(CI.nsIStandardURL.URLTYPE_STANDARD, 443,
- newurl, channel.URI.originCharset, null);
- uri = uri.QueryInterface(CI.nsIURI);
- } else {
- return false; // no rewrite
- }
- } else {
- uri = blob.newuri;
- }
- if (!uri) this.log(WARN, "OH NO BAD ARGH\nARGH");
-
- // Abort downgrading if HTTP Nowhere is on
- if (httpNowhereEnabled && uri.schemeIs("http")) {
- IOUtil.abort(channel);
- }
-
- var c2 = channel.QueryInterface(CI.nsIHttpChannel);
- this.log(DBUG, channel.URI.spec+": Redirection limit is " + c2.redirectionLimit);
- // XXX This used to be (c2.redirectionLimit == 1), but that's very
- // inefficient in a case (eg amazon) where this may happen A LOT.
- // Rather than number like 10, we should use the starting value
- // in network.http.redirection-limit minus some counter
- if (c2.redirectionLimit < 10) {
- this.log(WARN, "Redirection loop trying to set HTTPS on:\n " +
- channel.URI.spec +"\n(falling back to HTTP)");
- if (blob) {
- if (!blob.applied_ruleset) {
- this.log(WARN,"Blacklisting rule for: " + channel.URI.spec);
- https_everywhere_blacklist[channel.URI.spec] = true;
- }
- https_everywhere_blacklist[channel.URI.spec] = blob.applied_ruleset;
- }
- var domain = null;
- try { domain = channel.URI.host; } catch (e) {}
- if (domain) https_blacklist_domains[domain] = true;
- if (httpNowhereEnabled && channel.URI.schemeIs("http")) {
- IOUtil.abort(channel);
- }
- return false;
- }
-
- // Check for the new internal redirect API. If it exists, use it.
- if (!"redirectTo" in channel) {
- this.log(WARN, "nsIHTTPChannel.redirectTo API is missing. This version of HTTPS Everywhere is useless!!!!\n!!!\n");
- return false;
- }
-
- this.log(INFO, "Using nsIHttpChannel.redirectTo: " + channel.URI.spec + " -> " + uri.spec);
- try {
- channel.redirectTo(uri);
- return true;
- } catch(e) {
- // This should not happen. We should only get exceptions if
- // the channel was already open.
- this.log(WARN, "Exception on nsIHttpChannel.redirectTo: "+e);
- }
- this.log(WARN,"Aborting redirection " + channel.name + ", should be HTTPS!");
- IOUtil.abort(channel);
- return false;
- },
-
- // getApplicableListForContext was remove along with the nsIContentPolicy
- // bindings and the and forceURI path that used them.
-
- onCrossSiteRequest: function(channel, origin, browser, rw) {
- try {
- this.handleCrossSiteCookies(channel, origin, browser);
- } catch(e) {
- this.log(WARN, e + " --- " + e.stack);
- }
- },
-
- registered: false,
- handleSecureCookies: function(req) {
-
- try {
- req = req.QueryInterface(CI.nsIHttpChannel);
- } catch(e) {
- this.log(WARN, "Request is not an nsIHttpChannel: " + req);
- return;
- }
- if (!this.secureCookies) return;
- var uri = req.URI;
- if (!uri) {
- this.log(WARN,"No URI inside request " +req);
- return;
- }
- //this.log(DBUG, "Cookie hunting in " + uri.spec);
- var alist = HTTPSEverywhere.instance.getApplicableListForChannel(req);
- if (!alist)
- this.log(INFO, "No alist for cookies for "+(req.URI) ? req.URI.spec : "???");
-
- if (uri.schemeIs("https")) {
- var host = uri.host;
- try {
- var cookies = req.getResponseHeader("Set-Cookie");
- } catch(mayHappen) {
- //this.log(VERB,"Exception hunting Set-Cookie in headers: " + mayHappen);
- return;
- }
- if (!cookies) return;
- var c;
- for (var cs of cookies.split("\n")) {
- this.log(DBUG, "Examining cookie: ");
- c = new Cookie(cs, host);
- if (!c.secure && HTTPSRules.shouldSecureCookie(alist, c, true)) {
- this.log(INFO, "Securing cookie: " + c.domain + " " + c.name);
- c.secure = true;
- req.setResponseHeader("Set-Cookie", c.source + ";Secure", true);
- }
- }
-
- }
- },
-
- handleInsecureCookie: function(c) {
- if (HTTPSRules.shouldSecureCookie(null, c, false)) {
- this.log(INFO, "Securing cookie from event: " + c.host + " " + c.name);
- var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"]
- .getService(Components.interfaces.nsICookieManager2);
- //some braindead cookies apparently use umghzabilliontrabilions
- var expiry = Math.min(c.expiry, Math.pow(2,31));
- cookieManager.remove(c.host, c.name, c.path, false, c.originAttributes);
- cookieManager.add(c.host, c.path, c.name, c.value, true, c.isHTTPOnly, c.isSession, expiry, c.originAttributes);
- }
- },
-
- handleCrossSiteCookies: function(req, origin, browser) {
-
- var unsafeCookies = this.getUnsafeCookies(browser);
- if (!unsafeCookies) return;
-
- var uri = req.URI;
- var dscheme = uri.scheme;
-
- var oparts = origin && origin.match(/^(https?):\/\/([^\/:]+).*?(\/.*)/);
- if (!(oparts && /https?/.test(dscheme))) return;
-
- var oscheme = oparts[1];
- if (oscheme == dscheme) return; // we want to check only cross-scheme requests
-
- var dsecure = dscheme == "https";
-
- if (dsecure && !ns.getPref("secureCookies.recycle", false)) return;
-
- var dhost = uri.host;
- var dpath = uri.path;
-
- var ohost = oparts[2];
- var opath = oparts[3];
-
- var ocookieCount = 0, totCount = 0;
- var dcookies = [];
- var c;
-
- for (var k in unsafeCookies) {
- c = unsafeCookies[k];
- if (!c.exists()) {
- delete unsafeCookies[k];
- } else {
- totCount++;
- if (c.belongsTo(dhost, dpath) && c.secure != dsecure) { // either secure on http or not secure on https
- dcookies.push(c);
- }
- if (c.belongsTo(ohost, opath)) {
- ocookieCount++;
- }
- }
- }
-
- if (!totCount) {
- this.setUnsafeCookies(browser, null);
- return;
- }
-
- // We want to "desecurify" cookies only if cross-navigation to unsafe
- // destination originates from a site sharing some secured cookies
-
- if (ocookieCount == 0 && !dsecure || !dcookies.length) return;
-
- if (dsecure) {
- this.log(WARN,"Detected cross-site navigation with secured cookies: " + origin + " -> " + uri.spec);
-
- } else {
- this.log(WARN,"Detected unsafe navigation with NoScript-secured cookies: " + origin + " -> " + uri.spec);
- this.log(WARN,uri.prePath + " cannot support secure cookies because it does not use HTTPS. Consider forcing HTTPS for " + uri.host + " in NoScript's Advanced HTTPS options panel.");
- }
-
- var cs = CC['@mozilla.org/cookieService;1'].getService(CI.nsICookieService).getCookieString(uri, req);
-
- for (c of dcookies) {
- c.secure = dsecure;
- c.save();
- this.log(WARN,"Toggled secure flag on " + c);
- }
-
- if (cs) {
- dcookies.push.apply(
- dcookies, cs.split(/\s*;\s*/).map(function(cs) { var nv = cs.split("="); return { name: nv.shift(), value: nv.join("=") }; })
- .filter(function(c) { return dcookies.every(function(x) { return x.name != c.name; }); })
- );
- }
-
- cs = dcookies.map(function(c) { return c.name + "=" + c.value; }).join("; ");
-
- this.log(WARN,"Sending Cookie for " + dhost + ": " + cs);
- req.setRequestHeader("Cookie", cs, false); // "false" because merge syntax breaks Cookie header
- },
-
-
- cookiesCleanup: function(refCookie) {
- var ignored = this.secureCookiesExceptions;
- var disabled = !this.secureCookies;
- var bi = DOM.createBrowserIterator();
- var unsafe, k, c, total, deleted;
- for (var browser; browser = bi.next();) {
- unsafe = this.getUnsafeCookies(browser);
- if (!unsafe) continue;
- total = deleted = 0;
- for (k in unsafe) {
- c = unsafe[k];
- total++;
- if (disabled || (refCookie ? c.belongsTo(refCookie.host) : ignored && ignored.test(c.rawHost))) {
- if (c.exists()) {
- this.log(WARN,"Cleaning Secure flag from " + c);
- c.secure = false;
- c.save();
- }
- delete unsafe[k];
- deleted++;
- }
- }
- if (total == deleted) this.setUnsafeCookies(browser, null);
- if (!this.cookiesPerTab) break;
- }
- },
-
- get cookiesPerTab() {
- return ns.getPref("secureCookies.perTab", false);
- },
-
- _globalUnsafeCookies: {},
- getUnsafeCookies: function(browser) {
- return this.cookiesPerTab
- ? browser && ns.getExpando(browser, "unsafeCookies")
- : this._globalUnsafeCookies;
- },
- setUnsafeCookies: function(browser, value) {
- return this.cookiesPerTab
- ? browser && ns.setExpando(browser, "unsafeCookies", value)
- : this._globalUnsafeCookies = value;
- },
-
- _getParent: function(req, w) {
- return w && w.frameElement || DOM.findBrowserForNode(w || IOUtil.findWindow(req));
- }
-
-};
-
-(function () {
- ["secureCookies", "secureCookiesExceptions", "secureCookiesForced"].forEach(function(p) {
- var v = HTTPS[p];
- delete HTTPS[p];
- HTTPS.__defineGetter__(p, function() {
- return v;
- });
- HTTPS.__defineSetter__(p, function(n) {
- v = n;
- if (HTTPS.ready) HTTPS.cookiesCleanup();
- return v;
- });
- });
-})();
-
-HTTPS.ready = true;
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js
deleted file mode 100644
index 1ae74d4..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js
+++ /dev/null
@@ -1,780 +0,0 @@
-// Compilation of RegExps is now delayed until they are first used...
-
-function Rule(from, to) {
- this.to = to;
- this.from_c = from; // This will become a RegExp after compilation
-}
-
-function Exclusion(pattern) {
- this.pattern_c = pattern; // Will become a RegExp after compilation
-}
-
-function CookieRule(host, cookiename) {
- this.host = host;
- this.name = cookiename;
-
- // These will be made during compilation:
-
- //this.host_c = new RegExp(host);
- //this.name_c = new RegExp(cookiename);
-}
-
-function RuleSet(id, name, xmlName, match_rule, default_off, platform) {
- if(xmlName == "WordPress.xml" || xmlName == "Github.xml") {
- this.log(NOTE, "RuleSet( name="+name+", xmlName="+xmlName+", match_rule="+match_rule+", default_off="+default_off+", platform="+platform+" )");
- }
-
- this.id=id;
- this.on_by_default = true;
- this.compiled = false;
- this.name = name;
- this.xmlName = xmlName;
- this.notes = "";
-
- if (match_rule) this.ruleset_match_c = new RegExp(match_rule);
- else this.ruleset_match_c = null;
- if (default_off) {
- // Perhaps problematically, this currently ignores the actual content of
- // the default_off XML attribute. Ideally we'd like this attribute to be
- // "valueless"
- this.notes = default_off;
- this.on_by_default = false;
- }
- if (platform)
- if (platform.search(HTTPSRules.localPlatformRegexp) == -1) {
- this.on_by_default = false;
- this.notes = "Only for " + platform;
- }
-
- this.rules = [];
- this.exclusions = [];
- this.cookierules = [];
-
- this.rule_toggle_prefs = HTTPSEverywhere.instance.rule_toggle_prefs;
-
- try {
- // if this pref exists, use it
- this.active = this.rule_toggle_prefs.getBoolPref(name);
- } catch(e) {
- // if not, use the default
- this.active = this.on_by_default;
- }
-}
-
-var dom_parser = Cc["@mozilla.org/xmlextras/domparser;1"].createInstance(Ci.nsIDOMParser);
-
-RuleSet.prototype = {
-
- ensureCompiled: function() {
- // Postpone compilation of exclusions, rules and cookies until now, to accelerate
- // browser load time.
- if (this.compiled) return;
- var i;
-
- for (i = 0; i < this.exclusions.length; ++i) {
- this.exclusions[i].pattern_c = new RegExp(this.exclusions[i].pattern_c);
- }
- for (i = 0; i < this.rules.length; ++i) {
- this.rules[i].from_c = new RegExp(this.rules[i].from_c);
- }
-
- for (i = 0; i < this.cookierules.length; i++) {
- var cr = this.cookierules[i];
- cr.host_c = new RegExp(cr.host);
- cr.name_c = new RegExp(cr.name);
- }
-
- this.compiled = true;
- },
-
- apply: function(urispec) {
- // return null if it does not apply
- // and the new url if it does apply
- var i;
- var returl = null;
- this.ensureCompiled();
- // If a rulset has a match_rule and it fails, go no further
- if (this.ruleset_match_c && !this.ruleset_match_c.test(urispec)) {
- this.log(VERB, "ruleset_match_c excluded " + urispec);
- return null;
- }
- // Even so, if we're covered by an exclusion, go home
- for (i = 0; i < this.exclusions.length; ++i) {
- if (this.exclusions[i].pattern_c.test(urispec)) {
- this.log(DBUG,"excluded uri " + urispec);
- return null;
- }
- }
- // Okay, now find the first rule that triggers
- for (i = 0; i < this.rules.length; ++i) {
- // This is just for displaying inactive rules
- returl = urispec.replace(this.rules[i].from_c, this.rules[i].to);
- if (returl != urispec) {
- // we rewrote the uri
- this.log(DBUG, "Rewrote " + urispec + " -> " + returl + " using " + this.xmlName + ": " + this.rules[i].from_c + " -> " + this.rules[i].to);
- return returl;
- }
- }
-
- return null;
- },
- log: function(level, msg) {
- https_everywhereLog(level, msg);
- },
-
- wouldMatch: function(hypothetical_uri, alist) {
- // return true if this ruleset would match the uri, assuming it were http
- // used for judging moot / inactive rulesets
- // alist is optional
-
- // if the ruleset is already somewhere in this applicable list, we don't
- // care about hypothetical wouldMatch questions
- if (alist && (this.name in alist.all)) return false;
-
- this.log(DBUG,"Would " +this.name + " match " +hypothetical_uri.spec +
- "? serial " + (alist && alist.serial));
-
- var uri = hypothetical_uri.clone();
- if (uri.scheme == "https") uri.scheme = "http";
- var urispec = uri.spec;
-
- this.ensureCompiled();
-
- if (this.ruleset_match_c && !this.ruleset_match_c.test(urispec))
- return false;
-
- for (var i = 0; i < this.exclusions.length; ++i)
- if (this.exclusions[i].pattern_c.test(urispec)) return false;
-
- for (var i = 0; i < this.rules.length; ++i)
- if (this.rules[i].from_c.test(urispec)) return true;
- return false;
- },
-
- transformURI: function(uri) {
- // If no rule applies, return null; if a rule would have applied but was
- // inactive, return 0; otherwise, return a fresh uri instance
- // for the target
- var newurl = this.apply(uri.spec);
- if (null == newurl)
- return null;
- var newuri = Components.classes["@mozilla.org/network/standard-url;1"].
- createInstance(CI.nsIStandardURL);
- newuri.init(CI.nsIStandardURL.URLTYPE_STANDARD, 443,
- newurl, uri.originCharset, null);
- newuri = newuri.QueryInterface(CI.nsIURI);
- return newuri;
- },
-
- enable: function() {
- // Enable us.
- this.rule_toggle_prefs.setBoolPref(this.name, true);
- this.active = true;
- },
-
- disable: function() {
- // Disable us.
- this.rule_toggle_prefs.setBoolPref(this.name, false);
- this.active = false;
- },
-
- toggle: function() {
- this.active = !this.active;
- this.rule_toggle_prefs.setBoolPref(this.name, this.active);
- },
-
- clear: function() {
- try {
- this.rule_toggle_prefs.clearUserPref(this.name);
- } catch(e) {
- // this ruleset has never been toggled
- }
- this.active = this.on_by_default;
- }
-};
-
-const RuleWriter = {
-
- getCustomRuleDir: function() {
- var loc = "ProfD"; // profile directory
- var file =
- CC["@mozilla.org/file/directory_service;1"]
- .getService(CI.nsIProperties)
- .get(loc, CI.nsILocalFile)
- .clone();
- file.append("HTTPSEverywhereUserRules");
- // Check for existence, if not, create.
- if (!file.exists()) {
- file.create(CI.nsIFile.DIRECTORY_TYPE, 0700);
- }
- if (!file.isDirectory()) {
- // XXX: Arg, death!
- }
- return file;
- },
-
- chromeToPath: function (aPath) {
- if (!aPath || !(/^chrome:/.test(aPath)))
- return; //not a chrome url
-
- var ios =
- CC['@mozilla.org/network/io-service;1']
- .getService(CI.nsIIOService);
- var uri = ios.newURI(aPath, "UTF-8", null);
- var cr =
- CC['@mozilla.org/chrome/chrome-registry;1']
- .getService(CI.nsIChromeRegistry);
- var rv = cr.convertChromeURL(uri).spec;
-
- if (/^file:/.test(rv))
- rv = this.urlToPath(rv);
- else
- rv = this.urlToPath("file://"+rv);
-
- return rv;
- },
-
- urlToPath: function (aPath) {
- if (!aPath || !/^file:/.test(aPath))
- return ;
-
- var ph =
- CC["@mozilla.org/network/protocol;1?name=file"]
- .createInstance(CI.nsIFileProtocolHandler);
- var rv = ph.getFileFromURLSpec(aPath).path;
-
- return rv;
- },
-
- readFromUrl: function (url) {
- var ios = CC['@mozilla.org/network/io-service;1']
- .getService(CI.nsIIOService);
- var encoding = "UTF-8";
- var channel = ios.newChannel(url, encoding, null);
- var stream = channel.open();
- var streamSize = stream.available();
-
- if (!streamSize) {
- return null;
- }
-
- var convStream = CC["@mozilla.org/intl/converter-input-stream;1"]
- .createInstance(CI.nsIConverterInputStream);
-
- convStream.init(stream, encoding, streamSize,
- convStream.DEFAULT_REPLACEMENT_CHARACTER);
-
- var data = {};
- convStream.readString(streamSize, data);
-
- return data.value;
- },
-
- readFromFile: function(file) {
- if (!file.exists())
- return null;
- var data = "";
- var fstream = CC["@mozilla.org/network/file-input-stream;1"]
- .createInstance(CI.nsIFileInputStream);
- var sstream = CC["@mozilla.org/scriptableinputstream;1"]
- .createInstance(CI.nsIScriptableInputStream);
- fstream.init(file, -1, 0, 0);
- sstream.init(fstream);
-
- var str = sstream.read(4096);
- while (str.length > 0) {
- data += str;
- str = sstream.read(4096);
- }
-
- sstream.close();
- fstream.close();
- return data;
- },
-
- write: function(file, data) {
- //if (!file.exists())
- // return null;
- this.log(DBUG, "Opening " + file.path + " for writing");
- var fstream = CC["@mozilla.org/network/file-output-stream;1"]
- .createInstance(CI.nsIFileOutputStream);
- fstream.init(file, -1, -1, 0);
-
- var retval = fstream.write(data, data.length);
- this.log(DBUG, "Got retval " + retval);
- fstream.close();
- return data;
- },
-
- rulesetFromFile: function(file, rule_store, ruleset_id) {
- if ((rule_store.targets == null) && (rule_store.targets != {}))
- this.log(WARN, "TARGETS IS NULL");
- var data = this.readFromFile(file);
- if (!data) return null;
- return this.readFromString(data, rule_store, ruleset_id);
- },
-
- readFromString: function(data, rule_store, ruleset_id) {
- try {
- var xmlruleset = dom_parser.parseFromString(data, "text/xml");
- } catch(e) { // file has been corrupted; XXX: handle error differently
- this.log(WARN,"Error in XML data: " + e + "\n" + data);
- return null;
- }
- this.parseOneRuleset(xmlruleset.documentElement, rule_store, ruleset_id);
- },
-
- parseOneRuleset: function(xmlruleset, rule_store, ruleset_id) {
- // Extract an xmlruleset into the rulestore
- if (!xmlruleset.getAttribute("name")) {
- this.log(WARN, "This blob: '" + xmlruleset + "' is not a ruleset\n");
- return null;
- }
-
- this.log(DBUG, "Parsing " + xmlruleset.getAttribute("name"));
-
- var match_rl = xmlruleset.getAttribute("match_rule");
- var dflt_off = xmlruleset.getAttribute("default_off");
- var platform = xmlruleset.getAttribute("platform");
- var rs = new RuleSet(ruleset_id, xmlruleset.getAttribute("name"), xmlruleset.getAttribute("f"), match_rl, dflt_off, platform);
-
- // see if this ruleset has the same name as an existing ruleset;
- // if so, this ruleset is ignored; DON'T add or return it.
- if (rs.name in rule_store.rulesetsByName) {
- this.log(WARN, "Error: found duplicate rule name " + rs.name);
- return null;
- }
-
- // Add this ruleset id into HTTPSRules.targets if it's not already there.
- // This should only happen for custom user rules. Built-in rules get
- // their ids preloaded into the targets map, and have their <target>
- // tags stripped when the JSON database is built.
- var targets = xmlruleset.getElementsByTagName("target");
- for (var i = 0; i < targets.length; i++) {
- var host = targets[i].getAttribute("host");
- if (!host) {
- this.log(WARN, "<target> missing host in " + xmlruleset.getAttribute("name"));
- return null;
- }
- if (! rule_store.targets[host])
- rule_store.targets[host] = [];
- this.log(DBUG, "Adding " + host + " to targets, pointing at " + ruleset_id);
- rule_store.targets[host].push(ruleset_id);
- }
-
- var exclusions = xmlruleset.getElementsByTagName("exclusion");
- for (var i = 0; i < exclusions.length; i++) {
- var exclusion = new Exclusion(exclusions[i].getAttribute("pattern"));
- rs.exclusions.push(exclusion);
- }
-
- var rules = xmlruleset.getElementsByTagName("rule");
- for (var i = 0; i < rules.length; i++) {
- var rule = new Rule(rules[i].getAttribute("from"),
- rules[i].getAttribute("to"));
- rs.rules.push(rule);
- }
-
- var securecookies = xmlruleset.getElementsByTagName("securecookie");
- for (var i = 0; i < securecookies.length; i++) {
- var c_rule = new CookieRule(securecookies[i].getAttribute("host"),
- securecookies[i].getAttribute("name"));
- rs.cookierules.push(c_rule);
- this.log(DBUG,"Cookie rule "+ c_rule.host+ " " +c_rule.name);
- }
-
- rule_store.rulesets.push(rs);
- rule_store.rulesetsByID[rs.id] = rs;
- rule_store.rulesetsByName[rs.name] = rs;
- },
-
- enumerate: function(dir) {
- // file is the given directory (nsIFile)
- var entries = dir.directoryEntries;
- var ret = [];
- while(entries.hasMoreElements()) {
- var entry = entries.getNext();
- entry.QueryInterface(Components.interfaces.nsIFile);
- ret.push(entry);
- }
- return ret;
- },
-};
-
-
-
-const HTTPSRules = {
- init: function() {
- try {
- this.rulesets = [];
- this.targets = {}; // dict mapping target host pattern -> list of
- // applicable ruleset ids
- this.rulesetsByID = {};
- this.rulesetsByName = {};
- var t1 = new Date().getTime();
- this.checkMixedContentHandling();
- var rulefiles = RuleWriter.enumerate(RuleWriter.getCustomRuleDir());
-
- this.loadTargets();
- this.scanRulefiles(rulefiles);
-
- } catch(e) {
- this.log(DBUG,"Rules Failed: "+e);
- }
- var t2 = new Date().getTime();
- this.log(NOTE,"Loading targets took " + (t2 - t1) / 1000.0 + " seconds");
-
- return;
- },
-
- /**
- * Read and parse the ruleset JSON.
- * Note: This only parses the outer JSON wrapper. Each ruleset is itself an
- * XML string, which will be parsed on an as-needed basis.
- */
- loadTargets: function() {
- var loc = "chrome://https-everywhere/content/rulesets.json";
- var data = RuleWriter.readFromUrl(loc);
- var rules = JSON.parse(data);
- this.targets = rules.targets;
- this.rulesetStrings = rules.rulesetStrings;
- },
-
- checkMixedContentHandling: function() {
- // Firefox 23+ blocks mixed content by default, so rulesets that create
- // mixed content situations should be disabled there
- var appInfo = CC["@mozilla.org/xre/app-info;1"].getService(CI.nsIXULAppInfo);
- var platformVer = appInfo.platformVersion;
- var versionChecker = CC["@mozilla.org/xpcom/version-comparator;1"]
- .getService(CI.nsIVersionComparator);
- var prefs = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefService).getBranch("");
-
-
- // If mixed content is present and enabled, and the user hasn't opted to enable
- // mixed content triggering rules, leave them out. Otherwise add them in.
- if(versionChecker.compare(appInfo.version, "23.0a1") >= 0
- && prefs.getBoolPref("security.mixed_content.block_active_content")
- && !prefs.getBoolPref("extensions.https_everywhere.enable_mixed_rulesets")) {
- this.log(INFO, "Not activating rules that trigger mixed content errors.");
- this.localPlatformRegexp = new RegExp("firefox");
- } else {
- this.log(INFO, "Activating rules that would normally trigger mixed content");
- this.localPlatformRegexp = new RegExp("(firefox|mixedcontent)");
- }
- },
-
- scanRulefiles: function(rulefiles) {
- var i = 0;
- var r = null;
- for(i = 0; i < rulefiles.length; ++i) {
- try {
- this.log(DBUG,"Loading ruleset file: "+rulefiles[i].path);
- var ruleset_id = "custom_" + i;
- RuleWriter.rulesetFromFile(rulefiles[i], this, ruleset_id);
- } catch(e) {
- this.log(WARN, "Error in ruleset file: " + e);
- if (e.lineNumber)
- this.log(WARN, "(line number: " + e.lineNumber + ")");
- }
- }
- },
-
- resetRulesetsToDefaults: function() {
- // Callable from within the prefs UI and also for cleaning up buggy
- // configurations...
- for (var i in this.rulesets) {
- this.rulesets[i].clear();
- }
- },
-
-
- rewrittenURI: function(alist, input_uri) {
- // This function oversees the task of working out if a uri should be
- // rewritten, what it should be rewritten to, and recordkeeping of which
- // applicable rulesets are and aren't active. Previously this returned
- // the new uri if there was a rewrite. Now it returns a JS object with a
- // newuri attribute and an applied_ruleset attribute (or null if there's
- // no rewrite).
- var i = 0;
- userpass_present = false; // Global so that sanitiseURI can tweak it.
- // Why does JS have no tuples, again?
- var blob = {}; blob.newuri = null;
- if (!alist) this.log(DBUG, "No applicable list rewriting " + input_uri.spec);
- this.log(DBUG, "Processing " + input_uri.spec);
-
- var uri = this.sanitiseURI(input_uri);
-
- // Get the list of rulesets that target this host
- try {
- var rs = this.potentiallyApplicableRulesets(uri.host);
- } catch(e) {
- this.log(NOTE, 'Could not check applicable rules for '+uri.spec + '\n'+e);
- return null;
- }
-
- // ponder each potentially applicable ruleset, working out if it applies
- // and recording it as active/inactive/moot/breaking in the applicable list
- for (i = 0; i < rs.length; ++i) {
- if (!rs[i].active) {
- if (alist && rs[i].wouldMatch(uri, alist))
- alist.inactive_rule(rs[i]);
- continue;
- }
- blob.newuri = rs[i].transformURI(uri);
- if (blob.newuri) {
- if (alist) {
- if (uri.spec in https_everywhere_blacklist)
- alist.breaking_rule(rs[i]);
- else
- alist.active_rule(rs[i]);
- }
- if (userpass_present) blob.newuri.userPass = input_uri.userPass;
- blob.applied_ruleset = rs[i];
- return blob;
- }
- if (uri.scheme == "https" && alist) {
- // we didn't rewrite but the rule applies to this domain and the
- // requests are going over https
- if (rs[i].wouldMatch(uri, alist)) alist.moot_rule(rs[i]);
- continue;
- }
- }
- return null;
- },
-
- sanitiseURI: function(input_uri) {
- // Rulesets shouldn't try to parse usernames and passwords. If we find
- // those, apply the ruleset without them (and then add them back later).
- // When .userPass is absent, sometimes it is false and sometimes trying
- // to read it raises an exception (probably depending on the URI type).
- var uri = input_uri;
- try {
- if (input_uri.userPass) {
- uri = input_uri.clone();
- userpass_present = true; // tweaking a global in our caller :(
- uri.userPass = null;
- }
- } catch(e) {}
-
- // example.com. is equivalent to example.com
- // example.com.. is invalid, but firefox would load it anyway
- try {
- if (uri.host)
- try {
- var h = uri.host;
- if (h.charAt(h.length - 1) == ".") {
- while (h.charAt(h.length - 1) == ".")
- h = h.slice(0,-1);
- uri = uri.clone();
- uri.host = h;
- }
- } catch(e) {
- this.log(WARN, "Failed to normalise domain: ");
- try {this.log(WARN, input_uri.host);}
- catch(e2) {this.log(WARN, "bang" + e + " & " + e2 + " & "+ input_uri);}
- }
- } catch(e3) {
- this.log(INFO, "uri.host is explosive!");
- try { this.log(INFO, "(" + uri.spec + ")"); } // happens for about: uris and so forth
- catch(e4) { this.log(WARN, "(and unprintable!!!!!!)"); }
- }
- return uri;
- },
-
- setInsert: function(intoList, fromList) {
- // Insert any elements from fromList into intoList, if they are not
- // already there. fromList may be null.
- if (!fromList) return;
- for (var i = 0; i < fromList.length; i++)
- if (intoList.indexOf(fromList[i]) == -1)
- intoList.push(fromList[i]);
- },
-
- // Load a ruleset by numeric id, e.g. 234
- loadRulesetById: function(ruleset_id) {
- RuleWriter.readFromString(this.rulesetStrings[ruleset_id], this, ruleset_id);
- },
-
- // Get all rulesets matching a given target, lazy-loading from DB as necessary.
- rulesetsByTarget: function(target) {
- var rulesetIds = this.targets[target];
-
- var output = [];
- if (rulesetIds) {
- this.log(INFO, "For target " + target + ", found ids " + rulesetIds.toString());
- for (var i = 0; i < rulesetIds.length; i++) {
- var id = rulesetIds[i];
- if (!this.rulesetsByID[id]) {
- this.loadRulesetById(id);
- }
- if (this.rulesetsByID[id]) {
- output.push(this.rulesetsByID[id]);
- }
- }
- } else {
- this.log(DBUG, "For target " + target + ", found no ids in DB");
- }
- return output;
- },
-
- /**
- * Return a list of rulesets that declare targets matching a given hostname.
- * The returned rulesets include those that are disabled for various reasons.
- * This function is only defined for fully-qualified hostnames. Wildcards and
- * cookie-style domain attributes with a leading dot are not permitted.
- * @param host {string}
- * @return {Array.<RuleSet>}
- */
- potentiallyApplicableRulesets: function(host) {
- var i, tmp, t;
- var results = [];
-
- var attempt = function(target) {
- this.setInsert(results, this.rulesetsByTarget(target));
- }.bind(this);
-
- attempt(host);
-
- // Ensure host is well-formed (RFC 1035)
- if (host.indexOf("..") != -1 || host.length > 255) {
- this.log(WARN,"Malformed host passed to potentiallyApplicableRulesets: " + host);
- return null;
- }
-
- // replace each portion of the domain with a * in turn
- var segmented = host.split(".");
- for (i = 0; i < segmented.length; ++i) {
- tmp = segmented[i];
- segmented[i] = "*";
- t = segmented.join(".");
- segmented[i] = tmp;
- attempt(t);
- }
- // now eat away from the left, with *, so that for x.y.z.google.com we
- // check *.z.google.com and *.google.com (we did *.y.z.google.com above)
- for (i = 2; i <= segmented.length - 2; ++i) {
- t = "*." + segmented.slice(i,segmented.length).join(".");
- attempt(t);
- }
- this.log(DBUG,"Potentially applicable rules for " + host + ":");
- for (i = 0; i < results.length; ++i)
- this.log(DBUG, " " + results[i].name);
- return results;
- },
-
- /**
- * If a cookie's domain attribute has a leading dot to indicate it should be
- * sent for all subdomains (".example.com"), return the actual host part (the
- * part after the dot).
- *
- * @param cookieDomain {string} A cookie domain to strip a leading dot from.
- * @return {string} a fully qualified hostname.
- */
- hostFromCookieDomain: function(cookieDomain) {
- if (cookieDomain.length > 0 && cookieDomain[0] == ".") {
- return cookieDomain.slice(1);
- } else {
- return cookieDomain;
- }
- },
-
- /**
- * Check to see if the Cookie object c meets any of our cookierule criteria
- * for being marked as secure.
- *
- * @param applicable_list {ApplicableList} an ApplicableList for record keeping
- * @param c {nsICookie2} The cookie we might secure.
- * @param known_https {boolean} True if the cookie appeared in an HTTPS request and
- * so we know it is okay to mark it secure (assuming a cookierule matches it.
- * TODO(jsha): Double-check that the code calling this actually does that.
- * @return {boolean} True if the cookie in question should have the 'secure'
- * flag set to true.
- */
- shouldSecureCookie: function(applicable_list, c, known_https) {
- this.log(DBUG," rawhost: " + c.rawHost + " name: " + c.name + " host" + c.host);
- var i,j;
- // potentiallyApplicableRulesets is defined on hostnames not cookie-style
- // "domain" attributes, so we strip a leading dot before calling.
- var rs = this.potentiallyApplicableRulesets(this.hostFromCookieDomain(c.host));
- for (i = 0; i < rs.length; ++i) {
- var ruleset = rs[i];
- if (ruleset.active) {
- ruleset.ensureCompiled();
- // Never secure a cookie if this page might be HTTP
- if (!(known_https || this.safeToSecureCookie(c.rawHost))) {
- continue;
- }
- for (j = 0; j < ruleset.cookierules.length; j++) {
- var cr = ruleset.cookierules[j];
- if (cr.host_c.test(c.host) && cr.name_c.test(c.name)) {
- if (applicable_list) applicable_list.active_rule(ruleset);
- this.log(INFO,"Active cookie rule " + ruleset.name);
- return true;
- }
- }
- if (ruleset.cookierules.length > 0 && applicable_list) {
- applicable_list.moot_rule(ruleset);
- }
- } else if (ruleset.cookierules.length > 0) {
- if (applicable_list) {
- applicable_list.inactive_rule(ruleset);
- }
- this.log(INFO,"Inactive cookie rule " + ruleset.name);
- }
- }
- return false;
- },
-
- /**
- * Check if the domain might be being served over HTTP. If so, it isn't
- * safe to secure a cookie! We can't always know this for sure because
- * observing cookie-changed doesn't give us enough context to know the
- * full origin URI. In particular, if cookies are set from Javascript (as
- * opposed to HTTP/HTTPS responses), we don't know what page context that
- * Javascript ran in.
-
- * First, if there are any redirect loops on this domain, don't secure
- * cookies. XXX This is not a very satisfactory heuristic. Sometimes we
- * would want to secure the cookie anyway, because the URLs that loop are
- * not authenticated or not important. Also by the time the loop has been
- * observed and the domain blacklisted, a cookie might already have been
- * flagged as secure.
- *
- * @param domain {string} The cookie's 'domain' attribute.
- * @return {boolean} True if it's safe to secure a cookie on that domain.
- */
- safeToSecureCookie: function(domain) {
- if (domain in https_blacklist_domains) {
- this.log(INFO, "cookies for " + domain + "blacklisted");
- return false;
- }
-
- // If we passed that test, make up a random URL on the domain, and see if
- // we would HTTPSify that.
- try {
- var nonce_path = "/" + Math.random().toString();
- nonce_path = nonce_path + nonce_path;
- var test_uri = "http://" + domain + nonce_path;
- } catch (e) {
- this.log(WARN, "explosion in safeToSecureCookie for " + domain + "\n"
- + "(" + e + ")");
- return false;
- }
-
- this.log(DBUG, "Testing securecookie applicability with " + test_uri);
- // potentiallyApplicableRulesets is defined on hostnames not cookie-style
- // "domain" attributes, so we strip a leading dot before calling.
- var rs = this.potentiallyApplicableRulesets(this.hostFromCookieDomain(domain));
- for (var i = 0; i < rs.length; ++i) {
- if (!rs[i].active) continue;
- var rewrite = rs[i].apply(test_uri);
- if (rewrite) {
- this.log(DBUG, "Safe to secure cookie for " + test_uri + ": " + rewrite);
- return true;
- }
- }
- this.log(DBUG, "Unsafe to secure cookie for " + test_uri);
- return false;
- }
-};
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/IOUtil.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/IOUtil.js
deleted file mode 100644
index 4893763..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/IOUtil.js
+++ /dev/null
@@ -1,267 +0,0 @@
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-
-const IO = {
- readFile: function(file, charset) {
- var res;
-
- const is = Cc["@mozilla.org/network/file-input-stream;1"]
- .createInstance(Ci.nsIFileInputStream );
- is.init(file ,0x01, 256 /*0400*/, null);
- const sis = Cc["@mozilla.org/scriptableinputstream;1"]
- .createInstance(Ci.nsIScriptableInputStream);
- sis.init(is);
-
- res = sis.read(sis.available());
- is.close();
-
- if (charset !== null) { // use "null" if you want unconverted data...
- const unicodeConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
- .createInstance(Ci.nsIScriptableUnicodeConverter);
- try {
- unicodeConverter.charset = charset || "UTF-8";
- } catch(ex) {
- unicodeConverter.charset = "UTF-8";
- }
- res = unicodeConverter.ConvertToUnicode(res);
- }
-
- return res;
- },
- writeFile: function(file, content, charset) {
- const unicodeConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
- .createInstance(Ci.nsIScriptableUnicodeConverter);
- try {
- unicodeConverter.charset = charset || "UTF-8";
- } catch(ex) {
- unicodeConverter.charset = "UTF-8";
- }
-
- content = unicodeConverter.ConvertFromUnicode(content);
- const os = Cc["@mozilla.org/network/file-output-stream;1"]
- .createInstance(Ci.nsIFileOutputStream);
- os.init(file, 0x02 | 0x08 | 0x20, 448 /*0700*/, 0);
- os.write(content, content.length);
- os.close();
- },
-
- safeWriteFile: function(file, content, charset) {
- var tmp = file.clone();
- var name = file.leafName;
- tmp.leafName = name + ".tmp";
- tmp.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, file.exists() ? file.permissions : 384 /*0600*/);
- this.writeFile(tmp, content, charset);
- tmp.moveTo(file.parent, name);
- }
-};
-
-
-function nsISupportsWrapper(wrapped) {
- this.wrappedJSObject = wrapped;
-}
-nsISupportsWrapper.prototype = {
- QueryInterface: XPCOMUtils.generateQI([])
-};
-
-const IOUtil = {
- asyncNetworking: true,
- proxiedDNS: 0,
-
- attachToChannel: function(channel, key, requestInfo) {
- if (channel instanceof Ci.nsIWritablePropertyBag2)
- channel.setPropertyAsInterface(key, requestInfo);
- },
- extractFromChannel: function(channel, key, preserve) {
- if (channel instanceof Ci.nsIPropertyBag2) {
- let p = channel.get(key);
- if (p) {
- if (!preserve && (channel instanceof Ci.nsIWritablePropertyBag)) channel.deleteProperty(key);
- if (p.wrappedJSObject) return p.wrappedJSObject;
- p instanceof Ci.nsIURL || p instanceof Ci.nsIURL;
- return p;
- }
- }
- return null;
- },
-
- extractInternalReferrer: function(channel) {
- if (channel instanceof Ci.nsIPropertyBag2) {
- const key = "docshell.internalReferrer";
- if (channel.hasKey(key))
- try {
- return channel.getPropertyAsInterface(key, Ci.nsIURL);
- } catch(e) {}
- }
- return null;
- },
- extractInternalReferrerSpec: function(channel) {
- var ref = this.extractInternalReferrer(channel);
- return ref && ref.spec || null;
- },
-
- getProxyInfo: function(channel) {
- return Ci.nsIProxiedChannel && (channel instanceof Ci.nsIProxiedChannel)
- ? channel.proxyInfo
- : Components.classes["@mozilla.org/network/protocol-proxy-service;1"]
- .getService(Components.interfaces.nsIProtocolProxyService)
- .resolve(channel.URI, 0);
- },
-
-
- canDoDNS: function(channel) {
- if (!channel || IOS.offline) return false;
-
- var proxyInfo = this.getProxyInfo(channel);
- switch(this.proxiedDNS) {
- case 1:
- return !(proxyInfo && (proxyInfo.flags & Ci.nsIProxyInfo.TRANSPARENT_PROXY_RESOLVES_HOST));
- case 2:
- return true;
- default:
- return !proxyInfo || proxyInfo.type == "direct";
- }
-
- },
-
- abort: function(channel, noNetwork) {
- channel.cancel(Components.results.NS_ERROR_ABORT);
- },
-
- findWindow: function(channel) {
- for (var cb of [channel.notificationCallbacks,
- channel.loadGroup && channel.loadGroup.notificationCallbacks]) {
- if (cb instanceof Ci.nsIInterfaceRequestor) {
- if (Ci.nsILoadContext) try {
- // For Gecko 1.9.1
- return cb.getInterface(Ci.nsILoadContext).associatedWindow;
- } catch(e) {}
-
- try {
- // For Gecko 1.9.0
- return cb.getInterface(Ci.nsIDOMWindow);
- } catch(e) {}
- }
- }
- return null;
- },
-
- readFile: IO.readFile,
- writeFile: IO.writeFile,
- safeWriteFIle: IO.safeWriteFile,
-
- _protocols: {}, // caching them we gain a 33% speed boost in URI creation :)
- newURI: function(url) {
- try {
- let scheme = url.substring(0, url.indexOf(':'));
- return (this._protocols[scheme] ||
- (this._protocols[scheme] =
- Cc["@mozilla.org/network/protocol;1?name=" + scheme]
- .getService(Ci.nsIProtocolHandler)))
- .newURI(url, null, null);
- } catch(e) {
- return IOS.newURI(url, null, null);
- }
- },
-
- unwrapURL: function(url) {
- try {
- if (!(url instanceof Ci.nsIURI))
- url = this.newURI(url);
-
- switch (url.scheme) {
- case "view-source":
- return this.unwrapURL(url.path);
- case "feed":
- let u = url.spec.substring(5);
- if (u.substring(0, 2) == '//') u = "http:" + u;
- return this.unwrapURL(u);
- case "wyciwyg":
- return this.unwrapURL(url.path.replace(/^\/\/\d+\//, ""));
- case "jar":
- if (url instanceof Ci.nsIJARURI)
- return this.unwrapURL(url.JARFile);
- }
- }
- catch (e) {}
-
- return url;
- },
-
-
- get _channelFlags() {
- delete this._channelFlags;
- const constRx = /^[A-Z_]+$/;
- const ff = {};
- [Ci.nsIHttpChannel, Ci.nsICachingChannel].forEach(function(c) {
- for (var p in c) {
- if (constRx.test(p)) ff[p] = c[p];
- }
- });
- return this._channelFlags = ff;
- },
- humanFlags: function(loadFlags) {
- var hf = [];
- var c = this._channelFlags;
- for (var p in c) {
- if (loadFlags & c[p]) hf.push(p + "=" + c[p]);
- }
- return hf.join("\n");
- },
-
- queryNotificationCallbacks: function(chan, iid) {
- var cb;
- try {
- cb = chan.notificationCallbacks.getInterface(iid);
- if (cb) return cb;
- } catch(e) {}
-
- try {
- return chan.loadGroup && chan.loadGroup.notificationCallbacks.getInterface(iid);
- } catch(e) {}
-
- return null;
- },
-
-
- anonymizeURI: function(uri, cookie) {
- if (uri instanceof Ci.nsIURL) {
- uri.query = this.anonymizeQS(uri.query, cookie);
- } else return this.anonymizeURL(uri, cookie);
- return uri;
- },
- anonymizeURL: function(url, cookie) {
- var parts = url.split("?");
- if (parts.length < 2) return url;
- parts[1] = this.anonymizeQS(parts[1], cookie);
- return parts.join("?");
- },
-
- _splitName: function(nv) {
- return nv.split("=")[0];
- },
- _qsRx: /[&=]/,
- _anonRx: /(?:auth|s\w+(?:id|key)$)/,
- anonymizeQS: function(qs, cookie) {
- if (!qs) return qs;
- if (!this._qsRx.test(qs)) return '';
-
- var cookieNames, hasCookies;
- if ((hasCookies = !!cookie)) cookieNames = cookie.split(/\s*;\s*/).map(this._splitName);
-
- let parms = qs.split("&");
- for (var j = parms.length; j-- > 0;) {
- let nv = parms[j].split("=");
- let name = nv[0];
- if (this._anonRx.test(name) || cookie && cookieNames.indexOf(name) > -1)
- parms.splice(j, 1);
- }
- return parms.join("&");
- },
-
- get TLDService() {
- delete this.TLDService;
- return this.TLDService = Cc["@mozilla.org/network/effective-tld-service;1"].getService(Ci.nsIEffectiveTLDService);
- }
-
-};
-
-
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/NSS.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/NSS.js
deleted file mode 100644
index 089ae38..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/NSS.js
+++ /dev/null
@@ -1,489 +0,0 @@
-// Copyright (c) 2011 Moxie Marlinspike <moxie@thoughtcrime.org>
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 3 of the
-// License, or (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-// USA
-
-
-/**
- * This class manages the ctypes bridge to the NSS (crypto) libraries
- * distributed with Mozilla.
- *
- **/
-
-function NSS() {
-
-}
-
-NSS.initialize = function() {
- var sharedLib;
-
- Components.utils.import("resource://gre/modules/Services.jsm");
- var nssFile = Services.dirsvc.get("GreD", Ci.nsILocalFile);
- nssFile.append(tcypes.libraryName("nss3"));
- sharedLib = tcypes.open(nssFile.path);
-
- NSS.types = new Object();
-
- NSS.types.CERTDistNames = tcypes.StructType("CERTDistNames");
-
- NSS.types.SECItem = tcypes.StructType("SECItem",
- [{'type' : tcypes.int},
- {'data' : tcypes.unsigned_char.ptr},
- {'len' : tcypes.uint32_t}]);
-
- NSS.types.PLArenaPool = tcypes.StructType("PLArenaPool");
-
- NSS.types.CERTCertificateList = tcypes.StructType("CERTCertificateList",
- [{'certs' : NSS.types.SECItem.ptr},
- {'len' : tcypes.int},
- {'arena' : NSS.types.PLArenaPool.ptr}]),
-
- NSS.types.CERTAVA = tcypes.StructType("CERTAVA",
- [{'type' : NSS.types.SECItem},
- {'value' : NSS.types.SECItem}]);
-
- NSS.types.CERTRDN = tcypes.StructType("CERTRDN",
- [{'avas' : NSS.types.CERTAVA.ptr.ptr}]);
-
- NSS.types.SECAlgorithmID = tcypes.StructType("SECAlgorithmID",
- [{'algorithm' : NSS.types.SECItem},
- {'parameters' : NSS.types.SECItem}]);
-
- NSS.types.CERTSignedData = tcypes.StructType("CERTSignedData",
- [{'data' : NSS.types.SECItem},
- {'signatureAlgorithm' : NSS.types.SECAlgorithmID},
- {'signature' : NSS.types.SECItem}]);
-
- NSS.types.CERTOKDomainName = tcypes.StructType("CERTOKDomainName");
-
- NSS.types.NSSCertificateStr = tcypes.StructType("NSSCertificateStr");
-
- NSS.types.CERTAuthKeyID = tcypes.StructType("CERTAuthKeyID");
-
- NSS.types.CERTName = tcypes.StructType("CERTName",
- [{'arena' : tcypes.voidptr_t},
- {'rdns' : NSS.types.CERTRDN.ptr.ptr}]);
-
- NSS.types.CERTValidity = tcypes.StructType("CERTValidity",
- [{'arena' : tcypes.voidptr_t},
- {'notBefore' : NSS.types.SECItem},
- {'notAfter' : NSS.types.SECItem}]);
-
- NSS.types.CERTCertExtension = tcypes.StructType("CERTCertExtension",
- [{'id' : NSS.types.SECItem},
- {'critical' : NSS.types.SECItem},
- {'value' : NSS.types.SECItem}]);
-
- NSS.types.CERTCertDBHandle = tcypes.StructType("CERTCertDBHandle");
-
- NSS.types.PK11SlotInfo = tcypes.StructType("PK11SlotInfo");
-
- NSS.types.PK11SlotListElement = tcypes.StructType("PK11SlotListElement",
- [{'next' : tcypes.StructType("PK11SlotListElement").ptr},
- {'prev' : tcypes.StructType("PK11SlotListElement").ptr},
- {'slot' : NSS.types.PK11SlotInfo.ptr},
- {'refCount' : tcypes.int}]),
-
- NSS.types.PK11SlotList = tcypes.StructType("PK11SlotList",
- [{'head' : NSS.types.PK11SlotListElement.ptr},
- {'tail' : NSS.types.PK11SlotListElement.ptr},
- {'lock' : tcypes.StructType("PZLock").ptr}]),
-
- NSS.types.SECKEYPrivateKey = tcypes.StructType("SECKEYPrivateKey",
- [{'arena' : NSS.types.PLArenaPool.ptr},
- {'keyType' : tcypes.int},
- {'pkcs11Slot' : NSS.types.PK11SlotInfo.ptr},
- {'pkcs11ID' : tcypes.unsigned_long},
- {'pkcs11IsTemp' : tcypes.int},
- {'wincx' : tcypes.voidptr_t},
- {'staticflags' : tcypes.int32_t}]);
-
- NSS.types.SECKEYPublicKey = tcypes.StructType("SECKEYPublicKey");
-
- NSS.types.CERTSubjectPublicKeyInfo = tcypes.StructType("CERTSubjectPublicKeyInfo",
- [{'arena' : NSS.types.PLArenaPool.ptr},
- {'algorithm' : NSS.types.SECAlgorithmID},
- {'subjectPublicKey' : NSS.types.SECItem}]);
-
- NSS.types.CERTCertificateRequest = tcypes.StructType("CERTCertificateRequest");
-
- NSS.types.SEC_ASN1Template = tcypes.StructType("SEC_ASN1Template",
- [{'kind' : tcypes.unsigned_long},
- {'offset' : tcypes.unsigned_long},
- {'sub' : tcypes.voidptr_t},
- {'size' : tcypes.unsigned_int}]);
-
- NSS.types.PK11RSAGenParams = tcypes.StructType("PK11RSAGenParams",
- [{'keySizeInBits' : tcypes.int},
- {'pe' : tcypes.unsigned_long}]);
-
- NSS.types.CERTCertTrust = tcypes.StructType("CERTCertTrust",
- [{'sslFlags' : tcypes.uint32_t},
- {'emailFlags' : tcypes.uint32_t},
- {'objectSigningFlags' : tcypes.uint32_t}]);
-
- NSS.types.CERTSubjectList = tcypes.StructType("CERTSubjectList");
-
- NSS.types.CERTGeneralName = tcypes.StructType("CERTGeneralName");
-
- NSS.types.CERTCertificate = tcypes.StructType("CERTCertificate",
- [{'arena' : NSS.types.PLArenaPool.ptr},
- {'subjectName' : tcypes.char.ptr},
- {'issuerName' : tcypes.char.ptr},
- {'signatureWrap' : NSS.types.CERTSignedData},
- {'derCert' : NSS.types.SECItem},
- {'derIssuer' : NSS.types.SECItem},
- {'derSubject' : NSS.types.SECItem},
- {'derPublicKey' : NSS.types.SECItem},
- {'certKey' : NSS.types.SECItem},
- {'version' : NSS.types.SECItem},
- {'serialNumber' : NSS.types.SECItem},
- {'signature' : NSS.types.SECAlgorithmID},
- {'issuer' : NSS.types.CERTName},
- {'validity' : NSS.types.CERTValidity},
- {'subject' : NSS.types.CERTName},
- {'subjectPublicKeyInfo' : NSS.types.CERTSubjectPublicKeyInfo},
- {'issuerID' : NSS.types.SECItem},
- {'subjectID' : NSS.types.SECItem},
- {'extensions' : NSS.types.CERTCertExtension.ptr.ptr},
- {'emailAddr' : tcypes.char.ptr},
- {'dbhandle' : NSS.types.CERTCertDBHandle.ptr},
- {'subjectKeyID' : NSS.types.SECItem},
- {'keyIDGenerated' : tcypes.int},
- {'keyUsage' : tcypes.unsigned_int},
- {'rawKeyUsage' : tcypes.unsigned_int},
- {'keyUsagePresent' : tcypes.int},
- {'nsCertType' : tcypes.uint32_t},
- {'keepSession' : tcypes.int},
- {'timeOK' : tcypes.int},
- {'domainOK' : NSS.types.CERTOKDomainName.ptr},
- {'isperm' : tcypes.int},
- {'istemp' : tcypes.int},
- {'nickname' : tcypes.char.ptr},
- {'dbnickname' : tcypes.char.ptr},
- {'nssCertificate' : NSS.types.NSSCertificateStr.ptr},
- {'trust' : NSS.types.CERTCertTrust.ptr},
- {'referenceCount' : tcypes.int},
- {'subjectList' : NSS.types.CERTSubjectList.ptr},
- {'authKeyID' : NSS.types.CERTAuthKeyID.ptr},
- {'isRoot' : tcypes.int},
- {'options' : tcypes.voidptr_t},
- {'series' : tcypes.int},
- {'slot' : NSS.types.PK11SlotInfo.ptr},
- {'pkcs11ID' : tcypes.unsigned_long},
- {'ownSlot' : tcypes.int}]);
-
- NSS.types.CERTBasicConstraints = tcypes.StructType("CERTBasicConstraints",
- [{'isCA': tcypes.int},
- {'pathLenConstraint' : tcypes.int}]);
-
-
- NSS.lib = {
- SEC_OID_MD5 : 3,
- SEC_OID_SHA1 : 4,
- SEC_OID_X509_KEY_USAGE : 81,
- SEC_OID_NS_CERT_EXT_COMMENT : 75,
- CKM_RSA_PKCS_KEY_PAIR_GEN : 0,
- buffer : tcypes.ArrayType(tcypes.char),
- ubuffer : tcypes.ArrayType(tcypes.unsigned_char),
-
- // CERT_CertificateTemplate : sharedLib.declare("CERT_CertificateTemplate",
- // NSS.types.SEC_ASN1Template),
-
- NSS_Get_CERT_CertificateTemplate : sharedLib.declare("NSS_Get_CERT_CertificateTemplate",
- tcypes.default_abi,
- NSS.types.SEC_ASN1Template.ptr),
-
- PK11_HashBuf : sharedLib.declare("PK11_HashBuf",
- tcypes.default_abi,
- tcypes.int,
- tcypes.int,
- tcypes.unsigned_char.ptr,
- tcypes.unsigned_char.ptr,
- tcypes.int32_t),
-
- CERT_GetDefaultCertDB : sharedLib.declare("CERT_GetDefaultCertDB",
- tcypes.default_abi,
- NSS.types.CERTCertDBHandle.ptr),
-
- CERT_ChangeCertTrust : sharedLib.declare("CERT_ChangeCertTrust",
- tcypes.default_abi,
- tcypes.int32_t,
- NSS.types.CERTCertDBHandle.ptr,
- NSS.types.CERTCertificate.ptr,
- NSS.types.CERTCertTrust.ptr),
-
- CERT_FindCertByNickname : sharedLib.declare("CERT_FindCertByNickname",
- tcypes.default_abi,
- NSS.types.CERTCertificate.ptr,
- NSS.types.CERTCertDBHandle.ptr,
- tcypes.char.ptr),
-
- CERT_FindCertByDERCert : sharedLib.declare("CERT_FindCertByDERCert",
- tcypes.default_abi,
- NSS.types.CERTCertificate.ptr,
- NSS.types.CERTCertDBHandle.ptr,
- NSS.types.SECItem.ptr),
-
- CERT_VerifyCertNow : sharedLib.declare("CERT_VerifyCertNow",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.CERTCertDBHandle.ptr,
- NSS.types.CERTCertificate.ptr,
- tcypes.int,
- tcypes.int,
- tcypes.voidptr_t),
-
- CERT_CertChainFromCert : sharedLib.declare("CERT_CertChainFromCert",
- tcypes.default_abi,
- NSS.types.CERTCertificateList.ptr,
- NSS.types.CERTCertificate.ptr,
- tcypes.int,
- tcypes.int),
-
- PK11_FindKeyByAnyCert : sharedLib.declare("PK11_FindKeyByAnyCert",
- tcypes.default_abi,
- NSS.types.SECKEYPrivateKey.ptr,
- NSS.types.CERTCertificate.ptr,
- tcypes.voidptr_t),
-
- PK11_GetInternalKeySlot : sharedLib.declare("PK11_GetInternalKeySlot",
- tcypes.default_abi,
- NSS.types.PK11SlotInfo.ptr),
-
- PK11_GetAllSlotsForCert : sharedLib.declare("PK11_GetAllSlotsForCert",
- tcypes.default_abi,
- NSS.types.PK11SlotList.ptr,
- NSS.types.CERTCertificate.ptr,
- tcypes.voidptr_t),
-
- PK11_GetTokenName : sharedLib.declare("PK11_GetTokenName",
- tcypes.default_abi,
- tcypes.char.ptr,
- NSS.types.PK11SlotInfo.ptr),
-
- PK11_GenerateKeyPair : sharedLib.declare("PK11_GenerateKeyPair",
- tcypes.default_abi,
- NSS.types.SECKEYPrivateKey.ptr,
- NSS.types.PK11SlotInfo.ptr,
- tcypes.int,
- NSS.types.PK11RSAGenParams.ptr,
- NSS.types.SECKEYPublicKey.ptr.ptr,
- tcypes.int,
- tcypes.int,
- tcypes.voidptr_t),
-
- PK11_SetPrivateKeyNickname : sharedLib.declare("PK11_SetPrivateKeyNickname",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.SECKEYPrivateKey.ptr,
- tcypes.char.ptr),
-
- SEC_ASN1EncodeItem : sharedLib.declare("SEC_ASN1EncodeItem",
- tcypes.default_abi,
- NSS.types.SECItem.ptr,
- NSS.types.PLArenaPool.ptr,
- NSS.types.SECItem.ptr,
- tcypes.voidptr_t,
- NSS.types.SEC_ASN1Template.ptr),
-
- SEC_DerSignData : sharedLib.declare("SEC_DerSignData",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.PLArenaPool.ptr,
- NSS.types.SECItem.ptr,
- tcypes.unsigned_char.ptr,
- tcypes.int,
- NSS.types.SECKEYPrivateKey.ptr,
- tcypes.int),
-
- SEC_GetSignatureAlgorithmOidTag : sharedLib.declare("SEC_GetSignatureAlgorithmOidTag",
- tcypes.default_abi,
- tcypes.int,
- tcypes.int,
- tcypes.int),
-
- SECOID_SetAlgorithmID : sharedLib.declare("SECOID_SetAlgorithmID",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.PLArenaPool.ptr,
- NSS.types.SECAlgorithmID.ptr,
- tcypes.int,
- NSS.types.SECItem.ptr),
-
-
- CERT_Hexify : sharedLib.declare("CERT_Hexify",
- tcypes.default_abi,
- tcypes.char.ptr,
- NSS.types.SECItem.ptr,
- tcypes.int),
-
- CERT_AsciiToName : sharedLib.declare("CERT_AsciiToName",
- tcypes.default_abi,
- NSS.types.CERTName.ptr,
- tcypes.char.ptr),
-
- SECKEY_CreateSubjectPublicKeyInfo : sharedLib.declare("SECKEY_CreateSubjectPublicKeyInfo",
- tcypes.default_abi,
- NSS.types.CERTSubjectPublicKeyInfo.ptr,
- NSS.types.SECKEYPublicKey.ptr),
-
- CERT_CreateCertificateRequest : sharedLib.declare("CERT_CreateCertificateRequest",
- tcypes.default_abi,
- NSS.types.CERTCertificateRequest.ptr,
- NSS.types.CERTName.ptr,
- NSS.types.CERTSubjectPublicKeyInfo.ptr,
- NSS.types.SECItem.ptr.ptr),
-
- CERT_CreateCertificate : sharedLib.declare("CERT_CreateCertificate",
- tcypes.default_abi,
- NSS.types.CERTCertificate.ptr,
- tcypes.uint32_t,
- NSS.types.CERTName.ptr,
- NSS.types.CERTValidity.ptr,
- NSS.types.CERTCertificateRequest.ptr),
-
- CERT_DestroyCertificate : sharedLib.declare("CERT_DestroyCertificate",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.CERTCertificate.ptr),
-
- CERT_DestroyCertificateList : sharedLib.declare("CERT_DestroyCertificateList",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.CERTCertificateList.ptr),
-
- CERT_NewTempCertificate : sharedLib.declare("CERT_NewTempCertificate",
- tcypes.default_abi,
- NSS.types.CERTCertificate.ptr,
- NSS.types.CERTCertDBHandle.ptr,
- NSS.types.SECItem.ptr,
- tcypes.char.ptr,
- tcypes.int,
- tcypes.int),
-
- CERT_CreateValidity : sharedLib.declare("CERT_CreateValidity",
- tcypes.default_abi,
- NSS.types.CERTValidity.ptr,
- tcypes.int64_t,
- tcypes.int64_t),
-
- CERT_CertListFromCert : sharedLib.declare("CERT_CertListFromCert",
- tcypes.default_abi,
- NSS.types.CERTCertificateList.ptr,
- NSS.types.CERTCertificate.ptr),
-
- CERT_StartCertExtensions : sharedLib.declare("CERT_StartCertExtensions",
- tcypes.default_abi,
- tcypes.voidptr_t,
- NSS.types.CERTCertificate.ptr),
-
- CERT_AddExtension : sharedLib.declare("CERT_AddExtension",
- tcypes.default_abi,
- tcypes.int,
- tcypes.voidptr_t,
- tcypes.int,
- NSS.types.SECItem.ptr,
- tcypes.int,
- tcypes.int),
-
-
- CERT_EncodeBasicConstraintValue : sharedLib.declare("CERT_EncodeBasicConstraintValue",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.PLArenaPool.ptr,
- NSS.types.CERTBasicConstraints.ptr,
- NSS.types.SECItem.ptr),
-
- CERT_EncodeAndAddBitStrExtension : sharedLib.declare("CERT_EncodeAndAddBitStrExtension",
- tcypes.default_abi,
- tcypes.int,
- tcypes.voidptr_t,
- tcypes.int,
- NSS.types.SECItem.ptr,
- tcypes.int),
-
- CERT_EncodeAltNameExtension : sharedLib.declare("CERT_EncodeAltNameExtension",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.PLArenaPool.ptr,
- NSS.types.CERTGeneralName.ptr,
- NSS.types.SECItem.ptr),
-
- CERT_FinishExtensions : sharedLib.declare("CERT_FinishExtensions",
- tcypes.default_abi,
- tcypes.int,
- tcypes.voidptr_t),
-
- CERT_ImportCerts : sharedLib.declare("CERT_ImportCerts",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.CERTCertDBHandle.ptr,
- tcypes.int,
- tcypes.int,
- NSS.types.SECItem.ptr.ptr,
- NSS.types.CERTCertificate.ptr.ptr.ptr,
- tcypes.int,
- tcypes.int,
- tcypes.char.ptr),
-
- PORT_NewArena : sharedLib.declare("PORT_NewArena",
- tcypes.default_abi,
- NSS.types.PLArenaPool.ptr,
- tcypes.uint32_t),
-
- PORT_ArenaZAlloc : sharedLib.declare("PORT_ArenaZAlloc",
- tcypes.default_abi,
- tcypes.voidptr_t,
- NSS.types.PLArenaPool.ptr,
- tcypes.int),
-
- PORT_FreeArena : sharedLib.declare("PORT_FreeArena",
- tcypes.default_abi,
- tcypes.void_t,
- NSS.types.PLArenaPool.ptr,
- tcypes.int),
-
- CERT_GetCommonName : sharedLib.declare("CERT_GetCommonName",
- tcypes.default_abi,
- tcypes.char.ptr,
- NSS.types.CERTName.ptr),
-
- CERT_GetOrgUnitName : sharedLib.declare("CERT_GetOrgUnitName",
- tcypes.default_abi,
- tcypes.char.ptr,
- NSS.types.CERTName.ptr),
-
- CERT_GetCertificateNames : sharedLib.declare("CERT_GetCertificateNames",
- tcypes.default_abi,
- NSS.types.CERTGeneralName.ptr,
- NSS.types.CERTCertificate.ptr,
- NSS.types.PLArenaPool.ptr),
-
- CERT_DecodeDERCertificate : sharedLib.declare("__CERT_DecodeDERCertificate",
- tcypes.default_abi,
- NSS.types.CERTCertificate.ptr,
- NSS.types.SECItem.ptr,
- tcypes.int,
- tcypes.char.ptr),
-
- CERT_FindCertExtension : sharedLib.declare("CERT_FindCertExtension",
- tcypes.default_abi,
- tcypes.int,
- NSS.types.CERTCertificate.ptr,
- tcypes.int,
- NSS.types.SECItem.ptr),
- };
-
-};
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Root-CAs.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Root-CAs.js
deleted file mode 100644
index 15372bc..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Root-CAs.js
+++ /dev/null
@@ -1,348 +0,0 @@
-// These are concatenated md5 and sha1 fingerprints for the Firefox and
-// Microsoft root CAs as of Aug 2010
-
-var root_ca_hashes = {
- '00531D1D7201D423C820D00B6088C5D143DDB1FFF3B49B73831407F6BC8B975023D07C50' : true,
- '015A99C3D64FA94B3C3BB1A3AB274CBFFC219A76112F76C1C508833C9A2FA2BA84AC087A' : true,
- '019408DE857F8D806CE602CA89522848750251B2C632536F9D917279543C137CD721C6E0' : true,
- '0208EE8CAAB8387A6824DCB4E26A52337E206939CC5FA883635F64C750EBF5FDA9AEE653' : true,
- '0226C3015E08303743A9D07DCF37E6BF323C118E1BF7B8B65254E2E2100DD6029037F096' : true,
- '034287D7C1167D18AFA4703CB8312C3E4EF2E6670AC9B5091FE06BE0E5483EAAD6BA32D9' : true,
- '03DC08EEC4703FFA20E5E179E81AE7C59ED18028FB1E8A9701480A7890A59ACD73DFF871' : true,
- '044BFDC96CDA2A32857C598461468A64BEB5A995746B9EDF738B56E6DF437A77BE106B81' : true,
- '0468E9247E41CED76C441630703DDDB9AB16DD144ECDC0FC4BAAB62ECF0408896FDE52B7' : true,
- '068690F2195471FDDD3DE6EEA161CAFF7030AABF8432A800666CCCC42A887E42B7553E2B' : true,
- '069F6979166690021B8C8CA2C3076F3A627F8D7827656399D27D7F9044C9FEB3F33EFA9A' : true,
- '06F0171EB1E961ED7A363CA594A1374AFAAA27B8CAF5FDF5CDA98AC3378572E04CE8F2E0' : true,
- '06F9EBECCC569D88BA90F5BAB01AE00216D424FE9610E17519AF232BB68774E24144BE6E' : true,
- '076192047EA6B9CD5E6B007AE3BF1D0434D499426F9FC2BB27B075BAB682AAE5EFFCBA74' : true,
- '087C581F522B44B43B79CD01F8C5C3C995E6ADF8D77146024DD56A21B2E73FCDF23B35FF' : true,
- '0B092C1CD721866F94376FE6A7F3224D0409565B77DA582E6495AC0060A72354E64B0192' : true,
- '0C412F135BA054F596662D7ECD0E03F4DA79C1711150C23439AA2B0B0C62FD55B2F9F580' : true,
- '0C5ADD5AAE29F7A77679FA4151FEF035B865130BEDCA38D27F69929420770BED86EFBC10' : true,
- '0C7FDD6AF42AB9C89BBD207EA9DB5C3760D68974B5C2659E8A0FC1887C88D246691B182C' : true,
- '0CF89E17FCD403BDE68D9B3C0587FE8433A335C23CE8034B04E13DE5C48E791AEB8C3204' : true,
- '0E40A76CDE035D8FD10FE4D18DF96CA9A9E9780814375888F20519B06D2B0D2B6016907D' : true,
- '0EFA4BF7D760CD65F7A7068857986239D29F6C98BEFC6D986521543EE8BE56CEBC288CF3' : true,
- '0FA01300C3558AB7D37E2D04739EDE3C8B1A1106B8E26B232980FD652E6181376441FD11' : true,
- '100EADF35C841D8E035F2DC93937F552742CDF1594049CBF17A2046CC639BB3888E02E33' : true,
- '10FC635DF6263E0DF325BE5F79CD6767742C3192E607E424EB4549542BE1BBC53E6174E2' : true,
- '119279403CB18340E5AB664A679280DFA9628F4B98A91B4835BAD2C1463286BB66646A8C' : true,
- '14F108AD9DFA64E289E71CCFA8AD7D5E3921C115C15D0ECA5CCB5BC4F07D21D8050B566A' : true,
- '155EF5117AA2C1150E927E66FE3B84C3B38FECEC0B148AA686C3D00F01ECC8848E8085EB' : true,
- '15ACA5C2922D79BCE87FCB67ED02CF36E7B4F69D61EC9069DB7E90A7401A3CF47D4FE8EE' : true,
- '15B298A354704048703A375582C45AFA0048F8D37B153F6EA2798C323EF4F318A5624A9E' : true,
- '15EE9F5AA08528DF6BDD34A3A056D8307F8A77836BDC6D068F8B0737FCC5725413068CA4' : true,
- '160A1613C17FF01D887EE3D9E71261CCF88015D3F98479E1DA553D24FD42BA3F43886AEF' : true,
- '173574AF7B611CEBF4F93CE2EE40F9A2925A8F8D2C6D04E0665F596AFF22D863E8256F3F' : true,
- '1802B00127036A191B323B83DE9AA985D6BF7994F42BE5FA29DA0BD7587B591F47A44F22' : true,
- '1898C0D6E93AFCF9B0F50CF74B014417FAB7EE36972662FB2DB02AF6BF03FDE87C4B2F9B' : true,
- '18AE695D15CAB917673267D597B260C04BA7B9DDD68788E12FF852E1A024204BF286A8F6' : true,
- '1AD00CB9A6E68A3B6E95860C5B8CD8195A4D0E8B5FDCFDF64E7299A36C060DB222CA78E4' : true,
- '1B2E00CA2606903DADFE6F1568D36BB367650DF17E8E7E5B8240A4F4564BCFE23D69C6F0' : true,
- '1BD75F76734CC0DC98CA442BCC0F78DD31E2C52CE1089BEFFDDADB26DD7C782EBC4037BD' : true,
- '1C4BE2C62DB9AC3114F4400769CB1F4011C5B5F75552B011669C2E9717DE6D9BFF5FA810' : true,
- '1D3554048578B03F42424DBF20730A3F02FAF3E291435468607857694DF5E45B68851868' : true,
- '1D6496AF2D821A300BA0620D76BC53AA7FBB6ACD7E0AB438DAAF6FD50210D007C6C0829C' : true,
- '1E240EA0F876D785A3F5F8A1493D2EBAFD1ED1E2021B0B9F73E8EB75CE23436BBCC746EB' : true,
- '1E42950233926BB95FC07FDAD6B24BFCCCAB0EA04C2301D6697BDD379FCD12EB24E3949D' : true,
- '1E74C3863C0C35C53EC27FEF3CAA3CD9209900B63D955728140CD13622D8C687A4EB0085' : true,
- '200B4A7A88A7A942868A5F74567B880593E6AB220303B52328DCDA569EBAE4D1D1CCFB65' : true,
- '206BD68B4A8F48ABE488090DE5651A500CFD83DBAE44B9A0C8F676F3B570650B94B69DBF' : true,
- '2124A681C1D8F219AF4998E39DFE0BF46A174570A916FBE84453EED3D070A1D8DA442829' : true,
- '21BC82AB49C4133B4BB22B5C6B909C198BAF4C9B1DF02A92F7DA128EB91BACF498604B6F' : true,
- '21D84C822B990933A2EB14248D8E5FE84054DA6F1C3F4074ACED0FECCDDB79D153FB901D' : true,
- '21EFB85040393F756F27FEE3EA5870EBA59C9B10EC7357515ABB660C4D94F73B9E6E9272' : true,
- '222DA601EA7C0AF7F06C56433F7776D3FEB8C432DCF9769ACEAE3DD8908FFD288665647D' : true,
- '224D8F8AFCF735C2BB5734907B8B22163E2BF7F2031B96F38CE6C4D8A85D3E2D58476A0F' : true,
- '246DABD2F2EA4A66AE5BBCAE50AD6E56F9DD19266B2043F1FE4B3DCB0190AFF11F31A69D' : true,
- '2477D9A891D13BFA882DC2FFF8CD3393D8C5388AB7301B1B6ED47AE645253A6F9F1A2761' : true,
- '252AC6C5896839F9557202165EA39ED23C71D70E35A5DAA8B2E3812DC3677417F5990DF3' : true,
- '255BA669B87BF8780DC18FA6EAE47063FA0882595F9CA6A11ECCBEAF65C764C0CCC311D0' : true,
- '257ABA832EB6A20BDAFEF5020F08D7AD81968B3AEF1CDC70F5FA3269C292A3635BD123D3' : true,
- '259DCF5EB3259D95B93F00865F47943D43F9B110D5BAFD48225231B0D0082B372FEF9A54' : true,
- '266D2C1998B6706838505419EC9034600B77BEBBCB7AA24705DECC0FBD6A02FC7ABD9B52' : true,
- '27DE36FE72B70003009DF4F01E6C0424DE3F40BD5093D39B6C60F6DABC076201008976C9' : true,
- '27EC3947CDDA5AAFE29A016521A94CBB4D2378EC919539B5007F758F033B211EC54D8BCF' : true,
- '2A5D003739469475397B11A6F29341E13F85F2BB4A62B0B58BE1614ABB0D4631B4BEF8BA' : true,
- '2A954ECA79B2874573D92D90BAF99FB6A43489159A520F0D93D032CCAF37E7FE20A8B419' : true,
- '2B508718392D3BFFC3917F2D7DC08A97B19DD096DCD4E3E0FD676885505A672C438D4E9C' : true,
- '2B7020568682A018C807531228702172F17F6FB631DC99E3A3C87FFE1CF1811088D96033' : true,
- '2C20269DCB1A4A0085B5B75AAEC201378C96BAEBDD2B070748EE303266A0F3986E7CAE58' : true,
- '2C6F17A39562012065D2076EFCB83F6DB1EAC3E5B82476E9D50B1EC67D2CC11E12E0B491' : true,
- '2C8C175EB154AB9317B5365ADBD1C6F2A073E5C5BD43610D864C21130A855857CC9CEA46' : true,
- '2C8F9F661D1890B147269D8E86828CA96252DC40F71143A22FDE9EF7348E064251B18118' : true,
- '2CC2B0D5D622C52E901EF4633F0FBB324A058FDFD761DB21B0C2EE48579BE27F42A4DA1C' : true,
- '2DBBE525D3D165823AB70EFAE6EBE2E1B3EAC44776C9C81CEAF29D95B6CCA0081B67EC9D' : true,
- '2E03FDC5F5D72B9464C1BE8931F1169B96995C7711E8E52DF9E34BECEC67D3CBF1B6C4D2' : true,
- '30C908DDD73E63A4092814C74EB97E2CCFE4313DBA05B8A7C30063995A9EB7C247AD8FD5' : true,
- '30C9E71E6BE614EB65B216692031674D3BC0380B33C3F6A60C86152293D9DFF54B81C004' : true,
- '31853C62949763B9AAFD894EAF6FE0CF1F4914F7D874951DDDAE02C0BEFD3A2D82755185' : true,
- '324A4BBBC863699BBE749AC6DD1D4624AD7E1C28B064EF8F6003402014C3D0E3370EB58A' : true,
- '3327D16CFC9185FC8C7E98FA854EF305E70715F6F728365B5190E271DEE4C65EBEEACAF3' : true,
- '33B784F55F27D76827DE14DE122AED6F0747220199CE74B97CB03D79B264A2C855E933FF' : true,
- '343339FC6D033A8FA25385443270DEC45E5A168867BFFF00987D0B1DC2AB466C4264F956' : true,
- '34FCB8D036DB9E14B3C2F2DB8FE494C7379A197B418545350CA60369F33C2EAF474F2079' : true,
- '354895364A545A72968EE064CCEF2C8CC90D1BEA883DA7D117BE3B79F4210E1A5894A72D' : true,
- '370971C4AFEB7501AE636C3016BFD1E5A399F76F0CBF4C9DA55E4AC24E8960984B2905B6' : true,
- '3741491B18569A26F5ADC266FB40A54C4313BB96F1D5869BC14E6A92F6CFF63469878237' : true,
- '3785445332451F20F0F395E125C4434EF48B11BFDEABBE94542071E641DE6BBE882B40B9' : true,
- '37A56ED4B1258497B7FD56157AF9A200B435D4E1119D1C6690A749EBB394BD637BA782B7' : true,
- '3916AAB96A41E11469DF9E6C3B72DCB6879F4BEE05DF98583BE360D633E70D3FFE9871AF' : true,
- '3AB2DE229A209349F9EDC8D28AE7680D36863563FD5128C7BEA6F005CFE9B43668086CCE' : true,
- '3AE550B039BEC7463633A1FE823E8D943CBB5DE0FCD6397C0588E56697BD462ABDF95C76' : true,
- '3B0AE4BB416A84B39D2C575E6542BE478E1032E9245944F84791983EC9E829CB1059B4D3' : true,
- '3C4C25CC0A19CAEE6AEB55160086725F23E833233E7D0CC92B7C4279AC19C2F474D604CA' : true,
- '3D4129CB1EAA1174CD5DB062AFB0435BDDE1D2A901802E1D875E84B3807E4BB1FD994134' : true,
- '3E455215095192E1B75D379FB187298AB1BC968BD4F49D622AA89A81F2150152A41D829C' : true,
- '3E80175BADD77C104BF941B0CF1642B000EA522C8A9C06AA3ECCE0B4FA6CDC21D92E8099' : true,
- '3F459639E25087F7BBFE980C3C2098E62AC8D58B57CEBF2F49AFF2FC768F511462907A41' : true,
- '400125068D21436A0E43009CE743F3D5F9CD0E2CDA7624C18FBDF0F0ABB645B8F7FED57A' : true,
- '410352DC0FF7501B16F0028EBA6F45C5DAC9024F54D8F6DF94935FB1732638CA6AD77C13' : true,
- '41B807F7A8D109EEB49A8E704DFC1B787A74410FB0CD5C972A364B71BF031D88A6510E9E' : true,
- '4265CABE019A9A4CA98C4149CDC0D57F293621028B20ED02F566C532D1D6ED909F45002F' : true,
- '42769768CFA6B43824AAA11BF267DECA4178AB4CBFCE7B4102ACDAC4933E6FF50DCF715C' : true,
- '4281A0E21CE35510DE558942659622E6E0B4322EB2F6A568B654538448184A5036874384' : true,
- '429BD669C6D445AD2E81511D355A89624F555CE20DCD3364E0DC7C41EFDD40F50356C122' : true,
- '45E1A572C5A93664409EF5E45884678C6B2F34AD8958BE62FDB06B5CCEBB9DD94F4E39F3' : true,
- '45F750114EC5ADBD53688663EC7B6AE1C09AB0C8AD7114714ED5E21A5A276ADCD5E7EFCB' : true,
- '468C210EAB92214659DBA6DB0061DE265A5A4DAF7861267C4B1F1E67586BAE6ED4FEB93F' : true,
- '48D11E627801C26E4369A42CEE130AB564902AD7277AF3E32CD8CC1DC79DE1FD7F8069EA' : true,
- '4963AE27F4D5953DD8DB2486B89C0753D3C063F219ED073E34AD5D750B327629FFD59AF2' : true,
- '497904B0EB8719AC47B0BC11519B74D0D1EB23A46D17D68FD92564C2F1F1601764D8E349' : true,
- '49EFA6A1F0DE8EA76AEE5B7D1E5FC4463E42A18706BD0C9CCF594750D2E4D6AB0048FDC4' : true,
- '4B1C568CA0E8C79E1EF5EE32939965FE4C95A9902ABE0777CED18D6ACCC3372D2748381E' : true,
- '4B6771BE33B90DB64B3A400187F08B1F7AC5FFF8DCBC5583176877073BF751735E9BD358' : true,
- '4B798DD41D0392AA51EE04E5906F474954F9C163759F19045121A319F64C2D0555B7E073' : true,
- '4BE2C99196650CF40E5A9392A00AFEB28CF427FD790C3AD166068DE81E57EFBB932272D4' : true,
- '4C5641E50DBB2BE8CAA3ED1808AD43390483ED3399AC3608058722EDBC5E4600E3BEF9D7' : true,
- '4D56677ECCE6457259B74F511172E169C0DB578157E9EE82B5917DF0DD6D82EE9039C4E2' : true,
- '4FEBF1F070C280635D589FDA123CA9C4E392512F0ACFF505DFF6DE067F7537E165EA574B' : true,
- '50193E2FE8B6F4055449F3AEC98B3E1947AFB915CDA26D82467B97FA42914468726138DD' : true,
- '5186E81FBCB1C371B51810DB5FDCF62078E9DD0650624DB9CB36B50767F209B843BE15B3' : true,
- '556EBEF54C1D7C0360C43418BC9649C1245C97DF7514E7CF2DF8BE72AE957B9E04741E85' : true,
- '565FAA80611217F66721E62B6D61568E8025EFF46E70C8D472246584FE403B8A8D6ADBF5' : true,
- '58EB470764D62CBAE29B96552B9700B56A6F2A8B6E2615088DF59CD24C402418AE42A3F1' : true,
- '59736628512B98B410FF7D06FA22D6C8A0F8DB3F0BF417693B282EB74A6AD86DF9D448A3' : true,
- '5A11B922850289E1C3F22CE14EC101844B421F7515F6AE8A6ECEF97F6982A400A4D9224E' : true,
- '5B6F532CBB8188FA6C042C325DA56B967CA04FD8064C1CAA32A37AA94375038E8DF8DDC0' : true,
- '5B9EFD3B6035EA688E52FE1319144AA36B81446A5CDDF474A0F800FFBE69FD0DB6287516' : true,
- '5C48DCF74272EC56946D1CCC713580756631BF9EF74F9EB6C9D5A60CBA6ABED1F7BDEF7B' : true,
- '5E397BDDF8BAEC82E9AC62BA0C54002BCA3AFBCF1240364B44B216208880483919937CF7' : true,
- '5E809E845A0E650B1702F355182A3ED7786A74AC76AB147F9C6A3050BA9EA87EFE9ACE3C' : true,
- '5F944A7322B8F7D131EC5939F78EFE6E9FC796E8F8524F863AE1496D381242105F1B78F5' : true,
- '60847C5ACEDB0CD4CBA7E9FE02C6A9C0101DFA3FD50BCBBB9BB5600C1955A41AF4733A04' : true,
- '649CEF2E44FCC68F5207D051738FCB3DDA40188B9189A3EDEEAEDA97FE2F9DF5B7D18A41' : true,
- '65295911BB8F5166890D47824002C5AFC4674DDC6CE2967FF9C92E072EF8E8A7FBD6A131' : true,
- '6558AB15AD576C1EA8A7B569ACBFFFEBE5DF743CB601C49B9843DCAB8CE86A81109FE48E' : true,
- '67AC0D773011DED143AE7B737190BCA9ED8DC8386C4886AEEE079158AAC3BFE658E394B4' : true,
- '67CB9DC013248A829BB2171ED11BECD4D23209AD23D314232174E40D7F9D62139786633A' : true,
- '689B17C654E0E0E099551642F75A86D8027268293E5F5D17AAA4B3C3E6361E1F92575EAA' : true,
- '6960ECBE8C94D76E6F2EC4782F55F08397226AAE4A7A64A59BD16787F27F841C0A001FD0' : true,
- '6C397DA40E5559B23FD641B11250DE435F3B8CF2F810B37D78B4CEEC1919C37334B9C774' : true,
- '6CC9A76E47F10CE3533B784C4DC26AC5B72FFF92D2CE43DE0A8D4C548C503726A81E2B93' : true,
- '6D38C49B22244CA3A8B3A09345E157FA89C32E6B524E4D65388B9ECEDC637134ED4193A3' : true,
- '70B57C4881953E80DC289BBAEF1EE4854072BA31FEC351438480F62E6CB95508461EAB2F' : true,
- '711F0E21E7AAEA323A6623D3AB50D66996974CD6B663A7184526B1D648AD815CF51E801A' : true,
- '71AA6AAF1FA5C0D50E90D40BF6AADFCC55C86F7414AC8BDD6814F4D86AF15F3710E104D0' : true,
- '71E265FBCD7B0B845BE3BCD76320C598CFF810FB2C4FFC0156BFE1E1FABCB418C68D31C5' : true,
- '72E44A87E369408077EABCE3F4FFF0E15F43E5B1BFF8788CAC1CC7CA4A9AC6222BCC34C6' : true,
- '733A747AECBBA396A6C2E4E2C89BC0C3AEC5FB3FC8E1BFC4E54F03075A9AE800B7F7B6FA' : true,
- '739DD35FC63C95FEC6ED89E58208DD897FB9E2C995C97A939F9E81A07AEA9B4D70463496' : true,
- '74014A91B108C458CE47CDF0DD11530885A408C09C193E5D51587DCDD61330FD8CDE37BF' : true,
- '747B820343F0009E6BB3EC47BF85A5934463C531D7CCC1006794612BB656D3BF8257846F' : true,
- '74A82C81432B35609B78056B58F36582CFF360F524CB20F1FEAD89006F7F586A285B2D5B' : true,
- '770D19B121FD00429C3E0CA5DD0B028E25019019CFFBD9991CB76825748D945F30939542' : true,
- '774AF42C9DB027B747B515E4C762F0FCDF646DCB7B0FD3A96AEE88C64E2D676711FF9D5F' : true,
- '782A02DFDB2E14D5A75F0ADFB68E9C5D4F65566336DB6598581D584A596C87934D5F2AB4' : true,
- '78A5FB104BE4632ED26BFBF2B6C24B8EEC0C3716EA9EDFADD35DFBD55608E60A05D3CBF3' : true,
- '79E4A9840D7D3A96D7C04FE2434C892EA8985D3A65E5E5C4B2D7D66D40C6DD2FB19C5436' : true,
- '7A79544D07923B5BFF41F00EC739A298C060ED44CBD881BD0EF86C0BA287DDCF8167478C' : true,
- '7BB508999A8C18BF85277D0EAEDAB2AB24BA6D6C8A5B5837A48DB5FAE919EA675C94D217' : true,
- '7C62FF749D31535E684AD578AA1EBF239F744E9F2B4DBAEC0F312C50B6563B8E2D93C311' : true,
- '7CA50FF85B9A7D6D30AE545AE342A28A59AF82799186C7B47507CBCF035746EB04DDB716' : true,
- '7D86908F5BF1F240C0F73D62B5A4A93B72997913EC9B0DAE65D1B6D7B24A76A3AEC2EE16' : true,
- '7E234E5BA7A5B425E90007741162AED67F8AB0CFD051876A66F3360F47C88D8CD335FC74' : true,
- '7F667A71D3EB6978209A51149D83DA20BE36A4562FB2EE05DBB3D32323ADF445084ED656' : true,
- '803ABC22C1E6FB8D9B3B274A321B9A0147BEABC922EAE80E78783462A79F45C254FDE68B' : true,
- '8135B9FBFB12CA186936EBAE6978A1F1DCBB9EB7194BC47205C111752986835B53CAE4F8' : true,
- '81D6ED354F1F26D031D040DD8AE5810DE0925E18C7765E22DABD9427529DA6AF4E066428' : true,
- '8212F789E10B9160A4B6229F9468119268ED18B309CD5291C0D3357C1D1141BF883866B1' : true,
- '824AD493004D66B6A32CA77B3536CF0B687EC17E0602E3CD3F7DFBD7E28D57A0199A3F44' : true,
- '8292BA5BEFCD8A6FA63D55F984F6D6B7F9B5B632455F9CBEEC575F80DCE96E2CC7B278B7' : true,
- '84901D95304956FC4181F045D776C46B439E525F5A6A47C32CEBC45C63ED39317CE5F4DF' : true,
- '852FF4764CD5426CCB5E7DF717E835BD4EFCED9C6BDD0C985CA3C7D253063C5BE6FC620C' : true,
- '85CA765A1BD16822DCA22312CAC680345BCDCDCC66F6DCE4441FE37D5CC3134C46F47038' : true,
- '86386D5E49636C855CDB6DDC94B7D0F7ACED5F6553FD25CE015F1F7A483B6A749F6178C6' : true,
- '86420509BCA79DEC1DF32E0EBAD81DD01D8259CA2127C3CBC16CD932F62C65298CA88712' : true,
- '86ACDE2BC56DC3D98C2888D38D16131ECE6A64A309E42FBBD9851C453E6409EAE87D60F1' : true,
- '86EF8E319D9F8569A2A41A127168BA1B90DECE77F8C825340E62EBD635E1BE20CF7327DD' : true,
- '8714AB83C4041BF193C750E2D721EBEF30779E9315022E94856A3FF8BCF815B082F9AEFD' : true,
- '879055F2CE31153C33D927C876E37DE13070F8833E4AA6803E09A646AE3F7D8AE1FD1654' : true,
- '87CE0B7B2A0E4900E158719B37A893720563B8630D62D75ABBC8AB1E4BDFB5A899B24D43' : true,
- '882C8C52B8A23CF3F7BB03EAAEAC420B74207441729CDD92EC7931D823108DC28192E2BB' : true,
- '8949548CC8689A8329ECDC067321AB97A60F34C8626C81F68BF77DA9F667588A903F7D36' : true,
- '8956AA4D441E59D805A1886DEAC828B26372C49DA9FFF051B8B5C7D4E5AAE30384024B9C' : true,
- '8BCA525F7553D02C6F630D8F882E1CD78EB03FC3CF7BB292866268B751223DB5103405CB' : true,
- '8CCADC0B22CEF5BE72AC411A11A8D81291C6D6EE3E8AC86384E548C299295C756C817B81' : true,
- '8CD79FEBC7B8144C5478A7903BA935671F55E8839BAC30728BE7108EDE7B0BB0D3298224' : true,
- '8D26FF2F316D5929DDE636A7E2CE6425720FC15DDC27D456D098FABF3CDD78D31EF5A8DA' : true,
- '8D639B56C114E4EE9A128586119082A3D2441AA8C203AECAA96E501F124D52B68FE4C375' : true,
- '8D7251DBA03ACF2077DFF265065EDFEFC8C25F169EF85074D5BEE8CDA2D43CAEE75FD257' : true,
- '8EADB501AA4D81E48C1DD1E1140095193679CA35668772304D30A5FB873B0FA77BB70D54' : true,
- '8F5D770627C4983C5B9378E7D77D9BCC7E784A101C8265CC2DE1F16D47B440CAD90A1945' : true,
- '8F91E7EEE3FCDA86CAFCDC70EDB7B70C8250BED5A214433A66377CBC10EF83F669DA3A67' : true,
- '911B3F6ECD9EABEE07FE1F71D2B36127E19FE30E8B84609E809B170D72A8C5BA6E1409BD' : true,
- '91DE0625ABDAFD32170CBB25172A84672796BAE63F1801E277261BA0D77770028F20EEE4' : true,
- '91F4035520A1F8632C62DEACFB611C8E21FCBD8E7F6CAF051BD1B343ECA8E76147F20F8A' : true,
- '9265588BA21A317273685CB4A57A0748E621F3354379059A4B68309D8A2F74221587EC79' : true,
- '932A3EF6FD23690D7120D42B47992BA6CBA1C5F8B0E35EB8B94512D3F934A2E90610D336' : true,
- '937F901CED846717A4655F9BCB3002978781C25A96BDC2FB4C65064FF9390B26048A0E01' : true,
- '93C28E117BD4F30319BD2875134A454AAB48F333DB04ABB9C072DA5B0CC1D057F0369B46' : true,
- '93EB36130BC154F13E7505E5E01CD4375F4E1FCF31B7913B850B54F6E5FF501A2B6FC6CF' : true,
- '93F1AD340B2BE7A85460E2738CA49431705D2B4565C7047A540694A79AF7ABB842BDC161' : true,
- '9414777E3E5EFD8F30BD41B0CFE7D03075E0ABB6138512271C04F85FDDDE38E4B7242EFE' : true,
- '96897D61D1552B27E25A39B42A6C446F8EFDCABC93E61E925D4D1DED181A4320A467A139' : true,
- '9760E8575FD35047E5430C94368AB06290AEA26985FF14804C434952ECE9608477AF556F' : true,
- '978FC66B3B3E40857724750B76BB55F8B5D303BF8682E152919D83F184ED05F1DCE5370C' : true,
- '9A771918ED96CFDF1BB70EF58DB9882ECF74BFFF9B86815B08335440363E87B6B6F0BF73' : true,
- '9AAEF722F533FB4EEC0A249DC63D7D255E997CA5945AAB75FFD14804A974BF2AE1DFE7E1' : true,
- '9B340D1A315B97462698BCA6136A71969E6CEB179185A29EC6060CA53E1974AF94AF59D4' : true,
- '9D666ACCFFD5F543B4BF8C16D12BA8998939576E178DF705780FCC5EC84F84F6253A4893' : true,
- '9DFBF9ACED893322F428488325235BE0A69A91FD057F136A42630BB1760D2D51120C1650' : true,
- '9E80FF78010C2EC136BDFE96906E08F34ABDEEEC950D359C89AEC752A12C5B29F6D6AA0C' : true,
- '9F6C1F0F07AC1921F915BBD5C72CD82AF5C27CF5FFF3029ACF1A1A4BEC7EE1964C77D784' : true,
- '9FDDDBABFF8EFF45215FF06C9D8FFE2B9656CD7B57969895D0E141466806FBB8C6110687' : true,
- 'A10B44B3CA10D8006E9D0FD80F920AD1B80186D1EB9C86A54104CF3054F34C52B7E558C6' : true,
- 'A208E4B33EEFDE084B60D0BF7952498D8CC4307BC60755E7B22DD9F7FEA245936C7CF288' : true,
- 'A2339B4C747873D46CE7C1F38DCB5CE985371CA6E550143DCE2803471BDE3A09E8F8770F' : true,
- 'A26F53B7EE40DB4A68E7FA18D9104B7269BD8CF49CD300FB592E1793CA556AF3ECAA35FB' : true,
- 'A33D88FE161BDDF95C9F1A7FD8C89008A3E31E20B2E46A328520472D0CDE9523E7260C6D' : true,
- 'A37D2C27E4A7F3AA5F75D4C49264026AB6AF5BE5F878A00114C3D7FEF8C775C34CCD17B6' : true,
- 'A3EC750F2E88DFFA48014E0B5C486FFB37F76DE6077C90C5B13E931AB74110B4F2E49A27' : true,
- 'A66B6090239B3F2DBB986FD6A7190D46E0AB059420725493056062023670F7CD2EFC6666' : true,
- 'A771FD26FC3CE540F19906EBC1936DE9E619D25B380B7B13FDA33E8A58CD82D8A88E0515' : true,
- 'A7F2E41606411150306B9CE3B49CB0C9E12DFB4B41D7D9C32B30514BAC1D81D8385E2D46' : true,
- 'A80D6F3978B9436D77426D985ACC23CAD6DAA8208D09D2154D24B52FCB346EB258B28A58' : true,
- 'A8EDDEEB938866D82FC3BD1DBE45BE4D7639C71847E151B5C7EA01C758FBF12ABA298F7A' : true,
- 'A923759BBA49366E31C2DBF2E766BA87317A2AD07F2B335EF5A1C34E4B57E8B7D8F1FCA6' : true,
- 'A981C0B73A9250BC91A521FF3D47879FCB658264EA8CDA186E1752FB52C397367EA387BE' : true,
- 'AA088FF6F97BB7F2B1A71E9BEAEABD79CF9E876DD3EBFC422697A3B5A37AA076A9062348' : true,
- 'AA8E5DD9F8DB0A58B78D26876C823555409D4BD917B55C27B69B64CB9822440DCD09B889' : true,
- 'AABFBF6497DA981D6FC6083A957033CA394FF6850B06BE52E51856CC10E180E882B385CC' : true,
- 'AB57A65B7D428219B5D85826285EFDFFB12E13634586A46F1AB2606837582DC4ACFD9497' : true,
- 'ABAB8D2DB740E5973D2FF2A63BDA6A05C18211328A92B3B23809B9B5E2740A07FB12EB5E' : true,
- 'ABBFEAE36B29A6CCA6783599EFAD2B802F173F7DE99667AFA57AF80AA2D1B12FAC830338' : true,
- 'ACB694A59C17E0D791529BB19706A6E4D4DE20D05E66FC53FE1A50882C78DB2852CAE474' : true,
- 'AD8E0F9E016BA0C574D50CD368654F1ECFDEFE102FDA05BBE4C78D2E4423589005B2571D' : true,
- 'AFB8336E7CDDC60264AD58FC0D4F7BCFBC7B3C6FEF26B9F7AB10D7A1F6B67C5ED2A12D3D' : true,
- 'B001EE14D9AF291894768EF169332A846E3A55A4190C195C93843CC0DB722E313061F0B1' : true,
- 'B147BC1857D118A0782DEC71E82A9573204285DCF7EB764195578E136BD4B7D1E98E46A5' : true,
- 'B39C25B1C32E32538015309D4D02773E6782AAE0EDEEE21A5839D3C0CD14680A4F60142A' : true,
- 'B3A53E77216DAC4AC0C9FBD5413DCA0658119F0E128287EA50FDD987456F4F78DCFAD6D4' : true,
- 'B44ADBE85916461E5AD86EDA064352622964B686135B5DFDDD3253A89BBC24D74B08C64D' : true,
- 'B465220A7CADDF41B7D544D5ADFA9A75BC9219DDC98E14BF1A781F6E280B04C27F902712' : true,
- 'B4819E89AC1724FD2A4285271D0C2B5D20CB594FB4EDD895763FD5254E959A6674C6EEB2' : true,
- 'B5E83436C910445848706D2E83D4B805039EEDB80BE7A03C6953893B20D2D9323A4C2AFD' : true,
- 'B75274E292B48093F275E4CCD7F2EA263BC49F48F8F373A09C1EBDF85BB1C365C7D811B3' : true,
- 'B774CD487C5F9A0D3BF3FE66F41B3DFA5B4E0EC28EBD8292A51782241281AD9FEEDD4E4C' : true,
- 'B7B0D1EC1A033ECEA91511CCB16FB2AEE3D73606996CDFEF61FA04C335E98EA96104264A' : true,
- 'B8089AF003CC1B0DC86C0B76A1756423A0A1AB90C9FC847B3B1261E8977D5FD32261D3CC' : true,
- 'B816334C4C4CF2D8D34D06B4A65B4003838E30F77FDD14AA385ED145009C0E2236494FAA' : true,
- 'B8D312034E8C0C5A47C9B6C59E5B97FD0560A2C738FF98D1172A94FE45FB8A47D665371E' : true,
- 'BA21EA20D6DDDB8FC1578B40ADA1FCFC801D62D07B449D5C5C035C98EA61FA443C2A58FE' : true,
- 'BA926442161FCBA116481AF6405C59870456F23D1E9C43AECB0D807F1C0647551A05F456' : true,
- 'BC6C5133A7E9D366635415721B2192935922A1E15AEA163521F898396A4646B0441B0FA9' : true,
- 'BD8ACE34A8AE6148E85EC87A1CE8CCBFD2EDF88B41B6FE01461D6E2834EC7C8F6C77721E' : true,
- 'BDD6F58A7C3CC4A6F934CCC38961F6B2CABB51672400588E6419F1D40878D0403AA20264' : true,
- 'BE395ABE078AB1121725CC1D46343CB2DE990CED99E0431F60EDC3937E7CD5BF0ED9E5FA' : true,
- 'BF6059A35BBAF6A77642DA6F1A7B50CF5D989CDB159611365165641B560FDBEA2AC23EF1' : true,
- 'BFB5E77D3DEA6F1DF08A50BC8C1CFA1DE4554333CA390E128B8BF81D90B70F4002D1D6E9' : true,
- 'C1623E23C582739C03594B2BE977497F2AB628485E78FBF3AD9E7910DD6BDF99722C96E5' : true,
- 'C1D43E07AEEBECFD7589E67EA84CEBCD76B76096DD145629AC7585D37063C1BC47861C8B' : true,
- 'C1D951C084B86A75E82FD7D65F7EAC460B972C9EA6E7CC58D93B20BF71EC412E7209FABF' : true,
- 'C22A59ABCF152F4CF7E631A316AE840C9158C5EF987301A8903CFDAB03D72DA1D88909C9' : true,
- 'C2DBAB8E9652C5EEAEF25500896D55953913853E45C439A2DA718CDFB6F3E033E04FEE71' : true,
- 'C45D0E48B6AC28304E0ABCF938168757D8A6332CE0036FB185F6634F7D6A066526322827' : true,
- 'C463AB44201C36E437C05F279D0F6F6E97E2E99636A547554F838FBA38B82E74F89A830A' : true,
- 'C4D7F0B2A3C57D6167F004CD43D3BA5890DEDE9E4C4E9F6FD88617579DD391BC65A68964' : true,
- 'C570C4A2ED53780CC810538164CBD01D23E594945195F2414803B4D564D2A3A3F5D88B8C' : true,
- 'C5A1B7FF73DDD6D7343218DFFC3CAD8806083F593F15A104A069A46BA903D006B7970991' : true,
- 'C5DFB849CA051355EE2DBA1AC33EB028D69B561148F01C77C54578C10926DF5B856976AD' : true,
- 'C5E67BBF06D04F43EDC47A658AFB6B19339B6B1450249B557A01877284D9E02FC3D2D8E9' : true,
- 'C69F6D5CB379B00389CBF03FA4C09F8AEF2DACCBEABB682D32CE4ABD6CB90025236C07BC' : true,
- 'C7BD11D6918A3582C53666017C6F4779634C3B0230CF1B78B4569FECF2C04A8652EFEF0E' : true,
- 'C86E97F335A729144782892391A6BEC84A3F8D6BDC0E1ECFCD72E377DEF2D7FF92C19BC7' : true,
- 'C91962D0DA7E1020FCA4CD0380872DF551A44C28F313E3F9CB5E7C0A1E0E0DD2843758AE' : true,
- 'C9982777281E3D0E153C8400B88503E656E0FAC03B8F18235518E5D311CAE8C24331AB66' : true,
- 'CA3DD368F1035CD032FAB82B59E85ADB97817950D81C9670CC34D809CF794431367EF474' : true,
- 'CB17E431673EE209FE455793F30AFA1C4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5' : true,
- 'CBBDC3682DB3CB1859D32952E8C66489C9321DE6B5A82666CF6971A18A56F2D3A8675602' : true,
- 'CC4DAEFB306BD838FE50EB86614BD2269C615C4D4D85103A5326C24DBAEAE4A2D2D5CC97' : true,
- 'CD3B3D625B09B80936879E122F7164BA67EB337B684CEB0EC2B0760AB488278CDD9597DD' : true,
- 'CD68B6A7C7C4CE75E01D4F5744619209132D0D45534B6997CDB2D5C339E25576609B5CC6' : true,
- 'CD996CDB2AC296155ABF879EAEA5EE93EE29D6EA98E632C6E527E0906F0280688BDF44DC' : true,
- 'CDF439F3B51850D73EA4C591A03E214BE1A45B141A21DA1A79F41A42A961D669CD0634C1' : true,
- 'CE78335C5978016E18EAB936A0B92E23AE5083ED7CF45CBC8F61C621FE685D794221156E' : true,
- 'CF8F3B62A3CACA711BA3E1CB4857351F5D003860F002ED829DEAA41868F788186D62127F' : true,
- 'CFF4270DD4EDDC6516496D3DDABF6EDE3A44735AE581901F248661461E3B9CC45FF53A1B' : true,
- 'D2EDEE7992F78272180BFED98BEC13D8A7F8390BA57705096FD36941D42E7198C6D4D9D5' : true,
- 'D35376E3CE58C5B0F29FF42A05F0A1F2211165CA379FBB5ED801E31C430A62AAC109BCB4' : true,
- 'D3D9BDAE9FAC6724B3C81B52E1B9A9BD4A65D5F41DEF39B8B8904A4AD3648133CFC7A1D1' : true,
- 'D3F3A616C0FA6B1D59B12D964D0E112E74F8A3C3EFE7B390064B83903C21646020E5DFCE' : true,
- 'D474DE575C39B2D39C8583C5C065498A5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25' : true,
- 'D480656824F9892228DBF5A49A178F14016897E1A0B8F2C3B134665C20A727B7A158E28F' : true,
- 'D59788DA6416E71D664AA6EA37FC7ADCEC93DE083C93D933A986B3D5CDE25ACB2FEECF8E' : true,
- 'D5BEFFB5EE826CF0E2578EA7E5346F03D904080A4929C838E9F185ECF7A22DEF99342407' : true,
- 'D5E98140C51869FC462C8975620FAA7807E032E020B72C3F192F0628A2593A19A70F069E' : true,
- 'D63981C6527E9669FCFCCA66ED05F296B51C067CEE2B0C3DF855AB2D92F4FE39D4E70F0E' : true,
- 'D6A5C3ED5DDD3E00C13D87921F1D3FE4B31EB1B740E36C8402DADC37D44DF5D4674952F9' : true,
- 'D6ED3CCAE2660FAF10430D779B0409BF85B5FF679B0C79961FC86E4422004613DB179284' : true,
- 'D7343DEF1D270928E131025B132BDDF7B172B1A56D95F91FE50287E14D37EA6A4463768A' : true,
- 'D87E32EF69F8BF72031D4082E8A775AF42EFDDE6BFF35ED0BAE6ACDD204C50AE86C4F4FA' : true,
- 'DA26B6E6C7C2F7B79E4659B3577718653E84D3BCC544C0F6FA19435C851F3F2FCBA8E814' : true,
- 'DB233DF969FA4BB9958044735E7D4183273EE12457FDC4F90C55E82B56167F62F532E547' : true,
- 'DBC8F2272EB1EA6A29235DFE563E33DFC8EC8C879269CB4BAB39E98D7E5767F31495739D' : true,
- 'DC32C3A76D2557C768099DEA2DA9A2D18782C6C304353BCFD29692D2593E7D44D934FF11' : true,
- 'DC6D6FAF897CDD17332FB5BA9035E9CE7F88CD7223F3C813818C994614A89C99FA3B5247' : true,
- 'DD753F56BFBBC5A17A1553C690F9FBCC24A40A1F573643A67F0A4B0749F6A22BF28ABB6B' : true,
- 'DF0DBC7CC836B77699A1ABF0D20F896A342CD9D3062DA48C346965297F081EBC2EF68FDC' : true,
- 'DF168A83EA83845DB96501C6A65D193EDBAC3C7AA4254DA1AA5CAAD68468CB88EEDDEEA8' : true,
- 'DF3C735981E7395081044C34A2CBB37B61573A11DF0ED87ED5926522EAD056D744B32371' : true,
- 'DFF28073CCF1E66173FCF542E9C57CEE99A69BE61AFE886B4D2B82007CB854FC317E1539' : true,
- 'E006A1C97DCFC9FC0DC0567596D862139BAAE59F56EE21CB435ABE2593DFA7F040D11DCB' : true,
- 'E14B5273D71BDB9330E5BDE4096EBEFB216B2A29E62A00CE820146D8244141B92511B279' : true,
- 'E1C07EA0AABBD4B77B84C228117808A7CDD4EEAE6000AC7F40C3802C171E30148030C072' : true,
- 'E2D52023ECEEB872E12B5D296FFA43DA9BACF3B664EAC5A17BED08437C72E4ACDA12F7E7' : true,
- 'E2D8F867F4509435FC5E05FC822295C30446C8BB9A6983C95C8A2E5464687C1115AAB74A' : true,
- 'E2F8E080D0083F1EC1E9D23F8069AE06C73026E325FE21916B55C4B53A56B13DCAF3D625' : true,
- 'E60BD2C9CA2D88DB1A710E4B78EB024140E78C1D523D1CD9954FAC1A1AB3BD3CBAA15BFC' : true,
- 'E77ADCB11F6E061F746C591627C34BC07454535C24A3A758207E3E3ED324F816FB211649' : true,
- 'E8CC9FB09B40C51F4FBA7421F952857A688B6EB807E8EDA5C7B17C4393D0795F0FAE155F' : true,
- 'EBB04F1D3A2E372F1DDA6E27D6B680FA18F7C1FCC3090203FD5BAA2F861A754976C8DD25' : true,
- 'EBF59D290D61F9421F7CC2BA6DE3150928903A635B5280FAE6774C0B6DA7D6BAA64AF2E8' : true,
- 'EC407D2B765267052CEAF23A4F65F0D8A5EC73D48C34FCBEF1005AEB85843524BBFAB727' : true,
- 'ED41F58C50C52B9C73E6EE6CEBC2A8261B4B396126276B6491A2686DD70243212D1F1D96' : true,
- 'EE2931BC327E9AE6E8B5F751B4347190503006091D97D4F5AE39F7CBE7927D7D652D3431' : true,
- 'EE7A41E0CF757D889280A21A9A7BA157679A4F81FC705DDEC419778DD2EBD875F4C242C6' : true,
- 'EEFE6169656EF89CC62AF4D72B63EFA29FAD91A6CE6AC6C50047C44EC9D4A50D92D84979' : true,
- 'EF5AF133EFF1CDBB5102EE12144B96C4A1DB6393916F17E4185509400415C70240B0AE6B' : true,
- 'F058C503826717AB8FDA0310278E19C2CB44A097857C45FA187ED952086CB9841F2D51B5' : true,
- 'F096B62FC510D5678E832532E85E2EE52388C9D371CC9E963DFF7D3CA7CEFCD625EC190D' : true,
- 'F09E639376A595BC1861F19BFBD364DD80BF3DE9A41D768D194B293C85632CDBC8EA8CF7' : true,
- 'F16A2218C9CDDFCE821D1DB7785CA9A57998A308E14D6585E6C21E153A719FBA5AD34AD9' : true,
- 'F1BC636A54E0B527F5CDE71AE34D6E4A36B12B49F9819ED74C9EBC380FC6568F5DACB2F7' : true,
- 'F20598E5964BBE5D55181B55B388E3929078C5A28F9A4325C2A7C73813CDFE13C20F934E' : true,
- 'F27DE954E4A3220D769FE70BBBB3242B049811056AFE9FD0F5BE01685AACE6A5D1C4454C' : true,
- 'F37E3A13DC746306741A3C38328CFBA9253F775B0E7797AB645F15915597C39E263631D1' : true,
- 'F3D752A875FD18ECE17D35B1706EA59C968338F113E36A7BABDD08F7776391A68736582E' : true,
- 'F4FF97428070FE66168BBED35315819BF44095C238AC73FC4F77BF8F98DF70F8F091BC52' : true,
- 'F520DA5203862B92768D5CB72D8B93ADA65CB4733D94A5C865A864647C2C01272C89B143' : true,
- 'F775AB29FB514EB7775EFF053C998EF5DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212' : true,
- 'F7B661AB03C25C463E2D2CF4A124D854FAA7D9FB31B746F200A85E65797613D816E063B5' : true,
- 'F8387C7788DF2C16682EC2E2524BB8F95F3AFC0A8B64F686673474DF7EA9A2FEF9FA7A51' : true,
- 'F8BEC46322C9A846748BB81D1E4A2BF661EF43D77FCAD46151BC98E0C35912AF9FEB6311' : true,
- 'FB1B5D438A94CD44C676F2434B47E731F18B538D1BE903B6A6F056435B171589CAF36BF2' : true,
- 'FC11B8D8089330006D23F97EEB521E0270179B868C00A4FA609152223F9F3E32BDE00562' : true,
- 'FD49BE5B185A25ECF9C354851040E8D4086418E906CEE89C2353B6E27FBD9E7439F76316' : true
-};
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/X509ChainWhitelist.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/X509ChainWhitelist.js
deleted file mode 100644
index 126efc0..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/X509ChainWhitelist.js
+++ /dev/null
@@ -1,1007 +0,0 @@
-
-// These are SHA256 fingerprints for the most common chains observed by the
-// Decentralized SSL Observatory. These should not be resubmitted.
-// This file is automatically generated by utils/mk_client_whitelist.py
-
-const X509ChainWhitelist = {
- '000AA4E99FE86D84F762DFB2DC29323D0614B95AA335A270AF204EBA2F2240AF' : true,
- '002F83BE1562B658A7BA747EEE36FFBA25A7D6C66E263B2901184058802D9A43' : true,
- '0061F7422DFE6198AD03858E318E018DAE931B87DB34D0EAEDAC2959A8F129A6' : true,
- '007FDDA43F8F2C275CF3AE1D742A0DE86CFE1287B6FAE08F9676A8743E677255' : true,
- '00AD891EBED89D8B1DE5893D32B98655479B79FAAF02D40BB933BBF726699446' : true,
- '00DBEAA57891E7972D7AE5F00425E309B1A08B8EE4218B24AE3FB50EA98AA864' : true,
- '00E60060B345194127FA895551ACA9CB12D5C31CBCE286D1CBEFA26D0BF22CBF' : true,
- '0116774D8E17A678C4865D21049258EF547ADE1E84E48F91692CF41731C10657' : true,
- '014EDEA8AD82D6923D4C9E10C925EBE098763D822E9F67F93DB267FB5F88675F' : true,
- '016BBB29A76DA59A20C5E9909D8D0A9CD25824D7462BD51B022D61B503569936' : true,
- '018BCB77EB89BD658CFB6388F57F22E40942E08FD6BF3A26DE05A2F992F6E5A2' : true,
- '02303B95D5264B6C3766CECB979740D4422AF1F40EA377F80217780234881DCA' : true,
- '028CD123ABEA12F150435947299419928DC5E80E94E9148841265B64344C3DBC' : true,
- '0299AD4101A95EA006706582B2E55A35DFD2224EB9A8F8AA822D2354BAC4C640' : true,
- '02E266B8D011CF92708D0DD0D9D840BB8EF54B4A4670BF700AE90EE6F7E445A8' : true,
- '0333E05678F411BCFDAEFB069DDAC8BE1B3B7E45376AE4C3827771C10A53D294' : true,
- '03693B464434A9683B54121395F0655F77D80A64D36AC7083A2923C3FB6EFC00' : true,
- '037E1FDC6DBFFDCD1523AA8D44DCD04993025D13CA1545B6CC33138ADC14D47C' : true,
- '03986F7123FD11870C6EEEFC9F40E6B8FA6FA8C7FD58C3B62E04F350D6B9D625' : true,
- '03BD2F6C0E68327F7077FC5F5B0335F8FDC8AAE97CC920C602D7B29DF6329D88' : true,
- '03E2027D68B6F8792C5E99FFA9221CE628E98F0D61346B99E8A2710BD29E1DE0' : true,
- '03EA2D8120DF0BFF2AD3496A07D73CE403C5C04B24E562E4C5B5026462B09097' : true,
- '041E24ED00997AAF1D78BB5A002A3ABCFC654CF09E38017EBD3BE031F05E8FEF' : true,
- '049E2533BBDE9D2DA0BDD71FB463A0D7D2908706999C63FDCEB4B812864E3091' : true,
- '05C5F3A4C0C5F676DFCA32690BBCE8A7F41D7D6C2438D9AA1F94F886E3015CB9' : true,
- '05DDFDA20ECE2375B55CD05F5205E2608B75FF4D40078A4ABC2FD4EB7C7F4410' : true,
- '05E7DF0F4B5A55A9E14DBBF4FFC438FC9FF987C16AF51B9EDB2E633AA6D3524B' : true,
- '05FD9F4842FECB37EBB192331AFFFECC9098FE276B8FC915F73B5086ED7320A6' : true,
- '061B58EED7864DD73B40146FB4EB9656CBD256F6C10A07C3AC47860150B14948' : true,
- '064A8AF7F078CF04C63643298C3DA278EECA283CE11E3F34F3AB851AB89B5237' : true,
- '06A8BAEDC838105FBEB3AF6C20B5E3EA3B98B82069246F1A5A096E8CD0FD3047' : true,
- '06EA4798A8B6B73ACB72B15DD8D71D6D6541975EA01B6CCE95B92DDE7C0312F7' : true,
- '06F072A3D91411EAFF93F070B499A88B082E745A2E369567A6DDAAE227B2E195' : true,
- '06F3DCA5B295481A6B1A0ED50541CB67C20B4B6BEE7435F06F5FCBAADC27A40F' : true,
- '06FB76F31639CCDDF599ADEB5E7CE9A475468C68B305442E99A067D09A89DDD0' : true,
- '0742E85FE9C68350E070039897F5B790BDA92D92229D74BA9C6906D958A5C510' : true,
- '07B914BF17C15B57AFE6430B785396D1952956B87C3936204337D63CBDEBBDAD' : true,
- '07BFEFC4765397C94A348CE52AB2C7A01CC6257512A595DFDDE797429934B5F4' : true,
- '07CF2A06F1718D6E476B98C2B42E370A35FAFE4C1F41CF7A1DE115CDB6222FAC' : true,
- '08522737DBEF2F7400033E866B61B3F9E19066EC71294DC9CE2138231921AFAB' : true,
- '088B1B9C85C5237A785E56C277962D8901D994350403FCA667645A0321EE1754' : true,
- '095FB0FC3CC67539621E292205E758437D94D3B651714049E6F99130BD5ADB6D' : true,
- '099E4D986B0D8639C59AA04B56C3E45819DE1898E813D55B0879779C47913268' : true,
- '09B9774D69301C157F156316A659287B1023852F6FCD474279C0CF176E40AA11' : true,
- '09E55E37A7D241C61FF28A026F9D6E78B5F44DFECE82592B6BC19D0575B2DE9A' : true,
- '09F716F6D09883B430D2A1A9B6A2893384A79873AD45F7C1AC25FF05C9E90DCE' : true,
- '0A96A08A2E42D95647355C089F7DF09731BC28449EDA336776F944250A265233' : true,
- '0B1C1033250F6DED11E4C0A7E43138AD3D52F5661FEC896519BEBCBEFDC16E41' : true,
- '0B1D9276FF6C18184DDF7409CB6C0916D24320DEC0505096AC79C0D3FFA9C1CD' : true,
- '0B2F810BBEB072D82C51CC774A6C831CDA8EE9F9994C8DD167F2187BE9F8F38A' : true,
- '0BDF3458A9B18415635FA90A62440432B3E40DD3D6C795068E1BAED868CAA8E7' : true,
- '0C2154A365A0DE7DC5BD0AE6EE05A8E06EE782AC5C41F1D3823E2F95C61E0D2C' : true,
- '0C9D6EF00C60807C04A1BF61E8C1E28DF2A628CB7CCA3E15593266682736588D' : true,
- '0CCE7A78F794EC314AB50D5A4C40835418681A8E0B3EC84461E470CB1F766FCE' : true,
- '0D8D1B9E2F81D60A99B58380F37E9F8F744E205AC778EAE66810224BF0FF9EEC' : true,
- '0D98DAB031428D38C96C714C90F0E2ACC9A1767FDC6A953D590928683E8BF8C4' : true,
- '0DAB05854E84AABD75D30CE09246103436A4C41E931374E16CC374596C8DBB94' : true,
- '0DB35F56EEAE4C5580F3231EA19F4DBB0FD46DE1BF85F4CCF40103E012CDDA4B' : true,
- '0DB6221BC96F9758356209EFB138285A19A72FE5B898511143A0751BA600CC1F' : true,
- '0DC21B5C66F7A421406E2FF43676B6D7013C6115232AEE0CFD25D70E7D4C2625' : true,
- '0E8071ED091D6F502E2649CEF26818C0D1DE8F752632B670395E916F1BE748FE' : true,
- '0F0B2EAF8B0C4FBF1A47C048E13196C163ED9D8628AFA4AA264A4624B1CBCF3D' : true,
- '0F2BD48DD412D479C8A61E31993A4545FA703253C2A70D901087A7F5B8843998' : true,
- '0F820CFB486D8564C83E968049AD119FD838B2CD21C0B342A0D9B5D22C445C25' : true,
- '0F8A4084830557DD278CE7C3C6977853A4202E89B5F5F61164D1052F05D67B12' : true,
- '0FBBC11F4627D5AA5F7A7847E0F8DE298021E175EC69ECA90A62740A71DC9B1F' : true,
- '0FEBD7B880368302F17E5ABC416528A49CD717B96FCF7A21AD5DF6C4A6E6F792' : true,
- '1030FABD87581CC2360917E4B4D94B88AF59A0E4FBFBC796F36DEA520198CD28' : true,
- '103A6A4F018518AA6454CF8C8D18D7DA301A3F3C9E4C3C7FC2C3EC23E9D4443E' : true,
- '10620CC592779120114EB611657851E4859BBA59E0895E2D12A6BB5A69103A23' : true,
- '10F22412D1CFAFDEBCF5BCF13FD251853DD98736450E36D989F880901DC4EB20' : true,
- '12160CB58782201AF8F946F3911DF89177566E67C2AD7A2CF33107C89C65DF5F' : true,
- '1243C75D0F805DA54E780D0D9C55247B1ABB31FC09EB65A7017695945F2A0D4A' : true,
- '12C674B54921107861CA3EF8660E814B8B4D9913D0C7867A4787E3546F8642E7' : true,
- '12F18371A507D5861569D0AEA4A8E66E551FFE7F312721E9122243EE006D8C46' : true,
- '12F7E82D3406C5CEDA8CFD369DCB78374E1F37D312CFC7FB0ED422BDFDF47B7E' : true,
- '13033A2EA4BC988F6079128723671DE679D332B41D5043BA058FC76F7E5DDDB9' : true,
- '1306A4D21476D28D3E2F7D6E4385686E1BCB6D7EEBB1A5217346A6E5855DF944' : true,
- '130F0A3C4B9E9132D1676B4EBBAB2B17AFD2AF39E291C983A696D8BF0DD379BD' : true,
- '131F59EC4994BCECEC4BFDA4DD4153463E50830B1EF8629AB6A31DC1BE2F0F39' : true,
- '13E77B97AFD7D4712B5BE975257B045E3A0FF8EA08910E1DBD5A64D0DCB95720' : true,
- '14919EA335FB4C65A5314A820ED289B0C8697E0124E6FC92DFCA84FBD56B2D35' : true,
- '14F6CC3EA57AE2656212AB521EA53739211382F1D8FC429AD02A0D6F6A1C43CE' : true,
- '14FC4B733B50025484FAF2617C4C857FA37BD37E6B5785CB007DA63758749E0A' : true,
- '15178AD6DD39B91835771E8C2193D0A96CFE82F913A2C10C03144B37DDF45CA0' : true,
- '15DDBE5ABC768035989DD30C6A2BC696AA7E5AB2ADDF1F3AA8FEEA35D319B47E' : true,
- '15ECBA98523C315922CFC13469827BC118123E02D1ADF24C3BF8305769869181' : true,
- '15F88867DB06411FF17D7764070C6EF6050D08CE2B2071F56313F0FEEDC9A5F8' : true,
- '161AAA4D4A25BB68199DBE8BDDA1E8FBC52E9C7B299EC5BFAA7B36040B3916E5' : true,
- '1624DBB95D0B9786B98A4D7F0B7CDD8FF28754C5EB6673CAD7305B1B5B8F8826' : true,
- '163227E6A01ADF06502730FF25F39D8F52B79F9AE61D5AA2876980A21985A211' : true,
- '16583259A8715263D55C505FD1DFF51D3925AB6E38FC81417BB52A534D767F3E' : true,
- '16A2F0D309D7E5CC00E5DFBDE3DC5DB21532F7E5ECF93E18554698374A5B5C2A' : true,
- '16C84150B3F3733B9D898ED4F57B4204E8ED00ED1147C06335670DA94CA2E2D7' : true,
- '17094402A4BDFBFA5780FEE086E2D0DA5F4D5EE3107A1E934F9023A1F7E1163B' : true,
- '1715E347E92C85ADCEFCA2ED0C4B56DF7D7A3FA9C834B1F2DFA7CE115DC8DBC4' : true,
- '174120EA445C5E517C983BFA02ADAD674EA986185E61DF9A782374AE987D67AF' : true,
- '177CF252B8F289F84D70CF0C5F3BF4DC2F4B14019D777F62628BA1C74ADB567E' : true,
- '178437C1DC169BA86687755E982E2CAEADE216ADD8A163157614A66F34325FDE' : true,
- '1882C2D8D817DD1078933D244E379CFC5BA8EAAE302BCF9FA22636B08FAC86CE' : true,
- '19230A5E183CB5DD90409C54F01075BB43D5608CE9C322EA3CA3724144FE03B6' : true,
- '196603FAE474F910E61B7CFC9A735167422C230CC3917D4F0B1349A8AE18EC81' : true,
- '197B67187392F9D4653EC70C8BB277DD7DA843E62BA1A47B0BD95B89CB2C1735' : true,
- '1980AB9A47AE57C49A608D8DA4D1DA1B911F39FB199C9A483972FAC911F8B193' : true,
- '1985D79429E03A4B25EF4195F04D0D6E770B36E8AB4369232CF3A1C1E40886D3' : true,
- '198719FE25A84786A0C2BD4053E93940AF864498D6071994E09A5335B675A73D' : true,
- '1A20D558B752D443D16F9B806ADFFFFA0B15F9A6BF15C4DD9B0127A3BF140BC2' : true,
- '1AA2692979DFDFEFD4854EC9EAB4CC323BE159529C3E85799E2C3C51350FB9C2' : true,
- '1AC3A4111AA231A03A5457B4143FA2302D977AC7666C84D504283EB828152B90' : true,
- '1B2BC0D56C4FBF89A27616721222094198F39C550244459FAF352151161448A3' : true,
- '1B53976D26A5F691CEFCF098279AAEADDE2651B698FC3F7088F5C2A5B9CB2C5A' : true,
- '1BCC11E5459BEF3D48BCCFB10F57B0D640EC74C4BFAA3F0AA221B777170A5B6D' : true,
- '1BDD0D8B130AB4FE89DB814276912F04405F2D202CE9DA8B89C4420740517437' : true,
- '1C0A6732DDADEA7031C3AB577D185BA0908FC8CFC68925973F5D8D1EF314A0C4' : true,
- '1C2A7980E99904650F707BD8FFE193EF77B98BF02C594F668E2CD8FEAFB87D34' : true,
- '1C5101CF6E51596C08A2A9D05E7FD15977361F9397921F1E007190F7E161A57B' : true,
- '1C84E802619ED9A0AC26289D6FD23589DBD71355453CA3A330C67875541314DD' : true,
- '1CCFC1F41255B860F2231D11672FFC1AE32D9CEAA341139C2B472A0EA9CB426E' : true,
- '1D16AA433A5042924AE1BB07FC1B53E8549BB93D0F3E40723DE9CF95720D593A' : true,
- '1D5A459E02A0790B2082A875474C6B795D9DB88FBF88F5F71A6A0E1D7F0A793B' : true,
- '1D968E8C9F5C1FAFE516D2B719A765DFC83AE7AB11BB461C696DFE8051E68C04' : true,
- '1D9814B49CC077ABB5F8BA2FD6CEE094538866B595A4B5C5B96B8CD60342D7F3' : true,
- '1D9D0031DF904A27E15FB3AF4E004B0A7350788FFEE1C7FC17F0E6118C678AEC' : true,
- '1DA6DEBFCC0A4BADEB9672E523C95F42B2D16B168759F75FD03EFBD2CD482032' : true,
- '1E07BA293C78E14CDFC629A797E8046A33F21981334BF6BFF9B4DD2D3C148CF4' : true,
- '1EDEF3A2E0616C9B753FF6AF369292C619495091058BA99F9A2C691901600E5F' : true,
- '1F0A95E93B1068A37FC1D05FCF5FA845CB7D6514F10DD5E69985F622F750D8C3' : true,
- '1F4C963A9BA39CE44E46F135EFEAD5B30D6A0A3A43545E18CBE59DE452A6468B' : true,
- '1F50A8F65E8256363E2710E05BBADE0FD84882DF8D7C5B12A92FC51B4643E4DC' : true,
- '1FA7FFC35183479611091C22AA548F2807088FFC09EFC171596A26B228EB3951' : true,
- '1FCEEF2FFF50C9A455ADF1A2FB3A2D150777EE49A0F333F746479D677E3283A3' : true,
- '1FF0698D58F68707B69BC895A69FC1F7E6A645C6BAECDB82CECFD7F424BD60D3' : true,
- '200F113FB8BE9CD93DCF38AF69F714D686AE4D227572F482F774574A5CCFA6DB' : true,
- '20226C095C430BD6AE483B9806E0C32296B0819273076F35F65B6A52FDFEE19B' : true,
- '2088FE71BC64663BEA0FB04CF93E3053228D41914681A3F17DA61CA996D453AF' : true,
- '208D546555F7C8FB765630D817A53D96B3BDA2C42C82DDFDFD025E0D9FBD5512' : true,
- '20C2806DEA7B729E29F7B7BB8B2653B8D71805605AD46394473D1B1F81103664' : true,
- '20E0911E2A528C3DC143646F9369D844E82CDA53C48549125DD690ED1047D8FF' : true,
- '2128E4E9D372E50A94E43591AAA7C8B6BCDD8BF303C0B22F923B1DCD596E79B6' : true,
- '2156D89DFDE0B0676EBDE6CC82DF46DA81467DF96F9B8DC4A8B62F71DDA5DF95' : true,
- '21773CA8E35B39C05F62E4EC902D512E19BF1249D303EDED85AB5A724D491B44' : true,
- '217928469E2299DB33E82C901CD9BC5B3FAFFBAA9D980ECC601413C9FEF5F1C8' : true,
- '218E1D545DF5578EFDEAEDECD87F3FD80C7DD8D925A529F1BCC6E2D72FF03FFD' : true,
- '21B2E2C095E47F4762069BA39AAD86802201AC4ED5B6DDBC20D1C7863AE511ED' : true,
- '21CA97793B165187383669364CEFC96F19BAF3F8987F7260CC46F3852721BA5C' : true,
- '220A91D48D7994F2C122A3E75527F1C29C57C0FBC60E645E02958217AE7BC759' : true,
- '223264A2EEB01CD24524FB9273B38688A0AA8E3A2E7D63ECB76012B060039760' : true,
- '23F00AC8958BF1466784068A5CC7E2179988F1E73446955136DCBBF756CC2171' : true,
- '241D89D07F380A6AFCBD4379AC49FB2EF6B82E7D9D3F155DFA4275A02B9ECE9C' : true,
- '244EE1B87977A42E7CA64725F7DD82F337A432744853EFA58C9F386DD4E0283D' : true,
- '24E10AC42500C086F78D008D164BC4899A932140B71A9D96CBAD9FB4C8968027' : true,
- '25104DEC49F5E26A63CD9B1DFA2B4FA82F2C73E4AE18CC7050E0E0EC7946CAF4' : true,
- '258A578A6BF92E1A60553F2A17EFDD2C3267E585FB64020225502A19C6A015BF' : true,
- '25B1D037851DAB7E74114857E6ACEE603F0E41D7B6A89A58A2CEE23CA92D9135' : true,
- '2677470F2FBD067904B7014B88988BB94F72403C014240B9843AE5A5FA21661D' : true,
- '268343ADC21A53E71BD790E19507760E1F7F09B7C51E088E39DD0079C65AAAF7' : true,
- '26A15E073F71406D8AFF4A4A623F956FA8E3ED70F0C04CB4B28031EA103DB975' : true,
- '26D106DF3FE6E9C99924142C9DA27551E012C72C71FDE6EDD3CF4B5C87D59A26' : true,
- '2741D5D511257BAB37E2DD48559D3FE3998CB3A5BA4FC1EA9C8656D5694D7BFD' : true,
- '274C93C8441ED469C7B7E01B5A4DB6D9923C3947C87CA4B71D09F34D13F37D47' : true,
- '276E05B404AF299D94034EC66A188571F2889D6BF76BFED48FFEF62BBAD8882C' : true,
- '277DF8ECA2C7455A847D9C1F3B87D0FEB37C0D7FE1EA6B795718513BA73F71F7' : true,
- '278688C47E3A183BB27A4FD418EBD2E408A09395047C896E3757F2D5BB50324F' : true,
- '2823094C667C47C71749F7A97F6D215B234F086780B61B5AACF27BFD65C6AE4B' : true,
- '2855C813E2F7369732C35656DD791928668591AC6AB3F9C73061B80AA7713920' : true,
- '289395C86A0D1E03CF23E70D9FBB322F1988E1C89ECDDAF13B79DE45880C7295' : true,
- '28C725A83ABDD4F961356B2B5583C1F165094C5BC820CF15A4FE18086272107E' : true,
- '28F5E2863DA83BD5F283E9598D3E8D71817B97BA813C2329DFB2A61814BF56C0' : true,
- '2A66B5579421025EC719858E2D80DDBBE02243073DE27DFC7AECC676B0899589' : true,
- '2A7374ED5A49AFF8807C82CB9F3E3F4AD7DB5B4994D11D77D140124BCB095245' : true,
- '2B059B135DC85869AFA0F2BB76122D71B97DF5EF2C87669085646D98CF08213B' : true,
- '2B7C7CAEDD6611BE472B7BE0EDF5907E0F2DEFF89561E09F389343E095DFB90D' : true,
- '2C610F90EE3EEA88B4CF39A44659B8B5F74454A5973A9D787794F15867177C3C' : true,
- '2C78D9D3C1771061540AB7AF3D75B6A51F63D96DACCE2F21AC08161F2ED95969' : true,
- '2CAB9683916ADE98D778D3394221D8D07E07353E546771D507232A26FA577902' : true,
- '2CB5C98C4A0D8A9EE15CC49CB83490CE552677BF353A0FE7AAF1482A8BF8C012' : true,
- '2CCE7C6E6F1C405C82DBC09B890BBC8F205F503A010210A67428FC8048DBEA1A' : true,
- '2CD5E37B2C388FECDF839EE16998A0F0850B5A6BB39AA5A507AE676622001CB0' : true,
- '2CDCECA60D7F0E4700411340E6CBFE1B3C8FAFA9081E219462D25A14B61F9AB5' : true,
- '2CFB60CBA71ED8ED0B81BBF029CD02B2B025FB4859FCA999DCD96A5D54AB6C93' : true,
- '2D375C90CC502EA17D4FCBE8EF35BF7E07A84B6B94EC7AC78613C623DD765E74' : true,
- '2DBAF94C053FCCFA1EC09CBB22F54DAFF2DB4ABE1B3C61CFF1BEBC31260F4821' : true,
- '2E7F1DBDCA2839FA5A49A6477FC9E09205393FC4A21BA2F5B04F58833DFB7304' : true,
- '2E936472C0CBE755C72128EECCF5BB8AE91AF188CB2F3277B205E27904A9EF20' : true,
- '2E9AA94F913F869B027272668BCA46D5076503EB9550737482C337950749E946' : true,
- '2F3A46F3C2FC1EBB5FB46B3135B7B4ED88CB515C2DB9A508716102340AC3583B' : true,
- '2F56C46CCFDB3A3F0192313C4801F02FFB1738F328CCF0F33F44C0731D340DD5' : true,
- '2FABB733337C02FC7D79E61202EC0FF7115DCEE66134F5F8823EE61CB7000005' : true,
- '2FB44A33A5795F520D20CB4ABC4AE4E239FC193CC2E3D3A85056685ABDA9E0A5' : true,
- '301AB20AB753F09B1A1DFF526D3D5DC6ABFF5D796C6900392391D48C2AD850CF' : true,
- '30547BCD70F47CABBDE76FDF5538C39D1894B49CC72B0A8BD07250A65E2437F9' : true,
- '30664111831B947406CEAFC2E660230B307F401DD060852E0E5281C95D9F526E' : true,
- '308F0B0CF08358D501CB807667A31FEE7FDBF7539E1AE74945DD9245AB9F2CF6' : true,
- '311646C51E3AA0B2E8022B6B1D95E83814131B16921B3B38DA1ACA9518AD4602' : true,
- '311F6B428C4994F2677A56588DA04B704926D737669A76B1B3C8504EECCE4A61' : true,
- '31409761DAABE788EA289CD56CF4B7C2BAD543D7FD4347E2F567264195F5EA37' : true,
- '3145502BE41C037D2D0E4EB721101662A34D31AD1C3803DCD441C55B4F1C214D' : true,
- '317B7685779DAFF1AD898FA790781D54D3EDC11621D1EAA3F4A9BA3262462557' : true,
- '31E1681F2BFF6FEDAB9643A60CEDFB2315E62408EC8AF54CA9252895E34B61A8' : true,
- '321EB0C04DEBB24086B738BE5831A4D968DBF3FA26E610C367B7F6B241AC2B6B' : true,
- '322EC261687A3829C2C0F1FF70B3E6956F5EC01497F58A422A099521BC236D24' : true,
- '3247CA2A4D20116F5513937011CB89834D690D5FC864C788061B13AC826B0A64' : true,
- '32ED76AE2E09C58605B9C2BF6A27080DB8C7EEB70889BCCCEA72104C7F33F95D' : true,
- '3324199E8208DE00D12FC927DC434DF39C54E591EE8CA42B31B505FDF344E5F7' : true,
- '333EA87B9503B4199BC1CEBC617DE7A5E500DB05DA5761B7B4C95093201F6200' : true,
- '3361788E20F935BE971D4A9B9F49BCF9951C7B30E8E1B00E18130777401E634D' : true,
- '338CC51C8910ACF7DC6CBC3AB6F2E288D38A7656CD78BF22C57745EE3146BDF0' : true,
- '3422E68D29A6E40872B4B94E0758602613A6E2CE2CF3B5CA67E4EE4DC097C6D5' : true,
- '347DB54EC154BC63A4DFBE7698F064254EB89FE7B534161AB6A5D282C87E2CC0' : true,
- '34B1CD29AECA7639010C4082C4609B8EC6EFC5DF272CC90D2650D01ADEEA8A53' : true,
- '350123506BA002EA62350E82CFEC1DA7BF24B405C4160EF1BF4C445F7DC31757' : true,
- '3551069D5774095145A9731885485CE10FBF3FB46144F33A4E48C03CF2E475E0' : true,
- '3572DCF086FCEFED230B4D1B47E73DF410A5C775BA3BC9DC2681204F2E980BC4' : true,
- '35A0FA13220E762AF04C6148BA44189D2264555AD2FC34601434778390FA5D92' : true,
- '35CE5363F4A107CF1BDE8CFA1F3636AC081B94188FD008395A1D8895B5AD2A27' : true,
- '35FF7D237FE10EEEA04358CE725A8D43DE0D041729577BF817BF549B3CC1ABFF' : true,
- '363A259BBB661DACB3BC7F7FCC2AD55BD495AD1845A0BF0F0744BFBE1F25BA5B' : true,
- '365497AFA23330EDC3FF27DFF49CDDDCFDD680C3843BBCC719674A9FE6AC1E4C' : true,
- '366810DE62E39878588C7AE621C28816F67DD25F3E76BA4843FCA93A680BA6F1' : true,
- '367CD6CDFD0A98DF1D69EEFA8A8D5C79B4149F28188943BD32D042648021B458' : true,
- '36C766FC49EDF0C95C068E89E5AFE604B86770D48FF3CF6284A579B200355C09' : true,
- '36E58C6DDB5038020FC61F17D2728311DEA600AD9FBFBEBAE2EFBB7B5071D884' : true,
- '3708509A206C9C6C5788597400D7C505859483753AD8CC0F99A5D2DDA9C76AEF' : true,
- '375A5FEFE06518B0BFD2CE02034E185A44118CA92BEC6FE2D5809762C89E8C67' : true,
- '376690DCA49A37377D699141D59A549953B2A0B730729BC6FF8BFDA67433F763' : true,
- '37D9AF8274E2D58FDC78EAD2CEDA12B1F68C04A0F2758EA29CF0AEFE9342B525' : true,
- '37F78563BBCCFD52A5A8E02FBC3AFCF8C60FCD15F9B7D011279497FB89B3018C' : true,
- '387A2F5DD4AD9C5E0847B235EF6DFF8EBB8B786025B4317124DECA6E08DDED32' : true,
- '388FDEE7D1F4001D828D2092BBEACF16E5D50375BC16FBF1BA058917BFA03C1F' : true,
- '38930AA3E177FF30E734FFAB5B71050FB3105D8B3FBB693EEA22EFD70F1A124F' : true,
- '38D12483160C6E3AC330EDC1DE173382B4C2AD79A298155181CCBC9A10CF6495' : true,
- '392944F5A1C82284C698C6BB512CB5ABA48445376D54BDDF0A53C66B832D1BB2' : true,
- '3955C196410B13A2BE4CE66E7CA1238F139DB5F00E2DF2997CD83903BA064B4F' : true,
- '397B9EB5957CE4F48570ECB1A512AC0CB669DA638AEB298B95C9F155E2D0A841' : true,
- '3980DC35B3F055E561CB3AEA700F226E35C1ED91C66B2CAF6E186E10A319BB29' : true,
- '398785BB4B2E784270779911B8DFF4530758A295E20327D0F64BD31D7055BF1B' : true,
- '39BF13F759A9161866C6DC6898A5E6D71FDDAEB9EC5925FFED274FA8E5FE34D4' : true,
- '3A260A20CB6DC9BCEE25A21284C2304A9744F494B37359F5F0AFB46A1D0DABA6' : true,
- '3A2AC86801E185B3B8A189C42AF1574721D452DA425CEDEC6FA0CCD44894BBF2' : true,
- '3A6E84F6C3500A3C756D21172CFB91798DF0EE8CEC9690609D9240018B1986B9' : true,
- '3AA33F69018FDFEE33875D0690C26D0CBDBED363252891E02592E0F2E2E1EC93' : true,
- '3ACDE8B9E6B1100535007AC7316F4587DEA84EE0DF1B344DECEFFA952AEEDF96' : true,
- '3B1CE26F0C0E4393AEAD1BEFD39546A60E52ED5E52727AFEA827E27CA20453F6' : true,
- '3B209B5718F54F113C557AB8D670B1501B05A16B92E6E16BC97D026087B90C3E' : true,
- '3BA68BADFED2C2A37E94A335FB77A9E633752A9BC037C2B387F89AFE76DC0C4D' : true,
- '3C2E04A916C0E5A3D377B13111ABB1C5BCBF79A5DD18865FA9C01ECFA91C5620' : true,
- '3C9E6298F6FC43F504BBBDD12ECC94B4BF47947775FB629D1E1683D8D5AA6A8A' : true,
- '3CB171EFB062C3F0AC1CBF88CCF28B562B382A5EE096BB48394B16AEE1623F82' : true,
- '3CBAC1646A082FD6EB8B9F2A844C1E6314F80DEA301385ED296DB13C3C37BE91' : true,
- '3CC56DD89816FE295CF8990750308F966BDCBA97C5A46F6DBD5B781686D2434B' : true,
- '3CEBACED87EF6D792BE57716D499B06A9E0965392FF9ED70A3FDD82673C91B1C' : true,
- '3D0D68FB06AFA2D8D333AAC270310C45E9D6D79D18219B7C029A78CCC43DFFC8' : true,
- '3D1C44AA234496D76A6BAC3434418253903B3C5019FF91F78348AC7C14E39CB6' : true,
- '3D76435F7EA7583AD6F474333B7F8AC6368ACB53FAF4AFF9E8644765025ED427' : true,
- '3DB253A22F1FBD071CBAB9E97294CD6534BC74430123B82198F7A29ECF800D64' : true,
- '3DB397FC056841ECB8737ABEFCCE8A2419AA2BCEE8F1A1D2C440D0F0FF672303' : true,
- '3E08AEB4D01EEE9C19968EDE2D5FEE0E974E6B7FD65769E767C28CCDADD85D46' : true,
- '3E5558CB92AEDC7E01DB0FBCD0825CC0F51AA7B683ABFD01D1E5E04C8A4D716B' : true,
- '3EFF635571ED85551721F01985D1B2C62613C2B7DE25C8DAF17A8767ECFCC39F' : true,
- '3F1F9323436BD390A2355115CC333592B4B5AE3F3BA2755D342CD863371EAB1E' : true,
- '3F56CDF75403392B96E7DA06DEB55C70E8D9166ED6FF6B84D7EC4C176157E6B0' : true,
- '3FC92874F07DB0DEE11CCB2CA7BDF187641DC78ECE4C76E71B2253FBBC17E3FE' : true,
- '3FE67F5B06535FC13DE42FBF82AB1238C7C899491A460D62CD2FC08DC87DCB73' : true,
- '401560EF31EC01360E48BD4CC8C2B67B55C0004712A3C08E22A01F933C60CA67' : true,
- '403708719913B389CB23493659C668C96CD9999F7BFFE044B35F8B44B13B5B39' : true,
- '411ABA7575AC3548FE6E02AF1E192B80ADA7FD957D2FDC1360B747598D1327F4' : true,
- '417548DCF639B7068DBD9E51D372C67D147C8D240A44EA9F9609A8B526FB4CE3' : true,
- '4181BB2178C564FEA4F0F5C87337921A1DB4C1CB1264B1E2168FFAF334C7DA55' : true,
- '41CD7602C418FD0831F1F207DD50A19A0A03679113F8508F43DE863AFD32FF45' : true,
- '421255699474B76638EBF0F0B09FB1D5DA870483D1F6572913EF411B384DE3E2' : true,
- '4226423E038140296172814E39889C6B35471796A12F91E450FA5E59341F571A' : true,
- '423D0D4DD3D4B507C4115C46321A9B0BE3B9D7224DF626D2027A30FE682099DE' : true,
- '4245AEAD44ABC8177230DB36491E58FE885773DB0D043E24412A8BF6262D506A' : true,
- '42A2B7BAFC9E81A94112C062E15EC8017861988A458D8C52A686702633559BEF' : true,
- '42DD0632CD639ADAD014D4C2E28BEA543E3989FDADFF9DC360676BF07C200A1B' : true,
- '42F0C6BD144E105B3D14A68E267DDFCAAF76C95CFA265B187480EAB83FAB9215' : true,
- '436A3291C05BB22CBED875AF7642839CC42E7C0BD534AA6698AF162F790F90BA' : true,
- '437B07B7934374CFEB2F61FB1B9A764548A53C9255F053C59E236CDC6B89B839' : true,
- '438F971859A8E9513FF0A066A2DAB7A7605BA447CC82183DC88B53CAF49D1A37' : true,
- '43D2BFAE896F4791DF545D91764AFD74DE470C6B26787A553E70176925AAAAC3' : true,
- '440D00F6A763CEAF241756BFC150BABBB724D3AD48D6739ADEBC84004E24FB7A' : true,
- '44406F5E316D195EF83153B0E45380F529943062FC692EA5C202A897A013E95C' : true,
- '446E31D583B00384BB2D1D48C8960DE3C852F2DC4FA3BB738867CF5FE64EEB5A' : true,
- '44C748D62020862C698F3A1BE86A0261BEEF4337B6E28B3597F7FA0E4A01E49A' : true,
- '44CABD03127B290D755547D264FEB34F4D906826A149B64DDDA514F549FB52D1' : true,
- '454B18F6DAEAF7047D5B6CBE2639B39B2FD036870978048A5076DC8D50244365' : true,
- '459F25329680CC7589904EFE8F94F17880AA9DF2BA9408645BC9370DAA937471' : true,
- '45A2CDAA5DFAFF670425706B6543FBE161BAB6843A156A1D54F340BD8CB87970' : true,
- '45CEF64AA866F2A2A72E13722374190F8EEDFE984F022C3B23B492A073741EBD' : true,
- '45D1C3C1E96982C752313C9059D4D6291BC0652ED7B266E25F67738E4D74915E' : true,
- '4603C35A8304F6057C253381D39404E8B40AE0958B4EB2CEAB7777CD85802C0C' : true,
- '460D4CA817FB242D2263900689B3CBA7261A390B018391C7E1716991BE8ECAA0' : true,
- '46565A05B815225FB600CF1CF1EE4BDBA5A7D39A7ECF45210FEF3C1FCC2B8B1A' : true,
- '471B0944B33214226AC225854FE158436A278A750C082A48D9E7A5E2A0E1715F' : true,
- '47F4235DE4F1BBD02682F65A8B465D04721124582B6DEAFDAC164A699F56F419' : true,
- '480B822D5A85FA7778AAB5735E46949A668EFBE1F6E8CC1107B01C6B761C2089' : true,
- '48544D794B99D6942B8C3B2CF051782C2F6CE051860BECDE2736C2CD6A429893' : true,
- '48E8ED415FD8EFB4407D0C67F3A4EBF15286569D29D566DEFA8B7AD8F135A5CD' : true,
- '49558145AB82E7F795C2E45402260F1AD1ED43D4DF145CF2577BA1615CD00843' : true,
- '4A69353F89397B7FBF7B34B298BBA87342EE33C9F5B75660195F8B308FC892E9' : true,
- '4A787F7CB8AC54A1EABAB27A47F6EACE47C2BE2076C2097973E035DA5B507C39' : true,
- '4A978057E01B2F443BFC218B48E7D00D2542DBA58ABD2609ECE7E152A8F86292' : true,
- '4AE85007A69D54CCEA04A3FF18B66CA5AAAC43342506963BF910E2C2C3AC8816' : true,
- '4AF86DB451BCBBB3BD8BB3D5982DBF4451CD96394540DE9FE6210E69F7C2F8D3' : true,
- '4B29F275C3803C8B4E50951895FE2A4C94442F4A7D14922D54EADBCAAABF4056' : true,
- '4B7969CEDC5D49D2FD71A2BB9292ADDE46AA34B2F8291163708F0039DD950618' : true,
- '4BA794C124A33334A880DFDA09E7CE5B10552C8301447ACA77FD53CD4CE9E725' : true,
- '4C30D24EA7A5914CCCA63E3EA35BC8FB1235F5DCF380DD8A62A01EF15009668B' : true,
- '4C3777C55B3DE718A1A48D7903656A81E9CE315333E2B6C3A1554F8B5C193BB4' : true,
- '4C5B87AF5F835DFEBF4FBDA9585178998AF6C7E8681DF65E46494A8F6BEC6EA8' : true,
- '4D112C44F7DBE6E0A55667E639E192515C54B00CE5E964EF696B13AA049BA656' : true,
- '4D26A014A4C4007564C743D9BBF9C2DC9A5A881C05E549DFFDAFCD3814F3966C' : true,
- '4D6CCD149A9BF9FA30CD78345F827ADB4A51553FCCDE1811FA39872E293EFE59' : true,
- '4D8B64624279CF7D51601735841CBB361AF0B7391064C39EE82B7BD99F633599' : true,
- '4D8C4D5D0326174F4268C67B81010F65F2DDF58CE700989FFFEEA379269B0AB2' : true,
- '4DAD9C6A183D4E385824B6026E226BA5F220BD838F827C2063831B5998504253' : true,
- '4DC761701AB68524A6BACAD94CAF1D8480229B66D8B9B9C0CDA3D3B233A6B785' : true,
- '4E49086BA0B8B96D1C31415D8A1464F19B93CF45B46D04AE4C21672279ECEFFB' : true,
- '4E896A7D43F19E4E9586661BE2C642A13C1A6276BEC67EE05D73AAAD7009E723' : true,
- '4E9BD8EE95C95E2F30BC2874E73252CD5F1E93ED8044F8BDB007117ED14E2959' : true,
- '4EC463F17C54EFF037FFAC18326F5C8D86F5AC295149408499042DC4F8A96B73' : true,
- '4EEC544B64210519ACB153834E7AFE21867AA949946FEB78CE5A254D12A0934A' : true,
- '4F109E78AEF1C633256A8D142E1BB4634CA4DD28D45C9121F8AC34EAA2CA8D61' : true,
- '4F2585D48325C6EFDF76B91358BCEA97A428B95E575ABDD83028DF3C7AA10FB0' : true,
- '4FD1A1A0E4A435C96CFBAC9AEF2D8F93C9505CA0A01B505CB5B5D3384A4C90BA' : true,
- '505707224B14F1FFF2F5937865DE662C85B0C21D090C59658E24B53CA635EFEA' : true,
- '50CC4D1AE164F66EC09AA6B7D5931074094FA1BB6788AFF3525D7711449CEA81' : true,
- '50D807568742476BDDFB2B2DD7532ADF770BC0A5D8CCF0710AA8EDA90AC1BF4E' : true,
- '50DB534A27B601C2268FB45FC5F496F4457DC030EBCDFD6221A85B1D6F612837' : true,
- '50E9896B78F1F7518FF47BA049FB637E9EE670EDC54AE3611164EDB0C77005FE' : true,
- '5146E8FC07229C7FB68C4D978D98E431559515C26B7C940C9B02846666CBF86A' : true,
- '51951278BE011B8562F6F9F629855BCFC7F28856755EA274F29109E2489CCAC4' : true,
- '51BCC26F962807CF0E8DBAB22F10EC07C964A23ABCB3F54CF247590433E81955' : true,
- '51D55D35DC31E9E37668C1D7722B6F9C09F044B5BA6AC7E4292E6B2ECEF92535' : true,
- '51F5AC607BCB1882F792585357C63B23D08267F717AAC5BE2AF557123EB19446' : true,
- '52064B1A1610B2374CC7319E51B4ABFAD46FA995B9447DF18ECBFC68382A9ACF' : true,
- '521C2A94F68FD0E4A39D62EDD2F980BA51A70DE79312605479C49E9BD633B854' : true,
- '527E1D8CBE4936132EB16202101509A3A0535CEF78476DD9317AE7A31C097327' : true,
- '52AFEFBC93919093868483354CF11C747FB38F946CDEFDCFA6E5117FB0F5039B' : true,
- '52B692F4633A4490F8CF535009183557C5562B4B933829691FDC17E229919E2F' : true,
- '52D622E1A7705A08FC599381FD67871611748B8EE9BD235E6C2A91E315C251D0' : true,
- '52FB96DD74E66D3AAD9362B58E44731D388E0B0E17DE700E2FF3A7ACB2FC1BE2' : true,
- '5322CEB4048FC373C5BBCCCA48985E2C72A380ECB490D143DA16482383C74B2B' : true,
- '53A96B8A54585360591C2CD5A84E299962FAD97F6C1FF0D55484D3F56B2FB87F' : true,
- '53BC74DCB0A19B859F3FC60A2C6410D22F86321E2AA4D03B08C53181A0FDA996' : true,
- '549714E49A3540F72DBFAD7836857D6566333DBA4645F3C4F349E5FDE00D4302' : true,
- '54F36E09737DAF689E5E4639E147A532A852983FD88F7D26234EA7C9BEACF0B2' : true,
- '55360AB9E4626C6A5CABE53D4DC3FFE3339671F040B96E93C3B8ACB6CB1AD4D1' : true,
- '557AE25211574C66868033236E50981E6DD3AAC09C9A7916CE3A26D03420E774' : true,
- '5588811DFD0F3670F7E1A16786678388365EB5024E756A724F3E270874A0C307' : true,
- '560643E22142CFB43DC9055CE558A62AA7102F75F6D42E3CA314920016A5779D' : true,
- '562245CF8A84D1D3C1D6B93E913E3B22E5EB561788981CD666125C21EBF44D88' : true,
- '563A36F203C4A0D86BC2ADC38B1006499E3CD3D651B5C97AA848494CBC5582AC' : true,
- '56471B223E05275BE6DC106B9104B5205CE2E6FE11115C5BE564B51B965B5F09' : true,
- '566B4401F65B5C29AAB831E836536E791FDCCCE98184D62C0A26E6842F55D303' : true,
- '56C3C0B8AFAC13E7ADBC449142D6782CC3C31A5E19DADEDF1CC01A1C80FD6D4B' : true,
- '56E517CBA2C7389F835B1BA349D636309FEFF05323957D8E64D6A2EC78F22883' : true,
- '575B7E593AA02701C1596A6A45E1FF458D4626BB2A31F5D3031B2023956FE5B7' : true,
- '5763D92A93E32A742A173821970D56891B3874753DECF5DFFF2BC7D2D95B82B8' : true,
- '57B2958E7031793509E2EB58DE05C460E0791C4F78A43244640F7926FA3BD7D6' : true,
- '581247229E9E4F0D67498BD22646654479F5E0E21C96DF47CF84EC94218EFAA6' : true,
- '585568A4010D0650BF0F0C2F78402F25FBF6D0B8C82879E5B475708DA6617E35' : true,
- '58B590F006C3B293A57D41FF491EDACB580EBBF8AB20A91D6F8F0ACC3D3C19EC' : true,
- '58D9F0EA223A00FFF59D34A5C07E1F2ADEE43CDBE908334E1153830DBE463D91' : true,
- '592C1FA32CB66B17E0ADC3B3C6C65DB7A7B8863D0302D5E51C53416DB637BE6B' : true,
- '592E6A566E519805F81D7C487817C94208B9EA356C03D1A69A3D1702265873E0' : true,
- '59473282262DBA200C960F2938F0683168E8316CCBCA3FEE394F0F0D54A4029C' : true,
- '59AF4358506C0A2318F28B90E799634921C869C5FD8B624C9D76756E2A9FDF6D' : true,
- '59BA7AAEA0B865D4463836C24AB3BBE6D77AA72177831208B2B6A34C8C1DB307' : true,
- '59D52BF260BA4EB3C33F0E2A17264E4FCDA3551FD2A1FA8587645C29547F4534' : true,
- '5AE9D9A57C2C534BFF3EEA5BA91F7456910808227C9D3075409C010D69B35DD2' : true,
- '5AEA8446AEF2B9BE8984ACDBA8D42A71D3A8D0AE31372342710B67E8F5A43BF9' : true,
- '5B3B3DEBC9899E074F2AFFE1A660013CDFD66E4F70948B72AAA20DF84433A80C' : true,
- '5B9DE184B19CB095ECE56743A43B16ABDEB3063CD37F0E20E985C9E65D71D311' : true,
- '5C1AF4338F1854843A251AFCCBFB2F626FA70E1DE41D2C941F34D15230BB56C9' : true,
- '5C3F4C823A953A561E8D0787CE7AD8FAC7434EF57CDEFA4520C18A5667C82003' : true,
- '5CDDF1DF7B5333F1B4C0FAA66297AD72ACA5258C5E9FDE4B9ACD9EAE832C7A02' : true,
- '5CF1D1896FCEF8E0B72BF6E617D8210ACE7DC6393E38FD4BD4C68E2EFE2EDC03' : true,
- '5D64C4C9EDDD06639D193853EC96E2965F6B25D267B77C6B4215DD267F8ED96B' : true,
- '5D68D02C6166F138C5CDF38DBEE7D4554849D48923FD4002319655F3625DB8A5' : true,
- '5D93064489EF0EFC4896A08CAFC0E39631930121F724A3D1CDFB83C96EABBE9E' : true,
- '5D9A9954AA2FBF6B426E2D08BCB18387123B6E2CE67BE2FB9F60F8D4B405CD20' : true,
- '5DE0EE469B7D133584FC7B15F067761A0A18D73CFCC973EDE76DF596C4F7C9A7' : true,
- '5E0567301967C4B11CD56E3246BD48FE8C4A23AF8C6F5042B745FA3F631725A6' : true,
- '5E650BBA8E8037D6BBEE78A730F740DDDCDD7EC828120AD912F4BBD72794070C' : true,
- '5EA41BBE7505A57EBB3603AB14050A284390BDB6E72B39D918232A5D13E702E1' : true,
- '5F24DC1AC032BB0FFEC76D35C0091D9B658E94D953C8F7576A7C1613ECD728B2' : true,
- '5F6CADF774ECAB5E763C99E911D31B7CE7A470AC7A91DDB8A0DFB092079CB0D6' : true,
- '5F85D6DF2EFBA0438EA4283D734CFAA8B3C43E22BCF7F6CFC24DBE82232ECD3F' : true,
- '5FB6ECAF5FD5CA42241B12521D7BB6F06B7D804C60C84D7BBA7B7A7543FE754E' : true,
- '5FE1351F1D181DAE879D37BA02B76A4AEE40BB3578718C0F467F2B53383CC773' : true,
- '5FEA0DFD20247FA12D63859439FF9F4D5D0207D6E1134820CAA9CFE4A1B08FEF' : true,
- '60E9F3B150DCF1BD90562DEDD083FD783E2CA9A982C08BCA2C455F50BF977B98' : true,
- '610B774EA0B634E6F9B5A73C2DE39026C1A55D9425691B68DF4803228BDB7F8A' : true,
- '6129C7157898F2D29FDF04A78AC6730FFB248F7467858C9F3441A5D4D6B88C8D' : true,
- '615745882CBA2C8B9875198E3FB62A6831207B74A21330847BA9AD01DC9D5586' : true,
- '618F1FA3F38C857898847A865AE73D87B0071C8DCFD4EBB7E80828B11862151A' : true,
- '61987C4865081BB1C9CFF8E555A2B73DC6C88CAABE6BCA06950D3821A1F9E407' : true,
- '61BA185CD2FAB39562813CDCDDFCD75184A1572E2B2B87667728C2EE8596AC65' : true,
- '626A46879F664F1EFC638A217EEA9AF538608E03B7496D5D11CF4E285F1FB2E0' : true,
- '626D3DAAE3451C750616F520086766043D22C2E2C34F483D6C7EB06E76ABF206' : true,
- '628B608326DFE57DF84B8289702D0510AF97D93EE30499B0CB5140921EC87DFD' : true,
- '62C9A052080F8EBA5E8FEB9615B5CDDFFF1D74F8467653030CB1BA12337EB5D7' : true,
- '6359C58181A724613C613A6C4BDF358B7AFC4F5E0B229F8877190FD3E71B9803' : true,
- '63A4A98B9778705A9CD9A0F1A40827B0A6C86E2A520DEFFB1AD8F815D760D992' : true,
- '64034D52E2C298EBEFB8DBE9B29A28732103B368215EECDDE114D22B2D7B2EEB' : true,
- '640ABE7DD00142C0BC18A62F0DF54284DC89AA1BA000DBCD992F719A4B9D2887' : true,
- '647BF8B75837D8245F6BD412B2618136176D68395FFA83FC4E3A1473B0F5CC3B' : true,
- '64D1D9522071A54B43A6C43A759223AEA7AE209FEAB423EA24E3E95FD83BDFCC' : true,
- '64FA303A129E23C91B42F1C76DBEC8089307AFE11E5C937704D88B919BA60B45' : true,
- '651F8FBEC4C5909A0FDC3B8E8D557574FAF01B33981B5B725311B57DEBB47B24' : true,
- '6568B78ED9264581EEDFB87DA662F20BB6E032EBFB2F5B61DAEEF1F4E6E91627' : true,
- '65ACF48C5CF24783794CB8D5AFC30737273D3DDF93F62EF803EDCD05650D775F' : true,
- '6640103D01C44839CC471424756C6CEEFE090B3BB98534B35675BC524D2FDA50' : true,
- '664EF517A09AAC31503712482FAD76860E0376164400E67A96177EDC25CC4CE2' : true,
- '66B10F427AD63DB6544E9E20191BDE4F827A7C96F1DB17E01E0B254D67BE282E' : true,
- '66D67EC6407BBAA2F4A0EAF49D81F223332DEAADC96292827CD749DB07A82C02' : true,
- '67118345997FE5257EB55439485C3BE019B32F1235E050EA2769A7DD80E6BBF3' : true,
- '673739D407C00E1F449A4F9846B8453C09BA0D0F46442053DD5339F93A2B0065' : true,
- '67EC9245E211B5D1725811DDD82CE19F1E44F3478BE3B2E42B049A41AD44EB84' : true,
- '68382918F5505DA3670FA53F90A4F583D648B55CF05044CEE68B290D68279AA5' : true,
- '6860622481E0AB0EAD93B771290792279985D4989D072D5C1E376F451FFB1360' : true,
- '68F4D48C069E0E2FE572EF492CF6682A03AB7350D9CB3E57EDA19EDCC558151E' : true,
- '68F575FF9F2EE5CBBE2975DB80B0D2E8582B2B5A1624A70EE6470FD562D59E93' : true,
- '692C0A28DE13EBB75674023CC105A5F663CF5C67153225EF1193209E985CB1D4' : true,
- '696DF754F89F8B927A273EAFAF6B85C38F1D07E3EB99C4458188B443BC352D48' : true,
- '69CE183BD9B04AD76F8FEBE25095D92D95888AA7D8735400158CD60B836FCF05' : true,
- '69EC7BB154853BCCDC5C5646ED659F54B957152BDF1799B2BD48D4EF52DD9A85' : true,
- '69F71F4F07365D7F684EC748F9CE61559DA33FBE1C9772F836664D656F51A5F6' : true,
- '6A7D32C4F099C8D7ECA61CECDFCE82C5D241F33F6A02B3A00D89802D4689DCBC' : true,
- '6AC112C1828538894A1FAC7CECE0ACFEE75658118041513498E880274BD2B7C9' : true,
- '6AD39077DC61A2347F25E34A809107D3F11E18B1E197A88A9A39F5FDBB0A3861' : true,
- '6B079CEE0C61F7DEEFC419FBABA5A734BEB22AB794791A0B6247E61EB4493B78' : true,
- '6B16CAD6D99596442162EEE7113248C0C77EBA7DBE1D3BDC044AB9802337D2CE' : true,
- '6B8153379F9AD865DAA48C0B805430D7B62D6624C4AA9389FBD770A366439995' : true,
- '6BC4B8F5756C6E11852DEAF28C2208733B463931BC5413937F897D4735CC2F01' : true,
- '6BF2234F99577BEF099F5A651C125E660A765202F83A7FF24C82FFC87F87C3FB' : true,
- '6BF93E269F6A628136F482392804350AED624D75C68CA78D744CC06CF68EE1D4' : true,
- '6BFB1661BA15D7A0A8CA1B9B4198D9A6C4ADB15245006CC59A60939AA10903D3' : true,
- '6C2FD820535D5A821A1D96C86B45519B751F141CEE8E1DFE6E52EA5370E1E7F5' : true,
- '6D1A6A751BC763F5027ADCB9DD5D2FDD2B3BF82A755B3013851D2C8BB98342B1' : true,
- '6D2E55B7B10EC7E3F82F060350C9BB7DAEED8B6ACB8E79B4B088D9B711A9CC6E' : true,
- '6D53AA3328CC9AC46F2872113922BC105CC4A5C2B3EB7F45C331A93BBE4ADE3E' : true,
- '6D9C7D48EBEC4A7D808E0A45C6ADB9A6CC5E61551DDF1A24A3A74846039208AF' : true,
- '6DC6A2951DC967373452FB4E9A95DEEBCAC70945DDE09BDA398F74161060EEC7' : true,
- '6DCF946587948A63E73023A5F33AAEC7EACE0525DA389B15F1F8AF1AF80F51CF' : true,
- '6DD13D5385101A3323ECC27F7548813E240A1D58E37DF8D820CD2E2998BBB8C1' : true,
- '6DD80C2FC91323D55EE9802BB3D0B8532383450610A54F1818EA67BE12DE0F6A' : true,
- '6DF077999FC9CF42DBA6A53792BC94D44D0A7EB834DE9F8BEC2D973ABF5DD1FA' : true,
- '6E1EBDACC8C14CBC6635F612329AA11C13C8C13BF612858C392A3B8C472AD059' : true,
- '6E22A88D52132B3E2E43BD300743F5A381C225267449FD9DC8E86813046405DA' : true,
- '6E2E497FB005ECE46395535FD0DDFB0D25109D1BDA9D1933F522706D8D79E179' : true,
- '6E4717FF9379E997C167282DAD35030DCB397B5407EC9A25EFF535824449FB70' : true,
- '6E5129A0D68D66F16303D10A033F33DA6D6E69C0F8524FF4385D3469B987F9BF' : true,
- '6E6DA0FA0E408041742AF46AFC9DF9C2B0C3FC42337FA1AC04A91F4C89726F10' : true,
- '6EB7B7B5944AE125A6CB7A1E47F94EEB2707DB51DDA0A74B6DC73A9EA683F963' : true,
- '6EC6D27D2BE121B49CCDB7866F4FFCC3C2091AF00405CED481AD072FE4BC2307' : true,
- '6EE1C6CE7C12DC2137FBAF7D8F23D3D39384C7486A22BD9DC5DFA7BD8864A0E7' : true,
- '6F45127FE064F0BBB5EAF17D7A4D9EA3A47175AEF7CAB5C98F2B6D11F28A4BB7' : true,
- '6F6AD0836CA59A26AAF84CB1E1909CE44F427C1A5AA2C26C77D0893C0404873C' : true,
- '6FFF24F5CF69ACA10DFEBDCEA8B5A56990728D9EADA33D0CD316BF042E79068C' : true,
- '704172C04EB3CE46ADA086772ABDD4DEE208909ABA10D59D1815E9533107CE5C' : true,
- '707966CCAEC5908E84C5AE646566426234491D2F78CC00BA7C7B9E5F009924B0' : true,
- '70A67B74C0989BE98A1EEE5FC657E903C09A82E81E9C921EAA995DCCF790EB82' : true,
- '7109EDEE1A5EA15999322CCD296655E089C12CE7193B9B83008E97A382F3708A' : true,
- '711280787458F0E54B0C9294A54270FA83E8CAB29E212ADAF665D7F6345C4DF9' : true,
- '711C387F2C7A8AD850D98BB2D145DA6F0240960AC5563A50CC6251C28D659503' : true,
- '712DFCF0FDE6A19BB956670492E1C39956012537416F6B0F90EFDF093ECE2D88' : true,
- '716121E1DA67D3A82CC8116139F78C34C30E6DC96F647B7F474CE569B38D0F3F' : true,
- '7177E89F5B3033D51F000533ACEA71FDEAEC93E4C3CEA1E0FF68F78BF35C8B21' : true,
- '71C96A7294C59E44C257A0BDA7578AC44118DE25DEE425F73E0A211066FE6AD4' : true,
- '7231ADFE0CF97B4891B54A4F17EC2104C2A732D06878323D7585801DC8883E6E' : true,
- '72438F5523C4516DEF379EA7206A883EA5876DDAEA39EC848A5C456E9215A1D3' : true,
- '725D6786E7D84AD1620F2C3C26F74F188EC71F0955877FF57060E2943972C1FC' : true,
- '72B25D2B306852E429F21DE58CDC4A9891E3F5982691FE9CC6788D240DA268FC' : true,
- '72B3E7A98A999A30F431233EA370E5C4FF0F4DC6C14EF976823F7D1E715D78C9' : true,
- '72DA08B04A02C6951EBFBB53503A49B8449ACCE5F0DC3D0539FCF72C0BAC8C2F' : true,
- '72F3DB1BB2B0B3D65683F62D927E20C95303A00E8C845E0088E4DACD4F3B19FE' : true,
- '730C9CFC51120B6E5C66F07772ECB96F2933EB184A397BAF90453D2BB43BB600' : true,
- '731365F0467B856B049E1DA2E48507BED14DAC7F850DB92517B78FAD19C3AD50' : true,
- '7334856F73A23C5F0A60FD1EB2DD14EDB444B1B8B62516FFFC38589D1200B09D' : true,
- '734B6A2AAFD05E66A9C2D72EDB67EEB5611E1FC44F4611602DE3CEDC166F2CC3' : true,
- '739BAFCDED267B356D90B89CEB40EF6C9C77DC768025EC662EDFE035A816DDDE' : true,
- '73A621FFE0ABD75757F5C92C8EF20E63EC8F4A279A450BACC7E4FA9D75E0EE5A' : true,
- '745525C231C9DF8BE6CCB47D13C76E48309B978C8307B00D4AC43F5E8E94C719' : true,
- '74A9F7B27B38326F64792AAF791E5A5969071CD05C8ECB1E068035AF9AEAF482' : true,
- '74DD81E119FA195E9D174DE01F5EAEDB33DB2947E8B14103A68BD6C048EA491B' : true,
- '757071EF34F3CA907D7D29C6420EC14B6953F433FA03F2049636F55265E456B0' : true,
- '75A6F19FAB17B6F9369BE788451392B4297CEF7CF8CDE5885466DD3027567B48' : true,
- '75A9264209E9CFFCF8C4D74F1988A6AD0F509269A5DDA3DAEFC0068EDBE6AB26' : true,
- '75BA937083A01BD2E40BAF99E67BE6A5DA4091DB23E1180D476A4F29E3B85F2A' : true,
- '76158E2FDAF1F6E79D74A36BB2DE03AB8F5A4D7BE13550662A53ED88EA7FA494' : true,
- '7645E014C8465F11596B1B7093FCE41313B51FCAC1FBADD409033F63F5475CC6' : true,
- '76A3EB6F8C1F3036DB2CDD46425DDAB17A5896602C21D537C750D56539D609B4' : true,
- '77011CEBCD8791962FB34FA78597897A9CD8757BD10F4A3A595359986F6022AB' : true,
- '770784FC2B1A52F110194800E972006E868F055C52A8BE467F3AD7BCD7E441CC' : true,
- '7792187AA52C5BF5D6962B492FA6A9CCE23C2AAC15A97385EB19409E3C27C307' : true,
- '78688E9E72AB7EBBF676773115F2FDCB5E48AEEFFE7A214996099B5B0A97140D' : true,
- '7871679EEF661F72EE1CCD043F1B7C597E8F23196B653B42634C37F2B6619B00' : true,
- '78EA89695196A279F7B44D8F1AA15080C91C3BB240F1D1878A88F2B27228D430' : true,
- '792EE0B202E6A45AAA85E918497D9C9F16FEAC99500A7940C0FC812ECC42120C' : true,
- '79506C5663C38F43902B55BE2FFABE0757A806105C2A18473770E9DEE5322E40' : true,
- '796C57ECE8BDA296B3D99CF733FB6416DA911E5C88B9A3F4D666AB35C15BB68B' : true,
- '79C23A183F34B74C5E27A98B7639F49A05DA497FE8DA09BB3009E1347E749164' : true,
- '7A25BD2F891D7C049CED17BE56848CB2C398B23FF5BBC6E0B483D7C0EEC38004' : true,
- '7A9E192C2E40C868BC0712625F76BF4017E503E5F115AF842F089A23FEE14F1F' : true,
- '7AA535C0D9A800DB2CF104B369AD51EA6030237E857EF61EE4412335F83649DA' : true,
- '7BDE39A76CE550ABEBE58E8195C5D2635A04B6362CEC665EADB76E8807C0A39B' : true,
- '7C63B78CCB8DE59051349EFBA4A9E34EB627F65855F3C754312DCFCDBFDC270C' : true,
- '7CE292E89FE576958102FD62E37D0932577DF71B88F116498212E5ABAA662A9D' : true,
- '7D4642DEBC7CF346EC7846E9B0314B73B6B9C23F8016E23E8BD49ED247D2BEBC' : true,
- '7E01E1EBA9D9E46D3DEBEC868180199AE64DB3BC878F66066E91CB4C060B55D0' : true,
- '7E0920FB66D549811711C20F1789AF9FFC54846E738997B8A18A2F154F57D29F' : true,
- '7E0AB095FE17F430AAE0B4AB7490366DF97BADF13AC223D96AF0913D6919BE7D' : true,
- '7E6457A0590ACA862390B02CFC9F03042A7D08F4864AA9B1355521808F8390F3' : true,
- '7E723113D07305D5E9843032E474637331F1567CF33EDD8316059148AA2E3ED8' : true,
- '7E73DC62FF77BE88149C85444C4066E0657AADB72716230EBC073848DBD7F59A' : true,
- '7EB86A40F92731EBBE58C26A9ABE78C3C1D2E2406EA2CBB6FC5908EF852253D3' : true,
- '7F1566D05D1E3A90A9D5D551AEF51D2F1827FC9E82922F2BB32A08CDC5BDEC7F' : true,
- '7FFDBE3A1A423CCC6EC3C9FCE2D51B91D70EB1A122BD7FB53875F4BB08E3E966' : true,
- '80BCFC1145A7F287ABB29FD26F6FF09F2F9299D43DBFC2214B15BC346D1A7EE5' : true,
- '81041B22B3F6B997CF39557DA4E384FA0D8FFDC59F790CAC512D966297380E90' : true,
- '8117437E2D53CBAF96B03A772D719EA4783D32C4401D6C590BA9F941C52E54FF' : true,
- '8133AEBBA592FF513EB1EA61723A0CEF57A583CDE66794FA9DE2FC0A8F573B54' : true,
- '814328B3A40AA4F30950FF66E5DF4304428357F2C5AEA8C1E397723C751651C6' : true,
- '8179173BEEC9E5175036B790F2CED009213A8FF7D62CDED95DE000BE2B03B068' : true,
- '81978F89C67611A83F0BF14A51B0E10B80BE74B659A922AEB49A53E652030AAB' : true,
- '820CD9756E7EC92E85459F6F260007CD5EB8CEDCF0A7EDEF61271196CFB946E4' : true,
- '82362F61201C87FE00EC65651619A9328FD56E81135F03ACC3D4B366F7F772EB' : true,
- '82F25208D7357EE223C6715E802CD0F8D019E3004DEFD76A90BFAB18D2DF07CE' : true,
- '83596674713CAB21FE42B21B3B20A84E3B5FF47B8C7A53FA7A83E6A909780003' : true,
- '839596D68CDA901FE0D021E3F9AAA8D2163FD2B41F233D90159E656D7C7C534E' : true,
- '83FE18CEB7B7F20CF40E6B0CF5752E9C318C59479162649037981222CA9EFC5B' : true,
- '8429A60996289DE8FB13E507080F79DDC85415E7BD78B07AB9A20AE8CFEF692A' : true,
- '84A093B67AC79FA09CC2E40B54BE4027DE363B86EDF64B623BC346188B877ACF' : true,
- '84A8C623C4304D57CE03893ACBF4E51FC9975C58658B89127508E5C33BE992A7' : true,
- '8502DA6C4457ACBF635D8B3719166A351ACB8F2EAE0F9756EC1636B90CF6068C' : true,
- '852E459CB1D06493912BE1BC7073CC188379CD530C4C5F637029E31C5BF136C4' : true,
- '8540F78EF676D50879CFF30B3CAFCDCDB1287CE9472D0E39AD221AC0B049BF5C' : true,
- '8565CBCC3E3484929C4C2D7408530788E83FF8CE2B8502125176AA2F89D3C350' : true,
- '857EB3AE3D76F7A86260D7DF2583D65053D7DBC30558CF41078A51A841A15408' : true,
- '8627217D9525127A4161D0F1809492211C4105596A011CCD2F10968D3C3307CD' : true,
- '8632291EE6C74182159207F88A43B60EDD3715D9B23CB51B878C7DFA413AEBAC' : true,
- '867622FECA6ADC5366B8B7EB239748F8BD90435258DD86FD700ED1C7D8D5D48B' : true,
- '87505A19F4BF8A251C9F7EEC090BB5F91FF1FBF950EFCC6BFB9B513EBB62AEE9' : true,
- '87676E5A79E6109B7C7D671E94CD66D181B0D8A1FEFE73FB4485EDBFDA886D26' : true,
- '877B00258FBC7D02FB4ACEC3DF73B1F62E6507DEA0C8F12512EB10FAA3FB7F86' : true,
- '878F9A1345B5F3F76831E0AA2CEC43E51FD88455FD70FF0C671DDB8D8646BECF' : true,
- '8798A29F91634076CE7FFE713E075C4A9E231DB4113DEEFE4FF052C73E900069' : true,
- '88309337C547D8D229017278F74A626BAE5E796E3209733D4DB626300C8E7527' : true,
- '88E384C8D565A472AC171FE6EF8B5E7CE909CCF207710A6CD96FE4B110EB5267' : true,
- '891419933107B0EC0222BF502DB271240F352C825D2E32776842C40D13C2F8C1' : true,
- '89EE7B469928739A68120E926B0E08E296C0617FD7226EA8562EABB75C870891' : true,
- '8A0BD2A91793B98A002F45011E47B8B81C1F11CF4F10550B39861B709A22A8B0' : true,
- '8B1225A29F8C7203B6154A99814B028517B03B3D4B5A3E25239EC91650206C0D' : true,
- '8B263AB07FF99A5799F92D421AD4E1194C6137FCD96E6E27EC440EF4D1421788' : true,
- '8B41B56DC76B41CBEF93FD4F1F74525CF5B11723140CB81A7DD29AA3D95703BD' : true,
- '8B9A4D566E925173442D3DC26FFCE9C4F64EC63A10312AD5EE279BEADFD2538C' : true,
- '8BD1BB8CD29EBAEB36A58AFE2BA070CBB92EC003064B71AEC49E812E39C2874E' : true,
- '8BD3D0A64D73FCD8450DF0224F56F2B44F88D2B89B94EBBA3B5CB7E905DFCB74' : true,
- '8C4AA99089DE2B772FA47DE3D9901FE175AA49A46B9D056BD8211B53848276AF' : true,
- '8C742B891F670721F4F8E1D4DADEC74C9E9256E0C7D132578973823FE27C3A33' : true,
- '8CB5F19E2297781F0BE655C983127A501F5DF9C2414E34E6534F9109EEFC2110' : true,
- '8D0CF6F0B227BE9394DA0DADABAB81A44900D104A915645ABF030220F3AE187C' : true,
- '8D1399FC7382FB9F29574FADD5757DD9213F6A13D8A318ED9F60B9936F46C548' : true,
- '8DC7006EF66CF140FB5DF85CD6876D305F4CD69E49F42503E283FDFD978866AD' : true,
- '8E778C2C00AEB79E3C3BD5B071E2102021DA3E343A2F39E18B0F114682974D9C' : true,
- '8E795D5F2117043F8EBC55A114E169A460FBC05FDA6E32CA66684A3F8C9D9BAD' : true,
- '8E7B767A2628C52A105B12B793B74B95DD2A1FA5F1F0924675AD9DEBCF77186F' : true,
- '9055AB7512901D1134842CD2E96FA6A7ACD149ECB71088495948DB65D70C5377' : true,
- '90B043789B50C7E4AF14615A1DFA5F0794C919B38F8924BD109CD3A33FADE0AC' : true,
- '90C2F31A64343BA4CBEEAC90A43FCBDB46932CC21CC58095FB6D6CDA7B33F362' : true,
- '90C90EFA3BCA09204457ABBDB583EFE2FD5550877B0D61FC3CA6D4176DEC7916' : true,
- '90DBCC78B8F09351F0FFA7930D8CD187302A623703E9ED7F5F9DCCCA5644F32D' : true,
- '90E64A0F26C4DB9ADC398C779A5E526DC969AAFEDD0E93CC3D8E8409EE0A14E5' : true,
- '91045740421F423B4863813FDA01E15F2DBFFF49AD80C9B732B0921980734999' : true,
- '9122BF7F13DF3B05605A0F292B4C90830F29A3196A5156D97B76AA8507D3FEB2' : true,
- '912C3FC6899CD7AF6EB7639C9522EBF7E41B91DC47C167AAABB3695E61486538' : true,
- '91490F346E9CE34F77126105D7CB01AD7C58E0891B398289095613F1D1162F6C' : true,
- '9155BD4E0154F175C67770CD7B10B714A7AD41BA78252254DC0AF2DECEAADE32' : true,
- '918B02B75417DE289310E10FC77AF7041D1F380F02939D64F063776F121AD61E' : true,
- '924BC74FE59554AEA09046C36D47000CC6DF8D06D63D4C21E7A11D7B3FE6DD92' : true,
- '926B2CC74A86E6919298CF1B5D43A44E70214CC94C416E9DA227701666BBEE6C' : true,
- '9295435D6B38A570B2F537814147422BC442A7E39E1AA307550DDEF0AB93C3DC' : true,
- '92BF7C35E4A9C241A5D5C74AB7723187BE0D0AA544447BEC0EC3AC45BAC91A8D' : true,
- '92E91A15A0542407788FCD78EF9287724B2B25A27F703C9FBF2F5BEE709A68F3' : true,
- '92FC5C28899C60D64BE77DDC8D6F746182A5C5CAED5A3CA093E6A6FC8070B64B' : true,
- '9360AA88AB130BC33B6A59487B3C78262E210EE98A69A28758C47B7A9F1FEC10' : true,
- '93CF7CB34FFC1835E250AEB5503591EB1BDAA9377A48484F57AFE07006E966B4' : true,
- '93EA9238869ECEAB7081D1B925AC899BA4AEAF8C838D08B0583526D924EE5663' : true,
- '93FAF638AE932CA9041AD738D265C4A3A5E80ED99C8DCBF40717C0772AFE479A' : true,
- '944AFE4D1EF232D595CD97012A5F2B7FC3BB113B29E806516B5C749D947DE751' : true,
- '9452917F8C5F6F630305312187EA4858EC07A829CC74DAD74BA24EFE7F4F883D' : true,
- '948FEECECF512A9AD8200FB07E9330ACFF0D53D8C67068A9367225131840200B' : true,
- '94914F5DC57650D56AA2A25D6BEA5610F1E167C05274CBCC1A235FDF399B1C7E' : true,
- '94E94CDC7BF2592B3403AAC8ABDC98EEFE04298078B2FAF8DEC490B30309E542' : true,
- '94F858E57AC5AA1A13209E8D6DB28141036EDF3AE160BE93AE79A7CEB0CA33B9' : true,
- '95130BCD7669BD1B1F2FF94AF3096312509FE7FDC95A535D73F7883CAFB18DE5' : true,
- '95A4DD514D4B5F9B29118B3CE20FD8D4996F40424D7D64BF678A252262608C70' : true,
- '95A80082CCA2E52DFF16CA0E49B9FFE32F7ECB93770D20913605BBD47A2C65A6' : true,
- '95F4DD2172DA363A17D9A230EA3385F277EFC74D1044C6C6D7F78BCC95987E9B' : true,
- '960B5A0740783B428A6F0A86DD6BB5AB90A0FD0A43C237F941E64D8ED8417998' : true,
- '96325E2201BF96695DC1378E91147E8AD4ED26C7D65049436FCC365BDF45C75D' : true,
- '9663C730BE3E8838AF256662B79C2EEC10D7AB2595D9712EAD7BB4C8F5454837' : true,
- '9668363E5A4509F63E66C774CC7374E8D7654D0D63E833131665F65BB0116D90' : true,
- '9703B5D60B49A69534FA129729FE3176EA17E03C53BC90BF11280C050F776E73' : true,
- '970B1C70C6B3BEF76B0C23BC02D38D50DCC90C1383B4B45525691213F0439310' : true,
- '970D20E6919A2FACA4E42CDD5E94B6F26ABB2AC051278F10E746CFD897996249' : true,
- '976ECEBA965B747F498F8E4D26E3BABEFC48A6DD2645210168D7D82BB97C15C5' : true,
- '9787C483E07B0D1A0251A93D9F86495C6E39D25375C395E9939145D6C1E818D6' : true,
- '978A11502BA1AFF09010E88EA0735B0DF403F36294566EE8DB01CCD036525893' : true,
- '97B6986F21E5CA4BCB2B337C1B03AE1F2DE4B69D972E06DC882514831472E6B0' : true,
- '9874E435B3A12419DA88FE7AE98EEFA9DE47D098DC95AA6204B499202AB1A0CB' : true,
- '997FEE57A95C9A7D469F9055CE8547F9585677BBC655D67C05CC30D0AFAB35EF' : true,
- '99BD9F4C25AF74058C9E443467C9FBA76EB37661CBEF5A1E1244D8077200A250' : true,
- '99CBBF6AFBFF1BD3AC24402B5F4D3CBD7B6984131B6B0A6955AA3295B92891F0' : true,
- '99CC71A07B4304B5F9392B1D2AE627E33EC83F527206B3C1D0E6EDB41A93EC07' : true,
- '99D555755AF5BD6B75B7151D7B70EF10912AA159589F47DA50C4C3C623044666' : true,
- '99DDDA7A8D6D222C3111DDF5E85A45261AE9A7CAE2972567996A7729D0FD6E68' : true,
- '99E2609E0CDCFD36015CC659568D5C5B01CE4F7FA0C5671738D525FD8C518B44' : true,
- '99F02B4F32B9993CB7656021DA511B31A2944585B6B9C6DD5BC1F4A41681C5DD' : true,
- '9A01E5759613554A5FAEB7E8889F18EEE16568073CCEDEFA0485F01969535C43' : true,
- '9ADA51307C3FA225DB6F8E1FA3A218E477F775FA3D3DBE839232E3C385310902' : true,
- '9B128E182D224AE31F63FA92892A8A322AE42BF2D4723D62F5A6744973C82F6C' : true,
- '9B37ABC1012C67357E1B828C3F70EF7584EA128D20968DA23969B0BE939CB83B' : true,
- '9B80DD5C98B0F0A7AE343DBB896DBCE45DA52EB4E31BE057287A2A738D9CE3D6' : true,
- '9B8B430BCC7FFDD28FA85A1B18690D76DE8F18DE340656F63BD1472816A3C83E' : true,
- '9BAE8B30BBFA182D0BC3DCE5BADF78381980EE69F15884A0B93F291EA09A7EB9' : true,
- '9BEB9D4CF88A648ACC9CFFA48A687370D76E9F8188AB3BD638D9BFABD2D6AB24' : true,
- '9C052D1467B80EC3013D5641910680BFFE3616095B7F3FE61338C31A4E08A6A5' : true,
- '9C07BE98C75118CC9B3EAD57210BBADE61461FBE9215CBB340BBC5F04823FCE1' : true,
- '9C07E1B1AD0D395C4E1DE4CA35F84D0D09FB5FE48A22221A0CEA433D47C5CE39' : true,
- '9CFB4802809B54253FD655390678454D0AFFE4E5B0239AF6E4D5CFD90FEF6931' : true,
- '9D00AADBE77F1BB0DE4602AFBDFF9B202A7E4B696836AF7C5186F4A26ADB5157' : true,
- '9D10CB4207766E66BF3482393E13D3E3BB23AEC361470B6693597632FDAEB302' : true,
- '9D28BF964F6C820DD26D42FFC18689C1D2FD43F4C4DA9B35F11CEB8FA24F2073' : true,
- '9D98952A99B9FF1B2B7A86D21F50E311B3147CD9475830A856A4C63798B05630' : true,
- '9E1FEA6617DEB24D7E3DCCACDCE1C98337E581262A08D42EB3F912333E977D39' : true,
- '9E418F784C18C79930946ED9BC408D8E2F694BE1E3DBAE4BB20917F8E1B277A7' : true,
- '9E7B765C4D2E62EB9F8D0CA3126FDBC518E9AD62449A3BD25B849697A6898257' : true,
- '9EBA1808D31F89FD26CA580E6FD37B15D0261A807154FBAF11A7DA4B0C9A5E06' : true,
- '9EE2376792A6437F098A3DA7A2CA9AB54D9E9138051FB201CF84A91653C9C32B' : true,
- '9F1B06851A22B5D02399C278BEC2F6A977B918C4E924497066C8126CB8CEF0AD' : true,
- '9F31E8A729CDBA0C25E4D73181264776E6DC12F264ACDE58F047382B0326E463' : true,
- '9FB66B76C9B0AB6ED5DA3188A3DC6FCBC369AB273DCA99468C1EE4604A1E9E99' : true,
- '9FCBC4D11F68EA0BC0AD58F9E775C871625E869C9C6ED647E538EEB55BC2EDEF' : true,
- 'A009E34551A5963FBA989DEC7806F779CFB3BA34C5DD675A331BD55410F8EF33' : true,
- 'A024128989862D72CA20143420C8437F2E91D063A2D85E3B44C0E9F125DC7E59' : true,
- 'A039ECC540EAB00B2B41960B77171CB8B451230566C595F4631651A389C49A7F' : true,
- 'A0516DBC87026108B694F794B6C040585995F9C7BB00D08BF9F817D4F54069B6' : true,
- 'A08110BB7D0D5F694D791F82071E44B4C968D4990C73A402B25E0E0ACA5EA6E7' : true,
- 'A09F67FB2E70E4BAD3197A8CF7273531D0125CBD5BB05BE09E53CF582CA90E41' : true,
- 'A0B9ADCD27CD63E8842BAE80188453C09DEC27270C32748A4EC2508372AD36A5' : true,
- 'A10BD98A012649F9DD627093BEC6687C8954955E251534D016E4022BA66040A0' : true,
- 'A1359CA553460934748962D75921CFB51E3298EFD3FB1ECF5823BAF599E56136' : true,
- 'A13EAF82F0814BE5FA12BFB4D2FFBB75FC6375DF19E16B8490D140CFEB54AEE3' : true,
- 'A15BB49CD56693B9881AD43F6366FD2966AF816643BB107E8A249E07227F67EA' : true,
- 'A16AFE3B66D38B2B59EB35AE36A050AF2BEADCA90BF1C705B14E1E16A9469543' : true,
- 'A16BC03AE3E35E7C39B45D339A22BEB39CEC134D6B9CCA289E873F91A384DCBF' : true,
- 'A20571EB3FCEFA102CE99C087F9217BD081AAA8DBB618558D49EC7364AE2CA72' : true,
- 'A2178486A6B30A68CF5FE41C0968CB43B78E5E569B163027419B8B6C99AF0053' : true,
- 'A2263FF0D63F93183AF81B16964F4C8A3AB8A02E836CDFEE2CBE32C3E09EB486' : true,
- 'A277B893194AE7687EBBCFA344178B3578AA6228D2B430BBE2FC8D5EAEE43135' : true,
- 'A278FEDD023B6A1BE29917353E38320B8D8EBED9ADB0F88A8D00434D9B1A0851' : true,
- 'A2C85895E192F69BFF3BD6CE420B8C84A6FC87B3A999F84701F0230887DD3344' : true,
- 'A300C56C8CB909C4F6ABAD6A7FCACC5E621BE17D5209717912B3F3BF2F7D6CAF' : true,
- 'A3CDDDCD6C81AEFEC436E5ABF463775F26FB7050A51372C1AD3515626FABF6FF' : true,
- 'A3D68A1A93E75E8250BE2851500FADA3A3F3A0FB073197DF59ADCF9569C22B4D' : true,
- 'A3F3E71EAE7D9B913059174B39113F3EC7A119F514AF8364983A4A5548298427' : true,
- 'A41920689CEE150BF8CDA57D32B36D32985FE08AD4F0E52D150D1CE5C7096810' : true,
- 'A50296CC1D9C76EBA1C32829FA4D1674846913D61D2B27F3896CDFF8091D34F5' : true,
- 'A503E853F535F69CB099A247D5FA9D2F656CA1992C65C050CC5A36FF11DD47FB' : true,
- 'A57EE515604253DDBB4FFB6C1FEF243E6F680910808147AE52318A02699220FB' : true,
- 'A5DDC8B597C05D597C4B2FA0C2C4C39C7FD384E039D15BD205023A47FCD78CC0' : true,
- 'A5DF74566E059491858A87805B36E5060095F7963D35877692C2951C1D649E22' : true,
- 'A66BDA4B1FB0A132F118520414B7C2FE89EB9CAEA7E599743F0DDB2F5DA36294' : true,
- 'A686BB3EA8129BEA261D5B99357BDD2BC22DE15F0140AFA2D7CA3ADBCB64DE14' : true,
- 'A6BFA26366333691E7F2B419D0FD8536949D5F1A533D69CE8E64F7795CEFF72B' : true,
- 'A6CFE13A11E87665A1E66FE984B4F6F723CFBC22311FE89CDBEF719A62C91539' : true,
- 'A7BBF060D6455FAC1B40C3C14FDC8DCAB6B032A3C636F78EFF0035E035D2A289' : true,
- 'A85EC0692236ED65D5C36943B771F81FA013E93A887264C8870599C858456241' : true,
- 'A8FFD3DCAC35478A6187DB3E317D7A9BA8D9823BDDA70440B8FCD5D83F49B836' : true,
- 'A905FD2FCB5494E9126BFD0372D166EA641B4FB9E0162E56FC70085392036974' : true,
- 'A9913780644EF0A55C80B8BBFFA76A7453DF7F9FC04E9BB09FB9434240D03961' : true,
- 'A9C3D776062E86182D7BFAD9005B716E1189EBD051D477078341EBA83F602DC7' : true,
- 'A9DC93714FC4909043621557714D90CD0FCEC20AB7B8D4D96C2A5CC357599837' : true,
- 'AA33D12B28CCA921C5DAB6E8055B0F162ED6B6B9F92D85F93749619165B1D3A2' : true,
- 'AAA0B610FC8267716C7703C164E8E8A47B0DB68F821405F83AFBF5F4D7BB5219' : true,
- 'AB21EC1EF6132DBC69161985F4364C39C1F3F4F2F26C920EAF9741C5057CA6C9' : true,
- 'ABE32C06C939CB27C5B7744697B92399AB712132074139162FD988DD108C1061' : true,
- 'AC1199A88C3BB6564557B6BA422B776E8032D9457EE1099D0BD3E53DC44F73F5' : true,
- 'AC3DBED034C44698984D68EA44B0B3D74C0DE3B7615C3240A71C1709958DC3BF' : true,
- 'AC523FD08C897CD327DE0751BB2C5DD6AFF7A6948D7561478E300AE758F9BE77' : true,
- 'AC72106DE06D4C1A17E641546E6DC5C53A1F48FCED34B9BD09368429F828CD70' : true,
- 'ACA129E9ABBBC9473A45F1F0688C8FB4BB9E7B9965D8BA382DB371575A2100FC' : true,
- 'ACAB21C4AB1A6C2220A5B2AEA4C51C7F409BD8B48B32158AB4EC7503991FD191' : true,
- 'AD38118018119E7607C26A4009331772532E32D5514CB6099FFD0AA2DBC55912' : true,
- 'AD56E6AD659C808689220F5959DECE86001E37EEB88F452E2111BBAD634B4AFC' : true,
- 'AD678FA6695065389D8B0C4E8995AE0A598A6E6BFA5CE1E016725D396651419B' : true,
- 'ADEE2E350B52CF5BF6A5E4670B0F6BDA48C23D331F0E9B18FD3EB4A45E503FC1' : true,
- 'AE3359DA4CEE82D978C3C7B4954AD6E0A80E53D1CEDB3A6262996F9CA0B77D83' : true,
- 'AE387E179AFCB2F919BA3BD839B2350E9EF48A03A5B5AAC0B87517502456F051' : true,
- 'AE7D10798CDAEF50F7599FB03394DE7DED48C3054CE987479DB018E789E3718C' : true,
- 'AEA0E3A8AC6F70B681BDEFB28D9F156116F80230149D8E5C9DE76E9062EC015B' : true,
- 'AEDE30ABFD76FFEFF77B437F8862FF677913239CB0DE0360FF93EDA6B515F731' : true,
- 'AF6F25BC29AA257FB80826165B3AA5BECB2CEF777817998D0619544F02FAF897' : true,
- 'AFE6418D301202651844A84CC8B19A56C479D627DE922366E532643D995470A9' : true,
- 'B00A011214BDCCCAEED615B5B662C3A704ADF8C619C1538BC7D98BAC4D39E33A' : true,
- 'B03FB37D54CC8E27E281D02BF684E553FFA3CECB66583C141A9C99B22E1D2BB7' : true,
- 'B05633EABB92254800392A31FA1627F077F2C91B29D82CF1EB1D507EC7D44038' : true,
- 'B0A3CC901A3D58371289521F9345843F7ADEA438660729BE9B7B520DDB0BB965' : true,
- 'B145A895F26B09540185848A600F7F58C0B03740C17B61A1B43BDC652740B80B' : true,
- 'B17B2A39EF0B4A01171DCA730D2AA7214B570F692ED75B439B84B1EFE528F7D8' : true,
- 'B19BEC326EB5F611BA8CE10410932955840A0818BFD2C1C690BC1C06C63A686F' : true,
- 'B1B0AFC6B60DF8FFA9CC34F7F7A5162E496F4E12FAF6886BD0B20A1DEE246028' : true,
- 'B1B58B7EEBC1947CB840FC4C2713D0DDB23DEBC75E58DB15610AB4EA9A1DE1C3' : true,
- 'B1D9B3EE2512A48A8E703E2D2263EEB4B0A3D24963F5165DB3719CD4750D2986' : true,
- 'B2618AD6AE584F2CDCEC050ECB0FCE8E5BF0E9E978AFE692E4A1BCB8B7D03044' : true,
- 'B29A6DB4686379EB52C1D8F249A74FA55A1DD9F2162B0B3E0683912C1E942437' : true,
- 'B2AA11D7E16E0A583868904825CE9F856AB1620E0EEE95218985C6817DCAF38B' : true,
- 'B2CB5A2A69339A575A4198D5B76822E6A0F90871A45C8348F2A060CEE67EC98D' : true,
- 'B31C07387E56AA457F17CA3D3A4C485683253CF387E6DCE37469B6A8E51CBF29' : true,
- 'B33419AF991DF06128CC6A1EF6CAD190F68C1903CFB16B5346D0653C9C5139CA' : true,
- 'B36285188019C24567BCD0F0FD9C0AFC1EDBC6494F401A6214496118519C8AEE' : true,
- 'B38307BF753F924511125E6FE9542C79A8541FCC780FF6905BA237A4C7FCBB13' : true,
- 'B394D63292D829C96CB346802B997C42285D8DB94292166AB984F5264BBF8C96' : true,
- 'B3B278DD571DDC491FD26D3B0942C78EC4A1AE3D9A5D07C1E317CE901E6B8979' : true,
- 'B40348577B02967F8EA86C645C6FFE8746DBE860F8D04B1584E9365F85115FCC' : true,
- 'B43A735BA55D1C7D255F8E14DE97ED2FC89DEEF492BF38E871556FE7FF1712E4' : true,
- 'B478303C0A26FF8A262C29BA3A9683FFC4CF075735E637F6A958640C5EC33669' : true,
- 'B50AADEEA7AEA0CC344AFC4BDC81C75292E1F52374DC4E405CA9376CBA5594BF' : true,
- 'B54B1776D34DF92E8E090FBF0C927D9852E6F18F98E6F306AE0369229A4AE2E6' : true,
- 'B5826AF547B2C4FBB118246774B8C027E7E18255F864395300F07B03E43571CE' : true,
- 'B5F50267B0042B154B8529FCD98F5E01C986F7D23628B49B63011A3C90398CEC' : true,
- 'B60986E6211152854AE63CBF6925EEEAB8FE0722F24FF6BDC2960FBB5073CC40' : true,
- 'B75601AB7AE44FB2C77FF1E9C6FBC4B4D9ECB548009BF40C46CDDBBA8C0FE493' : true,
- 'B76A1B985E6C2B027BBD67B29109789DC4E2EF90CC65315E164B88ECDD64FD7E' : true,
- 'B84E356014F669D463F72970212816B4F70CEADA86B8FC08F71EB4B9975404AC' : true,
- 'B8560406CEDD4A4721BBEA6B155D62C62BD3CB0B379F6D6420A464DCD5973FEC' : true,
- 'B87A6FAC22CF54752FF918799C09D2D582F3621A35F1AA5751AB86E5A56EEBBA' : true,
- 'B8D24CA4AD6AB12946ABF8793A7F38565A05866EB8364E746D498F2600782857' : true,
- 'B8D51C21B0EC70C695421685C76E543D87A7D1345BA395CB4C5D0E14EDA07A91' : true,
- 'B9891F4ABEA7FE5802FA2C07E596905422C39B16E36612B37FFABB81F49A0BCA' : true,
- 'B9B8984BD73419077A912955DEF673CCB572907E2C494256D627DCCAF86226A0' : true,
- 'B9EC2202B3D25F6C2CFEEC96ECB1967C1171197A121F6278682988D68C9CCB6B' : true,
- 'BA4C966939F1680966D9B9BC85E5E7B011F51BCF1F41FB01142D603F9A45EE3D' : true,
- 'BA5B818BCA65AC78BB2F0B33879F721058892D0F5260266ABAD93045D4A3E1E8' : true,
- 'BA74E086962745CB5EDA606276E3FCE2220C2EDEF5824FC5D67EBFD1A94A0685' : true,
- 'BA7828CB29D5F67285C2E1A6F2F5982FDD674E57609970BF9540802335E9D39C' : true,
- 'BACEEA64658C6E86E126219A40FCBEE7B3A0C7687503114E59B3EF28E0C06A19' : true,
- 'BB6970E212CBF8325822B968387F263BA8D6CC479F448CF712381A36C92965DB' : true,
- 'BB998A2EEB4ED3C4251EB69296AE91EAE7360B0CBAF690FD250C38A710ACB38A' : true,
- 'BBABDCCD647C247047D39ECC57EECD8174CA5A8CF00349B1DAA1DEE75AEB84E9' : true,
- 'BC7FCB90CF245804DAF432637A53FDEF6B5F88BAF87EB23245AF20C668CA74EA' : true,
- 'BC86367AF49A238438C89460780C94DE2C1E49021437B3DFC590A63F46332888' : true,
- 'BCEAEC2D8B8C18B58BD320D77850EC38285F419ACA8A9E939DAE7DFDF26696D0' : true,
- 'BCF2EE107D285BD0BCB864C39BEB0171DD94657D761DB1EED17DA1D5F8E7D576' : true,
- 'BD2B6A9DA30AAB3D39906793DB2C9C238C7260EC5B8835CCF8D9C58558B4A945' : true,
- 'BD3379DFECF46E7BF128D0C1BA77D7179ADFAEF6BE7259A47E026ADB7C91975E' : true,
- 'BE6E70EB169369668EF9523107E95867B1B9C0320C750180303720B35CF09798' : true,
- 'BEA63BBA0D4C8E462D0FE2722B9ECC23A8E6E89905E19C15362BC33458D47CFA' : true,
- 'BEA7ED0A4C77505CFF6FAEA9F1B399C41324C52804D35EE4D9076F726C8D2C4E' : true,
- 'BEEA29655F2F0DE938C7460012B5265BDF623C09F11529CDC33A4B6BEAF96616' : true,
- 'BEEB38B82A906102D7CD92E5FD98661DAB5D3C9B7DCA9DE3533565EA9607C5EA' : true,
- 'BF46BAD48562C88CA9B110FD99D88DF43EAB728810C78F12A062C292876612B6' : true,
- 'C0144D1B67F2AB403DD08B73E5F1772F050E9713D8F2FD98BE999FCEE51D2792' : true,
- 'C096DD5D0925878000E9E48DA0C004D04984A98194E4D4E5F12D86D4C1D477D8' : true,
- 'C0AB8B4E884A20E51AB9325567115F185D18654803E08E2C2C6A4632D7ACC2D0' : true,
- 'C0F030365B0F33FE3624CCAE4EB7A81BC7B9127966953E82DEA179DD1AE66458' : true,
- 'C1529D3D2B287392E5CFF924DE47B904B2BE179468929FB61D10D5B8F02FC8CD' : true,
- 'C18C15016390F78742A45137409C8BEAC8A0475E39A444448D3ACE0499546462' : true,
- 'C1B3EE2242FA7C7A57EE2F60C7AF3A514906864C2785544E30A013212ADA059B' : true,
- 'C1E47B7AE65AB520DC18A03F063101FD14AB70E868F16DB2C42ECCBEEEE5A6D9' : true,
- 'C1EB50953EE0D16410A5DDFD97F5C05060B39F2902807F139EF6B015D0C66729' : true,
- 'C2118D84846AAB7DE521B0379672EC639CFD745D82E3D504EF68CA723725C5F6' : true,
- 'C24539CAB91F915751D6D0DC8B96C0EDEC32C8244F388DBBED97C03080227B9D' : true,
- 'C2C9A263D5F88D7064870FD13AB8633A10CD97E8281F0ECC49C2C1C3F54327A6' : true,
- 'C2EC6DD4A6B571933F5DE0F94508D629FAA849B1A31A8AB979DAAECFED2AD253' : true,
- 'C2F50D73D45CFC1B6EED268BF85650F9FC709E3E60900A52F8FFB32B955BF0E8' : true,
- 'C3045E5B6AF9BF030A6A7113CD3303D23962DEB88E15EA62BA53D0523362AC26' : true,
- 'C3107C690BA5007E11C076B2FEB58BF88E67D1ADA15DF1B8280D226177AB6A13' : true,
- 'C33DB47CE54F64CE33394E20A96D122EFB6F8DAB2584CF26120D8A8C5C380245' : true,
- 'C33FE55FBE5E1E767E0FA9FE89D0B287AD7B3A41E1117461BCE96A681030C9AE' : true,
- 'C34069193CBFC866E03EB745416B50B25BBCAA00B5DE50D1D62D3365749CEDE4' : true,
- 'C34CDEA10E72069587970C7033095864B6F069B6637C6263A1E7A7A5187923BB' : true,
- 'C35CD8ADD8FF80A9CEFC31D3E0DB613D725FDB0BE52B9ECBB730E970A59E7E98' : true,
- 'C3DCE474FB44F22E6497A1FCE2C45DEE167853134C6F1C21C13F1707B0BC7FBC' : true,
- 'C3E16A5C58334D5CF450AD26F45BA93651A8FA036170B7D6A76DDFA0EB52EC07' : true,
- 'C41706089A520406BBBDFB4ECABC4FAC33920CCEE6731CD703B502612E316E54' : true,
- 'C436047329DDEC73634D393BA82EF0DAED888279608EEC33426BC825259BB389' : true,
- 'C4C5E3161080AAEAF488DD97BF7C5BD5527EC28370BB83EEE9C979F03638145E' : true,
- 'C4D6F5EE0EF714732BA04504333775AA8535825F8BCE4DF3FB6B44C3633B8BF7' : true,
- 'C58563CE93B0DF900E0681376244F32977F577D130320226D3BD9CF82863402E' : true,
- 'C5C58D7B5A145FD684B3A5A6D12468617BE9DF323D37015420BAEFAFC086EBA1' : true,
- 'C5FCA59FE803B0F5B7BDD9387C65A1A5B9CDC8D0C76B79C2954CB769506DD1F7' : true,
- 'C62633FCB5854BC091CDEDB3B7B6C6FD8C1403DC0E2ABE789DEB717F724BB8DE' : true,
- 'C689F3B9238DB156A7D563E76DF45FCA607B4B5F6CD62BDDC1AD1AC720E67952' : true,
- 'C6F63ACDAA452E008A1DCC711CAD36D00AFE55F958F2CC82A139BB53E27D11EB' : true,
- 'C6F893D20A417841D7584A029E6E6A2A44B044D858ADFBAD4B11F35B7199309A' : true,
- 'C700D31BDB3076006337BC249FF7CDFDFBB8A3677F206CB475E7807FE6FBE286' : true,
- 'C7056A5FFEA8A4751271C17CAA9EF3BBDB7142A08ACA673522EDFD9AD18AFE66' : true,
- 'C71294A0124420512711C918C36F77192D2B45CDF8C99824B4BC862D0B31C3B0' : true,
- 'C7C3A02A4A1C71C54C37BE7889E60467E9C6A48A64FDC85289598188F4D2D839' : true,
- 'C80206FCE84D0B5CE5844251C567526E26969DB81D52F15734C69DC4078472DE' : true,
- 'C80317E42E46F8B391A27CE8A30DB43B8982BE7350749D6530131711D4CCB28A' : true,
- 'C936FEC68191D7AF75334834906C8CFB18F91FD53BDE7C2F0B2ACF8100ED3855' : true,
- 'C959CD326D9F3AA21FDEDD42A5AF0B7A2FAA5E9B92907654F29F1ACDC691DBE6' : true,
- 'C97F815DB2FE0895632311CBE80C5A8F99A025201CDD3F70939D5C1E1BADC94C' : true,
- 'C9A9B118F63E40C8F5F73E89E580626EDEE028DF8ABE5D3374CDA69459207CDB' : true,
- 'CA46DA728E76E97AD214DBB6AC9CB1EA2DC87202C88C35E87CE574FC1F2E0438' : true,
- 'CA529AC5A7489D57CEC2D6BA5881213C5A163409BD6946558DACFE899A977009' : true,
- 'CAAF21212D1AFB10BA4844150A49541967BC1C9879801E43064429A632DFD941' : true,
- 'CB133229997821E418467CC3A72F77A7B9E31CC62B41032D6A82577B7AF1C6A2' : true,
- 'CC2E477D4A2640BCF70F232C040954DFC4878E536A4B03E788173E673A2D31FD' : true,
- 'CC73DEDCFB8EC2BD78A979BAA47FB8D1697C38BD286E0F4A716619939D6F495F' : true,
- 'CC9DE9ACA31709D03188E3FE36B902288F56A3AD1510AAEBCE0881A363CB8B66' : true,
- 'CCD4C850054C2E89024A8E78E337518B9137528B9190B9417E182E6CFA0180B9' : true,
- 'CCDD0AD541F322CED13EB7E00654FD567B39EAC71E146760EBC9D5C736329993' : true,
- 'CD2F8D3520116EC6F56491855CA3F0794A0DA8AECFAC5022026E7DD844F35047' : true,
- 'CD35C7ABA0839C0D865DEA4C1DB624F709E5EA041A68DB55842E2C189F38BAC1' : true,
- 'CD77980905D47EE1EF9C53EE9682FF6AA8ADC7F04CD17CC06F9D7CA2EC8E2175' : true,
- 'CDEAE34CDFC82DA38149F11C995A2971D0564D619F13C5867FAD21C749BB4E3A' : true,
- 'CE77D1F5ED11C8CA34DA5DBB0E999CAB0469D215552BCAE775B1AE6ED072F01B' : true,
- 'CEACC5425237EED1F7736E13A92AE0A70A94F15EB08B564D0CDEA3EB042D1BF2' : true,
- 'CEB1ADB71C3CBA6FD012A778BF70CC93BEAB621B4DA4A464934C5440868E58C7' : true,
- 'CF16F6A03813485A44746BAC08788ECF1BDDA70E60A03EA6E8598798CD2DB75A' : true,
- 'CF19B1004488D5D9C882E2C4D0A47789618E0BCD6475F6D9C6B5591C2BF333C9' : true,
- 'CF2A79710CABB0EB440EE621B37934C249C50612DB4FF926EDDE5B8A30686BED' : true,
- 'CF41907FD2550A0AAFF0E09AF82423DCFDFE470F225A003D607C19F709A591CC' : true,
- 'CFDC25BD3A406CC65DF19685CB300D33E13AB2F2064BE7071ECA3A6F76AA3215' : true,
- 'D03547E78303C9FBD70A38BEAFE87AA9F266A92275D818D1A8758DCB9D08DAE0' : true,
- 'D103ECB2B7F74BEFD44109C1CA30EA92D9016C0F9347F1DF3E5467C3AC20221B' : true,
- 'D182B5FCA42FF996EFC43E57CA3FA6B6723F9BEBBEE8E718BB017C719FA10275' : true,
- 'D27084DE959A5900DF81A94F79A92293B11E0CBAC666D43784A28ED4C0D42F00' : true,
- 'D3676F00560CED41E28BE263ADFC10B602DEA2026CAD2C7E77E9AA585E085DFA' : true,
- 'D368841DDBBC15C7CDA82090EB95511736C97FDE82BA9AF5F95114653EB5234A' : true,
- 'D3946220D26CD68E238632CD7AD63FD62669D9F60770C62788747C7552AEFC8B' : true,
- 'D39BD0C1656F99A47DA9D2957E2D7A49FC9EDD92CC6BE729C29299ECECFC42E7' : true,
- 'D3A74C371854206A5756470274FB16A3D7280E959FF93F265650A3002030B78D' : true,
- 'D3ED8391B1F4FB1151D105C9E7EB6D66B0A588D9A8BF7AC93CF38DA44B99979B' : true,
- 'D44DF644880E56596405F1364D8C3E5301F05ACBF82FD66B671D895288C75360' : true,
- 'D462D57028E10CB7A7C87ADA83EBD7FE9B4DA384D2971BD7A708816C4EA8711F' : true,
- 'D46D29E4176A93E3DCD80BA5861A87E84FB7866B784488A977E7E4E4076DD2BD' : true,
- 'D4CB5B06AF9ABEBF5639377BF36B289CA95A3205A84537D36B4506DF51430669' : true,
- 'D4D6C947FDD2599121B7F10FF6F1892CA98D3E07D6B34D29BB74B24AC34EEB3B' : true,
- 'D53A4E1FB44B5C282566F8AC28D68A76E12B76EFEF719AED86F11D15BCE9A0B5' : true,
- 'D5B0165C0F4C8F14A2E0C2310AE4A51B6EA08D2FD9790DFD49BCF3FD78AD5198' : true,
- 'D5D5E4B278DB8BEE14CB48FEB3172C48DB575E96730449A30A35EE589E252C2E' : true,
- 'D652650A3DE79A5C0DFEC1925007DA094925533D13F14094722A80F936FC9A8B' : true,
- 'D7198C80471105D95103DB11B6BD2F6CDC8E7A7E67DB8329F1FA75C5F5D5E8CE' : true,
- 'D76E8E1051EE6E7F951F42F6E342112B30DB14169B5081E55D280CE44BDF85BF' : true,
- 'D844DEE1597B654C0E645C787DB52F6EA5C855C6C35626BD7787E71E873CAF8F' : true,
- 'D89779E2C6899073B88547C48EB71C93D56B021E33D3BA390255E6D104B4D349' : true,
- 'D8B59B698E3702C610DE464F210086F776442C9F21698AF779BC04BC5F3D09E7' : true,
- 'D8B6CC82BEA51A5BDEBA5B3B046B0D1965528CCF70B8F7D27E57A99CDD87D226' : true,
- 'D8B8F53177C1E04D93746C8460A7296707654094814772BFAD31F79C03802240' : true,
- 'D8EB3A26B3132739539EEF2B7E3EB472578112D5D8AE470B0F2CD4EE99250ADC' : true,
- 'D904379306D37F489337D71508E1CA3FE9FDC8188286D24265D3437BC069EA15' : true,
- 'D942963C31649F76D7F96313922A7B163B631AF72FF9962767D6E4DB84026B62' : true,
- 'D97CF453986570998A9B529709574C7A2EC1E7D43CC42A659A5CD908CA3CED89' : true,
- 'D97D72D7A8F796A1A27E0DA0A08C075DE294F373E2480A76EB9D93F89EC58B2D' : true,
- 'D9D5FFCAD69421840F7A7159B3F8641F050A53EBF2B91D909C2CD7455FCC5C7D' : true,
- 'D9DD6D21944C5623DA765567EF61919B1F6BF2B1E8E79137B5BD48F4AF75C405' : true,
- 'DA0D9391992825F7A10312F7E85568086F18DB901838A303E721E58239158EA0' : true,
- 'DA5110BB1526CBA9E86FBC66B91A8A2880E85440765C9208A1FF4D3DF2E8AD65' : true,
- 'DA675CC41023A78B1E4B2DB4B5E43B0BB6BAD64327E0A1B70C9350FFDEBABB4B' : true,
- 'DAA1D178C143A35B8A1F394E17F2551770019947EDDA18E8FAAB45F643C1E443' : true,
- 'DAA9CED5BA817CED9942DB9CFAD0210505937A9DB2214298E0BEB831BFC8A31B' : true,
- 'DAF6B7470355545FF9FF41E11016056CBD9537558F503D7F9C049C8ACC446112' : true,
- 'DBBF2D4498ED91C779C81FED5E96F9B5210CE86EA463712268BCAF098FE2E285' : true,
- 'DC04E4E5B03D875F796835B599AE226470B9ACDAF0DC79AB2F766B77AC59F3E5' : true,
- 'DC7FCD5741DC383619A2CFFC85E1CB100CA9E20FC499E37FBD8CF954559F1421' : true,
- 'DCA17501D12F98C84EE99DF4BC8EFC1FFFA9B65E2BC5A92B20C9296EC61C96CA' : true,
- 'DCFF47F0DCA2B78BCEC9D6F35E84BAD6803DEC85A888028C9DBA44A9B69C5BC2' : true,
- 'DD55F1E1BEBA4CF9F582CBEEF4A35E1C1DE36750A3403489C1C98955FCE9950E' : true,
- 'DD64C7D9E60AE6748B449ACE8CF9C21B5551BC6427EDDCE1D77B7C7720FD21E4' : true,
- 'DD69E7139111F9129165D58471784F634EA8C13B76D4AB65D43BF18CD5864004' : true,
- 'DD98420C927FBBBB0F2D1FFFFF359416FB7B352770A6550E3D68BA33CC23ED57' : true,
- 'DDD0BC82A32A5341EFA53746F39B0D88C668E0483D705BDE607F071FBE937062' : true,
- 'DDDEDD50F49CDC46A4F576F1C571CCCF6F32F2DA30CE9BE228DAD3599BBC34DE' : true,
- 'DDF758753965C89E747CA6799902A045B22F473F654CEDB51B3C0CA0EA01BB51' : true,
- 'DE327172F9BCDA3DBD4E6EEFC759F3EE88FBC635BAD34D76E360541420CDC8BC' : true,
- 'DE411E4537133A4D436E0D730AE192277792AA1D0584E60B1CECCDC736F53407' : true,
- 'DEA472B5BED8DA9F6F5539F8DC66FB5340010F7316FB28055E14EA76E03BBE41' : true,
- 'DEC7DC8AB8ED70C1D2FB2875F0F99FA99FB53E6BED70CD47B244ABA2104DA5AD' : true,
- 'DEEB105F77ED36DAECBE1AEC896736B7925F56C86BA06FC1A43AD5F35E9E914E' : true,
- 'DEF20D4F0C0D98AE8C9786C364182CCD8990A834C96C1F0989AAE9ECAF33720F' : true,
- 'DF03F73A71A568E6A05A7E9FCE240EC0254EE86E24790D6DFCCDC71A5763C27C' : true,
- 'DF0525A7807F3709BAD2DEC2ECC569A1D473F97F0C382C932DF726C79926DA0E' : true,
- 'DFD291C1074E972A9FE6261BE6FFDDA85472A8AA7F543C867F53B7D8946478DB' : true,
- 'DFE3CB9DB34E3CDE7E6B641C90D116F906DB0C916C5B437308CA502C756C6331' : true,
- 'E09CD94E0A501BB4D25D5BBB02CCAE95A24D0BAF8CABADEC9D55A74B7D2C5BD8' : true,
- 'E0D373C9758BB237C4E5C616A072F192E0D11EC0E48ECE22A326ACE69E3CF771' : true,
- 'E0D7FA4702E25E7F51F94DD0D12C39A352DF48DE10A5249AE2687CBC15020CB3' : true,
- 'E0E11F4703CA92B8F0837DDE262F347B3EE57238914F7AC07BBF332636B4CCD7' : true,
- 'E0E75FCABD59C24DDEF932396FC86801979D2DD3BE05BE7CA211B4661A5897B7' : true,
- 'E1595A9AA15B24610100AEB57ED619460CA1D976B769B856398EADA5A01F952B' : true,
- 'E1DBBD569E797BC58D21935695EB6EF34DAD0C82FCBB4F4A1C5E644EF161F190' : true,
- 'E22F7A2669FF7B9F9C89B3BB1B0A5FA485C26A697CF2418869394A0710AA5EAF' : true,
- 'E246BBDD2C2C4AE987C41CE0185AB7669DE3F9C9ACB7453145234A9CD143A1E8' : true,
- 'E297439120E6E2701069440EC321BA98A5CFF9EA3F407FF16185671E466B87F0' : true,
- 'E2D55EAADCF87AD1BD50E53B7168CCC08561F0172004C1EC4DC13D8166D1A313' : true,
- 'E321AD541727DAEC0801A774095546FDD0642CDB597A7AD431C6BFA5C7F447E1' : true,
- 'E32ECC9EEA662085C10C003A5C910D77A6DCC1E99BD187576EFDD1BFA84591C4' : true,
- 'E335D8CABE2F4940CA80CA10A6BE55A138A163E1C56C281165FBA3FA601C61A9' : true,
- 'E37314E72C7304D32336940ABB576DBD7BE3190CD9A5E8F87413CEEB7579D502' : true,
- 'E381DF6792973BFE322D23C6CF2A6C24A4ECFC77F43F03D2FC04EE39FAD7C683' : true,
- 'E4866B48A6E45C4B11326D3FC5409D4AC595DB81D59075FF1AF4815ADD15B54A' : true,
- 'E4C5A51B3B2DCD2472B1FF0693DB5E0FD6FD2F3F3A6CE0164AC1521B9EAF38D4' : true,
- 'E549DACF42BED70415999CB677AD037F972087B39E6B2C20BBF2E3473AC8BB49' : true,
- 'E586C4E5A9238BD1734FF71658C8054309968EB94188660D70EA0E2511F49D7C' : true,
- 'E5F65E0B9FA619FB212BA4DE4AD7166DF37C0690AF8AAF30DD68E2B53802DACB' : true,
- 'E5FA7806C1E6122EE6F7B008711DAF068DC6FDE60B2A5877DDEECA8A23F96586' : true,
- 'E600D8689E99AEA0C40D363CD164494D463AAF3763797D6F9FD8EB1EFB9DFBA4' : true,
- 'E647F0EC7153DFB3D17ED1F82ED36B4D21B5EBA39940BDD88B41AEE7620D90D8' : true,
- 'E66C27C6E02A21FB8D6CEF881E5BBDCEBF6CA94DE15E22BA1C80A7F2DDDFCB99' : true,
- 'E696A05D698717888181DFB7B903B380E42454076BA429EC8AB0FB58206AB166' : true,
- 'E7D6E1EE5088D460A94D5E16D305D1F575BF0895237E4F79A483538CB12903FC' : true,
- 'E7EB8B4D5DE598BED2B9C817AB7D42F1EC99F16640B8C673AF2152D42F5344C4' : true,
- 'E80145830C085D838E07095A18AC3178396F8D552B3D77A6E15B2E48A6C00717' : true,
- 'E853498E9A3091B0AF8641A0B62970AB613371CA3631D1C97D70F79042BB00D0' : true,
- 'E855A1B90A017AC7A8C20639AA316048160973669FD0058C9237B5FED85F34B7' : true,
- 'E8CEBFAFE4D31D8F110DF0D61793BFC32B10492A2840D7DF99922E78000030BF' : true,
- 'E928047ACF80352DE21C59864D3DD5C34E7325E52821D7D30A0F112677EB660F' : true,
- 'E98FAFA6B8EE0C53407805C761D80684215776CE5F4085CCAC91B876E92B3307' : true,
- 'E9C07A0196B2C73344FAFBE8488F0B4E048FC4112B8EEDDDF74F949340255E44' : true,
- 'E9CFA5E0C69E623B15F54AF73644E6FD5B0F86F24826F378F7C903D50A1AAA28' : true,
- 'EA028E45F54FEFEE8D14D2E848A20950C7CB1F8532D70D01646A5B93497AC1C5' : true,
- 'EA7AD4DE86B47BEC726BFE21172676F92E0C0BB86888417916CB3123086E84A1' : true,
- 'EACDBC29504EE8E44559D3FCF154E1CF632CBBB4065734CB5C6C1B16D42352B5' : true,
- 'EB479C3872B58B510211798256705A8C59D2602125CF4B53219AA9CCFB175E1F' : true,
- 'EB59182D7ACE742ED7D7AEE751763EF9F09EDF68D1DDF765E80BE40A53AD0E10' : true,
- 'EB6B1F16F70E3080F38E7ADDC7E3AB69164ECD068F5E8F15931575FDD62B0A64' : true,
- 'EB6D34EFBF063DCACDFB823734B9788D9FB5E22A48372B7EA8AAFED8046652E1' : true,
- 'EB907252FF62CCF97B16796B9106686C4260E682878EFCA7721D37D6B8C83319' : true,
- 'EC521C3B04AF772AF812B63555A7C24BDA282C06EC619E1766CC346780EC6E04' : true,
- 'EC9E1FA91BBEA7C9B4EE73E8DD1CDDB8A2038E1CF61CA11A41A9372B634CF37C' : true,
- 'ED0908FC61ADB97F583F8CBC9629E4AB369B6141A16B682E8F9076826A373E6D' : true,
- 'ED4BB615EA54DAB9EDC94BA434DC0B194FA5EB91BCA7E1B05CA9C21ACE3E4A43' : true,
- 'ED4D737C0BBE1DC2CD305D8A912D1C1D923C1C4325401D66349541F754233B53' : true,
- 'EE3B7480B691828ABEBECA3DB0EE96619F01E886FC959942F6AB7EB3D263A237' : true,
- 'EE49B2B0E38A16743525D6CEE70CB71038D43094BC71BE2EEE861E4602B6D891' : true,
- 'EEEAC8F1C70F20FDF05D777140A4A5F72AA9FEABFA9699F9B0F5120147A26486' : true,
- 'EF0EE2FBF54D87B6AC02AEB88050155A27E1A60A5A8C4AC46FF24B529D912B04' : true,
- 'F094E7890A2B177AB1517C2EAA8D1DF0F69DB94633C4A510BC02CA8D71B36403' : true,
- 'F09ECA7EC8BF7B582C42AEB4A0733A0D40FDFD28CEA2C70DA1BBCF1FF85E29FF' : true,
- 'F0BF33EE5C1D9A83A7BBDCDE95426DCD201D1C071CF1FB58CA4FE3776996A99F' : true,
- 'F0EDB0C989C20672BAFC51FA2710F3841BA5793BE379FC212D7ACC3AD4743455' : true,
- 'F1147FBF98A54E12693453EC571CE8B86C05D7FDF3995D775DFF135E10B9C520' : true,
- 'F1161FFAB7AD2257CC0ACA0147C47FE17DAA44BA9E998AD59E063871EF95C8C1' : true,
- 'F15E12419E936A907F201FD9D6D3DE2E01E5F8465AC4D8EDDCE1E58262183223' : true,
- 'F1B73AEECC6698895051EE69179C3897A1DC398C2D72DDD720A29F9C9520457C' : true,
- 'F1EC4F6CADD8B97B55AEF8AFDF69AA2261D10B641023C4F8CC895E5F26301D3E' : true,
- 'F22F96FB88C9D96104167D95B3AD8B5888C92680B0AD13DC785FD5AD3E19EDB7' : true,
- 'F234FBFD807A0302CBF855175C73ABF27C94915B95135E3146C0ED73662DE3F5' : true,
- 'F2E97D43FC9356095F97C4B20A626D620D8C55230C07CD7BBF7F99257CD6A5BC' : true,
- 'F2F02451FAEE938066E557577740D09ABE2A499CCF08504BF3BB1633EBAAF559' : true,
- 'F35B9D7C54418022E6FD4FDFE88C3261FD138329A11C013AD640145D40BE934A' : true,
- 'F39D175463288D9639AE5C852B945D89ED858548F8621E5DDC29853E8C84BE36' : true,
- 'F3D480D69675A57DC2061544BF7F52B631BB02716680C0E5605413C9B2A6183F' : true,
- 'F4F3D03488B8B699725AEBCF9033B73C8997AED2D4504891EE4FFAC3E7CB4272' : true,
- 'F513DC8D7F8B425FCF55E74BDCF2675EF2ABF98523E5226CF8A2391B0A36A919' : true,
- 'F55617B92584757BB516B19BFCBDA9B4A71237075487651831CD9C5F9C6F5F29' : true,
- 'F5ACAF2324A7AF3B1D2AE6C0D1765F5EDA51129FECADFC97878DAF63BA8B75A0' : true,
- 'F5D715B6BE56D1A677ECBF7C26B4D79716F5EC2D2E2EC323ABDFE3442F40BD31' : true,
- 'F5E43F516D61A0329F78A2560454B8346732A9420C172AC9983C0BEFFD8DEA0A' : true,
- 'F5EFB0566F96DBFC58848E1F101457F6F2D05904C1F91A4D22B1192787B0FBD1' : true,
- 'F62CA149D43A56F24345F70DD17EAC3E6232068AD7E06251AEB42ACAE23BA120' : true,
- 'F6620F848AB3CFC1695D2AF5399FD8FDD8F2FEC43F73F2924DF78C1A26C22653' : true,
- 'F6719127E9730A196DF5D961354756211240F34C5279D39351C3DBBBB2896244' : true,
- 'F6D424B2B0304F80F9F57E9A501576769B75304FFB569A1118B9B0D5E72561C6' : true,
- 'F7835EBD5236BECAB435AE25E9D79BB389DFA8462D552965A2B901ED70B4FF79' : true,
- 'F805AE1FEDB2D94096F0D341B703ECD4975D773A179555DDC83D424F85578571' : true,
- 'F83CE9030678A0476F8285DC93E59D83E91E8E0DE214E0BF80278EBCF3BFDA43' : true,
- 'F894E6B109C27D8C32BFE2A88BACC5DD8BEFEA514661B0509643E02A68A107CD' : true,
- 'F9AA3378654B8DAE243713E502260C71E88F8AD2B7021072A02574D09E34D1A0' : true,
- 'F9B011926D3405A3B902B76FD7DB90E8A62429A5A34ADAD21B9870446D425130' : true,
- 'F9E220AC82D672997DC20E9EE89BF0713BC4153FB5F2EBC8D9AC9EE35A6E494D' : true,
- 'FA324620CEE61AFCCA03A0B31508287FB4A78CCE65362F979770B7AF69CA0AC1' : true,
- 'FA616BE68A75F14CA6331BD5BFDBE3840CE34CC3C3C98E3C8C3E10F027389F2F' : true,
- 'FAD57B1698DDD7EEDC68ACA2B91FFC327696BA682F8B1DC7CC18D058EDB48632' : true,
- 'FAEDB6948B44BBBEB18CC3DE18788AD31CE938A2BA36BD84765BF47728C415E9' : true,
- 'FB26AD0A3ADB010EB9B8C70998BA5AF151F8CCF1B31312A9AE5CCC3B8E4F709B' : true,
- 'FB81BF294DB8EDE0C4DFFB7F5528EB3EB406FE435A6D62E6894482D8B42CCC48' : true,
- 'FB8410F5AB21257DC1971CC27F60A1BD1F7DA0962DC5FB97C240135C3BB6DCD8' : true,
- 'FC072A7AD4E6E41680493AF4BEB98215D4D2F7CE040C95004BB3A1621A9DD513' : true,
- 'FC7B49DBE7843EA61C2BE33A5EED8CB6E7B23605FFB783948AA4B57608A20DDC' : true,
- 'FCA9C3A036EA797D58CA26F793C98A9952E59D37C35E352B67A30D4F8F49FC7D' : true,
- 'FDF0D11B28F98D542D2D0B2658C0CB0CB46E5E155398B8739AD968944B4C41FB' : true,
- 'FE075A2C82D9FA253B59B401A7A31C4AD5D17FD66FE393D8EE5ACD7FA478743D' : true,
- 'FE2ACBE26A3ACFBA15C9C3425A9A06EED0006E94A82669BFE3BE705D578021D6' : true,
- 'FEB76D3D961661D830CDE04D78FAD83736F60E3D9473688418FB1DE7AE942663' : true,
- 'FEC9F5C500456C61F90439F04F3E1B8884AEDF07BD5A35E6DA8A8FC61731F053' : true,
- 'FF3E77DFF8C24FE2DC89CE8757B6AE9ACBB838D35AEBDBD9A29D099E211380BB' : true,
- 'FF4B63FB97FBFD55B9173F648FA145576AEEB91D0166D79F1A0087A8235538E4' : true,
- 'FF8C4E466EBCD5BD1A16F83E6096501479D74D077F84F2EDEA264781DFD82270' : true,
- 'FFA2F572D6F89A48043006E117D0B7B7F1D8FC7AC8C264EFD491422A38AEBDE8' : true,
- 'FFAE947BA6D3D7E8D31D04F02EEEE60601B0200ACDEBCB12AA5D617F650D5FD0' : true,
- 'FFB09E8C7F4CCA88C213AF60CD7047B85A6085DA93C7C3C7D3B73C57FA05702F' : true,
- 'FFFB09720CCEF3A610BCB81EEF5FCD614C1602D4968A9DE8400C05256AEDC1ED' : true,
-} ;
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/commonOCSP.json b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/commonOCSP.json
deleted file mode 100644
index 106916d..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/commonOCSP.json
+++ /dev/null
@@ -1,289 +0,0 @@
-[
-"https://safebrowsing-cache.google.com/",
-"http://ocsp.pca.dfn.de/OCSP-Server/OCSP",
-"http://ocsp.digicert.com",
-"http://ocsp.verisign.com",
-"http://ocsp.comodoca.com",
-"http://clients1.google.com/ocsp",
-"http://ocsp.usertrust.com",
-"http://ocsp.disa.mil",
-"http://ocsp.quovadisglobal.com",
-"http://ocsp.nsn0.rcvs.nit.disa.mil",
-"http://ocsp.camerfirma.com",
-"http://ocsp.thawte.com",
-"http://ocsp.serverpass.telesec.de/ocspr",
-"http://ocsp.certum.pl",
-"http://ocsp.certisign.com.br",
-"http://ocsp.entrust.net",
-"http://telstra-ocsp.pki.telstra.com.au/ocsp",
-"http://ocsp.a-trust.at/ocsp",
-"http://ocsp.godaddy.com",
-"https://ocspaces.trustdst.com",
-"http://ocsp.identrust.com",
-"http://ocsp.pki.auth.gr",
-"http://ocsp2.globalsign.com/gsorganizationvalg2",
-"http://ocsp.starfieldtech.com",
-"http://ocsp.pki.bayern.de:8080",
-"http://ocsp.netsolssl.com",
-"http://ocsp.europki.org:8026",
-"http://ocsp.starfieldtech.com",
-"http://ocsp.treas.gov",
-"http://ocsp.trust-provider.com",
-"http://ocsp.rcsc.lt/ocspresponder.rcsc",
-"http://ocsp.globessl.com",
-"http://ocsp1.wosign.com/ca1",
-"http://gtssl-ocsp.geotrust.com",
-"http://ocsp.turktrust.com.tr",
-"http://ocsp.quovadisoffshore.com",
-"http://eva.orc.com",
-"http://ocsp.incosolutions.com/ocsp",
-"http://validator.wellsfargo.com",
-"http://jjedsocsp1.jnj.com",
-"http://ocsp.cybertrust.ne.jp/OcspServer",
-"http://ocsp.digsigtrust.com",
-"http://ocsp.trust.teliasonera.com",
-"http://ocsp.harica.gr",
-"http://ocsp.pki-services.siemens.com",
-"http://sd.symcd.com",
-"http://ocsp.catcert.cat",
-"http://ocsp.certificateservices.eads.com",
-"http://dc/ocsp",
-"http://ocsp.wosign.com/ca",
-"http://ocsp.swissdigicert.ch/rubin",
-"http://ocsp.unimelb.edu.au/ocsp",
-"http://ocsp.gandi.net",
-"http://ca.multistructure.co.id/ocsp",
-"http://ocsp.buypass.no/ocsp/BPOcsp",
-"http://rapidssl-ocsp.geotrust.com",
-"http://ocsp.tcclass3-II.trustcenter.de",
-"http://ocsp2.globalsign.com/gsalphasha2g2",
-"http://ldap.takata-petri.com:2560",
-"http://ocsp.dpwn.net",
-"http://ocsp.certyfikatyssl.pl",
-"https://ocsp.quovadisoffshore.com",
-"http://ocsp.swissdigicert.ch/smaragd",
-"http://sureseries-ocsp.cybertrust.ne.jp/OcspServer",
-"http://wongtaisin.ms.local/ocsp",
-"http://nsc.vrm.lt/OCSP/ocspresponder.nsc",
-"http://ocsp.webspace-forum.de",
-"http://ocsp.luxtrust.lu",
-"https://ca.e-szigno.hu/aocsp",
-"http://ocsp.trustsign.com.br",
-"http://ocspape.cert.fnmt.es/ocspape/OcspResponder",
-"http://telstra-ocsp.pki.telstra.com.au/ocsp",
-"http://ocsp.tcclass2.trustcenter.de",
-"http://ocsp.inmeta.net/ejbca/publicweb/status/ocsp",
-"http://igc.auf.org/ocsp",
-"http://ocsp.certification.tn",
-"http://ocsp.globaltrust.eu",
-"http://ocsp.e-tugra.com/status/ocsp",
-"http://ocsp.bezeq.com",
-"http://ocsp.nsn0.rcvs.gds.disa.mil",
-"http://certinfo-ocsp.ubs.com:53417",
-"http://ocsp.tbs-x509.com",
-"http://ocsp.ll.mit.edu",
-"http://pki.utg.ua/ocsp",
-"http://ocsp.accv.es",
-"http://crl.itsumo.pl/ocsphttp://corppki/ocsp",
-"http://tr-dc-r2.telering.biz/ocsp",
-"http://ocsp.eme.lv/responder.eme",
-"http://ocsp2.globalsign.com/gsalphag2",
-"http://ocsp.ssl.com",
-"http://ocsp.certificadodigital.com.br/serasa_cd2006",
-"http://la-email.corp.valueclick.com/ocsp",
-"http://ocsp.startssl.com/sub/class3/server/ca",
-"http://acbridge.ds.commun.test.fc2consortium.org:8080/ejbca/publicweb/status/ocsp",
-"http://remote.hirschmann.nl/ocsp",
-"http://ocsp1jca.defence.gov.sg",
-"http://ocsp02.telesec.de/ocspr",
-"http://certs.vonagenetworks.net/ocsp/vonsca",
-"http://ca-ocsp.disig.sk",
-"http://www.isscorp.com/PKI/ra/ocsp",
-"http://ocsp.digi-sign.com",
-"http://ocsp.certificadodigital.com.br/serasarfbv1",
-"http://certificates.medsigroup.ru/ocsp",
-"http://ocsp.bee.vimpelcom.ru/ocsp",
-"http://cert1.cert.internal.loc1.gathowin.net/ocsp",
-"http://ocsp-ext.pki.wellsfargo.com",
-"http://ocsp.innossl.com",
-"http://ocsp.pcf.pl/ocsp",
-"http://nts15.etoncollege.org.uk/ocsp",
-"http://ocsp.dreamhost.com",
-"http://ocspISAca.cert.fnmt.es/ocspISAca/OcspResponder",
-"http://bt1svl0a.bpa.bouyguestelecom.fr/ocsp",
-"http://ocsp.co.vectis.local/ocsp",
-"http://localhost:8080/ejbca/publicweb/status/ocsp",
-"http://ocsp.siteblindadocerts.com",
-"http://corpcert.app.corpintra.net/ocsp",
-"http://ocsp.nlss.com",
-"http://ocsp.bobo-rousselin.com",
-"http://cert.bioscomputers.com/ocsp",
-"http://ocsp.lienvietpostbank.com.vn/ocsp",
-"http://sslocsp.twca.com.tw",
-"http://ocsp.mdais.co.il",
-"http://pki.sana-bb.de/ocsp",
-"http://ocsp.wisekey.com",
-"https://ocsp.rcsc.lt/ocspresponder.rcsc",
-"http://ocsp.startssl.com/sub/class2/server/ca",
-"http://ocsp-cpki.telekom.de/ocsp",
-"http://ocsp2.ssc.lt:2560",
-"http://ocsp.it.point/RMGRCA/http://ocsp.extranet.royalmail.com/RMGRCA",
-"http://eca.ocspts.identrust.com",
-"http://ocsp.vkb-bank.com/ocsp",
-"http://pki.automobiletechnologies.com/ocsp",
-"http://ocsp.g4s.no/ocsp",
-"http://vpn.ozero.com/ocsp",
-"http://ocsp.village-roadshow.com/ocsp",
-"http://ocsp.groupensia.com/ocsp",
-"http://pki.rosautoprom.ru/ocsp",
-"http://ogbl-ocsp2.ogbl.lan/ocsp",
-"http://ocsp.southernco.com/ocsp",
-"http://ocsp.swiss.signdemo.com",
-"http://ocsp.itexcellence.rs/ocsp",
-"http://www.cepsa.com/pki/ocsp",
-"https://ocspaces.identrust.com",
-"http://ocsp.dtica.eu",
-"http://www.tys.org/aia",
-"http://ocsp2.globalsign.com/gsextendvalg2",
-"http://caors.wiltshire.ac.uk/ocsp",
-"http://ocsp1.ssp-strong-id.net/SSP-CA-A1",
-"http://cert.econgas.com/ocsp",
-"http://ocsp.wienerberger.net/ocsp",
-"http://ocsp.pki.wayport.net:2560",
-"http://pkib.mallesons.com/ocsp",
-"http://ocsp.ovh.com",
-"http://ocsp.certificadodigital.com.br/serasacdv1",
-"http://pkiva.indra.es",
-"http://itcert.stanford.edu/ocsp",
-"http://certenroll.bogdanov-associates.com/ocsp",
-"http://srv-pki/ocsp",
-"http://ocsp.godaddy.com",
-"http://ocsp.pki.slb.com/ocsp",
-"http://ocsp.swisssign.net",
-"http://cert.naftogaz.com/ocsp",
-"http://ocsp.uk.deloitte.com",
-"http://ocsp.comodoca3.com",
-"http://ocsp.exzumin.de/ocsp",
-"http://ocsp.msocsp.com",
-"http://cdp2.nis.rs/ocsp",
-"http://corptestcert.app.corpintra.net/ocsp",
-"http://ocsp.comodoca2.com",
-"http://ocsp.ersca.com",
-"http://ocsp.xth.cc",
-"http://ocsp1.ssp-strong-id.net/VA-SSP-CA-B2",
-"http://ocsp.vnpt-ca.vn/responder",
-"http://ocspts.identrust.com",
-"http://ocsp2.globalsign.com/gsdomainvalg2",
-"http://pkiva.bde.es",
-"http://certs.mapservices.fr/ocsp",
-"http://ino.inosoft.de/ocsp",
-"http://rootca.poclabs.net/ocsp",
-"http://pki.rtc-leasing.ru/ocsp",
-"http://ocsp.startssl.com/ca",
-"http://ocsp.ca.vodafone.com/ocsp",
-"http://ocsp.cs.auscert.org.au",
-"http://ocsp.tcclass2-II.trustcenter.de",
-"http://www.er76.ru/ocsp",
-"http://ocsp.walgreens.com/ocsp",
-"http://www.pki.nosc.us/ocsp",
-"http://test_pki1/ocsp",
-"http://ocsp.mytrc.net/ocsp",
-"http://certs.ankalagon.ru/ocsp",
-"http://www.ocsp.gpo.gov",
-"http://ocsp.bayanca.ir",
-"http://va.pfizer.com:1025",
-"http://certificates.dnv.com/ocsp",
-"http://ocsp.orapharma.com/ocsp",
-"http://ocsp.seattlecca.org/ocsp",
-"http://backbone.cnsd.interno.it/ocsp",
-"http://nyppki02/ocsp",
-"http://ocsp2.globalsign.com/gsorganizationvalsha2g2",
-"http://gtssl2-ocsp.geotrust.com",
-"http://ocsp.tcuniversal-I.trustcenter.de",
-"http://ocsp.register.com",
-"http://ocsp.ncdc.gov.sa",
-"http://pki.life.com.by/ocsp",
-"http://ocsp.sgssl.net",
-"http://pki.gmprint.local/ocsp",
-"http://pki.solitdev.com/ocsp",
-"http://ocsp.dics.ua/ocsp",
-"http://ocsp.pre.swissdigicert.ch/rubin",
-"http://ocsp.affirmtrust.com/commev",
-"http://aia.gdir.vt.ru/ocsp",
-"http://ocsp.averius.nl/ocsp",
-"http://ocsp.bechtel.com/ocsp",
-"http://ac.ds.commun.test.fc2consortium.org:8080/ejbca/publicweb/status/ocsp",
-"http://cert-services.e-control.at/OCSP?ca=EControl_IntermediateCA",
-"http://nfiocsp.managed.entrust.com",
-"http://cert.bernards.com/ocsp",
-"http://bhca2.baker-hostetler.com/ocsp",
-"http://pki.suva.ch/ocsp",
-"http://EVSecure-ocsp.verisign.com",
-"http://ocsp.go",
-"http://pki.wabag.com/ocsp",
-"http://ocsp.startssl.com/sub/class4/server/ca",
-"http://nfi2.eva.orc.com",
-"http://onsite-ocsp.verisign.com",
-"http://ocspsslv3.kamusm.gov.tr",
-"http://ocsp.pki.belgium.be",
-"https://www.isscorp.com/PKI/ra/ocsp",
-"http://ocsp.statoil.com:3502",
-"http://pki-ocsp.allscriptscloud.com/ocsp",
-"http://swoop-pki.swoopin.com/ocsp",
-"http://kzatpki0002.okioc.com/ocsp",
-"http://ocsp.policia.es",
-"http://ocsp.startssl.com/sub/class1/client/ca",
-"http://dc01/ocsp",
-"http://ocsp2.pki.wayfair.com/ocsp",
-"http://10.1.101.2/publicweb/status/ocsp",
-"http://ocsp.bt.com/ocsp",
-"http://ocsp.sanofi-aventis.com/ocsp",
-"http://dc-01.raise.group",
-"http://ocsp.spar-ics.eu/ocsp",
-"http://ocsp.vodokanal.spb.ru/ocsp",
-"http://socsp.turktrust.com.tr",
-"http://ocsp.thermocolor.com/ocsp",
-"http://ocsp.lisec-sw.com",
-"http://ocsp.csctrustedsecure.com",
-"http://houpki2.nov.com/ocsp",
-"http://ocsp.bwinservices.com/ocsp",
-"http://ocsp2.globalsign.com/gsextendvalsha2g2",
-"http://ocsp.tcclass3.trustcenter.de",
-"http://ocsp-b.pki.wayport.net:2560",
-"http://devdc01.dev.gatesfoundation.org/ocsp",
-"http://certsrv1.dc1.thomson-webcast.net/ocsp",
-"http://relay.systemshouse.ru/ocsp",
-"http://gold-root-g2.ocsp.swisssign.net",
-"http://pecs1.unisys.com/ocsp",
-"http://ocsp.europeanssl.eu",
-"http://gw.idsaas.de/ocsp",
-"http://ocsp.tcs.terena.org",
-"http://ocsp.trendmicro.com/tmca",
-"http://ocsp-ent.pki.wellsfargo.com",
-"http://www.meridian-capital.kz/ocsp",
-"http://ca.x-any.com/ocsp",
-"http://crl.inditex.com/ocsp",
-"http://ocsp.firmaprofesional.com",
-"http://ocsp2.globalsign.com/gsdomainvalsha2g2",
-"http://exchange.cdl.cz/ocsp",
-"http://pkicvs.cisco.com/pki/ocsp",
-"http://ocsp.affirmtrust.com/premev",
-"http://ocsp.icewarp.com",
-"http://ocsp.ferbritas.pt/ocsp",
-"http://cert.energokaskad.com/ocsp",
-"http://ocsp.utn.com.ua:2560",
-"http://ocsp.affirmtrust.com/ntwkev",
-"http://ocsp.omniroot.com/baltimoreroot",
-"http://ocsp.shamusclan.com",
-"http://ocsp.wurthnet.com/ocsp",
-"http://ocsp.pkic.es/ocsp",
-"http://ocsp.strixchomutov.cz",
-"http://sha2ocsp.dnsalias.com/responder",
-"http://ocsp-test.ncdc.gov.sa",
-"http://ocsp.sysadmins.lv",
-"http://cert.incoma.ru/ocsp",
-"http://ocsp.north-winds.org",
-"http://iis1.eeza.csic.es/ocsp",
-"http://pki.winextreme.org/ocsp",
-"http://ocsp.startssl.com/sub/class1/server/ca",
-"http://pki.eduuni.local/ocsp"]
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/sha256.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/sha256.js
deleted file mode 100644
index 7e15f1a..0000000
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/sha256.js
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * A JavaScript implementation of the SHA256 hash function.
- *
- * FILE:sha256.js
- * VERSION:0.8
- * AUTHOR:Christoph Bichlmeier <informatik@zombiearena.de>
- *
- * NOTE: This version is not tested thoroughly!
- *
- * Copyright (c) 2003, Christoph Bichlmeier
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the copyright holder nor the names of contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * ======================================================================
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* SHA256 logical functions */
-function rotateRight(n,x) {
- return ((x >>> n) | (x << (32 - n)));
-}
-function choice(x,y,z) {
- return ((x & y) ^ (~x & z));
-}
-function majority(x,y,z) {
- return ((x & y) ^ (x & z) ^ (y & z));
-}
-function sha256_Sigma0(x) {
- return (rotateRight(2, x) ^ rotateRight(13, x) ^ rotateRight(22, x));
-}
-function sha256_Sigma1(x) {
- return (rotateRight(6, x) ^ rotateRight(11, x) ^ rotateRight(25, x));
-}
-function sha256_sigma0(x) {
- return (rotateRight(7, x) ^ rotateRight(18, x) ^ (x >>> 3));
-}
-function sha256_sigma1(x) {
- return (rotateRight(17, x) ^ rotateRight(19, x) ^ (x >>> 10));
-}
-function sha256_expand(W, j) {
- return (W[j&0x0f] += sha256_sigma1(W[(j+14)&0x0f]) + W[(j+9)&0x0f] +
- sha256_sigma0(W[(j+1)&0x0f]));
-}
-
-/* Hash constant words K: */
-var K256 = new Array(
- 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
- 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
- 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
- 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
- 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
- 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
- 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
- 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
- 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
- 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
- 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
- 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
- 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
- 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
- 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
- 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
- );
-
-/* global arrays */
-var ihash, count, buffer;
-var sha256_hex_digits = "0123456789abcdef";
-
-/* Add 32-bit integers with 16-bit operations (bug in some JS-interpreters:
- overflow) */
-function safe_add(x, y)
-{
- var lsw = (x & 0xffff) + (y & 0xffff);
- var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
- return (msw << 16) | (lsw & 0xffff);
-}
-
-/* Initialise the SHA256 computation */
-function sha256_init() {
- ihash = new Array(8);
- count = new Array(2);
- buffer = new Array(64);
- count[0] = count[1] = 0;
- ihash[0] = 0x6a09e667;
- ihash[1] = 0xbb67ae85;
- ihash[2] = 0x3c6ef372;
- ihash[3] = 0xa54ff53a;
- ihash[4] = 0x510e527f;
- ihash[5] = 0x9b05688c;
- ihash[6] = 0x1f83d9ab;
- ihash[7] = 0x5be0cd19;
-}
-
-/* Transform a 512-bit message block */
-function sha256_transform() {
- var a, b, c, d, e, f, g, h, T1, T2;
- var W = new Array(16);
-
- /* Initialize registers with the previous intermediate value */
- a = ihash[0];
- b = ihash[1];
- c = ihash[2];
- d = ihash[3];
- e = ihash[4];
- f = ihash[5];
- g = ihash[6];
- h = ihash[7];
-
- /* make 32-bit words */
- for(var i=0; i<16; i++)
- W[i] = ((buffer[(i<<2)+3]) | (buffer[(i<<2)+2] << 8) | (buffer[(i<<2)+1]
- << 16) | (buffer[i<<2] << 24));
-
- for(var j=0; j<64; j++) {
- T1 = h + sha256_Sigma1(e) + choice(e, f, g) + K256[j];
- if(j < 16) T1 += W[j];
- else T1 += sha256_expand(W, j);
- T2 = sha256_Sigma0(a) + majority(a, b, c);
- h = g;
- g = f;
- f = e;
- e = safe_add(d, T1);
- d = c;
- c = b;
- b = a;
- a = safe_add(T1, T2);
- }
-
- /* Compute the current intermediate hash value */
- ihash[0] += a;
- ihash[1] += b;
- ihash[2] += c;
- ihash[3] += d;
- ihash[4] += e;
- ihash[5] += f;
- ihash[6] += g;
- ihash[7] += h;
-}
-
-/* Read the next chunk of data and update the SHA256 computation */
-function sha256_update(data, inputLen) {
- var i, index, curpos = 0;
- /* Compute number of bytes mod 64 */
- index = ((count[0] >> 3) & 0x3f);
- var remainder = (inputLen & 0x3f);
-
- /* Update number of bits */
- if ((count[0] += (inputLen << 3)) < (inputLen << 3)) count[1]++;
- count[1] += (inputLen >> 29);
-
- /* Transform as many times as possible */
- for(i=0; i+63<inputLen; i+=64) {
- for(var j=index; j<64; j++)
- buffer[j] = data.charCodeAt(curpos++);
- sha256_transform();
- index = 0;
- }
-
- /* Buffer remaining input */
- for(var j=0; j<remainder; j++)
- buffer[j] = data.charCodeAt(curpos++);
-}
-
-/* Finish the computation by operations such as padding */
-function sha256_final() {
- var index = ((count[0] >> 3) & 0x3f);
- buffer[index++] = 0x80;
- if(index <= 56) {
- for(var i=index; i<56; i++)
- buffer[i] = 0;
- } else {
- for(var i=index; i<64; i++)
- buffer[i] = 0;
- sha256_transform();
- for(var i=0; i<56; i++)
- buffer[i] = 0;
- }
- buffer[56] = (count[1] >>> 24) & 0xff;
- buffer[57] = (count[1] >>> 16) & 0xff;
- buffer[58] = (count[1] >>> 8) & 0xff;
- buffer[59] = count[1] & 0xff;
- buffer[60] = (count[0] >>> 24) & 0xff;
- buffer[61] = (count[0] >>> 16) & 0xff;
- buffer[62] = (count[0] >>> 8) & 0xff;
- buffer[63] = count[0] & 0xff;
- sha256_transform();
-}
-
-/* Split the internal hash values into an array of bytes */
-function sha256_encode_bytes() {
- var j=0;
- var output = new Array(32);
- for(var i=0; i<8; i++) {
- output[j++] = ((ihash[i] >>> 24) & 0xff);
- output[j++] = ((ihash[i] >>> 16) & 0xff);
- output[j++] = ((ihash[i] >>> 8) & 0xff);
- output[j++] = (ihash[i] & 0xff);
- }
- return output;
-}
-
-/* Get the internal hash as a hex string */
-function sha256_encode_hex() {
- var output = new String();
- for(var i=0; i<8; i++) {
- for(var j=28; j>=0; j-=4)
- output += sha256_hex_digits.charAt((ihash[i] >>> j) & 0x0f);
- }
- return output;
-}
-
-/* Main function: returns a hex string representing the SHA256 value of the
- given data */
-function sha256_digest(data) {
- sha256_init();
- sha256_update(data, data.length);
- sha256_final();
- return sha256_encode_hex();
-}
-
-/* test if the JS-interpreter is working properly */
-function sha256_self_test()
-{
- return sha256_digest("message digest") ==
- "f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650";
-}
-