quartz/content/Obsidian Vault/.obsidian/plugins/flashcards-obsidian/main.js
2022-06-07 14:39:39 -06:00

7238 lines
962 KiB
JavaScript

'use strict';
var obsidian = require('obsidian');
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
}
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
}
function __spreadArray(to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
}
var noticeTimeout = 15 * 1000;
var sourceDeckExtension = "-source";
var codeDeckExtension = "-code";
var flashcardsIcon = "<path fill=\"currentColor\" stroke=\"currentColor\" d=\"m98.69029,0.55335l-54.30674,0a1.1128,1.14693 0 0 0 -1.1128,1.15682l0,26.36956l-42.32491,14.67282a1.1128,1.14693 0 0 0 -0.7003,1.45344c0.09593,0.30651 9.89052,30.40359 13.18097,40.38981c2.6573,8.05819 2.20642,13.55555 2.19683,13.61488a1.1128,1.14693 0 0 0 0.4221,0.98873a1.08402,1.11727 0 0 0 0.69071,0.24718a1.10321,1.13704 0 0 0 0.35495,-0.05932l51.47676,-17.79722a1.1224,1.15682 0 0 0 0.75786,-0.98873c0,-0.2373 0.58518,-5.71489 -2.16805,-14.14879c-0.62355,-1.92803 -1.48694,-4.56795 -2.47503,-7.60337l34.00766,0a1.1128,1.14693 0 0 0 1.1224,-1.14693l0,-55.99205a1.1224,1.15682 0 0 0 -1.1224,-1.15682zm-31.55182,79.09878l-49.24156,17.02601a41.33682,42.60458 0 0 0 -2.35991,-12.85355c-2.87794,-8.86895 -11.02251,-33.73563 -12.81643,-39.25277l49.35668,-17.115c1.8131,5.53691 10.00564,30.65078 12.96032,39.70759a35.96466,37.06766 0 0 1 2.1009,12.48772zm30.43902,-23.07707l-33.65272,0c-4.25935,-13.03152 -10.08238,-30.9474 -10.08238,-30.9474a1.1224,1.15682 0 0 0 -1.41978,-0.72178l-6.91665,2.39274l0,-24.44152l52.07154,0l0,53.71796z\"/>";
var sourceField = "<br><br>\r\n<small>Source: {{Source}}</small>";
var codeScript = '<link rel="stylesheet" href="_highlight.css">\r\n<script>\r\n if (typeof hljs === "undefined") {\r\n var script = document.createElement(\'script\');\r\n script.src = "_highlight.js";\r\n script.async = false;\r\n document.head.appendChild(script);\r\n }\r\n\r\n var script = document.createElement(\'script\');\r\n script.src = \'_highlightInit.js\';\r\n script.async = false;\r\n document.head.appendChild(script);\r\n document.head.removeChild(script);\r\n</script>';
var highlightjsBase64 = "LyoKICBIaWdobGlnaHQuanMgMTAuNC4xIChlOTZiOTE1YSkKICBMaWNlbnNlOiBCU0QtMy1DbGF1c2UKICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAyMCwgSXZhbiBTYWdhbGFldgoqLwp2YXIgaGxqcz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKHQpewpyZXR1cm4gdCBpbnN0YW5jZW9mIE1hcD90LmNsZWFyPXQuZGVsZXRlPXQuc2V0PSgpPT57CnRocm93IEVycm9yKCJtYXAgaXMgcmVhZC1vbmx5Iil9OnQgaW5zdGFuY2VvZiBTZXQmJih0LmFkZD10LmNsZWFyPXQuZGVsZXRlPSgpPT57CnRocm93IEVycm9yKCJzZXQgaXMgcmVhZC1vbmx5IikKfSksT2JqZWN0LmZyZWV6ZSh0KSxPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5mb3JFYWNoKChuPT57dmFyIHM9dFtuXQo7Im9iamVjdCIhPXR5cGVvZiBzfHxPYmplY3QuaXNGcm96ZW4ocyl8fGUocyl9KSksdH12YXIgdD1lLG49ZTt0LmRlZmF1bHQ9bgo7Y2xhc3Mgc3tjb25zdHJ1Y3RvcihlKXt2b2lkIDA9PT1lLmRhdGEmJihlLmRhdGE9e30pLHRoaXMuZGF0YT1lLmRhdGF9Cmlnbm9yZU1hdGNoKCl7dGhpcy5pZ25vcmU9ITB9fWZ1bmN0aW9uIHIoZSl7CnJldHVybiBlLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiN4Mjc7IikKfWZ1bmN0aW9uIGEoZSwuLi50KXtjb25zdCBuPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0IHQgaW4gZSluW3RdPWVbdF0KO3JldHVybiB0LmZvckVhY2goKGU9Pntmb3IoY29uc3QgdCBpbiBlKW5bdF09ZVt0XX0pKSxufWZ1bmN0aW9uIGkoZSl7CnJldHVybiBlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9dmFyIG89T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsCmVzY2FwZUhUTUw6cixpbmhlcml0OmEsbm9kZVN0cmVhbTplPT57Y29uc3QgdD1bXTtyZXR1cm4gZnVuY3Rpb24gZShuLHMpewpmb3IobGV0IHI9bi5maXJzdENoaWxkO3I7cj1yLm5leHRTaWJsaW5nKTM9PT1yLm5vZGVUeXBlP3MrPXIubm9kZVZhbHVlLmxlbmd0aDoxPT09ci5ub2RlVHlwZSYmKHQucHVzaCh7CmV2ZW50OiJzdGFydCIsb2Zmc2V0OnMsbm9kZTpyfSkscz1lKHIscyksaShyKS5tYXRjaCgvYnJ8aHJ8aW1nfGlucHV0Lyl8fHQucHVzaCh7CmV2ZW50OiJzdG9wIixvZmZzZXQ6cyxub2RlOnJ9KSk7cmV0dXJuIHN9KGUsMCksdH0sbWVyZ2VTdHJlYW1zOihlLHQsbik9PnsKbGV0IHM9MCxhPSIiO2NvbnN0IG89W107ZnVuY3Rpb24gbCgpewpyZXR1cm4gZS5sZW5ndGgmJnQubGVuZ3RoP2VbMF0ub2Zmc2V0IT09dFswXS5vZmZzZXQ/ZVswXS5vZmZzZXQ8dFswXS5vZmZzZXQ/ZTp0OiJzdGFydCI9PT10WzBdLmV2ZW50P2U6dDplLmxlbmd0aD9lOnQKfWZ1bmN0aW9uIGMoZSl7CmErPSI8IitpKGUpK1tdLm1hcC5jYWxsKGUuYXR0cmlidXRlcywoZT0+IiAiK2Uubm9kZU5hbWUrJz0iJytyKGUudmFsdWUpKyciJykpLmpvaW4oIiIpKyI+Igp9ZnVuY3Rpb24gdShlKXthKz0iPC8iK2koZSkrIj4ifWZ1bmN0aW9uIGcoZSl7KCJzdGFydCI9PT1lLmV2ZW50P2M6dSkoZS5ub2RlKX0KZm9yKDtlLmxlbmd0aHx8dC5sZW5ndGg7KXtsZXQgdD1sKCkKO2lmKGErPXIobi5zdWJzdHJpbmcocyx0WzBdLm9mZnNldCkpLHM9dFswXS5vZmZzZXQsdD09PWUpe28ucmV2ZXJzZSgpLmZvckVhY2godSkKO2Rve2codC5zcGxpY2UoMCwxKVswXSksdD1sKCl9d2hpbGUodD09PWUmJnQubGVuZ3RoJiZ0WzBdLm9mZnNldD09PXMpCjtvLnJldmVyc2UoKS5mb3JFYWNoKGMpCn1lbHNlInN0YXJ0Ij09PXRbMF0uZXZlbnQ/by5wdXNoKHRbMF0ubm9kZSk6by5wb3AoKSxnKHQuc3BsaWNlKDAsMSlbMF0pfQpyZXR1cm4gYStyKG4uc3Vic3RyKHMpKX19KTtjb25zdCBsPWU9PiEhZS5raW5kO2NsYXNzIGN7Y29uc3RydWN0b3IoZSx0KXsKdGhpcy5idWZmZXI9IiIsdGhpcy5jbGFzc1ByZWZpeD10LmNsYXNzUHJlZml4LGUud2Fsayh0aGlzKX1hZGRUZXh0KGUpewp0aGlzLmJ1ZmZlcis9cihlKX1vcGVuTm9kZShlKXtpZighbChlKSlyZXR1cm47bGV0IHQ9ZS5raW5kCjtlLnN1Ymxhbmd1YWdlfHwodD1gJHt0aGlzLmNsYXNzUHJlZml4fSR7dH1gKSx0aGlzLnNwYW4odCl9Y2xvc2VOb2RlKGUpewpsKGUpJiYodGhpcy5idWZmZXIrPSI8L3NwYW4+Iil9dmFsdWUoKXtyZXR1cm4gdGhpcy5idWZmZXJ9c3BhbihlKXsKdGhpcy5idWZmZXIrPWA8c3BhbiBjbGFzcz0iJHtlfSI+YH19Y2xhc3MgdXtjb25zdHJ1Y3Rvcigpe3RoaXMucm9vdE5vZGU9ewpjaGlsZHJlbjpbXX0sdGhpcy5zdGFjaz1bdGhpcy5yb290Tm9kZV19Z2V0IHRvcCgpewpyZXR1cm4gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXX1nZXQgcm9vdCgpe3JldHVybiB0aGlzLnJvb3ROb2RlfWFkZChlKXsKdGhpcy50b3AuY2hpbGRyZW4ucHVzaChlKX1vcGVuTm9kZShlKXtjb25zdCB0PXtraW5kOmUsY2hpbGRyZW46W119Cjt0aGlzLmFkZCh0KSx0aGlzLnN0YWNrLnB1c2godCl9Y2xvc2VOb2RlKCl7CmlmKHRoaXMuc3RhY2subGVuZ3RoPjEpcmV0dXJuIHRoaXMuc3RhY2sucG9wKCl9Y2xvc2VBbGxOb2Rlcygpewpmb3IoO3RoaXMuY2xvc2VOb2RlKCk7KTt9dG9KU09OKCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMucm9vdE5vZGUsbnVsbCw0KX0Kd2FsayhlKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5fd2FsayhlLHRoaXMucm9vdE5vZGUpfXN0YXRpYyBfd2FsayhlLHQpewpyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/ZS5hZGRUZXh0KHQpOnQuY2hpbGRyZW4mJihlLm9wZW5Ob2RlKHQpLAp0LmNoaWxkcmVuLmZvckVhY2goKHQ9PnRoaXMuX3dhbGsoZSx0KSkpLGUuY2xvc2VOb2RlKHQpKSxlfXN0YXRpYyBfY29sbGFwc2UoZSl7CiJzdHJpbmciIT10eXBlb2YgZSYmZS5jaGlsZHJlbiYmKGUuY2hpbGRyZW4uZXZlcnkoKGU9PiJzdHJpbmciPT10eXBlb2YgZSkpP2UuY2hpbGRyZW49W2UuY2hpbGRyZW4uam9pbigiIildOmUuY2hpbGRyZW4uZm9yRWFjaCgoZT0+ewp1Ll9jb2xsYXBzZShlKX0pKSl9fWNsYXNzIGcgZXh0ZW5kcyB1e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5vcHRpb25zPWV9CmFkZEtleXdvcmQoZSx0KXsiIiE9PWUmJih0aGlzLm9wZW5Ob2RlKHQpLHRoaXMuYWRkVGV4dChlKSx0aGlzLmNsb3NlTm9kZSgpKX0KYWRkVGV4dChlKXsiIiE9PWUmJnRoaXMuYWRkKGUpfWFkZFN1Ymxhbmd1YWdlKGUsdCl7Y29uc3Qgbj1lLnJvb3QKO24ua2luZD10LG4uc3VibGFuZ3VhZ2U9ITAsdGhpcy5hZGQobil9dG9IVE1MKCl7CnJldHVybiBuZXcgYyh0aGlzLHRoaXMub3B0aW9ucykudmFsdWUoKX1maW5hbGl6ZSgpe3JldHVybiEwfX1mdW5jdGlvbiBkKGUpewpyZXR1cm4gZT8ic3RyaW5nIj09dHlwZW9mIGU/ZTplLnNvdXJjZTpudWxsfQpjb25zdCBoPSJbYS16QS1aXVxcdyoiLGY9IlthLXpBLVpfXVxcdyoiLHA9IlxcYlxcZCsoXFwuXFxkKyk/IixtPSIoLT8pKFxcYjBbeFhdW2EtZkEtRjAtOV0rfChcXGJcXGQrKFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWy0rXT9cXGQrKT8pIixiPSJcXGIoMGJbMDFdKykiLHg9ewpiZWdpbjoiXFxcXFtcXHNcXFNdIixyZWxldmFuY2U6MH0sRT17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiInIixlbmQ6IiciLAppbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOlt4XX0sdj17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciJyxlbmQ6JyInLAppbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOlt4XX0sXz17CmJlZ2luOi9cYihhfGFufHRoZXxhcmV8SSdtfGlzbid0fGRvbid0fGRvZXNuJ3R8d29uJ3R8YnV0fGp1c3R8c2hvdWxkfHByZXR0eXxzaW1wbHl8ZW5vdWdofGdvbm5hfGdvaW5nfHd0Znxzb3xzdWNofHdpbGx8eW91fHlvdXJ8dGhleXxsaWtlfG1vcmUpXGIvCn0sdz0oZSx0LG49e30pPT57Y29uc3Qgcz1hKHtjbGFzc05hbWU6ImNvbW1lbnQiLGJlZ2luOmUsZW5kOnQsY29udGFpbnM6W119LG4pCjtyZXR1cm4gcy5jb250YWlucy5wdXNoKF8pLHMuY29udGFpbnMucHVzaCh7Y2xhc3NOYW1lOiJkb2N0YWciLApiZWdpbjoiKD86VE9ET3xGSVhNRXxOT1RFfEJVR3xPUFRJTUlaRXxIQUNLfFhYWCk6IixyZWxldmFuY2U6MH0pLHMKfSxOPXcoIi8vIiwiJCIpLHk9dygiL1xcKiIsIlxcKi8iKSxSPXcoIiMiLCIkIik7dmFyIGs9T2JqZWN0LmZyZWV6ZSh7Cl9fcHJvdG9fXzpudWxsLElERU5UX1JFOmgsVU5ERVJTQ09SRV9JREVOVF9SRTpmLE5VTUJFUl9SRTpwLENfTlVNQkVSX1JFOm0sCkJJTkFSWV9OVU1CRVJfUkU6YiwKUkVfU1RBUlRFUlNfUkU6IiF8IT18IT09fCV8JT18JnwmJnwmPXxcXCp8XFwqPXxcXCt8XFwrPXwsfC18LT18Lz18L3w6fDt8PDx8PDw9fDw9fDx8PT09fD09fD18Pj4+PXw+Pj18Pj18Pj4+fD4+fD58XFw/fFxcW3xcXHt8XFwofFxcXnxcXF49fFxcfHxcXHw9fFxcfFxcfHx+IiwKU0hFQkFORzooZT17fSk9Pntjb25zdCB0PS9eIyFbIF0qXC8vCjtyZXR1cm4gZS5iaW5hcnkmJihlLmJlZ2luPSgoLi4uZSk9PmUubWFwKChlPT5kKGUpKSkuam9pbigiIikpKHQsLy4qXGIvLGUuYmluYXJ5LC9cYi4qLykpLAphKHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOnQsZW5kOi8kLyxyZWxldmFuY2U6MCwib246YmVnaW4iOihlLHQpPT57CjAhPT1lLmluZGV4JiZ0Lmlnbm9yZU1hdGNoKCl9fSxlKX0sQkFDS1NMQVNIX0VTQ0FQRTp4LEFQT1NfU1RSSU5HX01PREU6RSwKUVVPVEVfU1RSSU5HX01PREU6dixQSFJBU0FMX1dPUkRTX01PREU6XyxDT01NRU5UOncsQ19MSU5FX0NPTU1FTlRfTU9ERTpOLApDX0JMT0NLX0NPTU1FTlRfTU9ERTp5LEhBU0hfQ09NTUVOVF9NT0RFOlIsTlVNQkVSX01PREU6e2NsYXNzTmFtZToibnVtYmVyIiwKYmVnaW46cCxyZWxldmFuY2U6MH0sQ19OVU1CRVJfTU9ERTp7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOm0scmVsZXZhbmNlOjB9LApCSU5BUllfTlVNQkVSX01PREU6e2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjpiLHJlbGV2YW5jZTowfSxDU1NfTlVNQkVSX01PREU6ewpjbGFzc05hbWU6Im51bWJlciIsCmJlZ2luOnArIiglfGVtfGV4fGNofHJlbXx2d3x2aHx2bWlufHZtYXh8Y218bW18aW58cHR8cGN8cHh8ZGVnfGdyYWR8cmFkfHR1cm58c3xtc3xIenxrSHp8ZHBpfGRwY218ZHBweCk/IiwKcmVsZXZhbmNlOjB9LFJFR0VYUF9NT0RFOntiZWdpbjovKD89XC9bXi9cbl0qXC8pLyxjb250YWluczpbe2NsYXNzTmFtZToicmVnZXhwIiwKYmVnaW46L1wvLyxlbmQ6L1wvW2dpbXV5XSovLGlsbGVnYWw6L1xuLyxjb250YWluczpbeCx7YmVnaW46L1xbLyxlbmQ6L1xdLywKcmVsZXZhbmNlOjAsY29udGFpbnM6W3hdfV19XX0sVElUTEVfTU9ERTp7Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46aCxyZWxldmFuY2U6MAp9LFVOREVSU0NPUkVfVElUTEVfTU9ERTp7Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46ZixyZWxldmFuY2U6MH0sTUVUSE9EX0dVQVJEOnsKYmVnaW46IlxcLlxccypbYS16QS1aX11cXHcqIixyZWxldmFuY2U6MH0sRU5EX1NBTUVfQVNfQkVHSU46ZT0+T2JqZWN0LmFzc2lnbihlLHsKIm9uOmJlZ2luIjooZSx0KT0+e3QuZGF0YS5fYmVnaW5NYXRjaD1lWzFdfSwib246ZW5kIjooZSx0KT0+ewp0LmRhdGEuX2JlZ2luTWF0Y2ghPT1lWzFdJiZ0Lmlnbm9yZU1hdGNoKCl9fSl9KQo7Y29uc3QgTT1bIm9mIiwiYW5kIiwiZm9yIiwiaW4iLCJub3QiLCJvciIsImlmIiwidGhlbiIsInBhcmVudCIsImxpc3QiLCJ2YWx1ZSJdCjtmdW5jdGlvbiBPKGUpe2Z1bmN0aW9uIHQodCxuKXsKcmV0dXJuIFJlZ0V4cChkKHQpLCJtIisoZS5jYXNlX2luc2Vuc2l0aXZlPyJpIjoiIikrKG4/ImciOiIiKSl9Y2xhc3MgbnsKY29uc3RydWN0b3IoKXsKdGhpcy5tYXRjaEluZGV4ZXM9e30sdGhpcy5yZWdleGVzPVtdLHRoaXMubWF0Y2hBdD0xLHRoaXMucG9zaXRpb249MH0KYWRkUnVsZShlLHQpewp0LnBvc2l0aW9uPXRoaXMucG9zaXRpb24rKyx0aGlzLm1hdGNoSW5kZXhlc1t0aGlzLm1hdGNoQXRdPXQsdGhpcy5yZWdleGVzLnB1c2goW3QsZV0pLAp0aGlzLm1hdGNoQXQrPShlPT5SZWdFeHAoZS50b1N0cmluZygpKyJ8IikuZXhlYygiIikubGVuZ3RoLTEpKGUpKzF9Y29tcGlsZSgpewowPT09dGhpcy5yZWdleGVzLmxlbmd0aCYmKHRoaXMuZXhlYz0oKT0+bnVsbCkKO2NvbnN0IGU9dGhpcy5yZWdleGVzLm1hcCgoZT0+ZVsxXSkpO3RoaXMubWF0Y2hlclJlPXQoKChlLHQ9InwiKT0+ewpjb25zdCBuPS9cWyg/OlteXFxcXV18XFwuKSpcXXxcKFw/P3xcXChbMS05XVswLTldKil8XFwuLztsZXQgcz0wLHI9IiIKO2ZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXtzKz0xO2NvbnN0IGk9cztsZXQgbz1kKGVbYV0pCjtmb3IoYT4wJiYocis9dCkscis9IigiO28ubGVuZ3RoPjA7KXtjb25zdCBlPW4uZXhlYyhvKTtpZihudWxsPT1lKXtyKz1vO2JyZWFrfQpyKz1vLnN1YnN0cmluZygwLGUuaW5kZXgpLApvPW8uc3Vic3RyaW5nKGUuaW5kZXgrZVswXS5sZW5ndGgpLCJcXCI9PT1lWzBdWzBdJiZlWzFdP3IrPSJcXCIrKE51bWJlcihlWzFdKStpKToocis9ZVswXSwKIigiPT09ZVswXSYmcysrKX1yKz0iKSJ9cmV0dXJuIHJ9KShlKSwhMCksdGhpcy5sYXN0SW5kZXg9MH1leGVjKGUpewp0aGlzLm1hdGNoZXJSZS5sYXN0SW5kZXg9dGhpcy5sYXN0SW5kZXg7Y29uc3QgdD10aGlzLm1hdGNoZXJSZS5leGVjKGUpCjtpZighdClyZXR1cm4gbnVsbAo7Y29uc3Qgbj10LmZpbmRJbmRleCgoKGUsdCk9PnQ+MCYmdm9pZCAwIT09ZSkpLHM9dGhpcy5tYXRjaEluZGV4ZXNbbl0KO3JldHVybiB0LnNwbGljZSgwLG4pLE9iamVjdC5hc3NpZ24odCxzKX19Y2xhc3Mgc3tjb25zdHJ1Y3Rvcigpewp0aGlzLnJ1bGVzPVtdLHRoaXMubXVsdGlSZWdleGVzPVtdLAp0aGlzLmNvdW50PTAsdGhpcy5sYXN0SW5kZXg9MCx0aGlzLnJlZ2V4SW5kZXg9MH1nZXRNYXRjaGVyKGUpewppZih0aGlzLm11bHRpUmVnZXhlc1tlXSlyZXR1cm4gdGhpcy5tdWx0aVJlZ2V4ZXNbZV07Y29uc3QgdD1uZXcgbgo7cmV0dXJuIHRoaXMucnVsZXMuc2xpY2UoZSkuZm9yRWFjaCgoKFtlLG5dKT0+dC5hZGRSdWxlKGUsbikpKSwKdC5jb21waWxlKCksdGhpcy5tdWx0aVJlZ2V4ZXNbZV09dCx0fXJlc3VtaW5nU2NhbkF0U2FtZVBvc2l0aW9uKCl7CnJldHVybiAwIT09dGhpcy5yZWdleEluZGV4fWNvbnNpZGVyQWxsKCl7dGhpcy5yZWdleEluZGV4PTB9YWRkUnVsZShlLHQpewp0aGlzLnJ1bGVzLnB1c2goW2UsdF0pLCJiZWdpbiI9PT10LnR5cGUmJnRoaXMuY291bnQrK31leGVjKGUpewpjb25zdCB0PXRoaXMuZ2V0TWF0Y2hlcih0aGlzLnJlZ2V4SW5kZXgpO3QubGFzdEluZGV4PXRoaXMubGFzdEluZGV4CjtsZXQgbj10LmV4ZWMoZSkKO2lmKHRoaXMucmVzdW1pbmdTY2FuQXRTYW1lUG9zaXRpb24oKSlpZihuJiZuLmluZGV4PT09dGhpcy5sYXN0SW5kZXgpO2Vsc2V7CmNvbnN0IHQ9dGhpcy5nZXRNYXRjaGVyKDApO3QubGFzdEluZGV4PXRoaXMubGFzdEluZGV4KzEsbj10LmV4ZWMoZSl9CnJldHVybiBuJiYodGhpcy5yZWdleEluZGV4Kz1uLnBvc2l0aW9uKzEsCnRoaXMucmVnZXhJbmRleD09PXRoaXMuY291bnQmJnRoaXMuY29uc2lkZXJBbGwoKSksbn19ZnVuY3Rpb24gcihlLHQpewoiLiI9PT1lLmlucHV0W2UuaW5kZXgtMV0mJnQuaWdub3JlTWF0Y2goKX0KaWYoZS5jb250YWlucyYmZS5jb250YWlucy5pbmNsdWRlcygic2VsZiIpKXRocm93IEVycm9yKCJFUlI6IGNvbnRhaW5zIGBzZWxmYCBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoZSB0b3AtbGV2ZWwgb2YgYSBsYW5ndWFnZS4gIFNlZSBkb2N1bWVudGF0aW9uLiIpCjtyZXR1cm4gZS5jbGFzc05hbWVBbGlhc2VzPWEoZS5jbGFzc05hbWVBbGlhc2VzfHx7fSksZnVuY3Rpb24gbihpLG8pe2NvbnN0IGw9aQo7aWYoaS5jb21waWxlZClyZXR1cm4gbAo7aS5jb21waWxlZD0hMCxpLl9fYmVmb3JlQmVnaW49bnVsbCxpLmtleXdvcmRzPWkua2V5d29yZHN8fGkuYmVnaW5LZXl3b3Jkcwo7bGV0IGM9bnVsbAo7aWYoIm9iamVjdCI9PXR5cGVvZiBpLmtleXdvcmRzJiYoYz1pLmtleXdvcmRzLiRwYXR0ZXJuLGRlbGV0ZSBpLmtleXdvcmRzLiRwYXR0ZXJuKSwKaS5rZXl3b3JkcyYmKGkua2V5d29yZHM9KChlLHQpPT57Y29uc3Qgbj17fQo7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP3MoImtleXdvcmQiLGUpOk9iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9PntzKHQsZVt0XSkKfSkpLG47ZnVuY3Rpb24gcyhlLHMpe3QmJihzPXMudG9Mb3dlckNhc2UoKSkscy5zcGxpdCgiICIpLmZvckVhY2goKHQ9PnsKY29uc3Qgcz10LnNwbGl0KCJ8Iik7bltzWzBdXT1bZSxBKHNbMF0sc1sxXSldfSkpfQp9KShpLmtleXdvcmRzLGUuY2FzZV9pbnNlbnNpdGl2ZSkpLAppLmxleGVtZXMmJmMpdGhyb3cgRXJyb3IoIkVSUjogUHJlZmVyIGBrZXl3b3Jkcy4kcGF0dGVybmAgdG8gYG1vZGUubGV4ZW1lc2AsIEJPVEggYXJlIG5vdCBhbGxvd2VkLiAoc2VlIG1vZGUgcmVmZXJlbmNlKSAiKQo7cmV0dXJuIGwua2V5d29yZFBhdHRlcm5SZT10KGkubGV4ZW1lc3x8Y3x8L1x3Ky8sITApLApvJiYoaS5iZWdpbktleXdvcmRzJiYoaS5iZWdpbj0iXFxiKCIraS5iZWdpbktleXdvcmRzLnNwbGl0KCIgIikuam9pbigifCIpKyIpKD8hXFwuKSg/PVxcYnxcXHMpIiwKaS5fX2JlZm9yZUJlZ2luPXIpLAppLmJlZ2lufHwoaS5iZWdpbj0vXEJ8XGIvKSxsLmJlZ2luUmU9dChpLmJlZ2luKSxpLmVuZFNhbWVBc0JlZ2luJiYoaS5lbmQ9aS5iZWdpbiksCmkuZW5kfHxpLmVuZHNXaXRoUGFyZW50fHwoaS5lbmQ9L1xCfFxiLyksCmkuZW5kJiYobC5lbmRSZT10KGkuZW5kKSksbC50ZXJtaW5hdG9yX2VuZD1kKGkuZW5kKXx8IiIsCmkuZW5kc1dpdGhQYXJlbnQmJm8udGVybWluYXRvcl9lbmQmJihsLnRlcm1pbmF0b3JfZW5kKz0oaS5lbmQ/InwiOiIiKStvLnRlcm1pbmF0b3JfZW5kKSksCmkuaWxsZWdhbCYmKGwuaWxsZWdhbFJlPXQoaS5pbGxlZ2FsKSksCnZvaWQgMD09PWkucmVsZXZhbmNlJiYoaS5yZWxldmFuY2U9MSksaS5jb250YWluc3x8KGkuY29udGFpbnM9W10pLAppLmNvbnRhaW5zPVtdLmNvbmNhdCguLi5pLmNvbnRhaW5zLm1hcCgoZT0+KGU9PihlLnZhcmlhbnRzJiYhZS5jYWNoZWRfdmFyaWFudHMmJihlLmNhY2hlZF92YXJpYW50cz1lLnZhcmlhbnRzLm1hcCgodD0+YShlLHsKdmFyaWFudHM6bnVsbH0sdCkpKSksZS5jYWNoZWRfdmFyaWFudHM/ZS5jYWNoZWRfdmFyaWFudHM6TChlKT9hKGUsewpzdGFydHM6ZS5zdGFydHM/YShlLnN0YXJ0cyk6bnVsbAp9KTpPYmplY3QuaXNGcm96ZW4oZSk/YShlKTplKSkoInNlbGYiPT09ZT9pOmUpKSkpLGkuY29udGFpbnMuZm9yRWFjaCgoZT0+e24oZSxsKQp9KSksaS5zdGFydHMmJm4oaS5zdGFydHMsbyksbC5tYXRjaGVyPShlPT57Y29uc3QgdD1uZXcgcwo7cmV0dXJuIGUuY29udGFpbnMuZm9yRWFjaCgoZT0+dC5hZGRSdWxlKGUuYmVnaW4se3J1bGU6ZSx0eXBlOiJiZWdpbiIKfSkpKSxlLnRlcm1pbmF0b3JfZW5kJiZ0LmFkZFJ1bGUoZS50ZXJtaW5hdG9yX2VuZCx7dHlwZToiZW5kIgp9KSxlLmlsbGVnYWwmJnQuYWRkUnVsZShlLmlsbGVnYWwse3R5cGU6ImlsbGVnYWwifSksdH0pKGwpLGx9KGUpfWZ1bmN0aW9uIEwoZSl7CnJldHVybiEhZSYmKGUuZW5kc1dpdGhQYXJlbnR8fEwoZS5zdGFydHMpKX1mdW5jdGlvbiBBKGUsdCl7CnJldHVybiB0P051bWJlcih0KTooZT0+TS5pbmNsdWRlcyhlLnRvTG93ZXJDYXNlKCkpKShlKT8wOjF9ZnVuY3Rpb24gaihlKXsKY29uc3QgdD17cHJvcHM6WyJsYW5ndWFnZSIsImNvZGUiLCJhdXRvZGV0ZWN0Il0sZGF0YTooKT0+KHtkZXRlY3RlZExhbmd1YWdlOiIiLAp1bmtub3duTGFuZ3VhZ2U6ITF9KSxjb21wdXRlZDp7Y2xhc3NOYW1lKCl7CnJldHVybiB0aGlzLnVua25vd25MYW5ndWFnZT8iIjoiaGxqcyAiK3RoaXMuZGV0ZWN0ZWRMYW5ndWFnZX0saGlnaGxpZ2h0ZWQoKXsKaWYoIXRoaXMuYXV0b0RldGVjdCYmIWUuZ2V0TGFuZ3VhZ2UodGhpcy5sYW5ndWFnZSkpcmV0dXJuIGNvbnNvbGUud2FybihgVGhlIGxhbmd1YWdlICIke3RoaXMubGFuZ3VhZ2V9IiB5b3Ugc3BlY2lmaWVkIGNvdWxkIG5vdCBiZSBmb3VuZC5gKSwKdGhpcy51bmtub3duTGFuZ3VhZ2U9ITAscih0aGlzLmNvZGUpO2xldCB0CjtyZXR1cm4gdGhpcy5hdXRvRGV0ZWN0Pyh0PWUuaGlnaGxpZ2h0QXV0byh0aGlzLmNvZGUpLAp0aGlzLmRldGVjdGVkTGFuZ3VhZ2U9dC5sYW5ndWFnZSk6KHQ9ZS5oaWdobGlnaHQodGhpcy5sYW5ndWFnZSx0aGlzLmNvZGUsdGhpcy5pZ25vcmVJbGxlZ2FscyksCnRoaXMuZGV0ZWN0ZWRMYW5ndWFnZT10aGlzLmxhbmd1YWdlKSx0LnZhbHVlfSxhdXRvRGV0ZWN0KCl7CnJldHVybiEodGhpcy5sYW5ndWFnZSYmKGU9dGhpcy5hdXRvZGV0ZWN0LCFlJiYiIiE9PWUpKTt2YXIgZX0sCmlnbm9yZUlsbGVnYWxzOigpPT4hMH0scmVuZGVyKGUpe3JldHVybiBlKCJwcmUiLHt9LFtlKCJjb2RlIix7CmNsYXNzOnRoaXMuY2xhc3NOYW1lLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5oaWdobGlnaHRlZH19KV0pfX07cmV0dXJuewpDb21wb25lbnQ6dCxWdWVQbHVnaW46e2luc3RhbGwoZSl7ZS5jb21wb25lbnQoImhpZ2hsaWdodGpzIix0KX19fX0KY29uc3QgST1yLFM9YSx7bm9kZVN0cmVhbTpULG1lcmdlU3RyZWFtczpCfT1vLFA9U3ltYm9sKCJub21hdGNoIik7cmV0dXJuKGU9PnsKY29uc3Qgbj1bXSxyPU9iamVjdC5jcmVhdGUobnVsbCksYT1PYmplY3QuY3JlYXRlKG51bGwpLGk9W107bGV0IG89ITAKO2NvbnN0IGw9LyheKDxbXj5dKz58XHR8KSt8XG4pL2dtLGM9IkNvdWxkIG5vdCBmaW5kIHRoZSBsYW5ndWFnZSAne30nLCBkaWQgeW91IGZvcmdldCB0byBsb2FkL2luY2x1ZGUgYSBsYW5ndWFnZSBtb2R1bGU/Iix1PXsKZGlzYWJsZUF1dG9kZXRlY3Q6ITAsbmFtZToiUGxhaW4gdGV4dCIsY29udGFpbnM6W119O2xldCBkPXsKbm9IaWdobGlnaHRSZTovXihuby0/aGlnaGxpZ2h0KSQvaSwKbGFuZ3VhZ2VEZXRlY3RSZTovXGJsYW5nKD86dWFnZSk/LShbXHctXSspXGIvaSxjbGFzc1ByZWZpeDoiaGxqcy0iLAp0YWJSZXBsYWNlOm51bGwsdXNlQlI6ITEsbGFuZ3VhZ2VzOm51bGwsX19lbWl0dGVyOmd9O2Z1bmN0aW9uIGgoZSl7CnJldHVybiBkLm5vSGlnaGxpZ2h0UmUudGVzdChlKX1mdW5jdGlvbiBmKGUsdCxuLHMpe2NvbnN0IHI9e2NvZGU6dCxsYW5ndWFnZTplfQo7TigiYmVmb3JlOmhpZ2hsaWdodCIscik7Y29uc3QgYT1yLnJlc3VsdD9yLnJlc3VsdDpwKHIubGFuZ3VhZ2Usci5jb2RlLG4scykKO3JldHVybiBhLmNvZGU9ci5jb2RlLE4oImFmdGVyOmhpZ2hsaWdodCIsYSksYX1mdW5jdGlvbiBwKGUsdCxuLGEpe2NvbnN0IGk9dAo7ZnVuY3Rpb24gbChlLHQpe2NvbnN0IG49Xy5jYXNlX2luc2Vuc2l0aXZlP3RbMF0udG9Mb3dlckNhc2UoKTp0WzBdCjtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUua2V5d29yZHMsbikmJmUua2V5d29yZHNbbl19CmZ1bmN0aW9uIHUoKXtudWxsIT15LnN1Ykxhbmd1YWdlPygoKT0+e2lmKCIiPT09TSlyZXR1cm47bGV0IGU9bnVsbAo7aWYoInN0cmluZyI9PXR5cGVvZiB5LnN1Ykxhbmd1YWdlKXsKaWYoIXJbeS5zdWJMYW5ndWFnZV0pcmV0dXJuIHZvaWQgay5hZGRUZXh0KE0pCjtlPXAoeS5zdWJMYW5ndWFnZSxNLCEwLFJbeS5zdWJMYW5ndWFnZV0pLFJbeS5zdWJMYW5ndWFnZV09ZS50b3AKfWVsc2UgZT1tKE0seS5zdWJMYW5ndWFnZS5sZW5ndGg/eS5zdWJMYW5ndWFnZTpudWxsKQo7eS5yZWxldmFuY2U+MCYmKEwrPWUucmVsZXZhbmNlKSxrLmFkZFN1Ymxhbmd1YWdlKGUuZW1pdHRlcixlLmxhbmd1YWdlKQp9KSgpOigoKT0+e2lmKCF5LmtleXdvcmRzKXJldHVybiB2b2lkIGsuYWRkVGV4dChNKTtsZXQgZT0wCjt5LmtleXdvcmRQYXR0ZXJuUmUubGFzdEluZGV4PTA7bGV0IHQ9eS5rZXl3b3JkUGF0dGVyblJlLmV4ZWMoTSksbj0iIjtmb3IoO3Q7KXsKbis9TS5zdWJzdHJpbmcoZSx0LmluZGV4KTtjb25zdCBzPWwoeSx0KTtpZihzKXtjb25zdFtlLHJdPXMKO2suYWRkVGV4dChuKSxuPSIiLEwrPXI7Y29uc3QgYT1fLmNsYXNzTmFtZUFsaWFzZXNbZV18fGU7ay5hZGRLZXl3b3JkKHRbMF0sYSkKfWVsc2Ugbis9dFswXTtlPXkua2V5d29yZFBhdHRlcm5SZS5sYXN0SW5kZXgsdD15LmtleXdvcmRQYXR0ZXJuUmUuZXhlYyhNKX0Kbis9TS5zdWJzdHIoZSksay5hZGRUZXh0KG4pfSkoKSxNPSIifWZ1bmN0aW9uIGcoZSl7CnJldHVybiBlLmNsYXNzTmFtZSYmay5vcGVuTm9kZShfLmNsYXNzTmFtZUFsaWFzZXNbZS5jbGFzc05hbWVdfHxlLmNsYXNzTmFtZSksCnk9T2JqZWN0LmNyZWF0ZShlLHtwYXJlbnQ6e3ZhbHVlOnl9fSkseX1mdW5jdGlvbiBoKGUsdCxuKXtsZXQgcj0oKGUsdCk9PnsKY29uc3Qgbj1lJiZlLmV4ZWModCk7cmV0dXJuIG4mJjA9PT1uLmluZGV4fSkoZS5lbmRSZSxuKTtpZihyKXtpZihlWyJvbjplbmQiXSl7CmNvbnN0IG49bmV3IHMoZSk7ZVsib246ZW5kIl0odCxuKSxuLmlnbm9yZSYmKHI9ITEpfWlmKHIpewpmb3IoO2UuZW5kc1BhcmVudCYmZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9fQppZihlLmVuZHNXaXRoUGFyZW50KXJldHVybiBoKGUucGFyZW50LHQsbil9ZnVuY3Rpb24gZihlKXsKcmV0dXJuIDA9PT15Lm1hdGNoZXIucmVnZXhJbmRleD8oTSs9ZVswXSwxKTooUz0hMCwwKX1mdW5jdGlvbiBiKGUpewpjb25zdCB0PWVbMF0sbj1pLnN1YnN0cihlLmluZGV4KSxzPWgoeSxlLG4pO2lmKCFzKXJldHVybiBQO2NvbnN0IHI9eQo7ci5za2lwP00rPXQ6KHIucmV0dXJuRW5kfHxyLmV4Y2x1ZGVFbmR8fChNKz10KSx1KCksci5leGNsdWRlRW5kJiYoTT10KSk7ZG97CnkuY2xhc3NOYW1lJiZrLmNsb3NlTm9kZSgpLHkuc2tpcHx8eS5zdWJMYW5ndWFnZXx8KEwrPXkucmVsZXZhbmNlKSx5PXkucGFyZW50Cn13aGlsZSh5IT09cy5wYXJlbnQpCjtyZXR1cm4gcy5zdGFydHMmJihzLmVuZFNhbWVBc0JlZ2luJiYocy5zdGFydHMuZW5kUmU9cy5lbmRSZSksCmcocy5zdGFydHMpKSxyLnJldHVybkVuZD8wOnQubGVuZ3RofWxldCB4PXt9O2Z1bmN0aW9uIEUodCxyKXtjb25zdCBhPXImJnJbMF0KO2lmKE0rPXQsbnVsbD09YSlyZXR1cm4gdSgpLDAKO2lmKCJiZWdpbiI9PT14LnR5cGUmJiJlbmQiPT09ci50eXBlJiZ4LmluZGV4PT09ci5pbmRleCYmIiI9PT1hKXsKaWYoTSs9aS5zbGljZShyLmluZGV4LHIuaW5kZXgrMSksIW8pe2NvbnN0IHQ9RXJyb3IoIjAgd2lkdGggbWF0Y2ggcmVnZXgiKQo7dGhyb3cgdC5sYW5ndWFnZU5hbWU9ZSx0LmJhZFJ1bGU9eC5ydWxlLHR9cmV0dXJuIDF9CmlmKHg9ciwiYmVnaW4iPT09ci50eXBlKXJldHVybiBmdW5jdGlvbihlKXsKY29uc3QgdD1lWzBdLG49ZS5ydWxlLHI9bmV3IHMobiksYT1bbi5fX2JlZm9yZUJlZ2luLG5bIm9uOmJlZ2luIl1dCjtmb3IoY29uc3QgbiBvZiBhKWlmKG4mJihuKGUsciksci5pZ25vcmUpKXJldHVybiBmKHQpCjtyZXR1cm4gbiYmbi5lbmRTYW1lQXNCZWdpbiYmKG4uZW5kUmU9UmVnRXhwKHQucmVwbGFjZSgvWy0vXFxeJCorPy4oKXxbXF17fV0vZywiXFwkJiIpLCJtIikpLApuLnNraXA/TSs9dDoobi5leGNsdWRlQmVnaW4mJihNKz10KSwKdSgpLG4ucmV0dXJuQmVnaW58fG4uZXhjbHVkZUJlZ2lufHwoTT10KSksZyhuKSxuLnJldHVybkJlZ2luPzA6dC5sZW5ndGh9KHIpCjtpZigiaWxsZWdhbCI9PT1yLnR5cGUmJiFuKXsKY29uc3QgZT1FcnJvcignSWxsZWdhbCBsZXhlbWUgIicrYSsnIiBmb3IgbW9kZSAiJysoeS5jbGFzc05hbWV8fCI8dW5uYW1lZD4iKSsnIicpCjt0aHJvdyBlLm1vZGU9eSxlfWlmKCJlbmQiPT09ci50eXBlKXtjb25zdCBlPWIocik7aWYoZSE9PVApcmV0dXJuIGV9CmlmKCJpbGxlZ2FsIj09PXIudHlwZSYmIiI9PT1hKXJldHVybiAxCjtpZihqPjFlNSYmaj4zKnIuaW5kZXgpdGhyb3cgRXJyb3IoInBvdGVudGlhbCBpbmZpbml0ZSBsb29wLCB3YXkgbW9yZSBpdGVyYXRpb25zIHRoYW4gbWF0Y2hlcyIpCjtyZXR1cm4gTSs9YSxhLmxlbmd0aH1jb25zdCBfPXYoZSk7aWYoIV8pdGhyb3cgY29uc29sZS5lcnJvcihjLnJlcGxhY2UoInt9IixlKSksCkVycm9yKCdVbmtub3duIGxhbmd1YWdlOiAiJytlKyciJyk7Y29uc3Qgdz1PKF8pO2xldCBOPSIiLHk9YXx8dwo7Y29uc3QgUj17fSxrPW5ldyBkLl9fZW1pdHRlcihkKTsoKCk9Pntjb25zdCBlPVtdCjtmb3IobGV0IHQ9eTt0IT09Xzt0PXQucGFyZW50KXQuY2xhc3NOYW1lJiZlLnVuc2hpZnQodC5jbGFzc05hbWUpCjtlLmZvckVhY2goKGU9Pmsub3Blbk5vZGUoZSkpKX0pKCk7bGV0IE09IiIsTD0wLEE9MCxqPTAsUz0hMTt0cnl7CmZvcih5Lm1hdGNoZXIuY29uc2lkZXJBbGwoKTs7KXsKaisrLFM/Uz0hMTp5Lm1hdGNoZXIuY29uc2lkZXJBbGwoKSx5Lm1hdGNoZXIubGFzdEluZGV4PUEKO2NvbnN0IGU9eS5tYXRjaGVyLmV4ZWMoaSk7aWYoIWUpYnJlYWs7Y29uc3QgdD1FKGkuc3Vic3RyaW5nKEEsZS5pbmRleCksZSkKO0E9ZS5pbmRleCt0fXJldHVybiBFKGkuc3Vic3RyKEEpKSxrLmNsb3NlQWxsTm9kZXMoKSxrLmZpbmFsaXplKCksTj1rLnRvSFRNTCgpLHsKcmVsZXZhbmNlOkwsdmFsdWU6TixsYW5ndWFnZTplLGlsbGVnYWw6ITEsZW1pdHRlcjprLHRvcDp5fX1jYXRjaCh0KXsKaWYodC5tZXNzYWdlJiZ0Lm1lc3NhZ2UuaW5jbHVkZXMoIklsbGVnYWwiKSlyZXR1cm57aWxsZWdhbDohMCxpbGxlZ2FsQnk6ewptc2c6dC5tZXNzYWdlLGNvbnRleHQ6aS5zbGljZShBLTEwMCxBKzEwMCksbW9kZTp0Lm1vZGV9LHNvZmFyOk4scmVsZXZhbmNlOjAsCnZhbHVlOkkoaSksZW1pdHRlcjprfTtpZihvKXJldHVybntpbGxlZ2FsOiExLHJlbGV2YW5jZTowLHZhbHVlOkkoaSksZW1pdHRlcjprLApsYW5ndWFnZTplLHRvcDp5LGVycm9yUmFpc2VkOnR9O3Rocm93IHR9fWZ1bmN0aW9uIG0oZSx0KXsKdD10fHxkLmxhbmd1YWdlc3x8T2JqZWN0LmtleXMocik7Y29uc3Qgbj0oZT0+e2NvbnN0IHQ9e3JlbGV2YW5jZTowLAplbWl0dGVyOm5ldyBkLl9fZW1pdHRlcihkKSx2YWx1ZTpJKGUpLGlsbGVnYWw6ITEsdG9wOnV9CjtyZXR1cm4gdC5lbWl0dGVyLmFkZFRleHQoZSksdH0pKGUpLHM9dC5maWx0ZXIodikuZmlsdGVyKHcpLm1hcCgodD0+cCh0LGUsITEpKSkKO3MudW5zaGlmdChuKTtjb25zdCBhPXMuc29ydCgoKGUsdCk9PnsKaWYoZS5yZWxldmFuY2UhPT10LnJlbGV2YW5jZSlyZXR1cm4gdC5yZWxldmFuY2UtZS5yZWxldmFuY2UKO2lmKGUubGFuZ3VhZ2UmJnQubGFuZ3VhZ2Upe2lmKHYoZS5sYW5ndWFnZSkuc3VwZXJzZXRPZj09PXQubGFuZ3VhZ2UpcmV0dXJuIDEKO2lmKHYodC5sYW5ndWFnZSkuc3VwZXJzZXRPZj09PWUubGFuZ3VhZ2UpcmV0dXJuLTF9cmV0dXJuIDB9KSksW2ksb109YSxsPWkKO3JldHVybiBsLnNlY29uZF9iZXN0PW8sbH1mdW5jdGlvbiBiKGUpewpyZXR1cm4gZC50YWJSZXBsYWNlfHxkLnVzZUJSP2UucmVwbGFjZShsLChlPT4iXG4iPT09ZT9kLnVzZUJSPyI8YnI+IjplOmQudGFiUmVwbGFjZT9lLnJlcGxhY2UoL1x0L2csZC50YWJSZXBsYWNlKTplKSk6ZQp9ZnVuY3Rpb24geChlKXtsZXQgdD1udWxsO2NvbnN0IG49KGU9PntsZXQgdD1lLmNsYXNzTmFtZSsiICIKO3QrPWUucGFyZW50Tm9kZT9lLnBhcmVudE5vZGUuY2xhc3NOYW1lOiIiO2NvbnN0IG49ZC5sYW5ndWFnZURldGVjdFJlLmV4ZWModCkKO2lmKG4pe2NvbnN0IHQ9dihuWzFdKQo7cmV0dXJuIHR8fChjb25zb2xlLndhcm4oYy5yZXBsYWNlKCJ7fSIsblsxXSkpLGNvbnNvbGUud2FybigiRmFsbGluZyBiYWNrIHRvIG5vLWhpZ2hsaWdodCBtb2RlIGZvciB0aGlzIGJsb2NrLiIsZSkpLAp0P25bMV06Im5vLWhpZ2hsaWdodCJ9cmV0dXJuIHQuc3BsaXQoL1xzKy8pLmZpbmQoKGU9PmgoZSl8fHYoZSkpKX0pKGUpCjtpZihoKG4pKXJldHVybjtOKCJiZWZvcmU6aGlnaGxpZ2h0QmxvY2siLHtibG9jazplLGxhbmd1YWdlOm4KfSksZC51c2VCUj8odD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwKdC5pbm5lckhUTUw9ZS5pbm5lckhUTUwucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvPGJyWyAvXSo+L2csIlxuIikpOnQ9ZQo7Y29uc3Qgcz10LnRleHRDb250ZW50LHI9bj9mKG4scywhMCk6bShzKSxpPVQodCk7aWYoaS5sZW5ndGgpewpjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuaW5uZXJIVE1MPXIudmFsdWUsci52YWx1ZT1CKGksVChlKSxzKX0Kci52YWx1ZT1iKHIudmFsdWUpLE4oImFmdGVyOmhpZ2hsaWdodEJsb2NrIix7YmxvY2s6ZSxyZXN1bHQ6cgp9KSxlLmlubmVySFRNTD1yLnZhbHVlLGUuY2xhc3NOYW1lPSgoZSx0LG4pPT57Y29uc3Qgcz10P2FbdF06bixyPVtlLnRyaW0oKV0KO3JldHVybiBlLm1hdGNoKC9cYmhsanNcYi8pfHxyLnB1c2goImhsanMiKSwKZS5pbmNsdWRlcyhzKXx8ci5wdXNoKHMpLHIuam9pbigiICIpLnRyaW0oKQp9KShlLmNsYXNzTmFtZSxuLHIubGFuZ3VhZ2UpLGUucmVzdWx0PXtsYW5ndWFnZTpyLmxhbmd1YWdlLHJlOnIucmVsZXZhbmNlLApyZWxhdmFuY2U6ci5yZWxldmFuY2V9LHIuc2Vjb25kX2Jlc3QmJihlLnNlY29uZF9iZXN0PXsKbGFuZ3VhZ2U6ci5zZWNvbmRfYmVzdC5sYW5ndWFnZSxyZTpyLnNlY29uZF9iZXN0LnJlbGV2YW5jZSwKcmVsYXZhbmNlOnIuc2Vjb25kX2Jlc3QucmVsZXZhbmNlfSl9Y29uc3QgRT0oKT0+e2lmKEUuY2FsbGVkKXJldHVybjtFLmNhbGxlZD0hMAo7Y29uc3QgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJwcmUgY29kZSIpO24uZm9yRWFjaC5jYWxsKGUseCl9CjtmdW5jdGlvbiB2KGUpe3JldHVybiBlPShlfHwiIikudG9Mb3dlckNhc2UoKSxyW2VdfHxyW2FbZV1dfQpmdW5jdGlvbiBfKGUse2xhbmd1YWdlTmFtZTp0fSl7InN0cmluZyI9PXR5cGVvZiBlJiYoZT1bZV0pLGUuZm9yRWFjaCgoZT0+e2FbZV09dAp9KSl9ZnVuY3Rpb24gdyhlKXtjb25zdCB0PXYoZSk7cmV0dXJuIHQmJiF0LmRpc2FibGVBdXRvZGV0ZWN0fWZ1bmN0aW9uIE4oZSx0KXsKY29uc3Qgbj1lO2kuZm9yRWFjaCgoZT0+e2Vbbl0mJmVbbl0odCl9KSl9T2JqZWN0LmFzc2lnbihlLHtoaWdobGlnaHQ6ZiwKaGlnaGxpZ2h0QXV0bzptLApmaXhNYXJrdXA6ZT0+KGNvbnNvbGUud2FybigiZml4TWFya3VwIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBlbnRpcmVseSBpbiB2MTEuMCIpLApjb25zb2xlLndhcm4oIlBsZWFzZSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjUzNCIpLApiKGUpKSxoaWdobGlnaHRCbG9jazp4LGNvbmZpZ3VyZTplPT57CmUudXNlQlImJihjb25zb2xlLndhcm4oIid1c2VCUicgb3B0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBlbnRpcmVseSBpbiB2MTEuMCIpLApjb25zb2xlLndhcm4oIlBsZWFzZSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjU1OSIpKSwKZD1TKGQsZSl9LGluaXRIaWdobGlnaHRpbmc6RSxpbml0SGlnaGxpZ2h0aW5nT25Mb2FkOigpPT57CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixFLCExKX0scmVnaXN0ZXJMYW5ndWFnZToodCxuKT0+ewpsZXQgcz1udWxsO3RyeXtzPW4oZSl9Y2F0Y2goZSl7CmlmKGNvbnNvbGUuZXJyb3IoIkxhbmd1YWdlIGRlZmluaXRpb24gZm9yICd7fScgY291bGQgbm90IGJlIHJlZ2lzdGVyZWQuIi5yZXBsYWNlKCJ7fSIsdCkpLAohbyl0aHJvdyBlO2NvbnNvbGUuZXJyb3IoZSkscz11fQpzLm5hbWV8fChzLm5hbWU9dCksclt0XT1zLHMucmF3RGVmaW5pdGlvbj1uLmJpbmQobnVsbCxlKSwKcy5hbGlhc2VzJiZfKHMuYWxpYXNlcyx7bGFuZ3VhZ2VOYW1lOnR9KX0sbGlzdExhbmd1YWdlczooKT0+T2JqZWN0LmtleXMociksCmdldExhbmd1YWdlOnYscmVnaXN0ZXJBbGlhc2VzOl8scmVxdWlyZUxhbmd1YWdlOmU9PnsKY29uc29sZS53YXJuKCJyZXF1aXJlTGFuZ3VhZ2UgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluIHRoZSBmdXR1cmUuIiksCmNvbnNvbGUud2FybigiUGxlYXNlIHNlZSBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL3B1bGwvMjg0NCIpCjtjb25zdCB0PXYoZSk7aWYodClyZXR1cm4gdAo7dGhyb3cgRXJyb3IoIlRoZSAne30nIGxhbmd1YWdlIGlzIHJlcXVpcmVkLCBidXQgbm90IGxvYWRlZC4iLnJlcGxhY2UoInt9IixlKSl9LAphdXRvRGV0ZWN0aW9uOncsaW5oZXJpdDpTLGFkZFBsdWdpbjplPT57aS5wdXNoKGUpfSx2dWVQbHVnaW46aihlKS5WdWVQbHVnaW4KfSksZS5kZWJ1Z01vZGU9KCk9PntvPSExfSxlLnNhZmVNb2RlPSgpPT57bz0hMH0sZS52ZXJzaW9uU3RyaW5nPSIxMC40LjEiCjtmb3IoY29uc3QgZSBpbiBrKSJvYmplY3QiPT10eXBlb2Yga1tlXSYmdChrW2VdKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihlLGspLGUKfSkoe30pfSgpCjsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlJiYobW9kdWxlLmV4cG9ydHM9aGxqcyk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJjIiwoKCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZShlKXsKcmV0dXJuKCguLi5lKT0+ZS5tYXAoKGU9PihlPT5lPyJzdHJpbmciPT10eXBlb2YgZT9lOmUuc291cmNlOm51bGwpKGUpKSkuam9pbigiIikpKCIoIixlLCIpPyIpCn1yZXR1cm4gdD0+e2NvbnN0IG49KHQ9Pntjb25zdCBuPXQuQ09NTUVOVCgiLy8iLCIkIix7Y29udGFpbnM6W3tiZWdpbjovXFxcbi99XQp9KSxyPSJbYS16QS1aX11cXHcqOjoiLGE9IihkZWNsdHlwZVxcKGF1dG9cXCl8IitlKHIpKyJbYS16QS1aX11cXHcqIitlKCI8W148Pl0rPiIpKyIpIixzPXsKY2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiXFxiW2EtelxcZF9dKl90XFxiIn0saT17Y2xhc3NOYW1lOiJzdHJpbmciLAp2YXJpYW50czpbe2JlZ2luOicodTg/fFV8TCk/IicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLApjb250YWluczpbdC5CQUNLU0xBU0hfRVNDQVBFXX0sewpiZWdpbjoiKHU4P3xVfEwpPycoXFxcXCh4WzAtOUEtRmEtZl17Mn18dVswLTlBLUZhLWZdezQsOH18WzAtN117M318XFxTKXwuKSIsCmVuZDoiJyIsaWxsZWdhbDoiLiJ9LHQuRU5EX1NBTUVfQVNfQkVHSU4oewpiZWdpbjovKD86dTg/fFV8TCk/UiIoW14oKVxcIF17MCwxNn0pXCgvLGVuZDovXCkoW14oKVxcIF17MCwxNn0pIi99KV19LG89ewpjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjoiXFxiKDBiWzAxJ10rKSJ9LHsKYmVnaW46IigtPylcXGIoW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykodXxVfGx8THx1bHxVTHxmfEZ8YnxCKSJ9LHsKYmVnaW46IigtPykoXFxiMFt4WF1bYS1mQS1GMC05J10rfChcXGJbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKShbZUVdWy0rXT9bXFxkJ10rKT8pIgp9XSxyZWxldmFuY2U6MH0sYz17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovI1xzKlthLXpdK1xiLyxlbmQ6LyQvLGtleXdvcmRzOnsKIm1ldGEta2V5d29yZCI6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHByYWdtYSBfUHJhZ21hIGlmZGVmIGlmbmRlZiBpbmNsdWRlIgp9LGNvbnRhaW5zOlt7YmVnaW46L1xcXG4vLHJlbGV2YW5jZTowfSx0LmluaGVyaXQoaSx7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyJ9KSx7CmNsYXNzTmFtZToibWV0YS1zdHJpbmciLGJlZ2luOi88Lio/Pi8sZW5kOi8kLyxpbGxlZ2FsOiJcXG4iCn0sbix0LkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sbD17Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46ZShyKSt0LklERU5UX1JFLApyZWxldmFuY2U6MH0sZD1lKHIpK3QuSURFTlRfUkUrIlxccypcXCgiLHU9ewprZXl3b3JkOiJpbnQgZmxvYXQgd2hpbGUgcHJpdmF0ZSBjaGFyIGNoYXI4X3QgY2hhcjE2X3QgY2hhcjMyX3QgY2F0Y2ggaW1wb3J0IG1vZHVsZSBleHBvcnQgdmlydHVhbCBvcGVyYXRvciBzaXplb2YgZHluYW1pY19jYXN0fDEwIHR5cGVkZWYgY29uc3RfY2FzdHwxMCBjb25zdCBmb3Igc3RhdGljX2Nhc3R8MTAgdW5pb24gbmFtZXNwYWNlIHVuc2lnbmVkIGxvbmcgdm9sYXRpbGUgc3RhdGljIHByb3RlY3RlZCBib29sIHRlbXBsYXRlIG11dGFibGUgaWYgcHVibGljIGZyaWVuZCBkbyBnb3RvIGF1dG8gdm9pZCBlbnVtIGVsc2UgYnJlYWsgZXh0ZXJuIHVzaW5nIGFzbSBjYXNlIHR5cGVpZCB3Y2hhcl90IHNob3J0IHJlaW50ZXJwcmV0X2Nhc3R8MTAgZGVmYXVsdCBkb3VibGUgcmVnaXN0ZXIgZXhwbGljaXQgc2lnbmVkIHR5cGVuYW1lIHRyeSB0aGlzIHN3aXRjaCBjb250aW51ZSBpbmxpbmUgZGVsZXRlIGFsaWduYXMgYWxpZ25vZiBjb25zdGV4cHIgY29uc3RldmFsIGNvbnN0aW5pdCBkZWNsdHlwZSBjb25jZXB0IGNvX2F3YWl0IGNvX3JldHVybiBjb195aWVsZCByZXF1aXJlcyBub2V4Y2VwdCBzdGF0aWNfYXNzZXJ0IHRocmVhZF9sb2NhbCByZXN0cmljdCBmaW5hbCBvdmVycmlkZSBhdG9taWNfYm9vbCBhdG9taWNfY2hhciBhdG9taWNfc2NoYXIgYXRvbWljX3VjaGFyIGF0b21pY19zaG9ydCBhdG9taWNfdXNob3J0IGF0b21pY19pbnQgYXRvbWljX3VpbnQgYXRvbWljX2xvbmcgYXRvbWljX3Vsb25nIGF0b21pY19sbG9uZyBhdG9taWNfdWxsb25nIG5ldyB0aHJvdyByZXR1cm4gYW5kIGFuZF9lcSBiaXRhbmQgYml0b3IgY29tcGwgbm90IG5vdF9lcSBvciBvcl9lcSB4b3IgeG9yX2VxIiwKYnVpbHRfaW46InN0ZCBzdHJpbmcgd3N0cmluZyBjaW4gY291dCBjZXJyIGNsb2cgc3RkaW4gc3Rkb3V0IHN0ZGVyciBzdHJpbmdzdHJlYW0gaXN0cmluZ3N0cmVhbSBvc3RyaW5nc3RyZWFtIGF1dG9fcHRyIGRlcXVlIGxpc3QgcXVldWUgc3RhY2sgdmVjdG9yIG1hcCBzZXQgcGFpciBiaXRzZXQgbXVsdGlzZXQgbXVsdGltYXAgdW5vcmRlcmVkX3NldCB1bm9yZGVyZWRfbWFwIHVub3JkZXJlZF9tdWx0aXNldCB1bm9yZGVyZWRfbXVsdGltYXAgcHJpb3JpdHlfcXVldWUgbWFrZV9wYWlyIGFycmF5IHNoYXJlZF9wdHIgYWJvcnQgdGVybWluYXRlIGFicyBhY29zIGFzaW4gYXRhbjIgYXRhbiBjYWxsb2MgY2VpbCBjb3NoIGNvcyBleGl0IGV4cCBmYWJzIGZsb29yIGZtb2QgZnByaW50ZiBmcHV0cyBmcmVlIGZyZXhwIGZzY2FuZiBmdXR1cmUgaXNhbG51bSBpc2FscGhhIGlzY250cmwgaXNkaWdpdCBpc2dyYXBoIGlzbG93ZXIgaXNwcmludCBpc3B1bmN0IGlzc3BhY2UgaXN1cHBlciBpc3hkaWdpdCB0b2xvd2VyIHRvdXBwZXIgbGFicyBsZGV4cCBsb2cxMCBsb2cgbWFsbG9jIHJlYWxsb2MgbWVtY2hyIG1lbWNtcCBtZW1jcHkgbWVtc2V0IG1vZGYgcG93IHByaW50ZiBwdXRjaGFyIHB1dHMgc2NhbmYgc2luaCBzaW4gc25wcmludGYgc3ByaW50ZiBzcXJ0IHNzY2FuZiBzdHJjYXQgc3RyY2hyIHN0cmNtcCBzdHJjcHkgc3RyY3NwbiBzdHJsZW4gc3RybmNhdCBzdHJuY21wIHN0cm5jcHkgc3RycGJyayBzdHJyY2hyIHN0cnNwbiBzdHJzdHIgdGFuaCB0YW4gdmZwcmludGYgdnByaW50ZiB2c3ByaW50ZiBlbmRsIGluaXRpYWxpemVyX2xpc3QgdW5pcXVlX3B0ciBfQm9vbCBjb21wbGV4IF9Db21wbGV4IGltYWdpbmFyeSBfSW1hZ2luYXJ5IiwKbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxscHRyIE5VTEwifSxtPVtjLHMsbix0LkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG8saV0scD17CnZhcmlhbnRzOlt7YmVnaW46Lz0vLGVuZDovOy99LHtiZWdpbjovXCgvLGVuZDovXCkvfSx7CmJlZ2luS2V5d29yZHM6Im5ldyB0aHJvdyByZXR1cm4gZWxzZSIsZW5kOi87L31dLGtleXdvcmRzOnUsY29udGFpbnM6bS5jb25jYXQoW3sKYmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3Jkczp1LGNvbnRhaW5zOm0uY29uY2F0KFsic2VsZiJdKSxyZWxldmFuY2U6MH1dKSwKcmVsZXZhbmNlOjB9LF89e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiIoIithKyJbXFwqJlxcc10rKSsiK2QsCnJldHVybkJlZ2luOiEwLGVuZDovW3s7PV0vLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6dSxpbGxlZ2FsOi9bXlx3XHNcKiY6PD5dLywKY29udGFpbnM6W3tiZWdpbjoiZGVjbHR5cGVcXChhdXRvXFwpIixrZXl3b3Jkczp1LHJlbGV2YW5jZTowfSx7YmVnaW46ZCwKcmV0dXJuQmVnaW46ITAsY29udGFpbnM6W2xdLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sCmVuZDovXCkvLGtleXdvcmRzOnUscmVsZXZhbmNlOjAsY29udGFpbnM6W24sdC5DX0JMT0NLX0NPTU1FTlRfTU9ERSxpLG8scyx7CmJlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6dSxyZWxldmFuY2U6MCwKY29udGFpbnM6WyJzZWxmIixuLHQuQ19CTE9DS19DT01NRU5UX01PREUsaSxvLHNdfV0KfSxzLG4sdC5DX0JMT0NLX0NPTU1FTlRfTU9ERSxjXX07cmV0dXJuewphbGlhc2VzOlsiYyIsImNjIiwiaCIsImMrKyIsImgrKyIsImhwcCIsImhoIiwiaHh4IiwiY3h4Il0sa2V5d29yZHM6dSwKZGlzYWJsZUF1dG9kZXRlY3Q6ITAsaWxsZWdhbDoiPC8iLGNvbnRhaW5zOltdLmNvbmNhdChwLF8sbSxbYyx7CmJlZ2luOiJcXGIoZGVxdWV8bGlzdHxxdWV1ZXxwcmlvcml0eV9xdWV1ZXxwYWlyfHN0YWNrfHZlY3RvcnxtYXB8c2V0fGJpdHNldHxtdWx0aXNldHxtdWx0aW1hcHx1bm9yZGVyZWRfbWFwfHVub3JkZXJlZF9zZXR8dW5vcmRlcmVkX211bHRpc2V0fHVub3JkZXJlZF9tdWx0aW1hcHxhcnJheSlcXHMqPCIsCmVuZDoiPiIsa2V5d29yZHM6dSxjb250YWluczpbInNlbGYiLHNdfSx7YmVnaW46dC5JREVOVF9SRSsiOjoiLGtleXdvcmRzOnV9LHsKY2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiZW51bSBjbGFzcyBzdHJ1Y3QgdW5pb24iLGVuZDovW3s7Ojw+PV0vLApjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImZpbmFsIGNsYXNzIHN0cnVjdCJ9LHQuVElUTEVfTU9ERV19XSksZXhwb3J0czp7CnByZXByb2Nlc3NvcjpjLHN0cmluZ3M6aSxrZXl3b3Jkczp1fX19KSh0KQo7cmV0dXJuIG4ubmFtZT0iQyIsbi5hbGlhc2VzPVsiYyIsImgiXSxufX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgicGdzcWwiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gRT0+ewpjb25zdCBUPUUuQ09NTUVOVCgiLS0iLCIkIiksTj0iXFwkKFthLXpBLVpfXT98W2EtekEtWl9dW2EtekEtWl8wLTldKilcXCQiLEE9IkJJR0lOVCBJTlQ4IEJJR1NFUklBTCBTRVJJQUw4IEJJVCBWQVJZSU5HIFZBUkJJVCBCT09MRUFOIEJPT0wgQk9YIEJZVEVBIENIQVJBQ1RFUiBDSEFSIFZBUkNIQVIgQ0lEUiBDSVJDTEUgREFURSBET1VCTEUgUFJFQ0lTSU9OIEZMT0FUOCBGTE9BVCBJTkVUIElOVEVHRVIgSU5UIElOVDQgSU5URVJWQUwgSlNPTiBKU09OQiBMSU5FIExTRUd8MTAgTUFDQUREUiBNQUNBRERSOCBNT05FWSBOVU1FUklDIERFQyBERUNJTUFMIFBBVEggUE9JTlQgUE9MWUdPTiBSRUFMIEZMT0FUNCBTTUFMTElOVCBJTlQyIFNNQUxMU0VSSUFMfDEwIFNFUklBTDJ8MTAgU0VSSUFMfDEwIFNFUklBTDR8MTAgVEVYVCBUSU1FIFpPTkUgVElNRVRafDEwIFRJTUVTVEFNUCBUSU1FU1RBTVBUWnwxMCBUU1FVRVJZfDEwIFRTVkVDVE9SfDEwIFRYSURfU05BUFNIT1R8MTAgVVVJRCBYTUwgTkFUSU9OQUwgTkNIQVIgSU5UNFJBTkdFfDEwIElOVDhSQU5HRXwxMCBOVU1SQU5HRXwxMCBUU1JBTkdFfDEwIFRTVFpSQU5HRXwxMCBEQVRFUkFOR0V8MTAgQU5ZRUxFTUVOVCBBTllBUlJBWSBBTllOT05BUlJBWSBBTllFTlVNIEFOWVJBTkdFIENTVFJJTkcgSU5URVJOQUwgUkVDT1JEIFBHX0RETF9DT01NQU5EIFZPSUQgVU5LTk9XTiBPUEFRVUUgUkVGQ1VSU09SIE5BTUUgT0lEIFJFR1BST0N8MTAgUkVHUFJPQ0VEVVJFfDEwIFJFR09QRVJ8MTAgUkVHT1BFUkFUT1J8MTAgUkVHQ0xBU1N8MTAgUkVHVFlQRXwxMCBSRUdST0xFfDEwIFJFR05BTUVTUEFDRXwxMCBSRUdDT05GSUd8MTAgUkVHRElDVElPTkFSWXwxMCAiLFI9QS50cmltKCkuc3BsaXQoIiAiKS5tYXAoKEU9PkUuc3BsaXQoInwiKVswXSkpLmpvaW4oInwiKSxJPSJBUlJBWV9BR0cgQVZHIEJJVF9BTkQgQklUX09SIEJPT0xfQU5EIEJPT0xfT1IgQ09VTlQgRVZFUlkgSlNPTl9BR0cgSlNPTkJfQUdHIEpTT05fT0JKRUNUX0FHRyBKU09OQl9PQkpFQ1RfQUdHIE1BWCBNSU4gTU9ERSBTVFJJTkdfQUdHIFNVTSBYTUxBR0cgQ09SUiBDT1ZBUl9QT1AgQ09WQVJfU0FNUCBSRUdSX0FWR1ggUkVHUl9BVkdZIFJFR1JfQ09VTlQgUkVHUl9JTlRFUkNFUFQgUkVHUl9SMiBSRUdSX1NMT1BFIFJFR1JfU1hYIFJFR1JfU1hZIFJFR1JfU1lZIFNURERFViBTVERERVZfUE9QIFNURERFVl9TQU1QIFZBUklBTkNFIFZBUl9QT1AgVkFSX1NBTVAgUEVSQ0VOVElMRV9DT05UIFBFUkNFTlRJTEVfRElTQyBST1dfTlVNQkVSIFJBTksgREVOU0VfUkFOSyBQRVJDRU5UX1JBTksgQ1VNRV9ESVNUIE5USUxFIExBRyBMRUFEIEZJUlNUX1ZBTFVFIExBU1RfVkFMVUUgTlRIX1ZBTFVFIE5VTV9OT05OVUxMUyBOVU1fTlVMTFMgQUJTIENCUlQgQ0VJTCBDRUlMSU5HIERFR1JFRVMgRElWIEVYUCBGTE9PUiBMTiBMT0cgTU9EIFBJIFBPV0VSIFJBRElBTlMgUk9VTkQgU0NBTEUgU0lHTiBTUVJUIFRSVU5DIFdJRFRIX0JVQ0tFVCBSQU5ET00gU0VUU0VFRCBBQ09TIEFDT1NEIEFTSU4gQVNJTkQgQVRBTiBBVEFORCBBVEFOMiBBVEFOMkQgQ09TIENPU0QgQ09UIENPVEQgU0lOIFNJTkQgVEFOIFRBTkQgQklUX0xFTkdUSCBDSEFSX0xFTkdUSCBDSEFSQUNURVJfTEVOR1RIIExPV0VSIE9DVEVUX0xFTkdUSCBPVkVSTEFZIFBPU0lUSU9OIFNVQlNUUklORyBUUkVBVCBUUklNIFVQUEVSIEFTQ0lJIEJUUklNIENIUiBDT05DQVQgQ09OQ0FUX1dTIENPTlZFUlQgQ09OVkVSVF9GUk9NIENPTlZFUlRfVE8gREVDT0RFIEVOQ09ERSBJTklUQ0FQIExFRlQgTEVOR1RIIExQQUQgTFRSSU0gTUQ1IFBBUlNFX0lERU5UIFBHX0NMSUVOVF9FTkNPRElORyBRVU9URV9JREVOVHwxMCBRVU9URV9MSVRFUkFMfDEwIFFVT1RFX05VTExBQkxFfDEwIFJFR0VYUF9NQVRDSCBSRUdFWFBfTUFUQ0hFUyBSRUdFWFBfUkVQTEFDRSBSRUdFWFBfU1BMSVRfVE9fQVJSQVkgUkVHRVhQX1NQTElUX1RPX1RBQkxFIFJFUEVBVCBSRVBMQUNFIFJFVkVSU0UgUklHSFQgUlBBRCBSVFJJTSBTUExJVF9QQVJUIFNUUlBPUyBTVUJTVFIgVE9fQVNDSUkgVE9fSEVYIFRSQU5TTEFURSBPQ1RFVF9MRU5HVEggR0VUX0JJVCBHRVRfQllURSBTRVRfQklUIFNFVF9CWVRFIFRPX0NIQVIgVE9fREFURSBUT19OVU1CRVIgVE9fVElNRVNUQU1QIEFHRSBDTE9DS19USU1FU1RBTVB8MTAgREFURV9QQVJUIERBVEVfVFJVTkMgSVNGSU5JVEUgSlVTVElGWV9EQVlTIEpVU1RJRllfSE9VUlMgSlVTVElGWV9JTlRFUlZBTCBNQUtFX0RBVEUgTUFLRV9JTlRFUlZBTHwxMCBNQUtFX1RJTUUgTUFLRV9USU1FU1RBTVB8MTAgTUFLRV9USU1FU1RBTVBUWnwxMCBOT1cgU1RBVEVNRU5UX1RJTUVTVEFNUHwxMCBUSU1FT0ZEQVkgVFJBTlNBQ1RJT05fVElNRVNUQU1QfDEwIEVOVU1fRklSU1QgRU5VTV9MQVNUIEVOVU1fUkFOR0UgQVJFQSBDRU5URVIgRElBTUVURVIgSEVJR0hUIElTQ0xPU0VEIElTT1BFTiBOUE9JTlRTIFBDTE9TRSBQT1BFTiBSQURJVVMgV0lEVEggQk9YIEJPVU5EX0JPWCBDSVJDTEUgTElORSBMU0VHIFBBVEggUE9MWUdPTiBBQkJSRVYgQlJPQURDQVNUIEhPU1QgSE9TVE1BU0sgTUFTS0xFTiBORVRNQVNLIE5FVFdPUksgU0VUX01BU0tMRU4gVEVYVCBJTkVUX1NBTUVfRkFNSUxZIElORVRfTUVSR0UgTUFDQUREUjhfU0VUN0JJVCBBUlJBWV9UT19UU1ZFQ1RPUiBHRVRfQ1VSUkVOVF9UU19DT05GSUcgTlVNTk9ERSBQTEFJTlRPX1RTUVVFUlkgUEhSQVNFVE9fVFNRVUVSWSBXRUJTRUFSQ0hfVE9fVFNRVUVSWSBRVUVSWVRSRUUgU0VUV0VJR0hUIFNUUklQIFRPX1RTUVVFUlkgVE9fVFNWRUNUT1IgSlNPTl9UT19UU1ZFQ1RPUiBKU09OQl9UT19UU1ZFQ1RPUiBUU19ERUxFVEUgVFNfRklMVEVSIFRTX0hFQURMSU5FIFRTX1JBTksgVFNfUkFOS19DRCBUU19SRVdSSVRFIFRTUVVFUllfUEhSQVNFIFRTVkVDVE9SX1RPX0FSUkFZIFRTVkVDVE9SX1VQREFURV9UUklHR0VSIFRTVkVDVE9SX1VQREFURV9UUklHR0VSX0NPTFVNTiBYTUxDT01NRU5UIFhNTENPTkNBVCBYTUxFTEVNRU5UIFhNTEZPUkVTVCBYTUxQSSBYTUxST09UIFhNTEVYSVNUUyBYTUxfSVNfV0VMTF9GT1JNRUQgWE1MX0lTX1dFTExfRk9STUVEX0RPQ1VNRU5UIFhNTF9JU19XRUxMX0ZPUk1FRF9DT05URU5UIFhQQVRIIFhQQVRIX0VYSVNUUyBYTUxUQUJMRSBYTUxOQU1FU1BBQ0VTIFRBQkxFX1RPX1hNTCBUQUJMRV9UT19YTUxTQ0hFTUEgVEFCTEVfVE9fWE1MX0FORF9YTUxTQ0hFTUEgUVVFUllfVE9fWE1MIFFVRVJZX1RPX1hNTFNDSEVNQSBRVUVSWV9UT19YTUxfQU5EX1hNTFNDSEVNQSBDVVJTT1JfVE9fWE1MIENVUlNPUl9UT19YTUxTQ0hFTUEgU0NIRU1BX1RPX1hNTCBTQ0hFTUFfVE9fWE1MU0NIRU1BIFNDSEVNQV9UT19YTUxfQU5EX1hNTFNDSEVNQSBEQVRBQkFTRV9UT19YTUwgREFUQUJBU0VfVE9fWE1MU0NIRU1BIERBVEFCQVNFX1RPX1hNTF9BTkRfWE1MU0NIRU1BIFhNTEFUVFJJQlVURVMgVE9fSlNPTiBUT19KU09OQiBBUlJBWV9UT19KU09OIFJPV19UT19KU09OIEpTT05fQlVJTERfQVJSQVkgSlNPTkJfQlVJTERfQVJSQVkgSlNPTl9CVUlMRF9PQkpFQ1QgSlNPTkJfQlVJTERfT0JKRUNUIEpTT05fT0JKRUNUIEpTT05CX09CSkVDVCBKU09OX0FSUkFZX0xFTkdUSCBKU09OQl9BUlJBWV9MRU5HVEggSlNPTl9FQUNIIEpTT05CX0VBQ0ggSlNPTl9FQUNIX1RFWFQgSlNPTkJfRUFDSF9URVhUIEpTT05fRVhUUkFDVF9QQVRIIEpTT05CX0VYVFJBQ1RfUEFUSCBKU09OX09CSkVDVF9LRVlTIEpTT05CX09CSkVDVF9LRVlTIEpTT05fUE9QVUxBVEVfUkVDT1JEIEpTT05CX1BPUFVMQVRFX1JFQ09SRCBKU09OX1BPUFVMQVRFX1JFQ09SRFNFVCBKU09OQl9QT1BVTEFURV9SRUNPUkRTRVQgSlNPTl9BUlJBWV9FTEVNRU5UUyBKU09OQl9BUlJBWV9FTEVNRU5UUyBKU09OX0FSUkFZX0VMRU1FTlRTX1RFWFQgSlNPTkJfQVJSQVlfRUxFTUVOVFNfVEVYVCBKU09OX1RZUEVPRiBKU09OQl9UWVBFT0YgSlNPTl9UT19SRUNPUkQgSlNPTkJfVE9fUkVDT1JEIEpTT05fVE9fUkVDT1JEU0VUIEpTT05CX1RPX1JFQ09SRFNFVCBKU09OX1NUUklQX05VTExTIEpTT05CX1NUUklQX05VTExTIEpTT05CX1NFVCBKU09OQl9JTlNFUlQgSlNPTkJfUFJFVFRZIENVUlJWQUwgTEFTVFZBTCBORVhUVkFMIFNFVFZBTCBDT0FMRVNDRSBOVUxMSUYgR1JFQVRFU1QgTEVBU1QgQVJSQVlfQVBQRU5EIEFSUkFZX0NBVCBBUlJBWV9ORElNUyBBUlJBWV9ESU1TIEFSUkFZX0ZJTEwgQVJSQVlfTEVOR1RIIEFSUkFZX0xPV0VSIEFSUkFZX1BPU0lUSU9OIEFSUkFZX1BPU0lUSU9OUyBBUlJBWV9QUkVQRU5EIEFSUkFZX1JFTU9WRSBBUlJBWV9SRVBMQUNFIEFSUkFZX1RPX1NUUklORyBBUlJBWV9VUFBFUiBDQVJESU5BTElUWSBTVFJJTkdfVE9fQVJSQVkgVU5ORVNUIElTRU1QVFkgTE9XRVJfSU5DIFVQUEVSX0lOQyBMT1dFUl9JTkYgVVBQRVJfSU5GIFJBTkdFX01FUkdFIEdFTkVSQVRFX1NFUklFUyBHRU5FUkFURV9TVUJTQ1JJUFRTIENVUlJFTlRfREFUQUJBU0UgQ1VSUkVOVF9RVUVSWSBDVVJSRU5UX1NDSEVNQXwxMCBDVVJSRU5UX1NDSEVNQVN8MTAgSU5FVF9DTElFTlRfQUREUiBJTkVUX0NMSUVOVF9QT1JUIElORVRfU0VSVkVSX0FERFIgSU5FVF9TRVJWRVJfUE9SVCBST1dfU0VDVVJJVFlfQUNUSVZFIEZPUk1BVF9UWVBFIFRPX1JFR0NMQVNTIFRPX1JFR1BST0MgVE9fUkVHUFJPQ0VEVVJFIFRPX1JFR09QRVIgVE9fUkVHT1BFUkFUT1IgVE9fUkVHVFlQRSBUT19SRUdOQU1FU1BBQ0UgVE9fUkVHUk9MRSBDT0xfREVTQ1JJUFRJT04gT0JKX0RFU0NSSVBUSU9OIFNIT0JKX0RFU0NSSVBUSU9OIFRYSURfQ1VSUkVOVCBUWElEX0NVUlJFTlRfSUZfQVNTSUdORUQgVFhJRF9DVVJSRU5UX1NOQVBTSE9UIFRYSURfU05BUFNIT1RfWElQIFRYSURfU05BUFNIT1RfWE1BWCBUWElEX1NOQVBTSE9UX1hNSU4gVFhJRF9WSVNJQkxFX0lOX1NOQVBTSE9UIFRYSURfU1RBVFVTIENVUlJFTlRfU0VUVElORyBTRVRfQ09ORklHIEJSSU5fU1VNTUFSSVpFX05FV19WQUxVRVMgQlJJTl9TVU1NQVJJWkVfUkFOR0UgQlJJTl9ERVNVTU1BUklaRV9SQU5HRSBHSU5fQ0xFQU5fUEVORElOR19MSVNUIFNVUFBSRVNTX1JFRFVOREFOVF9VUERBVEVTX1RSSUdHRVIgTE9fRlJPTV9CWVRFQSBMT19QVVQgTE9fR0VUIExPX0NSRUFUIExPX0NSRUFURSBMT19VTkxJTksgTE9fSU1QT1JUIExPX0VYUE9SVCBMT1JFQUQgTE9XUklURSBHUk9VUElORyBDQVNUIi5zcGxpdCgiICIpLm1hcCgoRT0+RS5zcGxpdCgifCIpWzBdKSkuam9pbigifCIpCjtyZXR1cm57bmFtZToiUG9zdGdyZVNRTCIsYWxpYXNlczpbInBvc3RncmVzIiwicG9zdGdyZXNxbCJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsCmtleXdvcmRzOnsKa2V5d29yZDoiQUJPUlQgQUxURVIgQU5BTFlaRSBCRUdJTiBDQUxMIENIRUNLUE9JTlR8MTAgQ0xPU0UgQ0xVU1RFUiBDT01NRU5UIENPTU1JVCBDT1BZIENSRUFURSBERUFMTE9DQVRFIERFQ0xBUkUgREVMRVRFIERJU0NBUkQgRE8gRFJPUCBFTkQgRVhFQ1VURSBFWFBMQUlOIEZFVENIIEdSQU5UIElNUE9SVCBJTlNFUlQgTElTVEVOIExPQUQgTE9DSyBNT1ZFIE5PVElGWSBQUkVQQVJFIFJFQVNTSUdOfDEwIFJFRlJFU0ggUkVJTkRFWCBSRUxFQVNFIFJFU0VUIFJFVk9LRSBST0xMQkFDSyBTQVZFUE9JTlQgU0VDVVJJVFkgU0VMRUNUIFNFVCBTSE9XIFNUQVJUIFRSVU5DQVRFIFVOTElTVEVOfDEwIFVQREFURSBWQUNVVU18MTAgVkFMVUVTIEFHR1JFR0FURSBDT0xMQVRJT04gQ09OVkVSU0lPTnwxMCBEQVRBQkFTRSBERUZBVUxUIFBSSVZJTEVHRVMgRE9NQUlOIFRSSUdHRVIgRVhURU5TSU9OIEZPUkVJR04gV1JBUFBFUnwxMCBUQUJMRSBGVU5DVElPTiBHUk9VUCBMQU5HVUFHRSBMQVJHRSBPQkpFQ1QgTUFURVJJQUxJWkVEIFZJRVcgT1BFUkFUT1IgQ0xBU1MgRkFNSUxZIFBPTElDWSBQVUJMSUNBVElPTnwxMCBST0xFIFJVTEUgU0NIRU1BIFNFUVVFTkNFIFNFUlZFUiBTVEFUSVNUSUNTIFNVQlNDUklQVElPTiBTWVNURU0gVEFCTEVTUEFDRSBDT05GSUdVUkFUSU9OIERJQ1RJT05BUlkgUEFSU0VSIFRFTVBMQVRFIFRZUEUgVVNFUiBNQVBQSU5HIFBSRVBBUkVEIEFDQ0VTUyBNRVRIT0QgQ0FTVCBBUyBUUkFOU0ZPUk0gVFJBTlNBQ1RJT04gT1dORUQgVE8gSU5UTyBTRVNTSU9OIEFVVEhPUklaQVRJT04gSU5ERVggUFJPQ0VEVVJFIEFTU0VSVElPTiBBTEwgQU5BTFlTRSBBTkQgQU5ZIEFSUkFZIEFTQyBBU1lNTUVUUklDfDEwIEJPVEggQ0FTRSBDSEVDSyBDT0xMQVRFIENPTFVNTiBDT05DVVJSRU5UTFl8MTAgQ09OU1RSQUlOVCBDUk9TUyBERUZFUlJBQkxFIFJBTkdFIERFU0MgRElTVElOQ1QgRUxTRSBFWENFUFQgRk9SIEZSRUVaRXwxMCBGUk9NIEZVTEwgSEFWSU5HIElMSUtFIElOIElOSVRJQUxMWSBJTk5FUiBJTlRFUlNFQ1QgSVMgSVNOVUxMIEpPSU4gTEFURVJBTCBMRUFESU5HIExJS0UgTElNSVQgTkFUVVJBTCBOT1QgTk9UTlVMTCBOVUxMIE9GRlNFVCBPTiBPTkxZIE9SIE9SREVSIE9VVEVSIE9WRVJMQVBTIFBMQUNJTkcgUFJJTUFSWSBSRUZFUkVOQ0VTIFJFVFVSTklORyBTSU1JTEFSIFNPTUUgU1lNTUVUUklDIFRBQkxFU0FNUExFIFRIRU4gVFJBSUxJTkcgVU5JT04gVU5JUVVFIFVTSU5HIFZBUklBRElDfDEwIFZFUkJPU0UgV0hFTiBXSEVSRSBXSU5ET1cgV0lUSCBCWSBSRVRVUk5TIElOT1VUIE9VVCBTRVRPRnwxMCBJRiBTVFJJQ1QgQ1VSUkVOVCBDT05USU5VRSBPV05FUiBMT0NBVElPTiBPVkVSIFBBUlRJVElPTiBXSVRISU4gQkVUV0VFTiBFU0NBUEUgRVhURVJOQUwgSU5WT0tFUiBERUZJTkVSIFdPUksgUkVOQU1FIFZFUlNJT04gQ09OTkVDVElPTiBDT05ORUNUIFRBQkxFUyBURU1QIFRFTVBPUkFSWSBGVU5DVElPTlMgU0VRVUVOQ0VTIFRZUEVTIFNDSEVNQVMgT1BUSU9OIENBU0NBREUgUkVTVFJJQ1QgQUREIEFETUlOIEVYSVNUUyBWQUxJRCBWQUxJREFURSBFTkFCTEUgRElTQUJMRSBSRVBMSUNBfDEwIEFMV0FZUyBQQVNTSU5HIENPTFVNTlMgUEFUSCBSRUYgVkFMVUUgT1ZFUlJJRElORyBJTU1VVEFCTEUgU1RBQkxFIFZPTEFUSUxFIEJFRk9SRSBBRlRFUiBFQUNIIFJPVyBQUk9DRURVUkFMIFJPVVRJTkUgTk8gSEFORExFUiBWQUxJREFUT1IgT1BUSU9OUyBTVE9SQUdFIE9JRFN8MTAgV0lUSE9VVCBJTkhFUklUIERFUEVORFMgQ0FMTEVEIElOUFVUIExFQUtQUk9PRnwxMCBDT1NUIFJPV1MgTk9XQUlUIFNFQVJDSCBVTlRJTCBFTkNSWVBURUR8MTAgUEFTU1dPUkQgQ09ORkxJQ1R8MTAgSU5TVEVBRCBJTkhFUklUUyBDSEFSQUNURVJJU1RJQ1MgV1JJVEUgQ1VSU09SIEFMU08gU1RBVEVNRU5UIFNIQVJFIEVYQ0xVU0lWRSBJTkxJTkUgSVNPTEFUSU9OIFJFUEVBVEFCTEUgUkVBRCBDT01NSVRURUQgU0VSSUFMSVpBQkxFIFVOQ09NTUlUVEVEIExPQ0FMIEdMT0JBTCBTUUwgUFJPQ0VEVVJFUyBSRUNVUlNJVkUgU05BUFNIT1QgUk9MTFVQIENVQkUgVFJVU1RFRHwxMCBJTkNMVURFIEZPTExPV0lORyBQUkVDRURJTkcgVU5CT1VOREVEIFJBTkdFIEdST1VQUyBVTkVOQ1JZUFRFRHwxMCBTWVNJRCBGT1JNQVQgREVMSU1JVEVSIEhFQURFUiBRVU9URSBFTkNPRElORyBGSUxURVIgT0ZGIEZPUkNFX1FVT1RFIEZPUkNFX05PVF9OVUxMIEZPUkNFX05VTEwgQ09TVFMgQlVGRkVSUyBUSU1JTkcgU1VNTUFSWSBESVNBQkxFX1BBR0VfU0tJUFBJTkcgUkVTVEFSVCBDWUNMRSBHRU5FUkFURUQgSURFTlRJVFkgREVGRVJSRUQgSU1NRURJQVRFIExFVkVMIExPR0dFRCBVTkxPR0dFRCBPRiBOT1RISU5HIE5PTkUgRVhDTFVERSBBVFRSSUJVVEUgVVNBR0UgUk9VVElORVMgVFJVRSBGQUxTRSBOQU4gSU5GSU5JVFkgQUxJQVMgQkVHSU4gQ09OU1RBTlQgREVDTEFSRSBFTkQgRVhDRVBUSU9OIFJFVFVSTiBQRVJGT1JNfDEwIFJBSVNFIEdFVCBESUFHTk9TVElDUyBTVEFDS0VEfDEwIEZPUkVBQ0ggTE9PUCBFTFNJRiBFWElUIFdISUxFIFJFVkVSU0UgU0xJQ0UgREVCVUcgTE9HIElORk8gTk9USUNFIFdBUk5JTkcgQVNTRVJUIE9QRU4gU1VQRVJVU0VSIE5PU1VQRVJVU0VSIENSRUFURURCIE5PQ1JFQVRFREIgQ1JFQVRFUk9MRSBOT0NSRUFURVJPTEUgSU5IRVJJVCBOT0lOSEVSSVQgTE9HSU4gTk9MT0dJTiBSRVBMSUNBVElPTiBOT1JFUExJQ0FUSU9OIEJZUEFTU1JMUyBOT0JZUEFTU1JMUyAiLApidWlsdF9pbjoiQ1VSUkVOVF9USU1FIENVUlJFTlRfVElNRVNUQU1QIENVUlJFTlRfVVNFUiBDVVJSRU5UX0NBVEFMT0d8MTAgQ1VSUkVOVF9EQVRFIExPQ0FMVElNRSBMT0NBTFRJTUVTVEFNUCBDVVJSRU5UX1JPTEV8MTAgQ1VSUkVOVF9TQ0hFTUF8MTAgU0VTU0lPTl9VU0VSIFBVQkxJQyBGT1VORCBORVcgT0xEIFRHX05BTUV8MTAgVEdfV0hFTnwxMCBUR19MRVZFTHwxMCBUR19PUHwxMCBUR19SRUxJRHwxMCBUR19SRUxOQU1FfDEwIFRHX1RBQkxFX05BTUV8MTAgVEdfVEFCTEVfU0NIRU1BfDEwIFRHX05BUkdTfDEwIFRHX0FSR1Z8MTAgVEdfRVZFTlR8MTAgVEdfVEFHfDEwIFJPV19DT1VOVCBSRVNVTFRfT0lEfDEwIFBHX0NPTlRFWFR8MTAgUkVUVVJORURfU1FMU1RBVEUgQ09MVU1OX05BTUUgQ09OU1RSQUlOVF9OQU1FIFBHX0RBVEFUWVBFX05BTUV8MTAgTUVTU0FHRV9URVhUIFRBQkxFX05BTUUgU0NIRU1BX05BTUUgUEdfRVhDRVBUSU9OX0RFVEFJTHwxMCBQR19FWENFUFRJT05fSElOVHwxMCBQR19FWENFUFRJT05fQ09OVEVYVHwxMCBTUUxTVEFURSBTUUxFUlJNfDEwIFNVQ0NFU1NGVUxfQ09NUExFVElPTiBXQVJOSU5HIERZTkFNSUNfUkVTVUxUX1NFVFNfUkVUVVJORUQgSU1QTElDSVRfWkVST19CSVRfUEFERElORyBOVUxMX1ZBTFVFX0VMSU1JTkFURURfSU5fU0VUX0ZVTkNUSU9OIFBSSVZJTEVHRV9OT1RfR1JBTlRFRCBQUklWSUxFR0VfTk9UX1JFVk9LRUQgU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNBVElPTiBERVBSRUNBVEVEX0ZFQVRVUkUgTk9fREFUQSBOT19BRERJVElPTkFMX0RZTkFNSUNfUkVTVUxUX1NFVFNfUkVUVVJORUQgU1FMX1NUQVRFTUVOVF9OT1RfWUVUX0NPTVBMRVRFIENPTk5FQ1RJT05fRVhDRVBUSU9OIENPTk5FQ1RJT05fRE9FU19OT1RfRVhJU1QgQ09OTkVDVElPTl9GQUlMVVJFIFNRTENMSUVOVF9VTkFCTEVfVE9fRVNUQUJMSVNIX1NRTENPTk5FQ1RJT04gU1FMU0VSVkVSX1JFSkVDVEVEX0VTVEFCTElTSE1FTlRfT0ZfU1FMQ09OTkVDVElPTiBUUkFOU0FDVElPTl9SRVNPTFVUSU9OX1VOS05PV04gUFJPVE9DT0xfVklPTEFUSU9OIFRSSUdHRVJFRF9BQ1RJT05fRVhDRVBUSU9OIEZFQVRVUkVfTk9UX1NVUFBPUlRFRCBJTlZBTElEX1RSQU5TQUNUSU9OX0lOSVRJQVRJT04gTE9DQVRPUl9FWENFUFRJT04gSU5WQUxJRF9MT0NBVE9SX1NQRUNJRklDQVRJT04gSU5WQUxJRF9HUkFOVE9SIElOVkFMSURfR1JBTlRfT1BFUkFUSU9OIElOVkFMSURfUk9MRV9TUEVDSUZJQ0FUSU9OIERJQUdOT1NUSUNTX0VYQ0VQVElPTiBTVEFDS0VEX0RJQUdOT1NUSUNTX0FDQ0VTU0VEX1dJVEhPVVRfQUNUSVZFX0hBTkRMRVIgQ0FTRV9OT1RfRk9VTkQgQ0FSRElOQUxJVFlfVklPTEFUSU9OIERBVEFfRVhDRVBUSU9OIEFSUkFZX1NVQlNDUklQVF9FUlJPUiBDSEFSQUNURVJfTk9UX0lOX1JFUEVSVE9JUkUgREFURVRJTUVfRklFTERfT1ZFUkZMT1cgRElWSVNJT05fQllfWkVSTyBFUlJPUl9JTl9BU1NJR05NRU5UIEVTQ0FQRV9DSEFSQUNURVJfQ09ORkxJQ1QgSU5ESUNBVE9SX09WRVJGTE9XIElOVEVSVkFMX0ZJRUxEX09WRVJGTE9XIElOVkFMSURfQVJHVU1FTlRfRk9SX0xPR0FSSVRITSBJTlZBTElEX0FSR1VNRU5UX0ZPUl9OVElMRV9GVU5DVElPTiBJTlZBTElEX0FSR1VNRU5UX0ZPUl9OVEhfVkFMVUVfRlVOQ1RJT04gSU5WQUxJRF9BUkdVTUVOVF9GT1JfUE9XRVJfRlVOQ1RJT04gSU5WQUxJRF9BUkdVTUVOVF9GT1JfV0lEVEhfQlVDS0VUX0ZVTkNUSU9OIElOVkFMSURfQ0hBUkFDVEVSX1ZBTFVFX0ZPUl9DQVNUIElOVkFMSURfREFURVRJTUVfRk9STUFUIElOVkFMSURfRVNDQVBFX0NIQVJBQ1RFUiBJTlZBTElEX0VTQ0FQRV9PQ1RFVCBJTlZBTElEX0VTQ0FQRV9TRVFVRU5DRSBOT05TVEFOREFSRF9VU0VfT0ZfRVNDQVBFX0NIQVJBQ1RFUiBJTlZBTElEX0lORElDQVRPUl9QQVJBTUVURVJfVkFMVUUgSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUgSU5WQUxJRF9SRUdVTEFSX0VYUFJFU1NJT04gSU5WQUxJRF9ST1dfQ09VTlRfSU5fTElNSVRfQ0xBVVNFIElOVkFMSURfUk9XX0NPVU5UX0lOX1JFU1VMVF9PRkZTRVRfQ0xBVVNFIElOVkFMSURfVEFCTEVTQU1QTEVfQVJHVU1FTlQgSU5WQUxJRF9UQUJMRVNBTVBMRV9SRVBFQVQgSU5WQUxJRF9USU1FX1pPTkVfRElTUExBQ0VNRU5UX1ZBTFVFIElOVkFMSURfVVNFX09GX0VTQ0FQRV9DSEFSQUNURVIgTU9TVF9TUEVDSUZJQ19UWVBFX01JU01BVENIIE5VTExfVkFMVUVfTk9UX0FMTE9XRUQgTlVMTF9WQUxVRV9OT19JTkRJQ0FUT1JfUEFSQU1FVEVSIE5VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFIFNFUVVFTkNFX0dFTkVSQVRPUl9MSU1JVF9FWENFRURFRCBTVFJJTkdfREFUQV9MRU5HVEhfTUlTTUFUQ0ggU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNBVElPTiBTVUJTVFJJTkdfRVJST1IgVFJJTV9FUlJPUiBVTlRFUk1JTkFURURfQ19TVFJJTkcgWkVST19MRU5HVEhfQ0hBUkFDVEVSX1NUUklORyBGTE9BVElOR19QT0lOVF9FWENFUFRJT04gSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OIElOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OIEJBRF9DT1BZX0ZJTEVfRk9STUFUIFVOVFJBTlNMQVRBQkxFX0NIQVJBQ1RFUiBOT1RfQU5fWE1MX0RPQ1VNRU5UIElOVkFMSURfWE1MX0RPQ1VNRU5UIElOVkFMSURfWE1MX0NPTlRFTlQgSU5WQUxJRF9YTUxfQ09NTUVOVCBJTlZBTElEX1hNTF9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIElOVEVHUklUWV9DT05TVFJBSU5UX1ZJT0xBVElPTiBSRVNUUklDVF9WSU9MQVRJT04gTk9UX05VTExfVklPTEFUSU9OIEZPUkVJR05fS0VZX1ZJT0xBVElPTiBVTklRVUVfVklPTEFUSU9OIENIRUNLX1ZJT0xBVElPTiBFWENMVVNJT05fVklPTEFUSU9OIElOVkFMSURfQ1VSU09SX1NUQVRFIElOVkFMSURfVFJBTlNBQ1RJT05fU1RBVEUgQUNUSVZFX1NRTF9UUkFOU0FDVElPTiBCUkFOQ0hfVFJBTlNBQ1RJT05fQUxSRUFEWV9BQ1RJVkUgSEVMRF9DVVJTT1JfUkVRVUlSRVNfU0FNRV9JU09MQVRJT05fTEVWRUwgSU5BUFBST1BSSUFURV9BQ0NFU1NfTU9ERV9GT1JfQlJBTkNIX1RSQU5TQUNUSU9OIElOQVBQUk9QUklBVEVfSVNPTEFUSU9OX0xFVkVMX0ZPUl9CUkFOQ0hfVFJBTlNBQ1RJT04gTk9fQUNUSVZFX1NRTF9UUkFOU0FDVElPTl9GT1JfQlJBTkNIX1RSQU5TQUNUSU9OIFJFQURfT05MWV9TUUxfVFJBTlNBQ1RJT04gU0NIRU1BX0FORF9EQVRBX1NUQVRFTUVOVF9NSVhJTkdfTk9UX1NVUFBPUlRFRCBOT19BQ1RJVkVfU1FMX1RSQU5TQUNUSU9OIElOX0ZBSUxFRF9TUUxfVFJBTlNBQ1RJT04gSURMRV9JTl9UUkFOU0FDVElPTl9TRVNTSU9OX1RJTUVPVVQgSU5WQUxJRF9TUUxfU1RBVEVNRU5UX05BTUUgVFJJR0dFUkVEX0RBVEFfQ0hBTkdFX1ZJT0xBVElPTiBJTlZBTElEX0FVVEhPUklaQVRJT05fU1BFQ0lGSUNBVElPTiBJTlZBTElEX1BBU1NXT1JEIERFUEVOREVOVF9QUklWSUxFR0VfREVTQ1JJUFRPUlNfU1RJTExfRVhJU1QgREVQRU5ERU5UX09CSkVDVFNfU1RJTExfRVhJU1QgSU5WQUxJRF9UUkFOU0FDVElPTl9URVJNSU5BVElPTiBTUUxfUk9VVElORV9FWENFUFRJT04gRlVOQ1RJT05fRVhFQ1VURURfTk9fUkVUVVJOX1NUQVRFTUVOVCBNT0RJRllJTkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCBQUk9ISUJJVEVEX1NRTF9TVEFURU1FTlRfQVRURU1QVEVEIFJFQURJTkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCBJTlZBTElEX0NVUlNPUl9OQU1FIEVYVEVSTkFMX1JPVVRJTkVfRVhDRVBUSU9OIENPTlRBSU5JTkdfU1FMX05PVF9QRVJNSVRURUQgTU9ESUZZSU5HX1NRTF9EQVRBX05PVF9QRVJNSVRURUQgUFJPSElCSVRFRF9TUUxfU1RBVEVNRU5UX0FUVEVNUFRFRCBSRUFESU5HX1NRTF9EQVRBX05PVF9QRVJNSVRURUQgRVhURVJOQUxfUk9VVElORV9JTlZPQ0FUSU9OX0VYQ0VQVElPTiBJTlZBTElEX1NRTFNUQVRFX1JFVFVSTkVEIE5VTExfVkFMVUVfTk9UX0FMTE9XRUQgVFJJR0dFUl9QUk9UT0NPTF9WSU9MQVRFRCBTUkZfUFJPVE9DT0xfVklPTEFURUQgRVZFTlRfVFJJR0dFUl9QUk9UT0NPTF9WSU9MQVRFRCBTQVZFUE9JTlRfRVhDRVBUSU9OIElOVkFMSURfU0FWRVBPSU5UX1NQRUNJRklDQVRJT04gSU5WQUxJRF9DQVRBTE9HX05BTUUgSU5WQUxJRF9TQ0hFTUFfTkFNRSBUUkFOU0FDVElPTl9ST0xMQkFDSyBUUkFOU0FDVElPTl9JTlRFR1JJVFlfQ09OU1RSQUlOVF9WSU9MQVRJT04gU0VSSUFMSVpBVElPTl9GQUlMVVJFIFNUQVRFTUVOVF9DT01QTEVUSU9OX1VOS05PV04gREVBRExPQ0tfREVURUNURUQgU1lOVEFYX0VSUk9SX09SX0FDQ0VTU19SVUxFX1ZJT0xBVElPTiBTWU5UQVhfRVJST1IgSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSBDQU5OT1RfQ09FUkNFIEdST1VQSU5HX0VSUk9SIFdJTkRPV0lOR19FUlJPUiBJTlZBTElEX1JFQ1VSU0lPTiBJTlZBTElEX0ZPUkVJR05fS0VZIElOVkFMSURfTkFNRSBOQU1FX1RPT19MT05HIFJFU0VSVkVEX05BTUUgREFUQVRZUEVfTUlTTUFUQ0ggSU5ERVRFUk1JTkFURV9EQVRBVFlQRSBDT0xMQVRJT05fTUlTTUFUQ0ggSU5ERVRFUk1JTkFURV9DT0xMQVRJT04gV1JPTkdfT0JKRUNUX1RZUEUgR0VORVJBVEVEX0FMV0FZUyBVTkRFRklORURfQ09MVU1OIFVOREVGSU5FRF9GVU5DVElPTiBVTkRFRklORURfVEFCTEUgVU5ERUZJTkVEX1BBUkFNRVRFUiBVTkRFRklORURfT0JKRUNUIERVUExJQ0FURV9DT0xVTU4gRFVQTElDQVRFX0NVUlNPUiBEVVBMSUNBVEVfREFUQUJBU0UgRFVQTElDQVRFX0ZVTkNUSU9OIERVUExJQ0FURV9QUkVQQVJFRF9TVEFURU1FTlQgRFVQTElDQVRFX1NDSEVNQSBEVVBMSUNBVEVfVEFCTEUgRFVQTElDQVRFX0FMSUFTIERVUExJQ0FURV9PQkpFQ1QgQU1CSUdVT1VTX0NPTFVNTiBBTUJJR1VPVVNfRlVOQ1RJT04gQU1CSUdVT1VTX1BBUkFNRVRFUiBBTUJJR1VPVVNfQUxJQVMgSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFIElOVkFMSURfQ09MVU1OX0RFRklOSVRJT04gSU5WQUxJRF9DVVJTT1JfREVGSU5JVElPTiBJTlZBTElEX0RBVEFCQVNFX0RFRklOSVRJT04gSU5WQUxJRF9GVU5DVElPTl9ERUZJTklUSU9OIElOVkFMSURfUFJFUEFSRURfU1RBVEVNRU5UX0RFRklOSVRJT04gSU5WQUxJRF9TQ0hFTUFfREVGSU5JVElPTiBJTlZBTElEX1RBQkxFX0RFRklOSVRJT04gSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiBXSVRIX0NIRUNLX09QVElPTl9WSU9MQVRJT04gSU5TVUZGSUNJRU5UX1JFU09VUkNFUyBESVNLX0ZVTEwgT1VUX09GX01FTU9SWSBUT09fTUFOWV9DT05ORUNUSU9OUyBDT05GSUdVUkFUSU9OX0xJTUlUX0VYQ0VFREVEIFBST0dSQU1fTElNSVRfRVhDRUVERUQgU1RBVEVNRU5UX1RPT19DT01QTEVYIFRPT19NQU5ZX0NPTFVNTlMgVE9PX01BTllfQVJHVU1FTlRTIE9CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFIE9CSkVDVF9JTl9VU0UgQ0FOVF9DSEFOR0VfUlVOVElNRV9QQVJBTSBMT0NLX05PVF9BVkFJTEFCTEUgT1BFUkFUT1JfSU5URVJWRU5USU9OIFFVRVJZX0NBTkNFTEVEIEFETUlOX1NIVVRET1dOIENSQVNIX1NIVVRET1dOIENBTk5PVF9DT05ORUNUX05PVyBEQVRBQkFTRV9EUk9QUEVEIFNZU1RFTV9FUlJPUiBJT19FUlJPUiBVTkRFRklORURfRklMRSBEVVBMSUNBVEVfRklMRSBTTkFQU0hPVF9UT09fT0xEIENPTkZJR19GSUxFX0VSUk9SIExPQ0tfRklMRV9FWElTVFMgRkRXX0VSUk9SIEZEV19DT0xVTU5fTkFNRV9OT1RfRk9VTkQgRkRXX0RZTkFNSUNfUEFSQU1FVEVSX1ZBTFVFX05FRURFRCBGRFdfRlVOQ1RJT05fU0VRVUVOQ0VfRVJST1IgRkRXX0lOQ09OU0lTVEVOVF9ERVNDUklQVE9SX0lORk9STUFUSU9OIEZEV19JTlZBTElEX0FUVFJJQlVURV9WQUxVRSBGRFdfSU5WQUxJRF9DT0xVTU5fTkFNRSBGRFdfSU5WQUxJRF9DT0xVTU5fTlVNQkVSIEZEV19JTlZBTElEX0RBVEFfVFlQRSBGRFdfSU5WQUxJRF9EQVRBX1RZUEVfREVTQ1JJUFRPUlMgRkRXX0lOVkFMSURfREVTQ1JJUFRPUl9GSUVMRF9JREVOVElGSUVSIEZEV19JTlZBTElEX0hBTkRMRSBGRFdfSU5WQUxJRF9PUFRJT05fSU5ERVggRkRXX0lOVkFMSURfT1BUSU9OX05BTUUgRkRXX0lOVkFMSURfU1RSSU5HX0xFTkdUSF9PUl9CVUZGRVJfTEVOR1RIIEZEV19JTlZBTElEX1NUUklOR19GT1JNQVQgRkRXX0lOVkFMSURfVVNFX09GX05VTExfUE9JTlRFUiBGRFdfVE9PX01BTllfSEFORExFUyBGRFdfT1VUX09GX01FTU9SWSBGRFdfTk9fU0NIRU1BUyBGRFdfT1BUSU9OX05BTUVfTk9UX0ZPVU5EIEZEV19SRVBMWV9IQU5ETEUgRkRXX1NDSEVNQV9OT1RfRk9VTkQgRkRXX1RBQkxFX05PVF9GT1VORCBGRFdfVU5BQkxFX1RPX0NSRUFURV9FWEVDVVRJT04gRkRXX1VOQUJMRV9UT19DUkVBVEVfUkVQTFkgRkRXX1VOQUJMRV9UT19FU1RBQkxJU0hfQ09OTkVDVElPTiBQTFBHU1FMX0VSUk9SIFJBSVNFX0VYQ0VQVElPTiBOT19EQVRBX0ZPVU5EIFRPT19NQU5ZX1JPV1MgQVNTRVJUX0ZBSUxVUkUgSU5URVJOQUxfRVJST1IgREFUQV9DT1JSVVBURUQgSU5ERVhfQ09SUlVQVEVEICIKfSxpbGxlZ2FsOi86PT18XFdccypcKFwqfChefFxzKVwkW2Etel18XHtce3xbYS16XTpccyokfFwuXC5cLnxUTzp8RE86LywKY29udGFpbnM6W3tjbGFzc05hbWU6ImtleXdvcmQiLHZhcmlhbnRzOlt7YmVnaW46L1xiVEVYVFxzKlNFQVJDSFxiL30sewpiZWdpbjovXGIoUFJJTUFSWXxGT1JFSUdOfEZPUihccytOTyk/KVxzK0tFWVxiL30sewpiZWdpbjovXGJQQVJBTExFTFxzKyhVTlNBRkV8UkVTVFJJQ1RFRHxTQUZFKVxiL30sewpiZWdpbjovXGJTVE9SQUdFXHMrKFBMQUlOfEVYVEVSTkFMfEVYVEVOREVEfE1BSU4pXGIvfSx7CmJlZ2luOi9cYk1BVENIXHMrKEZVTEx8UEFSVElBTHxTSU1QTEUpXGIvfSx7YmVnaW46L1xiTlVMTFNccysoRklSU1R8TEFTVClcYi99LHsKYmVnaW46L1xiRVZFTlRccytUUklHR0VSXGIvfSx7YmVnaW46L1xiKE1BUFBJTkd8T1IpXHMrUkVQTEFDRVxiL30sewpiZWdpbjovXGIoRlJPTXxUTylccysoUFJPR1JBTXxTVERJTnxTVERPVVQpXGIvfSx7CmJlZ2luOi9cYihTSEFSRXxFWENMVVNJVkUpXHMrTU9ERVxiL30sewpiZWdpbjovXGIoTEVGVHxSSUdIVClccysoT1VURVJccyspP0pPSU5cYi99LHsKYmVnaW46L1xiKEZFVENIfE1PVkUpXHMrKE5FWFR8UFJJT1J8RklSU1R8TEFTVHxBQlNPTFVURXxSRUxBVElWRXxGT1JXQVJEfEJBQ0tXQVJEKVxiLwp9LHtiZWdpbjovXGJQUkVTRVJWRVxzK1JPV1NcYi99LHtiZWdpbjovXGJESVNDQVJEXHMrUExBTlNcYi99LHsKYmVnaW46L1xiUkVGRVJFTkNJTkdccysoT0xEfE5FVylcYi99LHtiZWdpbjovXGJTS0lQXHMrTE9DS0VEXGIvfSx7CmJlZ2luOi9cYkdST1VQSU5HXHMrU0VUU1xiL30sewpiZWdpbjovXGIoQklOQVJZfElOU0VOU0lUSVZFfFNDUk9MTHxOT1xzK1NDUk9MTClccysoQ1VSU09SfEZPUilcYi99LHsKYmVnaW46L1xiKFdJVEh8V0lUSE9VVClccytIT0xEXGIvfSx7CmJlZ2luOi9cYldJVEhccysoQ0FTQ0FERUR8TE9DQUwpXHMrQ0hFQ0tccytPUFRJT05cYi99LHsKYmVnaW46L1xiRVhDTFVERVxzKyhUSUVTfE5PXHMrT1RIRVJTKVxiL30sewpiZWdpbjovXGJGT1JNQVRccysoVEVYVHxYTUx8SlNPTnxZQU1MKVxiL30sewpiZWdpbjovXGJTRVRccysoKFNFU1NJT058TE9DQUwpXHMrKT9OQU1FU1xiL30se2JlZ2luOi9cYklTXHMrKE5PVFxzKyk/VU5LTk9XTlxiLwp9LHtiZWdpbjovXGJTRUNVUklUWVxzK0xBQkVMXGIvfSx7YmVnaW46L1xiU1RBTkRBTE9ORVxzKyhZRVN8Tk98Tk9ccytWQUxVRSlcYi8KfSx7YmVnaW46L1xiV0lUSFxzKyhOT1xzKyk/REFUQVxiL30se2JlZ2luOi9cYihGT1JFSUdOfFNFVClccytEQVRBXGIvfSx7CmJlZ2luOi9cYlNFVFxzKyhDQVRBTE9HfENPTlNUUkFJTlRTKVxiL30se2JlZ2luOi9cYihXSVRIfEZPUilccytPUkRJTkFMSVRZXGIvfSx7CmJlZ2luOi9cYklTXHMrKE5PVFxzKyk/RE9DVU1FTlRcYi99LHsKYmVnaW46L1xiWE1MXHMrT1BUSU9OXHMrKERPQ1VNRU5UfENPTlRFTlQpXGIvfSx7CmJlZ2luOi9cYihTVFJJUHxQUkVTRVJWRSlccytXSElURVNQQUNFXGIvfSx7CmJlZ2luOi9cYk5PXHMrKEFDVElPTnxNQVhWQUxVRXxNSU5WQUxVRSlcYi99LHsKYmVnaW46L1xiUEFSVElUSU9OXHMrQllccysoUkFOR0V8TElTVHxIQVNIKVxiL30se2JlZ2luOi9cYkFUXHMrVElNRVxzK1pPTkVcYi99LHsKYmVnaW46L1xiR1JBTlRFRFxzK0JZXGIvfSx7YmVnaW46L1xiUkVUVVJOXHMrKFFVRVJZfE5FWFQpXGIvfSx7CmJlZ2luOi9cYihBVFRBQ0h8REVUQUNIKVxzK1BBUlRJVElPTlxiL30sewpiZWdpbjovXGJGT1JDRVxzK1JPV1xzK0xFVkVMXHMrU0VDVVJJVFlcYi99LHsKYmVnaW46L1xiKElOQ0xVRElOR3xFWENMVURJTkcpXHMrKENPTU1FTlRTfENPTlNUUkFJTlRTfERFRkFVTFRTfElERU5USVRZfElOREVYRVN8U1RBVElTVElDU3xTVE9SQUdFfEFMTClcYi8KfSx7YmVnaW46L1xiQVNccysoQVNTSUdOTUVOVHxJTVBMSUNJVHxQRVJNSVNTSVZFfFJFU1RSSUNUSVZFfEVOVU18UkFOR0UpXGIvfV19LHsKYmVnaW46L1xiKEZPUk1BVHxGQU1JTFl8VkVSU0lPTilccypcKC99LHtiZWdpbjovXGJJTkNMVURFXHMqXCgvLAprZXl3b3JkczoiSU5DTFVERSJ9LHtiZWdpbjovXGJSQU5HRSg/IVxzKihCRVRXRUVOfFVOQk9VTkRFRHxDVVJSRU5UfFstMC05XSspKS8KfSx7CmJlZ2luOi9cYihWRVJTSU9OfE9XTkVSfFRFTVBMQVRFfFRBQkxFU1BBQ0V8Q09OTkVDVElPTlxzK0xJTUlUfFBST0NFRFVSRXxSRVNUUklDVHxKT0lOfFBBUlNFUnxDT1BZfFNUQVJUfEVORHxDT0xMQVRJT058SU5QVVR8QU5BTFlaRXxTVE9SQUdFfExJS0V8REVGQVVMVHxERUxJTUlURVJ8RU5DT0RJTkd8Q09MVU1OfENPTlNUUkFJTlR8VEFCTEV8U0NIRU1BKVxzKj0vCn0se2JlZ2luOi9cYihQR19cdys/fEhBU19bQS1aX10rX1BSSVZJTEVHRSlcYi8scmVsZXZhbmNlOjEwfSx7CmJlZ2luOi9cYkVYVFJBQ1RccypcKC8sZW5kOi9cYkZST01cYi8scmV0dXJuRW5kOiEwLGtleXdvcmRzOnsKdHlwZToiQ0VOVFVSWSBEQVkgREVDQURFIERPVyBET1kgRVBPQ0ggSE9VUiBJU09ET1cgSVNPWUVBUiBNSUNST1NFQ09ORFMgTUlMTEVOTklVTSBNSUxMSVNFQ09ORFMgTUlOVVRFIE1PTlRIIFFVQVJURVIgU0VDT05EIFRJTUVaT05FIFRJTUVaT05FX0hPVVIgVElNRVpPTkVfTUlOVVRFIFdFRUsgWUVBUiIKfX0se2JlZ2luOi9cYihYTUxFTEVNRU5UfFhNTFBJKVxzKlwoXHMqTkFNRS8sa2V5d29yZHM6e2tleXdvcmQ6Ik5BTUUifX0sewpiZWdpbjovXGIoWE1MUEFSU0V8WE1MU0VSSUFMSVpFKVxzKlwoXHMqKERPQ1VNRU5UfENPTlRFTlQpLyxrZXl3b3Jkczp7CmtleXdvcmQ6IkRPQ1VNRU5UIENPTlRFTlQifX0se2JlZ2luS2V5d29yZHM6IkNBQ0hFIElOQ1JFTUVOVCBNQVhWQUxVRSBNSU5WQUxVRSIsCmVuZDpFLkNfTlVNQkVSX1JFLHJldHVybkVuZDohMCxrZXl3b3JkczoiQlkgQ0FDSEUgSU5DUkVNRU5UIE1BWFZBTFVFIE1JTlZBTFVFIgp9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOi9cYihXSVRIfFdJVEhPVVQpXHMrVElNRVxzK1pPTkVcYi99LHtjbGFzc05hbWU6InR5cGUiLApiZWdpbjovXGJJTlRFUlZBTFxzKyhZRUFSfE1PTlRIfERBWXxIT1VSfE1JTlVURXxTRUNPTkQpKFxzK1RPXHMrKE1PTlRIfEhPVVJ8TUlOVVRFfFNFQ09ORCkpP1xiLwp9LHsKYmVnaW46L1xiUkVUVVJOU1xzKyhMQU5HVUFHRV9IQU5ETEVSfFRSSUdHRVJ8RVZFTlRfVFJJR0dFUnxGRFdfSEFORExFUnxJTkRFWF9BTV9IQU5ETEVSfFRTTV9IQU5ETEVSKVxiLywKa2V5d29yZHM6e2tleXdvcmQ6IlJFVFVSTlMiLAp0eXBlOiJMQU5HVUFHRV9IQU5ETEVSIFRSSUdHRVIgRVZFTlRfVFJJR0dFUiBGRFdfSEFORExFUiBJTkRFWF9BTV9IQU5ETEVSIFRTTV9IQU5ETEVSIgp9fSx7YmVnaW46IlxcYigiK0krIilcXHMqXFwoIn0se2JlZ2luOiJcXC4oIitSKyIpXFxiIn0sewpiZWdpbjoiXFxiKCIrUisiKVxccytQQVRIXFxiIixrZXl3b3Jkczp7a2V5d29yZDoiUEFUSCIsCnR5cGU6QS5yZXBsYWNlKCJQQVRIICIsIiIpfX0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46IlxcYigiK1IrIilcXGIifSx7CmNsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIixjb250YWluczpbe2JlZ2luOiInJyJ9XX0sewpjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IihlfEV8dSZ8VSYpJyIsZW5kOiInIixjb250YWluczpbe2JlZ2luOiJcXFxcLiJ9XSwKcmVsZXZhbmNlOjEwfSxFLkVORF9TQU1FX0FTX0JFR0lOKHtiZWdpbjpOLGVuZDpOLGNvbnRhaW5zOlt7CnN1Ykxhbmd1YWdlOlsicGdzcWwiLCJwZXJsIiwicHl0aG9uIiwidGNsIiwiciIsImx1YSIsImphdmEiLCJwaHAiLCJydWJ5IiwiYmFzaCIsInNjaGVtZSIsInhtbCIsImpzb24iXSwKZW5kc1dpdGhQYXJlbnQ6ITB9XX0pLHtiZWdpbjonIicsZW5kOiciJyxjb250YWluczpbe2JlZ2luOiciIid9XQp9LEUuQ19OVU1CRVJfTU9ERSxFLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFQse2NsYXNzTmFtZToibWV0YSIsdmFyaWFudHM6W3sKYmVnaW46IiUoUk9XKT9UWVBFIixyZWxldmFuY2U6MTB9LHtiZWdpbjoiXFwkXFxkKyJ9LHtiZWdpbjoiXiNcXHciLGVuZDoiJCJ9XX0sewpjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46Ijw8XFxzKlthLXpBLVpfXVthLXpBLVpfMC05JF0qXFxzKj4+IixyZWxldmFuY2U6MTB9XX19Cn0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgidmFsYSIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT4oe25hbWU6IlZhbGEiLAprZXl3b3Jkczp7CmtleXdvcmQ6ImNoYXIgdWNoYXIgdW5pY2hhciBpbnQgdWludCBsb25nIHVsb25nIHNob3J0IHVzaG9ydCBpbnQ4IGludDE2IGludDMyIGludDY0IHVpbnQ4IHVpbnQxNiB1aW50MzIgdWludDY0IGZsb2F0IGRvdWJsZSBib29sIHN0cnVjdCBlbnVtIHN0cmluZyB2b2lkIHdlYWsgdW5vd25lZCBvd25lZCBhc3luYyBzaWduYWwgc3RhdGljIGFic3RyYWN0IGludGVyZmFjZSBvdmVycmlkZSB2aXJ0dWFsIGRlbGVnYXRlIGlmIHdoaWxlIGRvIGZvciBmb3JlYWNoIGVsc2Ugc3dpdGNoIGNhc2UgYnJlYWsgZGVmYXVsdCByZXR1cm4gdHJ5IGNhdGNoIHB1YmxpYyBwcml2YXRlIHByb3RlY3RlZCBpbnRlcm5hbCB1c2luZyBuZXcgdGhpcyBnZXQgc2V0IGNvbnN0IHN0ZG91dCBzdGRpbiBzdGRlcnIgdmFyIiwKYnVpbHRfaW46IkRCdXMgR0xpYiBDQ29kZSBHZWUgT2JqZWN0IEd0ayBQb3NpeCIsbGl0ZXJhbDoiZmFsc2UgdHJ1ZSBudWxsIn0sCmNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiY2xhc3MgaW50ZXJmYWNlIG5hbWVzcGFjZSIsZW5kOi9cey8sCmV4Y2x1ZGVFbmQ6ITAsaWxsZWdhbDoiW14sOlxcblxcc1xcLl0iLGNvbnRhaW5zOltlLlVOREVSU0NPUkVfVElUTEVfTU9ERV0KfSxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciIiInLAplbmQ6JyIiIicscmVsZXZhbmNlOjV9LGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQ19OVU1CRVJfTU9ERSx7CmNsYXNzTmFtZToibWV0YSIsYmVnaW46Il4jIixlbmQ6IiQiLHJlbGV2YW5jZToyfV19KX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgianNvbiIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBuPT57Y29uc3QgZT17CmxpdGVyYWw6InRydWUgZmFsc2UgbnVsbCIKfSxpPVtuLkNfTElORV9DT01NRU5UX01PREUsbi5DX0JMT0NLX0NPTU1FTlRfTU9ERV0sYT1bbi5RVU9URV9TVFJJTkdfTU9ERSxuLkNfTlVNQkVSX01PREVdLGw9ewplbmQ6IiwiLGVuZHNXaXRoUGFyZW50OiEwLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6YSxrZXl3b3JkczplfSx0PXtiZWdpbjovXHsvLAplbmQ6L1x9Lyxjb250YWluczpbe2NsYXNzTmFtZToiYXR0ciIsYmVnaW46LyIvLGVuZDovIi8sCmNvbnRhaW5zOltuLkJBQ0tTTEFTSF9FU0NBUEVdLGlsbGVnYWw6IlxcbiJ9LG4uaW5oZXJpdChsLHtiZWdpbjovOi8KfSldLmNvbmNhdChpKSxpbGxlZ2FsOiJcXFMifSxzPXtiZWdpbjoiXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6W24uaW5oZXJpdChsKV0sCmlsbGVnYWw6IlxcUyJ9O3JldHVybiBhLnB1c2godCxzKSxpLmZvckVhY2goKG49PnthLnB1c2gobil9KSkse25hbWU6IkpTT04iLApjb250YWluczphLGtleXdvcmRzOmUsaWxsZWdhbDoiXFxTIn19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJvYmplY3RpdmVjIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9PnsKY29uc3Qgbj0vW2EtekEtWkBdW2EtekEtWjAtOV9dKi8sXz17JHBhdHRlcm46biwKa2V5d29yZDoiQGludGVyZmFjZSBAY2xhc3MgQHByb3RvY29sIEBpbXBsZW1lbnRhdGlvbiJ9O3JldHVybnsKbmFtZToiT2JqZWN0aXZlLUMiLGFsaWFzZXM6WyJtbSIsIm9iamMiLCJvYmotYyIsIm9iai1jKysiLCJvYmplY3RpdmUtYysrIl0sCmtleXdvcmRzOnskcGF0dGVybjpuLAprZXl3b3JkOiJpbnQgZmxvYXQgd2hpbGUgY2hhciBleHBvcnQgc2l6ZW9mIHR5cGVkZWYgY29uc3Qgc3RydWN0IGZvciB1bmlvbiB1bnNpZ25lZCBsb25nIHZvbGF0aWxlIHN0YXRpYyBib29sIG11dGFibGUgaWYgZG8gcmV0dXJuIGdvdG8gdm9pZCBlbnVtIGVsc2UgYnJlYWsgZXh0ZXJuIGFzbSBjYXNlIHNob3J0IGRlZmF1bHQgZG91YmxlIHJlZ2lzdGVyIGV4cGxpY2l0IHNpZ25lZCB0eXBlbmFtZSB0aGlzIHN3aXRjaCBjb250aW51ZSB3Y2hhcl90IGlubGluZSByZWFkb25seSBhc3NpZ24gcmVhZHdyaXRlIHNlbGYgQHN5bmNocm9uaXplZCBpZCB0eXBlb2Ygbm9uYXRvbWljIHN1cGVyIHVuaWNoYXIgSUJPdXRsZXQgSUJBY3Rpb24gc3Ryb25nIHdlYWsgY29weSBpbiBvdXQgaW5vdXQgYnljb3B5IGJ5cmVmIG9uZXdheSBfX3N0cm9uZyBfX3dlYWsgX19ibG9jayBfX2F1dG9yZWxlYXNpbmcgQHByaXZhdGUgQHByb3RlY3RlZCBAcHVibGljIEB0cnkgQHByb3BlcnR5IEBlbmQgQHRocm93IEBjYXRjaCBAZmluYWxseSBAYXV0b3JlbGVhc2Vwb29sIEBzeW50aGVzaXplIEBkeW5hbWljIEBzZWxlY3RvciBAb3B0aW9uYWwgQHJlcXVpcmVkIEBlbmNvZGUgQHBhY2thZ2UgQGltcG9ydCBAZGVmcyBAY29tcGF0aWJpbGl0eV9hbGlhcyBfX2JyaWRnZSBfX2JyaWRnZV90cmFuc2ZlciBfX2JyaWRnZV9yZXRhaW5lZCBfX2JyaWRnZV9yZXRhaW4gX19jb3ZhcmlhbnQgX19jb250cmF2YXJpYW50IF9fa2luZG9mIF9Ob25udWxsIF9OdWxsYWJsZSBfTnVsbF91bnNwZWNpZmllZCBfX0ZVTkNUSU9OX18gX19QUkVUVFlfRlVOQ1RJT05fXyBfX2F0dHJpYnV0ZV9fIGdldHRlciBzZXR0ZXIgcmV0YWluIHVuc2FmZV91bnJldGFpbmVkIG5vbm51bGwgbnVsbGFibGUgbnVsbF91bnNwZWNpZmllZCBudWxsX3Jlc2V0dGFibGUgY2xhc3MgaW5zdGFuY2V0eXBlIE5TX0RFU0lHTkFURURfSU5JVElBTElaRVIgTlNfVU5BVkFJTEFCTEUgTlNfUkVRVUlSRVNfU1VQRVIgTlNfUkVUVVJOU19JTk5FUl9QT0lOVEVSIE5TX0lOTElORSBOU19BVkFJTEFCTEUgTlNfREVQUkVDQVRFRCBOU19FTlVNIE5TX09QVElPTlMgTlNfU1dJRlRfVU5BVkFJTEFCTEUgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4gTlNfQVNTVU1FX05PTk5VTExfRU5EIE5TX1JFRklORURfRk9SX1NXSUZUIE5TX1NXSUZUX05BTUUgTlNfU1dJRlRfTk9USFJPVyBOU19EVVJJTkcgTlNfSEFORExFUiBOU19FTkRIQU5ETEVSIE5TX1ZBTFVFUkVUVVJOIE5TX1ZPSURSRVRVUk4iLApsaXRlcmFsOiJmYWxzZSB0cnVlIEZBTFNFIFRSVUUgbmlsIFlFUyBOTyBOVUxMIiwKYnVpbHRfaW46IkJPT0wgZGlzcGF0Y2hfb25jZV90IGRpc3BhdGNoX3F1ZXVlX3QgZGlzcGF0Y2hfc3luYyBkaXNwYXRjaF9hc3luYyBkaXNwYXRjaF9vbmNlIgp9LGlsbGVnYWw6IjwvIixjb250YWluczpbe2NsYXNzTmFtZToiYnVpbHRfaW4iLApiZWdpbjoiXFxiKEFWfENBfENGfENHfENJfENMfENNfENOfENUfE1LfE1QfE1US3xNVEx8TlN8U0NOfFNLfFVJfFdLfFhDKVxcdysiCn0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5DX05VTUJFUl9NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5BUE9TX1NUUklOR19NT0RFLHsKY2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46J0AiJyxlbmQ6JyInLGlsbGVnYWw6IlxcbiIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfV19LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi8jXHMqW2Etel0rXGIvLGVuZDovJC8sCmtleXdvcmRzOnsKIm1ldGEta2V5d29yZCI6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZSIKfSxjb250YWluczpbe2JlZ2luOi9cXFxuLyxyZWxldmFuY2U6MH0sZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUsewpjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIixiZWdpbjovPC4qPz4vLGVuZDovJC8sCmlsbGVnYWw6IlxcbiJ9LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sewpjbGFzc05hbWU6ImNsYXNzIixiZWdpbjoiKCIrXy5rZXl3b3JkLnNwbGl0KCIgIikuam9pbigifCIpKyIpXFxiIixlbmQ6Lyhce3wkKS8sCmV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6Xyxjb250YWluczpbZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7CmJlZ2luOiJcXC4iK2UuVU5ERVJTQ09SRV9JREVOVF9SRSxyZWxldmFuY2U6MH1dfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInIiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKC4uLmUpe3JldHVybiBlLm1hcCgoZT0+ewpyZXR1cm4obj1lKT8ic3RyaW5nIj09dHlwZW9mIG4/bjpuLnNvdXJjZTpudWxsO3ZhciBufSkpLmpvaW4oIiIpfXJldHVybiBuPT57CmNvbnN0IGE9Lyg/Oig/OlthLXpBLVpdfFwuWy5fYS16QS1aXSlbLl9hLXpBLVowLTldKil8XC4oPyFcZCkvO3JldHVybntuYW1lOiJSIiwKaWxsZWdhbDovLT4vLGtleXdvcmRzOnskcGF0dGVybjphLAprZXl3b3JkOiJmdW5jdGlvbiBpZiBpbiBicmVhayBuZXh0IHJlcGVhdCBlbHNlIGZvciB3aGlsZSIsCmxpdGVyYWw6Ik5VTEwgTkEgVFJVRSBGQUxTRSBJbmYgTmFOIE5BX2ludGVnZXJffDEwIE5BX3JlYWxffDEwIE5BX2NoYXJhY3Rlcl98MTAgTkFfY29tcGxleF98MTAiLApidWlsdF9pbjoiTEVUVEVSUyBsZXR0ZXJzIG1vbnRoLmFiYiBtb250aC5uYW1lIHBpIFQgRiBhYnMgYWNvcyBhY29zaCBhbGwgYW55IGFueU5BIEFyZyBhcy5jYWxsIGFzLmNoYXJhY3RlciBhcy5jb21wbGV4IGFzLmRvdWJsZSBhcy5lbnZpcm9ubWVudCBhcy5pbnRlZ2VyIGFzLmxvZ2ljYWwgYXMubnVsbC5kZWZhdWx0IGFzLm51bWVyaWMgYXMucmF3IGFzaW4gYXNpbmggYXRhbiBhdGFuaCBhdHRyIGF0dHJpYnV0ZXMgYmFzZWVudiBicm93c2VyIGMgY2FsbCBjZWlsaW5nIGNsYXNzIENvbmogY29zIGNvc2ggY29zcGkgY3VtbWF4IGN1bW1pbiBjdW1wcm9kIGN1bXN1bSBkaWdhbW1hIGRpbSBkaW1uYW1lcyBlbXB0eWVudiBleHAgZXhwcmVzc2lvbiBmbG9vciBmb3JjZUFuZENhbGwgZ2FtbWEgZ2MudGltZSBnbG9iYWxlbnYgSW0gaW50ZXJhY3RpdmUgaW52aXNpYmxlIGlzLmFycmF5IGlzLmF0b21pYyBpcy5jYWxsIGlzLmNoYXJhY3RlciBpcy5jb21wbGV4IGlzLmRvdWJsZSBpcy5lbnZpcm9ubWVudCBpcy5leHByZXNzaW9uIGlzLmZpbml0ZSBpcy5mdW5jdGlvbiBpcy5pbmZpbml0ZSBpcy5pbnRlZ2VyIGlzLmxhbmd1YWdlIGlzLmxpc3QgaXMubG9naWNhbCBpcy5tYXRyaXggaXMubmEgaXMubmFtZSBpcy5uYW4gaXMubnVsbCBpcy5udW1lcmljIGlzLm9iamVjdCBpcy5wYWlybGlzdCBpcy5yYXcgaXMucmVjdXJzaXZlIGlzLnNpbmdsZSBpcy5zeW1ib2wgbGF6eUxvYWREQmZldGNoIGxlbmd0aCBsZ2FtbWEgbGlzdCBsb2cgbWF4IG1pbiBtaXNzaW5nIE1vZCBuYW1lcyBuYXJncyBuemNoYXIgb2xkQ2xhc3Mgb24uZXhpdCBwb3MudG8uZW52IHByb2MudGltZSBwcm9kIHF1b3RlIHJhbmdlIFJlIHJlcCByZXRyYWNlbWVtIHJldHVybiByb3VuZCBzZXFfYWxvbmcgc2VxX2xlbiBzZXEuaW50IHNpZ24gc2lnbmlmIHNpbiBzaW5oIHNpbnBpIHNxcnQgc3RhbmRhcmRHZW5lcmljIHN1YnN0aXR1dGUgc3VtIHN3aXRjaCB0YW4gdGFuaCB0YW5waSB0cmFjZW1lbSB0cmlnYW1tYSB0cnVuYyB1bmNsYXNzIHVudHJhY2VtZW0gVXNlTWV0aG9kIHh0ZnJtIgp9LGNvbnRhaW5zOltuLkNPTU1FTlQoLyMnLywvJC8se2NvbnRhaW5zOlt7Y2xhc3NOYW1lOiJkb2N0YWciLGJlZ2luOiJAZXhhbXBsZXMiLApzdGFydHM6e2NvbnRhaW5zOlt7YmVnaW46L1xuL30se2JlZ2luOi8jJ1xzKig/PUBbYS16QS1aXSspLyxlbmRzUGFyZW50OiEwfSx7CmJlZ2luOi8jJy8sZW5kOi8kLyxleGNsdWRlQmVnaW46ITB9XX19LHtjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46IkBwYXJhbSIsCmVuZDovJC8sY29udGFpbnM6W3tjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOmF9LHsKYmVnaW46L2AoPzpcXC58W15gXFxdKStgL31dLGVuZHNQYXJlbnQ6ITB9XX0se2NsYXNzTmFtZToiZG9jdGFnIiwKYmVnaW46L0BbYS16QS1aXSsvfSx7Y2xhc3NOYW1lOiJtZXRhLWtleXdvcmQiLGJlZ2luOi9cXFthLXpBLVpdKy99XQp9KSxuLkhBU0hfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6W24uQkFDS1NMQVNIX0VTQ0FQRV0sCnZhcmlhbnRzOltuLkVORF9TQU1FX0FTX0JFR0lOKHtiZWdpbjovW3JSXSIoLSopXCgvLGVuZDovXCkoLSopIi8KfSksbi5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0iKC0qKVx7LyxlbmQ6L1x9KC0qKSIvCn0pLG4uRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi9bclJdIigtKilcWy8sZW5kOi9cXSgtKikiLwp9KSxuLkVORF9TQU1FX0FTX0JFR0lOKHtiZWdpbjovW3JSXScoLSopXCgvLGVuZDovXCkoLSopJy8KfSksbi5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46L1tyUl0nKC0qKVx7LyxlbmQ6L1x9KC0qKScvCn0pLG4uRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi9bclJdJygtKilcWy8sZW5kOi9cXSgtKiknL30pLHtiZWdpbjonIicsZW5kOiciJywKcmVsZXZhbmNlOjB9LHtiZWdpbjoiJyIsZW5kOiInIixyZWxldmFuY2U6MH1dfSx7Y2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7CmJlZ2luOi8oW15hLXpBLVowLTkuX10pKD89MFt4WF1bMC05YS1mQS1GXStcLlswLTlhLWZBLUZdKltwUF1bKy1dP1xkK2k/KS8sCmVuZDovMFt4WF1bMC05YS1mQS1GXStcLlswLTlhLWZBLUZdKltwUF1bKy1dP1xkK2k/LyxleGNsdWRlQmVnaW46ITB9LHsKYmVnaW46LyhbXmEtekEtWjAtOS5fXSkoPz0wW3hYXVswLTlhLWZBLUZdKyhbcFBdWystXT9cZCspP1tMaV0/KS8sCmVuZDovMFt4WF1bMC05YS1mQS1GXSsoW3BQXVsrLV0/XGQrKT9bTGldPy8sZXhjbHVkZUJlZ2luOiEwfSx7CmJlZ2luOi8oW15hLXpBLVowLTkuX10pKD89KFxkKyhcLlxkKik/fFwuXGQrKShbZUVdWystXT9cZCspP1tMaV0/KS8sCmVuZDovKFxkKyhcLlxkKik/fFwuXGQrKShbZUVdWystXT9cZCspP1tMaV0/LyxleGNsdWRlQmVnaW46ITB9XSxyZWxldmFuY2U6MH0sewpiZWdpbjoiJSIsZW5kOiIlIn0se2JlZ2luOmUoL1thLXpBLVpdW2EtekEtWl8wLTldKi8sIlxccys8LVxccysiKX0se2JlZ2luOiJgIiwKZW5kOiJgIixjb250YWluczpbe2JlZ2luOi9cXC4vfV19XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJzY2lsYWIiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+ewpjb25zdCBuPVtlLkNfTlVNQkVSX01PREUse2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJ3xcIiIsZW5kOiInfFwiIiwKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSx7YmVnaW46IicnIn1dfV07cmV0dXJue25hbWU6IlNjaWxhYiIsCmFsaWFzZXM6WyJzY2kiXSxrZXl3b3Jkczp7JHBhdHRlcm46LyU/XHcrLywKa2V5d29yZDoiYWJvcnQgYnJlYWsgY2FzZSBjbGVhciBjYXRjaCBjb250aW51ZSBkbyBlbHNlaWYgZWxzZSBlbmRmdW5jdGlvbiBlbmQgZm9yIGZ1bmN0aW9uIGdsb2JhbCBpZiBwYXVzZSByZXR1cm4gcmVzdW1lIHNlbGVjdCB0cnkgdGhlbiB3aGlsZSIsCmxpdGVyYWw6IiVmICVGICV0ICVUICVwaSAlZXBzICVpbmYgJW5hbiAlZSAlaSAleiAlcyIsCmJ1aWx0X2luOiJhYnMgYW5kIGFjb3MgYXNpbiBhdGFuIGNlaWwgY2QgY2hkaXIgY2xlYXJnbG9iYWwgY29zaCBjb3MgY3VtcHJvZCBkZWZmIGRpc3AgZXJyb3IgZXhlYyBleGVjc3RyIGV4aXN0cyBleHAgZXllIGdldHRleHQgZmxvb3IgZnByaW50ZiBmcmVhZCBmc29sdmUgaW1hZyBpc2RlZiBpc2VtcHR5IGlzaW5maXNuYW4gaXN2ZWN0b3IgbGFzdGVycm9yIGxlbmd0aCBsb2FkIGxpbnNwYWNlIGxpc3QgbGlzdGZpbGVzIGxvZzEwIGxvZzIgbG9nIG1heCBtaW4gbXNwcmludGYgbWNsb3NlIG1vcGVuIG9uZXMgb3IgcGF0aGNvbnZlcnQgcG9seSBwcmludGYgcHJvZCBwd2QgcmFuZCByZWFsIHJvdW5kIHNpbmggc2luIHNpemUgZ3NvcnQgc3ByaW50ZiBzcXJ0IHN0cmNhdCBzdHJjbXBzIHRyaW5nIHN1bSBzeXN0ZW0gdGFuaCB0YW4gdHlwZSB0eXBlbmFtZSB3YXJuaW5nIHplcm9zIG1hdHJpeCIKfSxpbGxlZ2FsOicoInwjfC9cXCp8XFxzKy9cXHcrKScsY29udGFpbnM6W3tjbGFzc05hbWU6ImZ1bmN0aW9uIiwKYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24iLGVuZDoiJCIsY29udGFpbnM6W2UuVU5ERVJTQ09SRV9USVRMRV9NT0RFLHsKY2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiJcXCgiLGVuZDoiXFwpIn1dfSx7CmJlZ2luOiJbYS16QS1aX11bYS16QS1aXzAtOV0qW1xcLiddKyIscmVsZXZhbmNlOjB9LHtiZWdpbjoiXFxbIiwKZW5kOiJcXF1bXFwuJ10qIixyZWxldmFuY2U6MCxjb250YWluczpufSxlLkNPTU1FTlQoIi8vIiwiJCIpXS5jb25jYXQobil9fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgicHVwcGV0IiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9PnsKY29uc3Qgcz1lLkNPTU1FTlQoIiMiLCIkIikscj0iKFtBLVphLXpfXXw6OikoXFx3fDo6KSoiLGE9ZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7CmJlZ2luOnJ9KSxuPXtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjoiXFwkIityfSxpPXtjbGFzc05hbWU6InN0cmluZyIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsbl0sdmFyaWFudHM6W3tiZWdpbjovJy8sZW5kOi8nL30se2JlZ2luOi8iLyxlbmQ6LyIvCn1dfTtyZXR1cm57bmFtZToiUHVwcGV0IixhbGlhc2VzOlsicHAiXSxjb250YWluczpbcyxuLGkse2JlZ2luS2V5d29yZHM6ImNsYXNzIiwKZW5kOiJcXHt8OyIsaWxsZWdhbDovPS8sY29udGFpbnM6W2Esc119LHtiZWdpbktleXdvcmRzOiJkZWZpbmUiLGVuZDovXHsvLApjb250YWluczpbe2NsYXNzTmFtZToic2VjdGlvbiIsYmVnaW46ZS5JREVOVF9SRSxlbmRzUGFyZW50OiEwfV19LHsKYmVnaW46ZS5JREVOVF9SRSsiXFxzK1xceyIscmV0dXJuQmVnaW46ITAsZW5kOi9cUy8sY29udGFpbnM6W3sKY2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjplLklERU5UX1JFfSx7YmVnaW46L1x7LyxlbmQ6L1x9LyxrZXl3b3Jkczp7CmtleXdvcmQ6ImFuZCBjYXNlIGRlZmF1bHQgZWxzZSBlbHNpZiBmYWxzZSBpZiBpbiBpbXBvcnQgZW5oZXJpdHMgbm9kZSBvciB0cnVlIHVuZGVmIHVubGVzcyBtYWluIHNldHRpbmdzICRzdHJpbmcgIiwKbGl0ZXJhbDoiYWxpYXMgYXVkaXQgYmVmb3JlIGxvZ2xldmVsIG5vb3AgcmVxdWlyZSBzdWJzY3JpYmUgdGFnIG93bmVyIGVuc3VyZSBncm91cCBtb2RlIG5hbWV8MCBjaGFuZ2VzIGNvbnRleHQgZm9yY2UgaW5jbCBsZW5zIGxvYWRfcGF0aCBvbmx5aWYgcHJvdmlkZXIgcmV0dXJucyByb290IHNob3dfZGlmZiB0eXBlX2NoZWNrIGVuX2FkZHJlc3MgaXBfYWRkcmVzcyByZWFsbmFtZSBjb21tYW5kIGVudmlyb25tZW50IGhvdXIgbW9udXRlIG1vbnRoIG1vbnRoZGF5IHNwZWNpYWwgdGFyZ2V0IHdlZWtkYXkgY3JlYXRlcyBjd2Qgb2dvdXRwdXQgcmVmcmVzaCByZWZyZXNob25seSB0cmllcyB0cnlfc2xlZXAgdW1hc2sgYmFja3VwIGNoZWNrc3VtIGNvbnRlbnQgY3RpbWUgZm9yY2UgaWdub3JlIGxpbmtzIG10aW1lIHB1cmdlIHJlY3Vyc2UgcmVjdXJzZWxpbWl0IHJlcGxhY2Ugc2VsaW51eF9pZ25vcmVfZGVmYXVsdHMgc2VscmFuZ2Ugc2Vscm9sZSBzZWx0eXBlIHNlbHVzZXIgc291cmNlIHNvdWlyY2VfcGVybWlzc2lvbnMgc291cmNlc2VsZWN0IHZhbGlkYXRlX2NtZCB2YWxpZGF0ZV9yZXBsYWNlbWVudCBhbGxvd2R1cGUgYXR0cmlidXRlX21lbWJlcnNoaXAgYXV0aF9tZW1iZXJzaGlwIGZvcmNlbG9jYWwgZ2lkIGlhX2xvYWRfbW9kdWxlIG1lbWJlcnMgc3lzdGVtIGhvc3RfYWxpYXNlcyBpcCBhbGxvd2VkX3RydW5rX3ZsYW5zIGRlc2NyaXB0aW9uIGRldmljZV91cmwgZHVwbGV4IGVuY2Fwc3VsYXRpb24gZXRoZXJjaGFubmVsIG5hdGl2ZV92bGFuIHNwZWVkIHByaW5jaXBhbHMgYWxsb3dfcm9vdCBhdXRoX2NsYXNzIGF1dGhfdHlwZSBhdXRoZW50aWNhdGVfdXNlciBrX29mX24gbWVjaGFuaXNtcyBydWxlIHNlc3Npb25fb3duZXIgc2hhcmVkIG9wdGlvbnMgZGV2aWNlIGZzdHlwZSBlbmFibGUgaGFzcmVzdGFydCBkaXJlY3RvcnkgcHJlc2VudCBhYnNlbnQgbGluayBhdGJvb3QgYmxvY2tkZXZpY2UgZGV2aWNlIGR1bXAgcGFzcyByZW1vdW50cyBwb2xsZXJfdGFnIHVzZSBtZXNzYWdlIHdpdGhwYXRoIGFkbWluZmlsZSBhbGxvd192aXJ0dWFsIGFsbG93Y2Ryb20gY2F0ZWdvcnkgY29uZmlnZmlsZXMgZmxhdm9yIGluc3RhbGxfb3B0aW9ucyBpbnN0YW5jZSBwYWNrYWdlX3NldHRpbmdzIHBsYXRmb3JtIHJlc3BvbnNlZmlsZSBzdGF0dXMgdW5pbnN0YWxsX29wdGlvbnMgdmVuZG9yIHVubGVzc19zeXN0ZW1fdXNlciB1bmxlc3NfdWlkIGJpbmFyeSBjb250cm9sIGZsYWdzIGhhc3N0YXR1cyBtYW5pZmVzdCBwYXR0ZXJuIHJlc3RhcnQgcnVubmluZyBzdGFydCBzdG9wIGFsbG93ZHVwZSBhdXRocyBleHBpcnkgZ2lkIGdyb3VwcyBob21lIGl0ZXJhdGlvbnMga2V5X21lbWJlcnNoaXAga2V5cyBtYW5hZ2Vob21lIG1lbWJlcnNoaXAgcGFzc3dvcmQgcGFzc3dvcmRfbWF4X2FnZSBwYXNzd29yZF9taW5fYWdlIHByb2ZpbGVfbWVtYmVyc2hpcCBwcm9maWxlcyBwcm9qZWN0IHB1cmdlX3NzaF9rZXlzIHJvbGVfbWVtYmVyc2hpcCByb2xlcyBzYWx0IHNoZWxsIHVpZCBiYXNldXJsIGNvc3QgZGVzY3IgZW5hYmxlZCBlbmFibGVncm91cHMgZXhjbHVkZSBmYWlsb3Zlcm1ldGhvZCBncGdjaGVjayBncGdrZXkgaHR0cF9jYWNoaW5nIGluY2x1ZGUgaW5jbHVkZXBrZ3Mga2VlcGFsaXZlIG1ldGFkYXRhX2V4cGlyZSBtZXRhbGluayBtaXJyb3JsaXN0IHByaW9yaXR5IHByb3RlY3QgcHJveHkgcHJveHlfcGFzc3dvcmQgcHJveHlfdXNlcm5hbWUgcmVwb19ncGdjaGVjayBzM19lbmFibGVkIHNraXBfaWZfdW5hdmFpbGFibGUgc3NsY2FjZXJ0IHNzbGNsaWVudGNlcnQgc3NsY2xpZW50a2V5IHNzbHZlcmlmeSBtb3VudGVkIiwKYnVpbHRfaW46ImFyY2hpdGVjdHVyZSBhdWdlYXN2ZXJzaW9uIGJsb2NrZGV2aWNlcyBib2FyZG1hbnVmYWN0dXJlciBib2FyZHByb2R1Y3RuYW1lIGJvYXJkc2VyaWFsbnVtYmVyIGNma2V5IGRoY3Bfc2VydmVycyBkb21haW4gZWMyXyBlYzJfdXNlcmRhdGEgZmFjdGVydmVyc2lvbiBmaWxlc3lzdGVtcyBsZG9tIGZxZG4gZ2lkIGhhcmR3YXJlaXNhIGhhcmR3YXJlbW9kZWwgaG9zdG5hbWUgaWR8MCBpbnRlcmZhY2VzIGlwYWRkcmVzcyBpcGFkZHJlc3NfIGlwYWRkcmVzczYgaXBhZGRyZXNzNl8gaXBob3N0bnVtYmVyIGlzX3ZpcnR1YWwga2VybmVsIGtlcm5lbG1hanZlcnNpb24ga2VybmVscmVsZWFzZSBrZXJuZWx2ZXJzaW9uIGtlcm5lbHJlbGVhc2Uga2VybmVsdmVyc2lvbiBsc2JkaXN0Y29kZW5hbWUgbHNiZGlzdGRlc2NyaXB0aW9uIGxzYmRpc3RpZCBsc2JkaXN0cmVsZWFzZSBsc2JtYWpkaXN0cmVsZWFzZSBsc2JtaW5vcmRpc3RyZWxlYXNlIGxzYnJlbGVhc2UgbWFjYWRkcmVzcyBtYWNhZGRyZXNzXyBtYWNvc3hfYnVpbGR2ZXJzaW9uIG1hY29zeF9wcm9kdWN0bmFtZSBtYWNvc3hfcHJvZHVjdHZlcnNpb24gbWFjb3N4X3Byb2R1Y3R2ZXJzb25fbWFqb3IgbWFjb3N4X3Byb2R1Y3R2ZXJzaW9uX21pbm9yIG1hbnVmYWN0dXJlciBtZW1vcnlmcmVlIG1lbW9yeXNpemUgbmV0bWFzayBtZXRtYXNrXyBuZXR3b3JrXyBvcGVyYXRpbmdzeXN0ZW0gb3BlcmF0aW5nc3lzdGVtbWFqcmVsZWFzZSBvcGVyYXRpbmdzeXN0ZW1yZWxlYXNlIG9zZmFtaWx5IHBhcnRpdGlvbnMgcGF0aCBwaHlzaWNhbHByb2Nlc3NvcmNvdW50IHByb2Nlc3NvciBwcm9jZXNzb3Jjb3VudCBwcm9kdWN0bmFtZSBwcyBwdXBwZXR2ZXJzaW9uIHJ1YnlzaXRlZGlyIHJ1Ynl2ZXJzaW9uIHNlbGludXggc2VsaW51eF9jb25maWdfbW9kZSBzZWxpbnV4X2NvbmZpZ19wb2xpY3kgc2VsaW51eF9jdXJyZW50X21vZGUgc2VsaW51eF9jdXJyZW50X21vZGUgc2VsaW51eF9lbmZvcmNlZCBzZWxpbnV4X3BvbGljeXZlcnNpb24gc2VyaWFsbnVtYmVyIHNwXyBzc2hkc2FrZXkgc3NoZWNkc2FrZXkgc3NocnNha2V5IHN3YXBlbmNyeXB0ZWQgc3dhcGZyZWUgc3dhcHNpemUgdGltZXpvbmUgdHlwZSB1bmlxdWVpZCB1cHRpbWUgdXB0aW1lX2RheXMgdXB0aW1lX2hvdXJzIHVwdGltZV9zZWNvbmRzIHV1aWQgdmlydHVhbCB2bGFucyB4ZW5kb21haW5zIHpmc192ZXJzaW9uIHpvbmVuYWUgem9uZXMgenBvb2xfdmVyc2lvbiIKfSxyZWxldmFuY2U6MCxjb250YWluczpbaSxzLHtiZWdpbjoiW2EtekEtWl9dK1xccyo9PiIscmV0dXJuQmVnaW46ITAsZW5kOiI9PiIsCmNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJhdHRyIixiZWdpbjplLklERU5UX1JFfV19LHtjbGFzc05hbWU6Im51bWJlciIsCmJlZ2luOiIoXFxiMFswLTdfXSspfChcXGIweFswLTlhLWZBLUZfXSspfChcXGJbMS05XVswLTlfXSooXFwuWzAtOV9dKyk/KXxbMF9dXFxiIiwKcmVsZXZhbmNlOjB9LG5dfV0scmVsZXZhbmNlOjB9XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJtYXRoZW1hdGljYSIsKCgpPT57InVzZSBzdHJpY3QiCjtjb25zdCBlPVsiQUFTVHJpYW5nbGUiLCJBYmVsaWFuR3JvdXAiLCJBYm9ydCIsIkFib3J0S2VybmVscyIsIkFib3J0UHJvdGVjdCIsIkFib3J0U2NoZWR1bGVkVGFzayIsIkFib3ZlIiwiQWJzIiwiQWJzQXJnIiwiQWJzQXJnUGxvdCIsIkFic29sdXRlIiwiQWJzb2x1dGVDb3JyZWxhdGlvbiIsIkFic29sdXRlQ29ycmVsYXRpb25GdW5jdGlvbiIsIkFic29sdXRlQ3VycmVudFZhbHVlIiwiQWJzb2x1dGVEYXNoaW5nIiwiQWJzb2x1dGVGaWxlTmFtZSIsIkFic29sdXRlT3B0aW9ucyIsIkFic29sdXRlUG9pbnRTaXplIiwiQWJzb2x1dGVUaGlja25lc3MiLCJBYnNvbHV0ZVRpbWUiLCJBYnNvbHV0ZVRpbWluZyIsIkFjY2VwdGFuY2VUaHJlc2hvbGQiLCJBY2NvdW50aW5nRm9ybSIsIkFjY3VtdWxhdGUiLCJBY2N1cmFjeSIsIkFjY3VyYWN5R29hbCIsIkFjdGlvbkRlbGF5IiwiQWN0aW9uTWVudSIsIkFjdGlvbk1lbnVCb3giLCJBY3Rpb25NZW51Qm94T3B0aW9ucyIsIkFjdGl2YXRlIiwiQWN0aXZlIiwiQWN0aXZlQ2xhc3NpZmljYXRpb24iLCJBY3RpdmVDbGFzc2lmaWNhdGlvbk9iamVjdCIsIkFjdGl2ZUl0ZW0iLCJBY3RpdmVQcmVkaWN0aW9uIiwiQWN0aXZlUHJlZGljdGlvbk9iamVjdCIsIkFjdGl2ZVN0eWxlIiwiQWN5Y2xpY0dyYXBoUSIsIkFkZE9uSGVscFBhdGgiLCJBZGRTaWRlcyIsIkFkZFRvIiwiQWRkVG9TZWFyY2hJbmRleCIsIkFkZFVzZXJzIiwiQWRqYWNlbmN5R3JhcGgiLCJBZGphY2VuY3lMaXN0IiwiQWRqYWNlbmN5TWF0cml4IiwiQWRqYWNlbnRNZXNoQ2VsbHMiLCJBZGp1c3RtZW50Qm94IiwiQWRqdXN0bWVudEJveE9wdGlvbnMiLCJBZGp1c3RUaW1lU2VyaWVzRm9yZWNhc3QiLCJBZG1pbmlzdHJhdGl2ZURpdmlzaW9uRGF0YSIsIkFmZmluZUhhbGZTcGFjZSIsIkFmZmluZVNwYWNlIiwiQWZmaW5lU3RhdGVTcGFjZU1vZGVsIiwiQWZmaW5lVHJhbnNmb3JtIiwiQWZ0ZXIiLCJBZ2dyZWdhdGVkRW50aXR5Q2xhc3MiLCJBZ2dyZWdhdGlvbkxheWVyIiwiQWlyY3JhZnREYXRhIiwiQWlycG9ydERhdGEiLCJBaXJQcmVzc3VyZURhdGEiLCJBaXJUZW1wZXJhdHVyZURhdGEiLCJBaXJ5QWkiLCJBaXJ5QWlQcmltZSIsIkFpcnlBaVplcm8iLCJBaXJ5QmkiLCJBaXJ5QmlQcmltZSIsIkFpcnlCaVplcm8iLCJBbGdlYnJhaWNJbnRlZ2VyUSIsIkFsZ2VicmFpY051bWJlciIsIkFsZ2VicmFpY051bWJlckRlbm9taW5hdG9yIiwiQWxnZWJyYWljTnVtYmVyTm9ybSIsIkFsZ2VicmFpY051bWJlclBvbHlub21pYWwiLCJBbGdlYnJhaWNOdW1iZXJUcmFjZSIsIkFsZ2VicmFpY1J1bGVzIiwiQWxnZWJyYWljUnVsZXNEYXRhIiwiQWxnZWJyYWljcyIsIkFsZ2VicmFpY1VuaXRRIiwiQWxpZ25tZW50IiwiQWxpZ25tZW50TWFya2VyIiwiQWxpZ25tZW50UG9pbnQiLCJBbGwiLCJBbGxvd0FkdWx0Q29udGVudCIsIkFsbG93ZWRDbG91ZEV4dHJhUGFyYW1ldGVycyIsIkFsbG93ZWRDbG91ZFBhcmFtZXRlckV4dGVuc2lvbnMiLCJBbGxvd2VkRGltZW5zaW9ucyIsIkFsbG93ZWRGcmVxdWVuY3lSYW5nZSIsIkFsbG93ZWRIZWFkcyIsIkFsbG93R3JvdXBDbG9zZSIsIkFsbG93SW5jb21wbGV0ZSIsIkFsbG93SW5saW5lQ2VsbHMiLCJBbGxvd0tlcm5lbEluaXRpYWxpemF0aW9uIiwiQWxsb3dMb29zZUdyYW1tYXIiLCJBbGxvd1JldmVyc2VHcm91cENsb3NlIiwiQWxsb3dTY3JpcHRMZXZlbENoYW5nZSIsIkFsbG93VmVyc2lvblVwZGF0ZSIsIkFsbFRydWUiLCJBbHBoYWJldCIsIkFscGhhYmV0aWNPcmRlciIsIkFscGhhYmV0aWNTb3J0IiwiQWxwaGFDaGFubmVsIiwiQWx0ZXJuYXRlSW1hZ2UiLCJBbHRlcm5hdGluZ0ZhY3RvcmlhbCIsIkFsdGVybmF0aW5nR3JvdXAiLCJBbHRlcm5hdGl2ZUh5cG90aGVzaXMiLCJBbHRlcm5hdGl2ZXMiLCJBbHRpdHVkZU1ldGhvZCIsIkFtYmllbnRMaWdodCIsIkFtYmlndWl0eUZ1bmN0aW9uIiwiQW1iaWd1aXR5TGlzdCIsIkFuYWx5dGljIiwiQW5hdG9teURhdGEiLCJBbmF0b215Rm9ybSIsIkFuYXRvbXlQbG90M0QiLCJBbmF0b215U2tpblN0eWxlIiwiQW5hdG9teVN0eWxpbmciLCJBbmNob3JlZFNlYXJjaCIsIkFuZCIsIkFuZGVyc29uRGFybGluZ1Rlc3QiLCJBbmdlckoiLCJBbmdsZUJpc2VjdG9yIiwiQW5nbGVCcmFja2V0IiwiQW5nbGVQYXRoIiwiQW5nbGVQYXRoM0QiLCJBbmdsZVZlY3RvciIsIkFuZ3VsYXJHYXVnZSIsIkFuaW1hdGUiLCJBbmltYXRpb25DeWNsZU9mZnNldCIsIkFuaW1hdGlvbkN5Y2xlUmVwZXRpdGlvbnMiLCJBbmltYXRpb25EaXJlY3Rpb24iLCJBbmltYXRpb25EaXNwbGF5VGltZSIsIkFuaW1hdGlvblJhdGUiLCJBbmltYXRpb25SZXBldGl0aW9ucyIsIkFuaW1hdGlvblJ1bm5pbmciLCJBbmltYXRpb25SdW5UaW1lIiwiQW5pbWF0aW9uVGltZUluZGV4IiwiQW5pbWF0b3IiLCJBbmltYXRvckJveCIsIkFuaW1hdG9yQm94T3B0aW9ucyIsIkFuaW1hdG9yRWxlbWVudHMiLCJBbm5vdGF0ZSIsIkFubm90YXRpb24iLCJBbm5vdGF0aW9uRGVsZXRlIiwiQW5ub3RhdGlvbktleXMiLCJBbm5vdGF0aW9uUnVsZXMiLCJBbm5vdGF0aW9uVmFsdWUiLCJBbm51aXR5IiwiQW5udWl0eUR1ZSIsIkFubnVsdXMiLCJBbm9tYWx5RGV0ZWN0aW9uIiwiQW5vbWFseURldGVjdG9yIiwiQW5vbWFseURldGVjdG9yRnVuY3Rpb24iLCJBbm9ueW1vdXMiLCJBbnRpYWxpYXNpbmciLCJBbnRpaGVybWl0aWFuTWF0cml4USIsIkFudGlzeW1tZXRyaWMiLCJBbnRpc3ltbWV0cmljTWF0cml4USIsIkFudG9ueW1zIiwiQW55T3JkZXIiLCJBbnlTdWJzZXQiLCJBbnlUcnVlIiwiQXBhcnQiLCJBcGFydFNxdWFyZUZyZWUiLCJBUElGdW5jdGlvbiIsIkFwcGVhcmFuY2UiLCJBcHBlYXJhbmNlRWxlbWVudHMiLCJBcHBlYXJhbmNlUnVsZXMiLCJBcHBlbGxGMSIsIkFwcGVuZCIsIkFwcGVuZENoZWNrIiwiQXBwZW5kTGF5ZXIiLCJBcHBlbmRUbyIsIkFwcGx5IiwiQXBwbHlTaWRlcyIsIkFyY0NvcyIsIkFyY0Nvc2giLCJBcmNDb3QiLCJBcmNDb3RoIiwiQXJjQ3NjIiwiQXJjQ3NjaCIsIkFyY0N1cnZhdHVyZSIsIkFSQ0hQcm9jZXNzIiwiQXJjTGVuZ3RoIiwiQXJjU2VjIiwiQXJjU2VjaCIsIkFyY1NpbiIsIkFyY1NpbkRpc3RyaWJ1dGlvbiIsIkFyY1NpbmgiLCJBcmNUYW4iLCJBcmNUYW5oIiwiQXJlYSIsIkFyZyIsIkFyZ01heCIsIkFyZ01pbiIsIkFyZ3VtZW50Q291bnRRIiwiQVJJTUFQcm9jZXNzIiwiQXJpdGhtZXRpY0dlb21ldHJpY01lYW4iLCJBUk1BUHJvY2VzcyIsIkFyb3VuZCIsIkFyb3VuZFJlcGxhY2UiLCJBUlByb2Nlc3MiLCJBcnJheSIsIkFycmF5Q29tcG9uZW50cyIsIkFycmF5RGVwdGgiLCJBcnJheUZpbHRlciIsIkFycmF5RmxhdHRlbiIsIkFycmF5TWVzaCIsIkFycmF5UGFkIiwiQXJyYXlQbG90IiwiQXJyYXlRIiwiQXJyYXlSZXNhbXBsZSIsIkFycmF5UmVzaGFwZSIsIkFycmF5UnVsZXMiLCJBcnJheXMiLCJBcnJvdyIsIkFycm93M0RCb3giLCJBcnJvd0JveCIsIkFycm93aGVhZHMiLCJBU0FUcmlhbmdsZSIsIkFzayIsIkFza0FwcGVuZCIsIkFza0NvbmZpcm0iLCJBc2tEaXNwbGF5IiwiQXNrZWRRIiwiQXNrZWRWYWx1ZSIsIkFza0Z1bmN0aW9uIiwiQXNrU3RhdGUiLCJBc2tUZW1wbGF0ZURpc3BsYXkiLCJBc3BlY3RSYXRpbyIsIkFzcGVjdFJhdGlvRml4ZWQiLCJBc3NlcnQiLCJBc3NvY2lhdGVUbyIsIkFzc29jaWF0aW9uIiwiQXNzb2NpYXRpb25Gb3JtYXQiLCJBc3NvY2lhdGlvbk1hcCIsIkFzc29jaWF0aW9uUSIsIkFzc29jaWF0aW9uVGhyZWFkIiwiQXNzdW1lRGV0ZXJtaW5pc3RpYyIsIkFzc3VtaW5nIiwiQXNzdW1wdGlvbnMiLCJBc3Ryb25vbWljYWxEYXRhIiwiQXN5bXB0b3RpYyIsIkFzeW1wdG90aWNEU29sdmVWYWx1ZSIsIkFzeW1wdG90aWNFcXVhbCIsIkFzeW1wdG90aWNFcXVpdmFsZW50IiwiQXN5bXB0b3RpY0dyZWF0ZXIiLCJBc3ltcHRvdGljR3JlYXRlckVxdWFsIiwiQXN5bXB0b3RpY0ludGVncmF0ZSIsIkFzeW1wdG90aWNMZXNzIiwiQXN5bXB0b3RpY0xlc3NFcXVhbCIsIkFzeW1wdG90aWNPdXRwdXRUcmFja2VyIiwiQXN5bXB0b3RpY1Byb2R1Y3QiLCJBc3ltcHRvdGljUlNvbHZlVmFsdWUiLCJBc3ltcHRvdGljU29sdmUiLCJBc3ltcHRvdGljU3VtIiwiQXN5bmNocm9ub3VzIiwiQXN5bmNocm9ub3VzVGFza09iamVjdCIsIkFzeW5jaHJvbm91c1Rhc2tzIiwiQXRvbSIsIkF0b21Db29yZGluYXRlcyIsIkF0b21Db3VudCIsIkF0b21EaWFncmFtQ29vcmRpbmF0ZXMiLCJBdG9tTGlzdCIsIkF0b21RIiwiQXR0ZW50aW9uTGF5ZXIiLCJBdHRyaWJ1dGVzIiwiQXVkaW8iLCJBdWRpb0FtcGxpZnkiLCJBdWRpb0Fubm90YXRlIiwiQXVkaW9Bbm5vdGF0aW9uTG9va3VwIiwiQXVkaW9CbG9ja01hcCIsIkF1ZGlvQ2FwdHVyZSIsIkF1ZGlvQ2hhbm5lbEFzc2lnbm1lbnQiLCJBdWRpb0NoYW5uZWxDb21iaW5lIiwiQXVkaW9DaGFubmVsTWl4IiwiQXVkaW9DaGFubmVscyIsIkF1ZGlvQ2hhbm5lbFNlcGFyYXRlIiwiQXVkaW9EYXRhIiwiQXVkaW9EZWxheSIsIkF1ZGlvRGVsZXRlIiwiQXVkaW9EZXZpY2UiLCJBdWRpb0Rpc3RhbmNlIiwiQXVkaW9FbmNvZGluZyIsIkF1ZGlvRmFkZSIsIkF1ZGlvRnJlcXVlbmN5U2hpZnQiLCJBdWRpb0dlbmVyYXRvciIsIkF1ZGlvSWRlbnRpZnkiLCJBdWRpb0lucHV0RGV2aWNlIiwiQXVkaW9JbnNlcnQiLCJBdWRpb0luc3RhbmNlUSIsIkF1ZGlvSW50ZXJ2YWxzIiwiQXVkaW9Kb2luIiwiQXVkaW9MYWJlbCIsIkF1ZGlvTGVuZ3RoIiwiQXVkaW9Mb2NhbE1lYXN1cmVtZW50cyIsIkF1ZGlvTG9vcGluZyIsIkF1ZGlvTG91ZG5lc3MiLCJBdWRpb01lYXN1cmVtZW50cyIsIkF1ZGlvTm9ybWFsaXplIiwiQXVkaW9PdXRwdXREZXZpY2UiLCJBdWRpb092ZXJsYXkiLCJBdWRpb1BhZCIsIkF1ZGlvUGFuIiwiQXVkaW9QYXJ0aXRpb24iLCJBdWRpb1BhdXNlIiwiQXVkaW9QaXRjaFNoaWZ0IiwiQXVkaW9QbGF5IiwiQXVkaW9QbG90IiwiQXVkaW9RIiwiQXVkaW9SZWNvcmQiLCJBdWRpb1JlcGxhY2UiLCJBdWRpb1Jlc2FtcGxlIiwiQXVkaW9SZXZlcmIiLCJBdWRpb1JldmVyc2UiLCJBdWRpb1NhbXBsZVJhdGUiLCJBdWRpb1NwZWN0cmFsTWFwIiwiQXVkaW9TcGVjdHJhbFRyYW5zZm9ybWF0aW9uIiwiQXVkaW9TcGxpdCIsIkF1ZGlvU3RvcCIsIkF1ZGlvU3RyZWFtIiwiQXVkaW9TdHJlYW1zIiwiQXVkaW9UaW1lU3RyZXRjaCIsIkF1ZGlvVHJhY2tzIiwiQXVkaW9UcmltIiwiQXVkaW9UeXBlIiwiQXVnbWVudGVkUG9seWhlZHJvbiIsIkF1Z21lbnRlZFN5bW1ldHJpY1BvbHlub21pYWwiLCJBdXRoZW50aWNhdGUiLCJBdXRoZW50aWNhdGlvbiIsIkF1dGhlbnRpY2F0aW9uRGlhbG9nIiwiQXV0b0FjdGlvbiIsIkF1dG9jb21wbGV0ZSIsIkF1dG9jb21wbGV0aW9uRnVuY3Rpb24iLCJBdXRvQ29weSIsIkF1dG9jb3JyZWxhdGlvblRlc3QiLCJBdXRvRGVsZXRlIiwiQXV0b0V2YWx1YXRlRXZlbnRzIiwiQXV0b0dlbmVyYXRlZFBhY2thZ2UiLCJBdXRvSW5kZW50IiwiQXV0b0luZGVudFNwYWNpbmdzIiwiQXV0b0l0YWxpY1dvcmRzIiwiQXV0b2xvYWRQYXRoIiwiQXV0b01hdGNoIiwiQXV0b21hdGljIiwiQXV0b21hdGljSW1hZ2VTaXplIiwiQXV0b011bHRpcGxpY2F0aW9uU3ltYm9sIiwiQXV0b051bWJlckZvcm1hdHRpbmciLCJBdXRvT3Blbk5vdGVib29rcyIsIkF1dG9PcGVuUGFsZXR0ZXMiLCJBdXRvUXVvdGVDaGFyYWN0ZXJzIiwiQXV0b1JlZnJlc2hlZCIsIkF1dG9SZW1vdmUiLCJBdXRvcnVuU2VxdWVuY2luZyIsIkF1dG9TY2FsaW5nIiwiQXV0b1Njcm9sbCIsIkF1dG9TcGFjaW5nIiwiQXV0b1N0eWxlT3B0aW9ucyIsIkF1dG9TdHlsZVdvcmRzIiwiQXV0b1N1Ym1pdHRpbmciLCJBeGVzIiwiQXhlc0VkZ2UiLCJBeGVzTGFiZWwiLCJBeGVzT3JpZ2luIiwiQXhlc1N0eWxlIiwiQXhpb21hdGljVGhlb3J5IiwiQXhpcyIsIkJhYnlNb25zdGVyR3JvdXBCIiwiQmFjayIsIkJhY2tncm91bmQiLCJCYWNrZ3JvdW5kQXBwZWFyYW5jZSIsIkJhY2tncm91bmRUYXNrc1NldHRpbmdzIiwiQmFja3NsYXNoIiwiQmFja3N1YnN0aXR1dGlvbiIsIkJhY2t3YXJkIiwiQmFsbCIsIkJhbmQiLCJCYW5kcGFzc0ZpbHRlciIsIkJhbmRzdG9wRmlsdGVyIiwiQmFyYWJhc2lBbGJlcnRHcmFwaERpc3RyaWJ1dGlvbiIsIkJhckNoYXJ0IiwiQmFyQ2hhcnQzRCIsIkJhcmNvZGVJbWFnZSIsIkJhcmNvZGVSZWNvZ25pemUiLCJCYXJpbmdoYXVzSGVuemVUZXN0IiwiQmFyTGVnZW5kIiwiQmFybG93UHJvc2NoYW5JbXBvcnRhbmNlIiwiQmFybmVzRyIsIkJhck9yaWdpbiIsIkJhclNwYWNpbmciLCJCYXJ0bGV0dEhhbm5XaW5kb3ciLCJCYXJ0bGV0dFdpbmRvdyIsIkJhc2VEZWNvZGUiLCJCYXNlRW5jb2RlIiwiQmFzZUZvcm0iLCJCYXNlbGluZSIsIkJhc2VsaW5lUG9zaXRpb24iLCJCYXNlU3R5bGUiLCJCYXNpY1JlY3VycmVudExheWVyIiwiQmF0Y2hOb3JtYWxpemF0aW9uTGF5ZXIiLCJCYXRjaFNpemUiLCJCYXRlc0Rpc3RyaWJ1dGlvbiIsIkJhdHRsZUxlbWFyaWVXYXZlbGV0IiwiQmF5ZXNpYW5NYXhpbWl6YXRpb24iLCJCYXllc2lhbk1heGltaXphdGlvbk9iamVjdCIsIkJheWVzaWFuTWluaW1pemF0aW9uIiwiQmF5ZXNpYW5NaW5pbWl6YXRpb25PYmplY3QiLCJCZWNhdXNlIiwiQmVja21hbm5EaXN0cmlidXRpb24iLCJCZWVwIiwiQmVmb3JlIiwiQmVnaW4iLCJCZWdpbkRpYWxvZ1BhY2tldCIsIkJlZ2luRnJvbnRFbmRJbnRlcmFjdGlvblBhY2tldCIsIkJlZ2luUGFja2FnZSIsIkJlbGxCIiwiQmVsbFkiLCJCZWxvdyIsIkJlbmZvcmREaXN0cmlidXRpb24iLCJCZW5pbmlEaXN0cmlidXRpb24iLCJCZW5rdGFuZGVyR2licmF0RGlzdHJpYnV0aW9uIiwiQmVua3RhbmRlcldlaWJ1bGxEaXN0cmlidXRpb24iLCJCZXJub3VsbGlCIiwiQmVybm91bGxpRGlzdHJpYnV0aW9uIiwiQmVybm91bGxpR3JhcGhEaXN0cmlidXRpb24iLCJCZXJub3VsbGlQcm9jZXNzIiwiQmVybnN0ZWluQmFzaXMiLCJCZXNzZWxGaWx0ZXJNb2RlbCIsIkJlc3NlbEkiLCJCZXNzZWxKIiwiQmVzc2VsSlplcm8iLCJCZXNzZWxLIiwiQmVzc2VsWSIsIkJlc3NlbFlaZXJvIiwiQmV0YSIsIkJldGFCaW5vbWlhbERpc3RyaWJ1dGlvbiIsIkJldGFEaXN0cmlidXRpb24iLCJCZXRhTmVnYXRpdmVCaW5vbWlhbERpc3RyaWJ1dGlvbiIsIkJldGFQcmltZURpc3RyaWJ1dGlvbiIsIkJldGFSZWd1bGFyaXplZCIsIkJldHdlZW4iLCJCZXR3ZWVubmVzc0NlbnRyYWxpdHkiLCJCZXZlbGVkUG9seWhlZHJvbiIsIkJlemllckN1cnZlIiwiQmV6aWVyQ3VydmUzREJveCIsIkJlemllckN1cnZlM0RCb3hPcHRpb25zIiwiQmV6aWVyQ3VydmVCb3giLCJCZXppZXJDdXJ2ZUJveE9wdGlvbnMiLCJCZXppZXJGdW5jdGlvbiIsIkJpbGF0ZXJhbEZpbHRlciIsIkJpbmFyaXplIiwiQmluYXJ5RGVzZXJpYWxpemUiLCJCaW5hcnlEaXN0YW5jZSIsIkJpbmFyeUZvcm1hdCIsIkJpbmFyeUltYWdlUSIsIkJpbmFyeVJlYWQiLCJCaW5hcnlSZWFkTGlzdCIsIkJpbmFyeVNlcmlhbGl6ZSIsIkJpbmFyeVdyaXRlIiwiQmluQ291bnRzIiwiQmluTGlzdHMiLCJCaW5vbWlhbCIsIkJpbm9taWFsRGlzdHJpYnV0aW9uIiwiQmlub21pYWxQcm9jZXNzIiwiQmlub3JtYWxEaXN0cmlidXRpb24iLCJCaW9ydGhvZ29uYWxTcGxpbmVXYXZlbGV0IiwiQmlwYXJ0aXRlR3JhcGhRIiwiQmlxdWFkcmF0aWNGaWx0ZXJNb2RlbCIsIkJpcm5iYXVtSW1wb3J0YW5jZSIsIkJpcm5iYXVtU2F1bmRlcnNEaXN0cmlidXRpb24iLCJCaXRBbmQiLCJCaXRDbGVhciIsIkJpdEdldCIsIkJpdExlbmd0aCIsIkJpdE5vdCIsIkJpdE9yIiwiQml0U2V0IiwiQml0U2hpZnRMZWZ0IiwiQml0U2hpZnRSaWdodCIsIkJpdFhvciIsIkJpd2VpZ2h0TG9jYXRpb24iLCJCaXdlaWdodE1pZHZhcmlhbmNlIiwiQmxhY2siLCJCbGFja21hbkhhcnJpc1dpbmRvdyIsIkJsYWNrbWFuTnV0dGFsbFdpbmRvdyIsIkJsYWNrbWFuV2luZG93IiwiQmxhbmsiLCJCbGFua0Zvcm0iLCJCbGFua051bGxTZXF1ZW5jZSIsIkJsYW5rU2VxdWVuY2UiLCJCbGVuZCIsIkJsb2NrIiwiQmxvY2tjaGFpbkFkZHJlc3NEYXRhIiwiQmxvY2tjaGFpbkJhc2UiLCJCbG9ja2NoYWluQmxvY2tEYXRhIiwiQmxvY2tjaGFpbkNvbnRyYWN0VmFsdWUiLCJCbG9ja2NoYWluRGF0YSIsIkJsb2NrY2hhaW5HZXQiLCJCbG9ja2NoYWluS2V5RW5jb2RlIiwiQmxvY2tjaGFpblB1dCIsIkJsb2NrY2hhaW5Ub2tlbkRhdGEiLCJCbG9ja2NoYWluVHJhbnNhY3Rpb24iLCJCbG9ja2NoYWluVHJhbnNhY3Rpb25EYXRhIiwiQmxvY2tjaGFpblRyYW5zYWN0aW9uU2lnbiIsIkJsb2NrY2hhaW5UcmFuc2FjdGlvblN1Ym1pdCIsIkJsb2NrTWFwIiwiQmxvY2tSYW5kb20iLCJCbG9tcXZpc3RCZXRhIiwiQmxvbXF2aXN0QmV0YVRlc3QiLCJCbHVlIiwiQmx1ciIsIkJvZGVQbG90IiwiQm9obWFuV2luZG93IiwiQm9sZCIsIkJvbmQiLCJCb25kQ291bnQiLCJCb25kTGlzdCIsIkJvbmRRIiwiQm9va21hcmtzIiwiQm9vbGUiLCJCb29sZWFuQ29uc2VjdXRpdmVGdW5jdGlvbiIsIkJvb2xlYW5Db252ZXJ0IiwiQm9vbGVhbkNvdW50aW5nRnVuY3Rpb24iLCJCb29sZWFuRnVuY3Rpb24iLCJCb29sZWFuR3JhcGgiLCJCb29sZWFuTWF4dGVybXMiLCJCb29sZWFuTWluaW1pemUiLCJCb29sZWFuTWludGVybXMiLCJCb29sZWFuUSIsIkJvb2xlYW5SZWdpb24iLCJCb29sZWFucyIsIkJvb2xlYW5TdHJpbmdzIiwiQm9vbGVhblRhYmxlIiwiQm9vbGVhblZhcmlhYmxlcyIsIkJvcmRlckRpbWVuc2lvbnMiLCJCb3JlbFRhbm5lckRpc3RyaWJ1dGlvbiIsIkJvdHRvbSIsIkJvdHRvbUhhdFRyYW5zZm9ybSIsIkJvdW5kYXJ5RGlzY3JldGl6ZUdyYXBoaWNzIiwiQm91bmRhcnlEaXNjcmV0aXplUmVnaW9uIiwiQm91bmRhcnlNZXNoIiwiQm91bmRhcnlNZXNoUmVnaW9uIiwiQm91bmRhcnlNZXNoUmVnaW9uUSIsIkJvdW5kYXJ5U3R5bGUiLCJCb3VuZGVkUmVnaW9uUSIsIkJvdW5kaW5nUmVnaW9uIiwiQm91bmRzIiwiQm94IiwiQm94QmFzZWxpbmVTaGlmdCIsIkJveERhdGEiLCJCb3hEaW1lbnNpb25zIiwiQm94ZWQiLCJCb3hlcyIsIkJveEZvcm0iLCJCb3hGb3JtRm9ybWF0VHlwZXMiLCJCb3hGcmFtZSIsIkJveElEIiwiQm94TWFyZ2lucyIsIkJveE1hdHJpeCIsIkJveE9iamVjdCIsIkJveFJhdGlvcyIsIkJveFJvdGF0aW9uIiwiQm94Um90YXRpb25Qb2ludCIsIkJveFN0eWxlIiwiQm94V2hpc2tlckNoYXJ0IiwiQnJhIiwiQnJhY2tldGluZ0JhciIsIkJyYUtldCIsIkJyYXlDdXJ0aXNEaXN0YW5jZSIsIkJyZWFkdGhGaXJzdFNjYW4iLCJCcmVhayIsIkJyaWRnZURhdGEiLCJCcmlnaHRuZXNzRXF1YWxpemUiLCJCcm9hZGNhc3RTdGF0aW9uRGF0YSIsIkJyb3duIiwiQnJvd25Gb3JzeXRoZVRlc3QiLCJCcm93bmlhbkJyaWRnZVByb2Nlc3MiLCJCcm93c2VyQ2F0ZWdvcnkiLCJCU3BsaW5lQmFzaXMiLCJCU3BsaW5lQ3VydmUiLCJCU3BsaW5lQ3VydmUzREJveCIsIkJTcGxpbmVDdXJ2ZTNEQm94T3B0aW9ucyIsIkJTcGxpbmVDdXJ2ZUJveCIsIkJTcGxpbmVDdXJ2ZUJveE9wdGlvbnMiLCJCU3BsaW5lRnVuY3Rpb24iLCJCU3BsaW5lU3VyZmFjZSIsIkJTcGxpbmVTdXJmYWNlM0RCb3giLCJCU3BsaW5lU3VyZmFjZTNEQm94T3B0aW9ucyIsIkJ1YmJsZUNoYXJ0IiwiQnViYmxlQ2hhcnQzRCIsIkJ1YmJsZVNjYWxlIiwiQnViYmxlU2l6ZXMiLCJCdWlsZGluZ0RhdGEiLCJCdWxsZXRHYXVnZSIsIkJ1c2luZXNzRGF5USIsIkJ1dHRlcmZseUdyYXBoIiwiQnV0dGVyd29ydGhGaWx0ZXJNb2RlbCIsIkJ1dHRvbiIsIkJ1dHRvbkJhciIsIkJ1dHRvbkJveCIsIkJ1dHRvbkJveE9wdGlvbnMiLCJCdXR0b25DZWxsIiwiQnV0dG9uQ29udGVudHMiLCJCdXR0b25EYXRhIiwiQnV0dG9uRXZhbHVhdG9yIiwiQnV0dG9uRXhwYW5kYWJsZSIsIkJ1dHRvbkZyYW1lIiwiQnV0dG9uRnVuY3Rpb24iLCJCdXR0b25NYXJnaW5zIiwiQnV0dG9uTWluSGVpZ2h0IiwiQnV0dG9uTm90ZSIsIkJ1dHRvbk5vdGVib29rIiwiQnV0dG9uU291cmNlIiwiQnV0dG9uU3R5bGUiLCJCdXR0b25TdHlsZU1lbnVMaXN0aW5nIiwiQnl0ZSIsIkJ5dGVBcnJheSIsIkJ5dGVBcnJheUZvcm1hdCIsIkJ5dGVBcnJheVEiLCJCeXRlQXJyYXlUb1N0cmluZyIsIkJ5dGVDb3VudCIsIkJ5dGVPcmRlcmluZyIsIkMiLCJDYWNoZWRWYWx1ZSIsIkNhY2hlR3JhcGhpY3MiLCJDYWNoZVBlcnNpc3RlbmNlIiwiQ2FsZW5kYXJDb252ZXJ0IiwiQ2FsZW5kYXJEYXRhIiwiQ2FsZW5kYXJUeXBlIiwiQ2FsbG91dCIsIkNhbGxvdXRNYXJrZXIiLCJDYWxsb3V0U3R5bGUiLCJDYWxsUGFja2V0IiwiQ2FuYmVycmFEaXN0YW5jZSIsIkNhbmNlbCIsIkNhbmNlbEJ1dHRvbiIsIkNhbmRsZXN0aWNrQ2hhcnQiLCJDYW5vbmljYWxHcmFwaCIsIkNhbm9uaWNhbGl6ZVBvbHlnb24iLCJDYW5vbmljYWxpemVQb2x5aGVkcm9uIiwiQ2Fub25pY2FsTmFtZSIsIkNhbm9uaWNhbFdhcnBpbmdDb3JyZXNwb25kZW5jZSIsIkNhbm9uaWNhbFdhcnBpbmdEaXN0YW5jZSIsIkNhbnRvck1lc2giLCJDYW50b3JTdGFpcmNhc2UiLCJDYXAiLCJDYXBGb3JtIiwiQ2FwaXRhbERpZmZlcmVudGlhbEQiLCJDYXBpdGFsaXplIiwiQ2Fwc3VsZVNoYXBlIiwiQ2FwdHVyZVJ1bm5pbmciLCJDYXJkaW5hbEJTcGxpbmVCYXNpcyIsIkNhcmxlbWFuTGluZWFyaXplIiwiQ2FybWljaGFlbExhbWJkYSIsIkNhc2VPcmRlcmluZyIsIkNhc2VzIiwiQ2FzZVNlbnNpdGl2ZSIsIkNhc2hmbG93IiwiQ2Fzb3JhdGlhbiIsIkNhdGFsYW4iLCJDYXRhbGFuTnVtYmVyIiwiQ2F0Y2giLCJDYXRlZ29yaWNhbERpc3RyaWJ1dGlvbiIsIkNhdGVuYXRlIiwiQ2F0ZW5hdGVMYXllciIsIkNhdWNoeURpc3RyaWJ1dGlvbiIsIkNhdWNoeVdpbmRvdyIsIkNheWxleUdyYXBoIiwiQ0RGIiwiQ0RGRGVwbG95IiwiQ0RGSW5mb3JtYXRpb24iLCJDREZXYXZlbGV0IiwiQ2VpbGluZyIsIkNlbGVzdGlhbFN5c3RlbSIsIkNlbGwiLCJDZWxsQXV0b092ZXJ3cml0ZSIsIkNlbGxCYXNlbGluZSIsIkNlbGxCb3VuZGluZ0JveCIsIkNlbGxCcmFja2V0T3B0aW9ucyIsIkNlbGxDaGFuZ2VUaW1lcyIsIkNlbGxDb250ZW50cyIsIkNlbGxDb250ZXh0IiwiQ2VsbERpbmdiYXQiLCJDZWxsRHluYW1pY0V4cHJlc3Npb24iLCJDZWxsRWRpdER1cGxpY2F0ZSIsIkNlbGxFbGVtZW50c0JvdW5kaW5nQm94IiwiQ2VsbEVsZW1lbnRTcGFjaW5ncyIsIkNlbGxFcGlsb2ciLCJDZWxsRXZhbHVhdGlvbkR1cGxpY2F0ZSIsIkNlbGxFdmFsdWF0aW9uRnVuY3Rpb24iLCJDZWxsRXZhbHVhdGlvbkxhbmd1YWdlIiwiQ2VsbEV2ZW50QWN0aW9ucyIsIkNlbGxGcmFtZSIsIkNlbGxGcmFtZUNvbG9yIiwiQ2VsbEZyYW1lTGFiZWxNYXJnaW5zIiwiQ2VsbEZyYW1lTGFiZWxzIiwiQ2VsbEZyYW1lTWFyZ2lucyIsIkNlbGxHcm91cCIsIkNlbGxHcm91cERhdGEiLCJDZWxsR3JvdXBpbmciLCJDZWxsR3JvdXBpbmdSdWxlcyIsIkNlbGxIb3Jpem9udGFsU2Nyb2xsaW5nIiwiQ2VsbElEIiwiQ2VsbExhYmVsIiwiQ2VsbExhYmVsQXV0b0RlbGV0ZSIsIkNlbGxMYWJlbE1hcmdpbnMiLCJDZWxsTGFiZWxQb3NpdGlvbmluZyIsIkNlbGxMYWJlbFN0eWxlIiwiQ2VsbExhYmVsVGVtcGxhdGUiLCJDZWxsTWFyZ2lucyIsIkNlbGxPYmplY3QiLCJDZWxsT3BlbiIsIkNlbGxQcmludCIsIkNlbGxQcm9sb2ciLCJDZWxscyIsIkNlbGxTaXplIiwiQ2VsbFN0eWxlIiwiQ2VsbFRhZ3MiLCJDZWxsdWxhckF1dG9tYXRvbiIsIkNlbnNvcmVkRGlzdHJpYnV0aW9uIiwiQ2Vuc29yaW5nIiwiQ2VudGVyIiwiQ2VudGVyQXJyYXkiLCJDZW50ZXJEb3QiLCJDZW50cmFsRmVhdHVyZSIsIkNlbnRyYWxNb21lbnQiLCJDZW50cmFsTW9tZW50R2VuZXJhdGluZ0Z1bmN0aW9uIiwiQ2Vwc3Ryb2dyYW0iLCJDZXBzdHJvZ3JhbUFycmF5IiwiQ2Vwc3RydW1BcnJheSIsIkNGb3JtIiwiQ2hhbXBlcm5vd25lTnVtYmVyIiwiQ2hhbmdlT3B0aW9ucyIsIkNoYW5uZWxCYXNlIiwiQ2hhbm5lbEJyb2tlckFjdGlvbiIsIkNoYW5uZWxEYXRhYmluIiwiQ2hhbm5lbEhpc3RvcnlMZW5ndGgiLCJDaGFubmVsTGlzdGVuIiwiQ2hhbm5lbExpc3RlbmVyIiwiQ2hhbm5lbExpc3RlbmVycyIsIkNoYW5uZWxMaXN0ZW5lcldhaXQiLCJDaGFubmVsT2JqZWN0IiwiQ2hhbm5lbFByZVNlbmRGdW5jdGlvbiIsIkNoYW5uZWxSZWNlaXZlckZ1bmN0aW9uIiwiQ2hhbm5lbFNlbmQiLCJDaGFubmVsU3Vic2NyaWJlcnMiLCJDaGFuVmVzZUJpbmFyaXplIiwiQ2hhcmFjdGVyIiwiQ2hhcmFjdGVyQ291bnRzIiwiQ2hhcmFjdGVyRW5jb2RpbmciLCJDaGFyYWN0ZXJFbmNvZGluZ3NQYXRoIiwiQ2hhcmFjdGVyaXN0aWNGdW5jdGlvbiIsIkNoYXJhY3RlcmlzdGljUG9seW5vbWlhbCIsIkNoYXJhY3Rlck5hbWUiLCJDaGFyYWN0ZXJOb3JtYWxpemUiLCJDaGFyYWN0ZXJSYW5nZSIsIkNoYXJhY3RlcnMiLCJDaGFydEJhc2VTdHlsZSIsIkNoYXJ0RWxlbWVudERhdGEiLCJDaGFydEVsZW1lbnREYXRhRnVuY3Rpb24iLCJDaGFydEVsZW1lbnRGdW5jdGlvbiIsIkNoYXJ0RWxlbWVudHMiLCJDaGFydExhYmVscyIsIkNoYXJ0TGF5b3V0IiwiQ2hhcnRMZWdlbmRzIiwiQ2hhcnRTdHlsZSIsIkNoZWJ5c2hldjFGaWx0ZXJNb2RlbCIsIkNoZWJ5c2hldjJGaWx0ZXJNb2RlbCIsIkNoZWJ5c2hldkRpc3RhbmNlIiwiQ2hlYnlzaGV2VCIsIkNoZWJ5c2hldlUiLCJDaGVjayIsIkNoZWNrQWJvcnQiLCJDaGVja0FsbCIsIkNoZWNrYm94IiwiQ2hlY2tib3hCYXIiLCJDaGVja2JveEJveCIsIkNoZWNrYm94Qm94T3B0aW9ucyIsIkNoZW1pY2FsRGF0YSIsIkNoZXNzYm9hcmREaXN0YW5jZSIsIkNoaURpc3RyaWJ1dGlvbiIsIkNoaW5lc2VSZW1haW5kZXIiLCJDaGlTcXVhcmVEaXN0cmlidXRpb24iLCJDaG9pY2VCdXR0b25zIiwiQ2hvaWNlRGlhbG9nIiwiQ2hvbGVza3lEZWNvbXBvc2l0aW9uIiwiQ2hvcCIsIkNocm9tYXRpY2l0eVBsb3QiLCJDaHJvbWF0aWNpdHlQbG90M0QiLCJDaHJvbWF0aWNQb2x5bm9taWFsIiwiQ2lyY2xlIiwiQ2lyY2xlQm94IiwiQ2lyY2xlRG90IiwiQ2lyY2xlTWludXMiLCJDaXJjbGVQbHVzIiwiQ2lyY2xlUG9pbnRzIiwiQ2lyY2xlVGhyb3VnaCIsIkNpcmNsZVRpbWVzIiwiQ2lyY3VsYW50R3JhcGgiLCJDaXJjdWxhck9ydGhvZ29uYWxNYXRyaXhEaXN0cmlidXRpb24iLCJDaXJjdWxhclF1YXRlcm5pb25NYXRyaXhEaXN0cmlidXRpb24iLCJDaXJjdWxhclJlYWxNYXRyaXhEaXN0cmlidXRpb24iLCJDaXJjdWxhclN5bXBsZWN0aWNNYXRyaXhEaXN0cmlidXRpb24iLCJDaXJjdWxhclVuaXRhcnlNYXRyaXhEaXN0cmlidXRpb24iLCJDaXJjdW1zcGhlcmUiLCJDaXR5RGF0YSIsIkNsYXNzaWZpZXJGdW5jdGlvbiIsIkNsYXNzaWZpZXJJbmZvcm1hdGlvbiIsIkNsYXNzaWZpZXJNZWFzdXJlbWVudHMiLCJDbGFzc2lmaWVyTWVhc3VyZW1lbnRzT2JqZWN0IiwiQ2xhc3NpZnkiLCJDbGFzc1ByaW9ycyIsIkNsZWFyIiwiQ2xlYXJBbGwiLCJDbGVhckF0dHJpYnV0ZXMiLCJDbGVhckNvb2tpZXMiLCJDbGVhclBlcm1pc3Npb25zIiwiQ2xlYXJTeXN0ZW1DYWNoZSIsIkNsZWJzY2hHb3JkYW4iLCJDbGlja1BhbmUiLCJDbGlwIiwiQ2xpcGJvYXJkTm90ZWJvb2siLCJDbGlwRmlsbCIsIkNsaXBwaW5nU3R5bGUiLCJDbGlwUGxhbmVzIiwiQ2xpcFBsYW5lc1N0eWxlIiwiQ2xpcFJhbmdlIiwiQ2xvY2siLCJDbG9ja0dhdWdlIiwiQ2xvY2t3aXNlQ29udG91ckludGVncmFsIiwiQ2xvc2UiLCJDbG9zZWQiLCJDbG9zZUtlcm5lbHMiLCJDbG9zZW5lc3NDZW50cmFsaXR5IiwiQ2xvc2luZyIsIkNsb3NpbmdBdXRvU2F2ZSIsIkNsb3NpbmdFdmVudCIsIkNsb3NpbmdTYXZlRGlhbG9nIiwiQ2xvdWRBY2NvdW50RGF0YSIsIkNsb3VkQmFzZSIsIkNsb3VkQ29ubmVjdCIsIkNsb3VkQ29ubmVjdGlvbnMiLCJDbG91ZERlcGxveSIsIkNsb3VkRGlyZWN0b3J5IiwiQ2xvdWREaXNjb25uZWN0IiwiQ2xvdWRFdmFsdWF0ZSIsIkNsb3VkRXhwb3J0IiwiQ2xvdWRFeHByZXNzaW9uIiwiQ2xvdWRFeHByZXNzaW9ucyIsIkNsb3VkRnVuY3Rpb24iLCJDbG91ZEdldCIsIkNsb3VkSW1wb3J0IiwiQ2xvdWRMb2dnaW5nRGF0YSIsIkNsb3VkT2JqZWN0IiwiQ2xvdWRPYmplY3RJbmZvcm1hdGlvbiIsIkNsb3VkT2JqZWN0SW5mb3JtYXRpb25EYXRhIiwiQ2xvdWRPYmplY3ROYW1lRm9ybWF0IiwiQ2xvdWRPYmplY3RzIiwiQ2xvdWRPYmplY3RVUkxUeXBlIiwiQ2xvdWRQdWJsaXNoIiwiQ2xvdWRQdXQiLCJDbG91ZFJlbmRlcmluZ01ldGhvZCIsIkNsb3VkU2F2ZSIsIkNsb3VkU2hhcmUiLCJDbG91ZFN1Ym1pdCIsIkNsb3VkU3ltYm9sIiwiQ2xvdWRVbnNoYXJlIiwiQ2xvdWRVc2VySUQiLCJDbHVzdGVyQ2xhc3NpZnkiLCJDbHVzdGVyRGlzc2ltaWxhcml0eUZ1bmN0aW9uIiwiQ2x1c3RlcmluZ0NvbXBvbmVudHMiLCJDbHVzdGVyaW5nVHJlZSIsIkNNWUtDb2xvciIsIkNvYXJzZSIsIkNvZGVBc3Npc3RPcHRpb25zIiwiQ29lZmZpY2llbnQiLCJDb2VmZmljaWVudEFycmF5cyIsIkNvZWZmaWNpZW50RG9tYWluIiwiQ29lZmZpY2llbnRMaXN0IiwiQ29lZmZpY2llbnRSdWxlcyIsIkNvaWZsZXRXYXZlbGV0IiwiQ29sbGVjdCIsIkNvbG9uIiwiQ29sb25Gb3JtIiwiQ29sb3JCYWxhbmNlIiwiQ29sb3JDb21iaW5lIiwiQ29sb3JDb252ZXJ0IiwiQ29sb3JDb3ZlcmFnZSIsIkNvbG9yRGF0YSIsIkNvbG9yRGF0YUZ1bmN0aW9uIiwiQ29sb3JEZXRlY3QiLCJDb2xvckRpc3RhbmNlIiwiQ29sb3JGdW5jdGlvbiIsIkNvbG9yRnVuY3Rpb25TY2FsaW5nIiwiQ29sb3JpemUiLCJDb2xvck5lZ2F0ZSIsIkNvbG9yT3V0cHV0IiwiQ29sb3JQcm9maWxlRGF0YSIsIkNvbG9yUSIsIkNvbG9yUXVhbnRpemUiLCJDb2xvclJlcGxhY2UiLCJDb2xvclJ1bGVzIiwiQ29sb3JTZWxlY3RvclNldHRpbmdzIiwiQ29sb3JTZXBhcmF0ZSIsIkNvbG9yU2V0dGVyIiwiQ29sb3JTZXR0ZXJCb3giLCJDb2xvclNldHRlckJveE9wdGlvbnMiLCJDb2xvclNsaWRlciIsIkNvbG9yc05lYXIiLCJDb2xvclNwYWNlIiwiQ29sb3JUb25lTWFwcGluZyIsIkNvbHVtbiIsIkNvbHVtbkFsaWdubWVudHMiLCJDb2x1bW5CYWNrZ3JvdW5kcyIsIkNvbHVtbkZvcm0iLCJDb2x1bW5MaW5lcyIsIkNvbHVtbnNFcXVhbCIsIkNvbHVtblNwYWNpbmdzIiwiQ29sdW1uV2lkdGhzIiwiQ29tYmluZWRFbnRpdHlDbGFzcyIsIkNvbWJpbmVyRnVuY3Rpb24iLCJDb21ldERhdGEiLCJDb21tb25EZWZhdWx0Rm9ybWF0VHlwZXMiLCJDb21tb25lc3QiLCJDb21tb25lc3RGaWx0ZXIiLCJDb21tb25OYW1lIiwiQ29tbW9uVW5pdHMiLCJDb21tdW5pdHlCb3VuZGFyeVN0eWxlIiwiQ29tbXVuaXR5R3JhcGhQbG90IiwiQ29tbXVuaXR5TGFiZWxzIiwiQ29tbXVuaXR5UmVnaW9uU3R5bGUiLCJDb21wYW55RGF0YSIsIkNvbXBhdGlibGVVbml0USIsIkNvbXBpbGF0aW9uT3B0aW9ucyIsIkNvbXBpbGF0aW9uVGFyZ2V0IiwiQ29tcGlsZSIsIkNvbXBpbGVkIiwiQ29tcGlsZWRDb2RlRnVuY3Rpb24iLCJDb21waWxlZEZ1bmN0aW9uIiwiQ29tcGlsZXJPcHRpb25zIiwiQ29tcGxlbWVudCIsIkNvbXBsZW1lbnRlZEVudGl0eUNsYXNzIiwiQ29tcGxldGVHcmFwaCIsIkNvbXBsZXRlR3JhcGhRIiwiQ29tcGxldGVLYXJ5VHJlZSIsIkNvbXBsZXRpb25zTGlzdFBhY2tldCIsIkNvbXBsZXgiLCJDb21wbGV4Q29udG91clBsb3QiLCJDb21wbGV4ZXMiLCJDb21wbGV4RXhwYW5kIiwiQ29tcGxleEluZmluaXR5IiwiQ29tcGxleGl0eUZ1bmN0aW9uIiwiQ29tcGxleExpc3RQbG90IiwiQ29tcGxleFBsb3QiLCJDb21wbGV4UGxvdDNEIiwiQ29tcGxleFJlZ2lvblBsb3QiLCJDb21wbGV4U3RyZWFtUGxvdCIsIkNvbXBsZXhWZWN0b3JQbG90IiwiQ29tcG9uZW50TWVhc3VyZW1lbnRzIiwiQ29tcG9uZW50d2lzZUNvbnRleHRNZW51IiwiQ29tcG9zZSIsIkNvbXBvc2VMaXN0IiwiQ29tcG9zZVNlcmllcyIsIkNvbXBvc2l0ZVEiLCJDb21wb3NpdGlvbiIsIkNvbXBvdW5kRWxlbWVudCIsIkNvbXBvdW5kRXhwcmVzc2lvbiIsIkNvbXBvdW5kUG9pc3NvbkRpc3RyaWJ1dGlvbiIsIkNvbXBvdW5kUG9pc3NvblByb2Nlc3MiLCJDb21wb3VuZFJlbmV3YWxQcm9jZXNzIiwiQ29tcHJlc3MiLCJDb21wcmVzc2VkRGF0YSIsIkNvbXByZXNzaW9uTGV2ZWwiLCJDb21wdXRlVW5jZXJ0YWludHkiLCJDb25kaXRpb24iLCJDb25kaXRpb25hbEV4cHJlc3Npb24iLCJDb25kaXRpb25lZCIsIkNvbmUiLCJDb25lQm94IiwiQ29uZmlkZW5jZUxldmVsIiwiQ29uZmlkZW5jZVJhbmdlIiwiQ29uZmlkZW5jZVRyYW5zZm9ybSIsIkNvbmZpZ3VyYXRpb25QYXRoIiwiQ29uZm9ybUF1ZGlvIiwiQ29uZm9ybUltYWdlcyIsIkNvbmdydWVudCIsIkNvbmljSHVsbFJlZ2lvbiIsIkNvbmljSHVsbFJlZ2lvbjNEQm94IiwiQ29uaWNIdWxsUmVnaW9uQm94IiwiQ29uaWNPcHRpbWl6YXRpb24iLCJDb25qdWdhdGUiLCJDb25qdWdhdGVUcmFuc3Bvc2UiLCJDb25qdW5jdGlvbiIsIkNvbm5lY3QiLCJDb25uZWN0ZWRDb21wb25lbnRzIiwiQ29ubmVjdGVkR3JhcGhDb21wb25lbnRzIiwiQ29ubmVjdGVkR3JhcGhRIiwiQ29ubmVjdGVkTWVzaENvbXBvbmVudHMiLCJDb25uZWN0ZWRNb2xlY3VsZUNvbXBvbmVudHMiLCJDb25uZWN0ZWRNb2xlY3VsZVEiLCJDb25uZWN0aW9uU2V0dGluZ3MiLCJDb25uZWN0TGlicmFyeUNhbGxiYWNrRnVuY3Rpb24iLCJDb25uZWN0U3lzdGVtTW9kZWxDb21wb25lbnRzIiwiQ29ubmVzV2luZG93IiwiQ29ub3ZlclRlc3QiLCJDb25zb2xlTWVzc2FnZSIsIkNvbnNvbGVNZXNzYWdlUGFja2V0IiwiQ29uc3RhbnQiLCJDb25zdGFudEFycmF5IiwiQ29uc3RhbnRBcnJheUxheWVyIiwiQ29uc3RhbnRJbWFnZSIsIkNvbnN0YW50UGx1c0xheWVyIiwiQ29uc3RhbnRSZWdpb25RIiwiQ29uc3RhbnRzIiwiQ29uc3RhbnRUaW1lc0xheWVyIiwiQ29uc3RlbGxhdGlvbkRhdGEiLCJDb25zdHJhaW5lZE1heCIsIkNvbnN0cmFpbmVkTWluIiwiQ29uc3RydWN0IiwiQ29udGFpbmluZyIsIkNvbnRhaW5zQWxsIiwiQ29udGFpbnNBbnkiLCJDb250YWluc0V4YWN0bHkiLCJDb250YWluc05vbmUiLCJDb250YWluc09ubHkiLCJDb250ZW50RmllbGRPcHRpb25zIiwiQ29udGVudExvY2F0aW9uRnVuY3Rpb24iLCJDb250ZW50T2JqZWN0IiwiQ29udGVudFBhZGRpbmciLCJDb250ZW50c0JvdW5kaW5nQm94IiwiQ29udGVudFNlbGVjdGFibGUiLCJDb250ZW50U2l6ZSIsIkNvbnRleHQiLCJDb250ZXh0TWVudSIsIkNvbnRleHRzIiwiQ29udGV4dFRvRmlsZU5hbWUiLCJDb250aW51YXRpb24iLCJDb250aW51ZSIsIkNvbnRpbnVlZEZyYWN0aW9uIiwiQ29udGludWVkRnJhY3Rpb25LIiwiQ29udGludW91c0FjdGlvbiIsIkNvbnRpbnVvdXNNYXJrb3ZQcm9jZXNzIiwiQ29udGludW91c1Rhc2siLCJDb250aW51b3VzVGltZU1vZGVsUSIsIkNvbnRpbnVvdXNXYXZlbGV0RGF0YSIsIkNvbnRpbnVvdXNXYXZlbGV0VHJhbnNmb3JtIiwiQ29udG91ckRldGVjdCIsIkNvbnRvdXJHcmFwaGljcyIsIkNvbnRvdXJJbnRlZ3JhbCIsIkNvbnRvdXJMYWJlbHMiLCJDb250b3VyTGluZXMiLCJDb250b3VyUGxvdCIsIkNvbnRvdXJQbG90M0QiLCJDb250b3VycyIsIkNvbnRvdXJTaGFkaW5nIiwiQ29udG91clNtb290aGluZyIsIkNvbnRvdXJTdHlsZSIsIkNvbnRyYWhhcm1vbmljTWVhbiIsIkNvbnRyYXN0aXZlTG9zc0xheWVyIiwiQ29udHJvbCIsIkNvbnRyb2xBY3RpdmUiLCJDb250cm9sQWxpZ25tZW50IiwiQ29udHJvbEdyb3VwQ29udGVudHNCb3giLCJDb250cm9sbGFiaWxpdHlHcmFtaWFuIiwiQ29udHJvbGxhYmlsaXR5TWF0cml4IiwiQ29udHJvbGxhYmxlRGVjb21wb3NpdGlvbiIsIkNvbnRyb2xsYWJsZU1vZGVsUSIsIkNvbnRyb2xsZXJEdXJhdGlvbiIsIkNvbnRyb2xsZXJJbmZvcm1hdGlvbiIsIkNvbnRyb2xsZXJJbmZvcm1hdGlvbkRhdGEiLCJDb250cm9sbGVyTGlua2luZyIsIkNvbnRyb2xsZXJNYW5pcHVsYXRlIiwiQ29udHJvbGxlck1ldGhvZCIsIkNvbnRyb2xsZXJQYXRoIiwiQ29udHJvbGxlclN0YXRlIiwiQ29udHJvbFBsYWNlbWVudCIsIkNvbnRyb2xzUmVuZGVyaW5nIiwiQ29udHJvbFR5cGUiLCJDb252ZXJnZW50cyIsIkNvbnZlcnNpb25PcHRpb25zIiwiQ29udmVyc2lvblJ1bGVzIiwiQ29udmVydFRvQml0bWFwUGFja2V0IiwiQ29udmVydFRvUG9zdFNjcmlwdCIsIkNvbnZlcnRUb1Bvc3RTY3JpcHRQYWNrZXQiLCJDb252ZXhIdWxsTWVzaCIsIkNvbnZleFBvbHlnb25RIiwiQ29udmV4UG9seWhlZHJvblEiLCJDb252b2x1dGlvbkxheWVyIiwiQ29udm9sdmUiLCJDb253YXlHcm91cENvMSIsIkNvbndheUdyb3VwQ28yIiwiQ29ud2F5R3JvdXBDbzMiLCJDb29raWVGdW5jdGlvbiIsIkNvb2tpZXMiLCJDb29yZGluYXRlQm91bmRpbmdCb3giLCJDb29yZGluYXRlQm91bmRpbmdCb3hBcnJheSIsIkNvb3JkaW5hdGVCb3VuZHMiLCJDb29yZGluYXRlQm91bmRzQXJyYXkiLCJDb29yZGluYXRlQ2hhcnREYXRhIiwiQ29vcmRpbmF0ZXNUb29sT3B0aW9ucyIsIkNvb3JkaW5hdGVUcmFuc2Zvcm0iLCJDb29yZGluYXRlVHJhbnNmb3JtRGF0YSIsIkNvcHJpbWVRIiwiQ29wcm9kdWN0IiwiQ29wdWxhRGlzdHJpYnV0aW9uIiwiQ29weWFibGUiLCJDb3B5RGF0YWJpbiIsIkNvcHlEaXJlY3RvcnkiLCJDb3B5RmlsZSIsIkNvcHlUYWciLCJDb3B5VG9DbGlwYm9hcmQiLCJDb3JuZXJGaWx0ZXIiLCJDb3JuZXJOZWlnaGJvcnMiLCJDb3JyZWxhdGlvbiIsIkNvcnJlbGF0aW9uRGlzdGFuY2UiLCJDb3JyZWxhdGlvbkZ1bmN0aW9uIiwiQ29ycmVsYXRpb25UZXN0IiwiQ29zIiwiQ29zaCIsIkNvc2hJbnRlZ3JhbCIsIkNvc2luZURpc3RhbmNlIiwiQ29zaW5lV2luZG93IiwiQ29zSW50ZWdyYWwiLCJDb3QiLCJDb3RoIiwiQ291bnQiLCJDb3VudERpc3RpbmN0IiwiQ291bnREaXN0aW5jdEJ5IiwiQ291bnRlckFzc2lnbm1lbnRzIiwiQ291bnRlckJveCIsIkNvdW50ZXJCb3hPcHRpb25zIiwiQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCIsIkNvdW50ZXJFdmFsdWF0b3IiLCJDb3VudGVyRnVuY3Rpb24iLCJDb3VudGVySW5jcmVtZW50cyIsIkNvdW50ZXJTdHlsZSIsIkNvdW50ZXJTdHlsZU1lbnVMaXN0aW5nIiwiQ291bnRSb290cyIsIkNvdW50cnlEYXRhIiwiQ291bnRzIiwiQ291bnRzQnkiLCJDb3ZhcmlhbmNlIiwiQ292YXJpYW5jZUVzdGltYXRvckZ1bmN0aW9uIiwiQ292YXJpYW5jZUZ1bmN0aW9uIiwiQ294aWFuRGlzdHJpYnV0aW9uIiwiQ294SW5nZXJzb2xsUm9zc1Byb2Nlc3MiLCJDb3hNb2RlbCIsIkNveE1vZGVsRml0IiwiQ3JhbWVyVm9uTWlzZXNUZXN0IiwiQ3JlYXRlQXJjaGl2ZSIsIkNyZWF0ZUNlbGxJRCIsIkNyZWF0ZUNoYW5uZWwiLCJDcmVhdGVDbG91ZEV4cHJlc3Npb24iLCJDcmVhdGVEYXRhYmluIiwiQ3JlYXRlRGF0YVN0cnVjdHVyZSIsIkNyZWF0ZURhdGFTeXN0ZW1Nb2RlbCIsIkNyZWF0ZURpYWxvZyIsIkNyZWF0ZURpcmVjdG9yeSIsIkNyZWF0ZURvY3VtZW50IiwiQ3JlYXRlRmlsZSIsIkNyZWF0ZUludGVybWVkaWF0ZURpcmVjdG9yaWVzIiwiQ3JlYXRlTWFuYWdlZExpYnJhcnlFeHByZXNzaW9uIiwiQ3JlYXRlTm90ZWJvb2siLCJDcmVhdGVQYWNsZXRBcmNoaXZlIiwiQ3JlYXRlUGFsZXR0ZSIsIkNyZWF0ZVBhbGV0dGVQYWNrZXQiLCJDcmVhdGVQZXJtaXNzaW9uc0dyb3VwIiwiQ3JlYXRlU2NoZWR1bGVkVGFzayIsIkNyZWF0ZVNlYXJjaEluZGV4IiwiQ3JlYXRlU3lzdGVtTW9kZWwiLCJDcmVhdGVUZW1wb3JhcnkiLCJDcmVhdGVVVUlEIiwiQ3JlYXRlV2luZG93IiwiQ3JpdGVyaW9uRnVuY3Rpb24iLCJDcml0aWNhbGl0eUZhaWx1cmVJbXBvcnRhbmNlIiwiQ3JpdGljYWxpdHlTdWNjZXNzSW1wb3J0YW5jZSIsIkNyaXRpY2FsU2VjdGlvbiIsIkNyb3NzIiwiQ3Jvc3NFbnRyb3B5TG9zc0xheWVyIiwiQ3Jvc3NpbmdDb3VudCIsIkNyb3NzaW5nRGV0ZWN0IiwiQ3Jvc3NpbmdQb2x5Z29uIiwiQ3Jvc3NNYXRyaXgiLCJDc2MiLCJDc2NoIiwiQ1RDTG9zc0xheWVyIiwiQ3ViZSIsIkN1YmVSb290IiwiQ3ViaWNzIiwiQ3Vib2lkIiwiQ3Vib2lkQm94IiwiQ3VtdWxhbnQiLCJDdW11bGFudEdlbmVyYXRpbmdGdW5jdGlvbiIsIkN1cCIsIkN1cENhcCIsIkN1cmwiLCJDdXJseURvdWJsZVF1b3RlIiwiQ3VybHlRdW90ZSIsIkN1cnJlbmN5Q29udmVydCIsIkN1cnJlbnREYXRlIiwiQ3VycmVudEltYWdlIiwiQ3VycmVudGx5U3BlYWtpbmdQYWNrZXQiLCJDdXJyZW50Tm90ZWJvb2tJbWFnZSIsIkN1cnJlbnRTY3JlZW5JbWFnZSIsIkN1cnJlbnRWYWx1ZSIsIkN1cnJ5IiwiQ3VycnlBcHBsaWVkIiwiQ3VydmF0dXJlRmxvd0ZpbHRlciIsIkN1cnZlQ2xvc2VkIiwiQ3lhbiIsIkN5Y2xlR3JhcGgiLCJDeWNsZUluZGV4UG9seW5vbWlhbCIsIkN5Y2xlcyIsIkN5Y2xpY0dyb3VwIiwiQ3ljbG90b21pYyIsIkN5bGluZGVyIiwiQ3lsaW5kZXJCb3giLCJDeWxpbmRyaWNhbERlY29tcG9zaXRpb24iLCJEIiwiRGFndW1EaXN0cmlidXRpb24iLCJEYW1EYXRhIiwiRGFtZXJhdUxldmVuc2h0ZWluRGlzdGFuY2UiLCJEYW1waW5nRmFjdG9yIiwiRGFya2VyIiwiRGFzaGVkIiwiRGFzaGluZyIsIkRhdGFiYXNlQ29ubmVjdCIsIkRhdGFiYXNlRGlzY29ubmVjdCIsIkRhdGFiYXNlUmVmZXJlbmNlIiwiRGF0YWJpbiIsIkRhdGFiaW5BZGQiLCJEYXRhYmluUmVtb3ZlIiwiRGF0YWJpbnMiLCJEYXRhYmluVXBsb2FkIiwiRGF0YUNvbXByZXNzaW9uIiwiRGF0YURpc3RyaWJ1dGlvbiIsIkRhdGFSYW5nZSIsIkRhdGFSZXZlcnNlZCIsIkRhdGFzZXQiLCJEYXRhc2V0RGlzcGxheVBhbmVsIiwiRGF0YVN0cnVjdHVyZSIsIkRhdGFTdHJ1Y3R1cmVRIiwiRGF0ZSIsIkRhdGVCb3VuZHMiLCJEYXRlZCIsIkRhdGVEZWxpbWl0ZXJzIiwiRGF0ZURpZmZlcmVuY2UiLCJEYXRlZFVuaXQiLCJEYXRlRm9ybWF0IiwiRGF0ZUZ1bmN0aW9uIiwiRGF0ZUhpc3RvZ3JhbSIsIkRhdGVJbnRlcnZhbCIsIkRhdGVMaXN0IiwiRGF0ZUxpc3RMb2dQbG90IiwiRGF0ZUxpc3RQbG90IiwiRGF0ZUxpc3RTdGVwUGxvdCIsIkRhdGVPYmplY3QiLCJEYXRlT2JqZWN0USIsIkRhdGVPdmVybGFwc1EiLCJEYXRlUGF0dGVybiIsIkRhdGVQbHVzIiwiRGF0ZVJhbmdlIiwiRGF0ZVJlZHVjdGlvbiIsIkRhdGVTdHJpbmciLCJEYXRlVGlja3NGb3JtYXQiLCJEYXRlVmFsdWUiLCJEYXRlV2l0aGluUSIsIkRhdWJlY2hpZXNXYXZlbGV0IiwiRGF2aXNEaXN0cmlidXRpb24iLCJEYXdzb25GIiwiRGF5Q291bnQiLCJEYXlDb3VudENvbnZlbnRpb24iLCJEYXlIZW1pc3BoZXJlIiwiRGF5bGlnaHRRIiwiRGF5TWF0Y2hRIiwiRGF5TmFtZSIsIkRheU5pZ2h0VGVybWluYXRvciIsIkRheVBsdXMiLCJEYXlSYW5nZSIsIkRheVJvdW5kIiwiRGVCcnVpam5HcmFwaCIsIkRlQnJ1aWpuU2VxdWVuY2UiLCJEZWJ1ZyIsIkRlYnVnVGFnIiwiRGVjYXBpdGFsaXplIiwiRGVjaW1hbCIsIkRlY2ltYWxGb3JtIiwiRGVjbGFyZUtub3duU3ltYm9scyIsIkRlY2xhcmVQYWNrYWdlIiwiRGVjb21wb3NlIiwiRGVjb252b2x1dGlvbkxheWVyIiwiRGVjcmVtZW50IiwiRGVjcnlwdCIsIkRlY3J5cHRGaWxlIiwiRGVkZWtpbmRFdGEiLCJEZWVwU3BhY2VQcm9iZURhdGEiLCJEZWZhdWx0IiwiRGVmYXVsdEF4ZXNTdHlsZSIsIkRlZmF1bHRCYXNlU3R5bGUiLCJEZWZhdWx0Qm94U3R5bGUiLCJEZWZhdWx0QnV0dG9uIiwiRGVmYXVsdENvbG9yIiwiRGVmYXVsdENvbnRyb2xQbGFjZW1lbnQiLCJEZWZhdWx0RHVwbGljYXRlQ2VsbFN0eWxlIiwiRGVmYXVsdER1cmF0aW9uIiwiRGVmYXVsdEVsZW1lbnQiLCJEZWZhdWx0RmFjZUdyaWRzU3R5bGUiLCJEZWZhdWx0RmllbGRIaW50U3R5bGUiLCJEZWZhdWx0Rm9udCIsIkRlZmF1bHRGb250UHJvcGVydGllcyIsIkRlZmF1bHRGb3JtYXRUeXBlIiwiRGVmYXVsdEZvcm1hdFR5cGVGb3JTdHlsZSIsIkRlZmF1bHRGcmFtZVN0eWxlIiwiRGVmYXVsdEZyYW1lVGlja3NTdHlsZSIsIkRlZmF1bHRHcmlkTGluZXNTdHlsZSIsIkRlZmF1bHRJbmxpbmVGb3JtYXRUeXBlIiwiRGVmYXVsdElucHV0Rm9ybWF0VHlwZSIsIkRlZmF1bHRMYWJlbFN0eWxlIiwiRGVmYXVsdE1lbnVTdHlsZSIsIkRlZmF1bHROYXR1cmFsTGFuZ3VhZ2UiLCJEZWZhdWx0TmV3Q2VsbFN0eWxlIiwiRGVmYXVsdE5ld0lubGluZUNlbGxTdHlsZSIsIkRlZmF1bHROb3RlYm9vayIsIkRlZmF1bHRPcHRpb25zIiwiRGVmYXVsdE91dHB1dEZvcm1hdFR5cGUiLCJEZWZhdWx0UHJpbnRQcmVjaXNpb24iLCJEZWZhdWx0U3R5bGUiLCJEZWZhdWx0U3R5bGVEZWZpbml0aW9ucyIsIkRlZmF1bHRUZXh0Rm9ybWF0VHlwZSIsIkRlZmF1bHRUZXh0SW5saW5lRm9ybWF0VHlwZSIsIkRlZmF1bHRUaWNrc1N0eWxlIiwiRGVmYXVsdFRvb2x0aXBTdHlsZSIsIkRlZmF1bHRWYWx1ZSIsIkRlZmF1bHRWYWx1ZXMiLCJEZWZlciIsIkRlZmluZUV4dGVybmFsIiwiRGVmaW5lSW5wdXRTdHJlYW1NZXRob2QiLCJEZWZpbmVPdXRwdXRTdHJlYW1NZXRob2QiLCJEZWZpbmVSZXNvdXJjZUZ1bmN0aW9uIiwiRGVmaW5pdGlvbiIsIkRlZ3JlZSIsIkRlZ3JlZUNlbnRyYWxpdHkiLCJEZWdyZWVHcmFwaERpc3RyaWJ1dGlvbiIsIkRlZ3JlZUxleGljb2dyYXBoaWMiLCJEZWdyZWVSZXZlcnNlTGV4aWNvZ3JhcGhpYyIsIkRFaWdlbnN5c3RlbSIsIkRFaWdlbnZhbHVlcyIsIkRlaW5pdGlhbGl6YXRpb24iLCJEZWwiLCJEZWxhdW5heU1lc2giLCJEZWxheWVkIiwiRGVsZXRhYmxlIiwiRGVsZXRlIiwiRGVsZXRlQW5vbWFsaWVzIiwiRGVsZXRlQm9yZGVyQ29tcG9uZW50cyIsIkRlbGV0ZUNhc2VzIiwiRGVsZXRlQ2hhbm5lbCIsIkRlbGV0ZUNsb3VkRXhwcmVzc2lvbiIsIkRlbGV0ZUNvbnRlbnRzIiwiRGVsZXRlRGlyZWN0b3J5IiwiRGVsZXRlRHVwbGljYXRlcyIsIkRlbGV0ZUR1cGxpY2F0ZXNCeSIsIkRlbGV0ZUZpbGUiLCJEZWxldGVNaXNzaW5nIiwiRGVsZXRlT2JqZWN0IiwiRGVsZXRlUGVybWlzc2lvbnNLZXkiLCJEZWxldGVTZWFyY2hJbmRleCIsIkRlbGV0ZVNtYWxsQ29tcG9uZW50cyIsIkRlbGV0ZVN0b3B3b3JkcyIsIkRlbGV0ZVdpdGhDb250ZW50cyIsIkRlbGV0aW9uV2FybmluZyIsIkRlbGltaXRlZEFycmF5IiwiRGVsaW1pdGVkU2VxdWVuY2UiLCJEZWxpbWl0ZXIiLCJEZWxpbWl0ZXJGbGFzaFRpbWUiLCJEZWxpbWl0ZXJNYXRjaGluZyIsIkRlbGltaXRlcnMiLCJEZWxpdmVyeUZ1bmN0aW9uIiwiRGVuZHJvZ3JhbSIsIkRlbm9taW5hdG9yIiwiRGVuc2l0eUdyYXBoaWNzIiwiRGVuc2l0eUhpc3RvZ3JhbSIsIkRlbnNpdHlQbG90IiwiRGVuc2l0eVBsb3QzRCIsIkRlcGVuZGVudFZhcmlhYmxlcyIsIkRlcGxveSIsIkRlcGxveWVkIiwiRGVwdGgiLCJEZXB0aEZpcnN0U2NhbiIsIkRlcml2YXRpdmUiLCJEZXJpdmF0aXZlRmlsdGVyIiwiRGVyaXZlZEtleSIsIkRlc2NyaXB0b3JTdGF0ZVNwYWNlIiwiRGVzaWduTWF0cml4IiwiRGVzdHJveUFmdGVyRXZhbHVhdGlvbiIsIkRldCIsIkRldmljZUNsb3NlIiwiRGV2aWNlQ29uZmlndXJlIiwiRGV2aWNlRXhlY3V0ZSIsIkRldmljZUV4ZWN1dGVBc3luY2hyb25vdXMiLCJEZXZpY2VPYmplY3QiLCJEZXZpY2VPcGVuIiwiRGV2aWNlT3BlblEiLCJEZXZpY2VSZWFkIiwiRGV2aWNlUmVhZEJ1ZmZlciIsIkRldmljZVJlYWRMYXRlc3QiLCJEZXZpY2VSZWFkTGlzdCIsIkRldmljZVJlYWRUaW1lU2VyaWVzIiwiRGV2aWNlcyIsIkRldmljZVN0cmVhbXMiLCJEZXZpY2VXcml0ZSIsIkRldmljZVdyaXRlQnVmZmVyIiwiREdhdXNzaWFuV2F2ZWxldCIsIkRpYWNyaXRpY2FsUG9zaXRpb25pbmciLCJEaWFnb25hbCIsIkRpYWdvbmFsaXphYmxlTWF0cml4USIsIkRpYWdvbmFsTWF0cml4IiwiRGlhZ29uYWxNYXRyaXhRIiwiRGlhbG9nIiwiRGlhbG9nSW5kZW50IiwiRGlhbG9nSW5wdXQiLCJEaWFsb2dMZXZlbCIsIkRpYWxvZ05vdGVib29rIiwiRGlhbG9nUHJvbG9nIiwiRGlhbG9nUmV0dXJuIiwiRGlhbG9nU3ltYm9scyIsIkRpYW1vbmQiLCJEaWFtb25kTWF0cml4IiwiRGljZURpc3NpbWlsYXJpdHkiLCJEaWN0aW9uYXJ5TG9va3VwIiwiRGljdGlvbmFyeVdvcmRRIiwiRGlmZmVyZW5jZURlbHRhIiwiRGlmZmVyZW5jZU9yZGVyIiwiRGlmZmVyZW5jZVF1b3RpZW50IiwiRGlmZmVyZW5jZVJvb3QiLCJEaWZmZXJlbmNlUm9vdFJlZHVjZSIsIkRpZmZlcmVuY2VzIiwiRGlmZmVyZW50aWFsRCIsIkRpZmZlcmVudGlhbFJvb3QiLCJEaWZmZXJlbnRpYWxSb290UmVkdWNlIiwiRGlmZmVyZW50aWF0b3JGaWx0ZXIiLCJEaWdpdGFsU2lnbmF0dXJlIiwiRGlnaXRCbG9jayIsIkRpZ2l0QmxvY2tNaW5pbXVtIiwiRGlnaXRDaGFyYWN0ZXIiLCJEaWdpdENvdW50IiwiRGlnaXRRIiwiRGloZWRyYWxBbmdsZSIsIkRpaGVkcmFsR3JvdXAiLCJEaWxhdGlvbiIsIkRpbWVuc2lvbmFsQ29tYmluYXRpb25zIiwiRGltZW5zaW9uYWxNZXNoQ29tcG9uZW50cyIsIkRpbWVuc2lvblJlZHVjZSIsIkRpbWVuc2lvblJlZHVjZXJGdW5jdGlvbiIsIkRpbWVuc2lvblJlZHVjdGlvbiIsIkRpbWVuc2lvbnMiLCJEaXJhY0NvbWIiLCJEaXJhY0RlbHRhIiwiRGlyZWN0ZWRFZGdlIiwiRGlyZWN0ZWRFZGdlcyIsIkRpcmVjdGVkR3JhcGgiLCJEaXJlY3RlZEdyYXBoUSIsIkRpcmVjdGVkSW5maW5pdHkiLCJEaXJlY3Rpb24iLCJEaXJlY3RpdmUiLCJEaXJlY3RvcnkiLCJEaXJlY3RvcnlOYW1lIiwiRGlyZWN0b3J5USIsIkRpcmVjdG9yeVN0YWNrIiwiRGlyaWNobGV0QmV0YSIsIkRpcmljaGxldENoYXJhY3RlciIsIkRpcmljaGxldENvbmRpdGlvbiIsIkRpcmljaGxldENvbnZvbHZlIiwiRGlyaWNobGV0RGlzdHJpYnV0aW9uIiwiRGlyaWNobGV0RXRhIiwiRGlyaWNobGV0TCIsIkRpcmljaGxldExhbWJkYSIsIkRpcmljaGxldFRyYW5zZm9ybSIsIkRpcmljaGxldFdpbmRvdyIsIkRpc2FibGVDb25zb2xlUHJpbnRQYWNrZXQiLCJEaXNhYmxlRm9ybWF0dGluZyIsIkRpc2NyZXRlQXN5bXB0b3RpYyIsIkRpc2NyZXRlQ2hpcnBaVHJhbnNmb3JtIiwiRGlzY3JldGVDb252b2x2ZSIsIkRpc2NyZXRlRGVsdGEiLCJEaXNjcmV0ZUhhZGFtYXJkVHJhbnNmb3JtIiwiRGlzY3JldGVJbmRpY2F0b3IiLCJEaXNjcmV0ZUxpbWl0IiwiRGlzY3JldGVMUUVzdGltYXRvckdhaW5zIiwiRGlzY3JldGVMUVJlZ3VsYXRvckdhaW5zIiwiRGlzY3JldGVMeWFwdW5vdlNvbHZlIiwiRGlzY3JldGVNYXJrb3ZQcm9jZXNzIiwiRGlzY3JldGVNYXhMaW1pdCIsIkRpc2NyZXRlTWluTGltaXQiLCJEaXNjcmV0ZVBsb3QiLCJEaXNjcmV0ZVBsb3QzRCIsIkRpc2NyZXRlUmF0aW8iLCJEaXNjcmV0ZVJpY2NhdGlTb2x2ZSIsIkRpc2NyZXRlU2hpZnQiLCJEaXNjcmV0ZVRpbWVNb2RlbFEiLCJEaXNjcmV0ZVVuaWZvcm1EaXN0cmlidXRpb24iLCJEaXNjcmV0ZVZhcmlhYmxlcyIsIkRpc2NyZXRlV2F2ZWxldERhdGEiLCJEaXNjcmV0ZVdhdmVsZXRQYWNrZXRUcmFuc2Zvcm0iLCJEaXNjcmV0ZVdhdmVsZXRUcmFuc2Zvcm0iLCJEaXNjcmV0aXplR3JhcGhpY3MiLCJEaXNjcmV0aXplUmVnaW9uIiwiRGlzY3JpbWluYW50IiwiRGlzam9pbnRRIiwiRGlzanVuY3Rpb24iLCJEaXNrIiwiRGlza0JveCIsIkRpc2tNYXRyaXgiLCJEaXNrU2VnbWVudCIsIkRpc3BhdGNoIiwiRGlzcGF0Y2hRIiwiRGlzcGVyc2lvbkVzdGltYXRvckZ1bmN0aW9uIiwiRGlzcGxheSIsIkRpc3BsYXlBbGxTdGVwcyIsIkRpc3BsYXlFbmRQYWNrZXQiLCJEaXNwbGF5Rmx1c2hJbWFnZVBhY2tldCIsIkRpc3BsYXlGb3JtIiwiRGlzcGxheUZ1bmN0aW9uIiwiRGlzcGxheVBhY2tldCIsIkRpc3BsYXlSdWxlcyIsIkRpc3BsYXlTZXRTaXplUGFja2V0IiwiRGlzcGxheVN0cmluZyIsIkRpc3BsYXlUZW1wb3JhcnkiLCJEaXNwbGF5V2l0aCIsIkRpc3BsYXlXaXRoUmVmIiwiRGlzcGxheVdpdGhWYXJpYWJsZSIsIkRpc3RhbmNlRnVuY3Rpb24iLCJEaXN0YW5jZU1hdHJpeCIsIkRpc3RhbmNlVHJhbnNmb3JtIiwiRGlzdHJpYnV0ZSIsIkRpc3RyaWJ1dGVkIiwiRGlzdHJpYnV0ZWRDb250ZXh0cyIsIkRpc3RyaWJ1dGVEZWZpbml0aW9ucyIsIkRpc3RyaWJ1dGlvbkNoYXJ0IiwiRGlzdHJpYnV0aW9uRG9tYWluIiwiRGlzdHJpYnV0aW9uRml0VGVzdCIsIkRpc3RyaWJ1dGlvblBhcmFtZXRlckFzc3VtcHRpb25zIiwiRGlzdHJpYnV0aW9uUGFyYW1ldGVyUSIsIkRpdGhlcmluZyIsIkRpdiIsIkRpdmVyZ2VuY2UiLCJEaXZpZGUiLCJEaXZpZGVCeSIsIkRpdmlkZXJzIiwiRGl2aWRlU2lkZXMiLCJEaXZpc2libGUiLCJEaXZpc29ycyIsIkRpdmlzb3JTaWdtYSIsIkRpdmlzb3JTdW0iLCJETVNMaXN0IiwiRE1TU3RyaW5nIiwiRG8iLCJEb2NrZWRDZWxscyIsIkRvY3VtZW50R2VuZXJhdG9yIiwiRG9jdW1lbnRHZW5lcmF0b3JJbmZvcm1hdGlvbiIsIkRvY3VtZW50R2VuZXJhdG9ySW5mb3JtYXRpb25EYXRhIiwiRG9jdW1lbnRHZW5lcmF0b3JzIiwiRG9jdW1lbnROb3RlYm9vayIsIkRvY3VtZW50V2VpZ2h0aW5nUnVsZXMiLCJEb2RlY2FoZWRyb24iLCJEb21haW5SZWdpc3RyYXRpb25JbmZvcm1hdGlvbiIsIkRvbWluYW50Q29sb3JzIiwiRE9TVGV4dEZvcm1hdCIsIkRvdCIsIkRvdERhc2hlZCIsIkRvdEVxdWFsIiwiRG90TGF5ZXIiLCJEb3RQbHVzTGF5ZXIiLCJEb3R0ZWQiLCJEb3VibGVCcmFja2V0aW5nQmFyIiwiRG91YmxlQ29udG91ckludGVncmFsIiwiRG91YmxlRG93bkFycm93IiwiRG91YmxlTGVmdEFycm93IiwiRG91YmxlTGVmdFJpZ2h0QXJyb3ciLCJEb3VibGVMZWZ0VGVlIiwiRG91YmxlTG9uZ0xlZnRBcnJvdyIsIkRvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdyIsIkRvdWJsZUxvbmdSaWdodEFycm93IiwiRG91YmxlUmlnaHRBcnJvdyIsIkRvdWJsZVJpZ2h0VGVlIiwiRG91YmxlVXBBcnJvdyIsIkRvdWJsZVVwRG93bkFycm93IiwiRG91YmxlVmVydGljYWxCYXIiLCJEb3VibHlJbmZpbml0ZSIsIkRvd24iLCJEb3duQXJyb3ciLCJEb3duQXJyb3dCYXIiLCJEb3duQXJyb3dVcEFycm93IiwiRG93bkxlZnRSaWdodFZlY3RvciIsIkRvd25MZWZ0VGVlVmVjdG9yIiwiRG93bkxlZnRWZWN0b3IiLCJEb3duTGVmdFZlY3RvckJhciIsIkRvd25SaWdodFRlZVZlY3RvciIsIkRvd25SaWdodFZlY3RvciIsIkRvd25SaWdodFZlY3RvckJhciIsIkRvd25zYW1wbGUiLCJEb3duVGVlIiwiRG93blRlZUFycm93IiwiRG93blZhbHVlcyIsIkRyYWdBbmREcm9wIiwiRHJhd0VkZ2VzIiwiRHJhd0Zyb250RmFjZXMiLCJEcmF3SGlnaGxpZ2h0ZWQiLCJEcm9wIiwiRHJvcG91dExheWVyIiwiRFNvbHZlIiwiRFNvbHZlVmFsdWUiLCJEdCIsIkR1YWxMaW5lYXJQcm9ncmFtbWluZyIsIkR1YWxQb2x5aGVkcm9uIiwiRHVhbFN5c3RlbXNNb2RlbCIsIkR1bXBHZXQiLCJEdW1wU2F2ZSIsIkR1cGxpY2F0ZUZyZWVRIiwiRHVyYXRpb24iLCJEeW5hbWljIiwiRHluYW1pY0JveCIsIkR5bmFtaWNCb3hPcHRpb25zIiwiRHluYW1pY0V2YWx1YXRpb25UaW1lb3V0IiwiRHluYW1pY0dlb0dyYXBoaWNzIiwiRHluYW1pY0ltYWdlIiwiRHluYW1pY0xvY2F0aW9uIiwiRHluYW1pY01vZHVsZSIsIkR5bmFtaWNNb2R1bGVCb3giLCJEeW5hbWljTW9kdWxlQm94T3B0aW9ucyIsIkR5bmFtaWNNb2R1bGVQYXJlbnQiLCJEeW5hbWljTW9kdWxlVmFsdWVzIiwiRHluYW1pY05hbWUiLCJEeW5hbWljTmFtZXNwYWNlIiwiRHluYW1pY1JlZmVyZW5jZSIsIkR5bmFtaWNTZXR0aW5nIiwiRHluYW1pY1VwZGF0aW5nIiwiRHluYW1pY1dyYXBwZXIiLCJEeW5hbWljV3JhcHBlckJveCIsIkR5bmFtaWNXcmFwcGVyQm94T3B0aW9ucyIsIkUiLCJFYXJ0aEltcGFjdERhdGEiLCJFYXJ0aHF1YWtlRGF0YSIsIkVjY2VudHJpY2l0eUNlbnRyYWxpdHkiLCJFY2hvIiwiRWNob0Z1bmN0aW9uIiwiRWNsaXBzZVR5cGUiLCJFZGdlQWRkIiwiRWRnZUJldHdlZW5uZXNzQ2VudHJhbGl0eSIsIkVkZ2VDYXBhY2l0eSIsIkVkZ2VDYXBGb3JtIiwiRWRnZUNvbG9yIiwiRWRnZUNvbm5lY3Rpdml0eSIsIkVkZ2VDb250cmFjdCIsIkVkZ2VDb3N0IiwiRWRnZUNvdW50IiwiRWRnZUNvdmVyUSIsIkVkZ2VDeWNsZU1hdHJpeCIsIkVkZ2VEYXNoaW5nIiwiRWRnZURlbGV0ZSIsIkVkZ2VEZXRlY3QiLCJFZGdlRm9ybSIsIkVkZ2VJbmRleCIsIkVkZ2VKb2luRm9ybSIsIkVkZ2VMYWJlbGluZyIsIkVkZ2VMYWJlbHMiLCJFZGdlTGFiZWxTdHlsZSIsIkVkZ2VMaXN0IiwiRWRnZU9wYWNpdHkiLCJFZGdlUSIsIkVkZ2VSZW5kZXJpbmdGdW5jdGlvbiIsIkVkZ2VSdWxlcyIsIkVkZ2VTaGFwZUZ1bmN0aW9uIiwiRWRnZVN0eWxlIiwiRWRnZVRhZ2dlZEdyYXBoIiwiRWRnZVRhZ2dlZEdyYXBoUSIsIkVkZ2VUYWdzIiwiRWRnZVRoaWNrbmVzcyIsIkVkZ2VXZWlnaHQiLCJFZGdlV2VpZ2h0ZWRHcmFwaFEiLCJFZGl0YWJsZSIsIkVkaXRCdXR0b25TZXR0aW5ncyIsIkVkaXRDZWxsVGFnc1NldHRpbmdzIiwiRWRpdERpc3RhbmNlIiwiRWZmZWN0aXZlSW50ZXJlc3QiLCJFaWdlbnN5c3RlbSIsIkVpZ2VudmFsdWVzIiwiRWlnZW52ZWN0b3JDZW50cmFsaXR5IiwiRWlnZW52ZWN0b3JzIiwiRWxlbWVudCIsIkVsZW1lbnREYXRhIiwiRWxlbWVudHdpc2VMYXllciIsIkVsaWRlZEZvcm1zIiwiRWxpbWluYXRlIiwiRWxpbWluYXRpb25PcmRlciIsIkVsbGlwc29pZCIsIkVsbGlwdGljRSIsIkVsbGlwdGljRXhwIiwiRWxsaXB0aWNFeHBQcmltZSIsIkVsbGlwdGljRiIsIkVsbGlwdGljRmlsdGVyTW9kZWwiLCJFbGxpcHRpY0siLCJFbGxpcHRpY0xvZyIsIkVsbGlwdGljTm9tZVEiLCJFbGxpcHRpY1BpIiwiRWxsaXB0aWNSZWR1Y2VkSGFsZlBlcmlvZHMiLCJFbGxpcHRpY1RoZXRhIiwiRWxsaXB0aWNUaGV0YVByaW1lIiwiRW1iZWRDb2RlIiwiRW1iZWRkZWRIVE1MIiwiRW1iZWRkZWRTZXJ2aWNlIiwiRW1iZWRkaW5nTGF5ZXIiLCJFbWJlZGRpbmdPYmplY3QiLCJFbWl0U291bmQiLCJFbXBoYXNpemVTeW50YXhFcnJvcnMiLCJFbXBpcmljYWxEaXN0cmlidXRpb24iLCJFbXB0eSIsIkVtcHR5R3JhcGhRIiwiRW1wdHlSZWdpb24iLCJFbmFibGVDb25zb2xlUHJpbnRQYWNrZXQiLCJFbmFibGVkIiwiRW5jb2RlIiwiRW5jcnlwdCIsIkVuY3J5cHRlZE9iamVjdCIsIkVuY3J5cHRGaWxlIiwiRW5kIiwiRW5kQWRkIiwiRW5kRGlhbG9nUGFja2V0IiwiRW5kRnJvbnRFbmRJbnRlcmFjdGlvblBhY2tldCIsIkVuZE9mQnVmZmVyIiwiRW5kT2ZGaWxlIiwiRW5kT2ZMaW5lIiwiRW5kT2ZTdHJpbmciLCJFbmRQYWNrYWdlIiwiRW5naW5lRW52aXJvbm1lbnQiLCJFbmdpbmVlcmluZ0Zvcm0iLCJFbnRlciIsIkVudGVyRXhwcmVzc2lvblBhY2tldCIsIkVudGVyVGV4dFBhY2tldCIsIkVudGl0eSIsIkVudGl0eUNsYXNzIiwiRW50aXR5Q2xhc3NMaXN0IiwiRW50aXR5Q29waWVzIiwiRW50aXR5RnVuY3Rpb24iLCJFbnRpdHlHcm91cCIsIkVudGl0eUluc3RhbmNlIiwiRW50aXR5TGlzdCIsIkVudGl0eVByZWZldGNoIiwiRW50aXR5UHJvcGVydGllcyIsIkVudGl0eVByb3BlcnR5IiwiRW50aXR5UHJvcGVydHlDbGFzcyIsIkVudGl0eVJlZ2lzdGVyIiwiRW50aXR5U3RvcmUiLCJFbnRpdHlTdG9yZXMiLCJFbnRpdHlUeXBlTmFtZSIsIkVudGl0eVVucmVnaXN0ZXIiLCJFbnRpdHlWYWx1ZSIsIkVudHJvcHkiLCJFbnRyb3B5RmlsdGVyIiwiRW52aXJvbm1lbnQiLCJFcGlsb2ciLCJFcGlsb2dGdW5jdGlvbiIsIkVxdWFsIiwiRXF1YWxDb2x1bW5zIiwiRXF1YWxSb3dzIiwiRXF1YWxUaWxkZSIsIkVxdWFsVG8iLCJFcXVhdGVkVG8iLCJFcXVpbGlicml1bSIsIkVxdWlyaXBwbGVGaWx0ZXJLZXJuZWwiLCJFcXVpdmFsZW50IiwiRXJmIiwiRXJmYyIsIkVyZmkiLCJFcmxhbmdCIiwiRXJsYW5nQyIsIkVybGFuZ0Rpc3RyaWJ1dGlvbiIsIkVyb3Npb24iLCJFcnJvckJveCIsIkVycm9yQm94T3B0aW9ucyIsIkVycm9yTm9ybSIsIkVycm9yUGFja2V0IiwiRXJyb3JzRGlhbG9nU2V0dGluZ3MiLCJFc2NhcGVSYWRpdXMiLCJFc3RpbWF0ZWRCYWNrZ3JvdW5kIiwiRXN0aW1hdGVkRGlzdHJpYnV0aW9uIiwiRXN0aW1hdGVkUHJvY2VzcyIsIkVzdGltYXRvckdhaW5zIiwiRXN0aW1hdG9yUmVndWxhdG9yIiwiRXVjbGlkZWFuRGlzdGFuY2UiLCJFdWxlckFuZ2xlcyIsIkV1bGVyQ2hhcmFjdGVyaXN0aWMiLCJFdWxlckUiLCJFdWxlckdhbW1hIiwiRXVsZXJpYW5HcmFwaFEiLCJFdWxlck1hdHJpeCIsIkV1bGVyUGhpIiwiRXZhbHVhdGFibGUiLCJFdmFsdWF0ZSIsIkV2YWx1YXRlZCIsIkV2YWx1YXRlUGFja2V0IiwiRXZhbHVhdGVTY2hlZHVsZWRUYXNrIiwiRXZhbHVhdGlvbkJveCIsIkV2YWx1YXRpb25DZWxsIiwiRXZhbHVhdGlvbkNvbXBsZXRpb25BY3Rpb24iLCJFdmFsdWF0aW9uRGF0YSIsIkV2YWx1YXRpb25FbGVtZW50cyIsIkV2YWx1YXRpb25FbnZpcm9ubWVudCIsIkV2YWx1YXRpb25Nb2RlIiwiRXZhbHVhdGlvbk1vbml0b3IiLCJFdmFsdWF0aW9uTm90ZWJvb2siLCJFdmFsdWF0aW9uT2JqZWN0IiwiRXZhbHVhdGlvbk9yZGVyIiwiRXZhbHVhdG9yIiwiRXZhbHVhdG9yTmFtZXMiLCJFdmVuUSIsIkV2ZW50RGF0YSIsIkV2ZW50RXZhbHVhdG9yIiwiRXZlbnRIYW5kbGVyIiwiRXZlbnRIYW5kbGVyVGFnIiwiRXZlbnRMYWJlbHMiLCJFdmVudFNlcmllcyIsIkV4YWN0QmxhY2ttYW5XaW5kb3ciLCJFeGFjdE51bWJlclEiLCJFeGFjdFJvb3RJc29sYXRpb24iLCJFeGFtcGxlRGF0YSIsIkV4Y2VwdCIsIkV4Y2x1ZGVkRm9ybXMiLCJFeGNsdWRlZExpbmVzIiwiRXhjbHVkZWRQaHlzaWNhbFF1YW50aXRpZXMiLCJFeGNsdWRlUG9kcyIsIkV4Y2x1c2lvbnMiLCJFeGNsdXNpb25zU3R5bGUiLCJFeGlzdHMiLCJFeGl0IiwiRXhpdERpYWxvZyIsIkV4b3BsYW5ldERhdGEiLCJFeHAiLCJFeHBhbmQiLCJFeHBhbmRBbGwiLCJFeHBhbmREZW5vbWluYXRvciIsIkV4cGFuZEZpbGVOYW1lIiwiRXhwYW5kTnVtZXJhdG9yIiwiRXhwZWN0YXRpb24iLCJFeHBlY3RhdGlvbkUiLCJFeHBlY3RlZFZhbHVlIiwiRXhwR2FtbWFEaXN0cmlidXRpb24iLCJFeHBJbnRlZ3JhbEUiLCJFeHBJbnRlZ3JhbEVpIiwiRXhwaXJhdGlvbkRhdGUiLCJFeHBvbmVudCIsIkV4cG9uZW50RnVuY3Rpb24iLCJFeHBvbmVudGlhbERpc3RyaWJ1dGlvbiIsIkV4cG9uZW50aWFsRmFtaWx5IiwiRXhwb25lbnRpYWxHZW5lcmF0aW5nRnVuY3Rpb24iLCJFeHBvbmVudGlhbE1vdmluZ0F2ZXJhZ2UiLCJFeHBvbmVudGlhbFBvd2VyRGlzdHJpYnV0aW9uIiwiRXhwb25lbnRQb3NpdGlvbiIsIkV4cG9uZW50U3RlcCIsIkV4cG9ydCIsIkV4cG9ydEF1dG9SZXBsYWNlbWVudHMiLCJFeHBvcnRCeXRlQXJyYXkiLCJFeHBvcnRGb3JtIiwiRXhwb3J0UGFja2V0IiwiRXhwb3J0U3RyaW5nIiwiRXhwcmVzc2lvbiIsIkV4cHJlc3Npb25DZWxsIiwiRXhwcmVzc2lvbkdyYXBoIiwiRXhwcmVzc2lvblBhY2tldCIsIkV4cHJlc3Npb25VVUlEIiwiRXhwVG9UcmlnIiwiRXh0ZW5kZWRFbnRpdHlDbGFzcyIsIkV4dGVuZGVkR0NEIiwiRXh0ZW5zaW9uIiwiRXh0ZW50RWxlbWVudEZ1bmN0aW9uIiwiRXh0ZW50TWFya2VycyIsIkV4dGVudFNpemUiLCJFeHRlcm5hbEJ1bmRsZSIsIkV4dGVybmFsQ2FsbCIsIkV4dGVybmFsRGF0YUNoYXJhY3RlckVuY29kaW5nIiwiRXh0ZXJuYWxFdmFsdWF0ZSIsIkV4dGVybmFsRnVuY3Rpb24iLCJFeHRlcm5hbEZ1bmN0aW9uTmFtZSIsIkV4dGVybmFsSWRlbnRpZmllciIsIkV4dGVybmFsT2JqZWN0IiwiRXh0ZXJuYWxPcHRpb25zIiwiRXh0ZXJuYWxTZXNzaW9uT2JqZWN0IiwiRXh0ZXJuYWxTZXNzaW9ucyIsIkV4dGVybmFsU3RvcmFnZUJhc2UiLCJFeHRlcm5hbFN0b3JhZ2VEb3dubG9hZCIsIkV4dGVybmFsU3RvcmFnZUdldCIsIkV4dGVybmFsU3RvcmFnZU9iamVjdCIsIkV4dGVybmFsU3RvcmFnZVB1dCIsIkV4dGVybmFsU3RvcmFnZVVwbG9hZCIsIkV4dGVybmFsVHlwZVNpZ25hdHVyZSIsIkV4dGVybmFsVmFsdWUiLCJFeHRyYWN0IiwiRXh0cmFjdEFyY2hpdmUiLCJFeHRyYWN0TGF5ZXIiLCJFeHRyYWN0UGFjbGV0QXJjaGl2ZSIsIkV4dHJlbWVWYWx1ZURpc3RyaWJ1dGlvbiIsIkZhY2VBbGlnbiIsIkZhY2VGb3JtIiwiRmFjZUdyaWRzIiwiRmFjZUdyaWRzU3R5bGUiLCJGYWNpYWxGZWF0dXJlcyIsIkZhY3RvciIsIkZhY3RvckNvbXBsZXRlIiwiRmFjdG9yaWFsIiwiRmFjdG9yaWFsMiIsIkZhY3RvcmlhbE1vbWVudCIsIkZhY3RvcmlhbE1vbWVudEdlbmVyYXRpbmdGdW5jdGlvbiIsIkZhY3RvcmlhbFBvd2VyIiwiRmFjdG9ySW50ZWdlciIsIkZhY3Rvckxpc3QiLCJGYWN0b3JTcXVhcmVGcmVlIiwiRmFjdG9yU3F1YXJlRnJlZUxpc3QiLCJGYWN0b3JUZXJtcyIsIkZhY3RvclRlcm1zTGlzdCIsIkZhaWwiLCJGYWlsdXJlIiwiRmFpbHVyZUFjdGlvbiIsIkZhaWx1cmVEaXN0cmlidXRpb24iLCJGYWlsdXJlUSIsIkZhbHNlIiwiRmFyZXlTZXF1ZW5jZSIsIkZBUklNQVByb2Nlc3MiLCJGZWF0dXJlRGlzdGFuY2UiLCJGZWF0dXJlRXh0cmFjdCIsIkZlYXR1cmVFeHRyYWN0aW9uIiwiRmVhdHVyZUV4dHJhY3RvciIsIkZlYXR1cmVFeHRyYWN0b3JGdW5jdGlvbiIsIkZlYXR1cmVOYW1lcyIsIkZlYXR1cmVOZWFyZXN0IiwiRmVhdHVyZVNwYWNlUGxvdCIsIkZlYXR1cmVTcGFjZVBsb3QzRCIsIkZlYXR1cmVUeXBlcyIsIkZFRGlzYWJsZUNvbnNvbGVQcmludFBhY2tldCIsIkZlZWRiYWNrTGluZWFyaXplIiwiRmVlZGJhY2tTZWN0b3IiLCJGZWVkYmFja1NlY3RvclN0eWxlIiwiRmVlZGJhY2tUeXBlIiwiRkVFbmFibGVDb25zb2xlUHJpbnRQYWNrZXQiLCJGZXRhbEdyb3d0aERhdGEiLCJGaWJvbmFjY2kiLCJGaWJvbm9yaWFsIiwiRmllbGRDb21wbGV0aW9uRnVuY3Rpb24iLCJGaWVsZEhpbnQiLCJGaWVsZEhpbnRTdHlsZSIsIkZpZWxkTWFza2VkIiwiRmllbGRTaXplIiwiRmlsZSIsIkZpbGVCYXNlTmFtZSIsIkZpbGVCeXRlQ291bnQiLCJGaWxlQ29udmVydCIsIkZpbGVEYXRlIiwiRmlsZUV4aXN0c1EiLCJGaWxlRXh0ZW5zaW9uIiwiRmlsZUZvcm1hdCIsIkZpbGVIYW5kbGVyIiwiRmlsZUhhc2giLCJGaWxlSW5mb3JtYXRpb24iLCJGaWxlTmFtZSIsIkZpbGVOYW1lRGVwdGgiLCJGaWxlTmFtZURpYWxvZ1NldHRpbmdzIiwiRmlsZU5hbWVEcm9wIiwiRmlsZU5hbWVGb3JtcyIsIkZpbGVOYW1lSm9pbiIsIkZpbGVOYW1lcyIsIkZpbGVOYW1lU2V0dGVyIiwiRmlsZU5hbWVTcGxpdCIsIkZpbGVOYW1lVGFrZSIsIkZpbGVQcmludCIsIkZpbGVTaXplIiwiRmlsZVN5c3RlbU1hcCIsIkZpbGVTeXN0ZW1TY2FuIiwiRmlsZVRlbXBsYXRlIiwiRmlsZVRlbXBsYXRlQXBwbHkiLCJGaWxlVHlwZSIsIkZpbGxlZEN1cnZlIiwiRmlsbGVkQ3VydmVCb3giLCJGaWxsZWRDdXJ2ZUJveE9wdGlvbnMiLCJGaWxsaW5nIiwiRmlsbGluZ1N0eWxlIiwiRmlsbGluZ1RyYW5zZm9ybSIsIkZpbHRlcmVkRW50aXR5Q2xhc3MiLCJGaWx0ZXJSdWxlcyIsIkZpbmFuY2lhbEJvbmQiLCJGaW5hbmNpYWxEYXRhIiwiRmluYW5jaWFsRGVyaXZhdGl2ZSIsIkZpbmFuY2lhbEluZGljYXRvciIsIkZpbmQiLCJGaW5kQW5vbWFsaWVzIiwiRmluZEFyZ01heCIsIkZpbmRBcmdNaW4iLCJGaW5kQ2hhbm5lbHMiLCJGaW5kQ2xpcXVlIiwiRmluZENsdXN0ZXJzIiwiRmluZENvb2tpZXMiLCJGaW5kQ3VydmVQYXRoIiwiRmluZEN5Y2xlIiwiRmluZERldmljZXMiLCJGaW5kRGlzdHJpYnV0aW9uIiwiRmluZERpc3RyaWJ1dGlvblBhcmFtZXRlcnMiLCJGaW5kRGl2aXNpb25zIiwiRmluZEVkZ2VDb3ZlciIsIkZpbmRFZGdlQ3V0IiwiRmluZEVkZ2VJbmRlcGVuZGVudFBhdGhzIiwiRmluZEVxdWF0aW9uYWxQcm9vZiIsIkZpbmRFdWxlcmlhbkN5Y2xlIiwiRmluZEV4dGVybmFsRXZhbHVhdG9ycyIsIkZpbmRGYWNlcyIsIkZpbmRGaWxlIiwiRmluZEZpdCIsIkZpbmRGb3JtdWxhIiwiRmluZEZ1bmRhbWVudGFsQ3ljbGVzIiwiRmluZEdlbmVyYXRpbmdGdW5jdGlvbiIsIkZpbmRHZW9Mb2NhdGlvbiIsIkZpbmRHZW9tZXRyaWNDb25qZWN0dXJlcyIsIkZpbmRHZW9tZXRyaWNUcmFuc2Zvcm0iLCJGaW5kR3JhcGhDb21tdW5pdGllcyIsIkZpbmRHcmFwaElzb21vcnBoaXNtIiwiRmluZEdyYXBoUGFydGl0aW9uIiwiRmluZEhhbWlsdG9uaWFuQ3ljbGUiLCJGaW5kSGFtaWx0b25pYW5QYXRoIiwiRmluZEhpZGRlbk1hcmtvdlN0YXRlcyIsIkZpbmRJbWFnZVRleHQiLCJGaW5kSW5kZXBlbmRlbnRFZGdlU2V0IiwiRmluZEluZGVwZW5kZW50VmVydGV4U2V0IiwiRmluZEluc3RhbmNlIiwiRmluZEludGVnZXJOdWxsVmVjdG9yIiwiRmluZEtDbGFuIiwiRmluZEtDbGlxdWUiLCJGaW5kS0NsdWIiLCJGaW5kS1BsZXgiLCJGaW5kTGlicmFyeSIsIkZpbmRMaW5lYXJSZWN1cnJlbmNlIiwiRmluZExpc3QiLCJGaW5kTWF0Y2hpbmdDb2xvciIsIkZpbmRNYXhpbXVtIiwiRmluZE1heGltdW1DdXQiLCJGaW5kTWF4aW11bUZsb3ciLCJGaW5kTWF4VmFsdWUiLCJGaW5kTWVzaERlZmVjdHMiLCJGaW5kTWluaW11bSIsIkZpbmRNaW5pbXVtQ29zdEZsb3ciLCJGaW5kTWluaW11bUN1dCIsIkZpbmRNaW5WYWx1ZSIsIkZpbmRNb2xlY3VsZVN1YnN0cnVjdHVyZSIsIkZpbmRQYXRoIiwiRmluZFBlYWtzIiwiRmluZFBlcm11dGF0aW9uIiwiRmluZFBvc3RtYW5Ub3VyIiwiRmluZFByb2Nlc3NQYXJhbWV0ZXJzIiwiRmluZFJlcGVhdCIsIkZpbmRSb290IiwiRmluZFNlcXVlbmNlRnVuY3Rpb24iLCJGaW5kU2V0dGluZ3MiLCJGaW5kU2hvcnRlc3RQYXRoIiwiRmluZFNob3J0ZXN0VG91ciIsIkZpbmRTcGFubmluZ1RyZWUiLCJGaW5kU3lzdGVtTW9kZWxFcXVpbGlicml1bSIsIkZpbmRUZXh0dWFsQW5zd2VyIiwiRmluZFRocmVzaG9sZCIsIkZpbmRUcmFuc2llbnRSZXBlYXQiLCJGaW5kVmVydGV4Q292ZXIiLCJGaW5kVmVydGV4Q3V0IiwiRmluZFZlcnRleEluZGVwZW5kZW50UGF0aHMiLCJGaW5lIiwiRmluaXNoRHluYW1pYyIsIkZpbml0ZUFiZWxpYW5Hcm91cENvdW50IiwiRmluaXRlR3JvdXBDb3VudCIsIkZpbml0ZUdyb3VwRGF0YSIsIkZpcnN0IiwiRmlyc3RDYXNlIiwiRmlyc3RQYXNzYWdlVGltZURpc3RyaWJ1dGlvbiIsIkZpcnN0UG9zaXRpb24iLCJGaXNjaGVyR3JvdXBGaTIyIiwiRmlzY2hlckdyb3VwRmkyMyIsIkZpc2NoZXJHcm91cEZpMjRQcmltZSIsIkZpc2hlckh5cGVyZ2VvbWV0cmljRGlzdHJpYnV0aW9uIiwiRmlzaGVyUmF0aW9UZXN0IiwiRmlzaGVyWkRpc3RyaWJ1dGlvbiIsIkZpdCIsIkZpdEFsbCIsIkZpdFJlZ3VsYXJpemF0aW9uIiwiRml0dGVkTW9kZWwiLCJGaXhlZE9yZGVyIiwiRml4ZWRQb2ludCIsIkZpeGVkUG9pbnRMaXN0IiwiRmxhc2hTZWxlY3Rpb24iLCJGbGF0IiwiRmxhdHRlbiIsIkZsYXR0ZW5BdCIsIkZsYXR0ZW5MYXllciIsIkZsYXRUb3BXaW5kb3ciLCJGbGlwVmlldyIsIkZsb29yIiwiRmxvd1BvbHlub21pYWwiLCJGbHVzaFByaW50T3V0cHV0UGFja2V0IiwiRm9sZCIsIkZvbGRMaXN0IiwiRm9sZFBhaXIiLCJGb2xkUGFpckxpc3QiLCJGb2xsb3dSZWRpcmVjdHMiLCJGb250IiwiRm9udENvbG9yIiwiRm9udEZhbWlseSIsIkZvbnRGb3JtIiwiRm9udE5hbWUiLCJGb250T3BhY2l0eSIsIkZvbnRQb3N0U2NyaXB0TmFtZSIsIkZvbnRQcm9wZXJ0aWVzIiwiRm9udFJlZW5jb2RpbmciLCJGb250U2l6ZSIsIkZvbnRTbGFudCIsIkZvbnRTdWJzdGl0dXRpb25zIiwiRm9udFRyYWNraW5nIiwiRm9udFZhcmlhdGlvbnMiLCJGb250V2VpZ2h0IiwiRm9yIiwiRm9yQWxsIiwiRm9yY2VWZXJzaW9uSW5zdGFsbCIsIkZvcm1hdCIsIkZvcm1hdFJ1bGVzIiwiRm9ybWF0VHlwZSIsIkZvcm1hdFR5cGVBdXRvQ29udmVydCIsIkZvcm1hdFZhbHVlcyIsIkZvcm1Cb3giLCJGb3JtQm94T3B0aW9ucyIsIkZvcm1Db250cm9sIiwiRm9ybUZ1bmN0aW9uIiwiRm9ybUxheW91dEZ1bmN0aW9uIiwiRm9ybU9iamVjdCIsIkZvcm1QYWdlIiwiRm9ybVRoZW1lIiwiRm9ybXVsYURhdGEiLCJGb3JtdWxhTG9va3VwIiwiRm9ydHJhbkZvcm0iLCJGb3J3YXJkIiwiRm9yd2FyZEJhY2t3YXJkIiwiRm91cmllciIsIkZvdXJpZXJDb2VmZmljaWVudCIsIkZvdXJpZXJDb3NDb2VmZmljaWVudCIsIkZvdXJpZXJDb3NTZXJpZXMiLCJGb3VyaWVyQ29zVHJhbnNmb3JtIiwiRm91cmllckRDVCIsIkZvdXJpZXJEQ1RGaWx0ZXIiLCJGb3VyaWVyRENUTWF0cml4IiwiRm91cmllckRTVCIsIkZvdXJpZXJEU1RNYXRyaXgiLCJGb3VyaWVyTWF0cml4IiwiRm91cmllclBhcmFtZXRlcnMiLCJGb3VyaWVyU2VxdWVuY2VUcmFuc2Zvcm0iLCJGb3VyaWVyU2VyaWVzIiwiRm91cmllclNpbkNvZWZmaWNpZW50IiwiRm91cmllclNpblNlcmllcyIsIkZvdXJpZXJTaW5UcmFuc2Zvcm0iLCJGb3VyaWVyVHJhbnNmb3JtIiwiRm91cmllclRyaWdTZXJpZXMiLCJGcmFjdGlvbmFsQnJvd25pYW5Nb3Rpb25Qcm9jZXNzIiwiRnJhY3Rpb25hbEdhdXNzaWFuTm9pc2VQcm9jZXNzIiwiRnJhY3Rpb25hbFBhcnQiLCJGcmFjdGlvbkJveCIsIkZyYWN0aW9uQm94T3B0aW9ucyIsIkZyYWN0aW9uTGluZSIsIkZyYW1lIiwiRnJhbWVCb3giLCJGcmFtZUJveE9wdGlvbnMiLCJGcmFtZWQiLCJGcmFtZUluc2V0IiwiRnJhbWVMYWJlbCIsIkZyYW1lbGVzcyIsIkZyYW1lTWFyZ2lucyIsIkZyYW1lUmF0ZSIsIkZyYW1lU3R5bGUiLCJGcmFtZVRpY2tzIiwiRnJhbWVUaWNrc1N0eWxlIiwiRlJhdGlvRGlzdHJpYnV0aW9uIiwiRnJlY2hldERpc3RyaWJ1dGlvbiIsIkZyZWVRIiwiRnJlbmV0U2VycmV0U3lzdGVtIiwiRnJlcXVlbmN5U2FtcGxpbmdGaWx0ZXJLZXJuZWwiLCJGcmVzbmVsQyIsIkZyZXNuZWxGIiwiRnJlc25lbEciLCJGcmVzbmVsUyIsIkZyaWRheSIsIkZyb2Jlbml1c051bWJlciIsIkZyb2Jlbml1c1NvbHZlIiwiRnJvbUFic29sdXRlVGltZSIsIkZyb21DaGFyYWN0ZXJDb2RlIiwiRnJvbUNvZWZmaWNpZW50UnVsZXMiLCJGcm9tQ29udGludWVkRnJhY3Rpb24iLCJGcm9tRGF0ZSIsIkZyb21EaWdpdHMiLCJGcm9tRE1TIiwiRnJvbUVudGl0eSIsIkZyb21KdWxpYW5EYXRlIiwiRnJvbUxldHRlck51bWJlciIsIkZyb21Qb2xhckNvb3JkaW5hdGVzIiwiRnJvbVJvbWFuTnVtZXJhbCIsIkZyb21TcGhlcmljYWxDb29yZGluYXRlcyIsIkZyb21Vbml4VGltZSIsIkZyb250IiwiRnJvbnRFbmREeW5hbWljRXhwcmVzc2lvbiIsIkZyb250RW5kRXZlbnRBY3Rpb25zIiwiRnJvbnRFbmRFeGVjdXRlIiwiRnJvbnRFbmRPYmplY3QiLCJGcm9udEVuZFJlc291cmNlIiwiRnJvbnRFbmRSZXNvdXJjZVN0cmluZyIsIkZyb250RW5kU3RhY2tTaXplIiwiRnJvbnRFbmRUb2tlbiIsIkZyb250RW5kVG9rZW5FeGVjdXRlIiwiRnJvbnRFbmRWYWx1ZUNhY2hlIiwiRnJvbnRFbmRWZXJzaW9uIiwiRnJvbnRGYWNlQ29sb3IiLCJGcm9udEZhY2VPcGFjaXR5IiwiRnVsbCIsIkZ1bGxBeGVzIiwiRnVsbERlZmluaXRpb24iLCJGdWxsRm9ybSIsIkZ1bGxHcmFwaGljcyIsIkZ1bGxJbmZvcm1hdGlvbk91dHB1dFJlZ3VsYXRvciIsIkZ1bGxPcHRpb25zIiwiRnVsbFJlZ2lvbiIsIkZ1bGxTaW1wbGlmeSIsIkZ1bmN0aW9uIiwiRnVuY3Rpb25Db21waWxlIiwiRnVuY3Rpb25Db21waWxlRXhwb3J0IiwiRnVuY3Rpb25Db21waWxlRXhwb3J0Qnl0ZUFycmF5IiwiRnVuY3Rpb25Db21waWxlRXhwb3J0TGlicmFyeSIsIkZ1bmN0aW9uQ29tcGlsZUV4cG9ydFN0cmluZyIsIkZ1bmN0aW9uRG9tYWluIiwiRnVuY3Rpb25FeHBhbmQiLCJGdW5jdGlvbkludGVycG9sYXRpb24iLCJGdW5jdGlvblBlcmlvZCIsIkZ1bmN0aW9uUmFuZ2UiLCJGdW5jdGlvblNwYWNlIiwiRnVzc2VsbFZlc2VseUltcG9ydGFuY2UiLCJHYWJvckZpbHRlciIsIkdhYm9yTWF0cml4IiwiR2Fib3JXYXZlbGV0IiwiR2Fpbk1hcmdpbnMiLCJHYWluUGhhc2VNYXJnaW5zIiwiR2FsYXh5RGF0YSIsIkdhbGxlcnlWaWV3IiwiR2FtbWEiLCJHYW1tYURpc3RyaWJ1dGlvbiIsIkdhbW1hUmVndWxhcml6ZWQiLCJHYXBQZW5hbHR5IiwiR0FSQ0hQcm9jZXNzIiwiR2F0ZWRSZWN1cnJlbnRMYXllciIsIkdhdGhlciIsIkdhdGhlckJ5IiwiR2F1Z2VGYWNlRWxlbWVudEZ1bmN0aW9uIiwiR2F1Z2VGYWNlU3R5bGUiLCJHYXVnZUZyYW1lRWxlbWVudEZ1bmN0aW9uIiwiR2F1Z2VGcmFtZVNpemUiLCJHYXVnZUZyYW1lU3R5bGUiLCJHYXVnZUxhYmVscyIsIkdhdWdlTWFya2VycyIsIkdhdWdlU3R5bGUiLCJHYXVzc2lhbkZpbHRlciIsIkdhdXNzaWFuSW50ZWdlcnMiLCJHYXVzc2lhbk1hdHJpeCIsIkdhdXNzaWFuT3J0aG9nb25hbE1hdHJpeERpc3RyaWJ1dGlvbiIsIkdhdXNzaWFuU3ltcGxlY3RpY01hdHJpeERpc3RyaWJ1dGlvbiIsIkdhdXNzaWFuVW5pdGFyeU1hdHJpeERpc3RyaWJ1dGlvbiIsIkdhdXNzaWFuV2luZG93IiwiR0NEIiwiR2VnZW5iYXVlckMiLCJHZW5lcmFsIiwiR2VuZXJhbGl6ZWRMaW5lYXJNb2RlbEZpdCIsIkdlbmVyYXRlQXN5bW1ldHJpY0tleVBhaXIiLCJHZW5lcmF0ZUNvbmRpdGlvbnMiLCJHZW5lcmF0ZWRDZWxsIiwiR2VuZXJhdGVkRG9jdW1lbnRCaW5kaW5nIiwiR2VuZXJhdGVEZXJpdmVkS2V5IiwiR2VuZXJhdGVEaWdpdGFsU2lnbmF0dXJlIiwiR2VuZXJhdGVEb2N1bWVudCIsIkdlbmVyYXRlZFBhcmFtZXRlcnMiLCJHZW5lcmF0ZWRRdWFudGl0eU1hZ25pdHVkZXMiLCJHZW5lcmF0ZUZpbGVTaWduYXR1cmUiLCJHZW5lcmF0ZUhUVFBSZXNwb25zZSIsIkdlbmVyYXRlU2VjdXJlZEF1dGhlbnRpY2F0aW9uS2V5IiwiR2VuZXJhdGVTeW1tZXRyaWNLZXkiLCJHZW5lcmF0aW5nRnVuY3Rpb24iLCJHZW5lcmF0b3JEZXNjcmlwdGlvbiIsIkdlbmVyYXRvckhpc3RvcnlMZW5ndGgiLCJHZW5lcmF0b3JPdXRwdXRUeXBlIiwiR2VuZXJpYyIsIkdlbmVyaWNDeWxpbmRyaWNhbERlY29tcG9zaXRpb24iLCJHZW5vbWVEYXRhIiwiR2Vub21lTG9va3VwIiwiR2VvQW50aXBvZGUiLCJHZW9BcmVhIiwiR2VvQXJyYXlTaXplIiwiR2VvQmFja2dyb3VuZCIsIkdlb0JvdW5kaW5nQm94IiwiR2VvQm91bmRzIiwiR2VvQm91bmRzUmVnaW9uIiwiR2VvQnViYmxlQ2hhcnQiLCJHZW9DZW50ZXIiLCJHZW9DaXJjbGUiLCJHZW9Db250b3VyUGxvdCIsIkdlb0RlbnNpdHlQbG90IiwiR2VvZGVzaWNDbG9zaW5nIiwiR2VvZGVzaWNEaWxhdGlvbiIsIkdlb2Rlc2ljRXJvc2lvbiIsIkdlb2Rlc2ljT3BlbmluZyIsIkdlb0Rlc3RpbmF0aW9uIiwiR2VvZGVzeURhdGEiLCJHZW9EaXJlY3Rpb24iLCJHZW9EaXNrIiwiR2VvRGlzcGxhY2VtZW50IiwiR2VvRGlzdGFuY2UiLCJHZW9EaXN0YW5jZUxpc3QiLCJHZW9FbGV2YXRpb25EYXRhIiwiR2VvRW50aXRpZXMiLCJHZW9HcmFwaGljcyIsIkdlb2dyYXZpdHlNb2RlbERhdGEiLCJHZW9HcmlkRGlyZWN0aW9uRGlmZmVyZW5jZSIsIkdlb0dyaWRMaW5lcyIsIkdlb0dyaWRMaW5lc1N0eWxlIiwiR2VvR3JpZFBvc2l0aW9uIiwiR2VvR3JpZFJhbmdlIiwiR2VvR3JpZFJhbmdlUGFkZGluZyIsIkdlb0dyaWRVbml0QXJlYSIsIkdlb0dyaWRVbml0RGlzdGFuY2UiLCJHZW9HcmlkVmVjdG9yIiwiR2VvR3JvdXAiLCJHZW9IZW1pc3BoZXJlIiwiR2VvSGVtaXNwaGVyZUJvdW5kYXJ5IiwiR2VvSGlzdG9ncmFtIiwiR2VvSWRlbnRpZnkiLCJHZW9JbWFnZSIsIkdlb0xhYmVscyIsIkdlb0xlbmd0aCIsIkdlb0xpc3RQbG90IiwiR2VvTG9jYXRpb24iLCJHZW9sb2dpY2FsUGVyaW9kRGF0YSIsIkdlb21hZ25ldGljTW9kZWxEYXRhIiwiR2VvTWFya2VyIiwiR2VvbWV0cmljQXNzZXJ0aW9uIiwiR2VvbWV0cmljQnJvd25pYW5Nb3Rpb25Qcm9jZXNzIiwiR2VvbWV0cmljRGlzdHJpYnV0aW9uIiwiR2VvbWV0cmljTWVhbiIsIkdlb21ldHJpY01lYW5GaWx0ZXIiLCJHZW9tZXRyaWNPcHRpbWl6YXRpb24iLCJHZW9tZXRyaWNTY2VuZSIsIkdlb21ldHJpY1RyYW5zZm9ybWF0aW9uIiwiR2VvbWV0cmljVHJhbnNmb3JtYXRpb24zREJveCIsIkdlb21ldHJpY1RyYW5zZm9ybWF0aW9uM0RCb3hPcHRpb25zIiwiR2VvbWV0cmljVHJhbnNmb3JtYXRpb25Cb3giLCJHZW9tZXRyaWNUcmFuc2Zvcm1hdGlvbkJveE9wdGlvbnMiLCJHZW9Nb2RlbCIsIkdlb05lYXJlc3QiLCJHZW9QYXRoIiwiR2VvUG9zaXRpb24iLCJHZW9Qb3NpdGlvbkVOVSIsIkdlb1Bvc2l0aW9uWFlaIiwiR2VvUHJvamVjdGlvbiIsIkdlb1Byb2plY3Rpb25EYXRhIiwiR2VvUmFuZ2UiLCJHZW9SYW5nZVBhZGRpbmciLCJHZW9SZWdpb25WYWx1ZVBsb3QiLCJHZW9SZXNvbHV0aW9uIiwiR2VvU2NhbGVCYXIiLCJHZW9TZXJ2ZXIiLCJHZW9TbW9vdGhIaXN0b2dyYW0iLCJHZW9TdHJlYW1QbG90IiwiR2VvU3R5bGluZyIsIkdlb1N0eWxpbmdJbWFnZUZ1bmN0aW9uIiwiR2VvVmFyaWFudCIsIkdlb1ZlY3RvciIsIkdlb1ZlY3RvckVOVSIsIkdlb1ZlY3RvclBsb3QiLCJHZW9WZWN0b3JYWVoiLCJHZW9WaXNpYmxlUmVnaW9uIiwiR2VvVmlzaWJsZVJlZ2lvbkJvdW5kYXJ5IiwiR2VvV2l0aGluUSIsIkdlb1pvb21MZXZlbCIsIkdlc3R1cmVIYW5kbGVyIiwiR2VzdHVyZUhhbmRsZXJUYWciLCJHZXQiLCJHZXRCb3VuZGluZ0JveFNpemVQYWNrZXQiLCJHZXRDb250ZXh0IiwiR2V0RW52aXJvbm1lbnQiLCJHZXRGaWxlTmFtZSIsIkdldEZyb250RW5kT3B0aW9uc0RhdGFQYWNrZXQiLCJHZXRMaW5lYnJlYWtJbmZvcm1hdGlvblBhY2tldCIsIkdldE1lbnVzUGFja2V0IiwiR2V0UGFnZUJyZWFrSW5mb3JtYXRpb25QYWNrZXQiLCJHbGFpc2hlciIsIkdsb2JhbENsdXN0ZXJpbmdDb2VmZmljaWVudCIsIkdsb2JhbFByZWZlcmVuY2VzIiwiR2xvYmFsU2Vzc2lvbiIsIkdsb3ciLCJHb2xkZW5BbmdsZSIsIkdvbGRlblJhdGlvIiwiR29tcGVydHpNYWtlaGFtRGlzdHJpYnV0aW9uIiwiR29vY2hTaGFkaW5nIiwiR29vZG1hbktydXNrYWxHYW1tYSIsIkdvb2RtYW5LcnVza2FsR2FtbWFUZXN0IiwiR290byIsIkdyYWQiLCJHcmFkaWVudCIsIkdyYWRpZW50RmlsdGVyIiwiR3JhZGllbnRPcmllbnRhdGlvbkZpbHRlciIsIkdyYW1tYXJBcHBseSIsIkdyYW1tYXJSdWxlcyIsIkdyYW1tYXJUb2tlbiIsIkdyYXBoIiwiR3JhcGgzRCIsIkdyYXBoQXNzb3J0YXRpdml0eSIsIkdyYXBoQXV0b21vcnBoaXNtR3JvdXAiLCJHcmFwaENlbnRlciIsIkdyYXBoQ29tcGxlbWVudCIsIkdyYXBoRGF0YSIsIkdyYXBoRGVuc2l0eSIsIkdyYXBoRGlhbWV0ZXIiLCJHcmFwaERpZmZlcmVuY2UiLCJHcmFwaERpc2pvaW50VW5pb24iLCJHcmFwaERpc3RhbmNlIiwiR3JhcGhEaXN0YW5jZU1hdHJpeCIsIkdyYXBoRWxlbWVudERhdGEiLCJHcmFwaEVtYmVkZGluZyIsIkdyYXBoSGlnaGxpZ2h0IiwiR3JhcGhIaWdobGlnaHRTdHlsZSIsIkdyYXBoSHViIiwiR3JhcGhpY3MiLCJHcmFwaGljczNEIiwiR3JhcGhpY3MzREJveCIsIkdyYXBoaWNzM0RCb3hPcHRpb25zIiwiR3JhcGhpY3NBcnJheSIsIkdyYXBoaWNzQmFzZWxpbmUiLCJHcmFwaGljc0JveCIsIkdyYXBoaWNzQm94T3B0aW9ucyIsIkdyYXBoaWNzQ29sb3IiLCJHcmFwaGljc0NvbHVtbiIsIkdyYXBoaWNzQ29tcGxleCIsIkdyYXBoaWNzQ29tcGxleDNEQm94IiwiR3JhcGhpY3NDb21wbGV4M0RCb3hPcHRpb25zIiwiR3JhcGhpY3NDb21wbGV4Qm94IiwiR3JhcGhpY3NDb21wbGV4Qm94T3B0aW9ucyIsIkdyYXBoaWNzQ29udGVudHMiLCJHcmFwaGljc0RhdGEiLCJHcmFwaGljc0dyaWQiLCJHcmFwaGljc0dyaWRCb3giLCJHcmFwaGljc0dyb3VwIiwiR3JhcGhpY3NHcm91cDNEQm94IiwiR3JhcGhpY3NHcm91cDNEQm94T3B0aW9ucyIsIkdyYXBoaWNzR3JvdXBCb3giLCJHcmFwaGljc0dyb3VwQm94T3B0aW9ucyIsIkdyYXBoaWNzR3JvdXBpbmciLCJHcmFwaGljc0hpZ2hsaWdodENvbG9yIiwiR3JhcGhpY3NSb3ciLCJHcmFwaGljc1NwYWNpbmciLCJHcmFwaGljc1N0eWxlIiwiR3JhcGhJbnRlcnNlY3Rpb24iLCJHcmFwaExheW91dCIsIkdyYXBoTGlua0VmZmljaWVuY3kiLCJHcmFwaFBlcmlwaGVyeSIsIkdyYXBoUGxvdCIsIkdyYXBoUGxvdDNEIiwiR3JhcGhQb3dlciIsIkdyYXBoUHJvcGVydHlEaXN0cmlidXRpb24iLCJHcmFwaFEiLCJHcmFwaFJhZGl1cyIsIkdyYXBoUmVjaXByb2NpdHkiLCJHcmFwaFJvb3QiLCJHcmFwaFN0eWxlIiwiR3JhcGhVbmlvbiIsIkdyYXkiLCJHcmF5TGV2ZWwiLCJHcmVhdGVyIiwiR3JlYXRlckVxdWFsIiwiR3JlYXRlckVxdWFsTGVzcyIsIkdyZWF0ZXJFcXVhbFRoYW4iLCJHcmVhdGVyRnVsbEVxdWFsIiwiR3JlYXRlckdyZWF0ZXIiLCJHcmVhdGVyTGVzcyIsIkdyZWF0ZXJTbGFudEVxdWFsIiwiR3JlYXRlclRoYW4iLCJHcmVhdGVyVGlsZGUiLCJHcmVlbiIsIkdyZWVuRnVuY3Rpb24iLCJHcmlkIiwiR3JpZEJhc2VsaW5lIiwiR3JpZEJveCIsIkdyaWRCb3hBbGlnbm1lbnQiLCJHcmlkQm94QmFja2dyb3VuZCIsIkdyaWRCb3hEaXZpZGVycyIsIkdyaWRCb3hGcmFtZSIsIkdyaWRCb3hJdGVtU2l6ZSIsIkdyaWRCb3hJdGVtU3R5bGUiLCJHcmlkQm94T3B0aW9ucyIsIkdyaWRCb3hTcGFjaW5ncyIsIkdyaWRDcmVhdGlvblNldHRpbmdzIiwiR3JpZERlZmF1bHRFbGVtZW50IiwiR3JpZEVsZW1lbnRTdHlsZU9wdGlvbnMiLCJHcmlkRnJhbWUiLCJHcmlkRnJhbWVNYXJnaW5zIiwiR3JpZEdyYXBoIiwiR3JpZExpbmVzIiwiR3JpZExpbmVzU3R5bGUiLCJHcm9lYm5lckJhc2lzIiwiR3JvdXBBY3Rpb25CYXNlIiwiR3JvdXBCeSIsIkdyb3VwQ2VudHJhbGl6ZXIiLCJHcm91cEVsZW1lbnRGcm9tV29yZCIsIkdyb3VwRWxlbWVudFBvc2l0aW9uIiwiR3JvdXBFbGVtZW50USIsIkdyb3VwRWxlbWVudHMiLCJHcm91cEVsZW1lbnRUb1dvcmQiLCJHcm91cEdlbmVyYXRvcnMiLCJHcm91cGluZ3MiLCJHcm91cE11bHRpcGxpY2F0aW9uVGFibGUiLCJHcm91cE9yYml0cyIsIkdyb3VwT3JkZXIiLCJHcm91cFBhZ2VCcmVha1dpdGhpbiIsIkdyb3VwU2V0d2lzZVN0YWJpbGl6ZXIiLCJHcm91cFN0YWJpbGl6ZXIiLCJHcm91cFN0YWJpbGl6ZXJDaGFpbiIsIkdyb3VwVG9nZXRoZXJHcm91cGluZyIsIkdyb3VwVG9nZXRoZXJOZXN0ZWRHcm91cGluZyIsIkdyb3dDdXRDb21wb25lbnRzIiwiR3VkZXJtYW5uaWFuIiwiR3VpZGVkRmlsdGVyIiwiR3VtYmVsRGlzdHJpYnV0aW9uIiwiSGFhcldhdmVsZXQiLCJIYWRhbWFyZE1hdHJpeCIsIkhhbGZMaW5lIiwiSGFsZk5vcm1hbERpc3RyaWJ1dGlvbiIsIkhhbGZQbGFuZSIsIkhhbGZTcGFjZSIsIkhhbGZ0b25lU2hhZGluZyIsIkhhbWlsdG9uaWFuR3JhcGhRIiwiSGFtbWluZ0Rpc3RhbmNlIiwiSGFtbWluZ1dpbmRvdyIsIkhhbmRsZXJGdW5jdGlvbnMiLCJIYW5kbGVyRnVuY3Rpb25zS2V5cyIsIkhhbmtlbEgxIiwiSGFua2VsSDIiLCJIYW5rZWxNYXRyaXgiLCJIYW5rZWxUcmFuc2Zvcm0iLCJIYW5uUG9pc3NvbldpbmRvdyIsIkhhbm5XaW5kb3ciLCJIYXJhZGFOb3J0b25Hcm91cEhOIiwiSGFyYXJ5R3JhcGgiLCJIYXJtb25pY01lYW4iLCJIYXJtb25pY01lYW5GaWx0ZXIiLCJIYXJtb25pY051bWJlciIsIkhhc2giLCJIYXRjaEZpbGxpbmciLCJIYXRjaFNoYWRpbmciLCJIYXZlcnNpbmUiLCJIYXphcmRGdW5jdGlvbiIsIkhlYWQiLCJIZWFkQ29tcG9zZSIsIkhlYWRlckFsaWdubWVudCIsIkhlYWRlckJhY2tncm91bmQiLCJIZWFkZXJEaXNwbGF5RnVuY3Rpb24iLCJIZWFkZXJMaW5lcyIsIkhlYWRlclNpemUiLCJIZWFkZXJTdHlsZSIsIkhlYWRzIiwiSGVhdmlzaWRlTGFtYmRhIiwiSGVhdmlzaWRlUGkiLCJIZWF2aXNpZGVUaGV0YSIsIkhlbGRHcm91cEhlIiwiSGVsZFBhcnQiLCJIZWxwQnJvd3Nlckxvb2t1cCIsIkhlbHBCcm93c2VyTm90ZWJvb2siLCJIZWxwQnJvd3NlclNldHRpbmdzIiwiSGVyZSIsIkhlcm1pdGVEZWNvbXBvc2l0aW9uIiwiSGVybWl0ZUgiLCJIZXJtaXRpYW5NYXRyaXhRIiwiSGVzc2VuYmVyZ0RlY29tcG9zaXRpb24iLCJIZXNzaWFuIiwiSGV1bkIiLCJIZXVuQlByaW1lIiwiSGV1bkMiLCJIZXVuQ1ByaW1lIiwiSGV1bkQiLCJIZXVuRFByaW1lIiwiSGV1bkciLCJIZXVuR1ByaW1lIiwiSGV1blQiLCJIZXVuVFByaW1lIiwiSGV4YWRlY2ltYWxDaGFyYWN0ZXIiLCJIZXhhaGVkcm9uIiwiSGV4YWhlZHJvbkJveCIsIkhleGFoZWRyb25Cb3hPcHRpb25zIiwiSGlkZGVuSXRlbXMiLCJIaWRkZW5NYXJrb3ZQcm9jZXNzIiwiSGlkZGVuU3VyZmFjZSIsIkhpZ2hsaWdodGVkIiwiSGlnaGxpZ2h0R3JhcGgiLCJIaWdobGlnaHRJbWFnZSIsIkhpZ2hsaWdodE1lc2giLCJIaWdocGFzc0ZpbHRlciIsIkhpZ21hblNpbXNHcm91cEhTIiwiSGlsYmVydEN1cnZlIiwiSGlsYmVydEZpbHRlciIsIkhpbGJlcnRNYXRyaXgiLCJIaXN0b2dyYW0iLCJIaXN0b2dyYW0zRCIsIkhpc3RvZ3JhbURpc3RyaWJ1dGlvbiIsIkhpc3RvZ3JhbUxpc3QiLCJIaXN0b2dyYW1UcmFuc2Zvcm0iLCJIaXN0b2dyYW1UcmFuc2Zvcm1JbnRlcnBvbGF0aW9uIiwiSGlzdG9yaWNhbFBlcmlvZERhdGEiLCJIaXRNaXNzVHJhbnNmb3JtIiwiSElUU0NlbnRyYWxpdHkiLCJIam9ydGhEaXN0cmlidXRpb24iLCJIb2RnZUR1YWwiLCJIb2VmZmRpbmdEIiwiSG9lZmZkaW5nRFRlc3QiLCJIb2xkIiwiSG9sZEFsbCIsIkhvbGRBbGxDb21wbGV0ZSIsIkhvbGRDb21wbGV0ZSIsIkhvbGRGaXJzdCIsIkhvbGRGb3JtIiwiSG9sZFBhdHRlcm4iLCJIb2xkUmVzdCIsIkhvbGlkYXlDYWxlbmRhciIsIkhvbWVEaXJlY3RvcnkiLCJIb21lUGFnZSIsIkhvcml6b250YWwiLCJIb3Jpem9udGFsRm9ybSIsIkhvcml6b250YWxHYXVnZSIsIkhvcml6b250YWxTY3JvbGxQb3NpdGlvbiIsIkhvcm5lckZvcm0iLCJIb3N0TG9va3VwIiwiSG90ZWxsaW5nVFNxdWFyZURpc3RyaWJ1dGlvbiIsIkhveXREaXN0cmlidXRpb24iLCJIVE1MU2F2ZSIsIkhUVFBFcnJvclJlc3BvbnNlIiwiSFRUUFJlZGlyZWN0IiwiSFRUUFJlcXVlc3QiLCJIVFRQUmVxdWVzdERhdGEiLCJIVFRQUmVzcG9uc2UiLCJIdWUiLCJIdW1hbkdyb3d0aERhdGEiLCJIdW1wRG93bkh1bXAiLCJIdW1wRXF1YWwiLCJIdXJ3aXR6TGVyY2hQaGkiLCJIdXJ3aXR6WmV0YSIsIkh5cGVyYm9saWNEaXN0cmlidXRpb24iLCJIeXBlcmN1YmVHcmFwaCIsIkh5cGVyZXhwb25lbnRpYWxEaXN0cmlidXRpb24iLCJIeXBlcmZhY3RvcmlhbCIsIkh5cGVyZ2VvbWV0cmljMEYxIiwiSHlwZXJnZW9tZXRyaWMwRjFSZWd1bGFyaXplZCIsIkh5cGVyZ2VvbWV0cmljMUYxIiwiSHlwZXJnZW9tZXRyaWMxRjFSZWd1bGFyaXplZCIsIkh5cGVyZ2VvbWV0cmljMkYxIiwiSHlwZXJnZW9tZXRyaWMyRjFSZWd1bGFyaXplZCIsIkh5cGVyZ2VvbWV0cmljRGlzdHJpYnV0aW9uIiwiSHlwZXJnZW9tZXRyaWNQRlEiLCJIeXBlcmdlb21ldHJpY1BGUVJlZ3VsYXJpemVkIiwiSHlwZXJnZW9tZXRyaWNVIiwiSHlwZXJsaW5rIiwiSHlwZXJsaW5rQWN0aW9uIiwiSHlwZXJsaW5rQ3JlYXRpb25TZXR0aW5ncyIsIkh5cGVycGxhbmUiLCJIeXBoZW5hdGlvbiIsIkh5cGhlbmF0aW9uT3B0aW9ucyIsIkh5cG9leHBvbmVudGlhbERpc3RyaWJ1dGlvbiIsIkh5cG90aGVzaXNUZXN0RGF0YSIsIkkiLCJJY29uRGF0YSIsIkljb25pemUiLCJJY29uaXplZE9iamVjdCIsIkljb25SdWxlcyIsIkljb3NhaGVkcm9uIiwiSWRlbnRpdHkiLCJJZGVudGl0eU1hdHJpeCIsIklmIiwiSWdub3JlQ2FzZSIsIklnbm9yZURpYWNyaXRpY3MiLCJJZ25vcmVQdW5jdHVhdGlvbiIsIklnbm9yZVNwZWxsQ2hlY2siLCJJZ25vcmluZ0luYWN0aXZlIiwiSW0iLCJJbWFnZSIsIkltYWdlM0QiLCJJbWFnZTNEUHJvamVjdGlvbiIsIkltYWdlM0RTbGljZXMiLCJJbWFnZUFjY3VtdWxhdGUiLCJJbWFnZUFkZCIsIkltYWdlQWRqdXN0IiwiSW1hZ2VBbGlnbiIsIkltYWdlQXBwbHkiLCJJbWFnZUFwcGx5SW5kZXhlZCIsIkltYWdlQXNwZWN0UmF0aW8iLCJJbWFnZUFzc2VtYmxlIiwiSW1hZ2VBdWdtZW50YXRpb25MYXllciIsIkltYWdlQm91bmRpbmdCb3hlcyIsIkltYWdlQ2FjaGUiLCJJbWFnZUNhY2hlVmFsaWQiLCJJbWFnZUNhcHR1cmUiLCJJbWFnZUNhcHR1cmVGdW5jdGlvbiIsIkltYWdlQ2FzZXMiLCJJbWFnZUNoYW5uZWxzIiwiSW1hZ2VDbGlwIiwiSW1hZ2VDb2xsYWdlIiwiSW1hZ2VDb2xvclNwYWNlIiwiSW1hZ2VDb21wb3NlIiwiSW1hZ2VDb250YWluc1EiLCJJbWFnZUNvbnRlbnRzIiwiSW1hZ2VDb252b2x2ZSIsIkltYWdlQ29vY2N1cnJlbmNlIiwiSW1hZ2VDb3JuZXJzIiwiSW1hZ2VDb3JyZWxhdGUiLCJJbWFnZUNvcnJlc3BvbmRpbmdQb2ludHMiLCJJbWFnZUNyb3AiLCJJbWFnZURhdGEiLCJJbWFnZURlY29udm9sdmUiLCJJbWFnZURlbW9zYWljIiwiSW1hZ2VEaWZmZXJlbmNlIiwiSW1hZ2VEaW1lbnNpb25zIiwiSW1hZ2VEaXNwbGFjZW1lbnRzIiwiSW1hZ2VEaXN0YW5jZSIsIkltYWdlRWZmZWN0IiwiSW1hZ2VFeHBvc3VyZUNvbWJpbmUiLCJJbWFnZUZlYXR1cmVUcmFjayIsIkltYWdlRmlsZUFwcGx5IiwiSW1hZ2VGaWxlRmlsdGVyIiwiSW1hZ2VGaWxlU2NhbiIsIkltYWdlRmlsdGVyIiwiSW1hZ2VGb2N1c0NvbWJpbmUiLCJJbWFnZUZvcmVzdGluZ0NvbXBvbmVudHMiLCJJbWFnZUZvcm1hdHRpbmdXaWR0aCIsIkltYWdlRm9yd2FyZFRyYW5zZm9ybWF0aW9uIiwiSW1hZ2VHcmFwaGljcyIsIkltYWdlSGlzdG9ncmFtIiwiSW1hZ2VJZGVudGlmeSIsIkltYWdlSW5zdGFuY2VRIiwiSW1hZ2VLZXlwb2ludHMiLCJJbWFnZUxhYmVscyIsIkltYWdlTGVnZW5kcyIsIkltYWdlTGV2ZWxzIiwiSW1hZ2VMaW5lcyIsIkltYWdlTWFyZ2lucyIsIkltYWdlTWFya2VyIiwiSW1hZ2VNYXJrZXJzIiwiSW1hZ2VNZWFzdXJlbWVudHMiLCJJbWFnZU1lc2giLCJJbWFnZU11bHRpcGx5IiwiSW1hZ2VPZmZzZXQiLCJJbWFnZVBhZCIsIkltYWdlUGFkZGluZyIsIkltYWdlUGFydGl0aW9uIiwiSW1hZ2VQZXJpb2RvZ3JhbSIsIkltYWdlUGVyc3BlY3RpdmVUcmFuc2Zvcm1hdGlvbiIsIkltYWdlUG9zaXRpb24iLCJJbWFnZVByZXZpZXdGdW5jdGlvbiIsIkltYWdlUHlyYW1pZCIsIkltYWdlUHlyYW1pZEFwcGx5IiwiSW1hZ2VRIiwiSW1hZ2VSYW5nZUNhY2hlIiwiSW1hZ2VSZWNvbG9yIiwiSW1hZ2VSZWZsZWN0IiwiSW1hZ2VSZWdpb24iLCJJbWFnZVJlc2l6ZSIsIkltYWdlUmVzb2x1dGlvbiIsIkltYWdlUmVzdHlsZSIsIkltYWdlUm90YXRlIiwiSW1hZ2VSb3RhdGVkIiwiSW1hZ2VTYWxpZW5jeUZpbHRlciIsIkltYWdlU2NhbGVkIiwiSW1hZ2VTY2FuIiwiSW1hZ2VTaXplIiwiSW1hZ2VTaXplQWN0aW9uIiwiSW1hZ2VTaXplQ2FjaGUiLCJJbWFnZVNpemVNdWx0aXBsaWVycyIsIkltYWdlU2l6ZVJhdyIsIkltYWdlU3VidHJhY3QiLCJJbWFnZVRha2UiLCJJbWFnZVRyYW5zZm9ybWF0aW9uIiwiSW1hZ2VUcmltIiwiSW1hZ2VUeXBlIiwiSW1hZ2VWYWx1ZSIsIkltYWdlVmFsdWVQb3NpdGlvbnMiLCJJbWFnaW5nRGV2aWNlIiwiSW1wbGljaXRSZWdpb24iLCJJbXBsaWVzIiwiSW1wb3J0IiwiSW1wb3J0QXV0b1JlcGxhY2VtZW50cyIsIkltcG9ydEJ5dGVBcnJheSIsIkltcG9ydE9wdGlvbnMiLCJJbXBvcnRTdHJpbmciLCJJbXByb3ZlbWVudEltcG9ydGFuY2UiLCJJbiIsIkluYWN0aXZhdGUiLCJJbmFjdGl2ZSIsIkluY2lkZW5jZUdyYXBoIiwiSW5jaWRlbmNlTGlzdCIsIkluY2lkZW5jZU1hdHJpeCIsIkluY2x1ZGVBcm9tYXRpY0JvbmRzIiwiSW5jbHVkZUNvbnN0YW50QmFzaXMiLCJJbmNsdWRlRGVmaW5pdGlvbnMiLCJJbmNsdWRlRGlyZWN0b3JpZXMiLCJJbmNsdWRlRmlsZUV4dGVuc2lvbiIsIkluY2x1ZGVHZW5lcmF0b3JUYXNrcyIsIkluY2x1ZGVIeWRyb2dlbnMiLCJJbmNsdWRlSW5mbGVjdGlvbnMiLCJJbmNsdWRlTWV0YUluZm9ybWF0aW9uIiwiSW5jbHVkZVBvZHMiLCJJbmNsdWRlUXVhbnRpdGllcyIsIkluY2x1ZGVSZWxhdGVkVGFibGVzIiwiSW5jbHVkZVNpbmd1bGFyVGVybSIsIkluY2x1ZGVXaW5kb3dUaW1lcyIsIkluY3JlbWVudCIsIkluZGVmaW5pdGVNYXRyaXhRIiwiSW5kZW50IiwiSW5kZW50aW5nTmV3bGluZVNwYWNpbmdzIiwiSW5kZW50TWF4RnJhY3Rpb24iLCJJbmRlcGVuZGVuY2VUZXN0IiwiSW5kZXBlbmRlbnRFZGdlU2V0USIsIkluZGVwZW5kZW50UGh5c2ljYWxRdWFudGl0eSIsIkluZGVwZW5kZW50VW5pdCIsIkluZGVwZW5kZW50VW5pdERpbWVuc2lvbiIsIkluZGVwZW5kZW50VmVydGV4U2V0USIsIkluZGV0ZXJtaW5hdGUiLCJJbmRldGVybWluYXRlVGhyZXNob2xkIiwiSW5kZXhDcmVhdGlvbk9wdGlvbnMiLCJJbmRleGVkIiwiSW5kZXhFZGdlVGFnZ2VkR3JhcGgiLCJJbmRleEdyYXBoIiwiSW5kZXhUYWciLCJJbmVxdWFsaXR5IiwiSW5leGFjdE51bWJlclEiLCJJbmV4YWN0TnVtYmVycyIsIkluZmluaXRlRnV0dXJlIiwiSW5maW5pdGVMaW5lIiwiSW5maW5pdGVQYXN0IiwiSW5maW5pdGVQbGFuZSIsIkluZmluaXR5IiwiSW5maXgiLCJJbmZsYXRpb25BZGp1c3QiLCJJbmZsYXRpb25NZXRob2QiLCJJbmZvcm1hdGlvbiIsIkluZm9ybWF0aW9uRGF0YSIsIkluZm9ybWF0aW9uRGF0YUdyaWQiLCJJbmhlcml0ZWQiLCJJbmhlcml0U2NvcGUiLCJJbmhvbW9nZW5lb3VzUG9pc3NvblByb2Nlc3MiLCJJbml0aWFsRXZhbHVhdGlvbkhpc3RvcnkiLCJJbml0aWFsaXphdGlvbiIsIkluaXRpYWxpemF0aW9uQ2VsbCIsIkluaXRpYWxpemF0aW9uQ2VsbEV2YWx1YXRpb24iLCJJbml0aWFsaXphdGlvbkNlbGxXYXJuaW5nIiwiSW5pdGlhbGl6YXRpb25PYmplY3RzIiwiSW5pdGlhbGl6YXRpb25WYWx1ZSIsIkluaXRpYWxpemUiLCJJbml0aWFsU2VlZGluZyIsIklubGluZUNvdW50ZXJBc3NpZ25tZW50cyIsIklubGluZUNvdW50ZXJJbmNyZW1lbnRzIiwiSW5saW5lUnVsZXMiLCJJbm5lciIsIklubmVyUG9seWdvbiIsIklubmVyUG9seWhlZHJvbiIsIklucGFpbnQiLCJJbnB1dCIsIklucHV0QWxpYXNlcyIsIklucHV0QXNzdW1wdGlvbnMiLCJJbnB1dEF1dG9SZXBsYWNlbWVudHMiLCJJbnB1dEZpZWxkIiwiSW5wdXRGaWVsZEJveCIsIklucHV0RmllbGRCb3hPcHRpb25zIiwiSW5wdXRGb3JtIiwiSW5wdXRHcm91cGluZyIsIklucHV0TmFtZVBhY2tldCIsIklucHV0Tm90ZWJvb2siLCJJbnB1dFBhY2tldCIsIklucHV0U2V0dGluZ3MiLCJJbnB1dFN0cmVhbSIsIklucHV0U3RyaW5nIiwiSW5wdXRTdHJpbmdQYWNrZXQiLCJJbnB1dFRvQm94Rm9ybVBhY2tldCIsIkluc2VydCIsIkluc2VydGlvbkZ1bmN0aW9uIiwiSW5zZXJ0aW9uUG9pbnRPYmplY3QiLCJJbnNlcnRMaW5lYnJlYWtzIiwiSW5zZXJ0UmVzdWx0cyIsIkluc2V0IiwiSW5zZXQzREJveCIsIkluc2V0M0RCb3hPcHRpb25zIiwiSW5zZXRCb3giLCJJbnNldEJveE9wdGlvbnMiLCJJbnNwaGVyZSIsIkluc3RhbGwiLCJJbnN0YWxsU2VydmljZSIsIkluc3RhbmNlTm9ybWFsaXphdGlvbkxheWVyIiwiSW5TdHJpbmciLCJJbnRlZ2VyIiwiSW50ZWdlckRpZ2l0cyIsIkludGVnZXJFeHBvbmVudCIsIkludGVnZXJMZW5ndGgiLCJJbnRlZ2VyTmFtZSIsIkludGVnZXJQYXJ0IiwiSW50ZWdlclBhcnRpdGlvbnMiLCJJbnRlZ2VyUSIsIkludGVnZXJSZXZlcnNlIiwiSW50ZWdlcnMiLCJJbnRlZ2VyU3RyaW5nIiwiSW50ZWdyYWwiLCJJbnRlZ3JhdGUiLCJJbnRlcmFjdGl2ZSIsIkludGVyYWN0aXZlVHJhZGluZ0NoYXJ0IiwiSW50ZXJsYWNlZCIsIkludGVybGVhdmluZyIsIkludGVybmFsbHlCYWxhbmNlZERlY29tcG9zaXRpb24iLCJJbnRlcnBvbGF0aW5nRnVuY3Rpb24iLCJJbnRlcnBvbGF0aW5nUG9seW5vbWlhbCIsIkludGVycG9sYXRpb24iLCJJbnRlcnBvbGF0aW9uT3JkZXIiLCJJbnRlcnBvbGF0aW9uUG9pbnRzIiwiSW50ZXJwb2xhdGlvblByZWNpc2lvbiIsIkludGVycHJldGF0aW9uIiwiSW50ZXJwcmV0YXRpb25Cb3giLCJJbnRlcnByZXRhdGlvbkJveE9wdGlvbnMiLCJJbnRlcnByZXRhdGlvbkZ1bmN0aW9uIiwiSW50ZXJwcmV0ZXIiLCJJbnRlcnByZXRUZW1wbGF0ZSIsIkludGVycXVhcnRpbGVSYW5nZSIsIkludGVycnVwdCIsIkludGVycnVwdFNldHRpbmdzIiwiSW50ZXJzZWN0ZWRFbnRpdHlDbGFzcyIsIkludGVyc2VjdGluZ1EiLCJJbnRlcnNlY3Rpb24iLCJJbnRlcnZhbCIsIkludGVydmFsSW50ZXJzZWN0aW9uIiwiSW50ZXJ2YWxNYXJrZXJzIiwiSW50ZXJ2YWxNYXJrZXJzU3R5bGUiLCJJbnRlcnZhbE1lbWJlclEiLCJJbnRlcnZhbFNsaWRlciIsIkludGVydmFsVW5pb24iLCJJbnRvIiwiSW52ZXJzZSIsIkludmVyc2VCZXRhUmVndWxhcml6ZWQiLCJJbnZlcnNlQ0RGIiwiSW52ZXJzZUNoaVNxdWFyZURpc3RyaWJ1dGlvbiIsIkludmVyc2VDb250aW51b3VzV2F2ZWxldFRyYW5zZm9ybSIsIkludmVyc2VEaXN0YW5jZVRyYW5zZm9ybSIsIkludmVyc2VFbGxpcHRpY05vbWVRIiwiSW52ZXJzZUVyZiIsIkludmVyc2VFcmZjIiwiSW52ZXJzZUZvdXJpZXIiLCJJbnZlcnNlRm91cmllckNvc1RyYW5zZm9ybSIsIkludmVyc2VGb3VyaWVyU2VxdWVuY2VUcmFuc2Zvcm0iLCJJbnZlcnNlRm91cmllclNpblRyYW5zZm9ybSIsIkludmVyc2VGb3VyaWVyVHJhbnNmb3JtIiwiSW52ZXJzZUZ1bmN0aW9uIiwiSW52ZXJzZUZ1bmN0aW9ucyIsIkludmVyc2VHYW1tYURpc3RyaWJ1dGlvbiIsIkludmVyc2VHYW1tYVJlZ3VsYXJpemVkIiwiSW52ZXJzZUdhdXNzaWFuRGlzdHJpYnV0aW9uIiwiSW52ZXJzZUd1ZGVybWFubmlhbiIsIkludmVyc2VIYW5rZWxUcmFuc2Zvcm0iLCJJbnZlcnNlSGF2ZXJzaW5lIiwiSW52ZXJzZUltYWdlUHlyYW1pZCIsIkludmVyc2VKYWNvYmlDRCIsIkludmVyc2VKYWNvYmlDTiIsIkludmVyc2VKYWNvYmlDUyIsIkludmVyc2VKYWNvYmlEQyIsIkludmVyc2VKYWNvYmlETiIsIkludmVyc2VKYWNvYmlEUyIsIkludmVyc2VKYWNvYmlOQyIsIkludmVyc2VKYWNvYmlORCIsIkludmVyc2VKYWNvYmlOUyIsIkludmVyc2VKYWNvYmlTQyIsIkludmVyc2VKYWNvYmlTRCIsIkludmVyc2VKYWNvYmlTTiIsIkludmVyc2VMYXBsYWNlVHJhbnNmb3JtIiwiSW52ZXJzZU1lbGxpblRyYW5zZm9ybSIsIkludmVyc2VQZXJtdXRhdGlvbiIsIkludmVyc2VSYWRvbiIsIkludmVyc2VSYWRvblRyYW5zZm9ybSIsIkludmVyc2VTZXJpZXMiLCJJbnZlcnNlU2hvcnRUaW1lRm91cmllciIsIkludmVyc2VTcGVjdHJvZ3JhbSIsIkludmVyc2VTdXJ2aXZhbEZ1bmN0aW9uIiwiSW52ZXJzZVRyYW5zZm9ybWVkUmVnaW9uIiwiSW52ZXJzZVdhdmVsZXRUcmFuc2Zvcm0iLCJJbnZlcnNlV2VpZXJzdHJhc3NQIiwiSW52ZXJzZVdpc2hhcnRNYXRyaXhEaXN0cmlidXRpb24iLCJJbnZlcnNlWlRyYW5zZm9ybSIsIkludmlzaWJsZSIsIkludmlzaWJsZUFwcGxpY2F0aW9uIiwiSW52aXNpYmxlVGltZXMiLCJJUEFkZHJlc3MiLCJJcnJlZHVjaWJsZVBvbHlub21pYWxRIiwiSXNsYW5kRGF0YSIsIklzb2xhdGluZ0ludGVydmFsIiwiSXNvbW9ycGhpY0dyYXBoUSIsIklzb3RvcGVEYXRhIiwiSXRhbGljIiwiSXRlbSIsIkl0ZW1Bc3BlY3RSYXRpbyIsIkl0ZW1Cb3giLCJJdGVtQm94T3B0aW9ucyIsIkl0ZW1EaXNwbGF5RnVuY3Rpb24iLCJJdGVtU2l6ZSIsIkl0ZW1TdHlsZSIsIkl0b1Byb2Nlc3MiLCJKYWNjYXJkRGlzc2ltaWxhcml0eSIsIkphY29iaUFtcGxpdHVkZSIsIkphY29iaWFuIiwiSmFjb2JpQ0QiLCJKYWNvYmlDTiIsIkphY29iaUNTIiwiSmFjb2JpREMiLCJKYWNvYmlETiIsIkphY29iaURTIiwiSmFjb2JpTkMiLCJKYWNvYmlORCIsIkphY29iaU5TIiwiSmFjb2JpUCIsIkphY29iaVNDIiwiSmFjb2JpU0QiLCJKYWNvYmlTTiIsIkphY29iaVN5bWJvbCIsIkphY29iaVpldGEiLCJKYW5rb0dyb3VwSjEiLCJKYW5rb0dyb3VwSjIiLCJKYW5rb0dyb3VwSjMiLCJKYW5rb0dyb3VwSjQiLCJKYXJxdWVCZXJhQUxNVGVzdCIsIkpvaG5zb25EaXN0cmlidXRpb24iLCJKb2luIiwiSm9pbkFjcm9zcyIsIkpvaW5lZCIsIkpvaW5lZEN1cnZlIiwiSm9pbmVkQ3VydmVCb3giLCJKb2luZWRDdXJ2ZUJveE9wdGlvbnMiLCJKb2luRm9ybSIsIkpvcmRhbkRlY29tcG9zaXRpb24iLCJKb3JkYW5Nb2RlbERlY29tcG9zaXRpb24iLCJKdWxpYW5EYXRlIiwiSnVsaWFTZXRCb2V0dGNoZXIiLCJKdWxpYVNldEl0ZXJhdGlvbkNvdW50IiwiSnVsaWFTZXRQbG90IiwiSnVsaWFTZXRQb2ludHMiLCJLIiwiS2FnaUNoYXJ0IiwiS2Fpc2VyQmVzc2VsV2luZG93IiwiS2Fpc2VyV2luZG93IiwiS2FsbWFuRXN0aW1hdG9yIiwiS2FsbWFuRmlsdGVyIiwiS2FyaHVuZW5Mb2V2ZURlY29tcG9zaXRpb24iLCJLYXJ5VHJlZSIsIkthdHpDZW50cmFsaXR5IiwiS0NvcmVDb21wb25lbnRzIiwiS0Rpc3RyaWJ1dGlvbiIsIktFZGdlQ29ubmVjdGVkQ29tcG9uZW50cyIsIktFZGdlQ29ubmVjdGVkR3JhcGhRIiwiS2VlcEV4aXN0aW5nVmVyc2lvbiIsIktlbHZpbkJlaSIsIktlbHZpbkJlciIsIktlbHZpbktlaSIsIktlbHZpbktlciIsIktlbmRhbGxUYXUiLCJLZW5kYWxsVGF1VGVzdCIsIktlcm5lbEV4ZWN1dGUiLCJLZXJuZWxGdW5jdGlvbiIsIktlcm5lbE1peHR1cmVEaXN0cmlidXRpb24iLCJLZXJuZWxPYmplY3QiLCJLZXJuZWxzIiwiS2V0IiwiS2V5IiwiS2V5Q29sbGlzaW9uRnVuY3Rpb24iLCJLZXlDb21wbGVtZW50IiwiS2V5RHJvcCIsIktleURyb3BGcm9tIiwiS2V5RXhpc3RzUSIsIktleUZyZWVRIiwiS2V5SW50ZXJzZWN0aW9uIiwiS2V5TWFwIiwiS2V5TWVtYmVyUSIsIktleXBvaW50U3RyZW5ndGgiLCJLZXlzIiwiS2V5U2VsZWN0IiwiS2V5U29ydCIsIktleVNvcnRCeSIsIktleVRha2UiLCJLZXlVbmlvbiIsIktleVZhbHVlTWFwIiwiS2V5VmFsdWVQYXR0ZXJuIiwiS2hpbmNoaW4iLCJLaWxsUHJvY2VzcyIsIktpcmNoaG9mZkdyYXBoIiwiS2lyY2hob2ZmTWF0cml4IiwiS2xlaW5JbnZhcmlhbnRKIiwiS25hcHNhY2tTb2x2ZSIsIktuaWdodFRvdXJHcmFwaCIsIktub3REYXRhIiwiS25vd25Vbml0USIsIktvY2hDdXJ2ZSIsIktvbG1vZ29yb3ZTbWlybm92VGVzdCIsIktyb25lY2tlckRlbHRhIiwiS3JvbmVja2VyTW9kZWxEZWNvbXBvc2l0aW9uIiwiS3JvbmVja2VyUHJvZHVjdCIsIktyb25lY2tlclN5bWJvbCIsIkt1aXBlclRlc3QiLCJLdW1hcmFzd2FteURpc3RyaWJ1dGlvbiIsIkt1cnRvc2lzIiwiS3V3YWhhcmFGaWx0ZXIiLCJLVmVydGV4Q29ubmVjdGVkQ29tcG9uZW50cyIsIktWZXJ0ZXhDb25uZWN0ZWRHcmFwaFEiLCJMQUJDb2xvciIsIkxhYmVsIiwiTGFiZWxlZCIsIkxhYmVsZWRTbGlkZXIiLCJMYWJlbGluZ0Z1bmN0aW9uIiwiTGFiZWxpbmdTaXplIiwiTGFiZWxTdHlsZSIsIkxhYmVsVmlzaWJpbGl0eSIsIkxhZ3VlcnJlTCIsIkxha2VEYXRhIiwiTGFtYmRhQ29tcG9uZW50cyIsIkxhbWJlcnRXIiwiTGFtaW5hRGF0YSIsIkxhbmN6b3NXaW5kb3ciLCJMYW5kYXVEaXN0cmlidXRpb24iLCJMYW5ndWFnZSIsIkxhbmd1YWdlQ2F0ZWdvcnkiLCJMYW5ndWFnZURhdGEiLCJMYW5ndWFnZUlkZW50aWZ5IiwiTGFuZ3VhZ2VPcHRpb25zIiwiTGFwbGFjZURpc3RyaWJ1dGlvbiIsIkxhcGxhY2VUcmFuc2Zvcm0iLCJMYXBsYWNpYW4iLCJMYXBsYWNpYW5GaWx0ZXIiLCJMYXBsYWNpYW5HYXVzc2lhbkZpbHRlciIsIkxhcmdlIiwiTGFyZ2VyIiwiTGFzdCIsIkxhdGl0dWRlIiwiTGF0aXR1ZGVMb25naXR1ZGUiLCJMYXR0aWNlRGF0YSIsIkxhdHRpY2VSZWR1Y2UiLCJMYXVuY2giLCJMYXVuY2hLZXJuZWxzIiwiTGF5ZXJlZEdyYXBoUGxvdCIsIkxheWVyU2l6ZUZ1bmN0aW9uIiwiTGF5b3V0SW5mb3JtYXRpb24iLCJMQ0hDb2xvciIsIkxDTSIsIkxlYWRlclNpemUiLCJMZWFmQ291bnQiLCJMZWFwWWVhclEiLCJMZWFybkRpc3RyaWJ1dGlvbiIsIkxlYXJuZWREaXN0cmlidXRpb24iLCJMZWFybmluZ1JhdGUiLCJMZWFybmluZ1JhdGVNdWx0aXBsaWVycyIsIkxlYXN0U3F1YXJlcyIsIkxlYXN0U3F1YXJlc0ZpbHRlcktlcm5lbCIsIkxlZnQiLCJMZWZ0QXJyb3ciLCJMZWZ0QXJyb3dCYXIiLCJMZWZ0QXJyb3dSaWdodEFycm93IiwiTGVmdERvd25UZWVWZWN0b3IiLCJMZWZ0RG93blZlY3RvciIsIkxlZnREb3duVmVjdG9yQmFyIiwiTGVmdFJpZ2h0QXJyb3ciLCJMZWZ0UmlnaHRWZWN0b3IiLCJMZWZ0VGVlIiwiTGVmdFRlZUFycm93IiwiTGVmdFRlZVZlY3RvciIsIkxlZnRUcmlhbmdsZSIsIkxlZnRUcmlhbmdsZUJhciIsIkxlZnRUcmlhbmdsZUVxdWFsIiwiTGVmdFVwRG93blZlY3RvciIsIkxlZnRVcFRlZVZlY3RvciIsIkxlZnRVcFZlY3RvciIsIkxlZnRVcFZlY3RvckJhciIsIkxlZnRWZWN0b3IiLCJMZWZ0VmVjdG9yQmFyIiwiTGVnZW5kQXBwZWFyYW5jZSIsIkxlZ2VuZGVkIiwiTGVnZW5kRnVuY3Rpb24iLCJMZWdlbmRMYWJlbCIsIkxlZ2VuZExheW91dCIsIkxlZ2VuZE1hcmdpbnMiLCJMZWdlbmRNYXJrZXJzIiwiTGVnZW5kTWFya2VyU2l6ZSIsIkxlZ2VuZHJlUCIsIkxlZ2VuZHJlUSIsIkxlZ2VuZHJlVHlwZSIsIkxlbmd0aCIsIkxlbmd0aFdoaWxlIiwiTGVyY2hQaGkiLCJMZXNzIiwiTGVzc0VxdWFsIiwiTGVzc0VxdWFsR3JlYXRlciIsIkxlc3NFcXVhbFRoYW4iLCJMZXNzRnVsbEVxdWFsIiwiTGVzc0dyZWF0ZXIiLCJMZXNzTGVzcyIsIkxlc3NTbGFudEVxdWFsIiwiTGVzc1RoYW4iLCJMZXNzVGlsZGUiLCJMZXR0ZXJDaGFyYWN0ZXIiLCJMZXR0ZXJDb3VudHMiLCJMZXR0ZXJOdW1iZXIiLCJMZXR0ZXJRIiwiTGV2ZWwiLCJMZXZlbmVUZXN0IiwiTGV2aUNpdml0YVRlbnNvciIsIkxldnlEaXN0cmlidXRpb24iLCJMZXhpY29ncmFwaGljIiwiTGlicmFyeURhdGFUeXBlIiwiTGlicmFyeUZ1bmN0aW9uIiwiTGlicmFyeUZ1bmN0aW9uRXJyb3IiLCJMaWJyYXJ5RnVuY3Rpb25JbmZvcm1hdGlvbiIsIkxpYnJhcnlGdW5jdGlvbkxvYWQiLCJMaWJyYXJ5RnVuY3Rpb25VbmxvYWQiLCJMaWJyYXJ5TG9hZCIsIkxpYnJhcnlVbmxvYWQiLCJMaWNlbnNlSUQiLCJMaWZ0aW5nRmlsdGVyRGF0YSIsIkxpZnRpbmdXYXZlbGV0VHJhbnNmb3JtIiwiTGlnaHRCbHVlIiwiTGlnaHRCcm93biIsIkxpZ2h0Q3lhbiIsIkxpZ2h0ZXIiLCJMaWdodEdyYXkiLCJMaWdodEdyZWVuIiwiTGlnaHRpbmciLCJMaWdodGluZ0FuZ2xlIiwiTGlnaHRNYWdlbnRhIiwiTGlnaHRPcmFuZ2UiLCJMaWdodFBpbmsiLCJMaWdodFB1cnBsZSIsIkxpZ2h0UmVkIiwiTGlnaHRTb3VyY2VzIiwiTGlnaHRZZWxsb3ciLCJMaWtlbGlob29kIiwiTGltaXQiLCJMaW1pdHNQb3NpdGlvbmluZyIsIkxpbWl0c1Bvc2l0aW9uaW5nVG9rZW5zIiwiTGluZGxleURpc3RyaWJ1dGlvbiIsIkxpbmUiLCJMaW5lM0RCb3giLCJMaW5lM0RCb3hPcHRpb25zIiwiTGluZWFyRmlsdGVyIiwiTGluZWFyRnJhY3Rpb25hbE9wdGltaXphdGlvbiIsIkxpbmVhckZyYWN0aW9uYWxUcmFuc2Zvcm0iLCJMaW5lYXJHcmFkaWVudEltYWdlIiwiTGluZWFyaXppbmdUcmFuc2Zvcm1hdGlvbkRhdGEiLCJMaW5lYXJMYXllciIsIkxpbmVhck1vZGVsRml0IiwiTGluZWFyT2Zmc2V0RnVuY3Rpb24iLCJMaW5lYXJPcHRpbWl6YXRpb24iLCJMaW5lYXJQcm9ncmFtbWluZyIsIkxpbmVhclJlY3VycmVuY2UiLCJMaW5lYXJTb2x2ZSIsIkxpbmVhclNvbHZlRnVuY3Rpb24iLCJMaW5lQm94IiwiTGluZUJveE9wdGlvbnMiLCJMaW5lQnJlYWsiLCJMaW5lYnJlYWtBZGp1c3RtZW50cyIsIkxpbmVCcmVha0NoYXJ0IiwiTGluZWJyZWFrU2VtaWNvbG9uV2VpZ2h0aW5nIiwiTGluZUJyZWFrV2l0aGluIiwiTGluZUNvbG9yIiwiTGluZUdyYXBoIiwiTGluZUluZGVudCIsIkxpbmVJbmRlbnRNYXhGcmFjdGlvbiIsIkxpbmVJbnRlZ3JhbENvbnZvbHV0aW9uUGxvdCIsIkxpbmVJbnRlZ3JhbENvbnZvbHV0aW9uU2NhbGUiLCJMaW5lTGVnZW5kIiwiTGluZU9wYWNpdHkiLCJMaW5lU3BhY2luZyIsIkxpbmVXcmFwUGFydHMiLCJMaW5rQWN0aXZhdGUiLCJMaW5rQ2xvc2UiLCJMaW5rQ29ubmVjdCIsIkxpbmtDb25uZWN0ZWRRIiwiTGlua0NyZWF0ZSIsIkxpbmtFcnJvciIsIkxpbmtGbHVzaCIsIkxpbmtGdW5jdGlvbiIsIkxpbmtIb3N0IiwiTGlua0ludGVycnVwdCIsIkxpbmtMYXVuY2giLCJMaW5rTW9kZSIsIkxpbmtPYmplY3QiLCJMaW5rT3BlbiIsIkxpbmtPcHRpb25zIiwiTGlua1BhdHRlcm5zIiwiTGlua1Byb3RvY29sIiwiTGlua1JhbmtDZW50cmFsaXR5IiwiTGlua1JlYWQiLCJMaW5rUmVhZEhlbGQiLCJMaW5rUmVhZHlRIiwiTGlua3MiLCJMaW5rU2VydmljZSIsIkxpbmtXcml0ZSIsIkxpbmtXcml0ZUhlbGQiLCJMaW91dmlsbGVMYW1iZGEiLCJMaXN0IiwiTGlzdGFibGUiLCJMaXN0QW5pbWF0ZSIsIkxpc3RDb250b3VyUGxvdCIsIkxpc3RDb250b3VyUGxvdDNEIiwiTGlzdENvbnZvbHZlIiwiTGlzdENvcnJlbGF0ZSIsIkxpc3RDdXJ2ZVBhdGhQbG90IiwiTGlzdERlY29udm9sdmUiLCJMaXN0RGVuc2l0eVBsb3QiLCJMaXN0RGVuc2l0eVBsb3QzRCIsIkxpc3RlbiIsIkxpc3RGb3JtYXQiLCJMaXN0Rm91cmllclNlcXVlbmNlVHJhbnNmb3JtIiwiTGlzdEludGVycG9sYXRpb24iLCJMaXN0TGluZUludGVncmFsQ29udm9sdXRpb25QbG90IiwiTGlzdExpbmVQbG90IiwiTGlzdExvZ0xpbmVhclBsb3QiLCJMaXN0TG9nTG9nUGxvdCIsIkxpc3RMb2dQbG90IiwiTGlzdFBpY2tlciIsIkxpc3RQaWNrZXJCb3giLCJMaXN0UGlja2VyQm94QmFja2dyb3VuZCIsIkxpc3RQaWNrZXJCb3hPcHRpb25zIiwiTGlzdFBsYXkiLCJMaXN0UGxvdCIsIkxpc3RQbG90M0QiLCJMaXN0UG9pbnRQbG90M0QiLCJMaXN0UG9sYXJQbG90IiwiTGlzdFEiLCJMaXN0U2xpY2VDb250b3VyUGxvdDNEIiwiTGlzdFNsaWNlRGVuc2l0eVBsb3QzRCIsIkxpc3RTbGljZVZlY3RvclBsb3QzRCIsIkxpc3RTdGVwUGxvdCIsIkxpc3RTdHJlYW1EZW5zaXR5UGxvdCIsIkxpc3RTdHJlYW1QbG90IiwiTGlzdFN1cmZhY2VQbG90M0QiLCJMaXN0VmVjdG9yRGVuc2l0eVBsb3QiLCJMaXN0VmVjdG9yUGxvdCIsIkxpc3RWZWN0b3JQbG90M0QiLCJMaXN0WlRyYW5zZm9ybSIsIkxpdGVyYWwiLCJMaXRlcmFsU2VhcmNoIiwiTG9jYWxBZGFwdGl2ZUJpbmFyaXplIiwiTG9jYWxDYWNoZSIsIkxvY2FsQ2x1c3RlcmluZ0NvZWZmaWNpZW50IiwiTG9jYWxpemVEZWZpbml0aW9ucyIsIkxvY2FsaXplVmFyaWFibGVzIiwiTG9jYWxPYmplY3QiLCJMb2NhbE9iamVjdHMiLCJMb2NhbFJlc3BvbnNlTm9ybWFsaXphdGlvbkxheWVyIiwiTG9jYWxTdWJtaXQiLCJMb2NhbFN5bWJvbCIsIkxvY2FsVGltZSIsIkxvY2FsVGltZVpvbmUiLCJMb2NhdGlvbkVxdWl2YWxlbmNlVGVzdCIsIkxvY2F0aW9uVGVzdCIsIkxvY2F0b3IiLCJMb2NhdG9yQXV0b0NyZWF0ZSIsIkxvY2F0b3JCb3giLCJMb2NhdG9yQm94T3B0aW9ucyIsIkxvY2F0b3JDZW50ZXJpbmciLCJMb2NhdG9yUGFuZSIsIkxvY2F0b3JQYW5lQm94IiwiTG9jYXRvclBhbmVCb3hPcHRpb25zIiwiTG9jYXRvclJlZ2lvbiIsIkxvY2tlZCIsIkxvZyIsIkxvZzEwIiwiTG9nMiIsIkxvZ0Jhcm5lc0ciLCJMb2dHYW1tYSIsIkxvZ0dhbW1hRGlzdHJpYnV0aW9uIiwiTG9naWNhbEV4cGFuZCIsIkxvZ0ludGVncmFsIiwiTG9naXN0aWNEaXN0cmlidXRpb24iLCJMb2dpc3RpY1NpZ21vaWQiLCJMb2dpdE1vZGVsRml0IiwiTG9nTGlrZWxpaG9vZCIsIkxvZ0xpbmVhclBsb3QiLCJMb2dMb2dpc3RpY0Rpc3RyaWJ1dGlvbiIsIkxvZ0xvZ1Bsb3QiLCJMb2dNdWx0aW5vcm1hbERpc3RyaWJ1dGlvbiIsIkxvZ05vcm1hbERpc3RyaWJ1dGlvbiIsIkxvZ1Bsb3QiLCJMb2dSYW5rVGVzdCIsIkxvZ1Nlcmllc0Rpc3RyaWJ1dGlvbiIsIkxvbmdFcXVhbCIsIkxvbmdlc3QiLCJMb25nZXN0Q29tbW9uU2VxdWVuY2UiLCJMb25nZXN0Q29tbW9uU2VxdWVuY2VQb3NpdGlvbnMiLCJMb25nZXN0Q29tbW9uU3Vic2VxdWVuY2UiLCJMb25nZXN0Q29tbW9uU3Vic2VxdWVuY2VQb3NpdGlvbnMiLCJMb25nZXN0TWF0Y2giLCJMb25nZXN0T3JkZXJlZFNlcXVlbmNlIiwiTG9uZ0Zvcm0iLCJMb25naXR1ZGUiLCJMb25nTGVmdEFycm93IiwiTG9uZ0xlZnRSaWdodEFycm93IiwiTG9uZ1JpZ2h0QXJyb3ciLCJMb25nU2hvcnRUZXJtTWVtb3J5TGF5ZXIiLCJMb29rdXAiLCJMb29wYmFjayIsIkxvb3BGcmVlR3JhcGhRIiwiTG9vcGluZyIsIkxvc3NGdW5jdGlvbiIsIkxvd2VyQ2FzZVEiLCJMb3dlckxlZnRBcnJvdyIsIkxvd2VyUmlnaHRBcnJvdyIsIkxvd2VyVHJpYW5ndWxhcml6ZSIsIkxvd2VyVHJpYW5ndWxhck1hdHJpeFEiLCJMb3dwYXNzRmlsdGVyIiwiTFFFc3RpbWF0b3JHYWlucyIsIkxRR1JlZ3VsYXRvciIsIkxRT3V0cHV0UmVndWxhdG9yR2FpbnMiLCJMUVJlZ3VsYXRvckdhaW5zIiwiTFVCYWNrU3Vic3RpdHV0aW9uIiwiTHVjYXNMIiwiTHVjY2lvU2FtaUNvbXBvbmVudHMiLCJMVURlY29tcG9zaXRpb24iLCJMdW5hckVjbGlwc2UiLCJMVVZDb2xvciIsIkx5YXB1bm92U29sdmUiLCJMeW9uc0dyb3VwTHkiLCJNYWNoaW5lSUQiLCJNYWNoaW5lTmFtZSIsIk1hY2hpbmVOdW1iZXJRIiwiTWFjaGluZVByZWNpc2lvbiIsIk1hY2ludG9zaFN5c3RlbVBhZ2VTZXR1cCIsIk1hZ2VudGEiLCJNYWduaWZpY2F0aW9uIiwiTWFnbmlmeSIsIk1haWxBZGRyZXNzVmFsaWRhdGlvbiIsIk1haWxFeGVjdXRlIiwiTWFpbEZvbGRlciIsIk1haWxJdGVtIiwiTWFpbFJlY2VpdmVyRnVuY3Rpb24iLCJNYWlsUmVzcG9uc2VGdW5jdGlvbiIsIk1haWxTZWFyY2giLCJNYWlsU2VydmVyQ29ubmVjdCIsIk1haWxTZXJ2ZXJDb25uZWN0aW9uIiwiTWFpbFNldHRpbmdzIiwiTWFpblNvbHZlIiwiTWFpbnRhaW5EeW5hbWljQ2FjaGVzIiwiTWFqb3JpdHkiLCJNYWtlQm94ZXMiLCJNYWtlRXhwcmVzc2lvbiIsIk1ha2VSdWxlcyIsIk1hbmFnZWRMaWJyYXJ5RXhwcmVzc2lvbklEIiwiTWFuYWdlZExpYnJhcnlFeHByZXNzaW9uUSIsIk1hbmRlbGJyb3RTZXRCb2V0dGNoZXIiLCJNYW5kZWxicm90U2V0RGlzdGFuY2UiLCJNYW5kZWxicm90U2V0SXRlcmF0aW9uQ291bnQiLCJNYW5kZWxicm90U2V0TWVtYmVyUSIsIk1hbmRlbGJyb3RTZXRQbG90IiwiTWFuZ29sZHRMYW1iZGEiLCJNYW5oYXR0YW5EaXN0YW5jZSIsIk1hbmlwdWxhdGUiLCJNYW5pcHVsYXRvciIsIk1hbm5lZFNwYWNlTWlzc2lvbkRhdGEiLCJNYW5uV2hpdG5leVRlc3QiLCJNYW50aXNzYUV4cG9uZW50IiwiTWFudWFsIiwiTWFwIiwiTWFwQWxsIiwiTWFwQXQiLCJNYXBJbmRleGVkIiwiTUFQcm9jZXNzIiwiTWFwVGhyZWFkIiwiTWFyY2hlbmtvUGFzdHVyRGlzdHJpYnV0aW9uIiwiTWFyY3VtUSIsIk1hcmRpYUNvbWJpbmVkVGVzdCIsIk1hcmRpYUt1cnRvc2lzVGVzdCIsIk1hcmRpYVNrZXduZXNzVGVzdCIsIk1hcmdpbmFsRGlzdHJpYnV0aW9uIiwiTWFya292UHJvY2Vzc1Byb3BlcnRpZXMiLCJNYXNraW5nIiwiTWF0Y2hpbmdEaXNzaW1pbGFyaXR5IiwiTWF0Y2hMb2NhbE5hbWVRIiwiTWF0Y2hMb2NhbE5hbWVzIiwiTWF0Y2hRIiwiTWF0ZXJpYWwiLCJNYXRoZW1hdGljYWxGdW5jdGlvbkRhdGEiLCJNYXRoZW1hdGljYU5vdGF0aW9uIiwiTWF0aGlldUMiLCJNYXRoaWV1Q2hhcmFjdGVyaXN0aWNBIiwiTWF0aGlldUNoYXJhY3RlcmlzdGljQiIsIk1hdGhpZXVDaGFyYWN0ZXJpc3RpY0V4cG9uZW50IiwiTWF0aGlldUNQcmltZSIsIk1hdGhpZXVHcm91cE0xMSIsIk1hdGhpZXVHcm91cE0xMiIsIk1hdGhpZXVHcm91cE0yMiIsIk1hdGhpZXVHcm91cE0yMyIsIk1hdGhpZXVHcm91cE0yNCIsIk1hdGhpZXVTIiwiTWF0aGlldVNQcmltZSIsIk1hdGhNTEZvcm0iLCJNYXRoTUxUZXh0IiwiTWF0cmljZXMiLCJNYXRyaXhFeHAiLCJNYXRyaXhGb3JtIiwiTWF0cml4RnVuY3Rpb24iLCJNYXRyaXhMb2ciLCJNYXRyaXhOb3JtYWxEaXN0cmlidXRpb24iLCJNYXRyaXhQbG90IiwiTWF0cml4UG93ZXIiLCJNYXRyaXhQcm9wZXJ0eURpc3RyaWJ1dGlvbiIsIk1hdHJpeFEiLCJNYXRyaXhSYW5rIiwiTWF0cml4VERpc3RyaWJ1dGlvbiIsIk1heCIsIk1heEJlbmQiLCJNYXhDZWxsTWVhc3VyZSIsIk1heENvbG9yRGlzdGFuY2UiLCJNYXhEYXRlIiwiTWF4RGV0ZWN0IiwiTWF4RHVyYXRpb24iLCJNYXhFeHRyYUJhbmR3aWR0aHMiLCJNYXhFeHRyYUNvbmRpdGlvbnMiLCJNYXhGZWF0dXJlRGlzcGxhY2VtZW50IiwiTWF4RmVhdHVyZXMiLCJNYXhGaWx0ZXIiLCJNYXhpbWFsQnkiLCJNYXhpbWl6ZSIsIk1heEl0ZW1zIiwiTWF4SXRlcmF0aW9ucyIsIk1heExpbWl0IiwiTWF4TWVtb3J5VXNlZCIsIk1heE1peHR1cmVLZXJuZWxzIiwiTWF4T3ZlcmxhcEZyYWN0aW9uIiwiTWF4UGxvdFBvaW50cyIsIk1heFBvaW50cyIsIk1heFJlY3Vyc2lvbiIsIk1heFN0YWJsZURpc3RyaWJ1dGlvbiIsIk1heFN0ZXBGcmFjdGlvbiIsIk1heFN0ZXBzIiwiTWF4U3RlcFNpemUiLCJNYXhUcmFpbmluZ1JvdW5kcyIsIk1heFZhbHVlIiwiTWF4d2VsbERpc3RyaWJ1dGlvbiIsIk1heFdvcmRHYXAiLCJNY0xhdWdobGluR3JvdXBNY0wiLCJNZWFuIiwiTWVhbkFic29sdXRlTG9zc0xheWVyIiwiTWVhbkFyb3VuZCIsIk1lYW5DbHVzdGVyaW5nQ29lZmZpY2llbnQiLCJNZWFuRGVncmVlQ29ubmVjdGl2aXR5IiwiTWVhbkRldmlhdGlvbiIsIk1lYW5GaWx0ZXIiLCJNZWFuR3JhcGhEaXN0YW5jZSIsIk1lYW5OZWlnaGJvckRlZ3JlZSIsIk1lYW5TaGlmdCIsIk1lYW5TaGlmdEZpbHRlciIsIk1lYW5TcXVhcmVkTG9zc0xheWVyIiwiTWVkaWFuIiwiTWVkaWFuRGV2aWF0aW9uIiwiTWVkaWFuRmlsdGVyIiwiTWVkaWNhbFRlc3REYXRhIiwiTWVkaXVtIiwiTWVpamVyRyIsIk1laWplckdSZWR1Y2UiLCJNZWl4bmVyRGlzdHJpYnV0aW9uIiwiTWVsbGluQ29udm9sdmUiLCJNZWxsaW5UcmFuc2Zvcm0iLCJNZW1iZXJRIiwiTWVtb3J5QXZhaWxhYmxlIiwiTWVtb3J5Q29uc3RyYWluZWQiLCJNZW1vcnlDb25zdHJhaW50IiwiTWVtb3J5SW5Vc2UiLCJNZW5nZXJNZXNoIiwiTWVudSIsIk1lbnVBcHBlYXJhbmNlIiwiTWVudUNvbW1hbmRLZXkiLCJNZW51RXZhbHVhdG9yIiwiTWVudUl0ZW0iLCJNZW51TGlzdCIsIk1lbnVQYWNrZXQiLCJNZW51U29ydGluZ1ZhbHVlIiwiTWVudVN0eWxlIiwiTWVudVZpZXciLCJNZXJnZSIsIk1lcmdlRGlmZmVyZW5jZXMiLCJNZXJnaW5nRnVuY3Rpb24iLCJNZXJzZW5uZVByaW1lRXhwb25lbnQiLCJNZXJzZW5uZVByaW1lRXhwb25lbnRRIiwiTWVzaCIsIk1lc2hDZWxsQ2VudHJvaWQiLCJNZXNoQ2VsbENvdW50IiwiTWVzaENlbGxIaWdobGlnaHQiLCJNZXNoQ2VsbEluZGV4IiwiTWVzaENlbGxMYWJlbCIsIk1lc2hDZWxsTWFya2VyIiwiTWVzaENlbGxNZWFzdXJlIiwiTWVzaENlbGxRdWFsaXR5IiwiTWVzaENlbGxzIiwiTWVzaENlbGxTaGFwZUZ1bmN0aW9uIiwiTWVzaENlbGxTdHlsZSIsIk1lc2hDb25uZWN0aXZpdHlHcmFwaCIsIk1lc2hDb29yZGluYXRlcyIsIk1lc2hGdW5jdGlvbnMiLCJNZXNoUHJpbWl0aXZlcyIsIk1lc2hRdWFsaXR5R29hbCIsIk1lc2hSYW5nZSIsIk1lc2hSZWZpbmVtZW50RnVuY3Rpb24iLCJNZXNoUmVnaW9uIiwiTWVzaFJlZ2lvblEiLCJNZXNoU2hhZGluZyIsIk1lc2hTdHlsZSIsIk1lc3NhZ2UiLCJNZXNzYWdlRGlhbG9nIiwiTWVzc2FnZUxpc3QiLCJNZXNzYWdlTmFtZSIsIk1lc3NhZ2VPYmplY3QiLCJNZXNzYWdlT3B0aW9ucyIsIk1lc3NhZ2VQYWNrZXQiLCJNZXNzYWdlcyIsIk1lc3NhZ2VzTm90ZWJvb2siLCJNZXRhQ2hhcmFjdGVycyIsIk1ldGFJbmZvcm1hdGlvbiIsIk1ldGVvclNob3dlckRhdGEiLCJNZXRob2QiLCJNZXRob2RPcHRpb25zIiwiTWV4aWNhbkhhdFdhdmVsZXQiLCJNZXllcldhdmVsZXQiLCJNaWRwb2ludCIsIk1pbiIsIk1pbkNvbG9yRGlzdGFuY2UiLCJNaW5EYXRlIiwiTWluRGV0ZWN0IiwiTWluZXJhbERhdGEiLCJNaW5GaWx0ZXIiLCJNaW5pbWFsQnkiLCJNaW5pbWFsUG9seW5vbWlhbCIsIk1pbmltYWxTdGF0ZVNwYWNlTW9kZWwiLCJNaW5pbWl6ZSIsIk1pbmltdW1UaW1lSW5jcmVtZW50IiwiTWluSW50ZXJ2YWxTaXplIiwiTWlua293c2tpUXVlc3Rpb25NYXJrIiwiTWluTGltaXQiLCJNaW5NYXgiLCJNaW5vclBsYW5ldERhdGEiLCJNaW5vcnMiLCJNaW5SZWN1cnNpb24iLCJNaW5TaXplIiwiTWluU3RhYmxlRGlzdHJpYnV0aW9uIiwiTWludXMiLCJNaW51c1BsdXMiLCJNaW5WYWx1ZSIsIk1pc3NpbmciLCJNaXNzaW5nQmVoYXZpb3IiLCJNaXNzaW5nRGF0YU1ldGhvZCIsIk1pc3NpbmdEYXRhUnVsZXMiLCJNaXNzaW5nUSIsIk1pc3NpbmdTdHJpbmciLCJNaXNzaW5nU3R5bGUiLCJNaXNzaW5nVmFsdWVQYXR0ZXJuIiwiTWl0dGFnTGVmZmxlckUiLCJNaXhlZEZyYWN0aW9uUGFydHMiLCJNaXhlZEdyYXBoUSIsIk1peGVkTWFnbml0dWRlIiwiTWl4ZWRSYWRpeCIsIk1peGVkUmFkaXhRdWFudGl0eSIsIk1peGVkVW5pdCIsIk1peHR1cmVEaXN0cmlidXRpb24iLCJNb2QiLCJNb2RhbCIsIk1vZGUiLCJNb2R1bGFyIiwiTW9kdWxhckludmVyc2UiLCJNb2R1bGFyTGFtYmRhIiwiTW9kdWxlIiwiTW9kdWx1cyIsIk1vZWJpdXNNdSIsIk1vbGVjdWxlIiwiTW9sZWN1bGVDb250YWluc1EiLCJNb2xlY3VsZUVxdWl2YWxlbnRRIiwiTW9sZWN1bGVHcmFwaCIsIk1vbGVjdWxlTW9kaWZ5IiwiTW9sZWN1bGVQYXR0ZXJuIiwiTW9sZWN1bGVQbG90IiwiTW9sZWN1bGVQbG90M0QiLCJNb2xlY3VsZVByb3BlcnR5IiwiTW9sZWN1bGVRIiwiTW9sZWN1bGVSZWNvZ25pemUiLCJNb2xlY3VsZVZhbHVlIiwiTW9tZW50IiwiTW9tZW50YXJ5IiwiTW9tZW50Q29udmVydCIsIk1vbWVudEV2YWx1YXRlIiwiTW9tZW50R2VuZXJhdGluZ0Z1bmN0aW9uIiwiTW9tZW50T2ZJbmVydGlhIiwiTW9uZGF5IiwiTW9uaXRvciIsIk1vbm9taWFsTGlzdCIsIk1vbm9taWFsT3JkZXIiLCJNb25zdGVyR3JvdXBNIiwiTW9vblBoYXNlIiwiTW9vblBvc2l0aW9uIiwiTW9ybGV0V2F2ZWxldCIsIk1vcnBob2xvZ2ljYWxCaW5hcml6ZSIsIk1vcnBob2xvZ2ljYWxCcmFuY2hQb2ludHMiLCJNb3JwaG9sb2dpY2FsQ29tcG9uZW50cyIsIk1vcnBob2xvZ2ljYWxFdWxlck51bWJlciIsIk1vcnBob2xvZ2ljYWxHcmFwaCIsIk1vcnBob2xvZ2ljYWxQZXJpbWV0ZXIiLCJNb3JwaG9sb2dpY2FsVHJhbnNmb3JtIiwiTW9ydGFsaXR5RGF0YSIsIk1vc3QiLCJNb3VudGFpbkRhdGEiLCJNb3VzZUFubm90YXRpb24iLCJNb3VzZUFwcGVhcmFuY2UiLCJNb3VzZUFwcGVhcmFuY2VUYWciLCJNb3VzZUJ1dHRvbnMiLCJNb3VzZW92ZXIiLCJNb3VzZVBvaW50ZXJOb3RlIiwiTW91c2VQb3NpdGlvbiIsIk1vdmllRGF0YSIsIk1vdmluZ0F2ZXJhZ2UiLCJNb3ZpbmdNYXAiLCJNb3ZpbmdNZWRpYW4iLCJNb3lhbERpc3RyaWJ1dGlvbiIsIk11bHRpY29sdW1uIiwiTXVsdGllZGdlU3R5bGUiLCJNdWx0aWdyYXBoUSIsIk11bHRpbGF1bmNoV2FybmluZyIsIk11bHRpTGV0dGVySXRhbGljcyIsIk11bHRpTGV0dGVyU3R5bGUiLCJNdWx0aWxpbmVGdW5jdGlvbiIsIk11bHRpbm9taWFsIiwiTXVsdGlub21pYWxEaXN0cmlidXRpb24iLCJNdWx0aW5vcm1hbERpc3RyaWJ1dGlvbiIsIk11bHRpcGxpY2F0aXZlT3JkZXIiLCJNdWx0aXBsaWNpdHkiLCJNdWx0aXBseVNpZGVzIiwiTXVsdGlzZWxlY3Rpb24iLCJNdWx0aXZhcmlhdGVIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvbiIsIk11bHRpdmFyaWF0ZVBvaXNzb25EaXN0cmlidXRpb24iLCJNdWx0aXZhcmlhdGVURGlzdHJpYnV0aW9uIiwiTiIsIk5ha2FnYW1pRGlzdHJpYnV0aW9uIiwiTmFtZVEiLCJOYW1lcyIsIk5hbWVzcGFjZUJveCIsIk5hbWVzcGFjZUJveE9wdGlvbnMiLCJOYW5kIiwiTkFyZ01heCIsIk5BcmdNaW4iLCJOQmVybm91bGxpQiIsIk5Cb2R5U2ltdWxhdGlvbiIsIk5Cb2R5U2ltdWxhdGlvbkRhdGEiLCJOQ2FjaGUiLCJOREVpZ2Vuc3lzdGVtIiwiTkRFaWdlbnZhbHVlcyIsIk5EU29sdmUiLCJORFNvbHZlVmFsdWUiLCJOZWFyZXN0IiwiTmVhcmVzdEZ1bmN0aW9uIiwiTmVhcmVzdE1lc2hDZWxscyIsIk5lYXJlc3ROZWlnaGJvckdyYXBoIiwiTmVhcmVzdFRvIiwiTmVidWxhRGF0YSIsIk5lZWRDdXJyZW50RnJvbnRFbmRQYWNrYWdlUGFja2V0IiwiTmVlZEN1cnJlbnRGcm9udEVuZFN5bWJvbHNQYWNrZXQiLCJOZWVkbGVtYW5XdW5zY2hTaW1pbGFyaXR5IiwiTmVlZHMiLCJOZWdhdGl2ZSIsIk5lZ2F0aXZlQmlub21pYWxEaXN0cmlidXRpb24iLCJOZWdhdGl2ZURlZmluaXRlTWF0cml4USIsIk5lZ2F0aXZlSW50ZWdlcnMiLCJOZWdhdGl2ZU11bHRpbm9taWFsRGlzdHJpYnV0aW9uIiwiTmVnYXRpdmVSYXRpb25hbHMiLCJOZWdhdGl2ZVJlYWxzIiwiTmVnYXRpdmVTZW1pZGVmaW5pdGVNYXRyaXhRIiwiTmVpZ2hib3Job29kRGF0YSIsIk5laWdoYm9yaG9vZEdyYXBoIiwiTmVzdCIsIk5lc3RlZEdyZWF0ZXJHcmVhdGVyIiwiTmVzdGVkTGVzc0xlc3MiLCJOZXN0ZWRTY3JpcHRSdWxlcyIsIk5lc3RHcmFwaCIsIk5lc3RMaXN0IiwiTmVzdFdoaWxlIiwiTmVzdFdoaWxlTGlzdCIsIk5ldEFwcGVuZCIsIk5ldEJpZGlyZWN0aW9uYWxPcGVyYXRvciIsIk5ldENoYWluIiwiTmV0RGVjb2RlciIsIk5ldERlbGV0ZSIsIk5ldERyb3AiLCJOZXRFbmNvZGVyIiwiTmV0RXZhbHVhdGlvbk1vZGUiLCJOZXRFeHRyYWN0IiwiTmV0RmxhdHRlbiIsIk5ldEZvbGRPcGVyYXRvciIsIk5ldEdBTk9wZXJhdG9yIiwiTmV0R3JhcGgiLCJOZXRJbmZvcm1hdGlvbiIsIk5ldEluaXRpYWxpemUiLCJOZXRJbnNlcnQiLCJOZXRJbnNlcnRTaGFyZWRBcnJheXMiLCJOZXRKb2luIiwiTmV0TWFwT3BlcmF0b3IiLCJOZXRNYXBUaHJlYWRPcGVyYXRvciIsIk5ldE1lYXN1cmVtZW50cyIsIk5ldE1vZGVsIiwiTmV0TmVzdE9wZXJhdG9yIiwiTmV0UGFpckVtYmVkZGluZ09wZXJhdG9yIiwiTmV0UG9ydCIsIk5ldFBvcnRHcmFkaWVudCIsIk5ldFByZXBlbmQiLCJOZXRSZW5hbWUiLCJOZXRSZXBsYWNlIiwiTmV0UmVwbGFjZVBhcnQiLCJOZXRTaGFyZWRBcnJheSIsIk5ldFN0YXRlT2JqZWN0IiwiTmV0VGFrZSIsIk5ldFRyYWluIiwiTmV0VHJhaW5SZXN1bHRzT2JqZWN0IiwiTmV0d29ya1BhY2tldENhcHR1cmUiLCJOZXR3b3JrUGFja2V0UmVjb3JkaW5nIiwiTmV0d29ya1BhY2tldFJlY29yZGluZ0R1cmluZyIsIk5ldHdvcmtQYWNrZXRUcmFjZSIsIk5ldW1hbm5WYWx1ZSIsIk5ldmlsbGVUaGV0YUMiLCJOZXZpbGxlVGhldGFEIiwiTmV2aWxsZVRoZXRhTiIsIk5ldmlsbGVUaGV0YVMiLCJOZXdQcmltaXRpdmVTdHlsZSIsIk5FeHBlY3RhdGlvbiIsIk5leHQiLCJOZXh0Q2VsbCIsIk5leHREYXRlIiwiTmV4dFByaW1lIiwiTmV4dFNjaGVkdWxlZFRhc2tUaW1lIiwiTkhvbGRBbGwiLCJOSG9sZEZpcnN0IiwiTkhvbGRSZXN0IiwiTmljaG9sc0dyaWRMaW5lcyIsIk5pY2hvbHNQbG90IiwiTmlnaHRIZW1pc3BoZXJlIiwiTkludGVncmF0ZSIsIk5NYXhpbWl6ZSIsIk5NYXhWYWx1ZSIsIk5NaW5pbWl6ZSIsIk5NaW5WYWx1ZSIsIk5vbWluYWxWYXJpYWJsZXMiLCJOb25Bc3NvY2lhdGl2ZSIsIk5vbmNlbnRyYWxCZXRhRGlzdHJpYnV0aW9uIiwiTm9uY2VudHJhbENoaVNxdWFyZURpc3RyaWJ1dGlvbiIsIk5vbmNlbnRyYWxGUmF0aW9EaXN0cmlidXRpb24iLCJOb25jZW50cmFsU3R1ZGVudFREaXN0cmlidXRpb24iLCJOb25Db21tdXRhdGl2ZU11bHRpcGx5IiwiTm9uQ29uc3RhbnRzIiwiTm9uZGltZW5zaW9uYWxpemF0aW9uVHJhbnNmb3JtIiwiTm9uZSIsIk5vbmVUcnVlIiwiTm9ubGluZWFyTW9kZWxGaXQiLCJOb25saW5lYXJTdGF0ZVNwYWNlTW9kZWwiLCJOb25sb2NhbE1lYW5zRmlsdGVyIiwiTm9uTmVnYXRpdmUiLCJOb25OZWdhdGl2ZUludGVnZXJzIiwiTm9uTmVnYXRpdmVSYXRpb25hbHMiLCJOb25OZWdhdGl2ZVJlYWxzIiwiTm9uUG9zaXRpdmUiLCJOb25Qb3NpdGl2ZUludGVnZXJzIiwiTm9uUG9zaXRpdmVSYXRpb25hbHMiLCJOb25Qb3NpdGl2ZVJlYWxzIiwiTm9yIiwiTm9ybHVuZEIiLCJOb3JtIiwiTm9ybWFsIiwiTm9ybWFsRGlzdHJpYnV0aW9uIiwiTm9ybWFsR3JvdXBpbmciLCJOb3JtYWxpemF0aW9uTGF5ZXIiLCJOb3JtYWxpemUiLCJOb3JtYWxpemVkIiwiTm9ybWFsaXplZFNxdWFyZWRFdWNsaWRlYW5EaXN0YW5jZSIsIk5vcm1hbE1hdHJpeFEiLCJOb3JtYWxzRnVuY3Rpb24iLCJOb3JtRnVuY3Rpb24iLCJOb3QiLCJOb3RDb25ncnVlbnQiLCJOb3RDdXBDYXAiLCJOb3REb3VibGVWZXJ0aWNhbEJhciIsIk5vdGVib29rIiwiTm90ZWJvb2tBcHBseSIsIk5vdGVib29rQXV0b1NhdmUiLCJOb3RlYm9va0Nsb3NlIiwiTm90ZWJvb2tDb252ZXJ0U2V0dGluZ3MiLCJOb3RlYm9va0NyZWF0ZSIsIk5vdGVib29rQ3JlYXRlUmV0dXJuT2JqZWN0IiwiTm90ZWJvb2tEZWZhdWx0IiwiTm90ZWJvb2tEZWxldGUiLCJOb3RlYm9va0RpcmVjdG9yeSIsIk5vdGVib29rRHluYW1pY0V4cHJlc3Npb24iLCJOb3RlYm9va0V2YWx1YXRlIiwiTm90ZWJvb2tFdmVudEFjdGlvbnMiLCJOb3RlYm9va0ZpbGVOYW1lIiwiTm90ZWJvb2tGaW5kIiwiTm90ZWJvb2tGaW5kUmV0dXJuT2JqZWN0IiwiTm90ZWJvb2tHZXQiLCJOb3RlYm9va0dldExheW91dEluZm9ybWF0aW9uUGFja2V0IiwiTm90ZWJvb2tHZXRNaXNzcGVsbGluZ3NQYWNrZXQiLCJOb3RlYm9va0ltcG9ydCIsIk5vdGVib29rSW5mb3JtYXRpb24iLCJOb3RlYm9va0ludGVyZmFjZU9iamVjdCIsIk5vdGVib29rTG9jYXRlIiwiTm90ZWJvb2tPYmplY3QiLCJOb3RlYm9va09wZW4iLCJOb3RlYm9va09wZW5SZXR1cm5PYmplY3QiLCJOb3RlYm9va1BhdGgiLCJOb3RlYm9va1ByaW50IiwiTm90ZWJvb2tQdXQiLCJOb3RlYm9va1B1dFJldHVybk9iamVjdCIsIk5vdGVib29rUmVhZCIsIk5vdGVib29rUmVzZXRHZW5lcmF0ZWRDZWxscyIsIk5vdGVib29rcyIsIk5vdGVib29rU2F2ZSIsIk5vdGVib29rU2F2ZUFzIiwiTm90ZWJvb2tTZWxlY3Rpb24iLCJOb3RlYm9va1NldHVwTGF5b3V0SW5mb3JtYXRpb25QYWNrZXQiLCJOb3RlYm9va3NNZW51IiwiTm90ZWJvb2tUZW1wbGF0ZSIsIk5vdGVib29rV3JpdGUiLCJOb3RFbGVtZW50IiwiTm90RXF1YWxUaWxkZSIsIk5vdEV4aXN0cyIsIk5vdEdyZWF0ZXIiLCJOb3RHcmVhdGVyRXF1YWwiLCJOb3RHcmVhdGVyRnVsbEVxdWFsIiwiTm90R3JlYXRlckdyZWF0ZXIiLCJOb3RHcmVhdGVyTGVzcyIsIk5vdEdyZWF0ZXJTbGFudEVxdWFsIiwiTm90R3JlYXRlclRpbGRlIiwiTm90aGluZyIsIk5vdEh1bXBEb3duSHVtcCIsIk5vdEh1bXBFcXVhbCIsIk5vdGlmaWNhdGlvbkZ1bmN0aW9uIiwiTm90TGVmdFRyaWFuZ2xlIiwiTm90TGVmdFRyaWFuZ2xlQmFyIiwiTm90TGVmdFRyaWFuZ2xlRXF1YWwiLCJOb3RMZXNzIiwiTm90TGVzc0VxdWFsIiwiTm90TGVzc0Z1bGxFcXVhbCIsIk5vdExlc3NHcmVhdGVyIiwiTm90TGVzc0xlc3MiLCJOb3RMZXNzU2xhbnRFcXVhbCIsIk5vdExlc3NUaWxkZSIsIk5vdE5lc3RlZEdyZWF0ZXJHcmVhdGVyIiwiTm90TmVzdGVkTGVzc0xlc3MiLCJOb3RQcmVjZWRlcyIsIk5vdFByZWNlZGVzRXF1YWwiLCJOb3RQcmVjZWRlc1NsYW50RXF1YWwiLCJOb3RQcmVjZWRlc1RpbGRlIiwiTm90UmV2ZXJzZUVsZW1lbnQiLCJOb3RSaWdodFRyaWFuZ2xlIiwiTm90UmlnaHRUcmlhbmdsZUJhciIsIk5vdFJpZ2h0VHJpYW5nbGVFcXVhbCIsIk5vdFNxdWFyZVN1YnNldCIsIk5vdFNxdWFyZVN1YnNldEVxdWFsIiwiTm90U3F1YXJlU3VwZXJzZXQiLCJOb3RTcXVhcmVTdXBlcnNldEVxdWFsIiwiTm90U3Vic2V0IiwiTm90U3Vic2V0RXF1YWwiLCJOb3RTdWNjZWVkcyIsIk5vdFN1Y2NlZWRzRXF1YWwiLCJOb3RTdWNjZWVkc1NsYW50RXF1YWwiLCJOb3RTdWNjZWVkc1RpbGRlIiwiTm90U3VwZXJzZXQiLCJOb3RTdXBlcnNldEVxdWFsIiwiTm90VGlsZGUiLCJOb3RUaWxkZUVxdWFsIiwiTm90VGlsZGVGdWxsRXF1YWwiLCJOb3RUaWxkZVRpbGRlIiwiTm90VmVydGljYWxCYXIiLCJOb3ciLCJOb1doaXRlc3BhY2UiLCJOUHJvYmFiaWxpdHkiLCJOUHJvZHVjdCIsIk5Qcm9kdWN0RmFjdG9ycyIsIk5Sb290cyIsIk5Tb2x2ZSIsIk5TdW0iLCJOU3VtVGVybXMiLCJOdWNsZWFyRXhwbG9zaW9uRGF0YSIsIk51Y2xlYXJSZWFjdG9yRGF0YSIsIk51bGwiLCJOdWxsUmVjb3JkcyIsIk51bGxTcGFjZSIsIk51bGxXb3JkcyIsIk51bWJlciIsIk51bWJlckNvbXBvc2UiLCJOdW1iZXJEZWNvbXBvc2UiLCJOdW1iZXJFeHBhbmQiLCJOdW1iZXJGaWVsZENsYXNzTnVtYmVyIiwiTnVtYmVyRmllbGREaXNjcmltaW5hbnQiLCJOdW1iZXJGaWVsZEZ1bmRhbWVudGFsVW5pdHMiLCJOdW1iZXJGaWVsZEludGVncmFsQmFzaXMiLCJOdW1iZXJGaWVsZE5vcm1SZXByZXNlbnRhdGl2ZXMiLCJOdW1iZXJGaWVsZFJlZ3VsYXRvciIsIk51bWJlckZpZWxkUm9vdHNPZlVuaXR5IiwiTnVtYmVyRmllbGRTaWduYXR1cmUiLCJOdW1iZXJGb3JtIiwiTnVtYmVyRm9ybWF0IiwiTnVtYmVyTGluZVBsb3QiLCJOdW1iZXJNYXJrcyIsIk51bWJlck11bHRpcGxpZXIiLCJOdW1iZXJQYWRkaW5nIiwiTnVtYmVyUG9pbnQiLCJOdW1iZXJRIiwiTnVtYmVyU2VwYXJhdG9yIiwiTnVtYmVyU2lnbnMiLCJOdW1iZXJTdHJpbmciLCJOdW1lcmF0b3IiLCJOdW1lcmF0b3JEZW5vbWluYXRvciIsIk51bWVyaWNhbE9yZGVyIiwiTnVtZXJpY2FsU29ydCIsIk51bWVyaWNBcnJheSIsIk51bWVyaWNBcnJheVEiLCJOdW1lcmljQXJyYXlUeXBlIiwiTnVtZXJpY0Z1bmN0aW9uIiwiTnVtZXJpY1EiLCJOdXR0YWxsV2luZG93IiwiTlZhbHVlcyIsIk55cXVpc3RHcmlkTGluZXMiLCJOeXF1aXN0UGxvdCIsIk8iLCJPYnNlcnZhYmlsaXR5R3JhbWlhbiIsIk9ic2VydmFiaWxpdHlNYXRyaXgiLCJPYnNlcnZhYmxlRGVjb21wb3NpdGlvbiIsIk9ic2VydmFibGVNb2RlbFEiLCJPY2VhbkRhdGEiLCJPY3RhaGVkcm9uIiwiT2RkUSIsIk9mZiIsIk9mZnNldCIsIk9MRURhdGEiLCJPbiIsIk9OYW5Hcm91cE9OIiwiT25jZSIsIk9uZUlkZW50aXR5IiwiT3BhY2l0eSIsIk9wYWNpdHlGdW5jdGlvbiIsIk9wYWNpdHlGdW5jdGlvblNjYWxpbmciLCJPcGVuIiwiT3BlbkFwcGVuZCIsIk9wZW5lciIsIk9wZW5lckJveCIsIk9wZW5lckJveE9wdGlvbnMiLCJPcGVuZXJWaWV3IiwiT3BlbkZ1bmN0aW9uSW5zcGVjdG9yUGFja2V0IiwiT3BlbmluZyIsIk9wZW5SZWFkIiwiT3BlblNwZWNpYWxPcHRpb25zIiwiT3BlblRlbXBvcmFyeSIsIk9wZW5Xcml0ZSIsIk9wZXJhdGUiLCJPcGVyYXRpbmdTeXN0ZW0iLCJPcGVyYXRvckFwcGxpZWQiLCJPcHRpbXVtRmxvd0RhdGEiLCJPcHRpb25hbCIsIk9wdGlvbmFsRWxlbWVudCIsIk9wdGlvbkluc3BlY3RvclNldHRpbmdzIiwiT3B0aW9uUSIsIk9wdGlvbnMiLCJPcHRpb25zUGFja2V0IiwiT3B0aW9uc1BhdHRlcm4iLCJPcHRpb25WYWx1ZSIsIk9wdGlvblZhbHVlQm94IiwiT3B0aW9uVmFsdWVCb3hPcHRpb25zIiwiT3IiLCJPcmFuZ2UiLCJPcmRlciIsIk9yZGVyRGlzdHJpYnV0aW9uIiwiT3JkZXJlZFEiLCJPcmRlcmluZyIsIk9yZGVyaW5nQnkiLCJPcmRlcmluZ0xheWVyIiwiT3JkZXJsZXNzIiwiT3JkZXJsZXNzUGF0dGVyblNlcXVlbmNlIiwiT3Juc3RlaW5VaGxlbmJlY2tQcm9jZXNzIiwiT3J0aG9nb25hbGl6ZSIsIk9ydGhvZ29uYWxNYXRyaXhRIiwiT3V0IiwiT3V0ZXIiLCJPdXRlclBvbHlnb24iLCJPdXRlclBvbHloZWRyb24iLCJPdXRwdXRBdXRvT3ZlcndyaXRlIiwiT3V0cHV0Q29udHJvbGxhYmlsaXR5TWF0cml4IiwiT3V0cHV0Q29udHJvbGxhYmxlTW9kZWxRIiwiT3V0cHV0Rm9ybSIsIk91dHB1dEZvcm1EYXRhIiwiT3V0cHV0R3JvdXBpbmciLCJPdXRwdXRNYXRoRWRpdEV4cHJlc3Npb24iLCJPdXRwdXROYW1lUGFja2V0IiwiT3V0cHV0UmVzcG9uc2UiLCJPdXRwdXRTaXplTGltaXQiLCJPdXRwdXRTdHJlYW0iLCJPdmVyIiwiT3ZlckJhciIsIk92ZXJEb3QiLCJPdmVyZmxvdyIsIk92ZXJIYXQiLCJPdmVybGFwcyIsIk92ZXJsYXkiLCJPdmVybGF5Qm94IiwiT3ZlcmxheUJveE9wdGlvbnMiLCJPdmVyc2NyaXB0IiwiT3ZlcnNjcmlwdEJveCIsIk92ZXJzY3JpcHRCb3hPcHRpb25zIiwiT3ZlclRpbGRlIiwiT3ZlclZlY3RvciIsIk92ZXJ3cml0ZVRhcmdldCIsIk93ZW5UIiwiT3duVmFsdWVzIiwiUGFja2FnZSIsIlBhY2tpbmdNZXRob2QiLCJQYWNrUGFjbGV0IiwiUGFjbGV0RGF0YVJlYnVpbGQiLCJQYWNsZXREaXJlY3RvcnlBZGQiLCJQYWNsZXREaXJlY3RvcnlMb2FkIiwiUGFjbGV0RGlyZWN0b3J5UmVtb3ZlIiwiUGFjbGV0RGlyZWN0b3J5VW5sb2FkIiwiUGFjbGV0RGlzYWJsZSIsIlBhY2xldEVuYWJsZSIsIlBhY2xldEZpbmQiLCJQYWNsZXRGaW5kUmVtb3RlIiwiUGFjbGV0SW5mb3JtYXRpb24iLCJQYWNsZXRJbnN0YWxsIiwiUGFjbGV0SW5zdGFsbFN1Ym1pdCIsIlBhY2xldE5ld2VyUSIsIlBhY2xldE9iamVjdCIsIlBhY2xldE9iamVjdFEiLCJQYWNsZXRTaXRlIiwiUGFjbGV0U2l0ZU9iamVjdCIsIlBhY2xldFNpdGVSZWdpc3RlciIsIlBhY2xldFNpdGVzIiwiUGFjbGV0U2l0ZVVucmVnaXN0ZXIiLCJQYWNsZXRTaXRlVXBkYXRlIiwiUGFjbGV0VW5pbnN0YWxsIiwiUGFjbGV0VXBkYXRlIiwiUGFkZGVkRm9ybSIsIlBhZGRpbmciLCJQYWRkaW5nTGF5ZXIiLCJQYWRkaW5nU2l6ZSIsIlBhZGVBcHByb3hpbWFudCIsIlBhZExlZnQiLCJQYWRSaWdodCIsIlBhZ2VCcmVha0Fib3ZlIiwiUGFnZUJyZWFrQmVsb3ciLCJQYWdlQnJlYWtXaXRoaW4iLCJQYWdlRm9vdGVyTGluZXMiLCJQYWdlRm9vdGVycyIsIlBhZ2VIZWFkZXJMaW5lcyIsIlBhZ2VIZWFkZXJzIiwiUGFnZUhlaWdodCIsIlBhZ2VSYW5rQ2VudHJhbGl0eSIsIlBhZ2VUaGVtZSIsIlBhZ2VXaWR0aCIsIlBhZ2luYXRpb24iLCJQYWlyZWRCYXJDaGFydCIsIlBhaXJlZEhpc3RvZ3JhbSIsIlBhaXJlZFNtb290aEhpc3RvZ3JhbSIsIlBhaXJlZFRUZXN0IiwiUGFpcmVkWlRlc3QiLCJQYWxldHRlTm90ZWJvb2siLCJQYWxldHRlUGF0aCIsIlBhbGluZHJvbWVRIiwiUGFuZSIsIlBhbmVCb3giLCJQYW5lQm94T3B0aW9ucyIsIlBhbmVsIiwiUGFuZWxCb3giLCJQYW5lbEJveE9wdGlvbnMiLCJQYW5lbGVkIiwiUGFuZVNlbGVjdG9yIiwiUGFuZVNlbGVjdG9yQm94IiwiUGFuZVNlbGVjdG9yQm94T3B0aW9ucyIsIlBhcGVyV2lkdGgiLCJQYXJhYm9saWNDeWxpbmRlckQiLCJQYXJhZ3JhcGhJbmRlbnQiLCJQYXJhZ3JhcGhTcGFjaW5nIiwiUGFyYWxsZWxBcnJheSIsIlBhcmFsbGVsQ29tYmluZSIsIlBhcmFsbGVsRG8iLCJQYXJhbGxlbGVwaXBlZCIsIlBhcmFsbGVsRXZhbHVhdGUiLCJQYXJhbGxlbGl6YXRpb24iLCJQYXJhbGxlbGl6ZSIsIlBhcmFsbGVsTWFwIiwiUGFyYWxsZWxOZWVkcyIsIlBhcmFsbGVsb2dyYW0iLCJQYXJhbGxlbFByb2R1Y3QiLCJQYXJhbGxlbFN1Ym1pdCIsIlBhcmFsbGVsU3VtIiwiUGFyYWxsZWxUYWJsZSIsIlBhcmFsbGVsVHJ5IiwiUGFyYW1ldGVyIiwiUGFyYW1ldGVyRXN0aW1hdG9yIiwiUGFyYW1ldGVyTWl4dHVyZURpc3RyaWJ1dGlvbiIsIlBhcmFtZXRlclZhcmlhYmxlcyIsIlBhcmFtZXRyaWNGdW5jdGlvbiIsIlBhcmFtZXRyaWNORFNvbHZlIiwiUGFyYW1ldHJpY05EU29sdmVWYWx1ZSIsIlBhcmFtZXRyaWNQbG90IiwiUGFyYW1ldHJpY1Bsb3QzRCIsIlBhcmFtZXRyaWNSYW1wTGF5ZXIiLCJQYXJhbWV0cmljUmVnaW9uIiwiUGFyZW50Qm94IiwiUGFyZW50Q2VsbCIsIlBhcmVudENvbm5lY3QiLCJQYXJlbnREaXJlY3RvcnkiLCJQYXJlbnRGb3JtIiwiUGFyZW50aGVzaXplIiwiUGFyZW50TGlzdCIsIlBhcmVudE5vdGVib29rIiwiUGFyZXRvRGlzdHJpYnV0aW9uIiwiUGFyZXRvUGlja2FuZHNEaXN0cmlidXRpb24iLCJQYXJrRGF0YSIsIlBhcnQiLCJQYXJ0QmVoYXZpb3IiLCJQYXJ0aWFsQ29ycmVsYXRpb25GdW5jdGlvbiIsIlBhcnRpYWxEIiwiUGFydGljbGVBY2NlbGVyYXRvckRhdGEiLCJQYXJ0aWNsZURhdGEiLCJQYXJ0aXRpb24iLCJQYXJ0aXRpb25HcmFudWxhcml0eSIsIlBhcnRpdGlvbnNQIiwiUGFydGl0aW9uc1EiLCJQYXJ0TGF5ZXIiLCJQYXJ0T2ZTcGVlY2giLCJQYXJ0UHJvdGVjdGlvbiIsIlBhcnplbldpbmRvdyIsIlBhc2NhbERpc3RyaWJ1dGlvbiIsIlBhc3NFdmVudHNEb3duIiwiUGFzc0V2ZW50c1VwIiwiUGFzdGUiLCJQYXN0ZUF1dG9RdW90ZUNoYXJhY3RlcnMiLCJQYXN0ZUJveEZvcm1JbmxpbmVDZWxscyIsIlBhc3RlQnV0dG9uIiwiUGF0aCIsIlBhdGhHcmFwaCIsIlBhdGhHcmFwaFEiLCJQYXR0ZXJuIiwiUGF0dGVybkZpbGxpbmciLCJQYXR0ZXJuU2VxdWVuY2UiLCJQYXR0ZXJuVGVzdCIsIlBhdWxpTWF0cml4IiwiUGF1bFdhdmVsZXQiLCJQYXVzZSIsIlBhdXNlZFRpbWUiLCJQREYiLCJQZWFrRGV0ZWN0IiwiUGVhbm9DdXJ2ZSIsIlBlYXJzb25DaGlTcXVhcmVUZXN0IiwiUGVhcnNvbkNvcnJlbGF0aW9uVGVzdCIsIlBlYXJzb25EaXN0cmlidXRpb24iLCJQZXJjZW50Rm9ybSIsIlBlcmZlY3ROdW1iZXIiLCJQZXJmZWN0TnVtYmVyUSIsIlBlcmZvcm1hbmNlR29hbCIsIlBlcmltZXRlciIsIlBlcmlvZGljQm91bmRhcnlDb25kaXRpb24iLCJQZXJpb2RpY0ludGVycG9sYXRpb24iLCJQZXJpb2RvZ3JhbSIsIlBlcmlvZG9ncmFtQXJyYXkiLCJQZXJtYW5lbnQiLCJQZXJtaXNzaW9ucyIsIlBlcm1pc3Npb25zR3JvdXAiLCJQZXJtaXNzaW9uc0dyb3VwTWVtYmVyUSIsIlBlcm1pc3Npb25zR3JvdXBzIiwiUGVybWlzc2lvbnNLZXkiLCJQZXJtaXNzaW9uc0tleXMiLCJQZXJtdXRhdGlvbkN5Y2xlcyIsIlBlcm11dGF0aW9uQ3ljbGVzUSIsIlBlcm11dGF0aW9uR3JvdXAiLCJQZXJtdXRhdGlvbkxlbmd0aCIsIlBlcm11dGF0aW9uTGlzdCIsIlBlcm11dGF0aW9uTGlzdFEiLCJQZXJtdXRhdGlvbk1heCIsIlBlcm11dGF0aW9uTWluIiwiUGVybXV0YXRpb25PcmRlciIsIlBlcm11dGF0aW9uUG93ZXIiLCJQZXJtdXRhdGlvblByb2R1Y3QiLCJQZXJtdXRhdGlvblJlcGxhY2UiLCJQZXJtdXRhdGlvbnMiLCJQZXJtdXRhdGlvblN1cHBvcnQiLCJQZXJtdXRlIiwiUGVyb25hTWFsaWtGaWx0ZXIiLCJQZXJwZW5kaWN1bGFyIiwiUGVycGVuZGljdWxhckJpc2VjdG9yIiwiUGVyc2lzdGVuY2VMb2NhdGlvbiIsIlBlcnNpc3RlbmNlVGltZSIsIlBlcnNpc3RlbnRPYmplY3QiLCJQZXJzaXN0ZW50T2JqZWN0cyIsIlBlcnNpc3RlbnRWYWx1ZSIsIlBlcnNvbkRhdGEiLCJQRVJURGlzdHJpYnV0aW9uIiwiUGV0ZXJzZW5HcmFwaCIsIlBoYXNlTWFyZ2lucyIsIlBoYXNlUmFuZ2UiLCJQaHlzaWNhbFN5c3RlbURhdGEiLCJQaSIsIlBpY2siLCJQSUREYXRhIiwiUElERGVyaXZhdGl2ZUZpbHRlciIsIlBJREZlZWRmb3J3YXJkIiwiUElEVHVuZSIsIlBpZWNld2lzZSIsIlBpZWNld2lzZUV4cGFuZCIsIlBpZUNoYXJ0IiwiUGllQ2hhcnQzRCIsIlBpbGxhaVRyYWNlIiwiUGlsbGFpVHJhY2VUZXN0IiwiUGluZ1RpbWUiLCJQaW5rIiwiUGl0Y2hSZWNvZ25pemUiLCJQaXZvdGluZyIsIlBpeGVsQ29uc3RyYWluZWQiLCJQaXhlbFZhbHVlIiwiUGl4ZWxWYWx1ZVBvc2l0aW9ucyIsIlBsYWNlZCIsIlBsYWNlaG9sZGVyIiwiUGxhY2Vob2xkZXJSZXBsYWNlIiwiUGxhaW4iLCJQbGFuYXJBbmdsZSIsIlBsYW5hckdyYXBoIiwiUGxhbmFyR3JhcGhRIiwiUGxhbmNrUmFkaWF0aW9uTGF3IiwiUGxhbmVDdXJ2ZURhdGEiLCJQbGFuZXRhcnlNb29uRGF0YSIsIlBsYW5ldERhdGEiLCJQbGFudERhdGEiLCJQbGF5IiwiUGxheVJhbmdlIiwiUGxvdCIsIlBsb3QzRCIsIlBsb3QzTWF0cml4IiwiUGxvdERpdmlzaW9uIiwiUGxvdEpvaW5lZCIsIlBsb3RMYWJlbCIsIlBsb3RMYWJlbHMiLCJQbG90TGF5b3V0IiwiUGxvdExlZ2VuZHMiLCJQbG90TWFya2VycyIsIlBsb3RQb2ludHMiLCJQbG90UmFuZ2UiLCJQbG90UmFuZ2VDbGlwcGluZyIsIlBsb3RSYW5nZUNsaXBQbGFuZXNTdHlsZSIsIlBsb3RSYW5nZVBhZGRpbmciLCJQbG90UmVnaW9uIiwiUGxvdFN0eWxlIiwiUGxvdFRoZW1lIiwiUGx1cmFsaXplIiwiUGx1cyIsIlBsdXNNaW51cyIsIlBvY2hoYW1tZXIiLCJQb2RTdGF0ZXMiLCJQb2RXaWR0aCIsIlBvaW50IiwiUG9pbnQzREJveCIsIlBvaW50M0RCb3hPcHRpb25zIiwiUG9pbnRCb3giLCJQb2ludEJveE9wdGlvbnMiLCJQb2ludEZpZ3VyZUNoYXJ0IiwiUG9pbnRMZWdlbmQiLCJQb2ludFNpemUiLCJQb2lzc29uQ29uc3VsRGlzdHJpYnV0aW9uIiwiUG9pc3NvbkRpc3RyaWJ1dGlvbiIsIlBvaXNzb25Qcm9jZXNzIiwiUG9pc3NvbldpbmRvdyIsIlBvbGFyQXhlcyIsIlBvbGFyQXhlc09yaWdpbiIsIlBvbGFyR3JpZExpbmVzIiwiUG9sYXJQbG90IiwiUG9sYXJUaWNrcyIsIlBvbGVaZXJvTWFya2VycyIsIlBvbHlhQWVwcGxpRGlzdHJpYnV0aW9uIiwiUG9seUdhbW1hIiwiUG9seWdvbiIsIlBvbHlnb24zREJveCIsIlBvbHlnb24zREJveE9wdGlvbnMiLCJQb2x5Z29uYWxOdW1iZXIiLCJQb2x5Z29uQW5nbGUiLCJQb2x5Z29uQm94IiwiUG9seWdvbkJveE9wdGlvbnMiLCJQb2x5Z29uQ29vcmRpbmF0ZXMiLCJQb2x5Z29uRGVjb21wb3NpdGlvbiIsIlBvbHlnb25Ib2xlU2NhbGUiLCJQb2x5Z29uSW50ZXJzZWN0aW9ucyIsIlBvbHlnb25TY2FsZSIsIlBvbHloZWRyb24iLCJQb2x5aGVkcm9uQW5nbGUiLCJQb2x5aGVkcm9uQ29vcmRpbmF0ZXMiLCJQb2x5aGVkcm9uRGF0YSIsIlBvbHloZWRyb25EZWNvbXBvc2l0aW9uIiwiUG9seWhlZHJvbkdlbnVzIiwiUG9seUxvZyIsIlBvbHlub21pYWxFeHRlbmRlZEdDRCIsIlBvbHlub21pYWxGb3JtIiwiUG9seW5vbWlhbEdDRCIsIlBvbHlub21pYWxMQ00iLCJQb2x5bm9taWFsTW9kIiwiUG9seW5vbWlhbFEiLCJQb2x5bm9taWFsUXVvdGllbnQiLCJQb2x5bm9taWFsUXVvdGllbnRSZW1haW5kZXIiLCJQb2x5bm9taWFsUmVkdWNlIiwiUG9seW5vbWlhbFJlbWFpbmRlciIsIlBvbHlub21pYWxzIiwiUG9vbGluZ0xheWVyIiwiUG9wdXBNZW51IiwiUG9wdXBNZW51Qm94IiwiUG9wdXBNZW51Qm94T3B0aW9ucyIsIlBvcHVwVmlldyIsIlBvcHVwV2luZG93IiwiUG9zaXRpb24iLCJQb3NpdGlvbkluZGV4IiwiUG9zaXRpdmUiLCJQb3NpdGl2ZURlZmluaXRlTWF0cml4USIsIlBvc2l0aXZlSW50ZWdlcnMiLCJQb3NpdGl2ZVJhdGlvbmFscyIsIlBvc2l0aXZlUmVhbHMiLCJQb3NpdGl2ZVNlbWlkZWZpbml0ZU1hdHJpeFEiLCJQb3NzaWJsZVplcm9RIiwiUG9zdGZpeCIsIlBvc3RTY3JpcHQiLCJQb3dlciIsIlBvd2VyRGlzdHJpYnV0aW9uIiwiUG93ZXJFeHBhbmQiLCJQb3dlck1vZCIsIlBvd2VyTW9kTGlzdCIsIlBvd2VyUmFuZ2UiLCJQb3dlclNwZWN0cmFsRGVuc2l0eSIsIlBvd2Vyc1JlcHJlc2VudGF0aW9ucyIsIlBvd2VyU3ltbWV0cmljUG9seW5vbWlhbCIsIlByZWNlZGVuY2UiLCJQcmVjZWRlbmNlRm9ybSIsIlByZWNlZGVzIiwiUHJlY2VkZXNFcXVhbCIsIlByZWNlZGVzU2xhbnRFcXVhbCIsIlByZWNlZGVzVGlsZGUiLCJQcmVjaXNpb24iLCJQcmVjaXNpb25Hb2FsIiwiUHJlRGVjcmVtZW50IiwiUHJlZGljdCIsIlByZWRpY3Rpb25Sb290IiwiUHJlZGljdG9yRnVuY3Rpb24iLCJQcmVkaWN0b3JJbmZvcm1hdGlvbiIsIlByZWRpY3Rvck1lYXN1cmVtZW50cyIsIlByZWRpY3Rvck1lYXN1cmVtZW50c09iamVjdCIsIlByZWVtcHRQcm90ZWN0IiwiUHJlZmVyZW5jZXNQYXRoIiwiUHJlZml4IiwiUHJlSW5jcmVtZW50IiwiUHJlcGVuZCIsIlByZXBlbmRMYXllciIsIlByZXBlbmRUbyIsIlByZXByb2Nlc3NpbmdSdWxlcyIsIlByZXNlcnZlQ29sb3IiLCJQcmVzZXJ2ZUltYWdlT3B0aW9ucyIsIlByZXZpb3VzIiwiUHJldmlvdXNDZWxsIiwiUHJldmlvdXNEYXRlIiwiUHJpY2VHcmFwaERpc3RyaWJ1dGlvbiIsIlByaW1hcnlQbGFjZWhvbGRlciIsIlByaW1lIiwiUHJpbWVOdSIsIlByaW1lT21lZ2EiLCJQcmltZVBpIiwiUHJpbWVQb3dlclEiLCJQcmltZVEiLCJQcmltZXMiLCJQcmltZVpldGFQIiwiUHJpbWl0aXZlUG9seW5vbWlhbFEiLCJQcmltaXRpdmVSb290IiwiUHJpbWl0aXZlUm9vdExpc3QiLCJQcmluY2lwYWxDb21wb25lbnRzIiwiUHJpbmNpcGFsVmFsdWUiLCJQcmludCIsIlByaW50YWJsZUFTQ0lJUSIsIlByaW50QWN0aW9uIiwiUHJpbnRGb3JtIiwiUHJpbnRpbmdDb3BpZXMiLCJQcmludGluZ09wdGlvbnMiLCJQcmludGluZ1BhZ2VSYW5nZSIsIlByaW50aW5nU3RhcnRpbmdQYWdlTnVtYmVyIiwiUHJpbnRpbmdTdHlsZUVudmlyb25tZW50IiwiUHJpbnRvdXQzRCIsIlByaW50b3V0M0RQcmV2aWV3ZXIiLCJQcmludFByZWNpc2lvbiIsIlByaW50VGVtcG9yYXJ5IiwiUHJpc20iLCJQcmlzbUJveCIsIlByaXNtQm94T3B0aW9ucyIsIlByaXZhdGVDZWxsT3B0aW9ucyIsIlByaXZhdGVFdmFsdWF0aW9uT3B0aW9ucyIsIlByaXZhdGVGb250T3B0aW9ucyIsIlByaXZhdGVGcm9udEVuZE9wdGlvbnMiLCJQcml2YXRlS2V5IiwiUHJpdmF0ZU5vdGVib29rT3B0aW9ucyIsIlByaXZhdGVQYXRocyIsIlByb2JhYmlsaXR5IiwiUHJvYmFiaWxpdHlEaXN0cmlidXRpb24iLCJQcm9iYWJpbGl0eVBsb3QiLCJQcm9iYWJpbGl0eVByIiwiUHJvYmFiaWxpdHlTY2FsZVBsb3QiLCJQcm9iaXRNb2RlbEZpdCIsIlByb2Nlc3NDb25uZWN0aW9uIiwiUHJvY2Vzc0RpcmVjdG9yeSIsIlByb2Nlc3NFbnZpcm9ubWVudCIsIlByb2Nlc3NlcyIsIlByb2Nlc3NFc3RpbWF0b3IiLCJQcm9jZXNzSW5mb3JtYXRpb24iLCJQcm9jZXNzT2JqZWN0IiwiUHJvY2Vzc1BhcmFtZXRlckFzc3VtcHRpb25zIiwiUHJvY2Vzc1BhcmFtZXRlclEiLCJQcm9jZXNzU3RhdGVEb21haW4iLCJQcm9jZXNzU3RhdHVzIiwiUHJvY2Vzc1RpbWVEb21haW4iLCJQcm9kdWN0IiwiUHJvZHVjdERpc3RyaWJ1dGlvbiIsIlByb2R1Y3RMb2ciLCJQcm9ncmVzc0luZGljYXRvciIsIlByb2dyZXNzSW5kaWNhdG9yQm94IiwiUHJvZ3Jlc3NJbmRpY2F0b3JCb3hPcHRpb25zIiwiUHJvamVjdGlvbiIsIlByb2xvZyIsIlByb21wdEZvcm0iLCJQcm9vZk9iamVjdCIsIlByb3BlcnRpZXMiLCJQcm9wZXJ0eSIsIlByb3BlcnR5TGlzdCIsIlByb3BlcnR5VmFsdWUiLCJQcm9wb3J0aW9uIiwiUHJvcG9ydGlvbmFsIiwiUHJvdGVjdCIsIlByb3RlY3RlZCIsIlByb3RlaW5EYXRhIiwiUHJ1bmluZyIsIlBzZXVkb0ludmVyc2UiLCJQc3ljaHJvbWV0cmljUHJvcGVydHlEYXRhIiwiUHVibGljS2V5IiwiUHVibGlzaGVySUQiLCJQdWxzYXJEYXRhIiwiUHVuY3R1YXRpb25DaGFyYWN0ZXIiLCJQdXJwbGUiLCJQdXQiLCJQdXRBcHBlbmQiLCJQeXJhbWlkIiwiUHlyYW1pZEJveCIsIlB5cmFtaWRCb3hPcHRpb25zIiwiUUJpbm9taWFsIiwiUUZhY3RvcmlhbCIsIlFHYW1tYSIsIlFIeXBlcmdlb21ldHJpY1BGUSIsIlFuRGlzcGVyc2lvbiIsIlFQb2NoaGFtbWVyIiwiUVBvbHlHYW1tYSIsIlFSRGVjb21wb3NpdGlvbiIsIlF1YWRyYXRpY0lycmF0aW9uYWxRIiwiUXVhZHJhdGljT3B0aW1pemF0aW9uIiwiUXVhbnRpbGUiLCJRdWFudGlsZVBsb3QiLCJRdWFudGl0eSIsIlF1YW50aXR5QXJyYXkiLCJRdWFudGl0eURpc3RyaWJ1dGlvbiIsIlF1YW50aXR5Rm9ybSIsIlF1YW50aXR5TWFnbml0dWRlIiwiUXVhbnRpdHlRIiwiUXVhbnRpdHlVbml0IiwiUXVhbnRpdHlWYXJpYWJsZSIsIlF1YW50aXR5VmFyaWFibGVDYW5vbmljYWxVbml0IiwiUXVhbnRpdHlWYXJpYWJsZURpbWVuc2lvbnMiLCJRdWFudGl0eVZhcmlhYmxlSWRlbnRpZmllciIsIlF1YW50aXR5VmFyaWFibGVQaHlzaWNhbFF1YW50aXR5IiwiUXVhcnRpY3MiLCJRdWFydGlsZURldmlhdGlvbiIsIlF1YXJ0aWxlcyIsIlF1YXJ0aWxlU2tld25lc3MiLCJRdWVyeSIsIlF1ZXVlaW5nTmV0d29ya1Byb2Nlc3MiLCJRdWV1ZWluZ1Byb2Nlc3MiLCJRdWV1ZVByb3BlcnRpZXMiLCJRdWlldCIsIlF1aXQiLCJRdW90aWVudCIsIlF1b3RpZW50UmVtYWluZGVyIiwiUmFkaWFsR3JhZGllbnRJbWFnZSIsIlJhZGlhbGl0eUNlbnRyYWxpdHkiLCJSYWRpY2FsQm94IiwiUmFkaWNhbEJveE9wdGlvbnMiLCJSYWRpb0J1dHRvbiIsIlJhZGlvQnV0dG9uQmFyIiwiUmFkaW9CdXR0b25Cb3giLCJSYWRpb0J1dHRvbkJveE9wdGlvbnMiLCJSYWRvbiIsIlJhZG9uVHJhbnNmb3JtIiwiUmFtYW51amFuVGF1IiwiUmFtYW51amFuVGF1TCIsIlJhbWFudWphblRhdVRoZXRhIiwiUmFtYW51amFuVGF1WiIsIlJhbXAiLCJSYW5kb20iLCJSYW5kb21DaG9pY2UiLCJSYW5kb21Db2xvciIsIlJhbmRvbUNvbXBsZXgiLCJSYW5kb21FbnRpdHkiLCJSYW5kb21GdW5jdGlvbiIsIlJhbmRvbUdlb1Bvc2l0aW9uIiwiUmFuZG9tR3JhcGgiLCJSYW5kb21JbWFnZSIsIlJhbmRvbUluc3RhbmNlIiwiUmFuZG9tSW50ZWdlciIsIlJhbmRvbVBlcm11dGF0aW9uIiwiUmFuZG9tUG9pbnQiLCJSYW5kb21Qb2x5Z29uIiwiUmFuZG9tUG9seWhlZHJvbiIsIlJhbmRvbVByaW1lIiwiUmFuZG9tUmVhbCIsIlJhbmRvbVNhbXBsZSIsIlJhbmRvbVNlZWQiLCJSYW5kb21TZWVkaW5nIiwiUmFuZG9tVmFyaWF0ZSIsIlJhbmRvbVdhbGtQcm9jZXNzIiwiUmFuZG9tV29yZCIsIlJhbmdlIiwiUmFuZ2VGaWx0ZXIiLCJSYW5nZVNwZWNpZmljYXRpb24iLCJSYW5rZWRNYXgiLCJSYW5rZWRNaW4iLCJSYXJlclByb2JhYmlsaXR5IiwiUmFzdGVyIiwiUmFzdGVyM0QiLCJSYXN0ZXIzREJveCIsIlJhc3RlcjNEQm94T3B0aW9ucyIsIlJhc3RlckFycmF5IiwiUmFzdGVyQm94IiwiUmFzdGVyQm94T3B0aW9ucyIsIlJhc3Rlcml6ZSIsIlJhc3RlclNpemUiLCJSYXRpb25hbCIsIlJhdGlvbmFsRnVuY3Rpb25zIiwiUmF0aW9uYWxpemUiLCJSYXRpb25hbHMiLCJSYXRpb3MiLCJSYXdBcnJheSIsIlJhd0JveGVzIiwiUmF3RGF0YSIsIlJhd01lZGl1bSIsIlJheWxlaWdoRGlzdHJpYnV0aW9uIiwiUmUiLCJSZWFkIiwiUmVhZEJ5dGVBcnJheSIsIlJlYWRMaW5lIiwiUmVhZExpc3QiLCJSZWFkUHJvdGVjdGVkIiwiUmVhZFN0cmluZyIsIlJlYWwiLCJSZWFsQWJzIiwiUmVhbEJsb2NrRGlhZ29uYWxGb3JtIiwiUmVhbERpZ2l0cyIsIlJlYWxFeHBvbmVudCIsIlJlYWxzIiwiUmVhbFNpZ24iLCJSZWFwIiwiUmVidWlsZFBhY2xldERhdGEiLCJSZWNvZ25pdGlvblByaW9yIiwiUmVjb2duaXRpb25UaHJlc2hvbGQiLCJSZWNvcmQiLCJSZWNvcmRMaXN0cyIsIlJlY29yZFNlcGFyYXRvcnMiLCJSZWN0YW5nbGUiLCJSZWN0YW5nbGVCb3giLCJSZWN0YW5nbGVCb3hPcHRpb25zIiwiUmVjdGFuZ2xlQ2hhcnQiLCJSZWN0YW5nbGVDaGFydDNEIiwiUmVjdGFuZ3VsYXJSZXBlYXRpbmdFbGVtZW50IiwiUmVjdXJyZW5jZUZpbHRlciIsIlJlY3VycmVuY2VUYWJsZSIsIlJlY3VycmluZ0RpZ2l0c0Zvcm0iLCJSZWQiLCJSZWR1Y2UiLCJSZWZCb3giLCJSZWZlcmVuY2VMaW5lU3R5bGUiLCJSZWZlcmVuY2VNYXJrZXJzIiwiUmVmZXJlbmNlTWFya2VyU3R5bGUiLCJSZWZpbmUiLCJSZWZsZWN0aW9uTWF0cml4IiwiUmVmbGVjdGlvblRyYW5zZm9ybSIsIlJlZnJlc2giLCJSZWZyZXNoUmF0ZSIsIlJlZ2lvbiIsIlJlZ2lvbkJpbmFyaXplIiwiUmVnaW9uQm91bmRhcnkiLCJSZWdpb25Cb3VuZGFyeVN0eWxlIiwiUmVnaW9uQm91bmRzIiwiUmVnaW9uQ2VudHJvaWQiLCJSZWdpb25EaWZmZXJlbmNlIiwiUmVnaW9uRGltZW5zaW9uIiwiUmVnaW9uRGlzam9pbnQiLCJSZWdpb25EaXN0YW5jZSIsIlJlZ2lvbkRpc3RhbmNlRnVuY3Rpb24iLCJSZWdpb25FbWJlZGRpbmdEaW1lbnNpb24iLCJSZWdpb25FcXVhbCIsIlJlZ2lvbkZpbGxpbmdTdHlsZSIsIlJlZ2lvbkZ1bmN0aW9uIiwiUmVnaW9uSW1hZ2UiLCJSZWdpb25JbnRlcnNlY3Rpb24iLCJSZWdpb25NZWFzdXJlIiwiUmVnaW9uTWVtYmVyIiwiUmVnaW9uTWVtYmVyRnVuY3Rpb24iLCJSZWdpb25Nb21lbnQiLCJSZWdpb25OZWFyZXN0IiwiUmVnaW9uTmVhcmVzdEZ1bmN0aW9uIiwiUmVnaW9uUGxvdCIsIlJlZ2lvblBsb3QzRCIsIlJlZ2lvblByb2R1Y3QiLCJSZWdpb25RIiwiUmVnaW9uUmVzaXplIiwiUmVnaW9uU2l6ZSIsIlJlZ2lvblN5bW1ldHJpY0RpZmZlcmVuY2UiLCJSZWdpb25VbmlvbiIsIlJlZ2lvbldpdGhpbiIsIlJlZ2lzdGVyRXh0ZXJuYWxFdmFsdWF0b3IiLCJSZWd1bGFyRXhwcmVzc2lvbiIsIlJlZ3VsYXJpemF0aW9uIiwiUmVndWxhcmx5U2FtcGxlZFEiLCJSZWd1bGFyUG9seWdvbiIsIlJlSW0iLCJSZUltTGFiZWxzIiwiUmVJbVBsb3QiLCJSZUltU3R5bGUiLCJSZWluc3RhbGwiLCJSZWxhdGlvbmFsRGF0YWJhc2UiLCJSZWxhdGlvbkdyYXBoIiwiUmVsZWFzZSIsIlJlbGVhc2VIb2xkIiwiUmVsaWFiaWxpdHlEaXN0cmlidXRpb24iLCJSZWxpZWZJbWFnZSIsIlJlbGllZlBsb3QiLCJSZW1vdGVBdXRob3JpemF0aW9uQ2FjaGluZyIsIlJlbW90ZUNvbm5lY3QiLCJSZW1vdGVDb25uZWN0aW9uT2JqZWN0IiwiUmVtb3RlRmlsZSIsIlJlbW90ZVJ1biIsIlJlbW90ZVJ1blByb2Nlc3MiLCJSZW1vdmUiLCJSZW1vdmVBbHBoYUNoYW5uZWwiLCJSZW1vdmVBc3luY2hyb25vdXNUYXNrIiwiUmVtb3ZlQXVkaW9TdHJlYW0iLCJSZW1vdmVCYWNrZ3JvdW5kIiwiUmVtb3ZlQ2hhbm5lbExpc3RlbmVyIiwiUmVtb3ZlQ2hhbm5lbFN1YnNjcmliZXJzIiwiUmVtb3ZlZCIsIlJlbW92ZURpYWNyaXRpY3MiLCJSZW1vdmVJbnB1dFN0cmVhbU1ldGhvZCIsIlJlbW92ZU91dHB1dFN0cmVhbU1ldGhvZCIsIlJlbW92ZVByb3BlcnR5IiwiUmVtb3ZlU2NoZWR1bGVkVGFzayIsIlJlbW92ZVVzZXJzIiwiUmVtb3ZlVmlkZW9TdHJlYW0iLCJSZW5hbWVEaXJlY3RvcnkiLCJSZW5hbWVGaWxlIiwiUmVuZGVyQWxsIiwiUmVuZGVyaW5nT3B0aW9ucyIsIlJlbmV3YWxQcm9jZXNzIiwiUmVua29DaGFydCIsIlJlcGFpck1lc2giLCJSZXBlYXRlZCIsIlJlcGVhdGVkTnVsbCIsIlJlcGVhdGVkU3RyaW5nIiwiUmVwZWF0ZWRUaW1pbmciLCJSZXBlYXRpbmdFbGVtZW50IiwiUmVwbGFjZSIsIlJlcGxhY2VBbGwiLCJSZXBsYWNlSGVsZFBhcnQiLCJSZXBsYWNlSW1hZ2VWYWx1ZSIsIlJlcGxhY2VMaXN0IiwiUmVwbGFjZVBhcnQiLCJSZXBsYWNlUGl4ZWxWYWx1ZSIsIlJlcGxhY2VSZXBlYXRlZCIsIlJlcGxpY2F0ZUxheWVyIiwiUmVxdWlyZWRQaHlzaWNhbFF1YW50aXRpZXMiLCJSZXNhbXBsaW5nIiwiUmVzYW1wbGluZ0FsZ29yaXRobURhdGEiLCJSZXNhbXBsaW5nTWV0aG9kIiwiUmVzY2FsZSIsIlJlc2NhbGluZ1RyYW5zZm9ybSIsIlJlc2V0RGlyZWN0b3J5IiwiUmVzZXRNZW51c1BhY2tldCIsIlJlc2V0U2NoZWR1bGVkVGFzayIsIlJlc2hhcGVMYXllciIsIlJlc2lkdWUiLCJSZXNpemVMYXllciIsIlJlc29sdmUiLCJSZXNvdXJjZUFjcXVpcmUiLCJSZXNvdXJjZURhdGEiLCJSZXNvdXJjZUZ1bmN0aW9uIiwiUmVzb3VyY2VPYmplY3QiLCJSZXNvdXJjZVJlZ2lzdGVyIiwiUmVzb3VyY2VSZW1vdmUiLCJSZXNvdXJjZVNlYXJjaCIsIlJlc291cmNlU3VibWlzc2lvbk9iamVjdCIsIlJlc291cmNlU3VibWl0IiwiUmVzb3VyY2VTeXN0ZW1CYXNlIiwiUmVzb3VyY2VTeXN0ZW1QYXRoIiwiUmVzb3VyY2VVcGRhdGUiLCJSZXNvdXJjZVZlcnNpb24iLCJSZXNwb25zZUZvcm0iLCJSZXN0IiwiUmVzdGFydEludGVydmFsIiwiUmVzdHJpY3RlZCIsIlJlc3VsdGFudCIsIlJlc3VtZVBhY2tldCIsIlJldHVybiIsIlJldHVybkVudGVyc0lucHV0IiwiUmV0dXJuRXhwcmVzc2lvblBhY2tldCIsIlJldHVybklucHV0Rm9ybVBhY2tldCIsIlJldHVyblBhY2tldCIsIlJldHVyblJlY2VpcHRGdW5jdGlvbiIsIlJldHVyblRleHRQYWNrZXQiLCJSZXZlcnNlIiwiUmV2ZXJzZUFwcGxpZWQiLCJSZXZlcnNlQmlvcnRob2dvbmFsU3BsaW5lV2F2ZWxldCIsIlJldmVyc2VFbGVtZW50IiwiUmV2ZXJzZUVxdWlsaWJyaXVtIiwiUmV2ZXJzZUdyYXBoIiwiUmV2ZXJzZVNvcnQiLCJSZXZlcnNlU29ydEJ5IiwiUmV2ZXJzZVVwRXF1aWxpYnJpdW0iLCJSZXZvbHV0aW9uQXhpcyIsIlJldm9sdXRpb25QbG90M0QiLCJSR0JDb2xvciIsIlJpY2NhdGlTb2x2ZSIsIlJpY2VEaXN0cmlidXRpb24iLCJSaWRnZUZpbHRlciIsIlJpZW1hbm5SIiwiUmllbWFublNpZWdlbFRoZXRhIiwiUmllbWFublNpZWdlbFoiLCJSaWVtYW5uWGkiLCJSaWZmbGUiLCJSaWdodCIsIlJpZ2h0QXJyb3ciLCJSaWdodEFycm93QmFyIiwiUmlnaHRBcnJvd0xlZnRBcnJvdyIsIlJpZ2h0Q29tcG9zaXRpb24iLCJSaWdodENvc2V0UmVwcmVzZW50YXRpdmUiLCJSaWdodERvd25UZWVWZWN0b3IiLCJSaWdodERvd25WZWN0b3IiLCJSaWdodERvd25WZWN0b3JCYXIiLCJSaWdodFRlZSIsIlJpZ2h0VGVlQXJyb3ciLCJSaWdodFRlZVZlY3RvciIsIlJpZ2h0VHJpYW5nbGUiLCJSaWdodFRyaWFuZ2xlQmFyIiwiUmlnaHRUcmlhbmdsZUVxdWFsIiwiUmlnaHRVcERvd25WZWN0b3IiLCJSaWdodFVwVGVlVmVjdG9yIiwiUmlnaHRVcFZlY3RvciIsIlJpZ2h0VXBWZWN0b3JCYXIiLCJSaWdodFZlY3RvciIsIlJpZ2h0VmVjdG9yQmFyIiwiUmlza0FjaGlldmVtZW50SW1wb3J0YW5jZSIsIlJpc2tSZWR1Y3Rpb25JbXBvcnRhbmNlIiwiUm9nZXJzVGFuaW1vdG9EaXNzaW1pbGFyaXR5IiwiUm9sbFBpdGNoWWF3QW5nbGVzIiwiUm9sbFBpdGNoWWF3TWF0cml4IiwiUm9tYW5OdW1lcmFsIiwiUm9vdCIsIlJvb3RBcHByb3hpbWFudCIsIlJvb3RJbnRlcnZhbHMiLCJSb290TG9jdXNQbG90IiwiUm9vdE1lYW5TcXVhcmUiLCJSb290T2ZVbml0eVEiLCJSb290UmVkdWNlIiwiUm9vdHMiLCJSb290U3VtIiwiUm90YXRlIiwiUm90YXRlTGFiZWwiLCJSb3RhdGVMZWZ0IiwiUm90YXRlUmlnaHQiLCJSb3RhdGlvbkFjdGlvbiIsIlJvdGF0aW9uQm94IiwiUm90YXRpb25Cb3hPcHRpb25zIiwiUm90YXRpb25NYXRyaXgiLCJSb3RhdGlvblRyYW5zZm9ybSIsIlJvdW5kIiwiUm91bmRJbXBsaWVzIiwiUm91bmRpbmdSYWRpdXMiLCJSb3ciLCJSb3dBbGlnbm1lbnRzIiwiUm93QmFja2dyb3VuZHMiLCJSb3dCb3giLCJSb3dIZWlnaHRzIiwiUm93TGluZXMiLCJSb3dNaW5IZWlnaHQiLCJSb3dSZWR1Y2UiLCJSb3dzRXF1YWwiLCJSb3dTcGFjaW5ncyIsIlJTb2x2ZSIsIlJTb2x2ZVZhbHVlIiwiUnVkaW5TaGFwaXJvIiwiUnVkdmFsaXNHcm91cFJ1IiwiUnVsZSIsIlJ1bGVDb25kaXRpb24iLCJSdWxlRGVsYXllZCIsIlJ1bGVGb3JtIiwiUnVsZVBsb3QiLCJSdWxlclVuaXRzIiwiUnVuIiwiUnVuUHJvY2VzcyIsIlJ1blNjaGVkdWxlZFRhc2siLCJSdW5UaHJvdWdoIiwiUnVudGltZUF0dHJpYnV0ZXMiLCJSdW50aW1lT3B0aW9ucyIsIlJ1c3NlbGxSYW9EaXNzaW1pbGFyaXR5IiwiU2FtZVEiLCJTYW1lVGVzdCIsIlNhbWVUZXN0UHJvcGVydGllcyIsIlNhbXBsZWRFbnRpdHlDbGFzcyIsIlNhbXBsZURlcHRoIiwiU2FtcGxlZFNvdW5kRnVuY3Rpb24iLCJTYW1wbGVkU291bmRMaXN0IiwiU2FtcGxlUmF0ZSIsIlNhbXBsaW5nUGVyaW9kIiwiU0FSSU1BUHJvY2VzcyIsIlNBUk1BUHJvY2VzcyIsIlNBU1RyaWFuZ2xlIiwiU2F0ZWxsaXRlRGF0YSIsIlNhdGlzZmlhYmlsaXR5Q291bnQiLCJTYXRpc2ZpYWJpbGl0eUluc3RhbmNlcyIsIlNhdGlzZmlhYmxlUSIsIlNhdHVyZGF5IiwiU2F2ZSIsIlNhdmVhYmxlIiwiU2F2ZUF1dG9EZWxldGUiLCJTYXZlQ29ubmVjdGlvbiIsIlNhdmVEZWZpbml0aW9ucyIsIlNhdml0emt5R29sYXlNYXRyaXgiLCJTYXd0b290aFdhdmUiLCJTY2FsZSIsIlNjYWxlZCIsIlNjYWxlRGl2aXNpb25zIiwiU2NhbGVkTW91c2VQb3NpdGlvbiIsIlNjYWxlT3JpZ2luIiwiU2NhbGVQYWRkaW5nIiwiU2NhbGVSYW5nZXMiLCJTY2FsZVJhbmdlU3R5bGUiLCJTY2FsaW5nRnVuY3Rpb25zIiwiU2NhbGluZ01hdHJpeCIsIlNjYWxpbmdUcmFuc2Zvcm0iLCJTY2FuIiwiU2NoZWR1bGVkVGFzayIsIlNjaGVkdWxlZFRhc2tBY3RpdmVRIiwiU2NoZWR1bGVkVGFza0luZm9ybWF0aW9uIiwiU2NoZWR1bGVkVGFza0luZm9ybWF0aW9uRGF0YSIsIlNjaGVkdWxlZFRhc2tPYmplY3QiLCJTY2hlZHVsZWRUYXNrcyIsIlNjaHVyRGVjb21wb3NpdGlvbiIsIlNjaWVudGlmaWNGb3JtIiwiU2NpZW50aWZpY05vdGF0aW9uVGhyZXNob2xkIiwiU2NvcmVyR2kiLCJTY29yZXJHaVByaW1lIiwiU2NvcmVySGkiLCJTY29yZXJIaVByaW1lIiwiU2NyZWVuUmVjdGFuZ2xlIiwiU2NyZWVuU3R5bGVFbnZpcm9ubWVudCIsIlNjcmlwdEJhc2VsaW5lU2hpZnRzIiwiU2NyaXB0Rm9ybSIsIlNjcmlwdExldmVsIiwiU2NyaXB0TWluU2l6ZSIsIlNjcmlwdFJ1bGVzIiwiU2NyaXB0U2l6ZU11bHRpcGxpZXJzIiwiU2Nyb2xsYmFycyIsIlNjcm9sbGluZ09wdGlvbnMiLCJTY3JvbGxQb3NpdGlvbiIsIlNlYXJjaEFkanVzdG1lbnQiLCJTZWFyY2hJbmRleE9iamVjdCIsIlNlYXJjaEluZGljZXMiLCJTZWFyY2hRdWVyeVN0cmluZyIsIlNlYXJjaFJlc3VsdE9iamVjdCIsIlNlYyIsIlNlY2giLCJTZWNoRGlzdHJpYnV0aW9uIiwiU2Vjb25kT3JkZXJDb25lT3B0aW1pemF0aW9uIiwiU2VjdGlvbkdyb3VwaW5nIiwiU2VjdG9yQ2hhcnQiLCJTZWN0b3JDaGFydDNEIiwiU2VjdG9yT3JpZ2luIiwiU2VjdG9yU3BhY2luZyIsIlNlY3VyZWRBdXRoZW50aWNhdGlvbktleSIsIlNlY3VyZWRBdXRoZW50aWNhdGlvbktleXMiLCJTZWVkUmFuZG9tIiwiU2VsZWN0IiwiU2VsZWN0YWJsZSIsIlNlbGVjdENvbXBvbmVudHMiLCJTZWxlY3RlZENlbGxzIiwiU2VsZWN0ZWROb3RlYm9vayIsIlNlbGVjdEZpcnN0IiwiU2VsZWN0aW9uIiwiU2VsZWN0aW9uQW5pbWF0ZSIsIlNlbGVjdGlvbkNlbGwiLCJTZWxlY3Rpb25DZWxsQ3JlYXRlQ2VsbCIsIlNlbGVjdGlvbkNlbGxEZWZhdWx0U3R5bGUiLCJTZWxlY3Rpb25DZWxsUGFyZW50U3R5bGUiLCJTZWxlY3Rpb25DcmVhdGVDZWxsIiwiU2VsZWN0aW9uRGVidWdnZXJUYWciLCJTZWxlY3Rpb25EdXBsaWNhdGVDZWxsIiwiU2VsZWN0aW9uRXZhbHVhdGUiLCJTZWxlY3Rpb25FdmFsdWF0ZUNyZWF0ZUNlbGwiLCJTZWxlY3Rpb25Nb3ZlIiwiU2VsZWN0aW9uUGxhY2Vob2xkZXIiLCJTZWxlY3Rpb25TZXRTdHlsZSIsIlNlbGVjdFdpdGhDb250ZW50cyIsIlNlbGZMb29wcyIsIlNlbGZMb29wU3R5bGUiLCJTZW1hbnRpY0ltcG9ydCIsIlNlbWFudGljSW1wb3J0U3RyaW5nIiwiU2VtYW50aWNJbnRlcnByZXRhdGlvbiIsIlNlbWlhbGdlYnJhaWNDb21wb25lbnRJbnN0YW5jZXMiLCJTZW1pZGVmaW5pdGVPcHRpbWl6YXRpb24iLCJTZW5kTWFpbCIsIlNlbmRNZXNzYWdlIiwiU2VxdWVuY2UiLCJTZXF1ZW5jZUFsaWdubWVudCIsIlNlcXVlbmNlQXR0ZW50aW9uTGF5ZXIiLCJTZXF1ZW5jZUNhc2VzIiwiU2VxdWVuY2VDb3VudCIsIlNlcXVlbmNlRm9sZCIsIlNlcXVlbmNlRm9sZExpc3QiLCJTZXF1ZW5jZUZvcm0iLCJTZXF1ZW5jZUhvbGQiLCJTZXF1ZW5jZUxhc3RMYXllciIsIlNlcXVlbmNlTW9zdExheWVyIiwiU2VxdWVuY2VQb3NpdGlvbiIsIlNlcXVlbmNlUHJlZGljdCIsIlNlcXVlbmNlUHJlZGljdG9yRnVuY3Rpb24iLCJTZXF1ZW5jZVJlcGxhY2UiLCJTZXF1ZW5jZVJlc3RMYXllciIsIlNlcXVlbmNlUmV2ZXJzZUxheWVyIiwiU2VxdWVuY2VTcGxpdCIsIlNlcmllcyIsIlNlcmllc0NvZWZmaWNpZW50IiwiU2VyaWVzRGF0YSIsIlNlcmllc1Rlcm1Hb2FsIiwiU2VydmljZUNvbm5lY3QiLCJTZXJ2aWNlRGlzY29ubmVjdCIsIlNlcnZpY2VFeGVjdXRlIiwiU2VydmljZU9iamVjdCIsIlNlcnZpY2VSZXF1ZXN0IiwiU2VydmljZVJlc3BvbnNlIiwiU2VydmljZVN1Ym1pdCIsIlNlc3Npb25TdWJtaXQiLCJTZXNzaW9uVGltZSIsIlNldCIsIlNldEFjY3VyYWN5IiwiU2V0QWxwaGFDaGFubmVsIiwiU2V0QXR0cmlidXRlcyIsIlNldGJhY2tzIiwiU2V0Qm94Rm9ybU5hbWVzUGFja2V0IiwiU2V0Q2xvdWREaXJlY3RvcnkiLCJTZXRDb29raWVzIiwiU2V0RGVsYXllZCIsIlNldERpcmVjdG9yeSIsIlNldEVudmlyb25tZW50IiwiU2V0RXZhbHVhdGlvbk5vdGVib29rIiwiU2V0RmlsZURhdGUiLCJTZXRGaWxlTG9hZGluZ0NvbnRleHQiLCJTZXROb3RlYm9va1N0YXR1c0xpbmUiLCJTZXRPcHRpb25zIiwiU2V0T3B0aW9uc1BhY2tldCIsIlNldFBlcm1pc3Npb25zIiwiU2V0UHJlY2lzaW9uIiwiU2V0UHJvcGVydHkiLCJTZXRTZWN1cmVkQXV0aGVudGljYXRpb25LZXkiLCJTZXRTZWxlY3RlZE5vdGVib29rIiwiU2V0U2hhcmVkRnVuY3Rpb24iLCJTZXRTaGFyZWRWYXJpYWJsZSIsIlNldFNwZWVjaFBhcmFtZXRlcnNQYWNrZXQiLCJTZXRTdHJlYW1Qb3NpdGlvbiIsIlNldFN5c3RlbU1vZGVsIiwiU2V0U3lzdGVtT3B0aW9ucyIsIlNldHRlciIsIlNldHRlckJhciIsIlNldHRlckJveCIsIlNldHRlckJveE9wdGlvbnMiLCJTZXR0aW5nIiwiU2V0VXNlcnMiLCJTZXRWYWx1ZSIsIlNoYWRpbmciLCJTaGFsbG93IiwiU2hhbm5vbldhdmVsZXQiLCJTaGFwaXJvV2lsa1Rlc3QiLCJTaGFyZSIsIlNoYXJpbmdMaXN0IiwiU2hhcnBlbiIsIlNoZWFyaW5nTWF0cml4IiwiU2hlYXJpbmdUcmFuc2Zvcm0iLCJTaGVsbFJlZ2lvbiIsIlNoZW5DYXN0YW5NYXRyaXgiLCJTaGlmdGVkR29tcGVydHpEaXN0cmlidXRpb24iLCJTaGlmdFJlZ2lzdGVyU2VxdWVuY2UiLCJTaG9ydCIsIlNob3J0RG93bkFycm93IiwiU2hvcnRlc3QiLCJTaG9ydGVzdE1hdGNoIiwiU2hvcnRlc3RQYXRoRnVuY3Rpb24iLCJTaG9ydExlZnRBcnJvdyIsIlNob3J0UmlnaHRBcnJvdyIsIlNob3J0VGltZUZvdXJpZXIiLCJTaG9ydFRpbWVGb3VyaWVyRGF0YSIsIlNob3J0VXBBcnJvdyIsIlNob3ciLCJTaG93QXV0b0NvbnZlcnQiLCJTaG93QXV0b1NwZWxsQ2hlY2siLCJTaG93QXV0b1N0eWxlcyIsIlNob3dDZWxsQnJhY2tldCIsIlNob3dDZWxsTGFiZWwiLCJTaG93Q2VsbFRhZ3MiLCJTaG93Q2xvc2VkQ2VsbEFyZWEiLCJTaG93Q29kZUFzc2lzdCIsIlNob3dDb250ZW50cyIsIlNob3dDb250cm9scyIsIlNob3dDdXJzb3JUcmFja2VyIiwiU2hvd0dyb3VwT3BlbkNsb3NlSWNvbiIsIlNob3dHcm91cE9wZW5lciIsIlNob3dJbnZpc2libGVDaGFyYWN0ZXJzIiwiU2hvd1BhZ2VCcmVha3MiLCJTaG93UHJlZGljdGl2ZUludGVyZmFjZSIsIlNob3dTZWxlY3Rpb24iLCJTaG93U2hvcnRCb3hGb3JtIiwiU2hvd1NwZWNpYWxDaGFyYWN0ZXJzIiwiU2hvd1N0cmluZ0NoYXJhY3RlcnMiLCJTaG93U3ludGF4U3R5bGVzIiwiU2hyaW5raW5nRGVsYXkiLCJTaHJpbmtXcmFwQm91bmRpbmdCb3giLCJTaWRlcmVhbFRpbWUiLCJTaWVnZWxUaGV0YSIsIlNpZWdlbFR1a2V5VGVzdCIsIlNpZXJwaW5za2lDdXJ2ZSIsIlNpZXJwaW5za2lNZXNoIiwiU2lnbiIsIlNpZ25hdHVyZSIsIlNpZ25lZFJhbmtUZXN0IiwiU2lnbmVkUmVnaW9uRGlzdGFuY2UiLCJTaWduaWZpY2FuY2VMZXZlbCIsIlNpZ25QYWRkaW5nIiwiU2lnblRlc3QiLCJTaW1pbGFyaXR5UnVsZXMiLCJTaW1wbGVHcmFwaCIsIlNpbXBsZUdyYXBoUSIsIlNpbXBsZVBvbHlnb25RIiwiU2ltcGxlUG9seWhlZHJvblEiLCJTaW1wbGV4IiwiU2ltcGxpZnkiLCJTaW4iLCJTaW5jIiwiU2luZ2hNYWRkYWxhRGlzdHJpYnV0aW9uIiwiU2luZ2xlRXZhbHVhdGlvbiIsIlNpbmdsZUxldHRlckl0YWxpY3MiLCJTaW5nbGVMZXR0ZXJTdHlsZSIsIlNpbmd1bGFyVmFsdWVEZWNvbXBvc2l0aW9uIiwiU2luZ3VsYXJWYWx1ZUxpc3QiLCJTaW5ndWxhclZhbHVlUGxvdCIsIlNpbmd1bGFyVmFsdWVzIiwiU2luaCIsIlNpbmhJbnRlZ3JhbCIsIlNpbkludGVncmFsIiwiU2l4SlN5bWJvbCIsIlNrZWxldG9uIiwiU2tlbGV0b25UcmFuc2Zvcm0iLCJTa2VsbGFtRGlzdHJpYnV0aW9uIiwiU2tld25lc3MiLCJTa2V3Tm9ybWFsRGlzdHJpYnV0aW9uIiwiU2tpblN0eWxlIiwiU2tpcCIsIlNsaWNlQ29udG91clBsb3QzRCIsIlNsaWNlRGVuc2l0eVBsb3QzRCIsIlNsaWNlRGlzdHJpYnV0aW9uIiwiU2xpY2VWZWN0b3JQbG90M0QiLCJTbGlkZXIiLCJTbGlkZXIyRCIsIlNsaWRlcjJEQm94IiwiU2xpZGVyMkRCb3hPcHRpb25zIiwiU2xpZGVyQm94IiwiU2xpZGVyQm94T3B0aW9ucyIsIlNsaWRlVmlldyIsIlNsb3QiLCJTbG90U2VxdWVuY2UiLCJTbWFsbCIsIlNtYWxsQ2lyY2xlIiwiU21hbGxlciIsIlNtaXRoRGVjb21wb3NpdGlvbiIsIlNtaXRoRGVsYXlDb21wZW5zYXRvciIsIlNtaXRoV2F0ZXJtYW5TaW1pbGFyaXR5IiwiU21vb3RoRGVuc2l0eUhpc3RvZ3JhbSIsIlNtb290aEhpc3RvZ3JhbSIsIlNtb290aEhpc3RvZ3JhbTNEIiwiU21vb3RoS2VybmVsRGlzdHJpYnV0aW9uIiwiU25EaXNwZXJzaW9uIiwiU25pcHBldCIsIlNudWJQb2x5aGVkcm9uIiwiU29jaWFsTWVkaWFEYXRhIiwiU29ja2V0IiwiU29ja2V0Q29ubmVjdCIsIlNvY2tldExpc3RlbiIsIlNvY2tldExpc3RlbmVyIiwiU29ja2V0T2JqZWN0IiwiU29ja2V0T3BlbiIsIlNvY2tldFJlYWRNZXNzYWdlIiwiU29ja2V0UmVhZHlRIiwiU29ja2V0cyIsIlNvY2tldFdhaXRBbGwiLCJTb2NrZXRXYWl0TmV4dCIsIlNvZnRtYXhMYXllciIsIlNva2FsU25lYXRoRGlzc2ltaWxhcml0eSIsIlNvbGFyRWNsaXBzZSIsIlNvbGFyU3lzdGVtRmVhdHVyZURhdGEiLCJTb2xpZEFuZ2xlIiwiU29saWREYXRhIiwiU29saWRSZWdpb25RIiwiU29sdmUiLCJTb2x2ZUFsd2F5cyIsIlNvbHZlRGVsYXllZCIsIlNvcnQiLCJTb3J0QnkiLCJTb3J0ZWRCeSIsIlNvcnRlZEVudGl0eUNsYXNzIiwiU291bmQiLCJTb3VuZEFuZEdyYXBoaWNzIiwiU291bmROb3RlIiwiU291bmRWb2x1bWUiLCJTb3VyY2VMaW5rIiwiU293IiwiU3BhY2UiLCJTcGFjZUN1cnZlRGF0YSIsIlNwYWNlRm9ybSIsIlNwYWNlciIsIlNwYWNpbmdzIiwiU3BhbiIsIlNwYW5BZGp1c3RtZW50cyIsIlNwYW5DaGFyYWN0ZXJSb3VuZGluZyIsIlNwYW5Gcm9tQWJvdmUiLCJTcGFuRnJvbUJvdGgiLCJTcGFuRnJvbUxlZnQiLCJTcGFuTGluZVRoaWNrbmVzcyIsIlNwYW5NYXhTaXplIiwiU3Bhbk1pblNpemUiLCJTcGFubmluZ0NoYXJhY3RlcnMiLCJTcGFuU3ltbWV0cmljIiwiU3BhcnNlQXJyYXkiLCJTcGF0aWFsR3JhcGhEaXN0cmlidXRpb24iLCJTcGF0aWFsTWVkaWFuIiwiU3BhdGlhbFRyYW5zZm9ybWF0aW9uTGF5ZXIiLCJTcGVhayIsIlNwZWFrZXJNYXRjaFEiLCJTcGVha1RleHRQYWNrZXQiLCJTcGVhcm1hblJhbmtUZXN0IiwiU3BlYXJtYW5SaG8iLCJTcGVjaWVzRGF0YSIsIlNwZWNpZmljaXR5R29hbCIsIlNwZWN0cmFsTGluZURhdGEiLCJTcGVjdHJvZ3JhbSIsIlNwZWN0cm9ncmFtQXJyYXkiLCJTcGVjdWxhcml0eSIsIlNwZWVjaENhc2VzIiwiU3BlZWNoSW50ZXJwcmV0ZXIiLCJTcGVlY2hSZWNvZ25pemUiLCJTcGVlY2hTeW50aGVzaXplIiwiU3BlbGxpbmdDb3JyZWN0aW9uIiwiU3BlbGxpbmdDb3JyZWN0aW9uTGlzdCIsIlNwZWxsaW5nRGljdGlvbmFyaWVzIiwiU3BlbGxpbmdEaWN0aW9uYXJpZXNQYXRoIiwiU3BlbGxpbmdPcHRpb25zIiwiU3BlbGxpbmdTdWdnZXN0aW9uc1BhY2tldCIsIlNwaGVyZSIsIlNwaGVyZUJveCIsIlNwaGVyZVBvaW50cyIsIlNwaGVyaWNhbEJlc3NlbEoiLCJTcGhlcmljYWxCZXNzZWxZIiwiU3BoZXJpY2FsSGFua2VsSDEiLCJTcGhlcmljYWxIYW5rZWxIMiIsIlNwaGVyaWNhbEhhcm1vbmljWSIsIlNwaGVyaWNhbFBsb3QzRCIsIlNwaGVyaWNhbFJlZ2lvbiIsIlNwaGVyaWNhbFNoZWxsIiwiU3BoZXJvaWRhbEVpZ2VudmFsdWUiLCJTcGhlcm9pZGFsSm9pbmluZ0ZhY3RvciIsIlNwaGVyb2lkYWxQUyIsIlNwaGVyb2lkYWxQU1ByaW1lIiwiU3BoZXJvaWRhbFFTIiwiU3BoZXJvaWRhbFFTUHJpbWUiLCJTcGhlcm9pZGFsUmFkaWFsRmFjdG9yIiwiU3BoZXJvaWRhbFMxIiwiU3BoZXJvaWRhbFMxUHJpbWUiLCJTcGhlcm9pZGFsUzIiLCJTcGhlcm9pZGFsUzJQcmltZSIsIlNwbGljZSIsIlNwbGljZWREaXN0cmlidXRpb24iLCJTcGxpbmVDbG9zZWQiLCJTcGxpbmVEZWdyZWUiLCJTcGxpbmVLbm90cyIsIlNwbGluZVdlaWdodHMiLCJTcGxpdCIsIlNwbGl0QnkiLCJTcG9rZW5TdHJpbmciLCJTcXJ0IiwiU3FydEJveCIsIlNxcnRCb3hPcHRpb25zIiwiU3F1YXJlIiwiU3F1YXJlZEV1Y2xpZGVhbkRpc3RhbmNlIiwiU3F1YXJlRnJlZVEiLCJTcXVhcmVJbnRlcnNlY3Rpb24iLCJTcXVhcmVNYXRyaXhRIiwiU3F1YXJlUmVwZWF0aW5nRWxlbWVudCIsIlNxdWFyZXNSIiwiU3F1YXJlU3Vic2V0IiwiU3F1YXJlU3Vic2V0RXF1YWwiLCJTcXVhcmVTdXBlcnNldCIsIlNxdWFyZVN1cGVyc2V0RXF1YWwiLCJTcXVhcmVVbmlvbiIsIlNxdWFyZVdhdmUiLCJTU1NUcmlhbmdsZSIsIlN0YWJpbGl0eU1hcmdpbnMiLCJTdGFiaWxpdHlNYXJnaW5zU3R5bGUiLCJTdGFibGVEaXN0cmlidXRpb24iLCJTdGFjayIsIlN0YWNrQmVnaW4iLCJTdGFja0NvbXBsZXRlIiwiU3RhY2tlZERhdGVMaXN0UGxvdCIsIlN0YWNrZWRMaXN0UGxvdCIsIlN0YWNrSW5oaWJpdCIsIlN0YWRpdW1TaGFwZSIsIlN0YW5kYXJkQXRtb3NwaGVyZURhdGEiLCJTdGFuZGFyZERldmlhdGlvbiIsIlN0YW5kYXJkRGV2aWF0aW9uRmlsdGVyIiwiU3RhbmRhcmRGb3JtIiwiU3RhbmRhcmRpemUiLCJTdGFuZGFyZGl6ZWQiLCJTdGFuZGFyZE9jZWFuRGF0YSIsIlN0YW5kYnlEaXN0cmlidXRpb24iLCJTdGFyIiwiU3RhckNsdXN0ZXJEYXRhIiwiU3RhckRhdGEiLCJTdGFyR3JhcGgiLCJTdGFydEFzeW5jaHJvbm91c1Rhc2siLCJTdGFydEV4dGVybmFsU2Vzc2lvbiIsIlN0YXJ0aW5nU3RlcFNpemUiLCJTdGFydE9mTGluZSIsIlN0YXJ0T2ZTdHJpbmciLCJTdGFydFByb2Nlc3MiLCJTdGFydFNjaGVkdWxlZFRhc2siLCJTdGFydHVwU291bmQiLCJTdGFydFdlYlNlc3Npb24iLCJTdGF0ZURpbWVuc2lvbnMiLCJTdGF0ZUZlZWRiYWNrR2FpbnMiLCJTdGF0ZU91dHB1dEVzdGltYXRvciIsIlN0YXRlUmVzcG9uc2UiLCJTdGF0ZVNwYWNlTW9kZWwiLCJTdGF0ZVNwYWNlUmVhbGl6YXRpb24iLCJTdGF0ZVNwYWNlVHJhbnNmb3JtIiwiU3RhdGVUcmFuc2Zvcm1hdGlvbkxpbmVhcml6ZSIsIlN0YXRpb25hcnlEaXN0cmlidXRpb24iLCJTdGF0aW9uYXJ5V2F2ZWxldFBhY2tldFRyYW5zZm9ybSIsIlN0YXRpb25hcnlXYXZlbGV0VHJhbnNmb3JtIiwiU3RhdHVzQXJlYSIsIlN0YXR1c0NlbnRyYWxpdHkiLCJTdGVwTW9uaXRvciIsIlN0ZXJlb2NoZW1pc3RyeUVsZW1lbnRzIiwiU3RpZWx0amVzR2FtbWEiLCJTdGlwcGxlU2hhZGluZyIsIlN0aXJsaW5nUzEiLCJTdGlybGluZ1MyIiwiU3RvcEFzeW5jaHJvbm91c1Rhc2siLCJTdG9wcGluZ1Bvd2VyRGF0YSIsIlN0b3BTY2hlZHVsZWRUYXNrIiwiU3RyYXRhVmFyaWFibGVzIiwiU3RyYXRvbm92aWNoUHJvY2VzcyIsIlN0cmVhbUNvbG9yRnVuY3Rpb24iLCJTdHJlYW1Db2xvckZ1bmN0aW9uU2NhbGluZyIsIlN0cmVhbURlbnNpdHlQbG90IiwiU3RyZWFtTWFya2VycyIsIlN0cmVhbVBsb3QiLCJTdHJlYW1Qb2ludHMiLCJTdHJlYW1Qb3NpdGlvbiIsIlN0cmVhbXMiLCJTdHJlYW1TY2FsZSIsIlN0cmVhbVN0eWxlIiwiU3RyaW5nIiwiU3RyaW5nQnJlYWsiLCJTdHJpbmdCeXRlQ291bnQiLCJTdHJpbmdDYXNlcyIsIlN0cmluZ0NvbnRhaW5zUSIsIlN0cmluZ0NvdW50IiwiU3RyaW5nRGVsZXRlIiwiU3RyaW5nRHJvcCIsIlN0cmluZ0VuZHNRIiwiU3RyaW5nRXhwcmVzc2lvbiIsIlN0cmluZ0V4dHJhY3QiLCJTdHJpbmdGb3JtIiwiU3RyaW5nRm9ybWF0IiwiU3RyaW5nRnJlZVEiLCJTdHJpbmdJbnNlcnQiLCJTdHJpbmdKb2luIiwiU3RyaW5nTGVuZ3RoIiwiU3RyaW5nTWF0Y2hRIiwiU3RyaW5nUGFkTGVmdCIsIlN0cmluZ1BhZFJpZ2h0IiwiU3RyaW5nUGFydCIsIlN0cmluZ1BhcnRpdGlvbiIsIlN0cmluZ1Bvc2l0aW9uIiwiU3RyaW5nUSIsIlN0cmluZ1JlcGVhdCIsIlN0cmluZ1JlcGxhY2UiLCJTdHJpbmdSZXBsYWNlTGlzdCIsIlN0cmluZ1JlcGxhY2VQYXJ0IiwiU3RyaW5nUmV2ZXJzZSIsIlN0cmluZ1JpZmZsZSIsIlN0cmluZ1JvdGF0ZUxlZnQiLCJTdHJpbmdSb3RhdGVSaWdodCIsIlN0cmluZ1NrZWxldG9uIiwiU3RyaW5nU3BsaXQiLCJTdHJpbmdTdGFydHNRIiwiU3RyaW5nVGFrZSIsIlN0cmluZ1RlbXBsYXRlIiwiU3RyaW5nVG9CeXRlQXJyYXkiLCJTdHJpbmdUb1N0cmVhbSIsIlN0cmluZ1RyaW0iLCJTdHJpcEJveGVzIiwiU3RyaXBPbklucHV0IiwiU3RyaXBXcmFwcGVyQm94ZXMiLCJTdHJva2VGb3JtIiwiU3RydWN0dXJhbEltcG9ydGFuY2UiLCJTdHJ1Y3R1cmVkQXJyYXkiLCJTdHJ1Y3R1cmVkQXJyYXlIZWFkUSIsIlN0cnVjdHVyZWRTZWxlY3Rpb24iLCJTdHJ1dmVIIiwiU3RydXZlTCIsIlN0dWIiLCJTdHVkZW50VERpc3RyaWJ1dGlvbiIsIlN0eWxlIiwiU3R5bGVCb3giLCJTdHlsZUJveEF1dG9EZWxldGUiLCJTdHlsZURhdGEiLCJTdHlsZURlZmluaXRpb25zIiwiU3R5bGVGb3JtIiwiU3R5bGVIaW50cyIsIlN0eWxlS2V5TWFwcGluZyIsIlN0eWxlTWVudUxpc3RpbmciLCJTdHlsZU5hbWVEaWFsb2dTZXR0aW5ncyIsIlN0eWxlTmFtZXMiLCJTdHlsZVByaW50IiwiU3R5bGVTaGVldFBhdGgiLCJTdWJkaXZpZGUiLCJTdWJmYWN0b3JpYWwiLCJTdWJncmFwaCIsIlN1Yk1pbnVzIiwiU3ViUGx1cyIsIlN1YnJlc3VsdGFudFBvbHlub21pYWxSZW1haW5kZXJzIiwiU3VicmVzdWx0YW50UG9seW5vbWlhbHMiLCJTdWJyZXN1bHRhbnRzIiwiU3Vic2NyaXB0IiwiU3Vic2NyaXB0Qm94IiwiU3Vic2NyaXB0Qm94T3B0aW9ucyIsIlN1YnNjcmlwdGVkIiwiU3Vic2VxdWVuY2VzIiwiU3Vic2V0IiwiU3Vic2V0Q2FzZXMiLCJTdWJzZXRDb3VudCIsIlN1YnNldEVxdWFsIiwiU3Vic2V0TWFwIiwiU3Vic2V0UG9zaXRpb24iLCJTdWJzZXRRIiwiU3Vic2V0UmVwbGFjZSIsIlN1YnNldHMiLCJTdWJTdGFyIiwiU3Vic3RpdHV0aW9uU3lzdGVtIiwiU3Vic3VwZXJzY3JpcHQiLCJTdWJzdXBlcnNjcmlwdEJveCIsIlN1YnN1cGVyc2NyaXB0Qm94T3B0aW9ucyIsIlN1YnRpdGxlRW5jb2RpbmciLCJTdWJ0aXRsZVRyYWNrcyIsIlN1YnRyYWN0IiwiU3VidHJhY3RGcm9tIiwiU3VidHJhY3RTaWRlcyIsIlN1YlZhbHVlcyIsIlN1Y2NlZWRzIiwiU3VjY2VlZHNFcXVhbCIsIlN1Y2NlZWRzU2xhbnRFcXVhbCIsIlN1Y2NlZWRzVGlsZGUiLCJTdWNjZXNzIiwiU3VjaFRoYXQiLCJTdW0iLCJTdW1Db252ZXJnZW5jZSIsIlN1bW1hdGlvbkxheWVyIiwiU3VuZGF5IiwiU3VuUG9zaXRpb24iLCJTdW5yaXNlIiwiU3Vuc2V0IiwiU3VwZXJEYWdnZXIiLCJTdXBlck1pbnVzIiwiU3VwZXJub3ZhRGF0YSIsIlN1cGVyUGx1cyIsIlN1cGVyc2NyaXB0IiwiU3VwZXJzY3JpcHRCb3giLCJTdXBlcnNjcmlwdEJveE9wdGlvbnMiLCJTdXBlcnNldCIsIlN1cGVyc2V0RXF1YWwiLCJTdXBlclN0YXIiLCJTdXJkIiwiU3VyZEZvcm0iLCJTdXJmYWNlQXBwZWFyYW5jZSIsIlN1cmZhY2VBcmVhIiwiU3VyZmFjZUNvbG9yIiwiU3VyZmFjZURhdGEiLCJTdXJmYWNlR3JhcGhpY3MiLCJTdXJ2aXZhbERpc3RyaWJ1dGlvbiIsIlN1cnZpdmFsRnVuY3Rpb24iLCJTdXJ2aXZhbE1vZGVsIiwiU3Vydml2YWxNb2RlbEZpdCIsIlN1c3BlbmRQYWNrZXQiLCJTdXp1a2lEaXN0cmlidXRpb24iLCJTdXp1a2lHcm91cFN1eiIsIlN3YXRjaExlZ2VuZCIsIlN3aXRjaCIsIlN5bWJvbCIsIlN5bWJvbE5hbWUiLCJTeW1sZXRXYXZlbGV0IiwiU3ltbWV0cmljIiwiU3ltbWV0cmljR3JvdXAiLCJTeW1tZXRyaWNLZXkiLCJTeW1tZXRyaWNNYXRyaXhRIiwiU3ltbWV0cmljUG9seW5vbWlhbCIsIlN5bW1ldHJpY1JlZHVjdGlvbiIsIlN5bW1ldHJpemUiLCJTeW1tZXRyaXplZEFycmF5IiwiU3ltbWV0cml6ZWRBcnJheVJ1bGVzIiwiU3ltbWV0cml6ZWREZXBlbmRlbnRDb21wb25lbnRzIiwiU3ltbWV0cml6ZWRJbmRlcGVuZGVudENvbXBvbmVudHMiLCJTeW1tZXRyaXplZFJlcGxhY2VQYXJ0IiwiU3luY2hyb25vdXNJbml0aWFsaXphdGlvbiIsIlN5bmNocm9ub3VzVXBkYXRpbmciLCJTeW5vbnltcyIsIlN5bnRheCIsIlN5bnRheEZvcm0iLCJTeW50YXhJbmZvcm1hdGlvbiIsIlN5bnRheExlbmd0aCIsIlN5bnRheFBhY2tldCIsIlN5bnRheFEiLCJTeW50aGVzaXplTWlzc2luZ1ZhbHVlcyIsIlN5c3RlbUNyZWRlbnRpYWwiLCJTeXN0ZW1DcmVkZW50aWFsRGF0YSIsIlN5c3RlbUNyZWRlbnRpYWxLZXkiLCJTeXN0ZW1DcmVkZW50aWFsS2V5cyIsIlN5c3RlbUNyZWRlbnRpYWxTdG9yZU9iamVjdCIsIlN5c3RlbURpYWxvZ0lucHV0IiwiU3lzdGVtRXhjZXB0aW9uIiwiU3lzdGVtR2V0IiwiU3lzdGVtSGVscFBhdGgiLCJTeXN0ZW1JbmZvcm1hdGlvbiIsIlN5c3RlbUluZm9ybWF0aW9uRGF0YSIsIlN5c3RlbUluc3RhbGwiLCJTeXN0ZW1Nb2RlbCIsIlN5c3RlbU1vZGVsZXIiLCJTeXN0ZW1Nb2RlbEV4YW1wbGVzIiwiU3lzdGVtTW9kZWxMaW5lYXJpemUiLCJTeXN0ZW1Nb2RlbFBhcmFtZXRyaWNTaW11bGF0ZSIsIlN5c3RlbU1vZGVsUGxvdCIsIlN5c3RlbU1vZGVsUHJvZ3Jlc3NSZXBvcnRpbmciLCJTeXN0ZW1Nb2RlbFJlbGlhYmlsaXR5IiwiU3lzdGVtTW9kZWxzIiwiU3lzdGVtTW9kZWxTaW11bGF0ZSIsIlN5c3RlbU1vZGVsU2ltdWxhdGVTZW5zaXRpdml0eSIsIlN5c3RlbU1vZGVsU2ltdWxhdGlvbkRhdGEiLCJTeXN0ZW1PcGVuIiwiU3lzdGVtT3B0aW9ucyIsIlN5c3RlbVByb2Nlc3NEYXRhIiwiU3lzdGVtUHJvY2Vzc2VzIiwiU3lzdGVtc0Nvbm5lY3Rpb25zTW9kZWwiLCJTeXN0ZW1zTW9kZWxEZWxheSIsIlN5c3RlbXNNb2RlbERlbGF5QXBwcm94aW1hdGUiLCJTeXN0ZW1zTW9kZWxEZWxldGUiLCJTeXN0ZW1zTW9kZWxEaW1lbnNpb25zIiwiU3lzdGVtc01vZGVsRXh0cmFjdCIsIlN5c3RlbXNNb2RlbEZlZWRiYWNrQ29ubmVjdCIsIlN5c3RlbXNNb2RlbExhYmVscyIsIlN5c3RlbXNNb2RlbExpbmVhcml0eSIsIlN5c3RlbXNNb2RlbE1lcmdlIiwiU3lzdGVtc01vZGVsT3JkZXIiLCJTeXN0ZW1zTW9kZWxQYXJhbGxlbENvbm5lY3QiLCJTeXN0ZW1zTW9kZWxTZXJpZXNDb25uZWN0IiwiU3lzdGVtc01vZGVsU3RhdGVGZWVkYmFja0Nvbm5lY3QiLCJTeXN0ZW1zTW9kZWxWZWN0b3JSZWxhdGl2ZU9yZGVycyIsIlN5c3RlbVN0dWIiLCJTeXN0ZW1UZXN0IiwiVGFiIiwiVGFiRmlsbGluZyIsIlRhYmxlIiwiVGFibGVBbGlnbm1lbnRzIiwiVGFibGVEZXB0aCIsIlRhYmxlRGlyZWN0aW9ucyIsIlRhYmxlRm9ybSIsIlRhYmxlSGVhZGluZ3MiLCJUYWJsZVNwYWNpbmciLCJUYWJsZVZpZXciLCJUYWJsZVZpZXdCb3giLCJUYWJsZVZpZXdCb3hCYWNrZ3JvdW5kIiwiVGFibGVWaWV3Qm94SXRlbVNpemUiLCJUYWJsZVZpZXdCb3hPcHRpb25zIiwiVGFiU3BhY2luZ3MiLCJUYWJWaWV3IiwiVGFiVmlld0JveCIsIlRhYlZpZXdCb3hPcHRpb25zIiwiVGFnQm94IiwiVGFnQm94Tm90ZSIsIlRhZ0JveE9wdGlvbnMiLCJUYWdnaW5nUnVsZXMiLCJUYWdTZXQiLCJUYWdTZXREZWxheWVkIiwiVGFnU3R5bGUiLCJUYWdVbnNldCIsIlRha2UiLCJUYWtlRHJvcCIsIlRha2VMYXJnZXN0IiwiVGFrZUxhcmdlc3RCeSIsIlRha2VMaXN0IiwiVGFrZVNtYWxsZXN0IiwiVGFrZVNtYWxsZXN0QnkiLCJUYWtlV2hpbGUiLCJUYWxseSIsIlRhbiIsIlRhbmgiLCJUYXJnZXREZXZpY2UiLCJUYXJnZXRGdW5jdGlvbnMiLCJUYXJnZXRTeXN0ZW0iLCJUYXJnZXRVbml0cyIsIlRhc2tBYm9ydCIsIlRhc2tFeGVjdXRlIiwiVGFza09iamVjdCIsIlRhc2tSZW1vdmUiLCJUYXNrUmVzdW1lIiwiVGFza3MiLCJUYXNrU3VzcGVuZCIsIlRhc2tXYWl0IiwiVGF1dG9sb2d5USIsIlRlbGVncmFwaFByb2Nlc3MiLCJUZW1wbGF0ZUFwcGx5IiwiVGVtcGxhdGVBcmdCb3giLCJUZW1wbGF0ZUJveCIsIlRlbXBsYXRlQm94T3B0aW9ucyIsIlRlbXBsYXRlRXZhbHVhdGUiLCJUZW1wbGF0ZUV4cHJlc3Npb24iLCJUZW1wbGF0ZUlmIiwiVGVtcGxhdGVPYmplY3QiLCJUZW1wbGF0ZVNlcXVlbmNlIiwiVGVtcGxhdGVTbG90IiwiVGVtcGxhdGVTbG90U2VxdWVuY2UiLCJUZW1wbGF0ZVVuZXZhbHVhdGVkIiwiVGVtcGxhdGVWZXJiYXRpbSIsIlRlbXBsYXRlV2l0aCIsIlRlbXBvcmFsRGF0YSIsIlRlbXBvcmFsUmVndWxhcml0eSIsIlRlbXBvcmFyeSIsIlRlbXBvcmFyeVZhcmlhYmxlIiwiVGVuc29yQ29udHJhY3QiLCJUZW5zb3JEaW1lbnNpb25zIiwiVGVuc29yRXhwYW5kIiwiVGVuc29yUHJvZHVjdCIsIlRlbnNvclEiLCJUZW5zb3JSYW5rIiwiVGVuc29yUmVkdWNlIiwiVGVuc29yU3ltbWV0cnkiLCJUZW5zb3JUcmFuc3Bvc2UiLCJUZW5zb3JXZWRnZSIsIlRlc3RJRCIsIlRlc3RSZXBvcnQiLCJUZXN0UmVwb3J0T2JqZWN0IiwiVGVzdFJlc3VsdE9iamVjdCIsIlRldHJhaGVkcm9uIiwiVGV0cmFoZWRyb25Cb3giLCJUZXRyYWhlZHJvbkJveE9wdGlvbnMiLCJUZVhGb3JtIiwiVGVYU2F2ZSIsIlRleHQiLCJUZXh0M0RCb3giLCJUZXh0M0RCb3hPcHRpb25zIiwiVGV4dEFsaWdubWVudCIsIlRleHRCYW5kIiwiVGV4dEJvdW5kaW5nQm94IiwiVGV4dEJveCIsIlRleHRDYXNlcyIsIlRleHRDZWxsIiwiVGV4dENsaXBib2FyZFR5cGUiLCJUZXh0Q29udGVudHMiLCJUZXh0RGF0YSIsIlRleHRFbGVtZW50IiwiVGV4dEZvcm0iLCJUZXh0R3JpZCIsIlRleHRKdXN0aWZpY2F0aW9uIiwiVGV4dExpbmUiLCJUZXh0UGFja2V0IiwiVGV4dFBhcmFncmFwaCIsIlRleHRQb3NpdGlvbiIsIlRleHRSZWNvZ25pemUiLCJUZXh0U2VhcmNoIiwiVGV4dFNlYXJjaFJlcG9ydCIsIlRleHRTZW50ZW5jZXMiLCJUZXh0U3RyaW5nIiwiVGV4dFN0cnVjdHVyZSIsIlRleHRTdHlsZSIsIlRleHRUcmFuc2xhdGlvbiIsIlRleHR1cmUiLCJUZXh0dXJlQ29vcmRpbmF0ZUZ1bmN0aW9uIiwiVGV4dHVyZUNvb3JkaW5hdGVTY2FsaW5nIiwiVGV4dFdvcmRzIiwiVGhlcmVmb3JlIiwiVGhlcm1vZHluYW1pY0RhdGEiLCJUaGVybW9tZXRlckdhdWdlIiwiVGhpY2siLCJUaGlja25lc3MiLCJUaGluIiwiVGhpbm5pbmciLCJUaGlzTGluayIsIlRob21wc29uR3JvdXBUaCIsIlRocmVhZCIsIlRocmVhZGluZ0xheWVyIiwiVGhyZWVKU3ltYm9sIiwiVGhyZXNob2xkIiwiVGhyb3VnaCIsIlRocm93IiwiVGh1ZU1vcnNlIiwiVGh1bWJuYWlsIiwiVGh1cnNkYXkiLCJUaWNrcyIsIlRpY2tzU3R5bGUiLCJUaWRlRGF0YSIsIlRpbGRlIiwiVGlsZGVFcXVhbCIsIlRpbGRlRnVsbEVxdWFsIiwiVGlsZGVUaWxkZSIsIlRpbWVDb25zdHJhaW5lZCIsIlRpbWVDb25zdHJhaW50IiwiVGltZURpcmVjdGlvbiIsIlRpbWVGb3JtYXQiLCJUaW1lR29hbCIsIlRpbWVsaW5lUGxvdCIsIlRpbWVPYmplY3QiLCJUaW1lT2JqZWN0USIsIlRpbWVSZW1haW5pbmciLCJUaW1lcyIsIlRpbWVzQnkiLCJUaW1lU2VyaWVzIiwiVGltZVNlcmllc0FnZ3JlZ2F0ZSIsIlRpbWVTZXJpZXNGb3JlY2FzdCIsIlRpbWVTZXJpZXNJbnNlcnQiLCJUaW1lU2VyaWVzSW52ZXJ0aWJpbGl0eSIsIlRpbWVTZXJpZXNNYXAiLCJUaW1lU2VyaWVzTWFwVGhyZWFkIiwiVGltZVNlcmllc01vZGVsIiwiVGltZVNlcmllc01vZGVsRml0IiwiVGltZVNlcmllc1Jlc2FtcGxlIiwiVGltZVNlcmllc1Jlc2NhbGUiLCJUaW1lU2VyaWVzU2hpZnQiLCJUaW1lU2VyaWVzVGhyZWFkIiwiVGltZVNlcmllc1dpbmRvdyIsIlRpbWVVc2VkIiwiVGltZVZhbHVlIiwiVGltZVdhcnBpbmdDb3JyZXNwb25kZW5jZSIsIlRpbWVXYXJwaW5nRGlzdGFuY2UiLCJUaW1lWm9uZSIsIlRpbWVab25lQ29udmVydCIsIlRpbWVab25lT2Zmc2V0IiwiVGltaW5nIiwiVGlueSIsIlRpdGxlR3JvdXBpbmciLCJUaXRzR3JvdXBUIiwiVG9Cb3hlcyIsIlRvQ2hhcmFjdGVyQ29kZSIsIlRvQ29sb3IiLCJUb0NvbnRpbnVvdXNUaW1lTW9kZWwiLCJUb0RhdGUiLCJUb2RheSIsIlRvRGlzY3JldGVUaW1lTW9kZWwiLCJUb0VudGl0eSIsIlRvZXBsaXR6TWF0cml4IiwiVG9FeHByZXNzaW9uIiwiVG9GaWxlTmFtZSIsIlRvZ2V0aGVyIiwiVG9nZ2xlIiwiVG9nZ2xlRmFsc2UiLCJUb2dnbGVyIiwiVG9nZ2xlckJhciIsIlRvZ2dsZXJCb3giLCJUb2dnbGVyQm94T3B0aW9ucyIsIlRvSGVsZEV4cHJlc3Npb24iLCJUb0ludmVydGlibGVUaW1lU2VyaWVzIiwiVG9rZW5Xb3JkcyIsIlRvbGVyYW5jZSIsIlRvTG93ZXJDYXNlIiwiVG9tb3Jyb3ciLCJUb051bWJlckZpZWxkIiwiVG9vQmlnIiwiVG9vbHRpcCIsIlRvb2x0aXBCb3giLCJUb29sdGlwQm94T3B0aW9ucyIsIlRvb2x0aXBEZWxheSIsIlRvb2x0aXBTdHlsZSIsIlRvb25TaGFkaW5nIiwiVG9wIiwiVG9wSGF0VHJhbnNmb3JtIiwiVG9Qb2xhckNvb3JkaW5hdGVzIiwiVG9wb2xvZ2ljYWxTb3J0IiwiVG9SYWRpY2FscyIsIlRvUnVsZXMiLCJUb1NwaGVyaWNhbENvb3JkaW5hdGVzIiwiVG9TdHJpbmciLCJUb3RhbCIsIlRvdGFsSGVpZ2h0IiwiVG90YWxMYXllciIsIlRvdGFsVmFyaWF0aW9uRmlsdGVyIiwiVG90YWxXaWR0aCIsIlRvdWNoUG9zaXRpb24iLCJUb3VjaHNjcmVlbkF1dG9ab29tIiwiVG91Y2hzY3JlZW5Db250cm9sUGxhY2VtZW50IiwiVG9VcHBlckNhc2UiLCJUciIsIlRyYWNlIiwiVHJhY2VBYm92ZSIsIlRyYWNlQWN0aW9uIiwiVHJhY2VCYWNrd2FyZCIsIlRyYWNlRGVwdGgiLCJUcmFjZURpYWxvZyIsIlRyYWNlRm9yd2FyZCIsIlRyYWNlSW50ZXJuYWwiLCJUcmFjZUxldmVsIiwiVHJhY2VPZmYiLCJUcmFjZU9uIiwiVHJhY2VPcmlnaW5hbCIsIlRyYWNlUHJpbnQiLCJUcmFjZVNjYW4iLCJUcmFja2VkU3ltYm9scyIsIlRyYWNraW5nRnVuY3Rpb24iLCJUcmFjeVdpZG9tRGlzdHJpYnV0aW9uIiwiVHJhZGluZ0NoYXJ0IiwiVHJhZGl0aW9uYWxGb3JtIiwiVHJhZGl0aW9uYWxGdW5jdGlvbk5vdGF0aW9uIiwiVHJhZGl0aW9uYWxOb3RhdGlvbiIsIlRyYWRpdGlvbmFsT3JkZXIiLCJUcmFpbmluZ1Byb2dyZXNzQ2hlY2twb2ludGluZyIsIlRyYWluaW5nUHJvZ3Jlc3NGdW5jdGlvbiIsIlRyYWluaW5nUHJvZ3Jlc3NNZWFzdXJlbWVudHMiLCJUcmFpbmluZ1Byb2dyZXNzUmVwb3J0aW5nIiwiVHJhaW5pbmdTdG9wcGluZ0NyaXRlcmlvbiIsIlRyYWluaW5nVXBkYXRlU2NoZWR1bGUiLCJUcmFuc2ZlckZ1bmN0aW9uQ2FuY2VsIiwiVHJhbnNmZXJGdW5jdGlvbkV4cGFuZCIsIlRyYW5zZmVyRnVuY3Rpb25GYWN0b3IiLCJUcmFuc2ZlckZ1bmN0aW9uTW9kZWwiLCJUcmFuc2ZlckZ1bmN0aW9uUG9sZXMiLCJUcmFuc2ZlckZ1bmN0aW9uVHJhbnNmb3JtIiwiVHJhbnNmZXJGdW5jdGlvblplcm9zIiwiVHJhbnNmb3JtYXRpb25DbGFzcyIsIlRyYW5zZm9ybWF0aW9uRnVuY3Rpb24iLCJUcmFuc2Zvcm1hdGlvbkZ1bmN0aW9ucyIsIlRyYW5zZm9ybWF0aW9uTWF0cml4IiwiVHJhbnNmb3JtZWREaXN0cmlidXRpb24iLCJUcmFuc2Zvcm1lZEZpZWxkIiwiVHJhbnNmb3JtZWRQcm9jZXNzIiwiVHJhbnNmb3JtZWRSZWdpb24iLCJUcmFuc2l0aW9uRGlyZWN0aW9uIiwiVHJhbnNpdGlvbkR1cmF0aW9uIiwiVHJhbnNpdGlvbkVmZmVjdCIsIlRyYW5zaXRpdmVDbG9zdXJlR3JhcGgiLCJUcmFuc2l0aXZlUmVkdWN0aW9uR3JhcGgiLCJUcmFuc2xhdGUiLCJUcmFuc2xhdGlvbk9wdGlvbnMiLCJUcmFuc2xhdGlvblRyYW5zZm9ybSIsIlRyYW5zbGl0ZXJhdGUiLCJUcmFuc3BhcmVudCIsIlRyYW5zcGFyZW50Q29sb3IiLCJUcmFuc3Bvc2UiLCJUcmFuc3Bvc2VMYXllciIsIlRyYXBTZWxlY3Rpb24iLCJUcmF2ZWxEaXJlY3Rpb25zIiwiVHJhdmVsRGlyZWN0aW9uc0RhdGEiLCJUcmF2ZWxEaXN0YW5jZSIsIlRyYXZlbERpc3RhbmNlTGlzdCIsIlRyYXZlbE1ldGhvZCIsIlRyYXZlbFRpbWUiLCJUcmVlRm9ybSIsIlRyZWVHcmFwaCIsIlRyZWVHcmFwaFEiLCJUcmVlUGxvdCIsIlRyZW5kU3R5bGUiLCJUcmlhbmdsZSIsIlRyaWFuZ2xlQ2VudGVyIiwiVHJpYW5nbGVDb25zdHJ1Y3QiLCJUcmlhbmdsZU1lYXN1cmVtZW50IiwiVHJpYW5nbGVXYXZlIiwiVHJpYW5ndWxhckRpc3RyaWJ1dGlvbiIsIlRyaWFuZ3VsYXRlTWVzaCIsIlRyaWciLCJUcmlnRXhwYW5kIiwiVHJpZ0ZhY3RvciIsIlRyaWdGYWN0b3JMaXN0IiwiVHJpZ2dlciIsIlRyaWdSZWR1Y2UiLCJUcmlnVG9FeHAiLCJUcmltbWVkTWVhbiIsIlRyaW1tZWRWYXJpYW5jZSIsIlRyb3BpY2FsU3Rvcm1EYXRhIiwiVHJ1ZSIsIlRydWVRIiwiVHJ1bmNhdGVkRGlzdHJpYnV0aW9uIiwiVHJ1bmNhdGVkUG9seWhlZHJvbiIsIlRzYWxsaXNRRXhwb25lbnRpYWxEaXN0cmlidXRpb24iLCJUc2FsbGlzUUdhdXNzaWFuRGlzdHJpYnV0aW9uIiwiVFRlc3QiLCJUdWJlIiwiVHViZUJlemllckN1cnZlQm94IiwiVHViZUJlemllckN1cnZlQm94T3B0aW9ucyIsIlR1YmVCb3giLCJUdWJlQm94T3B0aW9ucyIsIlR1YmVCU3BsaW5lQ3VydmVCb3giLCJUdWJlQlNwbGluZUN1cnZlQm94T3B0aW9ucyIsIlR1ZXNkYXkiLCJUdWtleUxhbWJkYURpc3RyaWJ1dGlvbiIsIlR1a2V5V2luZG93IiwiVHVubmVsRGF0YSIsIlR1cGxlcyIsIlR1cmFuR3JhcGgiLCJUdXJpbmdNYWNoaW5lIiwiVHV0dGVQb2x5bm9taWFsIiwiVHdvV2F5UnVsZSIsIlR5cGVkIiwiVHlwZVNwZWNpZmllciIsIlVuYXRlUSIsIlVuY29tcHJlc3MiLCJVbmNvbnN0cmFpbmVkUGFyYW1ldGVycyIsIlVuZGVmaW5lZCIsIlVuZGVyQmFyIiwiVW5kZXJmbG93IiwiVW5kZXJsaW5lZCIsIlVuZGVyb3ZlcnNjcmlwdCIsIlVuZGVyb3ZlcnNjcmlwdEJveCIsIlVuZGVyb3ZlcnNjcmlwdEJveE9wdGlvbnMiLCJVbmRlcnNjcmlwdCIsIlVuZGVyc2NyaXB0Qm94IiwiVW5kZXJzY3JpcHRCb3hPcHRpb25zIiwiVW5kZXJzZWFGZWF0dXJlRGF0YSIsIlVuZGlyZWN0ZWRFZGdlIiwiVW5kaXJlY3RlZEdyYXBoIiwiVW5kaXJlY3RlZEdyYXBoUSIsIlVuZG9PcHRpb25zIiwiVW5kb1RyYWNrZWRWYXJpYWJsZXMiLCJVbmVxdWFsIiwiVW5lcXVhbFRvIiwiVW5ldmFsdWF0ZWQiLCJVbmlmb3JtRGlzdHJpYnV0aW9uIiwiVW5pZm9ybUdyYXBoRGlzdHJpYnV0aW9uIiwiVW5pZm9ybVBvbHloZWRyb24iLCJVbmlmb3JtU3VtRGlzdHJpYnV0aW9uIiwiVW5pbnN0YWxsIiwiVW5pb24iLCJVbmlvbmVkRW50aXR5Q2xhc3MiLCJVbmlvblBsdXMiLCJVbmlxdWUiLCJVbml0YXJ5TWF0cml4USIsIlVuaXRCb3giLCJVbml0Q29udmVydCIsIlVuaXREaW1lbnNpb25zIiwiVW5pdGl6ZSIsIlVuaXRSb290VGVzdCIsIlVuaXRTaW1wbGlmeSIsIlVuaXRTdGVwIiwiVW5pdFN5c3RlbSIsIlVuaXRUcmlhbmdsZSIsIlVuaXRWZWN0b3IiLCJVbml0VmVjdG9yTGF5ZXIiLCJVbml0eURpbWVuc2lvbnMiLCJVbml2ZXJzZU1vZGVsRGF0YSIsIlVuaXZlcnNpdHlEYXRhIiwiVW5peFRpbWUiLCJVbnByb3RlY3QiLCJVbnJlZ2lzdGVyRXh0ZXJuYWxFdmFsdWF0b3IiLCJVbnNhbWVRIiwiVW5zYXZlZFZhcmlhYmxlcyIsIlVuc2V0IiwiVW5zZXRTaGFyZWQiLCJVbnRyYWNrZWRWYXJpYWJsZXMiLCJVcCIsIlVwQXJyb3ciLCJVcEFycm93QmFyIiwiVXBBcnJvd0Rvd25BcnJvdyIsIlVwZGF0ZSIsIlVwZGF0ZUR5bmFtaWNPYmplY3RzIiwiVXBkYXRlRHluYW1pY09iamVjdHNTeW5jaHJvbm91cyIsIlVwZGF0ZUludGVydmFsIiwiVXBkYXRlUGFjbGV0U2l0ZXMiLCJVcGRhdGVTZWFyY2hJbmRleCIsIlVwRG93bkFycm93IiwiVXBFcXVpbGlicml1bSIsIlVwcGVyQ2FzZVEiLCJVcHBlckxlZnRBcnJvdyIsIlVwcGVyUmlnaHRBcnJvdyIsIlVwcGVyVHJpYW5ndWxhcml6ZSIsIlVwcGVyVHJpYW5ndWxhck1hdHJpeFEiLCJVcHNhbXBsZSIsIlVwU2V0IiwiVXBTZXREZWxheWVkIiwiVXBUZWUiLCJVcFRlZUFycm93IiwiVXBUbyIsIlVwVmFsdWVzIiwiVVJMIiwiVVJMQnVpbGQiLCJVUkxEZWNvZGUiLCJVUkxEaXNwYXRjaGVyIiwiVVJMRG93bmxvYWQiLCJVUkxEb3dubG9hZFN1Ym1pdCIsIlVSTEVuY29kZSIsIlVSTEV4ZWN1dGUiLCJVUkxFeHBhbmQiLCJVUkxGZXRjaCIsIlVSTEZldGNoQXN5bmNocm9ub3VzIiwiVVJMUGFyc2UiLCJVUkxRdWVyeURlY29kZSIsIlVSTFF1ZXJ5RW5jb2RlIiwiVVJMUmVhZCIsIlVSTFJlc3BvbnNlVGltZSIsIlVSTFNhdmUiLCJVUkxTYXZlQXN5bmNocm9ub3VzIiwiVVJMU2hvcnRlbiIsIlVSTFN1Ym1pdCIsIlVzZUdyYXBoaWNzUmFuZ2UiLCJVc2VyRGVmaW5lZFdhdmVsZXQiLCJVc2luZyIsIlVzaW5nRnJvbnRFbmQiLCJVdGlsaXR5RnVuY3Rpb24iLCJWMkdldCIsIlZhbGVuY2VFcnJvckhhbmRsaW5nIiwiVmFsaWRhdGlvbkxlbmd0aCIsIlZhbGlkYXRpb25TZXQiLCJWYWx1ZSIsIlZhbHVlQm94IiwiVmFsdWVCb3hPcHRpb25zIiwiVmFsdWVEaW1lbnNpb25zIiwiVmFsdWVGb3JtIiwiVmFsdWVQcmVwcm9jZXNzaW5nRnVuY3Rpb24iLCJWYWx1ZVEiLCJWYWx1ZXMiLCJWYWx1ZXNEYXRhIiwiVmFyaWFibGVzIiwiVmFyaWFuY2UiLCJWYXJpYW5jZUVxdWl2YWxlbmNlVGVzdCIsIlZhcmlhbmNlRXN0aW1hdG9yRnVuY3Rpb24iLCJWYXJpYW5jZUdhbW1hRGlzdHJpYnV0aW9uIiwiVmFyaWFuY2VUZXN0IiwiVmVjdG9yQW5nbGUiLCJWZWN0b3JBcm91bmQiLCJWZWN0b3JBc3BlY3RSYXRpbyIsIlZlY3RvckNvbG9yRnVuY3Rpb24iLCJWZWN0b3JDb2xvckZ1bmN0aW9uU2NhbGluZyIsIlZlY3RvckRlbnNpdHlQbG90IiwiVmVjdG9yR2x5cGhEYXRhIiwiVmVjdG9yR3JlYXRlciIsIlZlY3RvckdyZWF0ZXJFcXVhbCIsIlZlY3Rvckxlc3MiLCJWZWN0b3JMZXNzRXF1YWwiLCJWZWN0b3JNYXJrZXJzIiwiVmVjdG9yUGxvdCIsIlZlY3RvclBsb3QzRCIsIlZlY3RvclBvaW50cyIsIlZlY3RvclEiLCJWZWN0b3JSYW5nZSIsIlZlY3RvcnMiLCJWZWN0b3JTY2FsZSIsIlZlY3RvclNjYWxpbmciLCJWZWN0b3JTaXplcyIsIlZlY3RvclN0eWxlIiwiVmVlIiwiVmVyYmF0aW0iLCJWZXJib3NlIiwiVmVyYm9zZUNvbnZlcnRUb1Bvc3RTY3JpcHRQYWNrZXQiLCJWZXJpZmljYXRpb25UZXN0IiwiVmVyaWZ5Q29udmVyZ2VuY2UiLCJWZXJpZnlEZXJpdmVkS2V5IiwiVmVyaWZ5RGlnaXRhbFNpZ25hdHVyZSIsIlZlcmlmeUZpbGVTaWduYXR1cmUiLCJWZXJpZnlJbnRlcnByZXRhdGlvbiIsIlZlcmlmeVNlY3VyaXR5Q2VydGlmaWNhdGVzIiwiVmVyaWZ5U29sdXRpb25zIiwiVmVyaWZ5VGVzdEFzc3VtcHRpb25zIiwiVmVyc2lvbiIsIlZlcnNpb25lZFByZWZlcmVuY2VzIiwiVmVyc2lvbk51bWJlciIsIlZlcnRleEFkZCIsIlZlcnRleENhcGFjaXR5IiwiVmVydGV4Q29sb3JzIiwiVmVydGV4Q29tcG9uZW50IiwiVmVydGV4Q29ubmVjdGl2aXR5IiwiVmVydGV4Q29udHJhY3QiLCJWZXJ0ZXhDb29yZGluYXRlUnVsZXMiLCJWZXJ0ZXhDb29yZGluYXRlcyIsIlZlcnRleENvcnJlbGF0aW9uU2ltaWxhcml0eSIsIlZlcnRleENvc2luZVNpbWlsYXJpdHkiLCJWZXJ0ZXhDb3VudCIsIlZlcnRleENvdmVyUSIsIlZlcnRleERhdGFDb29yZGluYXRlcyIsIlZlcnRleERlZ3JlZSIsIlZlcnRleERlbGV0ZSIsIlZlcnRleERpY2VTaW1pbGFyaXR5IiwiVmVydGV4RWNjZW50cmljaXR5IiwiVmVydGV4SW5Db21wb25lbnQiLCJWZXJ0ZXhJbkRlZ3JlZSIsIlZlcnRleEluZGV4IiwiVmVydGV4SmFjY2FyZFNpbWlsYXJpdHkiLCJWZXJ0ZXhMYWJlbGluZyIsIlZlcnRleExhYmVscyIsIlZlcnRleExhYmVsU3R5bGUiLCJWZXJ0ZXhMaXN0IiwiVmVydGV4Tm9ybWFscyIsIlZlcnRleE91dENvbXBvbmVudCIsIlZlcnRleE91dERlZ3JlZSIsIlZlcnRleFEiLCJWZXJ0ZXhSZW5kZXJpbmdGdW5jdGlvbiIsIlZlcnRleFJlcGxhY2UiLCJWZXJ0ZXhTaGFwZSIsIlZlcnRleFNoYXBlRnVuY3Rpb24iLCJWZXJ0ZXhTaXplIiwiVmVydGV4U3R5bGUiLCJWZXJ0ZXhUZXh0dXJlQ29vcmRpbmF0ZXMiLCJWZXJ0ZXhXZWlnaHQiLCJWZXJ0ZXhXZWlnaHRlZEdyYXBoUSIsIlZlcnRpY2FsIiwiVmVydGljYWxCYXIiLCJWZXJ0aWNhbEZvcm0iLCJWZXJ0aWNhbEdhdWdlIiwiVmVydGljYWxTZXBhcmF0b3IiLCJWZXJ0aWNhbFNsaWRlciIsIlZlcnRpY2FsVGlsZGUiLCJWaWRlbyIsIlZpZGVvRW5jb2RpbmciLCJWaWRlb0V4dHJhY3RGcmFtZXMiLCJWaWRlb0ZyYW1lTGlzdCIsIlZpZGVvRnJhbWVNYXAiLCJWaWRlb1BhdXNlIiwiVmlkZW9QbGF5IiwiVmlkZW9RIiwiVmlkZW9TdG9wIiwiVmlkZW9TdHJlYW0iLCJWaWRlb1N0cmVhbXMiLCJWaWRlb1RpbWVTZXJpZXMiLCJWaWRlb1RyYWNrcyIsIlZpZGVvVHJpbSIsIlZpZXdBbmdsZSIsIlZpZXdDZW50ZXIiLCJWaWV3TWF0cml4IiwiVmlld1BvaW50IiwiVmlld1BvaW50U2VsZWN0b3JTZXR0aW5ncyIsIlZpZXdQb3J0IiwiVmlld1Byb2plY3Rpb24iLCJWaWV3UmFuZ2UiLCJWaWV3VmVjdG9yIiwiVmlld1ZlcnRpY2FsIiwiVmlydHVhbEdyb3VwRGF0YSIsIlZpc2libGUiLCJWaXNpYmxlQ2VsbCIsIlZvaWNlU3R5bGVEYXRhIiwiVm9pZ3REaXN0cmlidXRpb24iLCJWb2xjYW5vRGF0YSIsIlZvbHVtZSIsIlZvbk1pc2VzRGlzdHJpYnV0aW9uIiwiVm9yb25vaU1lc2giLCJXYWl0QWxsIiwiV2FpdEFzeW5jaHJvbm91c1Rhc2siLCJXYWl0TmV4dCIsIldhaXRVbnRpbCIsIldha2VieURpc3RyaWJ1dGlvbiIsIldhbGxlbml1c0h5cGVyZ2VvbWV0cmljRGlzdHJpYnV0aW9uIiwiV2FyaW5nWXVsZURpc3RyaWJ1dGlvbiIsIldhcnBpbmdDb3JyZXNwb25kZW5jZSIsIldhcnBpbmdEaXN0YW5jZSIsIldhdGVyc2hlZENvbXBvbmVudHMiLCJXYXRzb25VU3F1YXJlVGVzdCIsIldhdHRzU3Ryb2dhdHpHcmFwaERpc3RyaWJ1dGlvbiIsIldhdmVsZXRCZXN0QmFzaXMiLCJXYXZlbGV0RmlsdGVyQ29lZmZpY2llbnRzIiwiV2F2ZWxldEltYWdlUGxvdCIsIldhdmVsZXRMaXN0UGxvdCIsIldhdmVsZXRNYXBJbmRleGVkIiwiV2F2ZWxldE1hdHJpeFBsb3QiLCJXYXZlbGV0UGhpIiwiV2F2ZWxldFBzaSIsIldhdmVsZXRTY2FsZSIsIldhdmVsZXRTY2Fsb2dyYW0iLCJXYXZlbGV0VGhyZXNob2xkIiwiV2Vha2x5Q29ubmVjdGVkQ29tcG9uZW50cyIsIldlYWtseUNvbm5lY3RlZEdyYXBoQ29tcG9uZW50cyIsIldlYWtseUNvbm5lY3RlZEdyYXBoUSIsIldlYWtTdGF0aW9uYXJpdHkiLCJXZWF0aGVyRGF0YSIsIldlYXRoZXJGb3JlY2FzdERhdGEiLCJXZWJBdWRpb1NlYXJjaCIsIldlYkVsZW1lbnRPYmplY3QiLCJXZWJlckUiLCJXZWJFeGVjdXRlIiwiV2ViSW1hZ2UiLCJXZWJJbWFnZVNlYXJjaCIsIldlYlNlYXJjaCIsIldlYlNlc3Npb25PYmplY3QiLCJXZWJTZXNzaW9ucyIsIldlYldpbmRvd09iamVjdCIsIldlZGdlIiwiV2VkbmVzZGF5IiwiV2VpYnVsbERpc3RyaWJ1dGlvbiIsIldlaWVyc3RyYXNzRTEiLCJXZWllcnN0cmFzc0UyIiwiV2VpZXJzdHJhc3NFMyIsIldlaWVyc3RyYXNzRXRhMSIsIldlaWVyc3RyYXNzRXRhMiIsIldlaWVyc3RyYXNzRXRhMyIsIldlaWVyc3RyYXNzSGFsZlBlcmlvZHMiLCJXZWllcnN0cmFzc0hhbGZQZXJpb2RXMSIsIldlaWVyc3RyYXNzSGFsZlBlcmlvZFcyIiwiV2VpZXJzdHJhc3NIYWxmUGVyaW9kVzMiLCJXZWllcnN0cmFzc0ludmFyaWFudEcyIiwiV2VpZXJzdHJhc3NJbnZhcmlhbnRHMyIsIldlaWVyc3RyYXNzSW52YXJpYW50cyIsIldlaWVyc3RyYXNzUCIsIldlaWVyc3RyYXNzUFByaW1lIiwiV2VpZXJzdHJhc3NTaWdtYSIsIldlaWVyc3RyYXNzWmV0YSIsIldlaWdodGVkQWRqYWNlbmN5R3JhcGgiLCJXZWlnaHRlZEFkamFjZW5jeU1hdHJpeCIsIldlaWdodGVkRGF0YSIsIldlaWdodGVkR3JhcGhRIiwiV2VpZ2h0cyIsIldlbGNoV2luZG93IiwiV2hlZWxHcmFwaCIsIldoZW5FdmVudCIsIldoaWNoIiwiV2hpbGUiLCJXaGl0ZSIsIldoaXRlTm9pc2VQcm9jZXNzIiwiV2hpdGVQb2ludCIsIldoaXRlc3BhY2UiLCJXaGl0ZXNwYWNlQ2hhcmFjdGVyIiwiV2hpdHRha2VyTSIsIldoaXR0YWtlclciLCJXaWVuZXJGaWx0ZXIiLCJXaWVuZXJQcm9jZXNzIiwiV2lnbmVyRCIsIldpZ25lclNlbWljaXJjbGVEaXN0cmlidXRpb24iLCJXaWtpZGF0YURhdGEiLCJXaWtpZGF0YVNlYXJjaCIsIldpa2lwZWRpYURhdGEiLCJXaWtpcGVkaWFTZWFyY2giLCJXaWxrc1ciLCJXaWxrc1dUZXN0IiwiV2luZERpcmVjdGlvbkRhdGEiLCJXaW5kaW5nQ291bnQiLCJXaW5kaW5nUG9seWdvbiIsIldpbmRvd0NsaWNrU2VsZWN0IiwiV2luZG93RWxlbWVudHMiLCJXaW5kb3dGbG9hdGluZyIsIldpbmRvd0ZyYW1lIiwiV2luZG93RnJhbWVFbGVtZW50cyIsIldpbmRvd01hcmdpbnMiLCJXaW5kb3dNb3ZhYmxlIiwiV2luZG93T3BhY2l0eSIsIldpbmRvd1BlcnNpc3RlbnRTdHlsZXMiLCJXaW5kb3dTZWxlY3RlZCIsIldpbmRvd1NpemUiLCJXaW5kb3dTdGF0dXNBcmVhIiwiV2luZG93VGl0bGUiLCJXaW5kb3dUb29sYmFycyIsIldpbmRvd1dpZHRoIiwiV2luZFNwZWVkRGF0YSIsIldpbmRWZWN0b3JEYXRhIiwiV2luc29yaXplZE1lYW4iLCJXaW5zb3JpemVkVmFyaWFuY2UiLCJXaXNoYXJ0TWF0cml4RGlzdHJpYnV0aW9uIiwiV2l0aCIsIldvbGZyYW1BbHBoYSIsIldvbGZyYW1BbHBoYURhdGUiLCJXb2xmcmFtQWxwaGFRdWFudGl0eSIsIldvbGZyYW1BbHBoYVJlc3VsdCIsIldvbGZyYW1MYW5ndWFnZURhdGEiLCJXb3JkIiwiV29yZEJvdW5kYXJ5IiwiV29yZENoYXJhY3RlciIsIldvcmRDbG91ZCIsIldvcmRDb3VudCIsIldvcmRDb3VudHMiLCJXb3JkRGF0YSIsIldvcmREZWZpbml0aW9uIiwiV29yZEZyZXF1ZW5jeSIsIldvcmRGcmVxdWVuY3lEYXRhIiwiV29yZExpc3QiLCJXb3JkT3JpZW50YXRpb24iLCJXb3JkU2VhcmNoIiwiV29yZFNlbGVjdGlvbkZ1bmN0aW9uIiwiV29yZFNlcGFyYXRvcnMiLCJXb3JkU3BhY2luZ3MiLCJXb3JkU3RlbSIsIldvcmRUcmFuc2xhdGlvbiIsIldvcmtpbmdQcmVjaXNpb24iLCJXcmFwQXJvdW5kIiwiV3JpdGUiLCJXcml0ZUxpbmUiLCJXcml0ZVN0cmluZyIsIldyb25za2lhbiIsIlhNTEVsZW1lbnQiLCJYTUxPYmplY3QiLCJYTUxUZW1wbGF0ZSIsIlhub3IiLCJYb3IiLCJYWVpDb2xvciIsIlllbGxvdyIsIlllc3RlcmRheSIsIll1bGVEaXNzaW1pbGFyaXR5IiwiWmVybmlrZVIiLCJaZXJvU3ltbWV0cmljIiwiWmVyb1Rlc3QiLCJaZXJvV2lkdGhUaW1lcyIsIlpldGEiLCJaZXRhWmVybyIsIlpJUENvZGVEYXRhIiwiWmlwZkRpc3RyaWJ1dGlvbiIsIlpvb21DZW50ZXIiLCJab29tRmFjdG9yIiwiWlRlc3QiLCJaVHJhbnNmb3JtIiwiJEFib3J0ZWQiLCIkQWN0aXZhdGlvbkdyb3VwSUQiLCIkQWN0aXZhdGlvbktleSIsIiRBY3RpdmF0aW9uVXNlclJlZ2lzdGVyZWQiLCIkQWRkT25zRGlyZWN0b3J5IiwiJEFsbG93RGF0YVVwZGF0ZXMiLCIkQWxsb3dFeHRlcm5hbENoYW5uZWxGdW5jdGlvbnMiLCIkQWxsb3dJbnRlcm5ldCIsIiRBc3NlcnRGdW5jdGlvbiIsIiRBc3N1bXB0aW9ucyIsIiRBc3luY2hyb25vdXNUYXNrIiwiJEF1ZGlvRGVjb2RlcnMiLCIkQXVkaW9FbmNvZGVycyIsIiRBdWRpb0lucHV0RGV2aWNlcyIsIiRBdWRpb091dHB1dERldmljZXMiLCIkQmFzZURpcmVjdG9yeSIsIiRCYXNlUGFjbGV0c0RpcmVjdG9yeSIsIiRCYXRjaElucHV0IiwiJEJhdGNoT3V0cHV0IiwiJEJsb2NrY2hhaW5CYXNlIiwiJEJveEZvcm1zIiwiJEJ5dGVPcmRlcmluZyIsIiRDYWNoZUJhc2VEaXJlY3RvcnkiLCIkQ2FuY2VsZWQiLCIkQ2hhbm5lbEJhc2UiLCIkQ2hhcmFjdGVyRW5jb2RpbmciLCIkQ2hhcmFjdGVyRW5jb2RpbmdzIiwiJENsb3VkQWNjb3VudE5hbWUiLCIkQ2xvdWRCYXNlIiwiJENsb3VkQ29ubmVjdGVkIiwiJENsb3VkQ29ubmVjdGlvbiIsIiRDbG91ZENyZWRpdHNBdmFpbGFibGUiLCIkQ2xvdWRFdmFsdWF0aW9uIiwiJENsb3VkRXhwcmVzc2lvbkJhc2UiLCIkQ2xvdWRPYmplY3ROYW1lRm9ybWF0IiwiJENsb3VkT2JqZWN0VVJMVHlwZSIsIiRDbG91ZFJvb3REaXJlY3RvcnkiLCIkQ2xvdWRTeW1ib2xCYXNlIiwiJENsb3VkVXNlcklEIiwiJENsb3VkVXNlclVVSUQiLCIkQ2xvdWRWZXJzaW9uIiwiJENsb3VkVmVyc2lvbk51bWJlciIsIiRDbG91ZFdvbGZyYW1FbmdpbmVWZXJzaW9uTnVtYmVyIiwiJENvbW1hbmRMaW5lIiwiJENvbXBpbGF0aW9uVGFyZ2V0IiwiJENvbmRpdGlvbkhvbGQiLCIkQ29uZmlndXJlZEtlcm5lbHMiLCIkQ29udGV4dCIsIiRDb250ZXh0UGF0aCIsIiRDb250cm9sQWN0aXZlU2V0dGluZyIsIiRDb29raWVzIiwiJENvb2tpZVN0b3JlIiwiJENyZWF0aW9uRGF0ZSIsIiRDdXJyZW50TGluayIsIiRDdXJyZW50VGFzayIsIiRDdXJyZW50V2ViU2Vzc2lvbiIsIiREYXRhU3RydWN0dXJlcyIsIiREYXRlU3RyaW5nRm9ybWF0IiwiJERlZmF1bHRBdWRpb0lucHV0RGV2aWNlIiwiJERlZmF1bHRBdWRpb091dHB1dERldmljZSIsIiREZWZhdWx0Rm9udCIsIiREZWZhdWx0RnJvbnRFbmQiLCIkRGVmYXVsdEltYWdpbmdEZXZpY2UiLCIkRGVmYXVsdExvY2FsQmFzZSIsIiREZWZhdWx0TWFpbGJveCIsIiREZWZhdWx0TmV0d29ya0ludGVyZmFjZSIsIiREZWZhdWx0UGF0aCIsIiREZWZhdWx0UHJveHlSdWxlcyIsIiREZWZhdWx0U3lzdGVtQ3JlZGVudGlhbFN0b3JlIiwiJERpc3BsYXkiLCIkRGlzcGxheUZ1bmN0aW9uIiwiJERpc3RyaWJ1dGVkQ29udGV4dHMiLCIkRHluYW1pY0V2YWx1YXRpb24iLCIkRWNobyIsIiRFbWJlZENvZGVFbnZpcm9ubWVudHMiLCIkRW1iZWRkYWJsZVNlcnZpY2VzIiwiJEVudGl0eVN0b3JlcyIsIiRFcGlsb2ciLCIkRXZhbHVhdGlvbkNsb3VkQmFzZSIsIiRFdmFsdWF0aW9uQ2xvdWRPYmplY3QiLCIkRXZhbHVhdGlvbkVudmlyb25tZW50IiwiJEV4cG9ydEZvcm1hdHMiLCIkRXh0ZXJuYWxJZGVudGlmaWVyVHlwZXMiLCIkRXh0ZXJuYWxTdG9yYWdlQmFzZSIsIiRGYWlsZWQiLCIkRmluYW5jaWFsRGF0YVNvdXJjZSIsIiRGb250RmFtaWxpZXMiLCIkRm9ybWF0VHlwZSIsIiRGcm9udEVuZCIsIiRGcm9udEVuZFNlc3Npb24iLCIkR2VvRW50aXR5VHlwZXMiLCIkR2VvTG9jYXRpb24iLCIkR2VvTG9jYXRpb25DaXR5IiwiJEdlb0xvY2F0aW9uQ291bnRyeSIsIiRHZW9Mb2NhdGlvblByZWNpc2lvbiIsIiRHZW9Mb2NhdGlvblNvdXJjZSIsIiRIaXN0b3J5TGVuZ3RoIiwiJEhvbWVEaXJlY3RvcnkiLCIkSFRNTEV4cG9ydFJ1bGVzIiwiJEhUVFBDb29raWVzIiwiJEhUVFBSZXF1ZXN0IiwiJElnbm9yZUVPRiIsIiRJbWFnZUZvcm1hdHRpbmdXaWR0aCIsIiRJbWFnZVJlc29sdXRpb24iLCIkSW1hZ2luZ0RldmljZSIsIiRJbWFnaW5nRGV2aWNlcyIsIiRJbXBvcnRGb3JtYXRzIiwiJEluY29taW5nTWFpbFNldHRpbmdzIiwiJEluaXRpYWxEaXJlY3RvcnkiLCIkSW5pdGlhbGl6YXRpb24iLCIkSW5pdGlhbGl6YXRpb25Db250ZXh0cyIsIiRJbnB1dCIsIiRJbnB1dEZpbGVOYW1lIiwiJElucHV0U3RyZWFtTWV0aG9kcyIsIiRJbnNwZWN0b3IiLCIkSW5zdGFsbGF0aW9uRGF0ZSIsIiRJbnN0YWxsYXRpb25EaXJlY3RvcnkiLCIkSW50ZXJmYWNlRW52aXJvbm1lbnQiLCIkSW50ZXJwcmV0ZXJUeXBlcyIsIiRJdGVyYXRpb25MaW1pdCIsIiRLZXJuZWxDb3VudCIsIiRLZXJuZWxJRCIsIiRMYW5ndWFnZSIsIiRMYXVuY2hEaXJlY3RvcnkiLCIkTGlicmFyeVBhdGgiLCIkTGljZW5zZUV4cGlyYXRpb25EYXRlIiwiJExpY2Vuc2VJRCIsIiRMaWNlbnNlUHJvY2Vzc2VzIiwiJExpY2Vuc2VTZXJ2ZXIiLCIkTGljZW5zZVN1YnByb2Nlc3NlcyIsIiRMaWNlbnNlVHlwZSIsIiRMaW5lIiwiJExpbmtlZCIsIiRMaW5rU3VwcG9ydGVkIiwiJExvYWRlZEZpbGVzIiwiJExvY2FsQmFzZSIsIiRMb2NhbFN5bWJvbEJhc2UiLCIkTWFjaGluZUFkZHJlc3NlcyIsIiRNYWNoaW5lRG9tYWluIiwiJE1hY2hpbmVEb21haW5zIiwiJE1hY2hpbmVFcHNpbG9uIiwiJE1hY2hpbmVJRCIsIiRNYWNoaW5lTmFtZSIsIiRNYWNoaW5lUHJlY2lzaW9uIiwiJE1hY2hpbmVUeXBlIiwiJE1heEV4dHJhUHJlY2lzaW9uIiwiJE1heExpY2Vuc2VQcm9jZXNzZXMiLCIkTWF4TGljZW5zZVN1YnByb2Nlc3NlcyIsIiRNYXhNYWNoaW5lTnVtYmVyIiwiJE1heE51bWJlciIsIiRNYXhQaWVjZXdpc2VDYXNlcyIsIiRNYXhQcmVjaXNpb24iLCIkTWF4Um9vdERlZ3JlZSIsIiRNZXNzYWdlR3JvdXBzIiwiJE1lc3NhZ2VMaXN0IiwiJE1lc3NhZ2VQcmVQcmludCIsIiRNZXNzYWdlcyIsIiRNaW5NYWNoaW5lTnVtYmVyIiwiJE1pbk51bWJlciIsIiRNaW5vclJlbGVhc2VOdW1iZXIiLCIkTWluUHJlY2lzaW9uIiwiJE1vYmlsZVBob25lIiwiJE1vZHVsZU51bWJlciIsIiROZXR3b3JrQ29ubmVjdGVkIiwiJE5ldHdvcmtJbnRlcmZhY2VzIiwiJE5ldHdvcmtMaWNlbnNlIiwiJE5ld01lc3NhZ2UiLCIkTmV3U3ltYm9sIiwiJE5vdGVib29rSW5saW5lU3RvcmFnZUxpbWl0IiwiJE5vdGVib29rcyIsIiROb1ZhbHVlIiwiJE51bWJlck1hcmtzIiwiJE9mZiIsIiRPcGVyYXRpbmdTeXN0ZW0iLCIkT3V0cHV0IiwiJE91dHB1dEZvcm1zIiwiJE91dHB1dFNpemVMaW1pdCIsIiRPdXRwdXRTdHJlYW1NZXRob2RzIiwiJFBhY2thZ2VzIiwiJFBhcmVudExpbmsiLCIkUGFyZW50UHJvY2Vzc0lEIiwiJFBhc3N3b3JkRmlsZSIsIiRQYXRjaExldmVsSUQiLCIkUGF0aCIsIiRQYXRobmFtZVNlcGFyYXRvciIsIiRQZXJmb3JtYW5jZUdvYWwiLCIkUGVybWlzc2lvbnMiLCIkUGVybWlzc2lvbnNHcm91cEJhc2UiLCIkUGVyc2lzdGVuY2VCYXNlIiwiJFBlcnNpc3RlbmNlUGF0aCIsIiRQaXBlU3VwcG9ydGVkIiwiJFBsb3RUaGVtZSIsIiRQb3N0IiwiJFByZSIsIiRQcmVmZXJlbmNlc0RpcmVjdG9yeSIsIiRQcmVJbml0aWFsaXphdGlvbiIsIiRQcmVQcmludCIsIiRQcmVSZWFkIiwiJFByaW50Rm9ybXMiLCIkUHJpbnRMaXRlcmFsIiwiJFByaW50b3V0M0RQcmV2aWV3ZXIiLCIkUHJvY2Vzc0lEIiwiJFByb2Nlc3NvckNvdW50IiwiJFByb2Nlc3NvclR5cGUiLCIkUHJvZHVjdEluZm9ybWF0aW9uIiwiJFByb2dyYW1OYW1lIiwiJFB1Ymxpc2hlcklEIiwiJFJhbmRvbVN0YXRlIiwiJFJlY3Vyc2lvbkxpbWl0IiwiJFJlZ2lzdGVyZWREZXZpY2VDbGFzc2VzIiwiJFJlZ2lzdGVyZWRVc2VyTmFtZSIsIiRSZWxlYXNlTnVtYmVyIiwiJFJlcXVlc3RlckFkZHJlc3MiLCIkUmVxdWVzdGVyV29sZnJhbUlEIiwiJFJlcXVlc3RlcldvbGZyYW1VVUlEIiwiJFJvb3REaXJlY3RvcnkiLCIkU2NoZWR1bGVkVGFzayIsIiRTY3JpcHRDb21tYW5kTGluZSIsIiRTY3JpcHRJbnB1dFN0cmluZyIsIiRTZWN1cmVkQXV0aGVudGljYXRpb25LZXlUb2tlbnMiLCIkU2VydmljZUNyZWRpdHNBdmFpbGFibGUiLCIkU2VydmljZXMiLCIkU2Vzc2lvbklEIiwiJFNldFBhcmVudExpbmsiLCIkU2hhcmVkRnVuY3Rpb25zIiwiJFNoYXJlZFZhcmlhYmxlcyIsIiRTb3VuZERpc3BsYXkiLCIkU291bmREaXNwbGF5RnVuY3Rpb24iLCIkU291cmNlTGluayIsIiRTU0hBdXRoZW50aWNhdGlvbiIsIiRTdWJ0aXRsZURlY29kZXJzIiwiJFN1YnRpdGxlRW5jb2RlcnMiLCIkU3VtbWFyeUJveERhdGFTaXplTGltaXQiLCIkU3VwcHJlc3NJbnB1dEZvcm1IZWFkcyIsIiRTeW5jaHJvbm91c0V2YWx1YXRpb24iLCIkU3ludGF4SGFuZGxlciIsIiRTeXN0ZW0iLCIkU3lzdGVtQ2hhcmFjdGVyRW5jb2RpbmciLCIkU3lzdGVtQ3JlZGVudGlhbFN0b3JlIiwiJFN5c3RlbUlEIiwiJFN5c3RlbU1lbW9yeSIsIiRTeXN0ZW1TaGVsbCIsIiRTeXN0ZW1UaW1lWm9uZSIsIiRTeXN0ZW1Xb3JkTGVuZ3RoIiwiJFRlbXBsYXRlUGF0aCIsIiRUZW1wb3JhcnlEaXJlY3RvcnkiLCIkVGVtcG9yYXJ5UHJlZml4IiwiJFRlc3RGaWxlTmFtZSIsIiRUZXh0U3R5bGUiLCIkVGltZWRPdXQiLCIkVGltZVVuaXQiLCIkVGltZVpvbmUiLCIkVGltZVpvbmVFbnRpdHkiLCIkVG9wRGlyZWN0b3J5IiwiJFRyYWNlT2ZmIiwiJFRyYWNlT24iLCIkVHJhY2VQYXR0ZXJuIiwiJFRyYWNlUG9zdEFjdGlvbiIsIiRUcmFjZVByZUFjdGlvbiIsIiRVbml0U3lzdGVtIiwiJFVyZ2VudCIsIiRVc2VyQWRkT25zRGlyZWN0b3J5IiwiJFVzZXJBZ2VudExhbmd1YWdlcyIsIiRVc2VyQWdlbnRNYWNoaW5lIiwiJFVzZXJBZ2VudE5hbWUiLCIkVXNlckFnZW50T3BlcmF0aW5nU3lzdGVtIiwiJFVzZXJBZ2VudFN0cmluZyIsIiRVc2VyQWdlbnRWZXJzaW9uIiwiJFVzZXJCYXNlRGlyZWN0b3J5IiwiJFVzZXJCYXNlUGFjbGV0c0RpcmVjdG9yeSIsIiRVc2VyRG9jdW1lbnRzRGlyZWN0b3J5IiwiJFVzZXJuYW1lIiwiJFVzZXJOYW1lIiwiJFVzZXJVUkxCYXNlIiwiJFZlcnNpb24iLCIkVmVyc2lvbk51bWJlciIsIiRWaWRlb0RlY29kZXJzIiwiJFZpZGVvRW5jb2RlcnMiLCIkVm9pY2VTdHlsZXMiLCIkV29sZnJhbURvY3VtZW50c0RpcmVjdG9yeSIsIiRXb2xmcmFtSUQiLCIkV29sZnJhbVVVSUQiXQo7ZnVuY3Rpb24gdChlKXtyZXR1cm4gZT8ic3RyaW5nIj09dHlwZW9mIGU/ZTplLnNvdXJjZTpudWxsfWZ1bmN0aW9uIGkoZSl7CnJldHVybiBvKCIoIixlLCIpPyIpfWZ1bmN0aW9uIG8oLi4uZSl7cmV0dXJuIGUubWFwKChlPT50KGUpKSkuam9pbigiIil9CmZ1bmN0aW9uIGEoLi4uZSl7cmV0dXJuIigiK2UubWFwKChlPT50KGUpKSkuam9pbigifCIpKyIpIn1yZXR1cm4gdD0+ewpjb25zdCBuPWEobygvKFsyLTldfFsxLTJdXGR8WzNdWzAtNV0pXF5cXi8sLyhcdypcLlx3K3xcdytcLlx3KnxcdyspLyksLyhcZCpcLlxkK3xcZCtcLlxkKnxcZCspLykscj17CmNsYXNzTmFtZToibnVtYmVyIixyZWxldmFuY2U6MCwKYmVnaW46byhuLGkoYSgvYGBbKy1dPyhcZCpcLlxkK3xcZCtcLlxkKnxcZCspLywvYChbKy1dPyhcZCpcLlxkK3xcZCtcLlxkKnxcZCspKT8vKSksaSgvXCpcXlsrLV0/XGQrLykpCn0sbD0vW2EtekEtWiRdW2EtekEtWjAtOSRdKi8scz1uZXcgU2V0KGUpLGM9e3ZhcmlhbnRzOlt7CmNsYXNzTmFtZToiYnVpbHRpbi1zeW1ib2wiLGJlZ2luOmwsIm9uOmJlZ2luIjooZSx0KT0+ewpzLmhhcyhlWzBdKXx8dC5pZ25vcmVNYXRjaCgpfX0se2NsYXNzTmFtZToic3ltYm9sIixyZWxldmFuY2U6MCxiZWdpbjpsfV19LHU9ewpjbGFzc05hbWU6Im1lc3NhZ2UtbmFtZSIscmVsZXZhbmNlOjAsYmVnaW46bygiOjoiLGwpfTtyZXR1cm57bmFtZToiTWF0aGVtYXRpY2EiLAphbGlhc2VzOlsibW1hIiwid2wiXSxjbGFzc05hbWVBbGlhc2VzOnticmFjZToicHVuY3R1YXRpb24iLHBhdHRlcm46InR5cGUiLApzbG90OiJ0eXBlIixzeW1ib2w6InZhcmlhYmxlIiwibmFtZWQtY2hhcmFjdGVyIjoidmFyaWFibGUiLAoiYnVpbHRpbi1zeW1ib2wiOiJidWlsdF9pbiIsIm1lc3NhZ2UtbmFtZSI6InN0cmluZyJ9LApjb250YWluczpbdC5DT01NRU5UKC9cKFwqLywvXCpcKS8se2NvbnRhaW5zOlsic2VsZiJdfSkse2NsYXNzTmFtZToicGF0dGVybiIsCnJlbGV2YW5jZTowLGJlZ2luOi8oW2EtekEtWiRdW2EtekEtWjAtOSRdKik/XysoW2EtekEtWiRdW2EtekEtWjAtOSRdKik/L30sewpjbGFzc05hbWU6InNsb3QiLHJlbGV2YW5jZTowLGJlZ2luOi8jW2EtekEtWiRdW2EtekEtWjAtOSRdKnwjK1swLTldPy99LHUsYyx7CmNsYXNzTmFtZToibmFtZWQtY2hhcmFjdGVyIixiZWdpbjovXFxcW1skYS16QS1aXVskYS16QS1aMC05XStcXS8KfSx0LlFVT1RFX1NUUklOR19NT0RFLHIse2NsYXNzTmFtZToib3BlcmF0b3IiLHJlbGV2YW5jZTowLApiZWdpbjovWytcLSovLDsuOkB+PT48JnxfYCdePyElXSsvfSx7Y2xhc3NOYW1lOiJicmFjZSIscmVsZXZhbmNlOjAsCmJlZ2luOi9bW1xdKCl7fV0vfV19fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiY3NzIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9PnsKdmFyIG49IlthLXpBLVotXVthLXpBLVowLTlfLV0qIixhPXsKYmVnaW46LyhbKl1ccz8pPyg/OltBLVpfLlwtXFxdK3wtLVthLXpBLVowLTlfLV0rKVxzKihcL1wqXCpcLyk/Oi8sCnJldHVybkJlZ2luOiEwLGVuZDoiOyIsZW5kc1dpdGhQYXJlbnQ6ITAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHJpYnV0ZSIsCmJlZ2luOi9cUy8sZW5kOiI6IixleGNsdWRlRW5kOiEwLHN0YXJ0czp7ZW5kc1dpdGhQYXJlbnQ6ITAsZXhjbHVkZUVuZDohMCwKY29udGFpbnM6W3tiZWdpbjovW1x3LV0rXCgvLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJidWlsdF9pbiIsCmJlZ2luOi9bXHctXSsvfSx7YmVnaW46L1woLyxlbmQ6L1wpLywKY29udGFpbnM6W2UuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQ1NTX05VTUJFUl9NT0RFXX1dCn0sZS5DU1NfTlVNQkVSX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7CmNsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiI1swLTlBLUZhLWZdKyJ9LHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiIhaW1wb3J0YW50In1dCn19XX07cmV0dXJue25hbWU6IkNTUyIsY2FzZV9pbnNlbnNpdGl2ZTohMCxpbGxlZ2FsOi9bPXwnXCRdLywKY29udGFpbnM6W2UuQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToic2VsZWN0b3ItaWQiLApiZWdpbjovI1tBLVphLXowLTlfLV0rL30se2NsYXNzTmFtZToic2VsZWN0b3ItY2xhc3MiLGJlZ2luOiJcXC4iK259LHsKY2xhc3NOYW1lOiJzZWxlY3Rvci1hdHRyIixiZWdpbjovXFsvLGVuZDovXF0vLGlsbGVnYWw6IiQiLApjb250YWluczpbZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREVdfSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci1wc2V1ZG8iLApiZWdpbjovOig6KT9bYS16QS1aMC05XysoKSInLi1dKy99LHtiZWdpbjoiQChwYWdlfGZvbnQtZmFjZSkiLApsZXhlbWVzOiJAW2Etei1dKyIsa2V5d29yZHM6IkBwYWdlIEBmb250LWZhY2UifSx7YmVnaW46IkAiLGVuZDoiW3s7XSIsCmlsbGVnYWw6LzovLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJrZXl3b3JkIiwKYmVnaW46L0AtP1x3W1x3XSooLVx3KykqL30se2JlZ2luOi9ccy8sZW5kc1dpdGhQYXJlbnQ6ITAsZXhjbHVkZUVuZDohMCwKcmVsZXZhbmNlOjAsa2V5d29yZHM6ImFuZCBvciBub3Qgb25seSIsY29udGFpbnM6W3tiZWdpbjovW2Etei1dKzovLApjbGFzc05hbWU6ImF0dHJpYnV0ZSJ9LGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQ1NTX05VTUJFUl9NT0RFXQp9XX0se2NsYXNzTmFtZToic2VsZWN0b3ItdGFnIixiZWdpbjpuLHJlbGV2YW5jZTowfSx7YmVnaW46L1x7LyxlbmQ6L1x9LywKaWxsZWdhbDovXFMvLGNvbnRhaW5zOltlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHtiZWdpbjovOy99LGFdfV19fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgibmdpbngiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e2NvbnN0IG49ewpjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOi9cJFxkKy99LHtiZWdpbjovXCRcey8sZW5kOi9cfS99LHsKYmVnaW46L1skQF0vK2UuVU5ERVJTQ09SRV9JREVOVF9SRX1dfSxhPXtlbmRzV2l0aFBhcmVudDohMCxrZXl3b3Jkczp7CiRwYXR0ZXJuOiJbYS16L19dKyIsCmxpdGVyYWw6Im9uIG9mZiB5ZXMgbm8gdHJ1ZSBmYWxzZSBub25lIGJsb2NrZWQgZGVidWcgaW5mbyBub3RpY2Ugd2FybiBlcnJvciBjcml0IHNlbGVjdCBicmVhayBsYXN0IHBlcm1hbmVudCByZWRpcmVjdCBrcXVldWUgcnRzaWcgZXBvbGwgcG9sbCAvZGV2L3BvbGwiCn0scmVsZXZhbmNlOjAsaWxsZWdhbDoiPT4iLGNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsbl0sdmFyaWFudHM6W3tiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi8nLyxlbmQ6LycvCn1dfSx7YmVnaW46IihbYS16XSspOi8iLGVuZDoiXFxzIixlbmRzV2l0aFBhcmVudDohMCxleGNsdWRlRW5kOiEwLGNvbnRhaW5zOltuXQp9LHtjbGFzc05hbWU6InJlZ2V4cCIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxuXSx2YXJpYW50czpbe2JlZ2luOiJcXHNcXF4iLAplbmQ6Ilxcc3xcXHt8OyIscmV0dXJuRW5kOiEwfSx7YmVnaW46In5cXCo/XFxzKyIsZW5kOiJcXHN8XFx7fDsiLHJldHVybkVuZDohMH0sewpiZWdpbjoiXFwqKFxcLlthLXpcXC1dKykrIn0se2JlZ2luOiIoW2EtelxcLV0rXFwuKStcXCoifV19LHtjbGFzc05hbWU6Im51bWJlciIsCmJlZ2luOiJcXGJcXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfSg6XFxkezEsNX0pP1xcYiJ9LHsKY2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiJcXGJcXGQrW2tLbU1nR2RzaGR3eV0qXFxiIixyZWxldmFuY2U6MH0sbl19O3JldHVybnsKbmFtZToiTmdpbnggY29uZmlnIixhbGlhc2VzOlsibmdpbnhjb25mIl0sY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsewpiZWdpbjplLlVOREVSU0NPUkVfSURFTlRfUkUrIlxccytcXHsiLHJldHVybkJlZ2luOiEwLGVuZDovXHsvLGNvbnRhaW5zOlt7CmNsYXNzTmFtZToic2VjdGlvbiIsYmVnaW46ZS5VTkRFUlNDT1JFX0lERU5UX1JFfV0scmVsZXZhbmNlOjB9LHsKYmVnaW46ZS5VTkRFUlNDT1JFX0lERU5UX1JFKyJcXHMiLGVuZDoiO3xcXHsiLHJldHVybkJlZ2luOiEwLGNvbnRhaW5zOlt7CmNsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjplLlVOREVSU0NPUkVfSURFTlRfUkUsc3RhcnRzOmF9XSxyZWxldmFuY2U6MH1dLAppbGxlZ2FsOiJbXlxcc1xcfV0ifX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInNjc3MiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e3ZhciB0PSJAW2Etei1dKyIsaT17CmNsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOiIoXFwkW2EtekEtWi1dW2EtekEtWjAtOV8tXSopXFxiIn0scj17CmNsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiI1swLTlBLUZhLWZdKyJ9CjtyZXR1cm4gZS5DU1NfTlVNQkVSX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSwKZS5BUE9TX1NUUklOR19NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUse25hbWU6IlNDU1MiLGNhc2VfaW5zZW5zaXRpdmU6ITAsCmlsbGVnYWw6Ils9L3wnXSIsY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHsKY2xhc3NOYW1lOiJzZWxlY3Rvci1pZCIsYmVnaW46IiNbQS1aYS16MC05Xy1dKyIscmVsZXZhbmNlOjB9LHsKY2xhc3NOYW1lOiJzZWxlY3Rvci1jbGFzcyIsYmVnaW46IlxcLltBLVphLXowLTlfLV0rIixyZWxldmFuY2U6MH0sewpjbGFzc05hbWU6InNlbGVjdG9yLWF0dHIiLGJlZ2luOiJcXFsiLGVuZDoiXFxdIixpbGxlZ2FsOiIkIn0sewpjbGFzc05hbWU6InNlbGVjdG9yLXRhZyIsCmJlZ2luOiJcXGIoYXxhYmJyfGFjcm9ueW18YWRkcmVzc3xhcmVhfGFydGljbGV8YXNpZGV8YXVkaW98YnxiYXNlfGJpZ3xibG9ja3F1b3RlfGJvZHl8YnJ8YnV0dG9ufGNhbnZhc3xjYXB0aW9ufGNpdGV8Y29kZXxjb2x8Y29sZ3JvdXB8Y29tbWFuZHxkYXRhbGlzdHxkZHxkZWx8ZGV0YWlsc3xkZm58ZGl2fGRsfGR0fGVtfGVtYmVkfGZpZWxkc2V0fGZpZ2NhcHRpb258ZmlndXJlfGZvb3Rlcnxmb3JtfGZyYW1lfGZyYW1lc2V0fChoWzEtNl0pfGhlYWR8aGVhZGVyfGhncm91cHxocnxodG1sfGl8aWZyYW1lfGltZ3xpbnB1dHxpbnN8a2JkfGtleWdlbnxsYWJlbHxsZWdlbmR8bGl8bGlua3xtYXB8bWFya3xtZXRhfG1ldGVyfG5hdnxub2ZyYW1lc3xub3NjcmlwdHxvYmplY3R8b2x8b3B0Z3JvdXB8b3B0aW9ufG91dHB1dHxwfHBhcmFtfHByZXxwcm9ncmVzc3xxfHJwfHJ0fHJ1Ynl8c2FtcHxzY3JpcHR8c2VjdGlvbnxzZWxlY3R8c21hbGx8c3BhbnxzdHJpa2V8c3Ryb25nfHN0eWxlfHN1YnxzdXB8dGFibGV8dGJvZHl8dGR8dGV4dGFyZWF8dGZvb3R8dGh8dGhlYWR8dGltZXx0aXRsZXx0cnx0dHx1bHx2YXJ8dmlkZW8pXFxiIiwKcmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InNlbGVjdG9yLXBzZXVkbyIsCmJlZ2luOiI6KHZpc2l0ZWR8dmFsaWR8cm9vdHxyaWdodHxyZXF1aXJlZHxyZWFkLXdyaXRlfHJlYWQtb25seXxvdXQtcmFuZ2V8b3B0aW9uYWx8b25seS1vZi10eXBlfG9ubHktY2hpbGR8bnRoLW9mLXR5cGV8bnRoLWxhc3Qtb2YtdHlwZXxudGgtbGFzdC1jaGlsZHxudGgtY2hpbGR8bm90fGxpbmt8bGVmdHxsYXN0LW9mLXR5cGV8bGFzdC1jaGlsZHxsYW5nfGludmFsaWR8aW5kZXRlcm1pbmF0ZXxpbi1yYW5nZXxob3Zlcnxmb2N1c3xmaXJzdC1vZi10eXBlfGZpcnN0LWxpbmV8Zmlyc3QtbGV0dGVyfGZpcnN0LWNoaWxkfGZpcnN0fGVuYWJsZWR8ZW1wdHl8ZGlzYWJsZWR8ZGVmYXVsdHxjaGVja2VkfGJlZm9yZXxhZnRlcnxhY3RpdmUpIgp9LHtjbGFzc05hbWU6InNlbGVjdG9yLXBzZXVkbyIsCmJlZ2luOiI6OihhZnRlcnxiZWZvcmV8Y2hvaWNlc3xmaXJzdC1sZXR0ZXJ8Zmlyc3QtbGluZXxyZXBlYXQtaW5kZXh8cmVwZWF0LWl0ZW18c2VsZWN0aW9ufHZhbHVlKSIKfSxpLHtjbGFzc05hbWU6ImF0dHJpYnV0ZSIsCmJlZ2luOiJcXGIoc3JjfHotaW5kZXh8d29yZC13cmFwfHdvcmQtc3BhY2luZ3x3b3JkLWJyZWFrfHdpZHRofHdpZG93c3x3aGl0ZS1zcGFjZXx2aXNpYmlsaXR5fHZlcnRpY2FsLWFsaWdufHVuaWNvZGUtYmlkaXx0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbnx0cmFuc2l0aW9uLXByb3BlcnR5fHRyYW5zaXRpb24tZHVyYXRpb258dHJhbnNpdGlvbi1kZWxheXx0cmFuc2l0aW9ufHRyYW5zZm9ybS1zdHlsZXx0cmFuc2Zvcm0tb3JpZ2lufHRyYW5zZm9ybXx0b3B8dGV4dC11bmRlcmxpbmUtcG9zaXRpb258dGV4dC10cmFuc2Zvcm18dGV4dC1zaGFkb3d8dGV4dC1yZW5kZXJpbmd8dGV4dC1vdmVyZmxvd3x0ZXh0LWluZGVudHx0ZXh0LWRlY29yYXRpb24tc3R5bGV8dGV4dC1kZWNvcmF0aW9uLWxpbmV8dGV4dC1kZWNvcmF0aW9uLWNvbG9yfHRleHQtZGVjb3JhdGlvbnx0ZXh0LWFsaWduLWxhc3R8dGV4dC1hbGlnbnx0YWItc2l6ZXx0YWJsZS1sYXlvdXR8cmlnaHR8cmVzaXplfHF1b3Rlc3xwb3NpdGlvbnxwb2ludGVyLWV2ZW50c3xwZXJzcGVjdGl2ZS1vcmlnaW58cGVyc3BlY3RpdmV8cGFnZS1icmVhay1pbnNpZGV8cGFnZS1icmVhay1iZWZvcmV8cGFnZS1icmVhay1hZnRlcnxwYWRkaW5nLXRvcHxwYWRkaW5nLXJpZ2h0fHBhZGRpbmctbGVmdHxwYWRkaW5nLWJvdHRvbXxwYWRkaW5nfG92ZXJmbG93LXl8b3ZlcmZsb3cteHxvdmVyZmxvdy13cmFwfG92ZXJmbG93fG91dGxpbmUtd2lkdGh8b3V0bGluZS1zdHlsZXxvdXRsaW5lLW9mZnNldHxvdXRsaW5lLWNvbG9yfG91dGxpbmV8b3JwaGFuc3xvcmRlcnxvcGFjaXR5fG9iamVjdC1wb3NpdGlvbnxvYmplY3QtZml0fG5vcm1hbHxub25lfG5hdi11cHxuYXYtcmlnaHR8bmF2LWxlZnR8bmF2LWluZGV4fG5hdi1kb3dufG1pbi13aWR0aHxtaW4taGVpZ2h0fG1heC13aWR0aHxtYXgtaGVpZ2h0fG1hc2t8bWFya3N8bWFyZ2luLXRvcHxtYXJnaW4tcmlnaHR8bWFyZ2luLWxlZnR8bWFyZ2luLWJvdHRvbXxtYXJnaW58bGlzdC1zdHlsZS10eXBlfGxpc3Qtc3R5bGUtcG9zaXRpb258bGlzdC1zdHlsZS1pbWFnZXxsaXN0LXN0eWxlfGxpbmUtaGVpZ2h0fGxldHRlci1zcGFjaW5nfGxlZnR8anVzdGlmeS1jb250ZW50fGluaXRpYWx8aW5oZXJpdHxpbWUtbW9kZXxpbWFnZS1vcmllbnRhdGlvbnxpbWFnZS1yZXNvbHV0aW9ufGltYWdlLXJlbmRlcmluZ3xpY29ufGh5cGhlbnN8aGVpZ2h0fGZvbnQtd2VpZ2h0fGZvbnQtdmFyaWFudC1saWdhdHVyZXN8Zm9udC12YXJpYW50fGZvbnQtc3R5bGV8Zm9udC1zdHJldGNofGZvbnQtc2l6ZS1hZGp1c3R8Zm9udC1zaXplfGZvbnQtbGFuZ3VhZ2Utb3ZlcnJpZGV8Zm9udC1rZXJuaW5nfGZvbnQtZmVhdHVyZS1zZXR0aW5nc3xmb250LWZhbWlseXxmb250fGZsb2F0fGZsZXgtd3JhcHxmbGV4LXNocmlua3xmbGV4LWdyb3d8ZmxleC1mbG93fGZsZXgtZGlyZWN0aW9ufGZsZXgtYmFzaXN8ZmxleHxmaWx0ZXJ8ZW1wdHktY2VsbHN8ZGlzcGxheXxkaXJlY3Rpb258Y3Vyc29yfGNvdW50ZXItcmVzZXR8Y291bnRlci1pbmNyZW1lbnR8Y29udGVudHxjb2x1bW4td2lkdGh8Y29sdW1uLXNwYW58Y29sdW1uLXJ1bGUtd2lkdGh8Y29sdW1uLXJ1bGUtc3R5bGV8Y29sdW1uLXJ1bGUtY29sb3J8Y29sdW1uLXJ1bGV8Y29sdW1uLWdhcHxjb2x1bW4tZmlsbHxjb2x1bW4tY291bnR8Y29sdW1uc3xjb2xvcnxjbGlwLXBhdGh8Y2xpcHxjbGVhcnxjYXB0aW9uLXNpZGV8YnJlYWstaW5zaWRlfGJyZWFrLWJlZm9yZXxicmVhay1hZnRlcnxib3gtc2l6aW5nfGJveC1zaGFkb3d8Ym94LWRlY29yYXRpb24tYnJlYWt8Ym90dG9tfGJvcmRlci13aWR0aHxib3JkZXItdG9wLXdpZHRofGJvcmRlci10b3Atc3R5bGV8Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXN8Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1c3xib3JkZXItdG9wLWNvbG9yfGJvcmRlci10b3B8Ym9yZGVyLXN0eWxlfGJvcmRlci1zcGFjaW5nfGJvcmRlci1yaWdodC13aWR0aHxib3JkZXItcmlnaHQtc3R5bGV8Ym9yZGVyLXJpZ2h0LWNvbG9yfGJvcmRlci1yaWdodHxib3JkZXItcmFkaXVzfGJvcmRlci1sZWZ0LXdpZHRofGJvcmRlci1sZWZ0LXN0eWxlfGJvcmRlci1sZWZ0LWNvbG9yfGJvcmRlci1sZWZ0fGJvcmRlci1pbWFnZS13aWR0aHxib3JkZXItaW1hZ2Utc291cmNlfGJvcmRlci1pbWFnZS1zbGljZXxib3JkZXItaW1hZ2UtcmVwZWF0fGJvcmRlci1pbWFnZS1vdXRzZXR8Ym9yZGVyLWltYWdlfGJvcmRlci1jb2xvcnxib3JkZXItY29sbGFwc2V8Ym9yZGVyLWJvdHRvbS13aWR0aHxib3JkZXItYm90dG9tLXN0eWxlfGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzfGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXN8Ym9yZGVyLWJvdHRvbS1jb2xvcnxib3JkZXItYm90dG9tfGJvcmRlcnxiYWNrZ3JvdW5kLXNpemV8YmFja2dyb3VuZC1yZXBlYXR8YmFja2dyb3VuZC1wb3NpdGlvbnxiYWNrZ3JvdW5kLW9yaWdpbnxiYWNrZ3JvdW5kLWltYWdlfGJhY2tncm91bmQtY29sb3J8YmFja2dyb3VuZC1jbGlwfGJhY2tncm91bmQtYXR0YWNobWVudHxiYWNrZ3JvdW5kLWJsZW5kLW1vZGV8YmFja2dyb3VuZHxiYWNrZmFjZS12aXNpYmlsaXR5fGF1dG98YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbnxhbmltYXRpb24tcGxheS1zdGF0ZXxhbmltYXRpb24tbmFtZXxhbmltYXRpb24taXRlcmF0aW9uLWNvdW50fGFuaW1hdGlvbi1maWxsLW1vZGV8YW5pbWF0aW9uLWR1cmF0aW9ufGFuaW1hdGlvbi1kaXJlY3Rpb258YW5pbWF0aW9uLWRlbGF5fGFuaW1hdGlvbnxhbGlnbi1zZWxmfGFsaWduLWl0ZW1zfGFsaWduLWNvbnRlbnQpXFxiIiwKaWxsZWdhbDoiW15cXHNdIn0sewpiZWdpbjoiXFxiKHdoaXRlc3BhY2V8d2FpdHx3LXJlc2l6ZXx2aXNpYmxlfHZlcnRpY2FsLXRleHR8dmVydGljYWwtaWRlb2dyYXBoaWN8dXBwZXJjYXNlfHVwcGVyLXJvbWFufHVwcGVyLWFscGhhfHVuZGVybGluZXx0cmFuc3BhcmVudHx0b3B8dGhpbnx0aGlja3x0ZXh0fHRleHQtdG9wfHRleHQtYm90dG9tfHRiLXJsfHRhYmxlLWhlYWRlci1ncm91cHx0YWJsZS1mb290ZXItZ3JvdXB8c3ctcmVzaXplfHN1cGVyfHN0cmljdHxzdGF0aWN8c3F1YXJlfHNvbGlkfHNtYWxsLWNhcHN8c2VwYXJhdGV8c2UtcmVzaXplfHNjcm9sbHxzLXJlc2l6ZXxydGx8cm93LXJlc2l6ZXxyaWRnZXxyaWdodHxyZXBlYXR8cmVwZWF0LXl8cmVwZWF0LXh8cmVsYXRpdmV8cHJvZ3Jlc3N8cG9pbnRlcnxvdmVybGluZXxvdXRzaWRlfG91dHNldHxvYmxpcXVlfG5vd3JhcHxub3QtYWxsb3dlZHxub3JtYWx8bm9uZXxudy1yZXNpemV8bm8tcmVwZWF0fG5vLWRyb3B8bmV3c3BhcGVyfG5lLXJlc2l6ZXxuLXJlc2l6ZXxtb3ZlfG1pZGRsZXxtZWRpdW18bHRyfGxyLXRifGxvd2VyY2FzZXxsb3dlci1yb21hbnxsb3dlci1hbHBoYXxsb29zZXxsaXN0LWl0ZW18bGluZXxsaW5lLXRocm91Z2h8bGluZS1lZGdlfGxpZ2h0ZXJ8bGVmdHxrZWVwLWFsbHxqdXN0aWZ5fGl0YWxpY3xpbnRlci13b3JkfGludGVyLWlkZW9ncmFwaHxpbnNpZGV8aW5zZXR8aW5saW5lfGlubGluZS1ibG9ja3xpbmhlcml0fGluYWN0aXZlfGlkZW9ncmFwaC1zcGFjZXxpZGVvZ3JhcGgtcGFyZW50aGVzaXN8aWRlb2dyYXBoLW51bWVyaWN8aWRlb2dyYXBoLWFscGhhfGhvcml6b250YWx8aGlkZGVufGhlbHB8aGFuZHxncm9vdmV8Zml4ZWR8ZWxsaXBzaXN8ZS1yZXNpemV8ZG91YmxlfGRvdHRlZHxkaXN0cmlidXRlfGRpc3RyaWJ1dGUtc3BhY2V8ZGlzdHJpYnV0ZS1sZXR0ZXJ8ZGlzdHJpYnV0ZS1hbGwtbGluZXN8ZGlzY3xkaXNhYmxlZHxkZWZhdWx0fGRlY2ltYWx8ZGFzaGVkfGNyb3NzaGFpcnxjb2xsYXBzZXxjb2wtcmVzaXplfGNpcmNsZXxjaGFyfGNlbnRlcnxjYXBpdGFsaXplfGJyZWFrLXdvcmR8YnJlYWstYWxsfGJvdHRvbXxib3RofGJvbGRlcnxib2xkfGJsb2NrfGJpZGktb3ZlcnJpZGV8YmVsb3d8YmFzZWxpbmV8YXV0b3xhbHdheXN8YWxsLXNjcm9sbHxhYnNvbHV0ZXx0YWJsZXx0YWJsZS1jZWxsKVxcYiIKfSx7YmVnaW46IjoiLGVuZDoiOyIsCmNvbnRhaW5zOltpLHIsZS5DU1NfTlVNQkVSX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUsewpjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiIhaW1wb3J0YW50In1dfSx7YmVnaW46IkAocGFnZXxmb250LWZhY2UpIixsZXhlbWVzOnQsCmtleXdvcmRzOiJAcGFnZSBAZm9udC1mYWNlIn0se2JlZ2luOiJAIixlbmQ6Ilt7O10iLHJldHVybkJlZ2luOiEwLAprZXl3b3JkczoiYW5kIG9yIG5vdCBvbmx5Iixjb250YWluczpbe2JlZ2luOnQsY2xhc3NOYW1lOiJrZXl3b3JkIgp9LGksZS5RVU9URV9TVFJJTkdfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUscixlLkNTU19OVU1CRVJfTU9ERV19XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJodHRwIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9PnsKdmFyIG49IkhUVFAvWzAtOVxcLl0rIjtyZXR1cm57bmFtZToiSFRUUCIsYWxpYXNlczpbImh0dHBzIl0saWxsZWdhbDoiXFxTIiwKY29udGFpbnM6W3tiZWdpbjoiXiIrbixlbmQ6IiQiLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJudW1iZXIiLApiZWdpbjoiXFxiXFxkezN9XFxiIn1dfSx7YmVnaW46Il5bQS1aXSsgKC4qPykgIituKyIkIixyZXR1cm5CZWdpbjohMCxlbmQ6IiQiLApjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiICIsZW5kOiIgIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMH0sewpiZWdpbjpufSx7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiW0EtWl0rIn1dfSx7Y2xhc3NOYW1lOiJhdHRyaWJ1dGUiLApiZWdpbjoiXlxcdyIsZW5kOiI6ICIsZXhjbHVkZUVuZDohMCxpbGxlZ2FsOiJcXG58XFxzfD0iLHN0YXJ0czp7ZW5kOiIkIiwKcmVsZXZhbmNlOjB9fSx7YmVnaW46IlxcblxcbiIsc3RhcnRzOntzdWJMYW5ndWFnZTpbXSxlbmRzV2l0aFBhcmVudDohMH19XX19Cn0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgicHJvcGVydGllcyIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57CnZhciBuPSJbIFxcdFxcZl0qIixhPW4rIls6PV0iK24sdD0iKCIrYSsifFsgXFx0XFxmXSspIixyPSIoW15cXFxcXFxXOj0gXFx0XFxmXFxuXXxcXFxcLikrIixzPSIoW15cXFxcOj0gXFx0XFxmXFxuXXxcXFxcLikrIixpPXsKZW5kOnQscmVsZXZhbmNlOjAsc3RhcnRzOntjbGFzc05hbWU6InN0cmluZyIsZW5kOi8kLyxyZWxldmFuY2U6MCxjb250YWluczpbewpiZWdpbjoiXFxcXFxcbiJ9XX19O3JldHVybntuYW1lOiIucHJvcGVydGllcyIsY2FzZV9pbnNlbnNpdGl2ZTohMCxpbGxlZ2FsOi9cUy8sCmNvbnRhaW5zOltlLkNPTU1FTlQoIl5cXHMqWyEjXSIsIiQiKSx7cmV0dXJuQmVnaW46ITAsdmFyaWFudHM6W3tiZWdpbjpyK2EsCnJlbGV2YW5jZToxfSx7YmVnaW46cisiWyBcXHRcXGZdKyIscmVsZXZhbmNlOjB9XSxjb250YWluczpbe2NsYXNzTmFtZToiYXR0ciIsCmJlZ2luOnIsZW5kc1BhcmVudDohMCxyZWxldmFuY2U6MH1dLHN0YXJ0czppfSx7YmVnaW46cyt0LHJldHVybkJlZ2luOiEwLApyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToibWV0YSIsYmVnaW46cyxlbmRzUGFyZW50OiEwLHJlbGV2YW5jZTowfV0sCnN0YXJ0czppfSx7Y2xhc3NOYW1lOiJhdHRyIixyZWxldmFuY2U6MCxiZWdpbjpzK24rIiQifV19fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgibHVhIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9PnsKY29uc3QgdD0iXFxbPSpcXFsiLGE9IlxcXT0qXFxdIixuPXtiZWdpbjp0LGVuZDphLGNvbnRhaW5zOlsic2VsZiJdCn0sbz1bZS5DT01NRU5UKCItLSg/IVxcWz0qXFxbKSIsIiQiKSxlLkNPTU1FTlQoIi0tXFxbPSpcXFsiLGEse2NvbnRhaW5zOltuXSwKcmVsZXZhbmNlOjEwfSldO3JldHVybntuYW1lOiJMdWEiLGtleXdvcmRzOnskcGF0dGVybjplLlVOREVSU0NPUkVfSURFTlRfUkUsCmxpdGVyYWw6InRydWUgZmFsc2UgbmlsIiwKa2V5d29yZDoiYW5kIGJyZWFrIGRvIGVsc2UgZWxzZWlmIGVuZCBmb3IgZ290byBpZiBpbiBsb2NhbCBub3Qgb3IgcmVwZWF0IHJldHVybiB0aGVuIHVudGlsIHdoaWxlIiwKYnVpbHRfaW46Il9HIF9FTlYgX1ZFUlNJT04gX19pbmRleCBfX25ld2luZGV4IF9fbW9kZSBfX2NhbGwgX19tZXRhdGFibGUgX190b3N0cmluZyBfX2xlbiBfX2djIF9fYWRkIF9fc3ViIF9fbXVsIF9fZGl2IF9fbW9kIF9fcG93IF9fY29uY2F0IF9fdW5tIF9fZXEgX19sdCBfX2xlIGFzc2VydCBjb2xsZWN0Z2FyYmFnZSBkb2ZpbGUgZXJyb3IgZ2V0ZmVudiBnZXRtZXRhdGFibGUgaXBhaXJzIGxvYWQgbG9hZGZpbGUgbG9hZHN0cmluZyBtb2R1bGUgbmV4dCBwYWlycyBwY2FsbCBwcmludCByYXdlcXVhbCByYXdnZXQgcmF3c2V0IHJlcXVpcmUgc2VsZWN0IHNldGZlbnYgc2V0bWV0YXRhYmxlIHRvbnVtYmVyIHRvc3RyaW5nIHR5cGUgdW5wYWNrIHhwY2FsbCBhcmcgc2VsZiBjb3JvdXRpbmUgcmVzdW1lIHlpZWxkIHN0YXR1cyB3cmFwIGNyZWF0ZSBydW5uaW5nIGRlYnVnIGdldHVwdmFsdWUgZGVidWcgc2V0aG9vayBnZXRtZXRhdGFibGUgZ2V0aG9vayBzZXRtZXRhdGFibGUgc2V0bG9jYWwgdHJhY2ViYWNrIHNldGZlbnYgZ2V0aW5mbyBzZXR1cHZhbHVlIGdldGxvY2FsIGdldHJlZ2lzdHJ5IGdldGZlbnYgaW8gbGluZXMgd3JpdGUgY2xvc2UgZmx1c2ggb3BlbiBvdXRwdXQgdHlwZSByZWFkIHN0ZGVyciBzdGRpbiBpbnB1dCBzdGRvdXQgcG9wZW4gdG1wZmlsZSBtYXRoIGxvZyBtYXggYWNvcyBodWdlIGxkZXhwIHBpIGNvcyB0YW5oIHBvdyBkZWcgdGFuIGNvc2ggc2luaCByYW5kb20gcmFuZG9tc2VlZCBmcmV4cCBjZWlsIGZsb29yIHJhZCBhYnMgc3FydCBtb2RmIGFzaW4gbWluIG1vZCBmbW9kIGxvZzEwIGF0YW4yIGV4cCBzaW4gYXRhbiBvcyBleGl0IHNldGxvY2FsZSBkYXRlIGdldGVudiBkaWZmdGltZSByZW1vdmUgdGltZSBjbG9jayB0bXBuYW1lIHJlbmFtZSBleGVjdXRlIHBhY2thZ2UgcHJlbG9hZCBsb2FkbGliIGxvYWRlZCBsb2FkZXJzIGNwYXRoIGNvbmZpZyBwYXRoIHNlZWFsbCBzdHJpbmcgc3ViIHVwcGVyIGxlbiBnZmluZCByZXAgZmluZCBtYXRjaCBjaGFyIGR1bXAgZ21hdGNoIHJldmVyc2UgYnl0ZSBmb3JtYXQgZ3N1YiBsb3dlciB0YWJsZSBzZXRuIGluc2VydCBnZXRuIGZvcmVhY2hpIG1heG4gZm9yZWFjaCBjb25jYXQgc29ydCByZW1vdmUiCn0sY29udGFpbnM6by5jb25jYXQoW3tjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJmdW5jdGlvbiIsZW5kOiJcXCkiLApjb250YWluczpbZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7CmJlZ2luOiIoW19hLXpBLVpdXFx3KlxcLikqKFtfYS16QS1aXVxcdyo6KT9bX2EtekEtWl1cXHcqIn0pLHtjbGFzc05hbWU6InBhcmFtcyIsCmJlZ2luOiJcXCgiLGVuZHNXaXRoUGFyZW50OiEwLGNvbnRhaW5zOm99XS5jb25jYXQobykKfSxlLkNfTlVNQkVSX01PREUsZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUse2NsYXNzTmFtZToic3RyaW5nIiwKYmVnaW46dCxlbmQ6YSxjb250YWluczpbbl0scmVsZXZhbmNlOjV9XSl9fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgieG1sIiwoKCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZShlKXsKcmV0dXJuIGU/InN0cmluZyI9PXR5cGVvZiBlP2U6ZS5zb3VyY2U6bnVsbH1mdW5jdGlvbiBuKGUpe3JldHVybiBhKCIoPz0iLGUsIikiKX0KZnVuY3Rpb24gYSguLi5uKXtyZXR1cm4gbi5tYXAoKG49PmUobikpKS5qb2luKCIiKX1mdW5jdGlvbiBzKC4uLm4pewpyZXR1cm4iKCIrbi5tYXAoKG49PmUobikpKS5qb2luKCJ8IikrIikifXJldHVybiBlPT57CmNvbnN0IHQ9YSgvW0EtWl9dLyxhKCIoIiwvW0EtWjAtOV8uLV0rOi8sIik/IiksL1tBLVowLTlfLi1dKi8pLGk9ewpjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46IiZbYS16XSs7fCYjWzAtOV0rO3wmI3hbYS1mMC05XSs7In0sYz17YmVnaW46IlxccyIsCmNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhLWtleXdvcmQiLGJlZ2luOiIjP1thLXpfXVthLXoxLTlfLV0rIixpbGxlZ2FsOiJcXG4ifV0KfSxyPWUuaW5oZXJpdChjLHtiZWdpbjoiXFwoIixlbmQ6IlxcKSJ9KSxsPWUuaW5oZXJpdChlLkFQT1NfU1RSSU5HX01PREUsewpjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pLGc9ZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUsewpjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pLG09e2VuZHNXaXRoUGFyZW50OiEwLGlsbGVnYWw6LzwvLHJlbGV2YW5jZTowLApjb250YWluczpbe2NsYXNzTmFtZToiYXR0ciIsYmVnaW46IltBLVphLXowLTlcXC5fOi1dKyIscmVsZXZhbmNlOjB9LHsKYmVnaW46Lz1ccyovLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJzdHJpbmciLGVuZHNQYXJlbnQ6ITAsdmFyaWFudHM6W3sKYmVnaW46LyIvLGVuZDovIi8sY29udGFpbnM6W2ldfSx7YmVnaW46LycvLGVuZDovJy8sY29udGFpbnM6W2ldfSx7CmJlZ2luOi9bXlxzIic9PD5gXSsvfV19XX1dfTtyZXR1cm57bmFtZToiSFRNTCwgWE1MIiwKYWxpYXNlczpbImh0bWwiLCJ4aHRtbCIsInJzcyIsImF0b20iLCJ4amIiLCJ4c2QiLCJ4c2wiLCJwbGlzdCIsIndzZiIsInN2ZyJdLApjYXNlX2luc2Vuc2l0aXZlOiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiPCFbYS16XSIsZW5kOiI+IiwKcmVsZXZhbmNlOjEwLGNvbnRhaW5zOltjLGcsbCxyLHtiZWdpbjoiXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6W3sKY2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiPCFbYS16XSIsZW5kOiI+Iixjb250YWluczpbYyxyLGcsbF19XX1dCn0sZS5DT01NRU5UKCJceDNjIS0tIiwiLS1ceDNlIix7cmVsZXZhbmNlOjEwfSkse2JlZ2luOiI8IVxcW0NEQVRBXFxbIiwKZW5kOiJcXF1cXF0+IixyZWxldmFuY2U6MTB9LGkse2NsYXNzTmFtZToibWV0YSIsYmVnaW46LzxcP3htbC8sZW5kOi9cPz4vLApyZWxldmFuY2U6MTB9LHtjbGFzc05hbWU6InRhZyIsYmVnaW46IjxzdHlsZSg/PVxcc3w+KSIsZW5kOiI+IixrZXl3b3Jkczp7Cm5hbWU6InN0eWxlIn0sY29udGFpbnM6W21dLHN0YXJ0czp7ZW5kOiI8L3N0eWxlPiIscmV0dXJuRW5kOiEwLApzdWJMYW5ndWFnZTpbImNzcyIsInhtbCJdfX0se2NsYXNzTmFtZToidGFnIixiZWdpbjoiPHNjcmlwdCg/PVxcc3w+KSIsZW5kOiI+IiwKa2V5d29yZHM6e25hbWU6InNjcmlwdCJ9LGNvbnRhaW5zOlttXSxzdGFydHM6e2VuZDovPFwvc2NyaXB0Pi8scmV0dXJuRW5kOiEwLApzdWJMYW5ndWFnZTpbImphdmFzY3JpcHQiLCJoYW5kbGViYXJzIiwieG1sIl19fSx7Y2xhc3NOYW1lOiJ0YWciLGJlZ2luOi88Pnw8XC8+Lwp9LHtjbGFzc05hbWU6InRhZyIsYmVnaW46YSgvPC8sbihhKHQscygvXC8+LywvPi8sL1xzLykpKSksZW5kOi9cLz8+Lyxjb250YWluczpbewpjbGFzc05hbWU6Im5hbWUiLGJlZ2luOnQscmVsZXZhbmNlOjAsc3RhcnRzOm19XX0se2NsYXNzTmFtZToidGFnIiwKYmVnaW46YSgvPFwvLyxuKGEodCwvPi8pKSksY29udGFpbnM6W3tjbGFzc05hbWU6Im5hbWUiLGJlZ2luOnQscmVsZXZhbmNlOjB9LHsKYmVnaW46Lz4vLHJlbGV2YW5jZTowfV19XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJtYXJrZG93biIsKCgpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oLi4ubil7CnJldHVybiBuLm1hcCgobj0+e3JldHVybihlPW4pPyJzdHJpbmciPT10eXBlb2YgZT9lOmUuc291cmNlOm51bGw7dmFyIGUKfSkpLmpvaW4oIiIpfXJldHVybiBlPT57Y29uc3QgYT17YmVnaW46LzxcLz9bQS1aYS16X10vLGVuZDoiPiIsCnN1Ykxhbmd1YWdlOiJ4bWwiLHJlbGV2YW5jZTowfSxpPXt2YXJpYW50czpbe2JlZ2luOi9cWy4rP1xdXFsuKj9cXS8scmVsZXZhbmNlOjAKfSx7YmVnaW46L1xbLis/XF1cKCgoZGF0YXxqYXZhc2NyaXB0fG1haWx0byk6fCg/Omh0dHB8ZnRwKXM/OlwvXC8pLio/XCkvLApyZWxldmFuY2U6Mn0se2JlZ2luOm4oL1xbLis/XF1cKC8sL1tBLVphLXpdW0EtWmEtejAtOSsuLV0qLywvOlwvXC8uKj9cKS8pLApyZWxldmFuY2U6Mn0se2JlZ2luOi9cWy4rP1xdXChbLi8/JiNdLio/XCkvLHJlbGV2YW5jZToxfSx7CmJlZ2luOi9cWy4rP1xdXCguKj9cKS8scmVsZXZhbmNlOjB9XSxyZXR1cm5CZWdpbjohMCxjb250YWluczpbewpjbGFzc05hbWU6InN0cmluZyIscmVsZXZhbmNlOjAsYmVnaW46IlxcWyIsZW5kOiJcXF0iLGV4Y2x1ZGVCZWdpbjohMCwKcmV0dXJuRW5kOiEwfSx7Y2xhc3NOYW1lOiJsaW5rIixyZWxldmFuY2U6MCxiZWdpbjoiXFxdXFwoIixlbmQ6IlxcKSIsCmV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLHJlbGV2YW5jZTowLGJlZ2luOiJcXF1cXFsiLAplbmQ6IlxcXSIsZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITB9XX0scz17Y2xhc3NOYW1lOiJzdHJvbmciLGNvbnRhaW5zOltdLAp2YXJpYW50czpbe2JlZ2luOi9fezJ9LyxlbmQ6L197Mn0vfSx7YmVnaW46L1wqezJ9LyxlbmQ6L1wqezJ9L31dfSxjPXsKY2xhc3NOYW1lOiJlbXBoYXNpcyIsY29udGFpbnM6W10sdmFyaWFudHM6W3tiZWdpbjovXCooPyFcKikvLGVuZDovXCovfSx7CmJlZ2luOi9fKD8hXykvLGVuZDovXy8scmVsZXZhbmNlOjB9XX07cy5jb250YWlucy5wdXNoKGMpLGMuY29udGFpbnMucHVzaChzKQo7bGV0IHQ9W2EsaV0KO3JldHVybiBzLmNvbnRhaW5zPXMuY29udGFpbnMuY29uY2F0KHQpLGMuY29udGFpbnM9Yy5jb250YWlucy5jb25jYXQodCksCnQ9dC5jb25jYXQocyxjKSx7bmFtZToiTWFya2Rvd24iLGFsaWFzZXM6WyJtZCIsIm1rZG93biIsIm1rZCJdLGNvbnRhaW5zOlt7CmNsYXNzTmFtZToic2VjdGlvbiIsdmFyaWFudHM6W3tiZWdpbjoiXiN7MSw2fSIsZW5kOiIkIixjb250YWluczp0fSx7CmJlZ2luOiIoPz1eLis/XFxuWz0tXXsyLH0kKSIsY29udGFpbnM6W3tiZWdpbjoiXls9LV0qJCJ9LHtiZWdpbjoiXiIsZW5kOiJcXG4iLApjb250YWluczp0fV19XX0sYSx7Y2xhc3NOYW1lOiJidWxsZXQiLGJlZ2luOiJeWyBcdF0qKFsqKy1dfChcXGQrXFwuKSkoPz1cXHMrKSIsCmVuZDoiXFxzKyIsZXhjbHVkZUVuZDohMH0scyxjLHtjbGFzc05hbWU6InF1b3RlIixiZWdpbjoiXj5cXHMrIixjb250YWluczp0LAplbmQ6IiQifSx7Y2xhc3NOYW1lOiJjb2RlIix2YXJpYW50czpbe2JlZ2luOiIoYHszLH0pW15gXSgufFxcbikqP1xcMWAqWyBdKiJ9LHsKYmVnaW46Iih+ezMsfSlbXn5dKC58XFxuKSo/XFwxfipbIF0qIn0se2JlZ2luOiJgYGAiLGVuZDoiYGBgK1sgXSokIn0sewpiZWdpbjoifn5+IixlbmQ6In5+fitbIF0qJCJ9LHtiZWdpbjoiYC4rP2AifSx7YmVnaW46Iig/PV4oIHs0fXxcXHQpKSIsCmNvbnRhaW5zOlt7YmVnaW46Il4oIHs0fXxcXHQpIixlbmQ6IihcXG4pJCJ9XSxyZWxldmFuY2U6MH1dfSx7CmJlZ2luOiJeWy1cXCpdezMsfSIsZW5kOiIkIn0saSx7YmVnaW46L15cW1teXG5dK1xdOi8scmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3sKY2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOi9cWy8sZW5kOi9cXS8sZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITB9LHsKY2xhc3NOYW1lOiJsaW5rIixiZWdpbjovOlxzKi8sZW5kOi8kLyxleGNsdWRlQmVnaW46ITB9XX1dfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInNxbCIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57CnZhciB0PWUuQ09NTUVOVCgiLS0iLCIkIik7cmV0dXJue25hbWU6IlNRTCIsY2FzZV9pbnNlbnNpdGl2ZTohMCwKaWxsZWdhbDovWzw+e30qXS8sY29udGFpbnM6W3sKYmVnaW5LZXl3b3JkczoiYmVnaW4gZW5kIHN0YXJ0IGNvbW1pdCByb2xsYmFjayBzYXZlcG9pbnQgbG9jayBhbHRlciBjcmVhdGUgZHJvcCByZW5hbWUgY2FsbCBkZWxldGUgZG8gaGFuZGxlciBpbnNlcnQgbG9hZCByZXBsYWNlIHNlbGVjdCB0cnVuY2F0ZSB1cGRhdGUgc2V0IHNob3cgcHJhZ21hIGdyYW50IG1lcmdlIGRlc2NyaWJlIHVzZSBleHBsYWluIGhlbHAgZGVjbGFyZSBwcmVwYXJlIGV4ZWN1dGUgZGVhbGxvY2F0ZSByZWxlYXNlIHVubG9jayBwdXJnZSByZXNldCBjaGFuZ2Ugc3RvcCBhbmFseXplIGNhY2hlIGZsdXNoIG9wdGltaXplIHJlcGFpciBraWxsIGluc3RhbGwgdW5pbnN0YWxsIGNoZWNrc3VtIHJlc3RvcmUgY2hlY2sgYmFja3VwIHJldm9rZSBjb21tZW50IHZhbHVlcyB3aXRoIiwKZW5kOi87LyxlbmRzV2l0aFBhcmVudDohMCxrZXl3b3Jkczp7JHBhdHRlcm46L1tcd1wuXSsvLAprZXl3b3JkOiJhcyBhYm9ydCBhYnMgYWJzb2x1dGUgYWNjIGFjY2UgYWNjZXAgYWNjZXB0IGFjY2VzcyBhY2Nlc3NlZCBhY2Nlc3NpYmxlIGFjY291bnQgYWNvcyBhY3Rpb24gYWN0aXZhdGUgYWRkIGFkZHRpbWUgYWRtaW4gYWRtaW5pc3RlciBhZHZhbmNlZCBhZHZpc2UgYWVzX2RlY3J5cHQgYWVzX2VuY3J5cHQgYWZ0ZXIgYWdlbnQgYWdncmVnYXRlIGFsaSBhbGlhIGFsaWFzIGFsbCBhbGxvY2F0ZSBhbGxvdyBhbHRlciBhbHdheXMgYW5hbHl6ZSBhbmNpbGxhcnkgYW5kIGFudGkgYW55IGFueWRhdGEgYW55ZGF0YXNldCBhbnlzY2hlbWEgYW55dHlwZSBhcHBseSBhcmNoaXZlIGFyY2hpdmVkIGFyY2hpdmVsb2cgYXJlIGFzIGFzYyBhc2NpaSBhc2luIGFzc2VtYmx5IGFzc2VydGlvbiBhc3NvY2lhdGUgYXN5bmNocm9ub3VzIGF0IGF0YW4gYXRuMiBhdHRyIGF0dHJpIGF0dHJpYiBhdHRyaWJ1IGF0dHJpYnV0IGF0dHJpYnV0ZSBhdHRyaWJ1dGVzIGF1ZGl0IGF1dGhlbnRpY2F0ZWQgYXV0aGVudGljYXRpb24gYXV0aGlkIGF1dGhvcnMgYXV0byBhdXRvYWxsb2NhdGUgYXV0b2RibGluayBhdXRvZXh0ZW5kIGF1dG9tYXRpYyBhdmFpbGFiaWxpdHkgYXZnIGJhY2t1cCBiYWRmaWxlIGJhc2ljZmlsZSBiZWZvcmUgYmVnaW4gYmVnaW5uaW5nIGJlbmNobWFyayBiZXR3ZWVuIGJmaWxlIGJmaWxlX2Jhc2UgYmlnIGJpZ2ZpbGUgYmluIGJpbmFyeV9kb3VibGUgYmluYXJ5X2Zsb2F0IGJpbmxvZyBiaXRfYW5kIGJpdF9jb3VudCBiaXRfbGVuZ3RoIGJpdF9vciBiaXRfeG9yIGJpdG1hcCBibG9iX2Jhc2UgYmxvY2sgYmxvY2tzaXplIGJvZHkgYm90aCBib3VuZCBidWNrZXQgYnVmZmVyX2NhY2hlIGJ1ZmZlcl9wb29sIGJ1aWxkIGJ1bGsgYnkgYnl0ZSBieXRlb3JkZXJtYXJrIGJ5dGVzIGNhY2hlIGNhY2hpbmcgY2FsbCBjYWxsaW5nIGNhbmNlbCBjYXBhY2l0eSBjYXNjYWRlIGNhc2NhZGVkIGNhc2UgY2FzdCBjYXRhbG9nIGNhdGVnb3J5IGNlaWwgY2VpbGluZyBjaGFpbiBjaGFuZ2UgY2hhbmdlZCBjaGFyX2Jhc2UgY2hhcl9sZW5ndGggY2hhcmFjdGVyX2xlbmd0aCBjaGFyYWN0ZXJzIGNoYXJhY3RlcnNldCBjaGFyaW5kZXggY2hhcnNldCBjaGFyc2V0Zm9ybSBjaGFyc2V0aWQgY2hlY2sgY2hlY2tzdW0gY2hlY2tzdW1fYWdnIGNoaWxkIGNob29zZSBjaHIgY2h1bmsgY2xhc3MgY2xlYW51cCBjbGVhciBjbGllbnQgY2xvYiBjbG9iX2Jhc2UgY2xvbmUgY2xvc2UgY2x1c3Rlcl9pZCBjbHVzdGVyX3Byb2JhYmlsaXR5IGNsdXN0ZXJfc2V0IGNsdXN0ZXJpbmcgY29hbGVzY2UgY29lcmNpYmlsaXR5IGNvbCBjb2xsYXRlIGNvbGxhdGlvbiBjb2xsZWN0IGNvbHUgY29sdW0gY29sdW1uIGNvbHVtbl92YWx1ZSBjb2x1bW5zIGNvbHVtbnNfdXBkYXRlZCBjb21tZW50IGNvbW1pdCBjb21wYWN0IGNvbXBhdGliaWxpdHkgY29tcGlsZWQgY29tcGxldGUgY29tcG9zaXRlX2xpbWl0IGNvbXBvdW5kIGNvbXByZXNzIGNvbXB1dGUgY29uY2F0IGNvbmNhdF93cyBjb25jdXJyZW50IGNvbmZpcm0gY29ubiBjb25uZWMgY29ubmVjdCBjb25uZWN0X2J5X2lzY3ljbGUgY29ubmVjdF9ieV9pc2xlYWYgY29ubmVjdF9ieV9yb290IGNvbm5lY3RfdGltZSBjb25uZWN0aW9uIGNvbnNpZGVyIGNvbnNpc3RlbnQgY29uc3RhbnQgY29uc3RyYWludCBjb25zdHJhaW50cyBjb25zdHJ1Y3RvciBjb250YWluZXIgY29udGVudCBjb250ZW50cyBjb250ZXh0IGNvbnRyaWJ1dG9ycyBjb250cm9sZmlsZSBjb252IGNvbnZlcnQgY29udmVydF90eiBjb3JyIGNvcnJfayBjb3JyX3MgY29ycmVzcG9uZGluZyBjb3JydXB0aW9uIGNvcyBjb3N0IGNvdW50IGNvdW50X2JpZyBjb3VudGVkIGNvdmFyX3BvcCBjb3Zhcl9zYW1wIGNwdV9wZXJfY2FsbCBjcHVfcGVyX3Nlc3Npb24gY3JjMzIgY3JlYXRlIGNyZWF0aW9uIGNyaXRpY2FsIGNyb3NzIGN1YmUgY3VtZV9kaXN0IGN1cmRhdGUgY3VycmVudCBjdXJyZW50X2RhdGUgY3VycmVudF90aW1lIGN1cnJlbnRfdGltZXN0YW1wIGN1cnJlbnRfdXNlciBjdXJzb3IgY3VydGltZSBjdXN0b21kYXR1bSBjeWNsZSBkYXRhIGRhdGFiYXNlIGRhdGFiYXNlcyBkYXRhZmlsZSBkYXRhZmlsZXMgZGF0YWxlbmd0aCBkYXRlX2FkZCBkYXRlX2NhY2hlIGRhdGVfZm9ybWF0IGRhdGVfc3ViIGRhdGVhZGQgZGF0ZWRpZmYgZGF0ZWZyb21wYXJ0cyBkYXRlbmFtZSBkYXRlcGFydCBkYXRldGltZTJmcm9tcGFydHMgZGF5IGRheV90b19zZWNvbmQgZGF5bmFtZSBkYXlvZm1vbnRoIGRheW9md2VlayBkYXlvZnllYXIgZGF5cyBkYl9yb2xlX2NoYW5nZSBkYnRpbWV6b25lIGRkbCBkZWFsbG9jYXRlIGRlY2xhcmUgZGVjb2RlIGRlY29tcG9zZSBkZWNyZW1lbnQgZGVjcnlwdCBkZWR1cGxpY2F0ZSBkZWYgZGVmYSBkZWZhdSBkZWZhdWwgZGVmYXVsdCBkZWZhdWx0cyBkZWZlcnJlZCBkZWZpIGRlZmluIGRlZmluZSBkZWdyZWVzIGRlbGF5ZWQgZGVsZWdhdGUgZGVsZXRlIGRlbGV0ZV9hbGwgZGVsaW1pdGVkIGRlbWFuZCBkZW5zZV9yYW5rIGRlcHRoIGRlcXVldWUgZGVzX2RlY3J5cHQgZGVzX2VuY3J5cHQgZGVzX2tleV9maWxlIGRlc2MgZGVzY3IgZGVzY3JpIGRlc2NyaWIgZGVzY3JpYmUgZGVzY3JpcHRvciBkZXRlcm1pbmlzdGljIGRpYWdub3N0aWNzIGRpZmZlcmVuY2UgZGltZW5zaW9uIGRpcmVjdF9sb2FkIGRpcmVjdG9yeSBkaXNhYmxlIGRpc2FibGVfYWxsIGRpc2FsbG93IGRpc2Fzc29jaWF0ZSBkaXNjYXJkZmlsZSBkaXNjb25uZWN0IGRpc2tncm91cCBkaXN0aW5jdCBkaXN0aW5jdHJvdyBkaXN0cmlidXRlIGRpc3RyaWJ1dGVkIGRpdiBkbyBkb2N1bWVudCBkb21haW4gZG90bmV0IGRvdWJsZSBkb3duZ3JhZGUgZHJvcCBkdW1wZmlsZSBkdXBsaWNhdGUgZHVyYXRpb24gZWFjaCBlZGl0aW9uIGVkaXRpb25hYmxlIGVkaXRpb25zIGVsZW1lbnQgZWxsaXBzaXMgZWxzZSBlbHNpZiBlbHQgZW1wdHkgZW5hYmxlIGVuYWJsZV9hbGwgZW5jbG9zZWQgZW5jb2RlIGVuY29kaW5nIGVuY3J5cHQgZW5kIGVuZC1leGVjIGVuZGlhbiBlbmZvcmNlZCBlbmdpbmUgZW5naW5lcyBlbnF1ZXVlIGVudGVycHJpc2UgZW50aXR5ZXNjYXBpbmcgZW9tb250aCBlcnJvciBlcnJvcnMgZXNjYXBlZCBldmFsbmFtZSBldmFsdWF0ZSBldmVudCBldmVudGRhdGEgZXZlbnRzIGV4Y2VwdCBleGNlcHRpb24gZXhjZXB0aW9ucyBleGNoYW5nZSBleGNsdWRlIGV4Y2x1ZGluZyBleGVjdSBleGVjdXQgZXhlY3V0ZSBleGVtcHQgZXhpc3RzIGV4aXQgZXhwIGV4cGlyZSBleHBsYWluIGV4cGxvZGUgZXhwb3J0IGV4cG9ydF9zZXQgZXh0ZW5kZWQgZXh0ZW50IGV4dGVybmFsIGV4dGVybmFsXzEgZXh0ZXJuYWxfMiBleHRlcm5hbGx5IGV4dHJhY3QgZmFpbGVkIGZhaWxlZF9sb2dpbl9hdHRlbXB0cyBmYWlsb3ZlciBmYWlsdXJlIGZhciBmYXN0IGZlYXR1cmVfc2V0IGZlYXR1cmVfdmFsdWUgZmV0Y2ggZmllbGQgZmllbGRzIGZpbGUgZmlsZV9uYW1lX2NvbnZlcnQgZmlsZXN5c3RlbV9saWtlX2xvZ2dpbmcgZmluYWwgZmluaXNoIGZpcnN0IGZpcnN0X3ZhbHVlIGZpeGVkIGZsYXNoX2NhY2hlIGZsYXNoYmFjayBmbG9vciBmbHVzaCBmb2xsb3dpbmcgZm9sbG93cyBmb3IgZm9yYWxsIGZvcmNlIGZvcmVpZ24gZm9ybSBmb3JtYSBmb3JtYXQgZm91bmQgZm91bmRfcm93cyBmcmVlbGlzdCBmcmVlbGlzdHMgZnJlZXBvb2xzIGZyZXNoIGZyb20gZnJvbV9iYXNlNjQgZnJvbV9kYXlzIGZ0cCBmdWxsIGZ1bmN0aW9uIGdlbmVyYWwgZ2VuZXJhdGVkIGdldCBnZXRfZm9ybWF0IGdldF9sb2NrIGdldGRhdGUgZ2V0dXRjZGF0ZSBnbG9iYWwgZ2xvYmFsX25hbWUgZ2xvYmFsbHkgZ28gZ290byBncmFudCBncmFudHMgZ3JlYXRlc3QgZ3JvdXAgZ3JvdXBfY29uY2F0IGdyb3VwX2lkIGdyb3VwaW5nIGdyb3VwaW5nX2lkIGdyb3VwcyBndGlkX3N1YnRyYWN0IGd1YXJhbnRlZSBndWFyZCBoYW5kbGVyIGhhc2ggaGFzaGtleXMgaGF2aW5nIGhlYSBoZWFkIGhlYWRpIGhlYWRpbiBoZWFkaW5nIGhlYXAgaGVscCBoZXggaGllcmFyY2h5IGhpZ2ggaGlnaF9wcmlvcml0eSBob3N0cyBob3VyIGhvdXJzIGh0dHAgaWQgaWRlbnRfY3VycmVudCBpZGVudF9pbmNyIGlkZW50X3NlZWQgaWRlbnRpZmllZCBpZGVudGl0eSBpZGxlX3RpbWUgaWYgaWZudWxsIGlnbm9yZSBpaWYgaWxpa2UgaWxtIGltbWVkaWF0ZSBpbXBvcnQgaW4gaW5jbHVkZSBpbmNsdWRpbmcgaW5jcmVtZW50IGluZGV4IGluZGV4ZXMgaW5kZXhpbmcgaW5kZXh0eXBlIGluZGljYXRvciBpbmRpY2VzIGluZXQ2X2F0b24gaW5ldDZfbnRvYSBpbmV0X2F0b24gaW5ldF9udG9hIGluZmlsZSBpbml0aWFsIGluaXRpYWxpemVkIGluaXRpYWxseSBpbml0cmFucyBpbm1lbW9yeSBpbm5lciBpbm5vZGIgaW5wdXQgaW5zZXJ0IGluc3RhbGwgaW5zdGFuY2UgaW5zdGFudGlhYmxlIGluc3RyIGludGVyZmFjZSBpbnRlcmxlYXZlZCBpbnRlcnNlY3QgaW50byBpbnZhbGlkYXRlIGludmlzaWJsZSBpcyBpc19mcmVlX2xvY2sgaXNfaXB2NCBpc19pcHY0X2NvbXBhdCBpc19ub3QgaXNfbm90X251bGwgaXNfdXNlZF9sb2NrIGlzZGF0ZSBpc251bGwgaXNvbGF0aW9uIGl0ZXJhdGUgamF2YSBqb2luIGpzb24ganNvbl9leGlzdHMga2VlcCBrZWVwX2R1cGxpY2F0ZXMga2V5IGtleXMga2lsbCBsYW5ndWFnZSBsYXJnZSBsYXN0IGxhc3RfZGF5IGxhc3RfaW5zZXJ0X2lkIGxhc3RfdmFsdWUgbGF0ZXJhbCBsYXggbGNhc2UgbGVhZCBsZWFkaW5nIGxlYXN0IGxlYXZlcyBsZWZ0IGxlbiBsZW5naHQgbGVuZ3RoIGxlc3MgbGV2ZWwgbGV2ZWxzIGxpYnJhcnkgbGlrZSBsaWtlMiBsaWtlNCBsaWtlYyBsaW1pdCBsaW5lcyBsaW5rIGxpc3QgbGlzdGFnZyBsaXR0bGUgbG4gbG9hZCBsb2FkX2ZpbGUgbG9iIGxvYnMgbG9jYWwgbG9jYWx0aW1lIGxvY2FsdGltZXN0YW1wIGxvY2F0ZSBsb2NhdG9yIGxvY2sgbG9ja2VkIGxvZyBsb2cxMCBsb2cyIGxvZ2ZpbGUgbG9nZmlsZXMgbG9nZ2luZyBsb2dpY2FsIGxvZ2ljYWxfcmVhZHNfcGVyX2NhbGwgbG9nb2ZmIGxvZ29uIGxvZ3MgbG9uZyBsb29wIGxvdyBsb3dfcHJpb3JpdHkgbG93ZXIgbHBhZCBscnRyaW0gbHRyaW0gbWFpbiBtYWtlX3NldCBtYWtlZGF0ZSBtYWtldGltZSBtYW5hZ2VkIG1hbmFnZW1lbnQgbWFudWFsIG1hcCBtYXBwaW5nIG1hc2sgbWFzdGVyIG1hc3Rlcl9wb3Nfd2FpdCBtYXRjaCBtYXRjaGVkIG1hdGVyaWFsaXplZCBtYXggbWF4ZXh0ZW50cyBtYXhpbWl6ZSBtYXhpbnN0YW5jZXMgbWF4bGVuIG1heGxvZ2ZpbGVzIG1heGxvZ2hpc3RvcnkgbWF4bG9nbWVtYmVycyBtYXhzaXplIG1heHRyYW5zIG1kNSBtZWFzdXJlcyBtZWRpYW4gbWVkaXVtIG1lbWJlciBtZW1jb21wcmVzcyBtZW1vcnkgbWVyZ2UgbWljcm9zZWNvbmQgbWlkIG1pZ3JhdGlvbiBtaW4gbWluZXh0ZW50cyBtaW5pbXVtIG1pbmluZyBtaW51cyBtaW51dGUgbWludXRlcyBtaW52YWx1ZSBtaXNzaW5nIG1vZCBtb2RlIG1vZGVsIG1vZGlmaWNhdGlvbiBtb2RpZnkgbW9kdWxlIG1vbml0b3JpbmcgbW9udGggbW9udGhzIG1vdW50IG1vdmUgbW92ZW1lbnQgbXVsdGlzZXQgbXV0ZXggbmFtZSBuYW1lX2NvbnN0IG5hbWVzIG5hbiBuYXRpb25hbCBuYXRpdmUgbmF0dXJhbCBuYXYgbmNoYXIgbmNsb2IgbmVzdGVkIG5ldmVyIG5ldyBuZXdsaW5lIG5leHQgbmV4dHZhbCBubyBub193cml0ZV90b19iaW5sb2cgbm9hcmNoaXZlbG9nIG5vYXVkaXQgbm9iYWRmaWxlIG5vY2hlY2sgbm9jb21wcmVzcyBub2NvcHkgbm9jeWNsZSBub2RlbGF5IG5vZGlzY2FyZGZpbGUgbm9lbnRpdHllc2NhcGluZyBub2d1YXJhbnRlZSBub2tlZXAgbm9sb2dmaWxlIG5vbWFwcGluZyBub21heHZhbHVlIG5vbWluaW1pemUgbm9taW52YWx1ZSBub21vbml0b3Jpbmcgbm9uZSBub25lZGl0aW9uYWJsZSBub25zY2hlbWEgbm9vcmRlciBub3ByIG5vcHJvIG5vcHJvbSBub3Byb21wIG5vcHJvbXB0IG5vcmVseSBub3Jlc2V0bG9ncyBub3JldmVyc2Ugbm9ybWFsIG5vcm93ZGVwZW5kZW5jaWVzIG5vc2NoZW1hY2hlY2sgbm9zd2l0Y2ggbm90IG5vdGhpbmcgbm90aWNlIG5vdG51bGwgbm90cmltIG5vdmFsaWRhdGUgbm93IG5vd2FpdCBudGhfdmFsdWUgbnVsbGlmIG51bGxzIG51bSBudW1iIG51bWJlIG52YXJjaGFyIG52YXJjaGFyMiBvYmplY3Qgb2NpY29sbCBvY2lkYXRlIG9jaWRhdGV0aW1lIG9jaWR1cmF0aW9uIG9jaWludGVydmFsIG9jaWxvYmxvY2F0b3Igb2NpbnVtYmVyIG9jaXJlZiBvY2lyZWZjdXJzb3Igb2Npcm93aWQgb2Npc3RyaW5nIG9jaXR5cGUgb2N0IG9jdGV0X2xlbmd0aCBvZiBvZmYgb2ZmbGluZSBvZmZzZXQgb2lkIG9pZGluZGV4IG9sZCBvbiBvbmxpbmUgb25seSBvcGFxdWUgb3BlbiBvcGVyYXRpb25zIG9wZXJhdG9yIG9wdGltYWwgb3B0aW1pemUgb3B0aW9uIG9wdGlvbmFsbHkgb3Igb3JhY2xlIG9yYWNsZV9kYXRlIG9yYWRhdGEgb3JkIG9yZGF1ZGlvIG9yZGRpY29tIG9yZGRvYyBvcmRlciBvcmRpbWFnZSBvcmRpbmFsaXR5IG9yZHZpZGVvIG9yZ2FuaXphdGlvbiBvcmxhbnkgb3JsdmFyeSBvdXQgb3V0ZXIgb3V0ZmlsZSBvdXRsaW5lIG91dHB1dCBvdmVyIG92ZXJmbG93IG92ZXJyaWRpbmcgcGFja2FnZSBwYWQgcGFyYWxsZWwgcGFyYWxsZWxfZW5hYmxlIHBhcmFtZXRlcnMgcGFyZW50IHBhcnNlIHBhcnRpYWwgcGFydGl0aW9uIHBhcnRpdGlvbnMgcGFzY2FsIHBhc3NpbmcgcGFzc3dvcmQgcGFzc3dvcmRfZ3JhY2VfdGltZSBwYXNzd29yZF9sb2NrX3RpbWUgcGFzc3dvcmRfcmV1c2VfbWF4IHBhc3N3b3JkX3JldXNlX3RpbWUgcGFzc3dvcmRfdmVyaWZ5X2Z1bmN0aW9uIHBhdGNoIHBhdGggcGF0aW5kZXggcGN0aW5jcmVhc2UgcGN0dGhyZXNob2xkIHBjdHVzZWQgcGN0dmVyc2lvbiBwZXJjZW50IHBlcmNlbnRfcmFuayBwZXJjZW50aWxlX2NvbnQgcGVyY2VudGlsZV9kaXNjIHBlcmZvcm1hbmNlIHBlcmlvZCBwZXJpb2RfYWRkIHBlcmlvZF9kaWZmIHBlcm1hbmVudCBwaHlzaWNhbCBwaSBwaXBlIHBpcGVsaW5lZCBwaXZvdCBwbHVnZ2FibGUgcGx1Z2luIHBvbGljeSBwb3NpdGlvbiBwb3N0X3RyYW5zYWN0aW9uIHBvdyBwb3dlciBwcmFnbWEgcHJlYnVpbHQgcHJlY2VkZXMgcHJlY2VkaW5nIHByZWNpc2lvbiBwcmVkaWN0aW9uIHByZWRpY3Rpb25fY29zdCBwcmVkaWN0aW9uX2RldGFpbHMgcHJlZGljdGlvbl9wcm9iYWJpbGl0eSBwcmVkaWN0aW9uX3NldCBwcmVwYXJlIHByZXNlbnQgcHJlc2VydmUgcHJpb3IgcHJpb3JpdHkgcHJpdmF0ZSBwcml2YXRlX3NnYSBwcml2aWxlZ2VzIHByb2NlZHVyYWwgcHJvY2VkdXJlIHByb2NlZHVyZV9hbmFseXplIHByb2Nlc3NsaXN0IHByb2ZpbGVzIHByb2plY3QgcHJvbXB0IHByb3RlY3Rpb24gcHVibGljIHB1Ymxpc2hpbmdzZXJ2ZXJuYW1lIHB1cmdlIHF1YXJ0ZXIgcXVlcnkgcXVpY2sgcXVpZXNjZSBxdW90YSBxdW90ZW5hbWUgcmFkaWFucyByYWlzZSByYW5kIHJhbmdlIHJhbmsgcmF3IHJlYWQgcmVhZHMgcmVhZHNpemUgcmVidWlsZCByZWNvcmQgcmVjb3JkcyByZWNvdmVyIHJlY292ZXJ5IHJlY3Vyc2l2ZSByZWN5Y2xlIHJlZG8gcmVkdWNlZCByZWYgcmVmZXJlbmNlIHJlZmVyZW5jZWQgcmVmZXJlbmNlcyByZWZlcmVuY2luZyByZWZyZXNoIHJlZ2V4cF9saWtlIHJlZ2lzdGVyIHJlZ3JfYXZneCByZWdyX2F2Z3kgcmVncl9jb3VudCByZWdyX2ludGVyY2VwdCByZWdyX3IyIHJlZ3Jfc2xvcGUgcmVncl9zeHggcmVncl9zeHkgcmVqZWN0IHJla2V5IHJlbGF0aW9uYWwgcmVsYXRpdmUgcmVsYXlsb2cgcmVsZWFzZSByZWxlYXNlX2xvY2sgcmVsaWVzX29uIHJlbG9jYXRlIHJlbHkgcmVtIHJlbWFpbmRlciByZW5hbWUgcmVwYWlyIHJlcGVhdCByZXBsYWNlIHJlcGxpY2F0ZSByZXBsaWNhdGlvbiByZXF1aXJlZCByZXNldCByZXNldGxvZ3MgcmVzaXplIHJlc291cmNlIHJlc3BlY3QgcmVzdG9yZSByZXN0cmljdGVkIHJlc3VsdCByZXN1bHRfY2FjaGUgcmVzdW1hYmxlIHJlc3VtZSByZXRlbnRpb24gcmV0dXJuIHJldHVybmluZyByZXR1cm5zIHJldXNlIHJldmVyc2UgcmV2b2tlIHJpZ2h0IHJsaWtlIHJvbGUgcm9sZXMgcm9sbGJhY2sgcm9sbGluZyByb2xsdXAgcm91bmQgcm93IHJvd19jb3VudCByb3dkZXBlbmRlbmNpZXMgcm93aWQgcm93bnVtIHJvd3MgcnRyaW0gcnVsZXMgc2FmZSBzYWx0IHNhbXBsZSBzYXZlIHNhdmVwb2ludCBzYjEgc2IyIHNiNCBzY2FuIHNjaGVtYSBzY2hlbWFjaGVjayBzY24gc2NvcGUgc2Nyb2xsIHNkb19nZW9yYXN0ZXIgc2RvX3RvcG9fZ2VvbWV0cnkgc2VhcmNoIHNlY190b190aW1lIHNlY29uZCBzZWNvbmRzIHNlY3Rpb24gc2VjdXJlZmlsZSBzZWN1cml0eSBzZWVkIHNlZ21lbnQgc2VsZWN0IHNlbGYgc2VtaSBzZXF1ZW5jZSBzZXF1ZW50aWFsIHNlcmlhbGl6YWJsZSBzZXJ2ZXIgc2VydmVyZXJyb3Igc2Vzc2lvbiBzZXNzaW9uX3VzZXIgc2Vzc2lvbnNfcGVyX3VzZXIgc2V0IHNldHMgc2V0dGluZ3Mgc2hhIHNoYTEgc2hhMiBzaGFyZSBzaGFyZWQgc2hhcmVkX3Bvb2wgc2hvcnQgc2hvdyBzaHJpbmsgc2h1dGRvd24gc2lfYXZlcmFnZWNvbG9yIHNpX2NvbG9yaGlzdG9ncmFtIHNpX2ZlYXR1cmVsaXN0IHNpX3Bvc2l0aW9uYWxjb2xvciBzaV9zdGlsbGltYWdlIHNpX3RleHR1cmUgc2libGluZ3Mgc2lkIHNpZ24gc2luIHNpemUgc2l6ZV90IHNpemVzIHNraXAgc2xhdmUgc2xlZXAgc21hbGxkYXRldGltZWZyb21wYXJ0cyBzbWFsbGZpbGUgc25hcHNob3Qgc29tZSBzb25hbWUgc29ydCBzb3VuZGV4IHNvdXJjZSBzcGFjZSBzcGFyc2Ugc3BmaWxlIHNwbGl0IHNxbCBzcWxfYmlnX3Jlc3VsdCBzcWxfYnVmZmVyX3Jlc3VsdCBzcWxfY2FjaGUgc3FsX2NhbGNfZm91bmRfcm93cyBzcWxfc21hbGxfcmVzdWx0IHNxbF92YXJpYW50X3Byb3BlcnR5IHNxbGNvZGUgc3FsZGF0YSBzcWxlcnJvciBzcWxuYW1lIHNxbHN0YXRlIHNxcnQgc3F1YXJlIHN0YW5kYWxvbmUgc3RhbmRieSBzdGFydCBzdGFydGluZyBzdGFydHVwIHN0YXRlbWVudCBzdGF0aWMgc3RhdGlzdGljcyBzdGF0c19iaW5vbWlhbF90ZXN0IHN0YXRzX2Nyb3NzdGFiIHN0YXRzX2tzX3Rlc3Qgc3RhdHNfbW9kZSBzdGF0c19td190ZXN0IHN0YXRzX29uZV93YXlfYW5vdmEgc3RhdHNfdF90ZXN0XyBzdGF0c190X3Rlc3RfaW5kZXAgc3RhdHNfdF90ZXN0X29uZSBzdGF0c190X3Rlc3RfcGFpcmVkIHN0YXRzX3dzcl90ZXN0IHN0YXR1cyBzdGQgc3RkZGV2IHN0ZGRldl9wb3Agc3RkZGV2X3NhbXAgc3RkZXYgc3RvcCBzdG9yYWdlIHN0b3JlIHN0b3JlZCBzdHIgc3RyX3RvX2RhdGUgc3RyYWlnaHRfam9pbiBzdHJjbXAgc3RyaWN0IHN0cmluZyBzdHJ1Y3Qgc3R1ZmYgc3R5bGUgc3ViZGF0ZSBzdWJwYXJ0aXRpb24gc3VicGFydGl0aW9ucyBzdWJzdGl0dXRhYmxlIHN1YnN0ciBzdWJzdHJpbmcgc3VidGltZSBzdWJ0cmluZ19pbmRleCBzdWJ0eXBlIHN1Y2Nlc3Mgc3VtIHN1c3BlbmQgc3dpdGNoIHN3aXRjaG9mZnNldCBzd2l0Y2hvdmVyIHN5bmMgc3luY2hyb25vdXMgc3lub255bSBzeXMgc3lzX3htbGFnZyBzeXNhc20gc3lzYXV4IHN5c2RhdGUgc3lzZGF0ZXRpbWVvZmZzZXQgc3lzZGJhIHN5c29wZXIgc3lzdGVtIHN5c3RlbV91c2VyIHN5c3V0Y2RhdGV0aW1lIHRhYmxlIHRhYmxlcyB0YWJsZXNwYWNlIHRhYmxlc2FtcGxlIHRhbiB0ZG8gdGVtcGxhdGUgdGVtcG9yYXJ5IHRlcm1pbmF0ZWQgdGVydGlhcnlfd2VpZ2h0cyB0ZXN0IHRoYW4gdGhlbiB0aHJlYWQgdGhyb3VnaCB0aWVyIHRpZXMgdGltZSB0aW1lX2Zvcm1hdCB0aW1lX3pvbmUgdGltZWRpZmYgdGltZWZyb21wYXJ0cyB0aW1lb3V0IHRpbWVzdGFtcCB0aW1lc3RhbXBhZGQgdGltZXN0YW1wZGlmZiB0aW1lem9uZV9hYmJyIHRpbWV6b25lX21pbnV0ZSB0aW1lem9uZV9yZWdpb24gdG8gdG9fYmFzZTY0IHRvX2RhdGUgdG9fZGF5cyB0b19zZWNvbmRzIHRvZGF0ZXRpbWVvZmZzZXQgdHJhY2UgdHJhY2tpbmcgdHJhbnNhY3Rpb24gdHJhbnNhY3Rpb25hbCB0cmFuc2xhdGUgdHJhbnNsYXRpb24gdHJlYXQgdHJpZ2dlciB0cmlnZ2VyX25lc3RsZXZlbCB0cmlnZ2VycyB0cmltIHRydW5jYXRlIHRyeV9jYXN0IHRyeV9jb252ZXJ0IHRyeV9wYXJzZSB0eXBlIHViMSB1YjIgdWI0IHVjYXNlIHVuYXJjaGl2ZWQgdW5ib3VuZGVkIHVuY29tcHJlc3MgdW5kZXIgdW5kbyB1bmhleCB1bmljb2RlIHVuaWZvcm0gdW5pbnN0YWxsIHVuaW9uIHVuaXF1ZSB1bml4X3RpbWVzdGFtcCB1bmtub3duIHVubGltaXRlZCB1bmxvY2sgdW5uZXN0IHVucGl2b3QgdW5yZWNvdmVyYWJsZSB1bnNhZmUgdW5zaWduZWQgdW50aWwgdW50cnVzdGVkIHVudXNhYmxlIHVudXNlZCB1cGRhdGUgdXBkYXRlZCB1cGdyYWRlIHVwcGVkIHVwcGVyIHVwc2VydCB1cmwgdXJvd2lkIHVzYWJsZSB1c2FnZSB1c2UgdXNlX3N0b3JlZF9vdXRsaW5lcyB1c2VyIHVzZXJfZGF0YSB1c2VyX3Jlc291cmNlcyB1c2VycyB1c2luZyB1dGNfZGF0ZSB1dGNfdGltZXN0YW1wIHV1aWQgdXVpZF9zaG9ydCB2YWxpZGF0ZSB2YWxpZGF0ZV9wYXNzd29yZF9zdHJlbmd0aCB2YWxpZGF0aW9uIHZhbGlzdCB2YWx1ZSB2YWx1ZXMgdmFyIHZhcl9zYW1wIHZhcmNoYXJjIHZhcmkgdmFyaWEgdmFyaWFiIHZhcmlhYmwgdmFyaWFibGUgdmFyaWFibGVzIHZhcmlhbmNlIHZhcnAgdmFycmF3IHZhcnJhd2MgdmFycmF5IHZlcmlmeSB2ZXJzaW9uIHZlcnNpb25zIHZpZXcgdmlydHVhbCB2aXNpYmxlIHZvaWQgd2FpdCB3YWxsZXQgd2FybmluZyB3YXJuaW5ncyB3ZWVrIHdlZWtkYXkgd2Vla29meWVhciB3ZWxsZm9ybWVkIHdoZW4gd2hlbmUgd2hlbmV2IHdoZW5ldmUgd2hlbmV2ZXIgd2hlcmUgd2hpbGUgd2hpdGVzcGFjZSB3aW5kb3cgd2l0aCB3aXRoaW4gd2l0aG91dCB3b3JrIHdyYXBwZWQgeGRiIHhtbCB4bWxhZ2cgeG1sYXR0cmlidXRlcyB4bWxjYXN0IHhtbGNvbGF0dHZhbCB4bWxlbGVtZW50IHhtbGV4aXN0cyB4bWxmb3Jlc3QgeG1saW5kZXggeG1sbmFtZXNwYWNlcyB4bWxwaSB4bWxxdWVyeSB4bWxyb290IHhtbHNjaGVtYSB4bWxzZXJpYWxpemUgeG1sdGFibGUgeG1sdHlwZSB4b3IgeWVhciB5ZWFyX3RvX21vbnRoIHllYXJzIHllYXJ3ZWVrIiwKbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIHVua25vd24iLApidWlsdF9pbjoiYXJyYXkgYmlnaW50IGJpbmFyeSBiaXQgYmxvYiBib29sIGJvb2xlYW4gY2hhciBjaGFyYWN0ZXIgZGF0ZSBkZWMgZGVjaW1hbCBmbG9hdCBpbnQgaW50OCBpbnRlZ2VyIGludGVydmFsIG51bWJlciBudW1lcmljIHJlYWwgcmVjb3JkIHNlcmlhbCBzZXJpYWw4IHNtYWxsaW50IHRleHQgdGltZSB0aW1lc3RhbXAgdGlueWludCB2YXJjaGFyIHZhcmNoYXIyIHZhcnlpbmcgdm9pZCIKfSxjb250YWluczpbe2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiJyIsZW5kOiInIixjb250YWluczpbe2JlZ2luOiInJyJ9XX0sewpjbGFzc05hbWU6InN0cmluZyIsYmVnaW46JyInLGVuZDonIicsY29udGFpbnM6W3tiZWdpbjonIiInfV19LHsKY2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiJgIixlbmQ6ImAiCn0sZS5DX05VTUJFUl9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsdCxlLkhBU0hfQ09NTUVOVF9NT0RFXQp9LGUuQ19CTE9DS19DT01NRU5UX01PREUsdCxlLkhBU0hfQ09NTUVOVF9NT0RFXX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJsYXRleCIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57Y29uc3Qgbj1bewpiZWdpbjovXF57Nn1bMC05YS1mXXs2fS99LHtiZWdpbjovXF57NX1bMC05YS1mXXs1fS99LHtiZWdpbjovXF57NH1bMC05YS1mXXs0fS8KfSx7YmVnaW46L1xeezN9WzAtOWEtZl17M30vfSx7YmVnaW46L1xeezJ9WzAtOWEtZl17Mn0vfSx7CmJlZ2luOi9cXnsyfVtcdTAwMDAtXHUwMDdmXS99XSxhPVt7Y2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjovXFwvLHJlbGV2YW5jZTowLApjb250YWluczpbe2VuZHNQYXJlbnQ6ITAsYmVnaW46KCguLi5lKT0+IigiK2UubWFwKChlPT57CnJldHVybihuPWUpPyJzdHJpbmciPT10eXBlb2Ygbj9uOm4uc291cmNlOm51bGw7dmFyIG4KfSkpLmpvaW4oInwiKSsiKSIpKC4uLlsiKD86TmVlZHNUZVhGb3JtYXR8UmVxdWlyZVBhY2thZ2V8R2V0SWRJbmZvKSIsIlByb3ZpZGVzKD86RXhwbCk/KD86UGFja2FnZXxDbGFzc3xGaWxlKSIsIig/OkRlY2xhcmVPcHRpb258UHJvY2Vzc09wdGlvbnMpIiwiKD86ZG9jdW1lbnRjbGFzc3x1c2VwYWNrYWdlfGlucHV0fGluY2x1ZGUpIiwibWFrZWF0KD86bGV0dGVyfG90aGVyKSIsIkV4cGxTeW50YXgoPzpPbnxPZmYpIiwiKD86bmV3fHJlbmV3fHByb3ZpZGUpP2NvbW1hbmQiLCIoPzpyZSluZXdlbnZpcm9ubWVudCIsIig/Ok5ld3xSZW5ld3xQcm92aWRlfERlY2xhcmUpKD86RXhwYW5kYWJsZSk/RG9jdW1lbnRDb21tYW5kIiwiKD86TmV3fFJlbmV3fFByb3ZpZGV8RGVjbGFyZSlEb2N1bWVudEVudmlyb25tZW50IiwiKD86KD86ZXxnfHgpP2RlZnxsZXQpIiwiKD86YmVnaW58ZW5kKSIsIig/OnBhcnR8Y2hhcHRlcnwoPzpzdWIpezAsMn1zZWN0aW9ufCg/OnN1Yik/cGFyYWdyYXBoKSIsImNhcHRpb24iLCIoPzpsYWJlbHwoPzplcXxwYWdlfG5hbWUpP3JlZnwoPzpwYXJlbnxmb290fHN1cGVyKT9jaXRlKSIsIig/OmFscGhhfGJldGF8W0dnXWFtbWF8W0RkXWVsdGF8KD86dmFyKT9lcHNpbG9ufHpldGF8ZXRhfFtUdF1oZXRhfHZhcnRoZXRhKSIsIig/OmlvdGF8KD86dmFyKT9rYXBwYXxbTGxdYW1iZGF8bXV8bnV8W1h4XWl8W1BwXWl8dmFycGl8KD86dmFyKXJobykiLCIoPzpbU3NdaWdtYXx2YXJzaWdtYXx0YXV8W1V1XXBzaWxvbnxbUHBdaGl8dmFycGhpfGNoaXxbUHBdc2l8W09vXW1lZ2EpIiwiKD86ZnJhY3xzdW18cHJvZHxsaW18aW5mdHl8dGltZXN8c3FydHxsZXF8Z2VxfGxlZnR8cmlnaHR8bWlkZGxlfFtiQl1pZ2c/KSIsIig/Oltscl1hbmdsZXxxP3F1YWR8W2xjdmRpXT9kb3RzfGQ/ZG90fGhhdHx0aWxkZXxiYXIpIl0ubWFwKChlPT5lKyIoPyFbYS16QS1aQDpfXSkiKSkpCn0se2VuZHNQYXJlbnQ6ITAsCmJlZ2luOlJlZ0V4cChbIig/Ol9fKT9bYS16QS1aXXsyLH1fW2EtekEtWl0oPzpfP1thLXpBLVpdKSs6W2EtekEtWl0qIiwiW2xnY11fXz9bYS16QS1aXSg/Ol8/W2EtekEtWl0pKl9bYS16QS1aXXsyLH0iLCJbcXNdX18/W2EtekEtWl0oPzpfP1thLXpBLVpdKSsiLCJ1c2UoPzpfaSk/OlthLXpBLVpdKiIsIig/OmVsc2V8Zml8b3IpOiIsIig/OmlmfGNzfGV4cCk6dyIsIig/Omhib3h8dmJveCk6biIsIjo6W2EtekEtWl1fdW5icmFjZWQiLCI6OlthLXpBLVo6XSJdLm1hcCgoZT0+ZSsiKD8hW2EtekEtWjpfXSkiKSkuam9pbigifCIpKQp9LHtlbmRzUGFyZW50OiEwLHZhcmlhbnRzOm59LHtlbmRzUGFyZW50OiEwLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7CmJlZ2luOi9bYS16QS1aQF0rL30se2JlZ2luOi9bXmEtekEtWkBdPy99XX1dfSx7Y2xhc3NOYW1lOiJwYXJhbXMiLHJlbGV2YW5jZTowLApiZWdpbjovIytcZD8vfSx7dmFyaWFudHM6bn0se2NsYXNzTmFtZToiYnVpbHRfaW4iLHJlbGV2YW5jZTowLGJlZ2luOi9bJCZeX10vfSx7CmNsYXNzTmFtZToibWV0YSIsYmVnaW46IiUgIVRlWCIsZW5kOiIkIixyZWxldmFuY2U6MTB9LGUuQ09NTUVOVCgiJSIsIiQiLHsKcmVsZXZhbmNlOjB9KV0saT17YmVnaW46L1x7LyxlbmQ6L1x9LyxyZWxldmFuY2U6MCxjb250YWluczpbInNlbGYiLC4uLmFdCn0sdD1lLmluaGVyaXQoaSx7cmVsZXZhbmNlOjAsZW5kc1BhcmVudDohMCxjb250YWluczpbaSwuLi5hXX0pLHI9e2JlZ2luOi9cWy8sCmVuZDovXF0vLGVuZHNQYXJlbnQ6ITAscmVsZXZhbmNlOjAsY29udGFpbnM6W2ksLi4uYV19LHM9e2JlZ2luOi9ccysvLHJlbGV2YW5jZTowCn0sYz1bdF0sbD1bcl0sbz0oZSxuKT0+KHtjb250YWluczpbc10sc3RhcnRzOntyZWxldmFuY2U6MCxjb250YWluczplLHN0YXJ0czpufQp9KSxkPShlLG4pPT4oe2JlZ2luOiJcXFxcIitlKyIoPyFbYS16QS1aQDpfXSkiLGtleXdvcmRzOnskcGF0dGVybjovXFxbYS16QS1aXSsvLAprZXl3b3JkOiJcXCIrZX0scmVsZXZhbmNlOjAsY29udGFpbnM6W3NdLHN0YXJ0czpufSksZz0obixhKT0+ZS5pbmhlcml0KHsKYmVnaW46IlxcXFxiZWdpbig/PVsgXHRdKihcXHI/XFxuWyBcdF0qKT9cXHsiK24rIlxcfSkiLGtleXdvcmRzOnsKJHBhdHRlcm46L1xcW2EtekEtWl0rLyxrZXl3b3JkOiJcXGJlZ2luIn0scmVsZXZhbmNlOjAKfSxvKGMsYSkpLG09KG49InN0cmluZyIpPT5lLkVORF9TQU1FX0FTX0JFR0lOKHtjbGFzc05hbWU6bixiZWdpbjovKC58XHI/XG4pLywKZW5kOi8oLnxccj9cbikvLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLGVuZHNQYXJlbnQ6ITB9KSxiPWU9Pih7CmNsYXNzTmFtZToic3RyaW5nIixlbmQ6Iig/PVxcXFxlbmRcXHsiK2UrIlxcfSkifSkscD0oZT0ic3RyaW5nIik9Pih7cmVsZXZhbmNlOjAsCmJlZ2luOi9cey8sc3RhcnRzOntlbmRzUGFyZW50OiEwLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOmUsZW5kOi8oPz1cfSkvLAplbmRzUGFyZW50OiEwLGNvbnRhaW5zOlt7YmVnaW46L1x7LyxlbmQ6L1x9LyxyZWxldmFuY2U6MCxjb250YWluczpbInNlbGYiXX1dfV19Cn0pO3JldHVybntuYW1lOiJMYVRlWCIsYWxpYXNlczpbIlRlWCJdLApjb250YWluczpbLi4uWyJ2ZXJiIiwibHN0aW5saW5lIl0ubWFwKChlPT5kKGUse2NvbnRhaW5zOlttKCldfSkpKSxkKCJtaW50IixvKGMsewpjb250YWluczpbbSgpXX0pKSxkKCJtaW50aW5saW5lIixvKGMse2NvbnRhaW5zOltwKCksbSgpXX0pKSxkKCJ1cmwiLHsKY29udGFpbnM6W3AoImxpbmsiKSxwKCJsaW5rIildfSksZCgiaHlwZXJyZWYiLHtjb250YWluczpbcCgibGluayIpXQp9KSxkKCJocmVmIixvKGwse2NvbnRhaW5zOltwKCJsaW5rIildCn0pKSwuLi5bXS5jb25jYXQoLi4uWyIiLCJcXCoiXS5tYXAoKGU9PltnKCJ2ZXJiYXRpbSIrZSxiKCJ2ZXJiYXRpbSIrZSkpLGcoImZpbGVjb250ZW50cyIrZSxvKGMsYigiZmlsZWNvbnRlbnRzIitlKSkpLC4uLlsiIiwiQiIsIkwiXS5tYXAoKG49PmcobisiVmVyYmF0aW0iK2UsbyhsLGIobisiVmVyYmF0aW0iK2UpKSkpKV0pKSksZygibWludGVkIixvKGwsbyhjLGIoIm1pbnRlZCIpKSkpLC4uLmFdCn19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJnbyIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57Y29uc3Qgbj17CmtleXdvcmQ6ImJyZWFrIGRlZmF1bHQgZnVuYyBpbnRlcmZhY2Ugc2VsZWN0IGNhc2UgbWFwIHN0cnVjdCBjaGFuIGVsc2UgZ290byBwYWNrYWdlIHN3aXRjaCBjb25zdCBmYWxsdGhyb3VnaCBpZiByYW5nZSB0eXBlIGNvbnRpbnVlIGZvciBpbXBvcnQgcmV0dXJuIHZhciBnbyBkZWZlciBib29sIGJ5dGUgY29tcGxleDY0IGNvbXBsZXgxMjggZmxvYXQzMiBmbG9hdDY0IGludDggaW50MTYgaW50MzIgaW50NjQgc3RyaW5nIHVpbnQ4IHVpbnQxNiB1aW50MzIgdWludDY0IGludCB1aW50IHVpbnRwdHIgcnVuZSIsCmxpdGVyYWw6InRydWUgZmFsc2UgaW90YSBuaWwiLApidWlsdF9pbjoiYXBwZW5kIGNhcCBjbG9zZSBjb21wbGV4IGNvcHkgaW1hZyBsZW4gbWFrZSBuZXcgcGFuaWMgcHJpbnQgcHJpbnRsbiByZWFsIHJlY292ZXIgZGVsZXRlIgp9O3JldHVybntuYW1lOiJHbyIsYWxpYXNlczpbImdvbGFuZyJdLGtleXdvcmRzOm4saWxsZWdhbDoiPC8iLApjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToic3RyaW5nIiwKdmFyaWFudHM6W2UuUVVPVEVfU1RSSU5HX01PREUsZS5BUE9TX1NUUklOR19NT0RFLHtiZWdpbjoiYCIsZW5kOiJgIn1dfSx7CmNsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOmUuQ19OVU1CRVJfUkUrIltpXSIscmVsZXZhbmNlOjEKfSxlLkNfTlVNQkVSX01PREVdfSx7YmVnaW46Lzo9L30se2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1bmMiLAplbmQ6IlxccyooXFx7fCQpIixleGNsdWRlRW5kOiEwLGNvbnRhaW5zOltlLlRJVExFX01PREUse2NsYXNzTmFtZToicGFyYW1zIiwKYmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3JkczpuLGlsbGVnYWw6L1siJ10vfV19XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJydWJ5IiwoKCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSguLi5lKXsKcmV0dXJuIGUubWFwKChlPT57cmV0dXJuKG49ZSk/InN0cmluZyI9PXR5cGVvZiBuP246bi5zb3VyY2U6bnVsbDt2YXIgbgp9KSkuam9pbigiIil9cmV0dXJuIG49PnsKdmFyIGEsaT0iKFthLXpBLVpfXVxcdypbIT89XT98Wy0rfl1AfDw8fD4+fD1+fD09PT98PD0+fFs8Pl09P3xcXCpcXCp8Wy0vKyVeJip+YHxdfFxcW1xcXT0/KSIscz17CmtleXdvcmQ6ImFuZCB0aGVuIGRlZmluZWQgbW9kdWxlIGluIHJldHVybiByZWRvIGlmIEJFR0lOIHJldHJ5IGVuZCBmb3Igc2VsZiB3aGVuIG5leHQgdW50aWwgZG8gYmVnaW4gdW5sZXNzIEVORCByZXNjdWUgZWxzZSBicmVhayB1bmRlZiBub3Qgc3VwZXIgY2xhc3MgY2FzZSByZXF1aXJlIHlpZWxkIGFsaWFzIHdoaWxlIGVuc3VyZSBlbHNpZiBvciBpbmNsdWRlIGF0dHJfcmVhZGVyIGF0dHJfd3JpdGVyIGF0dHJfYWNjZXNzb3IgX19GSUxFX18iLApidWlsdF9pbjoicHJvYyBsYW1iZGEiLGxpdGVyYWw6InRydWUgZmFsc2UgbmlsIn0scj17Y2xhc3NOYW1lOiJkb2N0YWciLApiZWdpbjoiQFtBLVphLXpdKyJ9LGI9e2JlZ2luOiIjPCIsZW5kOiI+In0sdD1bbi5DT01NRU5UKCIjIiwiJCIse2NvbnRhaW5zOltyXQp9KSxuLkNPTU1FTlQoIl49YmVnaW4iLCJePWVuZCIse2NvbnRhaW5zOltyXSxyZWxldmFuY2U6MTAKfSksbi5DT01NRU5UKCJeX19FTkRfXyIsIlxcbiQiKV0sYz17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46LyNcey8sZW5kOi9cfS8sCmtleXdvcmRzOnN9LGQ9e2NsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbbi5CQUNLU0xBU0hfRVNDQVBFLGNdLHZhcmlhbnRzOlt7CmJlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46LyIvLGVuZDovIi99LHtiZWdpbjovYC8sZW5kOi9gL30se2JlZ2luOi8lW3FRd1d4XT9cKC8sCmVuZDovXCkvfSx7YmVnaW46LyVbcVF3V3hdP1xbLyxlbmQ6L1xdL30se2JlZ2luOi8lW3FRd1d4XT9cey8sZW5kOi9cfS99LHsKYmVnaW46LyVbcVF3V3hdPzwvLGVuZDovPi99LHtiZWdpbjovJVtxUXdXeF0/XC8vLGVuZDovXC8vfSx7YmVnaW46LyVbcVF3V3hdPyUvLAplbmQ6LyUvfSx7YmVnaW46LyVbcVF3V3hdPy0vLGVuZDovLS99LHtiZWdpbjovJVtxUXdXeF0/XHwvLGVuZDovXHwvfSx7CmJlZ2luOi9cQlw/KFxcXGR7MSwzfXxcXHhbQS1GYS1mMC05XXsxLDJ9fFxcdVtBLUZhLWYwLTldezR9fFxcP1xTKVxiL30sewpiZWdpbjovPDxbLX5dPyc/KFx3Kylcbig/OlteXG5dKlxuKSo/XHMqXDFcYi8scmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3sKYmVnaW46Lzw8Wy1+XT8nPy99LG4uRU5EX1NBTUVfQVNfQkVHSU4oe2JlZ2luOi8oXHcrKS8sZW5kOi8oXHcrKS8sCmNvbnRhaW5zOltuLkJBQ0tTTEFTSF9FU0NBUEUsY119KV19XX0sZz0iWzAtOV0oXz9bMC05XSkqIixsPXtjbGFzc05hbWU6Im51bWJlciIsCnJlbGV2YW5jZTowLHZhcmlhbnRzOlt7CmJlZ2luOmBcXGIoWzEtOV0oXz9bMC05XSkqfDApKFxcLigke2d9KSk/KFtlRV1bKy1dPygke2d9KXxyKT9pP1xcYmB9LHsKYmVnaW46IlxcYjBbZERdWzAtOV0oXz9bMC05XSkqcj9pP1xcYiJ9LHtiZWdpbjoiXFxiMFtiQl1bMC0xXShfP1swLTFdKSpyP2k/XFxiIgp9LHtiZWdpbjoiXFxiMFtvT11bMC03XShfP1swLTddKSpyP2k/XFxiIn0sewpiZWdpbjoiXFxiMFt4WF1bMC05YS1mQS1GXShfP1swLTlhLWZBLUZdKSpyP2k/XFxiIn0sewpiZWdpbjoiXFxiMChfP1swLTddKStyP2k/XFxiIn1dfSxvPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46IlxcKCIsZW5kOiJcXCkiLAplbmRzUGFyZW50OiEwLGtleXdvcmRzOnN9LF89W2Qse2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIG1vZHVsZSIsCmVuZDoiJHw7IixpbGxlZ2FsOi89Lyxjb250YWluczpbbi5pbmhlcml0KG4uVElUTEVfTU9ERSx7CmJlZ2luOiJbQS1aYS16X11cXHcqKDo6XFx3KykqKFxcP3whKT8ifSkse2JlZ2luOiI8XFxzKiIsY29udGFpbnM6W3sKYmVnaW46IigiK24uSURFTlRfUkUrIjo6KT8iK24uSURFTlRfUkV9XX1dLmNvbmNhdCh0KX0se2NsYXNzTmFtZToiZnVuY3Rpb24iLApiZWdpbjplKC9kZWZccyovLChhPWkrIlxccyooXFwofDt8JCkiLGUoIig/PSIsYSwiKSIpKSksa2V5d29yZHM6ImRlZiIsZW5kOiIkfDsiLApjb250YWluczpbbi5pbmhlcml0KG4uVElUTEVfTU9ERSx7YmVnaW46aX0pLG9dLmNvbmNhdCh0KX0se2JlZ2luOm4uSURFTlRfUkUrIjo6Igp9LHtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46bi5VTkRFUlNDT1JFX0lERU5UX1JFKyIoIXxcXD8pPzoiLHJlbGV2YW5jZTowfSx7CmNsYXNzTmFtZToic3ltYm9sIixiZWdpbjoiOig/IVxccykiLGNvbnRhaW5zOltkLHtiZWdpbjppfV0scmVsZXZhbmNlOjB9LGwsewpjbGFzc05hbWU6InZhcmlhYmxlIiwKYmVnaW46IihcXCRcXFcpfCgoXFwkfEBAPykoXFx3KykpKD89W15AJD9dKSg/IVtBLVphLXpdKSg/IVtAJD8nXSkifSx7CmNsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXHwvLGVuZDovXHwvLHJlbGV2YW5jZTowLGtleXdvcmRzOnN9LHsKYmVnaW46IigiK24uUkVfU1RBUlRFUlNfUkUrInx1bmxlc3MpXFxzKiIsa2V5d29yZHM6InVubGVzcyIsY29udGFpbnM6W3sKY2xhc3NOYW1lOiJyZWdleHAiLGNvbnRhaW5zOltuLkJBQ0tTTEFTSF9FU0NBUEUsY10saWxsZWdhbDovXG4vLHZhcmlhbnRzOlt7CmJlZ2luOiIvIixlbmQ6Ii9bYS16XSoifSx7YmVnaW46LyVyXHsvLGVuZDovXH1bYS16XSovfSx7YmVnaW46IiVyXFwoIiwKZW5kOiJcXClbYS16XSoifSx7YmVnaW46IiVyISIsZW5kOiIhW2Etel0qIn0se2JlZ2luOiIlclxcWyIsZW5kOiJcXF1bYS16XSoifV0KfV0uY29uY2F0KGIsdCkscmVsZXZhbmNlOjB9XS5jb25jYXQoYix0KTtjLmNvbnRhaW5zPV8sby5jb250YWlucz1fO3ZhciBFPVt7CmJlZ2luOi9eXHMqPT4vLHN0YXJ0czp7ZW5kOiIkIixjb250YWluczpffX0se2NsYXNzTmFtZToibWV0YSIsCmJlZ2luOiJeKFs+P10+fFtcXHcjXStcXChcXHcrXFwpOlxcZCs6XFxkKz58KFxcdystKT9cXGQrXFwuXFxkK1xcLlxcZCsocFxcZCspP1teXFxkXVtePl0rPikoPz1bIF0pIiwKc3RhcnRzOntlbmQ6IiQiLGNvbnRhaW5zOl99fV07cmV0dXJuIHQudW5zaGlmdChiKSx7bmFtZToiUnVieSIsCmFsaWFzZXM6WyJyYiIsImdlbXNwZWMiLCJwb2RzcGVjIiwidGhvciIsImlyYiJdLGtleXdvcmRzOnMsaWxsZWdhbDovXC9cKi8sCmNvbnRhaW5zOltuLlNIRUJBTkcoe2JpbmFyeToicnVieSJ9KV0uY29uY2F0KEUpLmNvbmNhdCh0KS5jb25jYXQoXyl9fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgianVsaWEiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+ewp2YXIgcj0iW0EtWmEtel9cXHUwMEExLVxcdUZGRkZdW0EtWmEtel8wLTlcXHUwMEExLVxcdUZGRkZdKiIsdD17JHBhdHRlcm46ciwKa2V5d29yZDoiYmFyZW1vZHVsZSBiZWdpbiBicmVhayBjYXRjaCBjY2FsbCBjb25zdCBjb250aW51ZSBkbyBlbHNlIGVsc2VpZiBlbmQgZXhwb3J0IGZhbHNlIGZpbmFsbHkgZm9yIGZ1bmN0aW9uIGdsb2JhbCBpZiBpbXBvcnQgaW4gaXNhIGxldCBsb2NhbCBtYWNybyBtb2R1bGUgcXVvdGUgcmV0dXJuIHRydWUgdHJ5IHVzaW5nIHdoZXJlIHdoaWxlIiwKbGl0ZXJhbDoiQVJHUyBDX05VTEwgREVQT1RfUEFUSCBFTkRJQU5fQk9NIEVOViBJbmYgSW5mMTYgSW5mMzIgSW5mNjQgSW5zZXJ0aW9uU29ydCBMT0FEX1BBVEggTWVyZ2VTb3J0IE5hTiBOYU4xNiBOYU4zMiBOYU42NCBQUk9HUkFNX0ZJTEUgUXVpY2tTb3J0IFJvdW5kRG93biBSb3VuZEZyb21aZXJvIFJvdW5kTmVhcmVzdCBSb3VuZE5lYXJlc3RUaWVzQXdheSBSb3VuZE5lYXJlc3RUaWVzVXAgUm91bmRUb1plcm8gUm91bmRVcCBWRVJTSU9OfDAgZGV2bnVsbCBmYWxzZSBpbSBtaXNzaW5nIG5vdGhpbmcgcGkgc3RkZXJyIHN0ZGluIHN0ZG91dCB0cnVlIHVuZGVmIFx1MDNjMCBcdTIxMmYiLApidWlsdF9pbjoiQWJzdHJhY3RBcnJheSBBYnN0cmFjdENoYW5uZWwgQWJzdHJhY3RDaGFyIEFic3RyYWN0RGljdCBBYnN0cmFjdERpc3BsYXkgQWJzdHJhY3RGbG9hdCBBYnN0cmFjdElycmF0aW9uYWwgQWJzdHJhY3RNYXRyaXggQWJzdHJhY3RSYW5nZSBBYnN0cmFjdFNldCBBYnN0cmFjdFN0cmluZyBBYnN0cmFjdFVuaXRSYW5nZSBBYnN0cmFjdFZlY09yTWF0IEFic3RyYWN0VmVjdG9yIEFueSBBcmd1bWVudEVycm9yIEFycmF5IEFzc2VydGlvbkVycm9yIEJpZ0Zsb2F0IEJpZ0ludCBCaXRBcnJheSBCaXRNYXRyaXggQml0U2V0IEJpdFZlY3RvciBCb29sIEJvdW5kc0Vycm9yIENhcHR1cmVkRXhjZXB0aW9uIENhcnRlc2lhbkluZGV4IENhcnRlc2lhbkluZGljZXMgQ2NoYXIgQ2RvdWJsZSBDZmxvYXQgQ2hhbm5lbCBDaGFyIENpbnQgQ2ludG1heF90IENsb25nIENsb25nbG9uZyBDbWQgQ29sb24gQ29tcGxleCBDb21wbGV4RjE2IENvbXBsZXhGMzIgQ29tcGxleEY2NCBDb21wb3NpdGVFeGNlcHRpb24gQ29uZGl0aW9uIENwdHJkaWZmX3QgQ3Nob3J0IENzaXplX3QgQ3NzaXplX3QgQ3N0cmluZyBDdWNoYXIgQ3VpbnQgQ3VpbnRtYXhfdCBDdWxvbmcgQ3Vsb25nbG9uZyBDdXNob3J0IEN2b2lkIEN3Y2hhcl90IEN3c3RyaW5nIERhdGFUeXBlIERlbnNlQXJyYXkgRGVuc2VNYXRyaXggRGVuc2VWZWNPck1hdCBEZW5zZVZlY3RvciBEaWN0IERpbWVuc2lvbk1pc21hdGNoIERpbXMgRGl2aWRlRXJyb3IgRG9tYWluRXJyb3IgRU9GRXJyb3IgRW51bSBFcnJvckV4Y2VwdGlvbiBFeGNlcHRpb24gRXhwb25lbnRpYWxCYWNrT2ZmIEV4cHIgRmxvYXQxNiBGbG9hdDMyIEZsb2F0NjQgRnVuY3Rpb24gR2xvYmFsUmVmIEhUTUwgSU8gSU9CdWZmZXIgSU9Db250ZXh0IElPU3RyZWFtIElkRGljdCBJbmRleENhcnRlc2lhbiBJbmRleExpbmVhciBJbmRleFN0eWxlIEluZXhhY3RFcnJvciBJbml0RXJyb3IgSW50IEludDEyOCBJbnQxNiBJbnQzMiBJbnQ2NCBJbnQ4IEludGVnZXIgSW50ZXJydXB0RXhjZXB0aW9uIEludmFsaWRTdGF0ZUV4Y2VwdGlvbiBJcnJhdGlvbmFsIEtleUVycm9yIExpblJhbmdlIExpbmVOdW1iZXJOb2RlIExpbmVhckluZGljZXMgTG9hZEVycm9yIE1JTUUgTWF0cml4IE1ldGhvZCBNZXRob2RFcnJvciBNaXNzaW5nIE1pc3NpbmdFeGNlcHRpb24gTW9kdWxlIE5UdXBsZSBOYW1lZFR1cGxlIE5vdGhpbmcgTnVtYmVyIE9yZGluYWxSYW5nZSBPdXRPZk1lbW9yeUVycm9yIE92ZXJmbG93RXJyb3IgUGFpciBQYXJ0aWFsUXVpY2tTb3J0IFBlcm11dGVkRGltc0FycmF5IFBpcGUgUHJvY2Vzc0ZhaWxlZEV4Y2VwdGlvbiBQdHIgUXVvdGVOb2RlIFJhdGlvbmFsIFJhd0ZEIFJlYWRPbmx5TWVtb3J5RXJyb3IgUmVhbCBSZWVudHJhbnRMb2NrIFJlZiBSZWdleCBSZWdleE1hdGNoIFJvdW5kaW5nTW9kZSBTZWdtZW50YXRpb25GYXVsdCBTZXQgU2lnbmVkIFNvbWUgU3RhY2tPdmVyZmxvd0Vycm9yIFN0ZXBSYW5nZSBTdGVwUmFuZ2VMZW4gU3RyaWRlZEFycmF5IFN0cmlkZWRNYXRyaXggU3RyaWRlZFZlY09yTWF0IFN0cmlkZWRWZWN0b3IgU3RyaW5nIFN0cmluZ0luZGV4RXJyb3IgU3ViQXJyYXkgU3ViU3RyaW5nIFN1YnN0aXR1dGlvblN0cmluZyBTeW1ib2wgU3lzdGVtRXJyb3IgVGFzayBUYXNrRmFpbGVkRXhjZXB0aW9uIFRleHQgVGV4dERpc3BsYXkgVGltZXIgVHVwbGUgVHlwZSBUeXBlRXJyb3IgVHlwZVZhciBVSW50IFVJbnQxMjggVUludDE2IFVJbnQzMiBVSW50NjQgVUludDggVW5kZWZJbml0aWFsaXplciBVbmRlZktleXdvcmRFcnJvciBVbmRlZlJlZkVycm9yIFVuZGVmVmFyRXJyb3IgVW5pb24gVW5pb25BbGwgVW5pdFJhbmdlIFVuc2lnbmVkIFZhbCBWYXJhcmcgVmVjRWxlbWVudCBWZWNPck1hdCBWZWN0b3IgVmVyc2lvbk51bWJlciBXZWFrS2V5RGljdCBXZWFrUmVmIgp9LG49e2tleXdvcmRzOnQsaWxsZWdhbDovPFwvL30sYT17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46L1wkXCgvLGVuZDovXCkvLAprZXl3b3Jkczp0fSxpPXtjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjoiXFwkIityfSxvPXtjbGFzc05hbWU6InN0cmluZyIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsYSxpXSx2YXJpYW50czpbe2JlZ2luOi9cdyoiIiIvLGVuZDovIiIiXHcqLywKcmVsZXZhbmNlOjEwfSx7YmVnaW46L1x3KiIvLGVuZDovIlx3Ki99XX0scz17Y2xhc3NOYW1lOiJzdHJpbmciLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLGEsaV0sYmVnaW46ImAiLGVuZDoiYCJ9LGw9e2NsYXNzTmFtZToibWV0YSIsCmJlZ2luOiJAIityfTtyZXR1cm4gbi5uYW1lPSJKdWxpYSIsbi5jb250YWlucz1be2NsYXNzTmFtZToibnVtYmVyIiwKYmVnaW46LyhcYjB4W1xkX10qKFwuW1xkX10qKT98MHhcLlxkW1xkX10qKXBbLStdP1xkK3xcYjBbYm94XVthLWZBLUYwLTldW2EtZkEtRjAtOV9dKnwoXGJcZFtcZF9dKihcLltcZF9dKik/fFwuXGRbXGRfXSopKFtlRWZGXVstK10/XGQrKT8vLApyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovJygufFxcW3hYdVVdW2EtekEtWjAtOV0rKScvfSxvLHMsbCx7CmNsYXNzTmFtZToiY29tbWVudCIsdmFyaWFudHM6W3tiZWdpbjoiIz0iLGVuZDoiPSMiLHJlbGV2YW5jZToxMH0se2JlZ2luOiIjIiwKZW5kOiIkIn1dfSxlLkhBU0hfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6ImtleXdvcmQiLApiZWdpbjoiXFxiKCgoYWJzdHJhY3R8cHJpbWl0aXZlKVxccyspdHlwZXwobXV0YWJsZVxccyspP3N0cnVjdClcXGIifSx7YmVnaW46Lzw6Lwp9XSxhLmNvbnRhaW5zPW4uY29udGFpbnMsbn19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImxpc3AiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+ewp2YXIgbj0iW2EtekEtWl9cXC0rXFwqXFwvPD0+JiNdW2EtekEtWjAtOV9cXC0rKlxcLzw9PiYjIV0qIixhPSJcXHxbXl0qP1xcfCIsaT0iKC18XFwrKT9cXGQrKFxcLlxcZCt8XFwvXFxkKyk/KChkfGV8ZnxsfHN8RHxFfEZ8THxTKShcXCt8LSk/XFxkKyk/IixzPXsKY2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjoiXFxiKHR7MX18bmlsKVxcYiJ9LGw9e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbewpiZWdpbjppLHJlbGV2YW5jZTowfSx7YmVnaW46IiMoYnxCKVswLTFdKygvWzAtMV0rKT8ifSx7CmJlZ2luOiIjKG98TylbMC03XSsoL1swLTddKyk/In0se2JlZ2luOiIjKHh8WClbMC05YS1mQS1GXSsoL1swLTlhLWZBLUZdKyk/In0sewpiZWdpbjoiIyhjfEMpXFwoIitpKyIgKyIraSxlbmQ6IlxcKSJ9XX0sYj1lLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7CmlsbGVnYWw6bnVsbH0pLGc9ZS5DT01NRU5UKCI7IiwiJCIse3JlbGV2YW5jZTowfSkscj17YmVnaW46IlxcKiIsZW5kOiJcXCoifSx0PXsKY2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJbOiZdIitufSxjPXtiZWdpbjpuLHJlbGV2YW5jZTowfSxkPXtiZWdpbjphfSxvPXsKY29udGFpbnM6W2wsYixyLHQse2JlZ2luOiJcXCgiLGVuZDoiXFwpIixjb250YWluczpbInNlbGYiLHMsYixsLGNdfSxjXSwKdmFyaWFudHM6W3tiZWdpbjoiWydgXVxcKCIsZW5kOiJcXCkifSx7YmVnaW46IlxcKHF1b3RlICIsZW5kOiJcXCkiLGtleXdvcmRzOnsKbmFtZToicXVvdGUifX0se2JlZ2luOiInIithfV19LHY9e3ZhcmlhbnRzOlt7YmVnaW46IiciK259LHsKYmVnaW46IiMnIituKyIoOjoiK24rIikqIn1dfSxtPXtiZWdpbjoiXFwoXFxzKiIsZW5kOiJcXCkifSx1PXtlbmRzV2l0aFBhcmVudDohMCwKcmVsZXZhbmNlOjB9O3JldHVybiBtLmNvbnRhaW5zPVt7Y2xhc3NOYW1lOiJuYW1lIix2YXJpYW50czpbe2JlZ2luOm4scmVsZXZhbmNlOjAKfSx7YmVnaW46YX1dfSx1XSx1LmNvbnRhaW5zPVtvLHYsbSxzLGwsYixnLHIsdCxkLGNdLHtuYW1lOiJMaXNwIixpbGxlZ2FsOi9cUy8sCmNvbnRhaW5zOltsLGUuU0hFQkFORygpLHMsYixnLG8sdixtLGNdfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImdyb292eSIsKCgpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoZSxuPXt9KXsKcmV0dXJuIG4udmFyaWFudHM9ZSxufXJldHVybiBuPT57CmNvbnN0IGE9IltBLVphLXowLTlfJF0rIix0PWUoW24uQ19MSU5FX0NPTU1FTlRfTU9ERSxuLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG4uQ09NTUVOVCgiL1xcKlxcKiIsIlxcKi8iLHsKcmVsZXZhbmNlOjAsY29udGFpbnM6W3tiZWdpbjovXHcrQC8scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImRvY3RhZyIsCmJlZ2luOiJAW0EtWmEtel0rIn1dfSldKSxzPXtjbGFzc05hbWU6InJlZ2V4cCIsYmVnaW46L34/XC9bXlwvXG5dK1wvLywKY29udGFpbnM6W24uQkFDS1NMQVNIX0VTQ0FQRV0KfSxpPWUoW24uQklOQVJZX05VTUJFUl9NT0RFLG4uQ19OVU1CRVJfTU9ERV0pLHI9ZShbe2JlZ2luOi8iIiIvLGVuZDovIiIiL30sewpiZWdpbjovJycnLyxlbmQ6LycnJy99LHtiZWdpbjoiXFwkLyIsZW5kOiIvXFwkIixyZWxldmFuY2U6MTAKfSxuLkFQT1NfU1RSSU5HX01PREUsbi5RVU9URV9TVFJJTkdfTU9ERV0se2NsYXNzTmFtZToic3RyaW5nIn0pO3JldHVybnsKbmFtZToiR3Jvb3Z5IixrZXl3b3Jkczp7YnVpbHRfaW46InRoaXMgc3VwZXIiLGxpdGVyYWw6InRydWUgZmFsc2UgbnVsbCIsCmtleXdvcmQ6ImJ5dGUgc2hvcnQgY2hhciBpbnQgbG9uZyBib29sZWFuIGZsb2F0IGRvdWJsZSB2b2lkIGRlZiBhcyBpbiBhc3NlcnQgdHJhaXQgYWJzdHJhY3Qgc3RhdGljIHZvbGF0aWxlIHRyYW5zaWVudCBwdWJsaWMgcHJpdmF0ZSBwcm90ZWN0ZWQgc3luY2hyb25pemVkIGZpbmFsIGNsYXNzIGludGVyZmFjZSBlbnVtIGlmIGVsc2UgZm9yIHdoaWxlIHN3aXRjaCBjYXNlIGJyZWFrIGRlZmF1bHQgY29udGludWUgdGhyb3cgdGhyb3dzIHRyeSBjYXRjaCBmaW5hbGx5IGltcGxlbWVudHMgZXh0ZW5kcyBuZXcgaW1wb3J0IHBhY2thZ2UgcmV0dXJuIGluc3RhbmNlb2YiCn0sY29udGFpbnM6W24uU0hFQkFORyh7YmluYXJ5OiJncm9vdnkiLHJlbGV2YW5jZToxMH0pLHQscixzLGksewpjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UgdHJhaXQgZW51bSIsZW5kOi9cey8sCmlsbGVnYWw6IjoiLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoiZXh0ZW5kcyBpbXBsZW1lbnRzIgp9LG4uVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46IkBbQS1aYS16XSsiLHJlbGV2YW5jZTowfSx7CmNsYXNzTmFtZToiYXR0ciIsYmVnaW46YSsiWyBcdF0qOiJ9LHtiZWdpbjovXD8vLGVuZDovOi8scmVsZXZhbmNlOjAsCmNvbnRhaW5zOlt0LHIscyxpLCJzZWxmIl19LHtjbGFzc05hbWU6InN5bWJvbCIsCmJlZ2luOiJeWyBcdF0qIisobD1hKyI6IiwoKC4uLmUpPT5lLm1hcCgoZT0+KGU9PmU/InN0cmluZyI9PXR5cGVvZiBlP2U6ZS5zb3VyY2U6bnVsbCkoZSkpKS5qb2luKCIiKSkoIig/PSIsbCwiKSIpKSwKZXhjbHVkZUJlZ2luOiEwLGVuZDphKyI6IixyZWxldmFuY2U6MH1dLGlsbGVnYWw6LyN8PFwvL307dmFyIGx9fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJyZWFzb25tbCIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57CmNvbnN0IG49In4/W2EteiRfXVswLTlhLXpBLVokX10qIixhPSJgP1tBLVokX11bMC05YS16QS1aJF9dKiIscz0iKCIrWyJ8fCIsIisrIiwiKioiLCIrLiIsIioiLCIvIiwiKi4iLCIvLiIsIi4uLiJdLm1hcCgoZT0+ZS5zcGxpdCgiIikubWFwKChlPT4iXFwiK2UpKS5qb2luKCIiKSkpLmpvaW4oInwiKSsifFxcfD58JiZ8PT18PT09KSIsaT0iXFxzKyIrcysiXFxzKyIscj17CmtleXdvcmQ6ImFuZCBhcyBhc3IgYXNzZXJ0IGJlZ2luIGNsYXNzIGNvbnN0cmFpbnQgZG8gZG9uZSBkb3dudG8gZWxzZSBlbmQgZXhjZXB0aW9uIGV4dGVybmFsIGZvciBmdW4gZnVuY3Rpb24gZnVuY3RvciBpZiBpbiBpbmNsdWRlIGluaGVyaXQgaW5pdGlhbGl6ZXIgbGFuZCBsYXp5IGxldCBsb3IgbHNsIGxzciBseG9yIG1hdGNoIG1ldGhvZCBtb2QgbW9kdWxlIG11dGFibGUgbmV3IG5vbnJlYyBvYmplY3Qgb2Ygb3BlbiBvciBwcml2YXRlIHJlYyBzaWcgc3RydWN0IHRoZW4gdG8gdHJ5IHR5cGUgdmFsIHZpcnR1YWwgd2hlbiB3aGlsZSB3aXRoIiwKYnVpbHRfaW46ImFycmF5IGJvb2wgYnl0ZXMgY2hhciBleG58NSBmbG9hdCBpbnQgaW50MzIgaW50NjQgbGlzdCBsYXp5X3R8NSBuYXRpdmVpbnR8NSByZWYgc3RyaW5nIHVuaXQgIiwKbGl0ZXJhbDoidHJ1ZSBmYWxzZSIKfSxsPSJcXGIoMFt4WF1bYS1mQS1GMC05X10rW0xsbl0/fDBbb09dWzAtN19dK1tMbG5dP3wwW2JCXVswMV9dK1tMbG5dP3xbMC05XVswLTlfXSooW0xsbl18KFxcLlswLTlfXSopPyhbZUVdWy0rXT9bMC05X10rKT8pPykiLHQ9ewpjbGFzc05hbWU6Im51bWJlciIscmVsZXZhbmNlOjAsdmFyaWFudHM6W3tiZWdpbjpsfSx7YmVnaW46IlxcKC0iK2wrIlxcKSJ9XX0sYz17CmNsYXNzTmFtZToib3BlcmF0b3IiLHJlbGV2YW5jZTowLGJlZ2luOnN9LG89W3tjbGFzc05hbWU6ImlkZW50aWZpZXIiLApyZWxldmFuY2U6MCxiZWdpbjpufSxjLHRdLGc9W2UuUVVPVEVfU1RSSU5HX01PREUsYyx7Y2xhc3NOYW1lOiJtb2R1bGUiLApiZWdpbjoiXFxiIithLHJldHVybkJlZ2luOiEwLGVuZDoiLiIsY29udGFpbnM6W3tjbGFzc05hbWU6ImlkZW50aWZpZXIiLGJlZ2luOmEsCnJlbGV2YW5jZTowfV19XSxiPVt7Y2xhc3NOYW1lOiJtb2R1bGUiLGJlZ2luOiJcXGIiK2EscmV0dXJuQmVnaW46ITAsZW5kOiIuIiwKcmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImlkZW50aWZpZXIiLGJlZ2luOmEscmVsZXZhbmNlOjB9XX1dLG09ewpjbGFzc05hbWU6ImZ1bmN0aW9uIixyZWxldmFuY2U6MCxrZXl3b3JkczpyLHZhcmlhbnRzOlt7CmJlZ2luOiJcXHMoXFwoXFwuPy4qP1xcKXwiK24rIilcXHMqPT4iLGVuZDoiXFxzKj0+IixyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCwKY29udGFpbnM6W3tjbGFzc05hbWU6InBhcmFtcyIsdmFyaWFudHM6W3tiZWdpbjpufSx7CmJlZ2luOiJ+P1thLXokX11bMC05YS16QS1aJF9dKihcXHMqOlxccypbYS16JF9dWzAtOWEteiRfXSooXFwoXFxzKignP1thLXokX11bMC05YS16JF9dKlxccyooLCc/W2EteiRfXVswLTlhLXokX10qXFxzKikqKT9cXCkpPyl7MCwyfSIKfSx7YmVnaW46L1woXHMqXCkvfV19XX0se2JlZ2luOiJcXHNcXChcXC4/W147XFx8XSpcXClcXHMqPT4iLGVuZDoiXFxzPT4iLApyZXR1cm5CZWdpbjohMCxyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToicGFyYW1zIixyZWxldmFuY2U6MCx2YXJpYW50czpbewpiZWdpbjpuLGVuZDoiKCx8XFxufFxcKSkiLHJlbGV2YW5jZTowLGNvbnRhaW5zOltjLHtjbGFzc05hbWU6InR5cGluZyIsYmVnaW46IjoiLAplbmQ6IigsfFxcbikiLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOmJ9XX1dfV19LHsKYmVnaW46IlxcKFxcLlxccyIrbisiXFwpXFxzKj0+In1dfTtnLnB1c2gobSk7Y29uc3QgZD17Y2xhc3NOYW1lOiJjb25zdHJ1Y3RvciIsCmJlZ2luOmErIlxcKCIsZW5kOiJcXCkiLGlsbGVnYWw6IlxcbiIsa2V5d29yZHM6ciwKY29udGFpbnM6W2UuUVVPVEVfU1RSSU5HX01PREUsYyx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiJcXGIiK259XX0sdT17CmNsYXNzTmFtZToicGF0dGVybi1tYXRjaCIsYmVnaW46IlxcfCIscmV0dXJuQmVnaW46ITAsa2V5d29yZHM6cixlbmQ6Ij0+IiwKcmVsZXZhbmNlOjAsY29udGFpbnM6W2QsYyx7cmVsZXZhbmNlOjAsY2xhc3NOYW1lOiJjb25zdHJ1Y3RvciIsYmVnaW46YX1dfSx2PXsKY2xhc3NOYW1lOiJtb2R1bGUtYWNjZXNzIixrZXl3b3JkczpyLHJldHVybkJlZ2luOiEwLHZhcmlhbnRzOlt7CmJlZ2luOiJcXGIoIithKyJcXC4pKyIrbn0se2JlZ2luOiJcXGIoIithKyJcXC4pK1xcKCIsZW5kOiJcXCkiLHJldHVybkJlZ2luOiEwLApjb250YWluczpbbSx7YmVnaW46IlxcKCIsZW5kOiJcXCkiLHNraXA6ITB9XS5jb25jYXQoZyl9LHsKYmVnaW46IlxcYigiK2ErIlxcLikrXFx7IixlbmQ6L1x9L31dLGNvbnRhaW5zOmd9O3JldHVybiBiLnB1c2godiksewpuYW1lOiJSZWFzb25NTCIsYWxpYXNlczpbInJlIl0sa2V5d29yZHM6cixpbGxlZ2FsOiIoOi18Oj18XFwkXFx7fFxcKz0pIiwKY29udGFpbnM6W2UuQ09NTUVOVCgiL1xcKiIsIlxcKi8iLHtpbGxlZ2FsOiJeKCMsXFwvXFwvKSJ9KSx7CmNsYXNzTmFtZToiY2hhcmFjdGVyIixiZWdpbjoiJyhcXFxcW14nXSt8W14nXSknIixpbGxlZ2FsOiJcXG4iLHJlbGV2YW5jZTowCn0sZS5RVU9URV9TVFJJTkdfTU9ERSx7Y2xhc3NOYW1lOiJsaXRlcmFsIixiZWdpbjoiXFwoXFwpIixyZWxldmFuY2U6MH0sewpjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOiJcXFtcXHwiLGVuZDoiXFx8XFxdIixyZWxldmFuY2U6MCxjb250YWluczpvfSx7CmNsYXNzTmFtZToibGl0ZXJhbCIsYmVnaW46IlxcWyIsZW5kOiJcXF0iLHJlbGV2YW5jZTowLGNvbnRhaW5zOm99LGQsewpjbGFzc05hbWU6Im9wZXJhdG9yIixiZWdpbjppLGlsbGVnYWw6Ii0tXHgzZSIscmVsZXZhbmNlOjAKfSx0LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSx1LG0se2NsYXNzTmFtZToibW9kdWxlLWRlZiIsCmJlZ2luOiJcXGJtb2R1bGVcXHMrIituKyJcXHMrIithKyJcXHMrPVxccytcXHsiLGVuZDovXH0vLHJldHVybkJlZ2luOiEwLAprZXl3b3JkczpyLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtb2R1bGUiLHJlbGV2YW5jZTowLGJlZ2luOmF9LHsKYmVnaW46L1x7LyxlbmQ6L1x9Lyxza2lwOiEwfV0uY29uY2F0KGcpfSx2XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJwaHAiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e2NvbnN0IHI9ewpjbGFzc05hbWU6InZhcmlhYmxlIiwKYmVnaW46IlxcJCtbYS16QS1aX1x4N2YtXHhmZl1bYS16QS1aMC05X1x4N2YtXHhmZl0qKD8hW0EtWmEtejAtOV0pKD8hWyRdKSJ9LHQ9ewpjbGFzc05hbWU6Im1ldGEiLHZhcmlhbnRzOlt7YmVnaW46LzxcP3BocC8scmVsZXZhbmNlOjEwfSx7YmVnaW46LzxcP1s9XT8vfSx7CmJlZ2luOi9cPz4vfV19LGE9e2NsYXNzTmFtZToic3Vic3QiLHZhcmlhbnRzOlt7YmVnaW46L1wkXHcrL30se2JlZ2luOi9ce1wkLywKZW5kOi9cfS99XX0sbj1lLmluaGVyaXQoZS5BUE9TX1NUUklOR19NT0RFLHtpbGxlZ2FsOm51bGwKfSksaT1lLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsLApjb250YWluczplLlFVT1RFX1NUUklOR19NT0RFLmNvbnRhaW5zLmNvbmNhdChhKX0pLG89ZS5FTkRfU0FNRV9BU19CRUdJTih7CmJlZ2luOi88PDxbIFx0XSooXHcrKVxuLyxlbmQ6L1sgXHRdKihcdyspXGIvLApjb250YWluczplLlFVT1RFX1NUUklOR19NT0RFLmNvbnRhaW5zLmNvbmNhdChhKX0pLGw9e2NsYXNzTmFtZToic3RyaW5nIiwKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSx0XSx2YXJpYW50czpbZS5pbmhlcml0KG4se2JlZ2luOiJiJyIsZW5kOiInIgp9KSxlLmluaGVyaXQoaSx7YmVnaW46J2IiJyxlbmQ6JyInfSksaSxuLG9dfSxjPXsKdmFyaWFudHM6W2UuQklOQVJZX05VTUJFUl9NT0RFLGUuQ19OVU1CRVJfTU9ERV19LHM9ewprZXl3b3JkOiJfX0NMQVNTX18gX19ESVJfXyBfX0ZJTEVfXyBfX0ZVTkNUSU9OX18gX19MSU5FX18gX19NRVRIT0RfXyBfX05BTUVTUEFDRV9fIF9fVFJBSVRfXyBkaWUgZWNobyBleGl0IGluY2x1ZGUgaW5jbHVkZV9vbmNlIHByaW50IHJlcXVpcmUgcmVxdWlyZV9vbmNlIGFycmF5IGFic3RyYWN0IGFuZCBhcyBiaW5hcnkgYm9vbCBib29sZWFuIGJyZWFrIGNhbGxhYmxlIGNhc2UgY2F0Y2ggY2xhc3MgY2xvbmUgY29uc3QgY29udGludWUgZGVjbGFyZSBkZWZhdWx0IGRvIGRvdWJsZSBlbHNlIGVsc2VpZiBlbXB0eSBlbmRkZWNsYXJlIGVuZGZvciBlbmRmb3JlYWNoIGVuZGlmIGVuZHN3aXRjaCBlbmR3aGlsZSBldmFsIGV4dGVuZHMgZmluYWwgZmluYWxseSBmbG9hdCBmb3IgZm9yZWFjaCBmcm9tIGdsb2JhbCBnb3RvIGlmIGltcGxlbWVudHMgaW5zdGFuY2VvZiBpbnN0ZWFkb2YgaW50IGludGVnZXIgaW50ZXJmYWNlIGlzc2V0IGl0ZXJhYmxlIGxpc3QgbWF0Y2h8MCBuZXcgb2JqZWN0IG9yIHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyByZWFsIHJldHVybiBzdHJpbmcgc3dpdGNoIHRocm93IHRyYWl0IHRyeSB1bnNldCB1c2UgdmFyIHZvaWQgd2hpbGUgeG9yIHlpZWxkIiwKbGl0ZXJhbDoiZmFsc2UgbnVsbCB0cnVlIiwKYnVpbHRfaW46IkVycm9yfDAgQXBwZW5kSXRlcmF0b3IgQXJndW1lbnRDb3VudEVycm9yIEFyaXRobWV0aWNFcnJvciBBcnJheUl0ZXJhdG9yIEFycmF5T2JqZWN0IEFzc2VydGlvbkVycm9yIEJhZEZ1bmN0aW9uQ2FsbEV4Y2VwdGlvbiBCYWRNZXRob2RDYWxsRXhjZXB0aW9uIENhY2hpbmdJdGVyYXRvciBDYWxsYmFja0ZpbHRlckl0ZXJhdG9yIENvbXBpbGVFcnJvciBDb3VudGFibGUgRGlyZWN0b3J5SXRlcmF0b3IgRGl2aXNpb25CeVplcm9FcnJvciBEb21haW5FeGNlcHRpb24gRW1wdHlJdGVyYXRvciBFcnJvckV4Y2VwdGlvbiBFeGNlcHRpb24gRmlsZXN5c3RlbUl0ZXJhdG9yIEZpbHRlckl0ZXJhdG9yIEdsb2JJdGVyYXRvciBJbmZpbml0ZUl0ZXJhdG9yIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBJdGVyYXRvckl0ZXJhdG9yIExlbmd0aEV4Y2VwdGlvbiBMaW1pdEl0ZXJhdG9yIExvZ2ljRXhjZXB0aW9uIE11bHRpcGxlSXRlcmF0b3IgTm9SZXdpbmRJdGVyYXRvciBPdXRPZkJvdW5kc0V4Y2VwdGlvbiBPdXRPZlJhbmdlRXhjZXB0aW9uIE91dGVySXRlcmF0b3IgT3ZlcmZsb3dFeGNlcHRpb24gUGFyZW50SXRlcmF0b3IgUGFyc2VFcnJvciBSYW5nZUV4Y2VwdGlvbiBSZWN1cnNpdmVBcnJheUl0ZXJhdG9yIFJlY3Vyc2l2ZUNhY2hpbmdJdGVyYXRvciBSZWN1cnNpdmVDYWxsYmFja0ZpbHRlckl0ZXJhdG9yIFJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yIFJlY3Vyc2l2ZUZpbHRlckl0ZXJhdG9yIFJlY3Vyc2l2ZUl0ZXJhdG9yIFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IgUmVjdXJzaXZlUmVnZXhJdGVyYXRvciBSZWN1cnNpdmVUcmVlSXRlcmF0b3IgUmVnZXhJdGVyYXRvciBSdW50aW1lRXhjZXB0aW9uIFNlZWthYmxlSXRlcmF0b3IgU3BsRG91Ymx5TGlua2VkTGlzdCBTcGxGaWxlSW5mbyBTcGxGaWxlT2JqZWN0IFNwbEZpeGVkQXJyYXkgU3BsSGVhcCBTcGxNYXhIZWFwIFNwbE1pbkhlYXAgU3BsT2JqZWN0U3RvcmFnZSBTcGxPYnNlcnZlciBTcGxPYnNlcnZlciBTcGxQcmlvcml0eVF1ZXVlIFNwbFF1ZXVlIFNwbFN0YWNrIFNwbFN1YmplY3QgU3BsU3ViamVjdCBTcGxUZW1wRmlsZU9iamVjdCBUeXBlRXJyb3IgVW5kZXJmbG93RXhjZXB0aW9uIFVuZXhwZWN0ZWRWYWx1ZUV4Y2VwdGlvbiBBcnJheUFjY2VzcyBDbG9zdXJlIEdlbmVyYXRvciBJdGVyYXRvciBJdGVyYXRvckFnZ3JlZ2F0ZSBTZXJpYWxpemFibGUgVGhyb3dhYmxlIFRyYXZlcnNhYmxlIFdlYWtSZWZlcmVuY2UgRGlyZWN0b3J5IF9fUEhQX0luY29tcGxldGVfQ2xhc3MgcGFyZW50IHBocF91c2VyX2ZpbHRlciBzZWxmIHN0YXRpYyBzdGRDbGFzcyIKfTtyZXR1cm57YWxpYXNlczpbInBocCIsInBocDMiLCJwaHA0IiwicGhwNSIsInBocDYiLCJwaHA3IiwicGhwOCJdLApjYXNlX2luc2Vuc2l0aXZlOiEwLGtleXdvcmRzOnMsCmNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLGUuQ09NTUVOVCgiLy8iLCIkIix7Y29udGFpbnM6W3RdCn0pLGUuQ09NTUVOVCgiL1xcKiIsIlxcKi8iLHtjb250YWluczpbe2NsYXNzTmFtZToiZG9jdGFnIixiZWdpbjoiQFtBLVphLXpdKyJ9XQp9KSxlLkNPTU1FTlQoIl9faGFsdF9jb21waWxlci4rPzsiLCExLHtlbmRzV2l0aFBhcmVudDohMCwKa2V5d29yZHM6Il9faGFsdF9jb21waWxlciJ9KSx0LHtjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOi9cJHRoaXNcYi99LHIsewpiZWdpbjovKDo6fC0+KStbYS16QS1aX1x4N2YtXHhmZl1bYS16QS1aMC05X1x4N2YtXHhmZl0qL30se2NsYXNzTmFtZToiZnVuY3Rpb24iLApyZWxldmFuY2U6MCxiZWdpbktleXdvcmRzOiJmbiBmdW5jdGlvbiIsZW5kOi9bO3tdLyxleGNsdWRlRW5kOiEwLAppbGxlZ2FsOiJbJCVcXFtdIixjb250YWluczpbZS5VTkRFUlNDT1JFX1RJVExFX01PREUse2JlZ2luOiI9PiJ9LHsKY2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiJcXCgiLGVuZDoiXFwpIixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCwKa2V5d29yZHM6cyxjb250YWluczpbInNlbGYiLHIsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxsLGNdfV19LHtjbGFzc05hbWU6ImNsYXNzIiwKYmVnaW5LZXl3b3JkczoiY2xhc3MgaW50ZXJmYWNlIixyZWxldmFuY2U6MCxlbmQ6L1x7LyxleGNsdWRlRW5kOiEwLAppbGxlZ2FsOi9bOigkIl0vLGNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoiZXh0ZW5kcyBpbXBsZW1lbnRzIgp9LGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2JlZ2luS2V5d29yZHM6Im5hbWVzcGFjZSIscmVsZXZhbmNlOjAsZW5kOiI7IiwKaWxsZWdhbDovWy4nXS8sY29udGFpbnM6W2UuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2JlZ2luS2V5d29yZHM6InVzZSIsCnJlbGV2YW5jZTowLGVuZDoiOyIsY29udGFpbnM6W2UuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0sbCxjXX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJzdHlsdXMiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e3ZhciB0PXsKY2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46IlxcJCIrZS5JREVOVF9SRX0saT17Y2xhc3NOYW1lOiJudW1iZXIiLApiZWdpbjoiIyhbYS1mQS1GMC05XXs2fXxbYS1mQS1GMC05XXszfSkifTtyZXR1cm57bmFtZToiU3R5bHVzIixhbGlhc2VzOlsic3R5bCJdLApjYXNlX2luc2Vuc2l0aXZlOiExLGtleXdvcmRzOiJpZiBlbHNlIGZvciBpbiIsCmlsbGVnYWw6IihcXD98KFxcYlJldHVyblxcYil8KFxcYkVuZFxcYil8KFxcYmVuZFxcYil8KFxcYmRlZlxcYil8O3wjXFxzfFxcKlxcc3w9PT1cXHN8XFx8fCUpIiwKY29udGFpbnM6W2UuUVVPVEVfU1RSSU5HX01PREUsZS5BUE9TX1NUUklOR19NT0RFLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGksewpiZWdpbjoiXFwuW2EtekEtWl1bYS16QS1aMC05Xy1dKig/PVsuXFxzXFxuWzosXSkiLGNsYXNzTmFtZToic2VsZWN0b3ItY2xhc3MifSx7CmJlZ2luOiIjW2EtekEtWl1bYS16QS1aMC05Xy1dKig/PVsuXFxzXFxuWzosXSkiLGNsYXNzTmFtZToic2VsZWN0b3ItaWQifSx7CmJlZ2luOiJcXGIoYXxhYmJyfGFkZHJlc3N8YXJ0aWNsZXxhc2lkZXxhdWRpb3xifGJsb2NrcXVvdGV8Ym9keXxidXR0b258Y2FudmFzfGNhcHRpb258Y2l0ZXxjb2RlfGRkfGRlbHxkZXRhaWxzfGRmbnxkaXZ8ZGx8ZHR8ZW18ZmllbGRzZXR8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGZvcm18aDF8aDJ8aDN8aDR8aDV8aDZ8aGVhZGVyfGhncm91cHxodG1sfGl8aWZyYW1lfGltZ3xpbnB1dHxpbnN8a2JkfGxhYmVsfGxlZ2VuZHxsaXxtYXJrfG1lbnV8bmF2fG9iamVjdHxvbHxwfHF8cXVvdGV8c2FtcHxzZWN0aW9ufHNwYW58c3Ryb25nfHN1bW1hcnl8c3VwfHRhYmxlfHRib2R5fHRkfHRleHRhcmVhfHRmb290fHRofHRoZWFkfHRpbWV8dHJ8dWx8dmFyfHZpZGVvKSg/PVsuXFxzXFxuWzosXSkiLApjbGFzc05hbWU6InNlbGVjdG9yLXRhZyJ9LHsKYmVnaW46IiY/Oj86XFxiKGFmdGVyfGJlZm9yZXxmaXJzdC1sZXR0ZXJ8Zmlyc3QtbGluZXxhY3RpdmV8Zmlyc3QtY2hpbGR8Zm9jdXN8aG92ZXJ8bGFuZ3xsaW5rfHZpc2l0ZWQpKD89Wy5cXHNcXG5bOixdKSIKfSx7CmJlZ2luOiJAKGNoYXJzZXR8Y3NzfGRlYnVnfGV4dGVuZHxmb250LWZhY2V8Zm9yfGltcG9ydHxpbmNsdWRlfG1lZGlhfG1peGlufHBhZ2V8d2Fybnx3aGlsZSlcXGIiCn0sdCxlLkNTU19OVU1CRVJfTU9ERSxlLk5VTUJFUl9NT0RFLHtjbGFzc05hbWU6ImZ1bmN0aW9uIiwKYmVnaW46Il5bYS16QS1aXVthLXpBLVowLTlfLV0qXFwoLipcXCkiLGlsbGVnYWw6IltcXG5dIixyZXR1cm5CZWdpbjohMCwKY29udGFpbnM6W3tjbGFzc05hbWU6InRpdGxlIixiZWdpbjoiXFxiW2EtekEtWl1bYS16QS1aMC05Xy1dKiJ9LHsKY2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sZW5kOi9cKS8sCmNvbnRhaW5zOltpLHQsZS5BUE9TX1NUUklOR19NT0RFLGUuQ1NTX05VTUJFUl9NT0RFLGUuTlVNQkVSX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERV0KfV19LHtjbGFzc05hbWU6ImF0dHJpYnV0ZSIsCmJlZ2luOiJcXGIoIitbImFsaWduLWNvbnRlbnQiLCJhbGlnbi1pdGVtcyIsImFsaWduLXNlbGYiLCJhbmltYXRpb24iLCJhbmltYXRpb24tZGVsYXkiLCJhbmltYXRpb24tZGlyZWN0aW9uIiwiYW5pbWF0aW9uLWR1cmF0aW9uIiwiYW5pbWF0aW9uLWZpbGwtbW9kZSIsImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiLCJhbmltYXRpb24tbmFtZSIsImFuaW1hdGlvbi1wbGF5LXN0YXRlIiwiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiIsImF1dG8iLCJiYWNrZmFjZS12aXNpYmlsaXR5IiwiYmFja2dyb3VuZCIsImJhY2tncm91bmQtYXR0YWNobWVudCIsImJhY2tncm91bmQtY2xpcCIsImJhY2tncm91bmQtY29sb3IiLCJiYWNrZ3JvdW5kLWltYWdlIiwiYmFja2dyb3VuZC1vcmlnaW4iLCJiYWNrZ3JvdW5kLXBvc2l0aW9uIiwiYmFja2dyb3VuZC1yZXBlYXQiLCJiYWNrZ3JvdW5kLXNpemUiLCJib3JkZXIiLCJib3JkZXItYm90dG9tIiwiYm9yZGVyLWJvdHRvbS1jb2xvciIsImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiLCJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyIsImJvcmRlci1ib3R0b20tc3R5bGUiLCJib3JkZXItYm90dG9tLXdpZHRoIiwiYm9yZGVyLWNvbGxhcHNlIiwiYm9yZGVyLWNvbG9yIiwiYm9yZGVyLWltYWdlIiwiYm9yZGVyLWltYWdlLW91dHNldCIsImJvcmRlci1pbWFnZS1yZXBlYXQiLCJib3JkZXItaW1hZ2Utc2xpY2UiLCJib3JkZXItaW1hZ2Utc291cmNlIiwiYm9yZGVyLWltYWdlLXdpZHRoIiwiYm9yZGVyLWxlZnQiLCJib3JkZXItbGVmdC1jb2xvciIsImJvcmRlci1sZWZ0LXN0eWxlIiwiYm9yZGVyLWxlZnQtd2lkdGgiLCJib3JkZXItcmFkaXVzIiwiYm9yZGVyLXJpZ2h0IiwiYm9yZGVyLXJpZ2h0LWNvbG9yIiwiYm9yZGVyLXJpZ2h0LXN0eWxlIiwiYm9yZGVyLXJpZ2h0LXdpZHRoIiwiYm9yZGVyLXNwYWNpbmciLCJib3JkZXItc3R5bGUiLCJib3JkZXItdG9wIiwiYm9yZGVyLXRvcC1jb2xvciIsImJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIsImJvcmRlci10b3Atc3R5bGUiLCJib3JkZXItdG9wLXdpZHRoIiwiYm9yZGVyLXdpZHRoIiwiYm90dG9tIiwiYm94LWRlY29yYXRpb24tYnJlYWsiLCJib3gtc2hhZG93IiwiYm94LXNpemluZyIsImJyZWFrLWFmdGVyIiwiYnJlYWstYmVmb3JlIiwiYnJlYWstaW5zaWRlIiwiY2FwdGlvbi1zaWRlIiwiY2xlYXIiLCJjbGlwIiwiY2xpcC1wYXRoIiwiY29sb3IiLCJjb2x1bW4tY291bnQiLCJjb2x1bW4tZmlsbCIsImNvbHVtbi1nYXAiLCJjb2x1bW4tcnVsZSIsImNvbHVtbi1ydWxlLWNvbG9yIiwiY29sdW1uLXJ1bGUtc3R5bGUiLCJjb2x1bW4tcnVsZS13aWR0aCIsImNvbHVtbi1zcGFuIiwiY29sdW1uLXdpZHRoIiwiY29sdW1ucyIsImNvbnRlbnQiLCJjb3VudGVyLWluY3JlbWVudCIsImNvdW50ZXItcmVzZXQiLCJjdXJzb3IiLCJkaXJlY3Rpb24iLCJkaXNwbGF5IiwiZW1wdHktY2VsbHMiLCJmaWx0ZXIiLCJmbGV4IiwiZmxleC1iYXNpcyIsImZsZXgtZGlyZWN0aW9uIiwiZmxleC1mbG93IiwiZmxleC1ncm93IiwiZmxleC1zaHJpbmsiLCJmbGV4LXdyYXAiLCJmbG9hdCIsImZvbnQiLCJmb250LWZhbWlseSIsImZvbnQtZmVhdHVyZS1zZXR0aW5ncyIsImZvbnQta2VybmluZyIsImZvbnQtbGFuZ3VhZ2Utb3ZlcnJpZGUiLCJmb250LXNpemUiLCJmb250LXNpemUtYWRqdXN0IiwiZm9udC1zdHJldGNoIiwiZm9udC1zdHlsZSIsImZvbnQtdmFyaWFudCIsImZvbnQtdmFyaWFudC1saWdhdHVyZXMiLCJmb250LXdlaWdodCIsImhlaWdodCIsImh5cGhlbnMiLCJpY29uIiwiaW1hZ2Utb3JpZW50YXRpb24iLCJpbWFnZS1yZW5kZXJpbmciLCJpbWFnZS1yZXNvbHV0aW9uIiwiaW1lLW1vZGUiLCJpbmhlcml0IiwiaW5pdGlhbCIsImp1c3RpZnktY29udGVudCIsImxlZnQiLCJsZXR0ZXItc3BhY2luZyIsImxpbmUtaGVpZ2h0IiwibGlzdC1zdHlsZSIsImxpc3Qtc3R5bGUtaW1hZ2UiLCJsaXN0LXN0eWxlLXBvc2l0aW9uIiwibGlzdC1zdHlsZS10eXBlIiwibWFyZ2luIiwibWFyZ2luLWJvdHRvbSIsIm1hcmdpbi1sZWZ0IiwibWFyZ2luLXJpZ2h0IiwibWFyZ2luLXRvcCIsIm1hcmtzIiwibWFzayIsIm1heC1oZWlnaHQiLCJtYXgtd2lkdGgiLCJtaW4taGVpZ2h0IiwibWluLXdpZHRoIiwibmF2LWRvd24iLCJuYXYtaW5kZXgiLCJuYXYtbGVmdCIsIm5hdi1yaWdodCIsIm5hdi11cCIsIm5vbmUiLCJub3JtYWwiLCJvYmplY3QtZml0Iiwib2JqZWN0LXBvc2l0aW9uIiwib3BhY2l0eSIsIm9yZGVyIiwib3JwaGFucyIsIm91dGxpbmUiLCJvdXRsaW5lLWNvbG9yIiwib3V0bGluZS1vZmZzZXQiLCJvdXRsaW5lLXN0eWxlIiwib3V0bGluZS13aWR0aCIsIm92ZXJmbG93Iiwib3ZlcmZsb3ctd3JhcCIsIm92ZXJmbG93LXgiLCJvdmVyZmxvdy15IiwicGFkZGluZyIsInBhZGRpbmctYm90dG9tIiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsInBhZGRpbmctdG9wIiwicGFnZS1icmVhay1hZnRlciIsInBhZ2UtYnJlYWstYmVmb3JlIiwicGFnZS1icmVhay1pbnNpZGUiLCJwZXJzcGVjdGl2ZSIsInBlcnNwZWN0aXZlLW9yaWdpbiIsInBvaW50ZXItZXZlbnRzIiwicG9zaXRpb24iLCJxdW90ZXMiLCJyZXNpemUiLCJyaWdodCIsInRhYi1zaXplIiwidGFibGUtbGF5b3V0IiwidGV4dC1hbGlnbiIsInRleHQtYWxpZ24tbGFzdCIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtZGVjb3JhdGlvbi1jb2xvciIsInRleHQtZGVjb3JhdGlvbi1saW5lIiwidGV4dC1kZWNvcmF0aW9uLXN0eWxlIiwidGV4dC1pbmRlbnQiLCJ0ZXh0LW92ZXJmbG93IiwidGV4dC1yZW5kZXJpbmciLCJ0ZXh0LXNoYWRvdyIsInRleHQtdHJhbnNmb3JtIiwidGV4dC11bmRlcmxpbmUtcG9zaXRpb24iLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm0tb3JpZ2luIiwidHJhbnNmb3JtLXN0eWxlIiwidHJhbnNpdGlvbiIsInRyYW5zaXRpb24tZGVsYXkiLCJ0cmFuc2l0aW9uLWR1cmF0aW9uIiwidHJhbnNpdGlvbi1wcm9wZXJ0eSIsInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIiwidW5pY29kZS1iaWRpIiwidmVydGljYWwtYWxpZ24iLCJ2aXNpYmlsaXR5Iiwid2hpdGUtc3BhY2UiLCJ3aWRvd3MiLCJ3aWR0aCIsIndvcmQtYnJlYWsiLCJ3b3JkLXNwYWNpbmciLCJ3b3JkLXdyYXAiLCJ6LWluZGV4Il0ucmV2ZXJzZSgpLmpvaW4oInwiKSsiKVxcYiIsCnN0YXJ0czp7ZW5kOi87fCQvLApjb250YWluczpbaSx0LGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQ1NTX05VTUJFUl9NT0RFLGUuTlVNQkVSX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV0sCmlsbGVnYWw6L1wuLyxyZWxldmFuY2U6MH19XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJweXRob24iLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e2NvbnN0IG49ewprZXl3b3JkOiJhbmQgYXMgYXNzZXJ0IGFzeW5jIGF3YWl0IGJyZWFrIGNsYXNzIGNvbnRpbnVlIGRlZiBkZWwgZWxpZiBlbHNlIGV4Y2VwdCBmaW5hbGx5IGZvciAgZnJvbSBnbG9iYWwgaWYgaW1wb3J0IGluIGlzIGxhbWJkYSBub25sb2NhbHwxMCBub3Qgb3IgcGFzcyByYWlzZSByZXR1cm4gdHJ5IHdoaWxlIHdpdGggeWllbGQiLApidWlsdF9pbjoiX19pbXBvcnRfXyBhYnMgYWxsIGFueSBhc2NpaSBiaW4gYm9vbCBicmVha3BvaW50IGJ5dGVhcnJheSBieXRlcyBjYWxsYWJsZSBjaHIgY2xhc3NtZXRob2QgY29tcGlsZSBjb21wbGV4IGRlbGF0dHIgZGljdCBkaXIgZGl2bW9kIGVudW1lcmF0ZSBldmFsIGV4ZWMgZmlsdGVyIGZsb2F0IGZvcm1hdCBmcm96ZW5zZXQgZ2V0YXR0ciBnbG9iYWxzIGhhc2F0dHIgaGFzaCBoZWxwIGhleCBpZCBpbnB1dCBpbnQgaXNpbnN0YW5jZSBpc3N1YmNsYXNzIGl0ZXIgbGVuIGxpc3QgbG9jYWxzIG1hcCBtYXggbWVtb3J5dmlldyBtaW4gbmV4dCBvYmplY3Qgb2N0IG9wZW4gb3JkIHBvdyBwcmludCBwcm9wZXJ0eSByYW5nZSByZXByIHJldmVyc2VkIHJvdW5kIHNldCBzZXRhdHRyIHNsaWNlIHNvcnRlZCBzdGF0aWNtZXRob2Qgc3RyIHN1bSBzdXBlciB0dXBsZSB0eXBlIHZhcnMgemlwIiwKbGl0ZXJhbDoiX19kZWJ1Z19fIEVsbGlwc2lzIEZhbHNlIE5vbmUgTm90SW1wbGVtZW50ZWQgVHJ1ZSJ9LGE9ewpjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9eKD4+PnxcLlwuXC4pIC99LHM9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOi9cey8sCmVuZDovXH0vLGtleXdvcmRzOm4saWxsZWdhbDovIy99LGk9e2JlZ2luOi9ce1x7LyxyZWxldmFuY2U6MH0scj17CmNsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXSx2YXJpYW50czpbewpiZWdpbjovKFt1VV18W2JCXXxbclJdfFtiQl1bclJdfFtyUl1bYkJdKT8nJycvLGVuZDovJycnLywKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxhXSxyZWxldmFuY2U6MTB9LHsKYmVnaW46LyhbdVVdfFtiQl18W3JSXXxbYkJdW3JSXXxbclJdW2JCXSk/IiIiLyxlbmQ6LyIiIi8sCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsYV0scmVsZXZhbmNlOjEwfSx7CmJlZ2luOi8oW2ZGXVtyUl18W3JSXVtmRl18W2ZGXSknJycvLGVuZDovJycnLywKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxhLGksc119LHtiZWdpbjovKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pIiIiLywKZW5kOi8iIiIvLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsYSxpLHNdfSx7YmVnaW46LyhbdVVdfFtyUl0pJy8sZW5kOi8nLywKcmVsZXZhbmNlOjEwfSx7YmVnaW46LyhbdVVdfFtyUl0pIi8sZW5kOi8iLyxyZWxldmFuY2U6MTB9LHsKYmVnaW46LyhbYkJdfFtiQl1bclJdfFtyUl1bYkJdKScvLGVuZDovJy99LHtiZWdpbjovKFtiQl18W2JCXVtyUl18W3JSXVtiQl0pIi8sCmVuZDovIi99LHtiZWdpbjovKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pJy8sZW5kOi8nLywKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxpLHNdfSx7YmVnaW46LyhbZkZdW3JSXXxbclJdW2ZGXXxbZkZdKSIvLGVuZDovIi8sCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsaSxzXX0sZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREVdCn0sdD0iWzAtOV0oXz9bMC05XSkqIixsPWAoXFxiKCR7dH0pKT9cXC4oJHt0fSl8XFxiKCR7dH0pXFwuYCxiPXsKY2xhc3NOYW1lOiJudW1iZXIiLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7CmJlZ2luOmAoXFxiKCR7dH0pfCgke2x9KSlbZUVdWystXT8oJHt0fSlbakpdP1xcYmB9LHtiZWdpbjpgKCR7bH0pW2pKXT9gfSx7CmJlZ2luOiJcXGIoWzEtOV0oXz9bMC05XSkqfDArKF8/MCkqKVtsTGpKXT9cXGIifSx7CmJlZ2luOiJcXGIwW2JCXShfP1swMV0pK1tsTF0/XFxiIn0se2JlZ2luOiJcXGIwW29PXShfP1swLTddKStbbExdP1xcYiJ9LHsKYmVnaW46IlxcYjBbeFhdKF8/WzAtOWEtZkEtRl0pK1tsTF0/XFxiIn0se2JlZ2luOmBcXGIoJHt0fSlbakpdXFxiYH1dfSxvPXsKY2xhc3NOYW1lOiJwYXJhbXMiLHZhcmlhbnRzOlt7YmVnaW46L1woXHMqXCkvLHNraXA6ITAsY2xhc3NOYW1lOm51bGx9LHsKYmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpuLApjb250YWluczpbInNlbGYiLGEsYixyLGUuSEFTSF9DT01NRU5UX01PREVdfV19O3JldHVybiBzLmNvbnRhaW5zPVtyLGIsYV0sewpuYW1lOiJQeXRob24iLGFsaWFzZXM6WyJweSIsImd5cCIsImlweXRob24iXSxrZXl3b3JkczpuLAppbGxlZ2FsOi8oPFwvfC0+fFw/KXw9Pi8sY29udGFpbnM6W2EsYix7YmVnaW46L1xic2VsZlxiL30se2JlZ2luS2V5d29yZHM6ImlmIiwKcmVsZXZhbmNlOjB9LHIsZS5IQVNIX0NPTU1FTlRfTU9ERSx7dmFyaWFudHM6W3tjbGFzc05hbWU6ImZ1bmN0aW9uIiwKYmVnaW5LZXl3b3JkczoiZGVmIn0se2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIn1dLGVuZDovOi8sCmlsbGVnYWw6L1skez07XG4sXS8sY29udGFpbnM6W2UuVU5ERVJTQ09SRV9USVRMRV9NT0RFLG8se2JlZ2luOi8tPi8sCmVuZHNXaXRoUGFyZW50OiEwLGtleXdvcmRzOiJOb25lIn1dfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovXltcdCBdKkAvLAplbmQ6Lyg/PSMpfCQvLGNvbnRhaW5zOltiLG8scl19LHtiZWdpbjovXGIocHJpbnR8ZXhlYylcKC99XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJ5YW1sIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9PnsKdmFyIG49InRydWUgZmFsc2UgeWVzIG5vIG51bGwiLGE9IltcXHcjOy8/OkAmPSskLC5+KicoKVtcXF1dKyIscz17CmNsYXNzTmFtZToic3RyaW5nIixyZWxldmFuY2U6MCx2YXJpYW50czpbe2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46LyIvLGVuZDovIi8KfSx7YmVnaW46L1xTKy99XSxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLHtjbGFzc05hbWU6InRlbXBsYXRlLXZhcmlhYmxlIiwKdmFyaWFudHM6W3tiZWdpbjovXHtcey8sZW5kOi9cfVx9L30se2JlZ2luOi8lXHsvLGVuZDovXH0vfV19XX0saT1lLmluaGVyaXQocyx7CnZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy99LHtiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi9bXlxzLHt9W1xdXSsvfV19KSxsPXsKZW5kOiIsIixlbmRzV2l0aFBhcmVudDohMCxleGNsdWRlRW5kOiEwLGNvbnRhaW5zOltdLGtleXdvcmRzOm4scmVsZXZhbmNlOjB9LHQ9ewpiZWdpbjovXHsvLGVuZDovXH0vLGNvbnRhaW5zOltsXSxpbGxlZ2FsOiJcXG4iLHJlbGV2YW5jZTowfSxnPXtiZWdpbjoiXFxbIiwKZW5kOiJcXF0iLGNvbnRhaW5zOltsXSxpbGxlZ2FsOiJcXG4iLHJlbGV2YW5jZTowfSxiPVt7Y2xhc3NOYW1lOiJhdHRyIiwKdmFyaWFudHM6W3tiZWdpbjoiXFx3W1xcdyA6XFwvLi1dKjooPz1bIFx0XXwkKSJ9LHsKYmVnaW46JyJcXHdbXFx3IDpcXC8uLV0qIjooPz1bIFx0XXwkKSd9LHtiZWdpbjoiJ1xcd1tcXHcgOlxcLy4tXSonOig/PVsgXHRdfCQpIgp9XX0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46Il4tLS1cXHMqJCIscmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJzdHJpbmciLApiZWdpbjoiW1xcfD5dKFsxLTldP1srLV0pP1sgXSpcXG4oICspW14gXVteXFxuXSpcXG4oXFwyW15cXG5dK1xcbj8pKiJ9LHsKYmVnaW46IjwlWyU9LV0/IixlbmQ6IlslLV0/JT4iLHN1Ykxhbmd1YWdlOiJydWJ5IixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCwKcmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOiIhXFx3KyEiK2F9LHtjbGFzc05hbWU6InR5cGUiLApiZWdpbjoiITwiK2ErIj4ifSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiISIrYX0se2NsYXNzTmFtZToidHlwZSIsYmVnaW46IiEhIithCn0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiYiK2UuVU5ERVJTQ09SRV9JREVOVF9SRSsiJCJ9LHtjbGFzc05hbWU6Im1ldGEiLApiZWdpbjoiXFwqIitlLlVOREVSU0NPUkVfSURFTlRfUkUrIiQifSx7Y2xhc3NOYW1lOiJidWxsZXQiLGJlZ2luOiItKD89WyBdfCQpIiwKcmVsZXZhbmNlOjB9LGUuSEFTSF9DT01NRU5UX01PREUse2JlZ2luS2V5d29yZHM6bixrZXl3b3Jkczp7bGl0ZXJhbDpufX0sewpjbGFzc05hbWU6Im51bWJlciIsCmJlZ2luOiJcXGJbMC05XXs0fSgtWzAtOV1bMC05XSl7MCwyfShbVHQgXFx0XVswLTldWzAtOV0/KDpbMC05XVswLTldKXsyfSk/KFxcLlswLTldKik/KFsgXFx0XSkqKFp8Wy0rXVswLTldWzAtOV0/KDpbMC05XVswLTldKT8pP1xcYiIKfSx7Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOmUuQ19OVU1CRVJfUkUrIlxcYiIscmVsZXZhbmNlOjB9LHQsZyxzXSxyPVsuLi5iXQo7cmV0dXJuIHIucG9wKCksci5wdXNoKGkpLGwuY29udGFpbnM9cix7bmFtZToiWUFNTCIsY2FzZV9pbnNlbnNpdGl2ZTohMCwKYWxpYXNlczpbInltbCIsIllBTUwiXSxjb250YWluczpifX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImVsaXhpciIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57CmNvbnN0IG49IlthLXpBLVpfXVthLXpBLVowLTlfLl0qKCF8XFw/KT8iLGk9eyRwYXR0ZXJuOm4sCmtleXdvcmQ6ImFuZCBmYWxzZSB0aGVuIGRlZmluZWQgbW9kdWxlIGluIHJldHVybiByZWRvIHJldHJ5IGVuZCBmb3IgdHJ1ZSBzZWxmIHdoZW4gbmV4dCB1bnRpbCBkbyBiZWdpbiB1bmxlc3MgbmlsIGJyZWFrIG5vdCBjYXNlIGNvbmQgYWxpYXMgd2hpbGUgZW5zdXJlIG9yIGluY2x1ZGUgdXNlIGFsaWFzIGZuIHF1b3RlIHJlcXVpcmUgaW1wb3J0IHdpdGh8MCIKfSxhPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovI1x7LyxlbmQ6L1x9LyxrZXl3b3JkczppfSxzPXtjbGFzc05hbWU6Im51bWJlciIsCmJlZ2luOiIoXFxiMG9bMC03X10rKXwoXFxiMGJbMDFfXSspfChcXGIweFswLTlhLWZBLUZfXSspfCgtP1xcYlsxLTldWzAtOV9dKihcXC5bMC05X10rKFtlRV1bLStdP1swLTldKyk/KT8pIiwKcmVsZXZhbmNlOjB9LGI9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiflthLXpdKD89Wy98KFt7PFwiJ10pIixjb250YWluczpbewplbmRzUGFyZW50OiEwLGNvbnRhaW5zOlt7Y29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxhXSx2YXJpYW50czpbe2JlZ2luOi8iLywKZW5kOi8iL30se2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46L1wvLyxlbmQ6L1wvL30se2JlZ2luOi9cfC8sZW5kOi9cfC99LHsKYmVnaW46L1woLyxlbmQ6L1wpL30se2JlZ2luOi9cWy8sZW5kOi9cXS99LHtiZWdpbjovXHsvLGVuZDovXH0vfSx7YmVnaW46LzwvLAplbmQ6Lz4vfV19XX1dfSxkPXtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxhXSx2YXJpYW50czpbewpiZWdpbjovIiIiLyxlbmQ6LyIiIi99LHtiZWdpbjovJycnLyxlbmQ6LycnJy99LHtiZWdpbjovflMiIiIvLGVuZDovIiIiLywKY29udGFpbnM6W119LHtiZWdpbjovflMiLyxlbmQ6LyIvLGNvbnRhaW5zOltdfSx7YmVnaW46L35TJycnLyxlbmQ6LycnJy8sCmNvbnRhaW5zOltdfSx7YmVnaW46L35TJy8sZW5kOi8nLyxjb250YWluczpbXX0se2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46LyIvLAplbmQ6LyIvfV19LHI9e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImRlZiBkZWZwIGRlZm1hY3JvIixlbmQ6L1xCXGIvLApjb250YWluczpbZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7YmVnaW46bixlbmRzUGFyZW50OiEwfSldfSxnPWUuaW5oZXJpdChyLHsKY2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiZGVmaW1wbCBkZWZtb2R1bGUgZGVmcHJvdG9jb2wgZGVmcmVjb3JkIiwKZW5kOi9cYmRvXGJ8JHw7L30pLHQ9W2Qse2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoifltBLVpdKD89Wy98KFt7PFwiJ10pIiwKY29udGFpbnM6W3tiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46L1wvLyxlbmQ6L1wvL30sewpiZWdpbjovXHwvLGVuZDovXHwvfSx7YmVnaW46L1woLyxlbmQ6L1wpL30se2JlZ2luOi9cWy8sZW5kOi9cXS99LHtiZWdpbjovXHsvLAplbmQ6L1x9L30se2JlZ2luOi88LyxlbmQ6Lz4vfV19LGIsZS5IQVNIX0NPTU1FTlRfTU9ERSxnLHIse2JlZ2luOiI6OiJ9LHsKY2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiI6KD8hW1xcczpdKSIsY29udGFpbnM6W2QsewpiZWdpbjoiW2EtekEtWl9dXFx3KlshPz1dP3xbLSt+XUB8PDx8Pj58PX58PT09P3w8PT58Wzw+XT0/fFxcKlxcKnxbLS8rJV4mKn5gfF18XFxbXFxdPT8iCn1dLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOm4rIjooPyE6KSIscmVsZXZhbmNlOjB9LHMsewpjbGFzc05hbWU6InZhcmlhYmxlIixiZWdpbjoiKFxcJFxcVyl8KChcXCR8QEA/KShcXHcrKSkifSx7YmVnaW46Ii0+In0sewpiZWdpbjoiKCIrZS5SRV9TVEFSVEVSU19SRSsiKVxccyoiLGNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLHsKYmVnaW46L1wvOiAoPz1cZCtccypbLFxdXSkvLHJlbGV2YW5jZTowLGNvbnRhaW5zOltzXX0se2NsYXNzTmFtZToicmVnZXhwIiwKaWxsZWdhbDoiXFxuIixjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLGFdLHZhcmlhbnRzOlt7YmVnaW46Ii8iLGVuZDoiL1thLXpdKiIKfSx7YmVnaW46IiVyXFxbIixlbmQ6IlxcXVthLXpdKiJ9XX1dLHJlbGV2YW5jZTowfV07cmV0dXJuIGEuY29udGFpbnM9dCx7Cm5hbWU6IkVsaXhpciIsa2V5d29yZHM6aSxjb250YWluczp0fX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImphdmFzY3JpcHQiLCgoKT0+eyJ1c2Ugc3RyaWN0Igo7Y29uc3QgZT0iW0EtWmEteiRfXVswLTlBLVphLXokX10qIixuPVsiYXMiLCJpbiIsIm9mIiwiaWYiLCJmb3IiLCJ3aGlsZSIsImZpbmFsbHkiLCJ2YXIiLCJuZXciLCJmdW5jdGlvbiIsImRvIiwicmV0dXJuIiwidm9pZCIsImVsc2UiLCJicmVhayIsImNhdGNoIiwiaW5zdGFuY2VvZiIsIndpdGgiLCJ0aHJvdyIsImNhc2UiLCJkZWZhdWx0IiwidHJ5Iiwic3dpdGNoIiwiY29udGludWUiLCJ0eXBlb2YiLCJkZWxldGUiLCJsZXQiLCJ5aWVsZCIsImNvbnN0IiwiY2xhc3MiLCJkZWJ1Z2dlciIsImFzeW5jIiwiYXdhaXQiLCJzdGF0aWMiLCJpbXBvcnQiLCJmcm9tIiwiZXhwb3J0IiwiZXh0ZW5kcyJdLGE9WyJ0cnVlIiwiZmFsc2UiLCJudWxsIiwidW5kZWZpbmVkIiwiTmFOIiwiSW5maW5pdHkiXSxzPVtdLmNvbmNhdChbInNldEludGVydmFsIiwic2V0VGltZW91dCIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJyZXF1aXJlIiwiZXhwb3J0cyIsImV2YWwiLCJpc0Zpbml0ZSIsImlzTmFOIiwicGFyc2VGbG9hdCIsInBhcnNlSW50IiwiZGVjb2RlVVJJIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZXNjYXBlIiwidW5lc2NhcGUiXSxbImFyZ3VtZW50cyIsInRoaXMiLCJzdXBlciIsImNvbnNvbGUiLCJ3aW5kb3ciLCJkb2N1bWVudCIsImxvY2FsU3RvcmFnZSIsIm1vZHVsZSIsImdsb2JhbCJdLFsiSW50bCIsIkRhdGFWaWV3IiwiTnVtYmVyIiwiTWF0aCIsIkRhdGUiLCJTdHJpbmciLCJSZWdFeHAiLCJPYmplY3QiLCJGdW5jdGlvbiIsIkJvb2xlYW4iLCJFcnJvciIsIlN5bWJvbCIsIlNldCIsIk1hcCIsIldlYWtTZXQiLCJXZWFrTWFwIiwiUHJveHkiLCJSZWZsZWN0IiwiSlNPTiIsIlByb21pc2UiLCJGbG9hdDY0QXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIkludDhBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJGbG9hdDMyQXJyYXkiLCJBcnJheSIsIlVpbnQ4QXJyYXkiLCJVaW50OENsYW1wZWRBcnJheSIsIkFycmF5QnVmZmVyIl0sWyJFdmFsRXJyb3IiLCJJbnRlcm5hbEVycm9yIiwiUmFuZ2VFcnJvciIsIlJlZmVyZW5jZUVycm9yIiwiU3ludGF4RXJyb3IiLCJUeXBlRXJyb3IiLCJVUklFcnJvciJdKQo7ZnVuY3Rpb24gcihlKXtyZXR1cm4gaSgiKD89IixlLCIpIil9ZnVuY3Rpb24gaSguLi5lKXtyZXR1cm4gZS5tYXAoKGU9PnsKcmV0dXJuKG49ZSk/InN0cmluZyI9PXR5cGVvZiBuP246bi5zb3VyY2U6bnVsbDt2YXIgbn0pKS5qb2luKCIiKX1yZXR1cm4gdD0+ewpjb25zdCBjPWUsbz17YmVnaW46LzxbQS1aYS16MC05XFwuXzotXSsvLGVuZDovXC9bQS1aYS16MC05XFwuXzotXSs+fFwvPi8sCmlzVHJ1bHlPcGVuaW5nVGFnOihlLG4pPT57Y29uc3QgYT1lWzBdLmxlbmd0aCtlLmluZGV4LHM9ZS5pbnB1dFthXQo7IjwiIT09cz8iPiI9PT1zJiYoKChlLHthZnRlcjpufSk9Pntjb25zdCBhPSI8LyIrZVswXS5zbGljZSgxKQo7cmV0dXJuLTEhPT1lLmlucHV0LmluZGV4T2YoYSxuKX0pKGUse2FmdGVyOmEKfSl8fG4uaWdub3JlTWF0Y2goKSk6bi5pZ25vcmVNYXRjaCgpfX0sbD17JHBhdHRlcm46ZSxrZXl3b3JkOm4uam9pbigiICIpLApsaXRlcmFsOmEuam9pbigiICIpLGJ1aWx0X2luOnMuam9pbigiICIpCn0sYj0iXFwuKFswLTldKF8/WzAtOV0pKikiLGc9IjB8WzEtOV0oXz9bMC05XSkqfDBbMC03XSpbODldWzAtOV0qIixkPXsKY2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7CmJlZ2luOmAoXFxiKCR7Z30pKCgke2J9KXxcXC4pP3woJHtifSkpW2VFXVsrLV0/KFswLTldKF8/WzAtOV0pKilcXGJgfSx7CmJlZ2luOmBcXGIoJHtnfSlcXGIoKCR7Yn0pXFxifFxcLik/fCgke2J9KVxcYmB9LHsKYmVnaW46IlxcYigwfFsxLTldKF8/WzAtOV0pKiluXFxiIn0sewpiZWdpbjoiXFxiMFt4WF1bMC05YS1mQS1GXShfP1swLTlhLWZBLUZdKSpuP1xcYiJ9LHsKYmVnaW46IlxcYjBbYkJdWzAtMV0oXz9bMC0xXSkqbj9cXGIifSx7YmVnaW46IlxcYjBbb09dWzAtN10oXz9bMC03XSkqbj9cXGIifSx7CmJlZ2luOiJcXGIwWzAtN10rbj9cXGIifV0scmVsZXZhbmNlOjB9LEU9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOiJcXCRcXHsiLAplbmQ6IlxcfSIsa2V5d29yZHM6bCxjb250YWluczpbXX0sdT17YmVnaW46Imh0bWxgIixlbmQ6IiIsc3RhcnRzOntlbmQ6ImAiLApyZXR1cm5FbmQ6ITEsY29udGFpbnM6W3QuQkFDS1NMQVNIX0VTQ0FQRSxFXSxzdWJMYW5ndWFnZToieG1sIn19LF89ewpiZWdpbjoiY3NzYCIsZW5kOiIiLHN0YXJ0czp7ZW5kOiJgIixyZXR1cm5FbmQ6ITEsCmNvbnRhaW5zOlt0LkJBQ0tTTEFTSF9FU0NBUEUsRV0sc3ViTGFuZ3VhZ2U6ImNzcyJ9fSxtPXtjbGFzc05hbWU6InN0cmluZyIsCmJlZ2luOiJgIixlbmQ6ImAiLGNvbnRhaW5zOlt0LkJBQ0tTTEFTSF9FU0NBUEUsRV19LE49e2NsYXNzTmFtZToiY29tbWVudCIsCnZhcmlhbnRzOlt0LkNPTU1FTlQoIi9cXCpcXCoiLCJcXCovIix7cmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImRvY3RhZyIsCmJlZ2luOiJAW0EtWmEtel0rIixjb250YWluczpbe2NsYXNzTmFtZToidHlwZSIsYmVnaW46IlxceyIsZW5kOiJcXH0iLHJlbGV2YW5jZTowCn0se2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOmMrIig/PVxccyooLSl8JCkiLGVuZHNQYXJlbnQ6ITAscmVsZXZhbmNlOjB9LHsKYmVnaW46Lyg/PVteXG5dKVxzLyxyZWxldmFuY2U6MH1dfV0KfSksdC5DX0JMT0NLX0NPTU1FTlRfTU9ERSx0LkNfTElORV9DT01NRU5UX01PREVdCn0seT1bdC5BUE9TX1NUUklOR19NT0RFLHQuUVVPVEVfU1RSSU5HX01PREUsdSxfLG0sZCx0LlJFR0VYUF9NT0RFXQo7RS5jb250YWlucz15LmNvbmNhdCh7YmVnaW46L1x7LyxlbmQ6L1x9LyxrZXl3b3JkczpsLGNvbnRhaW5zOlsic2VsZiJdLmNvbmNhdCh5KQp9KTtjb25zdCBmPVtdLmNvbmNhdChOLEUuY29udGFpbnMpLEE9Zi5jb25jYXQoW3tiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOmwsCmNvbnRhaW5zOlsic2VsZiJdLmNvbmNhdChmKX1dKSxwPXtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLywKZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6bCxjb250YWluczpBfTtyZXR1cm57bmFtZToiSmF2YXNjcmlwdCIsCmFsaWFzZXM6WyJqcyIsImpzeCIsIm1qcyIsImNqcyJdLGtleXdvcmRzOmwsZXhwb3J0czp7UEFSQU1TX0NPTlRBSU5TOkF9LAppbGxlZ2FsOi8jKD8hWyRfQS16XSkvLGNvbnRhaW5zOlt0LlNIRUJBTkcoe2xhYmVsOiJzaGViYW5nIixiaW5hcnk6Im5vZGUiLApyZWxldmFuY2U6NX0pLHtsYWJlbDoidXNlX3N0cmljdCIsY2xhc3NOYW1lOiJtZXRhIixyZWxldmFuY2U6MTAsCmJlZ2luOi9eXHMqWyciXXVzZSAoc3RyaWN0fGFzbSlbJyJdLwp9LHQuQVBPU19TVFJJTkdfTU9ERSx0LlFVT1RFX1NUUklOR19NT0RFLHUsXyxtLE4sZCx7CmJlZ2luOmkoL1t7LFxuXVxzKi8scihpKC8oKChcL1wvLiokKXwoXC9cKihcKlteL118W14qXSkqXCpcLykpXHMqKSovLGMrIlxccyo6IikpKSwKcmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHIiLGJlZ2luOmMrcigiXFxzKjoiKSxyZWxldmFuY2U6MH1dfSx7CmJlZ2luOiIoIit0LlJFX1NUQVJURVJTX1JFKyJ8XFxiKGNhc2V8cmV0dXJufHRocm93KVxcYilcXHMqIiwKa2V5d29yZHM6InJldHVybiB0aHJvdyBjYXNlIixjb250YWluczpbTix0LlJFR0VYUF9NT0RFLHtjbGFzc05hbWU6ImZ1bmN0aW9uIiwKYmVnaW46IihcXChbXigpXSooXFwoW14oKV0qKFxcKFteKCldKlxcKVteKCldKikqXFwpW14oKV0qKSpcXCl8Iit0LlVOREVSU0NPUkVfSURFTlRfUkUrIilcXHMqPT4iLApyZXR1cm5CZWdpbjohMCxlbmQ6Ilxccyo9PiIsY29udGFpbnM6W3tjbGFzc05hbWU6InBhcmFtcyIsdmFyaWFudHM6W3sKYmVnaW46dC5VTkRFUlNDT1JFX0lERU5UX1JFLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOm51bGwsYmVnaW46L1woXHMqXCkvLHNraXA6ITAKfSx7YmVnaW46L1woLyxlbmQ6L1wpLyxleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpsLGNvbnRhaW5zOkF9XX1dCn0se2JlZ2luOi8sLyxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiIixiZWdpbjovXHMvLGVuZDovXHMqLyxza2lwOiEwfSx7CnZhcmlhbnRzOlt7YmVnaW46Ijw+IixlbmQ6IjwvPiJ9LHtiZWdpbjpvLmJlZ2luLCJvbjpiZWdpbiI6by5pc1RydWx5T3BlbmluZ1RhZywKZW5kOm8uZW5kfV0sc3ViTGFuZ3VhZ2U6InhtbCIsY29udGFpbnM6W3tiZWdpbjpvLmJlZ2luLGVuZDpvLmVuZCxza2lwOiEwLApjb250YWluczpbInNlbGYiXX1dfV0scmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6ImZ1bmN0aW9uIiwKYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24iLGVuZDovW3s7XS8sZXhjbHVkZUVuZDohMCxrZXl3b3JkczpsLApjb250YWluczpbInNlbGYiLHQuaW5oZXJpdCh0LlRJVExFX01PREUse2JlZ2luOmN9KSxwXSxpbGxlZ2FsOi8lL30sewpiZWdpbktleXdvcmRzOiJ3aGlsZSBpZiBzd2l0Y2ggY2F0Y2ggZm9yIn0se2NsYXNzTmFtZToiZnVuY3Rpb24iLApiZWdpbjp0LlVOREVSU0NPUkVfSURFTlRfUkUrIlxcKFteKCldKihcXChbXigpXSooXFwoW14oKV0qXFwpW14oKV0qKSpcXClbXigpXSopKlxcKVxccypcXHsiLApyZXR1cm5CZWdpbjohMCxjb250YWluczpbcCx0LmluaGVyaXQodC5USVRMRV9NT0RFLHtiZWdpbjpjfSldfSx7dmFyaWFudHM6W3sKYmVnaW46IlxcLiIrY30se2JlZ2luOiJcXCQiK2N9XSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiY2xhc3MiLApiZWdpbktleXdvcmRzOiJjbGFzcyIsZW5kOi9bezs9XS8sZXhjbHVkZUVuZDohMCxpbGxlZ2FsOi9bOiJbXF1dLyxjb250YWluczpbewpiZWdpbktleXdvcmRzOiJleHRlbmRzIn0sdC5VTkRFUlNDT1JFX1RJVExFX01PREVdfSx7YmVnaW46L1xiKD89Y29uc3RydWN0b3IpLywKZW5kOi9beztdLyxleGNsdWRlRW5kOiEwLGNvbnRhaW5zOlt0LmluaGVyaXQodC5USVRMRV9NT0RFLHtiZWdpbjpjfSksInNlbGYiLHBdCn0se2JlZ2luOiIoZ2V0fHNldClcXHMrKD89IitjKyJcXCgpIixlbmQ6L1x7LyxrZXl3b3JkczoiZ2V0IHNldCIsCmNvbnRhaW5zOlt0LmluaGVyaXQodC5USVRMRV9NT0RFLHtiZWdpbjpjfSkse2JlZ2luOi9cKFwpL30scF19LHtiZWdpbjovXCRbKC5dL31dCn19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJxbWwiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKC4uLmUpewpyZXR1cm4gZS5tYXAoKGU9PntyZXR1cm4obj1lKT8ic3RyaW5nIj09dHlwZW9mIG4/bjpuLnNvdXJjZTpudWxsO3ZhciBuCn0pKS5qb2luKCIiKX1yZXR1cm4gbj0+e2NvbnN0IHI9IlthLXpBLVpfXVthLXpBLVowLTlcXC5fXSoiLGE9ewpjbGFzc05hbWU6ImF0dHJpYnV0ZSIsYmVnaW46IlxcYmlkXFxzKjoiLHN0YXJ0czp7Y2xhc3NOYW1lOiJzdHJpbmciLGVuZDpyLApyZXR1cm5FbmQ6ITF9fSx0PXtiZWdpbjpyKyJcXHMqOiIscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3sKY2xhc3NOYW1lOiJhdHRyaWJ1dGUiLGJlZ2luOnIsZW5kOiJcXHMqOiIsZXhjbHVkZUVuZDohMCxyZWxldmFuY2U6MH1dLApyZWxldmFuY2U6MH0saT17YmVnaW46ZShyLC9ccypcey8pLGVuZDovXHsvLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLApjb250YWluczpbbi5pbmhlcml0KG4uVElUTEVfTU9ERSx7YmVnaW46cn0pXX07cmV0dXJue25hbWU6IlFNTCIsYWxpYXNlczpbInF0Il0sCmNhc2VfaW5zZW5zaXRpdmU6ITEsa2V5d29yZHM6ewprZXl3b3JkOiJpbiBvZiBvbiBpZiBmb3Igd2hpbGUgZmluYWxseSB2YXIgbmV3IGZ1bmN0aW9uIGRvIHJldHVybiB2b2lkIGVsc2UgYnJlYWsgY2F0Y2ggaW5zdGFuY2VvZiB3aXRoIHRocm93IGNhc2UgZGVmYXVsdCB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgdHlwZW9mIGRlbGV0ZSBsZXQgeWllbGQgY29uc3QgZXhwb3J0IHN1cGVyIGRlYnVnZ2VyIGFzIGFzeW5jIGF3YWl0IGltcG9ydCIsCmxpdGVyYWw6InRydWUgZmFsc2UgbnVsbCB1bmRlZmluZWQgTmFOIEluZmluaXR5IiwKYnVpbHRfaW46ImV2YWwgaXNGaW5pdGUgaXNOYU4gcGFyc2VGbG9hdCBwYXJzZUludCBkZWNvZGVVUkkgZGVjb2RlVVJJQ29tcG9uZW50IGVuY29kZVVSSSBlbmNvZGVVUklDb21wb25lbnQgZXNjYXBlIHVuZXNjYXBlIE9iamVjdCBGdW5jdGlvbiBCb29sZWFuIEVycm9yIEV2YWxFcnJvciBJbnRlcm5hbEVycm9yIFJhbmdlRXJyb3IgUmVmZXJlbmNlRXJyb3IgU3RvcEl0ZXJhdGlvbiBTeW50YXhFcnJvciBUeXBlRXJyb3IgVVJJRXJyb3IgTnVtYmVyIE1hdGggRGF0ZSBTdHJpbmcgUmVnRXhwIEFycmF5IEZsb2F0MzJBcnJheSBGbG9hdDY0QXJyYXkgSW50MTZBcnJheSBJbnQzMkFycmF5IEludDhBcnJheSBVaW50MTZBcnJheSBVaW50MzJBcnJheSBVaW50OEFycmF5IFVpbnQ4Q2xhbXBlZEFycmF5IEFycmF5QnVmZmVyIERhdGFWaWV3IEpTT04gSW50bCBhcmd1bWVudHMgcmVxdWlyZSBtb2R1bGUgY29uc29sZSB3aW5kb3cgZG9jdW1lbnQgU3ltYm9sIFNldCBNYXAgV2Vha1NldCBXZWFrTWFwIFByb3h5IFJlZmxlY3QgQmVoYXZpb3IgYm9vbCBjb2xvciBjb29yZGluYXRlIGRhdGUgZG91YmxlIGVudW1lcmF0aW9uIGZvbnQgZ2VvY2lyY2xlIGdlb3JlY3RhbmdsZSBnZW9zaGFwZSBpbnQgbGlzdCBtYXRyaXg0eDQgcGFyZW50IHBvaW50IHF1YXRlcm5pb24gcmVhbCByZWN0IHNpemUgc3RyaW5nIHVybCB2YXJpYW50IHZlY3RvcjJkIHZlY3RvcjNkIHZlY3RvcjRkIFByb21pc2UiCn0sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOi9eXHMqWyciXXVzZSAoc3RyaWN0fGFzbSlbJyJdLwp9LG4uQVBPU19TVFJJTkdfTU9ERSxuLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46ImAiLGVuZDoiYCIsCmNvbnRhaW5zOltuLkJBQ0tTTEFTSF9FU0NBUEUse2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOiJcXCRcXHsiLGVuZDoiXFx9In1dCn0sbi5DX0xJTkVfQ09NTUVOVF9NT0RFLG4uQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbewpiZWdpbjoiXFxiKDBbYkJdWzAxXSspIn0se2JlZ2luOiJcXGIoMFtvT11bMC03XSspIn0se2JlZ2luOm4uQ19OVU1CRVJfUkV9XSwKcmVsZXZhbmNlOjB9LHtiZWdpbjoiKCIrbi5SRV9TVEFSVEVSU19SRSsifFxcYihjYXNlfHJldHVybnx0aHJvdylcXGIpXFxzKiIsCmtleXdvcmRzOiJyZXR1cm4gdGhyb3cgY2FzZSIsCmNvbnRhaW5zOltuLkNfTElORV9DT01NRU5UX01PREUsbi5DX0JMT0NLX0NPTU1FTlRfTU9ERSxuLlJFR0VYUF9NT0RFLHtiZWdpbjovPC8sCmVuZDovPlxzKlspO1xdXS8scmVsZXZhbmNlOjAsc3ViTGFuZ3VhZ2U6InhtbCJ9XSxyZWxldmFuY2U6MH0sewpjbGFzc05hbWU6ImtleXdvcmQiLGJlZ2luOiJcXGJzaWduYWxcXGIiLHN0YXJ0czp7Y2xhc3NOYW1lOiJzdHJpbmciLAplbmQ6IihcXCh8Onw9fDt8LHwvL3wvXFwqfCQpIixyZXR1cm5FbmQ6ITB9fSx7Y2xhc3NOYW1lOiJrZXl3b3JkIiwKYmVnaW46IlxcYnByb3BlcnR5XFxiIixzdGFydHM6e2NsYXNzTmFtZToic3RyaW5nIixlbmQ6Iig6fD18O3wsfC8vfC9cXCp8JCkiLApyZXR1cm5FbmQ6ITB9fSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24iLGVuZDovXHsvLApleGNsdWRlRW5kOiEwLGNvbnRhaW5zOltuLmluaGVyaXQobi5USVRMRV9NT0RFLHtiZWdpbjovW0EtWmEteiRfXVswLTlBLVphLXokX10qLwp9KSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sZW5kOi9cKS8sZXhjbHVkZUJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsCmNvbnRhaW5zOltuLkNfTElORV9DT01NRU5UX01PREUsbi5DX0JMT0NLX0NPTU1FTlRfTU9ERV19XSxpbGxlZ2FsOi9cW3wlL30sewpiZWdpbjoiXFwuIituLklERU5UX1JFLHJlbGV2YW5jZTowfSxhLHQsaV0saWxsZWdhbDovIy99fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiY2xvanVyZSIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57CnZhciB0PSJhLXpBLVpfXFwtIS4/Kyo9PD4mIyciLG49IlsiK3QrIl1bIit0KyIwLTkvOzpdKiIscj0iZGVmIGRlZm9uY2UgZGVmcHJvdG9jb2wgZGVmc3RydWN0IGRlZm11bHRpIGRlZm1ldGhvZCBkZWZuLSBkZWZuIGRlZm1hY3JvIGRlZnR5cGUgZGVmcmVjb3JkIixhPXsKJHBhdHRlcm46biwKImJ1aWx0aW4tbmFtZSI6cisiIGNvbmQgYXBwbHkgaWYtbm90IGlmLWxldCBpZiBub3Qgbm90PSA9fDAgPHwwID58MCA8PXwwID49fDAgPT18MCArfDAgL3wwICp8MCAtfDAgcmVtIHF1b3QgbmVnPyBwb3M/IGRlbGF5PyBzeW1ib2w/IGtleXdvcmQ/IHRydWU/IGZhbHNlPyBpbnRlZ2VyPyBlbXB0eT8gY29sbD8gbGlzdD8gc2V0PyBpZm4/IGZuPyBhc3NvY2lhdGl2ZT8gc2VxdWVudGlhbD8gc29ydGVkPyBjb3VudGVkPyByZXZlcnNpYmxlPyBudW1iZXI/IGRlY2ltYWw/IGNsYXNzPyBkaXN0aW5jdD8gaXNhPyBmbG9hdD8gcmF0aW9uYWw/IHJlZHVjZWQ/IHJhdGlvPyBvZGQ/IGV2ZW4/IGNoYXI/IHNlcT8gdmVjdG9yPyBzdHJpbmc/IG1hcD8gbmlsPyBjb250YWlucz8gemVybz8gaW5zdGFuY2U/IG5vdC1ldmVyeT8gbm90LWFueT8gbGlic3BlYz8gLT4gLT4+IC4uIC4gaW5jIGNvbXBhcmUgZG8gZG90aW1lcyBtYXBjYXQgdGFrZSByZW1vdmUgdGFrZS13aGlsZSBkcm9wIGxldGZuIGRyb3AtbGFzdCB0YWtlLWxhc3QgZHJvcC13aGlsZSB3aGlsZSBpbnRlcm4gY29uZHAgY2FzZSByZWR1Y2VkIGN5Y2xlIHNwbGl0LWF0IHNwbGl0LXdpdGggcmVwZWF0IHJlcGxpY2F0ZSBpdGVyYXRlIHJhbmdlIG1lcmdlIHppcG1hcCBkZWNsYXJlIGxpbmUtc2VxIHNvcnQgY29tcGFyYXRvciBzb3J0LWJ5IGRvcnVuIGRvYWxsIG50aG5leHQgbnRocmVzdCBwYXJ0aXRpb24gZXZhbCBkb3NlcSBhd2FpdCBhd2FpdC1mb3IgbGV0IGFnZW50IGF0b20gc2VuZCBzZW5kLW9mZiByZWxlYXNlLXBlbmRpbmctc2VuZHMgYWRkLXdhdGNoIG1hcHYgZmlsdGVydiByZW1vdmUtd2F0Y2ggYWdlbnQtZXJyb3IgcmVzdGFydC1hZ2VudCBzZXQtZXJyb3ItaGFuZGxlciBlcnJvci1oYW5kbGVyIHNldC1lcnJvci1tb2RlISBlcnJvci1tb2RlIHNodXRkb3duLWFnZW50cyBxdW90ZSB2YXIgZm4gbG9vcCByZWN1ciB0aHJvdyB0cnkgbW9uaXRvci1lbnRlciBtb25pdG9yLWV4aXQgbWFjcm9leHBhbmQgbWFjcm9leHBhbmQtMSBmb3IgZG9zeW5jIGFuZCBvciB3aGVuIHdoZW4tbm90IHdoZW4tbGV0IGNvbXAganV4dCBwYXJ0aWFsIHNlcXVlbmNlIG1lbW9pemUgY29uc3RhbnRseSBjb21wbGVtZW50IGlkZW50aXR5IGFzc2VydCBwZWVrIHBvcCBkb3RvIHByb3h5IGZpcnN0IHJlc3QgY29ucyBjYXN0IGNvbGwgbGFzdCBidXRsYXN0IHNpZ3MgcmVpZnkgc2Vjb25kIGZmaXJzdCBmbmV4dCBuZmlyc3Qgbm5leHQgbWV0YSB3aXRoLW1ldGEgbnMgaW4tbnMgY3JlYXRlLW5zIGltcG9ydCByZWZlciBrZXlzIHNlbGVjdC1rZXlzIHZhbHMga2V5IHZhbCByc2VxIG5hbWUgbmFtZXNwYWNlIHByb21pc2UgaW50byB0cmFuc2llbnQgcGVyc2lzdGVudCEgY29uaiEgYXNzb2MhIGRpc3NvYyEgcG9wISBkaXNqISB1c2UgY2xhc3MgdHlwZSBudW0gZmxvYXQgZG91YmxlIHNob3J0IGJ5dGUgYm9vbGVhbiBiaWdpbnQgYmlnaW50ZWdlciBiaWdkZWMgcHJpbnQtbWV0aG9kIHByaW50LWR1cCB0aHJvdy1pZiBwcmludGYgZm9ybWF0IGxvYWQgY29tcGlsZSBnZXQtaW4gdXBkYXRlLWluIHByIHByLW9uIG5ld2xpbmUgZmx1c2ggcmVhZCBzbHVycCByZWFkLWxpbmUgc3VidmVjIHdpdGgtb3BlbiBtZW1mbiB0aW1lIHJlLWZpbmQgcmUtZ3JvdXBzIHJhbmQtaW50IHJhbmQgbW9kIGxvY2tpbmcgYXNzZXJ0LXZhbGlkLWZkZWNsIGFsaWFzIHJlc29sdmUgcmVmIGRlcmVmIHJlZnNldCBzd2FwISByZXNldCEgc2V0LXZhbGlkYXRvciEgY29tcGFyZS1hbmQtc2V0ISBhbHRlci1tZXRhISByZXNldC1tZXRhISBjb21tdXRlIGdldC12YWxpZGF0b3IgYWx0ZXIgcmVmLXNldCByZWYtaGlzdG9yeS1jb3VudCByZWYtbWluLWhpc3RvcnkgcmVmLW1heC1oaXN0b3J5IGVuc3VyZSBzeW5jIGlvISBuZXcgbmV4dCBjb25qIHNldCEgdG8tYXJyYXkgZnV0dXJlIGZ1dHVyZS1jYWxsIGludG8tYXJyYXkgYXNldCBnZW4tY2xhc3MgcmVkdWNlIG1hcCBmaWx0ZXIgZmluZCBlbXB0eSBoYXNoLW1hcCBoYXNoLXNldCBzb3J0ZWQtbWFwIHNvcnRlZC1tYXAtYnkgc29ydGVkLXNldCBzb3J0ZWQtc2V0LWJ5IHZlYyB2ZWN0b3Igc2VxIGZsYXR0ZW4gcmV2ZXJzZSBhc3NvYyBkaXNzb2MgbGlzdCBkaXNqIGdldCB1bmlvbiBkaWZmZXJlbmNlIGludGVyc2VjdGlvbiBleHRlbmQgZXh0ZW5kLXR5cGUgZXh0ZW5kLXByb3RvY29sIGludCBudGggZGVsYXkgY291bnQgY29uY2F0IGNodW5rIGNodW5rLWJ1ZmZlciBjaHVuay1hcHBlbmQgY2h1bmstZmlyc3QgY2h1bmstcmVzdCBtYXggbWluIGRlYyB1bmNoZWNrZWQtaW5jLWludCB1bmNoZWNrZWQtaW5jIHVuY2hlY2tlZC1kZWMtaW5jIHVuY2hlY2tlZC1kZWMgdW5jaGVja2VkLW5lZ2F0ZSB1bmNoZWNrZWQtYWRkLWludCB1bmNoZWNrZWQtYWRkIHVuY2hlY2tlZC1zdWJ0cmFjdC1pbnQgdW5jaGVja2VkLXN1YnRyYWN0IGNodW5rLW5leHQgY2h1bmstY29ucyBjaHVua2VkLXNlcT8gcHJuIHZhcnktbWV0YSBsYXp5LXNlcSBzcHJlYWQgbGlzdCogc3RyIGZpbmQta2V5d29yZCBrZXl3b3JkIHN5bWJvbCBnZW5zeW0gZm9yY2UgcmF0aW9uYWxpemUiCn0scz17YmVnaW46bixyZWxldmFuY2U6MH0sbz17Y2xhc3NOYW1lOiJudW1iZXIiLGJlZ2luOiJbLStdP1xcZCsoXFwuXFxkKyk/IiwKcmVsZXZhbmNlOjB9LGk9ZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse2lsbGVnYWw6bnVsbAp9KSxjPWUuQ09NTUVOVCgiOyIsIiQiLHtyZWxldmFuY2U6MH0pLGQ9e2NsYXNzTmFtZToibGl0ZXJhbCIsCmJlZ2luOi9cYih0cnVlfGZhbHNlfG5pbClcYi99LGw9e2JlZ2luOiJbXFxbXFx7XSIsZW5kOiJbXFxdXFx9XSJ9LG09ewpjbGFzc05hbWU6ImNvbW1lbnQiLGJlZ2luOiJcXF4iK259LHA9ZS5DT01NRU5UKCJcXF5cXHsiLCJcXH0iKSx1PXsKY2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiJbOl17MSwyfSIrbn0sZj17YmVnaW46IlxcKCIsZW5kOiJcXCkifSxoPXsKZW5kc1dpdGhQYXJlbnQ6ITAscmVsZXZhbmNlOjB9LHk9e2tleXdvcmRzOmEsY2xhc3NOYW1lOiJuYW1lIixiZWdpbjpuLApyZWxldmFuY2U6MCxzdGFydHM6aH0sZz1bZixpLG0scCxjLHUsbCxvLGQsc10sYj17YmVnaW5LZXl3b3JkczpyLGxleGVtZXM6biwKZW5kOicoXFxbfCN8XFxkfCJ8OnxcXHt8XFwpfFxcKHwkKScsY29udGFpbnM6W3tjbGFzc05hbWU6InRpdGxlIixiZWdpbjpuLApyZWxldmFuY2U6MCxleGNsdWRlRW5kOiEwLGVuZHNQYXJlbnQ6ITB9XS5jb25jYXQoZyl9CjtyZXR1cm4gZi5jb250YWlucz1bZS5DT01NRU5UKCJjb21tZW50IiwiIiksYix5LGhdLApoLmNvbnRhaW5zPWcsbC5jb250YWlucz1nLHAuY29udGFpbnM9W2xdLHtuYW1lOiJDbG9qdXJlIixhbGlhc2VzOlsiY2xqIl0sCmlsbGVnYWw6L1xTLyxjb250YWluczpbZixpLG0scCxjLHUsbCxvLGRdfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImRpZmYiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+KHtuYW1lOiJEaWZmIiwKYWxpYXNlczpbInBhdGNoIl0sY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLHJlbGV2YW5jZToxMCx2YXJpYW50czpbewpiZWdpbjovXkBAICstXGQrLFxkKyArXCtcZCssXGQrICtAQC99LHtiZWdpbjovXlwqXCpcKiArXGQrLFxkKyArXCpcKlwqXCokL30sewpiZWdpbjovXi0tLSArXGQrLFxkKyArLS0tLSQvfV19LHtjbGFzc05hbWU6ImNvbW1lbnQiLHZhcmlhbnRzOlt7YmVnaW46L0luZGV4OiAvLAplbmQ6LyQvfSx7YmVnaW46L15pbmRleC8sZW5kOi8kL30se2JlZ2luOi89ezMsfS8sZW5kOi8kL30se2JlZ2luOi9eLXszfS8sZW5kOi8kLwp9LHtiZWdpbjovXlwqezN9IC8sZW5kOi8kL30se2JlZ2luOi9eXCt7M30vLGVuZDovJC99LHtiZWdpbjovXlwqezE1fSQvfSx7CmJlZ2luOi9eZGlmZiAtLWdpdC8sZW5kOi8kL31dfSx7Y2xhc3NOYW1lOiJhZGRpdGlvbiIsYmVnaW46L15cKy8sZW5kOi8kL30sewpjbGFzc05hbWU6ImRlbGV0aW9uIixiZWdpbjovXi0vLGVuZDovJC99LHtjbGFzc05hbWU6ImFkZGl0aW9uIixiZWdpbjovXiEvLAplbmQ6LyQvfV19KX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgic3dpZnQiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e3ZhciBpPXsKJHBhdHRlcm46L1tcdyNdKy8sCmtleXdvcmQ6IiNhdmFpbGFibGUgI2NvbG9yTGl0ZXJhbCAjY29sdW1uICNlbHNlICNlbHNlaWYgI2VuZGlmICNmaWxlICNmaWxlTGl0ZXJhbCAjZnVuY3Rpb24gI2lmICNpbWFnZUxpdGVyYWwgI2xpbmUgI3NlbGVjdG9yICNzb3VyY2VMb2NhdGlvbiBfIF9fQ09MVU1OX18gX19GSUxFX18gX19GVU5DVElPTl9fIF9fTElORV9fIEFueSBhcyBhcyEgYXM/IGFzc29jaWF0ZWR0eXBlIGFzc29jaWF0aXZpdHkgYnJlYWsgY2FzZSBjYXRjaCBjbGFzcyBjb250aW51ZSBjb252ZW5pZW5jZSBkZWZhdWx0IGRlZmVyIGRlaW5pdCBkaWRTZXQgZG8gZHluYW1pYyBkeW5hbWljVHlwZSBlbHNlIGVudW0gZXh0ZW5zaW9uIGZhbGx0aHJvdWdoIGZhbHNlIGZpbGVwcml2YXRlIGZpbmFsIGZvciBmdW5jIGdldCBndWFyZCBpZiBpbXBvcnQgaW4gaW5kaXJlY3QgaW5maXggaW5pdCBpbm91dCBpbnRlcm5hbCBpcyBsYXp5IGxlZnQgbGV0IG11dGF0aW5nIG5pbCBub25lIG5vbm11dGF0aW5nIG9wZW4gb3BlcmF0b3Igb3B0aW9uYWwgb3ZlcnJpZGUgcG9zdGZpeCBwcmVjZWRlbmNlIHByZWZpeCBwcml2YXRlIHByb3RvY29sIFByb3RvY29sIHB1YmxpYyByZXBlYXQgcmVxdWlyZWQgcmV0aHJvd3MgcmV0dXJuIHJpZ2h0IHNlbGYgU2VsZiBzZXQgc29tZSBzdGF0aWMgc3RydWN0IHN1YnNjcmlwdCBzdXBlciBzd2l0Y2ggdGhyb3cgdGhyb3dzIHRydWUgdHJ5IHRyeSEgdHJ5PyBUeXBlIHR5cGVhbGlhcyB1bm93bmVkIHZhciB3ZWFrIHdoZXJlIHdoaWxlIHdpbGxTZXQiLApsaXRlcmFsOiJ0cnVlIGZhbHNlIG5pbCIsCmJ1aWx0X2luOiJhYnMgYWR2YW5jZSBhbGlnbm9mIGFsaWdub2ZWYWx1ZSBhbnlHZW5lcmF0b3IgYXNzZXJ0IGFzc2VydGlvbkZhaWx1cmUgYnJpZGdlRnJvbU9iamVjdGl2ZUMgYnJpZGdlRnJvbU9iamVjdGl2ZUNVbmNvbmRpdGlvbmFsIGJyaWRnZVRvT2JqZWN0aXZlQyBicmlkZ2VUb09iamVjdGl2ZUNVbmNvbmRpdGlvbmFsIGMgY29tcGFjdE1hcCBjb250YWlucyBjb3VudCBjb3VudEVsZW1lbnRzIGNvdW50TGVhZGluZ1plcm9zIGRlYnVnUHJpbnQgZGVidWdQcmludGxuIGRpc3RhbmNlIGRyb3BGaXJzdCBkcm9wTGFzdCBkdW1wIGVuY29kZUJpdHNBc1dvcmRzIGVudW1lcmF0ZSBlcXVhbCBmYXRhbEVycm9yIGZpbHRlciBmaW5kIGdldEJyaWRnZWRPYmplY3RpdmVDVHlwZSBnZXRWYUxpc3QgaW5kaWNlcyBpbnNlcnRpb25Tb3J0IGlzQnJpZGdlZFRvT2JqZWN0aXZlQyBpc0JyaWRnZWRWZXJiYXRpbVRvT2JqZWN0aXZlQyBpc1VuaXF1ZWx5UmVmZXJlbmNlZCBpc1VuaXF1ZWx5UmVmZXJlbmNlZE5vbk9iakMgam9pbiBsYXp5IGxleGljb2dyYXBoaWNhbENvbXBhcmUgbWFwIG1heCBtYXhFbGVtZW50IG1pbiBtaW5FbGVtZW50IG51bWVyaWNDYXN0IG92ZXJsYXBzIHBhcnRpdGlvbiBwb3NpeCBwcmVjb25kaXRpb24gcHJlY29uZGl0aW9uRmFpbHVyZSBwcmludCBwcmludGxuIHF1aWNrU29ydCByZWFkTGluZSByZWR1Y2UgcmVmbGVjdCByZWludGVycHJldENhc3QgcmV2ZXJzZSByb3VuZFVwVG9BbGlnbm1lbnQgc2l6ZW9mIHNpemVvZlZhbHVlIHNvcnQgc3BsaXQgc3RhcnRzV2l0aCBzdHJpZGUgc3RyaWRlb2Ygc3RyaWRlb2ZWYWx1ZSBzd2FwIHRvU3RyaW5nIHRyYW5zY29kZSB1bmRlcmVzdGltYXRlQ291bnQgdW5zYWZlQWRkcmVzc09mIHVuc2FmZUJpdENhc3QgdW5zYWZlRG93bmNhc3QgdW5zYWZlVW53cmFwIHVuc2FmZVJlZmxlY3Qgd2l0aEV4dGVuZGVkTGlmZXRpbWUgd2l0aE9iamVjdEF0UGx1c1plcm8gd2l0aFVuc2FmZVBvaW50ZXIgd2l0aFVuc2FmZVBvaW50ZXJUb09iamVjdCB3aXRoVW5zYWZlTXV0YWJsZVBvaW50ZXIgd2l0aFVuc2FmZU11dGFibGVQb2ludGVycyB3aXRoVW5zYWZlUG9pbnRlciB3aXRoVW5zYWZlUG9pbnRlcnMgd2l0aFZhTGlzdCB6aXAiCn0sbj1lLkNPTU1FTlQoIi9cXCoiLCJcXCovIix7Y29udGFpbnM6WyJzZWxmIl19KSx0PXtjbGFzc05hbWU6InN1YnN0IiwKYmVnaW46L1xcXCgvLGVuZDoiXFwpIixrZXl3b3JkczppLGNvbnRhaW5zOltdfSxhPXtjbGFzc05hbWU6InN0cmluZyIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsdF0sdmFyaWFudHM6W3tiZWdpbjovIiIiLyxlbmQ6LyIiIi99LHtiZWdpbjovIi8sCmVuZDovIi99XX0scj0iKFswLTlhLWZBLUZdXyopKyIscz17Y2xhc3NOYW1lOiJudW1iZXIiLHJlbGV2YW5jZTowLHZhcmlhbnRzOlt7CmJlZ2luOiJcXGIoKFswLTldXyopKykoXFwuKChbMC05XV8qKSspKT8oW2VFXVsrLV0/KChbMC05XV8qKSspKT9cXGIifSx7CmJlZ2luOmBcXGIweCgke3J9KShcXC4oJHtyfSkpPyhbcFBdWystXT8oKFswLTldXyopKykpP1xcYmB9LHsKYmVnaW46L1xiMG8oWzAtN11fKikrXGIvfSx7YmVnaW46L1xiMGIoWzAxXV8qKStcYi99XX07cmV0dXJuIHQuY29udGFpbnM9W3NdLHsKbmFtZToiU3dpZnQiLGtleXdvcmRzOmksY29udGFpbnM6W2EsZS5DX0xJTkVfQ09NTUVOVF9NT0RFLG4se2NsYXNzTmFtZToidHlwZSIsCmJlZ2luOiJcXGJbQS1aXVtcXHdceGMwLVx1MDJiOCddKlshP10ifSx7Y2xhc3NOYW1lOiJ0eXBlIiwKYmVnaW46IlxcYltBLVpdW1xcd1x4YzAtXHUwMmI4J10qIixyZWxldmFuY2U6MH0scyx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsCmJlZ2luS2V5d29yZHM6ImZ1bmMiLGVuZDovXHsvLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUsewpiZWdpbjovW0EtWmEteiRfXVswLTlBLVphLXokX10qL30pLHtiZWdpbjovPC8sZW5kOi8+L30se2NsYXNzTmFtZToicGFyYW1zIiwKYmVnaW46L1woLyxlbmQ6L1wpLyxlbmRzUGFyZW50OiEwLGtleXdvcmRzOmksCmNvbnRhaW5zOlsic2VsZiIscyxhLGUuQ19CTE9DS19DT01NRU5UX01PREUse2JlZ2luOiI6In1dLGlsbGVnYWw6L1siJ10vfV0sCmlsbGVnYWw6L1xbfCUvfSx7Y2xhc3NOYW1lOiJjbGFzcyIsCmJlZ2luS2V5d29yZHM6InN0cnVjdCBwcm90b2NvbCBjbGFzcyBleHRlbnNpb24gZW51bSIsa2V5d29yZHM6aSxlbmQ6IlxceyIsCmV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUsewpiZWdpbjovW0EtWmEteiRfXVtcdTAwQzAtXHUwMkI4MC05QS1aYS16JF9dKi99KV19LHtjbGFzc05hbWU6Im1ldGEiLApiZWdpbjoiKEBkaXNjYXJkYWJsZVJlc3VsdHxAd2Fybl91bnVzZWRfcmVzdWx0fEBleHBvcnRlZHxAbGF6eXxAbm9lc2NhcGV8QE5TQ29weWluZ3xATlNNYW5hZ2VkfEBvYmpjfEBvYmpjTWVtYmVyc3xAY29udmVudGlvbnxAcmVxdWlyZWR8QG5vcmV0dXJufEBJQkFjdGlvbnxASUJEZXNpZ25hYmxlfEBJQkluc3BlY3RhYmxlfEBJQk91dGxldHxAaW5maXh8QHByZWZpeHxAcG9zdGZpeHxAYXV0b2Nsb3N1cmV8QHRlc3RhYmxlfEBhdmFpbGFibGV8QG5vbm9iamN8QE5TQXBwbGljYXRpb25NYWlufEBVSUFwcGxpY2F0aW9uTWFpbnxAZHluYW1pY01lbWJlckxvb2t1cHxAcHJvcGVydHlXcmFwcGVyfEBtYWluKVxcYiIKfSx7YmVnaW5LZXl3b3JkczoiaW1wb3J0IixlbmQ6LyQvLGNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsbl0scmVsZXZhbmNlOjAKfV19fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgibGVzcyIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57CnZhciBuPSIoW1xcdy1dK3xAXFx7W1xcdy1dK1xcfSkiLGE9W10scz1bXSx0PWU9Pih7Y2xhc3NOYW1lOiJzdHJpbmciLApiZWdpbjoifj8iK2UrIi4qPyIrZX0pLHI9KGUsbixhKT0+KHtjbGFzc05hbWU6ZSxiZWdpbjpuLHJlbGV2YW5jZTphfSksaT17CmJlZ2luOiJcXCgiLGVuZDoiXFwpIixjb250YWluczpzLHJlbGV2YW5jZTowfQo7cy5wdXNoKGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHQoIiciKSx0KCciJyksZS5DU1NfTlVNQkVSX01PREUsewpiZWdpbjoiKHVybHxkYXRhLXVyaSlcXCgiLHN0YXJ0czp7Y2xhc3NOYW1lOiJzdHJpbmciLGVuZDoiW1xcKVxcbl0iLApleGNsdWRlRW5kOiEwfQp9LHIoIm51bWJlciIsIiNbMC05QS1GYS1mXStcXGIiKSxpLHIoInZhcmlhYmxlIiwiQEA/W1xcdy1dKyIsMTApLHIoInZhcmlhYmxlIiwiQFxce1tcXHctXStcXH0iKSxyKCJidWlsdF9pbiIsIn4/YFteYF0qP2AiKSx7CmNsYXNzTmFtZToiYXR0cmlidXRlIixiZWdpbjoiW1xcdy1dK1xccyo6IixlbmQ6IjoiLHJldHVybkJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAKfSx7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiIWltcG9ydGFudCJ9KTt2YXIgYz1zLmNvbmNhdCh7YmVnaW46L1x7LyxlbmQ6L1x9LywKY29udGFpbnM6YX0pLGw9e2JlZ2luS2V5d29yZHM6IndoZW4iLGVuZHNXaXRoUGFyZW50OiEwLGNvbnRhaW5zOlt7CmJlZ2luS2V5d29yZHM6ImFuZCBub3QifV0uY29uY2F0KHMpfSxnPXtiZWdpbjpuKyJcXHMqOiIscmV0dXJuQmVnaW46ITAsCmVuZDoiWzt9XSIscmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImF0dHJpYnV0ZSIsYmVnaW46bixlbmQ6IjoiLApleGNsdWRlRW5kOiEwLHN0YXJ0czp7ZW5kc1dpdGhQYXJlbnQ6ITAsaWxsZWdhbDoiWzw9JF0iLHJlbGV2YW5jZTowLGNvbnRhaW5zOnN9Cn1dfSxkPXtjbGFzc05hbWU6ImtleXdvcmQiLApiZWdpbjoiQChpbXBvcnR8bWVkaWF8Y2hhcnNldHxmb250LWZhY2V8KC1bYS16XSstKT9rZXlmcmFtZXN8c3VwcG9ydHN8ZG9jdW1lbnR8bmFtZXNwYWNlfHBhZ2V8dmlld3BvcnR8aG9zdClcXGIiLApzdGFydHM6e2VuZDoiWzt7fV0iLHJldHVybkVuZDohMCxjb250YWluczpzLHJlbGV2YW5jZTowfX0sbz17CmNsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7YmVnaW46IkBbXFx3LV0rXFxzKjoiLHJlbGV2YW5jZToxNX0sewpiZWdpbjoiQFtcXHctXSsifV0sc3RhcnRzOntlbmQ6Ils7fV0iLHJldHVybkVuZDohMCxjb250YWluczpjfX0sYj17dmFyaWFudHM6W3sKYmVnaW46IltcXC4jOiZcXFs+XSIsZW5kOiJbO3t9XSJ9LHtiZWdpbjpuLGVuZDovXHsvfV0scmV0dXJuQmVnaW46ITAsCnJldHVybkVuZDohMCxpbGxlZ2FsOiJbPD0nJFwiXSIscmVsZXZhbmNlOjAsCmNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxsLHIoImtleXdvcmQiLCJhbGxcXGIiKSxyKCJ2YXJpYWJsZSIsIkBcXHtbXFx3LV0rXFx9Iikscigic2VsZWN0b3ItdGFnIixuKyIlPyIsMCkscigic2VsZWN0b3ItaWQiLCIjIituKSxyKCJzZWxlY3Rvci1jbGFzcyIsIlxcLiIrbiwwKSxyKCJzZWxlY3Rvci10YWciLCImIiwwKSx7CmNsYXNzTmFtZToic2VsZWN0b3ItYXR0ciIsYmVnaW46IlxcWyIsZW5kOiJcXF0ifSx7Y2xhc3NOYW1lOiJzZWxlY3Rvci1wc2V1ZG8iLApiZWdpbjovOig6KT9bYS16QS1aMC05X1wtKygpIicuXSsvfSx7YmVnaW46IlxcKCIsZW5kOiJcXCkiLGNvbnRhaW5zOmN9LHsKYmVnaW46IiFpbXBvcnRhbnQifV19CjtyZXR1cm4gYS5wdXNoKGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGQsbyxnLGIpLHsKbmFtZToiTGVzcyIsY2FzZV9pbnNlbnNpdGl2ZTohMCxpbGxlZ2FsOiJbPT4nLzwoJFwiXSIsY29udGFpbnM6YX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJiYXNoIiwoKCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSguLi5lKXsKcmV0dXJuIGUubWFwKChlPT57cmV0dXJuKHM9ZSk/InN0cmluZyI9PXR5cGVvZiBzP3M6cy5zb3VyY2U6bnVsbDt2YXIgcwp9KSkuam9pbigiIil9cmV0dXJuIHM9Pntjb25zdCBuPXt9LHQ9e2JlZ2luOi9cJFx7LyxlbmQ6L1x9Lyxjb250YWluczpbInNlbGYiLHsKYmVnaW46LzotLyxjb250YWluczpbbl19XX07T2JqZWN0LmFzc2lnbihuLHtjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbewpiZWdpbjplKC9cJFtcd1xkI0BdW1x3XGRfXSovLCIoPyFbXFx3XFxkXSkoPyFbJF0pIil9LHRdfSk7Y29uc3QgYT17CmNsYXNzTmFtZToic3Vic3QiLGJlZ2luOi9cJFwoLyxlbmQ6L1wpLyxjb250YWluczpbcy5CQUNLU0xBU0hfRVNDQVBFXX0saT17CmJlZ2luOi88PC0/XHMqKD89XHcrKS8sc3RhcnRzOntjb250YWluczpbcy5FTkRfU0FNRV9BU19CRUdJTih7YmVnaW46LyhcdyspLywKZW5kOi8oXHcrKS8sY2xhc3NOYW1lOiJzdHJpbmcifSldfX0sYz17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8iLyxlbmQ6LyIvLApjb250YWluczpbcy5CQUNLU0xBU0hfRVNDQVBFLG4sYV19O2EuY29udGFpbnMucHVzaChjKTtjb25zdCBvPXtiZWdpbjovXCRcKFwoLywKZW5kOi9cKVwpLyxjb250YWluczpbe2JlZ2luOi9cZCsjWzAtOWEtZl0rLyxjbGFzc05hbWU6Im51bWJlciJ9LHMuTlVNQkVSX01PREUsbl0KfSxyPXMuU0hFQkFORyh7YmluYXJ5OiIoZmlzaHxiYXNofHpzaHxzaHxjc2h8a3NofHRjc2h8ZGFzaHxzY3NoKSIscmVsZXZhbmNlOjEwCn0pLGw9e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOi9cd1tcd1xkX10qXHMqXChccypcKVxzKlx7LyxyZXR1cm5CZWdpbjohMCwKY29udGFpbnM6W3MuaW5oZXJpdChzLlRJVExFX01PREUse2JlZ2luOi9cd1tcd1xkX10qL30pXSxyZWxldmFuY2U6MH07cmV0dXJuewpuYW1lOiJCYXNoIixhbGlhc2VzOlsic2giLCJ6c2giXSxrZXl3b3Jkczp7JHBhdHRlcm46L1xiW2Etei5fLV0rXGIvLAprZXl3b3JkOiJpZiB0aGVuIGVsc2UgZWxpZiBmaSBmb3Igd2hpbGUgaW4gZG8gZG9uZSBjYXNlIGVzYWMgZnVuY3Rpb24iLApsaXRlcmFsOiJ0cnVlIGZhbHNlIiwKYnVpbHRfaW46ImJyZWFrIGNkIGNvbnRpbnVlIGV2YWwgZXhlYyBleGl0IGV4cG9ydCBnZXRvcHRzIGhhc2ggcHdkIHJlYWRvbmx5IHJldHVybiBzaGlmdCB0ZXN0IHRpbWVzIHRyYXAgdW1hc2sgdW5zZXQgYWxpYXMgYmluZCBidWlsdGluIGNhbGxlciBjb21tYW5kIGRlY2xhcmUgZWNobyBlbmFibGUgaGVscCBsZXQgbG9jYWwgbG9nb3V0IG1hcGZpbGUgcHJpbnRmIHJlYWQgcmVhZGFycmF5IHNvdXJjZSB0eXBlIHR5cGVzZXQgdWxpbWl0IHVuYWxpYXMgc2V0IHNob3B0IGF1dG9sb2FkIGJnIGJpbmRrZXkgYnllIGNhcCBjaGRpciBjbG9uZSBjb21wYXJndW1lbnRzIGNvbXBjYWxsIGNvbXBjdGwgY29tcGRlc2NyaWJlIGNvbXBmaWxlcyBjb21wZ3JvdXBzIGNvbXBxdW90ZSBjb21wdGFncyBjb21wdHJ5IGNvbXB2YWx1ZXMgZGlycyBkaXNhYmxlIGRpc293biBlY2hvdGMgZWNob3RpIGVtdWxhdGUgZmMgZmcgZmxvYXQgZnVuY3Rpb25zIGdldGNhcCBnZXRsbiBoaXN0b3J5IGludGVnZXIgam9icyBraWxsIGxpbWl0IGxvZyBub2dsb2IgcG9wZCBwcmludCBwdXNoZCBwdXNobG4gcmVoYXNoIHNjaGVkIHNldGNhcCBzZXRvcHQgc3RhdCBzdXNwZW5kIHR0eWN0bCB1bmZ1bmN0aW9uIHVuaGFzaCB1bmxpbWl0IHVuc2V0b3B0IHZhcmVkIHdhaXQgd2hlbmNlIHdoZXJlIHdoaWNoIHpjb21waWxlIHpmb3JtYXQgemZ0cCB6bGUgem1vZGxvYWQgenBhcnNlb3B0cyB6cHJvZiB6cHR5IHpyZWdleHBhcnNlIHpzb2NrZXQgenN0eWxlIHp0Y3AiCn0sY29udGFpbnM6W3Iscy5TSEVCQU5HKCksbCxvLHMuSEFTSF9DT01NRU5UX01PREUsaSxjLHtjbGFzc05hbWU6IiIsYmVnaW46L1xcIi8KfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8nLyxlbmQ6LycvfSxuXX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJkb2NrZXJmaWxlIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9Pih7Cm5hbWU6IkRvY2tlcmZpbGUiLGFsaWFzZXM6WyJkb2NrZXIiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLAprZXl3b3JkczoiZnJvbSBtYWludGFpbmVyIGV4cG9zZSBlbnYgYXJnIHVzZXIgb25idWlsZCBzdG9wc2lnbmFsIiwKY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5OVU1CRVJfTU9ERSx7CmJlZ2luS2V5d29yZHM6InJ1biBjbWQgZW50cnlwb2ludCB2b2x1bWUgYWRkIGNvcHkgd29ya2RpciBsYWJlbCBoZWFsdGhjaGVjayBzaGVsbCIsCnN0YXJ0czp7ZW5kOi9bXlxcXSQvLHN1Ykxhbmd1YWdlOiJiYXNoIn19XSxpbGxlZ2FsOiI8LyJ9KX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiZXJsYW5nIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9PnsKY29uc3Qgbj0iW2EteiddW2EtekEtWjAtOV8nXSoiLHI9IigiK24rIjoiK24rInwiK24rIikiLGE9ewprZXl3b3JkOiJhZnRlciBhbmQgYW5kYWxzb3wxMCBiYW5kIGJlZ2luIGJub3QgYm9yIGJzbCBienIgYnhvciBjYXNlIGNhdGNoIGNvbmQgZGl2IGVuZCBmdW4gaWYgbGV0IG5vdCBvZiBvcmVsc2V8MTAgcXVlcnkgcmVjZWl2ZSByZW0gdHJ5IHdoZW4geG9yIiwKbGl0ZXJhbDoiZmFsc2UgdHJ1ZSJ9LGk9ZS5DT01NRU5UKCIlIiwiJCIpLHM9e2NsYXNzTmFtZToibnVtYmVyIiwKYmVnaW46IlxcYihcXGQrKF9cXGQrKSojW2EtZkEtRjAtOV0rKF9bYS1mQS1GMC05XSspKnxcXGQrKF9cXGQrKSooXFwuXFxkKyhfXFxkKykqKT8oW2VFXVstK10/XFxkKyk/KSIsCnJlbGV2YW5jZTowfSxjPXtiZWdpbjoiZnVuXFxzKyIrbisiL1xcZCsifSx0PXtiZWdpbjpyKyJcXCgiLGVuZDoiXFwpIiwKcmV0dXJuQmVnaW46ITAscmVsZXZhbmNlOjAsY29udGFpbnM6W3tiZWdpbjpyLHJlbGV2YW5jZTowfSx7YmVnaW46IlxcKCIsCmVuZDoiXFwpIixlbmRzV2l0aFBhcmVudDohMCxyZXR1cm5FbmQ6ITAscmVsZXZhbmNlOjB9XX0sZD17YmVnaW46L1x7LyxlbmQ6L1x9LywKcmVsZXZhbmNlOjB9LG89e2JlZ2luOiJcXGJfKFtBLVpdW0EtWmEtejAtOV9dKik/IixyZWxldmFuY2U6MH0sbD17CmJlZ2luOiJbQS1aXVthLXpBLVowLTlfXSoiLHJlbGV2YW5jZTowfSxiPXtiZWdpbjoiIyIrZS5VTkRFUlNDT1JFX0lERU5UX1JFLApyZWxldmFuY2U6MCxyZXR1cm5CZWdpbjohMCxjb250YWluczpbe2JlZ2luOiIjIitlLlVOREVSU0NPUkVfSURFTlRfUkUsCnJlbGV2YW5jZTowfSx7YmVnaW46L1x7LyxlbmQ6L1x9LyxyZWxldmFuY2U6MH1dfSxnPXsKYmVnaW5LZXl3b3JkczoiZnVuIHJlY2VpdmUgaWYgdHJ5IGNhc2UiLGVuZDoiZW5kIixrZXl3b3JkczphfQo7Zy5jb250YWlucz1baSxjLGUuaW5oZXJpdChlLkFQT1NfU1RSSU5HX01PREUse2NsYXNzTmFtZToiIgp9KSxnLHQsZS5RVU9URV9TVFJJTkdfTU9ERSxzLGQsbyxsLGJdCjtjb25zdCBFPVtpLGMsZyx0LGUuUVVPVEVfU1RSSU5HX01PREUscyxkLG8sbCxiXQo7dC5jb250YWluc1sxXS5jb250YWlucz1FLGQuY29udGFpbnM9RSxiLmNvbnRhaW5zWzFdLmNvbnRhaW5zPUU7Y29uc3QgdT17CmNsYXNzTmFtZToicGFyYW1zIixiZWdpbjoiXFwoIixlbmQ6IlxcKSIsY29udGFpbnM6RX07cmV0dXJue25hbWU6IkVybGFuZyIsCmFsaWFzZXM6WyJlcmwiXSxrZXl3b3JkczphLGlsbGVnYWw6Iig8L3xcXCo9fFxcKz18LT18L1xcKnxcXCovfFxcKFxcKnxcXCpcXCkpIiwKY29udGFpbnM6W3tjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjoiXiIrbisiXFxzKlxcKCIsZW5kOiItPiIscmV0dXJuQmVnaW46ITAsCmlsbGVnYWw6IlxcKHwjfC8vfC9cXCp8XFxcXHw6fDsiLGNvbnRhaW5zOlt1LGUuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOm59KV0sCnN0YXJ0czp7ZW5kOiI7fFxcLiIsa2V5d29yZHM6YSxjb250YWluczpFfX0saSx7YmVnaW46Il4tIixlbmQ6IlxcLiIscmVsZXZhbmNlOjAsCmV4Y2x1ZGVFbmQ6ITAscmV0dXJuQmVnaW46ITAsa2V5d29yZHM6eyRwYXR0ZXJuOiItIitlLklERU5UX1JFLAprZXl3b3JkOiItbW9kdWxlIC1yZWNvcmQgLXVuZGVmIC1leHBvcnQgLWlmZGVmIC1pZm5kZWYgLWF1dGhvciAtY29weXJpZ2h0IC1kb2MgLXZzbiAtaW1wb3J0IC1pbmNsdWRlIC1pbmNsdWRlX2xpYiAtY29tcGlsZSAtZGVmaW5lIC1lbHNlIC1lbmRpZiAtZmlsZSAtYmVoYXZpb3VyIC1iZWhhdmlvciAtc3BlYyIKfSxjb250YWluczpbdV19LHMsZS5RVU9URV9TVFJJTkdfTU9ERSxiLG8sbCxkLHtiZWdpbjovXC4kL31dfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInB5dGhvbi1yZXBsIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIHM9Pih7CmFsaWFzZXM6WyJweWNvbiJdLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixzdGFydHM6e2VuZDovIHwkLyxzdGFydHM6e2VuZDoiJCIsCnN1Ykxhbmd1YWdlOiJweXRob24ifX0sdmFyaWFudHM6W3tiZWdpbjovXj4+Pig/PVsgXXwkKS99LHsKYmVnaW46L15cLlwuXC4oPz1bIF18JCkvfV19XX0pfSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJwZXJsIiwoKCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSguLi5lKXsKcmV0dXJuIGUubWFwKChlPT57cmV0dXJuKG49ZSk/InN0cmluZyI9PXR5cGVvZiBuP246bi5zb3VyY2U6bnVsbDt2YXIgbgp9KSkuam9pbigiIil9cmV0dXJuIG49Pntjb25zdCB0PS9bZHVhbHhtc2lwbl17MCwxMn0vLHM9eyRwYXR0ZXJuOi9bXHcuXSsvLAprZXl3b3JkOiJnZXRwd2VudCBnZXRzZXJ2ZW50IHF1b3RlbWV0YSBtc2dyY3Ygc2NhbGFyIGtpbGwgZGJtY2xvc2UgdW5kZWYgbGMgbWEgc3lzd3JpdGUgdHIgc2VuZCB1bWFzayBzeXNvcGVuIHNobXdyaXRlIHZlYyBxeCB1dGltZSBsb2NhbCBvY3Qgc2VtY3RsIGxvY2FsdGltZSByZWFkcGlwZSBkbyByZXR1cm4gZm9ybWF0IHJlYWQgc3ByaW50ZiBkYm1vcGVuIHBvcCBnZXRwZ3JwIG5vdCBnZXRwd25hbSByZXdpbmRkaXIgcXEgZmlsZW5vIHF3IGVuZHByb3RvZW50IHdhaXQgc2V0aG9zdGVudCBibGVzcyBzfDAgb3BlbmRpciBjb250aW51ZSBlYWNoIHNsZWVwIGVuZGdyZW50IHNodXRkb3duIGR1bXAgY2hvbXAgY29ubmVjdCBnZXRzb2NrbmFtZSBkaWUgc29ja2V0cGFpciBjbG9zZSBmbG9jayBleGlzdHMgaW5kZXggc2htZ2V0IHN1YiBmb3IgZW5kcHdlbnQgcmVkbyBsc3RhdCBtc2djdGwgc2V0cGdycCBhYnMgZXhpdCBzZWxlY3QgcHJpbnQgcmVmIGdldGhvc3RieWFkZHIgdW5zaGlmdCBmY250bCBzeXNjYWxsIGdvdG8gZ2V0bmV0YnlhZGRyIGpvaW4gZ210aW1lIHN5bWxpbmsgc2VtZ2V0IHNwbGljZSB4fDAgZ2V0cGVlcm5hbWUgcmVjdiBsb2cgc2V0c29ja29wdCBjb3MgbGFzdCByZXZlcnNlIGdldGhvc3RieW5hbWUgZ2V0Z3JuYW0gc3R1ZHkgZm9ybWxpbmUgZW5kaG9zdGVudCB0aW1lcyBjaG9wIGxlbmd0aCBnZXRob3N0ZW50IGdldG5ldGVudCBwYWNrIGdldHByb3RvZW50IGdldHNlcnZieW5hbWUgcmFuZCBta2RpciBwb3MgY2htb2QgeXwwIHN1YnN0ciBlbmRuZXRlbnQgcHJpbnRmIG5leHQgb3BlbiBtc2dzbmQgcmVhZGRpciB1c2UgdW5saW5rIGdldHNvY2tvcHQgZ2V0cHJpb3JpdHkgcmluZGV4IHdhbnRhcnJheSBoZXggc3lzdGVtIGdldHNlcnZieXBvcnQgZW5kc2VydmVudCBpbnQgY2hyIHVudGllIHJtZGlyIHByb3RvdHlwZSB0ZWxsIGxpc3RlbiBmb3JrIHNobXJlYWQgdWNmaXJzdCBzZXRwcm90b2VudCBlbHNlIHN5c3NlZWsgbGluayBnZXRncmdpZCBzaG1jdGwgd2FpdHBpZCB1bnBhY2sgZ2V0bmV0YnluYW1lIHJlc2V0IGNoZGlyIGdyZXAgc3BsaXQgcmVxdWlyZSBjYWxsZXIgbGNmaXJzdCB1bnRpbCB3YXJuIHdoaWxlIHZhbHVlcyBzaGlmdCB0ZWxsZGlyIGdldHB3dWlkIG15IGdldHByb3RvYnludW1iZXIgZGVsZXRlIGFuZCBzb3J0IHVjIGRlZmluZWQgc3JhbmQgYWNjZXB0IHBhY2thZ2Ugc2Vla2RpciBnZXRwcm90b2J5bmFtZSBzZW1vcCBvdXIgcmVuYW1lIHNlZWsgaWYgcXwwIGNocm9vdCBzeXNyZWFkIHNldHB3ZW50IG5vIGNyeXB0IGdldGMgY2hvd24gc3FydCB3cml0ZSBzZXRuZXRlbnQgc2V0cHJpb3JpdHkgZm9yZWFjaCB0aWUgc2luIG1zZ2dldCBtYXAgc3RhdCBnZXRsb2dpbiB1bmxlc3MgZWxzaWYgdHJ1bmNhdGUgZXhlYyBrZXlzIGdsb2IgdGllZCBjbG9zZWRpciBpb2N0bCBzb2NrZXQgcmVhZGxpbmsgZXZhbCB4b3IgcmVhZGxpbmUgYmlubW9kZSBzZXRzZXJ2ZW50IGVvZiBvcmQgYmluZCBhbGFybSBwaXBlIGF0YW4yIGdldGdyZW50IGV4cCB0aW1lIHB1c2ggc2V0Z3JlbnQgZ3QgbHQgb3IgbmUgbXwwIGJyZWFrIGdpdmVuIHNheSBzdGF0ZSB3aGVuIgp9LHI9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOiJbJEBdXFx7IixlbmQ6IlxcfSIsa2V5d29yZHM6c30saT17YmVnaW46Ly0+XHsvLAplbmQ6L1x9L30sYT17dmFyaWFudHM6W3tiZWdpbjovXCRcZC99LHsKYmVnaW46ZSgvWyQlQF0oXF5cd1xifCNcdysoOjpcdyspKnxce1x3K1x9fFx3Kyg6Olx3KikqKS8sIig/IVtBLVphLXpdKSg/IVtAJCVdKSIpCn0se2JlZ2luOi9bJCVAXVteXHNcd3tdLyxyZWxldmFuY2U6MH1dCn0sbz1bbi5CQUNLU0xBU0hfRVNDQVBFLHIsYV0sYz1bYSxuLkhBU0hfQ09NTUVOVF9NT0RFLG4uQ09NTUVOVCgvXj1cdy8sLz1jdXQvLHsKZW5kc1dpdGhQYXJlbnQ6ITB9KSxpLHtjbGFzc05hbWU6InN0cmluZyIsY29udGFpbnM6byx2YXJpYW50czpbewpiZWdpbjoicVtxd3hyXT9cXHMqXFwoIixlbmQ6IlxcKSIscmVsZXZhbmNlOjV9LHtiZWdpbjoicVtxd3hyXT9cXHMqXFxbIiwKZW5kOiJcXF0iLHJlbGV2YW5jZTo1fSx7YmVnaW46InFbcXd4cl0/XFxzKlxceyIsZW5kOiJcXH0iLHJlbGV2YW5jZTo1fSx7CmJlZ2luOiJxW3F3eHJdP1xccypcXHwiLGVuZDoiXFx8IixyZWxldmFuY2U6NX0se2JlZ2luOiJxW3F3eHJdP1xccyo8IixlbmQ6Ij4iLApyZWxldmFuY2U6NX0se2JlZ2luOiJxd1xccytxIixlbmQ6InEiLHJlbGV2YW5jZTo1fSx7YmVnaW46IiciLGVuZDoiJyIsCmNvbnRhaW5zOltuLkJBQ0tTTEFTSF9FU0NBUEVdfSx7YmVnaW46JyInLGVuZDonIid9LHtiZWdpbjoiYCIsZW5kOiJgIiwKY29udGFpbnM6W24uQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjovXHtcdytcfS8sY29udGFpbnM6W10scmVsZXZhbmNlOjB9LHsKYmVnaW46Ii0/XFx3K1xccyo9PiIsY29udGFpbnM6W10scmVsZXZhbmNlOjB9XX0se2NsYXNzTmFtZToibnVtYmVyIiwKYmVnaW46IihcXGIwWzAtN19dKyl8KFxcYjB4WzAtOWEtZkEtRl9dKyl8KFxcYlsxLTldWzAtOV9dKihcXC5bMC05X10rKT8pfFswX11cXGIiLApyZWxldmFuY2U6MH0sewpiZWdpbjoiKFxcL1xcL3wiK24uUkVfU1RBUlRFUlNfUkUrInxcXGIoc3BsaXR8cmV0dXJufHByaW50fHJldmVyc2V8Z3JlcClcXGIpXFxzKiIsCmtleXdvcmRzOiJzcGxpdCByZXR1cm4gcHJpbnQgcmV2ZXJzZSBncmVwIixyZWxldmFuY2U6MCwKY29udGFpbnM6W24uSEFTSF9DT01NRU5UX01PREUse2NsYXNzTmFtZToicmVnZXhwIiwKYmVnaW46ZSgvKHN8dHJ8eSkvLC9cLy8sLyhcXC58W15cXFwvXSkqLywvXC8vLC8oXFwufFteXFxcL10pKi8sL1wvLyx0KSwKcmVsZXZhbmNlOjEwfSx7Y2xhc3NOYW1lOiJyZWdleHAiLGJlZ2luOi8obXxxcik/XC8vLGVuZDplKC9cLy8sdCksCmNvbnRhaW5zOltuLkJBQ0tTTEFTSF9FU0NBUEVdLHJlbGV2YW5jZTowfV19LHtjbGFzc05hbWU6ImZ1bmN0aW9uIiwKYmVnaW5LZXl3b3Jkczoic3ViIixlbmQ6IihcXHMqXFwoLio/XFwpKT9bO3tdIixleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTo1LApjb250YWluczpbbi5USVRMRV9NT0RFXX0se2JlZ2luOiItXFx3XFxiIixyZWxldmFuY2U6MH0se2JlZ2luOiJeX19EQVRBX18kIiwKZW5kOiJeX19FTkRfXyQiLHN1Ykxhbmd1YWdlOiJtb2pvbGljaW91cyIsY29udGFpbnM6W3tiZWdpbjoiXkBALioiLGVuZDoiJCIsCmNsYXNzTmFtZToiY29tbWVudCJ9XX1dO3JldHVybiByLmNvbnRhaW5zPWMsaS5jb250YWlucz1jLHtuYW1lOiJQZXJsIiwKYWxpYXNlczpbInBsIiwicG0iXSxrZXl3b3JkczpzLGNvbnRhaW5zOmN9fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiZ3JhZGxlIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9Pih7bmFtZToiR3JhZGxlIiwKY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3Jkczp7CmtleXdvcmQ6InRhc2sgcHJvamVjdCBhbGxwcm9qZWN0cyBzdWJwcm9qZWN0cyBhcnRpZmFjdHMgYnVpbGRzY3JpcHQgY29uZmlndXJhdGlvbnMgZGVwZW5kZW5jaWVzIHJlcG9zaXRvcmllcyBzb3VyY2VTZXRzIGRlc2NyaXB0aW9uIGRlbGV0ZSBmcm9tIGludG8gaW5jbHVkZSBleGNsdWRlIHNvdXJjZSBjbGFzc3BhdGggZGVzdGluYXRpb25EaXIgaW5jbHVkZXMgb3B0aW9ucyBzb3VyY2VDb21wYXRpYmlsaXR5IHRhcmdldENvbXBhdGliaWxpdHkgZ3JvdXAgZmxhdERpciBkb0xhc3QgZG9GaXJzdCBmbGF0dGVuIHRvZGlyIGZyb21kaXIgYW50IGRlZiBhYnN0cmFjdCBicmVhayBjYXNlIGNhdGNoIGNvbnRpbnVlIGRlZmF1bHQgZG8gZWxzZSBleHRlbmRzIGZpbmFsIGZpbmFsbHkgZm9yIGlmIGltcGxlbWVudHMgaW5zdGFuY2VvZiBuYXRpdmUgbmV3IHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyByZXR1cm4gc3RhdGljIHN3aXRjaCBzeW5jaHJvbml6ZWQgdGhyb3cgdGhyb3dzIHRyYW5zaWVudCB0cnkgdm9sYXRpbGUgd2hpbGUgc3RyaWN0ZnAgcGFja2FnZSBpbXBvcnQgZmFsc2UgbnVsbCBzdXBlciB0aGlzIHRydWUgYW50bHJ0YXNrIGNoZWNrc3R5bGUgY29kZW5hcmMgY29weSBib29sZWFuIGJ5dGUgY2hhciBjbGFzcyBkb3VibGUgZmxvYXQgaW50IGludGVyZmFjZSBsb25nIHNob3J0IHZvaWQgY29tcGlsZSBydW5UaW1lIGZpbGUgZmlsZVRyZWUgYWJzIGFueSBhcHBlbmQgYXNMaXN0IGFzV3JpdGFibGUgY2FsbCBjb2xsZWN0IGNvbXBhcmVUbyBjb3VudCBkaXYgZHVtcCBlYWNoIGVhY2hCeXRlIGVhY2hGaWxlIGVhY2hMaW5lIGV2ZXJ5IGZpbmQgZmluZEFsbCBmbGF0dGVuIGdldEF0IGdldEVyciBnZXRJbiBnZXRPdXQgZ2V0VGV4dCBncmVwIGltbXV0YWJsZSBpbmplY3QgaW5zcGVjdCBpbnRlcnNlY3QgaW52b2tlTWV0aG9kcyBpc0Nhc2Ugam9pbiBsZWZ0U2hpZnQgbWludXMgbXVsdGlwbHkgbmV3SW5wdXRTdHJlYW0gbmV3T3V0cHV0U3RyZWFtIG5ld1ByaW50V3JpdGVyIG5ld1JlYWRlciBuZXdXcml0ZXIgbmV4dCBwbHVzIHBvcCBwb3dlciBwcmV2aW91cyBwcmludCBwcmludGxuIHB1c2ggcHV0QXQgcmVhZCByZWFkQnl0ZXMgcmVhZExpbmVzIHJldmVyc2UgcmV2ZXJzZUVhY2ggcm91bmQgc2l6ZSBzb3J0IHNwbGl0RWFjaExpbmUgc3RlcCBzdWJNYXAgdGltZXMgdG9JbnRlZ2VyIHRvTGlzdCB0b2tlbml6ZSB1cHRvIHdhaXRGb3JPcktpbGwgd2l0aFByaW50V3JpdGVyIHdpdGhSZWFkZXIgd2l0aFN0cmVhbSB3aXRoV3JpdGVyIHdpdGhXcml0ZXJBcHBlbmQgd3JpdGUgd3JpdGVMaW5lIgp9LApjb250YWluczpbZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUsZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUsZS5OVU1CRVJfTU9ERSxlLlJFR0VYUF9NT0RFXQp9KX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiY3BwIiwoKCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZShlKXsKcmV0dXJuKCguLi5lKT0+ZS5tYXAoKGU9PihlPT5lPyJzdHJpbmciPT10eXBlb2YgZT9lOmUuc291cmNlOm51bGwpKGUpKSkuam9pbigiIikpKCIoIixlLCIpPyIpCn1yZXR1cm4gdD0+e2NvbnN0IG49KHQ9Pntjb25zdCBuPXQuQ09NTUVOVCgiLy8iLCIkIix7Y29udGFpbnM6W3tiZWdpbjovXFxcbi99XQp9KSxyPSJbYS16QS1aX11cXHcqOjoiLGE9IihkZWNsdHlwZVxcKGF1dG9cXCl8IitlKHIpKyJbYS16QS1aX11cXHcqIitlKCI8W148Pl0rPiIpKyIpIixzPXsKY2xhc3NOYW1lOiJrZXl3b3JkIixiZWdpbjoiXFxiW2EtelxcZF9dKl90XFxiIn0saT17Y2xhc3NOYW1lOiJzdHJpbmciLAp2YXJpYW50czpbe2JlZ2luOicodTg/fFV8TCk/IicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLApjb250YWluczpbdC5CQUNLU0xBU0hfRVNDQVBFXX0sewpiZWdpbjoiKHU4P3xVfEwpPycoXFxcXCh4WzAtOUEtRmEtZl17Mn18dVswLTlBLUZhLWZdezQsOH18WzAtN117M318XFxTKXwuKSIsCmVuZDoiJyIsaWxsZWdhbDoiLiJ9LHQuRU5EX1NBTUVfQVNfQkVHSU4oewpiZWdpbjovKD86dTg/fFV8TCk/UiIoW14oKVxcIF17MCwxNn0pXCgvLGVuZDovXCkoW14oKVxcIF17MCwxNn0pIi99KV19LGM9ewpjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3tiZWdpbjoiXFxiKDBiWzAxJ10rKSJ9LHsKYmVnaW46IigtPylcXGIoW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykodXxVfGx8THx1bHxVTHxmfEZ8YnxCKSJ9LHsKYmVnaW46IigtPykoXFxiMFt4WF1bYS1mQS1GMC05J10rfChcXGJbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKShbZUVdWy0rXT9bXFxkJ10rKT8pIgp9XSxyZWxldmFuY2U6MH0sbz17Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovI1xzKlthLXpdK1xiLyxlbmQ6LyQvLGtleXdvcmRzOnsKIm1ldGEta2V5d29yZCI6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHByYWdtYSBfUHJhZ21hIGlmZGVmIGlmbmRlZiBpbmNsdWRlIgp9LGNvbnRhaW5zOlt7YmVnaW46L1xcXG4vLHJlbGV2YW5jZTowfSx0LmluaGVyaXQoaSx7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyJ9KSx7CmNsYXNzTmFtZToibWV0YS1zdHJpbmciLGJlZ2luOi88Lio/Pi8sZW5kOi8kLyxpbGxlZ2FsOiJcXG4iCn0sbix0LkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0sbD17Y2xhc3NOYW1lOiJ0aXRsZSIsYmVnaW46ZShyKSt0LklERU5UX1JFLApyZWxldmFuY2U6MH0sZD1lKHIpK3QuSURFTlRfUkUrIlxccypcXCgiLHU9ewprZXl3b3JkOiJpbnQgZmxvYXQgd2hpbGUgcHJpdmF0ZSBjaGFyIGNoYXI4X3QgY2hhcjE2X3QgY2hhcjMyX3QgY2F0Y2ggaW1wb3J0IG1vZHVsZSBleHBvcnQgdmlydHVhbCBvcGVyYXRvciBzaXplb2YgZHluYW1pY19jYXN0fDEwIHR5cGVkZWYgY29uc3RfY2FzdHwxMCBjb25zdCBmb3Igc3RhdGljX2Nhc3R8MTAgdW5pb24gbmFtZXNwYWNlIHVuc2lnbmVkIGxvbmcgdm9sYXRpbGUgc3RhdGljIHByb3RlY3RlZCBib29sIHRlbXBsYXRlIG11dGFibGUgaWYgcHVibGljIGZyaWVuZCBkbyBnb3RvIGF1dG8gdm9pZCBlbnVtIGVsc2UgYnJlYWsgZXh0ZXJuIHVzaW5nIGFzbSBjYXNlIHR5cGVpZCB3Y2hhcl90IHNob3J0IHJlaW50ZXJwcmV0X2Nhc3R8MTAgZGVmYXVsdCBkb3VibGUgcmVnaXN0ZXIgZXhwbGljaXQgc2lnbmVkIHR5cGVuYW1lIHRyeSB0aGlzIHN3aXRjaCBjb250aW51ZSBpbmxpbmUgZGVsZXRlIGFsaWduYXMgYWxpZ25vZiBjb25zdGV4cHIgY29uc3RldmFsIGNvbnN0aW5pdCBkZWNsdHlwZSBjb25jZXB0IGNvX2F3YWl0IGNvX3JldHVybiBjb195aWVsZCByZXF1aXJlcyBub2V4Y2VwdCBzdGF0aWNfYXNzZXJ0IHRocmVhZF9sb2NhbCByZXN0cmljdCBmaW5hbCBvdmVycmlkZSBhdG9taWNfYm9vbCBhdG9taWNfY2hhciBhdG9taWNfc2NoYXIgYXRvbWljX3VjaGFyIGF0b21pY19zaG9ydCBhdG9taWNfdXNob3J0IGF0b21pY19pbnQgYXRvbWljX3VpbnQgYXRvbWljX2xvbmcgYXRvbWljX3Vsb25nIGF0b21pY19sbG9uZyBhdG9taWNfdWxsb25nIG5ldyB0aHJvdyByZXR1cm4gYW5kIGFuZF9lcSBiaXRhbmQgYml0b3IgY29tcGwgbm90IG5vdF9lcSBvciBvcl9lcSB4b3IgeG9yX2VxIiwKYnVpbHRfaW46InN0ZCBzdHJpbmcgd3N0cmluZyBjaW4gY291dCBjZXJyIGNsb2cgc3RkaW4gc3Rkb3V0IHN0ZGVyciBzdHJpbmdzdHJlYW0gaXN0cmluZ3N0cmVhbSBvc3RyaW5nc3RyZWFtIGF1dG9fcHRyIGRlcXVlIGxpc3QgcXVldWUgc3RhY2sgdmVjdG9yIG1hcCBzZXQgcGFpciBiaXRzZXQgbXVsdGlzZXQgbXVsdGltYXAgdW5vcmRlcmVkX3NldCB1bm9yZGVyZWRfbWFwIHVub3JkZXJlZF9tdWx0aXNldCB1bm9yZGVyZWRfbXVsdGltYXAgcHJpb3JpdHlfcXVldWUgbWFrZV9wYWlyIGFycmF5IHNoYXJlZF9wdHIgYWJvcnQgdGVybWluYXRlIGFicyBhY29zIGFzaW4gYXRhbjIgYXRhbiBjYWxsb2MgY2VpbCBjb3NoIGNvcyBleGl0IGV4cCBmYWJzIGZsb29yIGZtb2QgZnByaW50ZiBmcHV0cyBmcmVlIGZyZXhwIGZzY2FuZiBmdXR1cmUgaXNhbG51bSBpc2FscGhhIGlzY250cmwgaXNkaWdpdCBpc2dyYXBoIGlzbG93ZXIgaXNwcmludCBpc3B1bmN0IGlzc3BhY2UgaXN1cHBlciBpc3hkaWdpdCB0b2xvd2VyIHRvdXBwZXIgbGFicyBsZGV4cCBsb2cxMCBsb2cgbWFsbG9jIHJlYWxsb2MgbWVtY2hyIG1lbWNtcCBtZW1jcHkgbWVtc2V0IG1vZGYgcG93IHByaW50ZiBwdXRjaGFyIHB1dHMgc2NhbmYgc2luaCBzaW4gc25wcmludGYgc3ByaW50ZiBzcXJ0IHNzY2FuZiBzdHJjYXQgc3RyY2hyIHN0cmNtcCBzdHJjcHkgc3RyY3NwbiBzdHJsZW4gc3RybmNhdCBzdHJuY21wIHN0cm5jcHkgc3RycGJyayBzdHJyY2hyIHN0cnNwbiBzdHJzdHIgdGFuaCB0YW4gdmZwcmludGYgdnByaW50ZiB2c3ByaW50ZiBlbmRsIGluaXRpYWxpemVyX2xpc3QgdW5pcXVlX3B0ciBfQm9vbCBjb21wbGV4IF9Db21wbGV4IGltYWdpbmFyeSBfSW1hZ2luYXJ5IiwKbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxscHRyIE5VTEwifSxwPVtvLHMsbix0LkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGMsaV0sbT17CnZhcmlhbnRzOlt7YmVnaW46Lz0vLGVuZDovOy99LHtiZWdpbjovXCgvLGVuZDovXCkvfSx7CmJlZ2luS2V5d29yZHM6Im5ldyB0aHJvdyByZXR1cm4gZWxzZSIsZW5kOi87L31dLGtleXdvcmRzOnUsY29udGFpbnM6cC5jb25jYXQoW3sKYmVnaW46L1woLyxlbmQ6L1wpLyxrZXl3b3Jkczp1LGNvbnRhaW5zOnAuY29uY2F0KFsic2VsZiJdKSxyZWxldmFuY2U6MH1dKSwKcmVsZXZhbmNlOjB9LF89e2NsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOiIoIithKyJbXFwqJlxcc10rKSsiK2QsCnJldHVybkJlZ2luOiEwLGVuZDovW3s7PV0vLGV4Y2x1ZGVFbmQ6ITAsa2V5d29yZHM6dSxpbGxlZ2FsOi9bXlx3XHNcKiY6PD5dLywKY29udGFpbnM6W3tiZWdpbjoiZGVjbHR5cGVcXChhdXRvXFwpIixrZXl3b3Jkczp1LHJlbGV2YW5jZTowfSx7YmVnaW46ZCwKcmV0dXJuQmVnaW46ITAsY29udGFpbnM6W2xdLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sCmVuZDovXCkvLGtleXdvcmRzOnUscmVsZXZhbmNlOjAsY29udGFpbnM6W24sdC5DX0JMT0NLX0NPTU1FTlRfTU9ERSxpLGMscyx7CmJlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6dSxyZWxldmFuY2U6MCwKY29udGFpbnM6WyJzZWxmIixuLHQuQ19CTE9DS19DT01NRU5UX01PREUsaSxjLHNdfV0KfSxzLG4sdC5DX0JMT0NLX0NPTU1FTlRfTU9ERSxvXX07cmV0dXJuewphbGlhc2VzOlsiYyIsImNjIiwiaCIsImMrKyIsImgrKyIsImhwcCIsImhoIiwiaHh4IiwiY3h4Il0sa2V5d29yZHM6dSwKZGlzYWJsZUF1dG9kZXRlY3Q6ITAsaWxsZWdhbDoiPC8iLGNvbnRhaW5zOltdLmNvbmNhdChtLF8scCxbbyx7CmJlZ2luOiJcXGIoZGVxdWV8bGlzdHxxdWV1ZXxwcmlvcml0eV9xdWV1ZXxwYWlyfHN0YWNrfHZlY3RvcnxtYXB8c2V0fGJpdHNldHxtdWx0aXNldHxtdWx0aW1hcHx1bm9yZGVyZWRfbWFwfHVub3JkZXJlZF9zZXR8dW5vcmRlcmVkX211bHRpc2V0fHVub3JkZXJlZF9tdWx0aW1hcHxhcnJheSlcXHMqPCIsCmVuZDoiPiIsa2V5d29yZHM6dSxjb250YWluczpbInNlbGYiLHNdfSx7YmVnaW46dC5JREVOVF9SRSsiOjoiLGtleXdvcmRzOnV9LHsKY2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiZW51bSBjbGFzcyBzdHJ1Y3QgdW5pb24iLGVuZDovW3s7Ojw+PV0vLApjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImZpbmFsIGNsYXNzIHN0cnVjdCJ9LHQuVElUTEVfTU9ERV19XSksZXhwb3J0czp7CnByZXByb2Nlc3NvcjpvLHN0cmluZ3M6aSxrZXl3b3Jkczp1fX19KSh0KQo7cmV0dXJuIG4uZGlzYWJsZUF1dG9kZXRlY3Q9ITEsbi5uYW1lPSJDKysiLApuLmFsaWFzZXM9WyJjYyIsImMrKyIsImgrKyIsImhwcCIsImhoIiwiaHh4IiwiY3h4Il0sbn19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImNzaGFycCIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57dmFyIG49ewprZXl3b3JkOlsiYWJzdHJhY3QiLCJhcyIsImJhc2UiLCJicmVhayIsImNhc2UiLCJjbGFzcyIsImNvbnN0IiwiY29udGludWUiLCJkbyIsImVsc2UiLCJldmVudCIsImV4cGxpY2l0IiwiZXh0ZXJuIiwiZmluYWxseSIsImZpeGVkIiwiZm9yIiwiZm9yZWFjaCIsImdvdG8iLCJpZiIsImltcGxpY2l0IiwiaW4iLCJpbnRlcmZhY2UiLCJpbnRlcm5hbCIsImlzIiwibG9jayIsIm5hbWVzcGFjZSIsIm5ldyIsIm9wZXJhdG9yIiwib3V0Iiwib3ZlcnJpZGUiLCJwYXJhbXMiLCJwcml2YXRlIiwicHJvdGVjdGVkIiwicHVibGljIiwicmVhZG9ubHkiLCJyZWNvcmQiLCJyZWYiLCJyZXR1cm4iLCJzZWFsZWQiLCJzaXplb2YiLCJzdGFja2FsbG9jIiwic3RhdGljIiwic3RydWN0Iiwic3dpdGNoIiwidGhpcyIsInRocm93IiwidHJ5IiwidHlwZW9mIiwidW5jaGVja2VkIiwidW5zYWZlIiwidXNpbmciLCJ2aXJ0dWFsIiwidm9pZCIsInZvbGF0aWxlIiwid2hpbGUiXS5jb25jYXQoWyJhZGQiLCJhbGlhcyIsImFuZCIsImFzY2VuZGluZyIsImFzeW5jIiwiYXdhaXQiLCJieSIsImRlc2NlbmRpbmciLCJlcXVhbHMiLCJmcm9tIiwiZ2V0IiwiZ2xvYmFsIiwiZ3JvdXAiLCJpbml0IiwiaW50byIsImpvaW4iLCJsZXQiLCJuYW1lb2YiLCJub3QiLCJub3RudWxsIiwib24iLCJvciIsIm9yZGVyYnkiLCJwYXJ0aWFsIiwicmVtb3ZlIiwic2VsZWN0Iiwic2V0IiwidW5tYW5hZ2VkIiwidmFsdWV8MCIsInZhciIsIndoZW4iLCJ3aGVyZSIsIndpdGgiLCJ5aWVsZCJdKS5qb2luKCIgIiksCmJ1aWx0X2luOiJib29sIGJ5dGUgY2hhciBkZWNpbWFsIGRlbGVnYXRlIGRvdWJsZSBkeW5hbWljIGVudW0gZmxvYXQgaW50IGxvbmcgbmludCBudWludCBvYmplY3Qgc2J5dGUgc2hvcnQgc3RyaW5nIHVsb25nIHVuaXQgdXNob3J0IiwKbGl0ZXJhbDoiZGVmYXVsdCBmYWxzZSBudWxsIHRydWUifSxhPWUuaW5oZXJpdChlLlRJVExFX01PREUsewpiZWdpbjoiW2EtekEtWl0oXFwuP1xcdykqIn0pLGk9e2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbewpiZWdpbjoiXFxiKDBiWzAxJ10rKSJ9LHsKYmVnaW46IigtPylcXGIoW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykodXxVfGx8THx1bHxVTHxmfEZ8YnxCKSJ9LHsKYmVnaW46IigtPykoXFxiMFt4WF1bYS1mQS1GMC05J10rfChcXGJbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKShbZUVdWy0rXT9bXFxkJ10rKT8pIgp9XSxyZWxldmFuY2U6MH0scz17Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOidAIicsZW5kOiciJyxjb250YWluczpbe2JlZ2luOiciIid9XQp9LHQ9ZS5pbmhlcml0KHMse2lsbGVnYWw6L1xuL30pLHI9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOi9cey8sZW5kOi9cfS8sCmtleXdvcmRzOm59LGw9ZS5pbmhlcml0KHIse2lsbGVnYWw6L1xuL30pLGM9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovXCQiLywKZW5kOiciJyxpbGxlZ2FsOi9cbi8sY29udGFpbnM6W3tiZWdpbjovXHtcey99LHtiZWdpbjovXH1cfS8KfSxlLkJBQ0tTTEFTSF9FU0NBUEUsbF19LG89e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjovXCRAIi8sZW5kOiciJyxjb250YWluczpbewpiZWdpbjovXHtcey99LHtiZWdpbjovXH1cfS99LHtiZWdpbjonIiInfSxyXX0sZD1lLmluaGVyaXQobyx7aWxsZWdhbDovXG4vLApjb250YWluczpbe2JlZ2luOi9ce1x7L30se2JlZ2luOi9cfVx9L30se2JlZ2luOiciIid9LGxdfSkKO3IuY29udGFpbnM9W28sYyxzLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGksZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV0sCmwuY29udGFpbnM9W2QsYyx0LGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLGksZS5pbmhlcml0KGUuQ19CTE9DS19DT01NRU5UX01PREUsewppbGxlZ2FsOi9cbi99KV07dmFyIGc9e3ZhcmlhbnRzOltvLGMscyxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERV0KfSxFPXtiZWdpbjoiPCIsZW5kOiI+Iixjb250YWluczpbe2JlZ2luS2V5d29yZHM6ImluIG91dCJ9LGFdCn0sXz1lLklERU5UX1JFKyIoPCIrZS5JREVOVF9SRSsiKFxccyosXFxzKiIrZS5JREVOVF9SRSsiKSo+KT8oXFxbXFxdKT8iLGI9ewpiZWdpbjoiQCIrZS5JREVOVF9SRSxyZWxldmFuY2U6MH07cmV0dXJue25hbWU6IkMjIixhbGlhc2VzOlsiY3MiLCJjIyJdLAprZXl3b3JkczpuLGlsbGVnYWw6Lzo6Lyxjb250YWluczpbZS5DT01NRU5UKCIvLy8iLCIkIix7cmV0dXJuQmVnaW46ITAsCmNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJkb2N0YWciLHZhcmlhbnRzOlt7YmVnaW46Ii8vLyIscmVsZXZhbmNlOjB9LHsKYmVnaW46Ilx4M2MhLS18LS1ceDNlIn0se2JlZ2luOiI8Lz8iLGVuZDoiPiJ9XX1dCn0pLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiIjIiwKZW5kOiIkIixrZXl3b3Jkczp7CiJtZXRhLWtleXdvcmQiOiJpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSByZWdpb24gZW5kcmVnaW9uIHByYWdtYSBjaGVja3N1bSIKfX0sZyxpLHtiZWdpbktleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UiLHJlbGV2YW5jZTowLGVuZDovW3s7PV0vLAppbGxlZ2FsOi9bXlxzOixdLyxjb250YWluczpbe2JlZ2luS2V5d29yZHM6IndoZXJlIGNsYXNzIgp9LGEsRSxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LHtiZWdpbktleXdvcmRzOiJuYW1lc3BhY2UiLApyZWxldmFuY2U6MCxlbmQ6L1t7Oz1dLyxpbGxlZ2FsOi9bXlxzOl0vLApjb250YWluczpbYSxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LHsKYmVnaW5LZXl3b3JkczoicmVjb3JkIixyZWxldmFuY2U6MCxlbmQ6L1t7Oz1dLyxpbGxlZ2FsOi9bXlxzOl0vLApjb250YWluczpbYSxFLGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0se2NsYXNzTmFtZToibWV0YSIsCmJlZ2luOiJeXFxzKlxcWyIsZXhjbHVkZUJlZ2luOiEwLGVuZDoiXFxdIixleGNsdWRlRW5kOiEwLGNvbnRhaW5zOlt7CmNsYXNzTmFtZToibWV0YS1zdHJpbmciLGJlZ2luOi8iLyxlbmQ6LyIvfV19LHsKYmVnaW5LZXl3b3JkczoibmV3IHJldHVybiB0aHJvdyBhd2FpdCBlbHNlIixyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiZnVuY3Rpb24iLApiZWdpbjoiKCIrXysiXFxzKykrIitlLklERU5UX1JFKyJcXHMqKDwuKz5cXHMqKT9cXCgiLHJldHVybkJlZ2luOiEwLAplbmQ6L1xzKlt7Oz1dLyxleGNsdWRlRW5kOiEwLGtleXdvcmRzOm4sY29udGFpbnM6W3sKYmVnaW5LZXl3b3JkczoicHVibGljIHByaXZhdGUgcHJvdGVjdGVkIHN0YXRpYyBpbnRlcm5hbCBwcm90ZWN0ZWQgYWJzdHJhY3QgYXN5bmMgZXh0ZXJuIG92ZXJyaWRlIHVuc2FmZSB2aXJ0dWFsIG5ldyBzZWFsZWQgcGFydGlhbCIsCnJlbGV2YW5jZTowfSx7YmVnaW46ZS5JREVOVF9SRSsiXFxzKig8Lis+XFxzKik/XFwoIixyZXR1cm5CZWdpbjohMCwKY29udGFpbnM6W2UuVElUTEVfTU9ERSxFXSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLApleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpuLHJlbGV2YW5jZTowLApjb250YWluczpbZyxpLGUuQ19CTE9DS19DT01NRU5UX01PREVdCn0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREVdfSxiXX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJoYXNrZWxsIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9Pntjb25zdCBuPXsKdmFyaWFudHM6W2UuQ09NTUVOVCgiLS0iLCIkIiksZS5DT01NRU5UKC9cey0vLC8tXH0vLHtjb250YWluczpbInNlbGYiXX0pXX0saT17CmNsYXNzTmFtZToibWV0YSIsYmVnaW46L1x7LSMvLGVuZDovIy1cfS99LGE9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46Il4jIixlbmQ6IiQiCn0scz17Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFxiW0EtWl1bXFx3J10qIixyZWxldmFuY2U6MH0sbD17YmVnaW46IlxcKCIsCmVuZDoiXFwpIixpbGxlZ2FsOiciJyxjb250YWluczpbaSxhLHtjbGFzc05hbWU6InR5cGUiLApiZWdpbjoiXFxiW0EtWl1bXFx3XSooXFwoKFxcLlxcLnwsfFxcdyspXFwpKT8ifSxlLmluaGVyaXQoZS5USVRMRV9NT0RFLHsKYmVnaW46IltfYS16XVtcXHcnXSoifSksbl19O3JldHVybntuYW1lOiJIYXNrZWxsIixhbGlhc2VzOlsiaHMiXSwKa2V5d29yZHM6ImxldCBpbiBpZiB0aGVuIGVsc2UgY2FzZSBvZiB3aGVyZSBkbyBtb2R1bGUgaW1wb3J0IGhpZGluZyBxdWFsaWZpZWQgdHlwZSBkYXRhIG5ld3R5cGUgZGVyaXZpbmcgY2xhc3MgaW5zdGFuY2UgYXMgZGVmYXVsdCBpbmZpeCBpbmZpeGwgaW5maXhyIGZvcmVpZ24gZXhwb3J0IGNjYWxsIHN0ZGNhbGwgY3BsdXNwbHVzIGp2bSBkb3RuZXQgc2FmZSB1bnNhZmUgZmFtaWx5IGZvcmFsbCBtZG8gcHJvYyByZWMiLApjb250YWluczpbe2JlZ2luS2V5d29yZHM6Im1vZHVsZSIsZW5kOiJ3aGVyZSIsa2V5d29yZHM6Im1vZHVsZSB3aGVyZSIsCmNvbnRhaW5zOltsLG5dLGlsbGVnYWw6IlxcV1xcLnw7In0se2JlZ2luOiJcXGJpbXBvcnRcXGIiLGVuZDoiJCIsCmtleXdvcmRzOiJpbXBvcnQgcXVhbGlmaWVkIGFzIGhpZGluZyIsY29udGFpbnM6W2wsbl0saWxsZWdhbDoiXFxXXFwufDsifSx7CmNsYXNzTmFtZToiY2xhc3MiLGJlZ2luOiJeKFxccyopPyhjbGFzc3xpbnN0YW5jZSlcXGIiLGVuZDoid2hlcmUiLAprZXl3b3JkczoiY2xhc3MgZmFtaWx5IGluc3RhbmNlIHdoZXJlIixjb250YWluczpbcyxsLG5dfSx7Y2xhc3NOYW1lOiJjbGFzcyIsCmJlZ2luOiJcXGIoZGF0YXwobmV3KT90eXBlKVxcYiIsZW5kOiIkIiwKa2V5d29yZHM6ImRhdGEgZmFtaWx5IHR5cGUgbmV3dHlwZSBkZXJpdmluZyIsY29udGFpbnM6W2kscyxsLHtiZWdpbjovXHsvLAplbmQ6L1x9Lyxjb250YWluczpsLmNvbnRhaW5zfSxuXX0se2JlZ2luS2V5d29yZHM6ImRlZmF1bHQiLGVuZDoiJCIsCmNvbnRhaW5zOltzLGwsbl19LHtiZWdpbktleXdvcmRzOiJpbmZpeCBpbmZpeGwgaW5maXhyIixlbmQ6IiQiLApjb250YWluczpbZS5DX05VTUJFUl9NT0RFLG5dfSx7YmVnaW46IlxcYmZvcmVpZ25cXGIiLGVuZDoiJCIsCmtleXdvcmRzOiJmb3JlaWduIGltcG9ydCBleHBvcnQgY2NhbGwgc3RkY2FsbCBjcGx1c3BsdXMganZtIGRvdG5ldCBzYWZlIHVuc2FmZSIsCmNvbnRhaW5zOltzLGUuUVVPVEVfU1RSSU5HX01PREUsbl19LHtjbGFzc05hbWU6Im1ldGEiLApiZWdpbjoiIyFcXC91c3JcXC9iaW5cXC9lbnYgcnVuaGFza2VsbCIsZW5kOiIkIgp9LGksYSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQ19OVU1CRVJfTU9ERSxzLGUuaW5oZXJpdChlLlRJVExFX01PREUsewpiZWdpbjoiXltfYS16XVtcXHcnXSoifSksbix7YmVnaW46Ii0+fDwtIn1dfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInByb2Nlc3NpbmciLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+KHsKbmFtZToiUHJvY2Vzc2luZyIsa2V5d29yZHM6ewprZXl3b3JkOiJCdWZmZXJlZFJlYWRlciBQVmVjdG9yIFBGb250IFBJbWFnZSBQR3JhcGhpY3MgSGFzaE1hcCBib29sZWFuIGJ5dGUgY2hhciBjb2xvciBkb3VibGUgZmxvYXQgaW50IGxvbmcgU3RyaW5nIEFycmF5IEZsb2F0RGljdCBGbG9hdExpc3QgSW50RGljdCBJbnRMaXN0IEpTT05BcnJheSBKU09OT2JqZWN0IE9iamVjdCBTdHJpbmdEaWN0IFN0cmluZ0xpc3QgVGFibGUgVGFibGVSb3cgWE1MIGZhbHNlIHN5bmNocm9uaXplZCBpbnQgYWJzdHJhY3QgZmxvYXQgcHJpdmF0ZSBjaGFyIGJvb2xlYW4gc3RhdGljIG51bGwgaWYgY29uc3QgZm9yIHRydWUgd2hpbGUgbG9uZyB0aHJvdyBzdHJpY3RmcCBmaW5hbGx5IHByb3RlY3RlZCBpbXBvcnQgbmF0aXZlIGZpbmFsIHJldHVybiB2b2lkIGVudW0gZWxzZSBicmVhayB0cmFuc2llbnQgbmV3IGNhdGNoIGluc3RhbmNlb2YgYnl0ZSBzdXBlciB2b2xhdGlsZSBjYXNlIGFzc2VydCBzaG9ydCBwYWNrYWdlIGRlZmF1bHQgZG91YmxlIHB1YmxpYyB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgdGhyb3dzIHByb3RlY3RlZCBwdWJsaWMgcHJpdmF0ZSIsCmxpdGVyYWw6IlAyRCBQM0QgSEFMRl9QSSBQSSBRVUFSVEVSX1BJIFRBVSBUV09fUEkiLHRpdGxlOiJzZXR1cCBkcmF3IiwKYnVpbHRfaW46ImRpc3BsYXlIZWlnaHQgZGlzcGxheVdpZHRoIG1vdXNlWSBtb3VzZVggbW91c2VQcmVzc2VkIHBtb3VzZVggcG1vdXNlWSBrZXkga2V5Q29kZSBwaXhlbHMgZm9jdXNlZCBmcmFtZUNvdW50IGZyYW1lUmF0ZSBoZWlnaHQgd2lkdGggc2l6ZSBjcmVhdGVHcmFwaGljcyBiZWdpbkRyYXcgY3JlYXRlU2hhcGUgbG9hZFNoYXBlIFBTaGFwZSBhcmMgZWxsaXBzZSBsaW5lIHBvaW50IHF1YWQgcmVjdCB0cmlhbmdsZSBiZXppZXIgYmV6aWVyRGV0YWlsIGJlemllclBvaW50IGJlemllclRhbmdlbnQgY3VydmUgY3VydmVEZXRhaWwgY3VydmVQb2ludCBjdXJ2ZVRhbmdlbnQgY3VydmVUaWdodG5lc3Mgc2hhcGUgc2hhcGVNb2RlIGJlZ2luQ29udG91ciBiZWdpblNoYXBlIGJlemllclZlcnRleCBjdXJ2ZVZlcnRleCBlbmRDb250b3VyIGVuZFNoYXBlIHF1YWRyYXRpY1ZlcnRleCB2ZXJ0ZXggZWxsaXBzZU1vZGUgbm9TbW9vdGggcmVjdE1vZGUgc21vb3RoIHN0cm9rZUNhcCBzdHJva2VKb2luIHN0cm9rZVdlaWdodCBtb3VzZUNsaWNrZWQgbW91c2VEcmFnZ2VkIG1vdXNlTW92ZWQgbW91c2VQcmVzc2VkIG1vdXNlUmVsZWFzZWQgbW91c2VXaGVlbCBrZXlQcmVzc2VkIGtleVByZXNzZWRrZXlSZWxlYXNlZCBrZXlUeXBlZCBwcmludCBwcmludGxuIHNhdmUgc2F2ZUZyYW1lIGRheSBob3VyIG1pbGxpcyBtaW51dGUgbW9udGggc2Vjb25kIHllYXIgYmFja2dyb3VuZCBjbGVhciBjb2xvck1vZGUgZmlsbCBub0ZpbGwgbm9TdHJva2Ugc3Ryb2tlIGFscGhhIGJsdWUgYnJpZ2h0bmVzcyBjb2xvciBncmVlbiBodWUgbGVycENvbG9yIHJlZCBzYXR1cmF0aW9uIG1vZGVsWCBtb2RlbFkgbW9kZWxaIHNjcmVlblggc2NyZWVuWSBzY3JlZW5aIGFtYmllbnQgZW1pc3NpdmUgc2hpbmluZXNzIHNwZWN1bGFyIGFkZCBjcmVhdGVJbWFnZSBiZWdpbkNhbWVyYSBjYW1lcmEgZW5kQ2FtZXJhIGZydXN0dW0gb3J0aG8gcGVyc3BlY3RpdmUgcHJpbnRDYW1lcmEgcHJpbnRQcm9qZWN0aW9uIGN1cnNvciBmcmFtZVJhdGUgbm9DdXJzb3IgZXhpdCBsb29wIG5vTG9vcCBwb3BTdHlsZSBwdXNoU3R5bGUgcmVkcmF3IGJpbmFyeSBib29sZWFuIGJ5dGUgY2hhciBmbG9hdCBoZXggaW50IHN0ciB1bmJpbmFyeSB1bmhleCBqb2luIG1hdGNoIG1hdGNoQWxsIG5mIG5mYyBuZnAgbmZzIHNwbGl0IHNwbGl0VG9rZW5zIHRyaW0gYXBwZW5kIGFycmF5Q29weSBjb25jYXQgZXhwYW5kIHJldmVyc2Ugc2hvcnRlbiBzb3J0IHNwbGljZSBzdWJzZXQgYm94IHNwaGVyZSBzcGhlcmVEZXRhaWwgY3JlYXRlSW5wdXQgY3JlYXRlUmVhZGVyIGxvYWRCeXRlcyBsb2FkSlNPTkFycmF5IGxvYWRKU09OT2JqZWN0IGxvYWRTdHJpbmdzIGxvYWRUYWJsZSBsb2FkWE1MIG9wZW4gcGFyc2VYTUwgc2F2ZVRhYmxlIHNlbGVjdEZvbGRlciBzZWxlY3RJbnB1dCBiZWdpblJhdyBiZWdpblJlY29yZCBjcmVhdGVPdXRwdXQgY3JlYXRlV3JpdGVyIGVuZFJhdyBlbmRSZWNvcmQgUHJpbnRXcml0ZXJzYXZlQnl0ZXMgc2F2ZUpTT05BcnJheSBzYXZlSlNPTk9iamVjdCBzYXZlU3RyZWFtIHNhdmVTdHJpbmdzIHNhdmVYTUwgc2VsZWN0T3V0cHV0IHBvcE1hdHJpeCBwcmludE1hdHJpeCBwdXNoTWF0cml4IHJlc2V0TWF0cml4IHJvdGF0ZSByb3RhdGVYIHJvdGF0ZVkgcm90YXRlWiBzY2FsZSBzaGVhclggc2hlYXJZIHRyYW5zbGF0ZSBhbWJpZW50TGlnaHQgZGlyZWN0aW9uYWxMaWdodCBsaWdodEZhbGxvZmYgbGlnaHRzIGxpZ2h0U3BlY3VsYXIgbm9MaWdodHMgbm9ybWFsIHBvaW50TGlnaHQgc3BvdExpZ2h0IGltYWdlIGltYWdlTW9kZSBsb2FkSW1hZ2Ugbm9UaW50IHJlcXVlc3RJbWFnZSB0aW50IHRleHR1cmUgdGV4dHVyZU1vZGUgdGV4dHVyZVdyYXAgYmxlbmQgY29weSBmaWx0ZXIgZ2V0IGxvYWRQaXhlbHMgc2V0IHVwZGF0ZVBpeGVscyBibGVuZE1vZGUgbG9hZFNoYWRlciBQU2hhZGVycmVzZXRTaGFkZXIgc2hhZGVyIGNyZWF0ZUZvbnQgbG9hZEZvbnQgdGV4dCB0ZXh0Rm9udCB0ZXh0QWxpZ24gdGV4dExlYWRpbmcgdGV4dE1vZGUgdGV4dFNpemUgdGV4dFdpZHRoIHRleHRBc2NlbnQgdGV4dERlc2NlbnQgYWJzIGNlaWwgY29uc3RyYWluIGRpc3QgZXhwIGZsb29yIGxlcnAgbG9nIG1hZyBtYXAgbWF4IG1pbiBub3JtIHBvdyByb3VuZCBzcSBzcXJ0IGFjb3MgYXNpbiBhdGFuIGF0YW4yIGNvcyBkZWdyZWVzIHJhZGlhbnMgc2luIHRhbiBub2lzZSBub2lzZURldGFpbCBub2lzZVNlZWQgcmFuZG9tIHJhbmRvbUdhdXNzaWFuIHJhbmRvbVNlZWQiCn0sCmNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSxlLkFQT1NfU1RSSU5HX01PREUsZS5RVU9URV9TVFJJTkdfTU9ERSxlLkNfTlVNQkVSX01PREVdCn0pfSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJzaGVsbCIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBzPT4oewpuYW1lOiJTaGVsbCBTZXNzaW9uIixhbGlhc2VzOlsiY29uc29sZSJdLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIiwKYmVnaW46L15cc3swLDN9Wy9+XHdcZFtcXSgpQC1dKls+JSQjXS8sc3RhcnRzOntlbmQ6L1teXFxdKD89XHMqJCkvLApzdWJMYW5ndWFnZToiYmFzaCJ9fV19KX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgib2NhbWwiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+KHtuYW1lOiJPQ2FtbCIsCmFsaWFzZXM6WyJtbCJdLGtleXdvcmRzOnskcGF0dGVybjoiW2Etel9dXFx3KiE/IiwKa2V5d29yZDoiYW5kIGFzIGFzc2VydCBhc3IgYmVnaW4gY2xhc3MgY29uc3RyYWludCBkbyBkb25lIGRvd250byBlbHNlIGVuZCBleGNlcHRpb24gZXh0ZXJuYWwgZm9yIGZ1biBmdW5jdGlvbiBmdW5jdG9yIGlmIGluIGluY2x1ZGUgaW5oZXJpdCEgaW5oZXJpdCBpbml0aWFsaXplciBsYW5kIGxhenkgbGV0IGxvciBsc2wgbHNyIGx4b3IgbWF0Y2ggbWV0aG9kIXwxMCBtZXRob2QgbW9kIG1vZHVsZSBtdXRhYmxlIG5ldyBvYmplY3Qgb2Ygb3BlbiEgb3BlbiBvciBwcml2YXRlIHJlYyBzaWcgc3RydWN0IHRoZW4gdG8gdHJ5IHR5cGUgdmFsISB2YWwgdmlydHVhbCB3aGVuIHdoaWxlIHdpdGggcGFyc2VyIHZhbHVlIiwKYnVpbHRfaW46ImFycmF5IGJvb2wgYnl0ZXMgY2hhciBleG58NSBmbG9hdCBpbnQgaW50MzIgaW50NjQgbGlzdCBsYXp5X3R8NSBuYXRpdmVpbnR8NSBzdHJpbmcgdW5pdCBpbl9jaGFubmVsIG91dF9jaGFubmVsIHJlZiIsCmxpdGVyYWw6InRydWUgZmFsc2UifSxpbGxlZ2FsOi9cL1wvfD4+Lyxjb250YWluczpbe2NsYXNzTmFtZToibGl0ZXJhbCIsCmJlZ2luOiJcXFsoXFx8XFx8KT9cXF18XFwoXFwpIixyZWxldmFuY2U6MH0sZS5DT01NRU5UKCJcXChcXCoiLCJcXCpcXCkiLHsKY29udGFpbnM6WyJzZWxmIl19KSx7Y2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiInW0EtWmEtel9dKD8hJylbXFx3J10qIn0sewpjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJgW0EtWl1bXFx3J10qIn0se2NsYXNzTmFtZToidHlwZSIsCmJlZ2luOiJcXGJbQS1aXVtcXHcnXSoiLHJlbGV2YW5jZTowfSx7YmVnaW46IlthLXpfXVxcdyonW1xcdyddKiIscmVsZXZhbmNlOjAKfSxlLmluaGVyaXQoZS5BUE9TX1NUUklOR19NT0RFLHtjbGFzc05hbWU6InN0cmluZyIscmVsZXZhbmNlOjAKfSksZS5pbmhlcml0KGUuUVVPVEVfU1RSSU5HX01PREUse2lsbGVnYWw6bnVsbH0pLHtjbGFzc05hbWU6Im51bWJlciIsCmJlZ2luOiJcXGIoMFt4WF1bYS1mQS1GMC05X10rW0xsbl0/fDBbb09dWzAtN19dK1tMbG5dP3wwW2JCXVswMV9dK1tMbG5dP3xbMC05XVswLTlfXSooW0xsbl18KFxcLlswLTlfXSopPyhbZUVdWy0rXT9bMC05X10rKT8pPykiLApyZWxldmFuY2U6MH0se2JlZ2luOi8tPi99XX0pfSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJhcGFjaGUiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e2NvbnN0IG49ewpjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9KDpcXGR7MSw1fSk/Igp9O3JldHVybntuYW1lOiJBcGFjaGUgY29uZmlnIixhbGlhc2VzOlsiYXBhY2hlY29uZiJdLGNhc2VfaW5zZW5zaXRpdmU6ITAsCmNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLHtjbGFzc05hbWU6InNlY3Rpb24iLGJlZ2luOiI8Lz8iLGVuZDoiPiIsCmNvbnRhaW5zOltuLHtjbGFzc05hbWU6Im51bWJlciIsYmVnaW46IjpcXGR7MSw1fSIKfSxlLmluaGVyaXQoZS5RVU9URV9TVFJJTkdfTU9ERSx7cmVsZXZhbmNlOjB9KV19LHtjbGFzc05hbWU6ImF0dHJpYnV0ZSIsCmJlZ2luOi9cdysvLHJlbGV2YW5jZTowLGtleXdvcmRzOnsKbm9tYXJrdXA6Im9yZGVyIGRlbnkgYWxsb3cgc2V0ZW52IHJld3JpdGVydWxlIHJld3JpdGVlbmdpbmUgcmV3cml0ZWNvbmQgZG9jdW1lbnRyb290IHNldGhhbmRsZXIgZXJyb3Jkb2N1bWVudCBsb2FkbW9kdWxlIG9wdGlvbnMgaGVhZGVyIGxpc3RlbiBzZXJ2ZXJyb290IHNlcnZlcm5hbWUiCn0sc3RhcnRzOntlbmQ6LyQvLHJlbGV2YW5jZTowLGtleXdvcmRzOntsaXRlcmFsOiJvbiBvZmYgYWxsIGRlbnkgYWxsb3cifSwKY29udGFpbnM6W3tjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJcXHNcXFsiLGVuZDoiXFxdJCJ9LHtjbGFzc05hbWU6InZhcmlhYmxlIiwKYmVnaW46IltcXCQlXVxceyIsZW5kOiJcXH0iLGNvbnRhaW5zOlsic2VsZiIse2NsYXNzTmFtZToibnVtYmVyIiwKYmVnaW46IltcXCQlXVxcZCsifV19LG4se2NsYXNzTmFtZToibnVtYmVyIixiZWdpbjoiXFxkKyJ9LGUuUVVPVEVfU1RSSU5HX01PREVdfQp9XSxpbGxlZ2FsOi9cUy99fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgicHJvbG9nIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIG49Pntjb25zdCBlPXsKYmVnaW46L1woLyxlbmQ6L1wpLyxyZWxldmFuY2U6MH0sYT17YmVnaW46L1xbLyxlbmQ6L1xdL30scz17Y2xhc3NOYW1lOiJjb21tZW50IiwKYmVnaW46LyUvLGVuZDovJC8sY29udGFpbnM6W24uUEhSQVNBTF9XT1JEU19NT0RFXX0saT17Y2xhc3NOYW1lOiJzdHJpbmciLApiZWdpbjovYC8sZW5kOi9gLyxjb250YWluczpbbi5CQUNLU0xBU0hfRVNDQVBFXX0sZz1be2JlZ2luOi9bYS16XVtBLVphLXowLTlfXSovLApyZWxldmFuY2U6MH0se2NsYXNzTmFtZToic3ltYm9sIix2YXJpYW50czpbe2JlZ2luOi9bQS1aXVthLXpBLVowLTlfXSovfSx7CmJlZ2luOi9fW0EtWmEtejAtOV9dKi99XSxyZWxldmFuY2U6MH0sZSx7YmVnaW46LzotLwp9LGEscyxuLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLG4uUVVPVEVfU1RSSU5HX01PREUsbi5BUE9TX1NUUklOR19NT0RFLGksewpjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LzAnKFxcJ3wuKS99LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LzAnXFxzLwp9LG4uQ19OVU1CRVJfTU9ERV07cmV0dXJuIGUuY29udGFpbnM9ZyxhLmNvbnRhaW5zPWcse25hbWU6IlByb2xvZyIsCmNvbnRhaW5zOmcuY29uY2F0KFt7YmVnaW46L1wuJC99XSl9fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgibmltIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9Pih7bmFtZToiTmltIiwKYWxpYXNlczpbIm5pbSJdLGtleXdvcmRzOnsKa2V5d29yZDoiYWRkciBhbmQgYXMgYXNtIGJpbmQgYmxvY2sgYnJlYWsgY2FzZSBjYXN0IGNvbnN0IGNvbnRpbnVlIGNvbnZlcnRlciBkaXNjYXJkIGRpc3RpbmN0IGRpdiBkbyBlbGlmIGVsc2UgZW5kIGVudW0gZXhjZXB0IGV4cG9ydCBmaW5hbGx5IGZvciBmcm9tIGZ1bmMgZ2VuZXJpYyBpZiBpbXBvcnQgaW4gaW5jbHVkZSBpbnRlcmZhY2UgaXMgaXNub3QgaXRlcmF0b3IgbGV0IG1hY3JvIG1ldGhvZCBtaXhpbiBtb2QgbmlsIG5vdCBub3RpbiBvYmplY3Qgb2Ygb3Igb3V0IHByb2MgcHRyIHJhaXNlIHJlZiByZXR1cm4gc2hsIHNociBzdGF0aWMgdGVtcGxhdGUgdHJ5IHR1cGxlIHR5cGUgdXNpbmcgdmFyIHdoZW4gd2hpbGUgd2l0aCB3aXRob3V0IHhvciB5aWVsZCIsCmxpdGVyYWw6InNoYXJlZCBndWFyZGVkIHN0ZGluIHN0ZG91dCBzdGRlcnIgcmVzdWx0IHRydWUgZmFsc2UiLApidWlsdF9pbjoiaW50IGludDggaW50MTYgaW50MzIgaW50NjQgdWludCB1aW50OCB1aW50MTYgdWludDMyIHVpbnQ2NCBmbG9hdCBmbG9hdDMyIGZsb2F0NjQgYm9vbCBjaGFyIHN0cmluZyBjc3RyaW5nIHBvaW50ZXIgZXhwciBzdG10IHZvaWQgYXV0byBhbnkgcmFuZ2UgYXJyYXkgb3BlbmFycmF5IHZhcmFyZ3Mgc2VxIHNldCBjbG9uZyBjdWxvbmcgY2NoYXIgY3NjaGFyIGNzaG9ydCBjaW50IGNzaXplIGNsb25nbG9uZyBjZmxvYXQgY2RvdWJsZSBjbG9uZ2RvdWJsZSBjdWNoYXIgY3VzaG9ydCBjdWludCBjdWxvbmdsb25nIGNzdHJpbmdhcnJheSBzZW1pc3RhdGljIgp9LGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjovXHtcLi8sZW5kOi9cLlx9LyxyZWxldmFuY2U6MTB9LHsKY2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi9bYS16QS1aXVx3KiIvLGVuZDovIi8sY29udGFpbnM6W3tiZWdpbjovIiIvfV19LHsKY2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOi8oW2EtekEtWl1cdyopPyIiIi8sZW5kOi8iIiIvfSxlLlFVT1RFX1NUUklOR19NT0RFLHsKY2xhc3NOYW1lOiJ0eXBlIixiZWdpbjovXGJbQS1aXVx3K1xiLyxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToibnVtYmVyIiwKcmVsZXZhbmNlOjAsdmFyaWFudHM6W3sKYmVnaW46L1xiKDBbeFhdWzAtOWEtZkEtRl1bXzAtOWEtZkEtRl0qKSgnP1tpSXVVXSg4fDE2fDMyfDY0KSk/L30sewpiZWdpbjovXGIoMG9bMC03XVtfMC03XSopKCc/W2lJdVVmRl0oOHwxNnwzMnw2NCkpPy99LHsKYmVnaW46L1xiKDAoYnxCKVswMV1bXzAxXSopKCc/W2lJdVVmRl0oOHwxNnwzMnw2NCkpPy99LHsKYmVnaW46L1xiKFxkW19cZF0qKSgnP1tpSXVVZkZdKDh8MTZ8MzJ8NjQpKT8vfV19LGUuSEFTSF9DT01NRU5UX01PREVdfSl9KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoIm5peCIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57Y29uc3Qgbj17CmtleXdvcmQ6InJlYyB3aXRoIGxldCBpbiBpbmhlcml0IGFzc2VydCBpZiBlbHNlIHRoZW4iLApsaXRlcmFsOiJ0cnVlIGZhbHNlIG9yIGFuZCBudWxsIiwKYnVpbHRfaW46ImltcG9ydCBhYm9ydCBiYXNlTmFtZU9mIGRpck9mIGlzTnVsbCBidWlsdGlucyBtYXAgcmVtb3ZlQXR0cnMgdGhyb3cgdG9TdHJpbmcgZGVyaXZhdGlvbiIKfSxpPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovXCRcey8sZW5kOi9cfS8sa2V5d29yZHM6bn0scz17Y2xhc3NOYW1lOiJzdHJpbmciLApjb250YWluczpbaV0sdmFyaWFudHM6W3tiZWdpbjoiJyciLGVuZDoiJycifSx7YmVnaW46JyInLGVuZDonIid9XQp9LHQ9W2UuTlVNQkVSX01PREUsZS5IQVNIX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHMsewpiZWdpbjovW2EtekEtWjAtOS1fXSsoXHMqPSkvLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7CmNsYXNzTmFtZToiYXR0ciIsYmVnaW46L1xTKy99XX1dO3JldHVybiBpLmNvbnRhaW5zPXQse25hbWU6Ik5peCIsCmFsaWFzZXM6WyJuaXhvcyJdLGtleXdvcmRzOm4sY29udGFpbnM6dH19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJtYXRsYWIiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e3ZhciBhPXtyZWxldmFuY2U6MCwKY29udGFpbnM6W3tiZWdpbjoiKCd8XFwuJykrIn1dfTtyZXR1cm57bmFtZToiTWF0bGFiIixrZXl3b3Jkczp7CmtleXdvcmQ6ImFyZ3VtZW50cyBicmVhayBjYXNlIGNhdGNoIGNsYXNzZGVmIGNvbnRpbnVlIGVsc2UgZWxzZWlmIGVuZCBlbnVtZXJhdGlvbiBldmVudHMgZm9yIGZ1bmN0aW9uIGdsb2JhbCBpZiBtZXRob2RzIG90aGVyd2lzZSBwYXJmb3IgcGVyc2lzdGVudCBwcm9wZXJ0aWVzIHJldHVybiBzcG1kIHN3aXRjaCB0cnkgd2hpbGUiLApidWlsdF9pbjoic2luIHNpbmQgc2luaCBhc2luIGFzaW5kIGFzaW5oIGNvcyBjb3NkIGNvc2ggYWNvcyBhY29zZCBhY29zaCB0YW4gdGFuZCB0YW5oIGF0YW4gYXRhbmQgYXRhbjIgYXRhbmggc2VjIHNlY2Qgc2VjaCBhc2VjIGFzZWNkIGFzZWNoIGNzYyBjc2NkIGNzY2ggYWNzYyBhY3NjZCBhY3NjaCBjb3QgY290ZCBjb3RoIGFjb3QgYWNvdGQgYWNvdGggaHlwb3QgZXhwIGV4cG0xIGxvZyBsb2cxcCBsb2cxMCBsb2cyIHBvdzIgcmVhbHBvdyByZWFsbG9nIHJlYWxzcXJ0IHNxcnQgbnRocm9vdCBuZXh0cG93MiBhYnMgYW5nbGUgY29tcGxleCBjb25qIGltYWcgcmVhbCB1bndyYXAgaXNyZWFsIGNwbHhwYWlyIGZpeCBmbG9vciBjZWlsIHJvdW5kIG1vZCByZW0gc2lnbiBhaXJ5IGJlc3NlbGogYmVzc2VseSBiZXNzZWxoIGJlc3NlbGkgYmVzc2VsayBiZXRhIGJldGFpbmMgYmV0YWxuIGVsbGlwaiBlbGxpcGtlIGVyZiBlcmZjIGVyZmN4IGVyZmludiBleHBpbnQgZ2FtbWEgZ2FtbWFpbmMgZ2FtbWFsbiBwc2kgbGVnZW5kcmUgY3Jvc3MgZG90IGZhY3RvciBpc3ByaW1lIHByaW1lcyBnY2QgbGNtIHJhdCByYXRzIHBlcm1zIG5jaG9vc2VrIGZhY3RvcmlhbCBjYXJ0MnNwaCBjYXJ0MnBvbCBwb2wyY2FydCBzcGgyY2FydCBoc3YycmdiIHJnYjJoc3YgemVyb3Mgb25lcyBleWUgcmVwbWF0IHJhbmQgcmFuZG4gbGluc3BhY2UgbG9nc3BhY2UgZnJlcXNwYWNlIG1lc2hncmlkIGFjY3VtYXJyYXkgc2l6ZSBsZW5ndGggbmRpbXMgbnVtZWwgZGlzcCBpc2VtcHR5IGlzZXF1YWwgaXNlcXVhbHdpdGhlcXVhbG5hbnMgY2F0IHJlc2hhcGUgZGlhZyBibGtkaWFnIHRyaWwgdHJpdSBmbGlwbHIgZmxpcHVkIGZsaXBkaW0gcm90OTAgZmluZCBzdWIyaW5kIGluZDJzdWIgYnN4ZnVuIG5kZ3JpZCBwZXJtdXRlIGlwZXJtdXRlIHNoaWZ0ZGltIGNpcmNzaGlmdCBzcXVlZXplIGlzc2NhbGFyIGlzdmVjdG9yIGFucyBlcHMgcmVhbG1heCByZWFsbWluIHBpIGl8MCBpbmYgbmFuIGlzbmFuIGlzaW5mIGlzZmluaXRlIGp8MCB3aHkgY29tcGFuIGdhbGxlcnkgaGFkYW1hcmQgaGFua2VsIGhpbGIgaW52aGlsYiBtYWdpYyBwYXNjYWwgcm9zc2VyIHRvZXBsaXR6IHZhbmRlciB3aWxraW5zb24gbWF4IG1pbiBuYW5tYXggbmFubWluIG1lYW4gbmFubWVhbiB0eXBlIHRhYmxlIHJlYWR0YWJsZSB3cml0ZXRhYmxlIHNvcnRyb3dzIHNvcnQgZmlndXJlIHBsb3QgcGxvdDMgc2NhdHRlciBzY2F0dGVyMyBjZWxsZnVuIGxlZ2VuZCBpbnRlcnNlY3QgaXNtZW1iZXIgcHJvY3J1c3RlcyBob2xkIG51bTJjZWxsICIKfSxpbGxlZ2FsOicoLy98InwjfC9cXCp8XFxzKy9cXHcrKScsY29udGFpbnM6W3tjbGFzc05hbWU6ImZ1bmN0aW9uIiwKYmVnaW5LZXl3b3JkczoiZnVuY3Rpb24iLGVuZDoiJCIsY29udGFpbnM6W2UuVU5ERVJTQ09SRV9USVRMRV9NT0RFLHsKY2xhc3NOYW1lOiJwYXJhbXMiLHZhcmlhbnRzOlt7YmVnaW46IlxcKCIsZW5kOiJcXCkifSx7YmVnaW46IlxcWyIsZW5kOiJcXF0ifV19XQp9LHtjbGFzc05hbWU6ImJ1aWx0X2luIixiZWdpbjovdHJ1ZXxmYWxzZS8scmVsZXZhbmNlOjAsc3RhcnRzOmF9LHsKYmVnaW46IlthLXpBLVpdW2EtekEtWl8wLTldKignfFxcLicpKyIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6Im51bWJlciIsCmJlZ2luOmUuQ19OVU1CRVJfUkUscmVsZXZhbmNlOjAsc3RhcnRzOmF9LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IiciLGVuZDoiJyIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUse2JlZ2luOiInJyJ9XX0se2JlZ2luOi9cXXxcfXxcKS8scmVsZXZhbmNlOjAsCnN0YXJ0czphfSx7Y2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOiciJyxlbmQ6JyInLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsewpiZWdpbjonIiInfV0sc3RhcnRzOmEKfSxlLkNPTU1FTlQoIl5cXHMqJVxce1xccyokIiwiXlxccyolXFx9XFxzKiQiKSxlLkNPTU1FTlQoIiUiLCIkIildfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImRqYW5nbyIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57Y29uc3QgdD17CmJlZ2luOi9cfFtBLVphLXpdKzo/LyxrZXl3b3Jkczp7Cm5hbWU6InRydW5jYXRld29yZHMgcmVtb3ZldGFncyBsaW5lYnJlYWtzYnIgeWVzbm8gZ2V0X2RpZ2l0IHRpbWVzaW5jZSByYW5kb20gc3RyaXB0YWdzIGZpbGVzaXplZm9ybWF0IGVzY2FwZSBsaW5lYnJlYWtzIGxlbmd0aF9pcyBsanVzdCByanVzdCBjdXQgdXJsaXplIGZpeF9hbXBlcnNhbmRzIHRpdGxlIGZsb2F0Zm9ybWF0IGNhcGZpcnN0IHBwcmludCBkaXZpc2libGVieSBhZGQgbWFrZV9saXN0IHVub3JkZXJlZF9saXN0IHVybGVuY29kZSB0aW1ldW50aWwgdXJsaXpldHJ1bmMgd29yZGNvdW50IHN0cmluZ2Zvcm1hdCBsaW5lbnVtYmVycyBzbGljZSBkYXRlIGRpY3Rzb3J0IGRpY3Rzb3J0cmV2ZXJzZWQgZGVmYXVsdF9pZl9ub25lIHBsdXJhbGl6ZSBsb3dlciBqb2luIGNlbnRlciBkZWZhdWx0IHRydW5jYXRld29yZHNfaHRtbCB1cHBlciBsZW5ndGggcGhvbmUybnVtZXJpYyB3b3Jkd3JhcCB0aW1lIGFkZHNsYXNoZXMgc2x1Z2lmeSBmaXJzdCBlc2NhcGVqcyBmb3JjZV9lc2NhcGUgaXJpZW5jb2RlIGxhc3Qgc2FmZSBzYWZlc2VxIHRydW5jYXRlY2hhcnMgbG9jYWxpemUgdW5sb2NhbGl6ZSBsb2NhbHRpbWUgdXRjIHRpbWV6b25lIgp9LGNvbnRhaW5zOltlLlFVT1RFX1NUUklOR19NT0RFLGUuQVBPU19TVFJJTkdfTU9ERV19O3JldHVybntuYW1lOiJEamFuZ28iLAphbGlhc2VzOlsiamluamEiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLHN1Ykxhbmd1YWdlOiJ4bWwiLApjb250YWluczpbZS5DT01NRU5UKC9ceyVccypjb21tZW50XHMqJVx9LywvXHslXHMqZW5kY29tbWVudFxzKiVcfS8pLGUuQ09NTUVOVCgvXHsjLywvI1x9LyksewpjbGFzc05hbWU6InRlbXBsYXRlLXRhZyIsYmVnaW46L1x7JS8sZW5kOi8lXH0vLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJuYW1lIiwKYmVnaW46L1x3Ky8sa2V5d29yZHM6ewpuYW1lOiJjb21tZW50IGVuZGNvbW1lbnQgbG9hZCB0ZW1wbGF0ZXRhZyBpZmNoYW5nZWQgZW5kaWZjaGFuZ2VkIGlmIGVuZGlmIGZpcnN0b2YgZm9yIGVuZGZvciBpZm5vdGVxdWFsIGVuZGlmbm90ZXF1YWwgd2lkdGhyYXRpbyBleHRlbmRzIGluY2x1ZGUgc3BhY2VsZXNzIGVuZHNwYWNlbGVzcyByZWdyb3VwIGlmZXF1YWwgZW5kaWZlcXVhbCBzc2kgbm93IHdpdGggY3ljbGUgdXJsIGZpbHRlciBlbmRmaWx0ZXIgZGVidWcgYmxvY2sgZW5kYmxvY2sgZWxzZSBhdXRvZXNjYXBlIGVuZGF1dG9lc2NhcGUgY3NyZl90b2tlbiBlbXB0eSBlbGlmIGVuZHdpdGggc3RhdGljIHRyYW5zIGJsb2NrdHJhbnMgZW5kYmxvY2t0cmFucyBnZXRfc3RhdGljX3ByZWZpeCBnZXRfbWVkaWFfcHJlZml4IHBsdXJhbCBnZXRfY3VycmVudF9sYW5ndWFnZSBsYW5ndWFnZSBnZXRfYXZhaWxhYmxlX2xhbmd1YWdlcyBnZXRfY3VycmVudF9sYW5ndWFnZV9iaWRpIGdldF9sYW5ndWFnZV9pbmZvIGdldF9sYW5ndWFnZV9pbmZvX2xpc3QgbG9jYWxpemUgZW5kbG9jYWxpemUgbG9jYWx0aW1lIGVuZGxvY2FsdGltZSB0aW1lem9uZSBlbmR0aW1lem9uZSBnZXRfY3VycmVudF90aW1lem9uZSB2ZXJiYXRpbSIKfSxzdGFydHM6e2VuZHNXaXRoUGFyZW50OiEwLGtleXdvcmRzOiJpbiBieSBhcyIsY29udGFpbnM6W3RdLHJlbGV2YW5jZTowfX1dfSx7CmNsYXNzTmFtZToidGVtcGxhdGUtdmFyaWFibGUiLGJlZ2luOi9ce1x7LyxlbmQ6L1x9XH0vLGNvbnRhaW5zOlt0XX1dfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInNjYWxhIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9Pntjb25zdCBuPXsKY2xhc3NOYW1lOiJzdWJzdCIsdmFyaWFudHM6W3tiZWdpbjoiXFwkW0EtWmEtejAtOV9dKyJ9LHtiZWdpbjovXCRcey8sZW5kOi9cfS99XQp9LGE9e2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOiciJyxlbmQ6JyInLGlsbGVnYWw6IlxcbiIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfSx7YmVnaW46JyIiIicsZW5kOiciIiInLHJlbGV2YW5jZToxMH0sewpiZWdpbjonW2Etel0rIicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsbl19LHsKY2xhc3NOYW1lOiJzdHJpbmciLGJlZ2luOidbYS16XSsiIiInLGVuZDonIiIiJyxjb250YWluczpbbl0scmVsZXZhbmNlOjEwfV19LHM9ewpjbGFzc05hbWU6InR5cGUiLGJlZ2luOiJcXGJbQS1aXVtBLVphLXowLTlfXSoiLHJlbGV2YW5jZTowfSx0PXsKY2xhc3NOYW1lOiJ0aXRsZSIsCmJlZ2luOi9bXjAtOVxuXHQgIicoKSwuYHt9XFtcXTo7XVteXG5cdCAiJygpLC5ge31cW1xdOjtdK3xbXjAtOVxuXHQgIicoKSwuYHt9XFtcXTo7PV0vLApyZWxldmFuY2U6MH0saT17Y2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiY2xhc3Mgb2JqZWN0IHRyYWl0IHR5cGUiLAplbmQ6L1s6PXtcW1xuO10vLGV4Y2x1ZGVFbmQ6ITAsCmNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERSx7CmJlZ2luS2V5d29yZHM6ImV4dGVuZHMgd2l0aCIscmVsZXZhbmNlOjEwfSx7YmVnaW46L1xbLyxlbmQ6L1xdLyxleGNsdWRlQmVnaW46ITAsCmV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjAsY29udGFpbnM6W3NdfSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOi9cKC8sZW5kOi9cKS8sCmV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltzXX0sdF19LGw9ewpjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJkZWYiLGVuZDovWzo9e1xbKFxuO10vLGV4Y2x1ZGVFbmQ6ITAsCmNvbnRhaW5zOlt0XX07cmV0dXJue25hbWU6IlNjYWxhIixrZXl3b3Jkczp7bGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIiwKa2V5d29yZDoidHlwZSB5aWVsZCBsYXp5IG92ZXJyaWRlIGRlZiB3aXRoIHZhbCB2YXIgc2VhbGVkIGFic3RyYWN0IHByaXZhdGUgdHJhaXQgb2JqZWN0IGlmIGZvclNvbWUgZm9yIHdoaWxlIHRocm93IGZpbmFsbHkgcHJvdGVjdGVkIGV4dGVuZHMgaW1wb3J0IGZpbmFsIHJldHVybiBlbHNlIGJyZWFrIG5ldyBjYXRjaCBzdXBlciBjbGFzcyBjYXNlIHBhY2thZ2UgZGVmYXVsdCB0cnkgdGhpcyBtYXRjaCBjb250aW51ZSB0aHJvd3MgaW1wbGljaXQiCn0sY29udGFpbnM6W2UuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGEse2NsYXNzTmFtZToic3ltYm9sIiwKYmVnaW46IidcXHdbXFx3XFxkX10qKD8hJykifSxzLGwsaSxlLkNfTlVNQkVSX01PREUse2NsYXNzTmFtZToibWV0YSIsCmJlZ2luOiJAW0EtWmEtel0rIn1dfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInBsYWludGV4dCIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiB0PT4oewpuYW1lOiJQbGFpbiB0ZXh0IixhbGlhc2VzOlsidGV4dCIsInR4dCJdLGRpc2FibGVBdXRvZGV0ZWN0OiEwfSl9KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImtvdGxpbiIsKCgpPT57InVzZSBzdHJpY3QiCjt2YXIgZT0iXFwuKFswLTldKF8qWzAtOV0pKikiLG49IlswLTlhLWZBLUZdKF8qWzAtOWEtZkEtRl0pKiIsYT17CmNsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbewpiZWdpbjpgKFxcYihbMC05XShfKlswLTldKSopKCgke2V9KXxcXC4pP3woJHtlfSkpW2VFXVsrLV0/KFswLTldKF8qWzAtOV0pKilbZkZkRF0/XFxiYAp9LHtiZWdpbjpgXFxiKFswLTldKF8qWzAtOV0pKikoKCR7ZX0pW2ZGZERdP1xcYnxcXC4oW2ZGZERdXFxiKT8pYH0sewpiZWdpbjpgKCR7ZX0pW2ZGZERdP1xcYmB9LHtiZWdpbjoiXFxiKFswLTldKF8qWzAtOV0pKilbZkZkRF1cXGIifSx7CmJlZ2luOmBcXGIwW3hYXSgoJHtufSlcXC4/fCgke259KT9cXC4oJHtufSkpW3BQXVsrLV0/KFswLTldKF8qWzAtOV0pKilbZkZkRF0/XFxiYAp9LHtiZWdpbjoiXFxiKDB8WzEtOV0oXypbMC05XSkqKVtsTF0/XFxiIn0se2JlZ2luOmBcXGIwW3hYXSgke259KVtsTF0/XFxiYH0sewpiZWdpbjoiXFxiMChfKlswLTddKSpbbExdP1xcYiJ9LHtiZWdpbjoiXFxiMFtiQl1bMDFdKF8qWzAxXSkqW2xMXT9cXGIifV0sCnJlbGV2YW5jZTowfTtyZXR1cm4gZT0+e2NvbnN0IG49ewprZXl3b3JkOiJhYnN0cmFjdCBhcyB2YWwgdmFyIHZhcmFyZyBnZXQgc2V0IGNsYXNzIG9iamVjdCBvcGVuIHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyBub2lubGluZSBjcm9zc2lubGluZSBkeW5hbWljIGZpbmFsIGVudW0gaWYgZWxzZSBkbyB3aGlsZSBmb3Igd2hlbiB0aHJvdyB0cnkgY2F0Y2ggZmluYWxseSBpbXBvcnQgcGFja2FnZSBpcyBpbiBmdW4gb3ZlcnJpZGUgY29tcGFuaW9uIHJlaWZpZWQgaW5saW5lIGxhdGVpbml0IGluaXQgaW50ZXJmYWNlIGFubm90YXRpb24gZGF0YSBzZWFsZWQgaW50ZXJuYWwgaW5maXggb3BlcmF0b3Igb3V0IGJ5IGNvbnN0cnVjdG9yIHN1cGVyIHRhaWxyZWMgd2hlcmUgY29uc3QgaW5uZXIgc3VzcGVuZCB0eXBlYWxpYXMgZXh0ZXJuYWwgZXhwZWN0IGFjdHVhbCIsCmJ1aWx0X2luOiJCeXRlIFNob3J0IENoYXIgSW50IExvbmcgQm9vbGVhbiBGbG9hdCBEb3VibGUgVm9pZCBVbml0IE5vdGhpbmciLApsaXRlcmFsOiJ0cnVlIGZhbHNlIG51bGwifSxpPXtjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46ZS5VTkRFUlNDT1JFX0lERU5UX1JFKyJAIgp9LHM9e2NsYXNzTmFtZToic3Vic3QiLGJlZ2luOi9cJFx7LyxlbmQ6L1x9Lyxjb250YWluczpbZS5DX05VTUJFUl9NT0RFXX0sdD17CmNsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOiJcXCQiK2UuVU5ERVJTQ09SRV9JREVOVF9SRX0scj17Y2xhc3NOYW1lOiJzdHJpbmciLAp2YXJpYW50czpbe2JlZ2luOiciIiInLGVuZDonIiIiKD89W14iXSknLGNvbnRhaW5zOlt0LHNdfSx7YmVnaW46IiciLGVuZDoiJyIsCmlsbGVnYWw6L1xuLyxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFXX0se2JlZ2luOiciJyxlbmQ6JyInLGlsbGVnYWw6L1xuLywKY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSx0LHNdfV19O3MuY29udGFpbnMucHVzaChyKTtjb25zdCBsPXsKY2xhc3NOYW1lOiJtZXRhIiwKYmVnaW46IkAoPzpmaWxlfHByb3BlcnR5fGZpZWxkfGdldHxzZXR8cmVjZWl2ZXJ8cGFyYW18c2V0cGFyYW18ZGVsZWdhdGUpXFxzKjooPzpcXHMqIitlLlVOREVSU0NPUkVfSURFTlRfUkUrIik/Igp9LGM9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IkAiK2UuVU5ERVJTQ09SRV9JREVOVF9SRSxjb250YWluczpbe2JlZ2luOi9cKC8sCmVuZDovXCkvLGNvbnRhaW5zOltlLmluaGVyaXQocix7Y2xhc3NOYW1lOiJtZXRhLXN0cmluZyJ9KV19XQp9LG89YSxiPWUuQ09NTUVOVCgiL1xcKiIsIlxcKi8iLHtjb250YWluczpbZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19KSxFPXsKdmFyaWFudHM6W3tjbGFzc05hbWU6InR5cGUiLGJlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRX0se2JlZ2luOi9cKC8sZW5kOi9cKS8sCmNvbnRhaW5zOltdfV19LGQ9RTtyZXR1cm4gZC52YXJpYW50c1sxXS5jb250YWlucz1bRV0sRS52YXJpYW50c1sxXS5jb250YWlucz1bZF0sCntuYW1lOiJLb3RsaW4iLGFsaWFzZXM6WyJrdCJdLGtleXdvcmRzOm4sY29udGFpbnM6W2UuQ09NTUVOVCgiL1xcKlxcKiIsIlxcKi8iLHsKcmVsZXZhbmNlOjAsY29udGFpbnM6W3tjbGFzc05hbWU6ImRvY3RhZyIsYmVnaW46IkBbQS1aYS16XSsifV0KfSksZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGIse2NsYXNzTmFtZToia2V5d29yZCIsCmJlZ2luOi9cYihicmVha3xjb250aW51ZXxyZXR1cm58dGhpcylcYi8sc3RhcnRzOntjb250YWluczpbe2NsYXNzTmFtZToic3ltYm9sIiwKYmVnaW46L0BcdysvfV19fSxpLGwsYyx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZnVuIixlbmQ6IlsoXXwkIiwKcmV0dXJuQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpuLHJlbGV2YW5jZTo1LGNvbnRhaW5zOlt7CmJlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRSsiXFxzKlxcKCIscmV0dXJuQmVnaW46ITAscmVsZXZhbmNlOjAsCmNvbnRhaW5zOltlLlVOREVSU0NPUkVfVElUTEVfTU9ERV19LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOi88LyxlbmQ6Lz4vLAprZXl3b3JkczoicmVpZmllZCIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLywKZW5kc1BhcmVudDohMCxrZXl3b3JkczpuLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7YmVnaW46LzovLGVuZDovWz0sXC9dLywKZW5kc1dpdGhQYXJlbnQ6ITAsY29udGFpbnM6W0UsZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGJdLHJlbGV2YW5jZTowCn0sZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGIsbCxjLHIsZS5DX05VTUJFUl9NT0RFXX0sYl19LHtjbGFzc05hbWU6ImNsYXNzIiwKYmVnaW5LZXl3b3JkczoiY2xhc3MgaW50ZXJmYWNlIHRyYWl0IixlbmQ6L1s6XHsoXXwkLyxleGNsdWRlRW5kOiEwLAppbGxlZ2FsOiJleHRlbmRzIGltcGxlbWVudHMiLGNvbnRhaW5zOlt7CmJlZ2luS2V5d29yZHM6InB1YmxpYyBwcm90ZWN0ZWQgaW50ZXJuYWwgcHJpdmF0ZSBjb25zdHJ1Y3RvciIKfSxlLlVOREVSU0NPUkVfVElUTEVfTU9ERSx7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjovPC8sZW5kOi8+LyxleGNsdWRlQmVnaW46ITAsCmV4Y2x1ZGVFbmQ6ITAscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOi9bLDpdXHMqLyxlbmQ6L1s8XCgsXXwkLywKZXhjbHVkZUJlZ2luOiEwLHJldHVybkVuZDohMH0sbCxjXX0scix7Y2xhc3NOYW1lOiJtZXRhIixiZWdpbjoiXiMhL3Vzci9iaW4vZW52IiwKZW5kOiIkIixpbGxlZ2FsOiJcbiJ9LG9dfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInBocC10ZW1wbGF0ZSIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBuPT4oewpuYW1lOiJQSFAgdGVtcGxhdGUiLHN1Ykxhbmd1YWdlOiJ4bWwiLGNvbnRhaW5zOlt7YmVnaW46LzxcPyhwaHB8PSk/LyxlbmQ6L1w/Pi8sCnN1Ykxhbmd1YWdlOiJwaHAiLGNvbnRhaW5zOlt7YmVnaW46Ii9cXCoiLGVuZDoiXFwqLyIsc2tpcDohMH0se2JlZ2luOidiIicsCmVuZDonIicsc2tpcDohMH0se2JlZ2luOiJiJyIsZW5kOiInIixza2lwOiEwfSxuLmluaGVyaXQobi5BUE9TX1NUUklOR19NT0RFLHsKaWxsZWdhbDpudWxsLGNsYXNzTmFtZTpudWxsLGNvbnRhaW5zOm51bGwsc2tpcDohMAp9KSxuLmluaGVyaXQobi5RVU9URV9TVFJJTkdfTU9ERSx7aWxsZWdhbDpudWxsLGNsYXNzTmFtZTpudWxsLGNvbnRhaW5zOm51bGwsCnNraXA6ITB9KV19XX0pfSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJpbmkiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGUpewpyZXR1cm4gZT8ic3RyaW5nIj09dHlwZW9mIGU/ZTplLnNvdXJjZTpudWxsfWZ1bmN0aW9uIG4oLi4ubil7CnJldHVybiBuLm1hcCgobj0+ZShuKSkpLmpvaW4oIiIpfXJldHVybiBzPT57Y29uc3QgYT17Y2xhc3NOYW1lOiJudW1iZXIiLApyZWxldmFuY2U6MCx2YXJpYW50czpbe2JlZ2luOi8oWystXSspP1tcZF0rX1tcZF9dKy99LHtiZWdpbjpzLk5VTUJFUl9SRX1dCn0saT1zLkNPTU1FTlQoKTtpLnZhcmlhbnRzPVt7YmVnaW46LzsvLGVuZDovJC99LHtiZWdpbjovIy8sZW5kOi8kL31dO2NvbnN0IHQ9ewpjbGFzc05hbWU6InZhcmlhYmxlIix2YXJpYW50czpbe2JlZ2luOi9cJFtcd1xkIl1bXHdcZF9dKi99LHtiZWdpbjovXCRceyguKj8pXH0vCn1dfSxyPXtjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOi9cYm9ufG9mZnx0cnVlfGZhbHNlfHllc3xub1xiL30sbD17CmNsYXNzTmFtZToic3RyaW5nIixjb250YWluczpbcy5CQUNLU0xBU0hfRVNDQVBFXSx2YXJpYW50czpbe2JlZ2luOiInJyciLAplbmQ6IicnJyIscmVsZXZhbmNlOjEwfSx7YmVnaW46JyIiIicsZW5kOiciIiInLHJlbGV2YW5jZToxMH0se2JlZ2luOiciJyxlbmQ6JyInCn0se2JlZ2luOiInIixlbmQ6IicifV19LGM9e2JlZ2luOi9cWy8sZW5kOi9cXS8sY29udGFpbnM6W2kscix0LGwsYSwic2VsZiJdLApyZWxldmFuY2U6MAp9LGc9IigiK1svW0EtWmEtejAtOV8tXSsvLC8iKFxcInxbXiJdKSoiLywvJ1teJ10qJy9dLm1hcCgobj0+ZShuKSkpLmpvaW4oInwiKSsiKSIKO3JldHVybntuYW1lOiJUT01MLCBhbHNvIElOSSIsYWxpYXNlczpbInRvbWwiXSxjYXNlX2luc2Vuc2l0aXZlOiEwLGlsbGVnYWw6L1xTLywKY29udGFpbnM6W2kse2NsYXNzTmFtZToic2VjdGlvbiIsYmVnaW46L1xbKy8sZW5kOi9cXSsvfSx7CmJlZ2luOm4oZywiKFxccypcXC5cXHMqIixnLCIpKiIsbigiKD89IiwvXHMqPVxzKlteI1xzXS8sIikiKSksY2xhc3NOYW1lOiJhdHRyIiwKc3RhcnRzOntlbmQ6LyQvLGNvbnRhaW5zOltpLGMscix0LGwsYV19fV19fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgidHlwZXNjcmlwdCIsKCgpPT57InVzZSBzdHJpY3QiCjtjb25zdCBlPSJbQS1aYS16JF9dWzAtOUEtWmEteiRfXSoiLG49WyJhcyIsImluIiwib2YiLCJpZiIsImZvciIsIndoaWxlIiwiZmluYWxseSIsInZhciIsIm5ldyIsImZ1bmN0aW9uIiwiZG8iLCJyZXR1cm4iLCJ2b2lkIiwiZWxzZSIsImJyZWFrIiwiY2F0Y2giLCJpbnN0YW5jZW9mIiwid2l0aCIsInRocm93IiwiY2FzZSIsImRlZmF1bHQiLCJ0cnkiLCJzd2l0Y2giLCJjb250aW51ZSIsInR5cGVvZiIsImRlbGV0ZSIsImxldCIsInlpZWxkIiwiY29uc3QiLCJjbGFzcyIsImRlYnVnZ2VyIiwiYXN5bmMiLCJhd2FpdCIsInN0YXRpYyIsImltcG9ydCIsImZyb20iLCJleHBvcnQiLCJleHRlbmRzIl0sYT1bInRydWUiLCJmYWxzZSIsIm51bGwiLCJ1bmRlZmluZWQiLCJOYU4iLCJJbmZpbml0eSJdLHM9W10uY29uY2F0KFsic2V0SW50ZXJ2YWwiLCJzZXRUaW1lb3V0IiwiY2xlYXJJbnRlcnZhbCIsImNsZWFyVGltZW91dCIsInJlcXVpcmUiLCJleHBvcnRzIiwiZXZhbCIsImlzRmluaXRlIiwiaXNOYU4iLCJwYXJzZUZsb2F0IiwicGFyc2VJbnQiLCJkZWNvZGVVUkkiLCJkZWNvZGVVUklDb21wb25lbnQiLCJlbmNvZGVVUkkiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlc2NhcGUiLCJ1bmVzY2FwZSJdLFsiYXJndW1lbnRzIiwidGhpcyIsInN1cGVyIiwiY29uc29sZSIsIndpbmRvdyIsImRvY3VtZW50IiwibG9jYWxTdG9yYWdlIiwibW9kdWxlIiwiZ2xvYmFsIl0sWyJJbnRsIiwiRGF0YVZpZXciLCJOdW1iZXIiLCJNYXRoIiwiRGF0ZSIsIlN0cmluZyIsIlJlZ0V4cCIsIk9iamVjdCIsIkZ1bmN0aW9uIiwiQm9vbGVhbiIsIkVycm9yIiwiU3ltYm9sIiwiU2V0IiwiTWFwIiwiV2Vha1NldCIsIldlYWtNYXAiLCJQcm94eSIsIlJlZmxlY3QiLCJKU09OIiwiUHJvbWlzZSIsIkZsb2F0NjRBcnJheSIsIkludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiSW50OEFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIkZsb2F0MzJBcnJheSIsIkFycmF5IiwiVWludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiQXJyYXlCdWZmZXIiXSxbIkV2YWxFcnJvciIsIkludGVybmFsRXJyb3IiLCJSYW5nZUVycm9yIiwiUmVmZXJlbmNlRXJyb3IiLCJTeW50YXhFcnJvciIsIlR5cGVFcnJvciIsIlVSSUVycm9yIl0pCjtmdW5jdGlvbiB0KGUpe3JldHVybiBpKCIoPz0iLGUsIikiKX1mdW5jdGlvbiBpKC4uLmUpe3JldHVybiBlLm1hcCgoZT0+ewpyZXR1cm4obj1lKT8ic3RyaW5nIj09dHlwZW9mIG4/bjpuLnNvdXJjZTpudWxsO3ZhciBufSkpLmpvaW4oIiIpfXJldHVybiByPT57CmNvbnN0IGM9eyRwYXR0ZXJuOmUsCmtleXdvcmQ6bi5jb25jYXQoWyJ0eXBlIiwibmFtZXNwYWNlIiwidHlwZWRlZiIsImludGVyZmFjZSIsInB1YmxpYyIsInByaXZhdGUiLCJwcm90ZWN0ZWQiLCJpbXBsZW1lbnRzIiwiZGVjbGFyZSIsImFic3RyYWN0IiwicmVhZG9ubHkiXSkuam9pbigiICIpLApsaXRlcmFsOmEuam9pbigiICIpLApidWlsdF9pbjpzLmNvbmNhdChbImFueSIsInZvaWQiLCJudW1iZXIiLCJib29sZWFuIiwic3RyaW5nIiwib2JqZWN0IiwibmV2ZXIiLCJlbnVtIl0pLmpvaW4oIiAiKQp9LG89e2NsYXNzTmFtZToibWV0YSIsYmVnaW46IkBbQS1aYS16JF9dWzAtOUEtWmEteiRfXSoifSxsPShlLG4sYSk9PnsKY29uc3Qgcz1lLmNvbnRhaW5zLmZpbmRJbmRleCgoZT0+ZS5sYWJlbD09PW4pKQo7aWYoLTE9PT1zKXRocm93IEVycm9yKCJjYW4gbm90IGZpbmQgbW9kZSB0byByZXBsYWNlIik7ZS5jb250YWlucy5zcGxpY2UocywxLGEpCn0sYj0ocj0+e2NvbnN0IGM9ZSxvPXtiZWdpbjovPFtBLVphLXowLTlcXC5fOi1dKy8sCmVuZDovXC9bQS1aYS16MC05XFwuXzotXSs+fFwvPi8saXNUcnVseU9wZW5pbmdUYWc6KGUsbik9PnsKY29uc3QgYT1lWzBdLmxlbmd0aCtlLmluZGV4LHM9ZS5pbnB1dFthXTsiPCIhPT1zPyI+Ij09PXMmJigoKGUse2FmdGVyOm59KT0+ewpjb25zdCBhPSI8LyIrZVswXS5zbGljZSgxKTtyZXR1cm4tMSE9PWUuaW5wdXQuaW5kZXhPZihhLG4pfSkoZSx7YWZ0ZXI6YQp9KXx8bi5pZ25vcmVNYXRjaCgpKTpuLmlnbm9yZU1hdGNoKCl9fSxsPXskcGF0dGVybjplLGtleXdvcmQ6bi5qb2luKCIgIiksCmxpdGVyYWw6YS5qb2luKCIgIiksYnVpbHRfaW46cy5qb2luKCIgIikKfSxiPSJcXC4oWzAtOV0oXz9bMC05XSkqKSIsZD0iMHxbMS05XShfP1swLTldKSp8MFswLTddKls4OV1bMC05XSoiLGc9ewpjbGFzc05hbWU6Im51bWJlciIsdmFyaWFudHM6W3sKYmVnaW46YChcXGIoJHtkfSkoKCR7Yn0pfFxcLik/fCgke2J9KSlbZUVdWystXT8oWzAtOV0oXz9bMC05XSkqKVxcYmB9LHsKYmVnaW46YFxcYigke2R9KVxcYigoJHtifSlcXGJ8XFwuKT98KCR7Yn0pXFxiYH0sewpiZWdpbjoiXFxiKDB8WzEtOV0oXz9bMC05XSkqKW5cXGIifSx7CmJlZ2luOiJcXGIwW3hYXVswLTlhLWZBLUZdKF8/WzAtOWEtZkEtRl0pKm4/XFxiIn0sewpiZWdpbjoiXFxiMFtiQl1bMC0xXShfP1swLTFdKSpuP1xcYiJ9LHtiZWdpbjoiXFxiMFtvT11bMC03XShfP1swLTddKSpuP1xcYiJ9LHsKYmVnaW46IlxcYjBbMC03XStuP1xcYiJ9XSxyZWxldmFuY2U6MH0sdT17Y2xhc3NOYW1lOiJzdWJzdCIsYmVnaW46IlxcJFxceyIsCmVuZDoiXFx9IixrZXl3b3JkczpsLGNvbnRhaW5zOltdfSxFPXtiZWdpbjoiaHRtbGAiLGVuZDoiIixzdGFydHM6e2VuZDoiYCIsCnJldHVybkVuZDohMSxjb250YWluczpbci5CQUNLU0xBU0hfRVNDQVBFLHVdLHN1Ykxhbmd1YWdlOiJ4bWwifX0sbT17CmJlZ2luOiJjc3NgIixlbmQ6IiIsc3RhcnRzOntlbmQ6ImAiLHJldHVybkVuZDohMSwKY29udGFpbnM6W3IuQkFDS1NMQVNIX0VTQ0FQRSx1XSxzdWJMYW5ndWFnZToiY3NzIn19LF89e2NsYXNzTmFtZToic3RyaW5nIiwKYmVnaW46ImAiLGVuZDoiYCIsY29udGFpbnM6W3IuQkFDS1NMQVNIX0VTQ0FQRSx1XX0seT17Y2xhc3NOYW1lOiJjb21tZW50IiwKdmFyaWFudHM6W3IuQ09NTUVOVCgiL1xcKlxcKiIsIlxcKi8iLHtyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToiZG9jdGFnIiwKYmVnaW46IkBbQS1aYS16XSsiLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFx7IixlbmQ6IlxcfSIscmVsZXZhbmNlOjAKfSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46YysiKD89XFxzKigtKXwkKSIsZW5kc1BhcmVudDohMCxyZWxldmFuY2U6MH0sewpiZWdpbjovKD89W15cbl0pXHMvLHJlbGV2YW5jZTowfV19XQp9KSxyLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHIuQ19MSU5FX0NPTU1FTlRfTU9ERV0KfSxwPVtyLkFQT1NfU1RSSU5HX01PREUsci5RVU9URV9TVFJJTkdfTU9ERSxFLG0sXyxnLHIuUkVHRVhQX01PREVdCjt1LmNvbnRhaW5zPXAuY29uY2F0KHtiZWdpbjovXHsvLGVuZDovXH0vLGtleXdvcmRzOmwsY29udGFpbnM6WyJzZWxmIl0uY29uY2F0KHApCn0pO2NvbnN0IE49W10uY29uY2F0KHksdS5jb250YWlucyksZj1OLmNvbmNhdChbe2JlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6bCwKY29udGFpbnM6WyJzZWxmIl0uY29uY2F0KE4pfV0pLEE9e2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLGVuZDovXCkvLApleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCxrZXl3b3JkczpsLGNvbnRhaW5zOmZ9O3JldHVybntuYW1lOiJKYXZhc2NyaXB0IiwKYWxpYXNlczpbImpzIiwianN4IiwibWpzIiwiY2pzIl0sa2V5d29yZHM6bCxleHBvcnRzOntQQVJBTVNfQ09OVEFJTlM6Zn0sCmlsbGVnYWw6LyMoPyFbJF9BLXpdKS8sY29udGFpbnM6W3IuU0hFQkFORyh7bGFiZWw6InNoZWJhbmciLGJpbmFyeToibm9kZSIsCnJlbGV2YW5jZTo1fSkse2xhYmVsOiJ1c2Vfc3RyaWN0IixjbGFzc05hbWU6Im1ldGEiLHJlbGV2YW5jZToxMCwKYmVnaW46L15ccypbJyJddXNlIChzdHJpY3R8YXNtKVsnIl0vCn0sci5BUE9TX1NUUklOR19NT0RFLHIuUVVPVEVfU1RSSU5HX01PREUsRSxtLF8seSxnLHsKYmVnaW46aSgvW3ssXG5dXHMqLyx0KGkoLygoKFwvXC8uKiQpfChcL1wqKFwqW14vXXxbXipdKSpcKlwvKSlccyopKi8sYysiXFxzKjoiKSkpLApyZWxldmFuY2U6MCxjb250YWluczpbe2NsYXNzTmFtZToiYXR0ciIsYmVnaW46Yyt0KCJcXHMqOiIpLHJlbGV2YW5jZTowfV19LHsKYmVnaW46IigiK3IuUkVfU1RBUlRFUlNfUkUrInxcXGIoY2FzZXxyZXR1cm58dGhyb3cpXFxiKVxccyoiLAprZXl3b3JkczoicmV0dXJuIHRocm93IGNhc2UiLGNvbnRhaW5zOlt5LHIuUkVHRVhQX01PREUse2NsYXNzTmFtZToiZnVuY3Rpb24iLApiZWdpbjoiKFxcKFteKCldKihcXChbXigpXSooXFwoW14oKV0qXFwpW14oKV0qKSpcXClbXigpXSopKlxcKXwiK3IuVU5ERVJTQ09SRV9JREVOVF9SRSsiKVxccyo9PiIsCnJldHVybkJlZ2luOiEwLGVuZDoiXFxzKj0+Iixjb250YWluczpbe2NsYXNzTmFtZToicGFyYW1zIix2YXJpYW50czpbewpiZWdpbjpyLlVOREVSU0NPUkVfSURFTlRfUkUscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6bnVsbCxiZWdpbjovXChccypcKS8sc2tpcDohMAp9LHtiZWdpbjovXCgvLGVuZDovXCkvLGV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLGtleXdvcmRzOmwsY29udGFpbnM6Zn1dfV0KfSx7YmVnaW46LywvLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiIiLGJlZ2luOi9ccy8sZW5kOi9ccyovLHNraXA6ITB9LHsKdmFyaWFudHM6W3tiZWdpbjoiPD4iLGVuZDoiPC8+In0se2JlZ2luOm8uYmVnaW4sIm9uOmJlZ2luIjpvLmlzVHJ1bHlPcGVuaW5nVGFnLAplbmQ6by5lbmR9XSxzdWJMYW5ndWFnZToieG1sIixjb250YWluczpbe2JlZ2luOm8uYmVnaW4sZW5kOm8uZW5kLHNraXA6ITAsCmNvbnRhaW5zOlsic2VsZiJdfV19XSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToiZnVuY3Rpb24iLApiZWdpbktleXdvcmRzOiJmdW5jdGlvbiIsZW5kOi9beztdLyxleGNsdWRlRW5kOiEwLGtleXdvcmRzOmwsCmNvbnRhaW5zOlsic2VsZiIsci5pbmhlcml0KHIuVElUTEVfTU9ERSx7YmVnaW46Y30pLEFdLGlsbGVnYWw6LyUvfSx7CmJlZ2luS2V5d29yZHM6IndoaWxlIGlmIHN3aXRjaCBjYXRjaCBmb3IifSx7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsCmJlZ2luOnIuVU5ERVJTQ09SRV9JREVOVF9SRSsiXFwoW14oKV0qKFxcKFteKCldKihcXChbXigpXSpcXClbXigpXSopKlxcKVteKCldKikqXFwpXFxzKlxceyIsCnJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltBLHIuaW5oZXJpdChyLlRJVExFX01PREUse2JlZ2luOmN9KV19LHt2YXJpYW50czpbewpiZWdpbjoiXFwuIitjfSx7YmVnaW46IlxcJCIrY31dLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJjbGFzcyIsCmJlZ2luS2V5d29yZHM6ImNsYXNzIixlbmQ6L1t7Oz1dLyxleGNsdWRlRW5kOiEwLGlsbGVnYWw6L1s6IltcXV0vLGNvbnRhaW5zOlt7CmJlZ2luS2V5d29yZHM6ImV4dGVuZHMifSxyLlVOREVSU0NPUkVfVElUTEVfTU9ERV19LHtiZWdpbjovXGIoPz1jb25zdHJ1Y3RvcikvLAplbmQ6L1t7O10vLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W3IuaW5oZXJpdChyLlRJVExFX01PREUse2JlZ2luOmN9KSwic2VsZiIsQV0KfSx7YmVnaW46IihnZXR8c2V0KVxccysoPz0iK2MrIlxcKCkiLGVuZDovXHsvLGtleXdvcmRzOiJnZXQgc2V0IiwKY29udGFpbnM6W3IuaW5oZXJpdChyLlRJVExFX01PREUse2JlZ2luOmN9KSx7YmVnaW46L1woXCkvfSxBXX0se2JlZ2luOi9cJFsoLl0vfV0KfX0pKHIpCjtyZXR1cm4gT2JqZWN0LmFzc2lnbihiLmtleXdvcmRzLGMpLGIuZXhwb3J0cy5QQVJBTVNfQ09OVEFJTlMucHVzaChvKSxiLmNvbnRhaW5zPWIuY29udGFpbnMuY29uY2F0KFtvLHsKYmVnaW5LZXl3b3JkczoibmFtZXNwYWNlIixlbmQ6L1x7LyxleGNsdWRlRW5kOiEwfSx7YmVnaW5LZXl3b3JkczoiaW50ZXJmYWNlIiwKZW5kOi9cey8sZXhjbHVkZUVuZDohMCxrZXl3b3JkczoiaW50ZXJmYWNlIGV4dGVuZHMiCn1dKSxsKGIsInNoZWJhbmciLHIuU0hFQkFORygpKSxsKGIsInVzZV9zdHJpY3QiLHtjbGFzc05hbWU6Im1ldGEiLHJlbGV2YW5jZToxMCwKYmVnaW46L15ccypbJyJddXNlIHN0cmljdFsnIl0vCn0pLGIuY29udGFpbnMuZmluZCgoZT0+ImZ1bmN0aW9uIj09PWUuY2xhc3NOYW1lKSkucmVsZXZhbmNlPTAsT2JqZWN0LmFzc2lnbihiLHsKbmFtZToiVHlwZVNjcmlwdCIsYWxpYXNlczpbInRzIl19KSxifX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgicnVzdCIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57CmNvbnN0IG49IihbdWldKDh8MTZ8MzJ8NjR8MTI4fHNpemUpfGYoMzJ8NjQpKT8iLHQ9ImRyb3AgaTggaTE2IGkzMiBpNjQgaTEyOCBpc2l6ZSB1OCB1MTYgdTMyIHU2NCB1MTI4IHVzaXplIGYzMiBmNjQgc3RyIGNoYXIgYm9vbCBCb3ggT3B0aW9uIFJlc3VsdCBTdHJpbmcgVmVjIENvcHkgU2VuZCBTaXplZCBTeW5jIERyb3AgRm4gRm5NdXQgRm5PbmNlIFRvT3duZWQgQ2xvbmUgRGVidWcgUGFydGlhbEVxIFBhcnRpYWxPcmQgRXEgT3JkIEFzUmVmIEFzTXV0IEludG8gRnJvbSBEZWZhdWx0IEl0ZXJhdG9yIEV4dGVuZCBJbnRvSXRlcmF0b3IgRG91YmxlRW5kZWRJdGVyYXRvciBFeGFjdFNpemVJdGVyYXRvciBTbGljZUNvbmNhdEV4dCBUb1N0cmluZyBhc3NlcnQhIGFzc2VydF9lcSEgYml0ZmxhZ3MhIGJ5dGVzISBjZmchIGNvbCEgY29uY2F0ISBjb25jYXRfaWRlbnRzISBkZWJ1Z19hc3NlcnQhIGRlYnVnX2Fzc2VydF9lcSEgZW52ISBwYW5pYyEgZmlsZSEgZm9ybWF0ISBmb3JtYXRfYXJncyEgaW5jbHVkZV9iaW4hIGluY2x1ZGVfc3RyISBsaW5lISBsb2NhbF9kYXRhX2tleSEgbW9kdWxlX3BhdGghIG9wdGlvbl9lbnYhIHByaW50ISBwcmludGxuISBzZWxlY3QhIHN0cmluZ2lmeSEgdHJ5ISB1bmltcGxlbWVudGVkISB1bnJlYWNoYWJsZSEgdmVjISB3cml0ZSEgd3JpdGVsbiEgbWFjcm9fcnVsZXMhIGFzc2VydF9uZSEgZGVidWdfYXNzZXJ0X25lISIKO3JldHVybntuYW1lOiJSdXN0IixhbGlhc2VzOlsicnMiXSxrZXl3b3Jkczp7JHBhdHRlcm46ZS5JREVOVF9SRSsiIT8iLAprZXl3b3JkOiJhYnN0cmFjdCBhcyBhc3luYyBhd2FpdCBiZWNvbWUgYm94IGJyZWFrIGNvbnN0IGNvbnRpbnVlIGNyYXRlIGRvIGR5biBlbHNlIGVudW0gZXh0ZXJuIGZhbHNlIGZpbmFsIGZuIGZvciBpZiBpbXBsIGluIGxldCBsb29wIG1hY3JvIG1hdGNoIG1vZCBtb3ZlIG11dCBvdmVycmlkZSBwcml2IHB1YiByZWYgcmV0dXJuIHNlbGYgU2VsZiBzdGF0aWMgc3RydWN0IHN1cGVyIHRyYWl0IHRydWUgdHJ5IHR5cGUgdHlwZW9mIHVuc2FmZSB1bnNpemVkIHVzZSB2aXJ0dWFsIHdoZXJlIHdoaWxlIHlpZWxkIiwKbGl0ZXJhbDoidHJ1ZSBmYWxzZSBTb21lIE5vbmUgT2sgRXJyIixidWlsdF9pbjp0fSxpbGxlZ2FsOiI8LyIsCmNvbnRhaW5zOltlLkNfTElORV9DT01NRU5UX01PREUsZS5DT01NRU5UKCIvXFwqIiwiXFwqLyIse2NvbnRhaW5zOlsic2VsZiJdCn0pLGUuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtiZWdpbjovYj8iLyxpbGxlZ2FsOm51bGx9KSx7CmNsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi9yKCMqKSIoLnxcbikqPyJcMSg/ISMpL30sewpiZWdpbjovYj8nXFw/KHhcd3syfXx1XHd7NH18VVx3ezh9fC4pJy99XX0se2NsYXNzTmFtZToic3ltYm9sIiwKYmVnaW46LydbYS16QS1aX11bYS16QS1aMC05X10qL30se2NsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbewpiZWdpbjoiXFxiMGIoWzAxX10rKSIrbn0se2JlZ2luOiJcXGIwbyhbMC03X10rKSIrbn0sewpiZWdpbjoiXFxiMHgoW0EtRmEtZjAtOV9dKykiK259LHsKYmVnaW46IlxcYihcXGRbXFxkX10qKFxcLlswLTlfXSspPyhbZUVdWystXT9bMC05X10rKT8pIitufV0scmVsZXZhbmNlOjB9LHsKY2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW5LZXl3b3JkczoiZm4iLGVuZDoiKFxcKHw8KSIsZXhjbHVkZUVuZDohMCwKY29udGFpbnM6W2UuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0se2NsYXNzTmFtZToibWV0YSIsYmVnaW46IiMhP1xcWyIsZW5kOiJcXF0iLApjb250YWluczpbe2NsYXNzTmFtZToibWV0YS1zdHJpbmciLGJlZ2luOi8iLyxlbmQ6LyIvfV19LHtjbGFzc05hbWU6ImNsYXNzIiwKYmVnaW5LZXl3b3JkczoidHlwZSIsZW5kOiI7Iixjb250YWluczpbZS5pbmhlcml0KGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFLHsKZW5kc1BhcmVudDohMH0pXSxpbGxlZ2FsOiJcXFMifSx7Y2xhc3NOYW1lOiJjbGFzcyIsCmJlZ2luS2V5d29yZHM6InRyYWl0IGVudW0gc3RydWN0IHVuaW9uIixlbmQ6L1x7LywKY29udGFpbnM6W2UuaW5oZXJpdChlLlVOREVSU0NPUkVfVElUTEVfTU9ERSx7ZW5kc1BhcmVudDohMH0pXSxpbGxlZ2FsOiJbXFx3XFxkXSIKfSx7YmVnaW46ZS5JREVOVF9SRSsiOjoiLGtleXdvcmRzOntidWlsdF9pbjp0fX0se2JlZ2luOiItPiJ9XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJjcnlzdGFsIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9PnsKdmFyIG49IihfP1t1aV0oOHwxNnwzMnw2NHwxMjgpKT8iLGk9IlthLXpBLVpfXVxcdypbIT89XT98Wy0rfl1AfDw8fD4+fFs9IV1+fD09PT98PD0+fFs8Pl09P3xcXCpcXCp8Wy0vKyVeJip+fF18Ly98Ly89fCZbLSsqXT0/fCZcXCpcXCp8XFxbXFxdWz0/XT8iLGE9IltBLVphLXpfXVxcdyooOjpcXHcrKSooXFw/fCEpPyIscz17CiRwYXR0ZXJuOiJbYS16QS1aX11cXHcqWyE/PV0/IiwKa2V5d29yZDoiYWJzdHJhY3QgYWxpYXMgYW5ub3RhdGlvbiBhcyBhcz8gYXNtIGJlZ2luIGJyZWFrIGNhc2UgY2xhc3MgZGVmIGRvIGVsc2UgZWxzaWYgZW5kIGVuc3VyZSBlbnVtIGV4dGVuZCBmb3IgZnVuIGlmIGluY2x1ZGUgaW5zdGFuY2Vfc2l6ZW9mIGlzX2E/IGxpYiBtYWNybyBtb2R1bGUgbmV4dCBuaWw/IG9mIG91dCBwb2ludGVyb2YgcHJpdmF0ZSBwcm90ZWN0ZWQgcmVzY3VlIHJlc3BvbmRzX3RvPyByZXR1cm4gcmVxdWlyZSBzZWxlY3Qgc2VsZiBzaXplb2Ygc3RydWN0IHN1cGVyIHRoZW4gdHlwZSB0eXBlb2YgdW5pb24gdW5pbml0aWFsaXplZCB1bmxlc3MgdW50aWwgdmVyYmF0aW0gd2hlbiB3aGlsZSB3aXRoIHlpZWxkIF9fRElSX18gX19FTkRfTElORV9fIF9fRklMRV9fIF9fTElORV9fIiwKbGl0ZXJhbDoiZmFsc2UgbmlsIHRydWUifSx0PXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovI1x7LyxlbmQ6L1x9LyxrZXl3b3JkczpzCn0scj17Y2xhc3NOYW1lOiJ0ZW1wbGF0ZS12YXJpYWJsZSIsdmFyaWFudHM6W3tiZWdpbjoiXFx7XFx7IixlbmQ6IlxcfVxcfSJ9LHsKYmVnaW46IlxceyUiLGVuZDoiJVxcfSJ9XSxrZXl3b3JkczpzfTtmdW5jdGlvbiBjKGUsbil7dmFyIGk9W3tiZWdpbjplLGVuZDpufV0KO3JldHVybiBpWzBdLmNvbnRhaW5zPWksaX12YXIgbD17Y2xhc3NOYW1lOiJzdHJpbmciLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLHRdLHZhcmlhbnRzOlt7YmVnaW46LycvLGVuZDovJy99LHtiZWdpbjovIi8sZW5kOi8iLwp9LHtiZWdpbjovYC8sZW5kOi9gL30se2JlZ2luOiIlW1F3aV0/XFwoIixlbmQ6IlxcKSIsY29udGFpbnM6YygiXFwoIiwiXFwpIil9LHsKYmVnaW46IiVbUXdpXT9cXFsiLGVuZDoiXFxdIixjb250YWluczpjKCJcXFsiLCJcXF0iKX0se2JlZ2luOiIlW1F3aV0/XFx7IiwKZW5kOi9cfS8sY29udGFpbnM6YygvXHsvLC9cfS8pfSx7YmVnaW46IiVbUXdpXT88IixlbmQ6Ij4iLGNvbnRhaW5zOmMoIjwiLCI+Iil9LHsKYmVnaW46IiVbUXdpXT9cXHwiLGVuZDoiXFx8In0se2JlZ2luOi88PC1cdyskLyxlbmQ6L15ccypcdyskL31dLHJlbGV2YW5jZTowfSxiPXsKY2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46IiVxXFwoIixlbmQ6IlxcKSIsY29udGFpbnM6YygiXFwoIiwiXFwpIil9LHsKYmVnaW46IiVxXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6YygiXFxbIiwiXFxdIil9LHtiZWdpbjoiJXFcXHsiLGVuZDovXH0vLApjb250YWluczpjKC9cey8sL1x9Lyl9LHtiZWdpbjoiJXE8IixlbmQ6Ij4iLGNvbnRhaW5zOmMoIjwiLCI+Iil9LHtiZWdpbjoiJXFcXHwiLAplbmQ6IlxcfCJ9LHtiZWdpbjovPDwtJ1x3KyckLyxlbmQ6L15ccypcdyskL31dLHJlbGV2YW5jZTowfSxvPXsKYmVnaW46Iig/ISVcXH0pKCIrZS5SRV9TVEFSVEVSU19SRSsifFxcbnxcXGIoY2FzZXxpZnxzZWxlY3R8dW5sZXNzfHVudGlsfHdoZW58d2hpbGUpXFxiKVxccyoiLAprZXl3b3JkczoiY2FzZSBpZiBzZWxlY3QgdW5sZXNzIHVudGlsIHdoZW4gd2hpbGUiLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJyZWdleHAiLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLHRdLHZhcmlhbnRzOlt7YmVnaW46Ii8vW2Etel0qIixyZWxldmFuY2U6MH0sewpiZWdpbjoiLyg/IVxcLykiLGVuZDoiL1thLXpdKiJ9XX1dLHJlbGV2YW5jZTowfSxnPVtyLGwsYix7Y2xhc3NOYW1lOiJyZWdleHAiLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLHRdLHZhcmlhbnRzOlt7YmVnaW46IiVyXFwoIixlbmQ6IlxcKSIsCmNvbnRhaW5zOmMoIlxcKCIsIlxcKSIpfSx7YmVnaW46IiVyXFxbIixlbmQ6IlxcXSIsY29udGFpbnM6YygiXFxbIiwiXFxdIil9LHsKYmVnaW46IiVyXFx7IixlbmQ6L1x9Lyxjb250YWluczpjKC9cey8sL1x9Lyl9LHtiZWdpbjoiJXI8IixlbmQ6Ij4iLApjb250YWluczpjKCI8IiwiPiIpfSx7YmVnaW46IiVyXFx8IixlbmQ6IlxcfCJ9XSxyZWxldmFuY2U6MH0sbyx7CmNsYXNzTmFtZToibWV0YSIsYmVnaW46IkBcXFsiLGVuZDoiXFxdIiwKY29udGFpbnM6W2UuaW5oZXJpdChlLlFVT1RFX1NUUklOR19NT0RFLHtjbGFzc05hbWU6Im1ldGEtc3RyaW5nIn0pXQp9LGUuSEFTSF9DT01NRU5UX01PREUse2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIG1vZHVsZSBzdHJ1Y3QiLAplbmQ6IiR8OyIsaWxsZWdhbDovPS8sY29udGFpbnM6W2UuSEFTSF9DT01NRU5UX01PREUsZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7CmJlZ2luOmF9KSx7YmVnaW46IjwifV19LHtjbGFzc05hbWU6ImNsYXNzIixiZWdpbktleXdvcmRzOiJsaWIgZW51bSB1bmlvbiIsCmVuZDoiJHw7IixpbGxlZ2FsOi89Lyxjb250YWluczpbZS5IQVNIX0NPTU1FTlRfTU9ERSxlLmluaGVyaXQoZS5USVRMRV9NT0RFLHsKYmVnaW46YX0pXSxyZWxldmFuY2U6MTB9LHtiZWdpbktleXdvcmRzOiJhbm5vdGF0aW9uIixlbmQ6IiR8OyIsaWxsZWdhbDovPS8sCmNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLGUuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOmF9KV0scmVsZXZhbmNlOjEwfSx7CmNsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImRlZiIsZW5kOi9cQlxiLywKY29udGFpbnM6W2UuaW5oZXJpdChlLlRJVExFX01PREUse2JlZ2luOmksZW5kc1BhcmVudDohMH0pXX0sewpjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbktleXdvcmRzOiJmdW4gbWFjcm8iLGVuZDovXEJcYi8sCmNvbnRhaW5zOltlLmluaGVyaXQoZS5USVRMRV9NT0RFLHtiZWdpbjppLGVuZHNQYXJlbnQ6ITB9KV0scmVsZXZhbmNlOjJ9LHsKY2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRSsiKCF8XFw/KT86IixyZWxldmFuY2U6MH0sewpjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46IjoiLGNvbnRhaW5zOltsLHtiZWdpbjppfV0scmVsZXZhbmNlOjB9LHsKY2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7YmVnaW46IlxcYjBiKFswMV9dKykiK259LHtiZWdpbjoiXFxiMG8oWzAtN19dKykiK24KfSx7YmVnaW46IlxcYjB4KFtBLUZhLWYwLTlfXSspIitufSx7CmJlZ2luOiJcXGIoWzEtOV1bMC05X10qWzAtOV18WzAtOV0pKFxcLlswLTldWzAtOV9dKik/KFtlRV1fP1stK10/WzAtOV9dKik/KF8/ZigzMnw2NCkpPyg/IV8pIgp9LHtiZWdpbjoiXFxiKFsxLTldWzAtOV9dKnwwKSIrbn1dLHJlbGV2YW5jZTowfV0KO3JldHVybiB0LmNvbnRhaW5zPWcsci5jb250YWlucz1nLnNsaWNlKDEpLHtuYW1lOiJDcnlzdGFsIixhbGlhc2VzOlsiY3IiXSwKa2V5d29yZHM6cyxjb250YWluczpnfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoIm1ha2VmaWxlIiwoKCk9PnsidXNlIHN0cmljdCI7cmV0dXJuIGU9Pntjb25zdCBpPXsKY2xhc3NOYW1lOiJ2YXJpYWJsZSIsdmFyaWFudHM6W3tiZWdpbjoiXFwkXFwoIitlLlVOREVSU0NPUkVfSURFTlRfUkUrIlxcKSIsCmNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEVdfSx7YmVnaW46L1wkW0AlPD9cXlwrXCpdL31dfSxhPXtjbGFzc05hbWU6InN0cmluZyIsCmJlZ2luOi8iLyxlbmQ6LyIvLGNvbnRhaW5zOltlLkJBQ0tTTEFTSF9FU0NBUEUsaV19LG49e2NsYXNzTmFtZToidmFyaWFibGUiLApiZWdpbjovXCRcKFtcdy1dK1xzLyxlbmQ6L1wpLyxrZXl3b3Jkczp7CmJ1aWx0X2luOiJzdWJzdCBwYXRzdWJzdCBzdHJpcCBmaW5kc3RyaW5nIGZpbHRlciBmaWx0ZXItb3V0IHNvcnQgd29yZCB3b3JkbGlzdCBmaXJzdHdvcmQgbGFzdHdvcmQgZGlyIG5vdGRpciBzdWZmaXggYmFzZW5hbWUgYWRkc3VmZml4IGFkZHByZWZpeCBqb2luIHdpbGRjYXJkIHJlYWxwYXRoIGFic3BhdGggZXJyb3Igd2FybmluZyBzaGVsbCBvcmlnaW4gZmxhdm9yIGZvcmVhY2ggaWYgb3IgYW5kIGNhbGwgZXZhbCBmaWxlIHZhbHVlIgp9LGNvbnRhaW5zOltpXX0scz17YmVnaW46Il4iK2UuVU5ERVJTQ09SRV9JREVOVF9SRSsiXFxzKig/PVs6Kz9dPz0pIn0scj17CmNsYXNzTmFtZToic2VjdGlvbiIsYmVnaW46L15bXlxzXSs6LyxlbmQ6LyQvLGNvbnRhaW5zOltpXX07cmV0dXJuewpuYW1lOiJNYWtlZmlsZSIsYWxpYXNlczpbIm1rIiwibWFrIl0sa2V5d29yZHM6eyRwYXR0ZXJuOi9bXHctXSsvLAprZXl3b3JkOiJkZWZpbmUgZW5kZWYgdW5kZWZpbmUgaWZkZWYgaWZuZGVmIGlmZXEgaWZuZXEgZWxzZSBlbmRpZiBpbmNsdWRlIC1pbmNsdWRlIHNpbmNsdWRlIG92ZXJyaWRlIGV4cG9ydCB1bmV4cG9ydCBwcml2YXRlIHZwYXRoIgp9LGNvbnRhaW5zOltlLkhBU0hfQ09NTUVOVF9NT0RFLGksYSxuLHMse2NsYXNzTmFtZToibWV0YSIsYmVnaW46L15cLlBIT05ZOi8sCmVuZDovJC8sa2V5d29yZHM6eyRwYXR0ZXJuOi9bXC5cd10rLywibWV0YS1rZXl3b3JkIjoiLlBIT05ZIn19LHJdfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInBvd2Vyc2hlbGwiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e2NvbnN0IG49ewokcGF0dGVybjovLT9bQS16XC5cLV0rXGIvLAprZXl3b3JkOiJpZiBlbHNlIGZvcmVhY2ggcmV0dXJuIGRvIHdoaWxlIHVudGlsIGVsc2VpZiBiZWdpbiBmb3IgdHJhcCBkYXRhIGR5bmFtaWNwYXJhbSBlbmQgYnJlYWsgdGhyb3cgcGFyYW0gY29udGludWUgZmluYWxseSBpbiBzd2l0Y2ggZXhpdCBmaWx0ZXIgdHJ5IHByb2Nlc3MgY2F0Y2ggaGlkZGVuIHN0YXRpYyBwYXJhbWV0ZXIiLApidWlsdF9pbjoiYWMgYXNucCBjYXQgY2QgQ0ZTIGNoZGlyIGNsYyBjbGVhciBjbGh5IGNsaSBjbHAgY2xzIGNsdiBjbnNuIGNvbXBhcmUgY29weSBjcCBjcGkgY3BwIGN1cmwgY3ZwYSBkYnAgZGVsIGRpZmYgZGlyIGRuc24gZWJwIGVjaG98MCBlcGFsIGVwY3N2IGVwc24gZXJhc2UgZXRzbiBleHNuIGZjIGZoeCBmbCBmdCBmdyBnYWwgZ2JwIGdjIGdjYiBnY2kgZ2NtIGdjcyBnZHIgZ2VyciBnaHkgZ2kgZ2luIGdqYiBnbCBnbSBnbW8gZ3AgZ3BzIGdwdiBncm91cCBnc24gZ3NucCBnc3YgZ3R6IGd1IGd2IGd3bWkgaCBoaXN0b3J5IGljbSBpZXggaWh5IGlpIGlwYWwgaXBjc3YgaXBtbyBpcHNuIGlybSBpc2UgaXdtaSBpd3Iga2lsbCBscCBscyBtYW4gbWQgbWVhc3VyZSBtaSBtb3VudCBtb3ZlIG1wIG12IG5hbCBuZHIgbmkgbm1vIG5wc3NjIG5zbiBudiBvZ3Ygb2ggcG9wZCBwcyBwdXNoZCBwd2QgciByYnAgcmNqYiByY3NuIHJkIHJkciByZW4gcmkgcmpiIHJtIHJtZGlyIHJtbyBybmkgcm5wIHJwIHJzbiByc25wIHJ1amIgcnYgcnZwYSByd21pIHNhamIgc2FsIHNhcHMgc2FzdiBzYnAgc2Mgc2NiIHNlbGVjdCBzZXQgc2hjbSBzaSBzbCBzbGVlcCBzbHMgc29ydCBzcCBzcGpiIHNwcHMgc3BzdiBzdGFydCBzdHogc3VqYiBzdiBzd21pIHRlZSB0cmNtIHR5cGUgd2dldCB3aGVyZSB3amIgd3JpdGUiCn0scz17YmVnaW46ImBbXFxzXFxTXSIscmVsZXZhbmNlOjB9LGk9e2NsYXNzTmFtZToidmFyaWFibGUiLHZhcmlhbnRzOlt7CmJlZ2luOi9cJFxCL30se2NsYXNzTmFtZToia2V5d29yZCIsYmVnaW46L1wkdGhpcy99LHtiZWdpbjovXCRbXHdcZF1bXHdcZF86XSovfV0KfSxhPXtjbGFzc05hbWU6InN0cmluZyIsdmFyaWFudHM6W3tiZWdpbjovIi8sZW5kOi8iL30se2JlZ2luOi9AIi8sZW5kOi9eIkAvfV0sCmNvbnRhaW5zOltzLGkse2NsYXNzTmFtZToidmFyaWFibGUiLGJlZ2luOi9cJFtBLXpdLyxlbmQ6L1teQS16XS99XX0sdD17CmNsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi8nLyxlbmQ6LycvfSx7YmVnaW46L0AnLyxlbmQ6L14nQC99XQp9LHI9ZS5pbmhlcml0KGUuQ09NTUVOVChudWxsLG51bGwpLHt2YXJpYW50czpbe2JlZ2luOi8jLyxlbmQ6LyQvfSx7YmVnaW46LzwjLywKZW5kOi8jPi99XSxjb250YWluczpbe2NsYXNzTmFtZToiZG9jdGFnIix2YXJpYW50czpbewpiZWdpbjovXC4oc3lub3BzaXN8ZGVzY3JpcHRpb258ZXhhbXBsZXxpbnB1dHN8b3V0cHV0c3xub3Rlc3xsaW5rfGNvbXBvbmVudHxyb2xlfGZ1bmN0aW9uYWxpdHkpLwp9LHsKYmVnaW46L1wuKHBhcmFtZXRlcnxmb3J3YXJkaGVscHRhcmdldG5hbWV8Zm9yd2FyZGhlbHBjYXRlZ29yeXxyZW1vdGVoZWxwcnVuc3BhY2V8ZXh0ZXJuYWxoZWxwKVxzK1xTKy8KfV19XX0pLGM9e2NsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImNsYXNzIGVudW0iLGVuZDovXHMqW3tdLywKZXhjbHVkZUVuZDohMCxyZWxldmFuY2U6MCxjb250YWluczpbZS5USVRMRV9NT0RFXX0sbD17Y2xhc3NOYW1lOiJmdW5jdGlvbiIsCmJlZ2luOi9mdW5jdGlvblxzKy8sZW5kOi9ccypce3wkLyxleGNsdWRlRW5kOiEwLHJldHVybkJlZ2luOiEwLHJlbGV2YW5jZTowLApjb250YWluczpbe2JlZ2luOiJmdW5jdGlvbiIscmVsZXZhbmNlOjAsY2xhc3NOYW1lOiJrZXl3b3JkIn0se2NsYXNzTmFtZToidGl0bGUiLApiZWdpbjovXHdbXHdcZF0qKCgtKVtcd1xkXSspKi8scmVsZXZhbmNlOjB9LHtiZWdpbjovXCgvLGVuZDovXCkvLApjbGFzc05hbWU6InBhcmFtcyIscmVsZXZhbmNlOjAsY29udGFpbnM6W2ldfV19LG89e2JlZ2luOi91c2luZ1xzLyxlbmQ6LyQvLApyZXR1cm5CZWdpbjohMCxjb250YWluczpbYSx0LHtjbGFzc05hbWU6ImtleXdvcmQiLApiZWdpbjovKHVzaW5nfGFzc2VtYmx5fGNvbW1hbmR8bW9kdWxlfG5hbWVzcGFjZXx0eXBlKS99XX0scD17CmNsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luOi9cWy4qXF1ccypbXHddK1sgXT8/XCgvLGVuZDovJC8scmV0dXJuQmVnaW46ITAsCnJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJrZXl3b3JkIiwKYmVnaW46IigiLmNvbmNhdChuLmtleXdvcmQudG9TdHJpbmcoKS5yZXBsYWNlKC9ccy9nLCJ8IiksIilcXGIiKSxlbmRzUGFyZW50OiEwLApyZWxldmFuY2U6MH0sZS5pbmhlcml0KGUuVElUTEVfTU9ERSx7ZW5kc1BhcmVudDohMH0pXQp9LGc9W3AscixzLGUuTlVNQkVSX01PREUsYSx0LHtjbGFzc05hbWU6ImJ1aWx0X2luIix2YXJpYW50czpbewpiZWdpbjoiKEFkZHxDbGVhcnxDbG9zZXxDb3B5fEVudGVyfEV4aXR8RmluZHxGb3JtYXR8R2V0fEhpZGV8Sm9pbnxMb2NrfE1vdmV8TmV3fE9wZW58T3B0aW1pemV8UG9wfFB1c2h8UmVkb3xSZW1vdmV8UmVuYW1lfFJlc2V0fFJlc2l6ZXxTZWFyY2h8U2VsZWN0fFNldHxTaG93fFNraXB8U3BsaXR8U3RlcHxTd2l0Y2h8VW5kb3xVbmxvY2t8V2F0Y2h8QmFja3VwfENoZWNrcG9pbnR8Q29tcGFyZXxDb21wcmVzc3xDb252ZXJ0fENvbnZlcnRGcm9tfENvbnZlcnRUb3xEaXNtb3VudHxFZGl0fEV4cGFuZHxFeHBvcnR8R3JvdXB8SW1wb3J0fEluaXRpYWxpemV8TGltaXR8TWVyZ2V8T3V0fFB1Ymxpc2h8UmVzdG9yZXxTYXZlfFN5bmN8VW5wdWJsaXNofFVwZGF0ZXxBcHByb3ZlfEFzc2VydHxDb21wbGV0ZXxDb25maXJtfERlbnl8RGlzYWJsZXxFbmFibGV8SW5zdGFsbHxJbnZva2V8UmVnaXN0ZXJ8UmVxdWVzdHxSZXN0YXJ0fFJlc3VtZXxTdGFydHxTdG9wfFN1Ym1pdHxTdXNwZW5kfFVuaW5zdGFsbHxVbnJlZ2lzdGVyfFdhaXR8RGVidWd8TWVhc3VyZXxQaW5nfFJlcGFpcnxSZXNvbHZlfFRlc3R8VHJhY2V8Q29ubmVjdHxEaXNjb25uZWN0fFJlYWR8UmVjZWl2ZXxTZW5kfFdyaXRlfEJsb2NrfEdyYW50fFByb3RlY3R8UmV2b2tlfFVuYmxvY2t8VW5wcm90ZWN0fFVzZXxGb3JFYWNofFNvcnR8VGVlfFdoZXJlKSsoLSlbXFx3XFxkXSsiCn1dfSxpLHtjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOi9cJChudWxsfHRydWV8ZmFsc2UpXGIvfSx7CmNsYXNzTmFtZToic2VsZWN0b3ItdGFnIixiZWdpbjovQFxCLyxyZWxldmFuY2U6MH1dLG09e2JlZ2luOi9cWy8sZW5kOi9cXS8sCmV4Y2x1ZGVCZWdpbjohMCxleGNsdWRlRW5kOiEwLHJlbGV2YW5jZTowLGNvbnRhaW5zOltdLmNvbmNhdCgic2VsZiIsZyx7CmJlZ2luOiIoc3RyaW5nfGNoYXJ8Ynl0ZXxpbnR8bG9uZ3xib29sfGRlY2ltYWx8c2luZ2xlfGRvdWJsZXxEYXRlVGltZXx4bWx8YXJyYXl8aGFzaHRhYmxlfHZvaWQpIiwKY2xhc3NOYW1lOiJidWlsdF9pbiIscmVsZXZhbmNlOjB9LHtjbGFzc05hbWU6InR5cGUiLGJlZ2luOi9bXC5cd1xkXSsvLApyZWxldmFuY2U6MH0pfTtyZXR1cm4gcC5jb250YWlucy51bnNoaWZ0KG0pLHtuYW1lOiJQb3dlclNoZWxsIiwKYWxpYXNlczpbInBzIiwicHMxIl0sY2FzZV9pbnNlbnNpdGl2ZTohMCxrZXl3b3JkczpuLGNvbnRhaW5zOmcuY29uY2F0KGMsbCxvLHsKdmFyaWFudHM6W3tjbGFzc05hbWU6Im9wZXJhdG9yIiwKYmVnaW46IigtYW5kfC1hc3wtYmFuZHwtYm5vdHwtYm9yfC1ieG9yfC1jYXNlc2Vuc2l0aXZlfC1jY29udGFpbnN8LWNlcXwtY2dlfC1jZ3R8LWNsZXwtY2xpa2V8LWNsdHwtY21hdGNofC1jbmV8LWNub3Rjb250YWluc3wtY25vdGxpa2V8LWNub3RtYXRjaHwtY29udGFpbnN8LWNyZXBsYWNlfC1jc3BsaXR8LWVxfC1leGFjdHwtZnwtZmlsZXwtZ2V8LWd0fC1pY29udGFpbnN8LWllcXwtaWdlfC1pZ3R8LWlsZXwtaWxpa2V8LWlsdHwtaW1hdGNofC1pbnwtaW5lfC1pbm90Y29udGFpbnN8LWlub3RsaWtlfC1pbm90bWF0Y2h8LWlyZXBsYWNlfC1pc3wtaXNub3R8LWlzcGxpdHwtam9pbnwtbGV8LWxpa2V8LWx0fC1tYXRjaHwtbmV8LW5vdHwtbm90Y29udGFpbnN8LW5vdGlufC1ub3RsaWtlfC1ub3RtYXRjaHwtb3J8LXJlZ2V4fC1yZXBsYWNlfC1zaGx8LXNocnwtc3BsaXR8LXdpbGRjYXJkfC14b3IpXFxiIgp9LHtjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOi8oLSlbXHdcZF0rLyxyZWxldmFuY2U6MH1dfSxtKX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJ2aW0iLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+KHtuYW1lOiJWaW0gU2NyaXB0IiwKa2V5d29yZHM6eyRwYXR0ZXJuOi9bISNAXHddKy8sCmtleXdvcmQ6Ik58MCBQfDAgWHwwIGF8MCBhYiBhYmMgYWJvIGFsIGFtIGFufDAgYXIgYXJnYSBhcmdkIGFyZ2UgYXJnZG8gYXJnZyBhcmdsIGFyZ3UgYXMgYXUgYXVnIGF1biBifDAgYk4gYmEgYmFkIGJkIGJlIGJlbCBiZiBibCBibSBibiBibyBicCBiciBicmVhIGJyZWFrYSBicmVha2QgYnJlYWtsIGJybyBidWZkbyBidWZmZXJzIGJ1biBidyBjfDAgY04gY05mIGNhIGNhYmMgY2FkZGIgY2FkIGNhZGRmIGNhbCBjYXQgY2IgY2MgY2NsIGNkIGNlIGNleCBjZiBjZmlyIGNnZXRiIGNnZXRlIGNnIGNoYW5nZXMgY2hkIGNoZSBjaGVja3QgY2wgY2xhIGNsbyBjbSBjbWFwYyBjbWUgY24gY25ldyBjbmYgY25vIGNub3JlYSBjbm9yZW1lIGNvIGNvbCBjb2xvIGNvbSBjb21jIGNvbXAgY29uIGNvbmYgY29wZSBjcCBjcGYgY3EgY3IgY3MgY3N0IGN1IGN1bmEgY3VubWUgY3cgZGVsbSBkZWIgZGVidWdnIGRlbGMgZGVsZiBkaWYgZGlmZmcgZGlmZm8gZGlmZnAgZGlmZnB1IGRpZmZzIGRpZmZ0aGlzIGRpZyBkaSBkbCBkZWxsIGRqIGRsaSBkbyBkb2F1dG9hIGRwIGRyIGRzIGRzcCBlfDAgZWEgZWMgZWNob2UgZWNob2ggZWNob20gZWNob24gZWwgZWxzZWkgZW0gZW4gZW5kZm8gZW5kZiBlbmR0IGVuZHcgZW5lIGV4IGV4ZSBleGkgZXh1IGZ8MCBmaWxlcyBmaWxldCBmaW4gZmluYSBmaW5pIGZpciBmaXggZm8gZm9sZGMgZm9sZGQgZm9sZGRvYyBmb2xkbyBmb3IgZnUgZ28gZ3IgZ3JlcGEgZ3UgZ3YgaGEgaGVscGYgaGVscGcgaGVscHQgaGkgaGlkIGhpcyBpYSBpYWJjIGlmIGlqIGlsIGltIGltYXBjIGltZSBpbm8gaW5vcmVhIGlub3JlbWUgaW50IGlzIGlzcCBpdSBpdW5hIGl1bm1lIGp8MCBqdSBrfDAga2VlcGEga2VlIGtlZXBqIGxOIGxOZiBsfDAgbGFkIGxhZGRiIGxhZGRmIGxhIGxhbiBsYXQgbGIgbGMgbGNoIGxjbCBsY3MgbGUgbGVmdGEgbGV0IGxleCBsZiBsZmlyIGxnZXRiIGxnZXRlIGxnIGxnciBsZ3JlcGEgbGggbGwgbGxhIGxsaSBsbWFrIGxtIGxtYXBjIGxuZSBsbmV3IGxuZiBsbiBsb2FkayBsbyBsb2MgbG9ja3YgbG9sIGxvcGUgbHAgbHBmIGxyIGxzIGx0IGx1IGx1YSBsdWFkIGx1YWYgbHYgbHZpbWdyZXBhIGx3IG18MCBtYSBtYWsgbWFwIG1hcGMgbWFya3MgbWF0IG1lIG1lbnV0IG1lcyBtayBta3MgbWtzcCBta3YgbWt2aWUgbW9kIG16IG16ZiBuYmMgbmIgbmJzIG5ldyBubSBubWFwYyBubWUgbm4gbm5vcmVtZSBub2Egbm8gbm9oIG5vcmVhIG5vcmVtZSBub3JtIG51IG51biBudW5tZSBvbCBvfDAgb20gb21hcGMgb21lIG9uIG9ubyBvbm9yZW1lIG9wdCBvdSBvdW5tZSBvdyBwfDAgcHJvZmQgcHJvZiBwcm8gcHJvbXB0ciBwYyBwZWQgcGUgcGVybGQgcG8gcG9wdSBwcCBwcmUgcHJldiBwcyBwdCBwdE4gcHRmIHB0aiBwdGwgcHRuIHB0cCBwdHIgcHRzIHB1IHB3IHB5MyBweXRob24zIHB5M2QgcHkzZiBweSBweWQgcHlmIHF1aXRhIHFhIHJlYyByZWQgcmVkaSByZWRyIHJlZHJhd3MgcmVnIHJlcyByZXQgcmV0dSByZXcgcmkgcmlnaHRiIHJ1YiBydWJ5ZCBydWJ5ZiBydW5kIHJ1IHJ2IHNOIHNhbiBzYSBzYWwgc2F2IHNiIHNiTiBzYmEgc2JmIHNibCBzYm0gc2JuIHNicCBzYnIgc2NyaXAgc2NyaXB0ZSBzY3Mgc2Ugc2V0ZiBzZXRnIHNldGwgc2Ygc2ZpciBzaCBzaW0gc2lnIHNpbCBzbCBzbGEgc20gc21hcCBzbWFwYyBzbWUgc24gc25pIHNubyBzbm9yIHNub3JlbWUgc29yIHNvIHNwZWxsZCBzcGUgc3BlbGxpIHNwZWxsciBzcGVsbHUgc3BlbGx3IHNwIHNwciBzcmUgc3Qgc3RhIHN0YXJ0ZyBzdGFydHIgc3RhciBzdG9waSBzdGogc3RzIHN1biBzdW5tIHN1bm1lIHN1cyBzdiBzdyBzeSBzeW50aSBzeW5jIHROIHRhYk4gdGFiYyB0YWJkbyB0YWJlIHRhYmYgdGFiZmlyIHRhYmwgdGFibSB0YWJuZXcgdGFibiB0YWJvIHRhYnAgdGFiciB0YWJzIHRhYiB0YSB0YWdzIHRjIHRjbGQgdGNsZiB0ZSB0ZiB0aCB0aiB0bCB0bSB0biB0byB0cCB0ciB0cnkgdHMgdHUgdXwwIHVuZG9qIHVuZG9sIHVuYSB1bmggdW5sIHVubG8gdW5tIHVubWUgdW5zIHVwIHZlIHZlcmIgdmVydCB2aW0gdmltZ3JlcGEgdmkgdml1IHZpZSB2bSB2bWFwYyB2bWUgdm5lIHZuIHZub3JlbWUgdnMgdnUgdnVubWUgd2luZG8gd3wwIHdOIHdhIHdoIHdpIHdpbmMgd2lucCB3biB3cCB3cSB3cWEgd3Mgd3Ugd3YgeHwwIHhhIHhtYXBjIHhtIHhtZSB4biB4bm9yZW1lIHh1IHh1bm1lIHl8MCB6fDAgfiBOZXh0IFByaW50IGFwcGVuZCBhYmJyZXZpYXRlIGFiY2xlYXIgYWJvdmVsZWZ0IGFsbCBhbWVudSBhbm9yZW1lbnUgYXJncyBhcmdhZGQgYXJnZGVsZXRlIGFyZ2VkaXQgYXJnZ2xvYmFsIGFyZ2xvY2FsIGFyZ3VtZW50IGFzY2lpIGF1dG9jbWQgYXVncm91cCBhdW5tZW51IGJ1ZmZlciBiTmV4dCBiYWxsIGJhZGQgYmRlbGV0ZSBiZWhhdmUgYmVsb3dyaWdodCBiZmlyc3QgYmxhc3QgYm1vZGlmaWVkIGJuZXh0IGJvdHJpZ2h0IGJwcmV2aW91cyBicmV3aW5kIGJyZWFrIGJyZWFrYWRkIGJyZWFrZGVsIGJyZWFrbGlzdCBicm93c2UgYnVubG9hZCBid2lwZW91dCBjaGFuZ2UgY05leHQgY05maWxlIGNhYmJyZXYgY2FiY2xlYXIgY2FkZGJ1ZmZlciBjYWRkZXhwciBjYWRkZmlsZSBjYWxsIGNhdGNoIGNidWZmZXIgY2Nsb3NlIGNlbnRlciBjZXhwciBjZmlsZSBjZmlyc3QgY2dldGJ1ZmZlciBjZ2V0ZXhwciBjZ2V0ZmlsZSBjaGRpciBjaGVja3BhdGggY2hlY2t0aW1lIGNsaXN0IGNsYXN0IGNsb3NlIGNtYXAgY21hcGNsZWFyIGNtZW51IGNuZXh0IGNuZXdlciBjbmZpbGUgY25vcmVtYXAgY25vcmVhYmJyZXYgY25vcmVtZW51IGNvcHkgY29sZGVyIGNvbG9yc2NoZW1lIGNvbW1hbmQgY29tY2xlYXIgY29tcGlsZXIgY29udGludWUgY29uZmlybSBjb3BlbiBjcHJldmlvdXMgY3BmaWxlIGNxdWl0IGNyZXdpbmQgY3Njb3BlIGNzdGFnIGN1bm1hcCBjdW5hYmJyZXYgY3VubWVudSBjd2luZG93IGRlbGV0ZSBkZWxtYXJrcyBkZWJ1ZyBkZWJ1Z2dyZWVkeSBkZWxjb21tYW5kIGRlbGZ1bmN0aW9uIGRpZmZ1cGRhdGUgZGlmZmdldCBkaWZmb2ZmIGRpZmZwYXRjaCBkaWZmcHV0IGRpZmZzcGxpdCBkaWdyYXBocyBkaXNwbGF5IGRlbGV0ZWwgZGp1bXAgZGxpc3QgZG9hdXRvY21kIGRvYXV0b2FsbCBkZWxldGVwIGRyb3AgZHNlYXJjaCBkc3BsaXQgZWRpdCBlYXJsaWVyIGVjaG8gZWNob2VyciBlY2hvaGwgZWNob21zZyBlbHNlIGVsc2VpZiBlbWVudSBlbmRpZiBlbmRmb3IgZW5kZnVuY3Rpb24gZW5kdHJ5IGVuZHdoaWxlIGVuZXcgZXhlY3V0ZSBleGl0IGV4dXNhZ2UgZmlsZSBmaWxldHlwZSBmaW5kIGZpbmFsbHkgZmluaXNoIGZpcnN0IGZpeGRlbCBmb2xkIGZvbGRjbG9zZSBmb2xkZG9vcGVuIGZvbGRkb2Nsb3NlZCBmb2xkb3BlbiBmdW5jdGlvbiBnbG9iYWwgZ290byBncmVwIGdyZXBhZGQgZ3VpIGd2aW0gaGFyZGNvcHkgaGVscCBoZWxwZmluZCBoZWxwZ3JlcCBoZWxwdGFncyBoaWdobGlnaHQgaGlkZSBoaXN0b3J5IGluc2VydCBpYWJicmV2IGlhYmNsZWFyIGlqdW1wIGlsaXN0IGltYXAgaW1hcGNsZWFyIGltZW51IGlub3JlbWFwIGlub3JlYWJicmV2IGlub3JlbWVudSBpbnRybyBpc2VhcmNoIGlzcGxpdCBpdW5tYXAgaXVuYWJicmV2IGl1bm1lbnUgam9pbiBqdW1wcyBrZWVwYWx0IGtlZXBtYXJrcyBrZWVwanVtcHMgbE5leHQgbE5maWxlIGxpc3QgbGFkZGV4cHIgbGFkZGJ1ZmZlciBsYWRkZmlsZSBsYXN0IGxhbmd1YWdlIGxhdGVyIGxidWZmZXIgbGNkIGxjaGRpciBsY2xvc2UgbGNzY29wZSBsZWZ0IGxlZnRhYm92ZSBsZXhwciBsZmlsZSBsZmlyc3QgbGdldGJ1ZmZlciBsZ2V0ZXhwciBsZ2V0ZmlsZSBsZ3JlcCBsZ3JlcGFkZCBsaGVscGdyZXAgbGxhc3QgbGxpc3QgbG1ha2UgbG1hcCBsbWFwY2xlYXIgbG5leHQgbG5ld2VyIGxuZmlsZSBsbm9yZW1hcCBsb2Fka2V5bWFwIGxvYWR2aWV3IGxvY2ttYXJrcyBsb2NrdmFyIGxvbGRlciBsb3BlbiBscHJldmlvdXMgbHBmaWxlIGxyZXdpbmQgbHRhZyBsdW5tYXAgbHVhZG8gbHVhZmlsZSBsdmltZ3JlcCBsdmltZ3JlcGFkZCBsd2luZG93IG1vdmUgbWFyayBtYWtlIG1hcGNsZWFyIG1hdGNoIG1lbnUgbWVudXRyYW5zbGF0ZSBtZXNzYWdlcyBta2V4cmMgbWtzZXNzaW9uIG1rc3BlbGwgbWt2aW1yYyBta3ZpZXcgbW9kZSBtenNjaGVtZSBtemZpbGUgbmJjbG9zZSBuYmtleSBuYnNhcnQgbmV4dCBubWFwIG5tYXBjbGVhciBubWVudSBubm9yZW1hcCBubm9yZW1lbnUgbm9hdXRvY21kIG5vcmVtYXAgbm9obHNlYXJjaCBub3JlYWJicmV2IG5vcmVtZW51IG5vcm1hbCBudW1iZXIgbnVubWFwIG51bm1lbnUgb2xkZmlsZXMgb3BlbiBvbWFwIG9tYXBjbGVhciBvbWVudSBvbmx5IG9ub3JlbWFwIG9ub3JlbWVudSBvcHRpb25zIG91bm1hcCBvdW5tZW51IG93bnN5bnRheCBwcmludCBwcm9mZGVsIHByb2ZpbGUgcHJvbXB0ZmluZCBwcm9tcHRyZXBsIHBjbG9zZSBwZWRpdCBwZXJsIHBlcmxkbyBwb3AgcG9wdXAgcHBvcCBwcmVzZXJ2ZSBwcmV2aW91cyBwc2VhcmNoIHB0YWcgcHROZXh0IHB0Zmlyc3QgcHRqdW1wIHB0bGFzdCBwdG5leHQgcHRwcmV2aW91cyBwdHJld2luZCBwdHNlbGVjdCBwdXQgcHdkIHB5M2RvIHB5M2ZpbGUgcHl0aG9uIHB5ZG8gcHlmaWxlIHF1aXQgcXVpdGFsbCBxYWxsIHJlYWQgcmVjb3ZlciByZWRvIHJlZGlyIHJlZHJhdyByZWRyYXdzdGF0dXMgcmVnaXN0ZXJzIHJlc2l6ZSByZXRhYiByZXR1cm4gcmV3aW5kIHJpZ2h0IHJpZ2h0YmVsb3cgcnVieSBydWJ5ZG8gcnVieWZpbGUgcnVuZG8gcnVudGltZSBydmltaW5mbyBzdWJzdGl0dXRlIHNOZXh0IHNhbmRib3ggc2FyZ3VtZW50IHNhbGwgc2F2ZWFzIHNidWZmZXIgc2JOZXh0IHNiYWxsIHNiZmlyc3Qgc2JsYXN0IHNibW9kaWZpZWQgc2JuZXh0IHNicHJldmlvdXMgc2JyZXdpbmQgc2NyaXB0bmFtZXMgc2NyaXB0ZW5jb2Rpbmcgc2NzY29wZSBzZXQgc2V0ZmlsZXR5cGUgc2V0Z2xvYmFsIHNldGxvY2FsIHNmaW5kIHNmaXJzdCBzaGVsbCBzaW1hbHQgc2lnbiBzaWxlbnQgc2xlZXAgc2xhc3Qgc21hZ2ljIHNtYXBjbGVhciBzbWVudSBzbmV4dCBzbmlmZiBzbm9tYWdpYyBzbm9yZW1hcCBzbm9yZW1lbnUgc29ydCBzb3VyY2Ugc3BlbGxkdW1wIHNwZWxsZ29vZCBzcGVsbGluZm8gc3BlbGxyZXBhbGwgc3BlbGx1bmRvIHNwZWxsd3Jvbmcgc3BsaXQgc3ByZXZpb3VzIHNyZXdpbmQgc3RvcCBzdGFnIHN0YXJ0Z3JlcGxhY2Ugc3RhcnRyZXBsYWNlIHN0YXJ0aW5zZXJ0IHN0b3BpbnNlcnQgc3RqdW1wIHN0c2VsZWN0IHN1bmhpZGUgc3VubWFwIHN1bm1lbnUgc3VzcGVuZCBzdmlldyBzd2FwbmFtZSBzeW50YXggc3ludGltZSBzeW5jYmluZCB0TmV4dCB0YWJOZXh0IHRhYmNsb3NlIHRhYmVkaXQgdGFiZmluZCB0YWJmaXJzdCB0YWJsYXN0IHRhYm1vdmUgdGFibmV4dCB0YWJvbmx5IHRhYnByZXZpb3VzIHRhYnJld2luZCB0YWcgdGNsIHRjbGRvIHRjbGZpbGUgdGVhcm9mZiB0Zmlyc3QgdGhyb3cgdGp1bXAgdGxhc3QgdG1lbnUgdG5leHQgdG9wbGVmdCB0cHJldmlvdXMgdHJld2luZCB0c2VsZWN0IHR1bm1lbnUgdW5kbyB1bmRvam9pbiB1bmRvbGlzdCB1bmFiYnJldmlhdGUgdW5oaWRlIHVubGV0IHVubG9ja3ZhciB1bm1hcCB1bm1lbnUgdW5zaWxlbnQgdXBkYXRlIHZnbG9iYWwgdmVyc2lvbiB2ZXJib3NlIHZlcnRpY2FsIHZpbWdyZXAgdmltZ3JlcGFkZCB2aXN1YWwgdml1c2FnZSB2aWV3IHZtYXAgdm1hcGNsZWFyIHZtZW51IHZuZXcgdm5vcmVtYXAgdm5vcmVtZW51IHZzcGxpdCB2dW5tYXAgdnVubWVudSB3cml0ZSB3TmV4dCB3YWxsIHdoaWxlIHdpbnNpemUgd2luY21kIHdpbnBvcyB3bmV4dCB3cHJldmlvdXMgd3FhbGwgd3N2ZXJiIHd1bmRvIHd2aW1pbmZvIHhpdCB4YWxsIHhtYXBjbGVhciB4bWFwIHhtZW51IHhub3JlbWFwIHhub3JlbWVudSB4dW5tYXAgeHVubWVudSB5YW5rIiwKYnVpbHRfaW46InN5bklEdHJhbnMgYXRhbjIgcmFuZ2UgbWF0Y2hhcmcgZGlkX2ZpbGV0eXBlIGFzaW4gZmVlZGtleXMgeG9yIGFyZ3YgY29tcGxldGVfY2hlY2sgYWRkIGdldHdpbnBvc3ggZ2V0cWZsaXN0IGdldHdpbnBvc3kgc2NyZWVuY29sIGNsZWFybWF0Y2hlcyBlbXB0eSBleHRlbmQgZ2V0Y21kcG9zIG16ZXZhbCBnYXJiYWdlY29sbGVjdCBzZXRyZWcgY2VpbCBzcXJ0IGRpZmZfaGxJRCBpbnB1dHNlY3JldCBnZXQgZ2V0ZnBlcm0gZ2V0cGlkIGZpbGV3cml0YWJsZSBzaGlmdHdpZHRoIG1heCBzaW5oIGlzZGlyZWN0b3J5IHN5bklEIHN5c3RlbSBpbnB1dHJlc3RvcmUgd2lubGluZSBhdGFuIHZpc3VhbG1vZGUgaW5wdXRsaXN0IHRhYnBhZ2V3aW5uciByb3VuZCBnZXRyZWd0eXBlIG1hcGNoZWNrIGhhc21hcHRvIGhpc3RkZWwgYXJnaWR4IGZpbmRmaWxlIHNoYTI1NiBleGlzdHMgdG91cHBlciBnZXRjbWRsaW5lIHRhZ2xpc3Qgc3RyaW5nIGdldG1hdGNoZXMgYnVmbnIgc3RyZnRpbWUgd2lud2lkdGggYnVmZXhpc3RzIHN0cnRyYW5zIHRhYnBhZ2VidWZsaXN0IHNldGNtZHBvcyByZW1vdGVfcmVhZCBwcmludGYgc2V0bG9jbGlzdCBnZXRwb3MgZ2V0bGluZSBidWZ3aW5uciBmbG9hdDJuciBsZW4gZ2V0Y21kdHlwZSBkaWZmX2ZpbGxlciBsdWFldmFsIHJlc29sdmUgbGliY2FsbG5yIGZvbGRjbG9zZWRlbmQgcmV2ZXJzZSBmaWx0ZXIgaGFzX2tleSBidWZuYW1lIHN0cjJmbG9hdCBzdHJsZW4gc2V0bGluZSBnZXRjaGFybW9kIHNldGJ1ZnZhciBpbmRleCBzZWFyY2hwb3Mgc2hlbGxlc2NhcGUgdW5kb2ZpbGUgZm9sZGNsb3NlZCBzZXRxZmxpc3QgYnVmbGlzdGVkIHN0cmNoYXJzIHN0cjJuciB2aXJ0Y29sIGZsb29yIHJlbW92ZSB1bmRvdHJlZSByZW1vdGVfZXhwciB3aW5oZWlnaHQgZ2V0dGFid2ludmFyIHJlbHRpbWUgY3Vyc29yIHRhYnBhZ2VuciBmaW5kZGlyIGxvY2FsdGltZSBhY29zIGdldGxvY2xpc3Qgc2VhcmNoIHRhbmggbWF0Y2hlbmQgcmVuYW1lIGdldHRhYnZhciBzdHJkaXNwbGF5d2lkdGggdHlwZSBhYnMgcHkzZXZhbCBzZXR3aW52YXIgdG9sb3dlciB3aWxkbWVudW1vZGUgbG9nMTAgc3BlbGxzdWdnZXN0IGJ1ZmxvYWRlZCBzeW5jb25jZWFsZWQgbmV4dG5vbmJsYW5rIHNlcnZlcjJjbGllbnQgY29tcGxldGUgc2V0dGFid2ludmFyIGV4ZWN1dGFibGUgaW5wdXQgd2luY29sIHNldG1hdGNoZXMgZ2V0ZnR5cGUgaGxJRCBpbnB1dHNhdmUgc2VhcmNocGFpciBvciBzY3JlZW5yb3cgbGluZSBzZXR0YWJ2YXIgaGlzdGFkZCBkZWVwY29weSBzdHJwYXJ0IHJlbW90ZV9wZWVrIGFuZCBldmFsIGdldGZ0aW1lIHN1Ym1hdGNoIHNjcmVlbmNoYXIgd2luc2F2ZXZpZXcgbWF0Y2hhZGQgbWtkaXIgc2NyZWVuYXR0ciBnZXRmb250bmFtZSBsaWJjYWxsIHJlbHRpbWVzdHIgZ2V0ZnNpemUgd2lubnIgaW52ZXJ0IHBvdyBnZXRidWZsaW5lIGJ5dGUybGluZSBzb3VuZGZvbGQgcmVwZWF0IGZuYW1lZXNjYXBlIHRhZ2ZpbGVzIHNpbiBzdHJ3aWR0aCBzcGVsbGJhZHdvcmQgdHJ1bmMgbWFwYXJnIGxvZyBsaXNwaW5kZW50IGhvc3RuYW1lIHNldHBvcyBnbG9icGF0aCByZW1vdGVfZm9yZWdyb3VuZCBnZXRjaGFyIHN5bklEYXR0ciBmbmFtZW1vZGlmeSBjc2NvcGVfY29ubmVjdGlvbiBzdHJpZHggd2luYnVmbnIgaW5kZW50IG1pbiBjb21wbGV0ZV9hZGQgbnIyY2hhciBzZWFyY2hwYWlycG9zIGlucHV0ZGlhbG9nIHZhbHVlcyBtYXRjaGxpc3QgaXRlbXMgaGxleGlzdHMgc3RycmlkeCBicm93c2VkaXIgZXhwYW5kIGZtb2QgcGF0aHNob3J0ZW4gbGluZTJieXRlIGFyZ2MgY291bnQgZ2V0d2ludmFyIGdsb2IgZm9sZHRleHRyZXN1bHQgZ2V0cmVnIGZvcmVncm91bmQgY29zaCBtYXRjaGRlbGV0ZSBoYXMgY2hhcjJuciBzaW1wbGlmeSBoaXN0Z2V0IHNlYXJjaGRlY2wgaWNvbnYgd2lucmVzdGNtZCBwdW12aXNpYmxlIHdyaXRlZmlsZSBmb2xkbGV2ZWwgaGFzbG9jYWxkaXIga2V5cyBjb3MgbWF0Y2hzdHIgZm9sZHRleHQgaGlzdG5yIHRhbiB0ZW1wbmFtZSBnZXRjd2QgYnl0ZWlkeCBnZXRidWZ2YXIgaXNsb2NrZWQgZXNjYXBlIGV2ZW50aGFuZGxlciByZW1vdGVfc2VuZCBzZXJ2ZXJsaXN0IHdpbnJlc3R2aWV3IHN5bnN0YWNrIHB5ZXZhbCBwcmV2bm9uYmxhbmsgcmVhZGZpbGUgY2luZGVudCBmaWxlcmVhZGFibGUgY2hhbmdlbnIgZXhwIgp9LGlsbGVnYWw6LzsvLGNvbnRhaW5zOltlLk5VTUJFUl9NT0RFLHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IiciLGVuZDoiJyIsCmlsbGVnYWw6IlxcbiJ9LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46LyIoXFwifFxuXFx8W14iXG5dKSoiLwp9LGUuQ09NTUVOVCgnIicsIiQiKSx7Y2xhc3NOYW1lOiJ2YXJpYWJsZSIsYmVnaW46L1tid3RnbHNhdl06W1x3XGRfXSovfSx7CmNsYXNzTmFtZToiZnVuY3Rpb24iLGJlZ2luS2V5d29yZHM6ImZ1bmN0aW9uIGZ1bmN0aW9uISIsZW5kOiIkIixyZWxldmFuY2U6MCwKY29udGFpbnM6W2UuVElUTEVfTU9ERSx7Y2xhc3NOYW1lOiJwYXJhbXMiLGJlZ2luOiJcXCgiLGVuZDoiXFwpIn1dfSx7CmNsYXNzTmFtZToic3ltYm9sIixiZWdpbjovPFtcdy1dKz4vfV19KX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiamF2YSIsKCgpPT57InVzZSBzdHJpY3QiCjt2YXIgZT0iXFwuKFswLTldKF8qWzAtOV0pKikiLG49IlswLTlhLWZBLUZdKF8qWzAtOWEtZkEtRl0pKiIsYT17CmNsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbewpiZWdpbjpgKFxcYihbMC05XShfKlswLTldKSopKCgke2V9KXxcXC4pP3woJHtlfSkpW2VFXVsrLV0/KFswLTldKF8qWzAtOV0pKilbZkZkRF0/XFxiYAp9LHtiZWdpbjpgXFxiKFswLTldKF8qWzAtOV0pKikoKCR7ZX0pW2ZGZERdP1xcYnxcXC4oW2ZGZERdXFxiKT8pYH0sewpiZWdpbjpgKCR7ZX0pW2ZGZERdP1xcYmB9LHtiZWdpbjoiXFxiKFswLTldKF8qWzAtOV0pKilbZkZkRF1cXGIifSx7CmJlZ2luOmBcXGIwW3hYXSgoJHtufSlcXC4/fCgke259KT9cXC4oJHtufSkpW3BQXVsrLV0/KFswLTldKF8qWzAtOV0pKilbZkZkRF0/XFxiYAp9LHtiZWdpbjoiXFxiKDB8WzEtOV0oXypbMC05XSkqKVtsTF0/XFxiIn0se2JlZ2luOmBcXGIwW3hYXSgke259KVtsTF0/XFxiYH0sewpiZWdpbjoiXFxiMChfKlswLTddKSpbbExdP1xcYiJ9LHtiZWdpbjoiXFxiMFtiQl1bMDFdKF8qWzAxXSkqW2xMXT9cXGIifV0sCnJlbGV2YW5jZTowfTtyZXR1cm4gZT0+ewp2YXIgbj0iZmFsc2Ugc3luY2hyb25pemVkIGludCBhYnN0cmFjdCBmbG9hdCBwcml2YXRlIGNoYXIgYm9vbGVhbiB2YXIgc3RhdGljIG51bGwgaWYgY29uc3QgZm9yIHRydWUgd2hpbGUgbG9uZyBzdHJpY3RmcCBmaW5hbGx5IHByb3RlY3RlZCBpbXBvcnQgbmF0aXZlIGZpbmFsIHZvaWQgZW51bSBlbHNlIGJyZWFrIHRyYW5zaWVudCBjYXRjaCBpbnN0YW5jZW9mIGJ5dGUgc3VwZXIgdm9sYXRpbGUgY2FzZSBhc3NlcnQgc2hvcnQgcGFja2FnZSBkZWZhdWx0IGRvdWJsZSBwdWJsaWMgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIHRocm93cyBwcm90ZWN0ZWQgcHVibGljIHByaXZhdGUgbW9kdWxlIHJlcXVpcmVzIGV4cG9ydHMgZG8iLHM9ewpjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJAW1x4YzAtXHUwMmI4YS16QS1aXyRdW1x4YzAtXHUwMmI4YS16QS1aXyQwLTldKiIsCmNvbnRhaW5zOlt7YmVnaW46L1woLyxlbmQ6L1wpLyxjb250YWluczpbInNlbGYiXX1dfTtjb25zdCByPWE7cmV0dXJuewpuYW1lOiJKYXZhIixhbGlhc2VzOlsianNwIl0sa2V5d29yZHM6bixpbGxlZ2FsOi88XC98Iy8sCmNvbnRhaW5zOltlLkNPTU1FTlQoIi9cXCpcXCoiLCJcXCovIix7cmVsZXZhbmNlOjAsY29udGFpbnM6W3tiZWdpbjovXHcrQC8sCnJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJkb2N0YWciLGJlZ2luOiJAW0EtWmEtel0rIn1dfSksewpiZWdpbjovaW1wb3J0IGphdmFcLlthLXpdK1wuLyxrZXl3b3JkczoiaW1wb3J0IixyZWxldmFuY2U6Mgp9LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLGUuQVBPU19TVFJJTkdfTU9ERSxlLlFVT1RFX1NUUklOR19NT0RFLHsKY2xhc3NOYW1lOiJjbGFzcyIsYmVnaW5LZXl3b3JkczoiY2xhc3MgaW50ZXJmYWNlIGVudW0iLGVuZDovW3s7PV0vLApleGNsdWRlRW5kOiEwLGtleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UgZW51bSIsaWxsZWdhbDovWzoiXFtcXV0vLGNvbnRhaW5zOlt7CmJlZ2luS2V5d29yZHM6ImV4dGVuZHMgaW1wbGVtZW50cyJ9LGUuVU5ERVJTQ09SRV9USVRMRV9NT0RFXX0sewpiZWdpbktleXdvcmRzOiJuZXcgdGhyb3cgcmV0dXJuIGVsc2UiLHJlbGV2YW5jZTowfSx7Y2xhc3NOYW1lOiJjbGFzcyIsCmJlZ2luOiJyZWNvcmRcXHMrIitlLlVOREVSU0NPUkVfSURFTlRfUkUrIlxccypcXCgiLHJldHVybkJlZ2luOiEwLGV4Y2x1ZGVFbmQ6ITAsCmVuZDovW3s7PV0vLGtleXdvcmRzOm4sY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJyZWNvcmQifSx7CmJlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRSsiXFxzKlxcKCIscmV0dXJuQmVnaW46ITAscmVsZXZhbmNlOjAsCmNvbnRhaW5zOltlLlVOREVSU0NPUkVfVElUTEVfTU9ERV19LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLywKa2V5d29yZHM6bixyZWxldmFuY2U6MCxjb250YWluczpbZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV0KfSxlLkNfTElORV9DT01NRU5UX01PREUsZS5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LHtjbGFzc05hbWU6ImZ1bmN0aW9uIiwKYmVnaW46IihbXHhjMC1cdTAyYjhhLXpBLVpfJF1bXHhjMC1cdTAyYjhhLXpBLVpfJDAtOV0qKDxbXHhjMC1cdTAyYjhhLXpBLVpfJF1bXHhjMC1cdTAyYjhhLXpBLVpfJDAtOV0qKFxccyosXFxzKltceGMwLVx1MDJiOGEtekEtWl8kXVtceGMwLVx1MDJiOGEtekEtWl8kMC05XSopKj4pP1xccyspKyIrZS5VTkRFUlNDT1JFX0lERU5UX1JFKyJcXHMqXFwoIiwKcmV0dXJuQmVnaW46ITAsZW5kOi9bezs9XS8sZXhjbHVkZUVuZDohMCxrZXl3b3JkczpuLGNvbnRhaW5zOlt7CmJlZ2luOmUuVU5ERVJTQ09SRV9JREVOVF9SRSsiXFxzKlxcKCIscmV0dXJuQmVnaW46ITAscmVsZXZhbmNlOjAsCmNvbnRhaW5zOltlLlVOREVSU0NPUkVfVElUTEVfTU9ERV19LHtjbGFzc05hbWU6InBhcmFtcyIsYmVnaW46L1woLyxlbmQ6L1wpLywKa2V5d29yZHM6bixyZWxldmFuY2U6MCwKY29udGFpbnM6W3MsZS5BUE9TX1NUUklOR19NT0RFLGUuUVVPVEVfU1RSSU5HX01PREUscixlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXQp9LGUuQ19MSU5FX0NPTU1FTlRfTU9ERSxlLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXX0scixzXX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJlbG0iLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+e2NvbnN0IG49ewp2YXJpYW50czpbZS5DT01NRU5UKCItLSIsIiQiKSxlLkNPTU1FTlQoL1x7LS8sLy1cfS8se2NvbnRhaW5zOlsic2VsZiJdfSldfSxpPXsKY2xhc3NOYW1lOiJ0eXBlIixiZWdpbjoiXFxiW0EtWl1bXFx3J10qIixyZWxldmFuY2U6MH0scz17YmVnaW46IlxcKCIsZW5kOiJcXCkiLAppbGxlZ2FsOiciJyxjb250YWluczpbe2NsYXNzTmFtZToidHlwZSIsCmJlZ2luOiJcXGJbQS1aXVtcXHddKihcXCgoXFwuXFwufCx8XFx3KylcXCkpPyJ9LG5dfTtyZXR1cm57bmFtZToiRWxtIiwKa2V5d29yZHM6ImxldCBpbiBpZiB0aGVuIGVsc2UgY2FzZSBvZiB3aGVyZSBtb2R1bGUgaW1wb3J0IGV4cG9zaW5nIHR5cGUgYWxpYXMgYXMgaW5maXggaW5maXhsIGluZml4ciBwb3J0IGVmZmVjdCBjb21tYW5kIHN1YnNjcmlwdGlvbiIsCmNvbnRhaW5zOlt7YmVnaW5LZXl3b3JkczoicG9ydCBlZmZlY3QgbW9kdWxlIixlbmQ6ImV4cG9zaW5nIiwKa2V5d29yZHM6InBvcnQgZWZmZWN0IG1vZHVsZSB3aGVyZSBjb21tYW5kIHN1YnNjcmlwdGlvbiBleHBvc2luZyIsCmNvbnRhaW5zOltzLG5dLGlsbGVnYWw6IlxcV1xcLnw7In0se2JlZ2luOiJpbXBvcnQiLGVuZDoiJCIsCmtleXdvcmRzOiJpbXBvcnQgYXMgZXhwb3NpbmciLGNvbnRhaW5zOltzLG5dLGlsbGVnYWw6IlxcV1xcLnw7In0se2JlZ2luOiJ0eXBlIiwKZW5kOiIkIixrZXl3b3JkczoidHlwZSBhbGlhcyIsY29udGFpbnM6W2kscyx7YmVnaW46L1x7LyxlbmQ6L1x9LywKY29udGFpbnM6cy5jb250YWluc30sbl19LHtiZWdpbktleXdvcmRzOiJpbmZpeCBpbmZpeGwgaW5maXhyIixlbmQ6IiQiLApjb250YWluczpbZS5DX05VTUJFUl9NT0RFLG5dfSx7YmVnaW46InBvcnQiLGVuZDoiJCIsa2V5d29yZHM6InBvcnQiLGNvbnRhaW5zOltuXQp9LHtjbGFzc05hbWU6InN0cmluZyIsYmVnaW46IidcXFxcPy4iLGVuZDoiJyIsaWxsZWdhbDoiLiIKfSxlLlFVT1RFX1NUUklOR19NT0RFLGUuQ19OVU1CRVJfTU9ERSxpLGUuaW5oZXJpdChlLlRJVExFX01PREUsewpiZWdpbjoiXltfYS16XVtcXHcnXSoifSksbix7YmVnaW46Ii0+fDwtIn1dLGlsbGVnYWw6LzsvfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInNjaGVtZSIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57CnZhciB0PSJbXlxcKFxcKVxcW1xcXVxce1xcfVwiLCdgOyN8XFxcXFxcc10rIixuPXskcGF0dGVybjp0LAoiYnVpbHRpbi1uYW1lIjoiY2FzZS1sYW1iZGEgY2FsbC9jYyBjbGFzcyBkZWZpbmUtY2xhc3MgZXhpdC1oYW5kbGVyIGZpZWxkIGltcG9ydCBpbmhlcml0IGluaXQtZmllbGQgaW50ZXJmYWNlIGxldCotdmFsdWVzIGxldC12YWx1ZXMgbGV0L2VjIG1peGluIG9wdC1sYW1iZGEgb3ZlcnJpZGUgcHJvdGVjdCBwcm92aWRlIHB1YmxpYyByZW5hbWUgcmVxdWlyZSByZXF1aXJlLWZvci1zeW50YXggc3ludGF4IHN5bnRheC1jYXNlIHN5bnRheC1lcnJvciB1bml0L3NpZyB1bmxlc3Mgd2hlbiB3aXRoLXN5bnRheCBhbmQgYmVnaW4gY2FsbC13aXRoLWN1cnJlbnQtY29udGludWF0aW9uIGNhbGwtd2l0aC1pbnB1dC1maWxlIGNhbGwtd2l0aC1vdXRwdXQtZmlsZSBjYXNlIGNvbmQgZGVmaW5lIGRlZmluZS1zeW50YXggZGVsYXkgZG8gZHluYW1pYy13aW5kIGVsc2UgZm9yLWVhY2ggaWYgbGFtYmRhIGxldCBsZXQqIGxldC1zeW50YXggbGV0cmVjIGxldHJlYy1zeW50YXggbWFwIG9yIHN5bnRheC1ydWxlcyAnICogKyAsICxAIC0gLi4uIC8gOyA8IDw9ID0gPT4gPiA+PSBgIGFicyBhY29zIGFuZ2xlIGFwcGVuZCBhcHBseSBhc2luIGFzc29jIGFzc3EgYXNzdiBhdGFuIGJvb2xlYW4/IGNhYXIgY2FkciBjYWxsLXdpdGgtaW5wdXQtZmlsZSBjYWxsLXdpdGgtb3V0cHV0LWZpbGUgY2FsbC13aXRoLXZhbHVlcyBjYXIgY2RkZGFyIGNkZGRkciBjZHIgY2VpbGluZyBjaGFyLT5pbnRlZ2VyIGNoYXItYWxwaGFiZXRpYz8gY2hhci1jaTw9PyBjaGFyLWNpPD8gY2hhci1jaT0/IGNoYXItY2k+PT8gY2hhci1jaT4/IGNoYXItZG93bmNhc2UgY2hhci1sb3dlci1jYXNlPyBjaGFyLW51bWVyaWM/IGNoYXItcmVhZHk/IGNoYXItdXBjYXNlIGNoYXItdXBwZXItY2FzZT8gY2hhci13aGl0ZXNwYWNlPyBjaGFyPD0/IGNoYXI8PyBjaGFyPT8gY2hhcj49PyBjaGFyPj8gY2hhcj8gY2xvc2UtaW5wdXQtcG9ydCBjbG9zZS1vdXRwdXQtcG9ydCBjb21wbGV4PyBjb25zIGNvcyBjdXJyZW50LWlucHV0LXBvcnQgY3VycmVudC1vdXRwdXQtcG9ydCBkZW5vbWluYXRvciBkaXNwbGF5IGVvZi1vYmplY3Q/IGVxPyBlcXVhbD8gZXF2PyBldmFsIGV2ZW4/IGV4YWN0LT5pbmV4YWN0IGV4YWN0PyBleHAgZXhwdCBmbG9vciBmb3JjZSBnY2QgaW1hZy1wYXJ0IGluZXhhY3QtPmV4YWN0IGluZXhhY3Q/IGlucHV0LXBvcnQ/IGludGVnZXItPmNoYXIgaW50ZWdlcj8gaW50ZXJhY3Rpb24tZW52aXJvbm1lbnQgbGNtIGxlbmd0aCBsaXN0IGxpc3QtPnN0cmluZyBsaXN0LT52ZWN0b3IgbGlzdC1yZWYgbGlzdC10YWlsIGxpc3Q/IGxvYWQgbG9nIG1hZ25pdHVkZSBtYWtlLXBvbGFyIG1ha2UtcmVjdGFuZ3VsYXIgbWFrZS1zdHJpbmcgbWFrZS12ZWN0b3IgbWF4IG1lbWJlciBtZW1xIG1lbXYgbWluIG1vZHVsbyBuZWdhdGl2ZT8gbmV3bGluZSBub3QgbnVsbC1lbnZpcm9ubWVudCBudWxsPyBudW1iZXItPnN0cmluZyBudW1iZXI/IG51bWVyYXRvciBvZGQ/IG9wZW4taW5wdXQtZmlsZSBvcGVuLW91dHB1dC1maWxlIG91dHB1dC1wb3J0PyBwYWlyPyBwZWVrLWNoYXIgcG9ydD8gcG9zaXRpdmU/IHByb2NlZHVyZT8gcXVhc2lxdW90ZSBxdW90ZSBxdW90aWVudCByYXRpb25hbD8gcmF0aW9uYWxpemUgcmVhZCByZWFkLWNoYXIgcmVhbC1wYXJ0IHJlYWw/IHJlbWFpbmRlciByZXZlcnNlIHJvdW5kIHNjaGVtZS1yZXBvcnQtZW52aXJvbm1lbnQgc2V0ISBzZXQtY2FyISBzZXQtY2RyISBzaW4gc3FydCBzdHJpbmcgc3RyaW5nLT5saXN0IHN0cmluZy0+bnVtYmVyIHN0cmluZy0+c3ltYm9sIHN0cmluZy1hcHBlbmQgc3RyaW5nLWNpPD0/IHN0cmluZy1jaTw/IHN0cmluZy1jaT0/IHN0cmluZy1jaT49PyBzdHJpbmctY2k+PyBzdHJpbmctY29weSBzdHJpbmctZmlsbCEgc3RyaW5nLWxlbmd0aCBzdHJpbmctcmVmIHN0cmluZy1zZXQhIHN0cmluZzw9PyBzdHJpbmc8PyBzdHJpbmc9PyBzdHJpbmc+PT8gc3RyaW5nPj8gc3RyaW5nPyBzdWJzdHJpbmcgc3ltYm9sLT5zdHJpbmcgc3ltYm9sPyB0YW4gdHJhbnNjcmlwdC1vZmYgdHJhbnNjcmlwdC1vbiB0cnVuY2F0ZSB2YWx1ZXMgdmVjdG9yIHZlY3Rvci0+bGlzdCB2ZWN0b3ItZmlsbCEgdmVjdG9yLWxlbmd0aCB2ZWN0b3ItcmVmIHZlY3Rvci1zZXQhIHdpdGgtaW5wdXQtZnJvbS1maWxlIHdpdGgtb3V0cHV0LXRvLWZpbGUgd3JpdGUgd3JpdGUtY2hhciB6ZXJvPyIKfSxyPXtjbGFzc05hbWU6ImxpdGVyYWwiLGJlZ2luOiIoI3R8I2Z8I1xcXFwiK3QrInwjXFxcXC4pIn0sYT17CmNsYXNzTmFtZToibnVtYmVyIix2YXJpYW50czpbe2JlZ2luOiIoLXxcXCspP1xcZCsoWy4vXVxcZCspPyIscmVsZXZhbmNlOjB9LHsKYmVnaW46IigtfFxcKyk/XFxkKyhbLi9dXFxkKyk/WytcXC1dKC18XFwrKT9cXGQrKFsuL11cXGQrKT9pIixyZWxldmFuY2U6MH0sewpiZWdpbjoiI2JbMC0xXSsoL1swLTFdKyk/In0se2JlZ2luOiIjb1swLTddKygvWzAtN10rKT8ifSx7CmJlZ2luOiIjeFswLTlhLWZdKygvWzAtOWEtZl0rKT8ifV19LGk9ZS5RVU9URV9TVFJJTkdfTU9ERSxjPVtlLkNPTU1FTlQoIjsiLCIkIix7CnJlbGV2YW5jZTowfSksZS5DT01NRU5UKCIjXFx8IiwiXFx8IyIpXSxzPXtiZWdpbjp0LHJlbGV2YW5jZTowfSxsPXsKY2xhc3NOYW1lOiJzeW1ib2wiLGJlZ2luOiInIit0fSxvPXtlbmRzV2l0aFBhcmVudDohMCxyZWxldmFuY2U6MH0sZz17dmFyaWFudHM6W3sKYmVnaW46LycvfSx7YmVnaW46ImAifV0sY29udGFpbnM6W3tiZWdpbjoiXFwoIixlbmQ6IlxcKSIsCmNvbnRhaW5zOlsic2VsZiIscixpLGEscyxsXX1dfSx1PXtjbGFzc05hbWU6Im5hbWUiLHJlbGV2YW5jZTowLGJlZ2luOnQsCmtleXdvcmRzOm59LGQ9e3ZhcmlhbnRzOlt7YmVnaW46IlxcKCIsZW5kOiJcXCkifSx7YmVnaW46IlxcWyIsZW5kOiJcXF0ifV0sCmNvbnRhaW5zOlt7YmVnaW46L2xhbWJkYS8sZW5kc1dpdGhQYXJlbnQ6ITAscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W3UsewpiZWdpbjovXCgvLGVuZDovXCkvLGVuZHNQYXJlbnQ6ITAsY29udGFpbnM6W3NdfV19LHUsb119CjtyZXR1cm4gby5jb250YWlucz1bcixhLGkscyxsLGcsZF0uY29uY2F0KGMpLHtuYW1lOiJTY2hlbWUiLGlsbGVnYWw6L1xTLywKY29udGFpbnM6W2UuU0hFQkFORygpLGEsaSxsLGcsZF0uY29uY2F0KGMpfX19KSgpKTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImNvZmZlZXNjcmlwdCIsKCgpPT57InVzZSBzdHJpY3QiCjtjb25zdCBlPVsiYXMiLCJpbiIsIm9mIiwiaWYiLCJmb3IiLCJ3aGlsZSIsImZpbmFsbHkiLCJ2YXIiLCJuZXciLCJmdW5jdGlvbiIsImRvIiwicmV0dXJuIiwidm9pZCIsImVsc2UiLCJicmVhayIsImNhdGNoIiwiaW5zdGFuY2VvZiIsIndpdGgiLCJ0aHJvdyIsImNhc2UiLCJkZWZhdWx0IiwidHJ5Iiwic3dpdGNoIiwiY29udGludWUiLCJ0eXBlb2YiLCJkZWxldGUiLCJsZXQiLCJ5aWVsZCIsImNvbnN0IiwiY2xhc3MiLCJkZWJ1Z2dlciIsImFzeW5jIiwiYXdhaXQiLCJzdGF0aWMiLCJpbXBvcnQiLCJmcm9tIiwiZXhwb3J0IiwiZXh0ZW5kcyJdLG49WyJ0cnVlIiwiZmFsc2UiLCJudWxsIiwidW5kZWZpbmVkIiwiTmFOIiwiSW5maW5pdHkiXSxhPVtdLmNvbmNhdChbInNldEludGVydmFsIiwic2V0VGltZW91dCIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJyZXF1aXJlIiwiZXhwb3J0cyIsImV2YWwiLCJpc0Zpbml0ZSIsImlzTmFOIiwicGFyc2VGbG9hdCIsInBhcnNlSW50IiwiZGVjb2RlVVJJIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZXNjYXBlIiwidW5lc2NhcGUiXSxbImFyZ3VtZW50cyIsInRoaXMiLCJzdXBlciIsImNvbnNvbGUiLCJ3aW5kb3ciLCJkb2N1bWVudCIsImxvY2FsU3RvcmFnZSIsIm1vZHVsZSIsImdsb2JhbCJdLFsiSW50bCIsIkRhdGFWaWV3IiwiTnVtYmVyIiwiTWF0aCIsIkRhdGUiLCJTdHJpbmciLCJSZWdFeHAiLCJPYmplY3QiLCJGdW5jdGlvbiIsIkJvb2xlYW4iLCJFcnJvciIsIlN5bWJvbCIsIlNldCIsIk1hcCIsIldlYWtTZXQiLCJXZWFrTWFwIiwiUHJveHkiLCJSZWZsZWN0IiwiSlNPTiIsIlByb21pc2UiLCJGbG9hdDY0QXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIkludDhBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJGbG9hdDMyQXJyYXkiLCJBcnJheSIsIlVpbnQ4QXJyYXkiLCJVaW50OENsYW1wZWRBcnJheSIsIkFycmF5QnVmZmVyIl0sWyJFdmFsRXJyb3IiLCJJbnRlcm5hbEVycm9yIiwiUmFuZ2VFcnJvciIsIlJlZmVyZW5jZUVycm9yIiwiU3ludGF4RXJyb3IiLCJUeXBlRXJyb3IiLCJVUklFcnJvciJdKQo7cmV0dXJuIHI9Pntjb25zdCB0PXsKa2V5d29yZDplLmNvbmNhdChbInRoZW4iLCJ1bmxlc3MiLCJ1bnRpbCIsImxvb3AiLCJieSIsIndoZW4iLCJhbmQiLCJvciIsImlzIiwiaXNudCIsIm5vdCJdKS5maWx0ZXIoKGk9WyJ2YXIiLCJjb25zdCIsImxldCIsImZ1bmN0aW9uIiwic3RhdGljIl0sCmU9PiFpLmluY2x1ZGVzKGUpKSkuam9pbigiICIpLApsaXRlcmFsOm4uY29uY2F0KFsieWVzIiwibm8iLCJvbiIsIm9mZiJdKS5qb2luKCIgIiksCmJ1aWx0X2luOmEuY29uY2F0KFsibnBtIiwicHJpbnQiXSkuam9pbigiICIpfTt2YXIgaQo7Y29uc3Qgcz0iW0EtWmEteiRfXVswLTlBLVphLXokX10qIixvPXtjbGFzc05hbWU6InN1YnN0IixiZWdpbjovI1x7LyxlbmQ6L1x9LywKa2V5d29yZHM6dH0sYz1bci5CSU5BUllfTlVNQkVSX01PREUsci5pbmhlcml0KHIuQ19OVU1CRVJfTU9ERSx7c3RhcnRzOnsKZW5kOiIoXFxzKi8pPyIscmVsZXZhbmNlOjB9fSkse2NsYXNzTmFtZToic3RyaW5nIix2YXJpYW50czpbe2JlZ2luOi8nJycvLAplbmQ6LycnJy8sY29udGFpbnM6W3IuQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjovJy8sZW5kOi8nLywKY29udGFpbnM6W3IuQkFDS1NMQVNIX0VTQ0FQRV19LHtiZWdpbjovIiIiLyxlbmQ6LyIiIi8sCmNvbnRhaW5zOltyLkJBQ0tTTEFTSF9FU0NBUEUsb119LHtiZWdpbjovIi8sZW5kOi8iLywKY29udGFpbnM6W3IuQkFDS1NMQVNIX0VTQ0FQRSxvXX1dfSx7Y2xhc3NOYW1lOiJyZWdleHAiLHZhcmlhbnRzOlt7YmVnaW46Ii8vLyIsCmVuZDoiLy8vIixjb250YWluczpbbyxyLkhBU0hfQ09NTUVOVF9NT0RFXX0se2JlZ2luOiIvL1tnaW1dezAsM30oPz1cXFcpIiwKcmVsZXZhbmNlOjB9LHtiZWdpbjovXC8oPyFbICpdKS4qPyg/IVtcXF0pLlwvW2dpbV17MCwzfSg/PVxXKS99XX0se2JlZ2luOiJAIitzCn0se3N1Ykxhbmd1YWdlOiJqYXZhc2NyaXB0IixleGNsdWRlQmVnaW46ITAsZXhjbHVkZUVuZDohMCx2YXJpYW50czpbewpiZWdpbjoiYGBgIixlbmQ6ImBgYCJ9LHtiZWdpbjoiYCIsZW5kOiJgIn1dfV07by5jb250YWlucz1jCjtjb25zdCBsPXIuaW5oZXJpdChyLlRJVExFX01PREUse2JlZ2luOnN9KSxkPSIoXFwoLipcXClcXHMqKT9cXEJbLT1dPiIsZz17CmNsYXNzTmFtZToicGFyYW1zIixiZWdpbjoiXFwoW15cXChdIixyZXR1cm5CZWdpbjohMCxjb250YWluczpbe2JlZ2luOi9cKC8sCmVuZDovXCkvLGtleXdvcmRzOnQsY29udGFpbnM6WyJzZWxmIl0uY29uY2F0KGMpfV19O3JldHVybntuYW1lOiJDb2ZmZWVTY3JpcHQiLAphbGlhc2VzOlsiY29mZmVlIiwiY3NvbiIsImljZWQiXSxrZXl3b3Jkczp0LGlsbGVnYWw6L1wvXCovLApjb250YWluczpjLmNvbmNhdChbci5DT01NRU5UKCIjIyMiLCIjIyMiKSxyLkhBU0hfQ09NTUVOVF9NT0RFLHsKY2xhc3NOYW1lOiJmdW5jdGlvbiIsYmVnaW46Il5cXHMqIitzKyJcXHMqPVxccyoiK2QsZW5kOiJbLT1dPiIscmV0dXJuQmVnaW46ITAsCmNvbnRhaW5zOltsLGddfSx7YmVnaW46L1s6XCgsPV1ccyovLHJlbGV2YW5jZTowLGNvbnRhaW5zOlt7Y2xhc3NOYW1lOiJmdW5jdGlvbiIsCmJlZ2luOmQsZW5kOiJbLT1dPiIscmV0dXJuQmVnaW46ITAsY29udGFpbnM6W2ddfV19LHtjbGFzc05hbWU6ImNsYXNzIiwKYmVnaW5LZXl3b3JkczoiY2xhc3MiLGVuZDoiJCIsaWxsZWdhbDovWzo9IlxbXF1dLyxjb250YWluczpbewpiZWdpbktleXdvcmRzOiJleHRlbmRzIixlbmRzV2l0aFBhcmVudDohMCxpbGxlZ2FsOi9bOj0iXFtcXV0vLGNvbnRhaW5zOltsXX0sbF0KfSx7YmVnaW46cysiOiIsZW5kOiI6IixyZXR1cm5CZWdpbjohMCxyZXR1cm5FbmQ6ITAscmVsZXZhbmNlOjB9XSl9fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiZGFydCIsKCgpPT57InVzZSBzdHJpY3QiO3JldHVybiBlPT57Y29uc3Qgbj17CmNsYXNzTmFtZToic3Vic3QiLHZhcmlhbnRzOlt7YmVnaW46IlxcJFtBLVphLXowLTlfXSsifV19LGE9e2NsYXNzTmFtZToic3Vic3QiLAp2YXJpYW50czpbe2JlZ2luOi9cJFx7LyxlbmQ6L1x9L31dLGtleXdvcmRzOiJ0cnVlIGZhbHNlIG51bGwgdGhpcyBpcyBuZXcgc3VwZXIiCn0sdD17Y2xhc3NOYW1lOiJzdHJpbmciLHZhcmlhbnRzOlt7YmVnaW46InInJyciLGVuZDoiJycnIn0se2JlZ2luOidyIiIiJywKZW5kOiciIiInfSx7YmVnaW46InInIixlbmQ6IiciLGlsbGVnYWw6IlxcbiJ9LHtiZWdpbjonciInLGVuZDonIicsaWxsZWdhbDoiXFxuIgp9LHtiZWdpbjoiJycnIixlbmQ6IicnJyIsY29udGFpbnM6W2UuQkFDS1NMQVNIX0VTQ0FQRSxuLGFdfSx7YmVnaW46JyIiIicsCmVuZDonIiIiJyxjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLG4sYV19LHtiZWdpbjoiJyIsZW5kOiInIixpbGxlZ2FsOiJcXG4iLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLG4sYV19LHtiZWdpbjonIicsZW5kOiciJyxpbGxlZ2FsOiJcXG4iLApjb250YWluczpbZS5CQUNLU0xBU0hfRVNDQVBFLG4sYV19XX07YS5jb250YWlucz1bZS5DX05VTUJFUl9NT0RFLHRdCjtjb25zdCBpPVsiQ29tcGFyYWJsZSIsIkRhdGVUaW1lIiwiRHVyYXRpb24iLCJGdW5jdGlvbiIsIkl0ZXJhYmxlIiwiSXRlcmF0b3IiLCJMaXN0IiwiTWFwIiwiTWF0Y2giLCJPYmplY3QiLCJQYXR0ZXJuIiwiUmVnRXhwIiwiU2V0IiwiU3RvcHdhdGNoIiwiU3RyaW5nIiwiU3RyaW5nQnVmZmVyIiwiU3RyaW5nU2luayIsIlN5bWJvbCIsIlR5cGUiLCJVcmkiLCJib29sIiwiZG91YmxlIiwiaW50IiwibnVtIiwiRWxlbWVudCIsIkVsZW1lbnRMaXN0Il0scj1pLm1hcCgoZT0+ZSsiPyIpKQo7cmV0dXJue25hbWU6IkRhcnQiLGtleXdvcmRzOnsKa2V5d29yZDoiYWJzdHJhY3QgYXMgYXNzZXJ0IGFzeW5jIGF3YWl0IGJyZWFrIGNhc2UgY2F0Y2ggY2xhc3MgY29uc3QgY29udGludWUgY292YXJpYW50IGRlZmF1bHQgZGVmZXJyZWQgZG8gZHluYW1pYyBlbHNlIGVudW0gZXhwb3J0IGV4dGVuZHMgZXh0ZW5zaW9uIGV4dGVybmFsIGZhY3RvcnkgZmFsc2UgZmluYWwgZmluYWxseSBmb3IgRnVuY3Rpb24gZ2V0IGhpZGUgaWYgaW1wbGVtZW50cyBpbXBvcnQgaW4gaW5mZXJmYWNlIGlzIGxhdGUgbGlicmFyeSBtaXhpbiBuZXcgbnVsbCBvbiBvcGVyYXRvciBwYXJ0IHJlcXVpcmVkIHJldGhyb3cgcmV0dXJuIHNldCBzaG93IHN0YXRpYyBzdXBlciBzd2l0Y2ggc3luYyB0aGlzIHRocm93IHRydWUgdHJ5IHR5cGVkZWYgdmFyIHZvaWQgd2hpbGUgd2l0aCB5aWVsZCIsCmJ1aWx0X2luOmkuY29uY2F0KHIpLmNvbmNhdChbIk5ldmVyIiwiTnVsbCIsImR5bmFtaWMiLCJwcmludCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ3aW5kb3ciXSkuam9pbigiICIpLAokcGF0dGVybjovW0EtWmEtel1bQS1aYS16MC05X10qXD8/L30sY29udGFpbnM6W3QsZS5DT01NRU5UKCIvXFwqXFwqIiwiXFwqLyIsewpzdWJMYW5ndWFnZToibWFya2Rvd24iLHJlbGV2YW5jZTowfSksZS5DT01NRU5UKCIvLy8rXFxzKiIsIiQiLHtjb250YWluczpbewpzdWJMYW5ndWFnZToibWFya2Rvd24iLGJlZ2luOiIuIixlbmQ6IiQiLHJlbGV2YW5jZTowfV0KfSksZS5DX0xJTkVfQ09NTUVOVF9NT0RFLGUuQ19CTE9DS19DT01NRU5UX01PREUse2NsYXNzTmFtZToiY2xhc3MiLApiZWdpbktleXdvcmRzOiJjbGFzcyBpbnRlcmZhY2UiLGVuZDovXHsvLGV4Y2x1ZGVFbmQ6ITAsY29udGFpbnM6W3sKYmVnaW5LZXl3b3JkczoiZXh0ZW5kcyBpbXBsZW1lbnRzIn0sZS5VTkRFUlNDT1JFX1RJVExFX01PREVdfSxlLkNfTlVNQkVSX01PREUsewpjbGFzc05hbWU6Im1ldGEiLGJlZ2luOiJAW0EtWmEtel0rIn0se2JlZ2luOiI9PiJ9XX19fSkoKSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJzbWFsbHRhbGsiLCgoKT0+eyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZT0+ewpjb25zdCBuPSJbYS16XVthLXpBLVowLTlfXSoiLGE9e2NsYXNzTmFtZToic3RyaW5nIixiZWdpbjoiXFwkLnsxfSJ9LHM9ewpjbGFzc05hbWU6InN5bWJvbCIsYmVnaW46IiMiK2UuVU5ERVJTQ09SRV9JREVOVF9SRX07cmV0dXJue25hbWU6IlNtYWxsdGFsayIsCmFsaWFzZXM6WyJzdCJdLGtleXdvcmRzOiJzZWxmIHN1cGVyIG5pbCB0cnVlIGZhbHNlIHRoaXNDb250ZXh0IiwKY29udGFpbnM6W2UuQ09NTUVOVCgnIicsJyInKSxlLkFQT1NfU1RSSU5HX01PREUse2NsYXNzTmFtZToidHlwZSIsCmJlZ2luOiJcXGJbQS1aXVtBLVphLXowLTlfXSoiLHJlbGV2YW5jZTowfSx7YmVnaW46bisiOiIscmVsZXZhbmNlOjAKfSxlLkNfTlVNQkVSX01PREUscyxhLHtiZWdpbjoiXFx8WyBdKiIrbisiKFsgXSsiK24rIikqWyBdKlxcfCIscmV0dXJuQmVnaW46ITAsCmVuZDovXHwvLGlsbGVnYWw6L1xTLyxjb250YWluczpbe2JlZ2luOiIoXFx8WyBdKik/IitufV19LHtiZWdpbjoiI1xcKCIsCmVuZDoiXFwpIixjb250YWluczpbZS5BUE9TX1NUUklOR19NT0RFLGEsZS5DX05VTUJFUl9NT0RFLHNdfV19fX0pKCkpO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiYXJkdWlubyIsKCgpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoZSl7CnJldHVybigoLi4uZSk9PmUubWFwKChlPT4oZT0+ZT8ic3RyaW5nIj09dHlwZW9mIGU/ZTplLnNvdXJjZTpudWxsKShlKSkpLmpvaW4oIiIpKSgiKCIsZSwiKT8iKQp9cmV0dXJuIHQ9Pntjb25zdCByPWZ1bmN0aW9uKHQpe2NvbnN0IHI9KHQ9Pntjb25zdCByPXQuQ09NTUVOVCgiLy8iLCIkIix7CmNvbnRhaW5zOlt7YmVnaW46L1xcXG4vfV0KfSksbj0iW2EtekEtWl9dXFx3Kjo6IixpPSIoZGVjbHR5cGVcXChhdXRvXFwpfCIrZShuKSsiW2EtekEtWl9dXFx3KiIrZSgiPFtePD5dKz4iKSsiKSIsYT17CmNsYXNzTmFtZToia2V5d29yZCIsYmVnaW46IlxcYlthLXpcXGRfXSpfdFxcYiJ9LHM9e2NsYXNzTmFtZToic3RyaW5nIiwKdmFyaWFudHM6W3tiZWdpbjonKHU4P3xVfEwpPyInLGVuZDonIicsaWxsZWdhbDoiXFxuIiwKY29udGFpbnM6W3QuQkFDS1NMQVNIX0VTQ0FQRV19LHsKYmVnaW46Iih1OD98VXxMKT8nKFxcXFwoeFswLTlBLUZhLWZdezJ9fHVbMC05QS1GYS1mXXs0LDh9fFswLTddezN9fFxcUyl8LikiLAplbmQ6IiciLGlsbGVnYWw6Ii4ifSx0LkVORF9TQU1FX0FTX0JFR0lOKHsKYmVnaW46Lyg/OnU4P3xVfEwpP1IiKFteKClcXCBdezAsMTZ9KVwoLyxlbmQ6L1wpKFteKClcXCBdezAsMTZ9KSIvfSldfSxvPXsKY2xhc3NOYW1lOiJudW1iZXIiLHZhcmlhbnRzOlt7YmVnaW46IlxcYigwYlswMSddKykifSx7CmJlZ2luOiIoLT8pXFxiKFtcXGQnXSsoXFwuW1xcZCddKik/fFxcLltcXGQnXSspKHV8VXxsfEx8dWx8VUx8ZnxGfGJ8QikifSx7CmJlZ2luOiIoLT8pKFxcYjBbeFhdW2EtZkEtRjAtOSddK3woXFxiW1xcZCddKyhcXC5bXFxkJ10qKT98XFwuW1xcZCddKykoW2VFXVstK10/W1xcZCddKyk/KSIKfV0scmVsZXZhbmNlOjB9LGw9e2NsYXNzTmFtZToibWV0YSIsYmVnaW46LyNccypbYS16XStcYi8sZW5kOi8kLyxrZXl3b3Jkczp7CiJtZXRhLWtleXdvcmQiOiJpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSBwcmFnbWEgX1ByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZSIKfSxjb250YWluczpbe2JlZ2luOi9cXFxuLyxyZWxldmFuY2U6MH0sdC5pbmhlcml0KHMse2NsYXNzTmFtZToibWV0YS1zdHJpbmcifSksewpjbGFzc05hbWU6Im1ldGEtc3RyaW5nIixiZWdpbjovPC4qPz4vLGVuZDovJC8saWxsZWdhbDoiXFxuIgp9LHIsdC5DX0JMT0NLX0NPTU1FTlRfTU9ERV19LGM9e2NsYXNzTmFtZToidGl0bGUiLGJlZ2luOmUobikrdC5JREVOVF9SRSwKcmVsZXZhbmNlOjB9LGQ9ZShuKSt0LklERU5UX1JFKyJcXHMqXFwoIix1PXsKa2V5d29yZDoiaW50IGZsb2F0IHdoaWxlIHByaXZhdGUgY2hhciBjaGFyOF90IGNoYXIxNl90IGNoYXIzMl90IGNhdGNoIGltcG9ydCBtb2R1bGUgZXhwb3J0IHZpcnR1YWwgb3BlcmF0b3Igc2l6ZW9mIGR5bmFtaWNfY2FzdHwxMCB0eXBlZGVmIGNvbnN0X2Nhc3R8MTAgY29uc3QgZm9yIHN0YXRpY19jYXN0fDEwIHVuaW9uIG5hbWVzcGFjZSB1bnNpZ25lZCBsb25nIHZvbGF0aWxlIHN0YXRpYyBwcm90ZWN0ZWQgYm9vbCB0ZW1wbGF0ZSBtdXRhYmxlIGlmIHB1YmxpYyBmcmllbmQgZG8gZ290byBhdXRvIHZvaWQgZW51bSBlbHNlIGJyZWFrIGV4dGVybiB1c2luZyBhc20gY2FzZSB0eXBlaWQgd2NoYXJfdCBzaG9ydCByZWludGVycHJldF9jYXN0fDEwIGRlZmF1bHQgZG91YmxlIHJlZ2lzdGVyIGV4cGxpY2l0IHNpZ25lZCB0eXBlbmFtZSB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgaW5saW5lIGRlbGV0ZSBhbGlnbmFzIGFsaWdub2YgY29uc3RleHByIGNvbnN0ZXZhbCBjb25zdGluaXQgZGVjbHR5cGUgY29uY2VwdCBjb19hd2FpdCBjb19yZXR1cm4gY29feWllbGQgcmVxdWlyZXMgbm9leGNlcHQgc3RhdGljX2Fzc2VydCB0aHJlYWRfbG9jYWwgcmVzdHJpY3QgZmluYWwgb3ZlcnJpZGUgYXRvbWljX2Jvb2wgYXRvbWljX2NoYXIgYXRvbWljX3NjaGFyIGF0b21pY191Y2hhciBhdG9taWNfc2hvcnQgYXRvbWljX3VzaG9ydCBhdG9taWNfaW50IGF0b21pY191aW50IGF0b21pY19sb25nIGF0b21pY191bG9uZyBhdG9taWNfbGxvbmcgYXRvbWljX3VsbG9uZyBuZXcgdGhyb3cgcmV0dXJuIGFuZCBhbmRfZXEgYml0YW5kIGJpdG9yIGNvbXBsIG5vdCBub3RfZXEgb3Igb3JfZXEgeG9yIHhvcl9lcSIsCmJ1aWx0X2luOiJzdGQgc3RyaW5nIHdzdHJpbmcgY2luIGNvdXQgY2VyciBjbG9nIHN0ZGluIHN0ZG91dCBzdGRlcnIgc3RyaW5nc3RyZWFtIGlzdHJpbmdzdHJlYW0gb3N0cmluZ3N0cmVhbSBhdXRvX3B0ciBkZXF1ZSBsaXN0IHF1ZXVlIHN0YWNrIHZlY3RvciBtYXAgc2V0IHBhaXIgYml0c2V0IG11bHRpc2V0IG11bHRpbWFwIHVub3JkZXJlZF9zZXQgdW5vcmRlcmVkX21hcCB1bm9yZGVyZWRfbXVsdGlzZXQgdW5vcmRlcmVkX211bHRpbWFwIHByaW9yaXR5X3F1ZXVlIG1ha2VfcGFpciBhcnJheSBzaGFyZWRfcHRyIGFib3J0IHRlcm1pbmF0ZSBhYnMgYWNvcyBhc2luIGF0YW4yIGF0YW4gY2FsbG9jIGNlaWwgY29zaCBjb3MgZXhpdCBleHAgZmFicyBmbG9vciBmbW9kIGZwcmludGYgZnB1dHMgZnJlZSBmcmV4cCBmc2NhbmYgZnV0dXJlIGlzYWxudW0gaXNhbHBoYSBpc2NudHJsIGlzZGlnaXQgaXNncmFwaCBpc2xvd2VyIGlzcHJpbnQgaXNwdW5jdCBpc3NwYWNlIGlzdXBwZXIgaXN4ZGlnaXQgdG9sb3dlciB0b3VwcGVyIGxhYnMgbGRleHAgbG9nMTAgbG9nIG1hbGxvYyByZWFsbG9jIG1lbWNociBtZW1jbXAgbWVtY3B5IG1lbXNldCBtb2RmIHBvdyBwcmludGYgcHV0Y2hhciBwdXRzIHNjYW5mIHNpbmggc2luIHNucHJpbnRmIHNwcmludGYgc3FydCBzc2NhbmYgc3RyY2F0IHN0cmNociBzdHJjbXAgc3RyY3B5IHN0cmNzcG4gc3RybGVuIHN0cm5jYXQgc3RybmNtcCBzdHJuY3B5IHN0cnBicmsgc3RycmNociBzdHJzcG4gc3Ryc3RyIHRhbmggdGFuIHZmcHJpbnRmIHZwcmludGYgdnNwcmludGYgZW5kbCBpbml0aWFsaXplcl9saXN0IHVuaXF1ZV9wdHIgX0Jvb2wgY29tcGxleCBfQ29tcGxleCBpbWFnaW5hcnkgX0ltYWdpbmFyeSIsCmxpdGVyYWw6InRydWUgZmFsc2UgbnVsbHB0ciBOVUxMIn0sbT1bbCxhLHIsdC5DX0JMT0NLX0NPTU1FTlRfTU9ERSxvLHNdLHA9ewp2YXJpYW50czpbe2JlZ2luOi89LyxlbmQ6LzsvfSx7YmVnaW46L1woLyxlbmQ6L1wpL30sewpiZWdpbktleXdvcmRzOiJuZXcgdGhyb3cgcmV0dXJuIGVsc2UiLGVuZDovOy99XSxrZXl3b3Jkczp1LGNvbnRhaW5zOm0uY29uY2F0KFt7CmJlZ2luOi9cKC8sZW5kOi9cKS8sa2V5d29yZHM6dSxjb250YWluczptLmNvbmNhdChbInNlbGYiXSkscmVsZXZhbmNlOjB9XSksCnJlbGV2YW5jZTowfSxnPXtjbGFzc05hbWU6ImZ1bmN0aW9uIixiZWdpbjoiKCIraSsiW1xcKiZcXHNdKykrIitkLApyZXR1cm5CZWdpbjohMCxlbmQ6L1t7Oz1dLyxleGNsdWRlRW5kOiEwLGtleXdvcmRzOnUsaWxsZWdhbDovW15cd1xzXComOjw+XS8sCmNvbnRhaW5zOlt7YmVnaW46ImRlY2x0eXBlXFwoYXV0b1xcKSIsa2V5d29yZHM6dSxyZWxldmFuY2U6MH0se2JlZ2luOmQsCnJldHVybkJlZ2luOiEwLGNvbnRhaW5zOltjXSxyZWxldmFuY2U6MH0se2NsYXNzTmFtZToicGFyYW1zIixiZWdpbjovXCgvLAplbmQ6L1wpLyxrZXl3b3Jkczp1LHJlbGV2YW5jZTowLGNvbnRhaW5zOltyLHQuQ19CTE9DS19DT01NRU5UX01PREUscyxvLGEsewpiZWdpbjovXCgvLGVuZDovXCkvLGtleXdvcmRzOnUscmVsZXZhbmNlOjAsCmNvbnRhaW5zOlsic2VsZiIscix0LkNfQkxPQ0tfQ09NTUVOVF9NT0RFLHMsbyxhXX1dCn0sYSxyLHQuQ19CTE9DS19DT01NRU5UX01PREUsbF19O3JldHVybnsKYWxpYXNlczpbImMiLCJjYyIsImgiLCJjKysiLCJoKysiLCJocHAiLCJoaCIsImh4eCIsImN4eCJdLGtleXdvcmRzOnUsCmRpc2FibGVBdXRvZGV0ZWN0OiEwLGlsbGVnYWw6IjwvIixjb250YWluczpbXS5jb25jYXQocCxnLG0sW2wsewpiZWdpbjoiXFxiKGRlcXVlfGxpc3R8cXVldWV8cHJpb3JpdHlfcXVldWV8cGFpcnxzdGFja3x2ZWN0b3J8bWFwfHNldHxiaXRzZXR8bXVsdGlzZXR8bXVsdGltYXB8dW5vcmRlcmVkX21hcHx1bm9yZGVyZWRfc2V0fHVub3JkZXJlZF9tdWx0aXNldHx1bm9yZGVyZWRfbXVsdGltYXB8YXJyYXkpXFxzKjwiLAplbmQ6Ij4iLGtleXdvcmRzOnUsY29udGFpbnM6WyJzZWxmIixhXX0se2JlZ2luOnQuSURFTlRfUkUrIjo6IixrZXl3b3Jkczp1fSx7CmNsYXNzTmFtZToiY2xhc3MiLGJlZ2luS2V5d29yZHM6ImVudW0gY2xhc3Mgc3RydWN0IHVuaW9uIixlbmQ6L1t7Ozo8Pj1dLywKY29udGFpbnM6W3tiZWdpbktleXdvcmRzOiJmaW5hbCBjbGFzcyBzdHJ1Y3QifSx0LlRJVExFX01PREVdfV0pLGV4cG9ydHM6ewpwcmVwcm9jZXNzb3I6bCxzdHJpbmdzOnMsa2V5d29yZHM6dX19fSkodCkKO3JldHVybiByLmRpc2FibGVBdXRvZGV0ZWN0PSExLHIubmFtZT0iQysrIiwKci5hbGlhc2VzPVsiY2MiLCJjKysiLCJoKysiLCJocHAiLCJoaCIsImh4eCIsImN4eCJdLHJ9KHQpLG49ci5rZXl3b3Jkcwo7cmV0dXJuIG4ua2V5d29yZCs9IiBib29sZWFuIGJ5dGUgd29yZCBTdHJpbmciLApuLmxpdGVyYWwrPSIgRElHSVRBTF9NRVNTQUdFIEZJUk1BVEFfU1RSSU5HIEFOQUxPR19NRVNTQUdFIFJFUE9SVF9ESUdJVEFMIFJFUE9SVF9BTkFMT0cgSU5QVVRfUFVMTFVQIFNFVF9QSU5fTU9ERSBJTlRFUk5BTDJWNTYgU1lTVEVNX1JFU0VUIExFRF9CVUlMVElOIElOVEVSTkFMMVYxIFNZU0VYX1NUQVJUIElOVEVSTkFMIEVYVEVSTkFMIERFRkFVTFQgT1VUUFVUIElOUFVUIEhJR0ggTE9XIiwKbi5idWlsdF9pbis9IiBzZXR1cCBsb29wIEtleWJvYXJkQ29udHJvbGxlciBNb3VzZUNvbnRyb2xsZXIgU29mdHdhcmVTZXJpYWwgRXRoZXJuZXRTZXJ2ZXIgRXRoZXJuZXRDbGllbnQgTGlxdWlkQ3J5c3RhbCBSb2JvdENvbnRyb2wgR1NNVm9pY2VDYWxsIEV0aGVybmV0VURQIEVzcGxvcmFURlQgSHR0cENsaWVudCBSb2JvdE1vdG9yIFdpRmlDbGllbnQgR1NNU2Nhbm5lciBGaWxlU3lzdGVtIFNjaGVkdWxlciBHU01TZXJ2ZXIgWXVuQ2xpZW50IFl1blNlcnZlciBJUEFkZHJlc3MgR1NNQ2xpZW50IEdTTU1vZGVtIEtleWJvYXJkIEV0aGVybmV0IENvbnNvbGUgR1NNQmFuZCBFc3Bsb3JhIFN0ZXBwZXIgUHJvY2VzcyBXaUZpVURQIEdTTV9TTVMgTWFpbGJveCBVU0JIb3N0IEZpcm1hdGEgUEltYWdlIENsaWVudCBTZXJ2ZXIgR1NNUElOIEZpbGVJTyBCcmlkZ2UgU2VyaWFsIEVFUFJPTSBTdHJlYW0gTW91c2UgQXVkaW8gU2Vydm8gRmlsZSBUYXNrIEdQUlMgV2lGaSBXaXJlIFRGVCBHU00gU1BJIFNEIHJ1blNoZWxsQ29tbWFuZEFzeW5jaHJvbm91c2x5IGFuYWxvZ1dyaXRlUmVzb2x1dGlvbiByZXRyaWV2ZUNhbGxpbmdOdW1iZXIgcHJpbnRGaXJtd2FyZVZlcnNpb24gYW5hbG9nUmVhZFJlc29sdXRpb24gc2VuZERpZ2l0YWxQb3J0UGFpciBub0xpc3Rlbk9uTG9jYWxob3N0IHJlYWRKb3lzdGlja0J1dHRvbiBzZXRGaXJtd2FyZVZlcnNpb24gcmVhZEpveXN0aWNrU3dpdGNoIHNjcm9sbERpc3BsYXlSaWdodCBnZXRWb2ljZUNhbGxTdGF0dXMgc2Nyb2xsRGlzcGxheUxlZnQgd3JpdGVNaWNyb3NlY29uZHMgZGVsYXlNaWNyb3NlY29uZHMgYmVnaW5UcmFuc21pc3Npb24gZ2V0U2lnbmFsU3RyZW5ndGggcnVuQXN5bmNocm9ub3VzbHkgZ2V0QXN5bmNocm9ub3VzbHkgbGlzdGVuT25Mb2NhbGhvc3QgZ2V0Q3VycmVudENhcnJpZXIgcmVhZEFjY2VsZXJvbWV0ZXIgbWVzc2FnZUF2YWlsYWJsZSBzZW5kRGlnaXRhbFBvcnRzIGxpbmVGb2xsb3dDb25maWcgY291bnRyeU5hbWVXcml0ZSBydW5TaGVsbENvbW1hbmQgcmVhZFN0cmluZ1VudGlsIHJld2luZERpcmVjdG9yeSByZWFkVGVtcGVyYXR1cmUgc2V0Q2xvY2tEaXZpZGVyIHJlYWRMaWdodFNlbnNvciBlbmRUcmFuc21pc3Npb24gYW5hbG9nUmVmZXJlbmNlIGRldGFjaEludGVycnVwdCBjb3VudHJ5TmFtZVJlYWQgYXR0YWNoSW50ZXJydXB0IGVuY3J5cHRpb25UeXBlIHJlYWRCeXRlc1VudGlsIHJvYm90TmFtZVdyaXRlIHJlYWRNaWNyb3Bob25lIHJvYm90TmFtZVJlYWQgY2l0eU5hbWVXcml0ZSB1c2VyTmFtZVdyaXRlIHJlYWRKb3lzdGlja1kgcmVhZEpveXN0aWNrWCBtb3VzZVJlbGVhc2VkIG9wZW5OZXh0RmlsZSBzY2FuTmV0d29ya3Mgbm9JbnRlcnJ1cHRzIGRpZ2l0YWxXcml0ZSBiZWdpblNwZWFrZXIgbW91c2VQcmVzc2VkIGlzQWN0aW9uRG9uZSBtb3VzZURyYWdnZWQgZGlzcGxheUxvZ29zIG5vQXV0b3Njcm9sbCBhZGRQYXJhbWV0ZXIgcmVtb3RlTnVtYmVyIGdldE1vZGlmaWVycyBrZXlib2FyZFJlYWQgdXNlck5hbWVSZWFkIHdhaXRDb250aW51ZSBwcm9jZXNzSW5wdXQgcGFyc2VDb21tYW5kIHByaW50VmVyc2lvbiByZWFkTmV0d29ya3Mgd3JpdGVNZXNzYWdlIGJsaW5rVmVyc2lvbiBjaXR5TmFtZVJlYWQgcmVhZE1lc3NhZ2Ugc2V0RGF0YU1vZGUgcGFyc2VQYWNrZXQgaXNMaXN0ZW5pbmcgc2V0Qml0T3JkZXIgYmVnaW5QYWNrZXQgaXNEaXJlY3RvcnkgbW90b3JzV3JpdGUgZHJhd0NvbXBhc3MgZGlnaXRhbFJlYWQgY2xlYXJTY3JlZW4gc2VyaWFsRXZlbnQgcmlnaHRUb0xlZnQgc2V0VGV4dFNpemUgbGVmdFRvUmlnaHQgcmVxdWVzdEZyb20ga2V5UmVsZWFzZWQgY29tcGFzc1JlYWQgYW5hbG9nV3JpdGUgaW50ZXJydXB0cyBXaUZpU2VydmVyIGRpc2Nvbm5lY3QgcGxheU1lbG9keSBwYXJzZUZsb2F0IGF1dG9zY3JvbGwgZ2V0UElOVXNlZCBzZXRQSU5Vc2VkIHNldFRpbWVvdXQgc2VuZEFuYWxvZyByZWFkU2xpZGVyIGFuYWxvZ1JlYWQgYmVnaW5Xcml0ZSBjcmVhdGVDaGFyIG1vdG9yc1N0b3Aga2V5UHJlc3NlZCB0ZW1wb1dyaXRlIHJlYWRCdXR0b24gc3VibmV0TWFzayBkZWJ1Z1ByaW50IG1hY0FkZHJlc3Mgd3JpdGVHcmVlbiByYW5kb21TZWVkIGF0dGFjaEdQUlMgcmVhZFN0cmluZyBzZW5kU3RyaW5nIHJlbW90ZVBvcnQgcmVsZWFzZUFsbCBtb3VzZU1vdmVkIGJhY2tncm91bmQgZ2V0WENoYW5nZSBnZXRZQ2hhbmdlIGFuc3dlckNhbGwgZ2V0UmVzdWx0IHZvaWNlQ2FsbCBlbmRQYWNrZXQgY29uc3RyYWluIGdldFNvY2tldCB3cml0ZUpTT04gZ2V0QnV0dG9uIGF2YWlsYWJsZSBjb25uZWN0ZWQgZmluZFVudGlsIHJlYWRCeXRlcyBleGl0VmFsdWUgcmVhZEdyZWVuIHdyaXRlQmx1ZSBzdGFydExvb3AgSVBBZGRyZXNzIGlzUHJlc3NlZCBzZW5kU3lzZXggcGF1c2VNb2RlIGdhdGV3YXlJUCBzZXRDdXJzb3IgZ2V0T2VtS2V5IHR1bmVXcml0ZSBub0Rpc3BsYXkgbG9hZEltYWdlIHN3aXRjaFBJTiBvblJlcXVlc3Qgb25SZWNlaXZlIGNoYW5nZVBJTiBwbGF5RmlsZSBub0J1ZmZlciBwYXJzZUludCBvdmVyZmxvdyBjaGVja1BJTiBrbm9iUmVhZCBiZWdpblRGVCBiaXRDbGVhciB1cGRhdGVJUiBiaXRXcml0ZSBwb3NpdGlvbiB3cml0ZVJHQiBoaWdoQnl0ZSB3cml0ZVJlZCBzZXRTcGVlZCByZWFkQmx1ZSBub1N0cm9rZSByZW1vdGVJUCB0cmFuc2ZlciBzaHV0ZG93biBoYW5nQ2FsbCBiZWdpblNNUyBlbmRXcml0ZSBhdHRhY2hlZCBtYWludGFpbiBub0N1cnNvciBjaGVja1JlZyBjaGVja1BVSyBzaGlmdE91dCBpc1ZhbGlkIHNoaWZ0SW4gcHVsc2VJbiBjb25uZWN0IHByaW50bG4gbG9jYWxJUCBwaW5Nb2RlIGdldElNRUkgZGlzcGxheSBub0JsaW5rIHByb2Nlc3MgZ2V0QmFuZCBydW5uaW5nIGJlZ2luU0QgZHJhd0JNUCBsb3dCeXRlIHNldEJhbmQgcmVsZWFzZSBiaXRSZWFkIHByZXBhcmUgcG9pbnRUbyByZWFkUmVkIHNldE1vZGUgbm9GaWxsIHJlbW92ZSBsaXN0ZW4gc3Ryb2tlIGRldGFjaCBhdHRhY2ggbm9Ub25lIGV4aXN0cyBidWZmZXIgaGVpZ2h0IGJpdFNldCBjaXJjbGUgY29uZmlnIGN1cnNvciByYW5kb20gSVJyZWFkIHNldEROUyBlbmRTTVMgZ2V0S2V5IG1pY3JvcyBtaWxsaXMgYmVnaW4gcHJpbnQgd3JpdGUgcmVhZHkgZmx1c2ggd2lkdGggaXNQSU4gYmxpbmsgY2xlYXIgcHJlc3MgbWtkaXIgcm1kaXIgY2xvc2UgcG9pbnQgeWllbGQgaW1hZ2UgQlNTSUQgY2xpY2sgZGVsYXkgcmVhZCB0ZXh0IG1vdmUgcGVlayBiZWVwIHJlY3QgbGluZSBvcGVuIHNlZWsgZmlsbCBzaXplIHR1cm4gc3RvcCBob21lIGZpbmQgc3RlcCB0b25lIHNxcnQgUlNTSSBTU0lEIGVuZCBiaXQgdGFuIGNvcyBzaW4gcG93IG1hcCBhYnMgbWF4IG1pbiBnZXQgcnVuIHB1dCIsCnIubmFtZT0iQXJkdWlubyIsci5hbGlhc2VzPVsiaW5vIl0sci5zdXBlcnNldE9mPSJjcHAiLHJ9fSkoKSk7";
var hihglightjsInitBase64 = "ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgncHJlIGNvZGUnKS5mb3JFYWNoKChibG9jaykgPT4gewogICAgaGxqcy5oaWdobGlnaHRCbG9jayhibG9jayk7Cn0pOw==";
var highlightCssBase64 = "LyoKCkdydXZib3ggc3R5bGUgKGxpZ2h0KSAoYykgUGF2ZWwgUGVydHNldiAob3JpZ2luYWwgc3R5bGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL21vcmhldHovZ3J1dmJveCkKCiovCgouaGxqcyB7CiAgZGlzcGxheTogYmxvY2s7CiAgb3ZlcmZsb3cteDogYXV0bzsKICBwYWRkaW5nOiAwLjVlbTsKICBiYWNrZ3JvdW5kOiAjZmJmMWM3Owp9CgouaGxqcywKLmhsanMtc3Vic3QgewogIGNvbG9yOiAjM2MzODM2Owp9CgovKiBHcnV2Ym94IFJlZCAqLwouaGxqcy1kZWxldGlvbiwKLmhsanMtZm9ybXVsYSwKLmhsanMta2V5d29yZCwKLmhsanMtbGluaywKLmhsanMtc2VsZWN0b3ItdGFnIHsKICBjb2xvcjogIzlkMDAwNjsKfQoKLyogR3J1dmJveCBCbHVlICovCi5obGpzLWJ1aWx0X2luLAouaGxqcy1lbXBoYXNpcywKLmhsanMtbmFtZSwKLmhsanMtcXVvdGUsCi5obGpzLXN0cm9uZywKLmhsanMtdGl0bGUsCi5obGpzLXZhcmlhYmxlIHsKICBjb2xvcjogIzA3NjY3ODsKfQoKLyogR3J1dmJveCBZZWxsb3cgKi8KLmhsanMtYXR0ciwKLmhsanMtcGFyYW1zLAouaGxqcy10ZW1wbGF0ZS10YWcsCi5obGpzLXR5cGUgewogIGNvbG9yOiAjYjU3NjE0Owp9CgovKiBHcnV2Ym94IFB1cnBsZSAqLwouaGxqcy1idWlsdGluLW5hbWUsCi5obGpzLWRvY3RhZywKLmhsanMtbGl0ZXJhbCwKLmhsanMtbnVtYmVyIHsKICBjb2xvcjogIzhmM2Y3MTsKfQoKLyogR3J1dmJveCBPcmFuZ2UgKi8KLmhsanMtY29kZSwKLmhsanMtbWV0YSwKLmhsanMtcmVnZXhwLAouaGxqcy1zZWxlY3Rvci1pZCwKLmhsanMtdGVtcGxhdGUtdmFyaWFibGUgewogIGNvbG9yOiAjYWYzYTAzOwp9CgovKiBHcnV2Ym94IEdyZWVuICovCi5obGpzLWFkZGl0aW9uLAouaGxqcy1tZXRhLXN0cmluZywKLmhsanMtc2VjdGlvbiwKLmhsanMtc2VsZWN0b3ItYXR0ciwKLmhsanMtc2VsZWN0b3ItY2xhc3MsCi5obGpzLXN0cmluZywKLmhsanMtc3ltYm9sIHsKICBjb2xvcjogIzc5NzQwZTsKfQoKLyogR3J1dmJveCBBcXVhICovCi5obGpzLWF0dHJpYnV0ZSwKLmhsanMtYnVsbGV0LAouaGxqcy1jbGFzcywKLmhsanMtZnVuY3Rpb24sCi5obGpzLWZ1bmN0aW9uIC5obGpzLWtleXdvcmQsCi5obGpzLW1ldGEta2V5d29yZCwKLmhsanMtc2VsZWN0b3ItcHNldWRvLAouaGxqcy10YWcgewogIGNvbG9yOiAjNDI3YjU4Owp9CgovKiBHcnV2Ym94IEdyYXkgKi8KLmhsanMtY29tbWVudCB7CiAgY29sb3I6ICM5MjgzNzQ7Cn0KCi8qIEdydXZib3ggUHVycGxlICovCi5obGpzLWxpbmtfbGFiZWwsCi5obGpzLWxpdGVyYWwsCi5obGpzLW51bWJlciB7CiAgY29sb3I6ICM4ZjNmNzE7Cn0KCi5obGpzLWNvbW1lbnQsCi5obGpzLWVtcGhhc2lzIHsKICBmb250LXN0eWxlOiBpdGFsaWM7Cn0KCi5obGpzLXNlY3Rpb24sCi5obGpzLXN0cm9uZywKLmhsanMtdGFnIHsKICBmb250LXdlaWdodDogYm9sZDsKfQ==";
var Anki = /** @class */ (function () {
function Anki() {
}
Anki.prototype.createModels = function (sourceSupport, codeHighlightSupport) {
return __awaiter(this, void 0, void 0, function () {
var models;
return __generator(this, function (_a) {
models = this.getModels(sourceSupport, false);
if (codeHighlightSupport) {
models = models.concat(this.getModels(sourceSupport, true));
}
return [2 /*return*/, this.invoke("multi", 6, { actions: models })];
});
});
};
Anki.prototype.createDeck = function (deckName) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.invoke("createDeck", 6, { deck: deckName })];
});
});
};
Anki.prototype.storeMediaFiles = function (cards) {
return __awaiter(this, void 0, void 0, function () {
var actions, cards_1, cards_1_1, card, _a, _b, media;
var e_1, _c, e_2, _d;
return __generator(this, function (_e) {
actions = [];
try {
for (cards_1 = __values(cards), cards_1_1 = cards_1.next(); !cards_1_1.done; cards_1_1 = cards_1.next()) {
card = cards_1_1.value;
try {
for (_a = (e_2 = void 0, __values(card.getMedias())), _b = _a.next(); !_b.done; _b = _a.next()) {
media = _b.value;
actions.push({
action: "storeMediaFile",
params: media,
});
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
}
finally { if (e_2) throw e_2.error; }
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (cards_1_1 && !cards_1_1.done && (_c = cards_1.return)) _c.call(cards_1);
}
finally { if (e_1) throw e_1.error; }
}
if (actions) {
return [2 /*return*/, this.invoke("multi", 6, { actions: actions })];
}
else {
return [2 /*return*/, {}];
}
});
});
};
Anki.prototype.storeCodeHighlightMedias = function () {
return __awaiter(this, void 0, void 0, function () {
var fileExists, highlightjs, highlightjsInit, highlightjcss;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.invoke("retrieveMediaFile", 6, {
filename: "_highlightInit.js",
})];
case 1:
fileExists = _a.sent();
if (!fileExists) {
highlightjs = {
action: "storeMediaFile",
params: {
filename: "_highlight.js",
data: highlightjsBase64,
},
};
highlightjsInit = {
action: "storeMediaFile",
params: {
filename: "_highlightInit.js",
data: hihglightjsInitBase64,
},
};
highlightjcss = {
action: "storeMediaFile",
params: {
filename: "_highlight.css",
data: highlightCssBase64,
},
};
return [2 /*return*/, this.invoke("multi", 6, {
actions: [highlightjs, highlightjsInit, highlightjcss],
})];
}
return [2 /*return*/];
}
});
});
};
Anki.prototype.addCards = function (cards) {
return __awaiter(this, void 0, void 0, function () {
var notes;
return __generator(this, function (_a) {
notes = [];
cards.forEach(function (card) { return notes.push(card.getCard(false)); });
return [2 /*return*/, this.invoke("addNotes", 6, {
notes: notes,
})];
});
});
};
/**
* Given the new cards with an optional deck name, it updates all the cards on Anki.
*
* Be aware of https://github.com/FooSoft/anki-connect/issues/82. If the Browse pane is opened on Anki,
* the update does not change all the cards.
* @param cards the new cards.
* @param deckName the new deck name.
*/
Anki.prototype.updateCards = function (cards) {
return __awaiter(this, void 0, void 0, function () {
var updateActions, ids, cards_2, cards_2_1, card;
var e_3, _a;
return __generator(this, function (_b) {
updateActions = [];
ids = [];
try {
for (cards_2 = __values(cards), cards_2_1 = cards_2.next(); !cards_2_1.done; cards_2_1 = cards_2.next()) {
card = cards_2_1.value;
updateActions.push({
action: "updateNoteFields",
params: {
note: card.getCard(true),
},
});
updateActions = updateActions.concat(this.mergeTags(card.oldTags, card.tags, card.id));
ids.push(card.id);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (cards_2_1 && !cards_2_1.done && (_a = cards_2.return)) _a.call(cards_2);
}
finally { if (e_3) throw e_3.error; }
}
// Update deck
updateActions.push({
action: "changeDeck",
params: {
cards: ids,
deck: cards[0].deckName,
},
});
return [2 /*return*/, this.invoke("multi", 6, { actions: updateActions })];
});
});
};
Anki.prototype.changeDeck = function (ids, deckName) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.invoke("changeDeck", 6, { cards: ids, deck: deckName })];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
Anki.prototype.cardsInfo = function (ids) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.invoke("cardsInfo", 6, { cards: ids })];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
Anki.prototype.getCards = function (ids) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.invoke("notesInfo", 6, { notes: ids })];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
Anki.prototype.deleteCards = function (ids) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.invoke("deleteNotes", 6, { notes: ids })];
});
});
};
Anki.prototype.ping = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.invoke("version", 6)];
case 1: return [2 /*return*/, (_a.sent()) === 6];
}
});
});
};
Anki.prototype.mergeTags = function (oldTags, newTags, cardId) {
var e_4, _a, e_5, _b;
var actions = [];
try {
// Find tags to Add
for (var newTags_1 = __values(newTags), newTags_1_1 = newTags_1.next(); !newTags_1_1.done; newTags_1_1 = newTags_1.next()) {
var tag = newTags_1_1.value;
var index = oldTags.indexOf(tag);
if (index > -1) {
oldTags.splice(index, 1);
}
else {
actions.push({
action: "addTags",
params: {
notes: [cardId],
tags: tag,
},
});
}
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (newTags_1_1 && !newTags_1_1.done && (_a = newTags_1.return)) _a.call(newTags_1);
}
finally { if (e_4) throw e_4.error; }
}
try {
// All Tags to delete
for (var oldTags_1 = __values(oldTags), oldTags_1_1 = oldTags_1.next(); !oldTags_1_1.done; oldTags_1_1 = oldTags_1.next()) {
var tag = oldTags_1_1.value;
actions.push({
action: "removeTags",
params: {
notes: [cardId],
tags: tag,
},
});
}
}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {
try {
if (oldTags_1_1 && !oldTags_1_1.done && (_b = oldTags_1.return)) _b.call(oldTags_1);
}
finally { if (e_5) throw e_5.error; }
}
return actions;
};
Anki.prototype.invoke = function (action, version, params) {
if (version === void 0) { version = 6; }
if (params === void 0) { params = {}; }
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.addEventListener("error", function () { return reject("failed to issue request"); });
xhr.addEventListener("load", function () {
try {
var response = JSON.parse(xhr.responseText);
if (Object.getOwnPropertyNames(response).length != 2) {
throw "response has an unexpected number of fields";
}
if (!Object.prototype.hasOwnProperty.call(response, "error")) {
throw "response is missing required error field";
}
if (!Object.prototype.hasOwnProperty.call(response, "result")) {
throw "response is missing required result field";
}
if (response.error) {
throw response.error;
}
resolve(response.result);
}
catch (e) {
reject(e);
}
});
xhr.open("POST", "http://127.0.0.1:8765");
xhr.send(JSON.stringify({ action: action, version: version, params: params }));
});
};
Anki.prototype.getModels = function (sourceSupport, codeHighlightSupport) {
var sourceFieldContent = "";
var codeScriptContent = "";
var sourceExtension = "";
var codeExtension = "";
if (sourceSupport) {
sourceFieldContent = "\r\n" + sourceField;
sourceExtension = sourceDeckExtension;
}
if (codeHighlightSupport) {
codeScriptContent = "\r\n" + codeScript + "\r\n";
codeExtension = codeDeckExtension;
}
var css = '.card {\r\n font-family: arial;\r\n font-size: 20px;\r\n text-align: center;\r\n color: black;\r\n background-color: white;\r\n}\r\n\r\n.tag::before {\r\n\tcontent: "#";\r\n}\r\n\r\n.tag {\r\n color: white;\r\n background-color: #9F2BFF;\r\n border: none;\r\n font-size: 11px;\r\n font-weight: bold;\r\n padding: 1px 8px;\r\n margin: 0px 3px;\r\n text-align: center;\r\n text-decoration: none;\r\n cursor: pointer;\r\n border-radius: 14px;\r\n display: inline;\r\n vertical-align: middle;\r\n}\r\n .cloze { font-weight: bold; color: blue;}.nightMode .cloze { color: lightblue;}';
var front = "{{Front}}\r\n<p class=\"tags\">{{Tags}}</p>\r\n\r\n<script>\r\n var tagEl = document.querySelector('.tags');\r\n var tags = tagEl.innerHTML.split(' ');\r\n var html = '';\r\n tags.forEach(function(tag) {\r\n\tif (tag) {\r\n\t var newTag = '<span class=\"tag\">' + tag + '</span>';\r\n html += newTag;\r\n \t tagEl.innerHTML = html;\r\n\t}\r\n });\r\n \r\n</script>".concat(codeScriptContent);
var back = "{{FrontSide}}\n\n<hr id=answer>\n\n{{Back}}".concat(sourceFieldContent);
var frontReversed = "{{Back}}\r\n<p class=\"tags\">{{Tags}}</p>\r\n\r\n<script>\r\n var tagEl = document.querySelector('.tags');\r\n var tags = tagEl.innerHTML.split(' ');\r\n var html = '';\r\n tags.forEach(function(tag) {\r\n\tif (tag) {\r\n\t var newTag = '<span class=\"tag\">' + tag + '</span>';\r\n html += newTag;\r\n \t tagEl.innerHTML = html;\r\n\t}\r\n });\r\n \r\n</script>".concat(codeScriptContent);
var backReversed = "{{FrontSide}}\n\n<hr id=answer>\n\n{{Front}}".concat(sourceFieldContent);
var prompt = "{{Prompt}}\r\n<p class=\"tags\">\uD83E\uDDE0spaced {{Tags}}</p>\r\n\r\n<script>\r\n var tagEl = document.querySelector('.tags');\r\n var tags = tagEl.innerHTML.split(' ');\r\n var html = '';\r\n tags.forEach(function(tag) {\r\n\tif (tag) {\r\n\t var newTag = '<span class=\"tag\">' + tag + '</span>';\r\n html += newTag;\r\n \t tagEl.innerHTML = html;\r\n\t}\r\n });\r\n \r\n</script>".concat(codeScriptContent);
var promptBack = "{{FrontSide}}\n\n<hr id=answer>\uD83E\uDDE0 Review done.".concat(sourceFieldContent);
var clozeFront = "{{cloze:Text}}\n\n<script>\r\n var tagEl = document.querySelector('.tags');\r\n var tags = tagEl.innerHTML.split(' ');\r\n var html = '';\r\n tags.forEach(function(tag) {\r\n\tif (tag) {\r\n\t var newTag = '<span class=\"tag\">' + tag + '</span>';\r\n html += newTag;\r\n \t tagEl.innerHTML = html;\r\n\t}\r\n });\r\n \r\n</script>".concat(codeScriptContent);
var clozeBack = "{{cloze:Text}}\n\n<br>{{Extra}}".concat(sourceFieldContent, "<script>\r\n var tagEl = document.querySelector('.tags');\r\n var tags = tagEl.innerHTML.split(' ');\r\n var html = '';\r\n tags.forEach(function(tag) {\r\n\tif (tag) {\r\n\t var newTag = '<span class=\"tag\">' + tag + '</span>';\r\n html += newTag;\r\n \t tagEl.innerHTML = html;\r\n\t}\r\n });\r\n \r\n</script>").concat(codeScriptContent);
var classicFields = ["Front", "Back"];
var promptFields = ["Prompt"];
var clozeFields = ["Text", "Extra"];
if (sourceSupport) {
classicFields = classicFields.concat("Source");
promptFields = promptFields.concat("Source");
clozeFields = clozeFields.concat("Source");
}
var obsidianBasic = {
action: "createModel",
params: {
modelName: "Obsidian-basic".concat(sourceExtension).concat(codeExtension),
inOrderFields: classicFields,
css: css,
cardTemplates: [
{
Name: "Front / Back",
Front: front,
Back: back,
},
],
},
};
var obsidianBasicReversed = {
action: "createModel",
params: {
modelName: "Obsidian-basic-reversed".concat(sourceExtension).concat(codeExtension),
inOrderFields: classicFields,
css: css,
cardTemplates: [
{
Name: "Front / Back",
Front: front,
Back: back,
},
{
Name: "Back / Front",
Front: frontReversed,
Back: backReversed,
},
],
},
};
var obsidianCloze = {
action: "createModel",
params: {
modelName: "Obsidian-cloze".concat(sourceExtension).concat(codeExtension),
inOrderFields: clozeFields,
css: css,
isCloze: true,
cardTemplates: [
{
Name: "Cloze",
Front: clozeFront,
Back: clozeBack,
},
],
},
};
var obsidianSpaced = {
action: "createModel",
params: {
modelName: "Obsidian-spaced".concat(sourceExtension).concat(codeExtension),
inOrderFields: promptFields,
css: css,
cardTemplates: [
{
Name: "Spaced",
Front: prompt,
Back: promptBack,
},
],
},
};
return [obsidianBasic, obsidianBasicReversed, obsidianCloze, obsidianSpaced];
};
Anki.prototype.requestPermission = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.invoke("requestPermission", 6)];
});
});
};
return Anki;
}());
function arrayBufferToBase64(buffer) {
var binary = "";
var bytes = new Uint8Array(buffer);
var len = bytes.byteLength;
for (var i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i]);
}
return window.btoa(binary);
}
function arraysEqual(a, b) {
if (a === b)
return true;
if (a == null || b == null)
return false;
if (a.length !== b.length)
return false;
a.sort();
b.sort();
for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i])
return false;
}
return true;
}
function escapeMarkdown(string, skips) {
if (skips === void 0) { skips = []; }
var replacements = [
// [/\*/g, "\\*", "asterisks"],
[/#/g, "#", "number signs"],
// [/\//g, "\\/", "slashes"],
[/\\/g, "\\\\", "backslash"],
[/\(/g, "\\(", "parentheses"],
[/\)/g, "\\)", "parentheses"],
[/\[/g, "\\[", "square brackets"],
[/\]/g, "\\]", "square brackets"],
[/</g, "&lt;", "angle brackets"],
[/>/g, "&gt;", "angle brackets"],
[/_/g, "\\_", "underscores"],
];
return replacements.reduce(function (s, replacement) {
var name = replacement[2];
return name && skips.indexOf(name) !== -1
? s
: s.replace(replacement[0], replacement[1]);
}, string);
}
function escapeRegExp(str) {
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
var SettingsTab = /** @class */ (function (_super) {
__extends(SettingsTab, _super);
function SettingsTab() {
return _super !== null && _super.apply(this, arguments) || this;
}
SettingsTab.prototype.display = function () {
var containerEl = this.containerEl;
var plugin = this.plugin;
containerEl.empty();
containerEl.createEl("h1", { text: "Flashcards - Settings" });
var description = createFragment();
description.append("This needs to be done only one time. Open Anki and click the button to grant permission.", createEl('br'), 'Be aware that AnkiConnect must be installed.');
new obsidian.Setting(containerEl)
.setName("Give Permission")
.setDesc(description)
.addButton(function (button) {
button.setButtonText("Grant Permission").onClick(function () {
new Anki().requestPermission().then(function (result) {
if (result.permission === "granted") {
plugin.settings.ankiConnectPermission = true;
plugin.saveData(plugin.settings);
new obsidian.Notice("Anki Connect permission granted");
}
else {
new obsidian.Notice("AnkiConnect permission not granted");
}
}).catch(function (error) {
new obsidian.Notice("Something went wrong, is Anki open?");
console.error(error);
});
});
});
new obsidian.Setting(containerEl)
.setName("Test Anki")
.setDesc("Test that connection between Anki and Obsidian actually works.")
.addButton(function (text) {
text.setButtonText("Test").onClick(function () {
new Anki()
.ping()
.then(function () { return new obsidian.Notice("Anki works"); })
.catch(function () { return new obsidian.Notice("Anki is not connected"); });
});
});
containerEl.createEl("h2", { text: "General" });
new obsidian.Setting(containerEl)
.setName("Context-aware mode")
.setDesc("Add the ancestor headings to the question of the flashcard.")
.addToggle(function (toggle) {
return toggle.setValue(plugin.settings.contextAwareMode).onChange(function (value) {
plugin.settings.contextAwareMode = value;
plugin.saveData(plugin.settings);
});
});
new obsidian.Setting(containerEl)
.setName("Source support")
.setDesc("Add to every card the source, i.e. the link to the original card. NOTE: Old cards made without source support cannot be updated.")
.addToggle(function (toggle) {
return toggle.setValue(plugin.settings.sourceSupport).onChange(function (value) {
plugin.settings.sourceSupport = value;
plugin.saveData(plugin.settings);
});
});
new obsidian.Setting(containerEl)
.setName("Code highlight support")
.setDesc("Add highlight of the code in Anki.")
.addToggle(function (toggle) {
return toggle
.setValue(plugin.settings.codeHighlightSupport)
.onChange(function (value) {
plugin.settings.codeHighlightSupport = value;
plugin.saveData(plugin.settings);
});
});
new obsidian.Setting(containerEl)
.setName("Inline ID support")
.setDesc("Add ID to end of line for inline cards.")
.addToggle(function (toggle) {
return toggle.setValue(plugin.settings.inlineID).onChange(function (value) {
plugin.settings.inlineID = value;
plugin.saveData(plugin.settings);
});
});
new obsidian.Setting(containerEl)
.setName("Folder-based deck name")
.setDesc("Add ID to end of line for inline cards.")
.addToggle(function (toggle) {
return toggle.setValue(plugin.settings.folderBasedDeck).onChange(function (value) {
plugin.settings.folderBasedDeck = value;
plugin.saveData(plugin.settings);
});
});
new obsidian.Setting(containerEl)
.setName("Default deck name")
.setDesc("The name of the default deck where the cards will be added when not specified.")
.addText(function (text) {
text
.setValue(plugin.settings.deck)
.setPlaceholder("Deck::sub-deck")
.onChange(function (value) {
if (value.length) {
plugin.settings.deck = value;
plugin.saveData(plugin.settings);
}
else {
new obsidian.Notice("The deck name must be at least 1 character long");
}
});
});
new obsidian.Setting(containerEl)
.setName("Default Anki tag")
.setDesc("This tag will be added to each generated card on Anki")
.addText(function (text) {
text
.setValue(plugin.settings.defaultAnkiTag)
.setPlaceholder("Anki tag")
.onChange(function (value) {
if (!value)
new obsidian.Notice("No default tags will be added");
plugin.settings.defaultAnkiTag = value.toLowerCase();
plugin.saveData(plugin.settings);
});
});
containerEl.createEl("h2", { text: "Cards Identification" });
new obsidian.Setting(containerEl)
.setName("Flashcards #tag")
.setDesc("The tag to identify the flashcards in the notes (case-insensitive).")
.addText(function (text) {
text
.setValue(plugin.settings.flashcardsTag)
.setPlaceholder("Card")
.onChange(function (value) {
if (value) {
plugin.settings.flashcardsTag = value.toLowerCase();
plugin.saveData(plugin.settings);
}
else {
new obsidian.Notice("The tag must be at least 1 character long");
}
});
});
new obsidian.Setting(containerEl)
.setName("Inline card separator")
.setDesc("The separator to identifty the inline cards in the notes.")
.addText(function (text) {
text
.setValue(plugin.settings.inlineSeparator)
.setPlaceholder("::")
.onChange(function (value) {
// if the value is empty or is the same like the inlineseparatorreverse then set it to the default, otherwise save it
if (value.trim().length === 0 || value === plugin.settings.inlineSeparatorReverse) {
plugin.settings.inlineSeparator = "::";
if (value.trim().length === 0) {
new obsidian.Notice("The separator must be at least 1 character long");
}
else if (value === plugin.settings.inlineSeparatorReverse) {
new obsidian.Notice("The separator must be different from the inline reverse separator");
}
}
else {
plugin.settings.inlineSeparator = escapeRegExp(value.trim());
new obsidian.Notice("The separator has been changed");
}
plugin.saveData(plugin.settings);
});
});
new obsidian.Setting(containerEl)
.setName("Inline reverse card separator")
.setDesc("The separator to identifty the inline revese cards in the notes.")
.addText(function (text) {
text
.setValue(plugin.settings.inlineSeparatorReverse)
.setPlaceholder(":::")
.onChange(function (value) {
// if the value is empty or is the same like the inlineseparatorreverse then set it to the default, otherwise save it
if (value.trim().length === 0 || value === plugin.settings.inlineSeparator) {
plugin.settings.inlineSeparatorReverse = ":::";
if (value.trim().length === 0) {
new obsidian.Notice("The separator must be at least 1 character long");
}
else if (value === plugin.settings.inlineSeparator) {
new obsidian.Notice("The separator must be different from the inline separator");
}
}
else {
plugin.settings.inlineSeparatorReverse = escapeRegExp(value.trim());
new obsidian.Notice("The separator has been changed");
}
plugin.saveData(plugin.settings);
});
});
};
return SettingsTab;
}(obsidian.PluginSettingTab));
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function createCommonjsModule(fn, basedir, module) {
return module = {
path: basedir,
exports: {},
require: function (path, base) {
return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);
}
}, fn(module, module.exports), module.exports;
}
function commonjsRequire () {
throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
}
var showdown = createCommonjsModule(function (module) {
(function(){
/**
* Created by Tivie on 13-07-2015.
*/
function getDefaultOpts (simple) {
var defaultOptions = {
omitExtraWLInCodeBlocks: {
defaultValue: false,
describe: 'Omit the default extra whiteline added to code blocks',
type: 'boolean'
},
noHeaderId: {
defaultValue: false,
describe: 'Turn on/off generated header id',
type: 'boolean'
},
prefixHeaderId: {
defaultValue: false,
describe: 'Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic \'section-\' prefix',
type: 'string'
},
rawPrefixHeaderId: {
defaultValue: false,
describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',
type: 'boolean'
},
ghCompatibleHeaderId: {
defaultValue: false,
describe: 'Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)',
type: 'boolean'
},
rawHeaderId: {
defaultValue: false,
describe: 'Remove only spaces, \' and " from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids',
type: 'boolean'
},
headerLevelStart: {
defaultValue: false,
describe: 'The header blocks level start',
type: 'integer'
},
parseImgDimensions: {
defaultValue: false,
describe: 'Turn on/off image dimension parsing',
type: 'boolean'
},
simplifiedAutoLink: {
defaultValue: false,
describe: 'Turn on/off GFM autolink style',
type: 'boolean'
},
excludeTrailingPunctuationFromURLs: {
defaultValue: false,
describe: 'Excludes trailing punctuation from links generated with autoLinking',
type: 'boolean'
},
literalMidWordUnderscores: {
defaultValue: false,
describe: 'Parse midword underscores as literal underscores',
type: 'boolean'
},
literalMidWordAsterisks: {
defaultValue: false,
describe: 'Parse midword asterisks as literal asterisks',
type: 'boolean'
},
strikethrough: {
defaultValue: false,
describe: 'Turn on/off strikethrough support',
type: 'boolean'
},
tables: {
defaultValue: false,
describe: 'Turn on/off tables support',
type: 'boolean'
},
tablesHeaderId: {
defaultValue: false,
describe: 'Add an id to table headers',
type: 'boolean'
},
ghCodeBlocks: {
defaultValue: true,
describe: 'Turn on/off GFM fenced code blocks support',
type: 'boolean'
},
tasklists: {
defaultValue: false,
describe: 'Turn on/off GFM tasklist support',
type: 'boolean'
},
smoothLivePreview: {
defaultValue: false,
describe: 'Prevents weird effects in live previews due to incomplete input',
type: 'boolean'
},
smartIndentationFix: {
defaultValue: false,
description: 'Tries to smartly fix indentation in es6 strings',
type: 'boolean'
},
disableForced4SpacesIndentedSublists: {
defaultValue: false,
description: 'Disables the requirement of indenting nested sublists by 4 spaces',
type: 'boolean'
},
simpleLineBreaks: {
defaultValue: false,
description: 'Parses simple line breaks as <br> (GFM Style)',
type: 'boolean'
},
requireSpaceBeforeHeadingText: {
defaultValue: false,
description: 'Makes adding a space between `#` and the header text mandatory (GFM Style)',
type: 'boolean'
},
ghMentions: {
defaultValue: false,
description: 'Enables github @mentions',
type: 'boolean'
},
ghMentionsLink: {
defaultValue: 'https://github.com/{u}',
description: 'Changes the link generated by @mentions. Only applies if ghMentions option is enabled.',
type: 'string'
},
encodeEmails: {
defaultValue: true,
description: 'Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities',
type: 'boolean'
},
openLinksInNewWindow: {
defaultValue: false,
description: 'Open all links in new windows',
type: 'boolean'
},
backslashEscapesHTMLTags: {
defaultValue: false,
description: 'Support for HTML Tag escaping. ex: \<div>foo\</div>',
type: 'boolean'
},
emoji: {
defaultValue: false,
description: 'Enable emoji support. Ex: `this is a :smile: emoji`',
type: 'boolean'
},
underline: {
defaultValue: false,
description: 'Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`',
type: 'boolean'
},
completeHTMLDocument: {
defaultValue: false,
description: 'Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags',
type: 'boolean'
},
metadata: {
defaultValue: false,
description: 'Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).',
type: 'boolean'
},
splitAdjacentBlockquotes: {
defaultValue: false,
description: 'Split adjacent blockquote blocks',
type: 'boolean'
}
};
if (simple === false) {
return JSON.parse(JSON.stringify(defaultOptions));
}
var ret = {};
for (var opt in defaultOptions) {
if (defaultOptions.hasOwnProperty(opt)) {
ret[opt] = defaultOptions[opt].defaultValue;
}
}
return ret;
}
function allOptionsOn () {
var options = getDefaultOpts(true),
ret = {};
for (var opt in options) {
if (options.hasOwnProperty(opt)) {
ret[opt] = true;
}
}
return ret;
}
/**
* Created by Tivie on 06-01-2015.
*/
// Private properties
var showdown = {},
parsers = {},
extensions = {},
globalOptions = getDefaultOpts(true),
setFlavor = 'vanilla',
flavor = {
github: {
omitExtraWLInCodeBlocks: true,
simplifiedAutoLink: true,
excludeTrailingPunctuationFromURLs: true,
literalMidWordUnderscores: true,
strikethrough: true,
tables: true,
tablesHeaderId: true,
ghCodeBlocks: true,
tasklists: true,
disableForced4SpacesIndentedSublists: true,
simpleLineBreaks: true,
requireSpaceBeforeHeadingText: true,
ghCompatibleHeaderId: true,
ghMentions: true,
backslashEscapesHTMLTags: true,
emoji: true,
splitAdjacentBlockquotes: true
},
original: {
noHeaderId: true,
ghCodeBlocks: false
},
ghost: {
omitExtraWLInCodeBlocks: true,
parseImgDimensions: true,
simplifiedAutoLink: true,
excludeTrailingPunctuationFromURLs: true,
literalMidWordUnderscores: true,
strikethrough: true,
tables: true,
tablesHeaderId: true,
ghCodeBlocks: true,
tasklists: true,
smoothLivePreview: true,
simpleLineBreaks: true,
requireSpaceBeforeHeadingText: true,
ghMentions: false,
encodeEmails: true
},
vanilla: getDefaultOpts(true),
allOn: allOptionsOn()
};
/**
* helper namespace
* @type {{}}
*/
showdown.helper = {};
/**
* TODO LEGACY SUPPORT CODE
* @type {{}}
*/
showdown.extensions = {};
/**
* Set a global option
* @static
* @param {string} key
* @param {*} value
* @returns {showdown}
*/
showdown.setOption = function (key, value) {
globalOptions[key] = value;
return this;
};
/**
* Get a global option
* @static
* @param {string} key
* @returns {*}
*/
showdown.getOption = function (key) {
return globalOptions[key];
};
/**
* Get the global options
* @static
* @returns {{}}
*/
showdown.getOptions = function () {
return globalOptions;
};
/**
* Reset global options to the default values
* @static
*/
showdown.resetOptions = function () {
globalOptions = getDefaultOpts(true);
};
/**
* Set the flavor showdown should use as default
* @param {string} name
*/
showdown.setFlavor = function (name) {
if (!flavor.hasOwnProperty(name)) {
throw Error(name + ' flavor was not found');
}
showdown.resetOptions();
var preset = flavor[name];
setFlavor = name;
for (var option in preset) {
if (preset.hasOwnProperty(option)) {
globalOptions[option] = preset[option];
}
}
};
/**
* Get the currently set flavor
* @returns {string}
*/
showdown.getFlavor = function () {
return setFlavor;
};
/**
* Get the options of a specified flavor. Returns undefined if the flavor was not found
* @param {string} name Name of the flavor
* @returns {{}|undefined}
*/
showdown.getFlavorOptions = function (name) {
if (flavor.hasOwnProperty(name)) {
return flavor[name];
}
};
/**
* Get the default options
* @static
* @param {boolean} [simple=true]
* @returns {{}}
*/
showdown.getDefaultOptions = function (simple) {
return getDefaultOpts(simple);
};
/**
* Get or set a subParser
*
* subParser(name) - Get a registered subParser
* subParser(name, func) - Register a subParser
* @static
* @param {string} name
* @param {function} [func]
* @returns {*}
*/
showdown.subParser = function (name, func) {
if (showdown.helper.isString(name)) {
if (typeof func !== 'undefined') {
parsers[name] = func;
} else {
if (parsers.hasOwnProperty(name)) {
return parsers[name];
} else {
throw Error('SubParser named ' + name + ' not registered!');
}
}
}
};
/**
* Gets or registers an extension
* @static
* @param {string} name
* @param {object|function=} ext
* @returns {*}
*/
showdown.extension = function (name, ext) {
if (!showdown.helper.isString(name)) {
throw Error('Extension \'name\' must be a string');
}
name = showdown.helper.stdExtName(name);
// Getter
if (showdown.helper.isUndefined(ext)) {
if (!extensions.hasOwnProperty(name)) {
throw Error('Extension named ' + name + ' is not registered!');
}
return extensions[name];
// Setter
} else {
// Expand extension if it's wrapped in a function
if (typeof ext === 'function') {
ext = ext();
}
// Ensure extension is an array
if (!showdown.helper.isArray(ext)) {
ext = [ext];
}
var validExtension = validate(ext, name);
if (validExtension.valid) {
extensions[name] = ext;
} else {
throw Error(validExtension.error);
}
}
};
/**
* Gets all extensions registered
* @returns {{}}
*/
showdown.getAllExtensions = function () {
return extensions;
};
/**
* Remove an extension
* @param {string} name
*/
showdown.removeExtension = function (name) {
delete extensions[name];
};
/**
* Removes all extensions
*/
showdown.resetExtensions = function () {
extensions = {};
};
/**
* Validate extension
* @param {array} extension
* @param {string} name
* @returns {{valid: boolean, error: string}}
*/
function validate (extension, name) {
var errMsg = (name) ? 'Error in ' + name + ' extension->' : 'Error in unnamed extension',
ret = {
valid: true,
error: ''
};
if (!showdown.helper.isArray(extension)) {
extension = [extension];
}
for (var i = 0; i < extension.length; ++i) {
var baseMsg = errMsg + ' sub-extension ' + i + ': ',
ext = extension[i];
if (typeof ext !== 'object') {
ret.valid = false;
ret.error = baseMsg + 'must be an object, but ' + typeof ext + ' given';
return ret;
}
if (!showdown.helper.isString(ext.type)) {
ret.valid = false;
ret.error = baseMsg + 'property "type" must be a string, but ' + typeof ext.type + ' given';
return ret;
}
var type = ext.type = ext.type.toLowerCase();
// normalize extension type
if (type === 'language') {
type = ext.type = 'lang';
}
if (type === 'html') {
type = ext.type = 'output';
}
if (type !== 'lang' && type !== 'output' && type !== 'listener') {
ret.valid = false;
ret.error = baseMsg + 'type ' + type + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"';
return ret;
}
if (type === 'listener') {
if (showdown.helper.isUndefined(ext.listeners)) {
ret.valid = false;
ret.error = baseMsg + '. Extensions of type "listener" must have a property called "listeners"';
return ret;
}
} else {
if (showdown.helper.isUndefined(ext.filter) && showdown.helper.isUndefined(ext.regex)) {
ret.valid = false;
ret.error = baseMsg + type + ' extensions must define either a "regex" property or a "filter" method';
return ret;
}
}
if (ext.listeners) {
if (typeof ext.listeners !== 'object') {
ret.valid = false;
ret.error = baseMsg + '"listeners" property must be an object but ' + typeof ext.listeners + ' given';
return ret;
}
for (var ln in ext.listeners) {
if (ext.listeners.hasOwnProperty(ln)) {
if (typeof ext.listeners[ln] !== 'function') {
ret.valid = false;
ret.error = baseMsg + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + ln +
' must be a function but ' + typeof ext.listeners[ln] + ' given';
return ret;
}
}
}
}
if (ext.filter) {
if (typeof ext.filter !== 'function') {
ret.valid = false;
ret.error = baseMsg + '"filter" must be a function, but ' + typeof ext.filter + ' given';
return ret;
}
} else if (ext.regex) {
if (showdown.helper.isString(ext.regex)) {
ext.regex = new RegExp(ext.regex, 'g');
}
if (!(ext.regex instanceof RegExp)) {
ret.valid = false;
ret.error = baseMsg + '"regex" property must either be a string or a RegExp object, but ' + typeof ext.regex + ' given';
return ret;
}
if (showdown.helper.isUndefined(ext.replace)) {
ret.valid = false;
ret.error = baseMsg + '"regex" extensions must implement a replace string or function';
return ret;
}
}
}
return ret;
}
/**
* Validate extension
* @param {object} ext
* @returns {boolean}
*/
showdown.validateExtension = function (ext) {
var validateExtension = validate(ext, null);
if (!validateExtension.valid) {
console.warn(validateExtension.error);
return false;
}
return true;
};
/**
* showdownjs helper functions
*/
if (!showdown.hasOwnProperty('helper')) {
showdown.helper = {};
}
/**
* Check if var is string
* @static
* @param {string} a
* @returns {boolean}
*/
showdown.helper.isString = function (a) {
return (typeof a === 'string' || a instanceof String);
};
/**
* Check if var is a function
* @static
* @param {*} a
* @returns {boolean}
*/
showdown.helper.isFunction = function (a) {
var getType = {};
return a && getType.toString.call(a) === '[object Function]';
};
/**
* isArray helper function
* @static
* @param {*} a
* @returns {boolean}
*/
showdown.helper.isArray = function (a) {
return Array.isArray(a);
};
/**
* Check if value is undefined
* @static
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
*/
showdown.helper.isUndefined = function (value) {
return typeof value === 'undefined';
};
/**
* ForEach helper function
* Iterates over Arrays and Objects (own properties only)
* @static
* @param {*} obj
* @param {function} callback Accepts 3 params: 1. value, 2. key, 3. the original array/object
*/
showdown.helper.forEach = function (obj, callback) {
// check if obj is defined
if (showdown.helper.isUndefined(obj)) {
throw new Error('obj param is required');
}
if (showdown.helper.isUndefined(callback)) {
throw new Error('callback param is required');
}
if (!showdown.helper.isFunction(callback)) {
throw new Error('callback param must be a function/closure');
}
if (typeof obj.forEach === 'function') {
obj.forEach(callback);
} else if (showdown.helper.isArray(obj)) {
for (var i = 0; i < obj.length; i++) {
callback(obj[i], i, obj);
}
} else if (typeof (obj) === 'object') {
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
callback(obj[prop], prop, obj);
}
}
} else {
throw new Error('obj does not seem to be an array or an iterable object');
}
};
/**
* Standardidize extension name
* @static
* @param {string} s extension name
* @returns {string}
*/
showdown.helper.stdExtName = function (s) {
return s.replace(/[_?*+\/\\.^-]/g, '').replace(/\s/g, '').toLowerCase();
};
function escapeCharactersCallback (wholeMatch, m1) {
var charCodeToEscape = m1.charCodeAt(0);
return '¨E' + charCodeToEscape + 'E';
}
/**
* Callback used to escape characters when passing through String.replace
* @static
* @param {string} wholeMatch
* @param {string} m1
* @returns {string}
*/
showdown.helper.escapeCharactersCallback = escapeCharactersCallback;
/**
* Escape characters in a string
* @static
* @param {string} text
* @param {string} charsToEscape
* @param {boolean} afterBackslash
* @returns {XML|string|void|*}
*/
showdown.helper.escapeCharacters = function (text, charsToEscape, afterBackslash) {
// First we have to escape the escape characters so that
// we can build a character class out of them
var regexString = '([' + charsToEscape.replace(/([\[\]\\])/g, '\\$1') + '])';
if (afterBackslash) {
regexString = '\\\\' + regexString;
}
var regex = new RegExp(regexString, 'g');
text = text.replace(regex, escapeCharactersCallback);
return text;
};
/**
* Unescape HTML entities
* @param txt
* @returns {string}
*/
showdown.helper.unescapeHTMLEntities = function (txt) {
return txt
.replace(/&quot;/g, '"')
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>')
.replace(/&amp;/g, '&');
};
var rgxFindMatchPos = function (str, left, right, flags) {
var f = flags || '',
g = f.indexOf('g') > -1,
x = new RegExp(left + '|' + right, 'g' + f.replace(/g/g, '')),
l = new RegExp(left, f.replace(/g/g, '')),
pos = [],
t, s, m, start, end;
do {
t = 0;
while ((m = x.exec(str))) {
if (l.test(m[0])) {
if (!(t++)) {
s = x.lastIndex;
start = s - m[0].length;
}
} else if (t) {
if (!--t) {
end = m.index + m[0].length;
var obj = {
left: {start: start, end: s},
match: {start: s, end: m.index},
right: {start: m.index, end: end},
wholeMatch: {start: start, end: end}
};
pos.push(obj);
if (!g) {
return pos;
}
}
}
}
} while (t && (x.lastIndex = s));
return pos;
};
/**
* matchRecursiveRegExp
*
* (c) 2007 Steven Levithan <stevenlevithan.com>
* MIT License
*
* Accepts a string to search, a left and right format delimiter
* as regex patterns, and optional regex flags. Returns an array
* of matches, allowing nested instances of left/right delimiters.
* Use the "g" flag to return all matches, otherwise only the
* first is returned. Be careful to ensure that the left and
* right format delimiters produce mutually exclusive matches.
* Backreferences are not supported within the right delimiter
* due to how it is internally combined with the left delimiter.
* When matching strings whose format delimiters are unbalanced
* to the left or right, the output is intentionally as a
* conventional regex library with recursion support would
* produce, e.g. "<<x>" and "<x>>" both produce ["x"] when using
* "<" and ">" as the delimiters (both strings contain a single,
* balanced instance of "<x>").
*
* examples:
* matchRecursiveRegExp("test", "\\(", "\\)")
* returns: []
* matchRecursiveRegExp("<t<<e>><s>>t<>", "<", ">", "g")
* returns: ["t<<e>><s>", ""]
* matchRecursiveRegExp("<div id=\"x\">test</div>", "<div\\b[^>]*>", "</div>", "gi")
* returns: ["test"]
*/
showdown.helper.matchRecursiveRegExp = function (str, left, right, flags) {
var matchPos = rgxFindMatchPos (str, left, right, flags),
results = [];
for (var i = 0; i < matchPos.length; ++i) {
results.push([
str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),
str.slice(matchPos[i].match.start, matchPos[i].match.end),
str.slice(matchPos[i].left.start, matchPos[i].left.end),
str.slice(matchPos[i].right.start, matchPos[i].right.end)
]);
}
return results;
};
/**
*
* @param {string} str
* @param {string|function} replacement
* @param {string} left
* @param {string} right
* @param {string} flags
* @returns {string}
*/
showdown.helper.replaceRecursiveRegExp = function (str, replacement, left, right, flags) {
if (!showdown.helper.isFunction(replacement)) {
var repStr = replacement;
replacement = function () {
return repStr;
};
}
var matchPos = rgxFindMatchPos(str, left, right, flags),
finalStr = str,
lng = matchPos.length;
if (lng > 0) {
var bits = [];
if (matchPos[0].wholeMatch.start !== 0) {
bits.push(str.slice(0, matchPos[0].wholeMatch.start));
}
for (var i = 0; i < lng; ++i) {
bits.push(
replacement(
str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),
str.slice(matchPos[i].match.start, matchPos[i].match.end),
str.slice(matchPos[i].left.start, matchPos[i].left.end),
str.slice(matchPos[i].right.start, matchPos[i].right.end)
)
);
if (i < lng - 1) {
bits.push(str.slice(matchPos[i].wholeMatch.end, matchPos[i + 1].wholeMatch.start));
}
}
if (matchPos[lng - 1].wholeMatch.end < str.length) {
bits.push(str.slice(matchPos[lng - 1].wholeMatch.end));
}
finalStr = bits.join('');
}
return finalStr;
};
/**
* Returns the index within the passed String object of the first occurrence of the specified regex,
* starting the search at fromIndex. Returns -1 if the value is not found.
*
* @param {string} str string to search
* @param {RegExp} regex Regular expression to search
* @param {int} [fromIndex = 0] Index to start the search
* @returns {Number}
* @throws InvalidArgumentError
*/
showdown.helper.regexIndexOf = function (str, regex, fromIndex) {
if (!showdown.helper.isString(str)) {
throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';
}
if (regex instanceof RegExp === false) {
throw 'InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp';
}
var indexOf = str.substring(fromIndex || 0).search(regex);
return (indexOf >= 0) ? (indexOf + (fromIndex || 0)) : indexOf;
};
/**
* Splits the passed string object at the defined index, and returns an array composed of the two substrings
* @param {string} str string to split
* @param {int} index index to split string at
* @returns {[string,string]}
* @throws InvalidArgumentError
*/
showdown.helper.splitAtIndex = function (str, index) {
if (!showdown.helper.isString(str)) {
throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';
}
return [str.substring(0, index), str.substring(index)];
};
/**
* Obfuscate an e-mail address through the use of Character Entities,
* transforming ASCII characters into their equivalent decimal or hex entities.
*
* Since it has a random component, subsequent calls to this function produce different results
*
* @param {string} mail
* @returns {string}
*/
showdown.helper.encodeEmailAddress = function (mail) {
var encode = [
function (ch) {
return '&#' + ch.charCodeAt(0) + ';';
},
function (ch) {
return '&#x' + ch.charCodeAt(0).toString(16) + ';';
},
function (ch) {
return ch;
}
];
mail = mail.replace(/./g, function (ch) {
if (ch === '@') {
// this *must* be encoded. I insist.
ch = encode[Math.floor(Math.random() * 2)](ch);
} else {
var r = Math.random();
// roughly 10% raw, 45% hex, 45% dec
ch = (
r > 0.9 ? encode[2](ch) : r > 0.45 ? encode[1](ch) : encode[0](ch)
);
}
return ch;
});
return mail;
};
/**
*
* @param str
* @param targetLength
* @param padString
* @returns {string}
*/
showdown.helper.padEnd = function padEnd (str, targetLength, padString) {
/*jshint bitwise: false*/
// eslint-disable-next-line space-infix-ops
targetLength = targetLength>>0; //floor if number or convert non-number to 0;
/*jshint bitwise: true*/
padString = String(padString || ' ');
if (str.length > targetLength) {
return String(str);
} else {
targetLength = targetLength - str.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed
}
return String(str) + padString.slice(0,targetLength);
}
};
/**
* POLYFILLS
*/
// use this instead of builtin is undefined for IE8 compatibility
if (typeof console === 'undefined') {
console = {
warn: function (msg) {
alert(msg);
},
log: function (msg) {
alert(msg);
},
error: function (msg) {
throw msg;
}
};
}
/**
* Common regexes.
* We declare some common regexes to improve performance
*/
showdown.helper.regexes = {
asteriskDashAndColon: /([*_:~])/g
};
/**
* EMOJIS LIST
*/
showdown.helper.emojis = {
'+1':'\ud83d\udc4d',
'-1':'\ud83d\udc4e',
'100':'\ud83d\udcaf',
'1234':'\ud83d\udd22',
'1st_place_medal':'\ud83e\udd47',
'2nd_place_medal':'\ud83e\udd48',
'3rd_place_medal':'\ud83e\udd49',
'8ball':'\ud83c\udfb1',
'a':'\ud83c\udd70\ufe0f',
'ab':'\ud83c\udd8e',
'abc':'\ud83d\udd24',
'abcd':'\ud83d\udd21',
'accept':'\ud83c\ude51',
'aerial_tramway':'\ud83d\udea1',
'airplane':'\u2708\ufe0f',
'alarm_clock':'\u23f0',
'alembic':'\u2697\ufe0f',
'alien':'\ud83d\udc7d',
'ambulance':'\ud83d\ude91',
'amphora':'\ud83c\udffa',
'anchor':'\u2693\ufe0f',
'angel':'\ud83d\udc7c',
'anger':'\ud83d\udca2',
'angry':'\ud83d\ude20',
'anguished':'\ud83d\ude27',
'ant':'\ud83d\udc1c',
'apple':'\ud83c\udf4e',
'aquarius':'\u2652\ufe0f',
'aries':'\u2648\ufe0f',
'arrow_backward':'\u25c0\ufe0f',
'arrow_double_down':'\u23ec',
'arrow_double_up':'\u23eb',
'arrow_down':'\u2b07\ufe0f',
'arrow_down_small':'\ud83d\udd3d',
'arrow_forward':'\u25b6\ufe0f',
'arrow_heading_down':'\u2935\ufe0f',
'arrow_heading_up':'\u2934\ufe0f',
'arrow_left':'\u2b05\ufe0f',
'arrow_lower_left':'\u2199\ufe0f',
'arrow_lower_right':'\u2198\ufe0f',
'arrow_right':'\u27a1\ufe0f',
'arrow_right_hook':'\u21aa\ufe0f',
'arrow_up':'\u2b06\ufe0f',
'arrow_up_down':'\u2195\ufe0f',
'arrow_up_small':'\ud83d\udd3c',
'arrow_upper_left':'\u2196\ufe0f',
'arrow_upper_right':'\u2197\ufe0f',
'arrows_clockwise':'\ud83d\udd03',
'arrows_counterclockwise':'\ud83d\udd04',
'art':'\ud83c\udfa8',
'articulated_lorry':'\ud83d\ude9b',
'artificial_satellite':'\ud83d\udef0',
'astonished':'\ud83d\ude32',
'athletic_shoe':'\ud83d\udc5f',
'atm':'\ud83c\udfe7',
'atom_symbol':'\u269b\ufe0f',
'avocado':'\ud83e\udd51',
'b':'\ud83c\udd71\ufe0f',
'baby':'\ud83d\udc76',
'baby_bottle':'\ud83c\udf7c',
'baby_chick':'\ud83d\udc24',
'baby_symbol':'\ud83d\udebc',
'back':'\ud83d\udd19',
'bacon':'\ud83e\udd53',
'badminton':'\ud83c\udff8',
'baggage_claim':'\ud83d\udec4',
'baguette_bread':'\ud83e\udd56',
'balance_scale':'\u2696\ufe0f',
'balloon':'\ud83c\udf88',
'ballot_box':'\ud83d\uddf3',
'ballot_box_with_check':'\u2611\ufe0f',
'bamboo':'\ud83c\udf8d',
'banana':'\ud83c\udf4c',
'bangbang':'\u203c\ufe0f',
'bank':'\ud83c\udfe6',
'bar_chart':'\ud83d\udcca',
'barber':'\ud83d\udc88',
'baseball':'\u26be\ufe0f',
'basketball':'\ud83c\udfc0',
'basketball_man':'\u26f9\ufe0f',
'basketball_woman':'\u26f9\ufe0f&zwj;\u2640\ufe0f',
'bat':'\ud83e\udd87',
'bath':'\ud83d\udec0',
'bathtub':'\ud83d\udec1',
'battery':'\ud83d\udd0b',
'beach_umbrella':'\ud83c\udfd6',
'bear':'\ud83d\udc3b',
'bed':'\ud83d\udecf',
'bee':'\ud83d\udc1d',
'beer':'\ud83c\udf7a',
'beers':'\ud83c\udf7b',
'beetle':'\ud83d\udc1e',
'beginner':'\ud83d\udd30',
'bell':'\ud83d\udd14',
'bellhop_bell':'\ud83d\udece',
'bento':'\ud83c\udf71',
'biking_man':'\ud83d\udeb4',
'bike':'\ud83d\udeb2',
'biking_woman':'\ud83d\udeb4&zwj;\u2640\ufe0f',
'bikini':'\ud83d\udc59',
'biohazard':'\u2623\ufe0f',
'bird':'\ud83d\udc26',
'birthday':'\ud83c\udf82',
'black_circle':'\u26ab\ufe0f',
'black_flag':'\ud83c\udff4',
'black_heart':'\ud83d\udda4',
'black_joker':'\ud83c\udccf',
'black_large_square':'\u2b1b\ufe0f',
'black_medium_small_square':'\u25fe\ufe0f',
'black_medium_square':'\u25fc\ufe0f',
'black_nib':'\u2712\ufe0f',
'black_small_square':'\u25aa\ufe0f',
'black_square_button':'\ud83d\udd32',
'blonde_man':'\ud83d\udc71',
'blonde_woman':'\ud83d\udc71&zwj;\u2640\ufe0f',
'blossom':'\ud83c\udf3c',
'blowfish':'\ud83d\udc21',
'blue_book':'\ud83d\udcd8',
'blue_car':'\ud83d\ude99',
'blue_heart':'\ud83d\udc99',
'blush':'\ud83d\ude0a',
'boar':'\ud83d\udc17',
'boat':'\u26f5\ufe0f',
'bomb':'\ud83d\udca3',
'book':'\ud83d\udcd6',
'bookmark':'\ud83d\udd16',
'bookmark_tabs':'\ud83d\udcd1',
'books':'\ud83d\udcda',
'boom':'\ud83d\udca5',
'boot':'\ud83d\udc62',
'bouquet':'\ud83d\udc90',
'bowing_man':'\ud83d\ude47',
'bow_and_arrow':'\ud83c\udff9',
'bowing_woman':'\ud83d\ude47&zwj;\u2640\ufe0f',
'bowling':'\ud83c\udfb3',
'boxing_glove':'\ud83e\udd4a',
'boy':'\ud83d\udc66',
'bread':'\ud83c\udf5e',
'bride_with_veil':'\ud83d\udc70',
'bridge_at_night':'\ud83c\udf09',
'briefcase':'\ud83d\udcbc',
'broken_heart':'\ud83d\udc94',
'bug':'\ud83d\udc1b',
'building_construction':'\ud83c\udfd7',
'bulb':'\ud83d\udca1',
'bullettrain_front':'\ud83d\ude85',
'bullettrain_side':'\ud83d\ude84',
'burrito':'\ud83c\udf2f',
'bus':'\ud83d\ude8c',
'business_suit_levitating':'\ud83d\udd74',
'busstop':'\ud83d\ude8f',
'bust_in_silhouette':'\ud83d\udc64',
'busts_in_silhouette':'\ud83d\udc65',
'butterfly':'\ud83e\udd8b',
'cactus':'\ud83c\udf35',
'cake':'\ud83c\udf70',
'calendar':'\ud83d\udcc6',
'call_me_hand':'\ud83e\udd19',
'calling':'\ud83d\udcf2',
'camel':'\ud83d\udc2b',
'camera':'\ud83d\udcf7',
'camera_flash':'\ud83d\udcf8',
'camping':'\ud83c\udfd5',
'cancer':'\u264b\ufe0f',
'candle':'\ud83d\udd6f',
'candy':'\ud83c\udf6c',
'canoe':'\ud83d\udef6',
'capital_abcd':'\ud83d\udd20',
'capricorn':'\u2651\ufe0f',
'car':'\ud83d\ude97',
'card_file_box':'\ud83d\uddc3',
'card_index':'\ud83d\udcc7',
'card_index_dividers':'\ud83d\uddc2',
'carousel_horse':'\ud83c\udfa0',
'carrot':'\ud83e\udd55',
'cat':'\ud83d\udc31',
'cat2':'\ud83d\udc08',
'cd':'\ud83d\udcbf',
'chains':'\u26d3',
'champagne':'\ud83c\udf7e',
'chart':'\ud83d\udcb9',
'chart_with_downwards_trend':'\ud83d\udcc9',
'chart_with_upwards_trend':'\ud83d\udcc8',
'checkered_flag':'\ud83c\udfc1',
'cheese':'\ud83e\uddc0',
'cherries':'\ud83c\udf52',
'cherry_blossom':'\ud83c\udf38',
'chestnut':'\ud83c\udf30',
'chicken':'\ud83d\udc14',
'children_crossing':'\ud83d\udeb8',
'chipmunk':'\ud83d\udc3f',
'chocolate_bar':'\ud83c\udf6b',
'christmas_tree':'\ud83c\udf84',
'church':'\u26ea\ufe0f',
'cinema':'\ud83c\udfa6',
'circus_tent':'\ud83c\udfaa',
'city_sunrise':'\ud83c\udf07',
'city_sunset':'\ud83c\udf06',
'cityscape':'\ud83c\udfd9',
'cl':'\ud83c\udd91',
'clamp':'\ud83d\udddc',
'clap':'\ud83d\udc4f',
'clapper':'\ud83c\udfac',
'classical_building':'\ud83c\udfdb',
'clinking_glasses':'\ud83e\udd42',
'clipboard':'\ud83d\udccb',
'clock1':'\ud83d\udd50',
'clock10':'\ud83d\udd59',
'clock1030':'\ud83d\udd65',
'clock11':'\ud83d\udd5a',
'clock1130':'\ud83d\udd66',
'clock12':'\ud83d\udd5b',
'clock1230':'\ud83d\udd67',
'clock130':'\ud83d\udd5c',
'clock2':'\ud83d\udd51',
'clock230':'\ud83d\udd5d',
'clock3':'\ud83d\udd52',
'clock330':'\ud83d\udd5e',
'clock4':'\ud83d\udd53',
'clock430':'\ud83d\udd5f',
'clock5':'\ud83d\udd54',
'clock530':'\ud83d\udd60',
'clock6':'\ud83d\udd55',
'clock630':'\ud83d\udd61',
'clock7':'\ud83d\udd56',
'clock730':'\ud83d\udd62',
'clock8':'\ud83d\udd57',
'clock830':'\ud83d\udd63',
'clock9':'\ud83d\udd58',
'clock930':'\ud83d\udd64',
'closed_book':'\ud83d\udcd5',
'closed_lock_with_key':'\ud83d\udd10',
'closed_umbrella':'\ud83c\udf02',
'cloud':'\u2601\ufe0f',
'cloud_with_lightning':'\ud83c\udf29',
'cloud_with_lightning_and_rain':'\u26c8',
'cloud_with_rain':'\ud83c\udf27',
'cloud_with_snow':'\ud83c\udf28',
'clown_face':'\ud83e\udd21',
'clubs':'\u2663\ufe0f',
'cocktail':'\ud83c\udf78',
'coffee':'\u2615\ufe0f',
'coffin':'\u26b0\ufe0f',
'cold_sweat':'\ud83d\ude30',
'comet':'\u2604\ufe0f',
'computer':'\ud83d\udcbb',
'computer_mouse':'\ud83d\uddb1',
'confetti_ball':'\ud83c\udf8a',
'confounded':'\ud83d\ude16',
'confused':'\ud83d\ude15',
'congratulations':'\u3297\ufe0f',
'construction':'\ud83d\udea7',
'construction_worker_man':'\ud83d\udc77',
'construction_worker_woman':'\ud83d\udc77&zwj;\u2640\ufe0f',
'control_knobs':'\ud83c\udf9b',
'convenience_store':'\ud83c\udfea',
'cookie':'\ud83c\udf6a',
'cool':'\ud83c\udd92',
'policeman':'\ud83d\udc6e',
'copyright':'\u00a9\ufe0f',
'corn':'\ud83c\udf3d',
'couch_and_lamp':'\ud83d\udecb',
'couple':'\ud83d\udc6b',
'couple_with_heart_woman_man':'\ud83d\udc91',
'couple_with_heart_man_man':'\ud83d\udc68&zwj;\u2764\ufe0f&zwj;\ud83d\udc68',
'couple_with_heart_woman_woman':'\ud83d\udc69&zwj;\u2764\ufe0f&zwj;\ud83d\udc69',
'couplekiss_man_man':'\ud83d\udc68&zwj;\u2764\ufe0f&zwj;\ud83d\udc8b&zwj;\ud83d\udc68',
'couplekiss_man_woman':'\ud83d\udc8f',
'couplekiss_woman_woman':'\ud83d\udc69&zwj;\u2764\ufe0f&zwj;\ud83d\udc8b&zwj;\ud83d\udc69',
'cow':'\ud83d\udc2e',
'cow2':'\ud83d\udc04',
'cowboy_hat_face':'\ud83e\udd20',
'crab':'\ud83e\udd80',
'crayon':'\ud83d\udd8d',
'credit_card':'\ud83d\udcb3',
'crescent_moon':'\ud83c\udf19',
'cricket':'\ud83c\udfcf',
'crocodile':'\ud83d\udc0a',
'croissant':'\ud83e\udd50',
'crossed_fingers':'\ud83e\udd1e',
'crossed_flags':'\ud83c\udf8c',
'crossed_swords':'\u2694\ufe0f',
'crown':'\ud83d\udc51',
'cry':'\ud83d\ude22',
'crying_cat_face':'\ud83d\ude3f',
'crystal_ball':'\ud83d\udd2e',
'cucumber':'\ud83e\udd52',
'cupid':'\ud83d\udc98',
'curly_loop':'\u27b0',
'currency_exchange':'\ud83d\udcb1',
'curry':'\ud83c\udf5b',
'custard':'\ud83c\udf6e',
'customs':'\ud83d\udec3',
'cyclone':'\ud83c\udf00',
'dagger':'\ud83d\udde1',
'dancer':'\ud83d\udc83',
'dancing_women':'\ud83d\udc6f',
'dancing_men':'\ud83d\udc6f&zwj;\u2642\ufe0f',
'dango':'\ud83c\udf61',
'dark_sunglasses':'\ud83d\udd76',
'dart':'\ud83c\udfaf',
'dash':'\ud83d\udca8',
'date':'\ud83d\udcc5',
'deciduous_tree':'\ud83c\udf33',
'deer':'\ud83e\udd8c',
'department_store':'\ud83c\udfec',
'derelict_house':'\ud83c\udfda',
'desert':'\ud83c\udfdc',
'desert_island':'\ud83c\udfdd',
'desktop_computer':'\ud83d\udda5',
'male_detective':'\ud83d\udd75\ufe0f',
'diamond_shape_with_a_dot_inside':'\ud83d\udca0',
'diamonds':'\u2666\ufe0f',
'disappointed':'\ud83d\ude1e',
'disappointed_relieved':'\ud83d\ude25',
'dizzy':'\ud83d\udcab',
'dizzy_face':'\ud83d\ude35',
'do_not_litter':'\ud83d\udeaf',
'dog':'\ud83d\udc36',
'dog2':'\ud83d\udc15',
'dollar':'\ud83d\udcb5',
'dolls':'\ud83c\udf8e',
'dolphin':'\ud83d\udc2c',
'door':'\ud83d\udeaa',
'doughnut':'\ud83c\udf69',
'dove':'\ud83d\udd4a',
'dragon':'\ud83d\udc09',
'dragon_face':'\ud83d\udc32',
'dress':'\ud83d\udc57',
'dromedary_camel':'\ud83d\udc2a',
'drooling_face':'\ud83e\udd24',
'droplet':'\ud83d\udca7',
'drum':'\ud83e\udd41',
'duck':'\ud83e\udd86',
'dvd':'\ud83d\udcc0',
'e-mail':'\ud83d\udce7',
'eagle':'\ud83e\udd85',
'ear':'\ud83d\udc42',
'ear_of_rice':'\ud83c\udf3e',
'earth_africa':'\ud83c\udf0d',
'earth_americas':'\ud83c\udf0e',
'earth_asia':'\ud83c\udf0f',
'egg':'\ud83e\udd5a',
'eggplant':'\ud83c\udf46',
'eight_pointed_black_star':'\u2734\ufe0f',
'eight_spoked_asterisk':'\u2733\ufe0f',
'electric_plug':'\ud83d\udd0c',
'elephant':'\ud83d\udc18',
'email':'\u2709\ufe0f',
'end':'\ud83d\udd1a',
'envelope_with_arrow':'\ud83d\udce9',
'euro':'\ud83d\udcb6',
'european_castle':'\ud83c\udff0',
'european_post_office':'\ud83c\udfe4',
'evergreen_tree':'\ud83c\udf32',
'exclamation':'\u2757\ufe0f',
'expressionless':'\ud83d\ude11',
'eye':'\ud83d\udc41',
'eye_speech_bubble':'\ud83d\udc41&zwj;\ud83d\udde8',
'eyeglasses':'\ud83d\udc53',
'eyes':'\ud83d\udc40',
'face_with_head_bandage':'\ud83e\udd15',
'face_with_thermometer':'\ud83e\udd12',
'fist_oncoming':'\ud83d\udc4a',
'factory':'\ud83c\udfed',
'fallen_leaf':'\ud83c\udf42',
'family_man_woman_boy':'\ud83d\udc6a',
'family_man_boy':'\ud83d\udc68&zwj;\ud83d\udc66',
'family_man_boy_boy':'\ud83d\udc68&zwj;\ud83d\udc66&zwj;\ud83d\udc66',
'family_man_girl':'\ud83d\udc68&zwj;\ud83d\udc67',
'family_man_girl_boy':'\ud83d\udc68&zwj;\ud83d\udc67&zwj;\ud83d\udc66',
'family_man_girl_girl':'\ud83d\udc68&zwj;\ud83d\udc67&zwj;\ud83d\udc67',
'family_man_man_boy':'\ud83d\udc68&zwj;\ud83d\udc68&zwj;\ud83d\udc66',
'family_man_man_boy_boy':'\ud83d\udc68&zwj;\ud83d\udc68&zwj;\ud83d\udc66&zwj;\ud83d\udc66',
'family_man_man_girl':'\ud83d\udc68&zwj;\ud83d\udc68&zwj;\ud83d\udc67',
'family_man_man_girl_boy':'\ud83d\udc68&zwj;\ud83d\udc68&zwj;\ud83d\udc67&zwj;\ud83d\udc66',
'family_man_man_girl_girl':'\ud83d\udc68&zwj;\ud83d\udc68&zwj;\ud83d\udc67&zwj;\ud83d\udc67',
'family_man_woman_boy_boy':'\ud83d\udc68&zwj;\ud83d\udc69&zwj;\ud83d\udc66&zwj;\ud83d\udc66',
'family_man_woman_girl':'\ud83d\udc68&zwj;\ud83d\udc69&zwj;\ud83d\udc67',
'family_man_woman_girl_boy':'\ud83d\udc68&zwj;\ud83d\udc69&zwj;\ud83d\udc67&zwj;\ud83d\udc66',
'family_man_woman_girl_girl':'\ud83d\udc68&zwj;\ud83d\udc69&zwj;\ud83d\udc67&zwj;\ud83d\udc67',
'family_woman_boy':'\ud83d\udc69&zwj;\ud83d\udc66',
'family_woman_boy_boy':'\ud83d\udc69&zwj;\ud83d\udc66&zwj;\ud83d\udc66',
'family_woman_girl':'\ud83d\udc69&zwj;\ud83d\udc67',
'family_woman_girl_boy':'\ud83d\udc69&zwj;\ud83d\udc67&zwj;\ud83d\udc66',
'family_woman_girl_girl':'\ud83d\udc69&zwj;\ud83d\udc67&zwj;\ud83d\udc67',
'family_woman_woman_boy':'\ud83d\udc69&zwj;\ud83d\udc69&zwj;\ud83d\udc66',
'family_woman_woman_boy_boy':'\ud83d\udc69&zwj;\ud83d\udc69&zwj;\ud83d\udc66&zwj;\ud83d\udc66',
'family_woman_woman_girl':'\ud83d\udc69&zwj;\ud83d\udc69&zwj;\ud83d\udc67',
'family_woman_woman_girl_boy':'\ud83d\udc69&zwj;\ud83d\udc69&zwj;\ud83d\udc67&zwj;\ud83d\udc66',
'family_woman_woman_girl_girl':'\ud83d\udc69&zwj;\ud83d\udc69&zwj;\ud83d\udc67&zwj;\ud83d\udc67',
'fast_forward':'\u23e9',
'fax':'\ud83d\udce0',
'fearful':'\ud83d\ude28',
'feet':'\ud83d\udc3e',
'female_detective':'\ud83d\udd75\ufe0f&zwj;\u2640\ufe0f',
'ferris_wheel':'\ud83c\udfa1',
'ferry':'\u26f4',
'field_hockey':'\ud83c\udfd1',
'file_cabinet':'\ud83d\uddc4',
'file_folder':'\ud83d\udcc1',
'film_projector':'\ud83d\udcfd',
'film_strip':'\ud83c\udf9e',
'fire':'\ud83d\udd25',
'fire_engine':'\ud83d\ude92',
'fireworks':'\ud83c\udf86',
'first_quarter_moon':'\ud83c\udf13',
'first_quarter_moon_with_face':'\ud83c\udf1b',
'fish':'\ud83d\udc1f',
'fish_cake':'\ud83c\udf65',
'fishing_pole_and_fish':'\ud83c\udfa3',
'fist_raised':'\u270a',
'fist_left':'\ud83e\udd1b',
'fist_right':'\ud83e\udd1c',
'flags':'\ud83c\udf8f',
'flashlight':'\ud83d\udd26',
'fleur_de_lis':'\u269c\ufe0f',
'flight_arrival':'\ud83d\udeec',
'flight_departure':'\ud83d\udeeb',
'floppy_disk':'\ud83d\udcbe',
'flower_playing_cards':'\ud83c\udfb4',
'flushed':'\ud83d\ude33',
'fog':'\ud83c\udf2b',
'foggy':'\ud83c\udf01',
'football':'\ud83c\udfc8',
'footprints':'\ud83d\udc63',
'fork_and_knife':'\ud83c\udf74',
'fountain':'\u26f2\ufe0f',
'fountain_pen':'\ud83d\udd8b',
'four_leaf_clover':'\ud83c\udf40',
'fox_face':'\ud83e\udd8a',
'framed_picture':'\ud83d\uddbc',
'free':'\ud83c\udd93',
'fried_egg':'\ud83c\udf73',
'fried_shrimp':'\ud83c\udf64',
'fries':'\ud83c\udf5f',
'frog':'\ud83d\udc38',
'frowning':'\ud83d\ude26',
'frowning_face':'\u2639\ufe0f',
'frowning_man':'\ud83d\ude4d&zwj;\u2642\ufe0f',
'frowning_woman':'\ud83d\ude4d',
'middle_finger':'\ud83d\udd95',
'fuelpump':'\u26fd\ufe0f',
'full_moon':'\ud83c\udf15',
'full_moon_with_face':'\ud83c\udf1d',
'funeral_urn':'\u26b1\ufe0f',
'game_die':'\ud83c\udfb2',
'gear':'\u2699\ufe0f',
'gem':'\ud83d\udc8e',
'gemini':'\u264a\ufe0f',
'ghost':'\ud83d\udc7b',
'gift':'\ud83c\udf81',
'gift_heart':'\ud83d\udc9d',
'girl':'\ud83d\udc67',
'globe_with_meridians':'\ud83c\udf10',
'goal_net':'\ud83e\udd45',
'goat':'\ud83d\udc10',
'golf':'\u26f3\ufe0f',
'golfing_man':'\ud83c\udfcc\ufe0f',
'golfing_woman':'\ud83c\udfcc\ufe0f&zwj;\u2640\ufe0f',
'gorilla':'\ud83e\udd8d',
'grapes':'\ud83c\udf47',
'green_apple':'\ud83c\udf4f',
'green_book':'\ud83d\udcd7',
'green_heart':'\ud83d\udc9a',
'green_salad':'\ud83e\udd57',
'grey_exclamation':'\u2755',
'grey_question':'\u2754',
'grimacing':'\ud83d\ude2c',
'grin':'\ud83d\ude01',
'grinning':'\ud83d\ude00',
'guardsman':'\ud83d\udc82',
'guardswoman':'\ud83d\udc82&zwj;\u2640\ufe0f',
'guitar':'\ud83c\udfb8',
'gun':'\ud83d\udd2b',
'haircut_woman':'\ud83d\udc87',
'haircut_man':'\ud83d\udc87&zwj;\u2642\ufe0f',
'hamburger':'\ud83c\udf54',
'hammer':'\ud83d\udd28',
'hammer_and_pick':'\u2692',
'hammer_and_wrench':'\ud83d\udee0',
'hamster':'\ud83d\udc39',
'hand':'\u270b',
'handbag':'\ud83d\udc5c',
'handshake':'\ud83e\udd1d',
'hankey':'\ud83d\udca9',
'hatched_chick':'\ud83d\udc25',
'hatching_chick':'\ud83d\udc23',
'headphones':'\ud83c\udfa7',
'hear_no_evil':'\ud83d\ude49',
'heart':'\u2764\ufe0f',
'heart_decoration':'\ud83d\udc9f',
'heart_eyes':'\ud83d\ude0d',
'heart_eyes_cat':'\ud83d\ude3b',
'heartbeat':'\ud83d\udc93',
'heartpulse':'\ud83d\udc97',
'hearts':'\u2665\ufe0f',
'heavy_check_mark':'\u2714\ufe0f',
'heavy_division_sign':'\u2797',
'heavy_dollar_sign':'\ud83d\udcb2',
'heavy_heart_exclamation':'\u2763\ufe0f',
'heavy_minus_sign':'\u2796',
'heavy_multiplication_x':'\u2716\ufe0f',
'heavy_plus_sign':'\u2795',
'helicopter':'\ud83d\ude81',
'herb':'\ud83c\udf3f',
'hibiscus':'\ud83c\udf3a',
'high_brightness':'\ud83d\udd06',
'high_heel':'\ud83d\udc60',
'hocho':'\ud83d\udd2a',
'hole':'\ud83d\udd73',
'honey_pot':'\ud83c\udf6f',
'horse':'\ud83d\udc34',
'horse_racing':'\ud83c\udfc7',
'hospital':'\ud83c\udfe5',
'hot_pepper':'\ud83c\udf36',
'hotdog':'\ud83c\udf2d',
'hotel':'\ud83c\udfe8',
'hotsprings':'\u2668\ufe0f',
'hourglass':'\u231b\ufe0f',
'hourglass_flowing_sand':'\u23f3',
'house':'\ud83c\udfe0',
'house_with_garden':'\ud83c\udfe1',
'houses':'\ud83c\udfd8',
'hugs':'\ud83e\udd17',
'hushed':'\ud83d\ude2f',
'ice_cream':'\ud83c\udf68',
'ice_hockey':'\ud83c\udfd2',
'ice_skate':'\u26f8',
'icecream':'\ud83c\udf66',
'id':'\ud83c\udd94',
'ideograph_advantage':'\ud83c\ude50',
'imp':'\ud83d\udc7f',
'inbox_tray':'\ud83d\udce5',
'incoming_envelope':'\ud83d\udce8',
'tipping_hand_woman':'\ud83d\udc81',
'information_source':'\u2139\ufe0f',
'innocent':'\ud83d\ude07',
'interrobang':'\u2049\ufe0f',
'iphone':'\ud83d\udcf1',
'izakaya_lantern':'\ud83c\udfee',
'jack_o_lantern':'\ud83c\udf83',
'japan':'\ud83d\uddfe',
'japanese_castle':'\ud83c\udfef',
'japanese_goblin':'\ud83d\udc7a',
'japanese_ogre':'\ud83d\udc79',
'jeans':'\ud83d\udc56',
'joy':'\ud83d\ude02',
'joy_cat':'\ud83d\ude39',
'joystick':'\ud83d\udd79',
'kaaba':'\ud83d\udd4b',
'key':'\ud83d\udd11',
'keyboard':'\u2328\ufe0f',
'keycap_ten':'\ud83d\udd1f',
'kick_scooter':'\ud83d\udef4',
'kimono':'\ud83d\udc58',
'kiss':'\ud83d\udc8b',
'kissing':'\ud83d\ude17',
'kissing_cat':'\ud83d\ude3d',
'kissing_closed_eyes':'\ud83d\ude1a',
'kissing_heart':'\ud83d\ude18',
'kissing_smiling_eyes':'\ud83d\ude19',
'kiwi_fruit':'\ud83e\udd5d',
'koala':'\ud83d\udc28',
'koko':'\ud83c\ude01',
'label':'\ud83c\udff7',
'large_blue_circle':'\ud83d\udd35',
'large_blue_diamond':'\ud83d\udd37',
'large_orange_diamond':'\ud83d\udd36',
'last_quarter_moon':'\ud83c\udf17',
'last_quarter_moon_with_face':'\ud83c\udf1c',
'latin_cross':'\u271d\ufe0f',
'laughing':'\ud83d\ude06',
'leaves':'\ud83c\udf43',
'ledger':'\ud83d\udcd2',
'left_luggage':'\ud83d\udec5',
'left_right_arrow':'\u2194\ufe0f',
'leftwards_arrow_with_hook':'\u21a9\ufe0f',
'lemon':'\ud83c\udf4b',
'leo':'\u264c\ufe0f',
'leopard':'\ud83d\udc06',
'level_slider':'\ud83c\udf9a',
'libra':'\u264e\ufe0f',
'light_rail':'\ud83d\ude88',
'link':'\ud83d\udd17',
'lion':'\ud83e\udd81',
'lips':'\ud83d\udc44',
'lipstick':'\ud83d\udc84',
'lizard':'\ud83e\udd8e',
'lock':'\ud83d\udd12',
'lock_with_ink_pen':'\ud83d\udd0f',
'lollipop':'\ud83c\udf6d',
'loop':'\u27bf',
'loud_sound':'\ud83d\udd0a',
'loudspeaker':'\ud83d\udce2',
'love_hotel':'\ud83c\udfe9',
'love_letter':'\ud83d\udc8c',
'low_brightness':'\ud83d\udd05',
'lying_face':'\ud83e\udd25',
'm':'\u24c2\ufe0f',
'mag':'\ud83d\udd0d',
'mag_right':'\ud83d\udd0e',
'mahjong':'\ud83c\udc04\ufe0f',
'mailbox':'\ud83d\udceb',
'mailbox_closed':'\ud83d\udcea',
'mailbox_with_mail':'\ud83d\udcec',
'mailbox_with_no_mail':'\ud83d\udced',
'man':'\ud83d\udc68',
'man_artist':'\ud83d\udc68&zwj;\ud83c\udfa8',
'man_astronaut':'\ud83d\udc68&zwj;\ud83d\ude80',
'man_cartwheeling':'\ud83e\udd38&zwj;\u2642\ufe0f',
'man_cook':'\ud83d\udc68&zwj;\ud83c\udf73',
'man_dancing':'\ud83d\udd7a',
'man_facepalming':'\ud83e\udd26&zwj;\u2642\ufe0f',
'man_factory_worker':'\ud83d\udc68&zwj;\ud83c\udfed',
'man_farmer':'\ud83d\udc68&zwj;\ud83c\udf3e',
'man_firefighter':'\ud83d\udc68&zwj;\ud83d\ude92',
'man_health_worker':'\ud83d\udc68&zwj;\u2695\ufe0f',
'man_in_tuxedo':'\ud83e\udd35',
'man_judge':'\ud83d\udc68&zwj;\u2696\ufe0f',
'man_juggling':'\ud83e\udd39&zwj;\u2642\ufe0f',
'man_mechanic':'\ud83d\udc68&zwj;\ud83d\udd27',
'man_office_worker':'\ud83d\udc68&zwj;\ud83d\udcbc',
'man_pilot':'\ud83d\udc68&zwj;\u2708\ufe0f',
'man_playing_handball':'\ud83e\udd3e&zwj;\u2642\ufe0f',
'man_playing_water_polo':'\ud83e\udd3d&zwj;\u2642\ufe0f',
'man_scientist':'\ud83d\udc68&zwj;\ud83d\udd2c',
'man_shrugging':'\ud83e\udd37&zwj;\u2642\ufe0f',
'man_singer':'\ud83d\udc68&zwj;\ud83c\udfa4',
'man_student':'\ud83d\udc68&zwj;\ud83c\udf93',
'man_teacher':'\ud83d\udc68&zwj;\ud83c\udfeb',
'man_technologist':'\ud83d\udc68&zwj;\ud83d\udcbb',
'man_with_gua_pi_mao':'\ud83d\udc72',
'man_with_turban':'\ud83d\udc73',
'tangerine':'\ud83c\udf4a',
'mans_shoe':'\ud83d\udc5e',
'mantelpiece_clock':'\ud83d\udd70',
'maple_leaf':'\ud83c\udf41',
'martial_arts_uniform':'\ud83e\udd4b',
'mask':'\ud83d\ude37',
'massage_woman':'\ud83d\udc86',
'massage_man':'\ud83d\udc86&zwj;\u2642\ufe0f',
'meat_on_bone':'\ud83c\udf56',
'medal_military':'\ud83c\udf96',
'medal_sports':'\ud83c\udfc5',
'mega':'\ud83d\udce3',
'melon':'\ud83c\udf48',
'memo':'\ud83d\udcdd',
'men_wrestling':'\ud83e\udd3c&zwj;\u2642\ufe0f',
'menorah':'\ud83d\udd4e',
'mens':'\ud83d\udeb9',
'metal':'\ud83e\udd18',
'metro':'\ud83d\ude87',
'microphone':'\ud83c\udfa4',
'microscope':'\ud83d\udd2c',
'milk_glass':'\ud83e\udd5b',
'milky_way':'\ud83c\udf0c',
'minibus':'\ud83d\ude90',
'minidisc':'\ud83d\udcbd',
'mobile_phone_off':'\ud83d\udcf4',
'money_mouth_face':'\ud83e\udd11',
'money_with_wings':'\ud83d\udcb8',
'moneybag':'\ud83d\udcb0',
'monkey':'\ud83d\udc12',
'monkey_face':'\ud83d\udc35',
'monorail':'\ud83d\ude9d',
'moon':'\ud83c\udf14',
'mortar_board':'\ud83c\udf93',
'mosque':'\ud83d\udd4c',
'motor_boat':'\ud83d\udee5',
'motor_scooter':'\ud83d\udef5',
'motorcycle':'\ud83c\udfcd',
'motorway':'\ud83d\udee3',
'mount_fuji':'\ud83d\uddfb',
'mountain':'\u26f0',
'mountain_biking_man':'\ud83d\udeb5',
'mountain_biking_woman':'\ud83d\udeb5&zwj;\u2640\ufe0f',
'mountain_cableway':'\ud83d\udea0',
'mountain_railway':'\ud83d\ude9e',
'mountain_snow':'\ud83c\udfd4',
'mouse':'\ud83d\udc2d',
'mouse2':'\ud83d\udc01',
'movie_camera':'\ud83c\udfa5',
'moyai':'\ud83d\uddff',
'mrs_claus':'\ud83e\udd36',
'muscle':'\ud83d\udcaa',
'mushroom':'\ud83c\udf44',
'musical_keyboard':'\ud83c\udfb9',
'musical_note':'\ud83c\udfb5',
'musical_score':'\ud83c\udfbc',
'mute':'\ud83d\udd07',
'nail_care':'\ud83d\udc85',
'name_badge':'\ud83d\udcdb',
'national_park':'\ud83c\udfde',
'nauseated_face':'\ud83e\udd22',
'necktie':'\ud83d\udc54',
'negative_squared_cross_mark':'\u274e',
'nerd_face':'\ud83e\udd13',
'neutral_face':'\ud83d\ude10',
'new':'\ud83c\udd95',
'new_moon':'\ud83c\udf11',
'new_moon_with_face':'\ud83c\udf1a',
'newspaper':'\ud83d\udcf0',
'newspaper_roll':'\ud83d\uddde',
'next_track_button':'\u23ed',
'ng':'\ud83c\udd96',
'no_good_man':'\ud83d\ude45&zwj;\u2642\ufe0f',
'no_good_woman':'\ud83d\ude45',
'night_with_stars':'\ud83c\udf03',
'no_bell':'\ud83d\udd15',
'no_bicycles':'\ud83d\udeb3',
'no_entry':'\u26d4\ufe0f',
'no_entry_sign':'\ud83d\udeab',
'no_mobile_phones':'\ud83d\udcf5',
'no_mouth':'\ud83d\ude36',
'no_pedestrians':'\ud83d\udeb7',
'no_smoking':'\ud83d\udead',
'non-potable_water':'\ud83d\udeb1',
'nose':'\ud83d\udc43',
'notebook':'\ud83d\udcd3',
'notebook_with_decorative_cover':'\ud83d\udcd4',
'notes':'\ud83c\udfb6',
'nut_and_bolt':'\ud83d\udd29',
'o':'\u2b55\ufe0f',
'o2':'\ud83c\udd7e\ufe0f',
'ocean':'\ud83c\udf0a',
'octopus':'\ud83d\udc19',
'oden':'\ud83c\udf62',
'office':'\ud83c\udfe2',
'oil_drum':'\ud83d\udee2',
'ok':'\ud83c\udd97',
'ok_hand':'\ud83d\udc4c',
'ok_man':'\ud83d\ude46&zwj;\u2642\ufe0f',
'ok_woman':'\ud83d\ude46',
'old_key':'\ud83d\udddd',
'older_man':'\ud83d\udc74',
'older_woman':'\ud83d\udc75',
'om':'\ud83d\udd49',
'on':'\ud83d\udd1b',
'oncoming_automobile':'\ud83d\ude98',
'oncoming_bus':'\ud83d\ude8d',
'oncoming_police_car':'\ud83d\ude94',
'oncoming_taxi':'\ud83d\ude96',
'open_file_folder':'\ud83d\udcc2',
'open_hands':'\ud83d\udc50',
'open_mouth':'\ud83d\ude2e',
'open_umbrella':'\u2602\ufe0f',
'ophiuchus':'\u26ce',
'orange_book':'\ud83d\udcd9',
'orthodox_cross':'\u2626\ufe0f',
'outbox_tray':'\ud83d\udce4',
'owl':'\ud83e\udd89',
'ox':'\ud83d\udc02',
'package':'\ud83d\udce6',
'page_facing_up':'\ud83d\udcc4',
'page_with_curl':'\ud83d\udcc3',
'pager':'\ud83d\udcdf',
'paintbrush':'\ud83d\udd8c',
'palm_tree':'\ud83c\udf34',
'pancakes':'\ud83e\udd5e',
'panda_face':'\ud83d\udc3c',
'paperclip':'\ud83d\udcce',
'paperclips':'\ud83d\udd87',
'parasol_on_ground':'\u26f1',
'parking':'\ud83c\udd7f\ufe0f',
'part_alternation_mark':'\u303d\ufe0f',
'partly_sunny':'\u26c5\ufe0f',
'passenger_ship':'\ud83d\udef3',
'passport_control':'\ud83d\udec2',
'pause_button':'\u23f8',
'peace_symbol':'\u262e\ufe0f',
'peach':'\ud83c\udf51',
'peanuts':'\ud83e\udd5c',
'pear':'\ud83c\udf50',
'pen':'\ud83d\udd8a',
'pencil2':'\u270f\ufe0f',
'penguin':'\ud83d\udc27',
'pensive':'\ud83d\ude14',
'performing_arts':'\ud83c\udfad',
'persevere':'\ud83d\ude23',
'person_fencing':'\ud83e\udd3a',
'pouting_woman':'\ud83d\ude4e',
'phone':'\u260e\ufe0f',
'pick':'\u26cf',
'pig':'\ud83d\udc37',
'pig2':'\ud83d\udc16',
'pig_nose':'\ud83d\udc3d',
'pill':'\ud83d\udc8a',
'pineapple':'\ud83c\udf4d',
'ping_pong':'\ud83c\udfd3',
'pisces':'\u2653\ufe0f',
'pizza':'\ud83c\udf55',
'place_of_worship':'\ud83d\uded0',
'plate_with_cutlery':'\ud83c\udf7d',
'play_or_pause_button':'\u23ef',
'point_down':'\ud83d\udc47',
'point_left':'\ud83d\udc48',
'point_right':'\ud83d\udc49',
'point_up':'\u261d\ufe0f',
'point_up_2':'\ud83d\udc46',
'police_car':'\ud83d\ude93',
'policewoman':'\ud83d\udc6e&zwj;\u2640\ufe0f',
'poodle':'\ud83d\udc29',
'popcorn':'\ud83c\udf7f',
'post_office':'\ud83c\udfe3',
'postal_horn':'\ud83d\udcef',
'postbox':'\ud83d\udcee',
'potable_water':'\ud83d\udeb0',
'potato':'\ud83e\udd54',
'pouch':'\ud83d\udc5d',
'poultry_leg':'\ud83c\udf57',
'pound':'\ud83d\udcb7',
'rage':'\ud83d\ude21',
'pouting_cat':'\ud83d\ude3e',
'pouting_man':'\ud83d\ude4e&zwj;\u2642\ufe0f',
'pray':'\ud83d\ude4f',
'prayer_beads':'\ud83d\udcff',
'pregnant_woman':'\ud83e\udd30',
'previous_track_button':'\u23ee',
'prince':'\ud83e\udd34',
'princess':'\ud83d\udc78',
'printer':'\ud83d\udda8',
'purple_heart':'\ud83d\udc9c',
'purse':'\ud83d\udc5b',
'pushpin':'\ud83d\udccc',
'put_litter_in_its_place':'\ud83d\udeae',
'question':'\u2753',
'rabbit':'\ud83d\udc30',
'rabbit2':'\ud83d\udc07',
'racehorse':'\ud83d\udc0e',
'racing_car':'\ud83c\udfce',
'radio':'\ud83d\udcfb',
'radio_button':'\ud83d\udd18',
'radioactive':'\u2622\ufe0f',
'railway_car':'\ud83d\ude83',
'railway_track':'\ud83d\udee4',
'rainbow':'\ud83c\udf08',
'rainbow_flag':'\ud83c\udff3\ufe0f&zwj;\ud83c\udf08',
'raised_back_of_hand':'\ud83e\udd1a',
'raised_hand_with_fingers_splayed':'\ud83d\udd90',
'raised_hands':'\ud83d\ude4c',
'raising_hand_woman':'\ud83d\ude4b',
'raising_hand_man':'\ud83d\ude4b&zwj;\u2642\ufe0f',
'ram':'\ud83d\udc0f',
'ramen':'\ud83c\udf5c',
'rat':'\ud83d\udc00',
'record_button':'\u23fa',
'recycle':'\u267b\ufe0f',
'red_circle':'\ud83d\udd34',
'registered':'\u00ae\ufe0f',
'relaxed':'\u263a\ufe0f',
'relieved':'\ud83d\ude0c',
'reminder_ribbon':'\ud83c\udf97',
'repeat':'\ud83d\udd01',
'repeat_one':'\ud83d\udd02',
'rescue_worker_helmet':'\u26d1',
'restroom':'\ud83d\udebb',
'revolving_hearts':'\ud83d\udc9e',
'rewind':'\u23ea',
'rhinoceros':'\ud83e\udd8f',
'ribbon':'\ud83c\udf80',
'rice':'\ud83c\udf5a',
'rice_ball':'\ud83c\udf59',
'rice_cracker':'\ud83c\udf58',
'rice_scene':'\ud83c\udf91',
'right_anger_bubble':'\ud83d\uddef',
'ring':'\ud83d\udc8d',
'robot':'\ud83e\udd16',
'rocket':'\ud83d\ude80',
'rofl':'\ud83e\udd23',
'roll_eyes':'\ud83d\ude44',
'roller_coaster':'\ud83c\udfa2',
'rooster':'\ud83d\udc13',
'rose':'\ud83c\udf39',
'rosette':'\ud83c\udff5',
'rotating_light':'\ud83d\udea8',
'round_pushpin':'\ud83d\udccd',
'rowing_man':'\ud83d\udea3',
'rowing_woman':'\ud83d\udea3&zwj;\u2640\ufe0f',
'rugby_football':'\ud83c\udfc9',
'running_man':'\ud83c\udfc3',
'running_shirt_with_sash':'\ud83c\udfbd',
'running_woman':'\ud83c\udfc3&zwj;\u2640\ufe0f',
'sa':'\ud83c\ude02\ufe0f',
'sagittarius':'\u2650\ufe0f',
'sake':'\ud83c\udf76',
'sandal':'\ud83d\udc61',
'santa':'\ud83c\udf85',
'satellite':'\ud83d\udce1',
'saxophone':'\ud83c\udfb7',
'school':'\ud83c\udfeb',
'school_satchel':'\ud83c\udf92',
'scissors':'\u2702\ufe0f',
'scorpion':'\ud83e\udd82',
'scorpius':'\u264f\ufe0f',
'scream':'\ud83d\ude31',
'scream_cat':'\ud83d\ude40',
'scroll':'\ud83d\udcdc',
'seat':'\ud83d\udcba',
'secret':'\u3299\ufe0f',
'see_no_evil':'\ud83d\ude48',
'seedling':'\ud83c\udf31',
'selfie':'\ud83e\udd33',
'shallow_pan_of_food':'\ud83e\udd58',
'shamrock':'\u2618\ufe0f',
'shark':'\ud83e\udd88',
'shaved_ice':'\ud83c\udf67',
'sheep':'\ud83d\udc11',
'shell':'\ud83d\udc1a',
'shield':'\ud83d\udee1',
'shinto_shrine':'\u26e9',
'ship':'\ud83d\udea2',
'shirt':'\ud83d\udc55',
'shopping':'\ud83d\udecd',
'shopping_cart':'\ud83d\uded2',
'shower':'\ud83d\udebf',
'shrimp':'\ud83e\udd90',
'signal_strength':'\ud83d\udcf6',
'six_pointed_star':'\ud83d\udd2f',
'ski':'\ud83c\udfbf',
'skier':'\u26f7',
'skull':'\ud83d\udc80',
'skull_and_crossbones':'\u2620\ufe0f',
'sleeping':'\ud83d\ude34',
'sleeping_bed':'\ud83d\udecc',
'sleepy':'\ud83d\ude2a',
'slightly_frowning_face':'\ud83d\ude41',
'slightly_smiling_face':'\ud83d\ude42',
'slot_machine':'\ud83c\udfb0',
'small_airplane':'\ud83d\udee9',
'small_blue_diamond':'\ud83d\udd39',
'small_orange_diamond':'\ud83d\udd38',
'small_red_triangle':'\ud83d\udd3a',
'small_red_triangle_down':'\ud83d\udd3b',
'smile':'\ud83d\ude04',
'smile_cat':'\ud83d\ude38',
'smiley':'\ud83d\ude03',
'smiley_cat':'\ud83d\ude3a',
'smiling_imp':'\ud83d\ude08',
'smirk':'\ud83d\ude0f',
'smirk_cat':'\ud83d\ude3c',
'smoking':'\ud83d\udeac',
'snail':'\ud83d\udc0c',
'snake':'\ud83d\udc0d',
'sneezing_face':'\ud83e\udd27',
'snowboarder':'\ud83c\udfc2',
'snowflake':'\u2744\ufe0f',
'snowman':'\u26c4\ufe0f',
'snowman_with_snow':'\u2603\ufe0f',
'sob':'\ud83d\ude2d',
'soccer':'\u26bd\ufe0f',
'soon':'\ud83d\udd1c',
'sos':'\ud83c\udd98',
'sound':'\ud83d\udd09',
'space_invader':'\ud83d\udc7e',
'spades':'\u2660\ufe0f',
'spaghetti':'\ud83c\udf5d',
'sparkle':'\u2747\ufe0f',
'sparkler':'\ud83c\udf87',
'sparkles':'\u2728',
'sparkling_heart':'\ud83d\udc96',
'speak_no_evil':'\ud83d\ude4a',
'speaker':'\ud83d\udd08',
'speaking_head':'\ud83d\udde3',
'speech_balloon':'\ud83d\udcac',
'speedboat':'\ud83d\udea4',
'spider':'\ud83d\udd77',
'spider_web':'\ud83d\udd78',
'spiral_calendar':'\ud83d\uddd3',
'spiral_notepad':'\ud83d\uddd2',
'spoon':'\ud83e\udd44',
'squid':'\ud83e\udd91',
'stadium':'\ud83c\udfdf',
'star':'\u2b50\ufe0f',
'star2':'\ud83c\udf1f',
'star_and_crescent':'\u262a\ufe0f',
'star_of_david':'\u2721\ufe0f',
'stars':'\ud83c\udf20',
'station':'\ud83d\ude89',
'statue_of_liberty':'\ud83d\uddfd',
'steam_locomotive':'\ud83d\ude82',
'stew':'\ud83c\udf72',
'stop_button':'\u23f9',
'stop_sign':'\ud83d\uded1',
'stopwatch':'\u23f1',
'straight_ruler':'\ud83d\udccf',
'strawberry':'\ud83c\udf53',
'stuck_out_tongue':'\ud83d\ude1b',
'stuck_out_tongue_closed_eyes':'\ud83d\ude1d',
'stuck_out_tongue_winking_eye':'\ud83d\ude1c',
'studio_microphone':'\ud83c\udf99',
'stuffed_flatbread':'\ud83e\udd59',
'sun_behind_large_cloud':'\ud83c\udf25',
'sun_behind_rain_cloud':'\ud83c\udf26',
'sun_behind_small_cloud':'\ud83c\udf24',
'sun_with_face':'\ud83c\udf1e',
'sunflower':'\ud83c\udf3b',
'sunglasses':'\ud83d\ude0e',
'sunny':'\u2600\ufe0f',
'sunrise':'\ud83c\udf05',
'sunrise_over_mountains':'\ud83c\udf04',
'surfing_man':'\ud83c\udfc4',
'surfing_woman':'\ud83c\udfc4&zwj;\u2640\ufe0f',
'sushi':'\ud83c\udf63',
'suspension_railway':'\ud83d\ude9f',
'sweat':'\ud83d\ude13',
'sweat_drops':'\ud83d\udca6',
'sweat_smile':'\ud83d\ude05',
'sweet_potato':'\ud83c\udf60',
'swimming_man':'\ud83c\udfca',
'swimming_woman':'\ud83c\udfca&zwj;\u2640\ufe0f',
'symbols':'\ud83d\udd23',
'synagogue':'\ud83d\udd4d',
'syringe':'\ud83d\udc89',
'taco':'\ud83c\udf2e',
'tada':'\ud83c\udf89',
'tanabata_tree':'\ud83c\udf8b',
'taurus':'\u2649\ufe0f',
'taxi':'\ud83d\ude95',
'tea':'\ud83c\udf75',
'telephone_receiver':'\ud83d\udcde',
'telescope':'\ud83d\udd2d',
'tennis':'\ud83c\udfbe',
'tent':'\u26fa\ufe0f',
'thermometer':'\ud83c\udf21',
'thinking':'\ud83e\udd14',
'thought_balloon':'\ud83d\udcad',
'ticket':'\ud83c\udfab',
'tickets':'\ud83c\udf9f',
'tiger':'\ud83d\udc2f',
'tiger2':'\ud83d\udc05',
'timer_clock':'\u23f2',
'tipping_hand_man':'\ud83d\udc81&zwj;\u2642\ufe0f',
'tired_face':'\ud83d\ude2b',
'tm':'\u2122\ufe0f',
'toilet':'\ud83d\udebd',
'tokyo_tower':'\ud83d\uddfc',
'tomato':'\ud83c\udf45',
'tongue':'\ud83d\udc45',
'top':'\ud83d\udd1d',
'tophat':'\ud83c\udfa9',
'tornado':'\ud83c\udf2a',
'trackball':'\ud83d\uddb2',
'tractor':'\ud83d\ude9c',
'traffic_light':'\ud83d\udea5',
'train':'\ud83d\ude8b',
'train2':'\ud83d\ude86',
'tram':'\ud83d\ude8a',
'triangular_flag_on_post':'\ud83d\udea9',
'triangular_ruler':'\ud83d\udcd0',
'trident':'\ud83d\udd31',
'triumph':'\ud83d\ude24',
'trolleybus':'\ud83d\ude8e',
'trophy':'\ud83c\udfc6',
'tropical_drink':'\ud83c\udf79',
'tropical_fish':'\ud83d\udc20',
'truck':'\ud83d\ude9a',
'trumpet':'\ud83c\udfba',
'tulip':'\ud83c\udf37',
'tumbler_glass':'\ud83e\udd43',
'turkey':'\ud83e\udd83',
'turtle':'\ud83d\udc22',
'tv':'\ud83d\udcfa',
'twisted_rightwards_arrows':'\ud83d\udd00',
'two_hearts':'\ud83d\udc95',
'two_men_holding_hands':'\ud83d\udc6c',
'two_women_holding_hands':'\ud83d\udc6d',
'u5272':'\ud83c\ude39',
'u5408':'\ud83c\ude34',
'u55b6':'\ud83c\ude3a',
'u6307':'\ud83c\ude2f\ufe0f',
'u6708':'\ud83c\ude37\ufe0f',
'u6709':'\ud83c\ude36',
'u6e80':'\ud83c\ude35',
'u7121':'\ud83c\ude1a\ufe0f',
'u7533':'\ud83c\ude38',
'u7981':'\ud83c\ude32',
'u7a7a':'\ud83c\ude33',
'umbrella':'\u2614\ufe0f',
'unamused':'\ud83d\ude12',
'underage':'\ud83d\udd1e',
'unicorn':'\ud83e\udd84',
'unlock':'\ud83d\udd13',
'up':'\ud83c\udd99',
'upside_down_face':'\ud83d\ude43',
'v':'\u270c\ufe0f',
'vertical_traffic_light':'\ud83d\udea6',
'vhs':'\ud83d\udcfc',
'vibration_mode':'\ud83d\udcf3',
'video_camera':'\ud83d\udcf9',
'video_game':'\ud83c\udfae',
'violin':'\ud83c\udfbb',
'virgo':'\u264d\ufe0f',
'volcano':'\ud83c\udf0b',
'volleyball':'\ud83c\udfd0',
'vs':'\ud83c\udd9a',
'vulcan_salute':'\ud83d\udd96',
'walking_man':'\ud83d\udeb6',
'walking_woman':'\ud83d\udeb6&zwj;\u2640\ufe0f',
'waning_crescent_moon':'\ud83c\udf18',
'waning_gibbous_moon':'\ud83c\udf16',
'warning':'\u26a0\ufe0f',
'wastebasket':'\ud83d\uddd1',
'watch':'\u231a\ufe0f',
'water_buffalo':'\ud83d\udc03',
'watermelon':'\ud83c\udf49',
'wave':'\ud83d\udc4b',
'wavy_dash':'\u3030\ufe0f',
'waxing_crescent_moon':'\ud83c\udf12',
'wc':'\ud83d\udebe',
'weary':'\ud83d\ude29',
'wedding':'\ud83d\udc92',
'weight_lifting_man':'\ud83c\udfcb\ufe0f',
'weight_lifting_woman':'\ud83c\udfcb\ufe0f&zwj;\u2640\ufe0f',
'whale':'\ud83d\udc33',
'whale2':'\ud83d\udc0b',
'wheel_of_dharma':'\u2638\ufe0f',
'wheelchair':'\u267f\ufe0f',
'white_check_mark':'\u2705',
'white_circle':'\u26aa\ufe0f',
'white_flag':'\ud83c\udff3\ufe0f',
'white_flower':'\ud83d\udcae',
'white_large_square':'\u2b1c\ufe0f',
'white_medium_small_square':'\u25fd\ufe0f',
'white_medium_square':'\u25fb\ufe0f',
'white_small_square':'\u25ab\ufe0f',
'white_square_button':'\ud83d\udd33',
'wilted_flower':'\ud83e\udd40',
'wind_chime':'\ud83c\udf90',
'wind_face':'\ud83c\udf2c',
'wine_glass':'\ud83c\udf77',
'wink':'\ud83d\ude09',
'wolf':'\ud83d\udc3a',
'woman':'\ud83d\udc69',
'woman_artist':'\ud83d\udc69&zwj;\ud83c\udfa8',
'woman_astronaut':'\ud83d\udc69&zwj;\ud83d\ude80',
'woman_cartwheeling':'\ud83e\udd38&zwj;\u2640\ufe0f',
'woman_cook':'\ud83d\udc69&zwj;\ud83c\udf73',
'woman_facepalming':'\ud83e\udd26&zwj;\u2640\ufe0f',
'woman_factory_worker':'\ud83d\udc69&zwj;\ud83c\udfed',
'woman_farmer':'\ud83d\udc69&zwj;\ud83c\udf3e',
'woman_firefighter':'\ud83d\udc69&zwj;\ud83d\ude92',
'woman_health_worker':'\ud83d\udc69&zwj;\u2695\ufe0f',
'woman_judge':'\ud83d\udc69&zwj;\u2696\ufe0f',
'woman_juggling':'\ud83e\udd39&zwj;\u2640\ufe0f',
'woman_mechanic':'\ud83d\udc69&zwj;\ud83d\udd27',
'woman_office_worker':'\ud83d\udc69&zwj;\ud83d\udcbc',
'woman_pilot':'\ud83d\udc69&zwj;\u2708\ufe0f',
'woman_playing_handball':'\ud83e\udd3e&zwj;\u2640\ufe0f',
'woman_playing_water_polo':'\ud83e\udd3d&zwj;\u2640\ufe0f',
'woman_scientist':'\ud83d\udc69&zwj;\ud83d\udd2c',
'woman_shrugging':'\ud83e\udd37&zwj;\u2640\ufe0f',
'woman_singer':'\ud83d\udc69&zwj;\ud83c\udfa4',
'woman_student':'\ud83d\udc69&zwj;\ud83c\udf93',
'woman_teacher':'\ud83d\udc69&zwj;\ud83c\udfeb',
'woman_technologist':'\ud83d\udc69&zwj;\ud83d\udcbb',
'woman_with_turban':'\ud83d\udc73&zwj;\u2640\ufe0f',
'womans_clothes':'\ud83d\udc5a',
'womans_hat':'\ud83d\udc52',
'women_wrestling':'\ud83e\udd3c&zwj;\u2640\ufe0f',
'womens':'\ud83d\udeba',
'world_map':'\ud83d\uddfa',
'worried':'\ud83d\ude1f',
'wrench':'\ud83d\udd27',
'writing_hand':'\u270d\ufe0f',
'x':'\u274c',
'yellow_heart':'\ud83d\udc9b',
'yen':'\ud83d\udcb4',
'yin_yang':'\u262f\ufe0f',
'yum':'\ud83d\ude0b',
'zap':'\u26a1\ufe0f',
'zipper_mouth_face':'\ud83e\udd10',
'zzz':'\ud83d\udca4',
/* special emojis :P */
'octocat': '<img alt=":octocat:" height="20" width="20" align="absmiddle" src="https://assets-cdn.github.com/images/icons/emoji/octocat.png">',
'showdown': '<span style="font-family: \'Anonymous Pro\', monospace; text-decoration: underline; text-decoration-style: dashed; text-decoration-color: #3e8b8a;text-underline-position: under;">S</span>'
};
/**
* Created by Estevao on 31-05-2015.
*/
/**
* Showdown Converter class
* @class
* @param {object} [converterOptions]
* @returns {Converter}
*/
showdown.Converter = function (converterOptions) {
var
/**
* Options used by this converter
* @private
* @type {{}}
*/
options = {},
/**
* Language extensions used by this converter
* @private
* @type {Array}
*/
langExtensions = [],
/**
* Output modifiers extensions used by this converter
* @private
* @type {Array}
*/
outputModifiers = [],
/**
* Event listeners
* @private
* @type {{}}
*/
listeners = {},
/**
* The flavor set in this converter
*/
setConvFlavor = setFlavor,
/**
* Metadata of the document
* @type {{parsed: {}, raw: string, format: string}}
*/
metadata = {
parsed: {},
raw: '',
format: ''
};
_constructor();
/**
* Converter constructor
* @private
*/
function _constructor () {
converterOptions = converterOptions || {};
for (var gOpt in globalOptions) {
if (globalOptions.hasOwnProperty(gOpt)) {
options[gOpt] = globalOptions[gOpt];
}
}
// Merge options
if (typeof converterOptions === 'object') {
for (var opt in converterOptions) {
if (converterOptions.hasOwnProperty(opt)) {
options[opt] = converterOptions[opt];
}
}
} else {
throw Error('Converter expects the passed parameter to be an object, but ' + typeof converterOptions +
' was passed instead.');
}
if (options.extensions) {
showdown.helper.forEach(options.extensions, _parseExtension);
}
}
/**
* Parse extension
* @param {*} ext
* @param {string} [name='']
* @private
*/
function _parseExtension (ext, name) {
name = name || null;
// If it's a string, the extension was previously loaded
if (showdown.helper.isString(ext)) {
ext = showdown.helper.stdExtName(ext);
name = ext;
// LEGACY_SUPPORT CODE
if (showdown.extensions[ext]) {
console.warn('DEPRECATION WARNING: ' + ext + ' is an old extension that uses a deprecated loading method.' +
'Please inform the developer that the extension should be updated!');
legacyExtensionLoading(showdown.extensions[ext], ext);
return;
// END LEGACY SUPPORT CODE
} else if (!showdown.helper.isUndefined(extensions[ext])) {
ext = extensions[ext];
} else {
throw Error('Extension "' + ext + '" could not be loaded. It was either not found or is not a valid extension.');
}
}
if (typeof ext === 'function') {
ext = ext();
}
if (!showdown.helper.isArray(ext)) {
ext = [ext];
}
var validExt = validate(ext, name);
if (!validExt.valid) {
throw Error(validExt.error);
}
for (var i = 0; i < ext.length; ++i) {
switch (ext[i].type) {
case 'lang':
langExtensions.push(ext[i]);
break;
case 'output':
outputModifiers.push(ext[i]);
break;
}
if (ext[i].hasOwnProperty('listeners')) {
for (var ln in ext[i].listeners) {
if (ext[i].listeners.hasOwnProperty(ln)) {
listen(ln, ext[i].listeners[ln]);
}
}
}
}
}
/**
* LEGACY_SUPPORT
* @param {*} ext
* @param {string} name
*/
function legacyExtensionLoading (ext, name) {
if (typeof ext === 'function') {
ext = ext(new showdown.Converter());
}
if (!showdown.helper.isArray(ext)) {
ext = [ext];
}
var valid = validate(ext, name);
if (!valid.valid) {
throw Error(valid.error);
}
for (var i = 0; i < ext.length; ++i) {
switch (ext[i].type) {
case 'lang':
langExtensions.push(ext[i]);
break;
case 'output':
outputModifiers.push(ext[i]);
break;
default:// should never reach here
throw Error('Extension loader error: Type unrecognized!!!');
}
}
}
/**
* Listen to an event
* @param {string} name
* @param {function} callback
*/
function listen (name, callback) {
if (!showdown.helper.isString(name)) {
throw Error('Invalid argument in converter.listen() method: name must be a string, but ' + typeof name + ' given');
}
if (typeof callback !== 'function') {
throw Error('Invalid argument in converter.listen() method: callback must be a function, but ' + typeof callback + ' given');
}
if (!listeners.hasOwnProperty(name)) {
listeners[name] = [];
}
listeners[name].push(callback);
}
function rTrimInputText (text) {
var rsp = text.match(/^\s*/)[0].length,
rgx = new RegExp('^\\s{0,' + rsp + '}', 'gm');
return text.replace(rgx, '');
}
/**
* Dispatch an event
* @private
* @param {string} evtName Event name
* @param {string} text Text
* @param {{}} options Converter Options
* @param {{}} globals
* @returns {string}
*/
this._dispatch = function dispatch (evtName, text, options, globals) {
if (listeners.hasOwnProperty(evtName)) {
for (var ei = 0; ei < listeners[evtName].length; ++ei) {
var nText = listeners[evtName][ei](evtName, text, this, options, globals);
if (nText && typeof nText !== 'undefined') {
text = nText;
}
}
}
return text;
};
/**
* Listen to an event
* @param {string} name
* @param {function} callback
* @returns {showdown.Converter}
*/
this.listen = function (name, callback) {
listen(name, callback);
return this;
};
/**
* Converts a markdown string into HTML
* @param {string} text
* @returns {*}
*/
this.makeHtml = function (text) {
//check if text is not falsy
if (!text) {
return text;
}
var globals = {
gHtmlBlocks: [],
gHtmlMdBlocks: [],
gHtmlSpans: [],
gUrls: {},
gTitles: {},
gDimensions: {},
gListLevel: 0,
hashLinkCounts: {},
langExtensions: langExtensions,
outputModifiers: outputModifiers,
converter: this,
ghCodeBlocks: [],
metadata: {
parsed: {},
raw: '',
format: ''
}
};
// This lets us use ¨ trema as an escape char to avoid md5 hashes
// The choice of character is arbitrary; anything that isn't
// magic in Markdown will work.
text = text.replace(/¨/g, '¨T');
// Replace $ with ¨D
// RegExp interprets $ as a special character
// when it's in a replacement string
text = text.replace(/\$/g, '¨D');
// Standardize line endings
text = text.replace(/\r\n/g, '\n'); // DOS to Unix
text = text.replace(/\r/g, '\n'); // Mac to Unix
// Stardardize line spaces
text = text.replace(/\u00A0/g, '&nbsp;');
if (options.smartIndentationFix) {
text = rTrimInputText(text);
}
// Make sure text begins and ends with a couple of newlines:
text = '\n\n' + text + '\n\n';
// detab
text = showdown.subParser('detab')(text, options, globals);
/**
* Strip any lines consisting only of spaces and tabs.
* This makes subsequent regexs easier to write, because we can
* match consecutive blank lines with /\n+/ instead of something
* contorted like /[ \t]*\n+/
*/
text = text.replace(/^[ \t]+$/mg, '');
//run languageExtensions
showdown.helper.forEach(langExtensions, function (ext) {
text = showdown.subParser('runExtension')(ext, text, options, globals);
});
// run the sub parsers
text = showdown.subParser('metadata')(text, options, globals);
text = showdown.subParser('hashPreCodeTags')(text, options, globals);
text = showdown.subParser('githubCodeBlocks')(text, options, globals);
text = showdown.subParser('hashHTMLBlocks')(text, options, globals);
text = showdown.subParser('hashCodeTags')(text, options, globals);
text = showdown.subParser('stripLinkDefinitions')(text, options, globals);
text = showdown.subParser('blockGamut')(text, options, globals);
text = showdown.subParser('unhashHTMLSpans')(text, options, globals);
text = showdown.subParser('unescapeSpecialChars')(text, options, globals);
// attacklab: Restore dollar signs
text = text.replace(/¨D/g, '$$');
// attacklab: Restore tremas
text = text.replace(/¨T/g, '¨');
// render a complete html document instead of a partial if the option is enabled
text = showdown.subParser('completeHTMLDocument')(text, options, globals);
// Run output modifiers
showdown.helper.forEach(outputModifiers, function (ext) {
text = showdown.subParser('runExtension')(ext, text, options, globals);
});
// update metadata
metadata = globals.metadata;
return text;
};
/**
* Converts an HTML string into a markdown string
* @param src
* @param [HTMLParser] A WHATWG DOM and HTML parser, such as JSDOM. If none is supplied, window.document will be used.
* @returns {string}
*/
this.makeMarkdown = this.makeMd = function (src, HTMLParser) {
// replace \r\n with \n
src = src.replace(/\r\n/g, '\n');
src = src.replace(/\r/g, '\n'); // old macs
// due to an edge case, we need to find this: > <
// to prevent removing of non silent white spaces
// ex: <em>this is</em> <strong>sparta</strong>
src = src.replace(/>[ \t]+</, '>¨NBSP;<');
if (!HTMLParser) {
if (window && window.document) {
HTMLParser = window.document;
} else {
throw new Error('HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM');
}
}
var doc = HTMLParser.createElement('div');
doc.innerHTML = src;
var globals = {
preList: substitutePreCodeTags(doc)
};
// remove all newlines and collapse spaces
clean(doc);
// some stuff, like accidental reference links must now be escaped
// TODO
// doc.innerHTML = doc.innerHTML.replace(/\[[\S\t ]]/);
var nodes = doc.childNodes,
mdDoc = '';
for (var i = 0; i < nodes.length; i++) {
mdDoc += showdown.subParser('makeMarkdown.node')(nodes[i], globals);
}
function clean (node) {
for (var n = 0; n < node.childNodes.length; ++n) {
var child = node.childNodes[n];
if (child.nodeType === 3) {
if (!/\S/.test(child.nodeValue)) {
node.removeChild(child);
--n;
} else {
child.nodeValue = child.nodeValue.split('\n').join(' ');
child.nodeValue = child.nodeValue.replace(/(\s)+/g, '$1');
}
} else if (child.nodeType === 1) {
clean(child);
}
}
}
// find all pre tags and replace contents with placeholder
// we need this so that we can remove all indentation from html
// to ease up parsing
function substitutePreCodeTags (doc) {
var pres = doc.querySelectorAll('pre'),
presPH = [];
for (var i = 0; i < pres.length; ++i) {
if (pres[i].childElementCount === 1 && pres[i].firstChild.tagName.toLowerCase() === 'code') {
var content = pres[i].firstChild.innerHTML.trim(),
language = pres[i].firstChild.getAttribute('data-language') || '';
// if data-language attribute is not defined, then we look for class language-*
if (language === '') {
var classes = pres[i].firstChild.className.split(' ');
for (var c = 0; c < classes.length; ++c) {
var matches = classes[c].match(/^language-(.+)$/);
if (matches !== null) {
language = matches[1];
break;
}
}
}
// unescape html entities in content
content = showdown.helper.unescapeHTMLEntities(content);
presPH.push(content);
pres[i].outerHTML = '<precode language="' + language + '" precodenum="' + i.toString() + '"></precode>';
} else {
presPH.push(pres[i].innerHTML);
pres[i].innerHTML = '';
pres[i].setAttribute('prenum', i.toString());
}
}
return presPH;
}
return mdDoc;
};
/**
* Set an option of this Converter instance
* @param {string} key
* @param {*} value
*/
this.setOption = function (key, value) {
options[key] = value;
};
/**
* Get the option of this Converter instance
* @param {string} key
* @returns {*}
*/
this.getOption = function (key) {
return options[key];
};
/**
* Get the options of this Converter instance
* @returns {{}}
*/
this.getOptions = function () {
return options;
};
/**
* Add extension to THIS converter
* @param {{}} extension
* @param {string} [name=null]
*/
this.addExtension = function (extension, name) {
name = name || null;
_parseExtension(extension, name);
};
/**
* Use a global registered extension with THIS converter
* @param {string} extensionName Name of the previously registered extension
*/
this.useExtension = function (extensionName) {
_parseExtension(extensionName);
};
/**
* Set the flavor THIS converter should use
* @param {string} name
*/
this.setFlavor = function (name) {
if (!flavor.hasOwnProperty(name)) {
throw Error(name + ' flavor was not found');
}
var preset = flavor[name];
setConvFlavor = name;
for (var option in preset) {
if (preset.hasOwnProperty(option)) {
options[option] = preset[option];
}
}
};
/**
* Get the currently set flavor of this converter
* @returns {string}
*/
this.getFlavor = function () {
return setConvFlavor;
};
/**
* Remove an extension from THIS converter.
* Note: This is a costly operation. It's better to initialize a new converter
* and specify the extensions you wish to use
* @param {Array} extension
*/
this.removeExtension = function (extension) {
if (!showdown.helper.isArray(extension)) {
extension = [extension];
}
for (var a = 0; a < extension.length; ++a) {
var ext = extension[a];
for (var i = 0; i < langExtensions.length; ++i) {
if (langExtensions[i] === ext) {
langExtensions[i].splice(i, 1);
}
}
for (var ii = 0; ii < outputModifiers.length; ++i) {
if (outputModifiers[ii] === ext) {
outputModifiers[ii].splice(i, 1);
}
}
}
};
/**
* Get all extension of THIS converter
* @returns {{language: Array, output: Array}}
*/
this.getAllExtensions = function () {
return {
language: langExtensions,
output: outputModifiers
};
};
/**
* Get the metadata of the previously parsed document
* @param raw
* @returns {string|{}}
*/
this.getMetadata = function (raw) {
if (raw) {
return metadata.raw;
} else {
return metadata.parsed;
}
};
/**
* Get the metadata format of the previously parsed document
* @returns {string}
*/
this.getMetadataFormat = function () {
return metadata.format;
};
/**
* Private: set a single key, value metadata pair
* @param {string} key
* @param {string} value
*/
this._setMetadataPair = function (key, value) {
metadata.parsed[key] = value;
};
/**
* Private: set metadata format
* @param {string} format
*/
this._setMetadataFormat = function (format) {
metadata.format = format;
};
/**
* Private: set metadata raw text
* @param {string} raw
*/
this._setMetadataRaw = function (raw) {
metadata.raw = raw;
};
};
/**
* Turn Markdown link shortcuts into XHTML <a> tags.
*/
showdown.subParser('anchors', function (text, options, globals) {
text = globals.converter._dispatch('anchors.before', text, options, globals);
var writeAnchorTag = function (wholeMatch, linkText, linkId, url, m5, m6, title) {
if (showdown.helper.isUndefined(title)) {
title = '';
}
linkId = linkId.toLowerCase();
// Special case for explicit empty url
if (wholeMatch.search(/\(<?\s*>? ?(['"].*['"])?\)$/m) > -1) {
url = '';
} else if (!url) {
if (!linkId) {
// lower-case and turn embedded newlines into spaces
linkId = linkText.toLowerCase().replace(/ ?\n/g, ' ');
}
url = '#' + linkId;
if (!showdown.helper.isUndefined(globals.gUrls[linkId])) {
url = globals.gUrls[linkId];
if (!showdown.helper.isUndefined(globals.gTitles[linkId])) {
title = globals.gTitles[linkId];
}
} else {
return wholeMatch;
}
}
//url = showdown.helper.escapeCharacters(url, '*_', false); // replaced line to improve performance
url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);
var result = '<a href="' + url + '"';
if (title !== '' && title !== null) {
title = title.replace(/"/g, '&quot;');
//title = showdown.helper.escapeCharacters(title, '*_', false); // replaced line to improve performance
title = title.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);
result += ' title="' + title + '"';
}
// optionLinksInNewWindow only applies
// to external links. Hash links (#) open in same page
if (options.openLinksInNewWindow && !/^#/.test(url)) {
// escaped _
result += ' rel="noopener noreferrer" target="¨E95Eblank"';
}
result += '>' + linkText + '</a>';
return result;
};
// First, handle reference-style links: [link text] [id]
text = text.replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g, writeAnchorTag);
// Next, inline-style links: [link text](url "optional title")
// cases with crazy urls like ./image/cat1).png
text = text.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,
writeAnchorTag);
// normal cases
text = text.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,
writeAnchorTag);
// handle reference-style shortcuts: [link text]
// These must come last in case you've also got [link test][1]
// or [link test](/foo)
text = text.replace(/\[([^\[\]]+)]()()()()()/g, writeAnchorTag);
// Lastly handle GithubMentions if option is enabled
if (options.ghMentions) {
text = text.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gmi, function (wm, st, escape, mentions, username) {
if (escape === '\\') {
return st + mentions;
}
//check if options.ghMentionsLink is a string
if (!showdown.helper.isString(options.ghMentionsLink)) {
throw new Error('ghMentionsLink option must be a string');
}
var lnk = options.ghMentionsLink.replace(/\{u}/g, username),
target = '';
if (options.openLinksInNewWindow) {
target = ' rel="noopener noreferrer" target="¨E95Eblank"';
}
return st + '<a href="' + lnk + '"' + target + '>' + mentions + '</a>';
});
}
text = globals.converter._dispatch('anchors.after', text, options, globals);
return text;
});
// url allowed chars [a-z\d_.~:/?#[]@!$&'()*+,;=-]
var simpleURLRegex = /([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,
simpleURLRegex2 = /([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,
delimUrlRegex = /()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,
simpleMailRegex = /(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gmi,
delimMailRegex = /<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,
replaceLink = function (options) {
return function (wm, leadingMagicChars, link, m2, m3, trailingPunctuation, trailingMagicChars) {
link = link.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);
var lnkTxt = link,
append = '',
target = '',
lmc = leadingMagicChars || '',
tmc = trailingMagicChars || '';
if (/^www\./i.test(link)) {
link = link.replace(/^www\./i, 'http://www.');
}
if (options.excludeTrailingPunctuationFromURLs && trailingPunctuation) {
append = trailingPunctuation;
}
if (options.openLinksInNewWindow) {
target = ' rel="noopener noreferrer" target="¨E95Eblank"';
}
return lmc + '<a href="' + link + '"' + target + '>' + lnkTxt + '</a>' + append + tmc;
};
},
replaceMail = function (options, globals) {
return function (wholeMatch, b, mail) {
var href = 'mailto:';
b = b || '';
mail = showdown.subParser('unescapeSpecialChars')(mail, options, globals);
if (options.encodeEmails) {
href = showdown.helper.encodeEmailAddress(href + mail);
mail = showdown.helper.encodeEmailAddress(mail);
} else {
href = href + mail;
}
return b + '<a href="' + href + '">' + mail + '</a>';
};
};
showdown.subParser('autoLinks', function (text, options, globals) {
text = globals.converter._dispatch('autoLinks.before', text, options, globals);
text = text.replace(delimUrlRegex, replaceLink(options));
text = text.replace(delimMailRegex, replaceMail(options, globals));
text = globals.converter._dispatch('autoLinks.after', text, options, globals);
return text;
});
showdown.subParser('simplifiedAutoLinks', function (text, options, globals) {
if (!options.simplifiedAutoLink) {
return text;
}
text = globals.converter._dispatch('simplifiedAutoLinks.before', text, options, globals);
if (options.excludeTrailingPunctuationFromURLs) {
text = text.replace(simpleURLRegex2, replaceLink(options));
} else {
text = text.replace(simpleURLRegex, replaceLink(options));
}
text = text.replace(simpleMailRegex, replaceMail(options, globals));
text = globals.converter._dispatch('simplifiedAutoLinks.after', text, options, globals);
return text;
});
/**
* These are all the transformations that form block-level
* tags like paragraphs, headers, and list items.
*/
showdown.subParser('blockGamut', function (text, options, globals) {
text = globals.converter._dispatch('blockGamut.before', text, options, globals);
// we parse blockquotes first so that we can have headings and hrs
// inside blockquotes
text = showdown.subParser('blockQuotes')(text, options, globals);
text = showdown.subParser('headers')(text, options, globals);
// Do Horizontal Rules:
text = showdown.subParser('horizontalRule')(text, options, globals);
text = showdown.subParser('lists')(text, options, globals);
text = showdown.subParser('codeBlocks')(text, options, globals);
text = showdown.subParser('tables')(text, options, globals);
// We already ran _HashHTMLBlocks() before, in Markdown(), but that
// was to escape raw HTML in the original Markdown source. This time,
// we're escaping the markup we've just created, so that we don't wrap
// <p> tags around block-level tags.
text = showdown.subParser('hashHTMLBlocks')(text, options, globals);
text = showdown.subParser('paragraphs')(text, options, globals);
text = globals.converter._dispatch('blockGamut.after', text, options, globals);
return text;
});
showdown.subParser('blockQuotes', function (text, options, globals) {
text = globals.converter._dispatch('blockQuotes.before', text, options, globals);
// add a couple extra lines after the text and endtext mark
text = text + '\n\n';
var rgx = /(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;
if (options.splitAdjacentBlockquotes) {
rgx = /^ {0,3}>[\s\S]*?(?:\n\n)/gm;
}
text = text.replace(rgx, function (bq) {
// attacklab: hack around Konqueror 3.5.4 bug:
// "----------bug".replace(/^-/g,"") == "bug"
bq = bq.replace(/^[ \t]*>[ \t]?/gm, ''); // trim one level of quoting
// attacklab: clean up hack
bq = bq.replace(/¨0/g, '');
bq = bq.replace(/^[ \t]+$/gm, ''); // trim whitespace-only lines
bq = showdown.subParser('githubCodeBlocks')(bq, options, globals);
bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse
bq = bq.replace(/(^|\n)/g, '$1 ');
// These leading spaces screw with <pre> content, so we need to fix that:
bq = bq.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm, function (wholeMatch, m1) {
var pre = m1;
// attacklab: hack around Konqueror 3.5.4 bug:
pre = pre.replace(/^ /mg, '¨0');
pre = pre.replace(/¨0/g, '');
return pre;
});
return showdown.subParser('hashBlock')('<blockquote>\n' + bq + '\n</blockquote>', options, globals);
});
text = globals.converter._dispatch('blockQuotes.after', text, options, globals);
return text;
});
/**
* Process Markdown `<pre><code>` blocks.
*/
showdown.subParser('codeBlocks', function (text, options, globals) {
text = globals.converter._dispatch('codeBlocks.before', text, options, globals);
// sentinel workarounds for lack of \A and \Z, safari\khtml bug
text += '¨0';
var pattern = /(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g;
text = text.replace(pattern, function (wholeMatch, m1, m2) {
var codeblock = m1,
nextChar = m2,
end = '\n';
codeblock = showdown.subParser('outdent')(codeblock, options, globals);
codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);
codeblock = showdown.subParser('detab')(codeblock, options, globals);
codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines
codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing newlines
if (options.omitExtraWLInCodeBlocks) {
end = '';
}
codeblock = '<pre><code>' + codeblock + end + '</code></pre>';
return showdown.subParser('hashBlock')(codeblock, options, globals) + nextChar;
});
// strip sentinel
text = text.replace(/¨0/, '');
text = globals.converter._dispatch('codeBlocks.after', text, options, globals);
return text;
});
/**
*
* * Backtick quotes are used for <code></code> spans.
*
* * You can use multiple backticks as the delimiters if you want to
* include literal backticks in the code span. So, this input:
*
* Just type ``foo `bar` baz`` at the prompt.
*
* Will translate to:
*
* <p>Just type <code>foo `bar` baz</code> at the prompt.</p>
*
* There's no arbitrary limit to the number of backticks you
* can use as delimters. If you need three consecutive backticks
* in your code, use four for delimiters, etc.
*
* * You can use spaces to get literal backticks at the edges:
*
* ... type `` `bar` `` ...
*
* Turns to:
*
* ... type <code>`bar`</code> ...
*/
showdown.subParser('codeSpans', function (text, options, globals) {
text = globals.converter._dispatch('codeSpans.before', text, options, globals);
if (typeof text === 'undefined') {
text = '';
}
text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,
function (wholeMatch, m1, m2, m3) {
var c = m3;
c = c.replace(/^([ \t]*)/g, ''); // leading whitespace
c = c.replace(/[ \t]*$/g, ''); // trailing whitespace
c = showdown.subParser('encodeCode')(c, options, globals);
c = m1 + '<code>' + c + '</code>';
c = showdown.subParser('hashHTMLSpans')(c, options, globals);
return c;
}
);
text = globals.converter._dispatch('codeSpans.after', text, options, globals);
return text;
});
/**
* Create a full HTML document from the processed markdown
*/
showdown.subParser('completeHTMLDocument', function (text, options, globals) {
if (!options.completeHTMLDocument) {
return text;
}
text = globals.converter._dispatch('completeHTMLDocument.before', text, options, globals);
var doctype = 'html',
doctypeParsed = '<!DOCTYPE HTML>\n',
title = '',
charset = '<meta charset="utf-8">\n',
lang = '',
metadata = '';
if (typeof globals.metadata.parsed.doctype !== 'undefined') {
doctypeParsed = '<!DOCTYPE ' + globals.metadata.parsed.doctype + '>\n';
doctype = globals.metadata.parsed.doctype.toString().toLowerCase();
if (doctype === 'html' || doctype === 'html5') {
charset = '<meta charset="utf-8">';
}
}
for (var meta in globals.metadata.parsed) {
if (globals.metadata.parsed.hasOwnProperty(meta)) {
switch (meta.toLowerCase()) {
case 'doctype':
break;
case 'title':
title = '<title>' + globals.metadata.parsed.title + '</title>\n';
break;
case 'charset':
if (doctype === 'html' || doctype === 'html5') {
charset = '<meta charset="' + globals.metadata.parsed.charset + '">\n';
} else {
charset = '<meta name="charset" content="' + globals.metadata.parsed.charset + '">\n';
}
break;
case 'language':
case 'lang':
lang = ' lang="' + globals.metadata.parsed[meta] + '"';
metadata += '<meta name="' + meta + '" content="' + globals.metadata.parsed[meta] + '">\n';
break;
default:
metadata += '<meta name="' + meta + '" content="' + globals.metadata.parsed[meta] + '">\n';
}
}
}
text = doctypeParsed + '<html' + lang + '>\n<head>\n' + title + charset + metadata + '</head>\n<body>\n' + text.trim() + '\n</body>\n</html>';
text = globals.converter._dispatch('completeHTMLDocument.after', text, options, globals);
return text;
});
/**
* Convert all tabs to spaces
*/
showdown.subParser('detab', function (text, options, globals) {
text = globals.converter._dispatch('detab.before', text, options, globals);
// expand first n-1 tabs
text = text.replace(/\t(?=\t)/g, ' '); // g_tab_width
// replace the nth with two sentinels
text = text.replace(/\t/g, '¨A¨B');
// use the sentinel to anchor our regex so it doesn't explode
text = text.replace(/¨B(.+?)¨A/g, function (wholeMatch, m1) {
var leadingText = m1,
numSpaces = 4 - leadingText.length % 4; // g_tab_width
// there *must* be a better way to do this:
for (var i = 0; i < numSpaces; i++) {
leadingText += ' ';
}
return leadingText;
});
// clean up sentinels
text = text.replace(/¨A/g, ' '); // g_tab_width
text = text.replace(/¨B/g, '');
text = globals.converter._dispatch('detab.after', text, options, globals);
return text;
});
showdown.subParser('ellipsis', function (text, options, globals) {
text = globals.converter._dispatch('ellipsis.before', text, options, globals);
text = text.replace(/\.\.\./g, '…');
text = globals.converter._dispatch('ellipsis.after', text, options, globals);
return text;
});
/**
* Turn emoji codes into emojis
*
* List of supported emojis: https://github.com/showdownjs/showdown/wiki/Emojis
*/
showdown.subParser('emoji', function (text, options, globals) {
if (!options.emoji) {
return text;
}
text = globals.converter._dispatch('emoji.before', text, options, globals);
var emojiRgx = /:([\S]+?):/g;
text = text.replace(emojiRgx, function (wm, emojiCode) {
if (showdown.helper.emojis.hasOwnProperty(emojiCode)) {
return showdown.helper.emojis[emojiCode];
}
return wm;
});
text = globals.converter._dispatch('emoji.after', text, options, globals);
return text;
});
/**
* Smart processing for ampersands and angle brackets that need to be encoded.
*/
showdown.subParser('encodeAmpsAndAngles', function (text, options, globals) {
text = globals.converter._dispatch('encodeAmpsAndAngles.before', text, options, globals);
// Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:
// http://bumppo.net/projects/amputator/
text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, '&amp;');
// Encode naked <'s
text = text.replace(/<(?![a-z\/?$!])/gi, '&lt;');
// Encode <
text = text.replace(/</g, '&lt;');
// Encode >
text = text.replace(/>/g, '&gt;');
text = globals.converter._dispatch('encodeAmpsAndAngles.after', text, options, globals);
return text;
});
/**
* Returns the string, with after processing the following backslash escape sequences.
*
* attacklab: The polite way to do this is with the new escapeCharacters() function:
*
* text = escapeCharacters(text,"\\",true);
* text = escapeCharacters(text,"`*_{}[]()>#+-.!",true);
*
* ...but we're sidestepping its use of the (slow) RegExp constructor
* as an optimization for Firefox. This function gets called a LOT.
*/
showdown.subParser('encodeBackslashEscapes', function (text, options, globals) {
text = globals.converter._dispatch('encodeBackslashEscapes.before', text, options, globals);
text = text.replace(/\\(\\)/g, showdown.helper.escapeCharactersCallback);
text = text.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g, showdown.helper.escapeCharactersCallback);
text = globals.converter._dispatch('encodeBackslashEscapes.after', text, options, globals);
return text;
});
/**
* Encode/escape certain characters inside Markdown code runs.
* The point is that in code, these characters are literals,
* and lose their special Markdown meanings.
*/
showdown.subParser('encodeCode', function (text, options, globals) {
text = globals.converter._dispatch('encodeCode.before', text, options, globals);
// Encode all ampersands; HTML entities are not
// entities within a Markdown code span.
text = text
.replace(/&/g, '&amp;')
// Do the angle bracket song and dance:
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
// Now, escape characters that are magic in Markdown:
.replace(/([*_{}\[\]\\=~-])/g, showdown.helper.escapeCharactersCallback);
text = globals.converter._dispatch('encodeCode.after', text, options, globals);
return text;
});
/**
* Within tags -- meaning between < and > -- encode [\ ` * _ ~ =] so they
* don't conflict with their use in Markdown for code, italics and strong.
*/
showdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text, options, globals) {
text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.before', text, options, globals);
// Build a regex to find HTML tags.
var tags = /<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,
comments = /<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi;
text = text.replace(tags, function (wholeMatch) {
return wholeMatch
.replace(/(.)<\/?code>(?=.)/g, '$1`')
.replace(/([\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);
});
text = text.replace(comments, function (wholeMatch) {
return wholeMatch
.replace(/([\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);
});
text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.after', text, options, globals);
return text;
});
/**
* Handle github codeblocks prior to running HashHTML so that
* HTML contained within the codeblock gets escaped properly
* Example:
* ```ruby
* def hello_world(x)
* puts "Hello, #{x}"
* end
* ```
*/
showdown.subParser('githubCodeBlocks', function (text, options, globals) {
// early exit if option is not enabled
if (!options.ghCodeBlocks) {
return text;
}
text = globals.converter._dispatch('githubCodeBlocks.before', text, options, globals);
text += '¨0';
text = text.replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g, function (wholeMatch, delim, language, codeblock) {
var end = (options.omitExtraWLInCodeBlocks) ? '' : '\n';
// First parse the github code block
codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);
codeblock = showdown.subParser('detab')(codeblock, options, globals);
codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines
codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing whitespace
codeblock = '<pre><code' + (language ? ' class="' + language + ' language-' + language + '"' : '') + '>' + codeblock + end + '</code></pre>';
codeblock = showdown.subParser('hashBlock')(codeblock, options, globals);
// Since GHCodeblocks can be false positives, we need to
// store the primitive text and the parsed text in a global var,
// and then return a token
return '\n\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n';
});
// attacklab: strip sentinel
text = text.replace(/¨0/, '');
return globals.converter._dispatch('githubCodeBlocks.after', text, options, globals);
});
showdown.subParser('hashBlock', function (text, options, globals) {
text = globals.converter._dispatch('hashBlock.before', text, options, globals);
text = text.replace(/(^\n+|\n+$)/g, '');
text = '\n\n¨K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\n\n';
text = globals.converter._dispatch('hashBlock.after', text, options, globals);
return text;
});
/**
* Hash and escape <code> elements that should not be parsed as markdown
*/
showdown.subParser('hashCodeTags', function (text, options, globals) {
text = globals.converter._dispatch('hashCodeTags.before', text, options, globals);
var repFunc = function (wholeMatch, match, left, right) {
var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;
return '¨C' + (globals.gHtmlSpans.push(codeblock) - 1) + 'C';
};
// Hash naked <code>
text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '<code\\b[^>]*>', '</code>', 'gim');
text = globals.converter._dispatch('hashCodeTags.after', text, options, globals);
return text;
});
showdown.subParser('hashElement', function (text, options, globals) {
return function (wholeMatch, m1) {
var blockText = m1;
// Undo double lines
blockText = blockText.replace(/\n\n/g, '\n');
blockText = blockText.replace(/^\n/, '');
// strip trailing blank lines
blockText = blockText.replace(/\n+$/g, '');
// Replace the element text with a marker ("¨KxK" where x is its key)
blockText = '\n\n¨K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\n\n';
return blockText;
};
});
showdown.subParser('hashHTMLBlocks', function (text, options, globals) {
text = globals.converter._dispatch('hashHTMLBlocks.before', text, options, globals);
var blockTags = [
'pre',
'div',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'blockquote',
'table',
'dl',
'ol',
'ul',
'script',
'noscript',
'form',
'fieldset',
'iframe',
'math',
'style',
'section',
'header',
'footer',
'nav',
'article',
'aside',
'address',
'audio',
'canvas',
'figure',
'hgroup',
'output',
'video',
'p'
],
repFunc = function (wholeMatch, match, left, right) {
var txt = wholeMatch;
// check if this html element is marked as markdown
// if so, it's contents should be parsed as markdown
if (left.search(/\bmarkdown\b/) !== -1) {
txt = left + globals.converter.makeHtml(match) + right;
}
return '\n\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\n\n';
};
if (options.backslashEscapesHTMLTags) {
// encode backslash escaped HTML tags
text = text.replace(/\\<(\/?[^>]+?)>/g, function (wm, inside) {
return '&lt;' + inside + '&gt;';
});
}
// hash HTML Blocks
for (var i = 0; i < blockTags.length; ++i) {
var opTagPos,
rgx1 = new RegExp('^ {0,3}(<' + blockTags[i] + '\\b[^>]*>)', 'im'),
patLeft = '<' + blockTags[i] + '\\b[^>]*>',
patRight = '</' + blockTags[i] + '>';
// 1. Look for the first position of the first opening HTML tag in the text
while ((opTagPos = showdown.helper.regexIndexOf(text, rgx1)) !== -1) {
// if the HTML tag is \ escaped, we need to escape it and break
//2. Split the text in that position
var subTexts = showdown.helper.splitAtIndex(text, opTagPos),
//3. Match recursively
newSubText1 = showdown.helper.replaceRecursiveRegExp(subTexts[1], repFunc, patLeft, patRight, 'im');
// prevent an infinite loop
if (newSubText1 === subTexts[1]) {
break;
}
text = subTexts[0].concat(newSubText1);
}
}
// HR SPECIAL CASE
text = text.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,
showdown.subParser('hashElement')(text, options, globals));
// Special case for standalone HTML comments
text = showdown.helper.replaceRecursiveRegExp(text, function (txt) {
return '\n\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\n\n';
}, '^ {0,3}<!--', '-->', 'gm');
// PHP and ASP-style processor instructions (<?...?> and <%...%>)
text = text.replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,
showdown.subParser('hashElement')(text, options, globals));
text = globals.converter._dispatch('hashHTMLBlocks.after', text, options, globals);
return text;
});
/**
* Hash span elements that should not be parsed as markdown
*/
showdown.subParser('hashHTMLSpans', function (text, options, globals) {
text = globals.converter._dispatch('hashHTMLSpans.before', text, options, globals);
function hashHTMLSpan (html) {
return '¨C' + (globals.gHtmlSpans.push(html) - 1) + 'C';
}
// Hash Self Closing tags
text = text.replace(/<[^>]+?\/>/gi, function (wm) {
return hashHTMLSpan(wm);
});
// Hash tags without properties
text = text.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g, function (wm) {
return hashHTMLSpan(wm);
});
// Hash tags with properties
text = text.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g, function (wm) {
return hashHTMLSpan(wm);
});
// Hash self closing tags without />
text = text.replace(/<[^>]+?>/gi, function (wm) {
return hashHTMLSpan(wm);
});
/*showdown.helper.matchRecursiveRegExp(text, '<code\\b[^>]*>', '</code>', 'gi');*/
text = globals.converter._dispatch('hashHTMLSpans.after', text, options, globals);
return text;
});
/**
* Unhash HTML spans
*/
showdown.subParser('unhashHTMLSpans', function (text, options, globals) {
text = globals.converter._dispatch('unhashHTMLSpans.before', text, options, globals);
for (var i = 0; i < globals.gHtmlSpans.length; ++i) {
var repText = globals.gHtmlSpans[i],
// limiter to prevent infinite loop (assume 10 as limit for recurse)
limit = 0;
while (/¨C(\d+)C/.test(repText)) {
var num = RegExp.$1;
repText = repText.replace('¨C' + num + 'C', globals.gHtmlSpans[num]);
if (limit === 10) {
console.error('maximum nesting of 10 spans reached!!!');
break;
}
++limit;
}
text = text.replace('¨C' + i + 'C', repText);
}
text = globals.converter._dispatch('unhashHTMLSpans.after', text, options, globals);
return text;
});
/**
* Hash and escape <pre><code> elements that should not be parsed as markdown
*/
showdown.subParser('hashPreCodeTags', function (text, options, globals) {
text = globals.converter._dispatch('hashPreCodeTags.before', text, options, globals);
var repFunc = function (wholeMatch, match, left, right) {
// encode html entities
var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;
return '\n\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n';
};
// Hash <pre><code>
text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>', '^ {0,3}</code>\\s*</pre>', 'gim');
text = globals.converter._dispatch('hashPreCodeTags.after', text, options, globals);
return text;
});
showdown.subParser('headers', function (text, options, globals) {
text = globals.converter._dispatch('headers.before', text, options, globals);
var headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart),
// Set text-style headers:
// Header 1
// ========
//
// Header 2
// --------
//
setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm,
setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm;
text = text.replace(setextRegexH1, function (wholeMatch, m1) {
var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),
hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
hLevel = headerLevelStart,
hashBlock = '<h' + hLevel + hID + '>' + spanGamut + '</h' + hLevel + '>';
return showdown.subParser('hashBlock')(hashBlock, options, globals);
});
text = text.replace(setextRegexH2, function (matchFound, m1) {
var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),
hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
hLevel = headerLevelStart + 1,
hashBlock = '<h' + hLevel + hID + '>' + spanGamut + '</h' + hLevel + '>';
return showdown.subParser('hashBlock')(hashBlock, options, globals);
});
// atx-style headers:
// # Header 1
// ## Header 2
// ## Header 2 with closing hashes ##
// ...
// ###### Header 6
//
var atxStyle = (options.requireSpaceBeforeHeadingText) ? /^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm : /^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm;
text = text.replace(atxStyle, function (wholeMatch, m1, m2) {
var hText = m2;
if (options.customizedHeaderId) {
hText = m2.replace(/\s?\{([^{]+?)}\s*$/, '');
}
var span = showdown.subParser('spanGamut')(hText, options, globals),
hID = (options.noHeaderId) ? '' : ' id="' + headerId(m2) + '"',
hLevel = headerLevelStart - 1 + m1.length,
header = '<h' + hLevel + hID + '>' + span + '</h' + hLevel + '>';
return showdown.subParser('hashBlock')(header, options, globals);
});
function headerId (m) {
var title,
prefix;
// It is separate from other options to allow combining prefix and customized
if (options.customizedHeaderId) {
var match = m.match(/\{([^{]+?)}\s*$/);
if (match && match[1]) {
m = match[1];
}
}
title = m;
// Prefix id to prevent causing inadvertent pre-existing style matches.
if (showdown.helper.isString(options.prefixHeaderId)) {
prefix = options.prefixHeaderId;
} else if (options.prefixHeaderId === true) {
prefix = 'section-';
} else {
prefix = '';
}
if (!options.rawPrefixHeaderId) {
title = prefix + title;
}
if (options.ghCompatibleHeaderId) {
title = title
.replace(/ /g, '-')
// replace previously escaped chars (&, ¨ and $)
.replace(/&amp;/g, '')
.replace(/¨T/g, '')
.replace(/¨D/g, '')
// replace rest of the chars (&~$ are repeated as they might have been escaped)
// borrowed from github's redcarpet (some they should produce similar results)
.replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g, '')
.toLowerCase();
} else if (options.rawHeaderId) {
title = title
.replace(/ /g, '-')
// replace previously escaped chars (&, ¨ and $)
.replace(/&amp;/g, '&')
.replace(/¨T/g, '¨')
.replace(/¨D/g, '$')
// replace " and '
.replace(/["']/g, '-')
.toLowerCase();
} else {
title = title
.replace(/[^\w]/g, '')
.toLowerCase();
}
if (options.rawPrefixHeaderId) {
title = prefix + title;
}
if (globals.hashLinkCounts[title]) {
title = title + '-' + (globals.hashLinkCounts[title]++);
} else {
globals.hashLinkCounts[title] = 1;
}
return title;
}
text = globals.converter._dispatch('headers.after', text, options, globals);
return text;
});
/**
* Turn Markdown link shortcuts into XHTML <a> tags.
*/
showdown.subParser('horizontalRule', function (text, options, globals) {
text = globals.converter._dispatch('horizontalRule.before', text, options, globals);
var key = showdown.subParser('hashBlock')('<hr />', options, globals);
text = text.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm, key);
text = text.replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm, key);
text = text.replace(/^ {0,2}( ?_){3,}[ \t]*$/gm, key);
text = globals.converter._dispatch('horizontalRule.after', text, options, globals);
return text;
});
/**
* Turn Markdown image shortcuts into <img> tags.
*/
showdown.subParser('images', function (text, options, globals) {
text = globals.converter._dispatch('images.before', text, options, globals);
var inlineRegExp = /!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,
crazyRegExp = /!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,
base64RegExp = /!\[([^\]]*?)][ \t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,
referenceRegExp = /!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g,
refShortcutRegExp = /!\[([^\[\]]+)]()()()()()/g;
function writeImageTagBase64 (wholeMatch, altText, linkId, url, width, height, m5, title) {
url = url.replace(/\s/g, '');
return writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title);
}
function writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title) {
var gUrls = globals.gUrls,
gTitles = globals.gTitles,
gDims = globals.gDimensions;
linkId = linkId.toLowerCase();
if (!title) {
title = '';
}
// Special case for explicit empty url
if (wholeMatch.search(/\(<?\s*>? ?(['"].*['"])?\)$/m) > -1) {
url = '';
} else if (url === '' || url === null) {
if (linkId === '' || linkId === null) {
// lower-case and turn embedded newlines into spaces
linkId = altText.toLowerCase().replace(/ ?\n/g, ' ');
}
url = '#' + linkId;
if (!showdown.helper.isUndefined(gUrls[linkId])) {
url = gUrls[linkId];
if (!showdown.helper.isUndefined(gTitles[linkId])) {
title = gTitles[linkId];
}
if (!showdown.helper.isUndefined(gDims[linkId])) {
width = gDims[linkId].width;
height = gDims[linkId].height;
}
} else {
return wholeMatch;
}
}
altText = altText
.replace(/"/g, '&quot;')
//altText = showdown.helper.escapeCharacters(altText, '*_', false);
.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);
//url = showdown.helper.escapeCharacters(url, '*_', false);
url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);
var result = '<img src="' + url + '" alt="' + altText + '"';
if (title && showdown.helper.isString(title)) {
title = title
.replace(/"/g, '&quot;')
//title = showdown.helper.escapeCharacters(title, '*_', false);
.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);
result += ' title="' + title + '"';
}
if (width && height) {
width = (width === '*') ? 'auto' : width;
height = (height === '*') ? 'auto' : height;
result += ' width="' + width + '"';
result += ' height="' + height + '"';
}
result += ' />';
return result;
}
// First, handle reference-style labeled images: ![alt text][id]
text = text.replace(referenceRegExp, writeImageTag);
// Next, handle inline images: ![alt text](url =<width>x<height> "optional title")
// base64 encoded images
text = text.replace(base64RegExp, writeImageTagBase64);
// cases with crazy urls like ./image/cat1).png
text = text.replace(crazyRegExp, writeImageTag);
// normal cases
text = text.replace(inlineRegExp, writeImageTag);
// handle reference-style shortcuts: ![img text]
text = text.replace(refShortcutRegExp, writeImageTag);
text = globals.converter._dispatch('images.after', text, options, globals);
return text;
});
showdown.subParser('italicsAndBold', function (text, options, globals) {
text = globals.converter._dispatch('italicsAndBold.before', text, options, globals);
// it's faster to have 3 separate regexes for each case than have just one
// because of backtracing, in some cases, it could lead to an exponential effect
// called "catastrophic backtrace". Ominous!
function parseInside (txt, left, right) {
/*
if (options.simplifiedAutoLink) {
txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);
}
*/
return left + txt + right;
}
// Parse underscores
if (options.literalMidWordUnderscores) {
text = text.replace(/\b___(\S[\s\S]*?)___\b/g, function (wm, txt) {
return parseInside (txt, '<strong><em>', '</em></strong>');
});
text = text.replace(/\b__(\S[\s\S]*?)__\b/g, function (wm, txt) {
return parseInside (txt, '<strong>', '</strong>');
});
text = text.replace(/\b_(\S[\s\S]*?)_\b/g, function (wm, txt) {
return parseInside (txt, '<em>', '</em>');
});
} else {
text = text.replace(/___(\S[\s\S]*?)___/g, function (wm, m) {
return (/\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;
});
text = text.replace(/__(\S[\s\S]*?)__/g, function (wm, m) {
return (/\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;
});
text = text.replace(/_([^\s_][\s\S]*?)_/g, function (wm, m) {
// !/^_[^_]/.test(m) - test if it doesn't start with __ (since it seems redundant, we removed it)
return (/\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;
});
}
// Now parse asterisks
if (options.literalMidWordAsterisks) {
text = text.replace(/([^*]|^)\B\*\*\*(\S[\s\S]*?)\*\*\*\B(?!\*)/g, function (wm, lead, txt) {
return parseInside (txt, lead + '<strong><em>', '</em></strong>');
});
text = text.replace(/([^*]|^)\B\*\*(\S[\s\S]*?)\*\*\B(?!\*)/g, function (wm, lead, txt) {
return parseInside (txt, lead + '<strong>', '</strong>');
});
text = text.replace(/([^*]|^)\B\*(\S[\s\S]*?)\*\B(?!\*)/g, function (wm, lead, txt) {
return parseInside (txt, lead + '<em>', '</em>');
});
} else {
text = text.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (wm, m) {
return (/\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;
});
text = text.replace(/\*\*(\S[\s\S]*?)\*\*/g, function (wm, m) {
return (/\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;
});
text = text.replace(/\*([^\s*][\s\S]*?)\*/g, function (wm, m) {
// !/^\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)
return (/\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;
});
}
text = globals.converter._dispatch('italicsAndBold.after', text, options, globals);
return text;
});
/**
* Form HTML ordered (numbered) and unordered (bulleted) lists.
*/
showdown.subParser('lists', function (text, options, globals) {
/**
* Process the contents of a single ordered or unordered list, splitting it
* into individual list items.
* @param {string} listStr
* @param {boolean} trimTrailing
* @returns {string}
*/
function processListItems (listStr, trimTrailing) {
// The $g_list_level global keeps track of when we're inside a list.
// Each time we enter a list, we increment it; when we leave a list,
// we decrement. If it's zero, we're not in a list anymore.
//
// We do this because when we're not inside a list, we want to treat
// something like this:
//
// I recommend upgrading to version
// 8. Oops, now this line is treated
// as a sub-list.
//
// As a single paragraph, despite the fact that the second line starts
// with a digit-period-space sequence.
//
// Whereas when we're inside a list (or sub-list), that line will be
// treated as the start of a sub-list. What a kludge, huh? This is
// an aspect of Markdown's syntax that's hard to parse perfectly
// without resorting to mind-reading. Perhaps the solution is to
// change the syntax rules such that sub-lists must start with a
// starting cardinal number; e.g. "1." or "a.".
globals.gListLevel++;
// trim trailing blank lines:
listStr = listStr.replace(/\n{2,}$/, '\n');
// attacklab: add sentinel to emulate \z
listStr += '¨0';
var rgx = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,
isParagraphed = (/\n[ \t]*\n(?!¨0)/.test(listStr));
// Since version 1.5, nesting sublists requires 4 spaces (or 1 tab) indentation,
// which is a syntax breaking change
// activating this option reverts to old behavior
if (options.disableForced4SpacesIndentedSublists) {
rgx = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm;
}
listStr = listStr.replace(rgx, function (wholeMatch, m1, m2, m3, m4, taskbtn, checked) {
checked = (checked && checked.trim() !== '');
var item = showdown.subParser('outdent')(m4, options, globals),
bulletStyle = '';
// Support for github tasklists
if (taskbtn && options.tasklists) {
bulletStyle = ' class="task-list-item" style="list-style-type: none;"';
item = item.replace(/^[ \t]*\[(x|X| )?]/m, function () {
var otp = '<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"';
if (checked) {
otp += ' checked';
}
otp += '>';
return otp;
});
}
// ISSUE #312
// This input: - - - a
// causes trouble to the parser, since it interprets it as:
// <ul><li><li><li>a</li></li></li></ul>
// instead of:
// <ul><li>- - a</li></ul>
// So, to prevent it, we will put a marker (¨A)in the beginning of the line
// Kind of hackish/monkey patching, but seems more effective than overcomplicating the list parser
item = item.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g, function (wm2) {
return '¨A' + wm2;
});
// m1 - Leading line or
// Has a double return (multi paragraph) or
// Has sublist
if (m1 || (item.search(/\n{2,}/) > -1)) {
item = showdown.subParser('githubCodeBlocks')(item, options, globals);
item = showdown.subParser('blockGamut')(item, options, globals);
} else {
// Recursion for sub-lists:
item = showdown.subParser('lists')(item, options, globals);
item = item.replace(/\n$/, ''); // chomp(item)
item = showdown.subParser('hashHTMLBlocks')(item, options, globals);
// Colapse double linebreaks
item = item.replace(/\n\n+/g, '\n\n');
if (isParagraphed) {
item = showdown.subParser('paragraphs')(item, options, globals);
} else {
item = showdown.subParser('spanGamut')(item, options, globals);
}
}
// now we need to remove the marker (¨A)
item = item.replace('¨A', '');
// we can finally wrap the line in list item tags
item = '<li' + bulletStyle + '>' + item + '</li>\n';
return item;
});
// attacklab: strip sentinel
listStr = listStr.replace(/¨0/g, '');
globals.gListLevel--;
if (trimTrailing) {
listStr = listStr.replace(/\s+$/, '');
}
return listStr;
}
function styleStartNumber (list, listType) {
// check if ol and starts by a number different than 1
if (listType === 'ol') {
var res = list.match(/^ *(\d+)\./);
if (res && res[1] !== '1') {
return ' start="' + res[1] + '"';
}
}
return '';
}
/**
* Check and parse consecutive lists (better fix for issue #142)
* @param {string} list
* @param {string} listType
* @param {boolean} trimTrailing
* @returns {string}
*/
function parseConsecutiveLists (list, listType, trimTrailing) {
// check if we caught 2 or more consecutive lists by mistake
// we use the counterRgx, meaning if listType is UL we look for OL and vice versa
var olRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?\d+\.[ \t]/gm : /^ {0,3}\d+\.[ \t]/gm,
ulRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?[*+-][ \t]/gm : /^ {0,3}[*+-][ \t]/gm,
counterRxg = (listType === 'ul') ? olRgx : ulRgx,
result = '';
if (list.search(counterRxg) !== -1) {
(function parseCL (txt) {
var pos = txt.search(counterRxg),
style = styleStartNumber(list, listType);
if (pos !== -1) {
// slice
result += '\n\n<' + listType + style + '>\n' + processListItems(txt.slice(0, pos), !!trimTrailing) + '</' + listType + '>\n';
// invert counterType and listType
listType = (listType === 'ul') ? 'ol' : 'ul';
counterRxg = (listType === 'ul') ? olRgx : ulRgx;
//recurse
parseCL(txt.slice(pos));
} else {
result += '\n\n<' + listType + style + '>\n' + processListItems(txt, !!trimTrailing) + '</' + listType + '>\n';
}
})(list);
} else {
var style = styleStartNumber(list, listType);
result = '\n\n<' + listType + style + '>\n' + processListItems(list, !!trimTrailing) + '</' + listType + '>\n';
}
return result;
}
/** Start of list parsing **/
text = globals.converter._dispatch('lists.before', text, options, globals);
// add sentinel to hack around khtml/safari bug:
// http://bugs.webkit.org/show_bug.cgi?id=11231
text += '¨0';
if (globals.gListLevel) {
text = text.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,
function (wholeMatch, list, m2) {
var listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol';
return parseConsecutiveLists(list, listType, true);
}
);
} else {
text = text.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,
function (wholeMatch, m1, list, m3) {
var listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol';
return parseConsecutiveLists(list, listType, false);
}
);
}
// strip sentinel
text = text.replace(/¨0/, '');
text = globals.converter._dispatch('lists.after', text, options, globals);
return text;
});
/**
* Parse metadata at the top of the document
*/
showdown.subParser('metadata', function (text, options, globals) {
if (!options.metadata) {
return text;
}
text = globals.converter._dispatch('metadata.before', text, options, globals);
function parseMetadataContents (content) {
// raw is raw so it's not changed in any way
globals.metadata.raw = content;
// escape chars forbidden in html attributes
// double quotes
content = content
// ampersand first
.replace(/&/g, '&amp;')
// double quotes
.replace(/"/g, '&quot;');
content = content.replace(/\n {4}/g, ' ');
content.replace(/^([\S ]+): +([\s\S]+?)$/gm, function (wm, key, value) {
globals.metadata.parsed[key] = value;
return '';
});
}
text = text.replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/, function (wholematch, format, content) {
parseMetadataContents(content);
return '¨M';
});
text = text.replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/, function (wholematch, format, content) {
if (format) {
globals.metadata.format = format;
}
parseMetadataContents(content);
return '¨M';
});
text = text.replace(/¨M/g, '');
text = globals.converter._dispatch('metadata.after', text, options, globals);
return text;
});
/**
* Remove one level of line-leading tabs or spaces
*/
showdown.subParser('outdent', function (text, options, globals) {
text = globals.converter._dispatch('outdent.before', text, options, globals);
// attacklab: hack around Konqueror 3.5.4 bug:
// "----------bug".replace(/^-/g,"") == "bug"
text = text.replace(/^(\t|[ ]{1,4})/gm, '¨0'); // attacklab: g_tab_width
// attacklab: clean up hack
text = text.replace(/¨0/g, '');
text = globals.converter._dispatch('outdent.after', text, options, globals);
return text;
});
/**
*
*/
showdown.subParser('paragraphs', function (text, options, globals) {
text = globals.converter._dispatch('paragraphs.before', text, options, globals);
// Strip leading and trailing lines:
text = text.replace(/^\n+/g, '');
text = text.replace(/\n+$/g, '');
var grafs = text.split(/\n{2,}/g),
grafsOut = [],
end = grafs.length; // Wrap <p> tags
for (var i = 0; i < end; i++) {
var str = grafs[i];
// if this is an HTML marker, copy it
if (str.search(/¨(K|G)(\d+)\1/g) >= 0) {
grafsOut.push(str);
// test for presence of characters to prevent empty lines being parsed
// as paragraphs (resulting in undesired extra empty paragraphs)
} else if (str.search(/\S/) >= 0) {
str = showdown.subParser('spanGamut')(str, options, globals);
str = str.replace(/^([ \t]*)/g, '<p>');
str += '</p>';
grafsOut.push(str);
}
}
/** Unhashify HTML blocks */
end = grafsOut.length;
for (i = 0; i < end; i++) {
var blockText = '',
grafsOutIt = grafsOut[i],
codeFlag = false;
// if this is a marker for an html block...
// use RegExp.test instead of string.search because of QML bug
while (/¨(K|G)(\d+)\1/.test(grafsOutIt)) {
var delim = RegExp.$1,
num = RegExp.$2;
if (delim === 'K') {
blockText = globals.gHtmlBlocks[num];
} else {
// we need to check if ghBlock is a false positive
if (codeFlag) {
// use encoded version of all text
blockText = showdown.subParser('encodeCode')(globals.ghCodeBlocks[num].text, options, globals);
} else {
blockText = globals.ghCodeBlocks[num].codeblock;
}
}
blockText = blockText.replace(/\$/g, '$$$$'); // Escape any dollar signs
grafsOutIt = grafsOutIt.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/, blockText);
// Check if grafsOutIt is a pre->code
if (/^<pre\b[^>]*>\s*<code\b[^>]*>/.test(grafsOutIt)) {
codeFlag = true;
}
}
grafsOut[i] = grafsOutIt;
}
text = grafsOut.join('\n');
// Strip leading and trailing lines:
text = text.replace(/^\n+/g, '');
text = text.replace(/\n+$/g, '');
return globals.converter._dispatch('paragraphs.after', text, options, globals);
});
/**
* Run extension
*/
showdown.subParser('runExtension', function (ext, text, options, globals) {
if (ext.filter) {
text = ext.filter(text, globals.converter, options);
} else if (ext.regex) {
// TODO remove this when old extension loading mechanism is deprecated
var re = ext.regex;
if (!(re instanceof RegExp)) {
re = new RegExp(re, 'g');
}
text = text.replace(re, ext.replace);
}
return text;
});
/**
* These are all the transformations that occur *within* block-level
* tags like paragraphs, headers, and list items.
*/
showdown.subParser('spanGamut', function (text, options, globals) {
text = globals.converter._dispatch('spanGamut.before', text, options, globals);
text = showdown.subParser('codeSpans')(text, options, globals);
text = showdown.subParser('escapeSpecialCharsWithinTagAttributes')(text, options, globals);
text = showdown.subParser('encodeBackslashEscapes')(text, options, globals);
// Process anchor and image tags. Images must come first,
// because ![foo][f] looks like an anchor.
text = showdown.subParser('images')(text, options, globals);
text = showdown.subParser('anchors')(text, options, globals);
// Make links out of things like `<http://example.com/>`
// Must come after anchors, because you can use < and >
// delimiters in inline links like [this](<url>).
text = showdown.subParser('autoLinks')(text, options, globals);
text = showdown.subParser('simplifiedAutoLinks')(text, options, globals);
text = showdown.subParser('emoji')(text, options, globals);
text = showdown.subParser('underline')(text, options, globals);
text = showdown.subParser('italicsAndBold')(text, options, globals);
text = showdown.subParser('strikethrough')(text, options, globals);
text = showdown.subParser('ellipsis')(text, options, globals);
// we need to hash HTML tags inside spans
text = showdown.subParser('hashHTMLSpans')(text, options, globals);
// now we encode amps and angles
text = showdown.subParser('encodeAmpsAndAngles')(text, options, globals);
// Do hard breaks
if (options.simpleLineBreaks) {
// GFM style hard breaks
// only add line breaks if the text does not contain a block (special case for lists)
if (!/\n\n¨K/.test(text)) {
text = text.replace(/\n+/g, '<br />\n');
}
} else {
// Vanilla hard breaks
text = text.replace(/ +\n/g, '<br />\n');
}
text = globals.converter._dispatch('spanGamut.after', text, options, globals);
return text;
});
showdown.subParser('strikethrough', function (text, options, globals) {
function parseInside (txt) {
if (options.simplifiedAutoLink) {
txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);
}
return '<del>' + txt + '</del>';
}
if (options.strikethrough) {
text = globals.converter._dispatch('strikethrough.before', text, options, globals);
text = text.replace(/(?:~){2}([\s\S]+?)(?:~){2}/g, function (wm, txt) { return parseInside(txt); });
text = globals.converter._dispatch('strikethrough.after', text, options, globals);
}
return text;
});
/**
* Strips link definitions from text, stores the URLs and titles in
* hash references.
* Link defs are in the form: ^[id]: url "optional title"
*/
showdown.subParser('stripLinkDefinitions', function (text, options, globals) {
var regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,
base64Regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm;
// attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
text += '¨0';
var replaceFunc = function (wholeMatch, linkId, url, width, height, blankLines, title) {
linkId = linkId.toLowerCase();
if (url.match(/^data:.+?\/.+?;base64,/)) {
// remove newlines
globals.gUrls[linkId] = url.replace(/\s/g, '');
} else {
globals.gUrls[linkId] = showdown.subParser('encodeAmpsAndAngles')(url, options, globals); // Link IDs are case-insensitive
}
if (blankLines) {
// Oops, found blank lines, so it's not a title.
// Put back the parenthetical statement we stole.
return blankLines + title;
} else {
if (title) {
globals.gTitles[linkId] = title.replace(/"|'/g, '&quot;');
}
if (options.parseImgDimensions && width && height) {
globals.gDimensions[linkId] = {
width: width,
height: height
};
}
}
// Completely remove the definition from the text
return '';
};
// first we try to find base64 link references
text = text.replace(base64Regex, replaceFunc);
text = text.replace(regex, replaceFunc);
// attacklab: strip sentinel
text = text.replace(/¨0/, '');
return text;
});
showdown.subParser('tables', function (text, options, globals) {
if (!options.tables) {
return text;
}
var tableRgx = /^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,
//singeColTblRgx = /^ {0,3}\|.+\|\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n(?: {0,3}\|.+\|\n)+(?:\n\n|¨0)/gm;
singeColTblRgx = /^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm;
function parseStyles (sLine) {
if (/^:[ \t]*--*$/.test(sLine)) {
return ' style="text-align:left;"';
} else if (/^--*[ \t]*:[ \t]*$/.test(sLine)) {
return ' style="text-align:right;"';
} else if (/^:[ \t]*--*[ \t]*:$/.test(sLine)) {
return ' style="text-align:center;"';
} else {
return '';
}
}
function parseHeaders (header, style) {
var id = '';
header = header.trim();
// support both tablesHeaderId and tableHeaderId due to error in documentation so we don't break backwards compatibility
if (options.tablesHeaderId || options.tableHeaderId) {
id = ' id="' + header.replace(/ /g, '_').toLowerCase() + '"';
}
header = showdown.subParser('spanGamut')(header, options, globals);
return '<th' + id + style + '>' + header + '</th>\n';
}
function parseCells (cell, style) {
var subText = showdown.subParser('spanGamut')(cell, options, globals);
return '<td' + style + '>' + subText + '</td>\n';
}
function buildTable (headers, cells) {
var tb = '<table>\n<thead>\n<tr>\n',
tblLgn = headers.length;
for (var i = 0; i < tblLgn; ++i) {
tb += headers[i];
}
tb += '</tr>\n</thead>\n<tbody>\n';
for (i = 0; i < cells.length; ++i) {
tb += '<tr>\n';
for (var ii = 0; ii < tblLgn; ++ii) {
tb += cells[i][ii];
}
tb += '</tr>\n';
}
tb += '</tbody>\n</table>\n';
return tb;
}
function parseTable (rawTable) {
var i, tableLines = rawTable.split('\n');
for (i = 0; i < tableLines.length; ++i) {
// strip wrong first and last column if wrapped tables are used
if (/^ {0,3}\|/.test(tableLines[i])) {
tableLines[i] = tableLines[i].replace(/^ {0,3}\|/, '');
}
if (/\|[ \t]*$/.test(tableLines[i])) {
tableLines[i] = tableLines[i].replace(/\|[ \t]*$/, '');
}
// parse code spans first, but we only support one line code spans
tableLines[i] = showdown.subParser('codeSpans')(tableLines[i], options, globals);
}
var rawHeaders = tableLines[0].split('|').map(function (s) { return s.trim();}),
rawStyles = tableLines[1].split('|').map(function (s) { return s.trim();}),
rawCells = [],
headers = [],
styles = [],
cells = [];
tableLines.shift();
tableLines.shift();
for (i = 0; i < tableLines.length; ++i) {
if (tableLines[i].trim() === '') {
continue;
}
rawCells.push(
tableLines[i]
.split('|')
.map(function (s) {
return s.trim();
})
);
}
if (rawHeaders.length < rawStyles.length) {
return rawTable;
}
for (i = 0; i < rawStyles.length; ++i) {
styles.push(parseStyles(rawStyles[i]));
}
for (i = 0; i < rawHeaders.length; ++i) {
if (showdown.helper.isUndefined(styles[i])) {
styles[i] = '';
}
headers.push(parseHeaders(rawHeaders[i], styles[i]));
}
for (i = 0; i < rawCells.length; ++i) {
var row = [];
for (var ii = 0; ii < headers.length; ++ii) {
if (showdown.helper.isUndefined(rawCells[i][ii])) ;
row.push(parseCells(rawCells[i][ii], styles[ii]));
}
cells.push(row);
}
return buildTable(headers, cells);
}
text = globals.converter._dispatch('tables.before', text, options, globals);
// find escaped pipe characters
text = text.replace(/\\(\|)/g, showdown.helper.escapeCharactersCallback);
// parse multi column tables
text = text.replace(tableRgx, parseTable);
// parse one column tables
text = text.replace(singeColTblRgx, parseTable);
text = globals.converter._dispatch('tables.after', text, options, globals);
return text;
});
showdown.subParser('underline', function (text, options, globals) {
if (!options.underline) {
return text;
}
text = globals.converter._dispatch('underline.before', text, options, globals);
if (options.literalMidWordUnderscores) {
text = text.replace(/\b___(\S[\s\S]*?)___\b/g, function (wm, txt) {
return '<u>' + txt + '</u>';
});
text = text.replace(/\b__(\S[\s\S]*?)__\b/g, function (wm, txt) {
return '<u>' + txt + '</u>';
});
} else {
text = text.replace(/___(\S[\s\S]*?)___/g, function (wm, m) {
return (/\S$/.test(m)) ? '<u>' + m + '</u>' : wm;
});
text = text.replace(/__(\S[\s\S]*?)__/g, function (wm, m) {
return (/\S$/.test(m)) ? '<u>' + m + '</u>' : wm;
});
}
// escape remaining underscores to prevent them being parsed by italic and bold
text = text.replace(/(_)/g, showdown.helper.escapeCharactersCallback);
text = globals.converter._dispatch('underline.after', text, options, globals);
return text;
});
/**
* Swap back in all the special characters we've hidden.
*/
showdown.subParser('unescapeSpecialChars', function (text, options, globals) {
text = globals.converter._dispatch('unescapeSpecialChars.before', text, options, globals);
text = text.replace(/¨E(\d+)E/g, function (wholeMatch, m1) {
var charCodeToReplace = parseInt(m1);
return String.fromCharCode(charCodeToReplace);
});
text = globals.converter._dispatch('unescapeSpecialChars.after', text, options, globals);
return text;
});
showdown.subParser('makeMarkdown.blockquote', function (node, globals) {
var txt = '';
if (node.hasChildNodes()) {
var children = node.childNodes,
childrenLength = children.length;
for (var i = 0; i < childrenLength; ++i) {
var innerTxt = showdown.subParser('makeMarkdown.node')(children[i], globals);
if (innerTxt === '') {
continue;
}
txt += innerTxt;
}
}
// cleanup
txt = txt.trim();
txt = '> ' + txt.split('\n').join('\n> ');
return txt;
});
showdown.subParser('makeMarkdown.codeBlock', function (node, globals) {
var lang = node.getAttribute('language'),
num = node.getAttribute('precodenum');
return '```' + lang + '\n' + globals.preList[num] + '\n```';
});
showdown.subParser('makeMarkdown.codeSpan', function (node) {
return '`' + node.innerHTML + '`';
});
showdown.subParser('makeMarkdown.emphasis', function (node, globals) {
var txt = '';
if (node.hasChildNodes()) {
txt += '*';
var children = node.childNodes,
childrenLength = children.length;
for (var i = 0; i < childrenLength; ++i) {
txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
}
txt += '*';
}
return txt;
});
showdown.subParser('makeMarkdown.header', function (node, globals, headerLevel) {
var headerMark = new Array(headerLevel + 1).join('#'),
txt = '';
if (node.hasChildNodes()) {
txt = headerMark + ' ';
var children = node.childNodes,
childrenLength = children.length;
for (var i = 0; i < childrenLength; ++i) {
txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
}
}
return txt;
});
showdown.subParser('makeMarkdown.hr', function () {
return '---';
});
showdown.subParser('makeMarkdown.image', function (node) {
var txt = '';
if (node.hasAttribute('src')) {
txt += '![' + node.getAttribute('alt') + '](';
txt += '<' + node.getAttribute('src') + '>';
if (node.hasAttribute('width') && node.hasAttribute('height')) {
txt += ' =' + node.getAttribute('width') + 'x' + node.getAttribute('height');
}
if (node.hasAttribute('title')) {
txt += ' "' + node.getAttribute('title') + '"';
}
txt += ')';
}
return txt;
});
showdown.subParser('makeMarkdown.links', function (node, globals) {
var txt = '';
if (node.hasChildNodes() && node.hasAttribute('href')) {
var children = node.childNodes,
childrenLength = children.length;
txt = '[';
for (var i = 0; i < childrenLength; ++i) {
txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
}
txt += '](';
txt += '<' + node.getAttribute('href') + '>';
if (node.hasAttribute('title')) {
txt += ' "' + node.getAttribute('title') + '"';
}
txt += ')';
}
return txt;
});
showdown.subParser('makeMarkdown.list', function (node, globals, type) {
var txt = '';
if (!node.hasChildNodes()) {
return '';
}
var listItems = node.childNodes,
listItemsLenght = listItems.length,
listNum = node.getAttribute('start') || 1;
for (var i = 0; i < listItemsLenght; ++i) {
if (typeof listItems[i].tagName === 'undefined' || listItems[i].tagName.toLowerCase() !== 'li') {
continue;
}
// define the bullet to use in list
var bullet = '';
if (type === 'ol') {
bullet = listNum.toString() + '. ';
} else {
bullet = '- ';
}
// parse list item
txt += bullet + showdown.subParser('makeMarkdown.listItem')(listItems[i], globals);
++listNum;
}
// add comment at the end to prevent consecutive lists to be parsed as one
txt += '\n<!-- -->\n';
return txt.trim();
});
showdown.subParser('makeMarkdown.listItem', function (node, globals) {
var listItemTxt = '';
var children = node.childNodes,
childrenLenght = children.length;
for (var i = 0; i < childrenLenght; ++i) {
listItemTxt += showdown.subParser('makeMarkdown.node')(children[i], globals);
}
// if it's only one liner, we need to add a newline at the end
if (!/\n$/.test(listItemTxt)) {
listItemTxt += '\n';
} else {
// it's multiparagraph, so we need to indent
listItemTxt = listItemTxt
.split('\n')
.join('\n ')
.replace(/^ {4}$/gm, '')
.replace(/\n\n+/g, '\n\n');
}
return listItemTxt;
});
showdown.subParser('makeMarkdown.node', function (node, globals, spansOnly) {
spansOnly = spansOnly || false;
var txt = '';
// edge case of text without wrapper paragraph
if (node.nodeType === 3) {
return showdown.subParser('makeMarkdown.txt')(node, globals);
}
// HTML comment
if (node.nodeType === 8) {
return '<!--' + node.data + '-->\n\n';
}
// process only node elements
if (node.nodeType !== 1) {
return '';
}
var tagName = node.tagName.toLowerCase();
switch (tagName) {
//
// BLOCKS
//
case 'h1':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 1) + '\n\n'; }
break;
case 'h2':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 2) + '\n\n'; }
break;
case 'h3':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 3) + '\n\n'; }
break;
case 'h4':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 4) + '\n\n'; }
break;
case 'h5':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 5) + '\n\n'; }
break;
case 'h6':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 6) + '\n\n'; }
break;
case 'p':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.paragraph')(node, globals) + '\n\n'; }
break;
case 'blockquote':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.blockquote')(node, globals) + '\n\n'; }
break;
case 'hr':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.hr')(node, globals) + '\n\n'; }
break;
case 'ol':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ol') + '\n\n'; }
break;
case 'ul':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ul') + '\n\n'; }
break;
case 'precode':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.codeBlock')(node, globals) + '\n\n'; }
break;
case 'pre':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.pre')(node, globals) + '\n\n'; }
break;
case 'table':
if (!spansOnly) { txt = showdown.subParser('makeMarkdown.table')(node, globals) + '\n\n'; }
break;
//
// SPANS
//
case 'code':
txt = showdown.subParser('makeMarkdown.codeSpan')(node, globals);
break;
case 'em':
case 'i':
txt = showdown.subParser('makeMarkdown.emphasis')(node, globals);
break;
case 'strong':
case 'b':
txt = showdown.subParser('makeMarkdown.strong')(node, globals);
break;
case 'del':
txt = showdown.subParser('makeMarkdown.strikethrough')(node, globals);
break;
case 'a':
txt = showdown.subParser('makeMarkdown.links')(node, globals);
break;
case 'img':
txt = showdown.subParser('makeMarkdown.image')(node, globals);
break;
default:
txt = node.outerHTML + '\n\n';
}
// common normalization
// TODO eventually
return txt;
});
showdown.subParser('makeMarkdown.paragraph', function (node, globals) {
var txt = '';
if (node.hasChildNodes()) {
var children = node.childNodes,
childrenLength = children.length;
for (var i = 0; i < childrenLength; ++i) {
txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
}
}
// some text normalization
txt = txt.trim();
return txt;
});
showdown.subParser('makeMarkdown.pre', function (node, globals) {
var num = node.getAttribute('prenum');
return '<pre>' + globals.preList[num] + '</pre>';
});
showdown.subParser('makeMarkdown.strikethrough', function (node, globals) {
var txt = '';
if (node.hasChildNodes()) {
txt += '~~';
var children = node.childNodes,
childrenLength = children.length;
for (var i = 0; i < childrenLength; ++i) {
txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
}
txt += '~~';
}
return txt;
});
showdown.subParser('makeMarkdown.strong', function (node, globals) {
var txt = '';
if (node.hasChildNodes()) {
txt += '**';
var children = node.childNodes,
childrenLength = children.length;
for (var i = 0; i < childrenLength; ++i) {
txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
}
txt += '**';
}
return txt;
});
showdown.subParser('makeMarkdown.table', function (node, globals) {
var txt = '',
tableArray = [[], []],
headings = node.querySelectorAll('thead>tr>th'),
rows = node.querySelectorAll('tbody>tr'),
i, ii;
for (i = 0; i < headings.length; ++i) {
var headContent = showdown.subParser('makeMarkdown.tableCell')(headings[i], globals),
allign = '---';
if (headings[i].hasAttribute('style')) {
var style = headings[i].getAttribute('style').toLowerCase().replace(/\s/g, '');
switch (style) {
case 'text-align:left;':
allign = ':---';
break;
case 'text-align:right;':
allign = '---:';
break;
case 'text-align:center;':
allign = ':---:';
break;
}
}
tableArray[0][i] = headContent.trim();
tableArray[1][i] = allign;
}
for (i = 0; i < rows.length; ++i) {
var r = tableArray.push([]) - 1,
cols = rows[i].getElementsByTagName('td');
for (ii = 0; ii < headings.length; ++ii) {
var cellContent = ' ';
if (typeof cols[ii] !== 'undefined') {
cellContent = showdown.subParser('makeMarkdown.tableCell')(cols[ii], globals);
}
tableArray[r].push(cellContent);
}
}
var cellSpacesCount = 3;
for (i = 0; i < tableArray.length; ++i) {
for (ii = 0; ii < tableArray[i].length; ++ii) {
var strLen = tableArray[i][ii].length;
if (strLen > cellSpacesCount) {
cellSpacesCount = strLen;
}
}
}
for (i = 0; i < tableArray.length; ++i) {
for (ii = 0; ii < tableArray[i].length; ++ii) {
if (i === 1) {
if (tableArray[i][ii].slice(-1) === ':') {
tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii].slice(-1), cellSpacesCount - 1, '-') + ':';
} else {
tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount, '-');
}
} else {
tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount);
}
}
txt += '| ' + tableArray[i].join(' | ') + ' |\n';
}
return txt.trim();
});
showdown.subParser('makeMarkdown.tableCell', function (node, globals) {
var txt = '';
if (!node.hasChildNodes()) {
return '';
}
var children = node.childNodes,
childrenLength = children.length;
for (var i = 0; i < childrenLength; ++i) {
txt += showdown.subParser('makeMarkdown.node')(children[i], globals, true);
}
return txt.trim();
});
showdown.subParser('makeMarkdown.txt', function (node) {
var txt = node.nodeValue;
// multiple spaces are collapsed
txt = txt.replace(/ +/g, ' ');
// replace the custom ¨NBSP; with a space
txt = txt.replace(/¨NBSP;/g, ' ');
// ", <, > and & should replace escaped html entities
txt = showdown.helper.unescapeHTMLEntities(txt);
// escape markdown magic characters
// emphasis, strong and strikethrough - can appear everywhere
// we also escape pipe (|) because of tables
// and escape ` because of code blocks and spans
txt = txt.replace(/([*_~|`])/g, '\\$1');
// escape > because of blockquotes
txt = txt.replace(/^(\s*)>/g, '\\$1>');
// hash character, only troublesome at the beginning of a line because of headers
txt = txt.replace(/^#/gm, '\\#');
// horizontal rules
txt = txt.replace(/^(\s*)([-=]{3,})(\s*)$/, '$1\\$2$3');
// dot, because of ordered lists, only troublesome at the beginning of a line when preceded by an integer
txt = txt.replace(/^( {0,3}\d+)\./gm, '$1\\.');
// +, * and -, at the beginning of a line becomes a list, so we need to escape them also (asterisk was already escaped)
txt = txt.replace(/^( {0,3})([+-])/gm, '$1\\$2');
// images and links, ] followed by ( is problematic, so we escape it
txt = txt.replace(/]([\s]*)\(/g, '\\]$1\\(');
// reference URIs must also be escaped
txt = txt.replace(/^ {0,3}\[([\S \t]*?)]:/gm, '\\[$1]:');
return txt;
});
var root = this;
// AMD Loader
if (module.exports) {
module.exports = showdown;
// Regular Browser loader
} else {
root.showdown = showdown;
}
}).call(commonjsGlobal);
});
var Card = /** @class */ (function () {
function Card(id, deckName, initialContent, fields, reversed, initialOffset, endOffset, tags, inserted, mediaNames, containsCode) {
if (containsCode === void 0) { containsCode = false; }
this.id = id;
this.deckName = deckName;
this.initialContent = initialContent;
this.fields = fields;
this.reversed = reversed;
this.initialOffset = initialOffset;
this.endOffset = endOffset;
this.tags = tags;
this.inserted = inserted;
this.mediaNames = mediaNames;
this.mediaBase64Encoded = [];
this.oldTags = [];
this.containsCode = containsCode;
this.modelName = "";
}
Card.prototype.match = function (card) {
// TODO not supported currently
// if (this.modelName !== card.modelName) {
// return false
// }
var e_1, _a;
var fields = Object.entries(card.fields);
// This is the case of a switch from a model to another one. It cannot be handeled
if (fields.length !== Object.entries(this.fields).length) {
return true;
}
try {
for (var fields_1 = __values(fields), fields_1_1 = fields_1.next(); !fields_1_1.done; fields_1_1 = fields_1.next()) {
var field = fields_1_1.value;
var fieldName = field[0];
if (field[1].value !== this.fields[fieldName]) {
return false;
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (fields_1_1 && !fields_1_1.done && (_a = fields_1.return)) _a.call(fields_1);
}
finally { if (e_1) throw e_1.error; }
}
return arraysEqual(card.tags, this.tags);
};
Card.prototype.getCodeDeckNameExtension = function () {
return this.containsCode ? codeDeckExtension : "";
};
return Card;
}());
var Flashcard = /** @class */ (function (_super) {
__extends(Flashcard, _super);
function Flashcard(id, deckName, initialContent, fields, reversed, initialOffset, endOffset, tags, inserted, mediaNames, containsCode) {
if (id === void 0) { id = -1; }
if (tags === void 0) { tags = []; }
if (inserted === void 0) { inserted = false; }
var _this = _super.call(this, id, deckName, initialContent, fields, reversed, initialOffset, endOffset, tags, inserted, mediaNames, containsCode) || this;
_this.toString = function () {
return "Q: ".concat(_this.fields[0], "\nA: ").concat(_this.fields[1]);
};
_this.modelName = _this.reversed
? "Obsidian-basic-reversed"
: "Obsidian-basic";
if (fields["Source"]) {
_this.modelName += sourceDeckExtension;
}
if (containsCode) {
_this.modelName += codeDeckExtension;
}
return _this;
}
Flashcard.prototype.getCard = function (update) {
if (update === void 0) { update = false; }
var card = {
deckName: this.deckName,
modelName: this.modelName,
fields: this.fields,
tags: this.tags,
};
if (update) {
card["id"] = this.id;
}
return card;
};
Flashcard.prototype.getMedias = function () {
var _this = this;
var medias = [];
this.mediaBase64Encoded.forEach(function (data, index) {
medias.push({
filename: _this.mediaNames[index],
data: data,
});
});
return medias;
};
Flashcard.prototype.getIdFormat = function () {
return "^" + this.id.toString() + "\n";
};
return Flashcard;
}(Card));
var Inlinecard = /** @class */ (function (_super) {
__extends(Inlinecard, _super);
function Inlinecard(id, deckName, initialContent, fields, reversed, initialOffset, endOffset, tags, inserted, mediaNames, containsCode) {
if (id === void 0) { id = -1; }
if (tags === void 0) { tags = []; }
if (inserted === void 0) { inserted = false; }
var _this = _super.call(this, id, deckName, initialContent, fields, reversed, initialOffset, endOffset, tags, inserted, mediaNames, containsCode) || this;
_this.toString = function () {
return "Q: ".concat(_this.fields[0], " \nA: ").concat(_this.fields[1], " ");
};
_this.modelName = _this.reversed
? "Obsidian-basic-reversed"
: "Obsidian-basic";
if (fields["Source"]) {
_this.modelName += sourceDeckExtension;
}
if (containsCode) {
_this.modelName += codeDeckExtension;
}
return _this;
}
Inlinecard.prototype.getCard = function (update) {
if (update === void 0) { update = false; }
var card = {
deckName: this.deckName,
modelName: this.modelName,
fields: this.fields,
tags: this.tags,
};
if (update) {
card["id"] = this.id;
}
return card;
};
Inlinecard.prototype.getMedias = function () {
var _this = this;
var medias = [];
this.mediaBase64Encoded.forEach(function (data, index) {
medias.push({
filename: _this.mediaNames[index],
data: data,
});
});
return medias;
};
Inlinecard.prototype.getIdFormat = function () {
return "^" + this.id.toString();
};
return Inlinecard;
}(Card));
var Spacedcard = /** @class */ (function (_super) {
__extends(Spacedcard, _super);
function Spacedcard(id, deckName, initialContent, fields, reversed, initialOffset, endOffset, tags, inserted, mediaNames, containsCode) {
if (id === void 0) { id = -1; }
if (tags === void 0) { tags = []; }
if (inserted === void 0) { inserted = false; }
var _this = _super.call(this, id, deckName, initialContent, fields, reversed, initialOffset, endOffset, tags, inserted, mediaNames, containsCode) || this;
_this.toString = function () {
return "Prompt: ".concat(_this.fields[0]);
};
_this.modelName = "Obsidian-spaced";
if (fields["Source"]) {
_this.modelName += sourceDeckExtension;
}
if (containsCode) {
_this.modelName += codeDeckExtension;
}
return _this;
}
Spacedcard.prototype.getCard = function (update) {
if (update === void 0) { update = false; }
var card = {
deckName: this.deckName,
modelName: this.modelName,
fields: this.fields,
tags: this.tags,
};
if (update) {
card["id"] = this.id;
}
return card;
};
Spacedcard.prototype.getMedias = function () {
var _this = this;
var medias = [];
this.mediaBase64Encoded.forEach(function (data, index) {
medias.push({
filename: _this.mediaNames[index],
data: data,
});
});
return medias;
};
Spacedcard.prototype.getIdFormat = function () {
return "^" + this.id.toString() + "\n";
};
return Spacedcard;
}(Card));
var Clozecard = /** @class */ (function (_super) {
__extends(Clozecard, _super);
function Clozecard(id, deckName, initialContent, fields, reversed, initialOffset, endOffset, tags, inserted, mediaNames, containsCode) {
if (id === void 0) { id = -1; }
if (tags === void 0) { tags = []; }
if (inserted === void 0) { inserted = false; }
var _this = _super.call(this, id, deckName, initialContent, fields, reversed, initialOffset, endOffset, tags, inserted, mediaNames, containsCode) || this;
_this.toString = function () {
return "Cloze: ".concat(_this.fields[0]);
};
_this.modelName = "Obsidian-cloze";
if (fields["Source"]) {
_this.modelName += sourceDeckExtension;
}
if (containsCode) {
_this.modelName += codeDeckExtension;
}
return _this;
}
Clozecard.prototype.getCard = function (update) {
if (update === void 0) { update = false; }
var card = {
deckName: this.deckName,
modelName: this.modelName,
fields: this.fields,
tags: this.tags,
};
if (update) {
card["id"] = this.id;
}
return card;
};
Clozecard.prototype.getMedias = function () {
var _this = this;
var medias = [];
this.mediaBase64Encoded.forEach(function (data, index) {
medias.push({
filename: _this.mediaNames[index],
data: data,
});
});
return medias;
};
Clozecard.prototype.getIdFormat = function () {
return "\n^" + this.id.toString();
};
return Clozecard;
}(Card));
var Parser = /** @class */ (function () {
function Parser(regex, settings) {
this.regex = regex;
this.settings = settings;
this.htmlConverter = new showdown.Converter();
this.htmlConverter.setOption("simplifiedAutoLink", true);
this.htmlConverter.setOption("tables", true);
this.htmlConverter.setOption("tasks", true);
this.htmlConverter.setOption("strikethrough", true);
this.htmlConverter.setOption("ghCodeBlocks", true);
this.htmlConverter.setOption("requireSpaceBeforeHeadingText", true);
this.htmlConverter.setOption("simpleLineBreaks", true);
}
Parser.prototype.generateFlashcards = function (file, deck, vault, note, globalTags) {
var e_1, _a;
if (globalTags === void 0) { globalTags = []; }
var contextAware = this.settings.contextAwareMode;
var cards = [];
var headings = [];
if (contextAware) {
// https://regex101.com/r/agSp9X/4
headings = __spreadArray([], __read(file.matchAll(this.regex.headingsRegex)), false);
}
note = this.substituteObsidianLinks("[[".concat(note, "]]"), vault);
cards = cards.concat(this.generateCardsWithTag(file, headings, deck, vault, note, globalTags));
cards = cards.concat(this.generateInlineCards(file, headings, deck, vault, note, globalTags));
cards = cards.concat(this.generateSpacedCards(file, headings, deck, vault, note, globalTags));
cards = cards.concat(this.generateClozeCards(file, headings, deck, vault, note, globalTags));
// Filter out cards that are fully inside a code block, a math block or a math inline block
var codeBlocks = __spreadArray([], __read(file.matchAll(this.regex.obsidianCodeBlock)), false);
var mathBlocks = __spreadArray([], __read(file.matchAll(this.regex.mathBlock)), false);
var mathInline = __spreadArray([], __read(file.matchAll(this.regex.mathInline)), false);
var blocksToFilter = __spreadArray(__spreadArray(__spreadArray([], __read(codeBlocks), false), __read(mathBlocks), false), __read(mathInline), false);
var rangesToDiscard = blocksToFilter.map(function (x) { return ([x.index, x.index + x[0].length]); });
cards = cards.filter(function (card) {
var cardRange = [card.initialOffset, card.endOffset];
var isInRangeToDiscard = rangesToDiscard.some(function (range) {
return (cardRange[0] >= range[0] && cardRange[1] <= range[1]);
});
return !isInRangeToDiscard;
});
cards.sort(function (a, b) { return a.endOffset - b.endOffset; });
var defaultAnkiTag = this.settings.defaultAnkiTag;
if (defaultAnkiTag) {
try {
for (var cards_1 = __values(cards), cards_1_1 = cards_1.next(); !cards_1_1.done; cards_1_1 = cards_1.next()) {
var card = cards_1_1.value;
card.tags.push(defaultAnkiTag);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (cards_1_1 && !cards_1_1.done && (_a = cards_1.return)) _a.call(cards_1);
}
finally { if (e_1) throw e_1.error; }
}
}
return cards;
};
/**
* Gives back the ancestor headings of a line.
* @param headings The list of all the headings available in a file.
* @param line The line whose ancestors need to be calculated.
* @param headingLevel The level of the first ancestor heading, i.e. the number of #.
*/
Parser.prototype.getContext = function (headings, index, headingLevel) {
var context = [];
var currentIndex = index;
var goalLevel = 6;
var i = headings.length - 1;
// Get the level of the first heading before the index (i.e. above the current line)
if (headingLevel !== -1) {
// This is the case of a #flashcard in a heading
goalLevel = headingLevel - 1;
}
else {
// Find first heading and its level
// This is the case of a #flashcard in a paragraph
for (i; i >= 0; i--) {
if (headings[i].index < currentIndex) {
currentIndex = headings[i].index;
goalLevel = headings[i][1].length - 1;
context.unshift(headings[i][2].trim());
break;
}
}
}
// Search for the other headings
for (i; i >= 0; i--) {
var currentLevel = headings[i][1].length;
if (currentLevel == goalLevel && headings[i].index < currentIndex) {
currentIndex = headings[i].index;
goalLevel = currentLevel - 1;
context.unshift(headings[i][2].trim());
}
}
return context;
};
Parser.prototype.generateSpacedCards = function (file, headings, deck, vault, note, globalTags) {
var e_2, _a;
if (globalTags === void 0) { globalTags = []; }
var contextAware = this.settings.contextAwareMode;
var cards = [];
var matches = __spreadArray([], __read(file.matchAll(this.regex.cardsSpacedStyle)), false);
try {
for (var matches_1 = __values(matches), matches_1_1 = matches_1.next(); !matches_1_1.done; matches_1_1 = matches_1.next()) {
var match = matches_1_1.value;
var reversed = false;
var headingLevel = -1;
if (match[1]) {
headingLevel =
match[1].trim().length !== 0 ? match[1].trim().length : -1;
}
// Match.index - 1 because otherwise in the context there will be even match[1], i.e. the question itself
var context = contextAware
? this.getContext(headings, match.index - 1, headingLevel)
: "";
var originalPrompt = match[2].trim();
var prompt_1 = contextAware
? __spreadArray(__spreadArray([], __read(context), false), [match[2].trim()], false).join("".concat(this.settings.contextSeparator))
: match[2].trim();
var medias = this.getImageLinks(prompt_1);
medias = medias.concat(this.getAudioLinks(prompt_1));
prompt_1 = this.parseLine(prompt_1, vault);
var initialOffset = match.index;
var endingLine = match.index + match[0].length;
var tags = this.parseTags(match[4], globalTags);
var id = match[5] ? Number(match[5]) : -1;
var inserted = match[5] ? true : false;
var fields = { Prompt: prompt_1 };
if (this.settings.sourceSupport) {
fields["Source"] = note;
}
var containsCode = this.containsCode([prompt_1]);
var card = new Spacedcard(id, deck, originalPrompt, fields, reversed, initialOffset, endingLine, tags, inserted, medias, containsCode);
cards.push(card);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (matches_1_1 && !matches_1_1.done && (_a = matches_1.return)) _a.call(matches_1);
}
finally { if (e_2) throw e_2.error; }
}
return cards;
};
Parser.prototype.generateClozeCards = function (file, headings, deck, vault, note, globalTags) {
var e_3, _a;
if (globalTags === void 0) { globalTags = []; }
var contextAware = this.settings.contextAwareMode;
var cards = [];
var matches = __spreadArray([], __read(file.matchAll(this.regex.cardsClozeWholeLine)), false);
var mathBlocks = __spreadArray([], __read(file.matchAll(this.regex.mathBlock)), false);
var mathInline = __spreadArray([], __read(file.matchAll(this.regex.mathInline)), false);
var blocksToFilter = __spreadArray(__spreadArray([], __read(mathBlocks), false), __read(mathInline), false);
var rangesToDiscard = blocksToFilter.map(function (x) { return ([x.index, x.index + x[0].length]); });
var _loop_1 = function (match) {
var reversed = false;
var headingLevel = -1;
if (match[1]) {
headingLevel =
match[1].trim().length !== 0 ? match[1].trim().length : -1;
}
// Match.index - 1 because otherwise in the context there will be even match[1], i.e. the question itself
var context = contextAware
? this_1.getContext(headings, match.index - 1, headingLevel)
: "";
// If all the curly clozes are inside a math block, then do not create the card
match[2].matchAll(this_1.regex.singleClozeCurly);
var matchIndex = match.index;
// Identify curly clozes, drop all the ones that are in math blocks i.e. ($\frac{1}{12}$) and substitute the others with Anki syntax
var clozeText = match[2].replace(this_1.regex.singleClozeCurly, function (match, g1, g2, g3, offset) {
var globalOffset = matchIndex + offset;
var isInMathBlock = rangesToDiscard.some(function (x) { return (globalOffset >= x[0] && globalOffset + match[0].length <= x[1]); });
if (isInMathBlock) {
return match;
}
else {
if (g2) {
return "{{c".concat(g2, "::").concat(g3, "}}");
}
else {
return "{{c1::".concat(g3, "}}");
}
}
});
// Replace the highlight clozes in the line with Anki syntax
clozeText = clozeText.replace(this_1.regex.singleClozeHighlight, "{{c1::$2}}");
if (clozeText === match[2]) {
return "continue";
}
var originalLine = match[2].trim();
// Add context
clozeText = contextAware
? __spreadArray(__spreadArray([], __read(context), false), [clozeText.trim()], false).join("".concat(this_1.settings.contextSeparator))
: clozeText.trim();
var medias = this_1.getImageLinks(clozeText);
medias = medias.concat(this_1.getAudioLinks(clozeText));
clozeText = this_1.parseLine(clozeText, vault);
var initialOffset = match.index;
var endingLine = match.index + match[0].length;
var tags = this_1.parseTags(match[4], globalTags);
var id = match[5] ? Number(match[5]) : -1;
var inserted = match[5] ? true : false;
var fields = { Text: clozeText, Extra: "" };
if (this_1.settings.sourceSupport) {
fields["Source"] = note;
}
var containsCode = this_1.containsCode([clozeText]);
var card = new Clozecard(id, deck, originalLine, fields, reversed, initialOffset, endingLine, tags, inserted, medias, containsCode);
cards.push(card);
};
var this_1 = this;
try {
for (var matches_2 = __values(matches), matches_2_1 = matches_2.next(); !matches_2_1.done; matches_2_1 = matches_2.next()) {
var match = matches_2_1.value;
_loop_1(match);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (matches_2_1 && !matches_2_1.done && (_a = matches_2.return)) _a.call(matches_2);
}
finally { if (e_3) throw e_3.error; }
}
return cards;
};
Parser.prototype.generateInlineCards = function (file, headings, deck, vault, note, globalTags) {
var e_4, _a;
if (globalTags === void 0) { globalTags = []; }
var contextAware = this.settings.contextAwareMode;
var cards = [];
var matches = __spreadArray([], __read(file.matchAll(this.regex.cardsInlineStyle)), false);
try {
for (var matches_3 = __values(matches), matches_3_1 = matches_3.next(); !matches_3_1.done; matches_3_1 = matches_3.next()) {
var match = matches_3_1.value;
if (match[2].toLowerCase().startsWith("cards-deck") ||
match[2].toLowerCase().startsWith("tags")) {
continue;
}
var reversed = match[3] === this.settings.inlineSeparatorReverse;
var headingLevel = -1;
if (match[1]) {
headingLevel =
match[1].trim().length !== 0 ? match[1].trim().length : -1;
}
// Match.index - 1 because otherwise in the context there will be even match[1], i.e. the question itself
var context = contextAware
? this.getContext(headings, match.index - 1, headingLevel)
: "";
var originalQuestion = match[2].trim();
var question = contextAware
? __spreadArray(__spreadArray([], __read(context), false), [match[2].trim()], false).join("".concat(this.settings.contextSeparator))
: match[2].trim();
var answer = match[4].trim();
var medias = this.getImageLinks(question);
medias = medias.concat(this.getImageLinks(answer));
medias = medias.concat(this.getAudioLinks(answer));
question = this.parseLine(question, vault);
answer = this.parseLine(answer, vault);
var initialOffset = match.index;
var endingLine = match.index + match[0].length;
var tags = this.parseTags(match[5], globalTags);
var id = match[6] ? Number(match[6]) : -1;
var inserted = match[6] ? true : false;
var fields = { Front: question, Back: answer };
if (this.settings.sourceSupport) {
fields["Source"] = note;
}
var containsCode = this.containsCode([question, answer]);
var card = new Inlinecard(id, deck, originalQuestion, fields, reversed, initialOffset, endingLine, tags, inserted, medias, containsCode);
cards.push(card);
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (matches_3_1 && !matches_3_1.done && (_a = matches_3.return)) _a.call(matches_3);
}
finally { if (e_4) throw e_4.error; }
}
return cards;
};
Parser.prototype.generateCardsWithTag = function (file, headings, deck, vault, note, globalTags) {
var e_5, _a;
if (globalTags === void 0) { globalTags = []; }
var contextAware = this.settings.contextAwareMode;
var cards = [];
var matches = __spreadArray([], __read(file.matchAll(this.regex.flashscardsWithTag)), false);
try {
for (var matches_4 = __values(matches), matches_4_1 = matches_4.next(); !matches_4_1.done; matches_4_1 = matches_4.next()) {
var match = matches_4_1.value;
var reversed = match[3].trim().toLowerCase() ===
"#".concat(this.settings.flashcardsTag, "-reverse") ||
match[3].trim().toLowerCase() ===
"#".concat(this.settings.flashcardsTag, "/reverse");
var headingLevel = match[1].trim().length !== 0 ? match[1].length : -1;
// Match.index - 1 because otherwise in the context there will be even match[1], i.e. the question itself
var context = contextAware
? this.getContext(headings, match.index - 1, headingLevel).concat([])
: "";
var originalQuestion = match[2].trim();
var question = contextAware
? __spreadArray(__spreadArray([], __read(context), false), [match[2].trim()], false).join("".concat(this.settings.contextSeparator))
: match[2].trim();
var answer = match[5].trim();
var medias = this.getImageLinks(question);
medias = medias.concat(this.getImageLinks(answer));
medias = medias.concat(this.getAudioLinks(answer));
question = this.parseLine(question, vault);
answer = this.parseLine(answer, vault);
var initialOffset = match.index;
var endingLine = match.index + match[0].length;
var tags = this.parseTags(match[4], globalTags);
var id = match[6] ? Number(match[6]) : -1;
var inserted = match[6] ? true : false;
var fields = { Front: question, Back: answer };
if (this.settings.sourceSupport) {
fields["Source"] = note;
}
var containsCode = this.containsCode([question, answer]);
var card = new Flashcard(id, deck, originalQuestion, fields, reversed, initialOffset, endingLine, tags, inserted, medias, containsCode);
cards.push(card);
}
}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {
try {
if (matches_4_1 && !matches_4_1.done && (_a = matches_4.return)) _a.call(matches_4);
}
finally { if (e_5) throw e_5.error; }
}
return cards;
};
Parser.prototype.containsCode = function (str) {
var e_6, _a;
try {
for (var str_1 = __values(str), str_1_1 = str_1.next(); !str_1_1.done; str_1_1 = str_1.next()) {
var s = str_1_1.value;
if (s.match(this.regex.codeBlock)) {
return true;
}
}
}
catch (e_6_1) { e_6 = { error: e_6_1 }; }
finally {
try {
if (str_1_1 && !str_1_1.done && (_a = str_1.return)) _a.call(str_1);
}
finally { if (e_6) throw e_6.error; }
}
return false;
};
Parser.prototype.getCardsToDelete = function (file) {
// Find block IDs with no content above it
return __spreadArray([], __read(file.matchAll(this.regex.cardsToDelete)), false).map(function (match) {
return Number(match[1]);
});
};
Parser.prototype.parseLine = function (str, vaultName) {
return this.htmlConverter.makeHtml(this.mathToAnki(this.substituteObsidianLinks(this.substituteImageLinks(this.substituteAudioLinks(str)), vaultName)));
};
Parser.prototype.getImageLinks = function (str) {
var e_7, _a, e_8, _b;
var wikiMatches = str.matchAll(this.regex.wikiImageLinks);
var markdownMatches = str.matchAll(this.regex.markdownImageLinks);
var links = [];
try {
for (var wikiMatches_1 = __values(wikiMatches), wikiMatches_1_1 = wikiMatches_1.next(); !wikiMatches_1_1.done; wikiMatches_1_1 = wikiMatches_1.next()) {
var wikiMatch = wikiMatches_1_1.value;
links.push(wikiMatch[1]);
}
}
catch (e_7_1) { e_7 = { error: e_7_1 }; }
finally {
try {
if (wikiMatches_1_1 && !wikiMatches_1_1.done && (_a = wikiMatches_1.return)) _a.call(wikiMatches_1);
}
finally { if (e_7) throw e_7.error; }
}
try {
for (var markdownMatches_1 = __values(markdownMatches), markdownMatches_1_1 = markdownMatches_1.next(); !markdownMatches_1_1.done; markdownMatches_1_1 = markdownMatches_1.next()) {
var markdownMatch = markdownMatches_1_1.value;
links.push(decodeURIComponent(markdownMatch[1]));
}
}
catch (e_8_1) { e_8 = { error: e_8_1 }; }
finally {
try {
if (markdownMatches_1_1 && !markdownMatches_1_1.done && (_b = markdownMatches_1.return)) _b.call(markdownMatches_1);
}
finally { if (e_8) throw e_8.error; }
}
return links;
};
Parser.prototype.getAudioLinks = function (str) {
var e_9, _a;
var wikiMatches = str.matchAll(this.regex.wikiAudioLinks);
var links = [];
try {
for (var wikiMatches_2 = __values(wikiMatches), wikiMatches_2_1 = wikiMatches_2.next(); !wikiMatches_2_1.done; wikiMatches_2_1 = wikiMatches_2.next()) {
var wikiMatch = wikiMatches_2_1.value;
links.push(wikiMatch[1]);
}
}
catch (e_9_1) { e_9 = { error: e_9_1 }; }
finally {
try {
if (wikiMatches_2_1 && !wikiMatches_2_1.done && (_a = wikiMatches_2.return)) _a.call(wikiMatches_2);
}
finally { if (e_9) throw e_9.error; }
}
return links;
};
Parser.prototype.substituteObsidianLinks = function (str, vaultName) {
var linkRegex = /\[\[(.+?)(?:\|(.+))?\]\]/gim;
vaultName = encodeURIComponent(vaultName);
return str.replace(linkRegex, function (match, filename, rename) {
var href = "obsidian://open?vault=".concat(vaultName, "&file=").concat(encodeURIComponent(filename), ".md");
var fileRename = rename ? rename : filename;
return "<a href=\"".concat(href, "\">[[").concat(fileRename, "]]</a>");
});
};
Parser.prototype.substituteImageLinks = function (str) {
str = str.replace(this.regex.wikiImageLinks, "<img src='$1'>");
str = str.replace(this.regex.markdownImageLinks, "<img src='$1'>");
return str;
};
Parser.prototype.substituteAudioLinks = function (str) {
return str.replace(this.regex.wikiAudioLinks, "[sound:$1]");
};
Parser.prototype.mathToAnki = function (str) {
str = str.replace(this.regex.mathBlock, function (match, p1, p2) {
return "\\\\[" + escapeMarkdown(p2) + " \\\\]";
});
str = str.replace(this.regex.mathInline, function (match, p1, p2) {
return "\\\\(" + escapeMarkdown(p2) + "\\\\)";
});
return str;
};
Parser.prototype.parseTags = function (str, globalTags) {
var e_10, _a;
var tags = __spreadArray([], __read(globalTags), false);
if (str) {
try {
for (var _b = __values(str.split("#")), _c = _b.next(); !_c.done; _c = _b.next()) {
var tag = _c.value;
var newTag = tag.trim();
if (newTag) {
// Replace obsidian hierarchy tags delimeter \ with anki delimeter ::
newTag = newTag.replace(this.regex.tagHierarchy, "::");
tags.push(newTag);
}
}
}
catch (e_10_1) { e_10 = { error: e_10_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_10) throw e_10.error; }
}
}
return tags;
};
Parser.prototype.getAnkiIDsBlocks = function (file) {
return Array.from(file.matchAll(/\^(\d{13})\s*/gm));
};
return Parser;
}());
var Regex = /** @class */ (function () {
function Regex(settings) {
this.update(settings);
}
Regex.prototype.update = function (settings) {
// https://regex101.com/r/BOieWh/1
this.headingsRegex = /^ {0,3}(#{1,6}) +([^\n]+?) ?((?: *#\S+)*) *$/gim;
// Supported images https://publish.obsidian.md/help/How+to/Embed+files
this.wikiImageLinks =
/!\[\[(.*\.(?:png|jpg|jpeg|gif|bmp|svg|tiff)).*?\]\]/gim;
this.markdownImageLinks =
/!\[\]\((.*\.(?:png|jpg|jpeg|gif|bmp|svg|tiff)).*?\)/gim;
this.wikiAudioLinks =
/!\[\[(.*\.(?:mp3|webm|wav|m4a|ogg|3gp|flac)).*?\]\]/gim;
// https://regex101.com/r/eqnJeW/1
this.obsidianCodeBlock = /(?:```(?:.*?\n?)+?```)(?:\n|$)/gim;
this.codeBlock = /<code\b[^>]*>(.*?)<\/code>/gims;
this.mathBlock = /(\$\$)(.*?)(\$\$)/gis;
this.mathInline = /(\$)(.*?)(\$)/gi;
this.cardsDeckLine = /cards-deck: [\p{L}]+/giu;
this.cardsToDelete = /^\s*(?:\n)(?:\^(\d{13}))(?:\n\s*?)?/gm;
// https://regex101.com/r/WxuFI2/1
this.globalTagsSplitter =
/\[\[(.*?)\]\]|#([\p{L}:\-_/]+)|([\p{L}:\-_/]+)/gimu;
this.tagHierarchy = /\//gm;
// Cards
var flags = "gimu";
// https://regex101.com/r/p3yQwY/2
var str = "( {0,3}[#]*)((?:[^\\n]\\n?)+?)(#" +
settings.flashcardsTag +
"(?:[/-]reverse)?)((?: *#[\\p{Number}\\p{Letter}\\-\\/_]+)*) *?\\n+((?:[^\\n]\\n?)*?(?=\\^\\d{13}|$))(?:\\^(\\d{13}))?";
this.flashscardsWithTag = new RegExp(str, flags);
// https://regex101.com/r/8wmOo8/1
var sepLongest = settings.inlineSeparator.length >= settings.inlineSeparatorReverse.length ? settings.inlineSeparator : settings.inlineSeparatorReverse;
var sepShortest = settings.inlineSeparator.length < settings.inlineSeparatorReverse.length ? settings.inlineSeparator : settings.inlineSeparatorReverse;
// sepLongest is the longest between the inlineSeparator and the inlineSeparatorReverse because if the order is ::|::: then always the first will be matched
// sepShortest is the shortest
if (settings.inlineID) {
str =
"( {0,3}[#]{0,6})?(?:(?:[\\t ]*)(?:\\d.|[-+*]|#{1,6}))?(.+?) ?(" + sepLongest + "|" + sepShortest + ") ?(.+?)((?: *#[\\p{Letter}\\-\\/_]+)+)?(?:\\s+\\^(\\d{13})|$)";
}
else {
str =
"( {0,3}[#]{0,6})?(?:(?:[\\t ]*)(?:\\d.|[-+*]|#{1,6}))?(.+?) ?(" + sepLongest + "|" + sepShortest + ") ?(.+?)((?: *#[\\p{Letter}\\-\\/_]+)+|$)(?:\\n\\^(\\d{13}))?";
}
this.cardsInlineStyle = new RegExp(str, flags);
// https://regex101.com/r/HOXF5E/1
str =
"( {0,3}[#]*)((?:[^\\n]\\n?)+?)(#" +
settings.flashcardsTag +
"[/-]spaced)((?: *#[\\p{Letter}-]+)*) *\\n?(?:\\^(\\d{13}))?";
this.cardsSpacedStyle = new RegExp(str, flags);
// https://regex101.com/r/cgtnLf/1
str = "( {0,3}[#]{0,6})?(?:(?:[\\t ]*)(?:\\d.|[-+*]|#{1,6}))?(.*?(==.+?==|\\{.+?\\}).*?)((?: *#[\\w\\-\\/_]+)+|$)(?:\n\\^(\\d{13}))?";
this.cardsClozeWholeLine = new RegExp(str, flags);
this.singleClozeCurly = /((?:{)(?:(\d):?)?(.+?)(?:}))/g;
this.singleClozeHighlight = /((?:==)(.+?)(?:==))/g;
};
return Regex;
}());
var CardsService = /** @class */ (function () {
function CardsService(app, settings) {
this.app = app;
this.settings = settings;
this.regex = new Regex(this.settings);
this.parser = new Parser(this.regex, this.settings);
this.anki = new Anki();
}
CardsService.prototype.execute = function (activeFile) {
return __awaiter(this, void 0, void 0, function () {
var err_1, filePath, sourcePath, fileCachedMetadata, vaultName, globalTags, frontmatter, deckName, _a, ankiBlocks, ankiCards, _b, cards, _c, cardsToCreate, cardsToUpdate, cardsNotInAnki, cardIds, cardsToDelete, cardsNotInAnki_1, cardsNotInAnki_1_1, card, deckNeedToBeChanged, err_2;
var e_1, _d;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
this.regex.update(this.settings);
_e.label = 1;
case 1:
_e.trys.push([1, 3, , 4]);
return [4 /*yield*/, this.anki.ping()];
case 2:
_e.sent();
return [3 /*break*/, 4];
case 3:
err_1 = _e.sent();
console.error(err_1);
return [2 /*return*/, ["Error: Anki must be open with AnkiConnect installed."]];
case 4:
// Init for the execute phase
this.updateFile = false;
this.totalOffset = 0;
this.notifications = [];
filePath = activeFile.basename;
sourcePath = activeFile.path;
fileCachedMetadata = this.app.metadataCache.getFileCache(activeFile);
vaultName = this.app.vault.getName();
globalTags = undefined;
frontmatter = fileCachedMetadata.frontmatter;
deckName = "";
if (this.settings.folderBasedDeck && activeFile.parent.path !== "/") {
// If the current file is in the path "programming/java/strings.md" then the deck name is "programming::java"
deckName = activeFile.parent.path.split("/").join("::");
}
else {
deckName = this.settings.deck;
}
if (frontmatter) {
deckName =
obsidian.parseFrontMatterEntry(frontmatter, "cards-deck") || this.settings.deck;
}
_e.label = 5;
case 5:
_e.trys.push([5, 16, , 17]);
this.anki.storeCodeHighlightMedias();
return [4 /*yield*/, this.anki.createModels(this.settings.sourceSupport, this.settings.codeHighlightSupport)];
case 6:
_e.sent();
return [4 /*yield*/, this.anki.createDeck(deckName)];
case 7:
_e.sent();
_a = this;
return [4 /*yield*/, this.app.vault.read(activeFile)];
case 8:
_a.file = _e.sent();
if (!this.file.endsWith("\n")) {
this.file += "\n";
}
globalTags = this.parseGlobalTags(this.file);
ankiBlocks = this.parser.getAnkiIDsBlocks(this.file);
if (!ankiBlocks) return [3 /*break*/, 10];
return [4 /*yield*/, this.anki.getCards(this.getAnkiIDs(ankiBlocks))];
case 9:
_b = _e.sent();
return [3 /*break*/, 11];
case 10:
_b = undefined;
_e.label = 11;
case 11:
ankiCards = _b;
cards = this.parser.generateFlashcards(this.file, deckName, vaultName, filePath, globalTags);
_c = __read(this.filterByUpdate(ankiCards, cards), 3), cardsToCreate = _c[0], cardsToUpdate = _c[1], cardsNotInAnki = _c[2];
cardIds = this.getCardsIds(ankiCards, cards);
cardsToDelete = this.parser.getCardsToDelete(this.file);
console.info("Flashcards: Cards to create");
console.info(cardsToCreate);
console.info("Flashcards: Cards to update");
console.info(cardsToUpdate);
console.info("Flashcards: Cards to delete");
console.info(cardsToDelete);
if (cardsNotInAnki) {
console.info("Flashcards: Cards not in Anki (maybe deleted)");
try {
for (cardsNotInAnki_1 = __values(cardsNotInAnki), cardsNotInAnki_1_1 = cardsNotInAnki_1.next(); !cardsNotInAnki_1_1.done; cardsNotInAnki_1_1 = cardsNotInAnki_1.next()) {
card = cardsNotInAnki_1_1.value;
this.notifications.push("Error: Card with ID ".concat(card.id, " is not in Anki!"));
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (cardsNotInAnki_1_1 && !cardsNotInAnki_1_1.done && (_d = cardsNotInAnki_1.return)) _d.call(cardsNotInAnki_1);
}
finally { if (e_1) throw e_1.error; }
}
}
console.info(cardsNotInAnki);
this.insertMedias(cards, sourcePath);
return [4 /*yield*/, this.deleteCardsOnAnki(cardsToDelete, ankiBlocks)];
case 12:
_e.sent();
return [4 /*yield*/, this.updateCardsOnAnki(cardsToUpdate)];
case 13:
_e.sent();
return [4 /*yield*/, this.insertCardsOnAnki(cardsToCreate, frontmatter, deckName)];
case 14:
_e.sent();
return [4 /*yield*/, this.deckNeedToBeChanged(cardIds, deckName)];
case 15:
deckNeedToBeChanged = _e.sent();
if (deckNeedToBeChanged) {
try {
this.anki.changeDeck(cardIds, deckName);
this.notifications.push("Cards moved in new deck");
}
catch (_f) {
return [2 /*return*/, ["Error: Could not update deck the file."]];
}
}
// Update file
if (this.updateFile) {
try {
this.app.vault.modify(activeFile, this.file);
}
catch (err) {
return [2 /*return*/, ["Error: Could not update the file."]];
}
}
if (!this.notifications.length) {
this.notifications.push("Nothing to do. Everything is up to date");
}
return [2 /*return*/, this.notifications];
case 16:
err_2 = _e.sent();
console.error(err_2);
return [3 /*break*/, 17];
case 17: return [2 /*return*/];
}
});
});
};
CardsService.prototype.insertMedias = function (cards, sourcePath) {
return __awaiter(this, void 0, void 0, function () {
var err_3;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 3, , 4]);
// Currently the media are created for every run, this is not a problem since Anki APIs overwrite the file
// A more efficient way would be to keep track of the medias saved
return [4 /*yield*/, this.generateMediaLinks(cards, sourcePath)];
case 1:
// Currently the media are created for every run, this is not a problem since Anki APIs overwrite the file
// A more efficient way would be to keep track of the medias saved
_a.sent();
return [4 /*yield*/, this.anki.storeMediaFiles(cards)];
case 2:
_a.sent();
return [3 /*break*/, 4];
case 3:
err_3 = _a.sent();
console.error(err_3);
return [3 /*break*/, 4];
case 4: return [2 /*return*/];
}
});
});
};
CardsService.prototype.generateMediaLinks = function (cards, sourcePath) {
return __awaiter(this, void 0, void 0, function () {
var cards_1, cards_1_1, card, _a, _b, media, image, binaryMedia, e_2_1, e_3_1;
var e_3, _c, e_2, _d;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
if (!(this.app.vault.adapter instanceof obsidian.FileSystemAdapter)) return [3 /*break*/, 16];
_e.label = 1;
case 1:
_e.trys.push([1, 14, 15, 16]);
cards_1 = __values(cards), cards_1_1 = cards_1.next();
_e.label = 2;
case 2:
if (!!cards_1_1.done) return [3 /*break*/, 13];
card = cards_1_1.value;
_e.label = 3;
case 3:
_e.trys.push([3, 10, 11, 12]);
_a = (e_2 = void 0, __values(card.mediaNames)), _b = _a.next();
_e.label = 4;
case 4:
if (!!_b.done) return [3 /*break*/, 9];
media = _b.value;
image = this.app.metadataCache.getFirstLinkpathDest(decodeURIComponent(media), sourcePath);
_e.label = 5;
case 5:
_e.trys.push([5, 7, , 8]);
return [4 /*yield*/, this.app.vault.readBinary(image)];
case 6:
binaryMedia = _e.sent();
card.mediaBase64Encoded.push(arrayBufferToBase64(binaryMedia));
return [3 /*break*/, 8];
case 7:
_e.sent();
return [3 /*break*/, 8];
case 8:
_b = _a.next();
return [3 /*break*/, 4];
case 9: return [3 /*break*/, 12];
case 10:
e_2_1 = _e.sent();
e_2 = { error: e_2_1 };
return [3 /*break*/, 12];
case 11:
try {
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
}
finally { if (e_2) throw e_2.error; }
return [7 /*endfinally*/];
case 12:
cards_1_1 = cards_1.next();
return [3 /*break*/, 2];
case 13: return [3 /*break*/, 16];
case 14:
e_3_1 = _e.sent();
e_3 = { error: e_3_1 };
return [3 /*break*/, 16];
case 15:
try {
if (cards_1_1 && !cards_1_1.done && (_c = cards_1.return)) _c.call(cards_1);
}
finally { if (e_3) throw e_3.error; }
return [7 /*endfinally*/];
case 16: return [2 /*return*/];
}
});
});
};
CardsService.prototype.insertCardsOnAnki = function (cardsToCreate, frontmatter, deckName) {
return __awaiter(this, void 0, void 0, function () {
var insertedCards_1, ids, total_1, err_5;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!cardsToCreate.length) return [3 /*break*/, 4];
insertedCards_1 = 0;
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, this.anki.addCards(cardsToCreate)];
case 2:
ids = _a.sent();
// Add IDs from response to Flashcard[]
ids.map(function (id, index) {
cardsToCreate[index].id = id;
});
total_1 = 0;
cardsToCreate.forEach(function (card) {
if (card.id === null) {
new obsidian.Notice("Error, could not add: '".concat(card.initialContent, "'"), noticeTimeout);
}
else {
card.reversed ? (insertedCards_1 += 2) : insertedCards_1++;
}
card.reversed ? (total_1 += 2) : total_1++;
});
this.updateFrontmatter(frontmatter, deckName);
this.writeAnkiBlocks(cardsToCreate);
this.notifications.push("Inserted successfully ".concat(insertedCards_1, "/").concat(total_1, " cards."));
return [2 /*return*/, insertedCards_1];
case 3:
err_5 = _a.sent();
console.error(err_5);
return [3 /*break*/, 4];
case 4: return [2 /*return*/];
}
});
});
};
CardsService.prototype.updateFrontmatter = function (frontmatter, deckName) {
var newFrontmatter = "";
var cardsDeckLine = "cards-deck: ".concat(deckName, "\n");
if (frontmatter) {
var oldFrontmatter = this.file.substring(frontmatter.position.start.offset, frontmatter.position.end.offset);
if (!oldFrontmatter.match(this.regex.cardsDeckLine)) {
newFrontmatter =
oldFrontmatter.substring(0, oldFrontmatter.length - 3) +
cardsDeckLine +
"---";
this.totalOffset += cardsDeckLine.length;
this.file =
newFrontmatter +
this.file.substring(frontmatter.position.end.offset, this.file.length + 1);
}
}
else {
newFrontmatter = "---\n".concat(cardsDeckLine, "---\n\n");
this.totalOffset += newFrontmatter.length;
this.file = newFrontmatter + this.file;
}
};
CardsService.prototype.writeAnkiBlocks = function (cardsToCreate) {
var e_4, _a;
try {
for (var cardsToCreate_1 = __values(cardsToCreate), cardsToCreate_1_1 = cardsToCreate_1.next(); !cardsToCreate_1_1.done; cardsToCreate_1_1 = cardsToCreate_1.next()) {
var card = cardsToCreate_1_1.value;
// Card.id cannot be null, because if written already previously it has an ID,
// if it has been inserted it has an ID too
if (card.id !== null && !card.inserted) {
var id = card.getIdFormat();
if (card instanceof Inlinecard) {
if (this.settings.inlineID) {
id = " " + id;
}
else {
id = "\n" + id;
}
}
card.endOffset += this.totalOffset;
var offset = card.endOffset;
this.updateFile = true;
this.file =
this.file.substring(0, offset) +
id +
this.file.substring(offset, this.file.length + 1);
this.totalOffset += id.length;
}
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (cardsToCreate_1_1 && !cardsToCreate_1_1.done && (_a = cardsToCreate_1.return)) _a.call(cardsToCreate_1);
}
finally { if (e_4) throw e_4.error; }
}
};
CardsService.prototype.updateCardsOnAnki = function (cards) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
if (cards.length) {
try {
this.anki.updateCards(cards);
this.notifications.push("Updated successfully ".concat(cards.length, "/").concat(cards.length, " cards."));
}
catch (err) {
console.error(err);
}
return [2 /*return*/, cards.length];
}
return [2 /*return*/];
});
});
};
CardsService.prototype.deleteCardsOnAnki = function (cards, ankiBlocks) {
return __awaiter(this, void 0, void 0, function () {
var deletedCards, ankiBlocks_1, ankiBlocks_1_1, block, id;
var e_5, _a;
return __generator(this, function (_b) {
if (cards.length) {
deletedCards = 0;
try {
for (ankiBlocks_1 = __values(ankiBlocks), ankiBlocks_1_1 = ankiBlocks_1.next(); !ankiBlocks_1_1.done; ankiBlocks_1_1 = ankiBlocks_1.next()) {
block = ankiBlocks_1_1.value;
id = Number(block[1]);
// Deletion of cards that need to be deleted (i.e. blocks ID that don't have content)
if (cards.includes(id)) {
try {
this.anki.deleteCards(cards);
deletedCards++;
this.updateFile = true;
this.file =
this.file.substring(0, block["index"]) +
this.file.substring(block["index"] + block[0].length, this.file.length);
this.totalOffset -= block[0].length;
this.notifications.push("Deleted successfully ".concat(deletedCards, "/").concat(cards.length, " cards."));
}
catch (err) {
console.error(err);
Error("Error, could not delete the card from Anki");
}
}
}
}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {
try {
if (ankiBlocks_1_1 && !ankiBlocks_1_1.done && (_a = ankiBlocks_1.return)) _a.call(ankiBlocks_1);
}
finally { if (e_5) throw e_5.error; }
}
return [2 /*return*/, deletedCards];
}
return [2 /*return*/];
});
});
};
CardsService.prototype.getAnkiIDs = function (blocks) {
var e_6, _a;
var IDs = [];
try {
for (var blocks_1 = __values(blocks), blocks_1_1 = blocks_1.next(); !blocks_1_1.done; blocks_1_1 = blocks_1.next()) {
var b = blocks_1_1.value;
IDs.push(Number(b[1]));
}
}
catch (e_6_1) { e_6 = { error: e_6_1 }; }
finally {
try {
if (blocks_1_1 && !blocks_1_1.done && (_a = blocks_1.return)) _a.call(blocks_1);
}
finally { if (e_6) throw e_6.error; }
}
return IDs;
};
CardsService.prototype.filterByUpdate = function (ankiCards, generatedCards) {
var e_7, _a;
var cardsToCreate = [];
var cardsToUpdate = [];
var cardsNotInAnki = [];
if (ankiCards) {
var _loop_1 = function (flashcard) {
// Inserted means that anki blocks are available, that means that the card should
// (the user can always delete it) be in Anki
var ankiCard = undefined;
if (flashcard.inserted) {
ankiCard = ankiCards.filter(function (card) { return Number(card.noteId) === flashcard.id; })[0];
if (!ankiCard) {
cardsNotInAnki.push(flashcard);
}
else if (!flashcard.match(ankiCard)) {
flashcard.oldTags = ankiCard.tags;
cardsToUpdate.push(flashcard);
}
}
else {
cardsToCreate.push(flashcard);
}
};
try {
for (var generatedCards_1 = __values(generatedCards), generatedCards_1_1 = generatedCards_1.next(); !generatedCards_1_1.done; generatedCards_1_1 = generatedCards_1.next()) {
var flashcard = generatedCards_1_1.value;
_loop_1(flashcard);
}
}
catch (e_7_1) { e_7 = { error: e_7_1 }; }
finally {
try {
if (generatedCards_1_1 && !generatedCards_1_1.done && (_a = generatedCards_1.return)) _a.call(generatedCards_1);
}
finally { if (e_7) throw e_7.error; }
}
}
else {
cardsToCreate = __spreadArray([], __read(generatedCards), false);
}
return [cardsToCreate, cardsToUpdate, cardsNotInAnki];
};
CardsService.prototype.deckNeedToBeChanged = function (cardsIds, deckName) {
return __awaiter(this, void 0, void 0, function () {
var cardsInfo;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.anki.cardsInfo(cardsIds)];
case 1:
cardsInfo = _a.sent();
console.log("Flashcards: Cards info");
console.log(cardsInfo);
if (cardsInfo.length !== 0) {
return [2 /*return*/, cardsInfo[0].deckName !== deckName];
}
return [2 /*return*/, false];
}
});
});
};
CardsService.prototype.getCardsIds = function (ankiCards, generatedCards) {
var e_8, _a;
var ids = [];
if (ankiCards) {
var _loop_2 = function (flashcard) {
var ankiCard = undefined;
if (flashcard.inserted) {
ankiCard = ankiCards.filter(function (card) { return Number(card.noteId) === flashcard.id; })[0];
if (ankiCard) {
ids = ids.concat(ankiCard.cards);
}
}
};
try {
for (var generatedCards_2 = __values(generatedCards), generatedCards_2_1 = generatedCards_2.next(); !generatedCards_2_1.done; generatedCards_2_1 = generatedCards_2.next()) {
var flashcard = generatedCards_2_1.value;
_loop_2(flashcard);
}
}
catch (e_8_1) { e_8 = { error: e_8_1 }; }
finally {
try {
if (generatedCards_2_1 && !generatedCards_2_1.done && (_a = generatedCards_2.return)) _a.call(generatedCards_2);
}
finally { if (e_8) throw e_8.error; }
}
}
return ids;
};
CardsService.prototype.parseGlobalTags = function (file) {
var globalTags = [];
var tags = file.match(/(?:cards-)?tags: ?(.*)/im);
globalTags = tags ? tags[1].match(this.regex.globalTagsSplitter) : [];
if (globalTags) {
for (var i = 0; i < globalTags.length; i++) {
globalTags[i] = globalTags[i].replace("#", "");
globalTags[i] = globalTags[i].replace("/", "::");
globalTags[i] = globalTags[i].replace(/\[\[(.*)\]\]/, "$1");
globalTags[i] = globalTags[i].trim();
globalTags[i] = globalTags[i].replace(/ /g, "-");
}
return globalTags;
}
return [];
};
return CardsService;
}());
var ObsidianFlashcard = /** @class */ (function (_super) {
__extends(ObsidianFlashcard, _super);
function ObsidianFlashcard() {
return _super !== null && _super.apply(this, arguments) || this;
}
ObsidianFlashcard.prototype.onload = function () {
return __awaiter(this, void 0, void 0, function () {
var anki, _a, statusBar;
var _this = this;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
obsidian.addIcon("flashcards", flashcardsIcon);
anki = new Anki();
_a = this;
return [4 /*yield*/, this.loadData()];
case 1:
_a.settings = (_b.sent()) || this.getDefaultSettings();
this.cardsService = new CardsService(this.app, this.settings);
statusBar = this.addStatusBarItem();
this.addCommand({
id: 'generate-flashcard-current-file',
name: 'Generate for the current file',
checkCallback: function (checking) {
var activeFile = _this.app.workspace.getActiveFile();
if (activeFile) {
if (!checking) {
_this.generateCards(activeFile);
}
return true;
}
return false;
}
});
this.addRibbonIcon('flashcards', 'Generate flashcards', function () {
var activeFile = _this.app.workspace.getActiveFile();
if (activeFile) {
_this.generateCards(activeFile);
}
else {
new obsidian.Notice("Open a file before");
}
});
this.addSettingTab(new SettingsTab(this.app, this));
this.registerInterval(window.setInterval(function () {
return anki.ping().then(function () { return statusBar.setText('Anki ⚡️'); }).catch(function () { return statusBar.setText(''); });
}, 15 * 1000));
return [2 /*return*/];
}
});
});
};
ObsidianFlashcard.prototype.onunload = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.saveData(this.settings)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
ObsidianFlashcard.prototype.getDefaultSettings = function () {
return { contextAwareMode: true, sourceSupport: false, codeHighlightSupport: false, inlineID: false, contextSeparator: " > ", deck: "Default", folderBasedDeck: true, flashcardsTag: "card", inlineSeparator: "::", inlineSeparatorReverse: ":::", defaultAnkiTag: "obsidian", ankiConnectPermission: false };
};
ObsidianFlashcard.prototype.generateCards = function (activeFile) {
this.cardsService.execute(activeFile).then(function (res) {
var e_1, _a;
try {
for (var res_1 = __values(res), res_1_1 = res_1.next(); !res_1_1.done; res_1_1 = res_1.next()) {
var r = res_1_1.value;
new obsidian.Notice(r, noticeTimeout);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (res_1_1 && !res_1_1.done && (_a = res_1.return)) _a.call(res_1);
}
finally { if (e_1) throw e_1.error; }
}
console.log(res);
}).catch(function (err) {
});
};
return ObsidianFlashcard;
}(obsidian.Plugin));
module.exports = ObsidianFlashcard;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9jb25mL2NvbnN0YW50cy50cyIsInNyYy9zZXJ2aWNlcy9hbmtpLnRzIiwic3JjL3V0aWxzLnRzIiwic3JjL2d1aS9zZXR0aW5ncy10YWIudHMiLCJub2RlX21vZHVsZXMvc2hvd2Rvd24vZGlzdC9zaG93ZG93bi5qcyIsInNyYy9lbnRpdGllcy9jYXJkLnRzIiwic3JjL2VudGl0aWVzL2ZsYXNoY2FyZC50cyIsInNyYy9lbnRpdGllcy9pbmxpbmVjYXJkLnRzIiwic3JjL2VudGl0aWVzL3NwYWNlZGNhcmQudHMiLCJzcmMvZW50aXRpZXMvY2xvemVjYXJkLnRzIiwic3JjL3NlcnZpY2VzL3BhcnNlci50cyIsInNyYy9jb25mL3JlZ2V4LnRzIiwic3JjL3NlcnZpY2VzL2NhcmRzLnRzIiwibWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6bnVsbCwibmFtZXMiOlsiU2V0dGluZyIsIk5vdGljZSIsIlBsdWdpblNldHRpbmdUYWIiLCJ0aGlzIiwic2hvd2Rvd24uQ29udmVydGVyIiwicGFyc2VGcm9udE1hdHRlckVudHJ5IiwiRmlsZVN5c3RlbUFkYXB0ZXIiLCJhZGRJY29uIiwiUGx1Z2luIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGFBQWEsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDbkMsSUFBSSxhQUFhLEdBQUcsTUFBTSxDQUFDLGNBQWM7QUFDekMsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsWUFBWSxLQUFLLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3BGLFFBQVEsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQzFHLElBQUksT0FBTyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQztBQUNGO0FBQ08sU0FBUyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNoQyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssVUFBVSxJQUFJLENBQUMsS0FBSyxJQUFJO0FBQzdDLFFBQVEsTUFBTSxJQUFJLFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsK0JBQStCLENBQUMsQ0FBQztBQUNsRyxJQUFJLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDeEIsSUFBSSxTQUFTLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDM0MsSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUF1Q0Q7QUFDTyxTQUFTLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7QUFDN0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDaEgsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDL0QsUUFBUSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ25HLFFBQVEsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ3RHLFFBQVEsU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFO0FBQ3RILFFBQVEsSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzlFLEtBQUssQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUNEO0FBQ08sU0FBUyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUMzQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDckgsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxNQUFNLEtBQUssVUFBVSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxFQUFFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM3SixJQUFJLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sVUFBVSxDQUFDLEVBQUUsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3RFLElBQUksU0FBUyxJQUFJLENBQUMsRUFBRSxFQUFFO0FBQ3RCLFFBQVEsSUFBSSxDQUFDLEVBQUUsTUFBTSxJQUFJLFNBQVMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQ3RFLFFBQVEsT0FBTyxDQUFDLEVBQUUsSUFBSTtBQUN0QixZQUFZLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pLLFlBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwRCxZQUFZLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6QixnQkFBZ0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTTtBQUM5QyxnQkFBZ0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ3hFLGdCQUFnQixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0FBQ2pFLGdCQUFnQixLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTO0FBQ2pFLGdCQUFnQjtBQUNoQixvQkFBb0IsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRTtBQUNoSSxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtBQUMxRyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0FBQ3pGLG9CQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7QUFDdkYsb0JBQW9CLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDMUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMs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LFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO0FBQzdFLFVBQVUsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztBQUNuRSxVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7QUFDakUsVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0FBQ25FLFNBQVM7QUFDVCxPQUFPLENBQUM7QUFDUixNQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUU7QUFDdkIsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMzRixPQUFPO0FBQ1AsS0FBSztBQUNMLElBQUksSUFBSSxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRTtBQUN2RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENB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